From fe4367f60bb5cf9a713e41655ad99797500a7722 Mon Sep 17 00:00:00 2001
From: Kevin Cristiano <kcristiano@kcristiano.com>
Date: Thu, 4 Nov 2021 08:05:25 -0400
Subject: [PATCH] civicrm release-5.43.0

---
 civicrm.php                                   |    4 +-
 civicrm/CONTRIBUTORS.txt                      |    2 +-
 civicrm/CRM/Activity/BAO/Activity.php         |  219 +-
 civicrm/CRM/Activity/BAO/Query.php            |    4 +-
 civicrm/CRM/Activity/Form/Task.php            |    9 +
 civicrm/CRM/Activity/Form/Task/PDF.php        |   36 +-
 civicrm/CRM/Activity/Import/Controller.php    |    5 +-
 .../CRM/Activity/Import/Parser/Activity.php   |    3 +
 civicrm/CRM/Activity/Page/AJAX.php            |    2 +-
 civicrm/CRM/Activity/Tokens.php               |  242 +-
 civicrm/CRM/Admin/Form/MessageTemplates.php   |    8 +-
 .../CRM/Admin/Form/Preferences/Mailing.php    |    2 +-
 civicrm/CRM/Admin/Form/ScheduleReminders.php  |    2 +-
 .../CRM/Admin/Form/Setting/Miscellaneous.php  |    3 +
 civicrm/CRM/Admin/Form/Setting/UF.php         |   12 +-
 civicrm/CRM/Admin/Page/Extensions.php         |    1 +
 civicrm/CRM/Admin/Page/MessageTemplates.php   |    6 +-
 civicrm/CRM/Api4/Page/Api4Explorer.php        |    1 +
 civicrm/CRM/Badge/BAO/Badge.php               |   84 +-
 civicrm/CRM/Badge/Form/Layout.php             |   10 +-
 civicrm/CRM/Batch/Form/Entry.php              |   88 +-
 civicrm/CRM/Campaign/BAO/Survey.php           |   27 +-
 civicrm/CRM/Campaign/DAO/Survey.php           |    9 +-
 civicrm/CRM/Case/Form/ActivityToCase.php      |    4 +-
 civicrm/CRM/Case/Form/ActivityView.php        |    2 +-
 civicrm/CRM/Case/Form/Case.php                |    2 +-
 civicrm/CRM/Case/Form/CaseView.php            |    6 +-
 civicrm/CRM/Case/Form/CustomData.php          |    2 +-
 civicrm/CRM/Case/Form/Task.php                |   47 +-
 civicrm/CRM/Case/Form/Task/Email.php          |   92 +
 civicrm/CRM/Case/Form/Task/PDF.php            |    7 -
 civicrm/CRM/Case/Tokens.php                   |   29 +
 civicrm/CRM/Case/xml/Menu/Case.xml            |    6 +
 civicrm/CRM/Contact/BAO/Contact.php           |   58 +-
 civicrm/CRM/Contact/BAO/ContactType.php       |   47 +-
 civicrm/CRM/Contact/BAO/GroupContactCache.php |   70 +-
 civicrm/CRM/Contact/Form/Contact.php          |    4 +-
 civicrm/CRM/Contact/Form/CustomData.php       |    8 +-
 civicrm/CRM/Contact/Form/DedupeRules.php      |    2 +-
 civicrm/CRM/Contact/Form/Domain.php           |    2 +-
 civicrm/CRM/Contact/Form/Merge.php            |    2 +-
 civicrm/CRM/Contact/Form/RelatedContact.php   |    2 +-
 civicrm/CRM/Contact/Form/Relationship.php     |    8 +-
 civicrm/CRM/Contact/Form/Search.php           |    4 +-
 civicrm/CRM/Contact/Form/Task.php             |    9 +-
 civicrm/CRM/Contact/Form/Task/AddToGroup.php  |   10 +-
 .../Contact/Form/Task/AddToParentClass.php    |    2 +-
 civicrm/CRM/Contact/Form/Task/Batch.php       |    2 +-
 civicrm/CRM/Contact/Form/Task/Delete.php      |    2 +-
 civicrm/CRM/Contact/Form/Task/Email.php       |   22 +-
 civicrm/CRM/Contact/Form/Task/EmailTrait.php  |  654 +-
 civicrm/CRM/Contact/Form/Task/Label.php       |    2 +-
 civicrm/CRM/Contact/Form/Task/Map.php         |    2 +-
 civicrm/CRM/Contact/Form/Task/PDF.php         |   29 +-
 .../CRM/Contact/Form/Task/PDFLetterCommon.php |   98 +-
 civicrm/CRM/Contact/Form/Task/PDFTrait.php    |  414 +-
 civicrm/CRM/Contact/Form/Task/PickProfile.php |    2 +-
 .../CRM/Contact/Form/Task/RemoveFromGroup.php |    2 +-
 civicrm/CRM/Contact/Form/Task/Useradd.php     |    2 +-
 civicrm/CRM/Contact/Import/Controller.php     |    5 +-
 civicrm/CRM/Contact/Import/Form/MapField.php  |   10 +-
 civicrm/CRM/Contact/Import/ImportJob.php      |    4 +-
 civicrm/CRM/Contact/Import/Parser/Contact.php |    6 +
 civicrm/CRM/Contact/Tokens.php                |  710 ++
 civicrm/CRM/Contribute/BAO/Contribution.php   |  253 +-
 .../CRM/Contribute/BAO/Contribution/Utils.php |    9 +-
 .../CRM/Contribute/BAO/ContributionRecur.php  |   54 +-
 .../CRM/Contribute/BAO/FinancialProcessor.php |  192 +-
 civicrm/CRM/Contribute/BAO/Product.php        |   17 +-
 .../CRM/Contribute/DAO/ContributionRecur.php  |    8 +-
 .../CRM/Contribute/Form/AdditionalPayment.php |    2 +-
 .../Contribute/Form/CancelSubscription.php    |   25 +-
 civicrm/CRM/Contribute/Form/Contribution.php  |   99 +-
 .../Contribute/Form/Contribution/ThankYou.php |    2 +-
 .../Form/ContributionPage/Settings.php        |    2 +-
 .../CRM/Contribute/Form/ContributionRecur.php |    9 +
 .../CRM/Contribute/Form/ContributionView.php  |    4 +-
 .../CRM/Contribute/Form/ManagePremiums.php    |    9 +-
 civicrm/CRM/Contribute/Form/Task.php          |    9 +
 civicrm/CRM/Contribute/Form/Task/Batch.php    |    2 +-
 civicrm/CRM/Contribute/Form/Task/Email.php    |   32 +-
 civicrm/CRM/Contribute/Form/Task/Invoice.php  |    4 +-
 civicrm/CRM/Contribute/Form/Task/PDF.php      |   21 +-
 .../CRM/Contribute/Form/Task/PDFLetter.php    |  147 +-
 .../CRM/Contribute/Form/Task/PickProfile.php  |    2 +-
 civicrm/CRM/Contribute/Form/UpdateBilling.php |   83 +-
 .../Contribute/Form/UpdateSubscription.php    |   43 +-
 civicrm/CRM/Contribute/Import/Controller.php  |    5 +-
 civicrm/CRM/Contribute/RecurTokens.php        |   36 +
 .../WorkflowMessage/RecurringEdit.php         |   73 +
 .../RecurringEdit/AlexCancelled.ex.php        |   28 +
 .../RecurringEdit/BarbPending.ex.php          |   29 +
 civicrm/CRM/Core/BAO/ActionSchedule.php       |   10 +-
 civicrm/CRM/Core/BAO/Address.php              |    6 +-
 civicrm/CRM/Core/BAO/CustomField.php          |    5 +-
 civicrm/CRM/Core/BAO/CustomValueTable.php     |   11 +-
 civicrm/CRM/Core/BAO/Email.php                |   24 +-
 civicrm/CRM/Core/BAO/File.php                 |    4 +-
 civicrm/CRM/Core/BAO/IM.php                   |    6 +-
 civicrm/CRM/Core/BAO/Mapping.php              |   18 +-
 civicrm/CRM/Core/BAO/MessageTemplate.php      |  221 +-
 civicrm/CRM/Core/BAO/OpenID.php               |    6 +-
 civicrm/CRM/Core/BAO/PdfFormat.php            |    4 +-
 civicrm/CRM/Core/BAO/Phone.php                |    6 +-
 civicrm/CRM/Core/BAO/SchemaHandler.php        |    6 +-
 civicrm/CRM/Core/BAO/Setting.php              |    6 +-
 civicrm/CRM/Core/BAO/Tag.php                  |   24 +-
 civicrm/CRM/Core/BAO/UFMatch.php              |    7 +-
 civicrm/CRM/Core/ClassLoader.php              |    2 -
 civicrm/CRM/Core/DAO.php                      |   10 +-
 civicrm/CRM/Core/DAO/MappingField.php         |    2 +-
 civicrm/CRM/Core/DAO/MessageTemplate.php      |    3 +-
 civicrm/CRM/Core/DomainTokens.php             |  115 +
 civicrm/CRM/Core/EntityReference.php          |    9 -
 civicrm/CRM/Core/EntityTokens.php             |  452 +-
 civicrm/CRM/Core/Form.php                     |   56 +-
 civicrm/CRM/Core/Form/Task.php                |   55 +
 civicrm/CRM/Core/Form/Task/Batch.php          |    2 +-
 .../CRM/Core/Form/Task/PDFLetterCommon.php    |   43 +-
 civicrm/CRM/Core/Form/Task/PickProfile.php    |    2 +-
 civicrm/CRM/Core/I18n/Form.php                |    2 +-
 civicrm/CRM/Core/ManagedEntities.php          |  269 +-
 civicrm/CRM/Core/Payment/Elavon.php           |    2 +-
 civicrm/CRM/Core/Payment/FirstData.php        |    2 +-
 civicrm/CRM/Core/Payment/Form.php             |    5 +-
 civicrm/CRM/Core/Payment/PayPalIPN.php        |   53 +-
 civicrm/CRM/Core/Permission.php               |    5 +
 civicrm/CRM/Core/SelectValues.php             |  211 +-
 civicrm/CRM/Core/Selector/Controller.php      |   12 +-
 civicrm/CRM/Core/Session.php                  |   18 +-
 civicrm/CRM/Core/Smarty.php                   |    8 +-
 .../Smarty/plugins/function.privacyFlag.php   |    2 +-
 .../Core/Smarty/plugins/modifier.crmDate.php  |   26 +-
 civicrm/CRM/Core/TokenSmarty.php              |    1 +
 civicrm/CRM/Core/TokenTrait.php               |   21 +-
 civicrm/CRM/Custom/Form/DeleteField.php       |    2 +-
 civicrm/CRM/Custom/Form/DeleteGroup.php       |    2 +-
 civicrm/CRM/Custom/Form/Field.php             |    2 +-
 civicrm/CRM/Custom/Form/Group.php             |    6 +-
 civicrm/CRM/Custom/Form/MoveField.php         |    2 +-
 civicrm/CRM/Custom/Import/Controller.php      |    5 +-
 civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php    |    2 +-
 civicrm/CRM/Event/BAO/Event.php               |   15 +-
 civicrm/CRM/Event/DAO/Participant.php         |    5 +-
 .../Event/Form/ParticipantFeeSelection.php    |    2 +-
 civicrm/CRM/Event/Form/ParticipantView.php    |    2 +-
 .../Registration/AdditionalParticipant.php    |    2 +-
 .../CRM/Event/Form/Registration/Confirm.php   |    2 +-
 .../CRM/Event/Form/Registration/ThankYou.php  |    7 +-
 civicrm/CRM/Event/Form/SelfSvcTransfer.php    |   44 +-
 civicrm/CRM/Event/Form/SelfSvcUpdate.php      |    2 +-
 civicrm/CRM/Event/Form/Task.php               |   76 +-
 civicrm/CRM/Event/Form/Task/AddToGroup.php    |    4 +-
 civicrm/CRM/Event/Form/Task/Badge.php         |    2 +-
 civicrm/CRM/Event/Form/Task/Batch.php         |    2 +-
 civicrm/CRM/Event/Form/Task/Cancel.php        |    2 +-
 civicrm/CRM/Event/Form/Task/Email.php         |   13 +
 civicrm/CRM/Event/Form/Task/PDF.php           |   21 -
 civicrm/CRM/Event/Form/Task/PickProfile.php   |    2 +-
 civicrm/CRM/Event/Form/Task/SaveSearch.php    |    2 +-
 civicrm/CRM/Event/Import/Controller.php       |    5 +-
 civicrm/CRM/Event/ParticipantTokens.php       |  106 +
 civicrm/CRM/Event/Tokens.php                  |  229 +-
 civicrm/CRM/Export/BAO/ExportProcessor.php    |   62 +-
 civicrm/CRM/Extension/Upgrades.php            |   18 +
 civicrm/CRM/Financial/BAO/Order.php           |   20 +
 .../CRM/Financial/Form/BatchTransaction.php   |    2 +-
 civicrm/CRM/Financial/Form/FinancialBatch.php |    2 +-
 .../Financial/Form/FinancialTypeAccount.php   |    4 +-
 civicrm/CRM/Financial/Form/PaymentEdit.php    |   12 +-
 civicrm/CRM/Friend/Form.php                   |    4 +-
 civicrm/CRM/Group/Form/Edit.php               |    4 +-
 civicrm/CRM/Logging/Schema.php                |   16 +-
 civicrm/CRM/Mailing/BAO/Mailing.php           |   58 +-
 civicrm/CRM/Mailing/Event/BAO/Confirm.php     |    4 +-
 civicrm/CRM/Mailing/Event/BAO/Delivered.php   |    2 +
 civicrm/CRM/Mailing/Event/BAO/Reply.php       |    4 +-
 civicrm/CRM/Mailing/Event/BAO/Resubscribe.php |    2 +-
 civicrm/CRM/Mailing/Event/BAO/Unsubscribe.php |    4 +-
 civicrm/CRM/Mailing/Form/Approve.php          |    2 +-
 civicrm/CRM/Mailing/Form/ForwardMailing.php   |    2 +-
 civicrm/CRM/Mailing/Form/Optout.php           |   80 +-
 civicrm/CRM/Mailing/Form/Subscribe.php        |    4 +-
 civicrm/CRM/Mailing/Form/Unsubscribe.php      |   80 +-
 civicrm/CRM/Mailing/Info.php                  |    6 +-
 civicrm/CRM/Member/BAO/Membership.php         |    6 +-
 civicrm/CRM/Member/BAO/MembershipType.php     |    4 +-
 civicrm/CRM/Member/Form/Membership.php        |   12 +-
 civicrm/CRM/Member/Form/MembershipRenewal.php |    2 +-
 civicrm/CRM/Member/Form/MembershipView.php    |    2 +-
 civicrm/CRM/Member/Form/Task.php              |   43 +
 civicrm/CRM/Member/Form/Task/Batch.php        |    2 +-
 civicrm/CRM/Member/Form/Task/Email.php        |   13 +
 civicrm/CRM/Member/Form/Task/PDFLetter.php    |   93 +-
 .../CRM/Member/Form/Task/PDFLetterCommon.php  |   46 +-
 civicrm/CRM/Member/Form/Task/PickProfile.php  |    2 +-
 civicrm/CRM/Member/Import/Controller.php      |    5 +-
 civicrm/CRM/Member/Tokens.php                 |  130 +-
 civicrm/CRM/PCP/Form/Campaign.php             |    2 +-
 civicrm/CRM/PCP/Form/Event.php                |    2 +-
 civicrm/CRM/PCP/Form/PCPAccount.php           |    2 +-
 civicrm/CRM/Pledge/Form/Payment.php           |    2 +-
 civicrm/CRM/Pledge/Form/PledgeView.php        |    2 +-
 civicrm/CRM/Price/Form/DeleteField.php        |    2 +-
 civicrm/CRM/Price/Form/Set.php                |    2 +-
 civicrm/CRM/Profile/Form/Edit.php             |   42 +-
 civicrm/CRM/Report/BAO/ReportInstance.php     |   31 +-
 civicrm/CRM/Report/Form.php                   |   20 +-
 civicrm/CRM/Report/Form/Event/Summary.php     |   17 +
 civicrm/CRM/Report/Form/Register.php          |    2 +-
 civicrm/CRM/UF/Form/Group.php                 |    4 +-
 .../civicrm_msg_template.tpl                  |   16 -
 .../contribution_recurring_edit_html.tpl      |   36 -
 .../contribution_recurring_edit_text.tpl      |    8 -
 .../contribution_recurring_notify_html.tpl    |  125 -
 .../contribution_recurring_notify_text.tpl    |   50 -
 .../civicrm_msg_template.tpl                  |   57 -
 .../contribution_offline_receipt_html.tpl     |  265 -
 .../contribution_offline_receipt_text.tpl     |   98 -
 .../contribution_online_receipt_html.tpl      |  409 -
 .../contribution_online_receipt_text.tpl      |  188 -
 .../event_offline_receipt_html.tpl            |  474 -
 .../event_offline_receipt_text.tpl            |  281 -
 .../event_online_receipt_html.tpl             |  454 -
 .../event_online_receipt_text.tpl             |  279 -
 .../membership_online_receipt_html.tpl        |  509 -
 .../membership_online_receipt_text.tpl        |  220 -
 .../participant_cancelled_html.tpl            |  146 -
 .../participant_cancelled_text.tpl            |   59 -
 .../participant_confirm_html.tpl              |  187 -
 .../participant_confirm_text.tpl              |   89 -
 .../participant_expired_html.tpl              |  149 -
 .../participant_expired_text.tpl              |   63 -
 .../payment_or_refund_notification_html.tpl   |  269 -
 ...payment_or_refund_notification_subject.tpl |    1 -
 .../payment_or_refund_notification_text.tpl   |  116 -
 .../pledge_acknowledge_html.tpl               |  117 -
 .../pledge_acknowledge_text.tpl               |   45 -
 .../civicrm_msg_template.tpl                  |   32 -
 .../membership_offline_receipt_html.tpl       |  240 -
 .../membership_offline_receipt_text.tpl       |   90 -
 ...sive Design Newsletter - Single Column.tpl |  496 -
 ...ponsive Design Newsletter - Two Column.tpl |  672 --
 civicrm/CRM/Upgrade/Form.php                  |    4 +-
 civicrm/CRM/Upgrade/Headless.php              |    5 +-
 civicrm/CRM/Upgrade/Incremental/Base.php      |   41 +-
 .../Upgrade/Incremental/MessageTemplates.php  |   65 +
 .../Incremental/php/FiveFortyThree.php        |  210 +
 .../CRM/Upgrade/Incremental/php/FourFive.php  |  358 -
 .../CRM/Upgrade/Incremental/php/Template.php  |    8 +-
 .../Upgrade/Incremental/sql/4.5.0.mysql.tpl   |   11 -
 .../Upgrade/Incremental/sql/4.5.1.mysql.tpl   |    1 -
 .../Upgrade/Incremental/sql/4.5.2.mysql.tpl   |    5 -
 .../Upgrade/Incremental/sql/4.5.3.mysql.tpl   |   12 -
 .../Upgrade/Incremental/sql/4.5.4.mysql.tpl   |    1 -
 .../Upgrade/Incremental/sql/4.5.5.mysql.tpl   |    5 -
 .../Upgrade/Incremental/sql/4.5.6.mysql.tpl   |    4 -
 .../Upgrade/Incremental/sql/4.5.7.mysql.tpl   |    6 -
 .../Upgrade/Incremental/sql/4.5.8.mysql.tpl   |    1 -
 .../Upgrade/Incremental/sql/4.5.9.mysql.tpl   |    1 -
 .../Incremental/sql/4.5.alpha1.mysql.tpl      |  541 --
 .../Incremental/sql/4.5.alpha2.mysql.tpl      |   35 -
 .../Incremental/sql/4.5.beta1.mysql.tpl       |    6 -
 .../Incremental/sql/4.5.beta2.mysql.tpl       |   13 -
 .../Incremental/sql/4.5.beta3.mysql.tpl       |    4 -
 .../Incremental/sql/4.5.beta4.mysql.tpl       |    1 -
 .../Incremental/sql/4.5.beta5.mysql.tpl       |    1 -
 .../Incremental/sql/4.5.beta6.mysql.tpl       |    1 -
 .../Incremental/sql/4.5.beta7.mysql.tpl       |    2 -
 .../Incremental/sql/4.5.beta8.mysql.tpl       |   18 -
 .../Incremental/sql/4.5.beta9.mysql.tpl       |   36 -
 .../Incremental/sql/5.29.alpha1.mysql.tpl     |    2 +-
 .../Incremental/sql/5.43.alpha1.mysql.tpl     |    7 +
 civicrm/CRM/Upgrade/Page/Upgrade.php          |    8 +-
 civicrm/CRM/Utils/Array.php                   |   32 +
 civicrm/CRM/Utils/Date.php                    |   41 +-
 civicrm/CRM/Utils/GuzzleMiddleware.php        |  100 +
 civicrm/CRM/Utils/HttpClient.php              |    2 +-
 civicrm/CRM/Utils/PDF/Document.php            |    9 +
 civicrm/CRM/Utils/PDF/Utils.php               |   29 +-
 civicrm/CRM/Utils/System/Backdrop.php         |   12 +
 civicrm/CRM/Utils/System/Base.php             |   17 +
 civicrm/CRM/Utils/System/Drupal8.php          |    5 +-
 civicrm/CRM/Utils/System/UnitTests.php        |    1 +
 civicrm/CRM/Utils/System/WordPress.php        |    3 +
 civicrm/CRM/Utils/Token.php                   |  185 +-
 civicrm/Civi.php                              |   11 +
 civicrm/Civi/API/Request.php                  |   22 +-
 .../Event/MailingQueryEvent.php               |   11 +-
 civicrm/Civi/Api4/Action/Entity/Get.php       |  116 +-
 civicrm/Civi/Api4/Action/ExampleData/Get.php  |   58 +
 .../WorkflowMessage/GetTemplateFields.php     |   69 +
 .../Api4/Action/WorkflowMessage/Render.php    |  168 +
 civicrm/Civi/Api4/Address.php                 |    2 +
 civicrm/Civi/Api4/Email.php                   |    2 +
 civicrm/Civi/Api4/Entity.php                  |    5 +
 .../Api4/Event/CreateApi4RequestEvent.php     |   56 +
 .../CreateApi4RequestSubscriber.php           |   57 +
 civicrm/Civi/Api4/ExampleData.php             |  107 +
 civicrm/Civi/Api4/Generic/AbstractEntity.php  |   65 +-
 .../Civi/Api4/Generic/AbstractGetAction.php   |   24 +-
 civicrm/Civi/Api4/Generic/DAOGetAction.php    |   20 +-
 .../Generic/Traits/ArrayQueryActionTrait.php  |    5 +
 .../Api4/Generic/Traits/DAOActionTrait.php    |    8 +-
 civicrm/Civi/Api4/IM.php                      |    2 +
 civicrm/Civi/Api4/Phone.php                   |    2 +
 civicrm/Civi/Api4/PrintLabel.php              |   21 +
 civicrm/Civi/Api4/Query/Api4SelectQuery.php   |   54 +-
 civicrm/Civi/Api4/Query/SqlEquation.php       |  123 +
 civicrm/Civi/Api4/Query/SqlExpression.php     |  113 +-
 civicrm/Civi/Api4/Query/SqlField.php          |    4 +
 civicrm/Civi/Api4/Query/SqlFunction.php       |  138 +-
 civicrm/Civi/Api4/Query/SqlFunctionABS.php    |    9 +-
 civicrm/Civi/Api4/Query/SqlFunctionAVG.php    |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionBINARY.php |   44 +
 .../Civi/Api4/Query/SqlFunctionCOALESCE.php   |    8 +
 civicrm/Civi/Api4/Query/SqlFunctionCONCAT.php |   10 +-
 .../Civi/Api4/Query/SqlFunctionCONCAT_WS.php  |   53 +
 civicrm/Civi/Api4/Query/SqlFunctionCOUNT.php  |    8 +-
 .../Civi/Api4/Query/SqlFunctionCURDATE.php    |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionDATE.php   |    9 +-
 .../Civi/Api4/Query/SqlFunctionGREATEST.php   |    9 +
 .../Api4/Query/SqlFunctionGROUP_CONCAT.php    |   12 +-
 civicrm/Civi/Api4/Query/SqlFunctionIF.php     |   23 +-
 civicrm/Civi/Api4/Query/SqlFunctionISNULL.php |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionLEAST.php  |    9 +
 civicrm/Civi/Api4/Query/SqlFunctionLOWER.php  |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionMAX.php    |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionMIN.php    |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionNULLIF.php |   10 +-
 civicrm/Civi/Api4/Query/SqlFunctionRAND.php   |   16 +-
 .../Civi/Api4/Query/SqlFunctionREPLACE.php    |   22 +-
 civicrm/Civi/Api4/Query/SqlFunctionROUND.php  |    9 +
 civicrm/Civi/Api4/Query/SqlFunctionSUM.php    |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionTIME.php   |    9 +-
 civicrm/Civi/Api4/Query/SqlFunctionUPPER.php  |    7 +
 civicrm/Civi/Api4/Query/SqlFunctionYEAR.php   |    7 +
 civicrm/Civi/Api4/Query/SqlNull.php           |    4 +
 civicrm/Civi/Api4/Query/SqlNumber.php         |    4 +
 civicrm/Civi/Api4/Query/SqlString.php         |    4 +
 civicrm/Civi/Api4/Query/SqlWild.php           |    4 +
 .../Spec/Provider/ContactGetSpecProvider.php  |   23 +
 .../Civi/Api4/Service/Spec/RequestSpec.php    |   31 +-
 .../Civi/Api4/Service/Spec/SpecFormatter.php  |    2 +
 .../Civi/Api4/Service/Spec/SpecGatherer.php   |   25 +-
 civicrm/Civi/Api4/Survey.php                  |   23 +
 civicrm/Civi/Api4/Utils/CoreUtil.php          |   33 +-
 civicrm/Civi/Api4/WorkflowMessage.php         |  139 +
 civicrm/Civi/Core/Container.php               |   23 +-
 civicrm/Civi/Core/Format.php                  |  184 +
 civicrm/Civi/Test.php                         |   40 +
 civicrm/Civi/Test/CiviTestListener.php        |   19 +
 .../Civi/Test/CiviTestListenerPHPUnit7.php    |   19 +
 civicrm/Civi/Test/EntityExample.php           |   43 +
 civicrm/Civi/Test/EventCheck.php              |   81 +
 civicrm/Civi/Test/EventChecker.php            |  106 +
 .../Civi/Test/ExampleData/Contact/Alex.ex.php |   85 +
 .../Civi/Test/ExampleData/Contact/Barb.ex.php |   91 +
 .../ExampleData/Contribution/Euro5990.ex.php  |   50 +
 .../ContributionRecur/Euro5990.ex.php         |   56 +
 civicrm/Civi/Test/ExampleDataInterface.php    |   32 +
 civicrm/Civi/Test/ExampleDataLoader.php       |  150 +
 civicrm/Civi/Test/HttpTestTrait.php           |    9 +
 civicrm/Civi/Test/Legacy/CiviTestListener.php |   19 +
 .../Civi/Test/WorkflowMessageTestTrait.php    |   82 +
 civicrm/Civi/Token/TokenCompatSubscriber.php  |  121 +-
 civicrm/Civi/Token/TokenProcessor.php         |  135 +-
 civicrm/Civi/Token/TokenRow.php               |   20 +-
 .../GenericWorkflowMessage.php                |    8 +
 .../GenericWorkflowMessage/Alex.ex.php        |   28 +
 .../Traits/LocalizationTrait.php              |   50 +
 .../Traits/ReflectiveWorkflowTrait.php        |    6 +-
 .../Civi/WorkflowMessage/WorkflowMessage.php  |   44 +-
 .../WorkflowMessageExample.php                |   86 +
 civicrm/ang/api4Explorer/Explorer.js          |   19 +-
 civicrm/ang/crmMailing/Templates.js           |    4 +-
 civicrm/ang/crmMonaco.js                      |    6 +
 civicrm/ang/crmStatusPage.js                  |    2 +-
 civicrm/ang/crmStatusPage/StatusPageCtrl.js   |    2 +-
 civicrm/ang/crmUi.js                          |    3 +-
 civicrm/api/v3/System/ini-whitelist.txt       |    1 -
 .../api/v3/examples/Mailing/GetTokens.ex.php  |    4 +-
 .../v3/examples/MessageTemplate/Get.ex.php    |    2 +-
 .../api/v3/examples/Setting/GetFields.ex.php  |    2 +-
 civicrm/api/v3/utils.php                      |   10 +-
 civicrm/bin/ContributionProcessor.php         |    5 +-
 civicrm/bin/regen.sh                          |    2 +-
 civicrm/civicrm-version.php                   |    2 +-
 .../Civi/Api4/Action/Afform/LoadAdminData.php |   11 +-
 .../afform/admin/ang/afAdmin/afAdminList.html |   17 +-
 .../admin/ang/afGuiEditor/afGuiEditor.html    |    1 +
 .../ang/afGuiEditor/afGuiSearch.component.js  |    2 +-
 .../elements/afGuiField.component.js          |    2 +-
 civicrm/ext/afform/admin/info.xml             |    2 +-
 .../Civi/Afform/AfformMetadataInjector.php    |   11 +-
 .../Civi/Afform/AngularDependencyMapper.php   |    4 +
 .../Civi/Afform/Event/AfformSubmitEvent.php   |   27 +
 .../afform/core/Civi/Afform/FormDataModel.php |   45 +-
 .../core/Civi/Api4/Action/Afform/Get.php      |   28 +-
 .../Civi/Api4/Action/Afform/GetOptions.php    |   98 +
 .../Civi/Api4/Action/Afform/SubmitFile.php    |   16 +-
 civicrm/ext/afform/core/Civi/Api4/Afform.php  |   21 +
 civicrm/ext/afform/core/afform.php            |   20 +-
 .../afform/core/ang/af/afField.component.js   |  103 +-
 .../core/ang/af/afFieldset.directive.js       |    9 +-
 civicrm/ext/afform/core/info.xml              |    2 +-
 .../phpunit/Civi/Afform/AfformGetTest.php     |   74 +
 civicrm/ext/afform/html/info.xml              |    2 +-
 civicrm/ext/afform/mock/info.xml              |    2 +-
 .../phpunit/api/v4/AfformContactUsageTest.php |   30 +
 .../api/v4/AfformCustomFieldUsageTest.php     |    1 +
 .../phpunit/api/v4/AfformFileUploadTest.php   |    4 +-
 .../mock/tests/phpunit/api/v4/AfformTest.php  |   12 +-
 civicrm/ext/authx/README.md                   |    3 +
 civicrm/ext/authx/info.xml                    |    2 +-
 .../tests/phpunit/Civi/Authx/AllFlowsTest.php |   40 +
 civicrm/ext/ckeditor4/info.xml                |    8 +-
 .../ext/contributioncancelactions/info.xml    |    2 +-
 civicrm/ext/eventcart/info.xml                |    2 +-
 .../CRM/Event/Cart/Form/Checkout/Payment.tpl  |    8 +-
 civicrm/ext/ewaysingle/info.xml               |    2 +-
 civicrm/ext/financialacls/info.xml            |    2 +-
 civicrm/ext/flexmailer/info.xml               |    2 +-
 .../ext/flexmailer/src/API/MailingPreview.php |   18 +-
 .../src/ClickTracker/HtmlClickTracker.php     |    4 +-
 .../src/ClickTracker/TextClickTracker.php     |    2 +-
 .../Civi/FlexMailer/ClickTrackerTest.php      |   22 +-
 .../Civi/FlexMailer/MailingPreviewTest.php    |    4 +-
 civicrm/ext/greenwich/info.xml                |    2 +-
 .../Form/Search/Custom/ActivitySearch.php     |   12 -
 .../CRM/Contact/Form/Search/Custom/Base.php   |   18 +-
 .../Form/Search/Custom/ContribSYBNT.php       |   12 -
 .../Search/Custom/ContributionAggregate.php   |   12 -
 .../Contact/Form/Search/Custom/DateAdded.php  |   12 -
 .../Form/Search/Custom/EventAggregate.php     |   12 -
 .../Contact/Form/Search/Custom/FullText.php   |    9 -
 .../CRM/Contact/Form/Search/Custom/Group.php  |   14 -
 .../Contact/Form/Search/Custom/PriceSet.php   |    8 +-
 .../Contact/Form/Search/Custom/Proximity.php  |   12 -
 .../Form/Search/Custom/RandomSegment.php      |   12 -
 .../CRM/Contact/Form/Search/Custom/Sample.php |   12 -
 .../Form/Search/Custom/TagContributions.php   |   12 -
 .../Form/Search/Custom/ZipCodeRange.php       |   12 -
 civicrm/ext/legacycustomsearches/info.xml     |    2 +-
 .../Search/Custom/MultipleValuesCriteria.tpl  |    6 +-
 .../CRM/MessageAdmin/Page/MsgtplBasePage.php  |   34 +
 .../CRM/MessageAdmin/Settings.php             |   18 +
 civicrm/ext/message_admin/LICENSE.txt         |  667 ++
 civicrm/ext/message_admin/README.md           |   44 +
 .../ext/message_admin/ang/crmDialog.ang.php   |   16 +
 civicrm/ext/message_admin/ang/crmDialog.js    |   83 +
 civicrm/ext/message_admin/ang/crmDialog.md    |   24 +
 .../ext/message_admin/ang/crmMsgadm.ang.php   |   42 +
 civicrm/ext/message_admin/ang/crmMsgadm.css   |    3 +
 civicrm/ext/message_admin/ang/crmMsgadm.js    |    4 +
 .../ang/crmMsgadm/AddTranslation.html         |   43 +
 .../ext/message_admin/ang/crmMsgadm/Edit.html |   97 +
 .../ext/message_admin/ang/crmMsgadm/Edit.js   |  319 +
 .../ang/crmMsgadm/EditContent.html            |   96 +
 .../ang/crmMsgadm/EditContent.js              |   56 +
 .../ang/crmMsgadm/ExpandedEdit.html           |   42 +
 .../ang/crmMsgadm/GenericCtrl.js              |    8 +
 .../ang/crmMsgadm/InspectExample.html         |   24 +
 .../message_admin/ang/crmMsgadm/ListCtrl.js   |  130 +
 .../message_admin/ang/crmMsgadm/ListNav.html  |   28 +
 .../message_admin/ang/crmMsgadm/Preview.html  |   99 +
 .../message_admin/ang/crmMsgadm/Preview.js    |  108 +
 .../ext/message_admin/ang/crmMsgadm/User.html |   40 +
 .../ext/message_admin/ang/crmMsgadm/User.js   |   25 +
 .../message_admin/ang/crmMsgadm/Workflow.html |   28 +
 .../message_admin/ang/crmMsgadm/Workflow.js   |   41 +
 .../ang/crmMsgadm/WorkflowTranslated.html     |   50 +
 .../ang/crmMsgadmMonaco.aff.html              |    9 +
 civicrm/ext/message_admin/backlog.md          |   83 +
 .../ext/message_admin/images/screenshot.png   |  Bin 0 -> 11775 bytes
 civicrm/ext/message_admin/info.xml            |   36 +
 .../ext/message_admin/message_admin.civix.php |  453 +
 civicrm/ext/message_admin/message_admin.php   |  182 +
 .../templates/CRM/MessageAdmin/Edit.hlp       |    3 +
 .../CRM/MessageAdmin/Page/MsgtplBasePage.tpl  |    2 +
 .../templates/CRM/MessageAdmin/User.hlp       |    3 +
 .../templates/CRM/MessageAdmin/Workflow.hlp   |    3 +
 .../message_admin/xml/Menu/message_admin.xml  |    9 +
 .../oauth-client/Civi/Api4/OAuthProvider.php  |    3 +
 civicrm/ext/oauth-client/info.xml             |    2 +-
 civicrm/ext/payflowpro/info.xml               |    2 +-
 .../payflowpro/tests/phpunit/bootstrap.php    |    1 -
 civicrm/ext/recaptcha/info.xml                |    2 +-
 .../SearchDisplay/AbstractRunAction.php       |  205 +-
 .../Api4/Action/SearchDisplay/Download.php    |   24 +-
 civicrm/ext/search_kit/Civi/Search/Admin.php  |   70 +-
 .../search_kit/ang/crmSearchAdmin.module.js   |  176 +-
 .../ang/crmSearchAdmin/compose.html           |   23 +-
 .../crmSearchAdmin.component.js               |  177 +-
 .../ang/crmSearchAdmin/crmSearchAdmin.html    |    8 +-
 .../crmSearchAdminDisplay.component.js        |   56 +-
 .../crmSearchAdmin/crmSearchAdminDisplay.html |   26 +
 .../crmSearchAdminDisplaySort.html            |    4 +-
 .../crmSearchAdminLinkSelect.html             |    4 +-
 .../crmSearchAdminTags.component.js           |   84 +
 .../crmSearchAdmin/crmSearchAdminTags.html    |   29 +
 .../crmSearchAdminTokenSelect.component.js    |    2 +-
 .../crmSearchClause.component.js              |    4 +-
 .../crmSearchFunction.component.js            |  132 +-
 .../ang/crmSearchAdmin/crmSearchFunction.html |   32 +-
 .../displays/colType/field.html               |    4 +-
 .../displays/common/searchButtonConfig.html   |    4 +-
 .../displays/searchAdminDisplayGrid.html      |    2 +-
 .../displays/searchAdminDisplayList.html      |    2 +-
 .../searchAdminDisplayTable.component.js      |   23 +-
 .../displays/searchAdminDisplayTable.html     |   15 +
 .../search_kit/ang/crmSearchAdmin/group.html  |    2 +-
 .../crmSearchAdminResultsTable.component.js   |   12 +-
 .../crmSearchAdminResultsTable.html           |    8 +-
 .../crmSearchAdmin/searchListing/afforms.html |    6 +-
 .../crmSearchAdmin/searchListing/buttons.html |    2 +-
 .../crmSearchAdminSearchListing.component.js  |  106 +-
 .../crmSearchAdminSearchListing.html          |    6 +-
 .../crmSearchAdmin/searchListing/tags.html    |    1 +
 .../search_kit/ang/crmSearchAdmin/tabs.html   |    9 +-
 .../crmSearchDisplayEditable.component.js     |    3 +-
 .../traits/searchDisplayBaseTrait.service.js  |   15 +-
 .../searchDisplaySortableTrait.service.js     |    6 +-
 .../crmSearchDisplayTable.html                |    6 +-
 civicrm/ext/search_kit/css/crmSearchAdmin.css |   41 +-
 civicrm/ext/search_kit/css/crmSearchTasks.css |    4 +
 civicrm/ext/search_kit/info.xml               |    2 +-
 .../ext/search_kit/managed/TagUsedFor.mgd.php |   15 +
 civicrm/ext/search_kit/search_kit.php         |    8 +
 .../api/v4/SearchDisplay/SearchAfformTest.php |   55 +-
 .../v4/SearchDisplay/SearchDownloadTest.php   |   59 +
 .../api/v4/SearchDisplay/SearchRunTest.php    |   87 +-
 .../search_kit/tests/phpunit/bootstrap.php    |    1 -
 civicrm/ext/sequentialcreditnotes/info.xml    |    2 +-
 civicrm/js/Common.js                          |    3 +
 civicrm/release-notes.md                      |   11 +
 civicrm/release-notes/5.43.0.md               | 1238 +++
 civicrm/settings/Core.setting.php             |   72 +
 civicrm/sql/civicrm.mysql                     |    6 +-
 civicrm/sql/civicrm_data.mysql                |   15 +-
 civicrm/sql/civicrm_generated.mysql           | 8426 +++++++++--------
 civicrm/sql/civicrm_navigation.mysql          |    2 +-
 .../CRM/Activity/Form/Search/Common.tpl       |   12 +-
 .../templates/CRM/Activity/Form/Selector.tpl  |   25 +-
 .../CRM/Admin/Form/MessageTemplates.tpl       |    2 +-
 .../templates/CRM/Admin/Form/Navigation.tpl   |    2 +-
 .../CRM/Admin/Form/PaymentProcessor.tpl       |   28 +-
 .../CRM/Admin/Form/Preferences/Display.tpl    |    2 +-
 .../CRM/Admin/Form/PreferencesDate.tpl        |    2 +-
 .../CRM/Admin/Form/Setting/Localization.tpl   |    6 +-
 .../CRM/Admin/Form/Setting/Miscellaneous.tpl  |   18 +
 .../templates/CRM/Admin/Form/Setting/UF.tpl   |    2 +-
 .../CRM/Admin/Page/ExtensionDetails.tpl       |    2 +-
 .../CRM/Admin/Page/Extensions/AddNew.tpl      |    2 +-
 .../CRM/Admin/Page/Extensions/Main.tpl        |    2 +-
 .../CRM/Campaign/Form/ResultOptions.tpl       |    2 +-
 .../Campaign/Form/addCampaignToComponent.tpl  |    4 +-
 civicrm/templates/CRM/Case/Form/Activity.tpl  |    2 +-
 .../templates/CRM/Case/Form/ActivityTab.tpl   |    2 +-
 .../CRM/Case/Form/ActivityToCase.tpl          |    2 +-
 civicrm/templates/CRM/Case/Form/Case.tpl      |    6 +-
 civicrm/templates/CRM/Case/Form/CaseView.tpl  |    2 +-
 .../templates/CRM/Case/Form/Search/Common.tpl |    2 +-
 .../templates/CRM/Case/Form/Task/Email.tpl    |    1 +
 .../CRM/Contact/Form/Edit/Individual.tpl      |   20 +-
 .../CRM/Contact/Form/Inline/ContactName.tpl   |   12 +-
 .../templates/CRM/Contact/Form/OnBehalfOf.tpl |    2 +-
 .../CRM/Contact/Form/Search/BasicCriteria.tpl |    6 +-
 .../Form/Search/ContactSearchFields.tpl       |    6 +-
 .../Form/Search/Criteria/DisplaySettings.tpl  |    4 +-
 .../Contact/Form/Search/Criteria/Location.tpl |    6 +-
 .../Form/Search/Criteria/SearchSettings.tpl   |    2 +-
 civicrm/templates/CRM/Contact/Form/Task.tpl   |    2 +-
 .../CRM/Contact/Form/Task/AddToGroup.tpl      |    5 +-
 .../templates/CRM/Contact/Form/Task/Email.tpl |    8 +-
 .../CRM/Contact/Form/Task/PDFLetterCommon.tpl |    4 +-
 .../CRM/Contact/Form/Task/SaveSearch.tpl      |    2 +-
 .../CRM/Contact/Import/Form/Preview.tpl       |    2 +-
 .../CRM/Contact/Page/View/Summary.tpl         |    2 +-
 .../CRM/Contribute/Form/Contribution.tpl      |   20 +-
 .../CRM/Contribute/Form/Contribution/Main.tpl |    6 +-
 .../Form/Contribution/OnBehalfOf.tpl          |    4 +-
 .../Form/ContributionPage/Amount.tpl          |    4 +-
 .../CRM/Contribute/Form/ContributionView.tpl  |   14 +-
 .../CRM/Contribute/Form/Search/Common.tpl     |   14 +-
 .../CRM/Contribute/Form/Selector.tpl          |   19 +-
 .../CRM/Contribute/Form/UpdateBilling.tpl     |    2 +-
 .../Contribute/Form/UpdateSubscription.tpl    |    2 +-
 .../CRM/Contribute/Page/ContributionRecur.tpl |   18 +-
 .../Contribute/Page/ContributionTotals.tpl    |    8 +-
 .../CRM/Contribute/Page/UserDashboard.tpl     |    6 +-
 .../templates/CRM/Contribute/Page/Widget.tpl  |    2 +-
 .../templates/CRM/Custom/Form/CustomData.tpl  |    4 +-
 civicrm/templates/CRM/Custom/Form/Field.tpl   |    2 +-
 .../CRM/Custom/Form/Optionfields.tpl          |    4 +-
 civicrm/templates/CRM/Custom/Form/Search.tpl  |    2 +-
 .../templates/CRM/Event/Form/EventFees.tpl    |    2 +-
 .../CRM/Event/Form/ManageEvent/EventInfo.tpl  |    6 +-
 .../Event/Form/ManageEvent/Registration.tpl   |    6 +-
 .../CRM/Event/Form/Registration/Register.tpl  |    4 +-
 civicrm/templates/CRM/Event/Form/Selector.tpl |    2 +-
 .../CRM/Event/Form/SelfSvcTransfer.tpl        |    2 +-
 .../CRM/Event/Form/Task/AddToGroup.tpl        |    2 +-
 .../templates/CRM/Event/Page/DashBoard.tpl    |    2 +-
 .../templates/CRM/Event/Page/iCalLinks.tpl    |    2 +-
 civicrm/templates/CRM/Export/Form/Select.tpl  |    2 +-
 .../CRM/Financial/Form/BatchTransaction.tpl   |    6 +-
 civicrm/templates/CRM/Form/attachment.tpl     |    2 +-
 civicrm/templates/CRM/Form/body.tpl           |    4 +-
 civicrm/templates/CRM/Group/Form/Edit.tpl     |    2 +-
 civicrm/templates/CRM/Mailing/Form/Optout.tpl |   23 +-
 civicrm/templates/CRM/Mailing/Form/Search.tpl |    2 +-
 .../CRM/Mailing/Form/Unsubscribe.tpl          |   13 +-
 civicrm/templates/CRM/Mailing/Page/Browse.tpl |    4 +-
 .../CRM/Member/Form/MembershipBlock.tpl       |    2 +-
 .../CRM/Member/Form/Search/Common.tpl         |    2 +-
 civicrm/templates/CRM/PCP/Form/PCP.tpl        |    2 +-
 civicrm/templates/CRM/Pledge/Form/Pledge.tpl  |    2 +-
 civicrm/templates/CRM/Price/Form/Option.tpl   |    4 +-
 civicrm/templates/CRM/Price/Form/PriceSet.tpl |    2 +-
 civicrm/templates/CRM/Tag/Form/Edit.tpl       |    6 +-
 civicrm/templates/CRM/common/CMSUser.tpl      |    4 +-
 civicrm/templates/CRM/common/TabHeader.tpl    |    2 +-
 civicrm/templates/CRM/common/Tagset.tpl       |    2 +-
 .../CRM/common/civicrm.settings.php.template  |    2 -
 .../CRM/common/displaySearchCriteria.tpl      |    2 +-
 civicrm/templates/CRM/common/fatal.tpl        |   12 +-
 .../CRM/common/searchResultTasks.tpl          |    4 +-
 civicrm/vendor/autoload.php                   |    2 +-
 civicrm/vendor/composer/autoload_real.php     |   14 +-
 civicrm/vendor/composer/autoload_static.php   |   12 +-
 civicrm/xml/schema/Campaign/Survey.xml        |    7 +
 .../schema/Contribute/ContributionRecur.xml   |    4 +-
 civicrm/xml/schema/Core/MappingField.xml      |    1 +
 civicrm/xml/schema/Core/MessageTemplate.xml   |    1 +
 civicrm/xml/schema/Event/Participant.xml      |    3 +-
 civicrm/xml/templates/civicrm_data.tpl        |   11 +-
 civicrm/xml/templates/civicrm_navigation.tpl  |    2 +-
 civicrm/xml/version.xml                       |    2 +-
 .../civicrm.metabox.contact.add.php           |   20 +-
 includes/civicrm.admin.php                    |   38 +
 641 files changed, 19396 insertions(+), 15525 deletions(-)
 create mode 100644 civicrm/CRM/Case/Form/Task/Email.php
 create mode 100644 civicrm/CRM/Case/Tokens.php
 create mode 100644 civicrm/CRM/Contact/Tokens.php
 create mode 100644 civicrm/CRM/Contribute/RecurTokens.php
 create mode 100644 civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit.php
 create mode 100644 civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/AlexCancelled.ex.php
 create mode 100644 civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/BarbPending.ex.php
 create mode 100644 civicrm/CRM/Core/DomainTokens.php
 delete mode 100644 civicrm/CRM/Core/EntityReference.php
 create mode 100644 civicrm/CRM/Event/ParticipantTokens.php
 delete mode 100644 civicrm/CRM/Upgrade/4.5.0.msg_template/civicrm_msg_template.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.beta2.msg_template/civicrm_msg_template.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_html.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_text.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Single Column.tpl
 delete mode 100644 civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Two Column.tpl
 create mode 100644 civicrm/CRM/Upgrade/Incremental/php/FiveFortyThree.php
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/php/FourFive.php
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.0.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.1.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.2.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.3.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.4.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.5.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.6.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.7.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.8.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.9.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha2.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta1.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta2.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta3.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta4.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta5.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta6.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta7.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta8.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/4.5.beta9.mysql.tpl
 create mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.43.alpha1.mysql.tpl
 create mode 100644 civicrm/Civi/Api4/Action/ExampleData/Get.php
 create mode 100644 civicrm/Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php
 create mode 100644 civicrm/Civi/Api4/Action/WorkflowMessage/Render.php
 create mode 100644 civicrm/Civi/Api4/Event/CreateApi4RequestEvent.php
 create mode 100644 civicrm/Civi/Api4/Event/Subscriber/CreateApi4RequestSubscriber.php
 create mode 100644 civicrm/Civi/Api4/ExampleData.php
 create mode 100644 civicrm/Civi/Api4/PrintLabel.php
 create mode 100644 civicrm/Civi/Api4/Query/SqlEquation.php
 create mode 100644 civicrm/Civi/Api4/Query/SqlFunctionBINARY.php
 create mode 100644 civicrm/Civi/Api4/Query/SqlFunctionCONCAT_WS.php
 create mode 100644 civicrm/Civi/Api4/Survey.php
 create mode 100644 civicrm/Civi/Api4/WorkflowMessage.php
 create mode 100644 civicrm/Civi/Core/Format.php
 create mode 100644 civicrm/Civi/Test/EntityExample.php
 create mode 100644 civicrm/Civi/Test/EventCheck.php
 create mode 100644 civicrm/Civi/Test/EventChecker.php
 create mode 100644 civicrm/Civi/Test/ExampleData/Contact/Alex.ex.php
 create mode 100644 civicrm/Civi/Test/ExampleData/Contact/Barb.ex.php
 create mode 100644 civicrm/Civi/Test/ExampleData/Contribution/Euro5990.ex.php
 create mode 100644 civicrm/Civi/Test/ExampleData/ContributionRecur/Euro5990.ex.php
 create mode 100644 civicrm/Civi/Test/ExampleDataInterface.php
 create mode 100644 civicrm/Civi/Test/ExampleDataLoader.php
 create mode 100644 civicrm/Civi/Test/WorkflowMessageTestTrait.php
 create mode 100644 civicrm/Civi/WorkflowMessage/GenericWorkflowMessage/Alex.ex.php
 create mode 100644 civicrm/Civi/WorkflowMessage/Traits/LocalizationTrait.php
 create mode 100644 civicrm/Civi/WorkflowMessage/WorkflowMessageExample.php
 create mode 100644 civicrm/ext/afform/core/Civi/Api4/Action/Afform/GetOptions.php
 create mode 100644 civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php
 create mode 100644 civicrm/ext/message_admin/CRM/MessageAdmin/Page/MsgtplBasePage.php
 create mode 100644 civicrm/ext/message_admin/CRM/MessageAdmin/Settings.php
 create mode 100644 civicrm/ext/message_admin/LICENSE.txt
 create mode 100644 civicrm/ext/message_admin/README.md
 create mode 100644 civicrm/ext/message_admin/ang/crmDialog.ang.php
 create mode 100644 civicrm/ext/message_admin/ang/crmDialog.js
 create mode 100644 civicrm/ext/message_admin/ang/crmDialog.md
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm.ang.php
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm.css
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/AddTranslation.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/Edit.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/Edit.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/EditContent.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/EditContent.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/ExpandedEdit.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/GenericCtrl.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/InspectExample.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/ListCtrl.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/ListNav.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/Preview.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/Preview.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/User.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/User.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/Workflow.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/Workflow.js
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadm/WorkflowTranslated.html
 create mode 100644 civicrm/ext/message_admin/ang/crmMsgadmMonaco.aff.html
 create mode 100644 civicrm/ext/message_admin/backlog.md
 create mode 100644 civicrm/ext/message_admin/images/screenshot.png
 create mode 100644 civicrm/ext/message_admin/info.xml
 create mode 100644 civicrm/ext/message_admin/message_admin.civix.php
 create mode 100644 civicrm/ext/message_admin/message_admin.php
 create mode 100644 civicrm/ext/message_admin/templates/CRM/MessageAdmin/Edit.hlp
 create mode 100644 civicrm/ext/message_admin/templates/CRM/MessageAdmin/Page/MsgtplBasePage.tpl
 create mode 100644 civicrm/ext/message_admin/templates/CRM/MessageAdmin/User.hlp
 create mode 100644 civicrm/ext/message_admin/templates/CRM/MessageAdmin/Workflow.hlp
 create mode 100644 civicrm/ext/message_admin/xml/Menu/message_admin.xml
 create mode 100644 civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.component.js
 create mode 100644 civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.html
 create mode 100644 civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/tags.html
 create mode 100644 civicrm/ext/search_kit/managed/TagUsedFor.mgd.php
 create mode 100644 civicrm/release-notes/5.43.0.md
 create mode 100644 civicrm/templates/CRM/Case/Form/Task/Email.tpl

diff --git a/civicrm.php b/civicrm.php
index c127cb52cc..1659c1191d 100644
--- a/civicrm.php
+++ b/civicrm.php
@@ -2,7 +2,7 @@
 /**
  * Plugin Name: CiviCRM
  * Description: CiviCRM - Growing and Sustaining Relationships
- * Version: 5.42.1
+ * Version: 5.43.0
  * Requires at least: 4.9
  * Requires PHP:      7.2
  * Author: CiviCRM LLC
@@ -54,7 +54,7 @@ if (!defined('ABSPATH')) {
 }
 
 // Set version here: when it changes, will force Javascript & CSS to reload.
-define('CIVICRM_PLUGIN_VERSION', '5.42.1');
+define('CIVICRM_PLUGIN_VERSION', '5.43.0');
 
 // Store reference to this file.
 if (!defined('CIVICRM_PLUGIN_FILE')) {
diff --git a/civicrm/CONTRIBUTORS.txt b/civicrm/CONTRIBUTORS.txt
index 9a29f4434f..c8445206eb 100644
--- a/civicrm/CONTRIBUTORS.txt
+++ b/civicrm/CONTRIBUTORS.txt
@@ -101,7 +101,7 @@ Systopia - Björn Endres, Thomas Leichtfuss
 Tadpole Collective - Kevin Cristiano
 Tanya Bouman
 Team Expansion - Greg Harris
-Third Sector Design - Michael McAndrew
+Third Sector Design - Michael McAndrew, Kurund Jalmi, William Mortada
 Thomas Mannell
 Timbsoft Technologies - Tunbola Ogunwande
 Tiotsop Gerest
diff --git a/civicrm/CRM/Activity/BAO/Activity.php b/civicrm/CRM/Activity/BAO/Activity.php
index d60d201b0c..84188d943d 100644
--- a/civicrm/CRM/Activity/BAO/Activity.php
+++ b/civicrm/CRM/Activity/BAO/Activity.php
@@ -10,6 +10,7 @@
  */
 
 use Civi\Api4\ActivityContact;
+use Civi\Api4\Contribution;
 
 /**
  *
@@ -923,6 +924,10 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
   }
 
   /**
+   * DO NOT USE.
+   *
+   * Deprecated from core - will be removed.
+   *
    * @param int $sourceContactID
    *   The contact ID of the email "from".
    * @param string $subject
@@ -934,6 +939,8 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
    * @param array $attachments
    * @param int $caseID
    *
+   * @deprecated
+   *
    * @return int
    *   The created activity ID
    * @throws \CRM_Core_Exception
@@ -978,7 +985,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
   }
 
   /**
-   * Send the message to all the contacts.
+   * DO NOT USE THIS FUNCTION - DEPRECATED.
    *
    * Also insert a contact activity in each contacts record.
    *
@@ -990,29 +997,31 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
    * @param $html
    * @param string $emailAddress
    *   Use this 'to' email address instead of the default Primary address.
-   * @param int $userID
+   * @param int|null $userID
    *   Use this userID if set.
-   * @param string $from
-   * @param array $attachments
+   * @param string|null $from
+   * @param array|null $attachments
    *   The array of attachments if any.
-   * @param string $cc
+   * @param string|null $cc
    *   Cc recipient.
-   * @param string $bcc
+   * @param string|null $bcc
    *   Bcc recipient.
-   * @param array $contactIds
-   *   Contact ids.
-   * @param string $additionalDetails
+   * @param array|null $contactIds
+   *   unused.
+   * @param string|null $additionalDetails
    *   The additional information of CC and BCC appended to the activity Details.
-   * @param array $contributionIds
-   * @param int $campaignId
-   * @param int $caseId
+   * @param array|null $contributionIds
+   * @param int|null $campaignId
+   * @param int|null $caseId
    *
    * @return array
    *   bool $sent FIXME: this only indicates the status of the last email sent.
    *   array $activityIds The activity ids created, one per "To" recipient.
    *
+   * @deprecated
+   *
+   * @throws \API_Exception
    * @throws \CRM_Core_Exception
-   * @throws \CiviCRM_API3_Exception
    */
   public static function sendEmail(
     $contactDetails,
@@ -1031,12 +1040,16 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
     $campaignId = NULL,
     $caseId = NULL
   ) {
+    // @todo add noisy deprecation.
+    // This function is no longer called from core.
+    // I just left off the noisy deprecation for now as there
+    // are already a lot of other noisy deprecation points in 5.43.
     // get the contact details of logged in contact, which we set as from email
     if ($userID == NULL) {
       $userID = CRM_Core_Session::getLoggedInContactID();
     }
 
-    list($fromDisplayName, $fromEmail, $fromDoNotEmail) = CRM_Contact_BAO_Contact::getContactDetails($userID);
+    [$fromDisplayName, $fromEmail, $fromDoNotEmail] = CRM_Contact_BAO_Contact::getContactDetails($userID);
     if (!$fromEmail) {
       return [count($contactDetails), 0, count($contactDetails)];
     }
@@ -1044,67 +1057,21 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
       $fromDisplayName = $fromEmail;
     }
 
-    // CRM-4575
-    // token replacement of addressee/email/postal greetings
-    // get the tokens added in subject and message
-    $subjectToken = CRM_Utils_Token::getTokens($subject);
-    $messageToken = CRM_Utils_Token::getTokens($text);
-    $messageToken = array_merge($messageToken, CRM_Utils_Token::getTokens($html));
-    $allTokens = CRM_Utils_Array::crmArrayMerge($messageToken, $subjectToken);
-
     if (!$from) {
       $from = "$fromDisplayName <$fromEmail>";
     }
 
-    $returnProperties = [];
-    if (isset($messageToken['contact'])) {
-      foreach ($messageToken['contact'] as $key => $value) {
-        $returnProperties[$value] = 1;
-      }
-    }
-
-    if (isset($subjectToken['contact'])) {
-      foreach ($subjectToken['contact'] as $key => $value) {
-        if (!isset($returnProperties[$value])) {
-          $returnProperties[$value] = 1;
-        }
-      }
-    }
-
-    // get token details for contacts, call only if tokens are used
-    $details = [];
-    if (!empty($returnProperties) || !empty($tokens) || !empty($allTokens)) {
-      list($details) = CRM_Utils_Token::getTokenDetails(
-        $contactIds,
-        $returnProperties,
-        NULL, NULL, FALSE,
-        $allTokens,
-        'CRM_Activity_BAO_Activity'
-      );
-    }
-
-    // call token hook
-    $tokens = [];
-    CRM_Utils_Hook::tokens($tokens);
-    $categories = array_keys($tokens);
-
-    $escapeSmarty = FALSE;
-    if (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY) {
-      $smarty = CRM_Core_Smarty::singleton();
-      $escapeSmarty = TRUE;
-    }
-
     $contributionDetails = [];
     if (!empty($contributionIds)) {
-      $contributionDetails = CRM_Contribute_BAO_Contribution::replaceContributionTokens(
-        $contributionIds,
-        $subject,
-        $subjectToken,
-        $text,
-        $html,
-        $messageToken,
-        $escapeSmarty
-      );
+      $contributionDetails = Contribution::get(FALSE)
+        ->setSelect(['contact_id'])
+        ->addWhere('id', 'IN', $contributionIds)
+        ->execute()
+        // Note that this indexing means that only the last
+        // contribution per contact is resolved to tokens.
+        // this is long-standing functionality, albeit possibly
+        // not thought through.
+        ->indexBy('contact_id');
     }
 
     $sent = $notSent = [];
@@ -1112,56 +1079,28 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
     $activityIds = [];
     $firstActivityCreated = FALSE;
     foreach ($contactDetails as $values) {
+      $tokenContext = $caseId ? ['caseId' => $caseId] : [];
       $contactId = $values['contact_id'];
       $emailAddress = $values['email'];
 
       if (!empty($contributionDetails)) {
-        $subject = $contributionDetails[$contactId]['subject'];
-        $text = $contributionDetails[$contactId]['text'];
-        $html = $contributionDetails[$contactId]['html'];
+        $tokenContext['contributionId'] = $contributionDetails[$contactId]['id'];
       }
 
-      if (!empty($details) && is_array($details["{$contactId}"])) {
-        // unset email from details since it always returns primary email address
-        unset($details["{$contactId}"]['email']);
-        unset($details["{$contactId}"]['email_id']);
-        $values = array_merge($values, $details["{$contactId}"]);
-      }
-
-      $tokenSubject = CRM_Utils_Token::replaceContactTokens($subject, $values, FALSE, $subjectToken, FALSE, $escapeSmarty);
-      $tokenSubject = CRM_Utils_Token::replaceHookTokens($tokenSubject, $values, $categories, FALSE, $escapeSmarty);
-
-      // CRM-4539
-      if ($values['preferred_mail_format'] == 'Text' || $values['preferred_mail_format'] == 'Both') {
-        $tokenText = CRM_Utils_Token::replaceContactTokens($text, $values, FALSE, $messageToken, FALSE, $escapeSmarty);
-        $tokenText = CRM_Utils_Token::replaceHookTokens($tokenText, $values, $categories, FALSE, $escapeSmarty);
-      }
-      else {
-        $tokenText = NULL;
-      }
-
-      if ($values['preferred_mail_format'] == 'HTML' || $values['preferred_mail_format'] == 'Both') {
-        $tokenHtml = CRM_Utils_Token::replaceContactTokens($html, $values, TRUE, $messageToken, FALSE, $escapeSmarty);
-        $tokenHtml = CRM_Utils_Token::replaceHookTokens($tokenHtml, $values, $categories, TRUE, $escapeSmarty);
-      }
-      else {
-        $tokenHtml = NULL;
-      }
-
-      if ($caseId) {
-        $tokenSubject = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenSubject, $subjectToken, $escapeSmarty);
-        $tokenText = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenText, $messageToken, $escapeSmarty);
-        $tokenHtml = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenHtml, $messageToken, $escapeSmarty);
-      }
-
-      if (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY) {
-        // also add the contact tokens to the template
-        $smarty->assign_by_ref('contact', $values);
+      $tokenSubject = $subject;
+      $tokenText = in_array($values['preferred_mail_format'], ['Both', 'Text'], TRUE) ? $text : '';
+      $tokenHtml = in_array($values['preferred_mail_format'], ['Both', 'HTML'], TRUE) ? $html : '';
 
-        $tokenSubject = $smarty->fetch("string:$tokenSubject");
-        $tokenText = $smarty->fetch("string:$tokenText");
-        $tokenHtml = $smarty->fetch("string:$tokenHtml");
-      }
+      $renderedTemplate = CRM_Core_BAO_MessageTemplate::renderTemplate([
+        'messageTemplate' => [
+          'msg_text' => $tokenText,
+          'msg_html' => $tokenHtml,
+          'msg_subject' => $tokenSubject,
+        ],
+        'tokenContext' => $tokenContext,
+        'contactId' => $contactId,
+        'disableSmarty' => !CRM_Utils_Constant::value('CIVICRM_MAIL_SMARTY'),
+      ]);
 
       $sent = FALSE;
       // To minimize storage requirements, only one copy of any file attachments uploaded to CiviCRM is kept,
@@ -1171,7 +1110,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
       }
 
       // Create email activity.
-      $activityID = self::createEmailActivity($userID, $tokenSubject, $tokenHtml, $tokenText, $additionalDetails, $campaignId, $attachments, $caseId);
+      $activityID = self::createEmailActivity($userID, $renderedTemplate['subject'], $renderedTemplate['html'], $renderedTemplate['text'], $additionalDetails, $campaignId, $attachments, $caseId);
       $activityIds[] = $activityID;
 
       if ($firstActivityCreated == FALSE && !empty($attachments)) {
@@ -1183,9 +1122,9 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
         $from,
         $userID,
         $contactId,
-        $tokenSubject,
-        $tokenText,
-        $tokenHtml,
+        $renderedTemplate['subject'],
+        $renderedTemplate['text'],
+        $renderedTemplate['html'],
         $emailAddress,
         $activityID,
         // get the set of attachments from where they are stored
@@ -1215,10 +1154,12 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
    * @param array $attachments
    *   Attachments.
    *
+   * @internal
+   *
    * @return array
    *   Array of attachment key versus file Id.
    */
-  private static function getAttachmentFileIds($activityID, $attachments) {
+  public static function getAttachmentFileIds($activityID, $attachments) {
     $queryParams = [1 => [$activityID, 'Positive'], 2 => [CRM_Activity_DAO_Activity::getTableName(), 'String']];
     $query = "SELECT file_id, uri FROM civicrm_entity_file INNER JOIN civicrm_file ON civicrm_entity_file.file_id = civicrm_file.id
 WHERE entity_id =%1 AND entity_table = %2";
@@ -1305,45 +1246,11 @@ WHERE entity_id =%1 AND entity_table = %2";
     $activity = self::create($activityParams);
     $activityID = $activity->id;
 
-    // Process Tokens
-    // token replacement of addressee/email/postal greetings
-    // get the tokens added in subject and message
-    $messageToken = CRM_Utils_Token::getTokens($text);
-    $returnProperties = [];
-    if (isset($messageToken['contact'])) {
-      foreach ($messageToken['contact'] as $key => $value) {
-        $returnProperties[$value] = 1;
-      }
-    }
-    // Call tokens hook
-    $tokens = [];
-    CRM_Utils_Hook::tokens($tokens);
-    $categories = array_keys($tokens);
-    // get token details for contacts, call only if tokens are used
-    $tokenDetails = [];
-    if (!empty($returnProperties) || !empty($tokens)) {
-      list($tokenDetails) = CRM_Utils_Token::getTokenDetails($contactIds,
-        $returnProperties,
-        NULL, NULL, FALSE,
-        $messageToken,
-        'CRM_Activity_BAO_Activity'
-      );
-    }
-
     $success = 0;
     $errMsgs = [];
     foreach ($contactDetails as $contact) {
       $contactId = $contact['contact_id'];
-
-      // Replace tokens
-      if (!empty($tokenDetails) && is_array($tokenDetails["{$contactId}"])) {
-        // unset phone from details since it always returns primary number
-        unset($tokenDetails["{$contactId}"]['phone']);
-        unset($tokenDetails["{$contactId}"]['phone_type_id']);
-        $contact = array_merge($contact, $tokenDetails["{$contactId}"]);
-      }
-      $tokenText = CRM_Utils_Token::replaceContactTokens($text, $contact, FALSE, $messageToken, FALSE, FALSE);
-      $tokenText = CRM_Utils_Token::replaceHookTokens($tokenText, $contact, $categories, FALSE, FALSE);
+      $tokenText = CRM_Core_BAO_MessageTemplate::renderTemplate(['messageTemplate' => ['msg_text' => $text], 'contactId' => $contactId, 'disableSmarty' => TRUE])['text'];
 
       // Only send if the phone is of type mobile
       if ($contact['phone_type_id'] == CRM_Core_PseudoConstant::getKey('CRM_Core_BAO_Phone', 'phone_type_id', 'Mobile')) {
@@ -1455,6 +1362,8 @@ WHERE entity_id =%1 AND entity_table = %2";
   }
 
   /**
+   * DO Not use this function. Under deprecation, no active core use.
+   *
    * Send the message to a specific contact.
    *
    * @param string $from
@@ -1476,6 +1385,8 @@ WHERE entity_id =%1 AND entity_table = %2";
    *
    * @return bool
    *   TRUE if successful else FALSE.
+   *
+   * @deprecated
    */
   public static function sendMessage(
     $from,
@@ -1490,7 +1401,7 @@ WHERE entity_id =%1 AND entity_table = %2";
     $cc = NULL,
     $bcc = NULL
   ) {
-    list($toDisplayName, $toEmail, $toDoNotEmail) = CRM_Contact_BAO_Contact::getContactDetails($toID);
+    [$toDisplayName, $toEmail, $toDoNotEmail] = CRM_Contact_BAO_Contact::getContactDetails($toID);
     if ($emailAddress) {
       $toEmail = trim($emailAddress);
     }
@@ -1771,7 +1682,7 @@ WHERE      activity.id IN ($activityIds)";
         }
 
         if ($entityObj->owner_membership_id) {
-          list($displayName) = CRM_Contact_BAO_Contact::getDisplayAndImage(CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $entityObj->owner_membership_id, 'contact_id'));
+          [$displayName] = CRM_Contact_BAO_Contact::getDisplayAndImage(CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $entityObj->owner_membership_id, 'contact_id'));
           $subject .= sprintf(' (by %s)', $displayName);
         }
 
diff --git a/civicrm/CRM/Activity/BAO/Query.php b/civicrm/CRM/Activity/BAO/Query.php
index 0aa2df666a..b10ada06bb 100644
--- a/civicrm/CRM/Activity/BAO/Query.php
+++ b/civicrm/CRM/Activity/BAO/Query.php
@@ -450,7 +450,7 @@ class CRM_Activity_BAO_Query {
       1 => ts('Added by'),
     ];
     $form->addRadio('activity_role', NULL, $activityRoles, ['allowClear' => TRUE]);
-    $form->setDefaults(['activity_role' => 3]);
+
     $activityStatus = CRM_Core_PseudoConstant::get('CRM_Activity_DAO_Activity', 'status_id', [
       'flip' => 1,
       'labelColumn' => 'name',
@@ -466,7 +466,7 @@ class CRM_Activity_BAO_Query {
     $form->addElement('text', 'activity_text', ts('Activity Text'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
 
     $form->addRadio('activity_option', '', CRM_Core_SelectValues::activityTextOptions());
-    $form->setDefaults(['activity_option' => 'both']);
+    $form->setDefaults(['activity_option' => 6]);
 
     $form->addYesNo('activity_test', ts('Activity is a Test?'));
     $activity_tags = CRM_Core_BAO_Tag::getColorTags('civicrm_activity');
diff --git a/civicrm/CRM/Activity/Form/Task.php b/civicrm/CRM/Activity/Form/Task.php
index 23afcfab94..ee6e1ebd2b 100644
--- a/civicrm/CRM/Activity/Form/Task.php
+++ b/civicrm/CRM/Activity/Form/Task.php
@@ -127,4 +127,13 @@ WHERE  activity_id IN ( $IDs ) AND
     ]);
   }
 
+  /**
+   * Get the token processor schema required to list any tokens for this task.
+   *
+   * @return array
+   */
+  public function getTokenSchema(): array {
+    return ['activityId'];
+  }
+
 }
diff --git a/civicrm/CRM/Activity/Form/Task/PDF.php b/civicrm/CRM/Activity/Form/Task/PDF.php
index 7744ae949c..8a7cd7abb0 100644
--- a/civicrm/CRM/Activity/Form/Task/PDF.php
+++ b/civicrm/CRM/Activity/Form/Task/PDF.php
@@ -46,23 +46,14 @@ class CRM_Activity_Form_Task_PDF extends CRM_Activity_Form_Task {
     $form = $this;
     $activityIds = $form->_activityHolderIds;
     $formValues = $form->controller->exportValues($form->getName());
-    $html_message = CRM_Core_Form_Task_PDFLetterCommon::processTemplate($formValues);
+    $html_message = $this->processTemplate($formValues);
 
     // Do the rest in another function to make testing easier
     $form->createDocument($activityIds, $html_message, $formValues);
 
     $form->postProcessHook();
 
-    CRM_Utils_System::civiExit(1);
-  }
-
-  /**
-   * List available tokens for this form.
-   *
-   * @return array
-   */
-  public function listTokens() {
-    return $this->createTokenProcessor()->listTokens();
+    CRM_Utils_System::civiExit(0);
   }
 
   /**
@@ -108,20 +99,12 @@ class CRM_Activity_Form_Task_PDF extends CRM_Activity_Form_Task {
    *   The name registered with the TokenProcessor
    * @param array $formValues
    *   The values submitted through the form
-   *
-   * @return string
-   *   If formValues['is_unit_test'] is true, otherwise outputs document to browser
    */
-  public function renderFromRows($rows, $msgPart, $formValues) {
+  public function renderFromRows($rows, $msgPart, $formValues): void {
     $html = [];
     foreach ($rows as $row) {
       $html[] = $row->render($msgPart);
     }
-
-    if (!empty($formValues['is_unit_test'])) {
-      return $html;
-    }
-
     if (!empty($html)) {
       $this->outputFromHtml($formValues, $html);
     }
@@ -133,18 +116,13 @@ class CRM_Activity_Form_Task_PDF extends CRM_Activity_Form_Task {
    * @param array $formValues
    * @param array $html
    */
-  protected function outputFromHtml($formValues, array $html) {
-    if (!empty($formValues['subject'])) {
-      $fileName = CRM_Utils_File::makeFilenameWithUnicode($formValues['subject'], '_', 200);
-    }
-    else {
-      $fileName = 'CiviLetter';
-    }
-    if ($formValues['document_type'] === 'pdf') {
+  protected function outputFromHtml(array $formValues, array $html): void {
+    $fileName = $this->getFileName();
+    if ($this->getSubmittedValue('document_type') === 'pdf') {
       CRM_Utils_PDF_Utils::html2pdf($html, $fileName . '.pdf', FALSE, $formValues);
     }
     else {
-      CRM_Utils_PDF_Document::html2doc($html, $fileName . '.' . $formValues['document_type'], $formValues);
+      CRM_Utils_PDF_Document::html2doc($html, $fileName . '.' . $this->getSubmittedValue('document_type'), $formValues);
     }
   }
 
diff --git a/civicrm/CRM/Activity/Import/Controller.php b/civicrm/CRM/Activity/Import/Controller.php
index 8370776ea6..772c146200 100644
--- a/civicrm/CRM/Activity/Import/Controller.php
+++ b/civicrm/CRM/Activity/Import/Controller.php
@@ -26,10 +26,7 @@ class CRM_Activity_Import_Controller extends CRM_Core_Controller {
   public function __construct($title = NULL, $action = CRM_Core_Action::NONE, $modal = TRUE) {
     parent::__construct($title, $modal);
 
-    // lets get around the time limit issue if possible, CRM-2113
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     $this->_stateMachine = new CRM_Import_StateMachine($this, $action);
 
diff --git a/civicrm/CRM/Activity/Import/Parser/Activity.php b/civicrm/CRM/Activity/Import/Parser/Activity.php
index 1004eb54b3..a1d3cdfa8b 100644
--- a/civicrm/CRM/Activity/Import/Parser/Activity.php
+++ b/civicrm/CRM/Activity/Import/Parser/Activity.php
@@ -72,6 +72,9 @@ class CRM_Activity_Import_Parser_Activity extends CRM_Activity_Import_Parser {
       $field['type'] = CRM_Utils_Array::value('type', $field, CRM_Utils_Type::T_INT);
       $field['dataPattern'] = CRM_Utils_Array::value('dataPattern', $field, '//');
       $field['headerPattern'] = CRM_Utils_Array::value('headerPattern', $field, '//');
+      if (!empty($field['custom_group_id'])) {
+        $field['title'] = $field["groupTitle"] . ' :: ' . $field["title"];
+      }
       $this->addField($name, $field['title'], $field['type'], $field['headerPattern'], $field['dataPattern']);
     }
 
diff --git a/civicrm/CRM/Activity/Page/AJAX.php b/civicrm/CRM/Activity/Page/AJAX.php
index 7cf1613e2f..4f85789576 100644
--- a/civicrm/CRM/Activity/Page/AJAX.php
+++ b/civicrm/CRM/Activity/Page/AJAX.php
@@ -217,7 +217,7 @@ class CRM_Activity_Page_AJAX {
       }
       // email column links/icon
       if ($row['email']) {
-        $row['email'] = '<a class="crm-hover-button crm-popup" href="' . CRM_Utils_System::url('civicrm/activity/email/add', 'reset=1&action=add&atype=3&cid=' . $row['cid']) . '&caseid=' . $caseID . '" title="' . ts('Send an Email') . '"><i class="crm-i fa-envelope" aria-hidden="true"></i></a>';
+        $row['email'] = '<a class="crm-hover-button crm-popup" href="' . CRM_Utils_System::url('civicrm/case/email/add', 'reset=1&action=add&atype=3&cid=' . $row['cid']) . '&caseid=' . $caseID . '" title="' . ts('Send an Email') . '"><i class="crm-i fa-envelope" aria-hidden="true"></i></a>';
       }
 
       // view end date if set
diff --git a/civicrm/CRM/Activity/Tokens.php b/civicrm/CRM/Activity/Tokens.php
index bfcb4e76e5..40b896e814 100644
--- a/civicrm/CRM/Activity/Tokens.php
+++ b/civicrm/CRM/Activity/Tokens.php
@@ -15,7 +15,7 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
-use Civi\Token\AbstractTokenSubscriber;
+use Civi\ActionSchedule\Event\MailingQueryEvent;
 use Civi\Token\Event\TokenValueEvent;
 use Civi\Token\TokenRow;
 
@@ -33,50 +33,22 @@ use Civi\Token\TokenRow;
  *
  * This has been enhanced to work with PDF/letter merge
  */
-class CRM_Activity_Tokens extends AbstractTokenSubscriber {
-
-  use CRM_Core_TokenTrait;
-
-  /**
-   * @return string
-   */
-  private function getEntityName(): string {
-    return 'activity';
-  }
-
-  /**
-   * @return string
-   */
-  private function getEntityTableName(): string {
-    return 'civicrm_activity';
-  }
+class CRM_Activity_Tokens extends CRM_Core_EntityTokens {
 
   /**
+   * Get the entity name for api v4 calls.
+   *
    * @return string
    */
-  private function getEntityContextSchema(): string {
-    return 'activityId';
+  protected function getApiEntityName(): string {
+    return 'Activity';
   }
 
-  /**
-   * Mapping from tokenName to api return field
-   * Using arrays allows more complex tokens to be handled that require more than one API field.
-   * For example, an address token might want ['street_address', 'city', 'postal_code']
-   *
-   * @var array
-   */
-  private static $fieldMapping = [
-    'activity_id' => ['id'],
-    'activity_type' => ['activity_type_id'],
-    'status' => ['status_id'],
-    'campaign' => ['campaign_id'],
-  ];
-
   /**
    * @inheritDoc
    */
-  public function alterActionScheduleQuery(\Civi\ActionSchedule\Event\MailingQueryEvent $e) {
-    if ($e->mapping->getEntity() !== $this->getEntityTableName()) {
+  public function alterActionScheduleQuery(MailingQueryEvent $e): void {
+    if ($e->mapping->getEntity() !== $this->getExtendableTableName()) {
       return;
     }
 
@@ -84,43 +56,7 @@ class CRM_Activity_Tokens extends AbstractTokenSubscriber {
     // Multiple revisions of the activity.
     // Q: Could we simplify & move the extra AND clauses into `where(...)`?
     $e->query->param('casEntityJoinExpr', 'e.id = reminder.entity_id AND e.is_current_revision = 1 AND e.is_deleted = 0');
-    $e->query->select('e.id AS tokenContext_' . $this->getEntityContextSchema());
-  }
-
-  /**
-   * @inheritDoc
-   */
-  public function prefetch(TokenValueEvent $e) {
-    // Find all the entity IDs
-    $entityIds = $e->getTokenProcessor()->getContextValues($this->getEntityContextSchema());
-
-    if (!$entityIds) {
-      return NULL;
-    }
-
-    // Get data on all activities for basic and customfield tokens
-    $prefetch['activity'] = civicrm_api3('Activity', 'get', [
-      'id' => ['IN' => $entityIds],
-      'options' => ['limit' => 0],
-      'return' => self::getReturnFields($this->activeTokens),
-    ])['values'];
-
-    // Store the activity types if needed
-    if (in_array('activity_type', $this->activeTokens, TRUE)) {
-      $this->activityTypes = \CRM_Core_OptionGroup::values('activity_type');
-    }
-
-    // Store the activity statuses if needed
-    if (in_array('status', $this->activeTokens, TRUE)) {
-      $this->activityStatuses = \CRM_Core_OptionGroup::values('activity_status');
-    }
-
-    // Store the campaigns if needed
-    if (in_array('campaign', $this->activeTokens, TRUE)) {
-      $this->campaigns = \CRM_Campaign_BAO_Campaign::getCampaigns();
-    }
-
-    return $prefetch;
+    parent::alterActionScheduleQuery($e);
   }
 
   /**
@@ -138,75 +74,125 @@ class CRM_Activity_Tokens extends AbstractTokenSubscriber {
    * @throws \CRM_Core_Exception
    */
   public function evaluateToken(TokenRow $row, $entity, $field, $prefetch = NULL) {
-    // maps token name to api field
-    $mapping = [
-      'activity_id' => 'id',
-    ];
-
-    $activityId = $row->context[$this->getEntityContextSchema()];
+    $activityId = $this->getFieldValue($row, 'id');
 
-    $activity = $prefetch['activity'][$activityId];
-
-    if (in_array($field, ['activity_date_time', 'created_date', 'modified_date'])) {
-      $row->tokens($entity, $field, \CRM_Utils_Date::customFormat($activity[$field]));
-    }
-    elseif (isset($mapping[$field]) and (isset($activity[$mapping[$field]]))) {
-      $row->tokens($entity, $field, $activity[$mapping[$field]]);
-    }
-    elseif (in_array($field, ['activity_type'])) {
-      $row->tokens($entity, $field, $this->activityTypes[$activity['activity_type_id']]);
-    }
-    elseif (in_array($field, ['status'])) {
-      $row->tokens($entity, $field, $this->activityStatuses[$activity['status_id']]);
-    }
-    elseif (in_array($field, ['campaign'])) {
-      $row->tokens($entity, $field, $this->campaigns[$activity['campaign_id']]);
+    if (!empty($this->getDeprecatedTokens()[$field])) {
+      $realField = $this->getDeprecatedTokens()[$field];
+      parent::evaluateToken($row, $entity, $realField, $prefetch);
+      $row->format('text/plain')->tokens($entity, $field, $row->tokens['activity'][$realField]);
     }
-    elseif (in_array($field, ['case_id'])) {
+    elseif ($field === 'case_id') {
       // An activity can be linked to multiple cases so case_id is always an array.
       // We just return the first case ID for the token.
-      $row->tokens($entity, $field, is_array($activity['case_id']) ? reset($activity['case_id']) : $activity['case_id']);
+      // this weird hack might exist because apiv3 is weird &
+      $caseID = CRM_Core_DAO::singleValueQuery('SELECT case_id FROM civicrm_case_activity WHERE activity_id = %1 LIMIT 1', [1 => [$activityId, 'Integer']]);
+      $row->tokens($entity, $field, $caseID ?? '');
     }
-    elseif (array_key_exists($field, $this->customFieldTokens)) {
-      $row->tokens($entity, $field,
-        isset($activity[$field])
-          ? \CRM_Core_BAO_CustomField::displayValue($activity[$field], $field)
-          : ''
-      );
-    }
-    elseif (isset($activity[$field])) {
-      $row->tokens($entity, $field, $activity[$field]);
+    else {
+      parent::evaluateToken($row, $entity, $field, $prefetch);
     }
   }
 
   /**
-   * Get the basic tokens provided.
+   * Get tokens that are special or calculated for this enitty.
    *
-   * @return array token name => token label
+   * @return array|array[]
    */
-  protected function getBasicTokens(): array {
-    if (!isset($this->basicTokens)) {
-      $this->basicTokens = [
-        'activity_id' => ts('Activity ID'),
-        'activity_type' => ts('Activity Type'),
-        'subject' => ts('Activity Subject'),
-        'details' => ts('Activity Details'),
-        'activity_date_time' => ts('Activity Date-Time'),
-        'created_date' => ts('Activity Created Date'),
-        'modified_date' => ts('Activity Modified Date'),
-        'activity_type_id' => ts('Activity Type ID'),
-        'status' => ts('Activity Status'),
-        'status_id' => ts('Activity Status ID'),
-        'location' => ts('Activity Location'),
-        'duration' => ts('Activity Duration'),
-        'campaign' => ts('Activity Campaign'),
-        'campaign_id' => ts('Activity Campaign ID'),
+  protected function getBespokeTokens(): array {
+    $tokens = [];
+    if (array_key_exists('CiviCase', CRM_Core_Component::getEnabledComponents())) {
+      $tokens['case_id'] = ts('Activity Case ID');
+      return [
+        'case_id' => [
+          'title' => ts('Activity Case ID'),
+          'name' => 'case_id',
+          'type' => 'calculated',
+          'options' => NULL,
+          'data_type' => 'Integer',
+          'audience' => 'user',
+        ],
       ];
-      if (array_key_exists('CiviCase', CRM_Core_Component::getEnabledComponents())) {
-        $this->basicTokens['case_id'] = ts('Activity Case ID');
+    }
+    return $tokens;
+  }
+
+  /**
+   * Get fields Fieldshistorically not advertised for tokens.
+   *
+   * @return string[]
+   */
+  protected function getSkippedFields(): array {
+    return array_merge(parent::getSkippedFields(), [
+      'source_record_id',
+      'phone_id',
+      'phone_number',
+      'priority_id',
+      'parent_id',
+      'is_test',
+      'medium_id',
+      'is_auto',
+      'relationship_id',
+      'is_current_revision',
+      'original_id',
+      'result',
+      'is_deleted',
+      'engagement_level',
+      'weight',
+      'is_star',
+    ]);
+  }
+
+  /**
+   * @inheritDoc
+   */
+  public function getActiveTokens(TokenValueEvent $e) {
+    $messageTokens = $e->getTokenProcessor()->getMessageTokens();
+    if (!isset($messageTokens[$this->entity])) {
+      return NULL;
+    }
+
+    $activeTokens = [];
+    foreach ($messageTokens[$this->entity] as $msgToken) {
+      if (array_key_exists($msgToken, $this->getTokenMetadata())) {
+        $activeTokens[] = $msgToken;
+      }
+      // case_id is probably set in metadata anyway.
+      elseif ($msgToken === 'case_id' || isset($this->getDeprecatedTokens()[$msgToken])) {
+        $activeTokens[] = $msgToken;
       }
     }
-    return $this->basicTokens;
+    return array_unique($activeTokens);
+  }
+
+  public function getPrefetchFields(TokenValueEvent $e): array {
+    $tokens = parent::getPrefetchFields($e);
+    $active = $this->getActiveTokens($e);
+    foreach ($this->getDeprecatedTokens() as $old => $new) {
+      if (in_array($old, $active, TRUE) && !in_array($new, $active, TRUE)) {
+        $tokens[] = $new;
+      }
+    }
+    return $tokens;
+  }
+
+  /**
+   * These tokens still work but we don't advertise them.
+   *
+   * We will actively remove from the following places
+   * - scheduled reminders
+   * - add to 'blocked' on pdf letter & email
+   *
+   * & then at some point start issuing warnings for them.
+   *
+   * @return string[]
+   */
+  protected function getDeprecatedTokens(): array {
+    return [
+      'activity_id' => 'id',
+      'activity_type' => 'activity_type_id:label',
+      'status' => 'status_id:label',
+      'campaign' => 'campaign_id:label',
+    ];
   }
 
 }
diff --git a/civicrm/CRM/Admin/Form/MessageTemplates.php b/civicrm/CRM/Admin/Form/MessageTemplates.php
index 1c2fcd199b..076fcf3742 100644
--- a/civicrm/CRM/Admin/Form/MessageTemplates.php
+++ b/civicrm/CRM/Admin/Form/MessageTemplates.php
@@ -10,6 +10,7 @@
  */
 
 use Civi\Api4\MessageTemplate;
+use Civi\Token\TokenProcessor;
 
 /**
  *
@@ -109,7 +110,7 @@ class CRM_Admin_Form_MessageTemplates extends CRM_Core_Form {
     else {
       $this->_workflow_id = $this->_values['workflow_id'] ?? NULL;
       $this->checkUserPermission($this->_workflow_id);
-      $this->assign('workflow_id', $this->_workflow_id);
+      $this->assign('isWorkflow', (bool) ($this->_values['workflow_id'] ?? NULL));
 
       if ($this->_workflow_id) {
         $selectedChild = 'workflow';
@@ -170,9 +171,8 @@ class CRM_Admin_Form_MessageTemplates extends CRM_Core_Form {
       CRM_Core_DAO::getAttribute('CRM_Core_DAO_MessageTemplate', 'msg_subject')
     );
 
-    //get the tokens.
-    $tokens = CRM_Core_SelectValues::contactTokens();
-    $tokens = array_merge($tokens, CRM_Core_SelectValues::domainTokens());
+    $tokenProcessor = new TokenProcessor(Civi::dispatcher(), ['schema' => ['contactId']]);
+    $tokens = $tokenProcessor->listTokens();
 
     $this->assign('tokens', CRM_Utils_Token::formatTokensForDisplay($tokens));
 
diff --git a/civicrm/CRM/Admin/Form/Preferences/Mailing.php b/civicrm/CRM/Admin/Form/Preferences/Mailing.php
index b2f4a975dc..726a31dd4e 100644
--- a/civicrm/CRM/Admin/Form/Preferences/Mailing.php
+++ b/civicrm/CRM/Admin/Form/Preferences/Mailing.php
@@ -16,7 +16,7 @@
  */
 
 /**
- * This class generates form components for the maling component preferences.
+ * This class generates form components for the mailing component preferences.
  */
 class CRM_Admin_Form_Preferences_Mailing extends CRM_Admin_Form_Preferences {
 
diff --git a/civicrm/CRM/Admin/Form/ScheduleReminders.php b/civicrm/CRM/Admin/Form/ScheduleReminders.php
index 7218283ed3..40ae4aa356 100644
--- a/civicrm/CRM/Admin/Form/ScheduleReminders.php
+++ b/civicrm/CRM/Admin/Form/ScheduleReminders.php
@@ -698,7 +698,7 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
     $tokenProcessor = new \Civi\Token\TokenProcessor(\Civi::dispatcher(), [
       'controller' => get_class(),
       'smarty' => FALSE,
-      'schema' => ['activityId'],
+      'schema' => ['activityId', 'participantId'],
     ]);
     $tokens = $tokenProcessor->listTokens();
 
diff --git a/civicrm/CRM/Admin/Form/Setting/Miscellaneous.php b/civicrm/CRM/Admin/Form/Setting/Miscellaneous.php
index 1540e6a52d..dfe75c761f 100644
--- a/civicrm/CRM/Admin/Form/Setting/Miscellaneous.php
+++ b/civicrm/CRM/Admin/Form/Setting/Miscellaneous.php
@@ -31,6 +31,9 @@ class CRM_Admin_Form_Setting_Miscellaneous extends CRM_Admin_Form_Setting {
     'recordGeneratedLetters' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'secondDegRelPermissions' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'checksum_timeout' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
+    'dompdf_font_dir' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
+    'dompdf_chroot' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
+    'dompdf_enable_remote' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'wkhtmltopdfPath' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'recentItemsMaxCount' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'recentItemsProviders' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
diff --git a/civicrm/CRM/Admin/Form/Setting/UF.php b/civicrm/CRM/Admin/Form/Setting/UF.php
index 6ffda9f229..16aedbc90f 100644
--- a/civicrm/CRM/Admin/Form/Setting/UF.php
+++ b/civicrm/CRM/Admin/Form/Setting/UF.php
@@ -67,8 +67,8 @@ class CRM_Admin_Form_Setting_UF extends CRM_Admin_Form_Setting {
         $config->dsn != $config->userFrameworkDSN || !empty($drupal_prefix)
       )
     ) {
-      $dsn = CRM_Utils_SQL::autoSwitchDSN($config->dsn);
-      $dsnArray = DB::parseDSN($dsn);
+
+      $dsnArray = DB::parseDSN(CRM_Utils_SQL::autoSwitchDSN($config->dsn));
       $tableNames = CRM_Core_DAO::getTableNames();
       asort($tableNames);
       $tablePrefixes = '$databases[\'default\'][\'default\'][\'prefix\']= [';
@@ -77,13 +77,7 @@ class CRM_Admin_Form_Setting_UF extends CRM_Admin_Form_Setting {
       }
       // add default prefix: the drupal database prefix
       $tablePrefixes .= "\n  'default' => '$drupal_prefix',";
-      $prefix = "";
-      if ($config->dsn != $config->userFrameworkDSN) {
-        $prefix = "`{$dsnArray['database']}`.";
-        if ($config->userFramework === 'Backdrop') {
-          $prefix = "{$dsnArray['database']}.";
-        }
-      }
+      $prefix = $config->userSystem->getCRMDatabasePrefix();
       foreach ($tableNames as $tableName) {
         $tablePrefixes .= "\n  '" . str_pad($tableName . "'", 41) . " => '{$prefix}',";
       }
diff --git a/civicrm/CRM/Admin/Page/Extensions.php b/civicrm/CRM/Admin/Page/Extensions.php
index 79b4100224..b8250a69a4 100644
--- a/civicrm/CRM/Admin/Page/Extensions.php
+++ b/civicrm/CRM/Admin/Page/Extensions.php
@@ -248,6 +248,7 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic {
       }
       $row = (array) $info;
       $row['id'] = $info->key;
+      $row['upgradelink'] = '';
       $action = CRM_Core_Action::UPDATE;
       $row['action'] = CRM_Core_Action::formLink(self::links(),
         $action,
diff --git a/civicrm/CRM/Admin/Page/MessageTemplates.php b/civicrm/CRM/Admin/Page/MessageTemplates.php
index 325b06528d..544a39770e 100644
--- a/civicrm/CRM/Admin/Page/MessageTemplates.php
+++ b/civicrm/CRM/Admin/Page/MessageTemplates.php
@@ -51,7 +51,7 @@ class CRM_Admin_Page_MessageTemplates extends CRM_Core_Page_Basic {
     $sql = '
             SELECT diverted.id, orig.id orig_id
             FROM civicrm_msg_template diverted JOIN civicrm_msg_template orig ON (
-                diverted.workflow_id = orig.workflow_id AND
+                diverted.workflow_name = orig.workflow_name AND
                 orig.is_reserved = 1                    AND (
                     diverted.msg_subject != orig.msg_subject OR
                     diverted.msg_text    != orig.msg_text    OR
@@ -134,7 +134,7 @@ class CRM_Admin_Page_MessageTemplates extends CRM_Core_Page_Basic {
    * @param bool $forceAction
    */
   public function action(&$object, $action, &$values, &$links, $permission, $forceAction = FALSE) {
-    if ($object->workflow_id) {
+    if ($object->workflow_name) {
       // do not expose action link for reverting to default if the template did not diverge or we just reverted it now
       if (!array_key_exists($object->id, $this->_revertible) or
         ($this->_action & CRM_Core_Action::REVERT and $object->id == $this->_revertedId)
@@ -145,7 +145,7 @@ class CRM_Admin_Page_MessageTemplates extends CRM_Core_Page_Basic {
 
       // default workflow templates shouldn’t be deletable
       // workflow templates shouldn’t have disable/enable actions (at least for CiviCRM 3.1)
-      if ($object->workflow_id) {
+      if ($object->workflow_name) {
         $action &= ~CRM_Core_Action::DISABLE;
         $action &= ~CRM_Core_Action::DELETE;
       }
diff --git a/civicrm/CRM/Api4/Page/Api4Explorer.php b/civicrm/CRM/Api4/Page/Api4Explorer.php
index 9cd4508fc5..a31e5feb62 100644
--- a/civicrm/CRM/Api4/Page/Api4Explorer.php
+++ b/civicrm/CRM/Api4/Page/Api4Explorer.php
@@ -59,6 +59,7 @@ class CRM_Api4_Page_Api4Explorer extends CRM_Core_Page {
           $fns[] = [
             'name' => $className::getName(),
             'title' => $className::getTitle(),
+            'description' => $className::getDescription(),
             'params' => $className::getParams(),
             'category' => $className::getCategory(),
             'dataType' => $className::getDataType(),
diff --git a/civicrm/CRM/Badge/BAO/Badge.php b/civicrm/CRM/Badge/BAO/Badge.php
index fc98961f7a..9d2c61339f 100644
--- a/civicrm/CRM/Badge/BAO/Badge.php
+++ b/civicrm/CRM/Badge/BAO/Badge.php
@@ -15,6 +15,8 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Token\TokenProcessor;
+
 /**
  * Class CRM_Badge_Format_Badge.
  *
@@ -40,7 +42,7 @@ class CRM_Badge_BAO_Badge {
    * @param array $layoutInfo
    *   Associated array which contains meta data about format/layout.
    */
-  public function createLabels(&$participants, &$layoutInfo) {
+  public function createLabels($participants, &$layoutInfo) {
     $this->pdf = new CRM_Utils_PDF_Label($layoutInfo['format'], 'mm');
     $this->pdf->Open();
     $this->pdf->setPrintHeader(FALSE);
@@ -58,6 +60,9 @@ class CRM_Badge_BAO_Badge {
       $this->pdf->AddPdfLabel($formattedRow);
     }
 
+    if (CIVICRM_UF === 'UnitTests') {
+      throw new CRM_Core_Exception_PrematureExitException('pdf output called', ['formattedRow' => $formattedRow]);
+    }
     $this->pdf->Output(CRM_Utils_String::munge($layoutInfo['title'], '_', 64) . '.pdf', 'D');
     CRM_Utils_System::civiExit();
   }
@@ -83,10 +88,6 @@ class CRM_Badge_BAO_Badge {
         $value = '';
         if ($element) {
           $value = $row[$element];
-          // hack to fix date field display format
-          if (strpos($element, '_date')) {
-            $value = CRM_Utils_Date::customFormat($value, "%B %E%f");
-          }
         }
 
         $formattedRow['token'][$key] = [
@@ -366,7 +367,7 @@ class CRM_Badge_BAO_Badge {
     $this->imgRes = 300;
 
     if ($img) {
-      list($w, $h) = self::getImageProperties($img, $this->imgRes, $w, $h);
+      [$w, $h] = self::getImageProperties($img, $this->imgRes, $w, $h);
       $this->pdf->Image($img, $x, $y, $w, $h, '', '', '', FALSE, 72, '', FALSE,
         FALSE, $this->debug, FALSE, FALSE, FALSE);
     }
@@ -399,43 +400,33 @@ class CRM_Badge_BAO_Badge {
   public static function buildBadges(&$params, &$form) {
     // get name badge layout info
     $layoutInfo = CRM_Badge_BAO_Layout::buildLayout($params);
-
+    $tokenProcessor = new TokenProcessor(\Civi::dispatcher(), ['schema' => ['participantId', 'eventId'], 'smarty' => FALSE]);
     // split/get actual field names from token and individual contact image URLs
-    $returnProperties = [];
+    $processorTokens = [];
     if (!empty($layoutInfo['data']['token'])) {
       foreach ($layoutInfo['data']['token'] as $index => $value) {
-        $element = '';
         if ($value) {
-          $token = CRM_Utils_Token::getTokens($value);
-          if (key($token) == 'contact') {
-            $element = $token['contact'][0];
-          }
-          elseif (key($token) == 'event') {
-            $element = $token['event'][0];
-            //FIX ME - we need to standardize event token names
-            if (substr($element, 0, 6) != 'event_') {
-              $element = 'event_' . $element;
-            }
-          }
-          elseif (key($token) == 'participant') {
-            $element = $token['participant'][0];
-          }
-
-          // build returnproperties for query
-          $returnProperties[$element] = 1;
+          $tokenName = str_replace(['}', '{contact.', '{participant.', '{event.'], '', $value);
+          $tokenProcessor->addMessage($tokenName, $value, 'text/plain');
+          $processorTokens[] = $tokenName;
+          $layoutInfo['data']['rowElements'][$index] = $tokenName;
         }
-
-        // add actual field name to row element
-        $layoutInfo['data']['rowElements'][$index] = $element;
       }
     }
 
-    // add additional required fields for query execution
-    $additionalFields = ['participant_register_date', 'participant_id', 'event_id', 'contact_id', 'image_URL'];
-    foreach ($additionalFields as $field) {
-      $returnProperties[$field] = 1;
-    }
+    $returnProperties = [
+      'participant_id' => 1,
+      'event_id' => 1,
+      'contact_id' => 1,
+    ];
+    $sortOrder = $form->get(CRM_Utils_Sort::SORT_ORDER);
 
+    if ($sortOrder) {
+      $sortField = explode(' ', $sortOrder)[0];
+      // Add to select so aliaising is handled.
+      $returnProperties[trim(str_replace('`', ' ', $sortField))] = 1;
+      $sortOrder = " ORDER BY $sortOrder";
+    }
     if ($form->_single) {
       $queryParams = NULL;
     }
@@ -447,7 +438,7 @@ class CRM_Badge_BAO_Badge {
       CRM_Contact_BAO_Query::MODE_EVENT
     );
 
-    list($select, $from, $where, $having) = $query->query();
+    [$select, $from, $where, $having] = $query->query();
     if (empty($where)) {
       $where = "WHERE {$form->_componentClause}";
     }
@@ -455,27 +446,18 @@ class CRM_Badge_BAO_Badge {
       $where .= " AND {$form->_componentClause}";
     }
 
-    $sortOrder = NULL;
-    if ($form->get(CRM_Utils_Sort::SORT_ORDER)) {
-      $sortOrder = $form->get(CRM_Utils_Sort::SORT_ORDER);
-      if (!empty($sortOrder)) {
-        $sortOrder = " ORDER BY $sortOrder";
-      }
-    }
     $queryString = "$select $from $where $having $sortOrder";
 
     $dao = CRM_Core_DAO::executeQuery($queryString);
     $rows = [];
+
     while ($dao->fetch()) {
-      $query->convertToPseudoNames($dao);
-      $rows[$dao->participant_id] = [];
-      foreach ($returnProperties as $key => $dontCare) {
-        $value = $dao->$key ?? NULL;
-        // Format custom fields
-        if (strstr($key, 'custom_') && isset($value)) {
-          $value = CRM_Core_BAO_CustomField::displayValue($value, substr($key, 7), $dao->contact_id);
-        }
-        $rows[$dao->participant_id][$key] = $value;
+      $tokenProcessor->addRow(['contactId' => $dao->contact_id, 'participantId' => $dao->participant_id, 'eventId' => $dao->event_id]);
+    }
+    $tokenProcessor->evaluate();
+    foreach ($tokenProcessor->getRows() as $row) {
+      foreach ($processorTokens as $processorToken) {
+        $rows[$row->context['participantId']][$processorToken] = $row->render($processorToken);
       }
     }
 
diff --git a/civicrm/CRM/Badge/Form/Layout.php b/civicrm/CRM/Badge/Form/Layout.php
index 25834a1901..4cde2b0baf 100644
--- a/civicrm/CRM/Badge/Form/Layout.php
+++ b/civicrm/CRM/Badge/Form/Layout.php
@@ -49,13 +49,17 @@ class CRM_Badge_Form_Layout extends CRM_Admin_Form {
     $this->add('text', 'description', ts('Description'),
       CRM_Core_DAO::getAttribute('CRM_Core_DAO_PrintLabel', 'title'));
 
-    // get the tokens
+    // get the tokens - at the point of rendering the token processor is used so
+    // the only reason for this cut-down set of tokens is UI on this
+    // screen and / or historical.
     $contactTokens = CRM_Core_SelectValues::contactTokens();
     $eventTokens = [
       '{event.event_id}' => ts('Event ID'),
       '{event.title}' => ts('Event Title'),
-      '{event.start_date}' => ts('Event Start Date'),
-      '{event.end_date}' => ts('Event End Date'),
+      // This layout selection is day + month eg October 27th
+      // obviously someone felt year was not logical for dates.
+      '{event.start_date|crmDate:"%B %E%f"}' => ts('Event Start Date'),
+      '{event.end_date|crmDate:"%B %E%f"}' => ts('Event End Date'),
     ];
     $participantTokens = CRM_Core_SelectValues::participantTokens();
 
diff --git a/civicrm/CRM/Batch/Form/Entry.php b/civicrm/CRM/Batch/Form/Entry.php
index 77ffafc521..1e204d8293 100644
--- a/civicrm/CRM/Batch/Form/Entry.php
+++ b/civicrm/CRM/Batch/Form/Entry.php
@@ -136,6 +136,13 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
     return $this->currentRowMembershipID;
   }
 
+  /**
+   * Get the order (contribution) status for the current row.
+   */
+  protected function getCurrentRowPaymentStatus() {
+    return CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $this->currentRow['contribution_status_id']);
+  }
+
   /**
    * Get the contact ID for the current row.
    *
@@ -781,7 +788,7 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
         $this->updateContactInfo($value);
 
         //check for custom data
-        $value['custom'] = CRM_Core_BAO_CustomField::postProcess($params['field'][$key],
+        $value['custom'] = CRM_Core_BAO_CustomField::postProcess($this->currentRow,
           $key,
           'Membership',
           $value['membership_type_id']
@@ -813,15 +820,13 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
           'membership_type_id' => $value['membership_type_id'],
           'financial_type_id' => $value['financial_type_id'],
         ], $key);
+        $order->setEntityParameters($this->getCurrentRowMembershipParams(), $key);
 
         if (!empty($order->getLineItems())) {
           $value['lineItems'] = [$order->getPriceSetID() => $order->getPriceFieldIndexedLineItems()];
           $value['processPriceSet'] = TRUE;
         }
         // end of contribution related section
-
-        $membershipParams = $this->getCurrentRowMembershipParams();
-
         if ($this->currentRowIsRenew()) {
           // The following parameter setting may be obsolete.
           $this->_params = $params;
@@ -844,11 +849,37 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
           $this->setCurrentRowMembershipID($membership->id);
         }
         else {
-          // @todo - specify the relevant fields - don't copy all over
-          $membershipParams = array_merge($value, $membershipParams);
-          $membership = CRM_Member_BAO_Membership::create($membershipParams);
-        }
+          $createdOrder = civicrm_api3('Order', 'create', [
+            'line_items' => $order->getLineItemForV3OrderApi(),
+            'receive_date' => $this->currentRow['receive_date'],
+            'check_number' => $this->currentRow['check_number'] ?? '',
+            'contact_id' => $this->getCurrentRowContactID(),
+            'batch_id' => $this->_batchId,
+            'financial_type_id' => $this->currentRow['financial_type_id'],
+            'payment_instrument_id' => $this->currentRow['payment_instrument_id'],
+          ]);
+          $this->currentRowContributionID = $createdOrder['id'];
+
+          $this->setCurrentRowMembershipID($createdOrder['values'][$this->getCurrentRowContributionID()]['line_item'][0]['entity_id']);
+          if ($this->getCurrentRowPaymentStatus() === 'Completed') {
+            civicrm_api3('Payment', 'create', [
+              'total_amount' => $order->getTotalAmount() + $order->getTotalTaxAmount(),
+              'check_number' => $this->currentRow['check_number'] ?? '',
+              'trxn_date' => $this->currentRow['receive_date'],
+              'trxn_id' => $this->currentRow['trxn_id'],
+              'payment_instrument_id' => $this->currentRow['payment_instrument_id'],
+              'contribution_id' => $this->getCurrentRowContributionID(),
+              'is_send_contribution_notification' => FALSE,
+            ]);
+          }
 
+          if (in_array($this->getCurrentRowPaymentStatus(), ['Failed', 'Cancelled'])) {
+            Contribution::update()
+              ->addValue('contribution_status_id', $this->currentRow['contribution_status_id'])
+              ->addWhere('id', '=', $this->getCurrentRowContributionID())
+              ->execute();
+          }
+        }
         //process premiums
         if (!empty($value['product_name'])) {
           if ($value['product_name'][0] > 0) {
@@ -872,9 +903,9 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
         // end of premium
 
         //send receipt mail.
-        if ($membership->id && !empty($value['send_receipt'])) {
-          $value['membership_id'] = $membership->id;
-          $this->emailReceipt($this, $value, $membership);
+        if ($this->getCurrentRowMembershipID() && !empty($value['send_receipt'])) {
+          $value['membership_id'] = $this->getCurrentRowMembershipID();
+          $this->emailReceipt($this, $value);
         }
       }
     }
@@ -887,15 +918,16 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
    * @param CRM_Core_Form $form
    *   Form object.
    * @param array $formValues
-   * @param object $membership
-   *   Object.
    *
    * @return bool
    *   true if mail was sent successfully
    * @throws \CRM_Core_Exception|\API_Exception
    *
    */
-  protected function emailReceipt($form, &$formValues, $membership): bool {
+  protected function emailReceipt($form, &$formValues): bool {
+    $membership = new CRM_Member_BAO_Membership();
+    $membership->id = $this->getCurrentRowMembershipID();
+    $membership->fetch();
     // @todo figure out how much of the stuff below is genuinely shared with the batch form & a logical shared place.
     if (!empty($formValues['payment_instrument_id'])) {
       $paymentInstrument = CRM_Contribute_PseudoConstant::paymentInstrument();
@@ -1165,8 +1197,10 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
       $this->currentRowExistingMembership = CRM_Member_BAO_Membership::getContactMembership($this->getCurrentRowContactID(), $this->getCurrentRowMembershipTypeID(),
         FALSE, NULL, TRUE
       );
-      // Check and fix the membership if it is STALE
-      CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew($this->currentRowExistingMembership);
+      if ($this->currentRowExistingMembership) {
+        // Check and fix the membership if it is STALE
+        CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew($this->currentRowExistingMembership);
+      }
     }
     return $this->currentRowExistingMembership;
   }
@@ -1177,12 +1211,30 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
    * @return array
    */
   private function getCurrentRowMembershipParams(): array {
-    return [
+    return array_merge($this->getCurrentRowCustomParams(), [
       'start_date' => $this->currentRow['membership_start_date'] ?? NULL,
       'end_date' => $this->currentRow['membership_end_date'] ?? NULL,
       'join_date' => $this->currentRow['membership_join_date'] ?? NULL,
       'campaign_id' => $this->currentRow['member_campaign_id'] ?? NULL,
-    ];
+      'source' => $this->currentRow['source'] ?? (!$this->currentRowIsRenew() ? ts('Batch entry') : ''),
+      'membership_type_id' => $this->currentRow['membership_type_id'],
+      'contact_id' => $this->getCurrentRowContactID(),
+    ]);
+  }
+
+  /**
+   * Get the custom value parameters from the current row.
+   *
+   * @return array
+   */
+  private function getCurrentRowCustomParams(): array {
+    $return = [];
+    foreach ($this->currentRow as $field => $value) {
+      if (strpos($field, 'custom_') === 0) {
+        $return[$field] = $value;
+      }
+    }
+    return $return;
   }
 
 }
diff --git a/civicrm/CRM/Campaign/BAO/Survey.php b/civicrm/CRM/Campaign/BAO/Survey.php
index 93b487982b..b37e6b9bce 100644
--- a/civicrm/CRM/Campaign/BAO/Survey.php
+++ b/civicrm/CRM/Campaign/BAO/Survey.php
@@ -18,7 +18,7 @@
 /**
  * Class CRM_Campaign_BAO_Survey.
  */
-class CRM_Campaign_BAO_Survey extends CRM_Campaign_DAO_Survey {
+class CRM_Campaign_BAO_Survey extends CRM_Campaign_DAO_Survey implements Civi\Test\HookInterface {
 
   /**
    * Retrieve DB object based on input parameters.
@@ -366,24 +366,31 @@ SELECT  survey.id    as id,
   }
 
   /**
-   * Delete the survey.
+   * Delete a survey.
    *
    * @param int $id
-   *   Survey id.
-   *
+   * @deprecated
    * @return mixed|null
    */
   public static function del($id) {
     if (!$id) {
       return NULL;
     }
-    $reportId = CRM_Campaign_BAO_Survey::getReportID($id);
-    if ($reportId) {
-      CRM_Report_BAO_ReportInstance::del($reportId);
+    self::deleteRecord(['id' => $id]);
+    return 1;
+  }
+
+  /**
+   * Event fired prior to modifying a Survey.
+   * @param \Civi\Core\Event\PreEvent $event
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if ($event->action === 'delete' && $event->id) {
+      $reportId = self::getReportID($event->id);
+      if ($reportId) {
+        CRM_Report_BAO_ReportInstance::deleteRecord(['id' => $reportId]);
+      }
     }
-    $dao = new CRM_Campaign_DAO_Survey();
-    $dao->id = $id;
-    return $dao->delete();
   }
 
   /**
diff --git a/civicrm/CRM/Campaign/DAO/Survey.php b/civicrm/CRM/Campaign/DAO/Survey.php
index b46e6235c0..bc051c862c 100644
--- a/civicrm/CRM/Campaign/DAO/Survey.php
+++ b/civicrm/CRM/Campaign/DAO/Survey.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Campaign/Survey.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:45c10db72afe877c41ddb78b79153648)
+ * (GenCodeChecksum:8fec5a0ffb4667af4f00820de74aa577)
  */
 
 /**
@@ -474,6 +474,13 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'entity' => 'Survey',
           'bao' => 'CRM_Campaign_BAO_Survey',
           'localizable' => 0,
+          'pseudoconstant' => [
+            'table' => 'civicrm_option_group',
+            'keyColumn' => 'id',
+            'labelColumn' => 'title',
+            'nameColumn' => 'name',
+            'condition' => 'name LIKE "civicrm_survey_%"',
+          ],
           'add' => '3.3',
         ],
         'bypass_confirm' => [
diff --git a/civicrm/CRM/Case/Form/ActivityToCase.php b/civicrm/CRM/Case/Form/ActivityToCase.php
index e591c8405a..95b2d6b7f7 100644
--- a/civicrm/CRM/Case/Form/ActivityToCase.php
+++ b/civicrm/CRM/Case/Form/ActivityToCase.php
@@ -37,11 +37,11 @@ class CRM_Case_Form_ActivityToCase extends CRM_Core_Form {
 
     switch (CRM_Utils_Request::retrieve('fileOnCaseAction', 'String')) {
       case 'move':
-        CRM_Utils_System::setTitle(ts('Move to Case'));
+        $this->setTitle(ts('Move to Case'));
         break;
 
       case 'copy':
-        CRM_Utils_System::setTitle(ts('Copy to Case'));
+        $this->setTitle(ts('Copy to Case'));
         break;
 
     }
diff --git a/civicrm/CRM/Case/Form/ActivityView.php b/civicrm/CRM/Case/Form/ActivityView.php
index 6193357e08..771d33d498 100644
--- a/civicrm/CRM/Case/Form/ActivityView.php
+++ b/civicrm/CRM/Case/Form/ActivityView.php
@@ -83,7 +83,7 @@ class CRM_Case_Form_ActivityView extends CRM_Core_Form {
     }
 
     if ($revs) {
-      CRM_Utils_System::setTitle(ts('Activity Revision History'));
+      $this->setTitle(ts('Activity Revision History'));
       $this->assign('revs', $revs);
       $this->assign('result', $viewPriorActivities);
       $this->assign('subject', $activitySubject);
diff --git a/civicrm/CRM/Case/Form/Case.php b/civicrm/CRM/Case/Form/Case.php
index 5d83a0ab82..b22d709192 100644
--- a/civicrm/CRM/Case/Form/Case.php
+++ b/civicrm/CRM/Case/Form/Case.php
@@ -164,7 +164,7 @@ class CRM_Case_Form_Case extends CRM_Core_Form {
 
     $details = CRM_Case_PseudoConstant::caseActivityType(FALSE);
 
-    CRM_Utils_System::setTitle($details[$this->_activityTypeId]['label']);
+    $this->setTitle($details[$this->_activityTypeId]['label']);
     $this->assign('activityType', $details[$this->_activityTypeId]['label']);
     $this->assign('activityTypeDescription', $details[$this->_activityTypeId]['description']);
 
diff --git a/civicrm/CRM/Case/Form/CaseView.php b/civicrm/CRM/Case/Form/CaseView.php
index 910282887b..2123f2f7ee 100644
--- a/civicrm/CRM/Case/Form/CaseView.php
+++ b/civicrm/CRM/Case/Form/CaseView.php
@@ -46,7 +46,7 @@ class CRM_Case_Form_CaseView extends CRM_Core_Form {
       }
       $this->assign('relatedCases', $relatedCases);
       $this->assign('showRelatedCases', TRUE);
-      CRM_Utils_System::setTitle(ts('Related Cases'));
+      $this->setTitle(ts('Related Cases'));
       return;
     }
 
@@ -103,7 +103,7 @@ class CRM_Case_Form_CaseView extends CRM_Core_Form {
     $displayName = CRM_Contact_BAO_Contact::displayName($this->_contactID);
     $this->assign('displayName', $displayName);
 
-    CRM_Utils_System::setTitle($displayName . ' - ' . $caseType);
+    $this->setTitle($displayName . ' - ' . $caseType);
 
     $recentOther = [];
     if (CRM_Core_Permission::checkActionPermission('CiviCase', CRM_Core_Action::DELETE)) {
@@ -251,7 +251,7 @@ class CRM_Case_Form_CaseView extends CRM_Core_Form {
     $activityLinks = ['' => ts('Add Activity')];
     foreach ($aTypes as $type => $label) {
       if ($type == $emailActivityType) {
-        $url = CRM_Utils_System::url('civicrm/activity/email/add',
+        $url = CRM_Utils_System::url('civicrm/case/email/add',
           "action=add&context=standalone&reset=1&caseid={$this->_caseID}&atype=$type",
           FALSE, NULL, FALSE
         );
diff --git a/civicrm/CRM/Case/Form/CustomData.php b/civicrm/CRM/Case/Form/CustomData.php
index 76194afb05..95a339c255 100644
--- a/civicrm/CRM/Case/Form/CustomData.php
+++ b/civicrm/CRM/Case/Form/CustomData.php
@@ -60,7 +60,7 @@ class CRM_Case_Form_CustomData extends CRM_Core_Form {
     // Array contains only one item
     foreach ($groupTree as $groupValues) {
       $this->_customTitle = $groupValues['title'];
-      CRM_Utils_System::setTitle(ts('Edit %1', [1 => $groupValues['title']]));
+      $this->setTitle(ts('Edit %1', [1 => $groupValues['title']]));
     }
 
     $this->_defaults = [];
diff --git a/civicrm/CRM/Case/Form/Task.php b/civicrm/CRM/Case/Form/Task.php
index d1f318ac43..b52a37bdd0 100644
--- a/civicrm/CRM/Case/Form/Task.php
+++ b/civicrm/CRM/Case/Form/Task.php
@@ -34,11 +34,7 @@ class CRM_Case_Form_Task extends CRM_Core_Form_Task {
    * @inheritDoc
    */
   public function setContactIDs() {
-    // @todo Parameters shouldn't be needed and should be class member
-    // variables instead, set appropriately by each subclass.
-    $this->_contactIds = $this->getContactIDsFromComponent($this->_entityIds,
-      'civicrm_case_contact', 'case_id'
-    );
+    $this->_contactIds = $this->getContactIDs();
   }
 
   /**
@@ -68,6 +64,23 @@ class CRM_Case_Form_Task extends CRM_Core_Form_Task {
     return 'ORDER BY ' . implode(',', $order_array);
   }
 
+  /**
+   * Get the rows from the results to be pdf-d.
+   *
+   * @return array
+   */
+  protected function getRows(): array {
+    $rows = [];
+    foreach ($this->_contactIds as $index => $contactID) {
+      $caseID = $this->getVar('_caseId');
+      if (empty($caseID) && !empty($this->_caseIds[$index])) {
+        $caseID = $this->_caseIds[$index];
+      }
+      $rows[] = ['contact_id' => $contactID, 'schema' => ['caseId' => $caseID, 'contactId' => $contactID]];
+    }
+    return $rows;
+  }
+
   /**
    * Get the name of the table for the relevant entity.
    *
@@ -86,4 +99,28 @@ class CRM_Case_Form_Task extends CRM_Core_Form_Task {
     return 'case_id';
   }
 
+  protected function getContactIDs(): array {
+    if (isset($this->_contactIds)) {
+      return $this->_contactIds;
+    }
+    $contactIDSFromUrl = CRM_Utils_Request::retrieve('cid', 'CommaSeparatedIntegers', $this);
+    if (!empty($contactIDSFromUrl)) {
+      return explode(',', $contactIDSFromUrl);
+    }
+    // @todo Parameters shouldn't be needed and should be class member
+    // variables instead, set appropriately by each subclass.
+    return $this->getContactIDsFromComponent($this->_entityIds,
+      'civicrm_case_contact', 'case_id'
+    );
+  }
+
+  /**
+   * Get the token processor schema required to list any tokens for this task.
+   *
+   * @return array
+   */
+  protected function getTokenSchema(): array {
+    return ['contactId', 'caseId'];
+  }
+
 }
diff --git a/civicrm/CRM/Case/Form/Task/Email.php b/civicrm/CRM/Case/Form/Task/Email.php
new file mode 100644
index 0000000000..06a77451c1
--- /dev/null
+++ b/civicrm/CRM/Case/Form/Task/Email.php
@@ -0,0 +1,92 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ */
+
+/**
+ * This class provides the functionality to email a group of contacts.
+ */
+class CRM_Case_Form_Task_Email extends CRM_Case_Form_Task {
+  use CRM_Contact_Form_Task_EmailTrait;
+
+  /**
+   * Getter for isSearchContext.
+   *
+   * @return bool
+   */
+  public function isSearchContext(): bool {
+    return FALSE;
+  }
+
+  /**
+   * List available tokens for this form.
+   *
+   * @todo - this is not standard behaviour. We should either stop filtering
+   * case tokens by type and just remove this function (which would allow
+   * domain tokens to show up too) or
+   * resolve https://lab.civicrm.org/dev/core/-/issues/2788
+   *
+   * @return array
+   * @throws \CRM_Core_Exception
+   */
+  public function listTokens() {
+    $tokens = CRM_Core_SelectValues::contactTokens();
+
+    if ($this->getCaseID()) {
+      // For a single case, list tokens relevant for only that case type
+      $caseTypeId = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $this->getCaseID(), 'case_type_id');
+      $tokens += CRM_Core_SelectValues::caseTokens($caseTypeId);
+    }
+
+    return $tokens;
+  }
+
+  /**
+   * Get the subject for the message.
+   *
+   * The case handling should possibly be on the case form.....
+   *
+   * @return string
+   * @throws \CRM_Core_Exception
+   */
+  protected function getSubject():string {
+    $subject = $this->getSubmittedValue('subject');
+    // CRM-5916: prepend case id hash to CiviCase-originating emails’ subjects
+    if ($this->getCaseID()) {
+      $hash = substr(sha1(CIVICRM_SITE_KEY . $this->getCaseID()), 0, 7);
+      $subject = "[case #$hash] $subject";
+    }
+    return $subject;
+  }
+
+  /**
+   * Get the result rows to email.
+   *
+   * @return array
+   *
+   * @throws \CRM_Core_Exception
+   */
+  protected function getRowsForEmails(): array {
+    $formattedContactDetails = [];
+    foreach ($this->getEmails() as $details) {
+      $contactID = $details['contact_id'];
+      $index = $contactID . '::' . $details['email'];
+      $formattedContactDetails[$index] = $details;
+      $formattedContactDetails[$index]['schema'] = ['contactId' => $contactID, 'caseId' => $this->getCaseID()];
+    }
+    return $formattedContactDetails;
+  }
+
+}
diff --git a/civicrm/CRM/Case/Form/Task/PDF.php b/civicrm/CRM/Case/Form/Task/PDF.php
index 65954ea272..c8ad163161 100644
--- a/civicrm/CRM/Case/Form/Task/PDF.php
+++ b/civicrm/CRM/Case/Form/Task/PDF.php
@@ -43,13 +43,6 @@ class CRM_Case_Form_Task_PDF extends CRM_Case_Form_Task {
     $this->setContactIDs();
   }
 
-  /**
-   * Process the form after the input has been submitted and validated.
-   */
-  public function postProcess() {
-    CRM_Contact_Form_Task_PDFLetterCommon::postProcess($this);
-  }
-
   /**
    * List available tokens for this form.
    *
diff --git a/civicrm/CRM/Case/Tokens.php b/civicrm/CRM/Case/Tokens.php
new file mode 100644
index 0000000000..490453c9d1
--- /dev/null
+++ b/civicrm/CRM/Case/Tokens.php
@@ -0,0 +1,29 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * Class CRM_Case_Tokens
+ *
+ * Generate "case.*" tokens.
+ */
+class CRM_Case_Tokens extends CRM_Core_EntityTokens {
+
+  /**
+   * Get the entity name for api v4 calls.
+   *
+   * @return string
+   */
+  protected function getApiEntityName(): string {
+    return 'Case';
+  }
+
+}
diff --git a/civicrm/CRM/Case/xml/Menu/Case.xml b/civicrm/CRM/Case/xml/Menu/Case.xml
index 0d77eb9f8e..91348e1c9a 100644
--- a/civicrm/CRM/Case/xml/Menu/Case.xml
+++ b/civicrm/CRM/Case/xml/Menu/Case.xml
@@ -135,4 +135,10 @@
     <path>civicrm/ajax/get-cases</path>
     <page_callback>CRM_Case_Page_AJAX::getCases</page_callback>
   </item>
+  <item>
+    <path>civicrm/case/email/add</path>
+    <path_arguments>action=add,task=email</path_arguments>
+    <title>Email</title>
+    <page_callback>CRM_Case_Form_Task_Email</page_callback>
+  </item>
 </menu>
diff --git a/civicrm/CRM/Contact/BAO/Contact.php b/civicrm/CRM/Contact/BAO/Contact.php
index cb855c0b46..ab2850c07b 100644
--- a/civicrm/CRM/Contact/BAO/Contact.php
+++ b/civicrm/CRM/Contact/BAO/Contact.php
@@ -14,7 +14,7 @@
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
-class CRM_Contact_BAO_Contact extends CRM_Contact_DAO_Contact {
+class CRM_Contact_BAO_Contact extends CRM_Contact_DAO_Contact implements Civi\Test\HookInterface {
 
   /**
    * SQL function used to format the phone_numeric field via trigger.
@@ -3511,53 +3511,31 @@ LEFT JOIN civicrm_address ON ( civicrm_address.contact_id = civicrm_contact.id )
   }
 
   /**
-   * Delete a contact-related object that has an 'is_primary' field.
-   *
-   * Ensures that is_primary gets assigned to another object if available
-   * Also calls pre/post hooks
-   *
-   * @param string $type
-   * @param int $id
-   *
-   * @return bool
+   * Event fired after modifying any entity.
+   * @param \Civi\Core\Event\PostEvent $event
    */
-  public static function deleteObjectWithPrimary($type, $id) {
-    if (!$id || !is_numeric($id)) {
-      return FALSE;
-    }
-    $daoName = "CRM_Core_DAO_$type";
-    $obj = new $daoName();
-    $obj->id = $id;
-    $obj->find();
-
-    if ($obj->fetch()) {
-      CRM_Utils_Hook::pre('delete', $type, $id);
-      $contactId = $obj->contact_id;
-      $obj->delete();
-    }
-    else {
-      return FALSE;
-    }
-    // is_primary is only relavent if this field belongs to a contact
-    if ($contactId) {
-      $dao = new $daoName();
-      $dao->contact_id = $contactId;
+  public static function on_hook_civicrm_post(\Civi\Core\Event\PostEvent $event) {
+    // Handle deleting a related entity with is_primary
+    $hasPrimary = ['Address', 'Email', 'IM', 'OpenID', 'Phone'];
+    if (
+      $event->action === 'delete' && $event->id &&
+      in_array($event->entity, $hasPrimary) &&
+      !empty($event->object->is_primary) &&
+      !empty($event->object->contact_id)
+    ) {
+      $daoClass = CRM_Core_DAO_AllCoreTables::getFullName($event->entity);
+      $dao = new $daoClass();
+      $dao->contact_id = $event->object->contact_id;
       $dao->is_primary = 1;
       // Pick another record to be primary (if one isn't already)
       if (!$dao->find(TRUE)) {
         $dao->is_primary = 0;
-        $dao->find();
-        if ($dao->fetch()) {
-          $dao->is_primary = 1;
-          $dao->save();
-          if ($type === 'Email') {
-            CRM_Core_BAO_UFMatch::updateUFName($dao->contact_id);
-          }
+        if ($dao->find(TRUE)) {
+          $baoClass = CRM_Core_DAO_AllCoreTables::getBAOClassName($daoClass);
+          $baoClass::writeRecord(['id' => $dao->id, 'is_primary' => 1]);
         }
       }
     }
-    CRM_Utils_Hook::post('delete', $type, $id, $obj);
-    return TRUE;
   }
 
   /**
diff --git a/civicrm/CRM/Contact/BAO/ContactType.php b/civicrm/CRM/Contact/BAO/ContactType.php
index 790fe70b6a..3b7cc38870 100644
--- a/civicrm/CRM/Contact/BAO/ContactType.php
+++ b/civicrm/CRM/Contact/BAO/ContactType.php
@@ -9,8 +9,6 @@
  +--------------------------------------------------------------------+
  */
 
-use Civi\Api4\ContactType;
-
 /**
  *
  * @package CRM
@@ -56,8 +54,6 @@ class CRM_Contact_BAO_ContactType extends CRM_Contact_DAO_ContactType {
   /**
    * Retrieve basic contact type information.
    *
-   * @todo - call getAllContactTypes & return filtered results.
-   *
    * @param bool $includeInactive
    *
    * @return array
@@ -67,15 +63,9 @@ class CRM_Contact_BAO_ContactType extends CRM_Contact_DAO_ContactType {
    * @throws \Civi\API\Exception\UnauthorizedException
    */
   public static function basicTypeInfo($includeInactive = FALSE) {
-    $cacheKey = 'CRM_CT_BTI_' . (int) $includeInactive;
-    if (!Civi::cache('contactTypes')->has($cacheKey)) {
-      $contactType = ContactType::get(FALSE)->setSelect(['*'])->addWhere('parent_id', 'IS NULL');
-      if ($includeInactive === FALSE) {
-        $contactType->addWhere('is_active', '=', 1);
-      }
-      Civi::cache('contactTypes')->set($cacheKey, (array) $contactType->execute()->indexBy('name'));
-    }
-    return Civi::cache('contactTypes')->get($cacheKey);
+    return array_filter(self::getAllContactTypes(), function($type) use ($includeInactive) {
+      return empty($type['parent']) && ($includeInactive || $type['is_active']);
+    });
   }
 
   /**
@@ -183,8 +173,7 @@ class CRM_Contact_BAO_ContactType extends CRM_Contact_DAO_ContactType {
   }
 
   /**
-   *
-   * retrieve list of all types i.e basic + subtypes.
+   * Retrieve list of all types i.e basic + subtypes.
    *
    * @param bool $all
    *
@@ -206,7 +195,6 @@ class CRM_Contact_BAO_ContactType extends CRM_Contact_DAO_ContactType {
    *
    * @return array
    *   Array of basic types + all subtypes.
-   * @throws \API_Exception
    */
   public static function contactTypeInfo($all = FALSE) {
     $contactTypes = self::getAllContactTypes();
@@ -227,7 +215,7 @@ class CRM_Contact_BAO_ContactType extends CRM_Contact_DAO_ContactType {
    * @param null $typeName
    * @param null $delimiter
    *
-   * @return array
+   * @return array|string
    *   Array of basictypes with name as 'built-in name' and 'label' as value
    * @throws \API_Exception
    */
@@ -360,7 +348,6 @@ AND   ( p.is_active = 1 OR p.id IS NULL )
    *
    * @param array|string $subType contact subType.
    * @return array|string
-   *   basicTypes.
    */
   public static function getBasicType($subType) {
     // @todo - use Cache class - ie like Civi::cache('contactTypes')
@@ -701,7 +688,6 @@ WHERE name = %1';
    * @return bool
    */
   public static function hasRelationships($contactId, $contactType) {
-    $subTypeClause = NULL;
     if (self::isaSubType($contactType)) {
       $subType = $contactType;
       $contactType = self::getBasicType($subType);
@@ -858,8 +844,10 @@ WHERE ($subtypeClause)";
   /**
    * Get all contact types, leveraging caching.
    *
-   * @return array
+   * Note, this function is used within APIv4 Entity.get, so must use a
+   * SQL query instead of calling APIv4 to avoid an infinite loop.
    *
+   * @return array
    * @throws \API_Exception
    */
   protected static function getAllContactTypes() {
@@ -867,14 +855,19 @@ WHERE ($subtypeClause)";
     $cacheKey = 'all_' . $GLOBALS['tsLocale'];
     $contactTypes = $cache->get($cacheKey);
     if ($contactTypes === NULL) {
-      $contactTypes = (array) ContactType::get(FALSE)
-        ->setSelect(['id', 'name', 'label', 'description', 'is_active', 'is_reserved', 'image_URL', 'parent_id', 'parent_id:name', 'parent_id:label'])
-        ->execute()->indexBy('name');
-
+      $query = CRM_Utils_SQL_Select::from('civicrm_contact_type');
+      $dao = CRM_Core_DAO::executeQuery($query->toSQL());
+      $contactTypes = array_column($dao->fetchAll(), NULL, 'name');
+      $name_options = self::buildOptions('parent_id', 'validate');
+      $label_options = self::buildOptions('parent_id', 'get');
       foreach ($contactTypes as $id => $contactType) {
-        $contactTypes[$id]['parent'] = $contactType['parent_id:name'];
-        $contactTypes[$id]['parent_label'] = $contactType['parent_id:label'];
-        unset($contactTypes[$id]['parent_id:name'], $contactTypes[$id]['parent_id:label']);
+        $contactTypes[$id]['parent'] = $contactType['parent_id'] ? $name_options[$contactType['parent_id']] : NULL;
+        $contactTypes[$id]['parent_label'] = $contactType['parent_id'] ? $label_options[$contactType['parent_id']] : NULL;
+        // Cast int/bool types.
+        $contactTypes[$id]['id'] = (int) $contactType['id'];
+        $contactTypes[$id]['parent_id'] = $contactType['parent_id'] ? (int) $contactType['parent_id'] : NULL;
+        $contactTypes[$id]['is_active'] = (bool) $contactType['is_active'];
+        $contactTypes[$id]['is_reserved'] = (bool) $contactType['is_reserved'];
       }
       $cache->set($cacheKey, $contactTypes);
     }
diff --git a/civicrm/CRM/Contact/BAO/GroupContactCache.php b/civicrm/CRM/Contact/BAO/GroupContactCache.php
index 6b44f38f5e..4f77fe27bc 100644
--- a/civicrm/CRM/Contact/BAO/GroupContactCache.php
+++ b/civicrm/CRM/Contact/BAO/GroupContactCache.php
@@ -210,33 +210,20 @@ WHERE  id IN ( $groupIDs )
   }
 
   /**
-   * Function to clear group contact cache and reset the corresponding
-   *  group's cache and refresh date
+   * Function to clear group contact cache
    *
-   * @param int $groupID
+   * @param array $groupIDs
    *
    */
-  protected static function clearGroupContactCache($groupID): void {
-    $transaction = new CRM_Core_Transaction();
-    $query = "
+  protected static function clearGroupContactCache($groupIDs): void {
+    $clearCacheQuery = '
     DELETE  g
       FROM  civicrm_group_contact_cache g
-      WHERE  g.group_id = %1 ";
-
-    $update = "
-  UPDATE civicrm_group g
-    SET    cache_date = null
-    WHERE  id = %1 ";
-
+      WHERE  g.group_id IN (%1) ';
     $params = [
-      1 => [$groupID, 'Integer'],
+      1 => [implode(',', $groupIDs), 'CommaSeparatedIntegers'],
     ];
-
-    CRM_Core_DAO::executeQuery($query, $params);
-    // also update the cache_date for these groups
-    CRM_Core_DAO::executeQuery($update, $params);
-
-    $transaction->commit();
+    CRM_Core_DAO::executeQuery($clearCacheQuery, $params);
   }
 
   /**
@@ -248,6 +235,10 @@ WHERE  id IN ( $groupIDs )
    * clear.
    */
   protected static function flushCaches() {
+    if (!CRM_Core_Config::isPermitCacheFlushMode()) {
+      return;
+    }
+
     try {
       $lock = self::getLockForRefresh();
     }
@@ -255,19 +246,32 @@ WHERE  id IN ( $groupIDs )
       // Someone else is kindly doing the refresh for us right now.
       return;
     }
+
+    // Get the list of expired smart groups that may need flushing
     $params = [1 => [self::getCacheInvalidDateTime(), 'String']];
-    $groupsDAO = CRM_Core_DAO::executeQuery("SELECT id FROM civicrm_group WHERE cache_date <= %1", $params);
+    $groupsThatMayNeedToBeFlushedSQL = "SELECT id FROM civicrm_group WHERE (saved_search_id IS NOT NULL OR children <> '') AND (cache_date <= %1 OR cache_date IS NULL)";
+    $groupsDAO = CRM_Core_DAO::executeQuery($groupsThatMayNeedToBeFlushedSQL, $params);
     $expiredGroups = [];
     while ($groupsDAO->fetch()) {
       $expiredGroups[] = $groupsDAO->id;
     }
-    if (!empty($expiredGroups)) {
-      $expiredGroups = implode(',', $expiredGroups);
-      CRM_Core_DAO::executeQuery("DELETE FROM civicrm_group_contact_cache WHERE group_id IN ({$expiredGroups})");
+    if (empty($expiredGroups)) {
+      // There are no expired smart groups to flush
+      return;
+    }
+
+    $expiredGroupsCSV = implode(',', $expiredGroups);
+    $flushSQLParams = [1 => [$expiredGroupsCSV, 'CommaSeparatedIntegers']];
+    // Now check if we actually have any entries in the smart groups to flush
+    $groupsHaveEntriesToFlushSQL = 'SELECT group_id FROM civicrm_group_contact_cache gc WHERE group_id IN (%1) LIMIT 1';
+    $groupsHaveEntriesToFlush = (bool) CRM_Core_DAO::singleValueQuery($groupsHaveEntriesToFlushSQL, $flushSQLParams);
+
+    if ($groupsHaveEntriesToFlush) {
+      CRM_Core_DAO::executeQuery("DELETE FROM civicrm_group_contact_cache WHERE group_id IN (%1)", [1 => [$expiredGroupsCSV, 'CommaSeparatedIntegers']]);
 
       // Clear these out without resetting them because we are not building caches here, only clearing them,
       // so the state is 'as if they had never been built'.
-      CRM_Core_DAO::executeQuery("UPDATE civicrm_group SET cache_date = NULL WHERE id IN ({$expiredGroups})");
+      CRM_Core_DAO::executeQuery("UPDATE civicrm_group SET cache_date = NULL WHERE id IN (%1)", [1 => [$expiredGroupsCSV, 'CommaSeparatedIntegers']]);
     }
     $lock->release();
   }
@@ -381,6 +385,7 @@ WHERE  id IN ( $groupIDs )
         ->setCategory('gccache')
         ->setMemory();
       self::buildGroupContactTempTable([$groupID], $groupContactsTempTable);
+      self::clearGroupContactCache([$groupID]);
       self::updateCacheFromTempTable($groupContactsTempTable, [$groupID]);
       self::releaseGroupLocks([$groupID]);
     }
@@ -724,6 +729,7 @@ ORDER BY   gc.contact_id, g.children
         // Also - if we switched to the 'triple union' approach described above
         // we could throw a try-catch around this line since best-effort would
         // be good enough & potentially improve user experience.
+        self::clearGroupContactCache($lockedGroups);
         self::updateCacheFromTempTable($groupContactsTempTable, $lockedGroups);
         self::releaseGroupLocks($lockedGroups);
       }
@@ -786,18 +792,6 @@ ORDER BY   gc.contact_id, g.children
   private static function updateCacheFromTempTable(CRM_Utils_SQL_TempTable $groupContactsTempTable, array $groupIDs): void {
     $tempTable = $groupContactsTempTable->getName();
 
-    // Don't call clearGroupContactCache as we don't want to clear the cache dates
-    // The will get updated by updateCacheTime() below and not clearing the dates reduces
-    // the chance that loadAll() will try and rebuild at the same time.
-    $clearCacheQuery = '
-    DELETE  g
-      FROM  civicrm_group_contact_cache g
-      WHERE  g.group_id IN (%1) ';
-    $params = [
-      1 => [implode(',', $groupIDs), 'CommaSeparatedIntegers'],
-    ];
-    CRM_Core_DAO::executeQuery($clearCacheQuery, $params);
-
     CRM_Core_DAO::executeQuery(
       "INSERT IGNORE INTO civicrm_group_contact_cache (contact_id, group_id)
         SELECT DISTINCT contact_id, group_id FROM $tempTable
@@ -853,8 +847,6 @@ ORDER BY   gc.contact_id, g.children
        FROM   civicrm_group_contact
        WHERE  civicrm_group_contact.status = 'Added' AND civicrm_group_contact.group_id = $groupID ";
 
-    self::clearGroupContactCache($groupID);
-
     foreach ($contactQueries as $contactQuery) {
       CRM_Core_DAO::executeQuery("INSERT IGNORE INTO $tempTableName (group_id, contact_id) {$contactQuery}");
     }
diff --git a/civicrm/CRM/Contact/Form/Contact.php b/civicrm/CRM/Contact/Form/Contact.php
index ef35118d3f..2e6b51d888 100644
--- a/civicrm/CRM/Contact/Form/Contact.php
+++ b/civicrm/CRM/Contact/Form/Contact.php
@@ -180,7 +180,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
       );
       $typeLabel = implode(' / ', $typeLabel);
 
-      CRM_Utils_System::setTitle(ts('New %1', [1 => $typeLabel]));
+      $this->setTitle(ts('New %1', [1 => $typeLabel]));
       $session->pushUserContext(CRM_Utils_System::url('civicrm/dashboard', 'reset=1'));
       $this->_contactId = NULL;
     }
@@ -221,7 +221,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
         }
 
         // omitting contactImage from title for now since the summary overlay css doesn't work outside of our crm-container
-        CRM_Utils_System::setTitle($displayName);
+        $this->setTitle($displayName);
         $context = CRM_Utils_Request::retrieve('context', 'Alphanumeric', $this);
         $qfKey = CRM_Utils_Request::retrieve('key', 'String', $this);
 
diff --git a/civicrm/CRM/Contact/Form/CustomData.php b/civicrm/CRM/Contact/Form/CustomData.php
index 05e3bd1ff1..a54431bea5 100644
--- a/civicrm/CRM/Contact/Form/CustomData.php
+++ b/civicrm/CRM/Contact/Form/CustomData.php
@@ -112,15 +112,15 @@ class CRM_Contact_Form_CustomData extends CRM_Core_Form {
         $groupTitle = CRM_Core_BAO_CustomGroup::getTitle($this->_groupID);
         switch ($mode) {
           case 'add':
-            CRM_Utils_System::setTitle(ts('Add %1', [1 => $groupTitle]));
+            $this->setTitle(ts('Add %1', [1 => $groupTitle]));
             break;
 
           case 'edit':
-            CRM_Utils_System::setTitle(ts('Edit %1', [1 => $groupTitle]));
+            $this->setTitle(ts('Edit %1', [1 => $groupTitle]));
             break;
 
           case 'copy':
-            CRM_Utils_System::setTitle(ts('Copy %1', [1 => $groupTitle]));
+            $this->setTitle(ts('Copy %1', [1 => $groupTitle]));
             break;
         }
 
@@ -138,7 +138,7 @@ class CRM_Contact_Form_CustomData extends CRM_Core_Form {
     $this->assign('contact_type', $this->_contactType);
     $this->assign('contact_subtype', $this->_contactSubType);
     list($displayName, $contactImage) = CRM_Contact_BAO_Contact::getDisplayAndImage($this->_tableID);
-    CRM_Utils_System::setTitle($displayName, $contactImage . ' ' . $displayName);
+    $this->setTitle($displayName, $contactImage . ' ' . $displayName);
 
     // when custom data is included in this page
     if (!empty($_POST['hidden_custom'])) {
diff --git a/civicrm/CRM/Contact/Form/DedupeRules.php b/civicrm/CRM/Contact/Form/DedupeRules.php
index 3e8e1e70de..beef61afbf 100644
--- a/civicrm/CRM/Contact/Form/DedupeRules.php
+++ b/civicrm/CRM/Contact/Form/DedupeRules.php
@@ -298,7 +298,7 @@ UPDATE civicrm_dedupe_rule_group
 
     //need to clear cache of deduped contacts
     //based on the previous rule
-    $cacheKey = "merge {$this->_contactType}_{$this->_rgid}_%";
+    $cacheKey = "merge_{$this->_contactType}_{$this->_rgid}_%";
 
     CRM_Core_BAO_PrevNextCache::deleteItem(NULL, $cacheKey);
 
diff --git a/civicrm/CRM/Contact/Form/Domain.php b/civicrm/CRM/Contact/Form/Domain.php
index 17b36a9229..c9c31c5103 100644
--- a/civicrm/CRM/Contact/Form/Domain.php
+++ b/civicrm/CRM/Contact/Form/Domain.php
@@ -71,7 +71,7 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form {
   }
 
   public function preProcess() {
-    CRM_Utils_System::setTitle(ts('Organization Address and Contact Info'));
+    $this->setTitle(ts('Organization Address and Contact Info'));
     $breadCrumbPath = CRM_Utils_System::url('civicrm/admin', 'reset=1');
     CRM_Utils_System::appendBreadCrumb(ts('Administer CiviCRM'), $breadCrumbPath);
     $session = CRM_Core_Session::singleton();
diff --git a/civicrm/CRM/Contact/Form/Merge.php b/civicrm/CRM/Contact/Form/Merge.php
index f7854fb154..a7394d6fdf 100644
--- a/civicrm/CRM/Contact/Form/Merge.php
+++ b/civicrm/CRM/Contact/Form/Merge.php
@@ -248,7 +248,7 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
 
   public function buildQuickForm() {
     $this->unsavedChangesWarn = FALSE;
-    CRM_Utils_System::setTitle(ts('Merge %1 contacts', [1 => $this->_contactType]));
+    $this->setTitle(ts('Merge %1 contacts', [1 => $this->_contactType]));
     $buttons = [];
 
     $buttons[] = [
diff --git a/civicrm/CRM/Contact/Form/RelatedContact.php b/civicrm/CRM/Contact/Form/RelatedContact.php
index 3305b20c04..68f64b7086 100644
--- a/civicrm/CRM/Contact/Form/RelatedContact.php
+++ b/civicrm/CRM/Contact/Form/RelatedContact.php
@@ -74,7 +74,7 @@ class CRM_Contact_Form_RelatedContact extends CRM_Core_Form {
       }
 
       list($displayName, $contactImage) = CRM_Contact_BAO_Contact::getDisplayAndImage($this->_contactId);
-      CRM_Utils_System::setTitle($displayName, $contactImage . ' ' . $displayName);
+      $this->setTitle($displayName, $contactImage . ' ' . $displayName);
     }
     else {
       CRM_Core_Error::statusBounce(ts('Could not get a contact_id and/or contact_type'));
diff --git a/civicrm/CRM/Contact/Form/Relationship.php b/civicrm/CRM/Contact/Form/Relationship.php
index 2be985d27a..6bbbdf3a91 100644
--- a/civicrm/CRM/Contact/Form/Relationship.php
+++ b/civicrm/CRM/Contact/Form/Relationship.php
@@ -139,19 +139,19 @@ class CRM_Contact_Form_Relationship extends CRM_Core_Form {
     // Set page title based on action
     switch ($this->_action) {
       case CRM_Core_Action::VIEW:
-        CRM_Utils_System::setTitle(ts('View Relationship for %1', [1 => $this->_display_name_a]));
+        $this->setTitle(ts('View Relationship for %1', [1 => $this->_display_name_a]));
         break;
 
       case CRM_Core_Action::ADD:
-        CRM_Utils_System::setTitle(ts('Add Relationship for %1', [1 => $this->_display_name_a]));
+        $this->setTitle(ts('Add Relationship for %1', [1 => $this->_display_name_a]));
         break;
 
       case CRM_Core_Action::UPDATE:
-        CRM_Utils_System::setTitle(ts('Edit Relationship for %1', [1 => $this->_display_name_a]));
+        $this->setTitle(ts('Edit Relationship for %1', [1 => $this->_display_name_a]));
         break;
 
       case CRM_Core_Action::DELETE:
-        CRM_Utils_System::setTitle(ts('Delete Relationship for %1', [1 => $this->_display_name_a]));
+        $this->setTitle(ts('Delete Relationship for %1', [1 => $this->_display_name_a]));
         break;
     }
 
diff --git a/civicrm/CRM/Contact/Form/Search.php b/civicrm/CRM/Contact/Form/Search.php
index d41d16bb6c..1345c23309 100644
--- a/civicrm/CRM/Contact/Form/Search.php
+++ b/civicrm/CRM/Contact/Form/Search.php
@@ -436,7 +436,7 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search {
         }
 
         // Set dynamic page title for 'Show Members of Group'
-        CRM_Utils_System::setTitle(ts('Contacts in Group: %1', [1 => $this->_group[$this->_groupID]]));
+        $this->setTitle(ts('Contacts in Group: %1', [1 => $this->_group[$this->_groupID]]));
       }
 
       $group_contact_status = [];
@@ -464,7 +464,7 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search {
       }
 
       // Set dynamic page title for 'Add Members Group'
-      CRM_Utils_System::setTitle(ts('Add to Group: %1', [1 => $this->_group[$this->_amtgID]]));
+      $this->setTitle(ts('Add to Group: %1', [1 => $this->_group[$this->_amtgID]]));
       // also set the group title and freeze the action task with Add Members to Group
       $groupValues = ['id' => $this->_amtgID, 'title' => $this->_group[$this->_amtgID]];
       $this->assign_by_ref('group', $groupValues);
diff --git a/civicrm/CRM/Contact/Form/Task.php b/civicrm/CRM/Contact/Form/Task.php
index 67b7f2be12..2a2ad62c63 100644
--- a/civicrm/CRM/Contact/Form/Task.php
+++ b/civicrm/CRM/Contact/Form/Task.php
@@ -137,7 +137,7 @@ class CRM_Contact_Form_Task extends CRM_Core_Form_Task {
       // since we don't store all contacts in prevnextcache, when user selects "all" use query to retrieve contacts
       // rather than prevnext cache table for most of the task actions except export where we rebuild query to fetch
       // final result set
-      $allCids[$cacheKey] = self::getContactIds($form);
+      $allCids[$cacheKey] = self::legacyGetContactIds($form);
 
       $form->_contactIds = [];
       if (empty($form->_contactIds)) {
@@ -222,11 +222,16 @@ class CRM_Contact_Form_Task extends CRM_Core_Form_Task {
    *   - custom search (FIXME: does this still apply to custom search?).
    * When we call this function we are not using the prev/next cache
    *
+   * We've started to try to move away from these functions
+   * being static. Probably we need to convert the export forms
+   * to use a trait based approach. For now this is renamed to
+   * permit the use of a non-static function with this name
+   *
    * @param $form CRM_Core_Form
    *
    * @return array $contactIds
    */
-  public static function getContactIds($form) {
+  protected static function legacyGetContactIds($form) {
     // need to perform action on all contacts
     // fire the query again and get the contact id's + display name
     $sortID = NULL;
diff --git a/civicrm/CRM/Contact/Form/Task/AddToGroup.php b/civicrm/CRM/Contact/Form/Task/AddToGroup.php
index b1964c7362..633985629b 100644
--- a/civicrm/CRM/Contact/Form/Task/AddToGroup.php
+++ b/civicrm/CRM/Contact/Form/Task/AddToGroup.php
@@ -53,6 +53,8 @@ class CRM_Contact_Form_Task_AddToGroup extends CRM_Contact_Form_Task {
 
     $this->_context = $this->get('context');
     $this->_id = $this->get('amtgID');
+
+    CRM_Custom_Form_CustomData::preProcess($this, NULL, NULL, 1, 'Group', $this->_id);
   }
 
   /**
@@ -115,10 +117,12 @@ class CRM_Contact_Form_Task_AddToGroup extends CRM_Contact_Form_Task {
 
     // Set dynamic page title for 'Add Members Group (confirm)'
     if ($this->_id) {
-      CRM_Utils_System::setTitle(ts('Add Contacts: %1', [1 => $this->_title]));
+      $this->setTitle(ts('Add Contacts: %1', [1 => $this->_title]));
     }
     else {
-      CRM_Utils_System::setTitle(ts('Add Contacts to A Group'));
+      $this->setTitle(ts('Add Contacts to A Group'));
+      //build custom data
+      CRM_Custom_Form_CustomData::buildQuickForm($this);
     }
 
     $this->addDefaultButtons(ts('Add to Group'));
@@ -139,6 +143,7 @@ class CRM_Contact_Form_Task_AddToGroup extends CRM_Contact_Form_Task {
     }
 
     $defaults['group_option'] = 0;
+    $defaults += CRM_Custom_Form_CustomData::setDefaultValues($this);
     return $defaults;
   }
 
@@ -183,6 +188,7 @@ class CRM_Contact_Form_Task_AddToGroup extends CRM_Contact_Form_Task {
       $groupParams['visibility'] = "User and User Admin Only";
       $groupParams['group_type'] = array_keys($params['group_type'] ?? []);
       $groupParams['is_active'] = 1;
+      $groupParams['custom'] = CRM_Core_BAO_CustomField::postProcess($params, $this->_id, 'Group');
 
       $createdGroup = CRM_Contact_BAO_Group::create($groupParams);
       $groupID = $createdGroup->id;
diff --git a/civicrm/CRM/Contact/Form/Task/AddToParentClass.php b/civicrm/CRM/Contact/Form/Task/AddToParentClass.php
index 42caaba86a..194c22bd47 100644
--- a/civicrm/CRM/Contact/Form/Task/AddToParentClass.php
+++ b/civicrm/CRM/Contact/Form/Task/AddToParentClass.php
@@ -30,7 +30,7 @@ class CRM_Contact_Form_Task_AddToParentClass extends CRM_Contact_Form_Task {
 
   public function buildQuickForm() {
     $contactType = $this->get('contactType');
-    CRM_Utils_System::setTitle(ts('Add Contacts to %1', [1 => $contactType]));
+    $this->setTitle(ts('Add Contacts to %1', [1 => $contactType]));
     $this->addElement('text', 'name', ts('Find Target %1', [1 => $contactType]));
 
     $this->add('select',
diff --git a/civicrm/CRM/Contact/Form/Task/Batch.php b/civicrm/CRM/Contact/Form/Task/Batch.php
index c213001a72..f9effd4849 100644
--- a/civicrm/CRM/Contact/Form/Task/Batch.php
+++ b/civicrm/CRM/Contact/Form/Task/Batch.php
@@ -69,7 +69,7 @@ class CRM_Contact_Form_Task_Batch extends CRM_Contact_Form_Task {
       CRM_Core_Error::statusBounce(ts('ufGroupId is missing'));
     }
     $this->_title = ts('Update multiple contacts') . ' - ' . CRM_Core_BAO_UFGroup::getTitle($ufGroupId);
-    CRM_Utils_System::setTitle($this->_title);
+    $this->setTitle($this->_title);
 
     $this->addDefaultButtons(ts('Save'));
     $this->_fields = CRM_Core_BAO_UFGroup::getFields($ufGroupId, FALSE, CRM_Core_Action::VIEW);
diff --git a/civicrm/CRM/Contact/Form/Task/Delete.php b/civicrm/CRM/Contact/Form/Task/Delete.php
index 9fac47037a..3f12db8140 100644
--- a/civicrm/CRM/Contact/Form/Task/Delete.php
+++ b/civicrm/CRM/Contact/Form/Task/Delete.php
@@ -63,7 +63,7 @@ class CRM_Contact_Form_Task_Delete extends CRM_Contact_Form_Task {
     $this->assign('restore', $this->_restore);
 
     if ($this->_restore) {
-      CRM_Utils_System::setTitle(ts('Restore Contact'));
+      $this->setTitle(ts('Restore Contact'));
     }
 
     if ($cid) {
diff --git a/civicrm/CRM/Contact/Form/Task/Email.php b/civicrm/CRM/Contact/Form/Task/Email.php
index 911a060adb..072ff37d78 100644
--- a/civicrm/CRM/Contact/Form/Task/Email.php
+++ b/civicrm/CRM/Contact/Form/Task/Email.php
@@ -58,10 +58,10 @@ class CRM_Contact_Form_Task_Email extends CRM_Contact_Form_Task {
         $displayName[] = CRM_Contact_BAO_Contact::displayName($val);
       }
 
-      CRM_Utils_System::setTitle(implode(',', $displayName) . ' - ' . ts('Email'));
+      $this->setTitle(implode(',', $displayName) . ' - ' . ts('Email'));
     }
     else {
-      CRM_Utils_System::setTitle(ts('New Email'));
+      $this->setTitle(ts('New Email'));
     }
     if ($this->_context === 'search') {
       $this->_single = TRUE;
@@ -82,22 +82,4 @@ class CRM_Contact_Form_Task_Email extends CRM_Contact_Form_Task {
    */
   public function setContactIDs() {}
 
-  /**
-   * List available tokens for this form.
-   *
-   * @return array
-   * @throws \CRM_Core_Exception
-   */
-  public function listTokens() {
-    $tokens = CRM_Core_SelectValues::contactTokens();
-
-    if (isset($this->_caseId) || isset($this->_caseIds)) {
-      // For a single case, list tokens relevant for only that case type
-      $caseTypeId = isset($this->_caseId) ? CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $this->_caseId, 'case_type_id') : NULL;
-      $tokens += CRM_Core_SelectValues::caseTokens($caseTypeId);
-    }
-
-    return $tokens;
-  }
-
 }
diff --git a/civicrm/CRM/Contact/Form/Task/EmailTrait.php b/civicrm/CRM/Contact/Form/Task/EmailTrait.php
index 2e78e168a4..743edf6173 100644
--- a/civicrm/CRM/Contact/Form/Task/EmailTrait.php
+++ b/civicrm/CRM/Contact/Form/Task/EmailTrait.php
@@ -37,6 +37,13 @@ trait CRM_Contact_Form_Task_EmailTrait {
    */
   public $_templates;
 
+  /**
+   * Email addresses to send to.
+   *
+   * @var array
+   */
+  protected $emails = [];
+
   /**
    * Store "to" contact details.
    * @var array
@@ -112,7 +119,6 @@ trait CRM_Contact_Form_Task_EmailTrait {
    * @throws \API_Exception
    */
   protected function traitPreProcess() {
-    $this->preProcessFromAddress();
     if ($this->isSearchContext()) {
       // Currently only the contact email form is callable outside search context.
       parent::preProcess();
@@ -124,40 +130,6 @@ trait CRM_Contact_Form_Task_EmailTrait {
     }
   }
 
-  /**
-   * Pre Process Form Addresses to be used in Quickform
-   *
-   * @throws \API_Exception
-   * @throws \CRM_Core_Exception
-   */
-  protected function preProcessFromAddress(): void {
-    $form = $this;
-    $form->_emails = [];
-
-    // @TODO remove these line and to it somewhere more appropriate. Currently some classes (e.g Case
-    // are having to re-write contactIds afterwards due to this inappropriate variable setting
-    // If we don't have any contact IDs, use the logged in contact ID
-    $form->_contactIds = $form->_contactIds ?: [CRM_Core_Session::getLoggedInContactID()];
-
-    $fromEmailValues = CRM_Core_BAO_Email::getFromEmail();
-
-    if (empty($fromEmailValues)) {
-      CRM_Core_Error::statusBounce(ts('Your user record does not have a valid email address and no from addresses have been configured.'));
-    }
-
-    $form->_emails = $fromEmailValues;
-    $defaults = [];
-    $form->_fromEmails = $fromEmailValues;
-    if (is_numeric(key($form->_fromEmails))) {
-      $emailID = (int) key($form->_fromEmails);
-      $defaults = CRM_Core_BAO_Email::getEmailSignatureDefaults($emailID);
-    }
-    if (!Civi::settings()->get('allow_mail_from_logged_in_contact')) {
-      $defaults['from_email_address'] = current(CRM_Core_BAO_Domain::getNameAndEmail(FALSE, TRUE));
-    }
-    $form->setDefaults($defaults);
-  }
-
   /**
    * Build the form object.
    *
@@ -175,6 +147,11 @@ trait CRM_Contact_Form_Task_EmailTrait {
     if ($cid) {
       $this->_contactIds = explode(',', $cid);
     }
+    // The default in CRM_Core_Form_Task is null, but changing it there gives
+    // errors later.
+    if (is_null($this->_contactIds)) {
+      $this->_contactIds = [];
+    }
     if (count($this->_contactIds) > 1) {
       $this->_single = FALSE;
     }
@@ -183,7 +160,7 @@ trait CRM_Contact_Form_Task_EmailTrait {
     $emailAttributes = [
       'class' => 'huge',
     ];
-    $to = $this->add('text', 'to', ts('To'), $emailAttributes, TRUE);
+    $this->add('text', 'to', ts('To'), $emailAttributes, TRUE);
 
     $this->addEntityRef('cc_id', ts('CC'), [
       'entity' => 'Email',
@@ -195,9 +172,6 @@ trait CRM_Contact_Form_Task_EmailTrait {
       'multiple' => TRUE,
     ]);
 
-    if ($to->getValue()) {
-      $this->_toContactIds = $this->_contactIds = [];
-    }
     $setDefaults = TRUE;
     if (property_exists($this, '_context') && $this->_context === 'standalone') {
       $setDefaults = FALSE;
@@ -205,27 +179,14 @@ trait CRM_Contact_Form_Task_EmailTrait {
 
     $this->_allContactIds = $this->_toContactIds = $this->_contactIds;
 
-    if ($to->getValue()) {
-      foreach ($this->getEmails($to) as $value) {
-        $contactId = $value['contact_id'];
-        $email = $value['email'];
-        if ($contactId) {
-          $this->_contactIds[] = $this->_toContactIds[] = $contactId;
-          $this->_toContactEmails[] = $email;
-          $this->_allContactIds[] = $contactId;
-        }
-      }
-      $setDefaults = TRUE;
-    }
-
     //get the group of contacts as per selected by user in case of Find Activities
     if (!empty($this->_activityHolderIds)) {
       $contact = $this->get('contacts');
-      $this->_allContactIds = $this->_contactIds = $contact;
+      $this->_allContactIds = $this->_toContactIds = $this->_contactIds = $contact;
     }
 
     // check if we need to setdefaults and check for valid contact emails / communication preferences
-    if (is_array($this->_allContactIds) && $setDefaults) {
+    if (!empty($this->_allContactIds) && $setDefaults) {
       // get the details for all selected contacts ( to, cc and bcc contacts )
       $allContactDetails = civicrm_api3('Contact', 'get', [
         'id' => ['IN' => $this->_allContactIds],
@@ -269,7 +230,7 @@ trait CRM_Contact_Form_Task_EmailTrait {
 
     $this->add('text', 'subject', ts('Subject'), ['size' => 50, 'maxlength' => 254], TRUE);
 
-    $this->add('select', 'from_email_address', ts('From'), $this->_fromEmails, TRUE);
+    $this->add('select', 'from_email_address', ts('From'), $this->getFromEmails(), TRUE);
 
     CRM_Mailing_BAO_Mailing::commonCompose($this);
 
@@ -277,31 +238,9 @@ trait CRM_Contact_Form_Task_EmailTrait {
     CRM_Core_BAO_File::buildAttachment($this, NULL);
 
     if ($this->_single) {
-      // also fix the user context stack
-      if ($this->getCaseID()) {
-        $ccid = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseContact', $this->_caseId,
-          'contact_id', 'case_id'
-        );
-        $url = CRM_Utils_System::url('civicrm/contact/view/case',
-          "&reset=1&action=view&cid={$ccid}&id=" . $this->getCaseID()
-        );
-      }
-      elseif ($this->_context) {
-        $url = CRM_Utils_System::url('civicrm/dashboard', 'reset=1');
-      }
-      else {
-        $url = CRM_Utils_System::url('civicrm/contact/view',
-          "&show=1&action=browse&cid={$this->_contactIds[0]}&selectedChild=activity"
-        );
-      }
-
-      $session = CRM_Core_Session::singleton();
-      $session->replaceUserContext($url);
-      $this->addDefaultButtons(ts('Send Email'), 'upload', 'cancel');
-    }
-    else {
-      $this->addDefaultButtons(ts('Send Email'), 'upload');
+      CRM_Core_Session::singleton()->replaceUserContext($this->getRedirectUrl());
     }
+    $this->addDefaultButtons(ts('Send Email'), 'upload', 'cancel');
 
     $fields = [
       'followup_assignee_contact_id' => [
@@ -352,9 +291,31 @@ trait CRM_Contact_Form_Task_EmailTrait {
     CRM_Campaign_BAO_Campaign::addCampaign($this);
 
     $this->addFormRule([__CLASS__, 'saveTemplateFormRule'], $this);
+    $this->addFormRule([__CLASS__, 'deprecatedTokensFormRule'], $this);
     CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'templates/CRM/Contact/Form/Task/EmailCommon.js', 0, 'html-header');
   }
 
+  /**
+   * Set relevant default values.
+   *
+   * @return array
+   *
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   */
+  public function setDefaultValues(): array {
+    $defaults = parent::setDefaultValues() ?: [];
+    $fromEmails = $this->getFromEmails();
+    if (is_numeric(key($fromEmails))) {
+      $emailID = (int) key($fromEmails);
+      $defaults = CRM_Core_BAO_Email::getEmailSignatureDefaults($emailID);
+    }
+    if (!Civi::settings()->get('allow_mail_from_logged_in_contact')) {
+      $defaults['from_email_address'] = current(CRM_Core_BAO_Domain::getNameAndEmail(FALSE, TRUE));
+    }
+    return $defaults;
+  }
+
   /**
    * Process the form after the input has been submitted and validated.
    *
@@ -365,8 +326,6 @@ trait CRM_Contact_Form_Task_EmailTrait {
    */
   public function postProcess() {
     $this->bounceIfSimpleMailLimitExceeded(count($this->_contactIds));
-
-    // check and ensure that
     $formValues = $this->controller->exportValues($this->getName());
     $this->submit($formValues);
   }
@@ -377,7 +336,7 @@ trait CRM_Contact_Form_Task_EmailTrait {
    * @param int $count
    *  The number of emails the user is attempting to send
    */
-  protected function bounceIfSimpleMailLimitExceeded($count) {
+  protected function bounceIfSimpleMailLimitExceeded($count): void {
     $limit = Civi::settings()->get('simple_mail_limit');
     if ($count > $limit) {
       CRM_Core_Error::statusBounce(ts('Please do not use this task to send a lot of emails (greater than %1). Many countries have legal requirements when sending bulk emails and the CiviMail framework has opt out functionality and domain tokens to help meet these.',
@@ -398,55 +357,29 @@ trait CRM_Contact_Form_Task_EmailTrait {
    * @throws \Civi\API\Exception\UnauthorizedException
    * @throws \API_Exception
    */
-  public function submit($formValues) {
+  public function submit($formValues): void {
     $this->saveMessageTemplate($formValues);
-
-    $from = $formValues['from_email_address'] ?? NULL;
+    $from = $formValues['from_email_address'];
     // dev/core#357 User Emails are keyed by their id so that the Signature is able to be added
     // If we have had a contact email used here the value returned from the line above will be the
     // numerical key where as $from for use in the sendEmail in Activity needs to be of format of "To Name" <toemailaddress>
     $from = CRM_Utils_Mail::formatFromAddress($from);
 
-    $ccArray = $formValues['cc_id'] ? explode(',', $formValues['cc_id']) : [];
-    $cc = $this->getEmailString($ccArray);
-    $additionalDetails = empty($ccArray) ? '' : "\ncc : " . $this->getEmailUrlString($ccArray);
+    $cc = $this->getCc();
+    $additionalDetails = empty($cc) ? '' : "\ncc : " . $this->getEmailUrlString($this->getCcArray());
 
-    $bccArray = $formValues['bcc_id'] ? explode(',', $formValues['bcc_id']) : [];
-    $bcc = $this->getEmailString($bccArray);
-    $additionalDetails .= empty($bccArray) ? '' : "\nbcc : " . $this->getEmailUrlString($bccArray);
-
-    // format contact details array to handle multiple emails from same contact
-    $formattedContactDetails = [];
-    foreach ($this->_contactIds as $key => $contactId) {
-      // if we dont have details on this contactID, we should ignore
-      // potentially this is due to the contact not wanting to receive email
-      if (!isset($this->_contactDetails[$contactId])) {
-        continue;
-      }
-      $email = $this->_toContactEmails[$key];
-      // prevent duplicate emails if same email address is selected CRM-4067
-      // we should allow same emails for different contacts
-      $details = $this->_contactDetails[$contactId];
-      $details['email'] = $email;
-      unset($details['email_id']);
-      $formattedContactDetails["{$contactId}::{$email}"] = $details;
-    }
+    $bcc = $this->getBcc();
+    $additionalDetails .= empty($bcc) ? '' : "\nbcc : " . $this->getEmailUrlString($this->getBccArray());
 
     // send the mail
-    [$sent, $activityIds] = CRM_Activity_BAO_Activity::sendEmail(
-      $formattedContactDetails,
-      $this->getSubject($formValues['subject']),
-      $formValues['text_message'],
-      $formValues['html_message'],
-      NULL,
-      NULL,
+    [$sent, $activityIds] = $this->sendEmail(
+      $this->getSubmittedValue('text_message'),
+      $this->getSubmittedValue('html_message'),
       $from,
       $this->getAttachments($formValues),
       $cc,
       $bcc,
-      array_keys($this->_toContactDetails),
       $additionalDetails,
-      $this->getContributionIDs(),
       CRM_Utils_Array::value('campaign_id', $formValues),
       $this->getCaseID()
     );
@@ -458,11 +391,11 @@ trait CRM_Contact_Form_Task_EmailTrait {
       // has no meaning for followup activities, and this doesn't prevent
       // creating more manually if desired.
       $followupStatus = $this->createFollowUpActivities($formValues, $activityIds[0]);
-      $count_success = count($this->_toContactDetails);
+
       CRM_Core_Session::setStatus(ts('One message was sent successfully. ', [
         'plural' => '%count messages were sent successfully. ',
-        'count' => $count_success,
-      ]) . $followupStatus, ts('Message Sent', ['plural' => 'Messages Sent', 'count' => $count_success]), 'success');
+        'count' => $sent,
+      ]) . $followupStatus, ts('Message Sent', ['plural' => 'Messages Sent', 'count' => $sent]), 'success');
     }
 
     if (!empty($this->suppressedEmails)) {
@@ -504,28 +437,37 @@ trait CRM_Contact_Form_Task_EmailTrait {
     }
   }
 
-  /**
-   * List available tokens for this form.
-   *
-   * @return array
-   */
-  public function listTokens() {
-    return CRM_Core_SelectValues::contactTokens();
-  }
-
   /**
    * Get the emails from the added element.
    *
-   * @param HTML_QuickForm_Element $element
-   *
    * @return array
+   * @throws \API_Exception
    */
-  protected function getEmails($element): array {
-    $allEmails = explode(',', $element->getValue());
+  protected function getEmails(): array {
+    $allEmails = explode(',', $this->getSubmittedValue('to'));
     $return = [];
+    $contactIDs = [];
     foreach ($allEmails as $value) {
       $values = explode('::', $value);
-      $return[] = ['contact_id' => $values[0], 'email' => $values[1]];
+      $return[$values[0]] = ['contact_id' => $values[0], 'email' => $values[1]];
+      $contactIDs[] = $values[0];
+    }
+    $this->suppressedEmails = [];
+    $suppressionDetails = Email::get(FALSE)
+      ->addWhere('contact_id', 'IN', $contactIDs)
+      ->addWhere('is_primary', '=', TRUE)
+      ->addSelect('email', 'contact_id', 'contact_id.is_deceased', 'on_hold', 'contact_id.do_not_email', 'contact_id.display_name')
+      ->execute();
+    foreach ($suppressionDetails as $details) {
+      if (empty($details['email']) || $details['contact_id.is_deceased'] || $details['contact_id.do_not_email'] || $details['on_hold']) {
+        $this->setSuppressedEmail($details['contact_id'], [
+          'on_hold' => $details['on_hold'],
+          'is_deceased' => $details['contact_id.is_deceased'],
+          'email' => $details['email'],
+          'display_name' => $details['contact_id.display_name'],
+        ]);
+        unset($return[$details['contact_id']]);
+      }
     }
     return $return;
   }
@@ -607,20 +549,10 @@ trait CRM_Contact_Form_Task_EmailTrait {
   /**
    * Get the subject for the message.
    *
-   * The case handling should possibly be on the case form.....
-   *
-   * @param string $subject
-   *
    * @return string
-   * @throws \CRM_Core_Exception
    */
-  protected function getSubject(string $subject):string {
-    // CRM-5916: prepend case id hash to CiviCase-originating emails’ subjects
-    if ($this->getCaseID()) {
-      $hash = substr(sha1(CIVICRM_SITE_KEY . $this->getCaseID()), 0, 7);
-      $subject = "[case #$hash] $subject";
-    }
-    return $subject;
+  protected function getSubject():string {
+    return (string) $this->getSubmittedValue('subject');
   }
 
   /**
@@ -683,6 +615,40 @@ trait CRM_Contact_Form_Task_EmailTrait {
     return empty($errors) ? TRUE : $errors;
   }
 
+  /**
+   * Prevent submission of deprecated tokens.
+   *
+   * Note this rule can be removed after a transition period.
+   * It's mostly to help to ensure users don't get missing tokens
+   * or unexpected output after the 5.43 upgrade until any
+   * old templates have aged out.
+   *
+   * @param array $fields
+   *
+   * @return bool|string[]
+   */
+  public static function deprecatedTokensFormRule(array $fields) {
+    $deprecatedTokens = [
+      '{case.status_id}' => '{case.status_id:label}',
+      '{case.case_type_id}' => '{case.case_type_id:label}',
+      '{contribution.campaign}' => '{contribution.campaign_id:label}',
+      '{contribution.payment_instrument}' => '{contribution.payment_instrument_id:label}',
+      '{contribution.contribution_id}' => '{contribution.id}',
+      '{contribution.contribution_source}' => '{contribution.source}',
+      '{contribution.contribution_status}' => '{contribution.contribution_status_id:label}',
+      '{contribution.contribution_cancel_date}' => '{contribution.cancel_date}',
+      '{contribution.type}' => '{contribution.financial_type_id:label}',
+      '{contribution.contribution_page_id}' => '{contribution.contribution_page_id:label}',
+    ];
+    $tokenErrors = [];
+    foreach ($deprecatedTokens as $token => $replacement) {
+      if (strpos($fields['html_message'], $token) !== FALSE) {
+        $tokenErrors[] = ts('Token %1 is no longer supported - use %2 instead', [$token, $replacement]);
+      }
+    }
+    return empty($tokenErrors) ? TRUE : ['html_message' => implode('<br>', $tokenErrors)];
+  }
+
   /**
    * Get selected contribution IDs.
    *
@@ -707,4 +673,400 @@ trait CRM_Contact_Form_Task_EmailTrait {
     return NULL;
   }
 
+  /**
+   * @return array
+   */
+  protected function getFromEmails(): array {
+    $fromEmailValues = CRM_Core_BAO_Email::getFromEmail();
+
+    if (empty($fromEmailValues)) {
+      CRM_Core_Error::statusBounce(ts('Your user record does not have a valid email address and no from addresses have been configured.'));
+    }
+    return $fromEmailValues;
+  }
+
+  /**
+   * Get the relevant emails.
+   *
+   * @param int $index
+   *
+   * @return string
+   */
+  protected function getEmail(int $index): string {
+    if (empty($this->emails)) {
+      $toEmails = explode(',', $this->getSubmittedValue('to'));
+      foreach ($toEmails as $value) {
+        $parts = explode('::', $value);
+        $this->emails[] = $parts[1];
+      }
+    }
+    return $this->emails[$index];
+  }
+
+  /**
+   * Send the message to all the contacts.
+   *
+   * Do not use this function outside of core tested code. It will change.
+   *
+   * It will also become protected once tests no longer call it.
+   *
+   * @internal
+   *
+   * Also insert a contact activity in each contacts record.
+   *
+   * @param $text
+   * @param $html
+   * @param string $from
+   * @param array|null $attachments
+   *   The array of attachments if any.
+   * @param string|null $cc
+   *   Cc recipient.
+   * @param string|null $bcc
+   *   Bcc recipient.
+   * @param string|null $additionalDetails
+   *   The additional information of CC and BCC appended to the activity Details.
+   * @param int|null $campaignId
+   * @param int|null $caseId
+   *
+   * @return array
+   *   bool $sent FIXME: this only indicates the status of the last email sent.
+   *   array $activityIds The activity ids created, one per "To" recipient.
+   *
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   * @throws \PEAR_Exception
+   * @internal
+   *
+   * Also insert a contact activity in each contacts record.
+   *
+   * @internal
+   *
+   * Also insert a contact activity in each contacts record.
+   */
+  protected function sendEmail(
+    $text,
+    $html,
+    $from,
+    $attachments = NULL,
+    $cc = NULL,
+    $bcc = NULL,
+    $additionalDetails = NULL,
+    $campaignId = NULL,
+    $caseId = NULL
+  ) {
+
+    $userID = CRM_Core_Session::getLoggedInContactID();
+
+    $sent = 0;
+    $attachmentFileIds = [];
+    $activityIds = [];
+    $firstActivityCreated = FALSE;
+    foreach ($this->getRowsForEmails() as $values) {
+      $contactId = $values['contact_id'];
+      $emailAddress = $values['email'];
+      $renderedTemplate = CRM_Core_BAO_MessageTemplate::renderTemplate([
+        'messageTemplate' => [
+          'msg_text' => $text,
+          'msg_html' => $html,
+          'msg_subject' => $this->getSubject(),
+        ],
+        'tokenContext' => array_merge(['schema' => $this->getTokenSchema()], ($values['schema'] ?? [])),
+        'contactId' => $contactId,
+        'disableSmarty' => !CRM_Utils_Constant::value('CIVICRM_MAIL_SMARTY'),
+      ]);
+
+      // To minimize storage requirements, only one copy of any file attachments uploaded to CiviCRM is kept,
+      // even when multiple contacts will receive separate emails from CiviCRM.
+      if (!empty($attachmentFileIds)) {
+        $attachments = array_replace_recursive($attachments, $attachmentFileIds);
+      }
+
+      // Create email activity.
+      $activityID = $this->createEmailActivity($userID, $renderedTemplate['subject'], $renderedTemplate['html'], $renderedTemplate['text'], $additionalDetails, $campaignId, $attachments, $caseId);
+      $activityIds[] = $activityID;
+
+      if ($firstActivityCreated == FALSE && !empty($attachments)) {
+        $attachmentFileIds = CRM_Activity_BAO_Activity::getAttachmentFileIds($activityID, $attachments);
+        $firstActivityCreated = TRUE;
+      }
+
+      if ($this->sendMessage(
+        $from,
+        $contactId,
+        $renderedTemplate['subject'],
+        $renderedTemplate['text'],
+        $renderedTemplate['html'],
+        $emailAddress,
+        $activityID,
+        // get the set of attachments from where they are stored
+        CRM_Core_BAO_File::getEntityFile('civicrm_activity', $activityID),
+        $cc,
+        $bcc
+      )
+      ) {
+        $sent++;
+      }
+    }
+
+    return [$sent, $activityIds];
+  }
+
+  /**
+   * @param int $sourceContactID
+   *   The contact ID of the email "from".
+   * @param string $subject
+   * @param string $html
+   * @param string $text
+   * @param string $additionalDetails
+   *   The additional information of CC and BCC appended to the activity details.
+   * @param int $campaignID
+   * @param array $attachments
+   * @param int $caseID
+   *
+   * @return int
+   *   The created activity ID
+   * @throws \CRM_Core_Exception
+   */
+  protected function createEmailActivity($sourceContactID, $subject, $html, $text, $additionalDetails, $campaignID, $attachments, $caseID) {
+    $activityTypeID = CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Email');
+
+    // CRM-6265: save both text and HTML parts in details (if present)
+    if ($html and $text) {
+      $details = "-ALTERNATIVE ITEM 0-\n{$html}{$additionalDetails}\n-ALTERNATIVE ITEM 1-\n{$text}{$additionalDetails}\n-ALTERNATIVE END-\n";
+    }
+    else {
+      $details = $html ? $html : $text;
+      $details .= $additionalDetails;
+    }
+
+    $activityParams = [
+      'source_contact_id' => $sourceContactID,
+      'activity_type_id' => $activityTypeID,
+      'activity_date_time' => date('YmdHis'),
+      'subject' => $subject,
+      'details' => $details,
+      'status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'status_id', 'Completed'),
+      'campaign_id' => $this->getSubmittedValue('campaign_id'),
+    ];
+    if (!empty($caseID)) {
+      $activityParams['case_id'] = $caseID;
+    }
+
+    // CRM-5916: strip [case #…] before saving the activity (if present in subject)
+    $activityParams['subject'] = preg_replace('/\[case #([0-9a-h]{7})\] /', '', $activityParams['subject']);
+
+    // add the attachments to activity params here
+    if ($attachments) {
+      // first process them
+      $activityParams = array_merge($activityParams, $attachments);
+    }
+
+    $activity = civicrm_api3('Activity', 'create', $activityParams);
+
+    return $activity['id'];
+  }
+
+  /**
+   * Send message - under refactor.
+   *
+   * @param $from
+   * @param $toID
+   * @param $subject
+   * @param $text_message
+   * @param $html_message
+   * @param $emailAddress
+   * @param $activityID
+   * @param null $attachments
+   * @param null $cc
+   * @param null $bcc
+   *
+   * @return bool
+   * @throws \CRM_Core_Exception
+   * @throws \PEAR_Exception
+   */
+  protected function sendMessage(
+    $from,
+    $toID,
+    $subject,
+    $text_message,
+    $html_message,
+    $emailAddress,
+    $activityID,
+    $attachments = NULL,
+    $cc = NULL,
+    $bcc = NULL
+  ) {
+    [$toDisplayName, $toEmail, $toDoNotEmail] = CRM_Contact_BAO_Contact::getContactDetails($toID);
+    if ($emailAddress) {
+      $toEmail = trim($emailAddress);
+    }
+
+    // make sure both email addresses are valid
+    // and that the recipient wants to receive email
+    if (empty($toEmail) or $toDoNotEmail) {
+      return FALSE;
+    }
+    if (!trim($toDisplayName)) {
+      $toDisplayName = $toEmail;
+    }
+
+    $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
+    $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
+
+    // create the params array
+    $mailParams = [
+      'groupName' => 'Activity Email Sender',
+      'from' => $from,
+      'toName' => $toDisplayName,
+      'toEmail' => $toEmail,
+      'subject' => $subject,
+      'cc' => $cc,
+      'bcc' => $bcc,
+      'text' => $text_message,
+      'html' => $html_message,
+      'attachments' => $attachments,
+    ];
+
+    if (!CRM_Utils_Mail::send($mailParams)) {
+      return FALSE;
+    }
+
+    // add activity target record for every mail that is send
+    $activityTargetParams = [
+      'activity_id' => $activityID,
+      'contact_id' => $toID,
+      'record_type_id' => $targetID,
+    ];
+    CRM_Activity_BAO_ActivityContact::create($activityTargetParams);
+    return TRUE;
+  }
+
+  /**
+   * Get the url to redirect the user's browser to.
+   *
+   * @return string
+   * @throws \CRM_Core_Exception
+   */
+  protected function getRedirectUrl(): string {
+    // also fix the user context stack
+    if ($this->getCaseID()) {
+      $ccid = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseContact', $this->_caseId,
+        'contact_id', 'case_id'
+      );
+      $url = CRM_Utils_System::url('civicrm/contact/view/case',
+        "&reset=1&action=view&cid={$ccid}&id=" . $this->getCaseID()
+      );
+    }
+    elseif ($this->_context) {
+      $url = CRM_Utils_System::url('civicrm/dashboard', 'reset=1');
+    }
+    else {
+      $url = CRM_Utils_System::url('civicrm/contact/view',
+        "&show=1&action=browse&cid={$this->_contactIds[0]}&selectedChild=activity"
+      );
+    }
+    return $url;
+  }
+
+  /**
+   * Get the result rows to email.
+   *
+   * @return array
+   *
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   */
+  protected function getRowsForEmails(): array {
+    $rows = [];
+    foreach ($this->getRows() as $row) {
+      $rows[$row['contact_id']][] = $row;
+    }
+    // format contact details array to handle multiple emails from same contact
+    $formattedContactDetails = [];
+    foreach ($this->getEmails() as $details) {
+      $contactID = $details['contact_id'];
+      $index = $contactID . '::' . $details['email'];
+      if (!isset($rows[$contactID])) {
+        $formattedContactDetails[$index] = $details;
+        continue;
+      }
+      if ($this->isGroupByContact()) {
+        foreach ($rows[$contactID] as $rowDetail) {
+          $details['schema'] = $rowDetail['schema'] ?? [];
+        }
+        $formattedContactDetails[$index] = $details;
+      }
+      else {
+        foreach ($rows[$contactID] as $key => $rowDetail) {
+          $index .= '_' . $key;
+          $formattedContactDetails[$index] = $details;
+          $formattedContactDetails[$index]['schema'] = $rowDetail['schema'] ?? [];
+        }
+      }
+
+    }
+    return $formattedContactDetails;
+  }
+
+  /**
+   * Only send one email per contact.
+   *
+   * This has historically been done for contributions & makes sense if
+   * no entity specific tokens are in use.
+   *
+   * @return bool
+   */
+  protected function isGroupByContact(): bool {
+    return TRUE;
+  }
+
+  /**
+   * Get the tokens in the submitted message.
+   *
+   * @return array
+   * @throws \CRM_Core_Exception
+   */
+  protected function getMessageTokens(): array {
+    return CRM_Utils_Token::getTokens($this->getSubject() . $this->getSubmittedValue('html_message') . $this->getSubmittedValue('text_message'));
+  }
+
+  /**
+   * @return string
+   * @throws \API_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
+   */
+  protected function getBcc(): string {
+    return $this->getEmailString($this->getBccArray());
+  }
+
+  /**
+   * @return string
+   * @throws \API_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
+   */
+  protected function getCc(): string {
+    return $this->getEmailString($this->getCcArray());
+  }
+
+  /**
+   * @return array
+   */
+  protected function getCcArray() {
+    if ($this->getSubmittedValue('cc_id')) {
+      return explode(',', $this->getSubmittedValue('cc_id'));
+    }
+    return [];
+  }
+
+  /**
+   * @return array
+   */
+  protected function getBccArray() {
+    $bccArray = [];
+    if ($this->getSubmittedValue('bcc_id')) {
+      $bccArray = explode(',', $this->getSubmittedValue('bcc_id'));
+    }
+    return $bccArray;
+  }
+
 }
diff --git a/civicrm/CRM/Contact/Form/Task/Label.php b/civicrm/CRM/Contact/Form/Task/Label.php
index 724b6ef786..ac1effae17 100644
--- a/civicrm/CRM/Contact/Form/Task/Label.php
+++ b/civicrm/CRM/Contact/Form/Task/Label.php
@@ -41,7 +41,7 @@ class CRM_Contact_Form_Task_Label extends CRM_Contact_Form_Task {
    * @param CRM_Core_Form $form
    */
   public static function buildLabelForm($form) {
-    CRM_Utils_System::setTitle(ts('Make Mailing Labels'));
+    $form->setTitle(ts('Make Mailing Labels'));
 
     //add select for label
     $label = CRM_Core_BAO_LabelFormat::getList(TRUE);
diff --git a/civicrm/CRM/Contact/Form/Task/Map.php b/civicrm/CRM/Contact/Form/Task/Map.php
index a6aaa273c9..91991489e2 100644
--- a/civicrm/CRM/Contact/Form/Task/Map.php
+++ b/civicrm/CRM/Contact/Form/Task/Map.php
@@ -125,7 +125,7 @@ class CRM_Contact_Form_Task_Map extends CRM_Contact_Form_Task {
   public static function createMapXML($ids, $locationId, &$page, $addBreadCrumb, $type = 'Contact') {
     $config = CRM_Core_Config::singleton();
 
-    CRM_Utils_System::setTitle(ts('Map Location(s)'));
+    $this->setTitle(ts('Map Location(s)'));
     $page->assign('query', 'CiviCRM Search Query');
     $page->assign('mapProvider', $config->mapProvider);
     $page->assign('mapKey', urlencode($config->mapAPIKey));
diff --git a/civicrm/CRM/Contact/Form/Task/PDF.php b/civicrm/CRM/Contact/Form/Task/PDF.php
index 03f040bff2..8c91685113 100644
--- a/civicrm/CRM/Contact/Form/Task/PDF.php
+++ b/civicrm/CRM/Contact/Form/Task/PDF.php
@@ -95,13 +95,6 @@ class CRM_Contact_Form_Task_PDF extends CRM_Contact_Form_Task {
     $this->addPDFElementsToForm();
   }
 
-  /**
-   * Process the form after the input has been submitted and validated.
-   */
-  public function postProcess() {
-    CRM_Contact_Form_Task_PDFLetterCommon::postProcess($this);
-  }
-
   /**
    * List available tokens for this form.
    *
@@ -117,4 +110,26 @@ class CRM_Contact_Form_Task_PDF extends CRM_Contact_Form_Task {
     return $tokens;
   }
 
+  /**
+   * Get the rows from the results to be pdf-d.
+   *
+   * @todo the case handling should be in the case pdf task.
+   * It needs fixing to support standalone & some url fixes
+   *
+   * similar to https://github.com/civicrm/civicrm-core/pull/21688
+   *
+   * @return array
+   */
+  protected function getRows(): array {
+    $rows = [];
+    foreach ($this->_contactIds as $index => $contactID) {
+      $caseID = $this->getVar('_caseId');
+      if (empty($caseID) && !empty($this->_caseIds[$index])) {
+        $caseID = $this->_caseIds[$index];
+      }
+      $rows[] = ['contact_id' => $contactID, 'schema' => ['caseId' => $caseID, 'contactId' => $contactID]];
+    }
+    return $rows;
+  }
+
 }
diff --git a/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php b/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
index ce093ac680..f49ab98d51 100644
--- a/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
+++ b/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
@@ -68,7 +68,10 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
     $form->_contactIds = explode(',', $cid);
     // put contact display name in title for single contact mode
     if (count($form->_contactIds) === 1) {
-      CRM_Utils_System::setTitle(ts('Print/Merge Document for %1', [1 => CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $cid, 'display_name')]));
+      $form->setTitle(
+        ts('Print/Merge Document for %1',
+        [1 => CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $cid, 'display_name')])
+      );
     }
   }
 
@@ -80,8 +83,12 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
    *
    * @return array
    *   [$categories, $html_message, $messageToken, $returnProperties]
+   *
+   * @deprecated
    */
   public static function processMessageTemplate($formValues) {
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
+
     $html_message = self::processTemplate($formValues);
 
     $categories = self::getTokenCategories();
@@ -106,14 +113,17 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
    * Process the form after the input has been submitted and validated.
    *
    * @param CRM_Core_Form $form
+   *
    * @throws \CRM_Core_Exception
    * @throws \CiviCRM_API3_Exception
+   * @throws \API_Exception
+   *
+   * @deprecated
    */
-  public static function postProcess(&$form) {
+  public static function postProcess(&$form): void {
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
     $formValues = $form->controller->exportValues($form->getName());
-    list($formValues, $categories, $html_message, $messageToken, $returnProperties) = self::processMessageTemplate($formValues);
-    $skipOnHold = $form->skipOnHold ?? FALSE;
-    $skipDeceased = $form->skipDeceased ?? TRUE;
+    [$formValues, $categories, $html_message, $messageToken, $returnProperties] = self::processMessageTemplate($formValues);
     $html = $activityIds = [];
 
     // CRM-16725 Skip creation of activities if user is previewing their PDF letter(s)
@@ -122,48 +132,21 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
     }
 
     if (!empty($formValues['document_file_path'])) {
-      list($html_message, $zip) = CRM_Utils_PDF_Document::unzipDoc($formValues['document_file_path'], $formValues['document_type']);
+      [$html_message, $zip] = CRM_Utils_PDF_Document::unzipDoc($formValues['document_file_path'], $formValues['document_type']);
     }
 
     foreach ($form->_contactIds as $item => $contactId) {
-      $caseId = NULL;
-      $params = ['contact_id' => $contactId];
-
       $caseId = $form->getVar('_caseId');
       if (empty($caseId) && !empty($form->_caseIds[$item])) {
         $caseId = $form->_caseIds[$item];
       }
-      if ($caseId) {
-        $params['case_id'] = $caseId;
-      }
 
-      list($contact) = CRM_Utils_Token::getTokenDetails($params,
-        $returnProperties,
-        $skipOnHold,
-        $skipDeceased,
-        NULL,
-        $messageToken,
-        'CRM_Contact_Form_Task_PDFLetterCommon'
-      );
-
-      if (civicrm_error($contact)) {
-        $notSent[] = $contactId;
-        continue;
-      }
-
-      $tokenHtml = CRM_Utils_Token::replaceContactTokens($html_message, $contact[$contactId], TRUE, $messageToken);
-
-      if ($caseId) {
-        $tokenHtml = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenHtml, $messageToken);
-      }
-      $tokenHtml = CRM_Utils_Token::replaceHookTokens($tokenHtml, $contact[$contactId], $categories, TRUE);
-
-      if (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY) {
-        $smarty = CRM_Core_Smarty::singleton();
-        // also add the contact tokens to the template
-        $smarty->assign_by_ref('contact', $contact);
-        $tokenHtml = $smarty->fetch("string:$tokenHtml");
-      }
+      $tokenHtml = CRM_Core_BAO_MessageTemplate::renderTemplate([
+        'contactId' => $contactId,
+        'messageTemplate' => ['msg_html' => $html_message],
+        'tokenContext' => $caseId ? ['caseId' => $caseId] : [],
+        'disableSmarty' => (!defined('CIVICRM_MAIL_SMARTY') || !CIVICRM_MAIL_SMARTY),
+      ])['html'];
 
       $html[] = $tokenHtml;
     }
@@ -180,10 +163,9 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
     $mimeType = self::getMimeType($type);
     // ^^ Useful side-effect: consistently throws error for unrecognized types.
 
-    $fileName = self::getFileName($form);
-    $fileName = "$fileName.$type";
+    $fileName = method_exists($form, 'getFileName') ? ($form->getFileName() . '.' . $type) : 'CiviLetter.' . $type;
 
-    if ($type == 'pdf') {
+    if ($type === 'pdf') {
       CRM_Utils_PDF_Utils::html2pdf($html, $fileName, FALSE, $formValues);
     }
     elseif (!empty($formValues['document_file_path'])) {
@@ -218,29 +200,6 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
     CRM_Utils_System::civiExit();
   }
 
-  /**
-   * Returns the filename for the pdf by striping off unwanted characters and limits the length to 200 characters.
-   *
-   * @param CRM_Core_Form $form
-   *
-   * @return string
-   *   The name of the file.
-   */
-  private static function getFileName(CRM_Core_Form $form) {
-    if (!empty($form->getSubmittedValue('pdf_file_name'))) {
-      $fileName = CRM_Utils_File::makeFilenameWithUnicode($form->getSubmittedValue('pdf_file_name'), '_', 200);
-    }
-    elseif (!empty($form->getSubmittedValue('subject'))) {
-      $fileName = CRM_Utils_File::makeFilenameWithUnicode($form->getSubmittedValue('subject'), '_', 200);
-    }
-    else {
-      $fileName = 'CiviLetter';
-    }
-    $fileName = self::isLiveMode($form) ? $fileName : $fileName . '_preview';
-
-    return $fileName;
-  }
-
   /**
    * @param CRM_Core_Form $form
    * @param string $html_message
@@ -255,8 +214,11 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
    *   and use-case.
    *
    * @throws CRM_Core_Exception
+   *
+   * @deprecated
    */
   public static function createActivities($form, $html_message, $contactIds, $subject, $campaign_id, $perContactHtml = []) {
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
 
     $activityParams = [
       'subject' => $subject,
@@ -326,6 +288,8 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
    * @param string $type
    * @return string
    * @throws \CRM_Core_Exception
+   *
+   * @deprecated
    */
   private static function getMimeType($type) {
     $mimeTypes = [
@@ -345,6 +309,8 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
   /**
    * Get the categories required for rendering tokens.
    *
+   * @deprecated
+   *
    * @return array
    */
   protected static function getTokenCategories() {
@@ -368,6 +334,8 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
    * @return bool
    *   TRUE if the Download Document button was clicked (also defaults to TRUE
    *     if the form controller does not exist), else FALSE
+   *
+   * @deprecated
    */
   protected static function isLiveMode($form) {
     // CRM-21255 - Hrm, CiviCase 4+5 seem to report buttons differently...
diff --git a/civicrm/CRM/Contact/Form/Task/PDFTrait.php b/civicrm/CRM/Contact/Form/Task/PDFTrait.php
index 9ac741c0a1..1adcc4d642 100644
--- a/civicrm/CRM/Contact/Form/Task/PDFTrait.php
+++ b/civicrm/CRM/Contact/Form/Task/PDFTrait.php
@@ -84,7 +84,7 @@ trait CRM_Contact_Form_Task_PDFTrait {
       ts('Paper Size'),
       [0 => ts('- default -')] + CRM_Core_BAO_PaperSize::getList(TRUE),
       FALSE,
-      ['onChange' => "selectPaper( this.value ); showUpdateFormatChkBox();"]
+      ['onChange' => 'selectPaper( this.value ); showUpdateFormatChkBox();']
     );
     $form->add(
       'select',
@@ -92,7 +92,7 @@ trait CRM_Contact_Form_Task_PDFTrait {
       ts('Orientation'),
       CRM_Core_BAO_PdfFormat::getPageOrientations(),
       FALSE,
-      ['onChange' => "updatePaperDimensions(); showUpdateFormatChkBox();"]
+      ['onChange' => 'updatePaperDimensions(); showUpdateFormatChkBox();']
     );
     $form->add(
       'select',
@@ -158,26 +158,7 @@ trait CRM_Contact_Form_Task_PDFTrait {
 
     CRM_Mailing_BAO_Mailing::commonCompose($form);
 
-    $buttons = [];
-    if ($form->get('action') != CRM_Core_Action::VIEW) {
-      $buttons[] = [
-        'type' => 'upload',
-        'name' => ts('Download Document'),
-        'isDefault' => TRUE,
-        'icon' => 'fa-download',
-      ];
-      $buttons[] = [
-        'type' => 'submit',
-        'name' => ts('Preview'),
-        'subName' => 'preview',
-        'icon' => 'fa-search',
-        'isDefault' => FALSE,
-      ];
-    }
-    $buttons[] = [
-      'type' => 'cancel',
-      'name' => $form->get('action') == CRM_Core_Action::VIEW ? ts('Done') : ts('Cancel'),
-    ];
+    $buttons = $this->getButtons($form);
     $form->addButtons($buttons);
 
     $form->addFormRule(['CRM_Core_Form_Task_PDFLetterCommon', 'formRule'], $form);
@@ -201,4 +182,393 @@ trait CRM_Contact_Form_Task_PDFTrait {
     $form->setTitle('Print/Merge Document');
   }
 
+  /**
+   * Returns the filename for the pdf by striping off unwanted characters and limits the length to 200 characters.
+   *
+   * @return string
+   *   The name of the file.
+   */
+  public function getFileName(): string {
+    if (!empty($this->getSubmittedValue('pdf_file_name'))) {
+      $fileName = CRM_Utils_File::makeFilenameWithUnicode($this->getSubmittedValue('pdf_file_name'), '_', 200);
+    }
+    elseif (!empty($this->getSubmittedValue('subject'))) {
+      $fileName = CRM_Utils_File::makeFilenameWithUnicode($this->getSubmittedValue('subject'), '_', 200);
+    }
+    else {
+      $fileName = 'CiviLetter';
+    }
+    return $this->isLiveMode() ? $fileName : $fileName . '_preview';
+  }
+
+  /**
+   * Is the form in live mode (as opposed to being run as a preview).
+   *
+   * Returns true if the user has clicked the Download Document button on a
+   * Print/Merge Document (PDF Letter) search task form, or false if the Preview
+   * button was clicked.
+   *
+   * @return bool
+   *   TRUE if the Download Document button was clicked (also defaults to TRUE
+   *     if the form controller does not exist), else FALSE
+   */
+  protected function isLiveMode(): bool {
+    return strpos($this->controller->getButtonName(), '_preview') === FALSE;
+  }
+
+  /**
+   * Process the form after the input has been submitted and validated.
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
+   * @throws \API_Exception
+   */
+  public function postProcess(): void {
+    $formValues = $this->controller->exportValues($this->getName());
+    [$formValues, $html_message] = $this->processMessageTemplate($formValues);
+    $html = $activityIds = [];
+
+    // CRM-16725 Skip creation of activities if user is previewing their PDF letter(s)
+    if ($this->isLiveMode()) {
+      $activityIds = $this->createActivities($html_message, $this->_contactIds, $formValues['subject'], CRM_Utils_Array::value('campaign_id', $formValues));
+    }
+
+    if (!empty($formValues['document_file_path'])) {
+      [$html_message, $zip] = CRM_Utils_PDF_Document::unzipDoc($formValues['document_file_path'], $formValues['document_type']);
+    }
+
+    foreach ($this->getRows() as $row) {
+      $tokenHtml = CRM_Core_BAO_MessageTemplate::renderTemplate([
+        'contactId' => $row['contact_id'],
+        'messageTemplate' => ['msg_html' => $html_message],
+        'tokenContext' => array_merge(['schema' => $this->getTokenSchema()], ($row['schema'] ?? [])),
+        'disableSmarty' => (!defined('CIVICRM_MAIL_SMARTY') || !CIVICRM_MAIL_SMARTY),
+      ])['html'];
+
+      $html[] = $tokenHtml;
+    }
+
+    $tee = NULL;
+    if ($this->isLiveMode() && Civi::settings()->get('recordGeneratedLetters') === 'combined-attached') {
+      if (count($activityIds) !== 1) {
+        throw new CRM_Core_Exception('When recordGeneratedLetters=combined-attached, there should only be one activity.');
+      }
+      $tee = CRM_Utils_ConsoleTee::create()->start();
+    }
+
+    $type = $formValues['document_type'];
+    $mimeType = $this->getMimeType($type);
+    // ^^ Useful side-effect: consistently throws error for unrecognized types.
+
+    $fileName = $this->getFileName();
+
+    if ($type === 'pdf') {
+      CRM_Utils_PDF_Utils::html2pdf($html, $fileName, FALSE, $formValues);
+    }
+    elseif (!empty($formValues['document_file_path'])) {
+      $fileName = pathinfo($formValues['document_file_path'], PATHINFO_FILENAME) . '.' . $type;
+      CRM_Utils_PDF_Document::printDocuments($html, $fileName, $type, $zip);
+    }
+    else {
+      CRM_Utils_PDF_Document::html2doc($html, $fileName . '.' . $this->getSubmittedValue('document_type'), $formValues);
+    }
+
+    if ($tee) {
+      $tee->stop();
+      $content = file_get_contents($tee->getFileName(), NULL, NULL, NULL, 5);
+      if (empty($content)) {
+        throw new \CRM_Core_Exception("Failed to capture document content (type=$type)!");
+      }
+      foreach ($activityIds as $activityId) {
+        civicrm_api3('Attachment', 'create', [
+          'entity_table' => 'civicrm_activity',
+          'entity_id' => $activityId,
+          'name' => $fileName,
+          'mime_type' => $mimeType,
+          'options' => [
+            'move-file' => $tee->getFileName(),
+          ],
+        ]);
+      }
+    }
+
+    $this->postProcessHook();
+
+    CRM_Utils_System::civiExit();
+  }
+
+  /**
+   * Convert from a vague-type/file-extension to mime-type.
+   *
+   * @param string $type
+   * @return string
+   * @throws \CRM_Core_Exception
+   */
+  protected function getMimeType($type) {
+    $mimeTypes = [
+      'pdf' => 'application/pdf',
+      'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+      'odt' => 'application/vnd.oasis.opendocument.text',
+      'html' => 'text/html',
+    ];
+    if (isset($mimeTypes[$type])) {
+      return $mimeTypes[$type];
+    }
+    else {
+      throw new \CRM_Core_Exception("Cannot determine mime type");
+    }
+  }
+
+  /**
+   * @param string $html_message
+   * @param array $contactIds
+   * @param string $subject
+   * @param int $campaign_id
+   * @param array $perContactHtml
+   *
+   * @return array
+   *   List of activity IDs.
+   *   There may be 1 or more, depending on the system-settings
+   *   and use-case.
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
+   */
+  protected function createActivities($html_message, $contactIds, $subject, $campaign_id, $perContactHtml = []): array {
+    $activityParams = [
+      'subject' => $subject,
+      'campaign_id' => $campaign_id,
+      'source_contact_id' => CRM_Core_Session::getLoggedInContactID(),
+      'activity_type_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Print PDF Letter'),
+      'activity_date_time' => date('YmdHis'),
+      'details' => $html_message,
+    ];
+    if (!empty($this->_activityId)) {
+      $activityParams += ['id' => $this->_activityId];
+    }
+
+    $activityIds = [];
+    switch (Civi::settings()->get('recordGeneratedLetters')) {
+      case 'none':
+        return [];
+
+      case 'multiple':
+        // One activity per contact.
+        foreach ($contactIds as $i => $contactId) {
+          $fullParams = ['target_contact_id' => $contactId] + $activityParams;
+          if (!empty($this->_caseId)) {
+            $fullParams['case_id'] = $this->_caseId;
+          }
+          elseif (!empty($this->_caseIds[$i])) {
+            $fullParams['case_id'] = $this->_caseIds[$i];
+          }
+
+          if (isset($perContactHtml[$contactId])) {
+            $fullParams['details'] = implode('<hr>', $perContactHtml[$contactId]);
+          }
+          $activity = civicrm_api3('Activity', 'create', $fullParams);
+          $activityIds[$contactId] = $activity['id'];
+        }
+
+        break;
+
+      case 'combined':
+      case 'combined-attached':
+        // One activity with all contacts.
+        $fullParams = ['target_contact_id' => $contactIds] + $activityParams;
+        if (!empty($this->_caseId)) {
+          $fullParams['case_id'] = $this->_caseId;
+        }
+        elseif (!empty($this->_caseIds)) {
+          $fullParams['case_id'] = $this->_caseIds;
+        }
+        $activity = civicrm_api3('Activity', 'create', $fullParams);
+        $activityIds[] = $activity['id'];
+        break;
+
+      default:
+        throw new CRM_Core_Exception('Unrecognized option in recordGeneratedLetters: ' . Civi::settings()->get('recordGeneratedLetters'));
+    }
+
+    return $activityIds;
+  }
+
+  /**
+   * Handle the template processing part of the form
+   *
+   * @param array $formValues
+   *
+   * @return string $html_message
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
+   */
+  public function processTemplate(&$formValues) {
+    $html_message = $formValues['html_message'] ?? NULL;
+
+    // process message template
+    if (!empty($this->getSubmittedValue('saveTemplate')) || !empty($formValues['updateTemplate'])) {
+      $messageTemplate = [
+        'msg_text' => NULL,
+        'msg_html' => $formValues['html_message'],
+        'msg_subject' => NULL,
+        'is_active' => TRUE,
+      ];
+
+      $messageTemplate['pdf_format_id'] = 'null';
+      if (!empty($formValues['bind_format']) && $formValues['format_id']) {
+        $messageTemplate['pdf_format_id'] = $formValues['format_id'];
+      }
+      if ($this->getSubmittedValue('saveTemplate')) {
+        $messageTemplate['msg_title'] = $this->getSubmittedValue('saveTemplateName');
+        CRM_Core_BAO_MessageTemplate::add($messageTemplate);
+      }
+
+      if ($formValues['template'] && !empty($formValues['updateTemplate'])) {
+        $messageTemplate['id'] = $formValues['template'];
+
+        unset($messageTemplate['msg_title']);
+        CRM_Core_BAO_MessageTemplate::add($messageTemplate);
+      }
+    }
+    elseif (CRM_Utils_Array::value('template', $formValues) > 0) {
+      if (!empty($formValues['bind_format']) && $formValues['format_id']) {
+        $query = "UPDATE civicrm_msg_template SET pdf_format_id = {$formValues['format_id']} WHERE id = {$formValues['template']}";
+      }
+      else {
+        $query = "UPDATE civicrm_msg_template SET pdf_format_id = NULL WHERE id = {$formValues['template']}";
+      }
+      CRM_Core_DAO::executeQuery($query);
+
+      $documentInfo = CRM_Core_BAO_File::getEntityFile('civicrm_msg_template', $formValues['template']);
+      if ($documentInfo) {
+        $info = reset($documentInfo);
+        [$html_message, $formValues['document_type']] = CRM_Utils_PDF_Document::docReader($info['fullPath'], $info['mime_type']);
+        $formValues['document_file_path'] = $info['fullPath'];
+      }
+    }
+    // extract the content of uploaded document file
+    elseif (!empty($formValues['document_file'])) {
+      [$html_message, $formValues['document_type']] = CRM_Utils_PDF_Document::docReader($formValues['document_file']['name'], $formValues['document_file']['type']);
+      $formValues['document_file_path'] = $formValues['document_file']['name'];
+    }
+
+    if (!empty($formValues['update_format'])) {
+      $bao = new CRM_Core_BAO_PdfFormat();
+      $bao->savePdfFormat($formValues, $formValues['format_id']);
+    }
+
+    return $html_message;
+  }
+
+  /**
+   * Part of the post process which prepare and extract information from the template.
+   *
+   *
+   * @param array $formValues
+   *
+   * @return array
+   *   [$categories, $html_message, $messageToken, $returnProperties]
+   */
+  public function processMessageTemplate($formValues) {
+    $html_message = $this->processTemplate($formValues);
+
+    //time being hack to strip '&nbsp;'
+    //from particular letter line, CRM-6798
+    $this->formatMessage($html_message);
+
+    $messageToken = CRM_Utils_Token::getTokens($html_message);
+
+    $returnProperties = [];
+    if (isset($messageToken['contact'])) {
+      foreach ($messageToken['contact'] as $key => $value) {
+        $returnProperties[$value] = 1;
+      }
+    }
+
+    return [$formValues, $html_message, $messageToken, $returnProperties];
+  }
+
+  /**
+   * @param $message
+   */
+  public function formatMessage(&$message) {
+    $newLineOperators = [
+      'p' => [
+        'oper' => '<p>',
+        'pattern' => '/<(\s+)?p(\s+)?>/m',
+      ],
+      'br' => [
+        'oper' => '<br />',
+        'pattern' => '/<(\s+)?br(\s+)?\/>/m',
+      ],
+    ];
+
+    $htmlMsg = preg_split($newLineOperators['p']['pattern'], $message);
+    foreach ($htmlMsg as $k => & $m) {
+      $messages = preg_split($newLineOperators['br']['pattern'], $m);
+      foreach ($messages as $key => & $msg) {
+        $msg = trim($msg);
+        $matches = [];
+        if (preg_match('/^(&nbsp;)+/', $msg, $matches)) {
+          $spaceLen = strlen($matches[0]) / 6;
+          $trimMsg = ltrim($msg, '&nbsp; ');
+          $charLen = strlen($trimMsg);
+          $totalLen = $charLen + $spaceLen;
+          if ($totalLen > 100) {
+            $spacesCount = 10;
+            if ($spaceLen > 50) {
+              $spacesCount = 20;
+            }
+            if ($charLen > 100) {
+              $spacesCount = 1;
+            }
+            $msg = str_repeat('&nbsp;', $spacesCount) . $trimMsg;
+          }
+        }
+      }
+      $m = implode($newLineOperators['br']['oper'], $messages);
+    }
+    $message = implode($newLineOperators['p']['oper'], $htmlMsg);
+  }
+
+  /**
+   * Get the buttons to display.
+   *
+   * @return array
+   */
+  protected function getButtons(): array {
+    $buttons = [];
+    if (!$this->isFormInViewMode()) {
+      $buttons[] = [
+        'type' => 'upload',
+        'name' => $this->getMainSubmitButtonName(),
+        'isDefault' => TRUE,
+        'icon' => 'fa-download',
+      ];
+      $buttons[] = [
+        'type' => 'submit',
+        'name' => ts('Preview'),
+        'subName' => 'preview',
+        'icon' => 'fa-search',
+        'isDefault' => FALSE,
+      ];
+    }
+    $buttons[] = [
+      'type' => 'cancel',
+      'name' => $this->isFormInViewMode() ? ts('Done') : ts('Cancel'),
+    ];
+    return $buttons;
+  }
+
+  /**
+   * Get the name for the main submit button.
+   *
+   * @return string
+   */
+  protected function getMainSubmitButtonName(): string {
+    return ts('Download Document');
+  }
+
 }
diff --git a/civicrm/CRM/Contact/Form/Task/PickProfile.php b/civicrm/CRM/Contact/Form/Task/PickProfile.php
index 826e8ac9ac..d3d2430be3 100644
--- a/civicrm/CRM/Contact/Form/Task/PickProfile.php
+++ b/civicrm/CRM/Contact/Form/Task/PickProfile.php
@@ -80,7 +80,7 @@ class CRM_Contact_Form_Task_PickProfile extends CRM_Contact_Form_Task {
    * Build the form object.
    */
   public function buildQuickForm() {
-    CRM_Utils_System::setTitle(ts('Update multiple contacts'));
+    $this->setTitle(ts('Update multiple contacts'));
 
     foreach ($this->_contactIds as $id) {
       $this->_contactTypes = CRM_Contact_BAO_Contact::getContactTypes($id);
diff --git a/civicrm/CRM/Contact/Form/Task/RemoveFromGroup.php b/civicrm/CRM/Contact/Form/Task/RemoveFromGroup.php
index a27a5441ea..235f68f7a6 100644
--- a/civicrm/CRM/Contact/Form/Task/RemoveFromGroup.php
+++ b/civicrm/CRM/Contact/Form/Task/RemoveFromGroup.php
@@ -30,7 +30,7 @@ class CRM_Contact_Form_Task_RemoveFromGroup extends CRM_Contact_Form_Task {
     $group = ['' => ts('- select group -')] + CRM_Core_PseudoConstant::nestedGroup();
     $groupElement = $this->add('select', 'group_id', ts('Select Group'), $group, TRUE, ['class' => 'crm-select2 huge']);
 
-    CRM_Utils_System::setTitle(ts('Remove Contacts from Group'));
+    $this->setTitle(ts('Remove Contacts from Group'));
     $this->addDefaultButtons(ts('Remove from Group'));
   }
 
diff --git a/civicrm/CRM/Contact/Form/Task/Useradd.php b/civicrm/CRM/Contact/Form/Task/Useradd.php
index 27a4ff7dd4..1956cd6272 100644
--- a/civicrm/CRM/Contact/Form/Task/Useradd.php
+++ b/civicrm/CRM/Contact/Form/Task/Useradd.php
@@ -43,7 +43,7 @@ class CRM_Contact_Form_Task_Useradd extends CRM_Core_Form {
     $contact = CRM_Contact_BAO_Contact::retrieve($params, $defaults, $ids);
     $this->_displayName = $contact->display_name;
     $this->_email = $contact->email;
-    CRM_Utils_System::setTitle(ts('Create User Record for %1', [1 => $this->_displayName]));
+    $this->setTitle(ts('Create User Record for %1', [1 => $this->_displayName]));
   }
 
   /**
diff --git a/civicrm/CRM/Contact/Import/Controller.php b/civicrm/CRM/Contact/Import/Controller.php
index c965973ffe..da72132b1b 100644
--- a/civicrm/CRM/Contact/Import/Controller.php
+++ b/civicrm/CRM/Contact/Import/Controller.php
@@ -26,10 +26,7 @@ class CRM_Contact_Import_Controller extends CRM_Core_Controller {
   public function __construct($title = NULL, $action = CRM_Core_Action::NONE, $modal = TRUE) {
     parent::__construct($title, $modal);
 
-    // lets get around the time limit issue if possible, CRM-2113
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     $this->_stateMachine = new CRM_Import_StateMachine($this, $action);
 
diff --git a/civicrm/CRM/Contact/Import/Form/MapField.php b/civicrm/CRM/Contact/Import/Form/MapField.php
index ac0a0d65ab..7e3ffd33fc 100644
--- a/civicrm/CRM/Contact/Import/Form/MapField.php
+++ b/civicrm/CRM/Contact/Import/Form/MapField.php
@@ -214,6 +214,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
 
     foreach ($this->_location_types as $key => $value) {
       $sel3['phone'][$key] = &$phoneTypes;
+      $sel3['phone_ext'][$key] = &$phoneTypes;
       //build array for IM service provider type for contact
       $sel3['im'][$key] = &$imProviders;
     }
@@ -322,6 +323,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
 
         foreach ($this->_location_types as $k => $value) {
           $sel4[$key]['phone'][$k] = &$phoneTypes;
+          $sel4[$key]['phone_ext'][$k] = &$phoneTypes;
           //build array of IM service provider for related contact
           $sel4[$key]['im'][$k] = &$imProviders;
         }
@@ -546,7 +548,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
           $locations[$i] = $locationTypes[$selOne];
           $parserParameters['mapperLocType'][$i] = $selOne;
           if ($selTwo && is_numeric($selTwo)) {
-            if ($fldName === 'phone') {
+            if ($fldName === 'phone' || $fldName === 'phone_ext') {
               $parserParameters['mapperPhoneType'][$i] = $phoneTypes[$selTwo];
             }
             elseif ($fldName === 'im') {
@@ -569,7 +571,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
           else {
             $parserParameters['relatedContactLocType'][$i] = $locationTypes[$selTwo] ?? NULL;
             if ($selThree) {
-              if ($selOne === 'phone') {
+              if ($selOne === 'phone' || $selOne === 'phone_ext') {
                 $parserParameters['relatedContactPhoneType'][$i] = $phoneTypes[$selThree];
               }
               elseif ($selOne === 'im') {
@@ -658,7 +660,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
             $updateMappingFields->website_type_id = $mapperKeys[$i][1] ?? NULL;
           }
           else {
-            if (CRM_Utils_Array::value('0', $mapperKeys[$i]) == 'phone') {
+            if (($mapperKeys[$i][0] ?? NULL) === 'phone' || ($mapperKeys[$i][0] ?? NULL) === 'phone_ext') {
               $updateMappingFields->phone_type_id = $mapperKeys[$i][2] ?? NULL;
             }
             elseif (CRM_Utils_Array::value('0', $mapperKeys[$i]) == 'im') {
@@ -776,7 +778,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
         $saveMappingFields->website_type_id = $mapperKeys[$i][1] ?? NULL;
       }
       else {
-        if (CRM_Utils_Array::value('0', $mapperKeys[$i]) == 'phone') {
+        if (($mapperKeys[$i][0] ?? NULL) === 'phone' || ($mapperKeys[$i][0] ?? NULL) === 'phone_ext') {
           $saveMappingFields->phone_type_id = $mapperKeys[$i][2] ?? NULL;
         }
         elseif (CRM_Utils_Array::value('0', $mapperKeys[$i]) == 'im') {
diff --git a/civicrm/CRM/Contact/Import/ImportJob.php b/civicrm/CRM/Contact/Import/ImportJob.php
index 75d570e637..249bedc76a 100644
--- a/civicrm/CRM/Contact/Import/ImportJob.php
+++ b/civicrm/CRM/Contact/Import/ImportJob.php
@@ -149,7 +149,7 @@ class CRM_Contact_Import_ImportJob {
           $header[] = $locationTypes[$selOne];
           $parserParameters['mapperLocType'][$key] = $selOne;
           if ($selTwo && is_numeric($selTwo)) {
-            if ($fldName === 'phone') {
+            if ($fldName === 'phone' || $fldName === 'phone_ext') {
               $header[] = $phoneTypes[$selTwo];
               $parserParameters['mapperPhoneType'][$key] = $selTwo;
             }
@@ -188,7 +188,7 @@ class CRM_Contact_Import_ImportJob {
               $header[] = $locationTypes[$selTwo];
               $parserParameters['relatedContactLocType'][$key] = $selTwo;
               if ($selThree) {
-                if ($selOne == 'phone') {
+                if ($selOne == 'phone' || $selOne == 'phone_ext') {
                   $header[] = $phoneTypes[$selThree];
                   $parserParameters['relatedContactPhoneType'][$key] = $selThree;
                 }
diff --git a/civicrm/CRM/Contact/Import/Parser/Contact.php b/civicrm/CRM/Contact/Import/Parser/Contact.php
index bc5c305797..59dafa4560 100644
--- a/civicrm/CRM/Contact/Import/Parser/Contact.php
+++ b/civicrm/CRM/Contact/Import/Parser/Contact.php
@@ -621,6 +621,12 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Contact_Import_Parser {
         ->setLoadOptions(TRUE)
         ->execute()->indexBy('name');
       foreach ($fields as $fieldName => $fieldSpec) {
+        if (isset($formatted[$fieldName]) && is_array($formatted[$fieldName])) {
+          // If we have an array at this stage, it's probably a multi-select
+          // field that has already been parsed properly into the value that
+          // should be inserted into the database.
+          continue;
+        }
         if (!empty($formatted[$fieldName])
           && empty($fieldSpec['options'][$formatted[$fieldName]])) {
           $formatted[$fieldName] = array_search($formatted[$fieldName], $fieldSpec['options'], TRUE) ?? $formatted[$fieldName];
diff --git a/civicrm/CRM/Contact/Tokens.php b/civicrm/CRM/Contact/Tokens.php
new file mode 100644
index 0000000000..03c4d37db1
--- /dev/null
+++ b/civicrm/CRM/Contact/Tokens.php
@@ -0,0 +1,710 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+use Civi\Api4\Contact;
+use Civi\Token\Event\TokenRegisterEvent;
+use Civi\Token\Event\TokenValueEvent;
+use Civi\Token\TokenProcessor;
+use Civi\Token\TokenRow;
+
+/**
+ * Class CRM_Contact_Tokens
+ *
+ * Generate "contact.*" tokens.
+ */
+class CRM_Contact_Tokens extends CRM_Core_EntityTokens {
+
+  /**
+   * Get the entity name for api v4 calls.
+   *
+   * @return string
+   */
+  protected function getApiEntityName(): string {
+    return 'Contact';
+  }
+
+  /**
+   * Tokens defined by the legacy hook.
+   *
+   * @var array
+   */
+  protected $hookTokens;
+
+  /**
+   * @inheritDoc
+   */
+  public static function getSubscribedEvents(): array {
+    return [
+      'civi.token.eval' => [
+        ['evaluateLegacyHookTokens', 500],
+        ['onEvaluate'],
+      ],
+      'civi.token.list' => 'registerTokens',
+    ];
+  }
+
+  /**
+   * Register the declared tokens.
+   *
+   * @param \Civi\Token\Event\TokenRegisterEvent $e
+   *   The registration event. Add new tokens using register().
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public function registerTokens(TokenRegisterEvent $e): void {
+    if (!$this->checkActive($e->getTokenProcessor())) {
+      return;
+    }
+    $relatedTokens = array_flip($this->getTokenMappingsForRelatedEntities());
+    foreach ($this->getTokenMetadata() as $tokenName => $field) {
+      if ($field['audience'] === 'user') {
+        $e->register([
+          'entity' => $this->entity,
+          // Preserve legacy token names. It generally feels like
+          // it would be good to switch to the more specific token names
+          // but other code paths are still in use which can't handle them.
+          'field' => $relatedTokens[$tokenName] ?? $tokenName,
+          'label' => $field['title'],
+        ]);
+      }
+    }
+    foreach ($this->getLegacyHookTokens() as $legacyHookToken) {
+      $e->register([
+        'entity' => $legacyHookToken['category'],
+        'field' => $legacyHookToken['name'],
+        'label' => $legacyHookToken['label'],
+      ]);
+    }
+  }
+
+  /**
+   * Determine whether this token-handler should be used with
+   * the given processor.
+   *
+   * To short-circuit token-processing in irrelevant contexts,
+   * override this.
+   *
+   * @param \Civi\Token\TokenProcessor $processor
+   * @return bool
+   */
+  public function checkActive(TokenProcessor $processor): bool {
+    return in_array($this->getEntityIDField(), $processor->context['schema'], TRUE);
+  }
+
+  /**
+   * @return string
+   */
+  protected function getEntityIDField(): string {
+    return 'contactId';
+  }
+
+  /**
+   * Get functions declared using the legacy hook.
+   *
+   * Note that these only extend the contact entity (
+   * ie they are based on having a contact ID which they.
+   * may or may not use, but they don't have other
+   * entity IDs.)
+   *
+   * @return array
+   */
+  protected function getLegacyHookTokens(): array {
+    $tokens = [];
+
+    foreach ($this->getHookTokens() as $tokenValues) {
+      foreach ($tokenValues as $key => $value) {
+        if (is_numeric($key)) {
+          // This appears to be an attempt to compensate for
+          // inconsistencies described in https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_tokenValues/#example
+          // in effect there is a suggestion that
+          // Send an Email" and "CiviMail" send different parameters to the tokenValues hook
+          // As of now 'send an email' renders hooks through this class.
+          // CiviMail it depends on the use or otherwise of flexmailer.
+          $key = $value;
+        }
+        if (preg_match('/^\{([^\}]+)\}$/', $value, $matches)) {
+          $value = $matches[1];
+        }
+        $keyParts = explode('.', $key);
+        $tokens[$key] = [
+          'category' => $keyParts[0],
+          'name' => $keyParts[1],
+          'label' => $value,
+        ];
+      }
+    }
+    return $tokens;
+  }
+
+  /**
+   * Get all tokens advertised as contact tokens.
+   *
+   * @return string[]
+   */
+  protected function getExposedFields(): array {
+    return [
+      'contact_type',
+      'do_not_email',
+      'do_not_phone',
+      'do_not_mail',
+      'do_not_sms',
+      'do_not_trade',
+      'is_opt_out',
+      'external_identifier',
+      'sort_name',
+      'display_name',
+      'nick_name',
+      'image_URL',
+      'preferred_communication_method',
+      'preferred_language',
+      'preferred_mail_format',
+      'hash',
+      'source',
+      'first_name',
+      'middle_name',
+      'last_name',
+      'prefix_id',
+      'suffix_id',
+      'formal_title',
+      'communication_style_id',
+      'job_title',
+      'gender_id',
+      'birth_date',
+      'employer_id',
+      'is_deleted',
+      'created_date',
+      'modified_date',
+      'addressee_display',
+      'email_greeting_display',
+      'postal_greeting_display',
+      'id',
+    ];
+  }
+
+  /**
+   * Get the fields exposed from related entities.
+   *
+   * @return \string[][]
+   */
+  protected function getRelatedEntityTokenMetadata(): array {
+    return [
+      'address' => [
+        'location_type_id',
+        'id',
+        'street_address',
+        'street_number',
+        'street_number_suffix',
+        'street_name',
+        'street_unit',
+        'supplemental_address_1',
+        'supplemental_address_2',
+        'supplemental_address_3',
+        'city',
+        'postal_code_suffix',
+        'postal_code',
+        'manual_geo_code',
+        'geo_code_1',
+        'geo_code_2',
+        'name',
+        'master_id',
+        'county_id',
+        'state_province_id',
+        'country_id',
+      ],
+      'phone' => ['phone', 'phone_ext', 'phone_type_id'],
+      'email' => ['email', 'signature_html', 'signature_text', 'on_hold'],
+      'website' => ['url'],
+      'openid' => ['openid'],
+      'im' => ['name', 'provider_id'],
+    ];
+  }
+
+  /**
+   * Load token data from legacy hooks.
+   *
+   * While our goal is for people to move towards implementing
+   * toke processors the old-style hooks can extend contact
+   * token data.
+   *
+   * When that is happening we need to load the full contact record
+   * to send to the hooks (not great for performance but the
+   * fix is to move away from implementing legacy style hooks).
+   *
+   * Consistent with prior behaviour we only load the contact it it
+   * is already loaded. In that scenario we also load any extra fields
+   * that might be wanted for the contact tokens.
+   *
+   * @param \Civi\Token\Event\TokenValueEvent $e
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public function evaluateLegacyHookTokens(TokenValueEvent $e): void {
+    $messageTokens = $e->getTokenProcessor()->getMessageTokens();
+    if (!array_intersect(array_keys($this->getHookTokens()), array_keys($messageTokens))) {
+      return;
+    }
+
+    foreach ($e->getRows() as $row) {
+      if (empty($row->context['contactId'])) {
+        continue;
+      }
+      unset($swapLocale);
+      $swapLocale = empty($row->context['locale']) ? NULL : \CRM_Utils_AutoClean::swapLocale($row->context['locale']);
+      if (empty($row->context['contact'])) {
+        // If we don't have the contact already load it now, getting full
+        // details for hooks and anything the contact token resolution might
+        // want later.
+        $row->context['contact'] = $this->getContact($row->context['contactId'], $messageTokens['contact'] ?? [], TRUE);
+      }
+      $contactArray = [$row->context['contactId'] => $row->context['contact']];
+      \CRM_Utils_Hook::tokenValues($contactArray,
+        [$row->context['contactId']],
+        empty($row->context['mailingJobId']) ? NULL : $row->context['mailingJobId'],
+        $messageTokens,
+        $row->context['controller']
+      );
+      foreach ($this->getHookTokens() as $category => $hookToken) {
+        if (!empty($messageTokens[$category])) {
+          foreach (array_keys($hookToken) as $tokenName) {
+            $tokenPartOnly = str_replace($category . '.', '', $tokenName);
+            if (in_array($tokenPartOnly, $messageTokens[$category], TRUE)) {
+              $row->format('text/html')
+                ->tokens($category, str_replace($category . '.', '', $tokenName), $contactArray[$row->context['contactId']][$tokenName] ?? ($contactArray[$row->context['contactId']][$category . '.' . $tokenName] ?? ''));
+            }
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * Load token data.
+   *
+   * @param \Civi\Token\Event\TokenValueEvent $e
+   *
+   * @throws TokenException
+   * @throws \CRM_Core_Exception
+   */
+  public function onEvaluate(TokenValueEvent $e) {
+    $messageTokens = $e->getTokenProcessor()->getMessageTokens()['contact'] ?? [];
+    if (empty($messageTokens)) {
+      return;
+    }
+
+    foreach ($e->getRows() as $row) {
+      if (empty($row->context['contactId']) && empty($row->context['contact'])) {
+        continue;
+      }
+
+      unset($swapLocale);
+      $swapLocale = empty($row->context['locale']) ? NULL : \CRM_Utils_AutoClean::swapLocale($row->context['locale']);
+
+      if (empty($row->context['contact'])) {
+        $row->context['contact'] = $this->getContact($row->context['contactId'], $messageTokens);
+      }
+
+      foreach ($messageTokens as $token) {
+        if ($token === 'checksum') {
+          $cs = \CRM_Contact_BAO_Contact_Utils::generateChecksum($row->context['contactId'],
+            NULL,
+            NULL,
+            $row->context['hash'] ?? NULL
+          );
+          $row->format('text/html')
+            ->tokens('contact', $token, "cs={$cs}");
+        }
+        elseif ($token === 'signature_html') {
+          $row->format('text/html')->tokens('contact', $token, html_entity_decode($row->context['contact'][$token]));
+        }
+        else {
+          parent::evaluateToken($row, $this->entity, $token, $row->context['contact']);
+        }
+      }
+    }
+  }
+
+  /**
+   * Get the field value.
+   *
+   * @param \Civi\Token\TokenRow $row
+   * @param string $field
+   * @return string|int
+   */
+  protected function getFieldValue(TokenRow $row, string $field) {
+    $entityName = 'contact';
+    if (isset($this->getDeprecatedTokens()[$field])) {
+      // Check the non-deprecated location first, fall back to deprecated
+      // this is important for the greetings because - they are weird in the query object.
+      $possibilities = [$this->getDeprecatedTokens()[$field], $field];
+    }
+    else {
+      $possibilities = [$field];
+      if (in_array($field, $this->getDeprecatedTokens(), TRUE)) {
+        $possibilities[] = array_search($field, $this->getDeprecatedTokens(), TRUE);
+      }
+    }
+
+    foreach ($possibilities as $possibility) {
+      if (isset($row->context[$entityName][$possibility])) {
+        return $row->context[$entityName][$possibility];
+      }
+    }
+    return '';
+  }
+
+  /**
+   * Get the metadata for the available fields.
+   *
+   * @return array
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  protected function getTokenMetadata(): array {
+    if ($this->tokensMetadata) {
+      return $this->tokensMetadata;
+    }
+    if (Civi::cache('metadata')->has($this->getCacheKey())) {
+      return Civi::cache('metadata')->get($this->getCacheKey());
+    }
+    $this->fieldMetadata = (array) civicrm_api4('Contact', 'getfields', ['checkPermissions' => FALSE], 'name');
+    $this->tokensMetadata = $this->getBespokeTokens();
+    foreach ($this->fieldMetadata as $field) {
+      $this->addFieldToTokenMetadata($field, $this->getExposedFields());
+    }
+
+    foreach ($this->getRelatedEntityTokenMetadata() as $entity => $exposedFields) {
+      $apiEntity = ($entity === 'openid') ? 'OpenID' : ucfirst($entity);
+      $metadata = (array) civicrm_api4($apiEntity, 'getfields', ['checkPermissions' => FALSE], 'name');
+      foreach ($metadata as $field) {
+        $this->addFieldToTokenMetadata($field, $exposedFields, 'primary_' . $entity);
+      }
+    }
+    // Manually add in the abbreviated state province as that maps to
+    // what has traditionally been delivered.
+    $this->tokensMetadata['primary_address.state_province_id:abbr'] = $this->tokensMetadata['primary_address.state_province_id:label'];
+    $this->tokensMetadata['primary_address.state_province_id:abbr']['name'] = 'state_province_id:abbr';
+    $this->tokensMetadata['primary_address.state_province_id:abbr']['audience'] = 'user';
+    // Hide the label for now because we are not sure if there are paths
+    // where legacy token resolution is in play where this could not be resolved.
+    $this->tokensMetadata['primary_address.state_province_id:label']['audience'] = 'sysadmin';
+    // Hide this really obscure one. Just cos it annoys me.
+    $this->tokensMetadata['primary_address.manual_geo_code:label']['audience'] = 'sysadmin';
+    Civi::cache('metadata')->set($this->getCacheKey(), $this->tokensMetadata);
+    return $this->tokensMetadata;
+  }
+
+  /**
+   * Get the contact for the row.
+   *
+   * @param int $contactId
+   * @param array $requiredFields
+   * @param bool $getAll
+   *
+   * @return array
+   * @throws \CRM_Core_Exception
+   */
+  protected function getContact(int $contactId, array $requiredFields, bool $getAll = FALSE): array {
+    $returnProperties = [];
+    if (in_array('checksum', $requiredFields, TRUE)) {
+      $returnProperties[] = 'hash';
+    }
+    foreach ($this->getTokenMappingsForRelatedEntities() as $oldName => $newName) {
+      if (in_array($oldName, $requiredFields, TRUE)) {
+        $returnProperties[] = $newName;
+      }
+    }
+    $joins = [];
+    $customFields = [];
+    foreach ($requiredFields as $field) {
+      $fieldSpec = $this->getMetadataForField($field);
+      $prefix = '';
+      if (isset($fieldSpec['table_name']) && $fieldSpec['table_name'] !== 'civicrm_contact') {
+        $tableAlias = str_replace('civicrm_', 'primary_', $fieldSpec['table_name']);
+        $joins[$tableAlias] = $fieldSpec['entity'];
+
+        $prefix = $tableAlias . '.';
+      }
+      if ($fieldSpec['type'] === 'Custom') {
+        $customFields['custom_' . $fieldSpec['custom_field_id']] = $fieldSpec['name'];
+      }
+      $returnProperties[] = $prefix . $this->getMetadataForField($field)['name'];
+    }
+
+    if ($getAll) {
+      $returnProperties = array_merge(['*', 'custom.*'], $this->getDeprecatedTokens(), $this->getTokenMappingsForRelatedEntities());
+    }
+
+    $contactApi = Contact::get($this->checkPermissions)
+      ->setSelect($returnProperties)->addWhere('id', '=', $contactId);
+    foreach ($joins as $alias => $joinEntity) {
+      $contactApi->addJoin($joinEntity . ' AS ' . $alias,
+        'LEFT',
+        ['id', '=', $alias . '.contact_id'],
+        // For website the fact we use 'first' is the deduplication.
+        ($joinEntity !== 'Website' ? [$alias . '.is_primary', '=', 1] : []));
+    }
+    $contact = $contactApi->execute()->first();
+
+    foreach ($this->getDeprecatedTokens() as $apiv3Name => $fieldName) {
+      // it would be set already with the right value for a greeting token
+      // the query object returns the db value for email_greeting_display
+      // and a numeric value for email_greeting if you put email_greeting
+      // in the return properties.
+      if (!isset($contact[$apiv3Name]) && array_key_exists($fieldName, $contact)) {
+        $contact[$apiv3Name] = $contact[$fieldName];
+      }
+    }
+    foreach ($this->getTokenMappingsForRelatedEntities() as $oldName => $newName) {
+      if (isset($contact[$newName])) {
+        $contact[$oldName] = $contact[$newName];
+      }
+    }
+
+    //update value of custom field token
+    foreach ($customFields as $apiv3Name => $fieldName) {
+      $value = $contact[$fieldName];
+      if ($this->getMetadataForField($apiv3Name)['data_type'] === 'Boolean') {
+        $value = (int) $value;
+      }
+      $contact[$apiv3Name] = \CRM_Core_BAO_CustomField::displayValue($value, \CRM_Core_BAO_CustomField::getKeyID($apiv3Name));
+    }
+
+    return $contact;
+  }
+
+  /**
+   * Get the array of the return fields from 'get all'.
+   *
+   * This is the list from the BAO_Query object but copied
+   * here to be 'frozen in time'. The goal is to map to apiv4
+   * and stop using the legacy call to load the contact.
+   *
+   * @return array
+   */
+  protected function getAllContactReturnFields(): array {
+    return [
+      'image_URL' => 1,
+      'legal_identifier' => 1,
+      'external_identifier' => 1,
+      'contact_type' => 1,
+      'contact_sub_type' => 1,
+      'sort_name' => 1,
+      'display_name' => 1,
+      'preferred_mail_format' => 1,
+      'nick_name' => 1,
+      'first_name' => 1,
+      'middle_name' => 1,
+      'last_name' => 1,
+      'prefix_id' => 1,
+      'suffix_id' => 1,
+      'formal_title' => 1,
+      'communication_style_id' => 1,
+      'birth_date' => 1,
+      'gender_id' => 1,
+      'street_address' => 1,
+      'supplemental_address_1' => 1,
+      'supplemental_address_2' => 1,
+      'supplemental_address_3' => 1,
+      'city' => 1,
+      'postal_code' => 1,
+      'postal_code_suffix' => 1,
+      'state_province' => 1,
+      'country' => 1,
+      'world_region' => 1,
+      'geo_code_1' => 1,
+      'geo_code_2' => 1,
+      'email' => 1,
+      'on_hold' => 1,
+      'phone' => 1,
+      'im' => 1,
+      'household_name' => 1,
+      'organization_name' => 1,
+      'deceased_date' => 1,
+      'is_deceased' => 1,
+      'job_title' => 1,
+      'legal_name' => 1,
+      'sic_code' => 1,
+      'current_employer' => 1,
+      'do_not_email' => 1,
+      'do_not_mail' => 1,
+      'do_not_sms' => 1,
+      'do_not_phone' => 1,
+      'do_not_trade' => 1,
+      'is_opt_out' => 1,
+      'contact_is_deleted' => 1,
+      'preferred_communication_method' => 1,
+      'preferred_language' => 1,
+    ];
+  }
+
+  /**
+   * These tokens still work but we don't advertise them.
+   *
+   * We can remove from the following places
+   * - scheduled reminders
+   * - add to 'blocked' on pdf letter & email
+   *
+   * & then at some point start issuing warnings for them
+   * but contact tokens are pretty central so it might be
+   * a bit drawn out.
+   *
+   * @return string[]
+   *   Keys are deprecated tokens and values are their replacements.
+   */
+  protected function getDeprecatedTokens(): array {
+    return [
+      'individual_prefix' => 'prefix_id:label',
+      'individual_suffix' => 'suffix_id:label',
+      'contact_type' => 'contact_type:label',
+      'gender' => 'gender_id:label',
+      'communication_style' => 'communication_style_id:label',
+      'preferred_communication_method' => 'preferred_communication_method:label',
+      'email_greeting' => 'email_greeting_display',
+      'postal_greeting' => 'postal_greeting_display',
+      'addressee' => 'addressee_display',
+      'contact_id' => 'id',
+      'contact_source' => 'source',
+      'contact_is_deleted' => 'is_deleted',
+      'current_employer_id' => 'employer_id',
+    ];
+  }
+
+  /**
+   * Get the tokens that are accessed by joining onto a related entity.
+   *
+   * Note the original thinking was to migrate to advertising the tokens
+   * that more accurately reflect the schema & also add support for e.g
+   * billing_address.street_address - which would be hugely useful for workflow
+   * message templates.
+   *
+   * However that feels like a bridge too far for this round
+   * since we haven't quite hit the goal of all token processing going through
+   * the token processor & we risk advertising tokens that don't work if we get
+   * ahead of that process.
+   *
+   * @return string[]
+   */
+  protected function getTokenMappingsForRelatedEntities(): array {
+    return [
+      'on_hold' => 'primary_email.on_hold',
+      'on_hold:label' => 'primary_email.on_hold:label',
+      'phone_type_id' => 'primary_phone.phone_type_id',
+      'phone_type_id:label' => 'primary_phone.phone_type_id:label',
+      'current_employer' => 'employer_id.display_name',
+      'location_type_id' => 'primary_address.location_type_id',
+      'location_type' => 'primary_address.location_type_id:label',
+      'location_type_id:label' => 'primary_address.location_type_id:label',
+      'street_address' => 'primary_address.street_address',
+      'address_id' => 'primary_address.id',
+      'address_name' => 'primary_address.name',
+      'street_number' => 'primary_address.street_number',
+      'street_number_suffix' => 'primary_address.street_number_suffix',
+      'street_name' => 'primary_address.street_name',
+      'street_unit' => 'primary_address.street_unit',
+      'supplemental_address_1' => 'primary_address.supplemental_address_1',
+      'supplemental_address_2' => 'primary_address.supplemental_address_2',
+      'supplemental_address_3' => 'primary_address.supplemental_address_3',
+      'city' => 'primary_address.city',
+      'postal_code' => 'primary_address.postal_code',
+      'postal_code_suffix' => 'primary_address.postal_code_suffix',
+      'geo_code_1' => 'primary_address.geo_code_1',
+      'geo_code_2' => 'primary_address.geo_code_2',
+      'manual_geo_code' => 'primary_address.manual_geo_code',
+      'master_id' => 'primary_address.master_id',
+      'county' => 'primary_address.county_id:label',
+      'county_id' => 'primary_address.county_id',
+      'state_province' => 'primary_address.state_province_id:abbr',
+      'state_province_id' => 'primary_address.state_province_id',
+      'country' => 'primary_address.country_id:label',
+      'country_id' => 'primary_address.country_id',
+      'world_region' => 'primary_address.country_id.region_id:name',
+      'phone_type' => 'primary_phone.phone_type_id:label',
+      'phone' => 'primary_phone.phone',
+      'phone_ext' => 'primary_phone.phone_ext',
+      'email' => 'primary_email.email',
+      'signature_text' => 'primary_email.signature_text',
+      'signature_html' => 'primary_email.signature_html',
+      'im' => 'primary_im.name',
+      'im_provider' => 'primary_im.provider_id',
+      'provider_id:label' => 'primary_im.provider_id:label',
+      'provider_id' => 'primary_im.provider_id',
+      'openid' => 'primary_openid.openid',
+      'url' => 'primary_website.url',
+    ];
+  }
+
+  /**
+   * Get calculated or otherwise 'special', tokens.
+   *
+   * @return array[]
+   */
+  protected function getBespokeTokens(): array {
+    return [
+      'checksum' => [
+        'title' => ts('Checksum'),
+        'name' => 'checksum',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => 'String',
+        'audience' => 'user',
+      ],
+      'employer_id.display_name' => [
+        'title' => ts('Current Employer'),
+        'name' => 'employer_id.display_name',
+        'type' => 'mapped',
+        'api_v3' => 'current_employer',
+        'options' => NULL,
+        'data_type' => 'String',
+        'audience' => 'user',
+      ],
+      'primary_address.country_id.region_id:name' => [
+        'title' => ts('World Region'),
+        'name' => 'country_id.region_id.name',
+        'type' => 'mapped',
+        'api_v3' => 'world_region',
+        'options' => NULL,
+        'data_type' => 'String',
+        'advertised_name' => 'world_region',
+        'audience' => 'user',
+      ],
+      // this gets forced out if we specify individual fields
+      'organization_name' => [
+        'title' => ts('Organization name'),
+        'name' => 'organization_name',
+        'type' => 'Field',
+        'options' => NULL,
+        'data_type' => 'String',
+        'audience' => 'sysadmin',
+      ],
+    ];
+  }
+
+  /**
+   * Get the tokens defined by the legacy hook.
+   *
+   * @return array
+   */
+  protected function getHookTokens(): array {
+    if ($this->hookTokens === NULL) {
+      if (isset(Civi::$statics[__CLASS__]['hook_tokens'])) {
+        $this->hookTokens = Civi::$statics[__CLASS__]['hook_tokens'];
+      }
+      else {
+        $this->hookTokens = [];
+        \CRM_Utils_Hook::tokens($this->hookTokens);
+        Civi::$statics[__CLASS__]['hook_tokens'] = $this->hookTokens;
+      }
+    }
+    return $this->hookTokens;
+  }
+
+}
diff --git a/civicrm/CRM/Contribute/BAO/Contribution.php b/civicrm/CRM/Contribute/BAO/Contribution.php
index 6fdfb2e8b0..0a9a285a38 100644
--- a/civicrm/CRM/Contribute/BAO/Contribution.php
+++ b/civicrm/CRM/Contribute/BAO/Contribution.php
@@ -1012,7 +1012,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
       return FALSE;
     }
 
-    if (self::isContributionUpdateARefund($params['prevContribution']->contribution_status_id, $params['contribution']->contribution_status_id)) {
+    if (CRM_Contribute_BAO_FinancialProcessor::isContributionUpdateARefund($params['prevContribution']->contribution_status_id, $params['contribution']->contribution_status_id)) {
       // @todo we should stop passing $params by reference - splitting this out would be a step towards that.
       $params['trxnParams']['total_amount'] = -$params['total_amount'];
     }
@@ -1118,87 +1118,6 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
     CRM_Core_DAO::executeQuery($query, $fparams);
   }
 
-  /**
-   * Create the financial items for the line.
-   *
-   * @param array $params
-   * @param string $context
-   * @param array $fields
-   * @param array $previousLineItems
-   * @param array $inputParams
-   * @param bool $isARefund
-   * @param array $trxnIds
-   * @param int $fieldId
-   *
-   * @return array
-   */
-  private static function createFinancialItemsForLine($params, $context, $fields, array $previousLineItems, array $inputParams, bool $isARefund, $trxnIds, $fieldId): array {
-    foreach ($fields as $fieldValueId => $lineItemDetails) {
-      $prevFinancialItem = CRM_Financial_BAO_FinancialItem::getPreviousFinancialItem($lineItemDetails['id']);
-      $receiveDate = CRM_Utils_Date::isoToMysql($params['prevContribution']->receive_date);
-      if ($params['contribution']->receive_date) {
-        $receiveDate = CRM_Utils_Date::isoToMysql($params['contribution']->receive_date);
-      }
-
-      $financialAccount = CRM_Contribute_BAO_FinancialProcessor::getFinancialAccountForStatusChangeTrxn($params, CRM_Utils_Array::value('financial_account_id', $prevFinancialItem));
-
-      $currency = $params['prevContribution']->currency;
-      if ($params['contribution']->currency) {
-        $currency = $params['contribution']->currency;
-      }
-      $previousLineItemTotal = CRM_Utils_Array::value('line_total', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
-      $itemParams = [
-        'transaction_date' => $receiveDate,
-        'contact_id' => $params['prevContribution']->contact_id,
-        'currency' => $currency,
-        'amount' => self::getFinancialItemAmountFromParams($inputParams, $context, $lineItemDetails, $isARefund, $previousLineItemTotal),
-        'description' => $prevFinancialItem['description'] ?? NULL,
-        'status_id' => $prevFinancialItem['status_id'],
-        'financial_account_id' => $financialAccount,
-        'entity_table' => 'civicrm_line_item',
-        'entity_id' => $lineItemDetails['id'],
-      ];
-      $financialItem = CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
-      $params['line_item'][$fieldId][$fieldValueId]['deferred_line_total'] = $itemParams['amount'];
-      $params['line_item'][$fieldId][$fieldValueId]['financial_item_id'] = $financialItem->id;
-
-      if (($lineItemDetails['tax_amount'] && $lineItemDetails['tax_amount'] !== 'null') || ($context === 'changeFinancialType')) {
-        $taxAmount = (float) $lineItemDetails['tax_amount'];
-        if ($context === 'changeFinancialType' && $lineItemDetails['tax_amount'] === 'null') {
-          // reverse the Sale Tax amount if there is no tax rate associated with new Financial Type
-          $taxAmount = CRM_Utils_Array::value('tax_amount', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
-        }
-        elseif ($previousLineItemTotal != $lineItemDetails['line_total']) {
-          $taxAmount -= CRM_Utils_Array::value('tax_amount', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
-        }
-        if ($taxAmount != 0) {
-          $itemParams['amount'] = self::getMultiplier($params['contribution']->contribution_status_id, $context) * $taxAmount;
-          $itemParams['description'] = CRM_Invoicing_Utils::getTaxTerm();
-          if ($lineItemDetails['financial_type_id']) {
-            $itemParams['financial_account_id'] = CRM_Financial_BAO_FinancialAccount::getSalesTaxFinancialAccount($lineItemDetails['financial_type_id']);
-          }
-          CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
-        }
-      }
-    }
-    return $params;
-  }
-
-  /**
-   * Does this contributtion status update represent a refund.
-   *
-   * @param int $previousContributionStatusID
-   * @param int $currentContributionStatusID
-   *
-   * @return bool
-   */
-  private static function isContributionUpdateARefund($previousContributionStatusID, $currentContributionStatusID): bool {
-    if ('Completed' !== CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $previousContributionStatusID)) {
-      return FALSE;
-    }
-    return self::isContributionStatusNegative($currentContributionStatusID);
-  }
-
   /**
    * Get transaction information about the contribution.
    *
@@ -2459,7 +2378,7 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
         // array_filter with strlen filters out NULL, '' and FALSE but not 0.
       ], 'strlen')
     );
-    $input['line_item'] = $contributionParams['line_item'] = $templateContribution['line_item'];
+    $contributionParams['line_item'] = $templateContribution['line_item'];
     $contributionParams['status_id'] = 'Pending';
 
     foreach (['contact_id', 'campaign_id', 'financial_type_id', 'currency', 'source', 'amount_level', 'address_id', 'on_behalf', 'source_contact_id', 'tax_amount', 'contribution_page_id', 'total_amount'] as $fieldName) {
@@ -2794,11 +2713,6 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
       $template->assign('cancelSubscriptionUrl', $paymentObject->subscriptionURL($entityID, $entity, 'cancel'));
       $template->assign('updateSubscriptionBillingUrl', $paymentObject->subscriptionURL($entityID, $entity, 'billing'));
       $template->assign('updateSubscriptionUrl', $paymentObject->subscriptionURL($entityID, $entity, 'update'));
-
-      if ($this->_relatedObjects['paymentProcessor']['billing_mode'] & CRM_Core_Payment::BILLING_MODE_FORM) {
-        //direct mode showing billing block, so use directIPN for temporary
-        $template->assign('contributeMode', 'directIPN');
-      }
     }
     // todo remove strtolower - check consistency
     if (strtolower($this->_component) === 'event') {
@@ -3064,15 +2978,8 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
     // and this function should assign them (assigning null if not set).
     // the way the pcpParams & honor Params section works is a baby-step towards this.
     $template = CRM_Core_Smarty::singleton();
-    $template->assign('first_name', $this->_relatedObjects['contact']->first_name);
-    $template->assign('last_name', $this->_relatedObjects['contact']->last_name);
-    $template->assign('displayName', $this->_relatedObjects['contact']->display_name);
     $template->assign('billingName', $values['billingName']);
 
-    // For some unit tests contribution cannot contain paymentProcessor information
-    $billingMode = empty($this->_relatedObjects['paymentProcessor']) ? CRM_Core_Payment::BILLING_MODE_NOTIFY : $this->_relatedObjects['paymentProcessor']['billing_mode'];
-    $template->assign('contributeMode', CRM_Core_SelectValues::contributeMode()[$billingMode] ?? NULL);
-
     //assign honor information to receipt message
     $softRecord = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($this->id);
 
@@ -3496,7 +3403,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
                 $params['trxnParams']['to_financial_account_id'] = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialTrxn', $lastFinancialTrxnId['financialTrxnId'], 'to_financial_account_id');
               }
             }
-            self::updateFinancialAccounts($params, 'changeFinancialType');
+            CRM_Contribute_BAO_FinancialProcessor::updateFinancialAccounts($params, 'changeFinancialType');
             $params['skipLineItem'] = FALSE;
             foreach ($params['line_item'] as &$lineItems) {
               foreach ($lineItems as &$line) {
@@ -3511,7 +3418,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
             if (isset($params['fee_amount'])) {
               $params['trxnParams']['fee_amount'] = $params['fee_amount'];
             }
-            self::updateFinancialAccounts($params);
+            CRM_Contribute_BAO_FinancialProcessor::updateFinancialAccounts($params);
             CRM_Core_BAO_FinancialTrxn::createDeferredTrxn(CRM_Utils_Array::value('line_item', $params), $params['contribution'], TRUE);
             $params['trxnParams']['to_financial_account_id'] = $trxnParams['to_financial_account_id'];
             $updated = TRUE;
@@ -3533,7 +3440,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
           //Update Financial Records
           $callUpdateFinancialAccounts = self::updateFinancialAccountsOnContributionStatusChange($params);
           if ($callUpdateFinancialAccounts) {
-            self::updateFinancialAccounts($params, 'changedStatus');
+            CRM_Contribute_BAO_FinancialProcessor::updateFinancialAccounts($params, 'changedStatus');
             CRM_Core_BAO_FinancialTrxn::createDeferredTrxn(CRM_Utils_Array::value('line_item', $params), $params['contribution'], TRUE, 'changedStatus');
           }
           $updated = TRUE;
@@ -3562,7 +3469,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
         ) {
           //Update Financial Records
           $params['trxnParams']['from_financial_account_id'] = NULL;
-          self::updateFinancialAccounts($params, 'changedAmount');
+          CRM_Contribute_BAO_FinancialProcessor::updateFinancialAccounts($params, 'changedAmount');
           CRM_Core_BAO_FinancialTrxn::createDeferredTrxn(CRM_Utils_Array::value('line_item', $params), $params['contribution'], TRUE, 'changedAmount');
           $updated = TRUE;
         }
@@ -3633,41 +3540,6 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
     return $return;
   }
 
-  /**
-   * Update all financial accounts entry.
-   *
-   * @param array $params
-   *   Contribution object, line item array and params for trxn.
-   *
-   * @param string $context
-   *   Update scenarios.
-   *
-   * @todo stop passing $params by reference. It is unclear the purpose of doing this &
-   * adds unpredictability.
-   *
-   */
-  public static function updateFinancialAccounts(&$params, $context = NULL) {
-    $trxnID = NULL;
-    $inputParams = $params;
-    $isARefund = self::isContributionUpdateARefund($params['prevContribution']->contribution_status_id, $params['contribution']->contribution_status_id);
-
-    if ($context == 'changedAmount' || $context == 'changeFinancialType') {
-      // @todo we should stop passing $params by reference - splitting this out would be a step towards that.
-      $params['trxnParams']['total_amount'] = $params['trxnParams']['net_amount'] = ($params['total_amount'] - $params['prevContribution']->total_amount);
-    }
-
-    $trxn = CRM_Core_BAO_FinancialTrxn::create($params['trxnParams']);
-    // @todo we should stop passing $params by reference - splitting this out would be a step towards that.
-    $params['entity_id'] = $trxn->id;
-
-    $itemParams['entity_table'] = 'civicrm_line_item';
-    $trxnIds['id'] = $params['entity_id'];
-    $previousLineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($params['contribution']->id);
-    foreach ($params['line_item'] as $fieldId => $fields) {
-      $params = self::createFinancialItemsForLine($params, $context, $fields, $previousLineItems, $inputParams, $isARefund, $trxnIds, $fieldId);
-    }
-  }
-
   /**
    * Is this contribution status a reversal.
    *
@@ -4449,80 +4321,6 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
     return self::getValues(['id' => $contributionID]);
   }
 
-  /**
-   * Get the amount for the financial item row.
-   *
-   * Helper function to start to break down recordFinancialTransactions for readability.
-   *
-   * The logic is more historical than .. logical. Paths other than the deprecated one are tested.
-   *
-   * Codewise, several somewhat disimmilar things have been squished into recordFinancialAccounts
-   * for historical reasons. Going forwards we can hope to add tests & improve readibility
-   * of that function
-   *
-   * @param array $params
-   *   Params as passed to contribution.create
-   *
-   * @param string $context
-   *   changeFinancialType| changedAmount
-   * @param array $lineItemDetails
-   *   Line items.
-   * @param bool $isARefund
-   *   Is this a refund / negative transaction.
-   * @param int $previousLineItemTotal
-   *
-   * @return float
-   * @todo move recordFinancialAccounts & helper functions to their own class?
-   *
-   */
-  protected static function getFinancialItemAmountFromParams($params, $context, $lineItemDetails, $isARefund, $previousLineItemTotal) {
-    if ($context == 'changedAmount') {
-      $lineTotal = $lineItemDetails['line_total'];
-      if ($lineTotal != $previousLineItemTotal) {
-        $lineTotal -= $previousLineItemTotal;
-      }
-      return $lineTotal;
-    }
-    elseif ($context == 'changeFinancialType') {
-      return -$lineItemDetails['line_total'];
-    }
-    elseif ($context == 'changedStatus') {
-      $cancelledTaxAmount = 0;
-      if ($isARefund) {
-        $cancelledTaxAmount = CRM_Utils_Array::value('tax_amount', $lineItemDetails, '0.00');
-      }
-      return self::getMultiplier($params['contribution']->contribution_status_id, $context) * ((float) $lineItemDetails['line_total'] + (float) $cancelledTaxAmount);
-    }
-    elseif ($context === NULL) {
-      // erm, yes because? but, hey, it's tested.
-      return $lineItemDetails['line_total'];
-    }
-    else {
-      return self::getMultiplier($params['contribution']->contribution_status_id, $context) * ((float) $lineItemDetails['line_total']);
-    }
-  }
-
-  /**
-   * Get the multiplier for adjusting rows.
-   *
-   * If we are dealing with a refund or cancellation then it will be a negative
-   * amount to reflect the negative transaction.
-   *
-   * If we are changing Financial Type it will be a negative amount to
-   * adjust down the old type.
-   *
-   * @param int $contribution_status_id
-   * @param string $context
-   *
-   * @return int
-   */
-  protected static function getMultiplier($contribution_status_id, $context) {
-    if ($context == 'changeFinancialType' || self::isContributionStatusNegative($contribution_status_id)) {
-      return -1;
-    }
-    return 1;
-  }
-
   /**
    * Does this transaction reflect a payment instrument change.
    *
@@ -5060,6 +4858,8 @@ LIMIT 1;";
   }
 
   /**
+   * Do not use - unused in core.
+   *
    * Function to replace contribution tokens.
    *
    * @param array $contributionIds
@@ -5076,6 +4876,8 @@ LIMIT 1;";
    *
    * @param bool $escapeSmarty
    *
+   * @deprecated
+   *
    * @return array
    * @throws \CiviCRM_API3_Exception
    */
@@ -5102,9 +4904,15 @@ LIMIT 1;";
   }
 
   /**
+   * Do not use - still called from CRM_Contribute_Form_Task_PDFLetter
+   *
+   * This needs to be refactored out of use & deprecated out of existence.
+   *
    * Get the contribution fields for $id and display labels where
    * appropriate (if the token is present).
    *
+   * @deprecated
+   *
    * @param int $id
    * @param array $messageToken
    *
@@ -5123,11 +4931,34 @@ LIMIT 1;";
           $result['values'][$id][$fieldName] = CRM_Core_BAO_CustomField::displayValue($result['values'][$id][$fieldName], $fieldName);
         }
       }
-      $processor = new CRM_Contribute_Tokens();
-      $pseudoFields = array_keys($processor->getPseudoTokens());
+
+      $pseudoFields = [
+        'financial_type_id:label',
+        'financial_type_id:name',
+        'contribution_page_id:label',
+        'contribution_page_id:name',
+        'payment_instrument_id:label',
+        'payment_instrument_id:name',
+        'is_test:label',
+        'is_pay_later:label',
+        'contribution_status_id:label',
+        'contribution_status_id:name',
+        'is_template:label',
+        'campaign_id:label',
+        'campaign_id:name',
+      ];
       foreach ($pseudoFields as $pseudoField) {
         $split = explode(':', $pseudoField);
-        $result['values'][$id][$pseudoField] = $processor->getPseudoValue($split[0], $split[1], $result['values'][$id][$split[0]] ?? '');
+        $pseudoKey = $split[1];
+        $realField = $split[0];
+        $fieldValue = $result['values'][$id][$realField] ?? '';
+        if ($pseudoKey === 'name') {
+          $fieldValue = (string) CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', $realField, $fieldValue);
+        }
+        if ($pseudoKey === 'label') {
+          $fieldValue = (string) CRM_Core_PseudoConstant::getLabel('CRM_Contribute_BAO_Contribution', $realField, $fieldValue);
+        }
+        $result['values'][$id][$pseudoField] = $fieldValue;
       }
     }
     return $result;
diff --git a/civicrm/CRM/Contribute/BAO/Contribution/Utils.php b/civicrm/CRM/Contribute/BAO/Contribution/Utils.php
index a444ad2a8d..a5161686af 100644
--- a/civicrm/CRM/Contribute/BAO/Contribution/Utils.php
+++ b/civicrm/CRM/Contribute/BAO/Contribution/Utils.php
@@ -208,13 +208,13 @@ LIMIT 1
    * Get contribution statuses by entity e.g. contribution, membership or 'participant'
    *
    * @param string $usedFor
-   * @param int $id
+   * @param string $name
    *   Contribution ID
    *
    * @return array
    *   Array of contribution statuses in array('status id' => 'label') format
    */
-  public static function getContributionStatuses($usedFor = 'contribution', $id = NULL) {
+  public static function getContributionStatuses($usedFor = 'contribution', $name = NULL) {
     if ($usedFor === 'pledge') {
       $statusNames = CRM_Pledge_BAO_Pledge::buildOptions('status_id', 'validate');
     }
@@ -232,7 +232,7 @@ LIMIT 1
       'Template',
     ];
     // on create fetch statuses on basis of component
-    if (!$id) {
+    if (!$name) {
       $statusNamesToUnset = array_merge($statusNamesToUnset, [
         'Refunded',
         'Chargeback',
@@ -266,8 +266,7 @@ LIMIT 1
       }
     }
     else {
-      $contributionStatus = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $id, 'contribution_status_id');
-      $name = $statusNames[$contributionStatus] ?? NULL;
+
       switch ($name) {
         case 'Completed':
           // [CRM-17498] Removing unsupported status change options.
diff --git a/civicrm/CRM/Contribute/BAO/ContributionRecur.php b/civicrm/CRM/Contribute/BAO/ContributionRecur.php
index d7a67001f2..980782b6a0 100644
--- a/civicrm/CRM/Contribute/BAO/ContributionRecur.php
+++ b/civicrm/CRM/Contribute/BAO/ContributionRecur.php
@@ -637,32 +637,6 @@ INNER JOIN civicrm_contribution       con ON ( con.id = mp.contribution_id )
     }
   }
 
-  /**
-   * Send start or end notification for recurring payments.
-   *
-   * @param array $ids
-   * @param CRM_Contribute_BAO_ContributionRecur $recur
-   * @param bool $isFirstOrLastRecurringPayment
-   */
-  public static function sendRecurringStartOrEndNotification($ids, $recur, $isFirstOrLastRecurringPayment) {
-    CRM_Core_Error::deprecatedFunctionWarning('use CRM_Contribute_BAO_ContributionPage::recurringNotify');
-    if ($isFirstOrLastRecurringPayment) {
-      $autoRenewMembership = FALSE;
-      if ($recur->id &&
-        isset($ids['membership']) && $ids['membership']
-      ) {
-        $autoRenewMembership = TRUE;
-      }
-
-      //send recurring Notification email for user
-      CRM_Contribute_BAO_ContributionPage::recurringNotify(
-        $ids['contribution'],
-        $isFirstOrLastRecurringPayment,
-        $recur
-      );
-    }
-  }
-
   /**
    * Copy custom data of the initial contribution into its recurring contributions.
    *
@@ -1089,4 +1063,32 @@ INNER JOIN civicrm_contribution       con ON ( con.id = mp.contribution_id )
     return CRM_Core_PseudoConstant::get(__CLASS__, $fieldName, $params, $context);
   }
 
+  /**
+   * Get the from address to use for the recurring contribution.
+   *
+   * This uses the contribution page id, if there is one, or the default domain one.
+   *
+   * @param int $id
+   *   Recurring contribution ID.
+   *
+   * @internal
+   *
+   * @return string
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   */
+  public static function getRecurFromAddress(int $id): string {
+    $details = Contribution::get(FALSE)
+      ->addWhere('contribution_recur_id', '=', $id)
+      ->addWhere('contribution_page_id', 'IS NOT NULL')
+      ->addSelect('contribution_page_id.receipt_from_name', 'contribution_page_id.receipt_from_email')
+      ->addOrderBy('receive_date', 'DESC')
+      ->execute()->first();
+    if (empty($details['contribution_page_id.receipt_from_email'])) {
+      $domainValues = CRM_Core_BAO_Domain::getNameAndEmail();
+      return "$domainValues[0] <$domainValues[1]>";
+    }
+    return '"' . $details['contribution_page_id.receipt_from_name'] . '" <' . $details['contribution_page_id.receipt_from_email'] . '>';
+  }
+
 }
diff --git a/civicrm/CRM/Contribute/BAO/FinancialProcessor.php b/civicrm/CRM/Contribute/BAO/FinancialProcessor.php
index 06a9e82438..e9c28ef83e 100644
--- a/civicrm/CRM/Contribute/BAO/FinancialProcessor.php
+++ b/civicrm/CRM/Contribute/BAO/FinancialProcessor.php
@@ -30,7 +30,7 @@ class CRM_Contribute_BAO_FinancialProcessor {
    *
    * @return int
    */
-  public static function getFinancialAccountForStatusChangeTrxn($params, $default) {
+  private static function getFinancialAccountForStatusChangeTrxn($params, $default): int {
     if (!empty($params['financial_account_id'])) {
       return $params['financial_account_id'];
     }
@@ -51,4 +51,194 @@ class CRM_Contribute_BAO_FinancialProcessor {
     return $default;
   }
 
+  /**
+   * Create the financial items for the line.
+   *
+   * @param array $params
+   * @param string $context
+   * @param array $fields
+   * @param array $previousLineItems
+   * @param array $inputParams
+   * @param bool $isARefund
+   * @param array $trxnIds
+   * @param int $fieldId
+   *
+   * @internal
+   *
+   * @return array
+   */
+  public static function createFinancialItemsForLine($params, $context, $fields, array $previousLineItems, array $inputParams, bool $isARefund, $trxnIds, $fieldId): array {
+    foreach ($fields as $fieldValueId => $lineItemDetails) {
+      $prevFinancialItem = CRM_Financial_BAO_FinancialItem::getPreviousFinancialItem($lineItemDetails['id']);
+      $receiveDate = CRM_Utils_Date::isoToMysql($params['prevContribution']->receive_date);
+      if ($params['contribution']->receive_date) {
+        $receiveDate = CRM_Utils_Date::isoToMysql($params['contribution']->receive_date);
+      }
+
+      $financialAccount = CRM_Contribute_BAO_FinancialProcessor::getFinancialAccountForStatusChangeTrxn($params, CRM_Utils_Array::value('financial_account_id', $prevFinancialItem));
+
+      $currency = $params['prevContribution']->currency;
+      if ($params['contribution']->currency) {
+        $currency = $params['contribution']->currency;
+      }
+      $previousLineItemTotal = CRM_Utils_Array::value('line_total', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
+      $itemParams = [
+        'transaction_date' => $receiveDate,
+        'contact_id' => $params['prevContribution']->contact_id,
+        'currency' => $currency,
+        'amount' => self::getFinancialItemAmountFromParams($inputParams, $context, $lineItemDetails, $isARefund, $previousLineItemTotal),
+        'description' => $prevFinancialItem['description'] ?? NULL,
+        'status_id' => $prevFinancialItem['status_id'],
+        'financial_account_id' => $financialAccount,
+        'entity_table' => 'civicrm_line_item',
+        'entity_id' => $lineItemDetails['id'],
+      ];
+      $financialItem = CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
+      $params['line_item'][$fieldId][$fieldValueId]['deferred_line_total'] = $itemParams['amount'];
+      $params['line_item'][$fieldId][$fieldValueId]['financial_item_id'] = $financialItem->id;
+
+      if (($lineItemDetails['tax_amount'] && $lineItemDetails['tax_amount'] !== 'null') || ($context === 'changeFinancialType')) {
+        $taxAmount = (float) $lineItemDetails['tax_amount'];
+        if ($context === 'changeFinancialType' && $lineItemDetails['tax_amount'] === 'null') {
+          // reverse the Sale Tax amount if there is no tax rate associated with new Financial Type
+          $taxAmount = CRM_Utils_Array::value('tax_amount', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
+        }
+        elseif ($previousLineItemTotal != $lineItemDetails['line_total']) {
+          $taxAmount -= CRM_Utils_Array::value('tax_amount', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
+        }
+        if ($taxAmount != 0) {
+          $itemParams['amount'] = CRM_Contribute_BAO_FinancialProcessor::getMultiplier($params['contribution']->contribution_status_id, $context) * $taxAmount;
+          $itemParams['description'] = CRM_Invoicing_Utils::getTaxTerm();
+          if ($lineItemDetails['financial_type_id']) {
+            $itemParams['financial_account_id'] = CRM_Financial_BAO_FinancialAccount::getSalesTaxFinancialAccount($lineItemDetails['financial_type_id']);
+          }
+          CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
+        }
+      }
+    }
+    return $params;
+  }
+
+  /**
+   * Get the multiplier for adjusting rows.
+   *
+   * If we are dealing with a refund or cancellation then it will be a negative
+   * amount to reflect the negative transaction.
+   *
+   * If we are changing Financial Type it will be a negative amount to
+   * adjust down the old type.
+   *
+   * @param int $contribution_status_id
+   * @param string $context
+   *
+   * @return int
+   */
+  public static function getMultiplier($contribution_status_id, $context) {
+    if ($context === 'changeFinancialType' || CRM_Contribute_BAO_Contribution::isContributionStatusNegative($contribution_status_id)) {
+      return -1;
+    }
+    return 1;
+  }
+
+  /**
+   * Get the amount for the financial item row.
+   *
+   * Helper function to start to break down recordFinancialTransactions for readability.
+   *
+   * The logic is more historical than .. logical. Paths other than the deprecated one are tested.
+   *
+   * Codewise, several somewhat disimmilar things have been squished into recordFinancialAccounts
+   * for historical reasons. Going forwards we can hope to add tests & improve readibility
+   * of that function
+   *
+   * @param array $params
+   *   Params as passed to contribution.create
+   *
+   * @param string $context
+   *   changeFinancialType| changedAmount
+   * @param array $lineItemDetails
+   *   Line items.
+   * @param bool $isARefund
+   *   Is this a refund / negative transaction.
+   * @param int $previousLineItemTotal
+   *
+   * @return float
+   * @todo move recordFinancialAccounts & helper functions to their own class?
+   *
+   */
+  protected static function getFinancialItemAmountFromParams($params, $context, $lineItemDetails, $isARefund, $previousLineItemTotal) {
+    if ($context == 'changedAmount') {
+      $lineTotal = $lineItemDetails['line_total'];
+      if ($lineTotal != $previousLineItemTotal) {
+        $lineTotal -= $previousLineItemTotal;
+      }
+      return $lineTotal;
+    }
+    elseif ($context == 'changeFinancialType') {
+      return -$lineItemDetails['line_total'];
+    }
+    elseif ($context == 'changedStatus') {
+      $cancelledTaxAmount = 0;
+      if ($isARefund) {
+        $cancelledTaxAmount = CRM_Utils_Array::value('tax_amount', $lineItemDetails, '0.00');
+      }
+      return CRM_Contribute_BAO_FinancialProcessor::getMultiplier($params['contribution']->contribution_status_id, $context) * ((float) $lineItemDetails['line_total'] + (float) $cancelledTaxAmount);
+    }
+    elseif ($context === NULL) {
+      // erm, yes because? but, hey, it's tested.
+      return $lineItemDetails['line_total'];
+    }
+    else {
+      return CRM_Contribute_BAO_FinancialProcessor::getMultiplier($params['contribution']->contribution_status_id, $context) * ((float) $lineItemDetails['line_total']);
+    }
+  }
+
+  /**
+   * Update all financial accounts entry.
+   *
+   * @param array $params
+   *   Contribution object, line item array and params for trxn.
+   *
+   * @param string $context
+   *   Update scenarios.
+   *
+   * @todo stop passing $params by reference. It is unclear the purpose of doing this &
+   * adds unpredictability.
+   *
+   */
+  public static function updateFinancialAccounts(&$params, $context = NULL) {
+    $inputParams = $params;
+    $isARefund = self::isContributionUpdateARefund($params['prevContribution']->contribution_status_id, $params['contribution']->contribution_status_id);
+
+    if ($context === 'changedAmount' || $context === 'changeFinancialType') {
+      // @todo we should stop passing $params by reference - splitting this out would be a step towards that.
+      $params['trxnParams']['total_amount'] = $params['trxnParams']['net_amount'] = ($params['total_amount'] - $params['prevContribution']->total_amount);
+    }
+
+    $trxn = CRM_Core_BAO_FinancialTrxn::create($params['trxnParams']);
+    // @todo we should stop passing $params by reference - splitting this out would be a step towards that.
+    $params['entity_id'] = $trxn->id;
+
+    $trxnIds['id'] = $params['entity_id'];
+    $previousLineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($params['contribution']->id);
+    foreach ($params['line_item'] as $fieldId => $fields) {
+      $params = CRM_Contribute_BAO_FinancialProcessor::createFinancialItemsForLine($params, $context, $fields, $previousLineItems, $inputParams, $isARefund, $trxnIds, $fieldId);
+    }
+  }
+
+  /**
+   * Does this contribution status update represent a refund.
+   *
+   * @param int $previousContributionStatusID
+   * @param int $currentContributionStatusID
+   *
+   * @return bool
+   */
+  public static function isContributionUpdateARefund($previousContributionStatusID, $currentContributionStatusID): bool {
+    if ('Completed' !== CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $previousContributionStatusID)) {
+      return FALSE;
+    }
+    return CRM_Contribute_BAO_Contribution::isContributionStatusNegative($currentContributionStatusID);
+  }
+
 }
diff --git a/civicrm/CRM/Contribute/BAO/Product.php b/civicrm/CRM/Contribute/BAO/Product.php
index eb79c86d7b..f39e4e124f 100644
--- a/civicrm/CRM/Contribute/BAO/Product.php
+++ b/civicrm/CRM/Contribute/BAO/Product.php
@@ -79,6 +79,7 @@ class CRM_Contribute_BAO_Product extends CRM_Contribute_DAO_Product {
    */
   public static function create($params) {
     $id = $params['id'] ?? NULL;
+    $op = !empty($id) ? 'edit' : 'create';
     if (empty($id)) {
       $defaultParams = [
         'id' => $id,
@@ -90,7 +91,7 @@ class CRM_Contribute_BAO_Product extends CRM_Contribute_DAO_Product {
       ];
       $params = array_merge($defaultParams, $params);
     }
-
+    CRM_Utils_Hook::pre($op, 'Product', $id, $params);
     // Modify the submitted values for 'image' and 'thumbnail' so that we use
     // local URLs for these images when possible.
     if (isset($params['image'])) {
@@ -104,6 +105,7 @@ class CRM_Contribute_BAO_Product extends CRM_Contribute_DAO_Product {
     $premium = new CRM_Contribute_DAO_Product();
     $premium->copyValues($params);
     $premium->save();
+    CRM_Utils_Hook::post($op, 'Product', $id, $premium);
     return $premium;
   }
 
@@ -111,20 +113,11 @@ class CRM_Contribute_BAO_Product extends CRM_Contribute_DAO_Product {
    * Delete premium Types.
    *
    * @param int $productID
-   *
+   * @deprecated
    * @throws \CRM_Core_Exception
    */
   public static function del($productID) {
-    //check dependencies
-    $premiumsProduct = new CRM_Contribute_DAO_PremiumsProduct();
-    $premiumsProduct->product_id = $productID;
-    if ($premiumsProduct->find(TRUE)) {
-      throw new CRM_Core_Exception('Cannot delete a Premium that is linked to a Contribution page');
-    }
-    // delete product
-    $premium = new CRM_Contribute_DAO_Product();
-    $premium->id = $productID;
-    $premium->delete();
+    static::deleteRecord(['id' => $productID]);
   }
 
 }
diff --git a/civicrm/CRM/Contribute/DAO/ContributionRecur.php b/civicrm/CRM/Contribute/DAO/ContributionRecur.php
index 4913ac61c7..a1ebe04336 100644
--- a/civicrm/CRM/Contribute/DAO/ContributionRecur.php
+++ b/civicrm/CRM/Contribute/DAO/ContributionRecur.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/ContributionRecur.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:6c94785d608dc72c00b663ee8ad4e180)
+ * (GenCodeChecksum:5f08744178821ce074d21fe4cdddbdaa)
  */
 
 /**
@@ -97,7 +97,7 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
   /**
    * Last updated date for this record. mostly the last time a payment was received
    *
-   * @var datetime
+   * @var timestamp
    */
   public $modified_date;
 
@@ -450,11 +450,11 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
         ],
         'contribution_recur_modified_date' => [
           'name' => 'modified_date',
-          'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
+          'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Modified Date'),
           'description' => ts('Last updated date for this record. mostly the last time a payment was received'),
           'where' => 'civicrm_contribution_recur.modified_date',
-          'default' => 'CURRENT_TIMESTAMP',
+          'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
           'bao' => 'CRM_Contribute_BAO_ContributionRecur',
diff --git a/civicrm/CRM/Contribute/Form/AdditionalPayment.php b/civicrm/CRM/Contribute/Form/AdditionalPayment.php
index 52bd3afaf8..eed602b382 100644
--- a/civicrm/CRM/Contribute/Form/AdditionalPayment.php
+++ b/civicrm/CRM/Contribute/Form/AdditionalPayment.php
@@ -76,7 +76,7 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract
 
     if ($this->_view == 'transaction' && ($this->_action & CRM_Core_Action::BROWSE)) {
       $title = $this->assignPaymentInfoBlock();
-      CRM_Utils_System::setTitle($title);
+      $this->setTitle($title);
       return;
     }
     if ($this->_component == 'event') {
diff --git a/civicrm/CRM/Contribute/Form/CancelSubscription.php b/civicrm/CRM/Contribute/Form/CancelSubscription.php
index 22137d5d79..1504cb2db3 100644
--- a/civicrm/CRM/Contribute/Form/CancelSubscription.php
+++ b/civicrm/CRM/Contribute/Form/CancelSubscription.php
@@ -97,7 +97,7 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib
     // handle context redirection
     CRM_Contribute_BAO_ContributionRecur::setSubscriptionContext();
 
-    CRM_Utils_System::setTitle($this->_mid ? ts('Cancel Auto-renewal') : ts('Cancel Recurring Contribution'));
+    $this->setTitle($this->_mid ? ts('Cancel Auto-renewal') : ts('Cancel Recurring Contribution'));
     $this->assign('mode', $this->_mode);
 
     if ($this->isSelfService()) {
@@ -222,7 +222,7 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib
         'id' => $this->getSubscriptionDetails()->recur_id,
         'membership_id' => $this->_mid,
         'processor_message' => $message,
-        'cancel_reason' => $params['cancel_reason'],
+        'cancel_reason' => $this->getSubmittedValue('cancel_reason'),
       ]);
 
       $tplParams = [];
@@ -255,25 +255,6 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib
       }
 
       if (CRM_Utils_Array::value('is_notify', $params) == 1) {
-        if ($this->getSubscriptionDetails()->contribution_page_id) {
-          CRM_Core_DAO::commonRetrieveAll(
-            'CRM_Contribute_DAO_ContributionPage',
-            'id',
-            $this->getSubscriptionDetails()->contribution_page_id,
-            $value,
-            ['title', 'receipt_from_name', 'receipt_from_email']
-          );
-          $receiptFrom
-            = '"' . CRM_Utils_Array::value('receipt_from_name', $value[$this->getSubscriptionDetails()->contribution_page_id]) .
-            '" <' .
-            $value[$this->getSubscriptionDetails()->contribution_page_id]['receipt_from_email'] .
-            '>';
-        }
-        else {
-          $domainValues = CRM_Core_BAO_Domain::getNameAndEmail();
-          $receiptFrom = "$domainValues[0] <$domainValues[1]>";
-        }
-
         // send notification
         $sendTemplateParams
           = [
@@ -283,7 +264,7 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib
             'tplParams' => $tplParams,
             //'isTest'    => $isTest, set this from _objects
             'PDFFilename' => 'receipt.pdf',
-            'from' => $receiptFrom,
+            'from' => CRM_Contribute_BAO_ContributionRecur::getRecurFromAddress($this->getContributionRecurID()),
             'toName' => $this->_donorDisplayName,
             'toEmail' => $this->_donorEmail,
           ];
diff --git a/civicrm/CRM/Contribute/Form/Contribution.php b/civicrm/CRM/Contribute/Form/Contribution.php
index 644f35a9b6..581251f49a 100644
--- a/civicrm/CRM/Contribute/Form/Contribution.php
+++ b/civicrm/CRM/Contribute/Form/Contribution.php
@@ -9,6 +9,7 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Api4\Contribution;
 use Civi\Payment\Exception\PaymentProcessorException;
 
 /**
@@ -200,6 +201,13 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
    */
   public $submitOnce = TRUE;
 
+  /**
+   * Status of contribution prior to edit.
+   *
+   * @var string
+   */
+  protected $previousContributionStatus;
+
   /**
    * Explicitly declare the form context.
    */
@@ -235,10 +243,10 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
 
     // Get the contribution id if update
     $this->_id = CRM_Utils_Request::retrieve('id', 'Positive');
+    $this->assign('isUsePaymentBlock', !empty($this->_id));
     if (!empty($this->_id)) {
       $this->assignPaymentInfoBlock();
       $this->assign('contribID', $this->_id);
-      $this->assign('isUsePaymentBlock', TRUE);
     }
 
     $this->_context = CRM_Utils_Request::retrieve('context', 'Alphanumeric', $this);
@@ -301,7 +309,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
     if ($this->_mode && $this->_id) {
       $this->_payNow = TRUE;
       $this->assign('payNow', $this->_payNow);
-      CRM_Utils_System::setTitle(ts('Pay with Credit Card'));
+      $this->setTitle(ts('Pay with Credit Card'));
     }
     elseif (!empty($this->_values['is_template'])) {
       $this->setPageTitle(ts('Template Contribution'));
@@ -459,6 +467,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
    *
    * @throws \CiviCRM_API3_Exception
    * @throws \CRM_Core_Exception
+   * @throws \API_Exception
    */
   public function buildQuickForm() {
     if ($this->_id) {
@@ -501,8 +510,10 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
     // build price set form.
     $buildPriceSet = FALSE;
     $invoicing = CRM_Invoicing_Utils::isInvoicingEnabled();
-    $this->assign('invoicing', $invoicing);
-
+    $this->assign('invoicing', CRM_Invoicing_Utils::isInvoicingEnabled());
+    // This is a probably-deprecated approach to partial payments - assign here
+    // & if true it will be overwritten.
+    $this->assign('payNow', FALSE);
     $buildRecurBlock = FALSE;
 
     // display tax amount on edit contribution page
@@ -572,24 +583,23 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
     }
 
     $this->payment_instrument_id = CRM_Utils_Array::value('payment_instrument_id', $defaults, $this->getDefaultPaymentInstrumentId());
-    if (CRM_Core_Payment_Form::buildPaymentForm($this, $this->_paymentProcessor, FALSE, TRUE, $this->payment_instrument_id) == TRUE) {
-      if (!empty($this->_recurPaymentProcessors)) {
-        $buildRecurBlock = TRUE;
-        if ($this->_ppID) {
-          // ppID denotes a pledge payment.
-          foreach ($this->_paymentProcessors as $processor) {
-            if (!empty($processor['is_recur']) && !empty($processor['object']) && $processor['object']->supports('recurContributionsForPledges')) {
-              $buildRecurBlock = TRUE;
-              break;
-            }
-            $buildRecurBlock = FALSE;
+    CRM_Core_Payment_Form::buildPaymentForm($this, $this->_paymentProcessor, FALSE, TRUE, $this->payment_instrument_id);
+    if (!empty($this->_recurPaymentProcessors)) {
+      $buildRecurBlock = TRUE;
+      if ($this->_ppID) {
+        // ppID denotes a pledge payment.
+        foreach ($this->_paymentProcessors as $processor) {
+          if (!empty($processor['is_recur']) && !empty($processor['object']) && $processor['object']->supports('recurContributionsForPledges')) {
+            $buildRecurBlock = TRUE;
+            break;
           }
+          $buildRecurBlock = FALSE;
         }
-        if ($buildRecurBlock) {
-          CRM_Contribute_Form_Contribution_Main::buildRecur($this);
-          $this->setDefaults(['is_recur' => 0]);
-          $this->assign('buildRecurBlock', TRUE);
-        }
+      }
+      if ($buildRecurBlock) {
+        CRM_Contribute_Form_Contribution_Main::buildRecur($this);
+        $this->setDefaults(['is_recur' => 0]);
+        $this->assign('buildRecurBlock', TRUE);
       }
     }
     $this->addPaymentProcessorSelect(FALSE, $buildRecurBlock);
@@ -654,21 +664,11 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
 
     $this->add('select', 'from_email_address', ts('Receipt From'), $this->_fromEmails);
 
-    $component = 'contribution';
     $componentDetails = [];
     if ($this->_id) {
       $componentDetails = CRM_Contribute_BAO_Contribution::getComponentDetails($this->_id);
-      if (!empty($componentDetails['membership'])) {
-        $component = 'membership';
-      }
-      elseif (!empty($componentDetails['participant'])) {
-        $component = 'participant';
-      }
-    }
-    if ($this->_ppID) {
-      $component = 'pledge';
     }
-    $status = CRM_Contribute_BAO_Contribution_Utils::getContributionStatuses($component, $this->_id);
+    $status = CRM_Contribute_BAO_Contribution_Utils::getContributionStatuses('contribution', $this->getPreviousContributionStatus());
 
     // define the status IDs that show the cancellation info, see CRM-17589
     $cancelInfo_show_ids = [];
@@ -1095,8 +1095,9 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
     }
 
     $this->set('params', $this->_params);
-
-    $this->assign('receive_date', $this->_params['receive_date']);
+    // It actually makes no sense that we would set receive_date in params
+    // for credit card payments....
+    $this->assign('receive_date', $this->_params['receive_date'] ?? date('Y-m-d H:i:s'));
 
     // Result has all the stuff we need
     // lets archive it to a financial transaction
@@ -1494,7 +1495,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
     }
     $this->assign('lineItem', !empty($lineItem) && !$isQuickConfig ? $lineItem : FALSE);
 
-    $isEmpty = array_keys(array_flip($submittedValues['soft_credit_contact_id']));
+    $isEmpty = array_keys(array_flip($submittedValues['soft_credit_contact_id'] ?? []));
     if ($this->_id && count($isEmpty) == 1 && key($isEmpty) == NULL) {
       civicrm_api3('ContributionSoft', 'get', ['contribution_id' => $this->_id, 'pcp_id' => ['IS NULL' => 1], 'api.ContributionSoft.delete' => 1]);
     }
@@ -1829,4 +1830,34 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
     }
   }
 
+  /**
+   * Get the contribution ID.
+   *
+   * @return int|null
+   */
+  protected function getContributionID(): ?int {
+    return $this->_id;
+  }
+
+  /**
+   * Get the selected contribution status.
+   *
+   * @return string|null
+   *
+   * @throws \API_Exception
+   */
+  protected function getPreviousContributionStatus(): ?string {
+    if (!$this->getContributionID()) {
+      return NULL;
+    }
+    if (!$this->previousContributionStatus) {
+      $this->previousContributionStatus = Contribution::get(FALSE)
+        ->addWhere('id', '=', $this->getContributionID())
+        ->addSelect('contribution_status_id:name')
+        ->execute()
+        ->first()['contribution_status_id:name'];
+    }
+    return $this->previousContributionStatus;
+  }
+
 }
diff --git a/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php b/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php
index 46e4ff43d8..623c9dd26e 100644
--- a/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php
+++ b/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php
@@ -48,7 +48,7 @@ class CRM_Contribute_Form_Contribution_ThankYou extends CRM_Contribute_Form_Cont
     $this->assign('thankyou_footer', CRM_Utils_Array::value('thankyou_footer', $this->_values));
     $this->assign('max_reminders', CRM_Utils_Array::value('max_reminders', $this->_values));
     $this->assign('initial_reminder_day', CRM_Utils_Array::value('initial_reminder_day', $this->_values));
-    CRM_Utils_System::setTitle(CRM_Utils_Array::value('thankyou_title', $this->_values));
+    $this->setTitle(CRM_Utils_Array::value('thankyou_title', $this->_values));
     // Make the contributionPageID available to the template
     $this->assign('contributionPageID', $this->_id);
     $this->assign('isShare', $this->_values['is_share']);
diff --git a/civicrm/CRM/Contribute/Form/ContributionPage/Settings.php b/civicrm/CRM/Contribute/Form/ContributionPage/Settings.php
index aa03ed46eb..f9adcb47c9 100644
--- a/civicrm/CRM/Contribute/Form/ContributionPage/Settings.php
+++ b/civicrm/CRM/Contribute/Form/ContributionPage/Settings.php
@@ -41,7 +41,7 @@ class CRM_Contribute_Form_ContributionPage_Settings extends CRM_Contribute_Form_
         $this->_id,
         'title'
       );
-      CRM_Utils_System::setTitle(ts('Title and Settings') . " ($title)");
+      $this->setTitle(ts('Title and Settings') . " ($title)");
 
       foreach (['on_behalf', 'soft_credit'] as $module) {
         $ufJoinDAO = new CRM_Core_DAO_UFJoin();
diff --git a/civicrm/CRM/Contribute/Form/ContributionRecur.php b/civicrm/CRM/Contribute/Form/ContributionRecur.php
index ef6a633f45..ccf86182b1 100644
--- a/civicrm/CRM/Contribute/Form/ContributionRecur.php
+++ b/civicrm/CRM/Contribute/Form/ContributionRecur.php
@@ -195,6 +195,15 @@ class CRM_Contribute_Form_ContributionRecur extends CRM_Core_Form {
     return $sub->contact_id ? (int) $sub->contact_id : FALSE;
   }
 
+  /**
+   * Get the recurring contribution ID.
+   *
+   * @return int
+   */
+  protected function getContributionRecurID(): int {
+    return $this->getSubscriptionDetails()->recur_id;
+  }
+
   /**
    * Is this being used by a front end user to update their own recurring.
    *
diff --git a/civicrm/CRM/Contribute/Form/ContributionView.php b/civicrm/CRM/Contribute/Form/ContributionView.php
index 02b3ce815f..64f4c1473c 100644
--- a/civicrm/CRM/Contribute/Form/ContributionView.php
+++ b/civicrm/CRM/Contribute/Form/ContributionView.php
@@ -172,10 +172,10 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form {
     }
 
     if (empty($values['is_template'])) {
-      CRM_Utils_System::setTitle(ts('View Contribution from') . ' ' . $displayName);
+      $this->setTitle(ts('View Contribution from') . ' ' . $displayName);
     }
     else {
-      CRM_Utils_System::setTitle(ts('View Template Contribution from') . ' ' . $displayName);
+      $this->setTitle(ts('View Template Contribution from') . ' ' . $displayName);
     }
 
     // add viewed contribution to recent items list
diff --git a/civicrm/CRM/Contribute/Form/ManagePremiums.php b/civicrm/CRM/Contribute/Form/ManagePremiums.php
index 45904ea49f..9939eddc4d 100644
--- a/civicrm/CRM/Contribute/Form/ManagePremiums.php
+++ b/civicrm/CRM/Contribute/Form/ManagePremiums.php
@@ -15,6 +15,8 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Product;
+
 /**
  * This class generates form components for Premiums.
  */
@@ -35,8 +37,7 @@ class CRM_Contribute_Form_ManagePremiums extends CRM_Contribute_Form {
   public function setDefaultValues() {
     $defaults = parent::setDefaultValues();
     if ($this->_id) {
-      $params = ['id' => $this->_id];
-      CRM_Contribute_BAO_Product::retrieve($params, $tempDefaults);
+      $tempDefaults = Product::get()->addWhere('id', '=', $this->_id)->execute()->first();
       if (isset($tempDefaults['image']) && isset($tempDefaults['thumbnail'])) {
         $defaults['imageUrl'] = $tempDefaults['image'];
         $defaults['thumbnailUrl'] = $tempDefaults['thumbnail'];
@@ -291,10 +292,10 @@ class CRM_Contribute_Form_ManagePremiums extends CRM_Contribute_Form {
     $this->_processImages($params);
 
     // Save the premium product to database
-    $premium = CRM_Contribute_BAO_Product::create($params);
+    $premium = Product::save()->addRecord($params)->execute()->first();
 
     CRM_Core_Session::setStatus(
-      ts("The Premium '%1' has been saved.", [1 => $premium->name]),
+      ts("The Premium '%1' has been saved.", [1 => $premium['name']]),
       ts('Saved'), 'success');
   }
 
diff --git a/civicrm/CRM/Contribute/Form/Task.php b/civicrm/CRM/Contribute/Form/Task.php
index b15aa0e238..9a3b30871f 100644
--- a/civicrm/CRM/Contribute/Form/Task.php
+++ b/civicrm/CRM/Contribute/Form/Task.php
@@ -104,4 +104,13 @@ class CRM_Contribute_Form_Task extends CRM_Core_Form_Task {
     ]);
   }
 
+  /**
+   * Get the token processor schema required to list any tokens for this task.
+   *
+   * @return array
+   */
+  public function getTokenSchema(): array {
+    return ['contributionId', 'contactId'];
+  }
+
 }
diff --git a/civicrm/CRM/Contribute/Form/Task/Batch.php b/civicrm/CRM/Contribute/Form/Task/Batch.php
index 5cf089e51a..5381f47c91 100644
--- a/civicrm/CRM/Contribute/Form/Task/Batch.php
+++ b/civicrm/CRM/Contribute/Form/Task/Batch.php
@@ -72,7 +72,7 @@ class CRM_Contribute_Form_Task_Batch extends CRM_Contribute_Form_Task {
       throw new CRM_Core_Exception('ufGroupId is missing');
     }
     $this->_title = ts('Update multiple contributions') . ' - ' . CRM_Core_BAO_UFGroup::getTitle($ufGroupId);
-    CRM_Utils_System::setTitle($this->_title);
+    $this->setTitle($this->_title);
 
     $this->addDefaultButtons(ts('Save'));
     $this->_fields = [];
diff --git a/civicrm/CRM/Contribute/Form/Task/Email.php b/civicrm/CRM/Contribute/Form/Task/Email.php
index db83653ea5..da4b638b36 100644
--- a/civicrm/CRM/Contribute/Form/Task/Email.php
+++ b/civicrm/CRM/Contribute/Form/Task/Email.php
@@ -15,6 +15,8 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Contribution;
+
 /**
  * This class provides the functionality to email a group of contacts.
  */
@@ -33,14 +35,34 @@ class CRM_Contribute_Form_Task_Email extends CRM_Contribute_Form_Task {
   }
 
   /**
-   * List available tokens for this form.
+   * Get the result rows to email.
    *
    * @return array
+   *
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
    */
-  public function listTokens() {
-    $tokens = CRM_Core_SelectValues::contactTokens();
-    $tokens = array_merge(CRM_Core_SelectValues::contributionTokens(), $tokens);
-    return $tokens;
+  protected function getRows(): array {
+    $contributionDetails = Contribution::get(FALSE)
+      ->setSelect(['contact_id', 'id'])
+      ->addWhere('id', 'IN', $this->getContributionIDs())
+      ->execute()
+      // Note that this indexing means that only the last
+      // contribution per contact is resolved to tokens.
+      // this is long-standing functionality, albeit possibly
+      // not thought through.
+      ->indexBy('contact_id');
+
+    // format contact details array to handle multiple emails from same contact
+    $formattedContactDetails = [];
+    foreach ($this->getEmails() as $details) {
+      $formattedContactDetails[$details['contact_id'] . '::' . $details['email']] = $details;
+      if (!empty($contributionDetails[$details['contact_id']])) {
+        $formattedContactDetails[$details['contact_id'] . '::' . $details['email']]['schema'] = ['contributionId' => $contributionDetails[$details['contact_id']]['id']];
+      }
+
+    }
+    return $formattedContactDetails;
   }
 
 }
diff --git a/civicrm/CRM/Contribute/Form/Task/Invoice.php b/civicrm/CRM/Contribute/Form/Task/Invoice.php
index 8d3b16769e..a3d5adab71 100644
--- a/civicrm/CRM/Contribute/Form/Task/Invoice.php
+++ b/civicrm/CRM/Contribute/Form/Task/Invoice.php
@@ -123,10 +123,10 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task {
 
     CRM_Contact_Form_Task_EmailCommon::preProcessFromAddress($this);
     if ($this->_selectedOutput == 'email') {
-      CRM_Utils_System::setTitle(ts('Email Invoice'));
+      $this->setTitle(ts('Email Invoice'));
     }
     else {
-      CRM_Utils_System::setTitle(ts('Print Contribution Invoice'));
+      $this->setTitle(ts('Print Contribution Invoice'));
     }
   }
 
diff --git a/civicrm/CRM/Contribute/Form/Task/PDF.php b/civicrm/CRM/Contribute/Form/Task/PDF.php
index a34d5ded18..2a9ea95e45 100644
--- a/civicrm/CRM/Contribute/Form/Task/PDF.php
+++ b/civicrm/CRM/Contribute/Form/Task/PDF.php
@@ -65,7 +65,7 @@ AND    {$this->_componentClause}";
     // we have all the contribution ids, so now we get the contact ids
     parent::setContactIDs();
     CRM_Utils_System::appendBreadCrumb($breadCrumb);
-    CRM_Utils_System::setTitle(ts('Print Contribution Receipts'));
+    $this->setTitle(ts('Print Contribution Receipts'));
     // Ajax submit would interfere with pdf file download
     $this->preventAjaxSubmit();
   }
@@ -180,10 +180,10 @@ AND    {$this->_componentClause}";
 
       $mail = CRM_Contribute_BAO_Contribution::sendMail($input, $ids, $contribID, $elements['createPdf']);
 
-      if ($mail['html']) {
+      if (!empty($mail['html'])) {
         $message[] = $mail['html'];
       }
-      else {
+      elseif (!empty($mail['body'])) {
         $message[] = nl2br($mail['body']);
       }
 
@@ -228,6 +228,7 @@ AND    {$this->_componentClause}";
    * @return array
    *   array of common elements
    *
+   * @throws \CiviCRM_API3_Exception
    */
   public static function getElements($contribIds, $params, $contactIds) {
     $pdfElements = [];
@@ -242,21 +243,17 @@ AND    {$this->_componentClause}";
 
     $pdfElements['createPdf'] = FALSE;
     if (!empty($pdfElements['params']['output']) &&
-      ($pdfElements['params']['output'] == "pdf_invoice" || $pdfElements['params']['output'] == "pdf_receipt")
+      ($pdfElements['params']['output'] === 'pdf_invoice' || $pdfElements['params']['output'] === 'pdf_receipt')
     ) {
       $pdfElements['createPdf'] = TRUE;
     }
 
     $excludeContactIds = [];
     if (!$pdfElements['createPdf']) {
-      $returnProperties = [
-        'email' => 1,
-        'do_not_email' => 1,
-        'is_deceased' => 1,
-        'on_hold' => 1,
-      ];
-
-      list($contactDetails) = CRM_Utils_Token::getTokenDetails($contactIds, $returnProperties, FALSE, FALSE);
+      $contactDetails = civicrm_api3('Contact', 'get', [
+        'return' => ['email', 'do_not_email', 'is_deceased', 'on_hold'],
+        'id' => ['IN' => $contactIds],
+      ])['values'];
       $pdfElements['suppressedEmails'] = 0;
       $suppressedEmails = 0;
       foreach ($contactDetails as $id => $values) {
diff --git a/civicrm/CRM/Contribute/Form/Task/PDFLetter.php b/civicrm/CRM/Contribute/Form/Task/PDFLetter.php
index 330e1e2d59..23df8d1a91 100644
--- a/civicrm/CRM/Contribute/Form/Task/PDFLetter.php
+++ b/civicrm/CRM/Contribute/Form/Task/PDFLetter.php
@@ -9,6 +9,8 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Token\TokenProcessor;
+
 /**
  *
  * @package CRM
@@ -112,28 +114,38 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
     }
     $this->addElement('select', 'email_options', ts('Print and email options'), $emailOptions, [], "<br/>", FALSE);
 
-    $this->addButtons([
-      [
-        'type' => 'upload',
-        'name' => ts('Make Thank-you Letters'),
-        'isDefault' => TRUE,
-      ],
-      [
-        'type' => 'cancel',
-        'name' => ts('Done'),
-      ],
-    ]);
+    $this->addButtons($this->getButtons());
 
   }
 
+  /**
+   * Get the name for the main submit button.
+   *
+   * @return string
+   */
+  protected function getMainSubmitButtonName(): string {
+    return ts('Make Thank-you Letters');
+  }
+
   /**
    * Process the form after the input has been submitted and validated.
    *
    * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public function postProcess() {
     $formValues = $this->controller->exportValues($this->getName());
-    [$formValues, $categories, $html_message, $messageToken, $returnProperties] = CRM_Contact_Form_Task_PDFLetterCommon::processMessageTemplate($formValues);
+    [$formValues, $html_message] = $this->processMessageTemplate($formValues);
+
+    $messageToken = CRM_Utils_Token::getTokens($html_message);
+
+    $returnProperties = [];
+    if (isset($messageToken['contact'])) {
+      foreach ($messageToken['contact'] as $key => $value) {
+        $returnProperties[$value] = 1;
+      }
+    }
+
     $isPDF = FALSE;
     $emailParams = [];
     if (!empty($formValues['email_options'])) {
@@ -205,7 +217,7 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
       if (empty($groupBy) || empty($contact['is_sent'][$groupBy][$groupByID])) {
         $html[$contributionId] = $this->generateHtml($contact, $contribution, $groupBy, $contributions, $realSeparator, $tableSeparators, $messageToken, $html_message, $separator, $grouped, $groupByID);
         $contactHtml[$contact['contact_id']][] = $html[$contributionId];
-        if (!empty($formValues['email_options'])) {
+        if ($this->isSendEmails()) {
           if ($this->emailLetter($contact, $html[$contributionId], $isPDF, $formValues, $emailParams)) {
             $emailed++;
             if (!stristr($formValues['email_options'], 'both')) {
@@ -215,39 +227,33 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
         }
         $contact['is_sent'][$groupBy][$groupByID] = TRUE;
       }
-      // Update receipt/thankyou dates
-      $contributionParams = ['id' => $contributionId];
-      if ($receipt_update) {
-        $contributionParams['receipt_date'] = $nowDate;
-      }
-      if ($thankyou_update) {
-        $contributionParams['thankyou_date'] = $nowDate;
-      }
-      if ($receipt_update || $thankyou_update) {
-        civicrm_api3('Contribution', 'create', $contributionParams);
-        $receipts = ($receipt_update ? $receipts + 1 : $receipts);
-        $thanks = ($thankyou_update ? $thanks + 1 : $thanks);
+      if ($this->isLiveMode()) {
+        // Update receipt/thankyou dates
+        $contributionParams = ['id' => $contributionId];
+        if ($receipt_update) {
+          $contributionParams['receipt_date'] = $nowDate;
+        }
+        if ($thankyou_update) {
+          $contributionParams['thankyou_date'] = $nowDate;
+        }
+        if ($receipt_update || $thankyou_update) {
+          civicrm_api3('Contribution', 'create', $contributionParams);
+          $receipts = ($receipt_update ? $receipts + 1 : $receipts);
+          $thanks = ($thankyou_update ? $thanks + 1 : $thanks);
+        }
       }
     }
 
     $contactIds = array_keys($contacts);
-    CRM_Contact_Form_Task_PDFLetterCommon::createActivities($this, $html_message, $contactIds, CRM_Utils_Array::value('subject', $formValues, ts('Thank you letter')), CRM_Utils_Array::value('campaign_id', $formValues), $contactHtml);
-    $html = array_diff_key($html, $emailedHtml);
-
-    if (!empty($formValues['is_unit_test'])) {
-      return $html;
+    // CRM-16725 Skip creation of activities if user is previewing their PDF letter(s)
+    if ($this->isLiveMode()) {
+      $this->createActivities($html_message, $contactIds, CRM_Utils_Array::value('subject', $formValues, ts('Thank you letter')), CRM_Utils_Array::value('campaign_id', $formValues), $contactHtml);
     }
+    $html = array_diff_key($html, $emailedHtml);
 
     //CRM-19761
     if (!empty($html)) {
-      // Set the filename for the PDF using the Activity Subject, if defined. Remove unwanted characters and limit the length to 200 characters.
-      if (!empty($formValues['subject'])) {
-        $fileName = CRM_Utils_File::makeFilenameWithUnicode($formValues['subject'], '_', 200);
-      }
-      else {
-        $fileName = 'CiviLetter';
-      }
-
+      $fileName = $this->getFileName();
       if ($this->getSubmittedValue('document_type') === 'pdf') {
         CRM_Utils_PDF_Utils::html2pdf($html, $fileName . '.pdf', FALSE, $formValues);
       }
@@ -278,15 +284,21 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
   }
 
   /**
-   * List available tokens for this form.
+   * Are emails to be sent out?
+   *
+   * @return bool
+   */
+  protected function isSendEmails(): bool {
+    return $this->isLiveMode() && $this->getSubmittedValue('email_options');
+  }
+
+  /**
+   * Get the token processor schema required to list any tokens for this task.
    *
    * @return array
    */
-  public function listTokens() {
-    $tokens = CRM_Core_SelectValues::contactTokens();
-    $tokens = array_merge(CRM_Core_SelectValues::contributionTokens(), $tokens);
-    $tokens = array_merge(CRM_Core_SelectValues::domainTokens(), $tokens);
-    return $tokens;
+  public function getTokenSchema(): array {
+    return ['contributionId', 'contactId'];
   }
 
   /**
@@ -424,7 +436,7 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
         CRM_Core_Session::setStatus(ts('You have selected the table cell separator, but one or more token fields are not placed inside a table cell. This would result in invalid HTML, so comma separators have been used instead.'));
       }
       $validated = TRUE;
-      $html = str_replace($separator, $realSeparator, $this->resolveTokens($html_message, $contact, $contribution, $messageToken, $grouped, $separator, $groupedContributions));
+      $html = str_replace($separator, $realSeparator, $this->resolveTokens($html_message, $contact, $contribution['id'], $grouped, $separator, $groupedContributions));
     }
 
     return $html;
@@ -532,8 +544,7 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
    *
    * @param string $html_message
    * @param array $contact
-   * @param array $contribution
-   * @param array $messageToken
+   * @param int $contributionID
    * @param bool $grouped
    *   Does this letter represent more than one contribution.
    * @param string $separator
@@ -542,20 +553,42 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
    *
    * @return string
    */
-  protected function resolveTokens(string $html_message, $contact, $contribution, $messageToken, $grouped, $separator, $contributions): string {
-    if ($grouped) {
-      $tokenHtml = CRM_Utils_Token::replaceMultipleContributionTokens($separator, $html_message, $contributions, $messageToken);
-    }
-    else {
-      // no change to normal behaviour to avoid risk of breakage
-      $tokenHtml = CRM_Utils_Token::replaceContributionTokens($html_message, $contribution, TRUE, $messageToken);
-    }
+  protected function resolveTokens(string $html_message, $contact, $contributionID, $grouped, $separator, $contributions): string {
     $tokenContext = [
       'smarty' => (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY),
       'contactId' => $contact['contact_id'],
+      'schema' => ['contributionId'],
     ];
-    $smarty = ['contact' => $contact];
-    return CRM_Core_TokenSmarty::render(['html' => $tokenHtml], $tokenContext, $smarty)['html'];
+    if ($grouped) {
+      // First replace the contribution tokens. These are pretty ... special.
+      // if the text looks like `<td>{contribution.currency} {contribution.total_amount}</td>'
+      // and there are 2 rows with a currency separator of
+      // you wind up with a string like
+      // '<td>USD</td><td>USD></td> <td>$50</td><td>$89</td>
+      // see https://docs.civicrm.org/user/en/latest/contributions/manual-receipts-and-thank-yous/#grouped-contribution-thank-you-letters
+      $tokenProcessor = new TokenProcessor(\Civi::dispatcher(), $tokenContext);
+      $contributionTokens = CRM_Utils_Token::getTokens($html_message)['contribution'] ?? [];
+      foreach ($contributionTokens as $token) {
+        $tokenProcessor->addMessage($token, '{contribution.' . $token . '}', 'text/html');
+      }
+
+      foreach ($contributions as $contribution) {
+        $tokenProcessor->addRow([
+          'contributionId' => $contribution['id'],
+          'contribution' => $contribution,
+        ]);
+      }
+      $tokenProcessor->evaluate();
+      $resolvedTokens = [];
+      foreach ($contributionTokens as $token) {
+        foreach ($tokenProcessor->getRows() as $row) {
+          $resolvedTokens[$token][$row->context['contributionId']] = $row->render($token);
+        }
+        $html_message = str_replace('{contribution.' . $token . '}', implode($separator, $resolvedTokens[$token]), $html_message);
+      }
+    }
+    $tokenContext['contributionId'] = $contributionID;
+    return CRM_Core_TokenSmarty::render(['html' => $html_message], $tokenContext)['html'];
   }
 
 }
diff --git a/civicrm/CRM/Contribute/Form/Task/PickProfile.php b/civicrm/CRM/Contribute/Form/Task/PickProfile.php
index ea952ba5f5..ca4f3d8a8f 100644
--- a/civicrm/CRM/Contribute/Form/Task/PickProfile.php
+++ b/civicrm/CRM/Contribute/Form/Task/PickProfile.php
@@ -48,7 +48,7 @@ class CRM_Contribute_Form_Task_PickProfile extends CRM_Contribute_Form_Task {
     $session = CRM_Core_Session::singleton();
     $this->_userContext = $session->readUserContext();
 
-    CRM_Utils_System::setTitle(ts('Update multiple contributions'));
+    $this->setTitle(ts('Update multiple contributions'));
 
     $validate = FALSE;
     //validations
diff --git a/civicrm/CRM/Contribute/Form/UpdateBilling.php b/civicrm/CRM/Contribute/Form/UpdateBilling.php
index 9a1b1a9394..6df7ba092a 100644
--- a/civicrm/CRM/Contribute/Form/UpdateBilling.php
+++ b/civicrm/CRM/Contribute/Form/UpdateBilling.php
@@ -34,8 +34,8 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
     parent::preProcess();
     if ($this->_crid) {
       // Are we cancelling a recurring contribution that is linked to an auto-renew membership?
-      if ($this->_subscriptionDetails->membership_id) {
-        $this->_mid = $this->_subscriptionDetails->membership_id;
+      if ($this->getSubscriptionDetails()->membership_id) {
+        $this->_mid = $this->getSubscriptionDetails()->membership_id;
       }
     }
 
@@ -47,14 +47,13 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
     if ($this->_mid) {
       $this->_paymentProcessor = CRM_Financial_BAO_PaymentProcessor::getProcessorForEntity($this->_mid, 'membership', 'info');
       $this->_paymentProcessor['object'] = CRM_Financial_BAO_PaymentProcessor::getProcessorForEntity($this->_mid, 'membership', 'obj');
-      $this->_subscriptionDetails = CRM_Contribute_BAO_ContributionRecur::getSubscriptionDetails($this->_mid, 'membership');
       $membershipTypes = CRM_Member_PseudoConstant::membershipType();
       $membershipTypeId = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $this->_mid, 'membership_type_id');
       $this->assign('membershipType', CRM_Utils_Array::value($membershipTypeId, $membershipTypes));
       $this->_mode = 'auto_renew';
     }
 
-    if ((!$this->_crid && !$this->_coid && !$this->_mid) || (!$this->_subscriptionDetails)) {
+    if ((!$this->_crid && !$this->_coid && !$this->_mid) || (!$this->getSubscriptionDetails())) {
       throw new CRM_Core_Exception('Required information missing.');
     }
 
@@ -67,10 +66,10 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
 
     $this->assignBillingType();
 
-    $this->assign('frequency_unit', $this->_subscriptionDetails->frequency_unit);
-    $this->assign('frequency_interval', $this->_subscriptionDetails->frequency_interval);
-    $this->assign('amount', $this->_subscriptionDetails->amount);
-    $this->assign('installments', $this->_subscriptionDetails->installments);
+    $this->assign('recur_frequency_unit', $this->getSubscriptionDetails()->frequency_unit);
+    $this->assign('recur_frequency_interval', $this->getSubscriptionDetails()->frequency_interval);
+    $this->assign('amount', $this->getSubscriptionDetails()->amount);
+    $this->assign('installments', $this->getSubscriptionDetails()->installments);
     $this->assign('mode', $this->_mode);
 
     // handle context redirection
@@ -86,7 +85,7 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
   public function setDefaultValues() {
     $this->_defaults = [];
 
-    if ($this->_subscriptionDetails->contact_id) {
+    if ($this->getSubscriptionDetails()->contact_id) {
       $fields = [];
       $names = array(
         'first_name',
@@ -106,7 +105,7 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
       $fields["email-{$this->_bltID}"] = 1;
       $fields['email-Primary'] = 1;
 
-      CRM_Core_BAO_UFGroup::setProfileDefaults($this->_subscriptionDetails->contact_id, $fields, $this->_defaults);
+      CRM_Core_BAO_UFGroup::setProfileDefaults($this->getSubscriptionDetails()->contact_id, $fields, $this->_defaults);
 
       // use primary email address if billing email address is empty
       if (empty($this->_defaults["email-{$this->_bltID}"]) &&
@@ -198,36 +197,37 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
       list($key) = explode('-', $key);
       $processorParams[$key] = $val;
     }
-    $processorParams['state_province'] = CRM_Core_PseudoConstant::stateProvince($params["billing_state_province_id-{$this->_bltID}"], FALSE);
-    $processorParams['country'] = CRM_Core_PseudoConstant::country($params["billing_country_id-{$this->_bltID}"], FALSE);
+    $processorParams['billingStateProvince'] = $processorParams['state_province'] = CRM_Core_PseudoConstant::stateProvince($params["billing_state_province_id-{$this->_bltID}"], FALSE);
+    $processorParams['billingCountry'] = $processorParams['country'] = CRM_Core_PseudoConstant::country($params["billing_country_id-{$this->_bltID}"], FALSE);
     $processorParams['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($processorParams);
     $processorParams['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($processorParams);
-    $processorParams['subscriptionId'] = $this->getSubscriptionDetails()->processor_id;
-    $processorParams['amount'] = $this->_subscriptionDetails->amount;
+    $processorParams['recurProcessorID'] = $processorParams['subscriptionId'] = $this->getSubscriptionDetails()->processor_id;
+    $processorParams['amount'] = $this->getSubscriptionDetails()->amount;
+    $processorParams['contributionRecurID'] = $this->getContributionRecurID();
     $message = '';
     $updateSubscription = $this->_paymentProcessor['object']->updateSubscriptionBillingInfo($message, $processorParams);
     if (is_a($updateSubscription, 'CRM_Core_Error')) {
       CRM_Core_Error::displaySessionError($updateSubscription);
     }
     elseif ($updateSubscription) {
-      $ctype = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_subscriptionDetails->contact_id, 'contact_type');
-      $contact = &CRM_Contact_BAO_Contact::createProfileContact($params,
+      $ctype = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->getSubscriptionDetails()->contact_id, 'contact_type');
+      CRM_Contact_BAO_Contact::createProfileContact($params,
         $fields,
-        $this->_subscriptionDetails->contact_id,
+        $this->getSubscriptionDetails()->contact_id,
         NULL,
         NULL,
         $ctype
       );
 
       // build tpl params
-      if ($this->_subscriptionDetails->membership_id) {
-        $inputParams = array('id' => $this->_subscriptionDetails->membership_id);
+      if ($this->getSubscriptionDetails()->membership_id) {
+        $inputParams = array('id' => $this->getSubscriptionDetails()->membership_id);
         CRM_Member_BAO_Membership::getValues($inputParams, $tplParams);
-        $tplParams = $tplParams[$this->_subscriptionDetails->membership_id];
+        $tplParams = $tplParams[$this->getSubscriptionDetails()->membership_id];
         $tplParams['membership_status'] = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipStatus', $tplParams['status_id']);
         $tplParams['membershipType'] = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $tplParams['membership_type_id']);
         $status = ts('Billing details for your automatically renewed %1 membership have been updated.',
-          array(1 => $tplParams['membershipType'])
+          [1 => $tplParams['membershipType']]
         );
         $msgTitle = ts('Details Updated');
         $msgType = 'success';
@@ -235,18 +235,18 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
       else {
         $status = ts('Billing details for the recurring contribution of %1, every %2 %3 have been updated.',
           array(
-            1 => $this->_subscriptionDetails->amount,
-            2 => $this->_subscriptionDetails->frequency_interval,
-            3 => $this->_subscriptionDetails->frequency_unit,
+            1 => $this->getSubscriptionDetails()->amount,
+            2 => $this->getSubscriptionDetails()->frequency_interval,
+            3 => $this->getSubscriptionDetails()->frequency_unit,
           )
         );
         $msgTitle = ts('Details Updated');
         $msgType = 'success';
 
         $tplParams = array(
-          'recur_frequency_interval' => $this->_subscriptionDetails->frequency_interval,
-          'recur_frequency_unit' => $this->_subscriptionDetails->frequency_unit,
-          'amount' => $this->_subscriptionDetails->amount,
+          'recur_frequency_interval' => $this->getSubscriptionDetails()->frequency_interval,
+          'recur_frequency_unit' => $this->getSubscriptionDetails()->frequency_unit,
+          'amount' => $this->getSubscriptionDetails()->amount,
         );
       }
 
@@ -297,7 +297,7 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
 <br/>{$this->_defaults['address']}";
 
       $activityParams = array(
-        'source_contact_id' => $this->_subscriptionDetails->contact_id,
+        'source_contact_id' => $this->getSubscriptionDetails()->contact_id,
         'activity_type_id' => CRM_Core_PseudoConstant::getKey(
           'CRM_Activity_BAO_Activity',
           'activity_type_id',
@@ -316,34 +316,19 @@ class CRM_Contribute_Form_UpdateBilling extends CRM_Contribute_Form_Contribution
       }
       CRM_Activity_BAO_Activity::create($activityParams);
 
-      // send notification
-      if ($this->_subscriptionDetails->contribution_page_id) {
-        CRM_Core_DAO::commonRetrieveAll('CRM_Contribute_DAO_ContributionPage', 'id',
-          $this->_subscriptionDetails->contribution_page_id, $value, array(
-            'title',
-            'receipt_from_name',
-            'receipt_from_email',
-          )
-        );
-        $receiptFrom = '"' . CRM_Utils_Array::value('receipt_from_name', $value[$this->_subscriptionDetails->contribution_page_id]) . '" <' . $value[$this->_subscriptionDetails->contribution_page_id]['receipt_from_email'] . '>';
-      }
-      else {
-        $domainValues = CRM_Core_BAO_Domain::getNameAndEmail();
-        $receiptFrom = "$domainValues[0] <$domainValues[1]>";
-      }
-      list($donorDisplayName, $donorEmail) = CRM_Contact_BAO_Contact::getContactDetails($this->_subscriptionDetails->contact_id);
+      list($donorDisplayName, $donorEmail) = CRM_Contact_BAO_Contact::getContactDetails($this->getSubscriptionDetails()->contact_id);
       $tplParams['contact'] = array('display_name' => $donorDisplayName);
 
       $tplParams = array_merge($tplParams, CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($processorParams));
 
       $sendTemplateParams = array(
-        'groupName' => $this->_subscriptionDetails->membership_id ? 'msg_tpl_workflow_membership' : 'msg_tpl_workflow_contribution',
-        'valueName' => $this->_subscriptionDetails->membership_id ? 'membership_autorenew_billing' : 'contribution_recurring_billing',
-        'contactId' => $this->_subscriptionDetails->contact_id,
+        'groupName' => $this->getSubscriptionDetails()->membership_id ? 'msg_tpl_workflow_membership' : 'msg_tpl_workflow_contribution',
+        'valueName' => $this->getSubscriptionDetails()->membership_id ? 'membership_autorenew_billing' : 'contribution_recurring_billing',
+        'contactId' => $this->getSubscriptionDetails()->contact_id,
         'tplParams' => $tplParams,
-        'isTest' => $this->_subscriptionDetails->is_test,
+        'isTest' => $this->getSubscriptionDetails()->is_test,
         'PDFFilename' => 'receipt.pdf',
-        'from' => $receiptFrom,
+        'from' => CRM_Contribute_BAO_ContributionRecur::getRecurFromAddress($this->getContributionRecurID()),
         'toName' => $donorDisplayName,
         'toEmail' => $donorEmail,
       );
diff --git a/civicrm/CRM/Contribute/Form/UpdateSubscription.php b/civicrm/CRM/Contribute/Form/UpdateSubscription.php
index 0fa0639900..e38baacc44 100644
--- a/civicrm/CRM/Contribute/Form/UpdateSubscription.php
+++ b/civicrm/CRM/Contribute/Form/UpdateSubscription.php
@@ -84,6 +84,8 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Contribute_Form_Contrib
     }
 
     $this->assign('self_service', $this->isSelfService());
+    $this->assign('recur_frequency_interval', $this->_subscriptionDetails->frequency_interval);
+    $this->assign('recur_frequency_unit', $this->_subscriptionDetails->frequency_unit);
 
     $this->editableScheduleFields = $this->_paymentProcessorObj->getEditableRecurringScheduleFields();
 
@@ -115,7 +117,7 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Contribute_Form_Contrib
       [$this->_donorDisplayName, $this->_donorEmail] = CRM_Contact_BAO_Contact::getContactDetails($this->_subscriptionDetails->contact_id);
     }
 
-    CRM_Utils_System::setTitle(ts('Update Recurring Contribution'));
+    $this->setTitle(ts('Update Recurring Contribution'));
 
     // Handle context redirection.
     CRM_Contribute_BAO_ContributionRecur::setSubscriptionContext();
@@ -192,6 +194,9 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Contribute_Form_Contrib
 
   /**
    * Called after the user submits the form.
+   *
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
    */
   public function postProcess() {
     // store the submitted values in an array
@@ -203,10 +208,11 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Contribute_Form_Contrib
     }
 
     // if this is an update of an existing recurring contribution, pass the ID
-    $params['id'] = $this->_subscriptionDetails->recur_id;
+    $params['contributionRecurID'] = $params['id'] = $this->getContributionRecurID();
     $message = '';
 
-    $params['subscriptionId'] = $this->getSubscriptionDetails()->processor_id;
+    $params['recurProcessorID'] = $params['subscriptionId'] = $this->getSubscriptionDetails()->processor_id;
+
     $updateSubscription = TRUE;
     if ($this->_paymentProcessorObj->supports('changeSubscriptionAmount')) {
       try {
@@ -279,46 +285,23 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Contribute_Form_Contrib
       CRM_Activity_BAO_Activity::create($activityParams);
 
       if (!empty($params['is_notify'])) {
-        // send notification
-        if ($this->_subscriptionDetails->contribution_page_id) {
-          CRM_Core_DAO::commonRetrieveAll('CRM_Contribute_DAO_ContributionPage', 'id',
-            $this->_subscriptionDetails->contribution_page_id, $value, [
-              'title',
-              'receipt_from_name',
-              'receipt_from_email',
-            ]
-          );
-          $receiptFrom = '"' . CRM_Utils_Array::value('receipt_from_name', $value[$this->_subscriptionDetails->contribution_page_id]) . '" <' . $value[$this->_subscriptionDetails->contribution_page_id]['receipt_from_email'] . '>';
-        }
-        else {
-          $domainValues = CRM_Core_BAO_Domain::getNameAndEmail();
-          $receiptFrom = "$domainValues[0] <$domainValues[1]>";
-        }
+        $receiptFrom = CRM_Contribute_BAO_ContributionRecur::getRecurFromAddress($this->getContributionRecurID());
 
         [$donorDisplayName, $donorEmail] = CRM_Contact_BAO_Contact::getContactDetails($contactID);
 
-        $tplParams = [
-          'recur_frequency_interval' => $this->_subscriptionDetails->frequency_interval,
-          'recur_frequency_unit' => $this->_subscriptionDetails->frequency_unit,
-          'amount' => CRM_Utils_Money::format($params['amount']),
-          'installments' => $params['installments'],
-        ];
-
-        $tplParams['contact'] = ['display_name' => $donorDisplayName];
-        $tplParams['receipt_from_email'] = $receiptFrom;
-
         $sendTemplateParams = [
           'groupName' => 'msg_tpl_workflow_contribution',
           'valueName' => 'contribution_recurring_edit',
           'contactId' => $contactID,
-          'tplParams' => $tplParams,
+          'tplParams' => ['receipt_from_email' => $receiptFrom],
           'isTest' => $this->_subscriptionDetails->is_test,
           'PDFFilename' => 'receipt.pdf',
           'from' => $receiptFrom,
           'toName' => $donorDisplayName,
           'toEmail' => $donorEmail,
+          'tokenContext' => ['contribution_recurId' => $this->getContributionRecurID()],
         ];
-        [$sent] = CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams);
+        CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams);
       }
     }
 
diff --git a/civicrm/CRM/Contribute/Import/Controller.php b/civicrm/CRM/Contribute/Import/Controller.php
index b1582781f8..8ec9f32d1f 100644
--- a/civicrm/CRM/Contribute/Import/Controller.php
+++ b/civicrm/CRM/Contribute/Import/Controller.php
@@ -26,10 +26,7 @@ class CRM_Contribute_Import_Controller extends CRM_Core_Controller {
   public function __construct($title = NULL, $action = CRM_Core_Action::NONE, $modal = TRUE) {
     parent::__construct($title, $modal);
 
-    // lets get around the time limit issue if possible, CRM-2113
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     $this->_stateMachine = new CRM_Import_StateMachine($this, $action);
 
diff --git a/civicrm/CRM/Contribute/RecurTokens.php b/civicrm/CRM/Contribute/RecurTokens.php
new file mode 100644
index 0000000000..3001eeb8b0
--- /dev/null
+++ b/civicrm/CRM/Contribute/RecurTokens.php
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * Class CRM_Contribute_RecurTokens
+ *
+ * Generate "contribution_recur.*" tokens.
+ */
+class CRM_Contribute_RecurTokens extends CRM_Core_EntityTokens {
+
+  /**
+   * Get the entity name for api v4 calls.
+   *
+   * @return string
+   */
+  protected function getApiEntityName(): string {
+    return 'ContributionRecur';
+  }
+
+  /**
+   * @return array
+   */
+  public function getCurrencyFieldName(): array {
+    return ['currency'];
+  }
+
+}
diff --git a/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit.php b/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit.php
new file mode 100644
index 0000000000..f66a613f5d
--- /dev/null
+++ b/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit.php
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ * @support template-only
+ * @method array getContact()
+ * @method $this setContact(array $contact)
+ * @method array getContributionRecur()
+ */
+class CRM_Contribute_WorkflowMessage_RecurringEdit extends Civi\WorkflowMessage\GenericWorkflowMessage {
+  const WORKFLOW = 'contribution_recurring_edit';
+
+  /**
+   * The recurring contribution contact.
+   *
+   * @var array|null
+   *
+   * @scope tokenContext
+   *
+   * @required
+   */
+  public $contact;
+
+  /**
+   * The recurring contribution.
+   *
+   * @var array|null
+   *
+   * @scope tokenContext as contribution_recur
+   *
+   * @required
+   */
+  public $contributionRecur;
+
+  /**
+   * @var int
+   * @scope tokenContext as contribution_recurId
+   */
+  public $contributionRecurId;
+
+  /**
+   * Smarty template historically defined a property 'receipt_from_email'.
+   * (Note the asymmetric lack of 'receipt_from_name'.)
+   *
+   * TODO: This should probably be deprecated/converted/reconciled with `$this->from` in the basic AddressingTrait.
+   *
+   * @var string|null
+   * @scope tplParams as receipt_from_email
+   */
+  public $receiptFromEmail;
+
+  public function setContributionRecur(array $contributionRecur) {
+    $this->contributionRecur = $contributionRecur;
+    if (!empty($contributionRecur['id'])) {
+      $this->contributionRecurId = $contributionRecur['id'];
+    }
+    return $this;
+  }
+
+  protected function exportExtraTokenContext(array &$export): void {
+    $export['smartyTokenAlias']['installments'] = 'contribution_recur.installments';
+    $export['smartyTokenAlias']['amount'] = 'contribution_recur.amount';
+    $export['smartyTokenAlias']['recur_frequency_unit'] = 'contribution_recur.frequency_unit:label';
+    $export['smartyTokenAlias']['recur_frequency_interval'] = 'contribution_recur.frequency_interval';
+  }
+
+  protected function exportExtraTplParams(array &$export): void {
+    if (empty($export['receipt_from_email']) && !empty($this->from)) {
+      // At a minimum, we can at least autofill 'receipt_from_email' in the case where it's missing.
+      $export['receipt_from_email'] = $this->getFrom('record')['email'];
+    }
+  }
+
+}
diff --git a/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/AlexCancelled.ex.php b/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/AlexCancelled.ex.php
new file mode 100644
index 0000000000..846f99b1b0
--- /dev/null
+++ b/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/AlexCancelled.ex.php
@@ -0,0 +1,28 @@
+<?php
+
+class CRM_Contribute_WorkflowMessage_RecurringEdit_AlexCancelled extends \Civi\WorkflowMessage\WorkflowMessageExample {
+
+  public function getExamples(): iterable {
+    yield [
+      'name' => "workflow/{$this->wfName}/{$this->exName}",
+      // This title is not very clear. When we have some more examples to compare against, feel free to change/clarify.
+      'title' => ts('Recurring Edit: Alex, Cancelled'),
+      'tags' => ['preview', 'phpunit'],
+    ];
+  }
+
+  public function build(array &$example): void {
+    $msg = (new CRM_Contribute_WorkflowMessage_RecurringEdit())
+      ->setContact(\Civi\Test::example('entity/Contact/Alex'))
+      ->setContributionRecur(\Civi\Test::example('entity/ContributionRecur/Euro5990/cancelled'));
+    $example['data'] = $this->toArray($msg);
+
+    $example['asserts'] = [
+      'default' => [
+        ['for' => 'subject', 'regex' => '/Recurring Contribution Update.*Alex/'],
+        ['for' => 'text', 'regex' => '/Recurring contribution is for €5,990.99, every 2 year.s. for 24 installments/'],
+      ],
+    ];
+  }
+
+}
diff --git a/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/BarbPending.ex.php b/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/BarbPending.ex.php
new file mode 100644
index 0000000000..6c19f770ac
--- /dev/null
+++ b/civicrm/CRM/Contribute/WorkflowMessage/RecurringEdit/BarbPending.ex.php
@@ -0,0 +1,29 @@
+<?php
+
+class CRM_Contribute_WorkflowMessage_RecurringEdit_BarbPending extends \Civi\WorkflowMessage\WorkflowMessageExample {
+
+  public function getExamples(): iterable {
+    yield [
+      'name' => "workflow/{$this->wfName}/{$this->exName}",
+      // This title is not very clear. When we have some more examples to compare against, feel free to change/clarify.
+      'title' => ts('Recurring Edit: Barbara, Pending'),
+      'tags' => ['preview'],
+    ];
+  }
+
+  public function build(array &$example): void {
+    $msg = (new CRM_Contribute_WorkflowMessage_RecurringEdit())
+      ->setReceiptFromEmail('info@example.com')
+      ->setContact(\Civi\Test::example('entity/Contact/Barb'))
+      ->setContributionRecur(\Civi\Test::example('entity/ContributionRecur/Euro5990/pending'));
+    $example['data'] = $this->toArray($msg);
+
+    $example['asserts'] = [
+      'default' => [
+        ['for' => 'subject', 'regex' => '/Recurring Contribution Update.*Barb/'],
+        ['for' => 'text', 'regex' => '/Recurring contribution is for €5,990.99, every 2 year.s. for 24 installments/'],
+      ],
+    ];
+  }
+
+}
diff --git a/civicrm/CRM/Core/BAO/ActionSchedule.php b/civicrm/CRM/Core/BAO/ActionSchedule.php
index 209097cb6b..2520e5652e 100644
--- a/civicrm/CRM/Core/BAO/ActionSchedule.php
+++ b/civicrm/CRM/Core/BAO/ActionSchedule.php
@@ -615,15 +615,15 @@ FROM civicrm_action_schedule cas
     $mailParams = [
       'groupName' => 'Scheduled Reminder Sender',
       'from' => self::pickFromEmail($schedule),
-      'toName' => $tokenRow->context['contact']['display_name'],
+      'toName' => $tokenRow->render('toName'),
       'toEmail' => $toEmail,
       'subject' => $tokenRow->render('subject'),
       'entity' => 'action_schedule',
       'entity_id' => $schedule->id,
     ];
 
-    if (!$body_html || $tokenRow->context['contact']['preferred_mail_format'] === 'Text' ||
-      $tokenRow->context['contact']['preferred_mail_format'] === 'Both'
+    $preferredMailFormat = $tokenRow->render('preferred_mail_format');
+    if (!$body_html ||  $preferredMailFormat === 'Text' || $preferredMailFormat === 'Both'
     ) {
       // render the &amp; entities in text mode, so that the links work
       $mailParams['text'] = str_replace('&amp;', '&', $body_text);
@@ -658,6 +658,10 @@ FROM civicrm_action_schedule cas
     $tp->addMessage('body_html', $schedule->body_html, 'text/html');
     $tp->addMessage('sms_body_text', $schedule->sms_body_text, 'text/plain');
     $tp->addMessage('subject', $schedule->subject, 'text/plain');
+    // These 2 are not 'real' tokens - but it tells the processor to load them.
+    $tp->addMessage('toName', '{contact.display_name}', 'text/plain');
+    $tp->addMessage('preferred_mail_format', '{contact.preferred_mail_format}', 'text/plain');
+
     return $tp;
   }
 
diff --git a/civicrm/CRM/Core/BAO/Address.php b/civicrm/CRM/Core/BAO/Address.php
index 480501d815..f7c8ca8ecc 100644
--- a/civicrm/CRM/Core/BAO/Address.php
+++ b/civicrm/CRM/Core/BAO/Address.php
@@ -1210,12 +1210,14 @@ SELECT is_primary,
   /**
    * Call common delete function.
    *
-   * @param int $id
+   * @see \CRM_Contact_BAO_Contact::on_hook_civicrm_post
    *
+   * @param int $id
+   * @deprecated
    * @return bool
    */
   public static function del($id) {
-    return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Address', $id);
+    return (bool) self::deleteRecord(['id' => $id]);
   }
 
   /**
diff --git a/civicrm/CRM/Core/BAO/CustomField.php b/civicrm/CRM/Core/BAO/CustomField.php
index d79cf9747e..c5421a604b 100644
--- a/civicrm/CRM/Core/BAO/CustomField.php
+++ b/civicrm/CRM/Core/BAO/CustomField.php
@@ -134,9 +134,8 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
    * @param array $records
    * @return CRM_Core_DAO_CustomField[]
    * @throws CRM_Core_Exception
-   * @throws CiviCRM_API3_Exception
    */
-  public static function writeRecords(array $records) {
+  public static function writeRecords(array $records): array {
     $addedColumns = $sql = $customFields = $pre = $post = [];
     foreach ($records as $index => $params) {
       CRM_Utils_Hook::pre(empty($params['id']) ? 'create' : 'edit', 'CustomField', $params['id'] ?? NULL, $params);
@@ -1653,7 +1652,9 @@ SELECT $columnName
       'table_name' => $tableName,
       'column_name' => $columnName,
       'file_id' => $fileID,
+      // is_multiple refers to the custom group, serialize refers to the field.
       'is_multiple' => $customFields[$customFieldId]['is_multiple'],
+      'serialize' => $customFields[$customFieldId]['serialize'],
     ];
 
     //we need to sort so that custom fields are created in the order of entry
diff --git a/civicrm/CRM/Core/BAO/CustomValueTable.php b/civicrm/CRM/Core/BAO/CustomValueTable.php
index fa5373b087..8556c4ec21 100644
--- a/civicrm/CRM/Core/BAO/CustomValueTable.php
+++ b/civicrm/CRM/Core/BAO/CustomValueTable.php
@@ -229,7 +229,7 @@ class CRM_Core_BAO_CustomValueTable {
             // would be 'String' for a concatenated set of integers.
             // However, the god-forsaken timestamp hack also needs to be kept
             // if value is NULL.
-            $params[$count] = [$value, ($value && $field['is_multiple']) ? 'String' : $type];
+            $params[$count] = [$value, ($value && $field['serialize']) ? 'String' : $type];
             $count++;
           }
 
@@ -361,7 +361,10 @@ class CRM_Core_BAO_CustomValueTable {
           'custom_group_id' => $customValue['custom_group_id'],
           'table_name' => $customValue['table_name'],
           'column_name' => $customValue['column_name'],
-          'is_multiple' => $customValue['is_multiple'] ?? NULL,
+          // is_multiple refers to the custom group, serialize refers to the field.
+          // @todo is_multiple can be null - does that mean anything different from 0?
+          'is_multiple' => $customValue['is_multiple'] ?? CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $customValue['custom_group_id'], 'is_multiple'),
+          'serialize' => $customValue['serialize'] ?? (int) CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', $customValue['custom_field_id'], 'serialize'),
           'file_id' => $customValue['file_id'],
         ];
 
@@ -592,7 +595,8 @@ SELECT cg.table_name  as table_name ,
        cf.column_name as column_name,
        cf.id          as cf_id      ,
        cf.html_type   as html_type  ,
-       cf.data_type   as data_type
+       cf.data_type   as data_type  ,
+       cf.serialize   as serialize
 FROM   civicrm_custom_group cg,
        civicrm_custom_field cf
 WHERE  cf.custom_group_id = cg.id
@@ -650,6 +654,7 @@ AND    cf.id IN ( $fieldIDList )
           'table_name' => $dao->table_name,
           'column_name' => $dao->column_name,
           'is_multiple' => $dao->is_multiple,
+          'serialize' => $dao->serialize,
           'extends' => $dao->extends,
         ];
 
diff --git a/civicrm/CRM/Core/BAO/Email.php b/civicrm/CRM/Core/BAO/Email.php
index 5341997ecb..1261608d23 100644
--- a/civicrm/CRM/Core/BAO/Email.php
+++ b/civicrm/CRM/Core/BAO/Email.php
@@ -20,7 +20,7 @@ use Civi\Api4\Email;
 /**
  * This class contains functions for email handling.
  */
-class CRM_Core_BAO_Email extends CRM_Core_DAO_Email {
+class CRM_Core_BAO_Email extends CRM_Core_DAO_Email implements Civi\Test\HookInterface {
   use CRM_Contact_AccessTrait;
 
   /**
@@ -80,15 +80,21 @@ WHERE  contact_id = {$params['contact_id']}
       self::updateContactName($contactId, $address);
     }
 
-    if ($email->is_primary) {
-      // update the UF user email if that has changed
-      CRM_Core_BAO_UFMatch::updateUFName($email->contact_id);
-    }
-
     CRM_Utils_Hook::post($hook, 'Email', $email->id, $email);
     return $email;
   }
 
+  /**
+   * Event fired after modifying an Email.
+   * @param \Civi\Core\Event\PostEvent $event
+   */
+  public static function self_hook_civicrm_post(\Civi\Core\Event\PostEvent $event) {
+    if ($event->action !== 'delete' && !empty($event->object->is_primary) && !empty($event->object->contact_id)) {
+      // update the UF user email if that has changed
+      CRM_Core_BAO_UFMatch::updateUFName($event->object->contact_id);
+    }
+  }
+
   /**
    * Takes an associative array and adds email.
    *
@@ -342,12 +348,14 @@ AND    reset_date IS NULL
   /**
    * Call common delete function.
    *
-   * @param int $id
+   * @see \CRM_Contact_BAO_Contact::on_hook_civicrm_post
    *
+   * @param int $id
+   * @deprecated
    * @return bool
    */
   public static function del($id) {
-    return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Email', $id);
+    return (bool) self::deleteRecord(['id' => $id]);
   }
 
   /**
diff --git a/civicrm/CRM/Core/BAO/File.php b/civicrm/CRM/Core/BAO/File.php
index c2de586197..a420f7ac2b 100644
--- a/civicrm/CRM/Core/BAO/File.php
+++ b/civicrm/CRM/Core/BAO/File.php
@@ -570,8 +570,8 @@ AND       CEF.entity_id    = %2";
 
         CRM_Utils_File::formatFile($formValues, $attachName, $extraParams);
 
-        // set the formatted attachment attributes to $params, later used by
-        // CRM_Activity_BAO_Activity::sendEmail(...) to send mail with desired attachments
+        // set the formatted attachment attributes to $params, later used
+        // to send mail with desired attachments
         if (!empty($formValues[$attachName])) {
           $params[$attachName] = $formValues[$attachName];
         }
diff --git a/civicrm/CRM/Core/BAO/IM.php b/civicrm/CRM/Core/BAO/IM.php
index 12fc6238d4..a26e6c4ea3 100644
--- a/civicrm/CRM/Core/BAO/IM.php
+++ b/civicrm/CRM/Core/BAO/IM.php
@@ -158,12 +158,14 @@ ORDER BY cim.is_primary DESC, im_id ASC ";
   /**
    * Call common delete function.
    *
-   * @param int $id
+   * @see \CRM_Contact_BAO_Contact::on_hook_civicrm_post
    *
+   * @param int $id
+   * @deprecated
    * @return bool
    */
   public static function del($id) {
-    return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('IM', $id);
+    return (bool) self::deleteRecord(['id' => $id]);
   }
 
 }
diff --git a/civicrm/CRM/Core/BAO/Mapping.php b/civicrm/CRM/Core/BAO/Mapping.php
index d026cf8df7..d8358649bb 100644
--- a/civicrm/CRM/Core/BAO/Mapping.php
+++ b/civicrm/CRM/Core/BAO/Mapping.php
@@ -48,24 +48,12 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
    * Delete the mapping.
    *
    * @param int $id
-   *   Mapping id.
    *
+   * @deprecated
    * @return bool
    */
   public static function del($id) {
-    // delete from mapping_field table
-    $mappingField = new CRM_Core_DAO_MappingField();
-    $mappingField->mapping_id = $id;
-    $mappingField->delete();
-
-    // delete from mapping table
-    $mapping = new CRM_Core_DAO_Mapping();
-    $mapping->id = $id;
-    if ($mapping->find(TRUE)) {
-      $result = $mapping->delete();
-      return $result;
-    }
-    return FALSE;
+    return (bool) static::deleteRecord(['id' => $id]);
   }
 
   /**
@@ -1063,7 +1051,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
           // CRM-19081 Fix legacy StateProvince Field Values.
           // These derive from smart groups created using search builder under older
           // CiviCRM versions.
-          if (!is_numeric($value) && $fldName == 'state_province') {
+          if ($fldName == 'state_province' && !is_numeric($value) && !is_array($value)) {
             $value = CRM_Core_PseudoConstant::getKey('CRM_Core_BAO_Address', 'state_province_id', $value);
           }
 
diff --git a/civicrm/CRM/Core/BAO/MessageTemplate.php b/civicrm/CRM/Core/BAO/MessageTemplate.php
index 6d9aced734..7d7d239f13 100644
--- a/civicrm/CRM/Core/BAO/MessageTemplate.php
+++ b/civicrm/CRM/Core/BAO/MessageTemplate.php
@@ -15,6 +15,7 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Email;
 use Civi\Api4\MessageTemplate;
 use Civi\WorkflowMessage\WorkflowMessage;
 
@@ -110,7 +111,10 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
     }
 
     // The workflow_id and workflow_name should be sync'd. But what mix of inputs do we have to work with?
-    switch ((empty($params['workflow_id']) ? '' : 'id') . (empty($params['workflow_name']) ? '' : 'name')) {
+    $empty = function ($key) use (&$params) {
+      return empty($params[$key]) || $params[$key] === 'null';
+    };
+    switch (($empty('workflow_id') ? '' : 'id') . ($empty('workflow_name') ? '' : 'name')) {
       case 'id':
         $params['workflow_name'] = array_search($params['workflow_id'], self::getWorkflowNameIdMap());
         break;
@@ -212,127 +216,6 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
     return $msgTpls;
   }
 
-  /**
-   * @param int $contactId
-   * @param $email
-   * @param int $messageTemplateID
-   * @param $from
-   *
-   * @return bool|NULL
-   * @throws \CRM_Core_Exception
-   */
-  public static function sendReminder($contactId, $email, $messageTemplateID, $from) {
-    CRM_Core_Error::deprecatedWarning('CRM_Core_BAO_MessageTemplate::sendReminder is deprecated and will be removed in a future version of CiviCRM');
-
-    $messageTemplates = new CRM_Core_DAO_MessageTemplate();
-    $messageTemplates->id = $messageTemplateID;
-
-    $domain = CRM_Core_BAO_Domain::getDomain();
-    $result = NULL;
-    $hookTokens = [];
-
-    if ($messageTemplates->find(TRUE)) {
-      $body_text = $messageTemplates->msg_text;
-      $body_html = $messageTemplates->msg_html;
-      $body_subject = $messageTemplates->msg_subject;
-      if (!$body_text) {
-        $body_text = CRM_Utils_String::htmlToText($body_html);
-      }
-
-      $params = [['contact_id', '=', $contactId, 0, 0]];
-      [$contact] = CRM_Contact_BAO_Query::apiQuery($params);
-
-      //CRM-4524
-      $contact = reset($contact);
-
-      if (!$contact || is_a($contact, 'CRM_Core_Error')) {
-        return NULL;
-      }
-
-      //CRM-5734
-
-      // get tokens to be replaced
-      $tokens = array_merge(CRM_Utils_Token::getTokens($body_text),
-        CRM_Utils_Token::getTokens($body_html),
-        CRM_Utils_Token::getTokens($body_subject));
-
-      // get replacement text for these tokens
-      $returnProperties = ["preferred_mail_format" => 1];
-      if (isset($tokens['contact'])) {
-        foreach ($tokens['contact'] as $key => $value) {
-          $returnProperties[$value] = 1;
-        }
-      }
-      [$details] = CRM_Utils_Token::getTokenDetails([$contactId],
-        $returnProperties,
-        NULL, NULL, FALSE,
-        $tokens,
-        'CRM_Core_BAO_MessageTemplate');
-      $contact = reset($details);
-
-      // call token hook
-      $hookTokens = [];
-      CRM_Utils_Hook::tokens($hookTokens);
-      $categories = array_keys($hookTokens);
-
-      // do replacements in text and html body
-      $type = ['html', 'text'];
-      foreach ($type as $key => $value) {
-        $bodyType = "body_{$value}";
-        if ($$bodyType) {
-          CRM_Utils_Token::replaceGreetingTokens($$bodyType, NULL, $contact['contact_id']);
-          $$bodyType = CRM_Utils_Token::replaceDomainTokens($$bodyType, $domain, TRUE, $tokens, TRUE);
-          $$bodyType = CRM_Utils_Token::replaceContactTokens($$bodyType, $contact, FALSE, $tokens, FALSE, TRUE);
-          $$bodyType = CRM_Utils_Token::replaceComponentTokens($$bodyType, $contact, $tokens, TRUE);
-          $$bodyType = CRM_Utils_Token::replaceHookTokens($$bodyType, $contact, $categories, TRUE);
-        }
-      }
-      $html = $body_html;
-      $text = $body_text;
-
-      $smarty = CRM_Core_Smarty::singleton();
-      foreach ([
-        'text',
-        'html',
-      ] as $elem) {
-        $$elem = $smarty->fetch("string:{$$elem}");
-      }
-
-      // do replacements in message subject
-      $messageSubject = CRM_Utils_Token::replaceContactTokens($body_subject, $contact, FALSE, $tokens);
-      $messageSubject = CRM_Utils_Token::replaceDomainTokens($messageSubject, $domain, TRUE, $tokens);
-      $messageSubject = CRM_Utils_Token::replaceComponentTokens($messageSubject, $contact, $tokens, TRUE);
-      $messageSubject = CRM_Utils_Token::replaceHookTokens($messageSubject, $contact, $categories, TRUE);
-
-      $messageSubject = $smarty->fetch("string:{$messageSubject}");
-
-      // set up the parameters for CRM_Utils_Mail::send
-      $mailParams = [
-        'groupName' => 'Scheduled Reminder Sender',
-        'from' => $from,
-        'toName' => $contact['display_name'],
-        'toEmail' => $email,
-        'subject' => $messageSubject,
-      ];
-      if (!$html || $contact['preferred_mail_format'] == 'Text' ||
-        $contact['preferred_mail_format'] == 'Both'
-      ) {
-        // render the &amp; entities in text mode, so that the links work
-        $mailParams['text'] = str_replace('&amp;', '&', $text);
-      }
-      if ($html && ($contact['preferred_mail_format'] == 'HTML' ||
-          $contact['preferred_mail_format'] == 'Both'
-        )
-      ) {
-        $mailParams['html'] = $html;
-      }
-
-      $result = CRM_Utils_Mail::send($mailParams);
-    }
-
-    return $result;
-  }
-
   /**
    * Revert a message template to its default subject+text+HTML state.
    *
@@ -350,7 +233,7 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
     }
 
     $orig = new CRM_Core_BAO_MessageTemplate();
-    $orig->workflow_id = $diverted->workflow_id;
+    $orig->workflow_name = $diverted->workflow_name;
     $orig->is_reserved = 1;
     $orig->find(1);
 
@@ -382,32 +265,22 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
    * @see sendTemplate()
    */
   public static function renderTemplate($params) {
-    $forbidden = ['from', 'toName', 'toEmail', 'cc', 'bcc', 'replyTo'];
-    $intersect = array_intersect($forbidden, array_keys($params));
-    if (!empty($intersect)) {
-      throw new \CRM_Core_Exception(sprintf("renderTemplate() received forbidden fields (%s)",
-        implode(',', $intersect)));
-    }
-
-    $mailContent = [];
-    // sendTemplate has had an obscure feature - if you omit `toEmail`, then it merely renders.
-    // At some point, we may want to invert the relation between renderTemplate/sendTemplate, but for now this is a smaller patch.
-    [$sent, $mailContent['subject'], $mailContent['text'], $mailContent['html']] = static::sendTemplate($params);
-    return $mailContent;
+    [$mailContent, $params] = self::renderTemplateRaw($params);
+    return CRM_Utils_Array::subset($mailContent, ['subject', 'text', 'html']);
   }
 
   /**
-   * Send an email from the specified template based on an array of params.
+   * Render a message template.
    *
    * @param array $params
-   *   A string-keyed array of function params, see function body for details.
-   *
+   *   Mixed render parameters. See sendTemplate() for more details.
    * @return array
-   *   Array of four parameters: a boolean whether the email was sent, and the subject, text and HTML templates
-   * @throws \CRM_Core_Exception
+   *   Tuple of [$mailContent, $updatedParams].
    * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   * @see sendTemplate()
    */
-  public static function sendTemplate($params) {
+  protected static function renderTemplateRaw($params) {
     $modelDefaults = [
       // instance of WorkflowMessageInterface, containing a list of data to provide to the message-template
       'model' => NULL,
@@ -454,52 +327,78 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
       'PDFFilename' => NULL,
     ];
 
+    // Some params have been deprecated/renamed. Synchronize old<=>new params. We periodically resync after exchanging data with other parties.
+    $sync = function () use (&$params, $modelDefaults, $viewDefaults) {
+      CRM_Utils_Array::pathSync($params, ['workflow'], ['valueName']);
+      CRM_Utils_Array::pathSync($params, ['tokenContext', 'contactId'], ['contactId']);
+      CRM_Utils_Array::pathSync($params, ['tokenContext', 'smarty'], ['disableSmarty'], function ($v, bool $isCanon) {
+        return !$v;
+      });
+
+      // Core#644 - handle Email ID passed as "From".
+      if (isset($params['from'])) {
+        $params['from'] = \CRM_Utils_Mail::formatFromAddress($params['from']);
+      }
+    };
+    $sync();
+
     // Allow WorkflowMessage to run any filters/mappings/cleanups.
-    $model = $params['model'] ?? WorkflowMessage::create($params['valueName'] ?? 'UNKNOWN');
+    $model = $params['model'] ?? WorkflowMessage::create($params['workflow'] ?? 'UNKNOWN');
     $params = WorkflowMessage::exportAll(WorkflowMessage::importAll($model, $params));
     unset($params['model']);
     // Subsequent hooks use $params. Retaining the $params['model'] might be nice - but don't do it unless you figure out how to ensure data-consistency (eg $params['tplParams'] <=> $params['model']).
     // If you want to expose the model via hook, consider interjecting a new Hook::alterWorkflowMessage($model) between `importAll()` and `exportAll()`.
 
+    $sync();
     $params = array_merge($modelDefaults, $viewDefaults, $envelopeDefaults, $params);
 
     CRM_Utils_Hook::alterMailParams($params, 'messageTemplate');
-    if (!is_int($params['messageTemplateID']) && !is_null($params['messageTemplateID'])) {
-      CRM_Core_Error::deprecatedWarning('message template id should be an integer');
-      $params['messageTemplateID'] = (int) $params['messageTemplateID'];
-    }
     $mailContent = self::loadTemplate((string) $params['valueName'], $params['isTest'], $params['messageTemplateID'] ?? NULL, $params['groupName'] ?? '', $params['messageTemplate'], $params['subject'] ?? NULL);
 
-    $params['tokenContext'] = array_merge([
-      'smarty' => (bool) !$params['disableSmarty'],
-      'contactId' => $params['contactId'],
-    ], $params['tokenContext']);
+    $sync();
     $rendered = CRM_Core_TokenSmarty::render(CRM_Utils_Array::subset($mailContent, ['text', 'html', 'subject']), $params['tokenContext'], $params['tplParams']);
     if (isset($rendered['subject'])) {
       $rendered['subject'] = trim(preg_replace('/[\r\n]+/', ' ', $rendered['subject']));
     }
     $nullSet = ['subject' => NULL, 'text' => NULL, 'html' => NULL];
     $mailContent = array_merge($nullSet, $mailContent, $rendered);
+    return [$mailContent, $params];
+  }
 
-    // send the template, honouring the target user’s preferences (if any)
-    $sent = FALSE;
+  /**
+   * Send an email from the specified template based on an array of params.
+   *
+   * @param array $params
+   *   A string-keyed array of function params, see function body for details.
+   *
+   * @return array
+   *   Array of four parameters: a boolean whether the email was sent, and the subject, text and HTML templates
+   * @throws \CRM_Core_Exception
+   * @throws \API_Exception
+   */
+  public static function sendTemplate($params) {
+    [$mailContent, $params] = self::renderTemplateRaw($params);
 
     // create the params array
     $params['subject'] = $mailContent['subject'];
     $params['text'] = $mailContent['text'];
     $params['html'] = $mailContent['html'];
 
-    if ($params['toEmail']) {
-      $contactParams = [['email', 'LIKE', $params['toEmail'], 0, 1]];
-      [$contact] = CRM_Contact_BAO_Query::apiQuery($contactParams);
-
-      $prefs = array_pop($contact);
-
-      if (isset($prefs['preferred_mail_format']) and $prefs['preferred_mail_format'] === 'HTML') {
+    // send the template, honouring the target user’s preferences (if any)
+    $sent = FALSE;
+    if (!empty($params['toEmail'])) {
+      // @todo - consider whether we really should be loading
+      // this based on 'the first email in the db that matches'.
+      // when we likely have the contact id. OTOH people probably barely
+      // use preferredMailFormat these days - the good fight against html
+      // emails was lost a decade ago...
+      $preferredMailFormatArray = Email::get(FALSE)->addWhere('email', '=', $params['toEmail'])->addSelect('contact_id.preferred_mail_format')->execute()->first();
+      $preferredMailFormat = $preferredMailFormatArray['contact_id.preferred_mail_format'] ?? 'Both';
+
+      if ($preferredMailFormat === 'HTML') {
         $params['text'] = NULL;
       }
-
-      if (isset($prefs['preferred_mail_format']) and $prefs['preferred_mail_format'] === 'Text') {
+      if ($preferredMailFormat === 'Text') {
         $params['html'] = NULL;
       }
 
diff --git a/civicrm/CRM/Core/BAO/OpenID.php b/civicrm/CRM/Core/BAO/OpenID.php
index 33a7c269fc..2b16d2c702 100644
--- a/civicrm/CRM/Core/BAO/OpenID.php
+++ b/civicrm/CRM/Core/BAO/OpenID.php
@@ -121,12 +121,14 @@ ORDER BY
   /**
    * Call common delete function.
    *
-   * @param int $id
+   * @see \CRM_Contact_BAO_Contact::on_hook_civicrm_post
    *
+   * @param int $id
+   * @deprecated
    * @return bool
    */
   public static function del($id) {
-    return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('OpenID', $id);
+    return (bool) self::deleteRecord(['id' => $id]);
   }
 
 }
diff --git a/civicrm/CRM/Core/BAO/PdfFormat.php b/civicrm/CRM/Core/BAO/PdfFormat.php
index 33783d7306..a082ace7af 100644
--- a/civicrm/CRM/Core/BAO/PdfFormat.php
+++ b/civicrm/CRM/Core/BAO/PdfFormat.php
@@ -263,7 +263,7 @@ class CRM_Core_BAO_PdfFormat extends CRM_Core_DAO_OptionValue {
    *
    * @return value
    */
-  public static function getValue($field, &$values, $default = NULL) {
+  public static function getValue($field, $values, $default = NULL) {
     if (array_key_exists($field, self::$optionValueFields)) {
       switch (self::$optionValueFields[$field]['type']) {
         case CRM_Utils_Type::T_INT:
@@ -328,7 +328,7 @@ class CRM_Core_BAO_PdfFormat extends CRM_Core_DAO_OptionValue {
    *   Id of the database record (null = new record).
    * @throws CRM_Core_Exception
    */
-  public function savePdfFormat(&$values, $id = NULL) {
+  public function savePdfFormat($values, $id = NULL) {
     // get the Option Group ID for PDF Page Formats (create one if it doesn't exist)
     $group_id = self::_getGid();
 
diff --git a/civicrm/CRM/Core/BAO/Phone.php b/civicrm/CRM/Core/BAO/Phone.php
index 260b2e6973..6f9da9eccb 100644
--- a/civicrm/CRM/Core/BAO/Phone.php
+++ b/civicrm/CRM/Core/BAO/Phone.php
@@ -234,12 +234,14 @@ ORDER BY ph.is_primary DESC, phone_id ASC ";
   /**
    * Call common delete function.
    *
-   * @param int $id
+   * @see \CRM_Contact_BAO_Contact::on_hook_civicrm_post
    *
+   * @param int $id
+   * @deprecated
    * @return bool
    */
   public static function del($id) {
-    return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Phone', $id);
+    return (bool) self::deleteRecord(['id' => $id]);
   }
 
 }
diff --git a/civicrm/CRM/Core/BAO/SchemaHandler.php b/civicrm/CRM/Core/BAO/SchemaHandler.php
index 2f41ae364c..1686e79889 100644
--- a/civicrm/CRM/Core/BAO/SchemaHandler.php
+++ b/civicrm/CRM/Core/BAO/SchemaHandler.php
@@ -552,9 +552,7 @@ MODIFY      {$columnName} varchar( $length )
    * @return bool TRUE if FK is found
    */
   public static function checkFKExists($table_name, $constraint_name) {
-    $config = CRM_Core_Config::singleton();
-    $dsn = CRM_Utils_SQL::autoSwitchDSN($config->dsn);
-    $dbUf = DB::parseDSN($dsn);
+    $dao = new CRM_Core_DAO();
     $query = "
       SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
       WHERE TABLE_SCHEMA = %1
@@ -563,7 +561,7 @@ MODIFY      {$columnName} varchar( $length )
       AND CONSTRAINT_TYPE = 'FOREIGN KEY'
     ";
     $params = [
-      1 => [$dbUf['database'], 'String'],
+      1 => [$dao->_database, 'String'],
       2 => [$table_name, 'String'],
       3 => [$constraint_name, 'String'],
     ];
diff --git a/civicrm/CRM/Core/BAO/Setting.php b/civicrm/CRM/Core/BAO/Setting.php
index 2329a21acb..e4c14859e0 100644
--- a/civicrm/CRM/Core/BAO/Setting.php
+++ b/civicrm/CRM/Core/BAO/Setting.php
@@ -75,13 +75,13 @@ class CRM_Core_BAO_Setting extends CRM_Core_DAO_Setting {
     $manager = \Civi::service('settings_manager');
     $settings = ($contactID === NULL) ? $manager->getBagByDomain($domainID) : $manager->getBagByContact($domainID, $contactID);
     if ($name === NULL) {
-      CRM_Core_Error::debug_log_message("Deprecated: Group='$group'. Name should be provided.\n");
+      CRM_Core_Error::deprecatedWarning("Deprecated: Group='$group'. Name should be provided.\n");
     }
     if ($componentID !== NULL) {
-      CRM_Core_Error::debug_log_message("Deprecated: Group='$group'. Name='$name'. Component should be omitted\n");
+      CRM_Core_Error::deprecatedWarning("Deprecated: Group='$group'. Name='$name'. Component should be omitted\n");
     }
     if ($defaultValue !== NULL) {
-      CRM_Core_Error::debug_log_message("Deprecated: Group='$group'. Name='$name'. Defaults should come from metadata\n");
+      CRM_Core_Error::deprecatedWarning("Deprecated: Group='$group'. Name='$name'. Defaults should come from metadata\n");
     }
     return $name ? $settings->get($name) : $settings->all();
   }
diff --git a/civicrm/CRM/Core/BAO/Tag.php b/civicrm/CRM/Core/BAO/Tag.php
index 17c0bc47cc..8a75503da1 100644
--- a/civicrm/CRM/Core/BAO/Tag.php
+++ b/civicrm/CRM/Core/BAO/Tag.php
@@ -349,31 +349,11 @@ class CRM_Core_BAO_Tag extends CRM_Core_DAO_Tag {
    * Delete the tag.
    *
    * @param int $id
-   *   Tag id.
-   *
+   * @deprecated
    * @return bool
    */
   public static function del($id) {
-    // since this is a destructive operation, lets make sure
-    // id is a positive number
-    CRM_Utils_Type::validate($id, 'Positive');
-
-    // delete all crm_entity_tag records with the selected tag id
-    $entityTag = new CRM_Core_DAO_EntityTag();
-    $entityTag->tag_id = $id;
-    $entityTag->delete();
-
-    // delete from tag table
-    $tag = new CRM_Core_DAO_Tag();
-    $tag->id = $id;
-
-    CRM_Utils_Hook::pre('delete', 'Tag', $id, $tag);
-
-    if ($tag->delete()) {
-      CRM_Utils_Hook::post('delete', 'Tag', $id, $tag);
-      return TRUE;
-    }
-    return FALSE;
+    return (bool) static::deleteRecord(['id' => $id]);
   }
 
   /**
diff --git a/civicrm/CRM/Core/BAO/UFMatch.php b/civicrm/CRM/Core/BAO/UFMatch.php
index 9d0a58bbac..cc007958a1 100644
--- a/civicrm/CRM/Core/BAO/UFMatch.php
+++ b/civicrm/CRM/Core/BAO/UFMatch.php
@@ -624,13 +624,12 @@ AND    domain_id    = %4
       return [];
     }
 
-    static $ufValues;
-    if ($ufID && !isset($ufValues[$ufID])) {
+    if (!isset(Civi::$statics[__CLASS__][__FUNCTION__][$ufID])) {
       $ufmatch = new CRM_Core_DAO_UFMatch();
       $ufmatch->uf_id = $ufID;
       $ufmatch->domain_id = CRM_Core_Config::domainID();
       if ($ufmatch->find(TRUE)) {
-        $ufValues[$ufID] = [
+        Civi::$statics[__CLASS__][__FUNCTION__][$ufID] = [
           'uf_id' => $ufmatch->uf_id,
           'uf_name' => $ufmatch->uf_name,
           'contact_id' => $ufmatch->contact_id,
@@ -638,7 +637,7 @@ AND    domain_id    = %4
         ];
       }
     }
-    return $ufValues[$ufID];
+    return Civi::$statics[__CLASS__][__FUNCTION__][$ufID] ?? NULL;
   }
 
   /**
diff --git a/civicrm/CRM/Core/ClassLoader.php b/civicrm/CRM/Core/ClassLoader.php
index a8479481d4..688470b9d9 100644
--- a/civicrm/CRM/Core/ClassLoader.php
+++ b/civicrm/CRM/Core/ClassLoader.php
@@ -133,8 +133,6 @@ class CRM_Core_ClassLoader {
       '.',
       $civicrm_base_path,
       $packages_path,
-      // dev/core#2812 Ensure that the database upgrade script can run if dataprocessor extension is enabled. It relies on the legacy custom searches which have been moved into this extension
-      implode(DIRECTORY_SEPARATOR, [$civicrm_base_path, 'ext', 'legacycustomsearches']),
     ];
     $include_paths = implode(PATH_SEPARATOR, $include_paths);
     set_include_path($include_paths . PATH_SEPARATOR . get_include_path());
diff --git a/civicrm/CRM/Core/DAO.php b/civicrm/CRM/Core/DAO.php
index 8b903ec244..2a375fbca1 100644
--- a/civicrm/CRM/Core/DAO.php
+++ b/civicrm/CRM/Core/DAO.php
@@ -932,7 +932,7 @@ class CRM_Core_DAO extends DB_DataObject {
    * @return static[]
    * @throws CRM_Core_Exception
    */
-  public static function writeRecords(array $records) {
+  public static function writeRecords(array $records): array {
     $results = [];
     foreach ($records as $record) {
       $results[] = static::writeRecord($record);
@@ -957,13 +957,19 @@ class CRM_Core_DAO extends DB_DataObject {
     if (empty($record['id'])) {
       throw new CRM_Core_Exception("Cannot delete {$entityName} with no id.");
     }
+    CRM_Utils_Type::validate($record['id'], 'Positive');
 
     CRM_Utils_Hook::pre('delete', $entityName, $record['id'], $record);
     $instance = new $className();
     $instance->id = $record['id'];
-    if (!$instance->delete()) {
+    // Load complete object for the sake of hook_civicrm_post, below
+    $instance->find(TRUE);
+    if (!$instance || !$instance->delete()) {
       throw new CRM_Core_Exception("Could not delete {$entityName} id {$record['id']}");
     }
+    // For other operations this hook is passed an incomplete object and hook listeners can load if needed.
+    // But that's not possible with delete because it's gone from the database by the time this hook is called.
+    // So in this case the object has been pre-loaded so hook listeners have access to the complete record.
     CRM_Utils_Hook::post('delete', $entityName, $record['id'], $instance);
 
     return $instance;
diff --git a/civicrm/CRM/Core/DAO/MappingField.php b/civicrm/CRM/Core/DAO/MappingField.php
index 9c97623102..833fdff45f 100644
--- a/civicrm/CRM/Core/DAO/MappingField.php
+++ b/civicrm/CRM/Core/DAO/MappingField.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/MappingField.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d2ce640ccb1f30190097cced450038e0)
+ * (GenCodeChecksum:4333a20d925fb437b4764219e31ee017)
  */
 
 /**
diff --git a/civicrm/CRM/Core/DAO/MessageTemplate.php b/civicrm/CRM/Core/DAO/MessageTemplate.php
index a84d7eed54..e44de41b2f 100644
--- a/civicrm/CRM/Core/DAO/MessageTemplate.php
+++ b/civicrm/CRM/Core/DAO/MessageTemplate.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/MessageTemplate.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:10bf11ca59e77fe7be9dfd775e5d5cd0)
+ * (GenCodeChecksum:8e8480f41073e41a72f3d600e5776d0d)
  */
 
 /**
@@ -265,6 +265,7 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'title' => ts('Message Template Is Reserved?'),
           'description' => ts('is this the reserved message template which we ship for the workflow referenced by workflow_id?'),
           'where' => 'civicrm_msg_template.is_reserved',
+          'default' => '0',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
           'bao' => 'CRM_Core_BAO_MessageTemplate',
diff --git a/civicrm/CRM/Core/DomainTokens.php b/civicrm/CRM/Core/DomainTokens.php
new file mode 100644
index 0000000000..fe7384270b
--- /dev/null
+++ b/civicrm/CRM/Core/DomainTokens.php
@@ -0,0 +1,115 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+use Civi\Token\AbstractTokenSubscriber;
+use Civi\Token\TokenRow;
+
+/**
+ * Class CRM_Case_Tokens
+ *
+ * Generate "case.*" tokens.
+ */
+class CRM_Core_DomainTokens extends AbstractTokenSubscriber {
+  /**
+   * @var string
+   *   Token prefix
+   */
+  public $entity = 'domain';
+
+  /**
+   * @var array
+   *   List of tokens provided by this class
+   *   Array(string $fieldName => string $label).
+   */
+  public $tokenNames;
+
+  /**
+   * Class constructor.
+   */
+  public function __construct() {
+    parent::__construct($this->entity, $this->getDomainTokens());
+  }
+
+  public function getDomainTokens(): array {
+    return [
+      'name' => ts('Domain name'),
+      'address' => ts('Domain (organization) address'),
+      'phone' => ts('Domain (organization) phone'),
+      'email' => ts('Domain (organization) email'),
+      'id' => ts('Domain ID'),
+      'description' => ts('Domain Description'),
+      'now' => ts('Current time/date'),
+    ];
+  }
+
+  /**
+   * @inheritDoc
+   * @throws \CRM_Core_Exception
+   */
+  public function evaluateToken(TokenRow $row, $entity, $field, $prefetch = NULL): void {
+    if ($field === 'now') {
+      $nowObj = (new \DateTime())->setTimestamp(\CRM_Utils_Time::time());
+      $row->format('text/html')->tokens($entity, $field, $nowObj);
+      return;
+    }
+    $row->format('text/html')->tokens($entity, $field, self::getDomainTokenValues()[$field]);
+    $row->format('text/plain')->tokens($entity, $field, self::getDomainTokenValues(NULL, FALSE)[$field]);
+  }
+
+  /**
+   * Get the tokens available for the domain.
+   *
+   * This function will be made protected soon...
+   *
+   * @param int|null $domainID
+   * @param bool $html
+   *
+   * @return array
+   * @throws \CRM_Core_Exception
+   * @internal
+   *
+   */
+  public static function getDomainTokenValues(?int $domainID = NULL, bool $html = TRUE): array {
+    if (!$domainID) {
+      $domainID = CRM_Core_Config::domainID();
+    }
+    $cacheKey = __CLASS__ . 'domain_tokens' . $html . '_' . $domainID . '_' . CRM_Core_I18n::getLocale();
+    if (!Civi::cache('metadata')->has($cacheKey)) {
+      if (CRM_Core_Config::domainID() === $domainID) {
+        $domain = CRM_Core_BAO_Domain::getDomain();
+      }
+      else {
+        $domain = new CRM_Core_BAO_Domain();
+        $domain->find(TRUE);
+      }
+      $tokens = [
+        'name' => $domain->name,
+        'id' => $domain->id,
+        'description' => $domain->description,
+      ];
+      $loc = $domain->getLocationValues();
+      if ($html) {
+        $tokens['address'] = str_replace("\n", '<br />', ($loc['address'][1]['display'] ?? ''));
+      }
+      else {
+        $tokens['address'] = $loc['address'][1]['display_text'] ?? '';
+      }
+      $phone = reset($loc['phone']);
+      $email = reset($loc['email']);
+      $tokens['phone'] = $phone['phone'] ?? '';
+      $tokens['email'] = $email['email'] ?? '';
+      Civi::cache('metadata')->set($cacheKey, $tokens);
+    }
+    return Civi::cache('metadata')->get($cacheKey);
+  }
+
+}
diff --git a/civicrm/CRM/Core/EntityReference.php b/civicrm/CRM/Core/EntityReference.php
deleted file mode 100644
index 0d3a48ed6b..0000000000
--- a/civicrm/CRM/Core/EntityReference.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * This is included for backward compatibility with DAO's generated before 4.5.
- *
- * @deprecated
- */
-class CRM_Core_EntityReference extends CRM_Core_Reference_Basic {
-}
diff --git a/civicrm/CRM/Core/EntityTokens.php b/civicrm/CRM/Core/EntityTokens.php
index 9a9497ebfa..7f7b669959 100644
--- a/civicrm/CRM/Core/EntityTokens.php
+++ b/civicrm/CRM/Core/EntityTokens.php
@@ -11,9 +11,12 @@
  */
 
 use Civi\Token\AbstractTokenSubscriber;
+use Civi\Token\Event\TokenRegisterEvent;
+use Civi\Token\Event\TokenValueEvent;
 use Civi\Token\TokenRow;
 use Civi\ActionSchedule\Event\MailingQueryEvent;
 use Civi\Token\TokenProcessor;
+use Brick\Money\Money;
 
 /**
  * Class CRM_Core_EntityTokens
@@ -27,11 +30,70 @@ use Civi\Token\TokenProcessor;
  */
 class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
 
+  /**
+   * Metadata about all tokens.
+   *
+   * @var array
+   */
+  protected $tokensMetadata = [];
   /**
    * @var array
    */
   protected $prefetch = [];
 
+  /**
+   * Should permissions be checked when loading tokens.
+   *
+   * @var bool
+   */
+  protected $checkPermissions = FALSE;
+
+  /**
+   * Register the declared tokens.
+   *
+   * @param \Civi\Token\Event\TokenRegisterEvent $e
+   *   The registration event. Add new tokens using register().
+   */
+  public function registerTokens(TokenRegisterEvent $e) {
+    if (!$this->checkActive($e->getTokenProcessor())) {
+      return;
+    }
+    foreach ($this->getTokenMetadata() as $tokenName => $field) {
+      if ($field['audience'] === 'user') {
+        $e->register([
+          'entity' => $this->entity,
+          'field' => $tokenName,
+          'label' => $field['title'],
+        ]);
+      }
+    }
+  }
+
+  /**
+   * Get the metadata about the available tokens
+   *
+   * @return array
+   */
+  protected function getTokenMetadata(): array {
+    if (empty($this->tokensMetadata)) {
+      $cacheKey = $this->getCacheKey();
+      if (Civi::cache('metadata')->has($cacheKey)) {
+        $this->tokensMetadata = Civi::cache('metadata')->get($cacheKey);
+      }
+      else {
+        $this->tokensMetadata = $this->getBespokeTokens();
+        foreach ($this->getFieldMetadata() as $field) {
+          $this->addFieldToTokenMetadata($field, $this->getExposedFields());
+        }
+        foreach ($this->getHiddenTokens() as $name) {
+          $this->tokensMetadata[$name]['audience'] = 'hidden';
+        }
+        Civi::cache('metadata')->set($cacheKey, $this->tokensMetadata);
+      }
+    }
+    return $this->tokensMetadata;
+  }
+
   /**
    * @inheritDoc
    * @throws \CRM_Core_Exception
@@ -39,24 +101,49 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
   public function evaluateToken(TokenRow $row, $entity, $field, $prefetch = NULL) {
     $this->prefetch = (array) $prefetch;
     $fieldValue = $this->getFieldValue($row, $field);
+    if (is_array($fieldValue)) {
+      // eg. role_id for participant would be an array here.
+      $fieldValue = implode(',', $fieldValue);
+    }
 
     if ($this->isPseudoField($field)) {
+      if (!empty($fieldValue)) {
+        // If it's set here it has already been loaded in pre-fetch.
+        return $row->format('text/plain')->tokens($entity, $field, (string) $fieldValue);
+      }
+      // Once prefetch is fully standardised we can remove this - as long
+      // as tests pass we should be fine as tests cover this.
       $split = explode(':', $field);
       return $row->tokens($entity, $field, $this->getPseudoValue($split[0], $split[1], $this->getFieldValue($row, $split[0])));
     }
+    if ($this->isCustomField($field)) {
+      $prefetchedValue = $this->getCustomFieldValue($this->getFieldValue($row, 'id'), $field);
+      if ($prefetchedValue) {
+        return $row->format('text/html')->tokens($entity, $field, $prefetchedValue);
+      }
+      return $row->customToken($entity, \CRM_Core_BAO_CustomField::getKeyID($field), $this->getFieldValue($row, 'id'));
+    }
     if ($this->isMoneyField($field)) {
+      $currency = $this->getCurrency($row);
+      if (!$currency) {
+        // too hard basket for now - just do what we always did.
+        return $row->format('text/plain')->tokens($entity, $field,
+          \CRM_Utils_Money::format($fieldValue, $currency));
+      }
       return $row->format('text/plain')->tokens($entity, $field,
-        \CRM_Utils_Money::format($fieldValue, $this->getCurrency($row)));
+        Money::of($fieldValue, $currency));
+
     }
     if ($this->isDateField($field)) {
-      return $row->format('text/plain')->tokens($entity, $field, \CRM_Utils_Date::customFormat($fieldValue));
-    }
-    if ($this->isCustomField($field)) {
-      $row->customToken($entity, \CRM_Core_BAO_CustomField::getKeyID($field), $this->getFieldValue($row, 'id'));
-    }
-    else {
-      $row->format('text/plain')->tokens($entity, $field, (string) $fieldValue);
+      try {
+        return $row->format('text/plain')
+          ->tokens($entity, $field, ($fieldValue ? new DateTime($fieldValue) : $fieldValue));
+      }
+      catch (Exception $e) {
+        Civi::log()->info('invalid date token');
+      }
     }
+    $row->format('text/plain')->tokens($entity, $field, (string) $fieldValue);
   }
 
   /**
@@ -98,29 +185,27 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
     return CRM_Core_DAO_AllCoreTables::getTableForEntityName($this->getApiEntityName());
   }
 
-  /**
-   * Get the relevant bao name.
-   */
-  public function getBAOName(): string {
-    return CRM_Core_DAO_AllCoreTables::getFullName($this->getApiEntityName());
-  }
-
   /**
    * Get an array of fields to be requested.
    *
+   * @todo this function should look up tokenMetadata that
+   * is already loaded.
+   *
    * @return string[]
    */
-  public function getReturnFields(): array {
+  protected function getReturnFields(): array {
     return array_keys($this->getBasicTokens());
   }
 
   /**
-   * Get all the tokens supported by this processor.
+   * Is the given field a boolean field.
    *
-   * @return array|string[]
+   * @param string $fieldName
+   *
+   * @return bool
    */
-  public function getAllTokens(): array {
-    return array_merge($this->getBasicTokens(), $this->getPseudoTokens(), CRM_Utils_Token::getCustomFieldTokens('Contribution'));
+  protected function isBooleanField(string $fieldName): bool {
+    return $this->getMetadataForField($fieldName)['data_type'] === 'Boolean';
   }
 
   /**
@@ -130,8 +215,8 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    *
    * @return bool
    */
-  public function isDateField(string $fieldName): bool {
-    return $this->getFieldMetadata()[$fieldName]['data_type'] === 'Timestamp';
+  protected function isDateField(string $fieldName): bool {
+    return in_array($this->getMetadataForField($fieldName)['data_type'], ['Timestamp', 'Date'], TRUE);
   }
 
   /**
@@ -141,7 +226,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    *
    * @return bool
    */
-  public function isPseudoField(string $fieldName): bool {
+  protected function isPseudoField(string $fieldName): bool {
     return strpos($fieldName, ':') !== FALSE;
   }
 
@@ -152,7 +237,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    *
    * @return bool
    */
-  public function isCustomField(string $fieldName) : bool {
+  protected function isCustomField(string $fieldName) : bool {
     return (bool) \CRM_Core_BAO_CustomField::getKeyID($fieldName);
   }
 
@@ -163,8 +248,8 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    *
    * @return bool
    */
-  public function isMoneyField(string $fieldName): bool {
-    return $this->getFieldMetadata()[$fieldName]['data_type'] === 'Money';
+  protected function isMoneyField(string $fieldName): bool {
+    return $this->getMetadataForField($fieldName)['data_type'] === 'Money';
   }
 
   /**
@@ -186,51 +271,10 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
   }
 
   /**
-   * Get pseudoTokens - it tokens that reflect the name or label of a pseudoconstant.
-   *
-   * @internal - this function will likely be made protected soon.
-   *
-   * @return array
-   */
-  public function getPseudoTokens(): array {
-    $return = [];
-    foreach (array_keys($this->getBasicTokens()) as $fieldName) {
-      if ($this->isAddPseudoTokens($fieldName)) {
-        $fieldLabel = $this->fieldMetadata[$fieldName]['input_attrs']['label'] ?? $this->fieldMetadata[$fieldName]['label'];
-        $return[$fieldName . ':label'] = $fieldLabel;
-        $return[$fieldName . ':name'] = ts('Machine name') . ': ' . $fieldLabel;
-      }
-    }
-    return $return;
-  }
-
-  /**
-   * Is this a field we should add pseudo-tokens to?
-   *
-   * Pseudo-tokens allow access to name and label fields - e.g
-   *
-   * {contribution.contribution_status_id:name} might resolve to 'Completed'
-   *
-   * @param string $fieldName
+   * Get any tokens with custom calculation.
    */
-  public function isAddPseudoTokens($fieldName): bool {
-    if ($fieldName === 'currency') {
-      // 'currency' is manually added to the skip list as an anomaly.
-      // name & label aren't that suitable for 'currency' (symbol, which
-      // possibly maps to 'abbr' would be) and we can't gather that
-      // from the metadata as yet.
-      return FALSE;
-    }
-    if ($this->getFieldMetadata()[$fieldName]['type'] === 'Custom') {
-      // If we remove this early return then we get that extra nuanced goodness
-      // and support for the more portable v4 style field names
-      // on custom fields - where labels or names can be returned.
-      // At present the gap is that the metadata for the label is not accessed
-      // and tests failed on the enotice and we don't have a clear plan about
-      // v4 style custom tokens - but medium term this IF will probably go.
-      return FALSE;
-    }
-    return (bool) ($this->getFieldMetadata()[$fieldName]['options'] || !empty($this->getFieldMetadata()[$fieldName]['suffixes']));
+  protected function getBespokeTokens(): array {
+    return [];
   }
 
   /**
@@ -245,12 +289,17 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    *
    * @internal function will likely be protected soon.
    */
-  public function getPseudoValue(string $realField, string $pseudoKey, $fieldValue): string {
+  protected function getPseudoValue(string $realField, string $pseudoKey, $fieldValue): string {
+    $bao = CRM_Core_DAO_AllCoreTables::getFullName($this->getMetadataForField($realField)['entity']);
     if ($pseudoKey === 'name') {
-      $fieldValue = (string) CRM_Core_PseudoConstant::getName($this->getBAOName(), $realField, $fieldValue);
+      $fieldValue = (string) CRM_Core_PseudoConstant::getName($bao, $realField, $fieldValue);
     }
     if ($pseudoKey === 'label') {
-      $fieldValue = (string) CRM_Core_PseudoConstant::getLabel($this->getBAOName(), $realField, $fieldValue);
+      $fieldValue = (string) CRM_Core_PseudoConstant::getLabel($bao, $realField, $fieldValue);
+    }
+    if ($pseudoKey === 'abbr' && $realField === 'state_province_id') {
+      // hack alert - currently only supported for state.
+      $fieldValue = (string) CRM_Core_PseudoConstant::stateProvinceAbbreviation($fieldValue);
     }
     return (string) $fieldValue;
   }
@@ -261,12 +310,15 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    * @return string|int
    */
   protected function getFieldValue(TokenRow $row, string $field) {
-    $actionSearchResult = $row->context['actionSearchResult'];
-    $aliasedField = $this->getEntityAlias() . $field;
-    if (isset($actionSearchResult->{$aliasedField})) {
-      return $actionSearchResult->{$aliasedField};
+    $entityName = $this->getEntityName();
+    if (isset($row->context[$entityName][$field])) {
+      return $row->context[$entityName][$field];
     }
+
     $entityID = $row->context[$this->getEntityIDField()];
+    if ($field === 'id') {
+      return $entityID;
+    }
     return $this->prefetch[$entityID][$field] ?? '';
   }
 
@@ -274,8 +326,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    * Class constructor.
    */
   public function __construct() {
-    $tokens = $this->getAllTokens();
-    parent::__construct($this->getEntityName(), $tokens);
+    parent::__construct($this->getEntityName(), []);
   }
 
   /**
@@ -301,24 +352,27 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
     if ($e->mapping->getEntity() !== $this->getExtendableTableName()) {
       return;
     }
-    foreach ($this->getReturnFields() as $token) {
-      $e->query->select('e.' . $token . ' AS ' . $this->getEntityAlias() . $token);
-    }
+    $e->query->select('e.id AS tokenContext_' . $this->getEntityIDField());
   }
 
   /**
-   * Get tokens supporting the syntax we are migrating to.
-   *
-   * In general these are tokens that were not previously supported
-   * so we can add them in the preferred way or that we have
-   * undertaken some, as yet to be written, db update.
+   * Get tokens to be suppressed from the widget.
    *
-   * See https://lab.civicrm.org/dev/core/-/issues/2650
+   * Note this is expected to be an interim function. Now we are no
+   * longer working around the parent function we can just define them once...
+   * with metadata, in a future refactor.
+   */
+  protected function getHiddenTokens(): array {
+    return [];
+  }
+
+  /**
+   * @todo remove this function & use the metadata that is loaded.
    *
    * @return string[]
    * @throws \API_Exception
    */
-  public function getBasicTokens(): array {
+  protected function getBasicTokens(): array {
     $return = [];
     foreach ($this->getExposedFields() as $fieldName) {
       // Custom fields are still added v3 style - we want to keep v4 naming 'unpoluted'
@@ -337,7 +391,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    * @return string[]
    *
    */
-  public function getExposedFields(): array {
+  protected function getExposedFields(): array {
     $return = [];
     foreach ($this->getFieldMetadata() as $field) {
       if (!in_array($field['name'], $this->getSkippedFields(), TRUE)) {
@@ -352,8 +406,11 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    *
    * @return string[]
    */
-  public function getSkippedFields(): array {
-    $fields = ['contact_id'];
+  protected function getSkippedFields(): array {
+    // tags is offered in 'case' & is one of the only fields that is
+    // 'not a real field' offered up by case - seems like an oddity
+    // we should skip at the top level for now.
+    $fields = ['tags'];
     if (!CRM_Campaign_BAO_Campaign::isCampaignEnable()) {
       $fields[] = 'campaign_id';
     }
@@ -367,11 +424,11 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
     return CRM_Core_DAO_AllCoreTables::convertEntityNameToLower($this->getApiEntityName());
   }
 
-  public function getEntityIDField() {
+  protected function getEntityIDField(): string {
     return $this->getEntityName() . 'Id';
   }
 
-  public function prefetch(\Civi\Token\Event\TokenValueEvent $e): ?array {
+  public function prefetch(TokenValueEvent $e): ?array {
     $entityIDs = $e->getTokenProcessor()->getContextValues($this->getEntityIDField());
     if (empty($entityIDs)) {
       return [];
@@ -387,7 +444,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
     return $result;
   }
 
-  public function getCurrencyFieldName() {
+  protected function getCurrencyFieldName() {
     return [];
   }
 
@@ -397,15 +454,214 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    *
    * @return string
    */
-  public function getCurrency($row): string {
+  protected function getCurrency($row): string {
     if (!empty($this->getCurrencyFieldName())) {
       return $this->getFieldValue($row, $this->getCurrencyFieldName()[0]);
     }
     return CRM_Core_Config::singleton()->defaultCurrency;
   }
 
-  public function getPrefetchFields(\Civi\Token\Event\TokenValueEvent $e): array {
-    return array_intersect($this->getActiveTokens($e), $this->getCurrencyFieldName(), array_keys($this->getAllTokens()));
+  /**
+   * Get the fields required to prefetch the entity.
+   *
+   * @param \Civi\Token\Event\TokenValueEvent $e
+   *
+   * @return array
+   * @throws \API_Exception
+   */
+  public function getPrefetchFields(TokenValueEvent $e): array {
+    $allTokens = array_keys($this->getTokenMetadata());
+    $requiredFields = array_intersect($this->getActiveTokens($e), $allTokens);
+    if (empty($requiredFields)) {
+      return [];
+    }
+    $requiredFields = array_merge($requiredFields, array_intersect($allTokens, array_merge(['id'], $this->getCurrencyFieldName())));
+    foreach ($this->getDependencies() as $field => $required) {
+      if (in_array($field, $this->getActiveTokens($e), TRUE)) {
+        foreach ((array) $required as $key) {
+          $requiredFields[] = $key;
+        }
+      }
+    }
+    return $requiredFields;
+  }
+
+  /**
+   * Get fields which need to be returned to render another token.
+   *
+   * @return array
+   */
+  protected function getDependencies(): array {
+    return [];
+  }
+
+  /**
+   * Get the apiv4 style custom field name.
+   *
+   * @param int $id
+   *
+   * @return string
+   */
+  protected function getCustomFieldName(int $id): string {
+    foreach ($this->getTokenMetadata() as $key => $field) {
+      if (($field['custom_field_id'] ?? NULL) === $id) {
+        return $key;
+      }
+    }
+  }
+
+  /**
+   * @param $entityID
+   * @param string $field eg. 'custom_1'
+   *
+   * @return array|string|void|null $mixed
+   *
+   * @throws \CRM_Core_Exception
+   */
+  protected function getCustomFieldValue($entityID, string $field) {
+    $id = str_replace('custom_', '', $field);
+    $value = $this->prefetch[$entityID][$this->getCustomFieldName($id)] ?? '';
+    if ($value !== NULL) {
+      return CRM_Core_BAO_CustomField::displayValue($value, $id);
+    }
+  }
+
+  /**
+   * Get the metadata for the field.
+   *
+   * @param string $fieldName
+   *
+   * @return array
+   */
+  protected function getMetadataForField($fieldName): array {
+    if (isset($this->getTokenMetadata()[$fieldName])) {
+      return $this->getTokenMetadata()[$fieldName];
+    }
+    if (isset($this->getTokenMappingsForRelatedEntities()[$fieldName])) {
+      return $this->getTokenMetadata()[$this->getTokenMappingsForRelatedEntities()[$fieldName]];
+    }
+    return $this->getTokenMetadata()[$this->getDeprecatedTokens()[$fieldName]] ?? [];
+  }
+
+  /**
+   * Get token mappings for related entities - specifically the contact entity.
+   *
+   * This function exists to help manage the way contact tokens is structured
+   * of an query-object style result set that needs to be mapped to apiv4.
+   *
+   * The end goal is likely to be to advertised tokens that better map to api
+   * v4 and deprecate the existing ones but that is a long-term migration.
+   *
+   * @return array
+   */
+  protected function getTokenMappingsForRelatedEntities(): array {
+    return [];
+  }
+
+  /**
+   * Get array of deprecated tokens and the new token they map to.
+   *
+   * @return array
+   */
+  protected function getDeprecatedTokens(): array {
+    return [];
+  }
+
+  /**
+   * Get any overrides for token metadata.
+   *
+   * This is most obviously used for setting the audience, which
+   * will affect widget-presence.
+   *
+   * @return \string[][]
+   */
+  protected function getTokenMetadataOverrides(): array {
+    return [];
+  }
+
+  /**
+   * To handle variable tokens, override this function and return the active tokens.
+   *
+   * @param \Civi\Token\Event\TokenValueEvent $e
+   *
+   * @return mixed
+   */
+  public function getActiveTokens(TokenValueEvent $e) {
+    $messageTokens = $e->getTokenProcessor()->getMessageTokens();
+    if (!isset($messageTokens[$this->entity])) {
+      return FALSE;
+    }
+    return array_intersect($messageTokens[$this->entity], array_keys($this->getTokenMetadata()));
+  }
+
+  /**
+   * Add the token to the metadata based on the field spec.
+   *
+   * @param array $field
+   * @param array $exposedFields
+   * @param string $prefix
+   */
+  protected function addFieldToTokenMetadata(array $field, array $exposedFields, string $prefix = ''): void {
+    if ($field['type'] !== 'Custom' && !in_array($field['name'], $exposedFields, TRUE)) {
+      return;
+    }
+    $field['audience'] = 'user';
+    if ($field['name'] === 'contact_id') {
+      // Since {contact.id} is almost always present don't confuse users
+      // by also adding (e.g {participant.contact_id)
+      $field['audience'] = 'sysadmin';
+    }
+    if (!empty($this->getTokenMetadataOverrides()[$field['name']])) {
+      $field = array_merge($field, $this->getTokenMetadataOverrides()[$field['name']]);
+    }
+    if ($field['type'] === 'Custom') {
+      // Convert to apiv3 style for now. Later we can add v4 with
+      // portable naming & support for labels/ dates etc so let's leave
+      // the space open for that.
+      // Not the existing quickform widget has handling for the custom field
+      // format based on the title using this syntax.
+      $parts = explode(': ', $field['label']);
+      $field['title'] = "{$parts[1]} :: {$parts[0]}";
+      $tokenName = 'custom_' . $field['custom_field_id'];
+      $this->tokensMetadata[$tokenName] = $field;
+      return;
+    }
+    $tokenName = $prefix ? ($prefix . '.' . $field['name']) : $field['name'];
+    if (in_array($field['name'], $exposedFields, TRUE)) {
+      if (
+        ($field['options'] || !empty($field['suffixes']))
+        // At the time of writing currency didn't have a label option - this may have changed.
+        && !in_array($field['name'], $this->getCurrencyFieldName(), TRUE)
+      ) {
+        $this->tokensMetadata[$tokenName . ':label'] = $this->tokensMetadata[$tokenName . ':name'] = $field;
+        $fieldLabel = $field['input_attrs']['label'] ?? $field['label'];
+        $this->tokensMetadata[$tokenName . ':label']['name'] = $field['name'] . ':label';
+        $this->tokensMetadata[$tokenName . ':name']['name'] = $field['name'] . ':name';
+        $this->tokensMetadata[$tokenName . ':name']['audience'] = 'sysadmin';
+        $this->tokensMetadata[$tokenName . ':label']['title'] = $fieldLabel;
+        $this->tokensMetadata[$tokenName . ':name']['title'] = ts('Machine name') . ': ' . $fieldLabel;
+        $field['audience'] = 'sysadmin';
+      }
+      if ($field['data_type'] === 'Boolean') {
+        $this->tokensMetadata[$tokenName . ':label'] = $field;
+        $this->tokensMetadata[$tokenName . ':label']['name'] = $field['name'] . ':label';
+        $field['audience'] = 'sysadmin';
+      }
+      $this->tokensMetadata[$tokenName] = $field;
+    }
+  }
+
+  /**
+   * Get a cache key appropriate to the current usage.
+   *
+   * @return string
+   */
+  protected function getCacheKey(): string {
+    $cacheKey = __CLASS__ . 'token_metadata' . $this->getApiEntityName() . CRM_Core_Config::domainID() . '_' . CRM_Core_I18n::getLocale();
+    if ($this->checkPermissions) {
+      $cacheKey .= '__' . CRM_Core_Session::getLoggedInContactID();
+    }
+    return $cacheKey;
   }
 
 }
diff --git a/civicrm/CRM/Core/Form.php b/civicrm/CRM/Core/Form.php
index 62372af16a..b04744fded 100644
--- a/civicrm/CRM/Core/Form.php
+++ b/civicrm/CRM/Core/Form.php
@@ -70,6 +70,16 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
    */
   public $_action;
 
+  /**
+   * Monetary fields that may be submitted.
+   *
+   * Any fields in this list will be converted to non-localised format
+   * if retrieved by `getSubmittedValue`
+   *
+   * @var array
+   */
+  protected $submittableMoneyFields = [];
+
   /**
    * Available payment processors.
    *
@@ -131,9 +141,6 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
    * e.g on a form declare $_dateFields = array(
    *  'receive_date' => array('default' => 'now'),
    *  );
-   *  then in postProcess call $this->convertDateFieldsToMySQL($formValues)
-   *  to have the time field re-incorporated into the field & 'now' set if
-   *  no value has been passed in
    */
   protected $_dateFields = [];
 
@@ -2139,35 +2146,6 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
     CRM_Utils_Array::remove($props, 'multiple', 'select', 'api', 'entity', 'create');
   }
 
-  /**
-   * Convert all date fields within the params to mysql date ready for the
-   * BAO layer. In this case fields are checked against the $_datefields defined for the form
-   * and if time is defined it is incorporated
-   *
-   * @param array $params
-   *   Input params from the form.
-   *
-   * @todo it would probably be better to work on $this->_params than a passed array
-   * @todo standardise the format which dates are passed to the BAO layer in & remove date
-   * handling from BAO
-   */
-  public function convertDateFieldsToMySQL(&$params) {
-    foreach ($this->_dateFields as $fieldName => $specs) {
-      if (!empty($params[$fieldName])) {
-        $params[$fieldName] = CRM_Utils_Date::isoToMysql(
-          CRM_Utils_Date::processDate(
-            $params[$fieldName],
-            CRM_Utils_Array::value("{$fieldName}_time", $params), TRUE)
-        );
-      }
-      else {
-        if (isset($specs['default'])) {
-          $params[$fieldName] = date('YmdHis', strtotime($specs['default']));
-        }
-      }
-    }
-  }
-
   /**
    * @param $elementName
    */
@@ -2419,20 +2397,20 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
   public function setPageTitle($entityLabel) {
     switch ($this->_action) {
       case CRM_Core_Action::ADD:
-        CRM_Utils_System::setTitle(ts('New %1', [1 => $entityLabel]));
+        $this->setTitle(ts('New %1', [1 => $entityLabel]));
         break;
 
       case CRM_Core_Action::UPDATE:
-        CRM_Utils_System::setTitle(ts('Edit %1', [1 => $entityLabel]));
+        $this->setTitle(ts('Edit %1', [1 => $entityLabel]));
         break;
 
       case CRM_Core_Action::VIEW:
       case CRM_Core_Action::PREVIEW:
-        CRM_Utils_System::setTitle(ts('View %1', [1 => $entityLabel]));
+        $this->setTitle(ts('View %1', [1 => $entityLabel]));
         break;
 
       case CRM_Core_Action::DELETE:
-        CRM_Utils_System::setTitle(ts('Delete %1', [1 => $entityLabel]));
+        $this->setTitle(ts('Delete %1', [1 => $entityLabel]));
         break;
     }
   }
@@ -2746,7 +2724,11 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
     if (empty($this->exportedValues)) {
       $this->exportedValues = $this->controller->exportValues($this->_name);
     }
-    return $this->exportedValues[$fieldName] ?? NULL;
+    $value = $this->exportedValues[$fieldName] ?? NULL;
+    if (in_array($fieldName, $this->submittableMoneyFields, TRUE)) {
+      return CRM_Utils_Rule::cleanMoney($value);
+    }
+    return $value;
   }
 
   /**
diff --git a/civicrm/CRM/Core/Form/Task.php b/civicrm/CRM/Core/Form/Task.php
index cb4c7349c9..3c134e608c 100644
--- a/civicrm/CRM/Core/Form/Task.php
+++ b/civicrm/CRM/Core/Form/Task.php
@@ -9,6 +9,8 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Token\TokenProcessor;
+
 /**
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
@@ -73,6 +75,18 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
    */
   public static $entityShortname = NULL;
 
+
+  /**
+   * Rows to act on.
+   *
+   * e.g
+   *  [
+   *    ['contact_id' => 4, 'participant_id' => 6, 'schema' => ['contactId' => 5, 'participantId' => 6],
+   *  ]
+   * @var array
+   */
+  protected $rows = [];
+
   /**
    * Set where the browser should be directed to next.
    *
@@ -338,4 +352,45 @@ SELECT contact_id
     return $this::$entityShortname . '_id';
   }
 
+  /**
+   * List available tokens for this form.
+   *
+   * @return array
+   */
+  public function listTokens() {
+    $tokenProcessor = new TokenProcessor(Civi::dispatcher(), ['schema' => $this->getTokenSchema()]);
+    return $tokenProcessor->listTokens();
+  }
+
+  /**
+   * Get the token processor schema required to list any tokens for this task.
+   *
+   * @return array
+   */
+  protected function getTokenSchema(): array {
+    return ['contactId'];
+  }
+
+  /**
+   * Get the rows from the results.
+   *
+   * @return array
+   */
+  protected function getRows(): array {
+    $rows = [];
+    foreach ($this->getContactIDs() as $contactID) {
+      $rows[] = ['contact_id' => $contactID, 'schema' => ['contactId' => $contactID]];
+    }
+    return $rows;
+  }
+
+  /**
+   * Get the relevant contact IDs.
+   *
+   * @return array
+   */
+  protected function getContactIDs(): array {
+    return $this->_contactIds ?? [];
+  }
+
 }
diff --git a/civicrm/CRM/Core/Form/Task/Batch.php b/civicrm/CRM/Core/Form/Task/Batch.php
index 9e65231ceb..f5a0cb5d67 100644
--- a/civicrm/CRM/Core/Form/Task/Batch.php
+++ b/civicrm/CRM/Core/Form/Task/Batch.php
@@ -89,7 +89,7 @@ class CRM_Core_Form_Task_Batch extends CRM_Core_Form_Task {
       throw new InvalidArgumentException('ufGroupId is missing');
     }
     $this->_title = ts("Update multiple %1s", [1 => $this::$entityShortname]) . ' - ' . CRM_Core_BAO_UFGroup::getTitle($ufGroupId);
-    CRM_Utils_System::setTitle($this->_title);
+    $this->setTitle($this->_title);
 
     $this->addDefaultButtons(ts('Save'));
     $this->_fields = CRM_Core_BAO_UFGroup::getFields($ufGroupId, FALSE, CRM_Core_Action::VIEW);
diff --git a/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php b/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php
index 836f0001ff..f3774ce75b 100644
--- a/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php
+++ b/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php
@@ -23,14 +23,20 @@
  * The intention is that common functionality can be moved here and the other
  * classes cleaned up.
  * Keep old-style token handling out of this class.
+ *
+ * @deprecated
  */
 class CRM_Core_Form_Task_PDFLetterCommon {
 
   /**
    * @var CRM_Core_Form $form
+   *
+   * @deprecated
    */
   public static function preProcess(&$form) {
-    CRM_Utils_System::setTitle('Print/Merge Document');
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
+
+    $form->setTitle('Print/Merge Document');
   }
 
   /**
@@ -198,7 +204,25 @@ class CRM_Core_Form_Task_PDFLetterCommon {
    */
   public static function formRule($fields, $files, $self) {
     $errors = [];
-    $template = CRM_Core_Smarty::singleton();
+    $deprecatedTokens = [
+      '{case.status_id}' => '{case.status_id:label}',
+      '{case.case_type_id}' => '{case.case_type_id:label}',
+      '{membership.status}' => '{membership.status_id:label}',
+      '{membership.type}' => '{membership.membership_type_id:label}',
+      '{contribution.campaign}' => '{contribution.campaign_id:label}',
+      '{contribution.payment_instrument}' => '{contribution.payment_instrument_id:label}',
+      '{contribution.contribution_id}' => '{contribution.id}',
+      '{contribution.contribution_source}' => '{contribution.source}',
+    ];
+    $tokenErrors = [];
+    foreach ($deprecatedTokens as $token => $replacement) {
+      if (strpos($fields['html_message'], $token) !== FALSE) {
+        $tokenErrors[] = ts('Token %1 is no longer supported - use %2 instead', [$token, $replacement]);
+      }
+    }
+    if (!empty($tokenErrors)) {
+      $errors['html_message'] = implode('<br>', $tokenErrors);
+    }
 
     // If user uploads non-document file other than odt/docx
     if (empty($fields['template']) &&
@@ -233,11 +257,15 @@ class CRM_Core_Form_Task_PDFLetterCommon {
    *
    * @return string $html_message
    *
+   * @deprecated
+   *
    * @throws \CRM_Core_Exception
    * @throws \CiviCRM_API3_Exception
    * @throws \Civi\API\Exception\UnauthorizedException
    */
   public static function processTemplate(&$formValues) {
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
+
     $html_message = $formValues['html_message'] ?? NULL;
 
     // process message template
@@ -295,6 +323,8 @@ class CRM_Core_Form_Task_PDFLetterCommon {
   }
 
   /**
+   * @deprecated
+   *
    * @param $message
    */
   public static function formatMessage(&$message) {
@@ -347,21 +377,14 @@ class CRM_Core_Form_Task_PDFLetterCommon {
    *   The values submitted through the form
    *
    * @deprecated
-   *
-   * @return array
-   *   If formValues['is_unit_test'] is true, otherwise outputs document to browser
    */
-  public static function renderFromRows($rows, $msgPart, $formValues) {
+  public static function renderFromRows($rows, $msgPart, $formValues): void {
     CRM_Core_Error::deprecatedFunctionWarning('no alternative');
     $html = [];
     foreach ($rows as $row) {
       $html[] = $row->render($msgPart);
     }
 
-    if (!empty($formValues['is_unit_test'])) {
-      return $html;
-    }
-
     if (!empty($html)) {
       self::outputFromHtml($formValues, $html);
     }
diff --git a/civicrm/CRM/Core/Form/Task/PickProfile.php b/civicrm/CRM/Core/Form/Task/PickProfile.php
index 8a64e30535..968e9d50e9 100644
--- a/civicrm/CRM/Core/Form/Task/PickProfile.php
+++ b/civicrm/CRM/Core/Form/Task/PickProfile.php
@@ -65,7 +65,7 @@ abstract class CRM_Core_Form_Task_PickProfile extends CRM_Core_Form_Task {
     $session = CRM_Core_Session::singleton();
     $this->_userContext = $session->readUserContext();
 
-    CRM_Utils_System::setTitle(ts('Update multiple ' . $this::$entityShortname . 's'));
+    $this->setTitle(ts('Update multiple ' . $this::$entityShortname . 's'));
 
     // validations
     if (count($this->_entityIds) > $this->_maxEntities) {
diff --git a/civicrm/CRM/Core/I18n/Form.php b/civicrm/CRM/Core/I18n/Form.php
index 6beb1d669d..f17c019e06 100644
--- a/civicrm/CRM/Core/I18n/Form.php
+++ b/civicrm/CRM/Core/I18n/Form.php
@@ -80,7 +80,7 @@ class CRM_Core_I18n_Form extends CRM_Core_Form {
 
     $this->addDefaultButtons(ts('Save'), 'next', NULL);
 
-    CRM_Utils_System::setTitle(ts('Languages'));
+    $this->setTitle(ts('Languages'));
 
     $this->assign('locales', $this->_locales);
     $this->assign('field', $field);
diff --git a/civicrm/CRM/Core/ManagedEntities.php b/civicrm/CRM/Core/ManagedEntities.php
index ca558b13af..c99f450b79 100644
--- a/civicrm/CRM/Core/ManagedEntities.php
+++ b/civicrm/CRM/Core/ManagedEntities.php
@@ -1,5 +1,7 @@
 <?php
 
+use Civi\Api4\Managed;
+
 /**
  * The ManagedEntities system allows modules to add records to the database
  * declaratively.  Those records will be automatically inserted, updated,
@@ -26,6 +28,13 @@ class CRM_Core_ManagedEntities {
    */
   protected $moduleIndex;
 
+  /**
+   * Actions arising from the managed entities.
+   *
+   * @var array
+   */
+  protected $managedActions = [];
+
   /**
    * @var array
    *   List of all entity declarations.
@@ -41,7 +50,7 @@ class CRM_Core_ManagedEntities {
   public static function singleton($fresh = FALSE) {
     static $singleton;
     if ($fresh || !$singleton) {
-      $singleton = new CRM_Core_ManagedEntities(CRM_Core_Module::getAll(), NULL);
+      $singleton = new CRM_Core_ManagedEntities(CRM_Core_Module::getAll());
     }
     return $singleton;
   }
@@ -63,23 +72,16 @@ class CRM_Core_ManagedEntities {
   /**
    * @param array $modules
    *   CRM_Core_Module.
-   * @param array $declarations
-   *   Per hook_civicrm_managed.
    */
-  public function __construct($modules, $declarations) {
-    $this->moduleIndex = self::createModuleIndex($modules);
-
-    if ($declarations !== NULL) {
-      $this->declarations = self::cleanDeclarations($declarations);
-    }
-    else {
-      $this->declarations = NULL;
-    }
+  public function __construct(array $modules) {
+    $this->moduleIndex = $this->createModuleIndex($modules);
   }
 
   /**
    * Read a managed entity using APIv3.
    *
+   * @deprecated
+   *
    * @param string $moduleName
    *   The name of the module which declared entity.
    * @param string $name
@@ -112,18 +114,21 @@ class CRM_Core_ManagedEntities {
   /**
    * Identify any enabled/disabled modules. Add new entities, update
    * existing entities, and remove orphaned (stale) entities.
+   *
    * @param bool $ignoreUpgradeMode
    *
-   * @throws Exception
+   * @throws \CRM_Core_Exception
    */
   public function reconcile($ignoreUpgradeMode = FALSE) {
     // Do not reconcile whilst we are in upgrade mode
     if (CRM_Core_Config::singleton()->isUpgradeMode() && !$ignoreUpgradeMode) {
       return;
     }
+    $this->loadDeclarations();
     if ($error = $this->validate($this->getDeclarations())) {
-      throw new Exception($error);
+      throw new CRM_Core_Exception($error);
     }
+    $this->loadManagedEntityActions();
     $this->reconcileEnabledModules();
     $this->reconcileDisabledModules();
     $this->reconcileUnknownModules();
@@ -132,24 +137,16 @@ class CRM_Core_ManagedEntities {
   /**
    * For all enabled modules, add new entities, update
    * existing entities, and remove orphaned (stale) entities.
-   *
-   * @throws Exception
    */
-  public function reconcileEnabledModules() {
+  protected function reconcileEnabledModules(): void {
     // Note: any thing currently declared is necessarily from
     // an active module -- because we got it from a hook!
 
     // index by moduleName,name
-    $decls = self::createDeclarationIndex($this->moduleIndex, $this->getDeclarations());
+    $decls = $this->createDeclarationIndex($this->moduleIndex, $this->getDeclarations());
     foreach ($decls as $moduleName => $todos) {
-      if (isset($this->moduleIndex[TRUE][$moduleName])) {
-        $this->reconcileEnabledModule($this->moduleIndex[TRUE][$moduleName], $todos);
-      }
-      elseif (isset($this->moduleIndex[FALSE][$moduleName])) {
-        // do nothing -- module should get swept up later
-      }
-      else {
-        throw new Exception("Entity declaration references invalid or inactive module name [$moduleName]");
+      if ($this->isModuleEnabled($moduleName)) {
+        $this->reconcileEnabledModule($moduleName);
       }
     }
   }
@@ -158,37 +155,91 @@ class CRM_Core_ManagedEntities {
    * For one enabled module, add new entities, update existing entities,
    * and remove orphaned (stale) entities.
    *
-   * @param \CRM_Core_Module $module
-   * @param array $todos
-   *   List of entities currently declared by this module.
-   *   array(string $name => array $entityDef).
+   * @param string $module
    */
-  public function reconcileEnabledModule(CRM_Core_Module $module, $todos) {
-    $dao = new CRM_Core_DAO_Managed();
-    $dao->module = $module->name;
-    $dao->find();
-    while ($dao->fetch()) {
-      if (isset($todos[$dao->name]) && $todos[$dao->name]) {
-        // update existing entity; remove from $todos
-        $this->updateExistingEntity($dao, $todos[$dao->name]);
-        unset($todos[$dao->name]);
-      }
-      else {
-        // remove stale entity; not in $todos
-        $this->removeStaleEntity($dao);
-      }
+  protected function reconcileEnabledModule(string $module): void {
+    foreach ($this->getManagedEntitiesToUpdate(['module' => $module]) as $todo) {
+      $dao = new CRM_Core_DAO_Managed();
+      $dao->module = $todo['module'];
+      $dao->name = $todo['name'];
+      $dao->entity_type = $todo['entity_type'];
+      $dao->entity_id = $todo['entity_id'];
+      $dao->id = $todo['id'];
+      $this->updateExistingEntity($dao, $todo);
     }
 
-    // create new entities from leftover $todos
-    foreach ($todos as $name => $todo) {
+    foreach ($this->getManagedEntitiesToDelete(['module' => $module]) as $todo) {
+      $dao = new CRM_Core_DAO_Managed();
+      $dao->module = $todo['module'];
+      $dao->name = $todo['name'];
+      $dao->entity_type = $todo['entity_type'];
+      $dao->id = $todo['id'];
+      $dao->cleanup = $todo['cleanup'];
+      $dao->entity_id = $todo['entity_id'];
+      $this->removeStaleEntity($dao);
+    }
+    foreach ($this->getManagedEntitiesToCreate(['module' => $module]) as $todo) {
       $this->insertNewEntity($todo);
     }
   }
 
+  /**
+   * Get the managed entities to be created.
+   *
+   * @param array $filters
+   *
+   * @return array
+   */
+  protected function getManagedEntitiesToCreate(array $filters = []): array {
+    return $this->getManagedEntities(array_merge($filters, ['managed_action' => 'create']));
+  }
+
+  /**
+   * Get the managed entities to be created.
+   *
+   * @param array $filters
+   *
+   * @return array
+   */
+  protected function getManagedEntitiesToUpdate(array $filters = []): array {
+    return $this->getManagedEntities(array_merge($filters, ['managed_action' => 'update']));
+  }
+
+  /**
+   * Get the managed entities to be deleted.
+   *
+   * @param array $filters
+   *
+   * @return array
+   */
+  protected function getManagedEntitiesToDelete(array $filters = []): array {
+    return $this->getManagedEntities(array_merge($filters, ['managed_action' => 'delete']));
+  }
+
+  /**
+   * Get the managed entities that fit the criteria.
+   *
+   * @param array $filters
+   *
+   * @return array
+   */
+  protected function getManagedEntities(array $filters = []): array {
+    $return = [];
+    foreach ($this->managedActions as $actionKey => $action) {
+      foreach ($filters as $filterKey => $filterValue) {
+        if ($action[$filterKey] !== $filterValue) {
+          continue 2;
+        }
+      }
+      $return[$actionKey] = $action;
+    }
+    return $return;
+  }
+
   /**
    * For all disabled modules, disable any managed entities.
    */
-  public function reconcileDisabledModules() {
+  protected function reconcileDisabledModules() {
     if (empty($this->moduleIndex[FALSE])) {
       return;
     }
@@ -208,7 +259,7 @@ class CRM_Core_ManagedEntities {
    * Remove any orphaned (stale) entities that are linked to
    * unknown modules.
    */
-  public function reconcileUnknownModules() {
+  protected function reconcileUnknownModules() {
     $knownModules = [];
     if (array_key_exists(0, $this->moduleIndex) && is_array($this->moduleIndex[0])) {
       $knownModules = array_merge($knownModules, array_keys($this->moduleIndex[0]));
@@ -235,16 +286,16 @@ class CRM_Core_ManagedEntities {
    * @param array $todo
    *   Entity specification (per hook_civicrm_managedEntities).
    */
-  public function insertNewEntity($todo) {
-    $result = civicrm_api($todo['entity'], 'create', $todo['params']);
+  protected function insertNewEntity($todo) {
+    $result = civicrm_api($todo['entity_type'], 'create', $todo['params']);
     if (!empty($result['is_error'])) {
-      $this->onApiError($todo['entity'], 'create', $todo['params'], $result);
+      $this->onApiError($todo['entity_type'], 'create', $todo['params'], $result);
     }
 
     $dao = new CRM_Core_DAO_Managed();
     $dao->module = $todo['module'];
     $dao->name = $todo['name'];
-    $dao->entity_type = $todo['entity'];
+    $dao->entity_type = $todo['entity_type'];
     // A fatal error will result if there is no valid id but if
     // this is v4 api we might need to access it via ->first().
     $dao->entity_id = $result['id'] ?? $result->first()['id'];
@@ -259,7 +310,7 @@ class CRM_Core_ManagedEntities {
    * @param array $todo
    *   Entity specification (per hook_civicrm_managedEntities).
    */
-  public function updateExistingEntity($dao, $todo) {
+  protected function updateExistingEntity($dao, $todo) {
     $policy = CRM_Utils_Array::value('update', $todo, 'always');
     $doUpdate = ($policy === 'always');
 
@@ -307,7 +358,7 @@ class CRM_Core_ManagedEntities {
    *
    * @throws \CiviCRM_API3_Exception
    */
-  public function disableEntity($dao): void {
+  protected function disableEntity($dao): void {
     $entity_type = $dao->entity_type;
     if ($this->isActivationSupported($entity_type)) {
       // FIXME cascading for payproc types?
@@ -327,9 +378,9 @@ class CRM_Core_ManagedEntities {
    * Remove a stale entity (if policy allows).
    *
    * @param CRM_Core_DAO_Managed $dao
-   * @throws Exception
+   * @throws CRM_Core_Exception
    */
-  public function removeStaleEntity($dao) {
+  protected function removeStaleEntity($dao) {
     $policy = empty($dao->cleanup) ? 'always' : $dao->cleanup;
     switch ($policy) {
       case 'always':
@@ -355,7 +406,7 @@ class CRM_Core_ManagedEntities {
         break;
 
       default:
-        throw new \Exception('Unrecognized cleanup policy: ' . $policy);
+        throw new CRM_Core_Exception('Unrecognized cleanup policy: ' . $policy);
     }
 
     if ($doDelete) {
@@ -384,16 +435,7 @@ class CRM_Core_ManagedEntities {
    *
    * @return array|null
    */
-  public function getDeclarations() {
-    if ($this->declarations === NULL) {
-      $this->declarations = [];
-      foreach (CRM_Core_Component::getEnabledComponents() as $component) {
-        /** @var CRM_Core_Component_Info $component */
-        $this->declarations = array_merge($this->declarations, $component->getManagedEntities());
-      }
-      CRM_Utils_Hook::managed($this->declarations);
-      $this->declarations = self::cleanDeclarations($this->declarations);
-    }
+  protected function getDeclarations() {
     return $this->declarations;
   }
 
@@ -404,7 +446,7 @@ class CRM_Core_ManagedEntities {
    * @return array
    *   indexed by is_active,name
    */
-  protected static function createModuleIndex($modules) {
+  protected function createModuleIndex($modules) {
     $result = [];
     foreach ($modules as $module) {
       $result[$module->is_active][$module->name] = $module;
@@ -419,7 +461,7 @@ class CRM_Core_ManagedEntities {
    * @return array
    *   indexed by module,name
    */
-  protected static function createDeclarationIndex($moduleIndex, $declarations) {
+  protected function createDeclarationIndex($moduleIndex, $declarations) {
     $result = [];
     if (!isset($moduleIndex[TRUE])) {
       return $result;
@@ -442,25 +484,60 @@ class CRM_Core_ManagedEntities {
    * @return string|bool
    *   string on error, or FALSE
    */
-  protected static function validate($declarations) {
-    foreach ($declarations as $declare) {
+  protected function validate($declarations) {
+    foreach ($declarations as $module => $declare) {
       foreach (['name', 'module', 'entity', 'params'] as $key) {
         if (empty($declare[$key])) {
           $str = print_r($declare, TRUE);
-          return ("Managed Entity is missing field \"$key\": $str");
+          return ts('Managed Entity (%1) is missing field "%2": %3', [$module, $key, $str]);
         }
       }
-      // FIXME: validate that each 'module' is known
+      if (!$this->isModuleRecognised($declare['module'])) {
+        return ts('Entity declaration references invalid or inactive module name [%1]', [$declare['module']]);
+      }
     }
     return FALSE;
   }
 
+  /**
+   * Is the module recognised (as an enabled or disabled extension in the system).
+   *
+   * @param string $module
+   *
+   * @return bool
+   */
+  protected function isModuleRecognised(string $module): bool {
+    return $this->isModuleDisabled($module) || $this->isModuleEnabled($module);
+  }
+
+  /**
+   * Is the module enabled.
+   *
+   * @param string $module
+   *
+   * @return bool
+   */
+  protected function isModuleEnabled(string $module): bool {
+    return isset($this->moduleIndex[TRUE][$module]);
+  }
+
+  /**
+   * Is the module disabled.
+   *
+   * @param string $module
+   *
+   * @return bool
+   */
+  protected function isModuleDisabled(string $module): bool {
+    return isset($this->moduleIndex[FALSE][$module]);
+  }
+
   /**
    * @param array $declarations
    *
    * @return array
    */
-  protected static function cleanDeclarations($declarations) {
+  protected function cleanDeclarations(array $declarations): array {
     foreach ($declarations as $name => &$declare) {
       if (!array_key_exists('name', $declare)) {
         $declare['name'] = $name;
@@ -508,4 +585,48 @@ class CRM_Core_ManagedEntities {
     return Civi::$statics[__CLASS__][__FUNCTION__][$entity_type];
   }
 
+  /**
+   * Load declarations into the class property.
+   *
+   * This picks it up from hooks and enabled components.
+   */
+  protected function loadDeclarations(): void {
+    $this->declarations = [];
+    foreach (CRM_Core_Component::getEnabledComponents() as $component) {
+      $this->declarations = array_merge($this->declarations, $component->getManagedEntities());
+    }
+    CRM_Utils_Hook::managed($this->declarations);
+    $this->declarations = $this->cleanDeclarations($this->declarations);
+  }
+
+  protected function loadManagedEntityActions(): void {
+    $managedEntities = Managed::get(FALSE)->addSelect('*')->execute();
+    foreach ($managedEntities as $managedEntity) {
+      $key = "{$managedEntity['module']}_{$managedEntity['name']}_{$managedEntity['entity_type']}";
+      // Set to 'delete' - it will be overwritten below if it is to be updated.
+      $action = 'delete';
+      $this->managedActions[$key] = array_merge($managedEntity, ['managed_action' => $action]);
+    }
+    foreach ($this->declarations as $declaration) {
+      $key = "{$declaration['module']}_{$declaration['name']}_{$declaration['entity']}";
+      if (isset($this->managedActions[$key])) {
+        $this->managedActions[$key]['params'] = $declaration['params'];
+        $this->managedActions[$key]['managed_action'] = 'update';
+        $this->managedActions[$key]['cleanup'] = $declaration['cleanup'] ?? NULL;
+        $this->managedActions[$key]['update'] = $declaration['update'] ?? 'always';
+      }
+      else {
+        $this->managedActions[$key] = [
+          'module' => $declaration['module'],
+          'name' => $declaration['name'],
+          'entity_type' => $declaration['entity'],
+          'managed_action' => 'create',
+          'params' => $declaration['params'],
+          'cleanup' => $declaration['cleanup'] ?? NULL,
+          'update' => $declaration['update'] ?? 'always',
+        ];
+      }
+    }
+  }
+
 }
diff --git a/civicrm/CRM/Core/Payment/Elavon.php b/civicrm/CRM/Core/Payment/Elavon.php
index 596d8898ca..75e2a37d21 100644
--- a/civicrm/CRM/Core/Payment/Elavon.php
+++ b/civicrm/CRM/Core/Payment/Elavon.php
@@ -157,7 +157,7 @@ class CRM_Core_Payment_Elavon extends CRM_Core_Payment {
     // set this for debugging -look for output in apache error log
     //curl_setopt ($ch,CURLOPT_VERBOSE,1 );
     // ensures any Location headers are followed
-    if (ini_get('open_basedir') == '' && ini_get('safe_mode') == 'Off') {
+    if (ini_get('open_basedir') == '') {
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
     }
 
diff --git a/civicrm/CRM/Core/Payment/FirstData.php b/civicrm/CRM/Core/Payment/FirstData.php
index 5b5d6b1802..f6968c7e71 100644
--- a/civicrm/CRM/Core/Payment/FirstData.php
+++ b/civicrm/CRM/Core/Payment/FirstData.php
@@ -222,7 +222,7 @@ class CRM_Core_Payment_FirstData extends CRM_Core_Payment {
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_TIMEOUT, 36000);
     // ensures any Location headers are followed
-    if (ini_get('open_basedir') == '' && ini_get('safe_mode') == 'Off') {
+    if (ini_get('open_basedir') == '') {
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
     }
 
diff --git a/civicrm/CRM/Core/Payment/Form.php b/civicrm/CRM/Core/Payment/Form.php
index 1c7263812c..2c30dec08d 100644
--- a/civicrm/CRM/Core/Payment/Form.php
+++ b/civicrm/CRM/Core/Payment/Form.php
@@ -211,8 +211,6 @@ class CRM_Core_Payment_Form {
    *   entering details but once again the issue is not back office but 'another user'.
    * @param int $paymentInstrumentID
    *   Payment instrument ID.
-   *
-   * @return bool
    */
   public static function buildPaymentForm(&$form, $processor, $billing_profile_id, $isBackOffice, $paymentInstrumentID = NULL) {
     //if the form has address fields assign to the template so the js can decide what billing fields to show
@@ -222,13 +220,12 @@ class CRM_Core_Payment_Form {
     }
 
     if (!empty($processor['object']) && $processor['object']->buildForm($form)) {
-      return NULL;
+      return;
     }
 
     self::setPaymentFieldsByProcessor($form, $processor, $billing_profile_id, $isBackOffice, $paymentInstrumentID);
     self::addCommonFields($form, $form->_paymentFields);
     self::addRules($form, $form->_paymentFields);
-    return (!empty($form->_paymentFields));
   }
 
   /**
diff --git a/civicrm/CRM/Core/Payment/PayPalIPN.php b/civicrm/CRM/Core/Payment/PayPalIPN.php
index a345d0c3c7..a626afd0ea 100644
--- a/civicrm/CRM/Core/Payment/PayPalIPN.php
+++ b/civicrm/CRM/Core/Payment/PayPalIPN.php
@@ -70,13 +70,6 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN {
    * @throws \CiviCRM_API3_Exception
    */
   public function recur($input, $recur, $contribution, $first) {
-    if ($this->getTrxnType() === 'subscr_payment' &&
-      $input['paymentStatus'] !== 'Completed'
-    ) {
-      Civi::log()->debug('PayPalIPN: Ignore all IPN payments that are not completed');
-      echo 'Failure: Invalid parameters<p>';
-      return;
-    }
 
     // make sure the invoice ids match
     // make sure the invoice is valid and matches what we have in the contribution record
@@ -102,23 +95,27 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN {
         }
         $recur->processor_id = $this->retrieve('subscr_id', 'String');
         $recur->trxn_id = $recur->processor_id;
-        break;
+        $recur->save();
+        return;
 
       case 'subscr_eot':
         if ($recur->contribution_status_id != $contributionStatuses['Cancelled']) {
           $recur->contribution_status_id = $contributionStatuses['Completed'];
         }
         $recur->end_date = $now;
-        break;
+        $recur->save();
+        return;
 
       case 'subscr_cancel':
         $recur->contribution_status_id = $contributionStatuses['Cancelled'];
         $recur->cancel_date = $now;
-        break;
+        $recur->save();
+        return;
 
       case 'subscr_failed':
         $recur->contribution_status_id = $contributionStatuses['Failed'];
         $recur->modified_date = $now;
+        $recur->save();
         break;
 
       case 'subscr_modify':
@@ -126,27 +123,29 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN {
         echo "Failure: We do not handle modifications to subscriptions right now<p>";
         return;
 
-      case 'subscr_payment':
-        if ($first) {
-          $recur->start_date = $now;
-        }
-        else {
-          $recur->modified_date = $now;
-        }
-
-        // make sure the contribution status is not done
-        // since order of ipn's is unknown
-        if ($recur->contribution_status_id != $contributionStatuses['Completed']) {
-          $recur->contribution_status_id = $contributionStatuses['In Progress'];
-        }
-        break;
     }
 
-    $recur->save();
-
     if ($this->getTrxnType() !== 'subscr_payment') {
       return;
     }
+    if ($input['paymentStatus'] !== 'Completed') {
+      Civi::log()->debug('PayPalIPN: Ignore all IPN payments that are not completed');
+      echo 'Failure: Invalid parameters<p>';
+      return;
+    }
+    if ($first) {
+      $recur->start_date = $now;
+    }
+    else {
+      $recur->modified_date = $now;
+    }
+
+    // make sure the contribution status is not done
+    // since order of ipn's is unknown
+    if ($recur->contribution_status_id != $contributionStatuses['Completed']) {
+      $recur->contribution_status_id = $contributionStatuses['In Progress'];
+    }
+    $recur->save();
 
     if (!$first) {
       // check if this contribution transaction is already processed
@@ -155,7 +154,7 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN {
       $contribution->trxn_id = $input['trxn_id'];
       if ($contribution->trxn_id && $contribution->find()) {
         Civi::log()->debug('PayPalIPN: Returning since contribution has already been handled (trxn_id: ' . $contribution->trxn_id . ')');
-        echo "Success: Contribution has already been handled<p>";
+        echo 'Success: Contribution has already been handled<p>';
         return;
       }
 
diff --git a/civicrm/CRM/Core/Permission.php b/civicrm/CRM/Core/Permission.php
index 6e167ea48a..2ad9e9977e 100644
--- a/civicrm/CRM/Core/Permission.php
+++ b/civicrm/CRM/Core/Permission.php
@@ -841,6 +841,10 @@ class CRM_Core_Permission {
         $prefix . ts('administer payment processors'),
         ts('Add, Update, or Disable Payment Processors'),
       ],
+      'render templates' => [
+        $prefix . ts('render templates'),
+        ts('Render open-ended template content. (Additional constraints may apply to autoloaded records and specific notations.)'),
+      ],
       'edit message templates' => [
         $prefix . ts('edit message templates'),
       ],
@@ -1135,6 +1139,7 @@ class CRM_Core_Permission {
       ],
     ];
     $permissions['line_item'] = $permissions['contribution'];
+    $permissions['product'] = $permissions['contribution'];
 
     $permissions['financial_item'] = $permissions['contribution'];
 
diff --git a/civicrm/CRM/Core/SelectValues.php b/civicrm/CRM/Core/SelectValues.php
index ca20c9d271..2830c67782 100644
--- a/civicrm/CRM/Core/SelectValues.php
+++ b/civicrm/CRM/Core/SelectValues.php
@@ -9,6 +9,8 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Token\TokenProcessor;
+
 /**
  * One place to store frequently used values in Select Elements. Note that
  * some of the below elements will be dynamic, so we'll probably have a
@@ -492,14 +494,12 @@ class CRM_Core_SelectValues {
    * Domain tokens
    *
    * @return array
+   *
+   * @deprecated
    */
   public static function domainTokens() {
-    return [
-      '{domain.name}' => ts('Domain name'),
-      '{domain.address}' => ts('Domain (organization) address'),
-      '{domain.phone}' => ts('Domain (organization) phone'),
-      '{domain.email}' => ts('Domain (organization) email'),
-    ];
+    $tokenProcessor = new TokenProcessor(Civi::dispatcher(), []);
+    return $tokenProcessor->listTokens();
   }
 
   /**
@@ -521,14 +521,14 @@ class CRM_Core_SelectValues {
    *
    * @return array
    */
-  public static function membershipTokens() {
+  public static function membershipTokens(): array {
     return [
       '{membership.id}' => ts('Membership ID'),
-      '{membership.status}' => ts('Membership Status'),
-      '{membership.type}' => ts('Membership Type'),
+      '{membership.status_id:label}' => ts('Status'),
+      '{membership.membership_type_id:label}' => ts('Membership Type'),
       '{membership.start_date}' => ts('Membership Start Date'),
-      '{membership.join_date}' => ts('Membership Join Date'),
-      '{membership.end_date}' => ts('Membership End Date'),
+      '{membership.join_date}' => ts('Member Since'),
+      '{membership.end_date}' => ts('Membership Expiration Date'),
       '{membership.fee}' => ts('Membership Fee'),
     ];
   }
@@ -536,160 +536,73 @@ class CRM_Core_SelectValues {
   /**
    * Different type of Event Tokens.
    *
+   * @deprecated
+   *
    * @return array
    */
-  public static function eventTokens() {
-    return [
-      '{event.event_id}' => ts('Event ID'),
-      '{event.title}' => ts('Event Title'),
-      '{event.start_date}' => ts('Event Start Date'),
-      '{event.end_date}' => ts('Event End Date'),
-      '{event.event_type}' => ts('Event Type'),
-      '{event.summary}' => ts('Event Summary'),
-      '{event.contact_email}' => ts('Event Contact Email'),
-      '{event.contact_phone}' => ts('Event Contact Phone'),
-      '{event.description}' => ts('Event Description'),
-      '{event.location}' => ts('Event Location'),
-      '{event.fee_amount}' => ts('Event Fees'),
-      '{event.info_url}' => ts('Event Info URL'),
-      '{event.registration_url}' => ts('Event Registration URL'),
-      '{event.balance}' => ts('Event Balance'),
-    ];
+  public static function eventTokens(): array {
+    $tokenProcessor = new TokenProcessor(Civi::dispatcher(), ['schema' => ['eventId']]);
+    $allTokens = $tokenProcessor->listTokens();
+    foreach (array_keys($allTokens) as $token) {
+      if (strpos($token, '{domain.') === 0) {
+        unset($allTokens[$token]);
+      }
+    }
+    return $allTokens;
   }
 
   /**
-   * Different type of Event Tokens.
+   * Different type of Contribution Tokens.
+   *
+   * @deprecated
    *
    * @return array
    */
   public static function contributionTokens(): array {
-    $tokens = [];
-    $processor = new CRM_Contribute_Tokens();
-    foreach ($processor->getAllTokens() as $token => $title) {
-      $tokens['{contribution.' . $token . '}'] = $title;
+    $tokenProcessor = new TokenProcessor(Civi::dispatcher(), ['schema' => ['contributionId']]);
+    $allTokens = $tokenProcessor->listTokens();
+    foreach (array_keys($allTokens) as $token) {
+      if (strpos($token, '{domain.') === 0) {
+        unset($allTokens[$token]);
+      }
     }
-    return $tokens;
+    return $allTokens;
   }
 
   /**
    * Different type of Contact Tokens.
    *
+   * @deprecated
+   *
    * @return array
    */
-  public static function contactTokens() {
-    static $tokens = NULL;
-    if (!$tokens) {
-      $additionalFields = [
-        'checksum' => ['title' => ts('Checksum')],
-        'contact_id' => ['title' => ts('Internal Contact ID')],
-      ];
-      $exportFields = array_merge(CRM_Contact_BAO_Contact::exportableFields(), $additionalFields);
-
-      $values = array_merge(array_keys($exportFields));
-      unset($values[0]);
-
-      //FIXME:skipping some tokens for time being.
-      $skipTokens = [
-        'is_bulkmail',
-        'group',
-        'tag',
-        'contact_sub_type',
-        'note',
-        'is_deceased',
-        'deceased_date',
-        'legal_identifier',
-        'contact_sub_type',
-        'user_unique_id',
-        'addressee_id',
-        'email_greeting_id',
-        'postal_greeting_id',
-      ];
-
-      $customFields = CRM_Core_BAO_CustomField::getFields(['Individual', 'Address']);
-      $legacyTokenNames = array_flip(CRM_Utils_Token::legacyContactTokens());
-
-      foreach ($values as $val) {
-        if (in_array($val, $skipTokens)) {
-          continue;
-        }
-        //keys for $tokens should be constant. $token Values are changed for Custom Fields. CRM-3734
-        $customFieldId = CRM_Core_BAO_CustomField::getKeyID($val);
-        if ($customFieldId) {
-          // CRM-15191 - if key is not in $customFields then the field is disabled and should be ignored
-          if (!empty($customFields[$customFieldId])) {
-            $tokens["{contact.$val}"] = $customFields[$customFieldId]['label'] . " :: " . $customFields[$customFieldId]['groupTitle'];
-          }
-        }
-        else {
-          // Support legacy token names
-          $tokenName = CRM_Utils_Array::value($val, $legacyTokenNames, $val);
-          $tokens["{contact.$tokenName}"] = $exportFields[$val]['title'];
-        }
-      }
-
-      // Get all the hook tokens too
-      $hookTokens = [];
-      CRM_Utils_Hook::tokens($hookTokens);
-      foreach ($hookTokens as $tokenValues) {
-        foreach ($tokenValues as $key => $value) {
-          if (is_numeric($key)) {
-            $key = $value;
-          }
-          if (!preg_match('/^\{[^\}]+\}$/', $key)) {
-            $key = '{' . $key . '}';
-          }
-          if (preg_match('/^\{([^\}]+)\}$/', $value, $matches)) {
-            $value = $matches[1];
-          }
-          $tokens[$key] = $value;
-        }
+  public static function contactTokens(): array {
+    $tokenProcessor = new TokenProcessor(Civi::dispatcher(), ['schema' => ['contactId']]);
+    $allTokens = $tokenProcessor->listTokens();
+    foreach (array_keys($allTokens) as $token) {
+      if (strpos($token, '{domain.') === 0) {
+        unset($allTokens[$token]);
       }
     }
-
-    return $tokens;
+    return $allTokens;
   }
 
   /**
    * Different type of Participant Tokens.
    *
+   * @deprecated
+   *
    * @return array
    */
-  public static function participantTokens() {
-    static $tokens = NULL;
-    if (!$tokens) {
-      $exportFields = CRM_Event_BAO_Participant::exportableFields();
-
-      $values = array_merge(array_keys($exportFields));
-      unset($values[0]);
-
-      // skipping some tokens for time being.
-      $skipTokens = [
-        'event_id',
-        'participant_is_pay_later',
-        'participant_is_test',
-        'participant_contact_id',
-        'participant_fee_currency',
-        'participant_campaign_id',
-        'participant_status',
-        'participant_discount_name',
-      ];
-
-      $customFields = CRM_Core_BAO_CustomField::getFields('Participant');
-
-      foreach ($values as $key => $val) {
-        if (in_array($val, $skipTokens)) {
-          continue;
-        }
-        //keys for $tokens should be constant. $token Values are changed for Custom Fields. CRM-3734
-        if ($customFieldId = CRM_Core_BAO_CustomField::getKeyID($val)) {
-          $tokens["{participant.$val}"] = !empty($customFields[$customFieldId]) ? $customFields[$customFieldId]['label'] . " :: " . $customFields[$customFieldId]['groupTitle'] : '';
-        }
-        else {
-          $tokens["{participant.$val}"] = $exportFields[$val]['title'];
-        }
+  public static function participantTokens(): array {
+    $tokenProcessor = new TokenProcessor(Civi::dispatcher(), ['schema' => ['participantId']]);
+    $allTokens = $tokenProcessor->listTokens();
+    foreach (array_keys($allTokens) as $token) {
+      if (strpos($token, '{domain.') === 0) {
+        unset($allTokens[$token]);
       }
     }
-    return $tokens;
+    return $allTokens;
   }
 
   /**
@@ -697,16 +610,22 @@ class CRM_Core_SelectValues {
    * @return array
    */
   public static function caseTokens($caseTypeId = NULL) {
-    static $tokens = NULL;
-    if (!$tokens) {
-      foreach (CRM_Case_BAO_Case::fields() as $field) {
-        $tokens["{case.{$field['name']}}"] = $field['title'];
-      }
+    $tokens = [
+      '{case.id}' => ts('Case ID'),
+      '{case.case_type_id:label}' => ts('Case Type'),
+      '{case.subject}' => ts('Case Subject'),
+      '{case.start_date}' => ts('Case Start Date'),
+      '{case.end_date}' => ts('Case End Date'),
+      '{case.details}' => ts('Details'),
+      '{case.status_id:label}' => ts('Case Status'),
+      '{case.is_deleted:label}' => ts('Case is in the Trash'),
+      '{case.created_date}' => ts('Created Date'),
+      '{case.modified_date}' => ts('Modified Date'),
+    ];
 
-      $customFields = CRM_Core_BAO_CustomField::getFields('Case', FALSE, FALSE, $caseTypeId);
-      foreach ($customFields as $id => $field) {
-        $tokens["{case.custom_$id}"] = "{$field['label']} :: {$field['groupTitle']}";
-      }
+    $customFields = CRM_Core_BAO_CustomField::getFields('Case', FALSE, FALSE, $caseTypeId);
+    foreach ($customFields as $id => $field) {
+      $tokens["{case.custom_$id}"] = "{$field['label']} :: {$field['groupTitle']}";
     }
     return $tokens;
   }
diff --git a/civicrm/CRM/Core/Selector/Controller.php b/civicrm/CRM/Core/Selector/Controller.php
index 533d4042a2..66dd528f0b 100644
--- a/civicrm/CRM/Core/Selector/Controller.php
+++ b/civicrm/CRM/Core/Selector/Controller.php
@@ -461,7 +461,17 @@ class CRM_Core_Selector_Controller {
     }
 
     self::$_template->assign_by_ref("{$this->_prefix}sort", $this->_sort);
-    self::$_template->assign("{$this->_prefix}columnHeaders", $this->_store->get("{$this->_prefix}columnHeaders"));
+    $columnHeaders = (array) $this->_store->get("{$this->_prefix}columnHeaders");
+    foreach ($columnHeaders as $index => $columnHeader) {
+      // Fill out the keys to avoid e-notices.
+      if (!isset($columnHeader['sort'])) {
+        $columnHeaders[$index]['sort'] = NULL;
+      }
+      if (!isset($columnHeader['name'])) {
+        $columnHeaders[$index]['name'] = NULL;
+      }
+    }
+    self::$_template->assign("{$this->_prefix}columnHeaders", $columnHeaders);
     self::$_template->assign("{$this->_prefix}rows", $rows);
     self::$_template->assign("{$this->_prefix}rowsEmpty", $this->_store->get("{$this->_prefix}rowsEmpty"));
     self::$_template->assign("{$this->_prefix}qill", $this->_store->get("{$this->_prefix}qill"));
diff --git a/civicrm/CRM/Core/Session.php b/civicrm/CRM/Core/Session.php
index dcbe3a7823..57939665f4 100644
--- a/civicrm/CRM/Core/Session.php
+++ b/civicrm/CRM/Core/Session.php
@@ -41,13 +41,6 @@ class CRM_Core_Session {
    */
   protected $_session = NULL;
 
-  /**
-   * Current php Session ID : needed to detect if the session is changed
-   *
-   * @var string
-   */
-  protected $sessionID;
-
   /**
    * We only need one instance of this object. So we use the singleton
    * pattern and cache the instance in this variable
@@ -128,10 +121,9 @@ class CRM_Core_Session {
    *   Is this a read operation, in this case, the session will not be touched.
    */
   public function initialize($isRead = FALSE) {
-    // remove $_SESSION reference if session is changed
-    if (($sid = session_id()) !== $this->sessionID) {
-      $this->_session = NULL;
-      $this->sessionID = $sid;
+    // reset $this->_session in case if it is no longer a reference to $_SESSION;
+    if (isset($_SESSION) && isset($this->_session) && $_SESSION !== $this->_session) {
+      unset($this->_session);
     }
     // lets initialize the _session variable just before we need it
     // hopefully any bootstrapping code will actually load the session from the CMS
@@ -171,9 +163,9 @@ class CRM_Core_Session {
       unset($this->_session[$this->_key]);
     }
     else {
-      $this->_session = [];
+      $this->_session[$this->_key] = [];
+      unset($this->_session);
     }
-
   }
 
   /**
diff --git a/civicrm/CRM/Core/Smarty.php b/civicrm/CRM/Core/Smarty.php
index 5c3afb207f..b73df97307 100644
--- a/civicrm/CRM/Core/Smarty.php
+++ b/civicrm/CRM/Core/Smarty.php
@@ -95,13 +95,7 @@ class CRM_Core_Smarty extends Smarty {
       exit();
     }
 
-    //Check for safe mode CRM-2207
-    if (ini_get('safe_mode')) {
-      $this->use_sub_dirs = FALSE;
-    }
-    else {
-      $this->use_sub_dirs = TRUE;
-    }
+    $this->use_sub_dirs = TRUE;
 
     $customPluginsDir = NULL;
     if (isset($config->customPHPPathDir)) {
diff --git a/civicrm/CRM/Core/Smarty/plugins/function.privacyFlag.php b/civicrm/CRM/Core/Smarty/plugins/function.privacyFlag.php
index b6e76b11f2..eab1a587ff 100644
--- a/civicrm/CRM/Core/Smarty/plugins/function.privacyFlag.php
+++ b/civicrm/CRM/Core/Smarty/plugins/function.privacyFlag.php
@@ -36,7 +36,7 @@ function smarty_function_privacyFlag($params, &$smarty) {
     'do_not_phone' => 'fa-phone',
     'do_not_email' => 'fa-paper-plane',
     'do_not_mail' => 'fa-envelope',
-    'do_not_sms' => 'fa-mobile',
+    'do_not_sms' => 'fa-comments-o',
     'do_not_trade' => 'fa-exchange',
     'is_opt_out' => 'fa-paper-plane-o',
   ];
diff --git a/civicrm/CRM/Core/Smarty/plugins/modifier.crmDate.php b/civicrm/CRM/Core/Smarty/plugins/modifier.crmDate.php
index bef94f9d97..2a175bcfc0 100644
--- a/civicrm/CRM/Core/Smarty/plugins/modifier.crmDate.php
+++ b/civicrm/CRM/Core/Smarty/plugins/modifier.crmDate.php
@@ -21,14 +21,36 @@
  * @param string $dateString
  *   Date which needs to converted to human readable format.
  *
- * @param null $dateFormat
+ * @param string|null $dateFormat
+ *   A string per https://www.php.net/manual/en/function.strftime.php or
+ *   one of our configured formats name - eg
+ *    - dateformatDatetime
+ *    - dateformatFull
+ *    - dateformatPartial
+ *    - dateformatTime
+ *    - dateformatYear
+ *    - dateformatFinancialBatch
+ *    - dateformatshortdate
+ *
  * @param bool $onlyTime
  *
  * @return string
  *   human readable date format | invalid date message
  */
-function smarty_modifier_crmDate($dateString, $dateFormat = NULL, $onlyTime = FALSE) {
+function smarty_modifier_crmDate($dateString, ?string $dateFormat = NULL, bool $onlyTime = FALSE): string {
   if ($dateString) {
+    $configuredFormats = [
+      'Datetime',
+      'Full',
+      'Partial',
+      'Time',
+      'Year',
+      'FinancialBatch',
+      'shortdate',
+    ];
+    if (in_array($dateFormat, $configuredFormats, TRUE)) {
+      $dateFormat = Civi::settings()->get('dateformat' . $dateFormat);
+    }
     // this check needs to be type sensitive
     // CRM-3689, CRM-2441
     if ($dateFormat === 0) {
diff --git a/civicrm/CRM/Core/TokenSmarty.php b/civicrm/CRM/Core/TokenSmarty.php
index 209d7160e2..4e88337c85 100644
--- a/civicrm/CRM/Core/TokenSmarty.php
+++ b/civicrm/CRM/Core/TokenSmarty.php
@@ -41,6 +41,7 @@ class CRM_Core_TokenSmarty {
    * @internal
    */
   public static function render(array $messages, array $tokenContext = [], array $smartyAssigns = []): array {
+    $result = [];
     $tokenContextDefaults = [
       'controller' => __CLASS__,
       'smarty' => TRUE,
diff --git a/civicrm/CRM/Core/TokenTrait.php b/civicrm/CRM/Core/TokenTrait.php
index 356bdc7fd0..36c6829bb8 100644
--- a/civicrm/CRM/Core/TokenTrait.php
+++ b/civicrm/CRM/Core/TokenTrait.php
@@ -46,29 +46,21 @@ trait CRM_Core_TokenTrait {
       if (array_key_exists($msgToken, $this->tokenNames)) {
         $activeTokens[] = $msgToken;
       }
-      else {
-        $altToken = preg_replace('/_\d+_/', '_N_', $msgToken);
-        if (array_key_exists($altToken, $this->tokenNames)) {
-          $activeTokens[] = $msgToken;
-        }
-      }
     }
     return array_unique($activeTokens);
   }
 
   /**
    * Find the fields that we need to get to construct the tokens requested.
-   * @param  array $activeTokens list of active tokens
+   *
    * @return array         list of fields needed to generate those tokens
    */
-  public function getReturnFields($activeTokens) {
+  public function getReturnFields(): array {
     // Make sure we always return something
     $fields = ['id'];
 
-    $tokensInUse = array_intersect(
-      $activeTokens,
-      array_merge(array_keys(self::getBasicTokens()), array_keys(self::getCustomFieldTokens()))
-    );
+    $tokensInUse =
+      array_merge(array_keys(self::getBasicTokens()), array_keys(self::getCustomFieldTokens()));
     foreach ($tokensInUse as $token) {
       if (isset(self::$fieldMapping[$token])) {
         $fields = array_merge($fields, self::$fieldMapping[$token]);
@@ -86,7 +78,10 @@ trait CRM_Core_TokenTrait {
    */
   protected function getCustomFieldTokens(): array {
     if (!isset($this->customFieldTokens)) {
-      $this->customFieldTokens = \CRM_Utils_Token::getCustomFieldTokens(ucfirst($this->getEntityName()));
+      $this->customFieldTokens = [];
+      foreach (CRM_Core_BAO_CustomField::getFields(ucfirst($this->getEntityName())) as $id => $info) {
+        $this->customFieldTokens['custom_' . $id] = $info['label'] . ' :: ' . $info['groupTitle'];
+      }
     }
     return $this->customFieldTokens;
   }
diff --git a/civicrm/CRM/Custom/Form/DeleteField.php b/civicrm/CRM/Custom/Form/DeleteField.php
index c713bbdbd1..993ed6138e 100644
--- a/civicrm/CRM/Custom/Form/DeleteField.php
+++ b/civicrm/CRM/Custom/Form/DeleteField.php
@@ -49,7 +49,7 @@ class CRM_Custom_Form_DeleteField extends CRM_Core_Form {
 
     $this->_title = $defaults['label'] ?? NULL;
     $this->assign('title', $this->_title);
-    CRM_Utils_System::setTitle(ts('Delete %1', [1 => $this->_title]));
+    $this->setTitle(ts('Delete %1', [1 => $this->_title]));
   }
 
   /**
diff --git a/civicrm/CRM/Custom/Form/DeleteGroup.php b/civicrm/CRM/Custom/Form/DeleteGroup.php
index a8e69436d4..d3b9169fb0 100644
--- a/civicrm/CRM/Custom/Form/DeleteGroup.php
+++ b/civicrm/CRM/Custom/Form/DeleteGroup.php
@@ -60,7 +60,7 @@ class CRM_Custom_Form_DeleteGroup extends CRM_Core_Form {
     }
     $this->assign('title', $this->_title);
 
-    CRM_Utils_System::setTitle(ts('Confirm Custom Group Delete'));
+    $this->setTitle(ts('Confirm Custom Group Delete'));
   }
 
   /**
diff --git a/civicrm/CRM/Custom/Form/Field.php b/civicrm/CRM/Custom/Form/Field.php
index 756701b042..d766c9248d 100644
--- a/civicrm/CRM/Custom/Form/Field.php
+++ b/civicrm/CRM/Custom/Form/Field.php
@@ -191,7 +191,7 @@ class CRM_Custom_Form_Field extends CRM_Core_Form {
   public function buildQuickForm() {
     if ($this->_gid) {
       $this->_title = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $this->_gid, 'title');
-      CRM_Utils_System::setTitle($this->_title . ' - ' . ($this->_id ? ts('Edit Field') : ts('New Field')));
+      $this->setTitle($this->_title . ' - ' . ($this->_id ? ts('Edit Field') : ts('New Field')));
       $this->assign('gid', $this->_gid);
     }
 
diff --git a/civicrm/CRM/Custom/Form/Group.php b/civicrm/CRM/Custom/Form/Group.php
index ddf49e1c3a..e8e6655869 100644
--- a/civicrm/CRM/Custom/Form/Group.php
+++ b/civicrm/CRM/Custom/Form/Group.php
@@ -59,14 +59,14 @@ class CRM_Custom_Form_Group extends CRM_Core_Form {
     // setting title for html page
     if ($this->_action == CRM_Core_Action::UPDATE) {
       $title = CRM_Core_BAO_CustomGroup::getTitle($this->_id);
-      CRM_Utils_System::setTitle(ts('Edit %1', [1 => $title]));
+      $this->setTitle(ts('Edit %1', [1 => $title]));
     }
     elseif ($this->_action == CRM_Core_Action::VIEW) {
       $title = CRM_Core_BAO_CustomGroup::getTitle($this->_id);
-      CRM_Utils_System::setTitle(ts('Preview %1', [1 => $title]));
+      $this->setTitle(ts('Preview %1', [1 => $title]));
     }
     else {
-      CRM_Utils_System::setTitle(ts('New Custom Field Set'));
+      $this->setTitle(ts('New Custom Field Set'));
     }
 
     if (isset($this->_id)) {
diff --git a/civicrm/CRM/Custom/Form/MoveField.php b/civicrm/CRM/Custom/Form/MoveField.php
index 3156bb15ad..0dcd317734 100644
--- a/civicrm/CRM/Custom/Form/MoveField.php
+++ b/civicrm/CRM/Custom/Form/MoveField.php
@@ -76,7 +76,7 @@ class CRM_Custom_Form_MoveField extends CRM_Core_Form {
       'label'
     );
 
-    CRM_Utils_System::setTitle(ts('Custom Field Move: %1',
+    $this->setTitle(ts('Custom Field Move: %1',
       [1 => $this->_srcFieldLabel]
     ));
 
diff --git a/civicrm/CRM/Custom/Import/Controller.php b/civicrm/CRM/Custom/Import/Controller.php
index c67e399031..0f740f59af 100644
--- a/civicrm/CRM/Custom/Import/Controller.php
+++ b/civicrm/CRM/Custom/Import/Controller.php
@@ -15,10 +15,7 @@ class CRM_Custom_Import_Controller extends CRM_Core_Controller {
   public function __construct($title = NULL, $action = CRM_Core_Action::NONE, $modal = TRUE) {
     parent::__construct($title, $modal);
 
-    // lets get around the time limit issue if possible, CRM-2113
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     $this->_stateMachine = new CRM_Import_StateMachine($this, $action);
 
diff --git a/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php b/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php
index ce14df0c54..4dedd05586 100644
--- a/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php
+++ b/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php
@@ -115,7 +115,7 @@ class CRM_Dedupe_BAO_DedupeRuleGroup extends CRM_Dedupe_DAO_DedupeRuleGroup {
             continue;
           }
           foreach ($cg['fields'] as $cf) {
-            $fields[$ctype][$cg['table_name']][$cf['column_name']] = $cf['label'];
+            $fields[$ctype][$cg['table_name']][$cf['column_name']] = $cg['title'] . ' : ' . $cf['label'];
           }
         }
       }
diff --git a/civicrm/CRM/Event/BAO/Event.php b/civicrm/CRM/Event/BAO/Event.php
index 6baa7a793d..680c2b5fa1 100644
--- a/civicrm/CRM/Event/BAO/Event.php
+++ b/civicrm/CRM/Event/BAO/Event.php
@@ -154,7 +154,10 @@ class CRM_Event_BAO_Event extends CRM_Event_DAO_Event {
     }
 
     $transaction->commit();
-
+    if (!empty($params['id'])) {
+      // Note that this will specifically clear cached event tokens.
+      Civi::cache('metadata')->clear();
+    }
     return $event;
   }
 
@@ -1093,7 +1096,7 @@ WHERE civicrm_event.is_active = 1
                 TRUE,
                 $participantParams
               );
-              list($profileValues) = $profileValues;
+              [$profileValues] = $profileValues;
               $val = [
                 'id' => $gId,
                 'values' => $profileValues,
@@ -1108,9 +1111,9 @@ WHERE civicrm_event.is_active = 1
 
     if ($values['event']['is_email_confirm'] || $returnMessageText) {
       list($displayName, $email) = CRM_Contact_BAO_Contact_Location::getEmailDetails($contactID);
-
+      $notifyEmail = CRM_Utils_Array::valueByRegexKey('/^email-/', $participantParams) ?? $email;
       //send email only when email is present
-      if (isset($email) || $returnMessageText) {
+      if (isset($notifyEmail) || $returnMessageText) {
         $preProfileID = $values['custom_pre_id'] ?? NULL;
         $postProfileID = $values['custom_post_id'] ?? NULL;
 
@@ -1153,7 +1156,7 @@ WHERE civicrm_event.is_active = 1
           $customPostTitles = NULL;
         }
         $tplParams = array_merge($values, $participantParams, [
-          'email' => $email,
+          'email' => $notifyEmail,
           'confirm_email_text' => $values['event']['confirm_email_text'] ?? NULL,
           'isShowLocation' => $values['event']['is_show_location'] ?? NULL,
           // The concept of contributeMode is deprecated.
@@ -1233,7 +1236,7 @@ WHERE civicrm_event.is_active = 1
         else {
           $sendTemplateParams['from'] = CRM_Utils_Array::value('confirm_from_name', $values['event']) . " <" . CRM_Utils_Array::value('confirm_from_email', $values['event']) . ">";
           $sendTemplateParams['toName'] = $displayName;
-          $sendTemplateParams['toEmail'] = $email;
+          $sendTemplateParams['toEmail'] = $notifyEmail;
           $sendTemplateParams['autoSubmitted'] = TRUE;
           $sendTemplateParams['cc'] = CRM_Utils_Array::value('cc_confirm',
             $values['event']
diff --git a/civicrm/CRM/Event/DAO/Participant.php b/civicrm/CRM/Event/DAO/Participant.php
index 74b25157d2..1dd50ba91d 100644
--- a/civicrm/CRM/Event/DAO/Participant.php
+++ b/civicrm/CRM/Event/DAO/Participant.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Event/Participant.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:fcaf9990a79e1ea3bd799a6ff75db893)
+ * (GenCodeChecksum:4ca199ee96c9079ad7ce673c7a06d5f6)
  */
 
 /**
@@ -315,7 +315,7 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
         'participant_role_id' => [
           'name' => 'role_id',
           'type' => CRM_Utils_Type::T_STRING,
-          'title' => ts('Participant Role'),
+          'title' => ts('Participant Role ID'),
           'description' => ts('Participant role ID. Implicit FK to civicrm_option_value where option_group = participant_role.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
@@ -331,6 +331,7 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'serialize' => self::SERIALIZE_SEPARATOR_TRIMMED,
           'html' => [
             'type' => 'Select',
+            'label' => ts("Participant Role"),
           ],
           'pseudoconstant' => [
             'optionGroupName' => 'participant_role',
diff --git a/civicrm/CRM/Event/Form/ParticipantFeeSelection.php b/civicrm/CRM/Event/Form/ParticipantFeeSelection.php
index 876da092c2..a4cb587a92 100644
--- a/civicrm/CRM/Event/Form/ParticipantFeeSelection.php
+++ b/civicrm/CRM/Event/Form/ParticipantFeeSelection.php
@@ -95,7 +95,7 @@ class CRM_Event_Form_ParticipantFeeSelection extends CRM_Core_Form {
 
     $title = ts("Change selections for %1", [1 => $this->_contributorDisplayName]);
     if ($title) {
-      CRM_Utils_System::setTitle($title);
+      $this->setTitle($title);
     }
   }
 
diff --git a/civicrm/CRM/Event/Form/ParticipantView.php b/civicrm/CRM/Event/Form/ParticipantView.php
index db19ee9c6e..6d205cc9bd 100644
--- a/civicrm/CRM/Event/Form/ParticipantView.php
+++ b/civicrm/CRM/Event/Form/ParticipantView.php
@@ -207,7 +207,7 @@ class CRM_Event_Form_ParticipantView extends CRM_Core_Form {
     }
     $this->assign('displayName', $displayName);
     // omitting contactImage from title for now since the summary overlay css doesn't work outside of our crm-container
-    CRM_Utils_System::setTitle(ts('View Event Registration for') . ' ' . $displayName);
+    $this->setTitle(ts('View Event Registration for') . ' ' . $displayName);
 
     $roleId = $values[$participantID]['role_id'] ?? NULL;
     $title = $displayName . ' (' . CRM_Utils_Array::value($roleId, $participantRoles) . ' - ' . $eventTitle . ')';
diff --git a/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php b/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php
index e5614e018b..37fcc48b46 100644
--- a/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php
+++ b/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php
@@ -72,7 +72,7 @@ class CRM_Event_Form_Registration_AdditionalParticipant extends CRM_Event_Form_R
     if ($skipCount) {
       $this->assign('skipCount', $skipCount);
     }
-    CRM_Utils_System::setTitle(ts('Register Participant %1 of %2', [1 => $participantCnt, 2 => $participantTot]));
+    $this->setTitle(ts('Register Participant %1 of %2', [1 => $participantCnt, 2 => $participantTot]));
 
     //CRM-4320, hack to check last participant.
     $this->_lastParticipant = FALSE;
diff --git a/civicrm/CRM/Event/Form/Registration/Confirm.php b/civicrm/CRM/Event/Form/Registration/Confirm.php
index d83cad562f..fa09baa91e 100644
--- a/civicrm/CRM/Event/Form/Registration/Confirm.php
+++ b/civicrm/CRM/Event/Form/Registration/Confirm.php
@@ -87,7 +87,7 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
     }
 
     if (isset($this->_values['event']['confirm_title'])) {
-      CRM_Utils_System::setTitle($this->_values['event']['confirm_title']);
+      $this->setTitle($this->_values['event']['confirm_title']);
     }
 
     // Personal campaign page
diff --git a/civicrm/CRM/Event/Form/Registration/ThankYou.php b/civicrm/CRM/Event/Form/Registration/ThankYou.php
index 12dbd1abfa..f7f7e9386d 100644
--- a/civicrm/CRM/Event/Form/Registration/ThankYou.php
+++ b/civicrm/CRM/Event/Form/Registration/ThankYou.php
@@ -46,7 +46,7 @@ class CRM_Event_Form_Registration_ThankYou extends CRM_Event_Form_Registration {
 
     CRM_Event_Form_Registration_Confirm::assignProfiles($this);
 
-    CRM_Utils_System::setTitle(CRM_Utils_Array::value('thankyou_title', $this->_values['event']));
+    $this->setTitle(CRM_Utils_Array::value('thankyou_title', $this->_values['event']));
   }
 
   /**
@@ -73,7 +73,10 @@ class CRM_Event_Form_Registration_ThankYou extends CRM_Event_Form_Registration {
     // Assign the email address from a contact id lookup as in CRM_Event_BAO_Event->sendMail()
     $primaryContactId = $this->get('primaryContactId');
     if ($primaryContactId) {
-      list($displayName, $email) = CRM_Contact_BAO_Contact_Location::getEmailDetails($primaryContactId);
+      $email = CRM_Utils_Array::valueByRegexKey('/^email-/', current($this->_params));
+      if (!$email) {
+        $email = CRM_Contact_BAO_Contact::getPrimaryEmail($primaryContactId);
+      }
       $this->assign('email', $email);
     }
     $this->assignToTemplate();
diff --git a/civicrm/CRM/Event/Form/SelfSvcTransfer.php b/civicrm/CRM/Event/Form/SelfSvcTransfer.php
index 22381d1efc..8d6a3488ec 100644
--- a/civicrm/CRM/Event/Form/SelfSvcTransfer.php
+++ b/civicrm/CRM/Event/Form/SelfSvcTransfer.php
@@ -159,7 +159,7 @@ class CRM_Event_Form_SelfSvcTransfer extends CRM_Core_Form {
     $this->_event_title = CRM_Event_BAO_Event::getFieldValue('CRM_Event_DAO_Event', $this->_event_id, $daoName);
     $daoName = 'start_date';
     $this->_event_start_date = CRM_Event_BAO_Event::getFieldValue('CRM_Event_DAO_Event', $this->_event_id, $daoName);
-    list($displayName, $email) = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_from_contact_id);
+    [$displayName, $email] = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_from_contact_id);
     $this->_contact_name = $displayName;
     $this->_contact_email = $email;
 
@@ -342,21 +342,18 @@ class CRM_Event_Form_SelfSvcTransfer extends CRM_Core_Form {
   /**
    * Based on input, create participant row for transferee and send email
    *
-   * return @ void
+   * @param $participant
    *
+   * @throws \API_Exception
    * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
-  public function participantTransfer($participant) {
-    $contactDetails = [];
-    $contactIds[] = $participant->contact_id;
-    list($currentContactDetails) = CRM_Utils_Token::getTokenDetails($contactIds, NULL,
-      FALSE, FALSE, NULL, [], 'CRM_Event_BAO_Participant');
-    foreach ($currentContactDetails as $contactId => $contactValues) {
-      $contactDetails[$contactId] = $contactValues;
-    }
+  public function participantTransfer($participant): void {
+    $contactDetails = civicrm_api3('Contact', 'getsingle', ['id' => $participant->contact_id, 'return' => ['display_name', 'email']]);
+
     $participantRoles = CRM_Event_PseudoConstant::participantRole();
     $participantDetails = [];
-    $query = "SELECT * FROM civicrm_participant WHERE id = " . $participant->id;
+    $query = 'SELECT * FROM civicrm_participant WHERE id = ' . $participant->id;
     $dao = CRM_Core_DAO::executeQuery($query);
     while ($dao->fetch()) {
       $participantDetails[$dao->id] = [
@@ -371,23 +368,7 @@ class CRM_Event_Form_SelfSvcTransfer extends CRM_Core_Form {
         'registered_by_id' => $dao->registered_by_id,
       ];
     }
-    $domainValues = [];
-    if (empty($domainValues)) {
-      $domain = CRM_Core_BAO_Domain::getDomain();
-      $tokens = [
-        'domain' =>
-        [
-          'name',
-          'phone',
-          'address',
-          'email',
-        ],
-        'contact' => CRM_Core_SelectValues::contactTokens(),
-      ];
-      foreach ($tokens['domain'] as $token) {
-        $domainValues[$token] = CRM_Utils_Token::getDomainTokenReplacement($token, $domain);
-      }
-    }
+
     $eventDetails = [];
     $eventParams = ['id' => $participant->event_id];
     CRM_Event_BAO_Event::retrieve($eventParams, $eventDetails);
@@ -399,14 +380,15 @@ class CRM_Event_Form_SelfSvcTransfer extends CRM_Core_Form {
       'entity_table' => 'civicrm_event',
     ];
     $eventDetails['location'] = CRM_Core_BAO_Location::getValues($locParams, TRUE);
-    $toEmail = $contactDetails[$participant->contact_id]['email'] ?? NULL;
+    $toEmail = $contactDetails['email'] ?? NULL;
     if ($toEmail) {
       //take a receipt from as event else domain.
-      $receiptFrom = $domainValues['name'] . ' <' . $domainValues['email'] . '>';
+      $receiptFrom = CRM_Core_BAO_Domain::getNameAndEmail(FALSE, TRUE);
+      $receiptFrom = reset($receiptFrom);
       if (!empty($eventDetails['confirm_from_name']) && !empty($eventDetails['confirm_from_email'])) {
         $receiptFrom = $eventDetails['confirm_from_name'] . ' <' . $eventDetails['confirm_from_email'] . '>';
       }
-      $participantName = $contactDetails[$participant->contact_id]['display_name'];
+      $participantName = $contactDetails['display_name'];
       $tplParams = [
         'event' => $eventDetails,
         'participant' => $participantDetails[$participant->id],
diff --git a/civicrm/CRM/Event/Form/SelfSvcUpdate.php b/civicrm/CRM/Event/Form/SelfSvcUpdate.php
index a87d7aff27..2f3ac769e0 100644
--- a/civicrm/CRM/Event/Form/SelfSvcUpdate.php
+++ b/civicrm/CRM/Event/Form/SelfSvcUpdate.php
@@ -160,7 +160,7 @@ class CRM_Event_Form_SelfSvcUpdate extends CRM_Core_Form {
    * return @void
    */
   public function buildQuickForm() {
-    $this->add('select', 'action', ts('Transfer or Cancel Registration'), [ts('-select-'), ts('Transfer'), ts('Cancel')], TRUE);
+    $this->add('select', 'action', ts('Transfer or Cancel Registration'), [ts('-select-'), ts('Transfer'), ts('Cancel Registration')], TRUE);
     $this->addButtons([
       [
         'type' => 'submit',
diff --git a/civicrm/CRM/Event/Form/Task.php b/civicrm/CRM/Event/Form/Task.php
index e3bbae330d..a23da4c6b5 100644
--- a/civicrm/CRM/Event/Form/Task.php
+++ b/civicrm/CRM/Event/Form/Task.php
@@ -15,6 +15,8 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Participant;
+
 /**
  * Class for event form task actions.
  * FIXME: This needs refactoring to properly inherit from CRM_Core_Form_Task and share more functions.
@@ -28,6 +30,16 @@ class CRM_Event_Form_Task extends CRM_Core_Form_Task {
    */
   protected $_participantIds;
 
+  /**
+   * Rows to act on.
+   *
+   * Each row will have a participant ID & a contact ID using
+   * the keys the token processor expects.
+   *
+   * @var array
+   */
+  protected $rows = [];
+
   /**
    * Build all the data structures needed to build the form.
    *
@@ -83,14 +95,36 @@ class CRM_Event_Form_Task extends CRM_Core_Form_Task {
     $form->setNextUrl('event');
   }
 
+  /**
+   * Get the participant IDs.
+   *
+   * @return array
+   */
+  public function getIDs(): array {
+    return $this->_participantIds;
+  }
+
   /**
    * Given the participant id, compute the contact id
    * since its used for things like send email
    */
-  public function setContactIDs() {
-    $this->_contactIds = CRM_Core_DAO::getContactIDsFromComponent($this->_participantIds,
-      'civicrm_participant'
-    );
+  public function setContactIDs(): void {
+    $this->_contactIds = $this->getContactIDs();
+  }
+
+  /**
+   * Get the relevant contact IDs.
+   *
+   * @return array
+   */
+  protected function getContactIDs(): array {
+    if (isset($this->_contactIds)) {
+      return $this->_contactIds;
+    }
+    foreach ($this->getRows() as $row) {
+      $this->_contactIds[] = $row['contact_id'];
+    }
+    return $this->_contactIds;
   }
 
   /**
@@ -119,4 +153,38 @@ class CRM_Event_Form_Task extends CRM_Core_Form_Task {
     ]);
   }
 
+  /**
+   * Get the rows form the search, keyed to make the token processor happy.
+   *
+   * @throws \API_Exception
+   */
+  protected function getRows(): array {
+    if (empty($this->rows)) {
+      // checkPermissions set to false - in case form is bypassing in some way.
+      $participants = Participant::get(FALSE)
+        ->addWhere('id', 'IN', $this->getIDs())
+        ->setSelect(['id', 'contact_id'])->execute();
+      foreach ($participants as $participant) {
+        $this->rows[] = [
+          'contact_id' => $participant['contact_id'],
+          'participant_id' => $participant['id'],
+          'schema' => [
+            'contactId' => $participant['contact_id'],
+            'participantId' => $participant['id'],
+          ],
+        ];
+      }
+    }
+    return $this->rows;
+  }
+
+  /**
+   * Get the token processor schema required to list any tokens for this task.
+   *
+   * @return array
+   */
+  public function getTokenSchema(): array {
+    return ['participantId', 'contactId', 'eventId'];
+  }
+
 }
diff --git a/civicrm/CRM/Event/Form/Task/AddToGroup.php b/civicrm/CRM/Event/Form/Task/AddToGroup.php
index 11a7f3fca7..ac41fd7faa 100644
--- a/civicrm/CRM/Event/Form/Task/AddToGroup.php
+++ b/civicrm/CRM/Event/Form/Task/AddToGroup.php
@@ -120,10 +120,10 @@ class CRM_Event_Form_Task_AddToGroup extends CRM_Event_Form_Task {
 
     // Set dynamic page title for 'Add Members Group (confirm)'
     if ($this->_id) {
-      CRM_Utils_System::setTitle(ts('Add Contacts: %1', [1 => $this->_title]));
+      $this->setTitle(ts('Add Contacts: %1', [1 => $this->_title]));
     }
     else {
-      CRM_Utils_System::setTitle(ts('Add Contacts to A Group'));
+      $this->setTitle(ts('Add Contacts to A Group'));
     }
 
     $this->addDefaultButtons(ts('Add to Group'));
diff --git a/civicrm/CRM/Event/Form/Task/Badge.php b/civicrm/CRM/Event/Form/Task/Badge.php
index 2c1a5eebb0..501105c5c0 100644
--- a/civicrm/CRM/Event/Form/Task/Badge.php
+++ b/civicrm/CRM/Event/Form/Task/Badge.php
@@ -67,7 +67,7 @@ class CRM_Event_Form_Task_Badge extends CRM_Event_Form_Task {
    * Build the form object.
    */
   public function buildQuickForm() {
-    CRM_Utils_System::setTitle(ts('Make Name Badges'));
+    $this->setTitle(ts('Make Name Badges'));
 
     // Ajax submit would interfere with file download
     $this->preventAjaxSubmit();
diff --git a/civicrm/CRM/Event/Form/Task/Batch.php b/civicrm/CRM/Event/Form/Task/Batch.php
index 0107df02de..8e45031d14 100644
--- a/civicrm/CRM/Event/Form/Task/Batch.php
+++ b/civicrm/CRM/Event/Form/Task/Batch.php
@@ -84,7 +84,7 @@ class CRM_Event_Form_Task_Batch extends CRM_Event_Form_Task {
     }
 
     $this->_title = ts('Update multiple participants') . ' - ' . CRM_Core_BAO_UFGroup::getTitle($ufGroupId);
-    CRM_Utils_System::setTitle($this->_title);
+    $this->setTitle($this->_title);
     $this->addDefaultButtons(ts('Save'));
 
     $this->_fields = CRM_Core_BAO_UFGroup::getFields($ufGroupId, FALSE, CRM_Core_Action::VIEW);
diff --git a/civicrm/CRM/Event/Form/Task/Cancel.php b/civicrm/CRM/Event/Form/Task/Cancel.php
index 71a29f9d89..32507e7e55 100644
--- a/civicrm/CRM/Event/Form/Task/Cancel.php
+++ b/civicrm/CRM/Event/Form/Task/Cancel.php
@@ -46,7 +46,7 @@ class CRM_Event_Form_Task_Cancel extends CRM_Event_Form_Task {
    * @return void
    */
   public function buildQuickForm() {
-    CRM_Utils_System::setTitle(ts('Cancel Registration for Event Participation'));
+    $this->setTitle(ts('Cancel Registration for Event Participation'));
     $session = CRM_Core_Session::singleton();
     $this->addDefaultButtons(ts('Cancel Registrations'), 'done');
   }
diff --git a/civicrm/CRM/Event/Form/Task/Email.php b/civicrm/CRM/Event/Form/Task/Email.php
index cd0270b376..85f1af9f80 100644
--- a/civicrm/CRM/Event/Form/Task/Email.php
+++ b/civicrm/CRM/Event/Form/Task/Email.php
@@ -22,4 +22,17 @@
 class CRM_Event_Form_Task_Email extends CRM_Event_Form_Task {
   use CRM_Contact_Form_Task_EmailTrait;
 
+  /**
+   * Only send one email per contact.
+   *
+   * This has historically been done for contributions & makes sense if
+   * no entity specific tokens are in use.
+   *
+   * @return bool
+   * @throws \CRM_Core_Exception
+   */
+  protected function isGroupByContact(): bool {
+    return !empty($this->getMessageTokens()['participant']) || !empty($this->getMessageTokens()['event']);
+  }
+
 }
diff --git a/civicrm/CRM/Event/Form/Task/PDF.php b/civicrm/CRM/Event/Form/Task/PDF.php
index 9ce1baed9c..0f0d25436f 100644
--- a/civicrm/CRM/Event/Form/Task/PDF.php
+++ b/civicrm/CRM/Event/Form/Task/PDF.php
@@ -48,28 +48,7 @@ class CRM_Event_Form_Task_PDF extends CRM_Event_Form_Task {
   public function preProcess() {
     $this->preProcessPDF();
     parent::preProcess();
-
-    // we have all the participant ids, so now we get the contact ids
-    parent::setContactIDs();
-
     $this->assign('single', $this->_single);
   }
 
-  /**
-   * Process the form after the input has been submitted and validated.
-   */
-  public function postProcess() {
-    CRM_Contact_Form_Task_PDFLetterCommon::postProcess($this);
-  }
-
-  /**
-   * List available tokens for this form.
-   *
-   * @return array
-   */
-  public function listTokens() {
-    $tokens = CRM_Core_SelectValues::contactTokens();
-    return $tokens;
-  }
-
 }
diff --git a/civicrm/CRM/Event/Form/Task/PickProfile.php b/civicrm/CRM/Event/Form/Task/PickProfile.php
index d120f81b5f..6ec7b87576 100644
--- a/civicrm/CRM/Event/Form/Task/PickProfile.php
+++ b/civicrm/CRM/Event/Form/Task/PickProfile.php
@@ -51,7 +51,7 @@ class CRM_Event_Form_Task_PickProfile extends CRM_Event_Form_Task {
     $session = CRM_Core_Session::singleton();
     $this->_userContext = $session->readUserContext();
 
-    CRM_Utils_System::setTitle(ts('Update multiple participants'));
+    $this->setTitle(ts('Update multiple participants'));
 
     $validate = FALSE;
     //validations
diff --git a/civicrm/CRM/Event/Form/Task/SaveSearch.php b/civicrm/CRM/Event/Form/Task/SaveSearch.php
index 32f54f67f2..f05f682fd0 100644
--- a/civicrm/CRM/Event/Form/Task/SaveSearch.php
+++ b/civicrm/CRM/Event/Form/Task/SaveSearch.php
@@ -48,7 +48,7 @@ class CRM_Event_Form_Task_SaveSearch extends CRM_Event_Form_Task {
    * @return void
    */
   public function buildQuickForm() {
-    CRM_Utils_System::setTitle(ts('Smart Group'));
+    $this->setTitle(ts('Smart Group'));
     // get the qill
     $query = new CRM_Event_BAO_Query($this->get('formValues'));
     $qill = $query->qill();
diff --git a/civicrm/CRM/Event/Import/Controller.php b/civicrm/CRM/Event/Import/Controller.php
index baf5521a88..233b63231e 100644
--- a/civicrm/CRM/Event/Import/Controller.php
+++ b/civicrm/CRM/Event/Import/Controller.php
@@ -26,10 +26,7 @@ class CRM_Event_Import_Controller extends CRM_Core_Controller {
   public function __construct($title = NULL, $action = CRM_Core_Action::NONE, $modal = TRUE) {
     parent::__construct($title, $modal);
 
-    // lets get around the time limit issue if possible, CRM-2113
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     $this->_stateMachine = new CRM_Import_StateMachine($this, $action);
 
diff --git a/civicrm/CRM/Event/ParticipantTokens.php b/civicrm/CRM/Event/ParticipantTokens.php
new file mode 100644
index 0000000000..b29050fcf1
--- /dev/null
+++ b/civicrm/CRM/Event/ParticipantTokens.php
@@ -0,0 +1,106 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+use Civi\Token\TokenRow;
+
+/**
+ * Class CRM_Event_ParticipantTokens
+ *
+ * Generate "participant.*" tokens.
+ */
+class CRM_Event_ParticipantTokens extends CRM_Core_EntityTokens {
+
+  /**
+   * Get the entity name for api v4 calls.
+   *
+   * @return string
+   */
+  protected function getApiEntityName(): string {
+    return 'Participant';
+  }
+
+  /**
+   * @return array
+   */
+  public function getCurrencyFieldName(): array {
+    return ['fee_currency'];
+  }
+
+  /**
+   * Get any tokens with custom calculation.
+   */
+  protected function getBespokeTokens(): array {
+    return [
+      'balance' => [
+        'title' => ts('Event Balance'),
+        'name' => 'balance',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => 'Money',
+        'audience' => 'user',
+      ],
+    ];
+  }
+
+  public function alterActionScheduleQuery(\Civi\ActionSchedule\Event\MailingQueryEvent $e): void {
+    // When targeting `civicrm_participant` records, we enable both `{participant.*}` (per usual) and the related `{event.*}`.
+    parent::alterActionScheduleQuery($e);
+    if ($e->mapping->getEntity() === $this->getExtendableTableName()) {
+      $e->query->select('e.event_id AS tokenContext_eventId');
+    }
+  }
+
+  /**
+   * @inheritDoc
+   * @throws \CiviCRM_API3_Exception
+   */
+  public function evaluateToken(TokenRow $row, $entity, $field, $prefetch = NULL) {
+    $this->prefetch = (array) $prefetch;
+    if ($field === 'balance') {
+      // @todo - is this really a good idea to call this & potentially get the
+      // balance of the contribution attached to 'registered_by_id'
+      $info = \CRM_Contribute_BAO_Contribution::getPaymentInfo($this->getFieldValue($row, 'id'), 'event');
+      $balancePay = $info['balance'] ?? NULL;
+      $balancePay = \CRM_Utils_Money::format($balancePay);
+      $row->tokens($entity, $field, $balancePay);
+      return;
+    }
+    parent::evaluateToken($row, $entity, $field, $prefetch);
+  }
+
+  /**
+   * Do not show event id in the UI as event.id will also be available.
+   *
+   * Discount id is probably a bit esoteric.
+   *
+   * @return string[]
+   */
+  protected function getHiddenTokens(): array {
+    return ['event_id', 'discount_id'];
+  }
+
+  /**
+   * Get entity fields that should not be exposed as tokens.
+   *
+   * @return string[]
+   */
+  protected function getSkippedFields(): array {
+    $fields = parent::getSkippedFields();
+    // Never add these 2 fields - may not be a stable part of the schema.
+    // This field is on it's way out of core.
+    $fields[] = 'cart_id';
+    // this will probably get schema changed out of the table at some point.
+    $fields[] = 'is_pay_later';
+    return $fields;
+  }
+
+}
diff --git a/civicrm/CRM/Event/Tokens.php b/civicrm/CRM/Event/Tokens.php
index 15784cd872..ca6fb553dd 100644
--- a/civicrm/CRM/Event/Tokens.php
+++ b/civicrm/CRM/Event/Tokens.php
@@ -10,6 +10,9 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Api4\Event;
+use Civi\Token\TokenRow;
+
 /**
  * Class CRM_Event_Tokens
  *
@@ -22,116 +25,162 @@
  * implementation which is not tied to scheduled reminders, although
  * that is outside the current scope.
  */
-class CRM_Event_Tokens extends \Civi\Token\AbstractTokenSubscriber {
+class CRM_Event_Tokens extends CRM_Core_EntityTokens {
 
   /**
-   * Class constructor.
+   * Get the entity name for api v4 calls.
+   *
+   * @return string
    */
-  public function __construct() {
-    parent::__construct('event', array_merge(
-      [
-        'event_type' => ts('Event Type'),
-        'title' => ts('Event Title'),
-        'event_id' => ts('Event ID'),
-        'start_date' => ts('Event Start Date'),
-        'end_date' => ts('Event End Date'),
-        'summary' => ts('Event Summary'),
-        'description' => ts('Event Description'),
-        'location' => ts('Event Location'),
-        'info_url' => ts('Event Info URL'),
-        'registration_url' => ts('Event Registration URL'),
-        'fee_amount' => ts('Event Fee'),
-        'contact_email' => ts('Event Contact (Email)'),
-        'contact_phone' => ts('Event Contact (Phone)'),
-        'balance' => ts('Event Balance'),
+  protected function getApiEntityName(): string {
+    return 'Event';
+  }
+
+  /**
+   * Get all tokens.
+   *
+   * This function will be removed once the parent class can determine it.
+   */
+  protected function getBespokeTokens(): array {
+    return [
+      'location' => [
+        'title' => ts('Event Location'),
+        'name' => 'location',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => 'String',
+        'audience' => 'user',
+      ],
+      'info_url' => [
+        'title' => ts('Event Info URL'),
+        'name' => 'info_url',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => 'String',
+        'audience' => 'user',
+      ],
+      'registration_url' => [
+        'title' => ts('Event Registration URL'),
+        'name' => 'registration_url',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => 'String',
+        'audience' => 'user',
       ],
-      CRM_Utils_Token::getCustomFieldTokens('Event')
-    ));
+      'contact_email' => [
+        'title' => ts('Event Contact Email'),
+        'name' => 'contact_email',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => 'String',
+        'audience' => 'user',
+      ],
+      'contact_phone' => [
+        'title' => ts('Event Contact Phone'),
+        'name' => 'contact_phone',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => '',
+        'audience' => 'user',
+      ],
+    ];
   }
 
   /**
    * @inheritDoc
+   * @throws \API_Exception
    */
-  public function checkActive(\Civi\Token\TokenProcessor $processor) {
-    // Extracted from scheduled-reminders code. See the class description.
-    return !empty($processor->context['actionMapping'])
-      && $processor->context['actionMapping']->getEntity() === 'civicrm_participant';
+  public function evaluateToken(TokenRow $row, $entity, $field, $prefetch = NULL) {
+    $eventID = $this->getFieldValue($row, 'id');
+    if (array_key_exists($field, $this->getEventTokenValues($eventID))) {
+      foreach ($this->getEventTokenValues($eventID)[$field] as $format => $value) {
+        $row->format($format)->tokens($entity, $field, $value ?? '');
+      }
+    }
   }
 
   /**
-   * Alter action schedule query.
+   * Get the tokens available for the event.
+   *
+   * Cache by event as it's l
    *
-   * @param \Civi\ActionSchedule\Event\MailingQueryEvent $e
+   * @param int|null $eventID
+   *
+   * @return array
+   *
+   * @throws \API_Exception|\CRM_Core_Exception
+   *
+   * @internal
    */
-  public function alterActionScheduleQuery(\Civi\ActionSchedule\Event\MailingQueryEvent $e) {
-    if ($e->mapping->getEntity() !== 'civicrm_participant') {
-      return;
+  protected function getEventTokenValues(int $eventID = NULL): array {
+    $cacheKey = __CLASS__ . 'event_tokens' . $eventID . '_' . CRM_Core_I18n::getLocale();
+    if ($this->checkPermissions) {
+      $cacheKey .= '__' . CRM_Core_Session::getLoggedInContactID();
     }
+    if (!Civi::cache('metadata')->has($cacheKey)) {
+      $event = Event::get($this->checkPermissions)->addWhere('id', '=', $eventID)
+        ->setSelect(array_merge([
+          'loc_block_id.address_id.street_address',
+          'loc_block_id.address_id.city',
+          'loc_block_id.address_id.state_province_id:label',
+          'loc_block_id.address_id.postal_code',
+          'loc_block_id.email_id.email',
+          'loc_block_id.phone_id.phone',
+          'custom.*',
+        ], $this->getExposedFields()))
+        ->execute()->first();
+      $tokens['location']['text/plain'] = \CRM_Utils_Address::format([
+        'street_address' => $event['loc_block_id.address_id.street_address'],
+        'city' => $event['loc_block_id.address_id.city'],
+        'state_province' => $event['loc_block_id.address_id.state_province_id:label'],
+        'postal_code' => $event['loc_block_id.address_id.postal_code'],
+
+      ]);
+      $tokens['info_url']['text/html'] = \CRM_Utils_System::url('civicrm/event/info', 'reset=1&id=' . $eventID, TRUE, NULL, FALSE);
+      $tokens['registration_url']['text/html'] = \CRM_Utils_System::url('civicrm/event/register', 'reset=1&id=' . $eventID, TRUE, NULL, FALSE);
+      $tokens['start_date']['text/html'] = !empty($event['start_date']) ? new DateTime($event['start_date']) : '';
+      $tokens['end_date']['text/html'] = !empty($event['end_date']) ? new DateTime($event['end_date']) : '';
+      $tokens['event_type_id:label']['text/html'] = CRM_Core_PseudoConstant::getLabel('CRM_Event_BAO_Event', 'event_type_id', $event['event_type_id']);
+      $tokens['event_type_id:name']['text/html'] = CRM_Core_PseudoConstant::getName('CRM_Event_BAO_Event', 'event_type_id', $event['event_type_id']);
+      $tokens['contact_phone']['text/html'] = $event['loc_block_id.phone_id.phone'];
+      $tokens['contact_email']['text/html'] = $event['loc_block_id.email_id.email'];
 
-    // FIXME: seems too broad.
-    $e->query->select('e.*');
-    $e->query->select('ov.label as event_type, ev.title, ev.id as event_id, ev.start_date, ev.end_date, ev.summary, ev.description, address.street_address, address.city, address.state_province_id, address.postal_code, email.email as contact_email, phone.phone as contact_phone');
-    $e->query->join('participant_stuff', "
-!casMailingJoinType civicrm_event ev ON e.event_id = ev.id
-!casMailingJoinType civicrm_option_group og ON og.name = 'event_type'
-!casMailingJoinType civicrm_option_value ov ON ev.event_type_id = ov.value AND ov.option_group_id = og.id
-LEFT JOIN civicrm_loc_block lb ON lb.id = ev.loc_block_id
-LEFT JOIN civicrm_address address ON address.id = lb.address_id
-LEFT JOIN civicrm_email email ON email.id = lb.email_id
-LEFT JOIN civicrm_phone phone ON phone.id = lb.phone_id
-");
+      foreach ($this->getTokenMetadata() as $fieldName => $fieldSpec) {
+        if (!isset($tokens[$fieldName])) {
+          if ($fieldSpec['type'] === 'Custom') {
+            $this->prefetch[$eventID] = $event;
+            $value = $event[$fieldSpec['name']];
+            $tokens[$fieldName]['text/html'] = CRM_Core_BAO_CustomField::displayValue($value, $fieldSpec['custom_field_id']);
+          }
+          else {
+            $tokens[$fieldName]['text/html'] = $event[$fieldName];
+          }
+        }
+      }
+      Civi::cache('metadata')->set($cacheKey, $tokens);
+    }
+    return Civi::cache('metadata')->get($cacheKey);
   }
 
   /**
-   * @inheritDoc
+   * Get entity fields that should be exposed as tokens.
+   *
+   * Event has traditionally exposed very few fields. This is probably because
+   * a) there are a tonne of weird fields so an opt out approach doesn't work and
+   * b) so people just added what they needed at the time...
+   *
+   * @return string[]
+   *
    */
-  public function evaluateToken(\Civi\Token\TokenRow $row, $entity, $field, $prefetch = NULL) {
-    $actionSearchResult = $row->context['actionSearchResult'];
-
-    if ($field == 'location') {
-      $loc = [];
-      $stateProvince = \CRM_Core_PseudoConstant::stateProvince();
-      $loc['street_address'] = $actionSearchResult->street_address;
-      $loc['city'] = $actionSearchResult->city;
-      $loc['state_province'] = $stateProvince[$actionSearchResult->state_province_id] ?? NULL;
-      $loc['postal_code'] = $actionSearchResult->postal_code;
-      //$entityTokenParams[$tokenEntity][$field] = \CRM_Utils_Address::format($loc);
-      $row->tokens($entity, $field, \CRM_Utils_Address::format($loc));
-    }
-    elseif ($field == 'info_url') {
-      $row
-        ->tokens($entity, $field, \CRM_Utils_System::url('civicrm/event/info', 'reset=1&id=' . $actionSearchResult->event_id, TRUE, NULL, FALSE));
-    }
-    elseif ($field == 'registration_url') {
-      $row
-        ->tokens($entity, $field, \CRM_Utils_System::url('civicrm/event/register', 'reset=1&id=' . $actionSearchResult->event_id, TRUE, NULL, FALSE));
-    }
-    elseif (in_array($field, ['start_date', 'end_date'])) {
-      $row->tokens($entity, $field, \CRM_Utils_Date::customFormat($actionSearchResult->$field));
-    }
-    elseif ($field == 'balance') {
-      if ($actionSearchResult->entityTable == 'civicrm_contact') {
-        $balancePay = 'N/A';
-      }
-      elseif (!empty($actionSearchResult->entityID)) {
-        $info = \CRM_Contribute_BAO_Contribution::getPaymentInfo($actionSearchResult->entityID, 'event');
-        $balancePay = $info['balance'] ?? NULL;
-        $balancePay = \CRM_Utils_Money::format($balancePay);
-      }
-      $row->tokens($entity, $field, $balancePay);
-    }
-    elseif ($field == 'fee_amount') {
-      $row->tokens($entity, $field, \CRM_Utils_Money::format($actionSearchResult->$field));
-    }
-    elseif (isset($actionSearchResult->$field)) {
-      $row->tokens($entity, $field, $actionSearchResult->$field);
-    }
-    elseif ($cfID = \CRM_Core_BAO_CustomField::getKeyID($field)) {
-      $row->customToken($entity, $cfID, $actionSearchResult->entity_id);
-    }
-    else {
-      $row->tokens($entity, $field, '');
-    }
+  protected function getExposedFields(): array {
+    return ['event_type_id',
+      'title',
+      'id',
+      'start_date',
+      'end_date',
+      'summary',
+      'description',
+    ];
   }
 
 }
diff --git a/civicrm/CRM/Export/BAO/ExportProcessor.php b/civicrm/CRM/Export/BAO/ExportProcessor.php
index 055c707785..18a5663ff8 100644
--- a/civicrm/CRM/Export/BAO/ExportProcessor.php
+++ b/civicrm/CRM/Export/BAO/ExportProcessor.php
@@ -794,7 +794,7 @@ class CRM_Export_BAO_ExportProcessor {
     //sort by state
     //CRM-15301
     $query->_sort = $order;
-    list($select, $from, $where, $having) = $query->query();
+    [$select, $from, $where, $having] = $query->query();
     $this->setQueryFields($query->_fields);
     $whereClauses = ['trash_clause' => "contact_a.is_deleted != 1"];
     if ($this->getComponentClause()) {
@@ -844,7 +844,7 @@ class CRM_Export_BAO_ExportProcessor {
         $order .= ", contact_a.id";
       }
 
-      list($field, $dir) = explode(' ', $order, 2);
+      [$field, $dir] = explode(' ', $order, 2);
       $field = trim($field);
       if (!empty($this->getReturnProperties()[$field])) {
         //CRM-15301
@@ -1464,6 +1464,16 @@ class CRM_Export_BAO_ExportProcessor {
 
         case CRM_Utils_Type::T_STRING:
           if (isset($fieldSpec['maxlength'])) {
+            // A localized string for the preferred_mail_format does not fit
+            // into the varchar(8) field.
+            // @see https://lab.civicrm.org/dev/core/-/issues/2645
+            switch ($fieldName) {
+              case 'preferred_mail_format':
+                return "`$fieldName` text(16)";
+
+              default:
+                return "`$fieldName` varchar({$fieldSpec['maxlength']})";
+            }
           }
           $dataType = $fieldSpec['data_type'] ?? '';
           // set the sql columns for custom data
@@ -1860,39 +1870,23 @@ class CRM_Export_BAO_ExportProcessor {
   }
 
   /**
-   * @param int $contactId
+   * Replace contact greetings in merged contacts.
+   *
+   * @param int $contactID
    *
    * @return array
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
    */
-  public function replaceMergeTokens($contactId) {
-    $greetings = [];
-    $contact = NULL;
-
-    $greetingFields = [
-      'postal_greeting' => $this->getPostalGreetingTemplate(),
-      'addressee' => $this->getAddresseeGreetingTemplate(),
+  public function replaceMergeTokens(int $contactID): array {
+    $messageTemplate = [
+      'postal_greeting' => $this->getPostalGreetingTemplate() ?? '',
+      'addressee' => $this->getAddresseeGreetingTemplate() ?? '',
     ];
-    foreach ($greetingFields as $greeting => $greetingLabel) {
-      $tokens = CRM_Utils_Token::getTokens($greetingLabel);
-      if (!empty($tokens)) {
-        if (empty($contact)) {
-          $values = [
-            'id' => $contactId,
-            'version' => 3,
-          ];
-          $contact = civicrm_api('contact', 'get', $values);
-
-          if (!empty($contact['is_error'])) {
-            return $greetings;
-          }
-          $contact = $contact['values'][$contact['id']];
-        }
-
-        $tokens = ['contact' => $greetingLabel];
-        $greetings[$greeting] = CRM_Utils_Token::replaceContactTokens($greetingLabel, $contact, NULL, $tokens);
-      }
+    if (array_filter($messageTemplate)) {
+      return CRM_Core_TokenSmarty::render($messageTemplate, ['contactId' => $contactID]);
     }
-    return $greetings;
+    return $messageTemplate;
   }
 
   /**
@@ -2046,7 +2040,7 @@ WHERE  id IN ( $deleteIDString )
    */
   public function getPreview($limit) {
     $rows = [];
-    list($outputColumns) = $this->getExportStructureArrays();
+    [$outputColumns] = $this->getExportStructureArrays();
     $query = $this->runQuery([], '');
     CRM_Core_DAO::disableFullGroupByMode();
     $result = CRM_Core_DAO::executeQuery($query[1] . ' LIMIT ' . (int) $limit);
@@ -2362,10 +2356,8 @@ LIMIT $offset, $limit
    *
    * @return string
    */
-  protected function getContactGreeting(int $contactID, string $type, string $default) {
-    return CRM_Utils_Array::value($type,
-      $this->contactGreetingFields[$contactID], $default
-    );
+  protected function getContactGreeting(int $contactID, string $type, string $default): string {
+    return empty($this->contactGreetingFields[$contactID][$type]) ? $default : $this->contactGreetingFields[$contactID][$type];
   }
 
   /**
diff --git a/civicrm/CRM/Extension/Upgrades.php b/civicrm/CRM/Extension/Upgrades.php
index d26a266ff6..adf3b1f494 100644
--- a/civicrm/CRM/Extension/Upgrades.php
+++ b/civicrm/CRM/Extension/Upgrades.php
@@ -69,9 +69,27 @@ class CRM_Extension_Upgrades {
 
     CRM_Utils_Hook::upgrade('enqueue', $queue);
 
+    // dev/core#1618 When Extension Upgrades are run reconcile log tables
+    $task = new CRM_Queue_Task(
+      [__CLASS__, 'upgradeLogTables'],
+      [],
+      ts('Update log tables')
+    );
+    // Set weight low so that it will be run last.
+    $queue->createItem($task, -2);
+
     return $queue;
   }
 
+  /**
+   * Update log tables following execution of extension upgrades
+   */
+  public static function upgradeLogTables() {
+    $logging = new CRM_Logging_Schema();
+    $logging->fixSchemaDifferences();
+    return TRUE;
+  }
+
   /**
    * @return array
    *   Array(string $extKey => CRM_Extension_Upgrader_Interface $upgrader)
diff --git a/civicrm/CRM/Financial/BAO/Order.php b/civicrm/CRM/Financial/BAO/Order.php
index ad32b31c45..29cfc27938 100644
--- a/civicrm/CRM/Financial/BAO/Order.php
+++ b/civicrm/CRM/Financial/BAO/Order.php
@@ -1058,6 +1058,26 @@ class CRM_Financial_BAO_Order {
     return $lines;
   }
 
+  /**
+   * Get the constructed line items formatted for the v3 Order api.
+   *
+   * @return array
+   *
+   * @internal core tested code only.
+   *
+   * @throws \CiviCRM_API3_Exception
+   */
+  public function getLineItemForV3OrderApi(): array {
+    $lineItems = [];
+    foreach ($this->getLineItems() as $key => $line) {
+      $lineItems[] = [
+        'line_item' => [$line['price_field_value_id'] => $line],
+        'params' => $this->entityParameters[$key] ?? [],
+      ];
+    }
+    return $lineItems;
+  }
+
   /**
    * @return array
    * @throws \API_Exception
diff --git a/civicrm/CRM/Financial/Form/BatchTransaction.php b/civicrm/CRM/Financial/Form/BatchTransaction.php
index ef90e96c02..5a52547bd6 100644
--- a/civicrm/CRM/Financial/Form/BatchTransaction.php
+++ b/civicrm/CRM/Financial/Form/BatchTransaction.php
@@ -53,7 +53,7 @@ class CRM_Financial_Form_BatchTransaction extends CRM_Contribute_Form_Search {
       $this->assign('validStatus', $validStatus);
       $this->_values = civicrm_api3('Batch', 'getSingle', ['id' => self::$_entityID]);
       $batchTitle = CRM_Core_DAO::getFieldValue('CRM_Batch_BAO_Batch', self::$_entityID, 'title');
-      CRM_Utils_System::setTitle(ts('Accounting Batch - %1', [1 => $batchTitle]));
+      $this->setTitle(ts('Accounting Batch - %1', [1 => $batchTitle]));
 
       $columnHeaders = [
         'created_by' => ts('Created By'),
diff --git a/civicrm/CRM/Financial/Form/FinancialBatch.php b/civicrm/CRM/Financial/Form/FinancialBatch.php
index 0015617133..8665b6fc2c 100644
--- a/civicrm/CRM/Financial/Form/FinancialBatch.php
+++ b/civicrm/CRM/Financial/Form/FinancialBatch.php
@@ -62,7 +62,7 @@ class CRM_Financial_Form_FinancialBatch extends CRM_Contribute_Form {
     $this->setPageTitle(ts('Financial Batch'));
     if (!empty($this->_id)) {
       $this->_title = CRM_Core_DAO::getFieldValue('CRM_Batch_DAO_Batch', $this->_id, 'title');
-      CRM_Utils_System::setTitle($this->_title . ' - ' . ts('Accounting Batch'));
+      $this->setTitle($this->_title . ' - ' . ts('Accounting Batch'));
       $this->assign('batchTitle', $this->_title);
       $contactID = CRM_Core_DAO::getFieldValue('CRM_Batch_DAO_Batch', $this->_id, 'created_id');
       $contactName = CRM_Contact_BAO_Contact::displayName($contactID);
diff --git a/civicrm/CRM/Financial/Form/FinancialTypeAccount.php b/civicrm/CRM/Financial/Form/FinancialTypeAccount.php
index dd5733ca2a..a3e66c76b4 100644
--- a/civicrm/CRM/Financial/Form/FinancialTypeAccount.php
+++ b/civicrm/CRM/Financial/Form/FinancialTypeAccount.php
@@ -64,7 +64,7 @@ class CRM_Financial_Form_FinancialTypeAccount extends CRM_Core_Form {
     $this->_BAOName = 'CRM_Financial_BAO_FinancialTypeAccount';
     if ($this->_aid && ($this->_action & CRM_Core_Action::ADD)) {
       $this->_title = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialType', $this->_aid, 'name');
-      CRM_Utils_System::setTitle($this->_title . ' - ' . ts('Financial Accounts'));
+      $this->setTitle($this->_title . ' - ' . ts('Financial Accounts'));
 
       $session = CRM_Core_Session::singleton();
       $session->pushUserContext($url);
@@ -85,7 +85,7 @@ class CRM_Financial_Form_FinancialTypeAccount extends CRM_Core_Form {
     if ($this->_id) {
       $financialAccount = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_EntityFinancialAccount', $this->_id, 'financial_account_id');
       $fieldTitle = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialAccount', $financialAccount, 'name');
-      CRM_Utils_System::setTitle($fieldTitle . ' - ' . ts('Financial Type Accounts'));
+      $this->setTitle($fieldTitle . ' - ' . ts('Financial Type Accounts'));
     }
 
     $breadCrumb = [
diff --git a/civicrm/CRM/Financial/Form/PaymentEdit.php b/civicrm/CRM/Financial/Form/PaymentEdit.php
index e0f30ed75e..23f4143307 100644
--- a/civicrm/CRM/Financial/Form/PaymentEdit.php
+++ b/civicrm/CRM/Financial/Form/PaymentEdit.php
@@ -16,6 +16,16 @@
  */
 class CRM_Financial_Form_PaymentEdit extends CRM_Core_Form {
 
+  /**
+   * Should financials be checked after the test but before tear down.
+   *
+   * Ideally all tests (or at least all that call any financial api calls ) should do this but there
+   * are some test data issues and some real bugs currently blocking.
+   *
+   * @var bool
+   */
+  protected $isValidateFinancialsOnPostAssert = TRUE;
+
   /**
    * The id of the financial trxn.
    *
@@ -84,7 +94,7 @@ class CRM_Financial_Form_PaymentEdit extends CRM_Core_Form {
    * Build quickForm.
    */
   public function buildQuickForm() {
-    CRM_Utils_System::setTitle(ts('Update Payment details'));
+    $this->setTitle(ts('Update Payment details'));
 
     $paymentFields = $this->getPaymentFields();
     $this->assign('paymentFields', $paymentFields);
diff --git a/civicrm/CRM/Friend/Form.php b/civicrm/CRM/Friend/Form.php
index bd1f642885..0441951d1e 100644
--- a/civicrm/CRM/Friend/Form.php
+++ b/civicrm/CRM/Friend/Form.php
@@ -140,7 +140,7 @@ class CRM_Friend_Form extends CRM_Core_Form {
     $defaults['entity_table'] = $this->_entityTable;
 
     CRM_Friend_BAO_Friend::getValues($defaults);
-    CRM_Utils_System::setTitle(CRM_Utils_Array::value('title', $defaults));
+    $this->setTitle(CRM_Utils_Array::value('title', $defaults));
 
     $this->assign('title', CRM_Utils_Array::value('title', $defaults));
     $this->assign('intro', CRM_Utils_Array::value('intro', $defaults));
@@ -302,7 +302,7 @@ class CRM_Friend_Form extends CRM_Core_Form {
       }
     }
 
-    CRM_Utils_System::setTitle($defaults['thankyou_title']);
+    $this->setTitle($defaults['thankyou_title']);
     $this->assign('thankYouText', $defaults['thankyou_text']);
   }
 
diff --git a/civicrm/CRM/Group/Form/Edit.php b/civicrm/CRM/Group/Form/Edit.php
index 801342f9e0..0afebfb810 100644
--- a/civicrm/CRM/Group/Form/Edit.php
+++ b/civicrm/CRM/Group/Form/Edit.php
@@ -122,7 +122,7 @@ class CRM_Group_Form_Edit extends CRM_Core_Form {
         catch (CRM_Core_Exception $e) {
           // If the group is borked the query might fail but delete should be possible.
         }
-        CRM_Utils_System::setTitle(ts('Confirm Group Delete'));
+        $this->setTitle(ts('Confirm Group Delete'));
       }
       if ($this->_groupValues['is_reserved'] == 1 && !CRM_Core_Permission::check('administer reserved groups')) {
         CRM_Core_Error::statusBounce(ts("You do not have sufficient permission to delete this reserved group."));
@@ -151,7 +151,7 @@ class CRM_Group_Form_Edit extends CRM_Core_Form {
 
         $this->assign_by_ref('group', $groupValues);
 
-        CRM_Utils_System::setTitle(ts('Group Settings: %1', array(1 => $this->_title)));
+        $this->setTitle(ts('Group Settings: %1', array(1 => $this->_title)));
       }
       $session = CRM_Core_Session::singleton();
       $session->pushUserContext(CRM_Utils_System::url('civicrm/group', 'reset=1'));
diff --git a/civicrm/CRM/Logging/Schema.php b/civicrm/CRM/Logging/Schema.php
index ad09e3a32c..9d09e62d20 100644
--- a/civicrm/CRM/Logging/Schema.php
+++ b/civicrm/CRM/Logging/Schema.php
@@ -429,16 +429,18 @@ AND    (TABLE_NAME LIKE 'log_civicrm_%' $nonStandardTableNameString )
    *   name of the relevant table.
    * @param array $cols
    *   Mixed array of columns to add or null (to check for the missing columns).
-   *
-   * @return bool
    */
-  public function fixSchemaDifferencesFor($table, $cols = []) {
-    if (empty($table)) {
-      return FALSE;
+  public function fixSchemaDifferencesFor(string $table, array $cols = []): void {
+    if (!in_array($table, $this->tables, TRUE)) {
+      // Create the table if the log table does not exist and
+      // the table is in 'this->tables'. This latter array
+      // could have been altered by a hook if the site does not
+      // want to log a specific table.
+      return;
     }
     if (empty($this->logs[$table])) {
       $this->createLogTableFor($table);
-      return TRUE;
+      return;
     }
 
     if (empty($cols)) {
@@ -480,8 +482,6 @@ AND    (TABLE_NAME LIKE 'log_civicrm_%' $nonStandardTableNameString )
     }
 
     $this->resetSchemaCacheForTable("log_$table");
-
-    return TRUE;
   }
 
   /**
diff --git a/civicrm/CRM/Mailing/BAO/Mailing.php b/civicrm/CRM/Mailing/BAO/Mailing.php
index 2e53e4a388..3270945ca2 100644
--- a/civicrm/CRM/Mailing/BAO/Mailing.php
+++ b/civicrm/CRM/Mailing/BAO/Mailing.php
@@ -304,25 +304,10 @@ class CRM_Mailing_BAO_Mailing extends CRM_Mailing_DAO_Mailing {
         ->execute();
     }
 
-    // Construct the filtered search queries.
-    $dao = CRM_Utils_SQL_Select::from('civicrm_mailing_group')
-      ->select('search_id, search_args, entity_id')
-      ->where('search_id IS NOT NULL AND mailing_id = #mailingID')
-      ->param('#mailingID', $mailingID)
-      ->execute();
-    while ($dao->fetch()) {
-      $customSQL = CRM_Contact_BAO_SearchCustom::civiMailSQL($dao->search_id,
-        $dao->search_args,
-        $dao->entity_id
-      );
-      $query = "REPLACE INTO {$includedTempTablename} ($entityColumn, contact_id) {$customSQL} ";
-      $mailingGroup->query($query);
-    }
-
     list($aclFrom, $aclWhere) = CRM_Contact_BAO_Contact_Permission::cacheClause();
 
     // clear all the mailing recipients before populating
-    CRM_Core_DAO::executeQuery(" DELETE FROM civicrm_mailing_recipients WHERE  mailing_id = %1 ", [
+    CRM_Core_DAO::executeQuery(' DELETE FROM civicrm_mailing_recipients WHERE  mailing_id = %1 ', [
       1 => [
         $mailingID,
         'Integer',
@@ -449,39 +434,6 @@ class CRM_Mailing_BAO_Mailing extends CRM_Mailing_DAO_Mailing {
     return [$location_filter, $orderBy];
   }
 
-  /**
-   * @param string $type
-   *
-   * @return array
-   */
-  private function _getMailingGroupIds($type = 'Include') {
-    $mailingGroup = new CRM_Mailing_DAO_MailingGroup();
-    $group = CRM_Contact_DAO_Group::getTableName();
-    if (!isset($this->id)) {
-      // we're just testing tokens, so return any group
-      $query = "SELECT   id AS entity_id
-                      FROM     $group
-                      ORDER BY id
-                      LIMIT 1";
-    }
-    else {
-      $mg = CRM_Mailing_DAO_MailingGroup::getTableName();
-      $query = "SELECT entity_id
-                      FROM   $mg
-                      WHERE  mailing_id = {$this->id}
-                      AND    group_type = '$type'
-                      AND    entity_table = '$group'";
-    }
-    $mailingGroup->query($query);
-
-    $groupIds = [];
-    while ($mailingGroup->fetch()) {
-      $groupIds[] = $mailingGroup->entity_id;
-    }
-
-    return $groupIds;
-  }
-
   /**
    * Returns the regex patterns that are used for preparing the text and html templates.
    *
@@ -1518,7 +1470,6 @@ ORDER BY   civicrm_email.is_bulkmail DESC
    *   Form values.
    *
    * @param array $params
-   * @param array $ids
    *
    * @return object
    *   $mailing      The new mailing object
@@ -1526,12 +1477,7 @@ ORDER BY   civicrm_email.is_bulkmail DESC
    * @throws \CRM_Core_Exception
    * @throws \CiviCRM_API3_Exception
    */
-  public static function create(&$params, $ids = []) {
-
-    if (empty($params['id']) && (array_filter($ids) !== [])) {
-      $params['id'] = $ids['mailing_id'] ?? $ids['id'];
-      CRM_Core_Error::deprecatedWarning('Parameter $ids is no longer used by Mailing::create. Use the api or just pass $params');
-    }
+  public static function create(&$params) {
 
     // CRM-#1843
     // If it is a mass sms, set url_tracking to false
diff --git a/civicrm/CRM/Mailing/Event/BAO/Confirm.php b/civicrm/CRM/Mailing/Event/BAO/Confirm.php
index 5ac6641fe3..15f16ab6eb 100644
--- a/civicrm/CRM/Mailing/Event/BAO/Confirm.php
+++ b/civicrm/CRM/Mailing/Event/BAO/Confirm.php
@@ -87,7 +87,7 @@ class CRM_Mailing_Event_BAO_Confirm extends CRM_Mailing_Event_DAO_Confirm {
     $config = CRM_Core_Config::singleton();
 
     $domain = CRM_Core_BAO_Domain::getDomain();
-    list($domainEmailName, $_) = CRM_Core_BAO_Domain::getNameAndEmail();
+    list($domainEmailName, $domainEmailAddress) = CRM_Core_BAO_Domain::getNameAndEmail();
 
     list($display_name, $email) = CRM_Contact_BAO_Contact_Location::getEmailDetails($se->contact_id);
 
@@ -125,7 +125,7 @@ class CRM_Mailing_Event_BAO_Confirm extends CRM_Mailing_Event_DAO_Confirm {
     $mailParams = [
       'groupName' => 'Mailing Event ' . $component->component_type,
       'subject' => $component->subject,
-      'from' => "\"$domainEmailName\" <" . CRM_Core_BAO_Domain::getNoReplyEmailAddress() . '>',
+      'from' => "\"{$domainEmailName}\" <{$domainEmailAddress}>",
       'toEmail' => $email,
       'toName' => $display_name,
       'replyTo' => CRM_Core_BAO_Domain::getNoReplyEmailAddress(),
diff --git a/civicrm/CRM/Mailing/Event/BAO/Delivered.php b/civicrm/CRM/Mailing/Event/BAO/Delivered.php
index f14176652b..477faa61da 100644
--- a/civicrm/CRM/Mailing/Event/BAO/Delivered.php
+++ b/civicrm/CRM/Mailing/Event/BAO/Delivered.php
@@ -275,6 +275,7 @@ class CRM_Mailing_Event_BAO_Delivered extends CRM_Mailing_Event_DAO_Delivered {
       ->createWithColumns('id int primary key, reset_date datetime');
     $temporaryTableName = $temporaryTable->getName();
 
+    // also exclude on_hold = opt-out (2)
     $query = "
             INSERT INTO {$temporaryTableName} (id, reset_date)
             SELECT      civicrm_email.id as email_id,
@@ -288,6 +289,7 @@ class CRM_Mailing_Event_BAO_Delivered extends CRM_Mailing_Event_DAO_Delivered {
               AND       civicrm_mailing_job.status = 'Complete'
               AND       civicrm_mailing_job.end_date BETWEEN DATE_SUB(NOW(), INTERVAL $maxDays day) AND DATE_SUB(NOW(), INTERVAL $minDays day)
               AND       (civicrm_email.reset_date IS NULL OR civicrm_email.reset_date < civicrm_mailing_job.start_date)
+              AND       civicrm_email.on_hold != 2
             GROUP BY    civicrm_email.id
          ";
     CRM_Core_DAO::executeQuery($query);
diff --git a/civicrm/CRM/Mailing/Event/BAO/Reply.php b/civicrm/CRM/Mailing/Event/BAO/Reply.php
index ed240b720f..d618b20143 100644
--- a/civicrm/CRM/Mailing/Event/BAO/Reply.php
+++ b/civicrm/CRM/Mailing/Event/BAO/Reply.php
@@ -228,12 +228,12 @@ class CRM_Mailing_Event_BAO_Reply extends CRM_Mailing_Event_DAO_Reply {
     $component->find(TRUE);
 
     $domain = CRM_Core_BAO_Domain::getDomain();
-    list($domainEmailName, $_) = CRM_Core_BAO_Domain::getNameAndEmail();
+    list($domainEmailName, $domainEmailAddress) = CRM_Core_BAO_Domain::getNameAndEmail();
 
     $params = [
       'subject' => $component->subject,
       'toEmail' => $to,
-      'from' => "\"$domainEmailName\" <" . CRM_Core_BAO_Domain::getNoReplyEmailAddress() . '>',
+      'from' => "\"{$domainEmailName}\" <{$domainEmailAddress}>",
       'replyTo' => CRM_Core_BAO_Domain::getNoReplyEmailAddress(),
       'returnPath' => CRM_Core_BAO_Domain::getNoReplyEmailAddress(),
     ];
diff --git a/civicrm/CRM/Mailing/Event/BAO/Resubscribe.php b/civicrm/CRM/Mailing/Event/BAO/Resubscribe.php
index 3468c533b1..73e15ec35d 100644
--- a/civicrm/CRM/Mailing/Event/BAO/Resubscribe.php
+++ b/civicrm/CRM/Mailing/Event/BAO/Resubscribe.php
@@ -249,7 +249,7 @@ class CRM_Mailing_Event_BAO_Resubscribe {
 
     $params = [
       'subject' => $component->subject,
-      'from' => "\"$domainEmailName\" <" . CRM_Core_BAO_Domain::getNoReplyEmailAddress() . '>',
+      'from' => "\"{$domainEmailName}\" <{$domainEmailAddress}>",
       'toEmail' => $eq->email,
       'replyTo' => CRM_Core_BAO_Domain::getNoReplyEmailAddress(),
       'returnPath' => CRM_Core_BAO_Domain::getNoReplyEmailAddress(),
diff --git a/civicrm/CRM/Mailing/Event/BAO/Unsubscribe.php b/civicrm/CRM/Mailing/Event/BAO/Unsubscribe.php
index 73f61f549c..ec9f8a53c8 100644
--- a/civicrm/CRM/Mailing/Event/BAO/Unsubscribe.php
+++ b/civicrm/CRM/Mailing/Event/BAO/Unsubscribe.php
@@ -135,7 +135,7 @@ WHERE  email = %2
     if (in_array($mailing_type, ['experiment', 'winner'])) {
       // The mailing belongs to an AB test.
       // See if we can find an AB test where this is variant B.
-      $mailing_id_a = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_MailingAB', mailing_id, 'mailing_id_a', 'mailing_id_b');
+      $mailing_id_a = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_MailingAB', $mailing_id, 'mailing_id_a', 'mailing_id_b');
       if (!empty($mailing_id_a)) {
         // OK, we were given mailing B and we looked up variant A which is the relevant one.
         $relevant_mailing_id = $mailing_id_a;
@@ -384,7 +384,7 @@ WHERE  email = %2
 
     $params = [
       'subject' => $component->subject,
-      'from' => "\"$domainEmailName\" <" . CRM_Core_BAO_Domain::getNoReplyEmailAddress() . '>',
+      'from' => "\"{$domainEmailName}\" <{$domainEmailAddress}>",
       'toEmail' => $eq->email,
       'replyTo' => CRM_Core_BAO_Domain::getNoReplyEmailAddress(),
       'returnPath' => CRM_Core_BAO_Domain::getNoReplyEmailAddress(),
diff --git a/civicrm/CRM/Mailing/Form/Approve.php b/civicrm/CRM/Mailing/Form/Approve.php
index e143040134..ac554fae91 100644
--- a/civicrm/CRM/Mailing/Form/Approve.php
+++ b/civicrm/CRM/Mailing/Form/Approve.php
@@ -73,7 +73,7 @@ class CRM_Mailing_Form_Approve extends CRM_Core_Form {
    */
   public function buildQuickform() {
     $title = ts('Approve/Reject Mailing') . " - {$this->_mailing->name}";
-    CRM_Utils_System::setTitle($title);
+    $this->setTitle($title);
 
     $this->addElement('textarea', 'approval_note', ts('Approve/Reject Note'));
 
diff --git a/civicrm/CRM/Mailing/Form/ForwardMailing.php b/civicrm/CRM/Mailing/Form/ForwardMailing.php
index 66eb266871..416ecaf44d 100644
--- a/civicrm/CRM/Mailing/Form/ForwardMailing.php
+++ b/civicrm/CRM/Mailing/Form/ForwardMailing.php
@@ -46,7 +46,7 @@ class CRM_Mailing_Form_ForwardMailing extends CRM_Core_Form {
     // Show the subject instead of the name here, since it's being
     // displayed to external contacts/users.
 
-    CRM_Utils_System::setTitle(ts('Forward Mailing: %1', [1 => $mailing->subject]));
+    $this->setTitle(ts('Forward Mailing: %1', [1 => $mailing->subject]));
 
     $this->set('queue_id', $queue_id);
     $this->set('job_id', $job_id);
diff --git a/civicrm/CRM/Mailing/Form/Optout.php b/civicrm/CRM/Mailing/Form/Optout.php
index e809d497b7..39707570e9 100644
--- a/civicrm/CRM/Mailing/Form/Optout.php
+++ b/civicrm/CRM/Mailing/Form/Optout.php
@@ -16,18 +16,40 @@
  */
 class CRM_Mailing_Form_Optout extends CRM_Core_Form {
 
-  public function preProcess() {
-
-    $this->_type = 'optout';
+  /**
+   * Prevent people double-submitting the form (e.g. by double-clicking).
+   * https://lab.civicrm.org/dev/core/-/issues/1773
+   *
+   * @var bool
+   */
+  public $submitOnce = TRUE;
+
+  /**
+   * @var int
+   */
+  private $_job_id;
+
+  /**
+   * @var int
+   */
+  private $_queue_id;
+
+  /**
+   * @var string
+   */
+  private $_hash;
+
+  /**
+   * @var string
+   */
+  private $_email;
 
+  public function preProcess() {
     $this->_job_id = $job_id = CRM_Utils_Request::retrieve('jid', 'Integer', $this);
     $this->_queue_id = $queue_id = CRM_Utils_Request::retrieve('qid', 'Integer', $this);
     $this->_hash = $hash = CRM_Utils_Request::retrieve('h', 'String', $this);
 
-    if (!$job_id ||
-      !$queue_id ||
-      !$hash
-    ) {
+    if (!$job_id || !$queue_id || !$hash) {
       throw new CRM_Core_Exception(ts("Missing input parameters"));
     }
 
@@ -47,10 +69,7 @@ class CRM_Mailing_Form_Optout extends CRM_Core_Form {
 
   public function buildQuickForm() {
     CRM_Utils_System::addHTMLHead('<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">');
-    CRM_Utils_System::setTitle(ts('Opt Out Confirmation'));
-
-    $this->add('text', 'email_confirm', ts('Verify email address to opt out:'));
-    $this->addRule('email_confirm', ts('Email address is required to opt out.'), 'required');
+    $this->setTitle(ts('Opt Out Confirmation'));
 
     $buttons = [
       [
@@ -68,42 +87,17 @@ class CRM_Mailing_Form_Optout extends CRM_Core_Form {
   }
 
   public function postProcess() {
-
-    $values = $this->exportValues();
-
-    // check if EmailTyped matches Email address
-    $result = CRM_Utils_String::compareStr($this->_email, $values['email_confirm'], TRUE);
-
-    $job_id = $this->_job_id;
-    $queue_id = $this->_queue_id;
-    $hash = $this->_hash;
-
-    $confirmURL = CRM_Utils_System::url("civicrm/mailing/{$this->_type}", "reset=1&jid={$job_id}&qid={$queue_id}&h={$hash}&confirm=1");
+    $confirmURL = CRM_Utils_System::url("civicrm/mailing/optout", "reset=1&jid={$this->_job_id}&qid={$this->_queue_id}&h={$this->_hash}&confirm=1");
     $this->assign('confirmURL', $confirmURL);
-    $session = CRM_Core_Session::singleton();
-    $session->pushUserContext($confirmURL);
-
-    if ($result == TRUE) {
-      // Email address verified
-      if (CRM_Mailing_Event_BAO_Unsubscribe::unsub_from_domain($job_id, $queue_id, $hash)) {
-        CRM_Mailing_Event_BAO_Unsubscribe::send_unsub_response($queue_id, NULL, TRUE, $job_id);
-      }
-
-      $statusMsg = ts('%1 opt out confirmed.',
-        [1 => $values['email_confirm']]
-      );
-
-      CRM_Core_Session::setStatus($statusMsg, '', 'success');
-    }
-    elseif ($result == FALSE) {
-      // Email address not verified
-      $statusMsg = ts('%1 is not associated with this opt out request.',
-        [1 => $values['email_confirm']]
-      );
+    CRM_Core_Session::singleton()->pushUserContext($confirmURL);
 
-      CRM_Core_Session::setStatus($statusMsg, '', 'error');
+    // Email address verified
+    if (CRM_Mailing_Event_BAO_Unsubscribe::unsub_from_domain($this->_job_id, $this->_queue_id, $this->_hash)) {
+      CRM_Mailing_Event_BAO_Unsubscribe::send_unsub_response($this->_queue_id, NULL, TRUE, $this->_job_id);
     }
 
+    $statusMsg = ts('%1 opt out confirmed.', [1 => CRM_Utils_String::maskEmail($this->_email)]);
+    CRM_Core_Session::setStatus($statusMsg, '', 'success');
   }
 
 }
diff --git a/civicrm/CRM/Mailing/Form/Subscribe.php b/civicrm/CRM/Mailing/Form/Subscribe.php
index 4afec4edc6..2f045d42c7 100644
--- a/civicrm/CRM/Mailing/Form/Subscribe.php
+++ b/civicrm/CRM/Mailing/Form/Subscribe.php
@@ -43,7 +43,7 @@ SELECT   title, frontend_title, description, frontend_description
       $dao = CRM_Core_DAO::executeQuery($query);
       if ($dao->fetch()) {
         $this->assign('groupName', !empty($dao->frontend_title) ? $dao->frontend_title : $dao->title);
-        CRM_Utils_System::setTitle(ts('Subscribe to Mailing List - %1', [1 => !empty($dao->frontend_title) ? $dao->frontend_title : $dao->title]));
+        $this->setTitle(ts('Subscribe to Mailing List - %1', [1 => !empty($dao->frontend_title) ? $dao->frontend_title : $dao->title]));
       }
       else {
         CRM_Core_Error::statusBounce("The specified group is not configured for this action OR The group doesn't exist.");
@@ -53,7 +53,7 @@ SELECT   title, frontend_title, description, frontend_description
     }
     else {
       $this->assign('single', FALSE);
-      CRM_Utils_System::setTitle(ts('Mailing List Subscription'));
+      $this->setTitle(ts('Mailing List Subscription'));
     }
   }
 
diff --git a/civicrm/CRM/Mailing/Form/Unsubscribe.php b/civicrm/CRM/Mailing/Form/Unsubscribe.php
index c63263ba0b..77f54983f6 100644
--- a/civicrm/CRM/Mailing/Form/Unsubscribe.php
+++ b/civicrm/CRM/Mailing/Form/Unsubscribe.php
@@ -24,18 +24,33 @@ class CRM_Mailing_Form_Unsubscribe extends CRM_Core_Form {
    */
   public $submitOnce = TRUE;
 
-  public function preProcess() {
+  /**
+   * @var int
+   */
+  private $_job_id;
+
+  /**
+   * @var int
+   */
+  private $_queue_id;
 
-    $this->_type = 'unsubscribe';
+  /**
+   * @var string
+   */
+  private $_hash;
+
+  /**
+   * @var string
+   */
+  private $_email;
 
+  public function preProcess() {
     $this->_job_id = $job_id = CRM_Utils_Request::retrieve('jid', 'Integer', $this);
     $this->_queue_id = $queue_id = CRM_Utils_Request::retrieve('qid', 'Integer', $this);
     $this->_hash = $hash = CRM_Utils_Request::retrieve('h', 'String', $this);
+    $isConfirm = CRM_Utils_Request::retrieveValue('confirm', 'Boolean', FALSE, FALSE, 'GET');
 
-    if (!$job_id ||
-      !$queue_id ||
-      !$hash
-    ) {
+    if (!$job_id || !$queue_id || !$hash) {
       throw new CRM_Core_Exception(ts('Missing Parameters'));
     }
 
@@ -55,27 +70,21 @@ class CRM_Mailing_Form_Unsubscribe extends CRM_Core_Form {
     $groups = CRM_Mailing_Event_BAO_Unsubscribe::unsub_from_mailing($job_id, $queue_id, $hash, TRUE);
     $this->assign('groups', $groups);
     $groupExist = NULL;
-    foreach ($groups as $key => $value) {
+    foreach ($groups as $value) {
       if ($value) {
         $groupExist = TRUE;
       }
     }
-    if (!$groupExist) {
-      $statusMsg = ts('%1 has been unsubscribed.',
-        [1 => $email]
-      );
+    if (!$groupExist && !$isConfirm) {
+      $statusMsg = ts('%1 has already been unsubscribed.', [1 => $email]);
       CRM_Core_Session::setStatus($statusMsg, '', 'error');
     }
     $this->assign('groupExist', $groupExist);
-
   }
 
   public function buildQuickForm() {
     CRM_Utils_System::addHTMLHead('<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">');
-    CRM_Utils_System::setTitle(ts('Unsubscribe Confirmation'));
-
-    $this->add('text', 'email_confirm', ts('Verify email address to unsubscribe:'));
-    $this->addRule('email_confirm', ts('Email address is required to unsubscribe.'), 'required');
+    $this->setTitle(ts('Unsubscribe Confirmation'));
 
     $buttons = [
       [
@@ -93,42 +102,19 @@ class CRM_Mailing_Form_Unsubscribe extends CRM_Core_Form {
   }
 
   public function postProcess() {
-    $values = $this->exportValues();
-
-    // check if EmailTyped matches Email address
-    $result = CRM_Utils_String::compareStr($this->_email, $values['email_confirm'], TRUE);
-    $job_id = $this->_job_id;
-    $queue_id = $this->_queue_id;
-    $hash = $this->_hash;
-
-    $confirmURL = CRM_Utils_System::url("civicrm/mailing/{$this->_type}", "reset=1&jid={$job_id}&qid={$queue_id}&h={$hash}&confirm=1");
+    $confirmURL = CRM_Utils_System::url("civicrm/mailing/unsubscribe", "reset=1&jid={$this->_job_id}&qid={$this->_queue_id}&h={$this->_hash}&confirm=1");
     $this->assign('confirmURL', $confirmURL);
-    $session = CRM_Core_Session::singleton();
-    $session->pushUserContext($confirmURL);
+    CRM_Core_Session::singleton()->pushUserContext($confirmURL);
 
-    if ($result == TRUE) {
-      // Email address verified
-      $groups = CRM_Mailing_Event_BAO_Unsubscribe::unsub_from_mailing($job_id, $queue_id, $hash);
+    // Email address verified
+    $groups = CRM_Mailing_Event_BAO_Unsubscribe::unsub_from_mailing($this->_job_id, $this->_queue_id, $this->_hash);
 
-      if (count($groups)) {
-        CRM_Mailing_Event_BAO_Unsubscribe::send_unsub_response($queue_id, $groups, FALSE, $job_id);
-      }
-
-      $statusMsg = ts('%1 is unsubscribed.',
-        [1 => $values['email_confirm']]
-      );
-
-      CRM_Core_Session::setStatus($statusMsg, '', 'success');
+    if (count($groups)) {
+      CRM_Mailing_Event_BAO_Unsubscribe::send_unsub_response($this->_queue_id, $groups, FALSE, $this->_job_id);
     }
-    elseif ($result == FALSE) {
-      // Email address not verified
-      $statusMsg = ts('%1 is not associated with this unsubscribe request.',
-        [1 => $values['email_confirm']]
-      );
 
-      CRM_Core_Session::setStatus($statusMsg, '', 'error');
-
-    }
+    $statusMsg = ts('%1 has been unsubscribed successfully.', [1 => $this->_email]);
+    CRM_Core_Session::setStatus($statusMsg, '', 'success');
   }
 
 }
diff --git a/civicrm/CRM/Mailing/Info.php b/civicrm/CRM/Mailing/Info.php
index d26c57dc99..c670df0d96 100644
--- a/civicrm/CRM/Mailing/Info.php
+++ b/civicrm/CRM/Mailing/Info.php
@@ -68,15 +68,15 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
 
     $emailAdd = civicrm_api3('Email', 'get', [
       'sequential' => 1,
-      'return' => "email",
+      'return' => 'email',
       'contact_id' => $contactID,
     ]);
 
     $mesTemplate = civicrm_api3('MessageTemplate', 'get', $params + [
       'sequential' => 1,
       'is_active' => 1,
-      'return' => ["id", "msg_title"],
-      'workflow_id' => ['IS NULL' => ""],
+      'return' => ['id', 'msg_title'],
+      'workflow_name' => ['IS NULL' => ''],
     ]);
     $mailTokens = civicrm_api3('Mailing', 'gettokens', [
       'entity' => ['contact', 'mailing'],
diff --git a/civicrm/CRM/Member/BAO/Membership.php b/civicrm/CRM/Member/BAO/Membership.php
index 2c4b04ca4f..3a04e646c9 100644
--- a/civicrm/CRM/Member/BAO/Membership.php
+++ b/civicrm/CRM/Member/BAO/Membership.php
@@ -289,9 +289,9 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership {
       else {
         $calcDates = [];
       }
-      $params['start_date'] = $params['start_date'] ?? ($calcDates['start_date'] ?? 'null');
-      $params['end_date'] = $params['end_date'] ?? ($calcDates['end_date'] ?? 'null');
-      $params['join_date'] = $params['join_date'] ?? ($calcDates['join_date'] ?? 'null');
+      $params['start_date'] = empty($params['start_date']) ? ($calcDates['start_date'] ?? 'null') : $params['start_date'];
+      $params['end_date'] = empty($params['end_date']) ? ($calcDates['end_date'] ?? 'null') : $params['end_date'];
+      $params['join_date'] = empty($params['join_date']) ? ($calcDates['join_date'] ?? 'null') : $params['join_date'];
 
       //fix for CRM-3570, during import exclude the statuses those having is_admin = 1
       $excludeIsAdmin = $params['exclude_is_admin'] ?? FALSE;
diff --git a/civicrm/CRM/Member/BAO/MembershipType.php b/civicrm/CRM/Member/BAO/MembershipType.php
index a0b599f282..1ec67d2e16 100644
--- a/civicrm/CRM/Member/BAO/MembershipType.php
+++ b/civicrm/CRM/Member/BAO/MembershipType.php
@@ -818,8 +818,8 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType {
    *   List of membershipType details keyed by membershipTypeID
    * @throws \CiviCRM_API3_Exception
    */
-  public static function getAllMembershipTypes() {
-    $cacheString = __CLASS__ . __FUNCTION__ . CRM_Core_Config::domainID();
+  public static function getAllMembershipTypes(): array {
+    $cacheString = __CLASS__ . __FUNCTION__ . CRM_Core_Config::domainID() . '_' . CRM_Core_I18n::getLocale();
     if (!Civi::cache('metadata')->has($cacheString)) {
       $types = civicrm_api3('MembershipType', 'get', ['options' => ['limit' => 0, 'sort' => 'weight']])['values'];
       $taxRates = CRM_Core_PseudoConstant::getTaxRates();
diff --git a/civicrm/CRM/Member/Form/Membership.php b/civicrm/CRM/Member/Form/Membership.php
index 7e9c28faeb..683f186395 100644
--- a/civicrm/CRM/Member/Form/Membership.php
+++ b/civicrm/CRM/Member/Form/Membership.php
@@ -134,11 +134,13 @@ class CRM_Member_Form_Membership extends CRM_Member_Form {
    */
   public function setDeleteMessage() {
     $this->deleteMessage = '<span class="font-red bold">'
-      . ts('WARNING: Deleting this membership will also delete any related payment (contribution) records.' . ts('This action cannot be undone.')
-        . '</span><p>'
-        . ts('Consider modifying the membership status instead if you want to maintain an audit trail and avoid losing payment data. You can set the status to Cancelled by editing the membership and clicking the Status Override checkbox.')
-          . '</p><p>'
-        . ts("Click 'Delete' if you want to continue.") . '</p>');
+      . ts('WARNING: Deleting this membership will also delete any related payment (contribution) records.')
+      . ' '
+      . ts('This action cannot be undone.')
+      . '</span><p>'
+      . ts('Consider modifying the membership status instead if you want to maintain an audit trail and avoid losing payment data. You can set the status to Cancelled by editing the membership and clicking the Status Override checkbox.')
+      . '</p><p>'
+      . ts("Click 'Delete' if you want to continue.") . '</p>';
   }
 
   /**
diff --git a/civicrm/CRM/Member/Form/MembershipRenewal.php b/civicrm/CRM/Member/Form/MembershipRenewal.php
index 4b0fdbe072..ff06bbf866 100644
--- a/civicrm/CRM/Member/Form/MembershipRenewal.php
+++ b/civicrm/CRM/Member/Form/MembershipRenewal.php
@@ -162,7 +162,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form {
       CRM_Custom_Form_CustomData::setDefaultValues($this);
     }
 
-    CRM_Utils_System::setTitle(ts('Renew Membership'));
+    $this->setTitle(ts('Renew Membership'));
 
     parent::preProcess();
   }
diff --git a/civicrm/CRM/Member/Form/MembershipView.php b/civicrm/CRM/Member/Form/MembershipView.php
index e376a87824..8df997d583 100644
--- a/civicrm/CRM/Member/Form/MembershipView.php
+++ b/civicrm/CRM/Member/Form/MembershipView.php
@@ -341,7 +341,7 @@ SELECT r.id, c.id as cid, c.display_name as name, c.job_title as comment,
       }
 
       // omitting contactImage from title for now since the summary overlay css doesn't work outside crm-container
-      CRM_Utils_System::setTitle(ts('View Membership for') . ' ' . $displayName);
+      $this->setTitle(ts('View Membership for') . ' ' . $displayName);
 
       // add viewed membership to recent items list
       $recentTitle = $displayName . ' - ' . ts('Membership Type:') . ' ' . $values['membership_type'];
diff --git a/civicrm/CRM/Member/Form/Task.php b/civicrm/CRM/Member/Form/Task.php
index 8d5d042ab8..756355c1e9 100644
--- a/civicrm/CRM/Member/Form/Task.php
+++ b/civicrm/CRM/Member/Form/Task.php
@@ -15,6 +15,8 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Membership;
+
 /**
  * Class for member form task actions.
  * FIXME: This needs refactoring to properly inherit from CRM_Core_Form_Task and share more functions.
@@ -95,4 +97,45 @@ class CRM_Member_Form_Task extends CRM_Core_Form_Task {
     );
   }
 
+  /**
+   * @return array
+   */
+  protected function getIDS() {
+    return $this->_memberIds;
+  }
+
+  /**
+   * Get the rows form the search, keyed to make the token processor happy.
+   *
+   * @throws \API_Exception
+   */
+  protected function getRows(): array {
+    if (empty($this->rows)) {
+      // checkPermissions set to false - in case form is bypassing in some way.
+      $memberships = Membership::get(FALSE)
+        ->addWhere('id', 'IN', $this->getIDs())
+        ->setSelect(['id', 'contact_id'])->execute();
+      foreach ($memberships as $membership) {
+        $this->rows[] = [
+          'contact_id' => $membership['contact_id'],
+          'membership_id' => $membership['id'],
+          'schema' => [
+            'contactId' => $membership['contact_id'],
+            'membershipId' => $membership['id'],
+          ],
+        ];
+      }
+    }
+    return $this->rows;
+  }
+
+  /**
+   * Get the token processor schema required to list any tokens for this task.
+   *
+   * @return array
+   */
+  public function getTokenSchema(): array {
+    return ['membershipId', 'contactId'];
+  }
+
 }
diff --git a/civicrm/CRM/Member/Form/Task/Batch.php b/civicrm/CRM/Member/Form/Task/Batch.php
index 603bd9d3ca..188fc9232c 100644
--- a/civicrm/CRM/Member/Form/Task/Batch.php
+++ b/civicrm/CRM/Member/Form/Task/Batch.php
@@ -77,7 +77,7 @@ class CRM_Member_Form_Task_Batch extends CRM_Member_Form_Task {
       CRM_Core_Error::statusBounce(ts('ufGroupId is missing'));
     }
     $this->_title = ts('Update multiple memberships') . ' - ' . CRM_Core_BAO_UFGroup::getTitle($ufGroupId);
-    CRM_Utils_System::setTitle($this->_title);
+    $this->setTitle($this->_title);
 
     $this->addDefaultButtons(ts('Save'));
     $this->_fields = [];
diff --git a/civicrm/CRM/Member/Form/Task/Email.php b/civicrm/CRM/Member/Form/Task/Email.php
index 5e0e6d4baa..9f19d0fe7e 100644
--- a/civicrm/CRM/Member/Form/Task/Email.php
+++ b/civicrm/CRM/Member/Form/Task/Email.php
@@ -22,4 +22,17 @@
 class CRM_Member_Form_Task_Email extends CRM_Member_Form_Task {
   use CRM_Contact_Form_Task_EmailTrait;
 
+  /**
+   * Only send one email per contact.
+   *
+   * This has historically been done for contributions & makes sense if
+   * no entity specific tokens are in use.
+   *
+   * @return bool
+   * @throws \CRM_Core_Exception
+   */
+  protected function isGroupByContact(): bool {
+    return !empty($this->getMessageTokens()['membership']);
+  }
+
 }
diff --git a/civicrm/CRM/Member/Form/Task/PDFLetter.php b/civicrm/CRM/Member/Form/Task/PDFLetter.php
index d6cb9df570..f7464b1b70 100644
--- a/civicrm/CRM/Member/Form/Task/PDFLetter.php
+++ b/civicrm/CRM/Member/Form/Task/PDFLetter.php
@@ -15,6 +15,8 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Membership;
+
 /**
  * This class provides the functionality to create PDF letter for a group of
  * contacts or a single contact.
@@ -70,47 +72,35 @@ class CRM_Member_Form_Task_PDFLetter extends CRM_Member_Form_Task {
     $this->setContactIDs();
     $skipOnHold = $this->skipOnHold ?? FALSE;
     $skipDeceased = $this->skipDeceased ?? TRUE;
-    self::postProcessMembers(
-      $this, $this->_memberIds, $skipOnHold, $skipDeceased, $this->_contactIds
-    );
+    $this->postProcessMembers($this->_memberIds, $skipOnHold, $skipDeceased, $this->_contactIds);
   }
 
   /**
    * Process the form after the input has been submitted and validated.
-   * @todo this is horrible copy & paste code because there is so much risk of breakage
-   * in fixing the existing pdfLetter classes to be suitably generic
    *
-   * @param CRM_Core_Form $form
    * @param $membershipIDs
    * @param $skipOnHold
    * @param $skipDeceased
    * @param $contactIDs
+   *
+   * @throws \CRM_Core_Exception
+   * @todo this is horrible copy & paste code because there is so much risk of breakage
+   * in fixing the existing pdfLetter classes to be suitably generic
+   *
    */
-  public static function postProcessMembers(&$form, $membershipIDs, $skipOnHold, $skipDeceased, $contactIDs) {
+  public function postProcessMembers($membershipIDs, $skipOnHold, $skipDeceased, $contactIDs) {
+    $form = $this;
     $formValues = $form->controller->exportValues($form->getName());
-    list($formValues, $categories, $html_message, $messageToken, $returnProperties) = CRM_Contact_Form_Task_PDFLetterCommon::processMessageTemplate($formValues);
+    [$formValues, $html_message, $messageToken, $returnProperties] = $this->processMessageTemplate($formValues);
 
     $html
-      = self::generateHTML(
+      = $this->generateHTML(
       $membershipIDs,
-      $returnProperties,
-      $skipOnHold,
-      $skipDeceased,
       $messageToken,
-      $html_message,
-      $categories
+      $html_message
     );
-    CRM_Contact_Form_Task_PDFLetterCommon::createActivities($form, $html_message, $contactIDs, $formValues['subject'], CRM_Utils_Array::value('campaign_id', $formValues));
-
-    // Set the filename for the PDF using the Activity Subject, if defined. Remove unwanted characters and limit the length to 200 characters.
-    if (!empty($form->getSubmittedValue('subject'))) {
-      $fileName = CRM_Utils_File::makeFilenameWithUnicode($form->getSubmittedValue('subject'), '_', 200) . '.pdf';
-    }
-    else {
-      $fileName = 'CiviLetter.pdf';
-    }
-
-    CRM_Utils_PDF_Utils::html2pdf($html, $fileName, FALSE, $formValues);
+    $form->createActivities($html_message, $contactIDs, $formValues['subject'], CRM_Utils_Array::value('campaign_id', $formValues));
+    CRM_Utils_PDF_Utils::html2pdf($html, $this->getFileName() . '.pdf', FALSE, $formValues);
 
     $form->postProcessHook();
 
@@ -121,56 +111,39 @@ class CRM_Member_Form_Task_PDFLetter extends CRM_Member_Form_Task {
    * Generate html for pdf letters.
    *
    * @param array $membershipIDs
-   * @param array $returnProperties
-   * @param bool $skipOnHold
-   * @param bool $skipDeceased
    * @param array $messageToken
    * @param $html_message
-   * @param $categories
    *
    * @return array
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   * @internal
+   *
    */
-  public static function generateHTML($membershipIDs, $returnProperties, $skipOnHold, $skipDeceased, $messageToken, $html_message, $categories) {
-    $memberships = CRM_Utils_Token::getMembershipTokenDetails($membershipIDs);
+  public function generateHTML($membershipIDs, $messageToken, $html_message): array {
+    $memberships = Membership::get(FALSE)
+      ->addWhere('id', 'IN', $membershipIDs)
+      ->addSelect('contact_id')->execute();
     $html = [];
 
-    foreach ($membershipIDs as $membershipID) {
-      $membership = $memberships[$membershipID];
-      // get contact information
-      $contactId = $membership['contact_id'];
-      $params = ['contact_id' => $contactId];
-      //getTokenDetails is much like calling the api contact.get function - but - with some minor
-      // special handlings. It precedes the existence of the api
-      list($contacts) = CRM_Utils_Token::getTokenDetails(
-        $params,
-        $returnProperties,
-        $skipOnHold,
-        $skipDeceased,
-        NULL,
-        $messageToken,
-        'CRM_Contribution_Form_Task_PDFLetterCommon'
-      );
-
-      $tokenHtml = CRM_Utils_Token::replaceContactTokens($html_message, $contacts[$contactId], TRUE, $messageToken);
-      $tokenHtml = CRM_Utils_Token::replaceEntityTokens('membership', $membership, $tokenHtml, $messageToken);
-      $tokenHtml = CRM_Utils_Token::replaceHookTokens($tokenHtml, $contacts[$contactId], $categories, TRUE);
-      $tokenHtml = CRM_Utils_Token::parseThroughSmarty($tokenHtml, $contacts[$contactId]);
-
-      $html[] = $tokenHtml;
-
+    foreach ($memberships as $membership) {
+      $html[] = CRM_Core_BAO_MessageTemplate::renderTemplate([
+        'messageTemplate' => ['msg_html' => $html_message],
+        'contactId' => $membership['contact_id'],
+        'tokenContext' => ['membershipId' => $membership['id']],
+        'disableSmarty' => !defined('CIVICRM_MAIL_SMARTY') || !CIVICRM_MAIL_SMARTY,
+      ])['html'];
     }
     return $html;
   }
 
   /**
-   * List available tokens for this form.
+   * Get the token processor schema required to list any tokens for this task.
    *
    * @return array
    */
-  public function listTokens() {
-    $tokens = CRM_Core_SelectValues::contactTokens();
-    $tokens = array_merge(CRM_Core_SelectValues::membershipTokens(), $tokens);
-    return $tokens;
+  public function getTokenSchema(): array {
+    return ['membershipId', 'contactId'];
   }
 
 }
diff --git a/civicrm/CRM/Member/Form/Task/PDFLetterCommon.php b/civicrm/CRM/Member/Form/Task/PDFLetterCommon.php
index 86191d616e..7fdc8dce85 100644
--- a/civicrm/CRM/Member/Form/Task/PDFLetterCommon.php
+++ b/civicrm/CRM/Member/Form/Task/PDFLetterCommon.php
@@ -1,5 +1,7 @@
 <?php
 
+use Civi\Api4\Membership;
+
 /**
  * This class provides the common functionality for creating PDF letter for
  * members
@@ -24,7 +26,7 @@ class CRM_Member_Form_Task_PDFLetterCommon extends CRM_Contact_Form_Task_PDFLett
   public static function postProcessMembers(&$form, $membershipIDs, $skipOnHold, $skipDeceased, $contactIDs) {
     CRM_Core_Error::deprecatedFunctionWarning('no alternative');
     $formValues = $form->controller->exportValues($form->getName());
-    list($formValues, $categories, $html_message, $messageToken, $returnProperties) = CRM_Contact_Form_Task_PDFLetterCommon::processMessageTemplate($formValues);
+    [$formValues, $categories, $html_message, $messageToken, $returnProperties] = CRM_Contact_Form_Task_PDFLetterCommon::processMessageTemplate($formValues);
 
     $html
       = self::generateHTML(
@@ -64,39 +66,27 @@ class CRM_Member_Form_Task_PDFLetterCommon extends CRM_Contact_Form_Task_PDFLett
    * @param $html_message
    * @param $categories
    *
-   * @deprecated
-   *
    * @return array
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
+   * @deprecated
    */
   public static function generateHTML($membershipIDs, $returnProperties, $skipOnHold, $skipDeceased, $messageToken, $html_message, $categories) {
     CRM_Core_Error::deprecatedFunctionWarning('no alternative');
-    $memberships = CRM_Utils_Token::getMembershipTokenDetails($membershipIDs);
+    $memberships = Membership::get(FALSE)
+      ->addWhere('id', 'IN', $membershipIDs)
+      ->addSelect('contact_id')->execute();
     $html = [];
 
-    foreach ($membershipIDs as $membershipID) {
-      $membership = $memberships[$membershipID];
-      // get contact information
-      $contactId = $membership['contact_id'];
-      $params = ['contact_id' => $contactId];
-      //getTokenDetails is much like calling the api contact.get function - but - with some minor
-      // special handlings. It precedes the existence of the api
-      list($contacts) = CRM_Utils_Token::getTokenDetails(
-        $params,
-        $returnProperties,
-        $skipOnHold,
-        $skipDeceased,
-        NULL,
-        $messageToken,
-        'CRM_Contribution_Form_Task_PDFLetterCommon'
-      );
-
-      $tokenHtml = CRM_Utils_Token::replaceContactTokens($html_message, $contacts[$contactId], TRUE, $messageToken);
-      $tokenHtml = CRM_Utils_Token::replaceEntityTokens('membership', $membership, $tokenHtml, $messageToken);
-      $tokenHtml = CRM_Utils_Token::replaceHookTokens($tokenHtml, $contacts[$contactId], $categories, TRUE);
-      $tokenHtml = CRM_Utils_Token::parseThroughSmarty($tokenHtml, $contacts[$contactId]);
-
-      $html[] = $tokenHtml;
-
+    foreach ($memberships as $membership) {
+      $html[] = CRM_Core_BAO_MessageTemplate::renderTemplate([
+        'messageTemplate' => ['msg_html' => $html_message],
+        'contactId' => $membership['contact_id'],
+        'schema' => ['contactId', 'membershipId'],
+        'tokenContext' => ['membershipId' => $membership['id']],
+        'disableSmarty' => !defined('CIVICRM_MAIL_SMARTY') || !CIVICRM_MAIL_SMARTY,
+      ])['html'];
     }
     return $html;
   }
diff --git a/civicrm/CRM/Member/Form/Task/PickProfile.php b/civicrm/CRM/Member/Form/Task/PickProfile.php
index f8fe9db245..c74bd95cfd 100644
--- a/civicrm/CRM/Member/Form/Task/PickProfile.php
+++ b/civicrm/CRM/Member/Form/Task/PickProfile.php
@@ -50,7 +50,7 @@ class CRM_Member_Form_Task_PickProfile extends CRM_Member_Form_Task {
     $session = CRM_Core_Session::singleton();
     $this->_userContext = $session->readUserContext();
 
-    CRM_Utils_System::setTitle(ts('Update multiple memberships'));
+    $this->setTitle(ts('Update multiple memberships'));
 
     $validate = FALSE;
     //validations
diff --git a/civicrm/CRM/Member/Import/Controller.php b/civicrm/CRM/Member/Import/Controller.php
index 2a57c0a381..b647e940e5 100644
--- a/civicrm/CRM/Member/Import/Controller.php
+++ b/civicrm/CRM/Member/Import/Controller.php
@@ -26,10 +26,7 @@ class CRM_Member_Import_Controller extends CRM_Core_Controller {
   public function __construct($title = NULL, $action = CRM_Core_Action::NONE, $modal = TRUE) {
     parent::__construct($title, $modal);
 
-    // lets get around the time limit issue if possible, CRM-2113
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     $this->_stateMachine = new CRM_Import_StateMachine($this, $action);
 
diff --git a/civicrm/CRM/Member/Tokens.php b/civicrm/CRM/Member/Tokens.php
index 686cc71f46..35ba54a355 100644
--- a/civicrm/CRM/Member/Tokens.php
+++ b/civicrm/CRM/Member/Tokens.php
@@ -22,74 +22,104 @@
  * implementation which is not tied to scheduled reminders, although
  * that is outside the current scope.
  */
-class CRM_Member_Tokens extends \Civi\Token\AbstractTokenSubscriber {
+class CRM_Member_Tokens extends CRM_Core_EntityTokens {
 
   /**
-   * Class constructor.
+   * Get the entity name for api v4 calls.
+   *
+   * @return string
    */
-  public function __construct() {
-    parent::__construct('membership', array_merge(
-      [
-        'fee' => ts('Membership Fee'),
-        'id' => ts('Membership ID'),
-        'join_date' => ts('Membership Join Date'),
-        'start_date' => ts('Membership Start Date'),
-        'end_date' => ts('Membership End Date'),
-        'status' => ts('Membership Status'),
-        'type' => ts('Membership Type'),
-      ],
-      CRM_Utils_Token::getCustomFieldTokens('Membership')
-    ));
+  protected function getApiEntityName(): string {
+    return 'Membership';
   }
 
   /**
-   * @inheritDoc
+   * List out the fields that are exposed.
+   *
+   * For historical reasons these are the only exposed fields.
+   *
+   * It is also possible to list 'skippedFields'
+   *
+   * @return string[]
    */
-  public function checkActive(\Civi\Token\TokenProcessor $processor) {
-    // Extracted from scheduled-reminders code. See the class description.
-    return !empty($processor->context['actionMapping'])
-      && $processor->context['actionMapping']->getEntity() === 'civicrm_membership';
+  protected function getExposedFields(): array {
+    return [
+      'id',
+      'join_date',
+      'start_date',
+      'end_date',
+      'status_id',
+      'membership_type_id',
+      'source',
+      'status_override_end_date',
+    ];
   }
 
   /**
-   * Alter action schedule query.
-   *
-   * @param \Civi\ActionSchedule\Event\MailingQueryEvent $e
+   * @inheritDoc
+   * @throws \CiviCRM_API3_Exception
    */
-  public function alterActionScheduleQuery(\Civi\ActionSchedule\Event\MailingQueryEvent $e) {
-    if ($e->mapping->getEntity() !== 'civicrm_membership') {
-      return;
+  public function evaluateToken(\Civi\Token\TokenRow $row, $entity, $field, $prefetch = NULL) {
+    if ($field === 'fee') {
+      $membershipType = CRM_Member_BAO_MembershipType::getMembershipType($this->getFieldValue($row, 'membership_type_id'));
+      $row->tokens($entity, $field, \CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency($membershipType['minimum_fee']));
+    }
+    else {
+      parent::evaluateToken($row, $entity, $field, $prefetch);
     }
+  }
 
-    // FIXME: `select('e.*')` seems too broad.
-    $e->query
-      ->select('e.*')
-      ->select('mt.minimum_fee as fee, e.id as id , e.join_date, e.start_date, e.end_date, ms.name as status, mt.name as type')
-      ->join('mt', "!casMailingJoinType civicrm_membership_type mt ON e.membership_type_id = mt.id")
-      ->join('ms', "!casMailingJoinType civicrm_membership_status ms ON e.status_id = ms.id");
+  /**
+   * Get any overrides for token metadata.
+   *
+   * This is most obviously used for setting the audience, which
+   * will affect widget-presence.
+   *
+   * Changing the audience is done in order to simplify the
+   * UI for more general users.
+   *
+   * @return \string[][]
+   */
+  protected function getTokenMetadataOverrides(): array {
+    return [
+      'owner_membership_id' => ['audience' => 'sysadmin'],
+      'max_related' => ['audience' => 'sysadmin'],
+      'contribution_recur_id' => ['audience' => 'sysadmin'],
+      'is_override' => ['audience' => 'sysadmin'],
+      'is_test' => ['audience' => 'sysadmin'],
+      // Pay later is considered to be unreliable in the schema
+      // and will eventually be removed.
+      'is_pay_later' => ['audience' => 'deprecated'],
+    ];
   }
 
   /**
-   * @inheritDoc
+   * Get fields which need to be returned to render another token.
+   *
+   * @return array
    */
-  public function evaluateToken(\Civi\Token\TokenRow $row, $entity, $field, $prefetch = NULL) {
-    $actionSearchResult = $row->context['actionSearchResult'];
+  public function getDependencies(): array {
+    return ['fee' => 'membership_type_id'];
+  }
 
-    if (in_array($field, ['start_date', 'end_date', 'join_date'])) {
-      $row->tokens($entity, $field, \CRM_Utils_Date::customFormat($actionSearchResult->$field));
-    }
-    elseif ($field == 'fee') {
-      $row->tokens($entity, $field, \CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency($actionSearchResult->$field));
-    }
-    elseif (isset($actionSearchResult->$field)) {
-      $row->tokens($entity, $field, $actionSearchResult->$field);
-    }
-    elseif ($cfID = \CRM_Core_BAO_CustomField::getKeyID($field)) {
-      $row->customToken($entity, $cfID, $actionSearchResult->entity_id);
-    }
-    else {
-      $row->tokens($entity, $field, '');
-    }
+  /**
+   * Get any tokens with custom calculation.
+   *
+   * In this case 'fee' should be converted to{membership.membership_type_id.fee}
+   * but we don't have the formatting support to do that with no
+   * custom intervention yet.
+   */
+  protected function getBespokeTokens(): array {
+    return [
+      'fee' => [
+        'title' => ts('Membership Fee'),
+        'name' => 'fee',
+        'type' => 'calculated',
+        'options' => NULL,
+        'data_type' => 'integer',
+        'audience' => 'user',
+      ],
+    ];
   }
 
 }
diff --git a/civicrm/CRM/PCP/Form/Campaign.php b/civicrm/CRM/PCP/Form/Campaign.php
index 6445366044..538300bb4a 100644
--- a/civicrm/CRM/PCP/Form/Campaign.php
+++ b/civicrm/CRM/PCP/Form/Campaign.php
@@ -44,7 +44,7 @@ class CRM_PCP_Form_Campaign extends CRM_Core_Form {
       $title = ts('Edit Your Personal Campaign Page');
     }
 
-    CRM_Utils_System::setTitle($title);
+    $this->setTitle($title);
     parent::preProcess();
   }
 
diff --git a/civicrm/CRM/PCP/Form/Event.php b/civicrm/CRM/PCP/Form/Event.php
index 265ee1c623..3a0f95f745 100644
--- a/civicrm/CRM/PCP/Form/Event.php
+++ b/civicrm/CRM/PCP/Form/Event.php
@@ -42,7 +42,7 @@ class CRM_PCP_Form_Event extends CRM_Event_Form_ManageEvent {
     $defaults = [];
     if (isset($this->_id)) {
       $title = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_id, 'title');
-      CRM_Utils_System::setTitle(ts('Personal Campaign Page Settings (%1)', [1 => $title]));
+      $this->setTitle(ts('Personal Campaign Page Settings (%1)', [1 => $title]));
 
       $params = ['entity_id' => $this->_id, 'entity_table' => 'civicrm_event'];
       CRM_Core_DAO::commonRetrieve('CRM_PCP_DAO_PCPBlock', $params, $defaults);
diff --git a/civicrm/CRM/PCP/Form/PCPAccount.php b/civicrm/CRM/PCP/Form/PCPAccount.php
index 9925bdbf70..fd148fdd3e 100644
--- a/civicrm/CRM/PCP/Form/PCPAccount.php
+++ b/civicrm/CRM/PCP/Form/PCPAccount.php
@@ -100,7 +100,7 @@ class CRM_PCP_Form_PCPAccount extends CRM_Core_Form {
     $this->assign('pcpComponent', $this->_component);
 
     if ($this->_single) {
-      CRM_Utils_System::setTitle(ts('Update Contact Information'));
+      $this->setTitle(ts('Update Contact Information'));
     }
   }
 
diff --git a/civicrm/CRM/Pledge/Form/Payment.php b/civicrm/CRM/Pledge/Form/Payment.php
index 119533b567..02a7d41474 100644
--- a/civicrm/CRM/Pledge/Form/Payment.php
+++ b/civicrm/CRM/Pledge/Form/Payment.php
@@ -54,7 +54,7 @@ class CRM_Pledge_Form_Payment extends CRM_Core_Form {
 
     $this->_id = CRM_Utils_Request::retrieve('ppId', 'Positive', $this);
 
-    CRM_Utils_System::setTitle(ts('Edit Scheduled Pledge Payment'));
+    $this->setTitle(ts('Edit Scheduled Pledge Payment'));
   }
 
   /**
diff --git a/civicrm/CRM/Pledge/Form/PledgeView.php b/civicrm/CRM/Pledge/Form/PledgeView.php
index e2095af55e..a18a84a466 100644
--- a/civicrm/CRM/Pledge/Form/PledgeView.php
+++ b/civicrm/CRM/Pledge/Form/PledgeView.php
@@ -99,7 +99,7 @@ class CRM_Pledge_Form_PledgeView extends CRM_Core_Form {
       $displayName .= ' (' . ts('default organization') . ')';
     }
     // omitting contactImage from title for now since the summary overlay css doesn't work outside of our crm-container
-    CRM_Utils_System::setTitle(ts('View Pledge by') . ' ' . $displayName);
+    $this->setTitle(ts('View Pledge by') . ' ' . $displayName);
 
     // do check for campaigns
     if ($campaignId = CRM_Utils_Array::value('campaign_id', $values)) {
diff --git a/civicrm/CRM/Price/Form/DeleteField.php b/civicrm/CRM/Price/Form/DeleteField.php
index b6a961abb8..b9876cc57b 100644
--- a/civicrm/CRM/Price/Form/DeleteField.php
+++ b/civicrm/CRM/Price/Form/DeleteField.php
@@ -50,7 +50,7 @@ class CRM_Price_Form_DeleteField extends CRM_Core_Form {
 
     $this->assign('title', $this->_title);
 
-    CRM_Utils_System::setTitle(ts('Confirm Price Field Delete'));
+    $this->setTitle(ts('Confirm Price Field Delete'));
   }
 
   /**
diff --git a/civicrm/CRM/Price/Form/Set.php b/civicrm/CRM/Price/Form/Set.php
index 96a5b53cb3..88a24f76a4 100644
--- a/civicrm/CRM/Price/Form/Set.php
+++ b/civicrm/CRM/Price/Form/Set.php
@@ -108,7 +108,7 @@ class CRM_Price_Form_Set extends CRM_Core_Form {
     elseif ($this->_action & CRM_Core_Action::VIEW) {
       $title = ts('Preview %1', [1 => $title]);
     }
-    CRM_Utils_System::setTitle($title);
+    $this->setTitle($title);
 
     $url = CRM_Utils_System::url('civicrm/admin/price', 'reset=1');
     $breadCrumb = [
diff --git a/civicrm/CRM/Profile/Form/Edit.php b/civicrm/CRM/Profile/Form/Edit.php
index b2cfc16bf4..c0f7ec2076 100644
--- a/civicrm/CRM/Profile/Form/Edit.php
+++ b/civicrm/CRM/Profile/Form/Edit.php
@@ -104,23 +104,23 @@ class CRM_Profile_Form_Edit extends CRM_Profile_Form {
     parent::preProcess();
 
     // and also the profile is of type 'Profile'
-    $query = "
+    $query = '
 SELECT module,is_reserved
   FROM civicrm_uf_group
   LEFT JOIN civicrm_uf_join ON uf_group_id = civicrm_uf_group.id
   WHERE civicrm_uf_group.id = %1
-";
+';
 
     $params = [1 => [$this->_gid, 'Integer']];
     $dao = CRM_Core_DAO::executeQuery($query, $params);
 
     $isProfile = FALSE;
     while ($dao->fetch()) {
-      $isProfile = ($isProfile || ($dao->module == "Profile"));
+      $isProfile = ($isProfile || ($dao->module === 'Profile'));
     }
 
     //Check that the user has the "add contacts" Permission
-    $canAdd = CRM_Core_Permission::check("add contacts");
+    $canAdd = CRM_Core_Permission::check('add contacts');
 
     //Remove need for Profile module type when using reserved profiles [CRM-14488]
     if (!$dao->N || (!$isProfile && !($dao->is_reserved && $canAdd))) {
@@ -141,16 +141,16 @@ SELECT module,is_reserved
 
     // set the title
     if ($this->_multiRecord && $this->_customGroupTitle) {
-      $groupTitle = ($this->_multiRecord & CRM_Core_Action::UPDATE) ? 'Edit ' . $this->_customGroupTitle . ' Record' : $this->_customGroupTitle;
+      $this->setTitle(($this->_multiRecord & CRM_Core_Action::UPDATE) ? 'Edit ' . $this->_customGroupTitle . ' Record' : $this->_customGroupTitle);
 
     }
     else {
-      $groupTitle = CRM_Core_BAO_UFGroup::getFrontEndTitle($this->_ufGroup['id']);
+      $this->setTitle(CRM_Core_BAO_UFGroup::getFrontEndTitle($this->_ufGroup['id']));
     }
-    CRM_Utils_System::setTitle($groupTitle);
+
     $this->assign('recentlyViewed', FALSE);
 
-    if ($this->_context != 'dialog') {
+    if ($this->_context !== 'dialog') {
       $this->_postURL = $this->_ufGroup['post_URL'];
       $this->_cancelURL = $this->_ufGroup['cancel_URL'];
 
@@ -160,7 +160,7 @@ SELECT module,is_reserved
       }
 
       if (!$this->_postURL) {
-        if ($this->_context == 'Search') {
+        if ($this->_context === 'Search') {
           $this->_postURL = CRM_Utils_System::url('civicrm/contact/search');
         }
         elseif ($this->_id && $this->_gid) {
@@ -243,6 +243,9 @@ SELECT module,is_reserved
   /**
    * Process the user submitted custom data values.
    *
+   * @throws \API_Exception
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public function postProcess() {
     parent::postProcess();
@@ -260,7 +263,7 @@ SELECT module,is_reserved
     }
 
     // When saving (not deleting) and not in an ajax popup
-    if (empty($_POST[$this->_deleteButtonName]) && $this->_context != 'dialog') {
+    if (empty($_POST[$this->_deleteButtonName]) && $this->_context !== 'dialog') {
       CRM_Core_Session::setStatus(ts('Your information has been saved.'), ts('Thank you.'), 'success');
     }
 
@@ -287,20 +290,11 @@ SELECT module,is_reserved
       $url = CRM_Utils_System::url('civicrm/profile/view', $urlParams);
     }
     else {
-      // Replace tokens from post URL
-      $contactParams = [
-        'contact_id' => $this->_id,
-        'version' => 3,
-      ];
-
-      $contact = civicrm_api('contact', 'get', $contactParams);
-      $contact = reset($contact['values']);
-
-      $dummyMail = new CRM_Mailing_BAO_Mailing();
-      $dummyMail->body_text = $this->_postURL;
-      $tokens = $dummyMail->getTokens();
-
-      $url = CRM_Utils_Token::replaceContactTokens($this->_postURL, $contact, FALSE, CRM_Utils_Array::value('text', $tokens));
+      $url = CRM_Core_BAO_MessageTemplate::renderTemplate([
+        'messageTemplate' => ['msg_text' => $this->_postURL],
+        'contactId' => $this->_id,
+        'disableSmarty' => TRUE,
+      ])['text'];
     }
 
     $session->replaceUserContext($url);
diff --git a/civicrm/CRM/Report/BAO/ReportInstance.php b/civicrm/CRM/Report/BAO/ReportInstance.php
index a0950787c1..9d755dabd0 100644
--- a/civicrm/CRM/Report/BAO/ReportInstance.php
+++ b/civicrm/CRM/Report/BAO/ReportInstance.php
@@ -14,7 +14,7 @@
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
-class CRM_Report_BAO_ReportInstance extends CRM_Report_DAO_ReportInstance {
+class CRM_Report_BAO_ReportInstance extends CRM_Report_DAO_ReportInstance implements Civi\Test\HookInterface {
 
   /**
    * Takes an associative array and creates an instance object.
@@ -219,22 +219,27 @@ class CRM_Report_BAO_ReportInstance extends CRM_Report_DAO_ReportInstance {
    * Delete the instance of the Report.
    *
    * @param int $id
-   *
+   * @deprecated
    * @return mixed
-   *   $results no of deleted Instance on success, false otherwise
    */
   public static function del($id = NULL) {
-    $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $id, 'navigation_id', 'id');
-    $dao = new CRM_Report_DAO_ReportInstance();
-    $dao->id = $id;
-    $result = $dao->delete();
-
-    // Delete navigation if exists.
-    if ($navId) {
-      CRM_Core_BAO_Navigation::processDelete($navId);
-      CRM_Core_BAO_Navigation::resetNavigation();
+    self::deleteRecord(['id' => $id]);
+    return 1;
+  }
+
+  /**
+   * Event fired prior to modifying a ReportInstance.
+   * @param \Civi\Core\Event\PreEvent $event
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if ($event->action === 'delete' && $event->id) {
+      // When deleting a report, also delete from navigation menu
+      $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $event->id, 'navigation_id');
+      if ($navId) {
+        CRM_Core_BAO_Navigation::processDelete($navId);
+        CRM_Core_BAO_Navigation::resetNavigation();
+      }
     }
-    return $result;
   }
 
   /**
diff --git a/civicrm/CRM/Report/Form.php b/civicrm/CRM/Report/Form.php
index 1e297cbb83..da4e6ba09d 100644
--- a/civicrm/CRM/Report/Form.php
+++ b/civicrm/CRM/Report/Form.php
@@ -626,6 +626,10 @@ class CRM_Report_Form extends CRM_Core_Form {
 
       // set qfkey so that pager picks it up and use it in the "Next > Last >>" links.
       // FIXME: Note setting it in $_GET doesn't work, since pager generates link based on QUERY_STRING
+      if (!isset($_SERVER['QUERY_STRING'])) {
+        // in php 7.4 can do this with less lines with ??=
+        $_SERVER['QUERY_STRING'] = '';
+      }
       $_SERVER['QUERY_STRING'] .= "&qfKey={$this->controller->_key}";
     }
 
@@ -1361,20 +1365,8 @@ class CRM_Report_Form extends CRM_Core_Form {
               !is_array($field['options']) || empty($field['options'])
             ) {
               // If there's no option list for this filter, define one.
-              $field['options'] = [
-                1 => ts('January'),
-                2 => ts('February'),
-                3 => ts('March'),
-                4 => ts('April'),
-                5 => ts('May'),
-                6 => ts('June'),
-                7 => ts('July'),
-                8 => ts('August'),
-                9 => ts('September'),
-                10 => ts('October'),
-                11 => ts('November'),
-                12 => ts('December'),
-              ];
+              $field['options'] = CRM_Utils_Date::getFullMonthNames();
+
               // Add this option list to this column _columns. This is
               // required so that filter statistics show properly.
               $this->_columns[$table]['filters'][$fieldName]['options'] = $field['options'];
diff --git a/civicrm/CRM/Report/Form/Event/Summary.php b/civicrm/CRM/Report/Form/Event/Summary.php
index 11af2ed73a..308d07edaf 100644
--- a/civicrm/CRM/Report/Form/Event/Summary.php
+++ b/civicrm/CRM/Report/Form/Event/Summary.php
@@ -85,6 +85,23 @@ class CRM_Report_Form_Event_Summary extends CRM_Report_Form {
             'operatorType' => CRM_Report_Form::OP_DATE,
           ],
         ],
+        'order_bys' => [
+          'event_start_date' => [
+            'title' => ts('Event Start Date'),
+            'default' => '1',
+            'default_weight' => '0',
+            'default_order' => 'DESC',
+          ],
+          'event_end_date' => [
+            'title' => ts('Event End Date'),
+          ],
+          'max_participants' => [
+            'title' => ts('Capacity'),
+          ],
+          'title' => [
+            'title' => ts('Event Title'),
+          ],
+        ],
       ],
     ];
     $this->_currencyColumn = 'civicrm_participant_fee_currency';
diff --git a/civicrm/CRM/Report/Form/Register.php b/civicrm/CRM/Report/Form/Register.php
index cc1440150e..f1ccbfc59d 100644
--- a/civicrm/CRM/Report/Form/Register.php
+++ b/civicrm/CRM/Report/Form/Register.php
@@ -22,7 +22,7 @@ class CRM_Report_Form_Register extends CRM_Core_Form {
     $this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE);
     $this->_id = CRM_Utils_Request::retrieve('id', 'String', $this, FALSE);
 
-    CRM_Utils_System::setTitle(ts('Report Template'));
+    $this->setTitle(ts('Report Template'));
 
     if ($this->_action & CRM_Core_Action::DELETE) {
       return;
diff --git a/civicrm/CRM/UF/Form/Group.php b/civicrm/CRM/UF/Form/Group.php
index 58c9b9f540..07a03b6267 100644
--- a/civicrm/CRM/UF/Form/Group.php
+++ b/civicrm/CRM/UF/Form/Group.php
@@ -124,7 +124,7 @@ class CRM_UF_Form_Group extends CRM_Core_Form {
 
     // setting title for html page
     if ($this->_action & CRM_Core_Action::UPDATE) {
-      CRM_Utils_System::setTitle(ts('Profile Settings') . " - $title");
+      $this->setTitle(ts('Profile Settings') . " - $title");
     }
     elseif ($this->_action & (CRM_Core_Action::DISABLE | CRM_Core_Action::DELETE)) {
       $ufGroup['module'] = implode(' , ', CRM_Core_BAO_UFGroup::getUFJoinRecord($this->_id, TRUE));
@@ -149,7 +149,7 @@ class CRM_UF_Form_Group extends CRM_Core_Form {
       $this->assign('message', $message);
     }
     else {
-      CRM_Utils_System::setTitle(ts('New CiviCRM Profile'));
+      $this->setTitle(ts('New CiviCRM Profile'));
     }
   }
 
diff --git a/civicrm/CRM/Upgrade/4.5.0.msg_template/civicrm_msg_template.tpl b/civicrm/CRM/Upgrade/4.5.0.msg_template/civicrm_msg_template.tpl
deleted file mode 100644
index df3eeb6fa0..0000000000
--- a/civicrm/CRM/Upgrade/4.5.0.msg_template/civicrm_msg_template.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{php}
-  $dir = SMARTY_DIR . '/../../CRM/Upgrade/4.5.0.msg_template/message_templates';
-  $templates = array();
-  foreach (preg_grep('/\.tpl$/', scandir($dir)) as $filename) {
-    $parts = explode('_', basename($filename, '.tpl'));
-    $templates[] = array('type' => array_pop($parts), 'name' => implode('_', $parts), 'filename' => "$dir/$filename");
-  }
-  $this->assign('templates', $templates);
-{/php}
-
-{foreach from=$templates item=tpl}
-  {fetch assign=content file=$tpl.filename}
-  SELECT @workflow_id := MAX(id) FROM civicrm_option_value WHERE name = '{$tpl.name}';
-  SELECT @content := msg_{$tpl.type} FROM civicrm_msg_template WHERE workflow_id = @workflow_id AND is_reserved = 1 LIMIT 1;
-  UPDATE civicrm_msg_template SET msg_{$tpl.type} = '{$content|escape:"quotes"}' WHERE workflow_id = @workflow_id AND (is_reserved = 1 OR (is_default = 1 AND msg_{$tpl.type} = @content));
-{/foreach}
diff --git a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_html.tpl b/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_html.tpl
deleted file mode 100644
index 0ef701f9c2..0000000000
--- a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_html.tpl
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-    <p>{ts 1=$contact.display_name}Dear %1{/ts},</p>
-    <p>{ts}Your recurring contribution has been updated as requested:{/ts}
-    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>
-
-    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>
-   </td>
-  </tr>
-  <tr>
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_text.tpl b/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_text.tpl
deleted file mode 100644
index 774597acd7..0000000000
--- a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_edit_text.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{ts 1=$contact.display_name}Dear %1{/ts},
-
-{ts}Your recurring contribution has been updated as requested:{/ts}
-
-{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}
-{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}
-
-{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}
diff --git a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_html.tpl b/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_html.tpl
deleted file mode 100644
index f7b6387c81..0000000000
--- a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_html.tpl
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-    <p>{ts 1=$displayName}Dear %1{/ts},</p>
-   </td>
-  </tr>
-
-  <tr>
-   <td>&nbsp;</td>
-  </tr>
-
-    {if $recur_txnType eq 'START'}
-     {if $auto_renew_membership}
-       <tr>
-        <td>
-         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>
-         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>
-        </td>
-       </tr>
-       <tr>
-        <td {$labelStyle}>
-         {ts 1=$cancelSubscriptionUrl}This membership will be renewed automatically. You can cancel the auto-renewal option by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-       </tr>
-       <tr>
-        <td {$labelStyle}>
-         {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-       </tr>
-     {else}
-      <tr>
-       <td>
-        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>
-        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>
-        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>
-       </td>
-      </tr>
-      <tr>
-        <td {$labelStyle}>
-         {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-      </tr>
-      <tr>
-        <td {$labelStyle}>
-         {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-       </tr>
-       <tr>
-        <td {$labelStyle}>
-   {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-       </tr>
-     {/if}
-
-    {elseif $recur_txnType eq 'END'}
-
-     {if $auto_renew_membership}
-      <tr>
-       <td>
-        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>
-       </td>
-      </tr>
-     {else}
-      <tr>
-       <td>
-        <p>{ts}Your recurring contribution term has ended.{/ts}</p>
-        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you for your support.{/ts}</p>
-       </td>
-      </tr>
-      <tr>
-       <td>
-     <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-      <tr>
-       <th {$headerStyle}>
-        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}
-       </th>
-      </tr>
-      <tr>
-       <td {$labelStyle}>
-        {ts}Start Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$recur_start_date|crmDate}
-       </td>
-      </tr>
-      <tr>
-       <td {$labelStyle}>
-        {ts}End Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$recur_end_date|crmDate}
-       </td>
-      </tr>
-     </table>
-       </td>
-      </tr>
-
-     {/if}
-    {/if}
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_text.tpl b/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_text.tpl
deleted file mode 100644
index 6146808ce2..0000000000
--- a/civicrm/CRM/Upgrade/4.5.0.msg_template/message_templates/contribution_recurring_notify_text.tpl
+++ /dev/null
@@ -1,50 +0,0 @@
-{ts 1=$displayName}Dear %1{/ts},
-
-{if $recur_txnType eq 'START'}
-{if $auto_renew_membership}
-{ts}Thanks for your auto renew membership sign-up.{/ts}
-
-
-{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}
-
-{ts 1=$cancelSubscriptionUrl}This membership will be renewed automatically. You can cancel the auto-renewal option by <a href="%1">visiting this web page</a>.{/ts}
-
-{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href="%1">visiting this web page</a>.{/ts}
-
-{else}
-{ts}Thanks for your recurring contribution sign-up.{/ts}
-
-
-{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.
-
-{ts}Start Date{/ts}:  {$recur_start_date|crmDate}
-
-{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href="%1">visiting this web page</a>.{/ts}
-
-{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href="%1">visiting this web page</a>.{/ts}
-
-{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href="%1">visiting this web page</a>.{/ts}
-{/if}
-
-{elseif $recur_txnType eq 'END'}
-{if $auto_renew_membership}
-{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}
-
-
-{else}
-{ts}Your recurring contribution term has ended.{/ts}
-
-
-{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you for your support.{/ts}
-
-
-==================================================
-{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}
-
-==================================================
-{ts}Start Date{/ts}: {$recur_start_date|crmDate}
-
-{ts}End Date{/ts}: {$recur_end_date|crmDate}
-
-{/if}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl
deleted file mode 100644
index 07553db60b..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl
+++ /dev/null
@@ -1,57 +0,0 @@
-{php}
-  $dir = SMARTY_DIR . '/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates';
-  $templates = array();
-  foreach (preg_grep('/\.tpl$/', scandir($dir)) as $filename) {
-    $parts = explode('_', basename($filename, '.tpl'));
-    $templates[] = array('type' => array_pop($parts), 'name' => implode('_', $parts), 'filename' => "$dir/$filename");
-  }
-  $this->assign('templates', $templates);
-{/php}
-
-{foreach from=$templates item=tpl}
-  {fetch assign=content file=$tpl.filename}
-  SELECT @workflow_id := MAX(id) FROM civicrm_option_value WHERE name = '{$tpl.name}';
-  SELECT @content := msg_{$tpl.type} FROM civicrm_msg_template WHERE workflow_id = @workflow_id AND is_reserved = 1 LIMIT 1;
-  UPDATE civicrm_msg_template SET msg_{$tpl.type} = '{$content|escape:"quotes"}' WHERE workflow_id = @workflow_id AND (is_reserved = 1 OR (is_default = 1 AND msg_{$tpl.type} = @content));
-{/foreach}
-
-{php}
-  $ovNames = array(
-    'contribution' => array(
-      'payment_or_refund_notification' => ts('Additional Payment Receipt or Refund Notification',             array('escape' => 'sql')),
-    ),
-  );
-
-  $this->assign('ovNames', $ovNames);
-  $this->assign('dir', $dir);
-{/php}
-
-{foreach from=$ovNames key=name item=ignore}
-  SELECT @tpl_ogid_{$name} := MAX(id) FROM civicrm_option_group WHERE name = 'msg_tpl_workflow_{$name}';
-{/foreach}
-
-INSERT INTO civicrm_option_value
-  (option_group_id,        name,       {localize field='label'}label{/localize},   value,                                  weight) VALUES
-{foreach from=$ovNames key=gName item=ovs name=for_groups}
-{foreach from=$ovs key=vName item=label name=for_values}
-      (@tpl_ogid_{$gName}, '{$vName}', {localize}'{$label}'{/localize},            {$smarty.foreach.for_values.iteration}, {$smarty.foreach.for_values.iteration}) {if $smarty.foreach.for_groups.last and $smarty.foreach.for_values.last};{else},{/if}
-{/foreach}
-{/foreach}
-
-{foreach from=$ovNames key=gName item=ovs}
-{foreach from=$ovs key=vName item=label}
-    SELECT @tpl_ovid_{$vName} := MAX(id) FROM civicrm_option_value WHERE option_group_id = @tpl_ogid_{$gName} AND name = '{$vName}';
-{/foreach}
-{/foreach}
-
-INSERT INTO civicrm_msg_template
-  (msg_title,      msg_subject,                  msg_text,                  msg_html,                  workflow_id,        is_default, is_reserved) VALUES
-{foreach from=$ovNames key=gName item=ovs name=for_groups}
-{foreach from=$ovs key=vName item=title name=for_values}
-      {fetch assign=subject file="`$smarty.const.SMARTY_DIR`/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates/`$vName`_subject.tpl"}
-      {fetch assign=text    file="`$smarty.const.SMARTY_DIR`/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates/`$vName`_text.tpl"}
-      {fetch assign=html    file="`$smarty.const.SMARTY_DIR`/../../CRM/Upgrade/4.5.alpha1.msg_template/message_templates/`$vName`_html.tpl"}
-      ('{$title}', '{$subject|escape:"quotes"}', '{$text|escape:"quotes"}', '{$html|escape:"quotes"}', @tpl_ovid_{$vName}, 1,          0),
-      ('{$title}', '{$subject|escape:"quotes"}', '{$text|escape:"quotes"}', '{$html|escape:"quotes"}', @tpl_ovid_{$vName}, 0,          1) {if $smarty.foreach.for_groups.last and $smarty.foreach.for_values.last};{else},{/if}
-{/foreach}
-{/foreach}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_html.tpl
deleted file mode 100644
index 8f85b57180..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_html.tpl
+++ /dev/null
@@ -1,265 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-
-    {if $formValues.receipt_text}
-     <p>{$formValues.receipt_text|htmlize}</p>
-    {else}
-     <p>{ts}Thank you for your support.{/ts}</p>
-    {/if}
-
-    <p>{ts}Please print this receipt for your records.{/ts}</p>
-
-   </td>
-  </tr>
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-     <tr>
-      <th {$headerStyle}>
-       {ts}Contribution Information{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td {$labelStyle}>
-       {ts}Financial Type{/ts}
-      </td>
-      <td {$valueStyle}>
-       {$formValues.contributionType_name}
-      </td>
-     </tr>
-
-     {if $lineItem and !$is_quick_config}
-      {foreach from=$lineItem item=value key=priceset}
-       <tr>
-        <td colspan="2" {$valueStyle}>
-         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}
-          <tr>
-           <th>{ts}Item{/ts}</th>
-           <th>{ts}Qty{/ts}</th>
-           <th>{ts}Each{/ts}</th>
-           <th>{ts}Total{/ts}</th>
-          </tr>
-          {foreach from=$value item=line}
-           <tr>
-            <td>
-            {if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:"..."}</div>{/if}
-            </td>
-            <td>
-             {$line.qty}
-            </td>
-            <td>
-             {$line.unit_price|crmMoney:$currency}
-            </td>
-            <td>
-             {$line.line_total|crmMoney:$currency}
-            </td>
-           </tr>
-          {/foreach}
-         </table>
-        </td>
-       </tr>
-      {/foreach}
-     {/if}
-
-     <tr>
-      <td {$labelStyle}>
-       {ts}Total Amount{/ts}
-      </td>
-      <td {$valueStyle}>
-       {$formValues.total_amount|crmMoney:$currency}
-      </td>
-     </tr>
-
-     {if $receive_date}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Received Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$receive_date|truncate:10:''|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-      {if $receipt_date}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Receipt Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$receipt_date|truncate:10:''|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-     {if $formValues.paidBy and !$formValues.hidden_CreditCard}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Paid By{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$formValues.paidBy}
-       </td>
-      </tr>
-      {if $formValues.check_number}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Check Number{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$formValues.check_number}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-     {if $formValues.trxn_id}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Transaction ID{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$formValues.trxn_id}
-       </td>
-      </tr>
-     {/if}
-
-     {if $ccContribution}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Billing Name and Address{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$billingName}<br />
-        {$address|nl2br}
-       </td>
-      </tr>
-      <tr>
-       <th {$headerStyle}>
-        {ts}Credit Card Information{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$credit_card_type}<br />
-        {$credit_card_number}<br />
-        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-     {if $softCreditTypes and $softCredits}
-      {foreach from=$softCreditTypes item=softCreditType key=n}
-       <tr>
-        <th {$headerStyle}>
-         {$softCreditType}
-        </th>
-       </tr>
-       {foreach from=$softCredits.$n item=value key=label}
-         <tr>
-          <td {$labelStyle}>
-           {$label}
-          </td>
-          <td {$valueStyle}>
-           {$value}
-          </td>
-         </tr>
-        {/foreach}
-       {/foreach}
-     {/if}
-
-     {if $customGroup}
-      {foreach from=$customGroup item=value key=customName}
-       <tr>
-        <th {$headerStyle}>
-         {$customName}
-        </th>
-       </tr>
-       {foreach from=$value item=v key=n}
-        <tr>
-         <td {$labelStyle}>
-          {$n}
-         </td>
-         <td {$valueStyle}>
-          {$v}
-         </td>
-        </tr>
-       {/foreach}
-      {/foreach}
-     {/if}
-
-     {if $formValues.product_name}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Premium Information{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {$formValues.product_name}
-       </td>
-      </tr>
-      {if $formValues.product_option}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Option{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$formValues.product_option}
-        </td>
-       </tr>
-      {/if}
-      {if $formValues.product_sku}
-       <tr>
-        <td {$labelStyle}>
-         {ts}SKU{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$formValues.product_sku}
-        </td>
-       </tr>
-      {/if}
-      {if $fulfilled_date}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Sent{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$fulfilled_date|truncate:10:''|crmDate}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-    </table>
-   </td>
-  </tr>
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_text.tpl
deleted file mode 100644
index 1bf0cca726..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_offline_receipt_text.tpl
+++ /dev/null
@@ -1,98 +0,0 @@
-{if $formValues.receipt_text}
-{$formValues.receipt_text}
-{else}{ts}Thank you for your support.{/ts}{/if}
-
-{ts}Please print this receipt for your records.{/ts}
-
-
-===========================================================
-{ts}Contribution Information{/ts}
-
-===========================================================
-{ts}Financial Type{/ts}: {$formValues.contributionType_name}
-{if $lineItem}
-{foreach from=$lineItem item=value key=priceset}
----------------------------------------------------------
-{capture assign=ts_item}{ts}Item{/ts}{/capture}
-{capture assign=ts_qty}{ts}Qty{/ts}{/capture}
-{capture assign=ts_each}{ts}Each{/ts}{/capture}
-{capture assign=ts_total}{ts}Total{/ts}{/capture}
-{$ts_item|string_format:"%-30s"} {$ts_qty|string_format:"%5s"} {$ts_each|string_format:"%10s"} {$ts_total|string_format:"%10s"}
-----------------------------------------------------------
-{foreach from=$value item=line}
-{capture assign=ts_item}{if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:"..."|string_format:"%-30s"} {$line.qty|string_format:"%5s"} {$line.unit_price|crmMoney:$currency|string_format:"%10s"} {$line.line_total|crmMoney:$currency|string_format:"%10s"}
-{/foreach}
-{/foreach}
-{/if}
-
-{ts}Total Amount{/ts}: {$formValues.total_amount|crmMoney:$currency}
-{if $receive_date}
-{ts}Received Date{/ts}: {$receive_date|truncate:10:''|crmDate}
-{/if}
-{if $receipt_date}
-{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:''|crmDate}
-{/if}
-{if $formValues.paidBy and !$formValues.hidden_CreditCard}
-{ts}Paid By{/ts}: {$formValues.paidBy}
-{if $formValues.check_number}
-{ts}Check Number{/ts}: {$formValues.check_number}
-{/if}
-{/if}
-{if $formValues.trxn_id}
-{ts}Transaction ID{/ts}: {$formValues.trxn_id}
-{/if}
-
-{if $ccContribution}
-===========================================================
-{ts}Billing Name and Address{/ts}
-
-===========================================================
-{$billingName}
-{$address}
-
-===========================================================
-{ts}Credit Card Information{/ts}
-
-===========================================================
-{$credit_card_type}
-{$credit_card_number}
-{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-{/if}
-{if $customGroup}
-{foreach from=$customGroup item=value key=customName}
-===========================================================
-{$customName}
-===========================================================
-{foreach from=$value item=v key=n}
-{$n}: {$v}
-{/foreach}
-{/foreach}
-{/if}
-
-{if $softCreditTypes and $softCredits}
-{foreach from=$softCreditTypes item=softCreditType key=n}
-===========================================================
-{$softCreditType}
-===========================================================
-{foreach from=$softCredits.$n item=value key=label}
-{$label}: {$value}
-{/foreach}
-{/foreach}
-{/if}
-
-{if $formValues.product_name}
-===========================================================
-{ts}Premium Information{/ts}
-
-===========================================================
-{$formValues.product_name}
-{if $formValues.product_option}
-{ts}Option{/ts}: {$formValues.product_option}
-{/if}
-{if $formValues.product_sku}
-{ts}SKU{/ts}: {$formValues.product_sku}
-{/if}
-{if $fulfilled_date}
-{ts}Sent{/ts}: {$fulfilled_date|crmDate}
-{/if}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_html.tpl
deleted file mode 100644
index 8970c3af47..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_html.tpl
+++ /dev/null
@@ -1,409 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="500" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-
-    {if $receipt_text}
-     <p>{$receipt_text|htmlize}</p>
-    {/if}
-
-    {if $is_pay_later}
-     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}
-    {else}
-     <p>{ts}Please print this confirmation for your records.{/ts}</p>
-    {/if}
-
-   </td>
-  </tr>
-  </table>
-  <table width="500" style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;">
-
-     {if $amount}
-
-
-      <tr>
-       <th {$headerStyle}>
-        {ts}Contribution Information{/ts}
-       </th>
-      </tr>
-
-      {if $lineItem and $priceSetID and !$is_quick_config}
-
-       {foreach from=$lineItem item=value key=priceset}
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}
-           <tr>
-            <th>{ts}Item{/ts}</th>
-            <th>{ts}Qty{/ts}</th>
-            <th>{ts}Each{/ts}</th>
-            <th>{ts}Total{/ts}</th>
-           </tr>
-           {foreach from=$value item=line}
-            <tr>
-             <td>
-             {if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:"..."}</div>{/if}
-             </td>
-             <td>
-              {$line.qty}
-             </td>
-             <td>
-              {$line.unit_price|crmMoney:$currency}
-             </td>
-             <td>
-              {$line.line_total|crmMoney:$currency}
-             </td>
-            </tr>
-           {/foreach}
-          </table>
-         </td>
-        </tr>
-       {/foreach}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Total Amount{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$amount|crmMoney:$currency}
-        </td>
-       </tr>
-
-      {else}
-
-       <tr>
-        <td {$labelStyle}>
-         {ts}Amount{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$amount|crmMoney:$currency} {if $amount_level} - {$amount_level}{/if}
-        </td>
-       </tr>
-
-      {/if}
-
-     {/if}
-
-
-     {if $receive_date}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$receive_date|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-     {if $is_monetary and $trxn_id}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Transaction #{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$trxn_id}
-       </td>
-      </tr>
-     {/if}
-
-     {if $is_recur}
-      {if $contributeMode eq 'notify' or $contributeMode eq 'directIPN'}
-       <tr>
-        <td  colspan="2" {$labelStyle}>
-         {ts 1=$cancelSubscriptionUrl}This is a recurring contribution. You can cancel future contributions by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-        {if $updateSubscriptionBillingUrl}
-         <tr>
-         </tr>
-         <td colspan="2" {$labelStyle}>
-          {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href="%1">visiting this web page</a>.{/ts}
-         </td>
-        {/if}
-       <tr>
-       </tr>
-        <td colspan="2" {$labelStyle}>
-         {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-     {if $honor_block_is_active}
-      <tr>
-       <th {$headerStyle}>
-        {$soft_credit_type}
-       </th>
-      </tr>
-      {foreach from=$honoreeProfile item=value key=label}
-        <tr>
-         <td {$labelStyle}>
-          {$label}
-         </td>
-         <td {$valueStyle}>
-          {$value}
-         </td>
-        </tr>
-      {/foreach}
-      {elseif $softCreditTypes and $softCredits}
-      {foreach from=$softCreditTypes item=softCreditType key=n}
-       <tr>
-        <th {$headerStyle}>
-         {$softCreditType}
-        </th>
-       </tr>
-       {foreach from=$softCredits.$n item=value key=label}
-         <tr>
-          <td {$labelStyle}>
-           {$label}
-          </td>
-          <td {$valueStyle}>
-           {$value}
-          </td>
-         </tr>
-        {/foreach}
-       {/foreach}
-     {/if}
-
-     {if $pcpBlock}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Personal Campaign Page{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td {$labelStyle}>
-        {ts}Display In Honor Roll{/ts}
-       </td>
-       <td {$valueStyle}>
-        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}
-       </td>
-      </tr>
-      {if $pcp_roll_nickname}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Nickname{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$pcp_roll_nickname}
-        </td>
-       </tr>
-      {/if}
-      {if $pcp_personal_note}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Personal Note{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$pcp_personal_note}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-     {if $onBehalfProfile}
-      <tr>
-       <th {$headerStyle}>
-        {$onBehalfProfile_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}
-        <tr>
-         <td {$labelStyle}>
-          {$onBehalfName}
-         </td>
-         <td {$valueStyle}>
-          {$onBehalfValue}
-         </td>
-        </tr>
-      {/foreach}
-     {/if}
-
-     {if $isShare}
-      <tr>
-        <td colspan="2" {$valueStyle}>
-            {capture assign=contributionUrl}{crmURL p='civicrm/contribute/transact' q="reset=1&id=`$contributionPageId`" a=true fe=1 h=1}{/capture}
-            {include file="CRM/common/SocialNetwork.tpl" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}
-        </td>
-      </tr>
-     {/if}
-
-     {if ! ($contributeMode eq 'notify' OR $contributeMode eq 'directIPN') and $is_monetary}
-      {if $is_pay_later}
-       <tr>
-        <th {$headerStyle}>
-         {ts}Registered Email{/ts}
-        </th>
-       </tr>
-       <tr>
-        <td colspan="2" {$valueStyle}>
-         {$email}
-        </td>
-       </tr>
-      {elseif $amount GT 0}
-       <tr>
-        <th {$headerStyle}>
-         {ts}Billing Name and Address{/ts}
-        </th>
-       </tr>
-       <tr>
-        <td colspan="2" {$valueStyle}>
-         {$billingName}<br />
-         {$address|nl2br}<br />
-         {$email}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-     {if $contributeMode eq 'direct' AND !$is_pay_later AND $amount GT 0}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Credit Card Information{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$credit_card_type}<br />
-        {$credit_card_number}<br />
-        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}<br />
-       </td>
-      </tr>
-     {/if}
-
-     {if $selectPremium}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Premium Information{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {$product_name}
-       </td>
-      </tr>
-      {if $option}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Option{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$option}
-        </td>
-       </tr>
-      {/if}
-      {if $sku}
-       <tr>
-        <td {$labelStyle}>
-         {ts}SKU{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$sku}
-        </td>
-       </tr>
-      {/if}
-      {if $start_date}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Start Date{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$start_date|crmDate}
-        </td>
-       </tr>
-      {/if}
-      {if $end_date}
-       <tr>
-        <td {$labelStyle}>
-         {ts}End Date{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$end_date|crmDate}
-        </td>
-       </tr>
-      {/if}
-      {if $contact_email OR $contact_phone}
-       <tr>
-        <td colspan="2" {$valueStyle}>
-         <p>{ts}For information about this premium, contact:{/ts}</p>
-         {if $contact_email}
-          <p>{$contact_email}</p>
-         {/if}
-         {if $contact_phone}
-          <p>{$contact_phone}</p>
-         {/if}
-        </td>
-       </tr>
-      {/if}
-      {if $is_deductible AND $price}
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>
-         </td>
-        </tr>
-      {/if}
-     {/if}
-
-     {if $customPre}
-      <tr>
-       <th {$headerStyle}>
-        {$customPre_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$customPre item=customValue key=customName}
-       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}
-        <tr>
-         <td {$labelStyle}>
-          {$customName}
-         </td>
-         <td {$valueStyle}>
-          {$customValue}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $customPost}
-      <tr>
-       <th {$headerStyle}>
-        {$customPost_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$customPost item=customValue key=customName}
-       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}
-        <tr>
-         <td {$labelStyle}>
-          {$customName}
-         </td>
-         <td {$valueStyle}>
-          {$customValue}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-  </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_text.tpl
deleted file mode 100644
index aa8fe70241..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/contribution_online_receipt_text.tpl
+++ /dev/null
@@ -1,188 +0,0 @@
-{if $receipt_text}
-{$receipt_text}
-{/if}
-{if $is_pay_later}
-
-===========================================================
-{$pay_later_receipt}
-===========================================================
-{else}
-
-{ts}Please print this receipt for your records.{/ts}
-{/if}
-
-{if $amount}
-===========================================================
-{ts}Contribution Information{/ts}
-
-===========================================================
-{if $lineItem and $priceSetID and !$is_quick_config}
-{foreach from=$lineItem item=value key=priceset}
----------------------------------------------------------
-{capture assign=ts_item}{ts}Item{/ts}{/capture}
-{capture assign=ts_qty}{ts}Qty{/ts}{/capture}
-{capture assign=ts_each}{ts}Each{/ts}{/capture}
-{capture assign=ts_total}{ts}Total{/ts}{/capture}
-{$ts_item|string_format:"%-30s"} {$ts_qty|string_format:"%5s"} {$ts_each|string_format:"%10s"} {$ts_total|string_format:"%10s"}
-----------------------------------------------------------
-{foreach from=$value item=line}
-{capture assign=ts_item}{if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:"..."|string_format:"%-30s"} {$line.qty|string_format:"%5s"} {$line.unit_price|crmMoney:$currency|string_format:"%10s"} {$line.line_total|crmMoney:$currency|string_format:"%10s"}
-{/foreach}
-{/foreach}
-
-{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}
-{else}
-{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if $amount_level } - {$amount_level} {/if}
-{/if}
-{/if}
-{if $receive_date}
-
-{ts}Date{/ts}: {$receive_date|crmDate}
-{/if}
-{if $is_monetary and $trxn_id}
-{ts}Transaction #{/ts}: {$trxn_id}
-{/if}
-
-{if $is_recur and ($contributeMode eq 'notify' or $contributeMode eq 'directIPN')}
-{ts}This is a recurring contribution. You can cancel future contributions at:{/ts}
-
-{$cancelSubscriptionUrl}
-
-{if $updateSubscriptionBillingUrl}
-{ts}You can update billing details for this recurring contribution at:{/ts}
-
-{$updateSubscriptionBillingUrl}
-
-{/if}
-{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}
-
-{$updateSubscriptionUrl}
-
-{/if}
-
-{if $honor_block_is_active}
-===========================================================
-{$soft_credit_type}
-===========================================================
-{foreach from=$honoreeProfile item=value key=label}
-{$label}: {$value}
-{/foreach}
-{elseif $softCreditTypes and $softCredits}
-{foreach from=$softCreditTypes item=softCreditType key=n}
-===========================================================
-{$softCreditType}
-===========================================================
-{foreach from=$softCredits.$n item=value key=label}
-{$label}: {$value}
-{/foreach}
-{/foreach}
-{/if}
-{if $pcpBlock}
-===========================================================
-{ts}Personal Campaign Page{/ts}
-
-===========================================================
-{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}
-
-{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}
-
-{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}
-
-{/if}
-{if $onBehalfProfile}
-===========================================================
-{ts}On Behalf Of{/ts}
-
-===========================================================
-{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}
-{$onBehalfName}: {$onBehalfValue}
-{/foreach}
-{/if}
-
-{if !( $contributeMode eq 'notify' OR $contributeMode eq 'directIPN' ) and $is_monetary}
-{if $is_pay_later}
-===========================================================
-{ts}Registered Email{/ts}
-
-===========================================================
-{$email}
-{elseif $amount GT 0}
-===========================================================
-{ts}Billing Name and Address{/ts}
-
-===========================================================
-{$billingName}
-{$address}
-
-{$email}
-{/if} {* End ! is_pay_later condition. *}
-{/if}
-{if $contributeMode eq 'direct' AND !$is_pay_later AND $amount GT 0}
-
-===========================================================
-{ts}Credit Card Information{/ts}
-
-===========================================================
-{$credit_card_type}
-{$credit_card_number}
-{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-{/if}
-
-{if $selectPremium }
-===========================================================
-{ts}Premium Information{/ts}
-
-===========================================================
-{$product_name}
-{if $option}
-{ts}Option{/ts}: {$option}
-{/if}
-{if $sku}
-{ts}SKU{/ts}: {$sku}
-{/if}
-{if $start_date}
-{ts}Start Date{/ts}: {$start_date|crmDate}
-{/if}
-{if $end_date}
-{ts}End Date{/ts}: {$end_date|crmDate}
-{/if}
-{if $contact_email OR $contact_phone}
-
-{ts}For information about this premium, contact:{/ts}
-
-{if $contact_email}
-  {$contact_email}
-{/if}
-{if $contact_phone}
-  {$contact_phone}
-{/if}
-{/if}
-{if $is_deductible AND $price}
-
-{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}
-{/if}
-
-{if $customPre}
-===========================================================
-{$customPre_grouptitle}
-
-===========================================================
-{foreach from=$customPre item=customValue key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
- {$customName}: {$customValue}
-{/if}
-{/foreach}
-{/if}
-
-
-{if $customPost}
-===========================================================
-{$customPost_grouptitle}
-
-===========================================================
-{foreach from=$customPost item=customValue key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
- {$customName}: {$customValue}
-{/if}
-{/foreach}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_html.tpl
deleted file mode 100644
index c346302e59..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_html.tpl
+++ /dev/null
@@ -1,474 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-
-    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}
-     <p>{$event.confirm_email_text|htmlize}</p>
-    {/if}
-
-    {if $isOnWaitlist}
-     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>
-     {if $isPrimary}
-       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>
-     {/if}
-    {elseif $isRequireApproval}
-     <p>{ts}Your registration has been submitted.{/ts}</p>
-     {if $isPrimary}
-      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>
-     {/if}
-    {elseif $is_pay_later}
-     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}
-    {else}
-     <p>{ts}Please print this confirmation for your records.{/ts}</p>
-    {/if}
-
-   </td>
-  </tr>
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-     <tr>
-      <th {$headerStyle}>
-       {ts}Event Information and Location{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td colspan="2" {$valueStyle}>
-       {$event.event_title}<br />
-       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-      </td>
-     </tr>
-
-     {if $event.participant_role neq 'Attendee' and $defaultRole}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Participant Role{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$event.participant_role}
-       </td>
-      </tr>
-     {/if}
-
-     {if $isShowLocation}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {if $location.address.1.name}
-         {$location.address.1.name}<br />
-        {/if}
-        {if $location.address.1.street_address}
-         {$location.address.1.street_address}<br />
-        {/if}
-        {if $location.address.1.supplemental_address_1}
-         {$location.address.1.supplemental_address_1}<br />
-        {/if}
-        {if $location.address.1.supplemental_address_2}
-         {$location.address.1.supplemental_address_2}<br />
-        {/if}
-        {if $location.address.1.city}
-         {$location.address.1.city} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if}<br />
-        {/if}
-       </td>
-      </tr>
-     {/if}
-
-     {if $location.phone.1.phone || $location.email.1.email}
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {ts}Event Contacts:{/ts}
-       </td>
-      </tr>
-      {foreach from=$location.phone item=phone}
-       {if $phone.phone}
-        <tr>
-         <td {$labelStyle}>
-          {if $phone.phone_type}
-           {$phone.phone_type_display}
-          {else}
-           {ts}Phone{/ts}
-          {/if}
-         </td>
-         <td {$valueStyle}>
-          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-      {foreach from=$location.email item=eventEmail}
-       {if $eventEmail.email}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Email{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$eventEmail.email}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $event.is_public}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture}
-        <a href="{$icalFeed}">{ts}Download iCalendar File{/ts}</a>
-       </td>
-      </tr>
-     {/if}
-
-     {if $email}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Registered Email{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$email}
-       </td>
-      </tr>
-     {/if}
-
-
-     {if $event.is_monetary}
-
-      <tr>
-       <th {$headerStyle}>
-        {$event.fee_label}
-       </th>
-      </tr>
-
-      {if $lineItem}
-       {foreach from=$lineItem item=value key=priceset}
-        {if $value neq 'skip'}
-         {if $isPrimary}
-          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}
-           <tr>
-            <td colspan="2" {$labelStyle}>
-             {ts 1=$priceset+1}Participant %1{/ts}
-            </td>
-           </tr>
-          {/if}
-         {/if}
-         <tr>
-          <td colspan="2" {$valueStyle}>
-           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}
-            <tr>
-             <th>{ts}Item{/ts}</th>
-             <th>{ts}Qty{/ts}</th>
-             <th>{ts}Each{/ts}</th>
-             <th>{ts}Total{/ts}</th>
-       {if $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}
-            </tr>
-            {foreach from=$value item=line}
-             <tr>
-              <td>
-        {if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:"..."}</div>{/if}
-              </td>
-              <td>
-               {$line.qty}
-              </td>
-              <td>
-               {$line.unit_price|crmMoney}
-              </td>
-              <td>
-               {$line.line_total|crmMoney}
-              </td>
-        {if  $pricesetFieldsCount }
-        <td>
-    {$line.participant_count}
-              </td>
-        {/if}
-             </tr>
-            {/foreach}
-           </table>
-          </td>
-         </tr>
-        {/if}
-       {/foreach}
-      {/if}
-
-      {if $amount && !$lineItem}
-       {foreach from=$amount item=amnt key=level}
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          {$amnt.amount|crmMoney} {$amnt.label}
-         </td>
-        </tr>
-       {/foreach}
-      {/if}
-      {if $isPrimary}
-       <tr>
-        <td {$labelStyle}>
-        {if $balanceAmount}
-           {ts}Total Paid{/ts}
-        {else}
-           {ts}Total Amount{/ts}
-         {/if}
-        </td>
-        <td {$valueStyle}>
-         {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}
-        </td>
-       </tr>
-      {if $balanceAmount}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Balance{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$balanceAmount|crmMoney}
-        </td>
-       </tr>
-      {/if}
-       {if $pricesetFieldsCount }
-     <tr>
-       <td {$labelStyle}>
-   {ts}Total Participants{/ts}</td>
-       <td {$valueStyle}>
-   {assign var="count" value= 0}
-         {foreach from=$lineItem item=pcount}
-         {assign var="lineItemCount" value=0}
-         {if $pcount neq 'skip'}
-           {foreach from=$pcount item=p_count}
-           {assign var="lineItemCount" value=$lineItemCount+$p_count.participant_count}
-           {/foreach}
-           {if $lineItemCount < 1 }
-           assign var="lineItemCount" value=1}
-           {/if}
-           {assign var="count" value=$count+$lineItemCount}
-         {/if}
-         {/foreach}
-   {$count}
-       </td>
-     </tr>
-     {/if}
-       {if $is_pay_later}
-        <tr>
-         <td colspan="2" {$labelStyle}>
-          {$pay_later_receipt}
-         </td>
-        </tr>
-       {/if}
-
-       {if $register_date}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Registration Date{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$register_date|crmDate}
-         </td>
-        </tr>
-       {/if}
-
-       {if $receive_date}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Transaction Date{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$receive_date|crmDate}
-         </td>
-        </tr>
-       {/if}
-
-       {if $contributionTypeName}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Financial Type{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$contributionTypeName}
-         </td>
-        </tr>
-       {/if}
-
-       {if $trxn_id}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Transaction #{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$trxn_id}
-         </td>
-        </tr>
-       {/if}
-
-       {if $paidBy}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Paid By{/ts}
-         </td>
-         <td {$valueStyle}>
-         {$paidBy}
-         </td>
-        </tr>
-       {/if}
-
-       {if $checkNumber}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Check Number{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$checkNumber}
-         </td>
-        </tr>
-       {/if}
-
-       {if $contributeMode ne 'notify' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-        <tr>
-         <th {$headerStyle}>
-          {ts}Billing Name and Address{/ts}
-         </th>
-        </tr>
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          {$billingName}<br />
-          {$address|nl2br}
-         </td>
-        </tr>
-       {/if}
-
-       {if $contributeMode eq 'direct' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-        <tr>
-         <th {$headerStyle}>
-          {ts}Credit Card Information{/ts}
-         </th>
-        </tr>
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          {$credit_card_type}<br />
-          {$credit_card_number}<br />
-          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-         </td>
-        </tr>
-       {/if}
-
-      {/if}
-
-     {/if} {* End of conditional section for Paid events *}
-
-     {if $customPre}
-      <tr>
-       <th {$headerStyle}>
-        {$customPre_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$customPre item=value key=customName}
-       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
-        <tr>
-         <td {$labelStyle}>
-          {$customName}
-         </td>
-         <td {$valueStyle}>
-          {$value}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $customPost}
-      <tr>
-       <th {$headerStyle}>
-        {$customPost_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$customPost item=value key=customName}
-       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
-        <tr>
-         <td {$labelStyle}>
-          {$customName}
-         </td>
-         <td {$valueStyle}>
-          {$value}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $customProfile}
-      {foreach from=$customProfile item=value key=customName}
-       <tr>
-        <th {$headerStyle}>
-         {ts 1=$customName+1}Participant Information - Participant %1{/ts}
-        </th>
-       </tr>
-       {foreach from=$value item=val key=field}
-        {if $field eq 'additionalCustomPre' or $field eq 'additionalCustomPost'}
-         <tr>
-          <td colspan="2" {$labelStyle}>
-           {if $field eq 'additionalCustomPre'}
-            {$additionalCustomPre_grouptitle}
-           {else}
-            {$additionalCustomPost_grouptitle}
-           {/if}
-          </td>
-         </tr>
-         {foreach from=$val item=v key=f}
-          <tr>
-           <td {$labelStyle}>
-            {$f}
-           </td>
-           <td {$valueStyle}>
-            {$v}
-           </td>
-          </tr>
-         {/foreach}
-        {/if}
-       {/foreach}
-      {/foreach}
-     {/if}
-
-     {if $customGroup}
-      {foreach from=$customGroup item=value key=customName}
-       <tr>
-        <th {$headerStyle}>
-         {$customName}
-        </th>
-       </tr>
-       {foreach from=$value item=v key=n}
-        <tr>
-         <td {$labelStyle}>
-          {$n}
-         </td>
-         <td {$valueStyle}>
-          {$v}
-         </td>
-        </tr>
-       {/foreach}
-      {/foreach}
-     {/if}
-
-    </table>
-   </td>
-  </tr>
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_text.tpl
deleted file mode 100644
index fcc0a43be5..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_offline_receipt_text.tpl
+++ /dev/null
@@ -1,281 +0,0 @@
-{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}
-{$event.confirm_email_text}
-{/if}
-
-{if $isOnWaitlist}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}You have been added to the WAIT LIST for this event.{/ts}
-
-{if $isPrimary}
-{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}
-
-{/if}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{elseif $isRequireApproval}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Your registration has been submitted.{/ts}
-
-{if $isPrimary}
-{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}
-
-{/if}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{elseif $is_pay_later}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$pay_later_receipt}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{else}
-
-{ts}Please print this confirmation for your records.{/ts}
-{/if}
-
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Event Information and Location{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$event.event_title}
-{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-
-{if $event.participant_role neq 'Attendee' and $defaultRole}
-{ts}Participant Role{/ts}: {$event.participant_role}
-{/if}
-
-{if $isShowLocation}
-{if $location.address.1.name}
-
-{$location.address.1.name}
-{/if}
-{if $location.address.1.street_address}{$location.address.1.street_address}
-{/if}
-{if $location.address.1.supplemental_address_1}{$location.address.1.supplemental_address_1}
-{/if}
-{if $location.address.1.supplemental_address_2}{$location.address.1.supplemental_address_2}
-{/if}
-{if $location.address.1.city}{$location.address.1.city} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if}
-{/if}
-
-{/if}{*End of isShowLocation condition*}
-
-{if $location.phone.1.phone || $location.email.1.email}
-
-{ts}Event Contacts:{/ts}
-{foreach from=$location.phone item=phone}
-{if $phone.phone}
-
-{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}
-{/foreach}
-{foreach from=$location.email item=eventEmail}
-{if $eventEmail.email}
-
-{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}
-{/if}
-
-{if $event.is_public}
-{capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture}
-{ts}Download iCalendar File:{/ts} {$icalFeed}
-{/if}
-
-{if $email}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Registered Email{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$email}
-{/if}
-{if $event.is_monetary} {* This section for Paid events only.*}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$event.fee_label}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{if $lineItem}{foreach from=$lineItem item=value key=priceset}
-
-{if $value neq 'skip'}
-{if $isPrimary}
-{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}
-{ts 1=$priceset+1}Participant %1{/ts}
-{/if}
-{/if}
----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{capture assign=ts_item}{ts}Item{/ts}{/capture}
-{capture assign=ts_qty}{ts}Qty{/ts}{/capture}
-{capture assign=ts_each}{ts}Each{/ts}{/capture}
-{capture assign=ts_total}{ts}Total{/ts}{/capture}
-{capture assign=ts_participant_total}{if $pricesetFieldsCount }{ts}Total Participants{/ts}{/if}{/capture}
-{$ts_item|string_format:"%-30s"} {$ts_qty|string_format:"%5s"} {$ts_each|string_format:"%10s"} {$ts_total|string_format:"%10s"} {$ts_participant_total|string_format:"%10s"}
-----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{foreach from=$value item=line}
-{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}
-{capture assign=ts_item}{if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:"..."|string_format:"%-30s"} {$line.qty|string_format:"%5s"} {$line.unit_price|crmMoney|string_format:"%10s"} {$line.line_total|crmMoney|string_format:"%10s"} {$ts_participant_count|string_format:"%10s"}
-{/foreach}
-{/if}
-{/foreach}
-{/if}
-{if $amount && !$lineItem}
-{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}
-{/foreach}
-{/if}
-{if $isPrimary}
-
-{if $balanceAmount}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}
-
-{if $balanceAmount}
-{ts}Balance{/ts}: {$balanceAmount|crmMoney}
-{/if}
-
-{if $pricesetFieldsCount }
-      {assign var="count" value= 0}
-      {foreach from=$lineItem item=pcount}
-      {assign var="lineItemCount" value=0}
-      {if $pcount neq 'skip'}
-        {foreach from=$pcount item=p_count}
-        {assign var="lineItemCount" value=$lineItemCount+$p_count.participant_count}
-        {/foreach}
-        {if $lineItemCount < 1 }
-        {assign var="lineItemCount" value=1}
-        {/if}
-      {assign var="count" value=$count+$lineItemCount}
-      {/if}
-      {/foreach}
-
-{ts}Total Participants{/ts}: {$count}
-{/if}
-
-{if $is_pay_later }
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$pay_later_receipt}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{/if}
-
-{if $register_date}
-{ts}Registration Date{/ts}: {$register_date|crmDate}
-{/if}
-{if $receive_date}
-{ts}Transaction Date{/ts}: {$receive_date|crmDate}
-{/if}
-{if $contributionTypeName}
-{ts}Financial Type{/ts}: {$contributionTypeName}
-{/if}
-{if $trxn_id}
-{ts}Transaction #{/ts}: {$trxn_id}
-{/if}
-{if $paidBy}
-{ts}Paid By{/ts}: {$paidBy}
-{/if}
-{if $checkNumber}
-{ts}Check Number{/ts}: {$checkNumber}
-{/if}
-{if $contributeMode ne 'notify' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Billing Name and Address{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$billingName}
-{$address}
-{/if}
-
-{if $contributeMode eq 'direct' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-===========================================================
-{ts}Credit Card Information{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$credit_card_type}
-{$credit_card_number}
-{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-{/if}
-{/if}
-{/if} {* End of conditional section for Paid events *}
-
-{if $customPre}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$customPre_grouptitle}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$customPre item=value key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
-{$customName}: {$value}
-{/if}
-{/foreach}
-{/if}
-
-{if $customPost}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$customPost_grouptitle}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$customPost item=value key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
-{$customName}: {$value}
-{/if}
-{/foreach}
-{/if}
-{if $customProfile}
-
-{foreach from=$customProfile item=value key=customName}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts 1=$customName+1}Participant Information - Participant %1{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$value item=val key=field}
-{if $field eq 'additionalCustomPre' or $field eq 'additionalCustomPost' }
-{if $field eq 'additionalCustomPre' }
-----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{$additionalCustomPre_grouptitle}
-----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{else}
-----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{$additionalCustomPost_grouptitle}
-----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{/if}
-{foreach from=$val item=v key=f}
-{$f}: {$v}
-{/foreach}
-{/if}
-{/foreach}
-{/foreach}
-{/if}
-{if $customGroup}
-{foreach from=$customGroup item=value key=customName}
-=========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$customName}
-=========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$value item=v key=n}
-{$n}: {$v}
-{/foreach}
-{/foreach}
-{/if}
-
-
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_html.tpl
deleted file mode 100644
index 70540857c2..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_html.tpl
+++ /dev/null
@@ -1,454 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="500" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-  <p>Dear {contact.display_name},</p>
-
-    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}
-     <p>{$event.confirm_email_text|htmlize}</p>
-
-    {else}
-  <p>Thank you for your participation.  This letter is a confirmation that your registration has been received and your status has been updated to <strong>{if $participant_status}{$participant_status}{else}{if $isOnWaitlist}waitlisted{else}registered{/if}{/if}</strong>.</p>
-
-    {/if}
-
-    <p>
-    {if $isOnWaitlist}
-     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>
-     {if $isPrimary}
-       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>
-     {/if}
-    {elseif $isRequireApproval}
-     <p>{ts}Your registration has been submitted.{/ts}</p>
-     {if $isPrimary}
-      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>
-     {/if}
-    {elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}
-     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}
-    {else}
-     <p>{ts}Please print this confirmation for your records.{/ts}</p>
-    {/if}
-
-   </td>
-  </tr>
-  <tr>
-   <td>
-    <table width="500" style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;">
-     <tr>
-      <th {$headerStyle}>
-       {ts}Event Information and Location{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td colspan="2" {$valueStyle}>
-       {$event.event_title}<br />
-       {$event.event_start_date|date_format:"%A"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:"%A"} {$event.event_end_date|crmDate}{/if}{/if}
-      </td>
-     </tr>
-
-
-     {if $conference_sessions}
-      <tr>
-       <td colspan="2" {$labelStyle}>
-  {ts}Your schedule:{/ts}
-       </td>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-  {assign var='group_by_day' value='NA'}
-  {foreach from=$conference_sessions item=session}
-   {if $session.start_date|date_format:"%Y/%m/%d" != $group_by_day|date_format:"%Y/%m/%d"}
-    {assign var='group_by_day' value=$session.start_date}
-          <em>{$group_by_day|date_format:"%m/%d/%Y"}</em><br />
-   {/if}
-   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />
-   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}
-  {/foreach}
-       </td>
-      </tr>
-     {/if}
-
-     {if $event.participant_role neq 'Attendee' and $defaultRole}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Participant Role{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$event.participant_role}
-       </td>
-      </tr>
-     {/if}
-
-     {if $isShowLocation}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {if $location.address.1.name}
-         {$location.address.1.name}<br />
-        {/if}
-        {if $location.address.1.street_address}
-         {$location.address.1.street_address}<br />
-        {/if}
-        {if $location.address.1.supplemental_address_1}
-         {$location.address.1.supplemental_address_1}<br />
-        {/if}
-        {if $location.address.1.supplemental_address_2}
-         {$location.address.1.supplemental_address_2}<br />
-        {/if}
-        {if $location.address.1.city}
-         {$location.address.1.city}, {$location.address.1.state_province} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if}<br />
-        {/if}
-       </td>
-      </tr>
-     {/if}
-
-     {if $location.phone.1.phone || $location.email.1.email}
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {ts}Event Contacts:{/ts}
-       </td>
-      </tr>
-      {foreach from=$location.phone item=phone}
-       {if $phone.phone}
-        <tr>
-         <td {$labelStyle}>
-          {if $phone.phone_type}
-           {$phone.phone_type_display}
-          {else}
-           {ts}Phone{/ts}
-          {/if}
-         </td>
-         <td {$valueStyle}>
-          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-      {foreach from=$location.email item=eventEmail}
-       {if $eventEmail.email}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Email{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$eventEmail.email}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $event.is_public}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture}
-        <a href="{$icalFeed}">{ts}Download iCalendar File{/ts}</a>
-       </td>
-      </tr>
-     {/if}
-
-    {if $event.is_share}
-        <tr>
-            <td colspan="2" {$valueStyle}>
-                {capture assign=eventUrl}{crmURL p='civicrm/event/info' q="id=`$event.id`&reset=1" a=true fe=1 h=1}{/capture}
-                {include file="CRM/common/SocialNetwork.tpl" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}
-            </td>
-        </tr>
-    {/if}
-    {if $payer.name}
-     <tr>
-       <th {$headerStyle}>
-         {ts}You were registered by:{/ts}
-       </th>
-     </tr>
-     <tr>
-       <td colspan="2" {$valueStyle}>
-        {$payer.name}
-       </td>
-     </tr>
-    {/if}
-    {if $event.is_monetary}
-
-      <tr>
-       <th {$headerStyle}>
-        {$event.fee_label}
-       </th>
-      </tr>
-
-      {if $lineItem}
-       {foreach from=$lineItem item=value key=priceset}
-        {if $value neq 'skip'}
-         {if $isPrimary}
-          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}
-           <tr>
-            <td colspan="2" {$labelStyle}>
-             {ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}
-            </td>
-           </tr>
-          {/if}
-         {/if}
-         <tr>
-          <td colspan="2" {$valueStyle}>
-           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}
-            <tr>
-             <th>{ts}Item{/ts}</th>
-             <th>{ts}Qty{/ts}</th>
-             <th>{ts}Each{/ts}</th>
-             <th>{ts}Total{/ts}</th>
-       {if  $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}
-            </tr>
-            {foreach from=$value item=line}
-             <tr>
-              <td>
-              {if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:"..."}</div>{/if}
-              </td>
-              <td>
-               {$line.qty}
-              </td>
-              <td>
-               {$line.unit_price|crmMoney:$currency}
-              </td>
-              <td>
-               {$line.line_total|crmMoney:$currency}
-              </td>
-        {if $pricesetFieldsCount }<td>{$line.participant_count}</td> {/if}
-             </tr>
-            {/foreach}
-           </table>
-          </td>
-         </tr>
-        {/if}
-       {/foreach}
-      {/if}
-
-      {if $amounts && !$lineItem}
-       {foreach from=$amounts item=amnt key=level}
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          {$amnt.amount|crmMoney:$currency} {$amnt.label}
-         </td>
-        </tr>
-       {/foreach}
-      {/if}
-
-      {if $isPrimary}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Total Amount{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}
-        </td>
-       </tr>
-       {if $pricesetFieldsCount }
-     <tr>
-       <td {$labelStyle}>
-      {ts}Total Participants{/ts}</td>
-      <td {$valueStyle}>
-      {assign var="count" value= 0}
-      {foreach from=$lineItem item=pcount}
-      {assign var="lineItemCount" value=0}
-      {if $pcount neq 'skip'}
-        {foreach from=$pcount item=p_count}
-        {assign var="lineItemCount" value=$lineItemCount+$p_count.participant_count}
-        {/foreach}
-      {if $lineItemCount < 1 }
-        {assign var="lineItemCount" value=1}
-      {/if}
-      {assign var="count" value=$count+$lineItemCount}
-      {/if}
-      {/foreach}
-     {$count}
-     </td> </tr>
-      {/if}
-
-       {if $register_date}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Registration Date{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$register_date|crmDate}
-         </td>
-        </tr>
-       {/if}
-
-       {if $receive_date}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Transaction Date{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$receive_date|crmDate}
-         </td>
-        </tr>
-       {/if}
-
-       {if $contributionTypeName}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Financial Type{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$contributionTypeName}
-         </td>
-        </tr>
-       {/if}
-
-       {if $trxn_id}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Transaction #{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$trxn_id}
-         </td>
-        </tr>
-       {/if}
-
-       {if $paidBy}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Paid By{/ts}
-         </td>
-         <td {$valueStyle}>
-         {$paidBy}
-         </td>
-        </tr>
-       {/if}
-
-       {if $checkNumber}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Check Number{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$checkNumber}
-         </td>
-        </tr>
-       {/if}
-
-       {if $contributeMode ne 'notify' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-        <tr>
-         <th {$headerStyle}>
-          {ts}Billing Name and Address{/ts}
-         </th>
-        </tr>
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          {$billingName}<br />
-          {$address|nl2br}
-         </td>
-        </tr>
-       {/if}
-
-       {if $contributeMode eq 'direct' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-        <tr>
-         <th {$headerStyle}>
-          {ts}Credit Card Information{/ts}
-         </th>
-        </tr>
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          {$credit_card_type}<br />
-          {$credit_card_number}<br />
-          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-         </td>
-        </tr>
-       {/if}
-
-      {/if}
-
-     {/if} {* End of conditional section for Paid events *}
-
-
-{if $customPre}
-{foreach from=$customPre item=customPr key=i}
-   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>
-   {foreach from=$customPr item=customValue key=customName}
-   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
-     <tr>
-         <td {$labelStyle}>{$customName}</td>
-         <td {$valueStyle}>{$customValue}</td>
-     </tr>
-   {/if}
-   {/foreach}
-{/foreach}
-{/if}
-
-{if $customPost}
-{foreach from=$customPost item=customPos key=j}
-   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>
-   {foreach from=$customPos item=customValue key=customName}
-   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
-     <tr>
-         <td {$labelStyle}>{$customName}</td>
-         <td {$valueStyle}>{$customValue}</td>
-     </tr>
-{/if}
-{/foreach}
-{/foreach}
-{/if}
-
-{if $customProfile}
-{foreach from=$customProfile.profile item=eachParticipant key=participantID}
-     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>
-     {foreach from=$eachParticipant item=eachProfile key=pid}
-     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>
-     {foreach from=$eachProfile item=val key=field}
-     <tr>{foreach from=$val item=v key=f}
-         <td {$labelStyle}>{$field}</td>
-         <td {$valueStyle}>{$v}</td>
-         {/foreach}
-     </tr>
-     {/foreach}
-{/foreach}
-{/foreach}
-{/if}
-
-    {if $customGroup}
-      {foreach from=$customGroup item=value key=customName}
-       <tr>
-        <th {$headerStyle}>
-         {$customName}
-        </th>
-       </tr>
-       {foreach from=$value item=v key=n}
-        <tr>
-         <td {$labelStyle}>
-          {$n}
-         </td>
-         <td {$valueStyle}>
-          {$v}
-         </td>
-        </tr>
-       {/foreach}
-      {/foreach}
-     {/if}
-
-    </table>
-   </td>
-  </tr>
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_text.tpl
deleted file mode 100644
index d6f5c64535..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/event_online_receipt_text.tpl
+++ /dev/null
@@ -1,279 +0,0 @@
-Dear {contact.display_name},
-
-{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}
-{$event.confirm_email_text}
-
-{else}
-Thank you for your participation.  This letter is a confirmation that your registration has been received and your status has been updated to {if $participant_status}{$participant_status}{else}{if $isOnWaitlist}waitlisted{else}registered{/if}{/if}.
-
-{/if}
-
-{if $isOnWaitlist}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}You have been added to the WAIT LIST for this event.{/ts}
-
-{if $isPrimary}
-{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}
-{/if}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{elseif $isRequireApproval}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Your registration has been submitted.{/ts}
-
-{if $isPrimary}
-{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}
-
-{/if}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$pay_later_receipt}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{else}
-
-{ts}Please print this confirmation for your records.{/ts}
-{/if}
-
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Event Information and Location{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$event.event_title}
-{$event.event_start_date|date_format:"%A"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:"%A"} {$event.event_end_date|crmDate}{/if}{/if}
-{if $conference_sessions}
-
-
-{ts}Your schedule:{/ts}
-{assign var='group_by_day' value='NA'}
-{foreach from=$conference_sessions item=session}
-{if $session.start_date|date_format:"%Y/%m/%d" != $group_by_day|date_format:"%Y/%m/%d"}
-{assign var='group_by_day' value=$session.start_date}
-
-{$group_by_day|date_format:"%m/%d/%Y"}
-
-
-{/if}
-{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}
-{if $session.location}    {$session.location}{/if}
-{/foreach}
-{/if}
-
-{if $event.participant_role neq 'Attendee' and $defaultRole}
-{ts}Participant Role{/ts}: {$event.participant_role}
-{/if}
-
-{if $isShowLocation}
-{if $location.address.1.name}
-
-{$location.address.1.name}
-{/if}
-{if $location.address.1.street_address}{$location.address.1.street_address}
-{/if}
-{if $location.address.1.supplemental_address_1}{$location.address.1.supplemental_address_1}
-{/if}
-{if $location.address.1.supplemental_address_2}{$location.address.1.supplemental_address_2}
-{/if}
-{if $location.address.1.city}{$location.address.1.city}, {$location.address.1.state_province} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if}
-{/if}
-
-{/if}{*End of isShowLocation condition*}
-
-{if $location.phone.1.phone || $location.email.1.email}
-
-{ts}Event Contacts:{/ts}
-{foreach from=$location.phone item=phone}
-{if $phone.phone}
-
-{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}
-{/foreach}
-{foreach from=$location.email item=eventEmail}
-{if $eventEmail.email}
-
-{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}
-{/if}
-
-{if $event.is_public}
-{capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture}
-{ts}Download iCalendar File:{/ts} {$icalFeed}
-{/if}
-
-{if $payer.name}
-You were registered by: {$payer.name}
-{/if}
-{if $event.is_monetary} {* This section for Paid events only.*}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$event.fee_label}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{if $lineItem}{foreach from=$lineItem item=value key=priceset}
-
-{if $value neq 'skip'}
-{if $isPrimary}
-{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}
-{ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}
-
-{/if}
-{/if}
------------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{capture assign=ts_item}{ts}Item{/ts}{/capture}
-{capture assign=ts_qty}{ts}Qty{/ts}{/capture}
-{capture assign=ts_each}{ts}Each{/ts}{/capture}
-{capture assign=ts_total}{ts}Total{/ts}{/capture}
-{if $pricesetFieldsCount }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}
-{$ts_item|string_format:"%-30s"} {$ts_qty|string_format:"%5s"} {$ts_each|string_format:"%10s"} {$ts_total|string_format:"%10s"} {$ts_participant_total|string_format:"%10s"}
------------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{foreach from=$value item=line}
-{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}
-{capture assign=ts_item}{if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:"..."|string_format:"%-30s"} {$line.qty|string_format:"%5s"} {$line.unit_price|crmMoney:$currency|string_format:"%10s"} {$line.line_total|crmMoney:$currency|string_format:"%10s"}{$ts_participant_count|string_format:"%10s"}
-{/foreach}
-{/if}
-{/foreach}
-{/if}
-{if $amounts && !$lineItem}
-{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}
-{/foreach}
-{/if}
-{if $isPrimary }
-
-{ts}Total Amount{/ts}: {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}
-
-{if $pricesetFieldsCount }
-      {assign var="count" value= 0}
-      {foreach from=$lineItem item=pcount}
-      {assign var="lineItemCount" value=0}
-      {if $pcount neq 'skip'}
-        {foreach from=$pcount item=p_count}
-        {assign var="lineItemCount" value=$lineItemCount+$p_count.participant_count}
-        {/foreach}
-      {if $lineItemCount < 1 }
-        {assign var="lineItemCount" value=1}
-      {/if}
-      {assign var="count" value=$count+$lineItemCount}
-      {/if}
-      {/foreach}
-
-{ts}Total Participants{/ts}: {$count}
-{/if}
-
-{if $register_date}
-{ts}Registration Date{/ts}: {$register_date|crmDate}
-{/if}
-{if $receive_date}
-{ts}Transaction Date{/ts}: {$receive_date|crmDate}
-{/if}
-{if $contributionTypeName}
-{ts}Financial Type{/ts}: {$contributionTypeName}
-{/if}
-{if $trxn_id}
-{ts}Transaction #{/ts}: {$trxn_id}
-{/if}
-{if $paidBy}
-{ts}Paid By{/ts}: {$paidBy}
-{/if}
-{if $checkNumber}
-{ts}Check Number{/ts}: {$checkNumber}
-{/if}
-{if $contributeMode ne 'notify' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Billing Name and Address{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$billingName}
-{$address}
-{/if}
-
-{if $contributeMode eq 'direct' and !$isAmountzero and !$is_pay_later and !$isOnWaitlist and !$isRequireApproval}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts}Credit Card Information{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$credit_card_type}
-{$credit_card_number}
-{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-{/if}
-{/if}
-{/if} {* End of conditional section for Paid events *}
-
-{if $customPre}
-{foreach from=$customPre item=customPr key=i}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$customPre_grouptitle.$i}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$customPr item=customValue key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
- {$customName}: {$customValue}
-{/if}
-{/foreach}
-{/foreach}
-{/if}
-
-{if $customPost}
-{foreach from=$customPost item=customPos key=j}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$customPost_grouptitle.$j}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$customPos item=customValue key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
- {$customName}: {$customValue}
-{/if}
-{/foreach}
-{/foreach}
-{/if}
-{if $customProfile}
-
-{foreach from=$customProfile.profile item=eachParticipant key=participantID}
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{ts 1=$participantID+2}Participant Information - Participant %1{/ts}
-
-==========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$eachParticipant item=eachProfile key=pid}
-----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{$customProfile.title.$pid}
-----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}
-
-{foreach from=$eachProfile item=val key=field}
-{foreach from=$val item=v key=f}
-{$field}: {$v}
-{/foreach}
-{/foreach}
-{/foreach}
-{/foreach}
-{/if}
-{if $customGroup}
-{foreach from=$customGroup item=value key=customName}
-=========================================================={if $pricesetFieldsCount }===================={/if}
-
-{$customName}
-=========================================================={if $pricesetFieldsCount }===================={/if}
-
-{foreach from=$value item=v key=n}
-{$n}: {$v}
-{/foreach}
-{/foreach}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_html.tpl
deleted file mode 100644
index af216f8956..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_html.tpl
+++ /dev/null
@@ -1,509 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="500" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-
-    {if $receipt_text}
-     <p>{$receipt_text|htmlize}</p>
-    {/if}
-
-    {if $is_pay_later}
-     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}
-    {else}
-     <p>{ts}Please print this confirmation for your records.{/ts}</p>
-    {/if}
-
-   </td>
-  </tr>
-  </table>
-  <table width="500" style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;">
-
-     {if $membership_assign && !$useForMember}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Membership Information{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td {$labelStyle}>
-        {ts}Membership Type{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$membership_name}
-       </td>
-      </tr>
-      {if $mem_start_date}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Membership Start Date{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$mem_start_date|crmDate}
-        </td>
-       </tr>
-      {/if}
-      {if $mem_end_date}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Membership End Date{/ts}
-        </td>
-        <td {$valueStyle}>
-          {$mem_end_date|crmDate}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-
-     {if $amount}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Membership Fee{/ts}
-       </th>
-      </tr>
-
-      {if !$useForMember and $membership_amount and $is_quick_config}
-
-       <tr>
-        <td {$labelStyle}>
-         {ts 1=$membership_name}%1 Membership{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$membership_amount|crmMoney}
-        </td>
-       </tr>
-       {if $amount}
-        {if ! $is_separate_payment }
-         <tr>
-          <td {$labelStyle}>
-           {ts}Contribution Amount{/ts}
-          </td>
-          <td {$valueStyle}>
-           {$amount|crmMoney}
-          </td>
-         </tr>
-        {else}
-         <tr>
-          <td {$labelStyle}>
-           {ts}Additional Contribution{/ts}
-          </td>
-          <td {$valueStyle}>
-           {$amount|crmMoney}
-          </td>
-         </tr>
-        {/if}
-       {/if}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Total{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$amount+$membership_amount|crmMoney}
-        </td>
-       </tr>
-
-      {elseif !$useForMember && $lineItem and $priceSetID and !$is_quick_config}
-
-       {foreach from=$lineItem item=value key=priceset}
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}
-           <tr>
-            <th>{ts}Item{/ts}</th>
-            <th>{ts}Qty{/ts}</th>
-            <th>{ts}Each{/ts}</th>
-            <th>{ts}Total{/ts}</th>
-           </tr>
-           {foreach from=$value item=line}
-            <tr>
-             <td>
-              {$line.description|truncate:30:"..."}
-             </td>
-             <td>
-              {$line.qty}
-             </td>
-             <td>
-              {$line.unit_price|crmMoney}
-             </td>
-             <td>
-              {$line.line_total|crmMoney}
-             </td>
-            </tr>
-           {/foreach}
-          </table>
-         </td>
-        </tr>
-       {/foreach}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Total Amount{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$amount|crmMoney}
-        </td>
-       </tr>
-
-      {else}
-       {if $useForMember && $lineItem and !$is_quick_config}
-       {foreach from=$lineItem item=value key=priceset}
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}
-           <tr>
-            <th>{ts}Item{/ts}</th>
-            <th>{ts}Fee{/ts}</th>
-      <th>{ts}Membership Start Date{/ts}</th>
-      <th>{ts}Membership End Date{/ts}</th>
-           </tr>
-           {foreach from=$value item=line}
-            <tr>
-             <td>
-             {if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:"..."}</div>{/if}
-             </td>
-             <td>
-              {$line.line_total|crmMoney}
-             </td>
-             <td>
-              {$line.start_date}
-             </td>
-       <td>
-              {$line.end_date}
-             </td>
-            </tr>
-           {/foreach}
-          </table>
-         </td>
-        </tr>
-       {/foreach}
-       {/if}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Amount{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$amount|crmMoney} {if $amount_level} - {$amount_level}{/if}
-        </td>
-       </tr>
-
-      {/if}
-
-
-     {elseif $membership_amount}
-
-
-      <tr>
-       <th {$headerStyle}>
-        {ts}Membership Fee{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td {$labelStyle}>
-        {ts 1=$membership_name}%1 Membership{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$membership_amount|crmMoney}
-       </td>
-      </tr>
-
-
-     {/if}
-
-     {if $receive_date}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$receive_date|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-     {if $is_monetary and $trxn_id}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Transaction #{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$trxn_id}
-       </td>
-      </tr>
-     {/if}
-
-     {if $membership_trx_id}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Membership Transaction #{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$membership_trx_id}
-       </td>
-      </tr>
-     {/if}
-     {if $is_recur}
-      {if $contributeMode eq 'notify' or $contributeMode eq 'directIPN'}
-       <tr>
-        <td colspan="2" {$labelStyle}>
-         {ts 1=$cancelSubscriptionUrl}This membership will be renewed automatically. You can cancel the auto-renewal option by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-       </tr>
-       <tr>
-        <td colspan="2" {$labelStyle}>
-         {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href="%1">visiting this web page</a>.{/ts}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-     {if $honor_block_is_active}
-      <tr>
-       <th {$headerStyle}>
-        {$soft_credit_type}
-       </th>
-      </tr>
-      {foreach from=$honoreeProfile item=value key=label}
-        <tr>
-         <td {$labelStyle}>
-          {$label}
-         </td>
-         <td {$valueStyle}>
-          {$value}
-         </td>
-        </tr>
-      {/foreach}
-     {/if}
-
-     {if $pcpBlock}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Personal Campaign Page{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td {$labelStyle}>
-        {ts}Display In Honor Roll{/ts}
-       </td>
-       <td {$valueStyle}>
-        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}
-       </td>
-      </tr>
-      {if $pcp_roll_nickname}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Nickname{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$pcp_roll_nickname}
-        </td>
-       </tr>
-      {/if}
-      {if $pcp_personal_note}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Personal Note{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$pcp_personal_note}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-     {if $onBehalfProfile}
-      <tr>
-       <th {$headerStyle}>
-        {$onBehalfProfile_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}
-        <tr>
-         <td {$labelStyle}>
-          {$onBehalfName}
-         </td>
-         <td {$valueStyle}>
-          {$onBehalfValue}
-         </td>
-        </tr>
-      {/foreach}
-     {/if}
-
-     {if ! ($contributeMode eq 'notify' OR $contributeMode eq 'directIPN') and $is_monetary}
-      {if $is_pay_later}
-       <tr>
-        <th {$headerStyle}>
-         {ts}Registered Email{/ts}
-        </th>
-       </tr>
-       <tr>
-        <td colspan="2" {$valueStyle}>
-         {$email}
-        </td>
-       </tr>
-      {elseif $amount GT 0 OR $membership_amount GT 0}
-       <tr>
-        <th {$headerStyle}>
-         {ts}Billing Name and Address{/ts}
-        </th>
-       </tr>
-       <tr>
-        <td colspan="2" {$valueStyle}>
-         {$billingName}<br />
-         {$address|nl2br}<br />
-         {$email}
-        </td>
-       </tr>
-      {/if}
-     {/if}
-
-     {if $contributeMode eq 'direct' AND !$is_pay_later AND ($amount GT 0 OR $membership_amount GT 0)}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Credit Card Information{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$credit_card_type}<br />
-        {$credit_card_number}<br />
-        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}<br />
-       </td>
-      </tr>
-     {/if}
-
-     {if $selectPremium}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Premium Information{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {$product_name}
-       </td>
-      </tr>
-      {if $option}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Option{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$option}
-        </td>
-       </tr>
-      {/if}
-      {if $sku}
-       <tr>
-        <td {$labelStyle}>
-         {ts}SKU{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$sku}
-        </td>
-       </tr>
-      {/if}
-      {if $start_date}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Start Date{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$start_date|crmDate}
-        </td>
-       </tr>
-      {/if}
-      {if $end_date}
-       <tr>
-        <td {$labelStyle}>
-         {ts}End Date{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$end_date|crmDate}
-        </td>
-       </tr>
-      {/if}
-      {if $contact_email OR $contact_phone}
-       <tr>
-        <td colspan="2" {$valueStyle}>
-         <p>{ts}For information about this premium, contact:{/ts}</p>
-         {if $contact_email}
-          <p>{$contact_email}</p>
-         {/if}
-         {if $contact_phone}
-          <p>{$contact_phone}</p>
-         {/if}
-        </td>
-       </tr>
-      {/if}
-      {if $is_deductible AND $price}
-        <tr>
-         <td colspan="2" {$valueStyle}>
-          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>
-         </td>
-        </tr>
-      {/if}
-     {/if}
-
-     {if $customPre}
-      <tr>
-       <th {$headerStyle}>
-        {$customPre_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$customPre item=customValue key=customName}
-       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}
-        <tr>
-         <td {$labelStyle}>
-          {$customName}
-         </td>
-         <td {$valueStyle}>
-          {$customValue}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $customPost}
-      <tr>
-       <th {$headerStyle}>
-        {$customPost_grouptitle}
-       </th>
-      </tr>
-      {foreach from=$customPost item=customValue key=customName}
-       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}
-        <tr>
-         <td {$labelStyle}>
-          {$customName}
-         </td>
-         <td {$valueStyle}>
-          {$customValue}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-  </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_text.tpl
deleted file mode 100644
index 481eaf84a6..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/membership_online_receipt_text.tpl
+++ /dev/null
@@ -1,220 +0,0 @@
-{if $receipt_text}
-{$receipt_text}
-{/if}
-{if $is_pay_later}
-
-===========================================================
-{$pay_later_receipt}
-===========================================================
-{else}
-
-{ts}Please print this receipt for your records.{/ts}
-{/if}
-
-{if $membership_assign && !$useForMember}
-===========================================================
-{ts}Membership Information{/ts}
-
-===========================================================
-{ts}Membership Type{/ts}: {$membership_name}
-{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}
-{/if}
-{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}
-{/if}
-
-{/if}
-{if $amount}
-===========================================================
-{ts}Membership Fee{/ts}
-
-===========================================================
-{if !$useForMember && $membership_amount && $is_quick_config}
-{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}
-{if $amount}
-{if ! $is_separate_payment }
-{ts}Contribution Amount{/ts}: {$amount|crmMoney}
-{else}
-{ts}Additional Contribution{/ts}: {$amount|crmMoney}
-{/if}
-{/if}
--------------------------------------------
-{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}
-{elseif !$useForMember && $lineItem and $priceSetID & !$is_quick_config}
-{foreach from=$lineItem item=value key=priceset}
----------------------------------------------------------
-{capture assign=ts_item}{ts}Item{/ts}{/capture}
-{capture assign=ts_qty}{ts}Qty{/ts}{/capture}
-{capture assign=ts_each}{ts}Each{/ts}{/capture}
-{capture assign=ts_total}{ts}Total{/ts}{/capture}
-{$ts_item|string_format:"%-30s"} {$ts_qty|string_format:"%5s"} {$ts_each|string_format:"%10s"} {$ts_total|string_format:"%10s"}
-----------------------------------------------------------
-{foreach from=$value item=line}
-{$line.description|truncate:30:"..."|string_format:"%-30s"} {$line.qty|string_format:"%5s"} {$line.unit_price|crmMoney|string_format:"%10s"} {$line.line_total|crmMoney|string_format:"%10s"}
-{/foreach}
-{/foreach}
-
-{ts}Total Amount{/ts}: {$amount|crmMoney}
-{else}
-{if $useForMember && $lineItem && !$is_quick_config}
-{foreach from=$lineItem item=value key=priceset}
-{capture assign=ts_item}{ts}Item{/ts}{/capture}
-{capture assign=ts_total}{ts}Fee{/ts}{/capture}
-{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
-{$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
---------------------------------------------------------------------------------------------------
-
-{foreach from=$value item=line}
-{capture assign=ts_item}{if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:"..."|string_format:"%-30s"} {$line.line_total|crmMoney|string_format:"%10s"} {$line.start_date|string_format:"%20s"} {$line.end_date|string_format:"%20s"}
-{/foreach}
-{/foreach}
---------------------------------------------------------------------------------------------------
-{/if}
-{ts}Amount{/ts}: {$amount|crmMoney} {if $amount_level } - {$amount_level} {/if}
-{/if}
-{elseif $membership_amount}
-===========================================================
-{ts}Membership Fee{/ts}
-
-===========================================================
-{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}
-{/if}
-
-{if $receive_date}
-
-{ts}Date{/ts}: {$receive_date|crmDate}
-{/if}
-{if $is_monetary and $trxn_id}
-{ts}Transaction #{/ts}: {$trxn_id}
-
-{/if}
-{if $membership_trx_id}
-{ts}Membership Transaction #{/ts}: {$membership_trx_id}
-
-{/if}
-{if $is_recur}
-{if $contributeMode eq 'notify' or $contributeMode eq 'directIPN'}
-{ts 1=$cancelSubscriptionUrl}This membership will be renewed automatically. You can cancel the auto-renewal option by visiting this web page: %1.{/ts}
-
-{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href="%1">visiting this web page</a>.{/ts}
-{/if}
-{/if}
-
-{if $honor_block_is_active }
-===========================================================
-{$soft_credit_type}
-===========================================================
-{foreach from=$honoreeProfile item=value key=label}
-{$label}: {$value}
-{/foreach}
-
-{/if}
-{if $pcpBlock}
-===========================================================
-{ts}Personal Campaign Page{/ts}
-
-===========================================================
-{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}
-
-{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}
-
-{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}
-
-{/if}
-{if $onBehalfProfile}
-===========================================================
-{ts}On Behalf Of{/ts}
-
-===========================================================
-{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}
-{$onBehalfName}: {$onBehalfValue}
-{/foreach}
-{/if}
-
-{if !( $contributeMode eq 'notify' OR $contributeMode eq 'directIPN' ) and $is_monetary}
-{if $is_pay_later}
-===========================================================
-{ts}Registered Email{/ts}
-
-===========================================================
-{$email}
-{elseif $amount GT 0 OR $membership_amount GT 0 }
-===========================================================
-{ts}Billing Name and Address{/ts}
-
-===========================================================
-{$billingName}
-{$address}
-
-{$email}
-{/if} {* End ! is_pay_later condition. *}
-{/if}
-{if $contributeMode eq 'direct' AND !$is_pay_later AND ( $amount GT 0 OR $membership_amount GT 0 ) }
-
-===========================================================
-{ts}Credit Card Information{/ts}
-
-===========================================================
-{$credit_card_type}
-{$credit_card_number}
-{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-{/if}
-
-{if $selectPremium }
-===========================================================
-{ts}Premium Information{/ts}
-
-===========================================================
-{$product_name}
-{if $option}
-{ts}Option{/ts}: {$option}
-{/if}
-{if $sku}
-{ts}SKU{/ts}: {$sku}
-{/if}
-{if $start_date}
-{ts}Start Date{/ts}: {$start_date|crmDate}
-{/if}
-{if $end_date}
-{ts}End Date{/ts}: {$end_date|crmDate}
-{/if}
-{if $contact_email OR $contact_phone}
-
-{ts}For information about this premium, contact:{/ts}
-
-{if $contact_email}
-  {$contact_email}
-{/if}
-{if $contact_phone}
-  {$contact_phone}
-{/if}
-{/if}
-{if $is_deductible AND $price}
-
-{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}
-{/if}
-
-{if $customPre}
-===========================================================
-{$customPre_grouptitle}
-
-===========================================================
-{foreach from=$customPre item=customValue key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
- {$customName}: {$customValue}
-{/if}
-{/foreach}
-{/if}
-
-
-{if $customPost}
-===========================================================
-{$customPost_grouptitle}
-
-===========================================================
-{foreach from=$customPost item=customValue key=customName}
-{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}
- {$customName}: {$customValue}
-{/if}
-{/foreach}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_html.tpl
deleted file mode 100644
index d7af3a7859..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_html.tpl
+++ /dev/null
@@ -1,146 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-    <p>{ts 1=$contact.display_name}Dear %1{/ts},</p>
-    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>
-   </td>
-  </tr>
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-     <tr>
-      <th {$headerStyle}>
-       {ts}Event Information and Location{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td colspan="2" {$valueStyle}>
-       {$event.event_title}<br />
-       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-      </td>
-     </tr>
-     <tr>
-      <td {$labelStyle}>
-       {ts}Participant Role{/ts}:
-      </td>
-      <td {$valueStyle}>
-       {$participant.role}
-      </td>
-     </tr>
-
-     {if $isShowLocation}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {if $event.location.address.1.name}
-         {$event.location.address.1.name}<br />
-        {/if}
-        {if $event.location.address.1.street_address}
-         {$event.location.address.1.street_address}<br />
-        {/if}
-        {if $event.location.address.1.supplemental_address_1}
-         {$event.location.address.1.supplemental_address_1}<br />
-        {/if}
-        {if $event.location.address.1.supplemental_address_2}
-         {$event.location.address.1.supplemental_address_2}<br />
-        {/if}
-        {if $event.location.address.1.city}
-         {$event.location.address.1.city} {$event.location.address.1.postal_code}
-         {if $event.location.address.1.postal_code_suffix}
-          - {$event.location.address.1.postal_code_suffix}
-         {/if}
-        {/if}
-       </td>
-      </tr>
-     {/if}
-
-     {if $event.location.phone.1.phone || $event.location.email.1.email}
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {ts}Event Contacts:{/ts}
-       </td>
-      </tr>
-      {foreach from=$event.location.phone item=phone}
-       {if $phone.phone}
-        <tr>
-         <td {$labelStyle}>
-          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}
-         </td>
-         <td {$valueStyle}>
-          {$phone.phone}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-      {foreach from=$event.location.email item=eventEmail}
-       {if $eventEmail.email}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Email{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$eventEmail.email}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $contact.email}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Registered Email{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$contact.email}
-       </td>
-      </tr>
-     {/if}
-
-     {if $register_date}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Registration Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$participant.register_date|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-    </table>
-   </td>
-  </tr>
-
-  <tr>
-   <td>
-    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>
-   </td>
-  </tr>
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_text.tpl
deleted file mode 100644
index f79abd2c02..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_cancelled_text.tpl
+++ /dev/null
@@ -1,59 +0,0 @@
-{ts 1=$contact.display_name}Dear %1{/ts},
-
-{ts}Your Event Registration has been cancelled.{/ts}
-
-
-===========================================================
-{ts}Event Information and Location{/ts}
-
-===========================================================
-{$event.event_title}
-{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-
-{ts}Participant Role{/ts}: {$participant.role}
-
-{if $isShowLocation}
-{if $event.location.address.1.name}
-
-{$event.location.address.1.name}
-{/if}
-{if $event.location.address.1.street_address}{$event.location.address.1.street_address}
-{/if}
-{if $event.location.address.1.supplemental_address_1}{$event.location.address.1.supplemental_address_1}
-{/if}
-{if $event.location.address.1.supplemental_address_2}{$event.location.address.1.supplemental_address_2}
-{/if}
-{if $event.location.address.1.city}{$event.location.address.1.city} {$event.location.address.1.postal_code}{if $event.location.address.1.postal_code_suffix} - {$event.location.address.1.postal_code_suffix}{/if}
-{/if}
-
-{/if}{*End of isShowLocation condition*}
-
-{if $event.location.phone.1.phone || $event.location.email.1.email}
-
-{ts}Event Contacts:{/ts}
-{foreach from=$event.location.phone item=phone}
-{if $phone.phone}
-
-{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}
-{/foreach}
-{foreach from=$event.location.email item=eventEmail}
-{if $eventEmail.email}
-
-{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}
-{/if}
-
-{if $contact.email}
-
-===========================================================
-{ts}Registered Email{/ts}
-
-===========================================================
-{$contact.email}
-{/if}
-
-{if $register_date}
-{ts}Registration Date{/ts}: {$participant.register_date|crmDate}
-{/if}
-
-{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}
-
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_html.tpl
deleted file mode 100644
index b1a5aa349c..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_html.tpl
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-    <p>{ts 1=$contact.display_name}Dear %1{/ts},</p>
-   </td>
-  </tr>
-  {if !$isAdditional and $participant.id}
-   <tr>
-    <th {$headerStyle}>
-     {ts}Confirm Your Registration{/ts}
-    </th>
-   </tr>
-   <tr>
-    <td colspan="2" {$valueStyle}>
-     {capture assign=confirmUrl}{crmURL p='civicrm/event/confirm' q="reset=1&participantId=`$participant.id`&cs=`$checksumValue`" a=true h=0 fe=1}{/capture}
-     <a href="{$confirmUrl}">Go to a web page where you can confirm your registration online</a>
-    </td>
-   </tr>
-  {/if}
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-     <tr>
-      <th {$headerStyle}>
-       {ts}Event Information and Location{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td colspan="2" {$valueStyle}>
-       {$event.event_title}<br />
-       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-      </td>
-     </tr>
-     {if $conference_sessions}
-      <tr>
-       <td colspan="2" {$labelStyle}>
-  {ts}Your schedule:{/ts}
-       </td>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-  {assign var='group_by_day' value='NA'}
-  {foreach from=$conference_sessions item=session}
-   {if $session.start_date|date_format:"%Y/%m/%d" != $group_by_day|date_format:"%Y/%m/%d"}
-    {assign var='group_by_day' value=$session.start_date}
-          <em>{$group_by_day|date_format:"%m/%d/%Y"}</em><br />
-   {/if}
-   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />
-   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}
-  {/foreach}
-       </td>
-      </tr>
-     {/if}
-     <tr>
-      <td {$labelStyle}>
-       {ts}Participant Role{/ts}:
-      </td>
-      <td {$valueStyle}>
-       {$participant.role}
-      </td>
-     </tr>
-
-     {if $isShowLocation}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {if $event.location.address.1.name}
-         {$event.location.address.1.name}<br />
-        {/if}
-        {if $event.location.address.1.street_address}
-         {$event.location.address.1.street_address}<br />
-        {/if}
-        {if $event.location.address.1.supplemental_address_1}
-         {$event.location.address.1.supplemental_address_1}<br />
-        {/if}
-        {if $event.location.address.1.supplemental_address_2}
-         {$event.location.address.1.supplemental_address_2}<br />
-        {/if}
-        {if $event.location.address.1.city}
-         {$event.location.address.1.city} {$event.location.address.1.postal_code}
-         {if $event.location.address.1.postal_code_suffix}
-          - {$event.location.address.1.postal_code_suffix}
-         {/if}
-        {/if}
-       </td>
-      </tr>
-     {/if}
-
-     {if $event.location.phone.1.phone || $event.location.email.1.email}
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {ts}Event Contacts:{/ts}
-       </td>
-      </tr>
-      {foreach from=$event.location.phone item=phone}
-       {if $phone.phone}
-        <tr>
-         <td {$labelStyle}>
-          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}
-         </td>
-         <td {$valueStyle}>
-          {$phone.phone}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-      {foreach from=$event.location.email item=eventEmail}
-       {if $eventEmail.email}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Email{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$eventEmail.email}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $event.is_public}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture}
-        <a href="{$icalFeed}">{ts}Download iCalendar File{/ts}</a>
-       </td>
-      </tr>
-     {/if}
-
-     {if $contact.email}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Registered Email{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$contact.email}
-       </td>
-      </tr>
-     {/if}
-
-     {if $register_date}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Registration Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$participant.register_date|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-    </table>
-   </td>
-  </tr>
-
-  <tr>
-   <td>
-    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>
-   </td>
-  </tr>
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_text.tpl
deleted file mode 100644
index 73d15a6f1b..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_confirm_text.tpl
+++ /dev/null
@@ -1,89 +0,0 @@
-{ts 1=$contact.display_name}Dear %1{/ts},
-{if !$isAdditional and $participant.id}
-
-===========================================================
-{ts}Confirm Your Registration{/ts}
-
-===========================================================
-{capture assign=confirmUrl}{crmURL p='civicrm/event/confirm' q="reset=1&participantId=`$participant.id`&cs=`$checksumValue`" a=true h=0 fe=1}{/capture}
-Click this link to go to a web page where you can confirm your registration online:
-{$confirmUrl}
-{/if}
-
-===========================================================
-{ts}Event Information and Location{/ts}
-
-===========================================================
-{$event.event_title}
-{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-{if $conference_sessions}
-
-
-{ts}Your schedule:{/ts}
-{assign var='group_by_day' value='NA'}
-{foreach from=$conference_sessions item=session}
-{if $session.start_date|date_format:"%Y/%m/%d" != $group_by_day|date_format:"%Y/%m/%d"}
-{assign var='group_by_day' value=$session.start_date}
-
-{$group_by_day|date_format:"%m/%d/%Y"}
-
-
-{/if}
-{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}
-{if $session.location}    {$session.location}{/if}
-{/foreach}
-{/if}
-
-
-{ts}Participant Role{/ts}: {$participant.role}
-
-{if $isShowLocation}
-{if $event.location.address.1.name}
-
-{$event.location.address.1.name}
-{/if}
-{if $event.location.address.1.street_address}{$event.location.address.1.street_address}
-{/if}
-{if $event.location.address.1.supplemental_address_1}{$event.location.address.1.supplemental_address_1}
-{/if}
-{if $event.location.address.1.supplemental_address_2}{$event.location.address.1.supplemental_address_2}
-{/if}
-{if $event.location.address.1.city}{$event.location.address.1.city} {$event.location.address.1.postal_code}{if $event.location.address.1.postal_code_suffix} - {$event.location.address.1.postal_code_suffix}{/if}
-{/if}
-
-{/if}{*End of isShowLocation condition*}
-
-{if $event.location.phone.1.phone || $event.location.email.1.email}
-
-{ts}Event Contacts:{/ts}
-{foreach from=$event.location.phone item=phone}
-{if $phone.phone}
-
-{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}
-{/foreach}
-{foreach from=$event.location.email item=eventEmail}
-{if $eventEmail.email}
-
-{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}
-{/if}
-
-{if $event.is_public}
-{capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture}
-{ts}Download iCalendar File:{/ts} {$icalFeed}
-{/if}
-
-{if $contact.email}
-
-===========================================================
-{ts}Registered Email{/ts}
-
-===========================================================
-{$contact.email}
-{/if}
-
-{if $register_date}
-{ts}Registration Date{/ts}: {$participant.register_date|crmDate}
-{/if}
-
-{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}
-
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_html.tpl
deleted file mode 100644
index ca2621f9e5..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_html.tpl
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-    <p>{ts 1=$contact.display_name}Dear %1{/ts},</p>
-    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired
-because you did not confirm your registration.{/ts}</p>
-    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions
-or want to inquire about reinstating your registration for this event.{/ts}</p>
-   </td>
-  </tr>
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-     <tr>
-      <th {$headerStyle}>
-       {ts}Event Information and Location{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td colspan="2" {$valueStyle}>
-       {$event.event_title}<br />
-       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-      </td>
-     </tr>
-     <tr>
-      <td {$labelStyle}>
-       {ts}Participant Role{/ts}:
-      </td>
-      <td {$valueStyle}>
-       {$participant.role}
-      </td>
-     </tr>
-
-     {if $isShowLocation}
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {if $event.location.address.1.name}
-         {$event.location.address.1.name}<br />
-        {/if}
-        {if $event.location.address.1.street_address}
-         {$event.location.address.1.street_address}<br />
-        {/if}
-        {if $event.location.address.1.supplemental_address_1}
-         {$event.location.address.1.supplemental_address_1}<br />
-        {/if}
-        {if $event.location.address.1.supplemental_address_2}
-         {$event.location.address.1.supplemental_address_2}<br />
-        {/if}
-        {if $event.location.address.1.city}
-         {$event.location.address.1.city} {$event.location.address.1.postal_code}
-         {if $event.location.address.1.postal_code_suffix}
-          - {$event.location.address.1.postal_code_suffix}
-         {/if}
-        {/if}
-       </td>
-      </tr>
-     {/if}
-
-     {if $event.location.phone.1.phone || $event.location.email.1.email}
-      <tr>
-       <td colspan="2" {$labelStyle}>
-        {ts}Event Contacts:{/ts}
-       </td>
-      </tr>
-      {foreach from=$event.location.phone item=phone}
-       {if $phone.phone}
-        <tr>
-         <td {$labelStyle}>
-          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}
-         </td>
-         <td {$valueStyle}>
-          {$phone.phone}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-      {foreach from=$event.location.email item=eventEmail}
-       {if $eventEmail.email}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Email{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$eventEmail.email}
-         </td>
-        </tr>
-       {/if}
-      {/foreach}
-     {/if}
-
-     {if $contact.email}
-      <tr>
-       <th {$headerStyle}>
-        {ts}Registered Email{/ts}
-       </th>
-      </tr>
-      <tr>
-       <td colspan="2" {$valueStyle}>
-        {$contact.email}
-       </td>
-      </tr>
-     {/if}
-
-     {if $register_date}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Registration Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$participant.register_date|crmDate}
-       </td>
-      </tr>
-     {/if}
-
-    </table>
-   </td>
-  </tr>
-
-  <tr>
-   <td>
-    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>
-   </td>
-  </tr>
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_text.tpl
deleted file mode 100644
index 534c1c6578..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/participant_expired_text.tpl
+++ /dev/null
@@ -1,63 +0,0 @@
-{ts 1=$contact.display_name}Dear %1{/ts},
-
-{ts 1=$event.event_title}Your pending event registration for %1 has expired
-because you did not confirm your registration.{/ts}
-
-
-{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions
-or want to inquire about reinstating your registration for this event.{/ts}
-
-===========================================================
-{ts}Event Information and Location{/ts}
-
-===========================================================
-{$event.event_title}
-{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-
-{ts}Participant Role{/ts}: {$participant.role}
-
-{if $isShowLocation}
-{if $event.location.address.1.name}
-
-{$event.location.address.1.name}
-{/if}
-{if $event.location.address.1.street_address}{$event.location.address.1.street_address}
-{/if}
-{if $event.location.address.1.supplemental_address_1}{$event.location.address.1.supplemental_address_1}
-{/if}
-{if $event.location.address.1.supplemental_address_2}{$event.location.address.1.supplemental_address_2}
-{/if}
-{if $event.location.address.1.city}{$event.location.address.1.city} {$event.location.address.1.postal_code}{if $event.location.address.1.postal_code_suffix} - {$event.location.address.1.postal_code_suffix}{/if}
-{/if}
-
-{/if}{*End of isShowLocation condition*}
-
-{if $event.location.phone.1.phone || $event.location.email.1.email}
-
-{ts}Event Contacts:{/ts}
-{foreach from=$event.location.phone item=phone}
-{if $phone.phone}
-
-{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}
-{/foreach}
-{foreach from=$event.location.email item=eventEmail}
-{if $eventEmail.email}
-
-{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}
-{/if}
-
-{if $contact.email}
-
-===========================================================
-{ts}Registered Email{/ts}
-
-===========================================================
-{$contact.email}
-{/if}
-
-{if $register_date}
-{ts}Registration Date{/ts}: {$participant.register_date|crmDate}
-{/if}
-
-{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}
-
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl
deleted file mode 100644
index 56d344d311..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_html.tpl
+++ /dev/null
@@ -1,269 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-{capture assign=emptyBlockStyle }style="padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;"{/capture}
-{capture assign=emptyBlockValueStyle }style="padding: 10px; border-bottom: 1px solid #999;"{/capture}
-
-<p>Dear {$contactDisplayName}</p>
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-    <td>
-      {if $paymentConfig.confirm_email_text}
-      <p>{$paymentConfig.confirm_email_text|htmlize}</p>
-      {elseif $isRefund}
-      <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>
-      {else}
-      <p>{ts}A payment has been received.{/ts}</p>
-      {/if}
-      <p>{ts}Please print this confirmation for your records.{/ts}</p>
-    </td>
-  </tr>
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-  {if $isRefund}
-  <tr>
-    <th {$headerStyle}>{ts}Refund Details{/ts}</th>
-  </tr>
-  <tr>
-    <td {$labelStyle}>
-      {ts}Total Fees{/ts}
-    </td>
-    <td {$valueStyle}>
-      {$totalAmount|crmMoney}
-    </td>
-  </tr>
-  <tr>
-    <td {$labelStyle}>
-      {ts}You Paid{/ts}
-    </td>
-    <td {$valueStyle}>
-      {$totalPaid|crmMoney}
-    </td>
-  </tr>
-  <tr>
-    <td {$labelStyle}>
-      {ts}Refund Amount{/ts}
-    </td>
-    <td {$valueStyle}>
-      {$refundAmount|crmMoney}
-    <td>
-  </tr>
-  {else}
-    <tr>
-      <th {$headerStyle}>{ts}Payment Details{/ts}</th>
-    </tr>
-    <tr>
-      <td {$labelStyle}>
-  {ts}{if $component eq 'event'}Total Fees{/if}{/ts}
-      </td>
-      <td {$valueStyle}>
-  {$totalAmount|crmMoney}
-      </td>
-      </tr>
-      <tr>
-      <td {$labelStyle}>
-  {ts}This Payment Amount{/ts}
-      </td>
-      <td {$valueStyle}>
-  {$paymentAmount|crmMoney}
-      </td>
-      </tr>
-     <tr>
-      <td {$labelStyle}>
-  {ts}Balance Owed{/ts}
-      </td>
-       <td {$valueStyle}>
-  {$amountOwed|crmMoney}
-      </td> {* This will be zero after final payment. *}
-     </tr>
-     <tr> <td {$emptyBlockStyle}></td>
-     <td {$emptyBlockValueStyle}></td></tr>
-      {if $paymentsComplete}
-      <tr>
-      <td colspan='2' {$valueStyle}>
-  {ts}Thank-you. This completes your payment for {if $component eq 'event'}{$event.event_title}{/if}.{/ts}
-      </td>
-     </tr>
-      {/if}
-  {/if}
-  {if $receive_date}
-    <tr>
-      <td {$labelStyle}>
-  {ts}Transaction Date{/ts}
-      </td>
-      <td {$valueStyle}>
-  {$receive_date|crmDate}
-      </td>
-    </tr>
-  {/if}
-  {if $trxn_id}
-    <tr>
-      <td {$labelStyle}>
-  {ts}Transaction #{/ts}
-      </td>
-      <td {$valueStyle}>
-        {$trxn_id}
-      </td>
-    </tr>
-  {/if}
-  {if $paidBy}
-    <tr>
-      <td {$labelStyle}>
-        {ts}Paid By{/ts}
-      </td>
-      <td {$valueStyle}>
-        {$paidBy}
-      </td>
-    </tr>
-  {/if}
-  {if $checkNumber}
-    <tr>
-      <td {$labelStyle}>
-        {ts}Check Number{/ts}
-      </td>
-      <td {$valueStyle}>
-        {$checkNumber}
-      </td>
-    </tr>
-  {/if}
-  </table>
-  </td>
-  </tr>
-    <tr>
-      <td>
-  <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-    {if $contributeMode eq 'direct' and !$isAmountzero}
-          <tr>
-            <th {$headerStyle}>
-        {ts}Billing Name and Address{/ts}
-            </th>
-          </tr>
-          <tr>
-            <td colspan="2" {$valueStyle}>
-        {$billingName}<br />
-        {$address|nl2br}
-            </td>
-          </tr>
-    {/if}
-    {if $contributeMode eq'direct' and !$isAmountzero}
-          <tr>
-            <th {$headerStyle}>
-        {ts}Credit Card Information{/ts}
-            </th>
-          </tr>
-          <tr>
-            <td colspan="2" {$valueStyle}>
-        {$credit_card_type}<br />
-        {$credit_card_number}<br />
-        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:''|crmDate}
-            </td>
-          </tr>
-    {/if}
-    {if $component eq 'event'}
-    <tr>
-      <th {$headerStyle}>
-        {ts}Event Information and Location{/ts}
-      </th>
-    </tr>
-    <tr>
-      <td colspan="2" {$valueStyle}>
-         {$event.event_title}<br />
-        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-      </td>
-    </tr>
-
-    {if $event.participant_role neq 'Attendee' and $defaultRole}
-    <tr>
-      <td {$labelStyle}>
-        {ts}Participant Role{/ts}
-      </td>
-      <td {$valueStyle}>
-        {$event.participant_role}
-      </td>
-    </tr>
-    {/if}
-
-    {if $isShowLocation}
-    <tr>
-      <td colspan="2" {$valueStyle}>
-        {if $location.address.1.name}
-        {$location.address.1.name}<br />
-        {/if}
-        {if $location.address.1.street_address}
-        {$location.address.1.street_address}<br />
-        {/if}
-        {if $location.address.1.supplemental_address_1}
-        {$location.address.1.supplemental_address_1}<br />
-        {/if}
-        {if $location.address.1.supplemental_address_2}
-        {$location.address.1.supplemental_address_2}<br />
-        {/if}
-        {if $location.address.1.city}
-        {$location.address.1.city} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if}<br />
-        {/if}
-      </td>
-    </tr>
-    {/if}
-
-    {if $location.phone.1.phone || $location.email.1.email}
-    <tr>
-      <td colspan="2" {$labelStyle}>
-        {ts}Event Contacts:{/ts}
-      </td>
-    </tr>
-    {foreach from=$location.phone item=phone}
-    {if $phone.phone}
-          <tr>
-            <td {$labelStyle}>
-        {if $phone.phone_type}
-        {$phone.phone_type_display}
-        {else}
-        {ts}Phone{/ts}
-        {/if}
-            </td>
-            <td {$valueStyle}>
-        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}
-            </td>
-          </tr>
-    {/if}
-    {/foreach}
-    {foreach from=$location.email item=eventEmail}
-    {if $eventEmail.email}
-          <tr>
-            <td {$labelStyle}>
-        {ts}Email{/ts}
-            </td>
-            <td {$valueStyle}>
-        {$eventEmail.email}
-            </td>
-          </tr>
-    {/if}
-    {/foreach}
-    {/if} {*phone block close*}
-    {/if}
-  </table>
-      </td>
-    </tr>
-
-    </table>
-  </center>
-
- </body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl
deleted file mode 100644
index 3849cf8dfd..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_subject.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if} - {if $component eq 'event'}{$event.title}{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl
deleted file mode 100644
index 35a37f5e5f..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/payment_or_refund_notification_text.tpl
+++ /dev/null
@@ -1,116 +0,0 @@
-Dear {$contactDisplayName}
-{if $paymentConfig.confirm_email_text}
-{$paymentConfig.confirm_email_text}
-{elseif $isRefund}
-{ts}A refund has been issued based on changes in your registration selections.{/ts}
-{else}
-{ts}A payment has been received.{/ts}
-{/if}
-
-{ts}Please print this confirmation for your records.{/ts}
-
-{if $isRefund}
-===============================================================================
-
-{ts}Refund Details{/ts}
-
-===============================================================================
-{ts}Total Fees{/ts}: {$totalAmount|crmMoney}
-{ts}You Paid{/ts}: {$totalPaid|crmMoney}
-------------------------------------------------------------------------------------
-{ts}Refund Amount{/ts}: {$refundAmount|crmMoney}
-
-{else}
-===============================================================================
-
-{ts}Payment Details{/ts}
-
-===============================================================================
-{ts}Total Fees{/ts}: {$totalAmount|crmMoney}
-{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}
-------------------------------------------------------------------------------------
-{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}
-
-{if $paymentsComplete}
-
-{ts}Thank-you. This completes your payment for {/ts}{if $component eq 'event'}{$event.event_title}{/if}.
-{/if}
-{/if}
-{if $receive_date}
-{ts}Transaction Date{/ts}: {$receive_date|crmDate}
-{/if}
-{if $trxn_id}
-{ts}Transaction #{/ts}: {$trxn_id}
-{/if}
-{if $paidBy}
-{ts}Paid By{/ts}: {$paidBy}
-{/if}
-{if $checkNumber}
-{ts}Check Number{/ts}: {$checkNumber}
-{/if}
-{if $contributeMode eq 'direct' and !$isAmountzero}
-
-===============================================================================
-
-{ts}Billing Name and Address{/ts}
-
-===============================================================================
-
-{$billingName}
-{$address}
-{/if}
-
-{if $contributeMode eq 'direct' and !$isAmountzero}
-===========================================================
-{ts}Credit Card Information{/ts}
-
-===============================================================================
-
-{$credit_card_type}
-{$credit_card_number}
-{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-{/if}
-{if $component eq 'event'}
-===============================================================================
-
-{ts}Event Information and Location{/ts}
-
-===============================================================================
-
-{$event.event_title}
-{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:"%Y%m%d" == $event.event_start_date|date_format:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}
-
-{if $event.participant_role neq 'Attendee' and $defaultRole}
-{ts}Participant Role{/ts}: {$event.participant_role}
-{/if}
-
-{if $isShowLocation}
-{if $location.address.1.name}
-
-{$location.address.1.name}
-{/if}
-{if $location.address.1.street_address}{$location.address.1.street_address}
-{/if}
-{if $location.address.1.supplemental_address_1}{$location.address.1.supplemental_address_1}
-{/if}
-{if $location.address.1.supplemental_address_2}{$location.address.1.supplemental_address_2}
-{/if}
-{if $location.address.1.city}{$location.address.1.city} {$location.address.1.postal_code}{if $location.address.1.postal_code_suffix} - {$location.address.1.postal_code_suffix}{/if}
-{/if}
-
-{/if}{*End of isShowLocation condition*}
-
-{if $location.phone.1.phone || $location.email.1.email}
-
-{ts}Event Contacts:{/ts}
-{foreach from=$location.phone item=phone}
-{if $phone.phone}
-
-{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}
-{/foreach}
-{foreach from=$location.email item=eventEmail}
-{if $eventEmail.email}
-
-{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}
-{/if}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_html.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_html.tpl
deleted file mode 100644
index c0727c4078..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_html.tpl
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-    <p>{ts 1=$contact.display_name}dear %1{/ts},</p>
-    <p>{ts}thank you for your generous pledge. please print this acknowledgment for your records.{/ts}</p>
-   </td>
-  </tr>
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-     <tr>
-      <th {$headerStyle}>
-       {ts}Pledge Information{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td {$labelStyle}>
-       {ts}Pledge Received{/ts}
-      </td>
-      <td {$valueStyle}>
-       {$create_date|truncate:10:''|crmDate}
-      </td>
-     </tr>
-     <tr>
-      <td {$labelStyle}>
-       {ts}Total Pledge Amount{/ts}
-      </td>
-      <td {$valueStyle}>
-       {$total_pledge_amount|crmMoney:$currency}
-      </td>
-     </tr>
-     <tr>
-      <th {$headerStyle}>
-       {ts}Payment Schedule{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td colspan="2" {$valueStyle}>
-       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>
-
-       {if $frequency_day}
-        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>
-       {/if}
-      </td>
-     </tr>
-
-     {if $payments}
-      {assign var="count" value="1"}
-      {foreach from=$payments item=payment}
-       <tr>
-        <td {$labelStyle}>
-         {ts 1=$count}Payment %1{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:''|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:''|crmDate}{/if}
-        </td>
-       </tr>
-       {assign var="count" value=`$count+1`}
-      {/foreach}
-     {/if}
-
-     <tr>
-      <td colspan="2" {$valueStyle}>
-       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions
-or need to modify your payment schedule.{/ts}</p>
-      </td>
-     </tr>
-
-     {if $customGroup}
-      {foreach from=$customGroup item=value key=customName}
-       <tr>
-        <th {$headerStyle}>
-         {$customName}
-        </th>
-       </tr>
-       {foreach from=$value item=v key=n}
-        <tr>
-         <td {$labelStyle}>
-          {$n}
-         </td>
-         <td {$valueStyle}>
-          {$v}
-         </td>
-        </tr>
-       {/foreach}
-      {/foreach}
-     {/if}
-
-    </table>
-   </td>
-  </tr>
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_text.tpl b/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_text.tpl
deleted file mode 100644
index 571f1b1bea..0000000000
--- a/civicrm/CRM/Upgrade/4.5.alpha1.msg_template/message_templates/pledge_acknowledge_text.tpl
+++ /dev/null
@@ -1,45 +0,0 @@
-{ts 1=$contact.display_name}Dear %1{/ts},
-
-{ts}Thank you for your generous pledge. Please print this acknowledgment for your records.{/ts}
-
-===========================================================
-{ts}Pledge Information{/ts}
-
-===========================================================
-{ts}Pledge Received{/ts}: {$create_date|truncate:10:''|crmDate}
-{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}
-
-===========================================================
-{ts}Payment Schedule{/ts}
-
-===========================================================
-{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}
-
-{if $frequency_day}
-
-{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}
-{/if}
-
-{if $payments}
-{assign var="count" value="1"}
-{foreach from=$payments item=payment}
-
-{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:''|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:''|crmDate}{/if}
-{assign var="count" value=`$count+1`}
-{/foreach}
-{/if}
-
-
-{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions
-or need to modify your payment schedule.{/ts}
-
-{if $customGroup}
-{foreach from=$customGroup item=value key=customName}
-===========================================================
-{$customName}
-===========================================================
-{foreach from=$value item=v key=n}
-{$n}: {$v}
-{/foreach}
-{/foreach}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/civicrm_msg_template.tpl b/civicrm/CRM/Upgrade/4.5.beta2.msg_template/civicrm_msg_template.tpl
deleted file mode 100644
index 744e544566..0000000000
--- a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/civicrm_msg_template.tpl
+++ /dev/null
@@ -1,32 +0,0 @@
-{php}
-  $dir = SMARTY_DIR . '/../../CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample';
-  $templates = array();
-  foreach (preg_grep('/\.tpl$/', scandir($dir)) as $filename) {
-    $templates[] = array('name' => basename($filename, '.tpl'), 'filename' => "$dir/$filename");
-  }
-  $this->assign('templates', $templates);
-{/php}
-
-{foreach from=$templates item=tpl}
-  {fetch assign=content file=$tpl.filename}
-INSERT INTO civicrm_msg_template
-   (msg_title,  msg_subject, msg_text, msg_html, workflow_id, is_default, is_reserved) VALUES
-    ('{$tpl.name} Template', '{$tpl.name}', '', '{$content|escape:"quotes"}' ,NULL, 1, 0);
-{/foreach}
-
-{php}
-  $dir = SMARTY_DIR . '/../../CRM/Upgrade/4.5.beta2.msg_template/message_templates';
-  $templates = array();
-  foreach (preg_grep('/\.tpl$/', scandir($dir)) as $filename) {
-    $parts = explode('_', basename($filename, '.tpl'));
-    $templates[] = array('type' => array_pop($parts), 'name' => implode('_', $parts), 'filename' => "$dir/$filename");
-  }
-  $this->assign('templates', $templates);
-{/php}
-
-{foreach from=$templates item=tpl}
-  {fetch assign=content file=$tpl.filename}
-  SELECT @workflow_id := MAX(id) FROM civicrm_option_value WHERE name = '{$tpl.name}';
-  SELECT @content := msg_{$tpl.type} FROM civicrm_msg_template WHERE workflow_id = @workflow_id AND is_reserved = 1 LIMIT 1;
-  UPDATE civicrm_msg_template SET msg_{$tpl.type} = '{$content|escape:"quotes"}' WHERE workflow_id = @workflow_id AND (is_reserved = 1 OR (is_default = 1 AND msg_{$tpl.type} = @content));
-{/foreach}
diff --git a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_html.tpl b/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_html.tpl
deleted file mode 100644
index 06c43bb6da..0000000000
--- a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_html.tpl
+++ /dev/null
@@ -1,240 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
-</head>
-<body>
-
-{capture assign=headerStyle}colspan="2" style="text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;"{/capture}
-{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
-{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
-
-<center>
- <table width="620" border="0" cellpadding="0" cellspacing="0" id="crm-event_receipt" style="font-family: Arial, Verdana, sans-serif; text-align: left;">
-
-  <!-- BEGIN HEADER -->
-  <!-- You can add table row(s) here with logo or other header elements -->
-  <!-- END HEADER -->
-
-  <!-- BEGIN CONTENT -->
-
-  <tr>
-   <td>
-    {if $formValues.receipt_text_signup}
-     <p>{$formValues.receipt_text_signup|htmlize}</p>
-    {elseif $formValues.receipt_text_renewal}
-     <p>{$formValues.receipt_text_renewal|htmlize}</p>
-    {else}
-     <p>{ts}Thank you for your support.{/ts}</p>
-    {/if}
-    {if ! $cancelled}
-     <p>{ts}Please print this receipt for your records.{/ts}</p>
-    {/if}
-   </td>
-  </tr>
-  <tr>
-   <td>
-    <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-     {if !$lineItem}
-     <tr>
-      <th {$headerStyle}>
-       {ts}Membership Information{/ts}
-      </th>
-     </tr>
-     <tr>
-      <td {$labelStyle}>
-       {ts}Membership Type{/ts}
-      </td>
-      <td {$valueStyle}>
-       {$membership_name}
-      </td>
-     </tr>
-     {/if}
-     {if ! $cancelled}
-     {if !$lineItem}
-      <tr>
-       <td {$labelStyle}>
-        {ts}Membership Start Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$mem_start_date}
-       </td>
-      </tr>
-      <tr>
-       <td {$labelStyle}>
-        {ts}Membership End Date{/ts}
-       </td>
-       <td {$valueStyle}>
-        {$mem_end_date}
-       </td>
-      </tr>
-      {/if}
-      {if $formValues.total_amount OR $formValues.total_amount eq 0 }
-       <tr>
-        <th {$headerStyle}>
-         {ts}Membership Fee{/ts}
-        </th>
-       </tr>
-       {if $formValues.contributionType_name}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Financial Type{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$formValues.contributionType_name}
-         </td>
-        </tr>
-       {/if}
-
-       {if $lineItem}
-       {foreach from=$lineItem item=value key=priceset}
-         <tr>
-          <td colspan="2" {$valueStyle}>
-           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}
-            <tr>
-             <th>{ts}Item{/ts}</th>
-             <th>{ts}Fee{/ts}</th>
-       <th>{ts}Membership Start Date{/ts}</th>
-       <th>{ts}Membership End Date{/ts}</th>
-            </tr>
-            {foreach from=$value item=line}
-             <tr>
-              <td>
-        {if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:"..."}</div>{/if}
-              </td>
-              <td>
-               {$line.line_total|crmMoney}
-              </td>
-              <td>
-               {$line.start_date}
-              </td>
-        <td>
-               {$line.end_date}
-              </td>
-             </tr>
-            {/foreach}
-           </table>
-          </td>
-         </tr>
-       {/foreach}
-      {/if}
-       <tr>
-        <td {$labelStyle}>
-         {ts}Amount{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$formValues.total_amount|crmMoney}
-        </td>
-       </tr>
-       {if $receive_date}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Received Date{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$receive_date|truncate:10:''|crmDate}
-         </td>
-        </tr>
-       {/if}
-       {if $formValues.paidBy}
-        <tr>
-         <td {$labelStyle}>
-          {ts}Paid By{/ts}
-         </td>
-         <td {$valueStyle}>
-          {$formValues.paidBy}
-         </td>
-        </tr>
-        {if $formValues.check_number}
-         <tr>
-          <td {$labelStyle}>
-           {ts}Check Number{/ts}
-          </td>
-          <td {$valueStyle}>
-           {$formValues.check_number}
-          </td>
-         </tr>
-        {/if}
-       {/if}
-      {/if}
-     {/if}
-    </table>
-   </td>
-  </tr>
-
-  {if $isPrimary}
-   <tr>
-    <td>
-     <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-
-      {if $contributeMode ne 'notify' and !$isAmountzero and !$is_pay_later }
-       <tr>
-        <th {$headerStyle}>
-         {ts}Billing Name and Address{/ts}
-        </th>
-       </tr>
-       <tr>
-        <td {$labelStyle}>
-         {$billingName}<br />
-         {$address}
-        </td>
-       </tr>
-      {/if}
-
-      {if $contributeMode eq 'direct' and !$isAmountzero and !$is_pay_later}
-       <tr>
-        <th {$headerStyle}>
-         {ts}Credit Card Information{/ts}
-        </th>
-       </tr>
-       <tr>
-        <td {$valueStyle}>
-         {$credit_card_type}<br />
-         {$credit_card_number}
-        </td>
-       </tr>
-       <tr>
-        <td {$labelStyle}>
-         {ts}Expires{/ts}
-        </td>
-        <td {$valueStyle}>
-         {$credit_card_exp_date|truncate:7:''|crmDate}
-        </td>
-       </tr>
-      {/if}
-
-     </table>
-    </td>
-   </tr>
-  {/if}
-
-  {if $customValues}
-   <tr>
-    <td>
-     <table style="border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;">
-      <tr>
-       <th {$headerStyle}>
-        {ts}Membership Options{/ts}
-       </th>
-      </tr>
-      {foreach from=$customValues item=value key=customName}
-       <tr>
-        <td {$labelStyle}>
-         {$customName}
-        </td>
-        <td {$valueStyle}>
-         {$value}
-        </td>
-       </tr>
-      {/foreach}
-     </table>
-    </td>
-   </tr>
-  {/if}
-
- </table>
-</center>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_text.tpl b/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_text.tpl
deleted file mode 100644
index 383167a68f..0000000000
--- a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/membership_offline_receipt_text.tpl
+++ /dev/null
@@ -1,90 +0,0 @@
-{if $formValues.receipt_text_signup}
-{$formValues.receipt_text_signup}
-{elseif $formValues.receipt_text_renewal}
-{$formValues.receipt_text_renewal}
-{else}{ts}Thank you for your support.{/ts}{/if}
-
-{if ! $cancelled}{ts}Please print this receipt for your records.{/ts}
-
-
-{/if}
-{if !$lineItem}
-===========================================================
-{ts}Membership Information{/ts}
-
-===========================================================
-{ts}Membership Type{/ts}: {$membership_name}
-{/if}
-{if ! $cancelled}
-{if !$lineItem}
-{ts}Membership Start Date{/ts}: {$mem_start_date}
-{ts}Membership End Date{/ts}: {$mem_end_date}
-{/if}
-
-{if $formValues.total_amount OR $formValues.total_amount eq 0 }
-===========================================================
-{ts}Membership Fee{/ts}
-
-===========================================================
-{if $formValues.contributionType_name}
-{ts}Financial Type{/ts}: {$formValues.contributionType_name}
-{/if}
-{if $lineItem}
-{foreach from=$lineItem item=value key=priceset}
-{capture assign=ts_item}{ts}Item{/ts}{/capture}
-{capture assign=ts_total}{ts}Fee{/ts}{/capture}
-{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
-{$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
---------------------------------------------------------------------------------------------------
-
-{foreach from=$value item=line}
-{capture assign=ts_item}{if $line.html_type eq 'Text'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:"..."|string_format:"%-30s"} {$line.line_total|crmMoney|string_format:"%10s"} {$line.start_date|string_format:"%20s"} {$line.end_date|string_format:"%20s"}
-{/foreach}
-{/foreach}
---------------------------------------------------------------------------------------------------
-{/if}
-{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}
-{if $receive_date}
-{ts}Received Date{/ts}: {$receive_date|truncate:10:''|crmDate}
-{/if}
-{if $formValues.paidBy}
-{ts}Paid By{/ts}: {$formValues.paidBy}
-{if $formValues.check_number}
-{ts}Check Number{/ts}: {$formValues.check_number}
-{/if}
-{/if}
-{/if}
-{/if}
-
-{if $isPrimary }
-{if $contributeMode ne 'notify' and !$isAmountzero and !$is_pay_later  }
-
-===========================================================
-{ts}Billing Name and Address{/ts}
-
-===========================================================
-{$billingName}
-{$address}
-{/if}
-
-{if $contributeMode eq 'direct' and !$isAmountzero and !$is_pay_later}
-===========================================================
-{ts}Credit Card Information{/ts}
-
-===========================================================
-{$credit_card_type}
-{$credit_card_number}
-{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:''|crmDate}
-{/if}
-{/if}
-
-{if $customValues}
-===========================================================
-{ts}Membership Options{/ts}
-
-===========================================================
-{foreach from=$customValues item=value key=customName}
- {$customName} : {$value}
-{/foreach}
-{/if}
diff --git a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Single Column.tpl b/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Single Column.tpl
deleted file mode 100644
index 86ffc2351d..0000000000
--- a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Single Column.tpl	
+++ /dev/null
@@ -1,496 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-  <meta content="width=device-width, initial-scale=1.0" name="viewport" />
-  <title></title>
-
-  <style type="text/css">
-    {literal}
-    /* Client-specific Styles */
-    #outlook a {padding:0;} /* Force Outlook to provide a "view in browser" menu link. */
-    body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}
-
-    /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */
-    .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */
-    .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */
-    #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}
-    img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}
-    a img {border:none;}
-    .image_fix {display:block;}
-    p {margin: 0px 0px !important;}
-    table td {border-collapse: collapse;}
-    table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }
-    a {text-decoration: none;text-decoration:none;}
-
-    /*STYLES*/
-    table[class=full] { width: 100%; clear: both; }
-
-    /*IPAD STYLES*/
-    @media only screen and (max-width: 640px) {
-    a[href^="tel"], a[href^="sms"] {text-decoration: none;color:#136388;pointer-events: none;cursor: default;}
-    .mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {text-decoration: default;color:#136388;pointer-events: auto;cursor: default;}
-    table[class=devicewidth] {width: 440px!important;text-align:center!important;}
-    table[class=devicewidthmob] {width: 416px!important;text-align:center!important;}
-    table[class=devicewidthinner] {width: 416px!important;text-align:center!important;}
-    img[class=banner] {width: 440px!important;auto!important;}
-    img[class=col2img] {width: 440px!important;height:auto!important;}
-    table[class="cols3inner"] {width: 100px!important;}
-    table[class="col3img"] {width: 131px!important;}
-    img[class="col3img"] {width: 131px!important;height: auto!important;}
-    table[class="removeMobile"]{width:10px!important;}
-    img[class="blog"] {width: 440px!important;height: auto!important;}
-    }
-
-    /*IPHONE STYLES*/
-    @media only screen and (max-width: 480px) {
-    a[href^="tel"], a[href^="sms"] {text-decoration: none;color: #136388;pointer-events: none;cursor: default;}
-    .mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {text-decoration: none;color:#136388;pointer-events: auto;cursor: default;}
-
-    table[class=devicewidth] {width: 280px!important;text-align:center!important;}
-    table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}
-    table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}
-    img[class=banner] {width: 280px!important;height:100px!important;}
-    img[class=col2img] {width: 280px!important;height:auto!important;}
-    table[class="cols3inner"] {width: 260px!important;}
-    img[class="col3img"] {width: 280px!important;height: auto!important;}
-    table[class="col3img"] {width: 280px!important;}
-    img[class="blog"] {width: 280px!important;auto!important;}
-    td[class="padding-top-right15"]{padding:15px 15px 0 0 !important;}
-    td[class="padding-right15"]{padding-right:15px !important;}
-    }
-
-    @media only screen and (max-device-width: 800px)
-    {td[class="padding-top-right15"]{padding:15px 15px 0 0 !important;}
-    td[class="padding-right15"]{padding-right:15px !important;}}
-    @media only screen and (max-device-width: 769px) {
-    .devicewidthmob {font-size:16px;}
-    }
-
-    @media only screen and (max-width: 640px) {
-    .desktop-spacer {display:none !important;}
- }
-  {/literal}
-  </style>
-
-<body>
-  <!-- Start of preheader --><!-- Start of preheader -->
-  <table bgcolor="#89c66b" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" width="100%">
-    <tbody>
-      <tr>
-        <td>
-        <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-          <tbody>
-            <tr>
-              <td width="100%">
-              <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                <tbody><!-- Spacing -->
-                  <tr>
-                    <td height="20" width="100%">&nbsp;</td>
-                  </tr>
-                  <!-- Spacing -->
-                  <tr>
-                    <td>
-                    <table align="left" border="0" cellpadding="0" cellspacing="0" class="devicewidthinner" width="310">
-                      <tbody>
-                        <tr>
-                          <td align="left" style="font-family: Helvetica, arial, sans-serif; font-size: 16px; line-height:120%; color: #f8f8f8;padding-left:15px; padding-bottom:5px;" valign="middle">Organization or Program Name Here</td>
-                        </tr>
-                      </tbody>
-                    </table>
-
-                    <table align="right" border="0" cellpadding="0" cellspacing="0" class="emhide" width="310">
-                      <tbody>
-                        <tr>
-                          <td align="right" style="font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px; text-align:right;" valign="middle">Month and Year</td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    </td>
-                  </tr>
-                  <!-- Spacing -->
-                  <tr>
-                    <td height="20" width="100%">&nbsp;</td>
-                  </tr>
-                  <!-- Spacing -->
-                </tbody>
-              </table>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-  <!-- End of main-banner-->
-
-  <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-    <tbody>
-      <tr>
-        <td>
-        <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-          <tbody>
-            <tr>
-              <td width="100%">
-              <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                <tbody><!-- Spacing -->
-                  <tr>
-                    <td height="20" width="100%">
-                    <table align="center" border="0" cellpadding="2" cellspacing="0" width="93%">
-                      <tbody>
-                        <tr>
-                          <td rowspan="2" style="padding-top:10px; padding-bottom:10px;" width="38%"><img src="https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png" alt="Replace with your own logo" width="220" border="0" /></td>
-                          <td align="right" width="62%">
-                          <h6 class="collapse">&nbsp;</h6>
-                          </td>
-                        </tr>
-                        <tr>
-                          <td align="right">
-                          <h5 style="font-family: Gill Sans, Gill Sans MT, Myriad Pro, DejaVu Sans Condensed, Helvetica, Arial, sans-serif; color:#136388;">&nbsp;</h5>
-                          </td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    </td>
-                  </tr>
-                  <tr>
-                    <td>
-                    <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                      <tbody>
-                        <tr>
-                          <td width="100%">
-                          <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                            <tbody><!-- /Spacing -->
-                              <tr>
-                                <td style="font-family: Helvetica, arial, sans-serif; font-size: 23px; color:#f8f8f8; text-align:left; line-height: 32px; padding:5px 15px; background-color:#136388;">Headline Here</td>
-                              </tr>
-                              <!-- Spacing -->
-                              <tr>
-                                <td>
-                                <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidthinner" width="650">
-                                  <tbody><!-- hero story -->
-                                    <tr>
-                                      <td align="center" class="devicewidthinner" width="100%">
-                                      <div class="imgpop"><a href="#"><img alt="" border="0" class="blog" height="auto" src="https://civicrm.org/sites/default/files/civicrm/custom/images/650x396.png" style="display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;" width="650" /></a></div>
-                                      </td>
-                                    </tr>
-                                    <!-- /hero image --><!-- Spacing -->
-                                    <tr>
-                                      <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                    </tr>
-                                    <!-- /Spacing -->
-                                    <tr>
-                                      <td style="font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px; color:#89c66b;"><a href="#" style="color:#89c66b;">Your Heading Here</a></td>
-                                    </tr>
-                                    <!-- Spacing -->
-                                    <tr>
-                                      <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                    </tr>
-                                    <!-- /Spacing --><!-- content -->
-                                    <tr>
-                                      <td style="padding:0 15px;">
-                                      <p style="font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;">{contact.email_greeting},                                    </p>
-                                      <p style="font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;"><span class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></p>
-                                      </td>
-                                    </tr>
-                                    <tr>
-                                      <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;"><a href="#" style="color:#136388;text-decoration:none;font-weight:bold;" target="_blank" title="read more">Read More</a></td>
-                                    </tr>
-                                    <!-- /button --><!-- Spacing -->
-                                    <tr>
-                                      <td height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                                    </tr>
-                                    <!-- Spacing --><!-- end of content -->
-                                  </tbody>
-                                </table>
-                                </td>
-                              </tr>
-                            </tbody>
-                          </table>
-                          </td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    </td>
-                  </tr>
-                </tbody>
-              </table>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-  <!-- end of hero image and story --><!-- story 1 -->
-
-  <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-    <tbody>
-      <tr>
-        <td>
-        <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-          <tbody>
-            <tr>
-              <td width="100%">
-              <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                <tbody><!-- Spacing -->
-                  <tr>
-                    <td>
-                    <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                      <tbody>
-                        <tr>
-                          <td width="100%">
-                          <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                            <tbody>
-                              <tr>
-                                <td>
-                                <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidthinner" width="650">
-                                  <tbody><!-- image -->
-                                    <tr>
-                                      <td align="center" class="devicewidthinner" width="100%">
-                                      <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" class="blog" height="250" src="https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png" style="display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;" width="650" /></a></div>
-                                      </td>
-                                    </tr>
-                                    <!-- /image --><!-- Spacing -->
-                                    <tr>
-                                      <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                    </tr>
-                                    <!-- /Spacing -->
-                                    <tr>
-                                      <td style="font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;"><a href="#" style="color:#89c66b;">Your Heading  Here</a></td>
-                                    </tr>
-                                    <!-- Spacing -->
-                                    <tr>
-                                      <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                    </tr>
-                                    <!-- /Spacing --><!-- content -->
-                                    <tr>
-                                      <td style="padding:0 15px;">
-                                      <p style="font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>
-                                      </td>
-                                    </tr>
-                                    <tr>
-                                      <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;"><a href="#" style="color:#136388;text-decoration:none;font-weight:bold;" target="_blank" title="read more">Read More</a></td>
-                                    </tr>
-                                    <!-- /button --><!-- Spacing -->
-                                    <tr>
-                                      <td height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                                    </tr>
-                                    <!-- Spacing --><!-- end of content -->
-                                  </tbody>
-                                </table>
-                                </td>
-                              </tr>
-                            </tbody>
-                          </table>
-                          </td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    </td>
-                  </tr>
-                </tbody>
-              </table>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-  <!-- /story 2--><!-- banner1 -->
-
-  <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-    <tbody>
-      <tr>
-        <td>
-        <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-          <tbody>
-            <tr>
-              <td width="100%">
-              <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                <tbody><!-- Spacing -->
-                  <tr>
-                    <td>
-                    <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                      <tbody>
-                        <tr>
-                          <td width="100%">
-                          <table align="center" bgcolor="#89c66b" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                            <tbody>
-                              <tr>
-                                <td>
-                                <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidthinner" width="650">
-                                  <tbody><!-- image -->
-                                    <tr>
-                                      <td align="center" class="devicewidthinner" width="100%">
-                                      <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" class="blog" height="auto" src="https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png" style="display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;" width="650" /></a></div>
-                                      </td>
-                                    </tr>
-                                    <!-- /image --><!-- content --><!-- Spacing -->
-                                    <tr>
-                                      <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                    </tr>
-                                    <!-- /Spacing -->
-                                    <tr>
-                                      <td style="padding:15px;">
-                                      <p style="font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>
-                                      </td>
-                                    </tr>
-                                    <!-- /button --><!-- white button -->
-                                    <!-- /button --><!-- Spacing --><!-- end of content -->
-                                  </tbody>
-                                </table>
-                                </td>
-                              </tr>
-                            </tbody>
-                          </table>
-                          </td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    </td>
-                  </tr>
-                </tbody>
-              </table>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-  <!-- /banner 1--><!-- banner 2 -->
-
-  <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-    <tbody>
-      <tr>
-        <td>
-        <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-          <tbody>
-            <tr>
-              <td width="100%">
-              <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                <tbody><!-- Spacing -->
-                  <tr>
-                    <td>
-                    <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                      <tbody>
-                        <tr>
-                          <td width="100%">
-                          <table align="center" bgcolor="#136388" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                            <tbody>
-                              <tr>
-                                <td>
-                                <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidthinner" width="650">
-                                  <tbody><!-- image -->
-                                    <tr>
-                                      <td align="center" class="devicewidthinner" width="100%">
-                                      <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" class="blog" height="auto" src="https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png" style="display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;" width="650" /></a></div>
-                                      </td>
-                                    </tr>
-                                    <!-- /image --><!-- content --><!-- Spacing -->
-                                    <tr>
-                                      <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                    </tr>
-                                    <!-- /Spacing -->
-                                    <tr>
-                                      <td style="padding: 15px;">
-                                      <p style="font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;">Remember to link the facebook and twitter links below to your pages!</p>
-                                      </td>
-                                    </tr>
-                                    <!-- /button --><!-- white button -->
-                                    <tr>
-                                      <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-bottom:10px; padding-left:15px;"><a href="#" style="color:#ffffff;text-decoration:none;font-weight:bold;" target="_blank" title="read more">Read More</a></td>
-                                    </tr>
-                                    <!-- /button --><!-- Spacing --><!-- end of content -->
-                                  </tbody>
-                                </table>
-                                </td>
-                              </tr>
-                            </tbody>
-                          </table>
-                          </td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    </td>
-                  </tr>
-                </tbody>
-              </table>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-  <!-- /banner2 --><!-- footer -->
-
-  <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="footer" width="100%">
-    <tbody>
-      <tr>
-        <td>
-        <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-          <tbody>
-            <tr>
-              <td width="100%">
-              <table align="center" bgcolor="#89c66b"  border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="650">
-                <tbody><!-- Spacing -->
-                  <tr>
-                    <td height="10" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                  </tr>
-                  <!-- Spacing -->
-                  <tr>
-                    <td><!-- logo -->
-                    <table align="left" border="0" cellpadding="0" cellspacing="0" width="250">
-                      <tbody>
-                        <tr>
-                          <td width="20">&nbsp;</td>
-                          <td align="left" height="40" width="250"><span style="font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;"><a href="{action.unsubscribeUrl}" style="color: #f0f0f0; ">Unsubscribe | </a><a href="{action.subscribeUrl}"  style="color: #f0f0f0;">Subscribe |</a> <a href="{action.optOutUrl}" style="color: #f0f0f0;">Opt out</a></span></td>
-                        </tr>
-                        <tr>
-                          <td width="20">&nbsp;</td>
-                          <td align="left" height="40" width="250"><span style="font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;">{domain.address}</span></td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    <!-- end of logo --><!-- start of social icons -->
-
-                    <table align="right" border="0" cellpadding="0" cellspacing="0" height="40" vaalign="middle" width="60">
-                      <tbody>
-                        <tr>
-                          <td align="left" height="22" width="22">
-                          <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" height="22" src="https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png" style="display:block; border:none; outline:none; text-decoration:none;" width="22" /> </a></div>
-                          </td>
-                          <td align="left" style="font-size:1px; line-height:1px;" width="10">&nbsp;</td>
-                          <td align="right" height="22" width="22">
-                          <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" height="22" src="https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png" style="display:block; border:none; outline:none; text-decoration:none;" width="22" /> </a></div>
-                          </td>
-                          <td align="left" style="font-size:1px; line-height:1px;" width="20">&nbsp;</td>
-                        </tr>
-                      </tbody>
-                    </table>
-                    <!-- end of social icons --></td>
-                  </tr>
-                  <!-- Spacing -->
-                  <tr>
-                    <td height="10" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                  </tr>
-                  <!-- Spacing -->
-                </tbody>
-              </table>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-
-</body>
-</html>
diff --git a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Two Column.tpl b/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Two Column.tpl
deleted file mode 100644
index 14c140fa13..0000000000
--- a/civicrm/CRM/Upgrade/4.5.beta2.msg_template/message_templates/sample/Sample Responsive Design Newsletter - Two Column.tpl	
+++ /dev/null
@@ -1,672 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-  <meta content="width=device-width, initial-scale=1.0" name="viewport" />
-  <title></title>
-  <style type="text/css">
-     {literal}
-     img {height: auto !important;}
-     /* Client-specific Styles */
-     #outlook a {padding:0;} /* Force Outlook to provide a "view in browser" menu link. */
-     body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}
-
-     /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */
-     .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */
-     .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */
-     #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}
-     img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}
-     a img {border:none;}
-     .image_fix {display:block;}
-     p {margin: 0px 0px !important;}
-     table td {border-collapse: collapse;}
-     table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }
-     a {/*color: #33b9ff;*/text-decoration: none;text-decoration:none!important;}
-
-
-     /*STYLES*/
-     table[class=full] { width: 100%; clear: both; }
-
-     /*IPAD STYLES*/
-     @media only screen and (max-width: 640px) {
-     a[href^="tel"], a[href^="sms"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}
-     .mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {text-decoration: default;color: #0a8cce !important;pointer-events: auto;cursor: default;}
-     table[class=devicewidth] {width: 440px!important;text-align:center!important;}
-     table[class=devicewidthmob] {width: 414px!important;text-align:center!important;}
-     table[class=devicewidthinner] {width: 414px!important;text-align:center!important;}
-     img[class=banner] {width: 440px!important;auto!important;}
-     img[class=col2img] {width: 440px!important;height:auto!important;}
-     table[class="cols3inner"] {width: 100px!important;}
-     table[class="col3img"] {width: 131px!important;}
-     img[class="col3img"] {width: 131px!important;height: auto!important;}
-     table[class="removeMobile"]{width:10px!important;}
-     img[class="blog"] {width: 440px!important;height: auto!important;}
-     }
-
-     /*IPHONE STYLES*/
-     @media only screen and (max-width: 480px) {
-     a[href^="tel"], a[href^="sms"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}
-     .mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {text-decoration: default;color: #0a8cce !important; pointer-events: auto;cursor: default;}
-     table[class=devicewidth] {width: 280px!important;text-align:center!important;}
-     table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}
-     table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}
-     img[class=banner] {width: 280px!important;height:100px!important;}
-     img[class=col2img] {width: 280px!important;height:auto!important;}
-     table[class="cols3inner"] {width: 260px!important;}
-     img[class="col3img"] {width: 280px!important;height: auto!important;}
-     table[class="col3img"] {width: 280px!important;}
-     img[class="blog"] {width: 280px!important;auto!important;}
-     td[class="padding-top-right15"]{padding:15px 15px 0 0 !important;}
-     td[class="padding-right15"]{padding-right:15px !important;}
-     }
-
-     @media only screen and (max-device-width: 800px)
-     {td[class="padding-top-right15"]{padding:15px 15px 0 0 !important;}
-     td[class="padding-right15"]{padding-right:15px !important;}}
-     @media only screen and (max-device-width: 769px) {.devicewidthmob {font-size:14px;}}
-
-     @media only screen and (max-width: 640px) {.desktop-spacer {display:none !important;}
-     }
-     {/literal}
-  </style>
-  <body>
-    <!-- Start of preheader --><!-- Start of preheader -->
-    <table bgcolor="#0B4151" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" width="100%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                  <tbody><!-- Spacing -->
-                    <tr>
-                      <td height="20" width="100%">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td>
-                      <table align="left" border="0" cellpadding="0" cellspacing="0" class="devicewidthinner" width="360">
-                        <tbody>
-                          <tr>
-                            <td align="left" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height:120%; color: #f8f8f8;padding-left:15px;" valign="middle">Organization or Program Name Here</td>
-                          </tr>
-                        </tbody>
-                      </table>
-
-                      <table align="right" border="0" cellpadding="0" cellspacing="0" class="emhide" width="320">
-                        <tbody>
-                          <tr>
-                            <td align="right" style="font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px;" valign="middle">Month Year</td>
-                          </tr>
-                        </tbody>
-                      </table>
-                      </td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td height="20" width="100%">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- End of preheader --><!-- start of logo -->
-
-    <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidthmob" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                  <tbody><!-- Spacing -->
-                    <tr>
-                      <td height="20" width="100%">
-                      <table align="center" border="0" cellpadding="2" cellspacing="0" width="93%">
-                        <tbody>
-                          <tr>
-                             <td rowspan="2" width="330"><a href="#"> <div class="imgpop"><img src="https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png" alt="Replace with your own logo" width="220" border="0" style="display:block;"/></div></a></td>
-                            <td align="right" >
-                            <h6 class="collapse">&nbsp;</h6>
-                            </td>
-                          </tr>
-                          <tr>
-                            <td align="right">
-
-                            </td>
-                          </tr>
-                        </tbody>
-                      </table>
-                      </td>
-                    </tr>
-
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- end of logo --> <!-- hero story 1 -->
-
-    <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="101%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                <table align="center" bgcolor="#f8f8f8" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                  <tbody>
-                    <tr>
-                      <td>
-                      <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                        <tbody>
-                          <tr>
-                            <td width="100%">
-                            <table align="center" bgcolor="#f8f8f8" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                              <tbody><!-- /Spacing -->
-                                <tr>
-                                  <td style="font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457">Hero Story Heading</td>
-                                </tr>
-                                <!-- Spacing -->
-                                <tr>
-                                  <td>
-                                  <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidthinner" width="700">
-                                    <tbody><!-- image -->
-                                      <tr>
-                                        <td align="center" class="devicewidthinner" width="100%">
-                                        <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" class="blog" height="396" src="https://civicrm.org/sites/default/files/civicrm/custom/images/700x396.png" style="display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;" width="700" /></a></div>
-                                        </td>
-                                      </tr>
-                                      <!-- /image --><!-- Spacing -->
-                                      <tr>
-                                        <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                      </tr>
-                                      <!-- /Spacing --><!-- hero story -->
-                                      <tr>
-                                        <td style="font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;"><a href="#" style="color:#076187; text-decoration:none; " target="_blank">Subheading Here</a></td>
-                                      </tr>
-                                      <!-- Spacing -->
-                                      <tr>
-                                        <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                      </tr><!-- /Spacing -->
-                                      <tr>
-                                        <td style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 26px; padding:0 15px;"><span class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></td>
-                                      </tr>
-
-    <!-- Spacing -->
-                                      <tr>
-                                        <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                      </tr><!-- /Spacing -->
-
-              <!-- /Spacing --><!-- /hero story -->
-
-                                      <!-- Spacing -->                                                            <!-- Spacing -->
-
-
-
-                                      <!-- Spacing --><!-- end of content -->
-                                    </tbody>
-                                  </table>
-                                  </td>
-                                </tr>
-                              </tbody>
-                            </table>
-                            </td>
-                          </tr>
-                        </tbody>
-                      </table>
-                      </td>
-                    </tr>
-                    <!-- Section Heading -->
-                    <tr>
-                      <td style="font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457">Section Heading Here</td>
-                    </tr>
-                    <!-- /Section Heading -->
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- /hero story 1 --><!-- story one -->
-
-    <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                  <tbody><!-- Spacing -->
-                    <tr>
-                      <td class="desktop-spacer" height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td>
-                      <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="660">
-                        <tbody>
-                          <tr>
-                            <td><!-- Start of left column -->
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="330">
-                              <tbody><!-- image -->
-                                <tr>
-                                  <td align="center" class="devicewidth" height="150" valign="top" width="330"><a href="#"><img alt="" border="0" class="col2img" src="https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png" style="display:block; border:none; outline:none; text-decoration:none; display:block;" width="330" /></a></td>
-                                </tr>
-                                <!-- /image -->
-                              </tbody>
-                            </table>
-                            <!-- end of left column --><!-- spacing for mobile devices-->
-
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="mobilespacing">
-                              <tbody>
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                              </tbody>
-                            </table>
-                            <!-- end of for mobile devices--><!-- start of right column -->
-
-                            <table align="right" border="0" cellpadding="0" cellspacing="0" class="devicewidthmob" width="310">
-                              <tbody>
-                                <tr>
-                                  <td class="padding-top-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;"><a href="#" style="color:#076187; text-decoration:none; " target="_blank">Heading Here</a><a href="#" style="color:#076187; text-decoration:none;" target="_blank" title="CiviCRM helps keep the “City Beautiful” Movement”going strong"></a></td>
-                                </tr>
-                                <!-- end of title --><!-- Spacing -->
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                                <!-- /Spacing --><!-- content -->
-                                <tr>
-                                  <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;"><span class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
-                                                                tempor incididunt ut labore et dolore magna </span></td>
-                                </tr>
-                                <tr>
-                                  <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;"><a href="#" style="color:#80C457;text-decoration:none;font-weight:bold;" target="_blank" title="CiviCRM helps keep the “City Beautiful” Movement”going strong">Read More</a></td>
-                                </tr>
-                                <!-- /button --><!-- end of content -->
-                              </tbody>
-                            </table>
-                            <!-- end of right column --></td>
-                          </tr>
-                        </tbody>
-                      </table>
-                      </td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- /story one -->
-    <!-- story two -->
-
-    <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                  <tbody><!-- Spacing -->
-                    <tr>
-                      <td bgcolor="#076187" height="0" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing --><!-- Spacing -->
-                    <tr>
-                      <td class="desktop-spacer" height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td>
-                      <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="660">
-                        <tbody>
-                          <tr>
-                            <td><!-- Start of left column -->
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="330">
-                              <tbody><!-- image -->
-                                <tr>
-                                  <td align="center" class="devicewidth" height="150" valign="top" width="330"><a href="#"><img alt="" border="0" class="col2img" src="https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png" style="display:block; border:none; outline:none; text-decoration:none; display:block;" width="330" /></a></td>
-                                </tr>
-                                <!-- /image -->
-                              </tbody>
-                            </table>
-                            <!-- end of left column --><!-- spacing for mobile devices-->
-
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="mobilespacing">
-                              <tbody>
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                              </tbody>
-                            </table>
-                            <!-- end of for mobile devices--><!-- start of right column -->
-
-                            <table align="right" border="0" cellpadding="0" cellspacing="0" class="devicewidthmob" width="310">
-                              <tbody>
-                                <tr>
-                                  <td class="padding-top-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;"><a href="#" style="color:#076187; text-decoration:none; " target="_blank">Heading Here</a><a href="#" style="color:#076187; text-decoration:none;" target="_blank" title="How CiviCRM will take Tribodar Eco Learning Center to another level"></a></td>
-                                </tr>
-                                <!-- end of title --><!-- Spacing -->
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                                <!-- /Spacing --><!-- content -->
-                                <tr>
-                                  <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;"><span class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
-                                                                tempor incididunt ut labore et dolore magna </span></td>
-                                </tr>
-                                <tr>
-                                  <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;"><a href="#" style="color:#80C457;text-decoration:none;font-weight:bold;" target="_blank" title="How CiviCRM will take Tribodar Eco Learning Center to another level">Read More</a></td>
-                                </tr>
-                                <!-- /button --><!-- end of content -->
-                              </tbody>
-                            </table>
-                            <!-- end of right column --></td>
-                          </tr>
-                        </tbody>
-                      </table>
-                      </td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- /story two --><!-- story three -->
-
-    <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                  <tbody><!-- Spacing -->
-                    <tr>
-                      <td bgcolor="#076187" height="0" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing --><!-- Spacing -->
-                    <tr>
-                      <td height="20" class="desktop-spacer" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td>
-                      <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="660">
-                        <tbody>
-                          <tr>
-                            <td><!-- Start of left column -->
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="330">
-                              <tbody><!-- image -->
-                                <tr>
-                                  <td align="center" class="devicewidth" height="150" valign="top" width="330"><a href="#"><img alt="" border="0" class="col2img" src="https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png" style="display:block; border:none; outline:none; text-decoration:none; display:block;" width="330" /></a></td>
-                                </tr>
-                                <!-- /image -->
-                              </tbody>
-                            </table>
-                            <!-- end of left column --><!-- spacing for mobile devices-->
-
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="mobilespacing">
-                              <tbody>
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                              </tbody>
-                            </table>
-                            <!-- end of for mobile devices--><!-- start of right column -->
-
-                            <table align="right" border="0" cellpadding="0" cellspacing="0" class="devicewidthmob" width="310">
-                              <tbody>
-                                <tr>
-                                  <td class="padding-top-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 24px;"><a href="#" style="color:#076187; text-decoration:none; " target="_blank">Heading Here</a><a href="#" style="color:#076187; text-decoration:none;" target="_blank" title="CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River"></a></td>
-                                </tr>
-                                <!-- end of title --><!-- Spacing -->
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                                <!-- /Spacing --><!-- content -->
-                                <tr>
-                                  <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;"><span class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
-                                                                tempor incididunt ut labore et dolore magna </span></td>
-                                </tr>
-                                <tr>
-                                  <td style="font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;"><a href="#" style="color:#80C457;text-decoration:none;font-weight:bold;" target="_blank" title="CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River">Read More</a></td>
-                                </tr>
-                                <!-- /button --><!-- end of content -->
-                              </tbody>
-                            </table>
-                            <!-- end of right column --></td>
-                          </tr>
-                        </tbody>
-                      </table>
-                      </td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- /story three -->
-
-
-
-
-
-    <!-- story four -->
-    <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="left-image" width="100%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                  <tbody>
-                                <!-- Spacing -->
-                    <tr>
-                      <td bgcolor="#076187" height="0" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                                <!-- Spacing -->
-                    <tr>
-                      <td class="desktop-spacer" height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td>
-                      <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="660">
-                        <tbody>
-                          <tr>
-                            <td><!-- Start of left column -->
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="330">
-                              <tbody><!-- image -->
-                                <tr>
-                                  <td align="center" class="devicewidth" height="150" valign="top" width="330"><a href="#"><img alt="" border="0" class="col2img" src="https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png" style="display:block; border:none; outline:none; text-decoration:none; display:block;" width="330" /></a></td>
-                                </tr>
-                                <!-- /image -->
-                              </tbody>
-                            </table>
-                            <!-- end of left column --><!-- spacing for mobile devices-->
-
-                            <table align="left" border="0" cellpadding="0" cellspacing="0" class="mobilespacing">
-                              <tbody>
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                              </tbody>
-                            </table>
-                            <!-- end of for mobile devices--><!-- start of right column -->
-
-                            <table align="right" border="0" cellpadding="0" cellspacing="0" class="devicewidthmob" width="310">
-                              <tbody>
-                                <tr>
-                                  <td class="padding-top-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 18px;text-align:left; line-height: 24px;"><a href="#" style="color:#076187; text-decoration:none; " target="_blank">Heading Here</a><a href="#" style="color:#076187; text-decoration:none;" target="_blank" title="Google Summer of Code"></a></td>
-                                </tr>
-                                <!-- end of title --><!-- Spacing -->
-                                <tr>
-                                  <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                                </tr>
-                                <!-- /Spacing --><!-- content -->
-                                <tr>
-                                  <td class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;"><span class="padding-right15" style="font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
-                                                                tempor incididunt ut labore et dolore magna </span></td>
-                                </tr>
-                                <tr>
-                                  <td style="font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;"><a href="#" style="color:#80C457;text-decoration:none;font-weight:bold;" target="_blank" title="Google Summer of Code">Read More</a></td>
-                                </tr>
-                                <!-- /button --><!-- end of content -->
-                              </tbody>
-                            </table>
-                            <!-- end of right column --></td>
-                          </tr>
-                        </tbody>
-                      </table>
-                      </td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                       <td height="15" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;" width="100%">&nbsp;</td>
-                    </tr>
-                    <!-- /Spacing -->
-                    <tr>
-                      <td style="padding: 15px;">
-                      <p style="font-family: Helvetica, arial, sans-serif; font-size: 16px; color:#076187; text-align:left; line-height: 26px; padding-bottom:10px;">Remember to link the facebook and twitter links below to your pages!</p>
-                      </td>
-                    </tr>
-                    <!-- Spacing -->
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- /story four -->
-
-    <!-- footer -->
-
-    <!-- End of footer --><!-- Start of postfooter -->
-    <table bgcolor="#d8d8d8" border="0" cellpadding="0" cellspacing="0" id="backgroundTable" st-sortable="footer" width="100%">
-      <tbody>
-        <tr>
-          <td>
-          <table align="center" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-            <tbody>
-              <tr>
-                <td width="100%">
-                  <table align="center" bgcolor="#89c66b" border="0" cellpadding="0" cellspacing="0" class="devicewidth" width="700">
-                    <tbody><!-- Spacing -->
-                      <tr>
-                        <td height="10" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                      </tr>
-                      <!-- Spacing -->
-                      <tr>
-                        <td><!-- logo -->
-                        <table align="left" border="0" cellpadding="0" cellspacing="0" width="250">
-                          <tbody>
-                            <tr>
-                               <td width="20">&nbsp;</td>
-                              <td align="left" height="40" width="250"><span style="font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;"><a href="{action.unsubscribeUrl}" style="color: #f0f0f0;">Unsubscribe | </a><a href="{action.subscribeUrl}" style="color: #f0f0f0;">Subscribe |</a> <a href="{action.optOutUrl}" style="color: #f0f0f0;">Opt out</a></span></td>
-                            </tr>
-                            <tr>
-                              <td width="20">&nbsp;</td>
-                              <td align="left" height="40" width="250"><span style="font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;">{domain.address}</span></td>
-                            </tr>
-                          </tbody>
-                        </table>
-                        <!-- end of logo --><!-- start of social icons -->
-                        <table align="right" border="0" cellpadding="0" cellspacing="0" height="40" vaalign="middle" width="60">
-                          <tbody>
-                            <tr>
-                              <td align="left" height="22" width="22">
-                                <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" height="22" src="https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png" style="display:block; border:none; outline:none; text-decoration:none;" width="22" /> </a></div>                              </td>
-                              <td align="left" style="font-size:1px; line-height:1px;" width="10">&nbsp;</td>
-                              <td align="right" height="22" width="22">
-                              <div class="imgpop"><a href="#" target="_blank"><img alt="" border="0" height="22" src="https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png" style="display:block; border:none; outline:none; text-decoration:none;" width="22" /> </a></div>
-                              </td>
-                              <td align="left" style="font-size:1px; line-height:1px;" width="20">&nbsp;</td>
-                            </tr>
-                          </tbody>
-                        </table>
-                      <!-- end of social icons --></td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td height="10" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                    <tr>
-                      <td bgcolor="#80C457" height="10" width="100%">&nbsp;</td>
-                    </tr>
-                    <!-- Spacing -->
-                  </tbody>
-                </table>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <!-- End of footer -->
-  </body>
-</html>
diff --git a/civicrm/CRM/Upgrade/Form.php b/civicrm/CRM/Upgrade/Form.php
index b8da51a09c..79305b2fce 100644
--- a/civicrm/CRM/Upgrade/Form.php
+++ b/civicrm/CRM/Upgrade/Form.php
@@ -25,7 +25,7 @@ class CRM_Upgrade_Form extends CRM_Core_Form {
   /**
    * Minimum previous CiviCRM version we can directly upgrade from
    */
-  const MINIMUM_UPGRADABLE_VERSION = '4.4.7';
+  const MINIMUM_UPGRADABLE_VERSION = '4.5.9';
 
   /**
    * @var \CRM_Core_Config
@@ -187,7 +187,7 @@ class CRM_Upgrade_Form extends CRM_Core_Form {
   }
 
   public function preProcess() {
-    CRM_Utils_System::setTitle($this->getTitle());
+    $this->setTitle($this->getTitle());
     if (!$this->verifyPreDBState($errorMessage)) {
       if (!isset($errorMessage)) {
         $errorMessage = 'pre-condition failed for current upgrade step';
diff --git a/civicrm/CRM/Upgrade/Headless.php b/civicrm/CRM/Upgrade/Headless.php
index 0e1e869b0c..6bd63d32dd 100644
--- a/civicrm/CRM/Upgrade/Headless.php
+++ b/civicrm/CRM/Upgrade/Headless.php
@@ -25,10 +25,7 @@ class CRM_Upgrade_Headless {
    *   - message: string, HTML-ish blob
    */
   public function run($enablePrint = TRUE) {
-    // lets get around the time limit issue if possible for upgrades
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     $upgrade = new CRM_Upgrade_Form();
     list($currentVer, $latestVer) = $upgrade->getUpgradeVersions();
diff --git a/civicrm/CRM/Upgrade/Incremental/Base.php b/civicrm/CRM/Upgrade/Incremental/Base.php
index 8e2e8641f7..883dc50e16 100644
--- a/civicrm/CRM/Upgrade/Incremental/Base.php
+++ b/civicrm/CRM/Upgrade/Incremental/Base.php
@@ -264,12 +264,17 @@ class CRM_Upgrade_Incremental_Base {
    */
   public static function updateMessageToken($ctx, string $workflowName, string $old, string $new, $version):bool {
     $messageObj = new CRM_Upgrade_Incremental_MessageTemplates($version);
-    $messageObj->replaceTokenInTemplate($workflowName, $old, $new);
+    if (!empty($workflowName)) {
+      $messageObj->replaceTokenInTemplate($workflowName, $old, $new);
+    }
+    else {
+      $messageObj->replaceTokenInMessageTemplates($old, $new);
+    }
     return TRUE;
   }
 
   /**
-   * Updated a message token within a template.
+   * Updated a message token within a scheduled reminder.
    *
    * @param CRM_Queue_TaskContext $ctx
    * @param string $old
@@ -284,6 +289,38 @@ class CRM_Upgrade_Incremental_Base {
     return TRUE;
   }
 
+  /**
+   * Updated a message token within a label.
+   *
+   * @param CRM_Queue_TaskContext $ctx
+   * @param string $old
+   * @param string $new
+   * @param $version
+   *
+   * @return bool
+   */
+  public static function updatePrintLabelToken($ctx, string $old, string $new, $version):bool {
+    $messageObj = new CRM_Upgrade_Incremental_MessageTemplates($version);
+    $messageObj->replaceTokenInPrintLabel($old, $new);
+    return TRUE;
+  }
+
+  /**
+   * Updated a message token within greeting options.
+   *
+   * @param CRM_Queue_TaskContext $ctx
+   * @param string $old
+   * @param string $new
+   * @param $version
+   *
+   * @return bool
+   */
+  public static function updateGreetingOptions($ctx, string $old, string $new, $version):bool {
+    $messageObj = new CRM_Upgrade_Incremental_MessageTemplates($version);
+    $messageObj->replaceTokenInGreetingOptions($old, $new);
+    return TRUE;
+  }
+
   /**
    * Re-save any valid values from contribute settings into the normal setting
    * format.
diff --git a/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php b/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php
index f2a8b8c618..1b10beb756 100644
--- a/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php
+++ b/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php
@@ -249,6 +249,16 @@ class CRM_Upgrade_Incremental_MessageTemplates {
           ['name' => 'pledge_reminder', 'type' => 'text'],
         ],
       ],
+      [
+        'version' => '5.43.alpha1',
+        'upgrade_descriptor' => ts('Missed templates from earlier versions'),
+        'templates' => [
+          ['name' => 'contribution_online_receipt', 'type' => 'text'],
+          ['name' => 'case_activity', 'type' => 'html'],
+          ['name' => 'case_activity', 'type' => 'text'],
+          ['name' => 'case_activity', 'type' => 'subject'],
+        ],
+      ],
     ];
   }
 
@@ -289,6 +299,24 @@ class CRM_Upgrade_Incremental_MessageTemplates {
     ");
   }
 
+  /**
+   * Replace a token with the new preferred option in non-workflow templates.
+   *
+   * @param string $old
+   * @param string $new
+   */
+  public function replaceTokenInMessageTemplates(string $old, string $new): void {
+    $oldToken = '{' . $old . '}';
+    $newToken = '{' . $new . '}';
+    CRM_Core_DAO::executeQuery("UPDATE civicrm_msg_template
+      SET
+        msg_text = REPLACE(msg_text, '$oldToken', '$newToken'),
+        msg_subject = REPLACE(msg_subject, '$oldToken', '$newToken'),
+        msg_html = REPLACE(msg_html, '$oldToken', '$newToken')
+      WHERE workflow_name IS NULL
+    ");
+  }
+
   /**
    * Replace a token with the new preferred option.
    *
@@ -306,6 +334,43 @@ class CRM_Upgrade_Incremental_MessageTemplates {
     ");
   }
 
+  /**
+   * Replace a token with the new preferred option in a print label.
+   *
+   * @param string $old
+   * @param string $new
+   */
+  public function replaceTokenInPrintLabel(string $old, string $new): void {
+    $oldToken = '{' . $old . '}';
+    $newToken = '{' . $new . '}';
+    CRM_Core_DAO::executeQuery("UPDATE civicrm_print_label
+      SET
+        data = REPLACE(data, '$oldToken', '$newToken')
+    ");
+  }
+
+  /**
+   * Replace a token with the new preferred option in a print label.
+   *
+   * @param string $old
+   * @param string $new
+   *
+   * @throws \API_Exception
+   */
+  public function replaceTokenInGreetingOptions(string $old, string $new): void {
+    $oldToken = '{' . $old . '}';
+    $newToken = '{' . $new . '}';
+    $options = (array) Civi\Api4\OptionValue::get(FALSE)
+      ->addWhere('option_group_id:name', 'IN', ['email_greeting', 'postal_greeting', 'addressee'])
+      ->setSelect(['id'])->execute()->indexBy('id');
+    CRM_Core_DAO::executeQuery("UPDATE civicrm_option_value
+      SET
+        label = REPLACE(label, '$oldToken', '$newToken'),
+        name = REPLACE(name, '$oldToken', '$newToken')
+      WHERE id IN (" . implode(',', array_keys($options)) . ')'
+    );
+  }
+
   /**
    * Get the upgrade messages.
    */
diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveFortyThree.php b/civicrm/CRM/Upgrade/Incremental/php/FiveFortyThree.php
new file mode 100644
index 0000000000..db117ecd73
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/php/FiveFortyThree.php
@@ -0,0 +1,210 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * Upgrade logic for FiveFortyThree
+ */
+class CRM_Upgrade_Incremental_php_FiveFortyThree extends CRM_Upgrade_Incremental_Base {
+
+  /**
+   * Compute any messages which should be displayed beforeupgrade.
+   *
+   * Note: This function is called iteratively for each incremental upgrade step.
+   * There must be a concrete step (eg 'X.Y.Z.mysql.tpl' or 'upgrade_X_Y_Z()').
+   *
+   * @param string $preUpgradeMessage
+   * @param string $rev
+   *   a version number, e.g. '4.4.alpha1', '4.4.beta3', '4.4.0'.
+   * @param null $currentVer
+   */
+  public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL): void {
+    // Example: Generate a pre-upgrade message.
+    if ($rev === '5.43.alpha1' && !empty(CRM_Core_Component::getEnabledComponents()['CiviCase'])) {
+      $preUpgradeMessage .= '<p>' . ts('Minor changes have been made to how the tokens to render case.is_deleted, case.created_date and case.modified_date. See https://docs.civicrm.org/sysadmin/en/latest/upgrade/version-specific/ for more') . '</p>';
+    }
+  }
+
+  /**
+   * Compute any messages which should be displayed after upgrade.
+   *
+   * Note: This function is called iteratively for each incremental upgrade step.
+   * There must be a concrete step (eg 'X.Y.Z.mysql.tpl' or 'upgrade_X_Y_Z()').
+   *
+   * @param string $postUpgradeMessage
+   *   alterable.
+   * @param string $rev
+   *   an intermediate version; note that setPostUpgradeMessage is called repeatedly with different $revs.
+   */
+  public function setPostUpgradeMessage(&$postUpgradeMessage, $rev): void {
+    // Example: Generate a post-upgrade message.
+    // if ($rev == '5.12.34') {
+    //   $postUpgradeMessage .= '<br /><br />' . ts("By default, CiviCRM now disables the ability to import directly from SQL. To use this feature, you must explicitly grant permission 'import SQL datasource'.");
+    // }
+  }
+
+  /**
+   * Upgrade function.
+   *
+   * @param string $rev
+   */
+  public function upgrade_5_43_alpha1(string $rev): void {
+    $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
+    $this->addTask('Fix DB Collation if needed on the relationship cache table', 'fixRelationshipCacheTableCollation');
+    $this->addTask('Make mapping field foreign key cascade delete', 'alterMappingFK');
+    $this->addTask('Replace legacy displayName smarty token in Online contribution workflow template',
+      'updateMessageToken', 'contribution_online_receipt', '$displayName', 'contact.display_name', $rev
+    );
+    $this->addTask('Replace legacy first_name smarty token in Online contribution workflow template',
+      'updateMessageToken', 'contribution_online_receipt', '$first_name', 'contact.first_name', $rev
+    );
+    $this->addTask('Replace legacy last_name smarty token in Online contribution workflow template',
+      'updateMessageToken', 'contribution_online_receipt', '$last_name', 'contact.last_name', $rev
+    );
+    $this->addTask('Replace membership status token in action schedule',
+      'updateActionScheduleToken', 'membership.status', 'membership.status_id:label', $rev
+    );
+    $this->addTask('Replace membership type token in action schedule',
+      'updateActionScheduleToken', 'membership.type', 'membership.membership_type_id:label', $rev
+    );
+    $this->addTask('Replace event type token in action schedule',
+      'updateActionScheduleToken', 'event.event_type_id', 'event.event_type_id:label', $rev
+    );
+    $this->addTask('Replace event balance in action schedule',
+      'updateActionScheduleToken', 'event.balance', 'participant.balance', $rev
+    );
+    $this->addTask('Replace event fee amount in action schedule',
+      'updateActionScheduleToken', 'event.fee_amount', 'participant.fee_amount', $rev
+    );
+    $this->addTask('Replace contact.preferred_communication_method in action schedule',
+      'updateActionScheduleToken', 'contact.preferred_communication_method', 'contact.preferred_communication_method:label', $rev
+    );
+    $this->addTask('Replace event event_id in action schedule',
+      'updateActionScheduleToken', 'event.event_id', 'event.id', $rev
+    );
+    $this->addTask('Replace duplicate event title token in event badges',
+      'updatePrintLabelToken', 'participant.event_title', 'event.title', $rev
+    );
+    $this->addTask('Replace duplicate event start date token in event badges',
+      'updatePrintLabelToken', 'participant.event_start_date', 'event.start_date', $rev
+    );
+    $this->addTask('Replace duplicate event end date token in event badges',
+      'updatePrintLabelToken', 'participant.event_end_date', 'event.end_date', $rev
+    );
+    $this->addTask('Update participant status id token in event badges',
+      'updatePrintLabelToken', 'participant.participant_status_id', 'participant.status_id', $rev
+    );
+    $this->addTask('Update participant role id token in event badges',
+      'updatePrintLabelToken', 'participant.participant_role_id', 'participant.role_id', $rev
+    );
+    $this->addTask('Update participant role label token in event badges',
+      'updatePrintLabelToken', 'participant.participant_role', 'participant.role_id:label', $rev
+    );
+    $this->addTask('Update participant register date token in event badges',
+      'updatePrintLabelToken', 'participant.participant_register_date', 'participant.register_date', $rev
+    );
+    $this->addTask('Update participant source token in event badges',
+      'updatePrintLabelToken', 'participant.participant_source', 'participant.source', $rev
+    );
+    $this->addTask('Update participant fee level token in event badges',
+      'updatePrintLabelToken', 'participant.participant_fee_level', 'participant.fee_level', $rev
+    );
+    $this->addTask('Update participant fee amount token in event badges',
+      'updatePrintLabelToken', 'participant.participant_fee_amount', 'participant.fee_amount', $rev
+    );
+    $this->addTask('Update participant registered by id token in event badges',
+      'updatePrintLabelToken', 'participant.participant_registered_by_id', 'participant.registered_by_id', $rev
+    );
+    $this->addTask('Update preferred_communication_method token in saved message templates',
+      'updateMessageToken', '', 'contact.preferred_communication_method', 'contact.preferred_communication_method:label', $rev
+    );
+    $this->addTask('Update contribution status token in saved message templates',
+      'updateMessageToken', '', 'contribution.contribution_status', 'contribution.contribution_status_id:label', $rev
+    );
+    $this->addTask('Update campaign token in saved message templates',
+      'updateMessageToken', '', 'contribution.campaign', 'contribution.campaign_id:label', $rev);
+    $this->addTask('Update start date token in event badges',
+      'updatePrintLabelToken', 'event.start_date', 'event.start_date|crmDate:"%B %E%f', $rev
+    );
+    $this->addTask('Update end date token in event badges',
+      'updatePrintLabelToken', 'event.end_date', 'event.end_date|crmDate:"%B %E%f', $rev
+    );
+    $this->addTask('Update event id token in event badges',
+      'updatePrintLabelToken', 'event.event_id', 'participant.event_id', $rev
+    );
+    //  prefix_id was a short lived variant around civicrm 4.4 - it's unlikely any
+    // cases exist, but they will resolve as an integer if not updated
+    $this->addTask('Update legacy prefix id token in greetings (use {contact.prefix_id:label})',
+      'updateGreetingOptions', 'contact.prefix_id', 'contact.prefix_id:label', $rev
+    );
+    //  suffix_id was a short lived variant around civicrm 4.4 - it's unlikely any
+    //  cases exist, but they will resolve as an integer if not updated
+    $this->addTask('Update legacy suffix id token in greetings  (use {contact.suffix_id:label})',
+      'updateGreetingOptions', 'contact.suffix_id', 'contact.suffix_id:label', $rev
+    );
+    //  individual_prefix still works but is now deprecated
+    $this->addTask('Update individual_prefix token in greetings (use {contact.prefix_id:label})',
+      'updateGreetingOptions', 'contact.individual_prefix', 'contact.prefix_id:label', $rev
+    );
+    //  individual_prefix still works but is now deprecated
+    $this->addTask('Update individual_suffix token in greetings (use {contact.suffix_id:label})',
+      'updateGreetingOptions', 'contact.individual_suffix', 'contact.suffix_id:label', $rev
+    );
+
+    $this->addTask('Set note_date field to NOT NULL', 'setNoteDateFieldNotNull');
+  }
+
+  /**
+   * @param \CRM_Queue_TaskContext $ctx
+   *
+   * @return bool
+   */
+  public static function alterMappingFK(CRM_Queue_TaskContext $ctx): bool {
+    CRM_Core_BAO_SchemaHandler::safeRemoveFK('civicrm_mapping_field', 'FK_civicrm_mapping_field_mapping_id');
+    CRM_Core_DAO::executeQuery('
+        ALTER TABLE civicrm_mapping_field
+        ADD CONSTRAINT `FK_civicrm_mapping_field_mapping_id`
+        FOREIGN KEY (`mapping_id`)
+        REFERENCES `civicrm_mapping`(`id`) ON DELETE CASCADE
+      ', [], TRUE, NULL, FALSE, FALSE);
+    return TRUE;
+  }
+
+  public static function fixRelationshipCacheTableCollation():bool {
+    $contactTableCollation = CRM_Core_BAO_SchemaHandler::getInUseCollation();
+    $dao = CRM_Core_DAO::executeQuery('SHOW TABLE STATUS LIKE \'civicrm_relationship_cache\'');
+    $dao->fetch();
+    $relationshipCacheCollation = $dao->Collation;
+    $characterSet = 'utf8';
+    if (stripos($contactTableCollation, 'utf8mb4') !== FALSE) {
+      $characterSet = 'utf8mb4';
+    }
+    if ($contactTableCollation !== $relationshipCacheCollation) {
+      CRM_Core_BAO_SchemaHandler::migrateUtf8mb4(($characterSet === 'utf8mb4' ? FALSE : TRUE), ['%civicrm_relationship_cache%']);
+    }
+    return TRUE;
+  }
+
+  /**
+   * Ensure note_date is NOT NULL
+   *
+   * Since note_date is exposed in the UI, we want to ensure an empty value
+   * results in CURRENT_TIME, not a NULL date.
+   */
+  public static function setNoteDateFieldNotNull(): bool {
+    $i18nRewrite = FALSE;
+    $query = "UPDATE civicrm_note SET note_date = created_date WHERE note_date IS NULL";
+    CRM_Core_DAO::executeQuery($query, [], TRUE, NULL, FALSE, $i18nRewrite);
+    $query = "ALTER TABLE civicrm_note CHANGE COLUMN `note_date` `note_date` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'Date attached to the note'";
+    CRM_Core_DAO::executeQuery($query, [], TRUE, NULL, FALSE, $i18nRewrite);
+    return TRUE;
+  }
+
+}
diff --git a/civicrm/CRM/Upgrade/Incremental/php/FourFive.php b/civicrm/CRM/Upgrade/Incremental/php/FourFive.php
deleted file mode 100644
index 0f27a0be48..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/php/FourFive.php
+++ /dev/null
@@ -1,358 +0,0 @@
-<?php
-/*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
- */
-
-/**
- * Upgrade logic for 4.5
- */
-class CRM_Upgrade_Incremental_php_FourFive extends CRM_Upgrade_Incremental_Base {
-
-  /**
-   * Compute any messages which should be displayed after upgrade.
-   *
-   * @param string $postUpgradeMessage
-   *   alterable.
-   * @param string $rev
-   *   an intermediate version; note that setPostUpgradeMessage is called repeatedly with different $revs.
-   */
-  public function setPostUpgradeMessage(&$postUpgradeMessage, $rev) {
-    if ($rev == '4.5.alpha1') {
-      $postUpgradeMessage .= '<br /><br />' . ts('Default versions of the following System Workflow Message Templates have been modified to handle new functionality: <ul><li>Contributions - Receipt (off-line)</li><li>Contributions - Receipt (on-line)</li><li>Contributions - Recurring Start and End Notification</li><li>Contributions - Recurring Updates</li><li>Memberships - Receipt (on-line)</li><li>Memberships - Signup and Renewal Receipts (off-line)</li><li>Pledges - Acknowledgement</li></ul> If you have modified these templates, please review the new default versions and implement updates as needed to your copies (Administer > Communications > Message Templates > System Workflow Messages). (<a href="%1">learn more...</a>)', [1 => 'http://wiki.civicrm.org/confluence/display/CRMDOC/Updating+System+Workflow+Message+Templates+after+Upgrades+-+method+1+-+kdiff']);
-      $postUpgradeMessage .= '<br /><br />' . ts('This release allows you to view and edit multiple-record custom field sets in a table format which will be more usable in some cases. You can try out the format by navigating to Administer > Custom Data & Screens > Custom Fields. Click Settings for a custom field set and change Display Style to "Tab with Tables".');
-      $postUpgradeMessage .= '<br /><br />' . ts('This release changes the way that anonymous event registrations match participants with existing contacts.  By default, all event participants will be matched with existing individuals using the Unsupervised rule, even if multiple registrations with the same email address are allowed.  However, you can now select a different matching rule to use for each event.  Please review your events to make sure you choose the appropriate matching rule and collect sufficient information for it to match contacts.');
-    }
-    if ($rev == '4.5.beta2') {
-      $postUpgradeMessage .= '<br /><br />' . ts('If you use CiviMail for newsletters or other communications, check out the new sample CiviMail templates which use responsive design to optimize display on mobile devices (Administer > Communications > Message Templates ).');
-    }
-    if ($rev == '4.5.1') {
-      $postUpgradeMessage .= '<br /><br />' . ts('WARNING: If you use CiviCase with v4.5.alpha*, v4.5.beta*, or v4.5.0, it is possible that previous upgrades corrupted some CiviCase metadata. If you have not already done so, please identify any custom field sets, smart groups, or reports which refer to CiviCase and ensure that they are properly configured.');
-    }
-  }
-
-  /**
-   * @param $rev
-   *
-   * @return bool
-   */
-  public function upgrade_4_5_alpha1($rev) {
-    // task to process sql
-    $this->addTask('Migrate honoree information to module_data', 'migrateHonoreeInfo');
-    $this->addTask(ts('Upgrade DB to %1: SQL', [1 => '4.5.alpha1']), 'runSql', $rev);
-    $this->addTask('Set default for Individual name fields configuration', 'addNameFieldOptions');
-
-    // CRM-14522 - The below schema checking is done as foreign key name
-    // for pdf_format_id column varies for different databases
-    // if DB is been into upgrade for 3.4.2 version, it would have pdf_format_id name for FK
-    // else FK_civicrm_msg_template_pdf_format_id
-    $config = CRM_Core_Config::singleton();
-    $dsn = CRM_Utils_SQL::autoSwitchDSN($config->dsn);
-    $dbUf = DB::parseDSN($dsn);
-    $query = "
-SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
-WHERE TABLE_NAME = 'civicrm_msg_template'
-AND CONSTRAINT_TYPE = 'FOREIGN KEY'
-AND TABLE_SCHEMA = %1
-";
-    $params = [1 => [$dbUf['database'], 'String']];
-    $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, NULL, FALSE, FALSE);
-    if ($dao->fetch()) {
-      if ($dao->CONSTRAINT_NAME == 'FK_civicrm_msg_template_pdf_format_id' ||
-        $dao->CONSTRAINT_NAME == 'pdf_format_id'
-      ) {
-        $sqlDropFK = "ALTER TABLE `civicrm_msg_template`
-DROP FOREIGN KEY `{$dao->CONSTRAINT_NAME}`,
-DROP KEY `{$dao->CONSTRAINT_NAME}`";
-        CRM_Core_DAO::executeQuery($sqlDropFK, [], TRUE, NULL, FALSE, FALSE);
-      }
-    }
-
-    return TRUE;
-  }
-
-  /**
-   * @param $rev
-   *
-   * @return bool
-   */
-  public function upgrade_4_5_beta9($rev) {
-    $this->addTask(ts('Upgrade DB to %1: SQL', [1 => '4.5.beta9']), 'runSql', $rev);
-
-    $entityTable = [
-      'Participant' => 'civicrm_participant_payment',
-      'Contribution' => 'civicrm_contribution',
-      'Membership' => 'civicrm_membership',
-    ];
-
-    foreach ($entityTable as $label => $tableName) {
-      list($minId, $maxId) = CRM_Core_DAO::executeQuery("SELECT coalesce(min(id),0), coalesce(max(id),0)
-        FROM {$tableName}")->getDatabaseResult()->fetchRow();
-      for ($startId = $minId; $startId <= $maxId; $startId += self::BATCH_SIZE) {
-        $endId = $startId + self::BATCH_SIZE - 1;
-        $title = ts("Upgrade DB to 4.5.beta9: Fix line items for {$label} (%1 => %2)", [
-          1 => $startId,
-          2 => $endId,
-        ]);
-        $this->addTask($title, 'task_4_5_0_fixLineItem', $startId, $endId, $label);
-      }
-    }
-    return TRUE;
-  }
-
-  /**
-   * (Queue Task Callback)
-   *
-   * update the line items
-   *
-   *
-   * @param CRM_Queue_TaskContext $ctx
-   * @param int $startId
-   *   the first/lowest entity ID to convert.
-   * @param int $endId
-   *   the last/highest entity ID to convert.
-   * @param string $entityTable
-   *
-   * @return bool
-   */
-  public static function task_4_5_0_fixLineItem(CRM_Queue_TaskContext $ctx, $startId, $endId, $entityTable) {
-
-    $sqlParams = [
-      1 => [$startId, 'Integer'],
-      2 => [$endId, 'Integer'],
-    ];
-    switch ($entityTable) {
-      case 'Contribution':
-        // update all the line item entity_table and entity_id with contribution due to bug CRM-15055
-        CRM_Core_DAO::executeQuery("UPDATE civicrm_line_item li
-          INNER JOIN civicrm_contribution cc ON cc.id = li.contribution_id
-          SET entity_id = li.contribution_id, entity_table = 'civicrm_contribution'
-          WHERE li.contribution_id IS NOT NULL AND li.entity_table <> 'civicrm_participant' AND (cc.id BETWEEN %1 AND %2)", $sqlParams);
-
-        // update the civicrm_line_item.contribution_id
-        CRM_Core_DAO::executeQuery("UPDATE civicrm_line_item li
-          INNER JOIN civicrm_contribution cc ON cc.id = li.entity_id
-          SET contribution_id = entity_id
-          WHERE li.contribution_id IS NULL AND li.entity_table = 'civicrm_contribution' AND (cc.id BETWEEN %1 AND %2)", $sqlParams);
-        break;
-
-      case 'Participant':
-        // update the civicrm_line_item.contribution_id
-        CRM_Core_DAO::executeQuery("UPDATE civicrm_line_item li
-          INNER JOIN civicrm_participant_payment pp ON pp.participant_id = li.entity_id
-          SET li.contribution_id = pp.contribution_id
-          WHERE li.entity_table = 'civicrm_participant' AND li.contribution_id IS NULL AND (pp.id BETWEEN %1 AND %2)", $sqlParams);
-        break;
-
-      case 'Membership':
-        $upgrade = new CRM_Upgrade_Form();
-        // update the line item of  membership
-        CRM_Core_DAO::executeQuery("UPDATE civicrm_line_item li
-          INNER JOIN civicrm_membership_payment mp ON mp.contribution_id = li.contribution_id
-          INNER JOIN civicrm_membership cm ON mp.membership_id = cm.id
-          INNER JOIN civicrm_price_field_value pv ON pv.id = li.price_field_value_id
-          SET li.entity_table = 'civicrm_membership', li.entity_id = mp.membership_id
-          WHERE li.entity_table = 'civicrm_contribution'
-          AND pv.membership_type_id IS NOT NULL AND cm.membership_type_id = pv.membership_type_id AND (cm.id BETWEEN %1 AND %2)", $sqlParams);
-
-        CRM_Core_DAO::executeQuery("UPDATE civicrm_line_item li
-          INNER JOIN civicrm_membership_payment mp ON mp.contribution_id = li.contribution_id
-          INNER JOIN civicrm_price_field_value pv ON pv.id = li.price_field_value_id
-          SET li.entity_table = 'civicrm_membership', li.entity_id = mp.membership_id
-          WHERE li.entity_table = 'civicrm_contribution'
-          AND pv.membership_type_id IS NOT NULL AND (mp.membership_id BETWEEN %1 AND %2)", $sqlParams);
-
-        CRM_Core_DAO::executeQuery("INSERT INTO civicrm_line_item (entity_table, entity_id, price_field_id, label,
-          qty, unit_price, line_total, price_field_value_id, financial_type_id)
-          SELECT 'civicrm_membership', cm.id, cpf.id price_field_id, cpfv.label, 1 as qty, cpfv.amount, cpfv.amount line_total,
-          cpfv.id price_field_value_id, cpfv.financial_type_id FROM civicrm_membership cm
-          LEFT JOIN civicrm_membership_payment cmp ON cmp.membership_id = cm.id
-          INNER JOIN civicrm_price_field_value cpfv ON cpfv.membership_type_id = cm.membership_type_id
-          INNER JOIN civicrm_price_field cpf ON cpf.id = cpfv.price_field_id
-          INNER JOIN civicrm_price_set cps ON cps.id = cpf.price_set_id
-          WHERE cmp.contribution_id IS NULL AND cps.name = 'default_membership_type_amount' AND (cm.id BETWEEN %1 AND %2)", $sqlParams);
-        break;
-    }
-    return TRUE;
-  }
-
-  /**
-   * Add defaults for the newly introduced name fields configuration in 'contact_edit_options' setting
-   *
-   * @param CRM_Queue_TaskContext $ctx
-   *
-   * @return bool
-   *   TRUE for success
-   */
-  public static function addNameFieldOptions(CRM_Queue_TaskContext $ctx) {
-    $query = "SELECT `value` FROM `civicrm_setting` WHERE `group_name` = 'CiviCRM Preferences' AND `name` = 'contact_edit_options'";
-    $dao = CRM_Core_DAO::executeQuery($query);
-    $dao->fetch();
-    $oldValue = unserialize($dao->value);
-
-    $newValue = $oldValue . '1214151617';
-
-    $query = "UPDATE `civicrm_setting` SET `value` = %1 WHERE `group_name` = 'CiviCRM Preferences' AND `name` = 'contact_edit_options'";
-    $params = [1 => [serialize($newValue), 'String']];
-    CRM_Core_DAO::executeQuery($query, $params);
-
-    return TRUE;
-  }
-
-  /**
-   * Migrate honoree information to uf_join.module_data as honoree columns (text and title) will be dropped
-   * on DB upgrade
-   *
-   * @param CRM_Queue_TaskContext $ctx
-   *
-   * @return bool
-   *   TRUE for success
-   */
-  public static function migrateHonoreeInfo(CRM_Queue_TaskContext $ctx) {
-    $query = "ALTER TABLE `civicrm_uf_join`
-    ADD COLUMN `module_data` longtext COMMENT 'Json serialized array of data used by the ufjoin.module'";
-    CRM_Core_DAO::executeQuery($query);
-
-    $honorTypes = array_keys(CRM_Core_OptionGroup::values('honor_type'));
-    $ufGroupDAO = new CRM_Core_DAO_UFGroup();
-    $ufGroupDAO->name = 'new_individual';
-    $ufGroupDAO->find(TRUE);
-
-    $query = "SELECT * FROM civicrm_contribution_page";
-    $dao = CRM_Core_DAO::executeQuery($query);
-
-    if ($dao->N) {
-      $domain = new CRM_Core_DAO_Domain();
-      $domain->find(TRUE);
-      while ($dao->fetch()) {
-        $honorParams = ['soft_credit' => ['soft_credit_types' => $honorTypes]];
-        if ($domain->locales) {
-          $locales = explode(CRM_Core_DAO::VALUE_SEPARATOR, $domain->locales);
-          foreach ($locales as $locale) {
-            $honor_block_title = "honor_block_title_{$locale}";
-            $honor_block_text = "honor_block_text_{$locale}";
-            $honorParams['soft_credit'] += [
-              $locale => [
-                'honor_block_title' => $dao->$honor_block_title,
-                'honor_block_text' => $dao->$honor_block_text,
-              ],
-            ];
-          }
-        }
-        else {
-          $honorParams['soft_credit'] += [
-            'default' => [
-              'honor_block_title' => $dao->honor_block_title,
-              'honor_block_text' => $dao->honor_block_text,
-            ],
-          ];
-        }
-        $ufJoinParam = [
-          'module' => 'soft_credit',
-          'entity_table' => 'civicrm_contribution_page',
-          'is_active' => $dao->honor_block_is_active,
-          'entity_id' => $dao->id,
-          'uf_group_id' => $ufGroupDAO->id,
-          'module_data' => json_encode($honorParams),
-        ];
-        CRM_Core_BAO_UFJoin::create($ufJoinParam);
-      }
-    }
-
-    return TRUE;
-  }
-
-  /**
-   * Upgrade function.
-   *
-   * @param string $rev
-   * @return bool
-   */
-  public function upgrade_4_5_9($rev) {
-    // Task to process sql.
-    $this->addTask('Upgrade DB to 4.5.9: Fix saved searches consisting of multi-choice custom field(s)', 'updateSavedSearch');
-
-    return TRUE;
-  }
-
-  /**
-   * Update saved search for multi-select custom fields on DB upgrade
-   *
-   * @param CRM_Queue_TaskContext $ctx
-   *
-   * @return bool TRUE for success
-   */
-  public static function updateSavedSearch(CRM_Queue_TaskContext $ctx) {
-    $sql = "SELECT id, form_values FROM civicrm_saved_search";
-    $dao = CRM_Core_DAO::executeQuery($sql);
-    while ($dao->fetch()) {
-      $copy = $formValues = unserialize($dao->form_values);
-      $update = FALSE;
-      foreach ($copy as $field => $data_value) {
-        if (preg_match('/^custom_/', $field) && is_array($data_value) && !array_key_exists("${field}_operator", $formValues)) {
-          // Now check for CiviCRM_OP_OR as either key or value in the data_value array.
-          // This is the conclusive evidence of an old-style data format.
-          if (array_key_exists('CiviCRM_OP_OR', $data_value) || FALSE !== array_search('CiviCRM_OP_OR', $data_value)) {
-            // We have old style data. Mark this record to be updated.
-            $update = TRUE;
-            $op = 'and';
-            if (!preg_match('/^custom_([0-9]+)/', $field, $matches)) {
-              // fatal error?
-              continue;
-            }
-            $fieldID = $matches[1];
-            if (array_key_exists('CiviCRM_OP_OR', $data_value)) {
-              // This indicates data structure identified by jamie in the form:
-              // value1 => 1, value2 => , value3 => 1.
-              $data_value = array_keys($data_value, 1);
-
-              // If CiviCRM_OP_OR - change OP from default to OR
-              if ($data_value['CiviCRM_OP_OR'] == 1) {
-                $op = 'or';
-              }
-              unset($data_value['CiviCRM_OP_OR']);
-            }
-            else {
-              // The value is here, but it is not set as a key.
-              // This is using the style identified by Monish - the existence of the value
-              // indicates an OR search and values are set in the form of:
-              // 0 => value1, 1 => value1, 3 => value2.
-              $key = array_search('CiviCRM_OP_OR', $data_value);
-              $op = 'or';
-              unset($data_value[$key]);
-            }
-
-            //If only Or operator has been chosen, means we need to select all values and
-            //so to execute OR operation between these values according to new data structure
-            if (count($data_value) == 0 && $op == 'or') {
-              $customOption = CRM_Core_BAO_CustomOption::getCustomOption($fieldID);
-              foreach ($customOption as $option) {
-                $data_value[] = $option['value'] ?? NULL;
-              }
-            }
-
-            $formValues[$field] = $data_value;
-            $formValues["${field}_operator"] = $op;
-          }
-        }
-      }
-
-      if ($update) {
-        $sql = "UPDATE civicrm_saved_search SET form_values = %0 WHERE id = %1";
-        CRM_Core_DAO::executeQuery($sql,
-          [
-            [serialize($formValues), 'String'],
-            [$dao->id, 'Integer'],
-          ]
-        );
-      }
-    }
-    return TRUE;
-  }
-
-}
diff --git a/civicrm/CRM/Upgrade/Incremental/php/Template.php b/civicrm/CRM/Upgrade/Incremental/php/Template.php
index debafbfa8a..94bc6339fe 100644
--- a/civicrm/CRM/Upgrade/Incremental/php/Template.php
+++ b/civicrm/CRM/Upgrade/Incremental/php/Template.php
@@ -30,7 +30,7 @@ class CRM_Upgrade_Incremental_php_<?php echo $camelNumber; ?> extends CRM_Upgrad
    *   a version number, e.g. '4.4.alpha1', '4.4.beta3', '4.4.0'.
    * @param null $currentVer
    */
-  public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL) {
+  public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL): void {
     // Example: Generate a pre-upgrade message.
     // if ($rev == '5.12.34') {
     //   $preUpgradeMessage .= '<p>' . ts('A new permission, "%1", has been added. This permission is now used to control access to the Manage Tags screen.', array(1 => ts('manage tags'))) . '</p>';
@@ -48,7 +48,7 @@ class CRM_Upgrade_Incremental_php_<?php echo $camelNumber; ?> extends CRM_Upgrad
    * @param string $rev
    *   an intermediate version; note that setPostUpgradeMessage is called repeatedly with different $revs.
    */
-  public function setPostUpgradeMessage(&$postUpgradeMessage, $rev) {
+  public function setPostUpgradeMessage(&$postUpgradeMessage, $rev): void {
     // Example: Generate a post-upgrade message.
     // if ($rev == '5.12.34') {
     //   $postUpgradeMessage .= '<br /><br />' . ts("By default, CiviCRM now disables the ability to import directly from SQL. To use this feature, you must explicitly grant permission 'import SQL datasource'.");
@@ -66,7 +66,7 @@ class CRM_Upgrade_Incremental_php_<?php echo $camelNumber; ?> extends CRM_Upgrad
   //   *
   //   * @param string $rev
   //   */
-  //  public function upgrade_5_0_x($rev) {
+  //  public function upgrade_5_0_x($rev): void {
   //    $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
   //    $this->addTask('Do the foo change', 'taskFoo', ...);
   //    // Additional tasks here...
@@ -74,7 +74,7 @@ class CRM_Upgrade_Incremental_php_<?php echo $camelNumber; ?> extends CRM_Upgrad
   //    // The above is an exception because 'Upgrade DB to %1: SQL' is generic & reusable.
   //  }
 
-  // public static function taskFoo(CRM_Queue_TaskContext $ctx, ...) {
+  // public static function taskFoo(CRM_Queue_TaskContext $ctx, ...): bool {
   //   return TRUE;
   // }
 
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.0.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.0.mysql.tpl
deleted file mode 100644
index 66aea8ae3c..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.0.mysql.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{* file to handle db changes in 4.5.0 during upgrade *}
-
-{include file='../CRM/Upgrade/4.5.0.msg_template/civicrm_msg_template.tpl'}
-
-ALTER TABLE `civicrm_action_schedule`
-  ADD COLUMN `sms_template_id` int(10) unsigned DEFAULT NULL COMMENT 'SMS Reminder Template. FK to id in civicrm_msg_template.' AFTER `msg_template_id`,
-  ADD COLUMN `sms_body_text` longtext COLLATE utf8_unicode_ci COMMENT 'Body of the mailing in html format.' AFTER `body_html`,
-  ADD CONSTRAINT `FK_civicrm_action_schedule_sms_template_id` FOREIGN KEY (`sms_template_id`) REFERENCES  civicrm_msg_template(`id`) ON DELETE SET NULL;
-
-ALTER TABLE `civicrm_msg_template`
-  ADD COLUMN `is_sms` tinyint(4) DEFAULT '0' COMMENT 'Is this message template used for sms?';
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.1.mysql.tpl
deleted file mode 100644
index c0965058eb..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.1.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 4.5.1 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.2.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.2.mysql.tpl
deleted file mode 100644
index e4f828739b..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.2.mysql.tpl
+++ /dev/null
@@ -1,5 +0,0 @@
-{* file to handle db changes in 4.5.2 during upgrade *}
-
--- CRM-15467 Also fix group_type for Honoree Profile
-UPDATE civicrm_uf_group SET group_type = 'Individual,Contact' WHERE name = 'honoree_individual';
-
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.3.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.3.mysql.tpl
deleted file mode 100644
index 01e35c7c0a..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.3.mysql.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{* file to handle db changes in 4.5.3 during upgrade *}
-
--- CRM-15475
-SELECT @membershipStatusId := id FROM civicrm_membership_status WHERE name = 'Cancelled';
-SELECT @membershipStatusWeight := max(weight) + 1 FROM civicrm_membership_status;
-
-INSERT INTO civicrm_membership_status (id, name, {localize field='label'}label{/localize}, start_event, start_event_adjust_unit, start_event_adjust_interval, end_event, end_event_adjust_unit, end_event_adjust_interval, is_current_member, is_admin, weight, is_default, is_active, is_reserved)
-VALUES (@membershipStatusId, 'Cancelled', {localize}'{ts escape="sql"}Cancelled{/ts}'{/localize}, 'join_date', null, null, 'join_date', null, null, 0, 0, @membershipStatusWeight, 0, 0, 1) 
-ON DUPLICATE KEY UPDATE is_reserved = 1;
-
--- CRM-15558
-ALTER TABLE `civicrm_mailing_bounce_type` CHANGE `name` `name` VARCHAR( 24 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Type of bounce';
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.4.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.4.mysql.tpl
deleted file mode 100644
index f5971ae9b7..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.4.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 4.5.4 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.5.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.5.mysql.tpl
deleted file mode 100644
index b97d8681e6..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.5.mysql.tpl
+++ /dev/null
@@ -1,5 +0,0 @@
-{* file to handle db changes in 4.5.5 during upgrade *}
-
--- https://issues.civicrm.org/jira/browse/CRM-15630
-
-UPDATE civicrm_msg_template SET msg_html = REPLACE(msg_html, 'email=true', 'emailMode=true') WHERE msg_title = 'Petition - signature added';
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.6.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.6.mysql.tpl
deleted file mode 100644
index eb65ae8028..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.6.mysql.tpl
+++ /dev/null
@@ -1,4 +0,0 @@
-{* file to handle db changes in 4.5.6 during upgrade *}
-   
--- CRM-15760
-ALTER TABLE `civicrm_action_schedule` CHANGE `entity_value` `entity_value` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'Entity value';
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.7.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.7.mysql.tpl
deleted file mode 100644
index 3becf6350c..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.7.mysql.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{* file to handle db changes in 4.5.7 during upgrade *}
-
--- CRM-15931
-UPDATE civicrm_mailing_group SET group_type = 'Include' WHERE group_type = 'include';
-UPDATE civicrm_mailing_group SET group_type = 'Exclude' WHERE group_type = 'exclude';
-UPDATE civicrm_mailing_group SET group_type = 'Base' WHERE group_type = 'base';
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.8.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.8.mysql.tpl
deleted file mode 100644
index 3c2f7c6ce0..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.8.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 4.5.8 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.9.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.9.mysql.tpl
deleted file mode 100644
index 232ca048ac..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.9.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* CRM-16846 - This file is never run, but it doesn't matter because it's empty *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl
deleted file mode 100644
index 540c96db3c..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl
+++ /dev/null
@@ -1,541 +0,0 @@
-{* file to handle db changes in 4.5.alpha1 during upgrade *}
-{include file='../CRM/Upgrade/4.5.alpha1.msg_template/civicrm_msg_template.tpl'}
-
-ALTER TABLE `civicrm_contact`
-  ADD COLUMN `formal_title` varchar(64) COMMENT 'Formal (academic or similar) title in front of name. (Prof., Dr. etc.)' AFTER `suffix_id`;
-
-ALTER TABLE `civicrm_contact`
-  ADD COLUMN `communication_style_id` int(10) unsigned COMMENT 'Communication style (e.g. formal vs. familiar) to use with this contact. FK to communication styles in civicrm_option_value.' AFTER `formal_title`,
-  ADD INDEX `index_communication_style_id` (`communication_style_id`);
-
-INSERT INTO
-  `civicrm_option_group` (`name`, {localize field='title'}`title`{/localize}, `is_reserved`, `is_active`)
-VALUES
-  ('communication_style', {localize}'{ts escape="sql"}Communication Style{/ts}'{/localize}, 1, 1);
-
-SELECT @option_group_id_communication_style := max(id) from civicrm_option_group where name = 'communication_style';
-
-INSERT INTO
-  `civicrm_option_value` (`option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
-VALUES
-  (@option_group_id_communication_style, {localize}'{ts escape="sql"}Formal{/ts}'{/localize},   1, 'formal'  , NULL, 0, 1, 1, 0, 0, 1, NULL, NULL),
-  (@option_group_id_communication_style, {localize}'{ts escape="sql"}Familiar{/ts}'{/localize}, 2, 'familiar', NULL, 0, 0, 2, 0, 0, 1, NULL, NULL);
-
--- Insert menu item at Administer > Communications, above the various Greeting Formats
-
-SELECT @parent_id := `id` FROM `civicrm_navigation` WHERE `name` = 'Communications' AND `domain_id` = {$domainID};
-SELECT @add_weight := MIN(`weight`) FROM `civicrm_navigation` WHERE `name` IN('Email Greeting Formats', 'Postal Greeting Formats', 'Addressee Formats') AND `parent_id` = @parent_id;
-
-UPDATE `civicrm_navigation`
-SET `weight` = `weight`+1
-WHERE `parent_id` = @parent_id
-AND `weight` >= @add_weight;
-
-INSERT INTO `civicrm_navigation`
-  ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
-VALUES
-  ( {$domainID}, 'civicrm/admin/options/communication_style&group=communication_style&reset=1', '{ts escape="sql" skip="true"}Communication Style Options{/ts}', 'Communication Style Options', 'administer CiviCRM', '', @parent_id, '1', NULL, @add_weight );
-
--- CRM-9988 Change world region of Panama country to America South, Central, North and Caribbean
-UPDATE `civicrm_country` SET `region_id` = 2 WHERE `id` = 1166;
-
-SELECT @option_group_id_contact_edit_options := max(id) from civicrm_option_group where name = 'contact_edit_options';
-
-INSERT INTO
-  `civicrm_option_value` (`option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
-VALUES
-  (@option_group_id_contact_edit_options, {localize}'{ts escape="sql"}Prefix{/ts}'{/localize}      , 12, 'Prefix'      , NULL, 2, NULL, 12, 0, 0, 1, NULL, NULL),
-  (@option_group_id_contact_edit_options, {localize}'{ts escape="sql"}Formal Title{/ts}'{/localize}, 13, 'Formal Title', NULL, 2, NULL, 13, 0, 0, 1, NULL, NULL),
-  (@option_group_id_contact_edit_options, {localize}'{ts escape="sql"}First Name{/ts}'{/localize}  , 14, 'First Name'  , NULL, 2, NULL, 14, 0, 0, 1, NULL, NULL),
-  (@option_group_id_contact_edit_options, {localize}'{ts escape="sql"}Middle Name{/ts}'{/localize} , 15, 'Middle Name' , NULL, 2, NULL, 15, 0, 0, 1, NULL, NULL),
-  (@option_group_id_contact_edit_options, {localize}'{ts escape="sql"}Last Name{/ts}'{/localize}   , 16, 'Last Name'   , NULL, 2, NULL, 16, 0, 0, 1, NULL, NULL),
-  (@option_group_id_contact_edit_options, {localize}'{ts escape="sql"}Suffix{/ts}'{/localize}      , 17, 'Suffix'      , NULL, 2, NULL, 17, 0, 0, 1, NULL, NULL);
-
--- CRM-13857
-ALTER TABLE civicrm_group
-  ADD COLUMN `modified_id` INT(10) unsigned DEFAULT NULL COMMENT 'FK to contact table, modifier of the group.',
-  ADD CONSTRAINT `FK_civicrm_group_modified_id` FOREIGN KEY (`modified_id`) REFERENCES `civicrm_contact`(`id`) ON DELETE SET NULL;
-
--- CRM-13913
-ALTER TABLE civicrm_word_replacement
-  ALTER COLUMN `is_active` SET DEFAULT 1;
-
---CRM-13833 Implement Soft Credit Type for Contribution
-INSERT INTO civicrm_option_group
-      (name, {localize field='title'}title{/localize}, is_reserved, is_active) VALUES ('soft_credit_type', {localize}'{ts escape="sql"}Soft Credit Types{/ts}'{/localize}, 1, 1);
-
-SELECT @option_group_id_soft_credit_type := max(id) from civicrm_option_group where name = 'soft_credit_type';
-
-INSERT INTO `civicrm_option_value` (`option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `weight`, `is_default`, `is_active`, `is_reserved`)
- VALUES
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}In Honor of{/ts}'{/localize}, 1, 'in_honor_of', 1, 0, 1, 1),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}In Memory of{/ts}'{/localize}, 2, 'in_memory_of', 2, 0, 1, 1),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Solicited{/ts}'{/localize}, 3, 'solicited', 3, 0, 1, 1),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Household{/ts}'{/localize}, 4, 'household', 4, 0, 1, 0),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Workplace Giving{/ts}'{/localize}, 5, 'workplace', 5, 0, 1, 0),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Foundation Affiliate{/ts}'{/localize}, 6, 'foundation_affiliate', 6, 0, 1, 0),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}3rd-party Service{/ts}'{/localize}, 7, '3rd-party_service', 7, 0, 1, 0),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Donor-advised Fund{/ts}'{/localize}, 8, 'donor-advised_fund', 8, 0, 1, 0),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Matched Gift{/ts}'{/localize}, 9, 'matched_gift', 9, 0, 1, 0),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Personal Campaign Page{/ts}'{/localize}, 10, 'pcp', 10, 0, 1, 1),
-  (@option_group_id_soft_credit_type   , {localize}'{ts escape="sql"}Gift{/ts}'{/localize}, 11, 'gift', 11, 0, 1, 1);
-
-ALTER TABLE `civicrm_contribution_soft`
-  ADD COLUMN `soft_credit_type_id`  int(10) unsigned COMMENT 'Soft Credit Type ID.Implicit FK to civicrm_option_value where option_group = soft_credit_type.';
-
-INSERT INTO civicrm_contribution_soft(contribution_id, contact_id, amount, currency, soft_credit_type_id)
-SELECT id, honor_contact_id, total_amount, currency, honor_type_id
-FROM civicrm_contribution
-WHERE honor_contact_id IS NOT NULL;
-
-SELECT @sct_pcp_id := value from civicrm_option_value where name = 'pcp' and option_group_id = @option_group_id_soft_credit_type;
-
-UPDATE `civicrm_contribution_soft`
-SET soft_credit_type_id = @sct_pcp_id
-WHERE pcp_id IS NOT NULL;
-
---CRM-13734 make basic Case Activity Types reserved
-SELECT @option_group_id_activity_type := id from civicrm_option_group where name = 'activity_type';
-SELECT @caseCompId := id FROM `civicrm_component` where `name` like 'CiviCase';
-
-UPDATE `civicrm_option_value`
-SET is_reserved = 1
-WHERE is_reserved = 0 AND option_group_id = @option_group_id_activity_type AND component_id = @caseCompId;
-
--- CRM-13912
-ALTER TABLE civicrm_action_schedule
-ADD COLUMN `mode` varchar(128) COLLATE utf8_unicode_ci DEFAULT 'Email' COMMENT 'Send the message as email or sms or both.';
-
-INSERT INTO
-civicrm_option_group (name, {localize field='title'}title{/localize}, is_reserved, is_active)
-VALUES
-('msg_mode', {localize}'{ts escape="sql"}Message Mode{/ts}'{/localize}, 1, 1);
-
-SELECT @option_group_id_msg_mode := max(id) from civicrm_option_group where name = 'msg_mode';
-
-INSERT INTO
-civicrm_option_value (option_group_id, {localize field='label'}`label`{/localize}, value, name, is_default, weight, is_reserved, is_active)
-VALUES
-(@option_group_id_msg_mode, {localize}'{ts escape="sql"}Email{/ts}'{/localize}, 'Email', 'Email', 1, 1, 1, 1),
-(@option_group_id_msg_mode, {localize}'{ts escape="sql"}SMS{/ts}'{/localize},'SMS', 'SMS', 0, 2, 1, 1),
-(@option_group_id_msg_mode, {localize}'{ts escape="sql"}User Preference{/ts}'{/localize}, 'User_Preference', 'User Preference', 0, 3, 1, 1);
-
-ALTER TABLE civicrm_action_schedule ADD sms_provider_id int(10) unsigned NULL COMMENT 'FK to civicrm_sms_provider id ';
-ALTER TABLE civicrm_action_schedule ADD CONSTRAINT FK_civicrm_action_schedule_sms_provider_id FOREIGN KEY (`sms_provider_id`) REFERENCES `civicrm_sms_provider` (`id`) ON DELETE SET NULL;
-
---CRM-13981 migrate 'In Honor of' to Soft Credits
-INSERT INTO `civicrm_uf_group`
-     (`name`, `group_type`, {localize field='title'}`title`{/localize}, `is_cms_user`, `is_reserved`)
-VALUES
-   ('honoree_individual', 'Individual,Contact', {localize}'{ts escape="sql"}Honoree Individual{/ts}'{/localize}, 0, 1);
-
-SELECT @uf_group_id_honoree_individual := id from civicrm_uf_group where name = 'honoree_individual';
-SELECT @primaryLocation := id FROM civicrm_location_type WHERE is_default = 1;
-
-INSERT INTO `civicrm_uf_field`
-      (`uf_group_id`, `field_name`, `is_required`, `is_reserved`, `weight`, `visibility`, `in_selector`, `is_searchable`, `location_type_id`, {localize field='label'}`label`{/localize}, field_type)
-VALUES
-      (@uf_group_id_honoree_individual, 'prefix_id',  0, 1, 1, 'User and User Admin Only', 0, 1, NULL, {localize}'{ts escape="sql"}Individual Prefix{/ts}'{/localize}, 'Individual'),
-      (@uf_group_id_honoree_individual, 'first_name', 0, 1, 2, 'User and User Admin Only', 0, 1, NULL, {localize}'{ts escape="sql"}First Name{/ts}'{/localize},        'Individual'),
-      (@uf_group_id_honoree_individual, 'last_name',  0, 1, 3, 'User and User Admin Only', 0, 1, NULL, {localize}'{ts escape="sql"}Last Name{/ts}'{/localize},         'Individual'),
-      (@uf_group_id_honoree_individual, 'email',      0, 1, 4, 'User and User Admin Only', 0, 1, @primaryLocation, {localize}'{ts escape="sql"}Email Address{/ts}'{/localize},     'Individual');
-
-UPDATE civicrm_uf_join SET uf_group_id = @uf_group_id_honoree_individual WHERE module = 'soft_credit';
-
-{if $multilingual}
-  {foreach from=$locales item=loc}
-     ALTER TABLE civicrm_contribution_page DROP honor_block_title_{$loc};
-     ALTER TABLE civicrm_contribution_page DROP honor_block_text_{$loc};
-  {/foreach}
-{else}
-     ALTER TABLE civicrm_contribution_page DROP honor_block_title;
-     ALTER TABLE civicrm_contribution_page DROP honor_block_text;
-{/if}
-ALTER TABLE civicrm_contribution_page DROP honor_block_is_active;
-
-ALTER TABLE civicrm_contribution DROP FOREIGN KEY `FK_civicrm_contribution_honor_contact_id`;
-ALTER TABLE civicrm_contribution DROP honor_contact_id;
-ALTER TABLE civicrm_contribution DROP honor_type_id;
-
-ALTER TABLE civicrm_pledge DROP FOREIGN KEY `FK_civicrm_pledge_honor_contact_id`;
-ALTER TABLE civicrm_pledge DROP honor_contact_id;
-ALTER TABLE civicrm_pledge DROP honor_type_id;
-
--- CRM-13964 and CRM-13965
-SELECT @option_group_id_cs   := max(id) from civicrm_option_group where name = 'contribution_status';
-SELECT @option_val_id_cs_wt  := MAX(weight) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cs;
-SELECT @option_val_id_cs_val := MAX(ROUND(value)) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cs;
-
-INSERT INTO
-   `civicrm_option_value` (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
-VALUES
-  (@option_group_id_cs, {localize}'{ts escape="sql"}Partially paid{/ts}'{/localize}, @option_val_id_cs_val+1, 'Partially paid', NULL, 0, NULL, @option_val_id_cs_wt+1, 0, 1, 1, NULL, NULL),
-  (@option_group_id_cs, {localize}'{ts escape="sql"}Pending refund{/ts}'{/localize}, @option_val_id_cs_val+2, 'Pending refund', NULL, 0, NULL, @option_val_id_cs_wt+2, 0, 1, 1, NULL, NULL);
-
--- participant status adding
-SELECT @participant_status_wt  := max(id) from civicrm_participant_status_type;
-
-INSERT INTO civicrm_participant_status_type (name,  {localize field='label'}label{/localize}, class, is_reserved, is_active, is_counted, weight, visibility_id)
-VALUES
-  ('Partially paid', {localize}'{ts escape="sql"}Partially paid{/ts}'{/localize}, 'Positive', 1, 1, 1, @participant_status_wt+1, 2),
-  ('Pending refund', {localize}'{ts escape="sql"}Pending refund{/ts}'{/localize}, 'Positive', 1, 1, 1, @participant_status_wt+2, 2);
-
--- new activity types required for partial payments
-SELECT @option_group_id_act     := max(id) from civicrm_option_group where name = 'activity_type';
-SELECT @option_group_id_act_wt  := MAX(weight) FROM civicrm_option_value WHERE option_group_id = @option_group_id_act;
-SELECT @option_group_id_act_val := MAX(ROUND(value)) FROM civicrm_option_value WHERE option_group_id = @option_group_id_act;
-SELECT @contributeCompId := max(id) FROM civicrm_component where name = 'CiviContribute';
-
-INSERT INTO
-   `civicrm_option_value` (`option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, {localize field='description'}`description`{/localize}, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
-VALUES
-   (@option_group_id_act, {localize}'{ts escape="sql"}Payment{/ts}'{/localize}, @option_group_id_act_val+1, 'Payment', NULL, 1, NULL, @option_group_id_act_wt+1, {localize}'{ts escape="sql"}Additional payment recorded for event or membership fee.{/ts}'{/localize}, 0, 1, 1, @contributeCompId, NULL),
-   (@option_group_id_act, {localize}'{ts escape="sql"}Refund{/ts}'{/localize}, @option_group_id_act_val+2, 'Refund', NULL, 1, NULL, @option_group_id_act_wt+2, {localize}'{ts escape="sql"}Refund recorded for event or membership fee.{/ts}'{/localize}, 0, 1, 1, @contributeCompId, NULL),
-   (@option_group_id_act, {localize}'{ts escape="sql"}Change Registration{/ts}'{/localize}, @option_group_id_act_val+3, 'Change Registration', NULL, 1, NULL, @option_group_id_act_wt+3, {localize}'{ts escape="sql"}Changes to an existing event registration.{/ts}'{/localize}, 0, 1, 1, @eventCompId, NULL);
-
--- CRM-13970
-UPDATE civicrm_navigation set url = 'civicrm/admin/options/from_email_address&reset=1' WHERE url LIKE 'civicrm/admin/options/from_email%';
-UPDATE civicrm_navigation set url = CONCAT(SUBSTRING_INDEX(url, '&', 1), '&reset=1') WHERE url LIKE 'civicrm/admin/options/%';
-
--- CRM-14181
-ALTER TABLE  civicrm_acl CHANGE  operation  operation VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT  'What operation does this ACL entry control?';
-ALTER TABLE  civicrm_campaign_group CHANGE  group_type  group_type VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Type of Group.';
-ALTER TABLE  `civicrm_acl_contact_cache` CHANGE  `operation`  `operation` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT  'What operation does this user have permission on?';
-ALTER TABLE  `civicrm_price_field` CHANGE  `html_type`  `html_type` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
-ALTER TABLE  `civicrm_pledge` CHANGE  `frequency_unit`  `frequency_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'month' COMMENT  'Time units for recurrence of pledge payments.';
-ALTER TABLE  `civicrm_membership_type` CHANGE  `duration_unit`  `duration_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Unit in which membership period is expressed.';
-ALTER TABLE  `civicrm_membership_type` CHANGE  `period_type`  `period_type` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'Rolling membership period starts on signup date. Fixed membership periods start on fixed_period_start_day.';
-ALTER TABLE  `civicrm_membership_status` CHANGE  `start_event`  `start_event` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Event when this status starts.';
-ALTER TABLE  `civicrm_membership_status` CHANGE  `start_event_adjust_unit`  `start_event_adjust_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Unit used for adjusting from start_event.';
-ALTER TABLE  `civicrm_membership_status` CHANGE  `end_event`  `end_event` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Event after which this status ends.';
-ALTER TABLE  `civicrm_membership_status` CHANGE  `end_event_adjust_unit`  `end_event_adjust_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Unit used for adjusting from the ending event.';
-ALTER TABLE  `civicrm_mailing_job` CHANGE  `status`  `status` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'The state of this job';
-ALTER TABLE  `civicrm_mailing_group` CHANGE  `group_type`  `group_type` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Are the members of the group included or excluded?.';
-ALTER TABLE  `civicrm_mailing` CHANGE  `visibility`  `visibility` VARCHAR( 40 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'User and User Admin Only' COMMENT  'In what context(s) is the mailing contents visible (online viewing)';
-ALTER TABLE  `civicrm_mailing_component` CHANGE  `component_type`  `component_type` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Type of Component.';
-ALTER TABLE  `civicrm_mailing_bounce_type` CHANGE  `name`  `name` VARCHAR( 24 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT  'Type of bounce';
-ALTER TABLE  `civicrm_participant_status_type` CHANGE  `class`  `class` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'the general group of status type this one belongs to';
-ALTER TABLE  `civicrm_dedupe_rule_group` CHANGE  `contact_type`  `contact_type` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'The type of contacts this group applies to';
-ALTER TABLE  `civicrm_dedupe_rule_group` CHANGE  `used`  `used` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Whether the rule should be used for cases where usage is Unsupervised, Supervised OR General(programatically)';
-ALTER TABLE  `civicrm_word_replacement` CHANGE  `match_type`  `match_type` VARCHAR( 16 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'wildcardMatch';
-ALTER TABLE  `civicrm_uf_field` CHANGE  `visibility`  `visibility` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'User and User Admin Only' COMMENT  'In what context(s) is this field visible.';
-ALTER TABLE  `civicrm_mapping_field` CHANGE  `operator`  `operator` VARCHAR( 16 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'SQL WHERE operator for search-builder mapping fields (search criteria).';
-ALTER TABLE  `civicrm_job` CHANGE  `run_frequency`  `run_frequency` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'Daily' COMMENT  'Scheduled job run frequency.';
-ALTER TABLE  `civicrm_extension` CHANGE  `type`  `type` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
-ALTER TABLE  `civicrm_custom_group` CHANGE  `style`  `style` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Visual relationship between this form and its parent.';
-ALTER TABLE  `civicrm_custom_field` CHANGE  `data_type`  `data_type` VARCHAR( 16 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT  'Controls location of data storage in extended_data table.';
-ALTER TABLE  `civicrm_custom_field` CHANGE  `html_type`  `html_type` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT  'HTML types plus several built-in extended types.';
-ALTER TABLE  `civicrm_action_schedule` CHANGE  `start_action_unit`  `start_action_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Time units for reminder.';
-ALTER TABLE  `civicrm_action_schedule` CHANGE  `repetition_frequency_unit`  `repetition_frequency_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Time units for repetition of reminder.';
-ALTER TABLE  `civicrm_action_schedule` CHANGE  `end_frequency_unit`  `end_frequency_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'Time units till repetition of reminder.';
-ALTER TABLE  `civicrm_product` CHANGE  `period_type`  `period_type` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'rolling' COMMENT 'Rolling means we set start/end based on current day, fixed means we set start/end for current year or month(e.g. 1 year + fixed -> we would set start/end for 1/1/06 thru 12/31/06 for any premium chosen in 2006) ';
-ALTER TABLE  `civicrm_product` CHANGE  `duration_unit`  `duration_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'year';
-ALTER TABLE  `civicrm_product` CHANGE  `frequency_unit`  `frequency_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'month' COMMENT 'Frequency unit and interval allow option to store actual delivery frequency for a subscription or service.';
-ALTER TABLE  `civicrm_contribution_recur` CHANGE  `frequency_unit`  `frequency_unit` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'month' COMMENT  'Time units for recurrence of payment.';
-ALTER TABLE  `civicrm_subscription_history` CHANGE  `method`  `method` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'How the (un)subscription was triggered';
-ALTER TABLE  `civicrm_subscription_history` CHANGE  `status`  `status` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'The state of the contact within the group';
-ALTER TABLE  `civicrm_relationship_type` CHANGE  `contact_type_a`  `contact_type_a` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'If defined, contact_a in a relationship of this type must be a specific contact_type.';
-ALTER TABLE  `civicrm_relationship_type` CHANGE  `contact_type_b`  `contact_type_b` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'If defined, contact_b in a relationship of this type must be a specific contact_type.';
-ALTER TABLE  `civicrm_group_contact` CHANGE  `status`  `status` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT  'status of contact relative to membership in group';
-ALTER TABLE  `civicrm_group` CHANGE  `visibility`  `visibility` VARCHAR( 24 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'User and User Admin Only' COMMENT  'In what context(s) is this field visible.';
-ALTER TABLE  `civicrm_contact` CHANGE  `preferred_mail_format`  `preferred_mail_format` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT  'Both' COMMENT  'What is the preferred mode of sending an email.';
-
--- CRM-14183
-INSERT IGNORE INTO civicrm_state_province (country_id, abbreviation, name) VALUES (1157, "PL", "Plateau");
-UPDATE civicrm_state_province SET name = "Abuja Federal Capital Territory" WHERE name = "Abuja Capital Territory";
-
--- CRM-13992
-ALTER TABLE `civicrm_custom_field`
-  ADD COLUMN `in_selector` tinyint(4) DEFAULT '0' COMMENT 'Should the multi-record custom field values be displayed in tab table listing';
-UPDATE civicrm_custom_field cf
-  LEFT JOIN civicrm_custom_group cg
-    ON cf.custom_group_id = cg.id
-  SET cf.in_selector = 1
-  WHERE cg.is_multiple = 1 AND cf.html_type != 'TextArea';
-ALTER TABLE `civicrm_custom_group`
- CHANGE COLUMN `style` `style` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Visual relationship between this form and its parent.';
-
--- Add "developer" help menu
-SELECT @parent_id := `id` FROM `civicrm_navigation` WHERE `name` = 'Help' AND `domain_id` = {$domainID};
-
-INSERT INTO civicrm_navigation
-( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
-VALUES
-( {$domainID}, NULL, '{ts escape="sql" skip="true"}Developer{/ts}', 'Developer', 'administer CiviCRM', '', @parent_id, '1', NULL, 5 );
-
-SET @devellastID:=LAST_INSERT_ID();
-INSERT INTO civicrm_navigation
-( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
-VALUES
-( {$domainID}, 'civicrm/api', '{ts escape="sql" skip="true"}API Explorer{/ts}','API Explorer', 'administer CiviCRM', '', @devellastID, '1', NULL, 1 ),
-( {$domainID}, 'http://wiki.civicrm.org/confluence/display/CRMDOC/Develop', '{ts escape="sql" skip="true"}Developer Docs{/ts}', 'Developer Docs', 'administer CiviCRM', '', @devellastID, '1', NULL, 3 );
-
--- CRM-14435
-ALTER TABLE `civicrm_mail_settings`
-  ADD CONSTRAINT `FK_civicrm_mail_settings_domain_id` FOREIGN KEY (`domain_id`) REFERENCES `civicrm_domain` (`id`) ON DELETE CASCADE;
-
--- CRM-14436
-ALTER TABLE `civicrm_mailing`
-  ADD COLUMN `hash` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Key for validating requests related to this mailing.',
-  ADD INDEX `index_hash` (`hash`);
-
--- CRM-14300
-UPDATE `civicrm_event` SET is_template = 0 WHERE is_template IS NULL;
-ALTER TABLE `civicrm_event`
-  CHANGE is_template is_template tinyint(4) DEFAULT '0' COMMENT 'whether the event has template';
-
--- CRM-14493
-INSERT IGNORE INTO civicrm_state_province (country_id, abbreviation, name) VALUES (1085, "61", "Pieria");
-
--- CRM-14445
-ALTER TABLE `civicrm_option_group`
-    ADD COLUMN `is_locked` int(1) DEFAULT 0 COMMENT 'A lock to remove the ability to add new options via the UI';
-
-UPDATE `civicrm_option_group` SET is_locked = 1 WHERE name IN ('contribution_status','activity_contacts','advanced_search_options','auto_renew_options','contact_autocomplete_options','batch_status','batch_type','batch_mode','contact_edit_options','contact_reference_options','contact_smart_group_display','contact_view_options','financial_item_status','mapping_type','pcp_status','user_dashboard_options','tag_used_for');
-
--- CRM-14449
-CREATE TABLE IF NOT EXISTS `civicrm_system_log` (
-`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: ID.',
-`message` VARCHAR(128) NOT NULL COMMENT 'Standardized message',
-`context` LONGTEXT NULL COMMENT 'JSON encoded data',
-`level` VARCHAR(9)  NOT NULL DEFAULT 'info' COMMENT 'error level per PSR3',
-`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Timestamp of when event occurred.',
-`contact_id` INT(11) NULL DEFAULT NULL COMMENT 'Optional Contact ID that created the log. Not an FK as we keep this regardless',
- hostname VARCHAR(128) NOT NULL COMMENT 'Optional Name of logging host',
-PRIMARY KEY (`id`),
-INDEX `message` (`message`),
-INDEX `contact_id` (`contact_id`),
-INDEX `level` (`level`)
-)
-COMMENT='Table that contains logs of all system events.'
-COLLATE='utf8_general_ci';
-
--- CRM-14473 civicrm_case_type table creation and migration
-CREATE TABLE IF NOT EXISTS `civicrm_case_type` (
-  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Autoincremented type id',
-  `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Machine name for Case Type',
-  {localize field='title'}title varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Natural language name for Case Type'{/localize},
-  {localize field='description'}description varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Description of the Case Type'{/localize},
-  `is_active` tinyint(4) DEFAULT NULL COMMENT 'Is this entry active?',
-  `is_reserved` tinyint(4) DEFAULT NULL COMMENT 'Is this case type a predefined system type?',
-  `weight` int(11) NOT NULL DEFAULT '1' COMMENT 'Ordering of the case types',
-  `definition` blob    COMMENT 'xml definition of case type',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `case_type_name` (`name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
-
-SELECT @option_group_id_case_type := max(id) from civicrm_option_group where name = 'case_type';
-
-INSERT IGNORE INTO civicrm_case_type
-  (id, name, {localize field='title'}title{/localize}, {localize field='description'}description{/localize}, is_active, is_reserved, weight)
-  SELECT
-    value,
-    name,
-    {localize field='label'}label{/localize},
-    {localize field='description'}description{/localize},
-    is_active,
-    is_reserved,
-    weight
-  FROM civicrm_option_value
-  WHERE
-    option_group_id = @option_group_id_case_type;
-
--- Remove the special character, earlier used as a separator and reference to civicrm_case_type.id
-UPDATE civicrm_case SET case_type_id = replace(case_type_id, 0x01, '');
-
-ALTER TABLE civicrm_case
-  MODIFY case_type_id int(10) unsigned COLLATE utf8_unicode_ci NULL COMMENT 'FK to civicrm_case_type.id',
-  ADD CONSTRAINT FK_civicrm_case_case_type_id FOREIGN KEY (case_type_id) REFERENCES civicrm_case_type (id) ON DELETE SET NULL;
-
--- CRM-15343 set the auto increment civicrm_case_type.id start point to max id to avoid conflict in future insertion
-SELECT @max_case_type_id := max(id) from civicrm_case_type;
-SET @query  = CONCAT("ALTER TABLE civicrm_case_type AUTO_INCREMENT = ", IFNULL(@max_case_type_id,1));
-PREPARE alter_case_type_auto_inc FROM @query;
-EXECUTE alter_case_type_auto_inc;
-DEALLOCATE PREPARE alter_case_type_auto_inc;
-
-DELETE FROM civicrm_option_value WHERE option_group_id = @option_group_id_case_type;
-
-DELETE FROM civicrm_option_group WHERE id = @option_group_id_case_type;
-
--- CRM-14611
-{if $multilingual}
-  {foreach from=$locales item=locale}
-      ALTER TABLE civicrm_survey ADD title_{$locale} varchar(255);
-      UPDATE civicrm_survey SET title_{$locale} = title;
-
-      ALTER TABLE civicrm_survey ADD instructions_{$locale} TEXT;
-      UPDATE civicrm_survey SET instructions_{$locale} = instructions;
-  {/foreach}
-
-  ALTER TABLE civicrm_survey DROP title;
-  ALTER TABLE civicrm_survey DROP instructions;
-{/if}
-
--- CRM-11182 -- Make event confirmation page optional
- ALTER TABLE civicrm_event
-   ADD COLUMN is_confirm_enabled tinyint(4) DEFAULT '1';
-
- UPDATE civicrm_event
-   SET is_confirm_enabled = 1
-   WHERE is_monetary = 1;
-
- UPDATE civicrm_event
-   SET is_confirm_enabled = 0
-   WHERE is_monetary = 0;
-
--- CRM-11182
-ALTER TABLE civicrm_event
-  ADD COLUMN dedupe_rule_group_id int(10) unsigned DEFAULT NULL COMMENT 'Rule to use when matching registrations for this event',
-  ADD CONSTRAINT `FK_civicrm_event_dedupe_rule_group_id` FOREIGN KEY (`dedupe_rule_group_id`) REFERENCES `civicrm_dedupe_rule_group` (`id`);
-
--- CRM-9288
-SELECT @option_web_id := id  FROM civicrm_option_group WHERE name = 'website_type';
-
-SELECT @website_default := value FROM civicrm_option_value WHERE option_group_id = @option_web_id and is_default = 1;
-
-SELECT @website_work := value FROM civicrm_option_value WHERE option_group_id = @option_web_id and name= 'Work';
-
-UPDATE civicrm_option_value
-SET is_default = 1 WHERE option_group_id = @option_web_id and value = IFNULL(@website_default , @website_work);
-
-SELECT @website_default := value FROM civicrm_option_value WHERE option_group_id = @option_web_id and is_default = 1;
-
-ALTER TABLE civicrm_uf_field
-  ADD COLUMN `website_type_id` int(10) unsigned DEFAULT NULL COMMENT 'Website Type Id, if required' AFTER phone_type_id,
-  ADD INDEX `IX_website_type_id` (`website_type_id`);
-
-UPDATE civicrm_uf_field
-SET website_type_id = @website_default,
-field_name = 'url' WHERE field_name LIKE 'url%';
-
-SELECT @website_value := max(cast(value as UNSIGNED)) FROM civicrm_option_value WHERE option_group_id = @option_web_id;
-SELECT @website_weight := max(weight) FROM civicrm_option_value WHERE option_group_id = @option_web_id;
-
-INSERT INTO civicrm_option_value(option_group_id, {localize field='label'}label{/localize}, name, value, weight)
-SELECT @option_web_id, {localize}website{/localize}, website, (@website_value := @website_value + 1), (@website_weight := @website_weight + 1) FROM (
-SELECT 'Google+' AS website
-    UNION ALL
-SELECT 'Instagram' AS website
-    UNION ALL
-SELECT 'LinkedIn' AS website
-    UNION ALL
-SELECT 'Pinterest' AS website
-    UNION ALL
-SELECT 'Tumblr' AS website
-    UNION ALL
-SELECT 'SnapChat' AS website
-    UNION ALL
-SELECT 'Vine' AS website
-) AS temp
-LEFT JOIN civicrm_option_value co ON co.name = temp.website
-AND option_group_id = @option_web_id
-WHERE co.id IS NULL;
-
--- CRM-14627 civicrm navigation inconsistent
-UPDATE civicrm_navigation
-SET civicrm_navigation.url = CONCAT(SUBSTRING(url FROM 1 FOR LOCATE('&', url) - 1), '?', SUBSTRING(url FROM LOCATE('&', url) + 1))
-WHERE civicrm_navigation.url LIKE "%&%" AND civicrm_navigation.url NOT LIKE "%?%";
-
--- CRM-14478 Add a "cleanup" policy for managed entities
-ALTER TABLE `civicrm_managed`
-ADD COLUMN `cleanup` varchar(32) COMMENT 'Policy on when to cleanup entity (always, never, unused)';
-
--- CRM-14639
-
-SELECT @option_grant_status := id  FROM civicrm_option_group WHERE name = 'grant_status';
-UPDATE civicrm_option_value
-SET
-{if !$multilingual}
-  label =
-    CASE
-      WHEN lower(name) = 'granted'
-      THEN 'Paid'
-      WHEN lower(name) = 'approved'
-      THEN 'Eligible'
-      WHEN lower(name) = 'rejected'
-      THEN 'Ineligible'
-      ELSE 'Submitted'
-    END,
-{else}
-  {foreach from=$locales item=locale}
-    label_{$locale} =
-      CASE
-        WHEN lower(name) = 'granted'
-          THEN 'Paid'
-          WHEN lower(name) = 'approved'
-          THEN 'Eligible'
-          WHEN lower(name) = 'rejected'
-          THEN 'Ineligible'
-          ELSE 'Submitted'
-      END,
-  {/foreach}
-{/if}
-name =
-CASE
-  WHEN lower(name) = 'granted'
-   THEN 'Paid'
-  WHEN lower(name) = 'approved'
-   THEN 'Eligible'
-  WHEN lower(name) = 'rejected'
-   THEN 'Ineligible'
-  ELSE 'Submitted'
-END
-WHERE option_group_id = @option_grant_status and name IN ('granted', 'pending', 'approved', 'rejected');
-
-SELECT @grant_value := max(cast(value as UNSIGNED)) FROM civicrm_option_value WHERE option_group_id = @option_grant_status;
-SELECT @grant_weight := max(weight) FROM civicrm_option_value WHERE option_group_id = @option_grant_status;
-
-INSERT INTO civicrm_option_value(option_group_id, {localize field='label'}label{/localize}, name, value, weight)
-SELECT @option_grant_status, {localize}grantstatus{/localize}, grantstatus, @grant_value := @grant_value + 1, @grant_weight := @grant_weight + 1 FROM (
-SELECT 'Submitted' AS grantstatus
-    UNION ALL
-SELECT 'Approved for Payment' AS grantstatus
-    UNION ALL
-SELECT 'Eligible' AS grantstatus
-    UNION ALL
-SELECT 'Awaiting Information' AS grantstatus
-    UNION ALL
-SELECT 'Withdrawn' AS grantstatus
-) AS temp
-LEFT JOIN civicrm_option_value co ON co.name = temp.grantstatus
-AND option_group_id = @option_grant_status
-WHERE co.id IS NULL;
-
--- Fix trailing single quote in grant status label
-{if !$multilingual}
-  UPDATE civicrm_option_value v
-    INNER JOIN civicrm_option_group g
-    ON v.option_group_id = g.id AND g.name = 'grant_status'
-    SET label = 'Awaiting Information'
-    WHERE v.label = 'Awaiting Information\'' and v.name = 'Awaiting Information';
-{else}
-  UPDATE civicrm_option_value v
-    INNER JOIN civicrm_option_group g
-    ON v.option_group_id = g.id AND g.name = 'grant_status'
-    SET
-    {foreach from=$locales item=locale}
-      v.label_{$locale} = CASE
-        WHEN v.label_{$locale} = 'Awaiting Information\'' THEN 'Awaiting Information'
-        ELSE v.label_{$locale}
-      END,
-    {/foreach}
-    v.name = v.name
-    WHERE v.name = 'Awaiting Information';
-{/if}
-
--- CRM-14197 Add contribution_id to civicrm_line_item
-
-ALTER TABLE civicrm_line_item ADD contribution_id INT(10) unsigned COMMENT 'Contribution ID' NULL AFTER entity_id;
-
--- FK to civicrm_contribution
-
-ALTER TABLE civicrm_line_item
-ADD CONSTRAINT `FK_civicrm_contribution_id` FOREIGN KEY (`contribution_id`) REFERENCES civicrm_contribution (`id`) ON DELETE SET NULL;
-
-ALTER TABLE `civicrm_line_item`
-DROP INDEX `UI_line_item_value`,
-ADD UNIQUE INDEX `UI_line_item_value` (`entity_table`, `entity_id`, `contribution_id`, `price_field_value_id`, `price_field_id`);
-
--- update case type menu
-UPDATE civicrm_navigation set url = 'civicrm/a/#/caseType' WHERE url LIKE 'civicrm/admin/options/case_type%';
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha2.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha2.mysql.tpl
deleted file mode 100644
index d315558c61..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.alpha2.mysql.tpl
+++ /dev/null
@@ -1,35 +0,0 @@
-UPDATE civicrm_dashboard
-  SET civicrm_dashboard.url = CONCAT(SUBSTRING(url FROM 1 FOR LOCATE('&', url) - 1), '?', SUBSTRING(url FROM LOCATE('&', url) + 1))
-  WHERE civicrm_dashboard.url LIKE "%&%" AND civicrm_dashboard.url NOT LIKE "%?%";
-
-UPDATE civicrm_dashboard
-  SET civicrm_dashboard.fullscreen_url = CONCAT(SUBSTRING(fullscreen_url FROM 1 FOR LOCATE('&', fullscreen_url) - 1), '?', SUBSTRING(fullscreen_url FROM LOCATE('&', fullscreen_url) + 1))
-  WHERE civicrm_dashboard.fullscreen_url LIKE "%&%" AND civicrm_dashboard.fullscreen_url NOT LIKE "%?%";
-
--- CRM-14843 Added States for Chile and Modify Santiago Metropolitan for consistency
-INSERT IGNORE INTO civicrm_state_province (id, country_id, abbreviation, name) VALUES
-  (NULL, 1044, "LR",  "Los Rios"),
-  (NULL, 1044, "AP",  "Arica y Parinacota"),
-  (NULL, 1169, "AMA", "Amazonas");
-
-UPDATE civicrm_state_province
-  SET name = "Santiago Metropolitan", abbreviation = "SM"
-  WHERE name = "Region Metropolitana de Santiago" AND abbreviation = "RM";
-
--- CRM-14879 contact fields for scheduled reminders
-INSERT INTO civicrm_action_mapping
-  (entity, entity_value, entity_value_label, entity_status, entity_status_label, entity_date_start, entity_date_end, entity_recipient)
-  VALUES
-  ( 'civicrm_contact', 'civicrm_contact', 'Date Field', 'contact_date_reminder_options', 'Annual Options', 'date_field', NULL, NULL);
-
-INSERT INTO `civicrm_option_group` (`name`, {localize field='title'}`title`{/localize}, `is_reserved`, `is_active`, `is_locked`)
-  VALUES
-  ('contact_date_reminder_options', {localize}'{ts escape="sql"}Contact Date Reminder Options{/ts}'{/localize}, 1, 1, 1);
-
-SELECT @option_group_id_contactDateMode := max(id) from civicrm_option_group where name = 'contact_date_reminder_options';
-
-INSERT INTO `civicrm_option_value`
-  (`option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
-  VALUES
-  (@option_group_id_contactDateMode, {localize}'{ts escape="sql"}Actual date only{/ts}'{/localize}, '1', 'Actual date only', NULL, NULL, 0, 1, 0, 1, 1, NULL, NULL),
-  (@option_group_id_contactDateMode, {localize}'{ts escape="sql"}Each anniversary{/ts}'{/localize}, '2', 'Each anniversary', NULL, NULL, 0, 2, 0, 1, 1, NULL, NULL);
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta1.mysql.tpl
deleted file mode 100644
index f1a4e4ba1c..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta1.mysql.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{* file to handle db changes in 4.5.beta1 during upgrade *}
--- CRM-14807
-ALTER TABLE `civicrm_action_schedule`
-  ADD COLUMN `from_name` varchar(255) AFTER `absolute_date`;
-ALTER TABLE `civicrm_action_schedule`
-  ADD COLUMN `from_email` varchar(255) AFTER `from_name`;
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta2.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta2.mysql.tpl
deleted file mode 100644
index 35218350a5..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta2.mysql.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{* file to handle db changes in 4.5.beta2 during upgrade *}
-
-{include file='../CRM/Upgrade/4.5.beta2.msg_template/civicrm_msg_template.tpl'}
-
---CRM-14948 To delete list of outdated Russian provinance
-DELETE FROM `civicrm_state_province` WHERE `name` IN ('Komi-Permyatskiy avtonomnyy okrug','Taymyrskiy (Dolgano-Nenetskiy)','Evenkiyskiy avtonomnyy okrug','Koryakskiy avtonomnyy okrug','Ust\'-Ordynskiy Buryatskiy','Aginskiy Buryatskiy avtonomnyy');
-
---CRM-14948 To update new list of new Russian provinance
-UPDATE `civicrm_state_province` SET `name`='Perm krai',`abbreviation`='PEK',`country_id`= 1177 WHERE `id` = 4270;
-
-UPDATE `civicrm_state_province` SET `name`='Kamchatka Krai',`country_id`= 1177 WHERE `id` = 4252;
-
-UPDATE `civicrm_state_province` SET `name`='Zabaykalsky Krai',`abbreviation`='ZSK',`country_id`= 1177 WHERE `id` = 4247;
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta3.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta3.mysql.tpl
deleted file mode 100644
index 27bd4bac6d..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta3.mysql.tpl
+++ /dev/null
@@ -1,4 +0,0 @@
-{* file to handle db changes in 4.5.beta3 during upgrade *}
---CRM-15009
-ALTER TABLE `civicrm_payment_processor`
-CHANGE COLUMN `signature` `signature` LONGTEXT NULL DEFAULT NULL;
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta4.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta4.mysql.tpl
deleted file mode 100644
index a3f33a5978..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta4.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 4.5.beta4 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta5.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta5.mysql.tpl
deleted file mode 100644
index ba5b8053fd..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta5.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 4.5.beta5 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta6.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta6.mysql.tpl
deleted file mode 100644
index 6d58233b9a..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta6.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 4.5.beta6 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta7.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta7.mysql.tpl
deleted file mode 100644
index 15c91a5eb1..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta7.mysql.tpl
+++ /dev/null
@@ -1,2 +0,0 @@
-{* file to handle db changes in 4.5.beta7 during upgrade *}
-UPDATE civicrm_contribution SET net_amount = total_amount - fee_amount WHERE net_amount = 0 OR net_amount IS NULL;
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta8.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta8.mysql.tpl
deleted file mode 100644
index de6aaf381e..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta8.mysql.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{* file to handle db changes in 4.5.beta8 during upgrade *}
-
--- CRM-15143 Add Postal Code to contact reference and quick search options
-SELECT @option_group_id_cao := max(id) from civicrm_option_group where name = 'contact_autocomplete_options';
-SELECT @option_val_id_cao_wt := MAX(weight) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cao;
-SELECT @option_val_id_cao_val := MAX(ROUND(value)) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cao;
-INSERT INTO
-`civicrm_option_value` (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
-VALUES
-(@option_group_id_cao, {localize}'{ts escape="sql"}Postal Code{/ts}'{/localize}, @option_val_id_cao_val+1, 'postal_code', NULL, 0, NULL, @option_val_id_cao_wt+1, 0, 1, 1, NULL, NULL);
-
-SELECT @option_group_id_cro := max(id) from civicrm_option_group where name = 'contact_reference_options';
-SELECT @option_val_id_cro_wt := MAX(weight) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cro;
-SELECT @option_val_id_cro_val := MAX(ROUND(value)) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cro;
-INSERT INTO
-`civicrm_option_value` (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
-VALUES
-(@option_group_id_cro, {localize}'{ts escape="sql"}Postal Code{/ts}'{/localize}, @option_val_id_cro_val+1, 'postal_code', NULL, 0, NULL, @option_val_id_cro_wt+1, 0, 1, 1, NULL, NULL);
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta9.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta9.mysql.tpl
deleted file mode 100644
index 8bfdb728ff..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.5.beta9.mysql.tpl
+++ /dev/null
@@ -1,36 +0,0 @@
-{* file to handle db changes in 4.5.beta9 during upgrade *}
-
--- CRM-15211
-UPDATE `civicrm_dashboard` SET `permission` = 'access my cases and activities,access all cases and activities', `permission_operator` = 'OR' WHERE `name` = 'casedashboard';
-
--- CRM-15218
-UPDATE `civicrm_uf_group` SET name = LOWER(name) WHERE name IN ("New_Individual", "New_Organization", "New_Household");
-
--- CRM-15220
-UPDATE `civicrm_navigation` SET url = 'civicrm/admin/options/grant_type?reset=1' WHERE url = 'civicrm/admin/options/grant_type&reset=1';
-
-SELECT @parent_id := `id` FROM `civicrm_navigation` WHERE `name` = 'CiviGrant' AND `domain_id` = {$domainID};
-INSERT INTO civicrm_navigation
-( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
-VALUES
-( {$domainID}, 'civicrm/admin/options/grant_status?reset=1', '{ts escape="sql" skip="true"}Grant Status{/ts}', 'Grant Status', 'access CiviGrant,administer CiviCRM', 'AND', @parent_id, '1', NULL, 2 );
-
--- CRM-14853
-UPDATE civicrm_financial_trxn cft
-INNER JOIN ( SELECT max(cft.id) trxn_id, ceft.entity_id contribution_id
-FROM civicrm_financial_trxn cft
-LEFT JOIN civicrm_entity_financial_trxn ceft ON ceft.financial_trxn_id = cft.id
-WHERE ceft.entity_table = 'civicrm_contribution'
-GROUP BY ceft.entity_id ) as temp ON temp.trxn_id = cft.id
-INNER JOIN civicrm_contribution cc ON cc.id = temp.contribution_id
-AND cc.payment_instrument_id <> cft.payment_instrument_id
-SET cft.payment_instrument_id = cc.payment_instrument_id;
-
---CRM-15086
-SELECT @option_group_id_batch_status := id FROM civicrm_option_group WHERE name = 'batch_status';
-
-UPDATE civicrm_option_value SET name = 'Open' WHERE value = 1 AND option_group_id = @option_group_id_batch_status;
-UPDATE civicrm_option_value SET name = 'Closed' WHERE value = 2 AND option_group_id = @option_group_id_batch_status;
-UPDATE civicrm_option_value SET name = 'Data Entry' WHERE value = 3 AND option_group_id = @option_group_id_batch_status;
-UPDATE civicrm_option_value SET name = 'Reopened' WHERE value = 4 AND option_group_id = @option_group_id_batch_status;
-UPDATE civicrm_option_value SET name = 'Exported' WHERE value = 5 AND option_group_id = @option_group_id_batch_status;
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.29.alpha1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.29.alpha1.mysql.tpl
index 18b176d4b0..b28c407113 100644
--- a/civicrm/CRM/Upgrade/Incremental/sql/5.29.alpha1.mysql.tpl
+++ b/civicrm/CRM/Upgrade/Incremental/sql/5.29.alpha1.mysql.tpl
@@ -27,7 +27,7 @@ CREATE TABLE `civicrm_relationship_cache` (
      CONSTRAINT FK_civicrm_relationship_cache_relationship_type_id FOREIGN KEY (`relationship_type_id`) REFERENCES `civicrm_relationship_type`(`id`) ON DELETE CASCADE,
      CONSTRAINT FK_civicrm_relationship_cache_near_contact_id FOREIGN KEY (`near_contact_id`) REFERENCES `civicrm_contact`(`id`) ON DELETE CASCADE,
      CONSTRAINT FK_civicrm_relationship_cache_far_contact_id FOREIGN KEY (`far_contact_id`) REFERENCES `civicrm_contact`(`id`) ON DELETE CASCADE
-)  ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+)  ENGINE=InnoDB;
 
 -- Fix missing resubscribeUrl token. There doesn't seem to be any precedent
 -- for doing an upgrade for these, since the last update was in 2009 when
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.43.alpha1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.43.alpha1.mysql.tpl
new file mode 100644
index 0000000000..943d62201f
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/sql/5.43.alpha1.mysql.tpl
@@ -0,0 +1,7 @@
+{* file to handle db changes in 5.43.alpha1 during upgrade *}
+UPDATE civicrm_msg_template SET is_reserved = 0 WHERE is_reserved IS NULL;
+ALTER TABLE civicrm_msg_template
+MODIFY COLUMN `is_reserved` tinyint(4) DEFAULT 0 COMMENT 'is this the reserved message template which we ship for the workflow referenced by workflow_id?';
+
+{* https://github.com/civicrm/civicrm-core/pull/21472 *}
+ALTER TABLE civicrm_contribution_recur MODIFY COLUMN modified_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last updated date for this record. mostly the last time a payment was received';
diff --git a/civicrm/CRM/Upgrade/Page/Upgrade.php b/civicrm/CRM/Upgrade/Page/Upgrade.php
index 06a377924c..28b900df42 100644
--- a/civicrm/CRM/Upgrade/Page/Upgrade.php
+++ b/civicrm/CRM/Upgrade/Page/Upgrade.php
@@ -29,10 +29,7 @@ class CRM_Upgrade_Page_Upgrade extends CRM_Core_Page {
    * @throws \Exception
    */
   public function run() {
-    // lets get around the time limit issue if possible for upgrades
-    if (!ini_get('safe_mode')) {
-      set_time_limit(0);
-    }
+    set_time_limit(0);
 
     Civi::resources()->addStyleFile('civicrm', 'css/admin.css');
 
@@ -77,7 +74,7 @@ class CRM_Upgrade_Page_Upgrade extends CRM_Core_Page {
     $upgrade = new CRM_Upgrade_Form();
     $template = CRM_Core_Smarty::singleton();
     list($currentVer, $latestVer) = $upgrade->getUpgradeVersions();
-
+    CRM_Core_Smarty::singleton()->assign('sid', CRM_Utils_System::getSiteID());
     // Show success msg if db already upgraded
     if (version_compare($currentVer, $latestVer) == 0) {
       $template->assign('upgraded', TRUE);
@@ -191,7 +188,6 @@ class CRM_Upgrade_Page_Upgrade extends CRM_Core_Page {
 
     $template->assign('message', $postUpgradeMessage);
     $template->assign('upgraded', TRUE);
-    $template->assign('sid', CRM_Utils_System::getSiteID());
     $template->assign('newVersion', $latestVer);
 
     // Render page header
diff --git a/civicrm/CRM/Utils/Array.php b/civicrm/CRM/Utils/Array.php
index bbc931c38f..f507f7978b 100644
--- a/civicrm/CRM/Utils/Array.php
+++ b/civicrm/CRM/Utils/Array.php
@@ -1167,6 +1167,38 @@ class CRM_Utils_Array {
     }
   }
 
+  /**
+   * Attempt to synchronize or fill aliased items.
+   *
+   * If $canonPath is set, copy to $altPath; or...
+   * If $altPath is set, copy to $canonPath.
+   *
+   * @param array $params
+   *   Data-tree
+   * @param string[] $canonPath
+   *   Preferred path
+   * @param string[] $altPath
+   *   Old/alternate/deprecated path.
+   * @param callable|null $filter
+   *   Optional function to filter the value as it passes through (canonPath=>altPath or altPath=>canonPath).
+   *   function(mixed $v, bool $isCanon): mixed
+   */
+  public static function pathSync(&$params, $canonPath, $altPath, ?callable $filter = NULL) {
+    $MISSING = new \stdClass();
+
+    $v = static::pathGet($params, $canonPath, $MISSING);
+    if ($v !== $MISSING) {
+      static::pathSet($params, $altPath, $filter ? $filter($v, TRUE) : $v);
+      return;
+    }
+
+    $v = static::pathGet($params, $altPath, $MISSING);
+    if ($v !== $MISSING) {
+      static::pathSet($params, $canonPath, $filter ? $filter($v, FALSE) : $v);
+      return;
+    }
+  }
+
   /**
    * Convert a simple dictionary into separate key+value records.
    *
diff --git a/civicrm/CRM/Utils/Date.php b/civicrm/CRM/Utils/Date.php
index 093862b844..d2a7bab78d 100644
--- a/civicrm/CRM/Utils/Date.php
+++ b/civicrm/CRM/Utils/Date.php
@@ -160,8 +160,10 @@ class CRM_Utils_Date {
    *
    */
   public static function getAbbrWeekdayNames() {
-    static $days = [];
+    $key = 'abbrDays_' . \CRM_Core_I18n::getLocale();
+    $days = &\Civi::$statics[__CLASS__][$key];
     if (!$days) {
+      $days = [];
       // First day of the week
       $firstDay = Civi::settings()->get('weekBegins');
 
@@ -189,8 +191,10 @@ class CRM_Utils_Date {
    *
    */
   public static function getFullWeekdayNames() {
-    static $days = [];
+    $key = 'fullDays_' . \CRM_Core_I18n::getLocale();
+    $days = &\Civi::$statics[__CLASS__][$key];
     if (!$days) {
+      $days = [];
       // First day of the week
       $firstDay = Civi::settings()->get('weekBegins');
 
@@ -214,7 +218,8 @@ class CRM_Utils_Date {
    *
    */
   public static function &getAbbrMonthNames($month = FALSE) {
-    static $abbrMonthNames;
+    $key = 'abbrMonthNames_' . \CRM_Core_I18n::getLocale();
+    $abbrMonthNames = &\Civi::$statics[__CLASS__][$key];
     if (!isset($abbrMonthNames)) {
 
       // set LC_TIME and build the arrays from locale-provided names
@@ -237,16 +242,28 @@ class CRM_Utils_Date {
    *
    */
   public static function &getFullMonthNames() {
-    static $fullMonthNames;
-    if (!isset($fullMonthNames)) {
-
-      // set LC_TIME and build the arrays from locale-provided names
-      CRM_Core_I18n::setLcTime();
-      for ($i = 1; $i <= 12; $i++) {
-        $fullMonthNames[$i] = strftime('%B', mktime(0, 0, 0, $i, 10, 1970));
-      }
+    $key = 'fullMonthNames_' . \CRM_Core_I18n::getLocale();
+    if (empty(\Civi::$statics[__CLASS__][$key])) {
+      // Not relying on strftime because it depends on the operating system
+      // and most people will not have a non-US locale configured out of the box
+      // Ignoring other date names for now, since less visible by default
+      \Civi::$statics[__CLASS__][$key] = [
+        1 => ts('January'),
+        2 => ts('February'),
+        3 => ts('March'),
+        4 => ts('April'),
+        5 => ts('May'),
+        6 => ts('June'),
+        7 => ts('July'),
+        8 => ts('August'),
+        9 => ts('September'),
+        10 => ts('October'),
+        11 => ts('November'),
+        12 => ts('December'),
+      ];
     }
-    return $fullMonthNames;
+
+    return \Civi::$statics[__CLASS__][$key];
   }
 
   /**
diff --git a/civicrm/CRM/Utils/GuzzleMiddleware.php b/civicrm/CRM/Utils/GuzzleMiddleware.php
index b6e8fb7e2d..0c98153612 100644
--- a/civicrm/CRM/Utils/GuzzleMiddleware.php
+++ b/civicrm/CRM/Utils/GuzzleMiddleware.php
@@ -8,6 +8,106 @@ use Psr\Http\Message\RequestInterface;
  */
 class CRM_Utils_GuzzleMiddleware {
 
+  /**
+   * The authx middleware sends authenticated requests via JWT.
+   *
+   * To add an authentication token to a specific request, the `$options`
+   * must specify `authx_user` or `authx_contact_id`. Examples:
+   *
+   * $http = new GuzzleHttp\Client(['authx_user' => 'admin']);
+   * $http->post('civicrm/admin', ['authx_user' => 'admin']);
+   *
+   * Supported options:
+   *   - authx_ttl (int): Seconds of validity for JWT's
+   *   - authx_host (string): Only send tokens for the given host.
+   *   - authx_contact_id (int): The CiviCRM contact to authenticate with
+   *   - authx_user (string): The CMS user to authenticate with
+   *   - authx_flow (string): How to format the auth token. One of: 'param', 'xheader', 'header'.
+   *
+   * @return \Closure
+   */
+  public static function authx($defaults = []) {
+    $defaults = array_merge([
+      'authx_ttl' => 60,
+      'authx_host' => parse_url(CIVICRM_UF_BASEURL, PHP_URL_HOST),
+      'authx_contact_id' => NULL,
+      'authx_user' => NULL,
+      'authx_flow' => 'param',
+    ], $defaults);
+    return function(callable $handler) use ($defaults) {
+      return function (RequestInterface $request, array $options) use ($handler, $defaults) {
+        if ($request->getUri()->getHost() !== $defaults['authx_host']) {
+          return $handler($request, $options);
+        }
+
+        $options = array_merge($defaults, $options);
+        if (!empty($options['authx_contact_id'])) {
+          $cid = $options['authx_contact_id'];
+        }
+        elseif (!empty($options['authx_user'])) {
+          $r = civicrm_api3("Contact", "get", ["id" => "@user:" . $options['authx_user']]);
+          foreach ($r['values'] as $id => $value) {
+            $cid = $id;
+            break;
+          }
+          if (empty($cid)) {
+            throw new \RuntimeException("Failed to identify user ({$options['authx_user']})");
+          }
+        }
+        else {
+          $cid = NULL;
+        }
+
+        if ($cid) {
+          if (!CRM_Extension_System::singleton()->getMapper()->isActiveModule('authx')) {
+            throw new \RuntimeException("Authx is not enabled. Authenticated requests will not work.");
+          }
+          $tok = \Civi::service('crypto.jwt')->encode([
+            'exp' => time() + $options['authx_ttl'],
+            'sub' => 'cid:' . $cid,
+            'scope' => 'authx',
+          ]);
+
+          switch ($options['authx_flow']) {
+            case 'header':
+              $request = $request->withHeader('Authorization', "Bearer $tok");
+              break;
+
+            case 'xheader':
+              $request = $request->withHeader('X-Civi-Auth', "Bearer $tok");
+              break;
+
+            case 'param':
+              if ($request->getMethod() === 'POST') {
+                if (!empty($request->getHeader('Content-Type')) && !preg_grep(';application/x-www-form-urlencoded;', $request->getHeader('Content-Type'))) {
+                  throw new \RuntimeException("Cannot append authentication credentials to HTTP POST. Unrecognized content type.");
+                }
+                $query = (string) $request->getBody();
+                $request = $request->withHeader('Content-Type', 'application/x-www-form-urlencoded');
+                $request = new GuzzleHttp\Psr7\Request(
+                  $request->getMethod(),
+                  $request->getUri(),
+                  $request->getHeaders(),
+                  http_build_query(['_authx' => "Bearer $tok"]) . ($query ? '&' : '') . $query
+                );
+              }
+              else {
+                $query = $request->getUri()->getQuery();
+                $request = $request->withUri($request->getUri()->withQuery(
+                  http_build_query(['_authx' => "Bearer $tok"]) . ($query ? '&' : '') . $query
+                ));
+              }
+              break;
+
+            default:
+              throw new \RuntimeException("Unrecognized authx flow: {$options['authx_flow']}");
+          }
+        }
+        return $handler($request, $options);
+      };
+    };
+  }
+
   /**
    * Add this as a Guzzle handler/middleware if you wish to simplify
    * the construction of Civi-related URLs. It enables URL schemes for:
diff --git a/civicrm/CRM/Utils/HttpClient.php b/civicrm/CRM/Utils/HttpClient.php
index c2d12ae18c..0286c4f793 100644
--- a/civicrm/CRM/Utils/HttpClient.php
+++ b/civicrm/CRM/Utils/HttpClient.php
@@ -201,7 +201,7 @@ class CRM_Utils_HttpClient {
    * @return bool
    */
   public function isRedirectSupported() {
-    return (ini_get('open_basedir') == '') && (ini_get('safe_mode') == 'Off' || ini_get('safe_mode') == '' || ini_get('safe_mode') === FALSE);
+    return (ini_get('open_basedir') == '');
   }
 
 }
diff --git a/civicrm/CRM/Utils/PDF/Document.php b/civicrm/CRM/Utils/PDF/Document.php
index e087a9228a..0b796322a2 100644
--- a/civicrm/CRM/Utils/PDF/Document.php
+++ b/civicrm/CRM/Utils/PDF/Document.php
@@ -68,6 +68,15 @@ class CRM_Utils_PDF_Document {
       'marginBottom' => self::toTwip(CRM_Core_BAO_PdfFormat::getValue('margin_bottom', $format), $metric),
       'marginLeft' => self::toTwip(CRM_Core_BAO_PdfFormat::getValue('margin_left', $format), $metric),
     ];
+    if (CIVICRM_UF === 'UnitTests' && headers_sent()) {
+      // Streaming content will 'die' in unit tests unless ob_start()
+      // has been called.
+      throw new CRM_Core_Exception_PrematureExitException('_html2doc called', [
+        'html' => $pages,
+        'fileName' => $fileName,
+        'pageStyle' => $pageStyle,
+      ]);
+    }
 
     $ext = pathinfo($fileName, PATHINFO_EXTENSION);
 
diff --git a/civicrm/CRM/Utils/PDF/Utils.php b/civicrm/CRM/Utils/PDF/Utils.php
index 2459ce3af2..8c97d681a8 100644
--- a/civicrm/CRM/Utils/PDF/Utils.php
+++ b/civicrm/CRM/Utils/PDF/Utils.php
@@ -179,10 +179,7 @@ class CRM_Utils_PDF_Utils {
    * @return string
    */
   public static function _html2pdf_dompdf($paper_size, $orientation, $html, $output, $fileName) {
-    // CRM-12165 - Remote file support required for image handling.
-    $options = new Options();
-    $options->set('isRemoteEnabled', TRUE);
-
+    $options = self::getDompdfOptions();
     $dompdf = new DOMPDF($options);
     $dompdf->set_paper($paper_size, $orientation);
     $dompdf->load_html($html);
@@ -300,4 +297,28 @@ class CRM_Utils_PDF_Utils {
     return $value;
   }
 
+  /**
+   * Allow setting some dompdf options.
+   *
+   * We don't support all the available dompdf options.
+   *
+   * @return \Dompdf\Options
+   */
+  private static function getDompdfOptions(): Options {
+    $options = new Options();
+    $settings = [
+      // CRM-12165 - Remote file support required for image handling so default to TRUE
+      'enable_remote' => \Civi::settings()->get('dompdf_enable_remote') ?? TRUE,
+    ];
+    // only set these ones if a setting exists for them
+    foreach (['font_dir', 'chroot', 'log_output_file'] as $setting) {
+      $value = \Civi::settings()->get("dompdf_$setting");
+      if (isset($value)) {
+        $settings[$setting] = $value;
+      }
+    }
+    $options->set($settings);
+    return $options;
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/Backdrop.php b/civicrm/CRM/Utils/System/Backdrop.php
index 3d72779f15..3fb3b6cc77 100644
--- a/civicrm/CRM/Utils/System/Backdrop.php
+++ b/civicrm/CRM/Utils/System/Backdrop.php
@@ -1056,4 +1056,16 @@ AND    u.status = 1
     return ['ufAccessURL' => url('admin/config/people/permissions')];
   }
 
+  /**
+   * Get the CRM database as a 'prefix'.
+   *
+   * This returns a string that can be prepended to a query to include a CRM table.
+   *
+   * However, this string should contain backticks, or not, in accordance with the
+   * CMS's drupal views expectations, if any.
+   */
+  public function getCRMDatabasePrefix(): string {
+    return str_replace(parent::getCRMDatabasePrefix(), '`', '');
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/Base.php b/civicrm/CRM/Utils/System/Base.php
index e08bad2c06..933a952a59 100644
--- a/civicrm/CRM/Utils/System/Base.php
+++ b/civicrm/CRM/Utils/System/Base.php
@@ -1051,6 +1051,23 @@ abstract class CRM_Utils_System_Base {
     return [];
   }
 
+  /**
+   * Get the CRM database as a 'prefix'.
+   *
+   * This returns a string that can be prepended to a query to include a CRM table.
+   *
+   * However, this string should contain backticks, or not, in accordance with the
+   * CMS's drupal views expectations, if any.
+   */
+  public function getCRMDatabasePrefix(): string {
+    $crmDatabase = DB::parseDSN(CRM_Core_Config::singleton()->dsn)['database'];
+    $cmsDatabase = DB::parseDSN(CRM_Core_Config::singleton()->userFrameworkDSN)['database'];
+    if ($crmDatabase === $cmsDatabase) {
+      return '';
+    }
+    return "`$crmDatabase`.";
+  }
+
   /**
    * Invalidates the cache of dynamic routes and forces a rebuild.
    */
diff --git a/civicrm/CRM/Utils/System/Drupal8.php b/civicrm/CRM/Utils/System/Drupal8.php
index a1ef60ee45..06db470714 100644
--- a/civicrm/CRM/Utils/System/Drupal8.php
+++ b/civicrm/CRM/Utils/System/Drupal8.php
@@ -82,10 +82,11 @@ class CRM_Utils_System_Drupal8 extends CRM_Utils_System_DrupalBase {
     //      self-registers.
     //    - 'register_pending_approval': Welcome message, user pending admin
     //      approval.
-    // @Todo: Should we only send off emails if $params['notify'] is set?
     switch (TRUE) {
       case $user_register_conf == 'admin_only' || $user->isAuthenticated():
-        _user_mail_notify('register_admin_created', $account);
+        if (!empty($params['notify'])) {
+          _user_mail_notify('register_admin_created', $account);
+        }
         break;
 
       case $user_register_conf == 'visitors':
diff --git a/civicrm/CRM/Utils/System/UnitTests.php b/civicrm/CRM/Utils/System/UnitTests.php
index 6ac827fa91..547b93f98d 100644
--- a/civicrm/CRM/Utils/System/UnitTests.php
+++ b/civicrm/CRM/Utils/System/UnitTests.php
@@ -34,6 +34,7 @@ class CRM_Utils_System_UnitTests extends CRM_Utils_System_Base {
       $listenerMap = \Civi\Core\Event\EventScanner::findListeners($test);
       \Civi::dispatcher()->addListenerMap($test, $listenerMap);
     }
+    \Civi\Test::eventChecker()->addListeners();
   }
 
   /**
diff --git a/civicrm/CRM/Utils/System/WordPress.php b/civicrm/CRM/Utils/System/WordPress.php
index d69c0fcc21..5348ae6cf1 100644
--- a/civicrm/CRM/Utils/System/WordPress.php
+++ b/civicrm/CRM/Utils/System/WordPress.php
@@ -922,7 +922,10 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
     if (!current_user_can('create_users')) {
       $creds = [];
       $creds['user_login'] = $params['cms_name'];
+      $creds['user_password'] = $user_data['user_pass'];
       $creds['remember'] = TRUE;
+
+      // @todo handle a wp_signon failure
       wp_signon($creds, FALSE);
     }
 
diff --git a/civicrm/CRM/Utils/Token.php b/civicrm/CRM/Utils/Token.php
index f2aec1d44e..3dddf5602f 100644
--- a/civicrm/CRM/Utils/Token.php
+++ b/civicrm/CRM/Utils/Token.php
@@ -257,56 +257,11 @@ class CRM_Utils_Token {
    * @return null|string
    */
   public static function getDomainTokenReplacement($token, $domain, $html = FALSE, $escapeSmarty = FALSE): ?string {
-    // check if the token we were passed is valid
-    // we have to do this because this function is
-    // called only when we find a token in the string
-
-    $loc = $domain->getLocationValues();
-
-    if (!in_array($token, self::$_tokens['domain'])) {
-      $value = "{domain.$token}";
-    }
-    elseif ($token === 'address') {
-      $cacheKey = __CLASS__ . 'address_token_cache' . CRM_Core_Config::domainID();
-      $addressCache = Civi::cache()->has($cacheKey) ? Civi::cache()->get($cacheKey) : [];
-
-      $fieldKey = $html ? 'address-html' : 'address-text';
-      if (array_key_exists($fieldKey, $addressCache)) {
-        return $addressCache[$fieldKey];
-      }
-
-      $value = NULL;
-      // Construct the address token
-
-      if (!empty($loc[$token])) {
-        if ($html) {
-          $value = str_replace("\n", '<br />', $loc[$token][1]['display']);
-        }
-        else {
-          $value = $loc[$token][1]['display_text'];
-        }
-        Civi::cache()->set($cacheKey, $addressCache);
-      }
-    }
-    elseif ($token === 'name' || $token === 'id' || $token === 'description') {
-      $value = $domain->$token;
-    }
-    elseif ($token === 'phone' || $token === 'email') {
-      // Construct the phone and email tokens
-
-      $value = NULL;
-      if (!empty($loc[$token])) {
-        foreach ($loc[$token] as $index => $entity) {
-          $value = $entity[$token];
-          break;
-        }
-      }
-    }
-
+    $tokens = CRM_Core_DomainTokens::getDomainTokenValues($domain->id, $html);
+    $value = $tokens[$token] ?? "{domain.$token}";
     if ($escapeSmarty) {
       $value = self::tokenEscapeSmarty($value);
     }
-
     return $value;
   }
 
@@ -341,6 +296,7 @@ class CRM_Utils_Token {
    *   The processed string
    */
   public static function replaceOrgTokens($str, &$org, $html = FALSE, $escapeSmarty = FALSE) {
+    CRM_Core_Error::deprecatedFunctionWarning('token processor');
     self::$_tokens['org']
       = array_merge(
         array_keys(CRM_Contact_BAO_Contact::importableFields('Organization')),
@@ -715,7 +671,7 @@ class CRM_Utils_Token {
     // we have to do this because this function is
     // called only when we find a token in the string
 
-    if (!in_array($token, self::$_tokens['contact'])) {
+    if (!in_array(str_replace(':label', '', $token), self::$_tokens['contact'])) {
       $noReplace = TRUE;
     }
     elseif ($token == 'checksum') {
@@ -729,10 +685,10 @@ class CRM_Utils_Token {
       $value = "cs={$cs}";
     }
     else {
-      $value = (array) CRM_Utils_Array::retrieveValueRecursive($contact, $token);
+      $value = (array) CRM_Utils_Array::retrieveValueRecursive($contact, str_replace(':label', '', $token));
 
       foreach ($value as $index => $item) {
-        $value[$index] = self::convertPseudoConstantsUsingMetadata($value[$index], $token);
+        $value[$index] = self::convertPseudoConstantsUsingMetadata($value[$index], str_replace(':label', '', $token));
       }
       $value = implode(', ', $value);
     }
@@ -821,6 +777,7 @@ class CRM_Utils_Token {
    * @param string $entityType
    * @return string
    *   html parsed through smarty
+   * @deprecated
    */
   public static function parseThroughSmarty($tokenHtml, $entity, $entityType = 'contact') {
     if (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY) {
@@ -867,6 +824,8 @@ class CRM_Utils_Token {
    *
    * this routine will remove the extra backslashes and braces
    *
+   * @deprecated
+   *
    * @param $str ref to the string that will be scanned and modified
    */
   public static function unescapeTokens(&$str) {
@@ -1066,8 +1025,11 @@ class CRM_Utils_Token {
    *
    * @return string
    *   The processed string
+   *
+   * @deprecated
    */
-  public static function &replaceComponentTokens(&$str, $contact, $components, $escapeSmarty = FALSE, $returnEmptyToken = TRUE) {
+  public static function replaceComponentTokens(&$str, $contact, $components, $escapeSmarty = FALSE, $returnEmptyToken = TRUE) {
+    CRM_Core_Error::deprecatedFunctionWarning('use the token processor');
     if (!is_array($components) || empty($contact)) {
       return $str;
     }
@@ -1321,6 +1283,8 @@ class CRM_Utils_Token {
    * Get Membership Token Details.
    * @param array $membershipIDs
    *   Array of membership IDS.
+   *
+   * @deprecated
    */
   public static function getMembershipTokenDetails($membershipIDs) {
     $memberships = civicrm_api3('membership', 'get', [
@@ -1559,20 +1523,42 @@ class CRM_Utils_Token {
     return $value;
   }
 
+  /**
+   * @deprecated
+   *
+   * Do not use this function - it still needs full removal from active code
+   * in CRM_Contribute_Form_Task_PDFLetter.
+   */
   protected static function _buildContributionTokens() {
     $key = 'contribution';
 
     if (!isset(Civi::$statics[__CLASS__][__FUNCTION__][$key])) {
-      $processor = new CRM_Contribute_Tokens();
       $tokens = array_merge(CRM_Contribute_BAO_Contribution::exportableFields('All'),
         ['campaign' => [], 'financial_type' => [], 'payment_instrument' => []],
         self::getCustomFieldTokens('Contribution'),
-        $processor->getPseudoTokens()
+        [
+          'financial_type_id:label',
+          'financial_type_id:name',
+          'contribution_page_id:label',
+          'contribution_page_id:name',
+          'payment_instrument_id:label',
+          'payment_instrument_id:name',
+          'is_test:label',
+          'is_pay_later:label',
+          'contribution_status_id:label',
+          'contribution_status_id:name',
+          'is_template:label',
+          'campaign_id:label',
+          'campaign_id:name',
+        ]
       );
       foreach ($tokens as $token) {
         if (!empty($token['name'])) {
           $tokens[$token['name']] = [];
         }
+        elseif (is_string($token) && strpos($token, ':') !== FALSE) {
+          $tokens[$token] = [];
+        }
       }
       Civi::$statics[__CLASS__][__FUNCTION__][$key] = array_keys($tokens);
     }
@@ -1580,21 +1566,10 @@ class CRM_Utils_Token {
   }
 
   /**
-   * Store membership tokens on the static _tokens array.
-   */
-  protected static function _buildMembershipTokens() {
-    $key = 'membership';
-    if (!isset(self::$_tokens[$key]) || self::$_tokens[$key] == NULL) {
-      $membershipTokens = [];
-      $tokens = CRM_Core_SelectValues::membershipTokens();
-      foreach ($tokens as $token => $dontCare) {
-        $membershipTokens[] = substr($token, (strpos($token, '.') + 1), -1);
-      }
-      self::$_tokens[$key] = $membershipTokens;
-    }
-  }
-
-  /**
+   * Do not use.
+   *
+   * @deprecated
+   *
    * Replace tokens for an entity.
    * @param string $entity
    * @param array $entityArray
@@ -1616,7 +1591,12 @@ class CRM_Utils_Token {
     $fn = is_callable(['CRM_Utils_Token', $fn]) ? $fn : 'getApiTokenReplacement';
     // since we already know the tokens lets just use them & do str_replace which is faster & simpler than preg_replace
     foreach ($knownTokens[$entity] as $token) {
-      $replacement = self::$fn($entity, $token, $entityArray);
+      // We are now supporting the syntax case_type_id:label
+      // so strip anything after the ':'
+      // (we aren't supporting 'name' at this stage, so we can assume 'label'
+      // test cover in TokenConsistencyTest.
+      $parts = explode(':', $token);
+      $replacement = self::$fn($entity, $parts[0], $entityArray);
       if ($escapeSmarty) {
         $replacement = self::tokenEscapeSmarty($replacement);
       }
@@ -1626,6 +1606,8 @@ class CRM_Utils_Token {
   }
 
   /**
+   * @deprecated
+   *
    * @param int $caseId
    * @param string $str
    * @param array $knownTokens
@@ -1647,6 +1629,8 @@ class CRM_Utils_Token {
   /**
    * Generic function for formatting token replacement for an api field
    *
+   * @deprecated
+   *
    * @param string $entity
    * @param string $token
    * @param array $entityArray
@@ -1673,13 +1657,15 @@ class CRM_Utils_Token {
       return implode(', ', $ret);
     }
     // Format date fields
-    elseif ($entityArray[$token] && $fieldType == CRM_Utils_Type::T_DATE) {
+    elseif ($entityArray[$token] && in_array($fieldType, [CRM_Utils_Type::T_DATE, CRM_Utils_Type::T_TIMESTAMP, (CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME)])) {
       return CRM_Utils_Date::customFormat($entityArray[$token]);
     }
     return implode(', ', (array) $entityArray[$token]);
   }
 
   /**
+   * Do not use - unused in core.
+   *
    * Replace Contribution tokens in html.
    *
    * @param string $str
@@ -1688,6 +1674,8 @@ class CRM_Utils_Token {
    * @param string $knownTokens
    * @param bool|string $escapeSmarty
    *
+   * @deprecated
+   *
    * @return mixed
    */
   public static function replaceContributionTokens($str, &$contribution, $html = FALSE, $knownTokens = NULL, $escapeSmarty = FALSE) {
@@ -1729,9 +1717,12 @@ class CRM_Utils_Token {
    * @param array $contributions
    * @param array $knownTokens
    *
+   * @deprecated
+   *
    * @return string
    */
   public static function replaceMultipleContributionTokens(string $separator, string $str, array $contributions, array $knownTokens): string {
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
     foreach ($knownTokens['contribution'] ?? [] as $token) {
       $resolvedTokens = [];
       foreach ($contributions as $contribution) {
@@ -1745,6 +1736,14 @@ class CRM_Utils_Token {
   /**
    * Get replacement strings for any membership tokens (only a small number of tokens are implemnted in the first instance
    * - this is used by the pdfLetter task from membership search
+   *
+   * This is called via replaceEntityTokens.
+   *
+   * In the near term it will not be called at all from core as
+   * the pdf letter task is updated to use the processor.
+   *
+   * @deprecated
+   *
    * @param string $entity
    *   should always be "membership"
    * @param string $token
@@ -1754,13 +1753,29 @@ class CRM_Utils_Token {
    * @return string token replacement
    */
   public static function getMembershipTokenReplacement($entity, $token, $membership) {
-    self::_buildMembershipTokens();
+    $supportedTokens = [
+      'id',
+      'status',
+      'status_id',
+      'type',
+      'membership_type_id',
+      'start_date',
+      'join_date',
+      'end_date',
+      'fee',
+    ];
     switch ($token) {
       case 'type':
+        // membership_type_id would only be requested if the calling
+        // class is mapping it to '{membership:membership_type_id:label'}
+      case 'membership_type_id':
         $value = $membership['membership_name'];
         break;
 
       case 'status':
+        // status_id would only be requested if the calling
+        // class is mapping it to '{membership:status_id:label'}
+      case 'status_id':
         $statuses = CRM_Member_BAO_Membership::buildOptions('status_id');
         $value = $statuses[$membership['status_id']];
         break;
@@ -1781,7 +1796,7 @@ class CRM_Utils_Token {
         break;
 
       default:
-        if (in_array($token, self::$_tokens[$entity])) {
+        if (in_array($token, $supportedTokens)) {
           $value = $membership[$token];
           if (CRM_Utils_String::endsWith($token, '_date')) {
             $value = CRM_Utils_Date::customFormat($value);
@@ -1798,15 +1813,19 @@ class CRM_Utils_Token {
   }
 
   /**
+   * Do not use - unused in core.
+   *
    * @param $token
    * @param $contribution
    * @param bool $html
    * @param bool $escapeSmarty
    *
+   * @deprecated
+   *
    * @return mixed|string
    * @throws \CRM_Core_Exception
    */
-  public static function getContributionTokenReplacement($token, &$contribution, $html = FALSE, $escapeSmarty = FALSE) {
+  public static function getContributionTokenReplacement($token, $contribution, $html = FALSE, $escapeSmarty = FALSE) {
     self::_buildContributionTokens();
 
     switch ($token) {
@@ -1827,6 +1846,10 @@ class CRM_Utils_Token {
         $value = CRM_Utils_Date::customFormat($value, $config->dateformatDatetime);
         break;
 
+      case 'source':
+        $value = CRM_Utils_Array::retrieveValueRecursive($contribution, 'contribution_source');
+        break;
+
       default:
         if (!in_array($token, self::$_tokens['contribution'])) {
           $value = "{contribution.$token}";
@@ -1859,19 +1882,17 @@ class CRM_Utils_Token {
   /**
    * Get all custom field tokens of $entity
    *
-   * @param string $entity
-   * @param bool $usedForTokenWidget
+   * @deprecated
    *
+   * @param string $entity
    * @return array
    *   return custom field tokens in array('custom_N' => 'label') format
    */
-  public static function getCustomFieldTokens($entity, $usedForTokenWidget = FALSE) {
+  public static function getCustomFieldTokens($entity) {
     $customTokens = [];
-    $tokenName = $usedForTokenWidget ? "{contribution.custom_%d}" : "custom_%d";
     foreach (CRM_Core_BAO_CustomField::getFields($entity) as $id => $info) {
-      $customTokens[sprintf($tokenName, $id)] = $info['label'];
+      $customTokens['custom_' . $id] = $info['label'] . ' :: ' . $info['groupTitle'];
     }
-
     return $customTokens;
   }
 
@@ -1947,6 +1968,12 @@ class CRM_Utils_Token {
         'contribution_invoice_receipt' => [
           '$display_name' => 'contact.display_name',
         ],
+        'contribution_online_receipt' => [
+          '$contributeMode' => 'no longer available / relevant',
+          '$first_name' => 'contact.first_name',
+          '$last_name' => 'contact.last_name',
+          '$displayName' => 'contact.display_name',
+        ],
       ],
     ];
   }
diff --git a/civicrm/Civi.php b/civicrm/Civi.php
index a018bb54d9..f087d19c8d 100644
--- a/civicrm/Civi.php
+++ b/civicrm/Civi.php
@@ -1,5 +1,7 @@
 <?php
 
+use Civi\Core\Format;
+
 /**
  * Class Civi
  *
@@ -103,6 +105,15 @@ class Civi {
     return \Civi\Core\Container::getBootService('paths');
   }
 
+  /**
+   * Obtain the formatting object.
+   *
+   * @return \Civi\Core\Format
+   */
+  public static function format(): Format {
+    return new Civi\Core\Format();
+  }
+
   /**
    * Fetch a service from the container.
    *
diff --git a/civicrm/Civi/API/Request.php b/civicrm/Civi/API/Request.php
index 5ad9b9d219..65d5c28035 100644
--- a/civicrm/Civi/API/Request.php
+++ b/civicrm/Civi/API/Request.php
@@ -10,7 +10,7 @@
  */
 namespace Civi\API;
 
-use Civi\Api4\Utils\CoreUtil;
+use Civi\Api4\Event\CreateApi4RequestEvent;
 
 /**
  * Class Request
@@ -45,17 +45,17 @@ class Request {
         ];
 
       case 4:
-        // For custom pseudo-entities
-        if (strpos($entity, 'Custom_') === 0) {
-          $apiRequest = \Civi\Api4\CustomValue::$action(substr($entity, 7));
-        }
-        else {
-          $callable = [CoreUtil::getApiClass($entity), $action];
-          if (!is_callable($callable)) {
-            throw new \Civi\API\Exception\NotImplementedException("API ($entity, $action) does not exist (join the API team and implement it!)");
-          }
-          $apiRequest = call_user_func($callable);
+        // Load the API kernel service for registering API providers, as
+        // otherwise subscribers to the civi.api4.createRequest event registered
+        // through the EventSubscriberInterface will not be registered.
+        $kernel = \Civi::service('civi_api_kernel');
+        $e = new CreateApi4RequestEvent($entity);
+        \Civi::dispatcher()->dispatch('civi.api4.createRequest', $e);
+        $callable = [$e->className, $action];
+        if (!$e->className || !is_callable($callable)) {
+          throw new \Civi\API\Exception\NotImplementedException("API ($entity, $action) does not exist (join the API team and implement it!)");
         }
+        $apiRequest = call_user_func_array($callable, $e->args);
         foreach ($params as $name => $param) {
           $setter = 'set' . ucfirst($name);
           $apiRequest->$setter($param);
diff --git a/civicrm/Civi/ActionSchedule/Event/MailingQueryEvent.php b/civicrm/Civi/ActionSchedule/Event/MailingQueryEvent.php
index bd6324c429..eaad9364ee 100644
--- a/civicrm/Civi/ActionSchedule/Event/MailingQueryEvent.php
+++ b/civicrm/Civi/ActionSchedule/Event/MailingQueryEvent.php
@@ -32,13 +32,10 @@ use Symfony\Component\EventDispatcher\Event;
  *
  * - Joining to business tables - to help target filter-criteria/temporal criteria on other entites.
  *   (Ex: Join to the `civicrm_participant` table and filter on participant status or registration date.)
- * - Joining business tables - to select/return additional columns. Feed the data downstream for mail-merge/token-handling. As in:
- *     - (Recommended) Return the IDs of business-records. Use the prefix `tokenContext_*`.
- *       Ex query: `$event->query->select('foo.id AS tokenContext_fooId')
- *       Ex output: `$tokenRow->context['fooId']`
- *     - (Deprecated) Return detailed data of business-records. Ex:
- *       Ex query: `$event->query->select('foo.title as foo_title, foo.status_id as foo_status_id')`
- *       Ex output: `$tokenRow->context['actionSearchResult']->foo_title`
+ * - Joining business tables - to select/return additional columns. In particular, return the IDs of business-records that
+ *   may be useful for token-handling. Use the prefix `tokenContext_*`.
+ *     Ex query: `$event->query->select('foo.id AS tokenContext_fooId')
+ *     Ex output: `$tokenRow->context['fooId']`
  *
  * There are several parameters pre-set for use in queries:
  *  - 'casActionScheduleId'
diff --git a/civicrm/Civi/Api4/Action/Entity/Get.php b/civicrm/Civi/Api4/Action/Entity/Get.php
index 024ffadba2..3e98e7f348 100644
--- a/civicrm/Civi/Api4/Action/Entity/Get.php
+++ b/civicrm/Civi/Api4/Action/Entity/Get.php
@@ -12,10 +12,10 @@
 
 namespace Civi\Api4\Action\Entity;
 
-use Civi\Api4\CustomGroup;
 use Civi\Api4\CustomValue;
 use Civi\Api4\Service\Schema\Joinable\CustomGroupJoinable;
 use Civi\Api4\Utils\CoreUtil;
+use Civi\Core\Event\GenericHookEvent;
 
 /**
  * Get the names & docblocks of all APIv4 entities.
@@ -36,31 +36,23 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
    * Scan all api directories to discover entities
    */
   protected function getRecords() {
-    $entities = [];
-    $namesRequested = $this->_itemsToGet('name');
+    $cache = \Civi::cache('metadata');
+    $entities = $cache->get('api4.entities.info', []);
 
-    if ($namesRequested) {
-      foreach ($namesRequested as $entityName) {
-        if (strpos($entityName, 'Custom_') !== 0) {
-          $className = CoreUtil::getApiClass($entityName);
-          if ($className) {
-            $this->loadEntity($className, $entities);
-          }
-        }
-      }
-    }
-    else {
+    if (!$entities) {
+      // Load entities declared in API files
       foreach ($this->getAllApiClasses() as $className) {
         $this->loadEntity($className, $entities);
       }
-    }
-
-    // Fetch custom entities unless we've already fetched everything requested
-    if (!$namesRequested || array_diff($namesRequested, array_keys($entities))) {
+      // Load entities based on custom data
       $entities = array_merge($entities, $this->getCustomEntities());
+      // Allow extensions to modify the list of entities
+      $event = GenericHookEvent::create(['entities' => &$entities]);
+      \Civi::dispatcher()->dispatch('civi.api4.entityTypes', $event);
+      ksort($entities);
+      $cache->set('api4.entities.info', $entities);
     }
 
-    ksort($entities);
     return $entities;
   }
 
@@ -81,24 +73,20 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
    * @return \Civi\Api4\Generic\AbstractEntity[]
    */
   private function getAllApiClasses() {
-    $cache = \Civi::cache('metadata');
-    $classNames = $cache->get('api4.entities.classNames', []);
-    if (!$classNames) {
-      $locations = array_merge([\Civi::paths()->getPath('[civicrm.root]/Civi.php')],
-        array_column(\CRM_Extension_System::singleton()->getMapper()->getActiveModuleFiles(), 'filePath')
-      );
-      foreach ($locations as $location) {
-        $dir = \CRM_Utils_File::addTrailingSlash(dirname($location)) . 'Civi/Api4';
-        if (is_dir($dir)) {
-          foreach (glob("$dir/*.php") as $file) {
-            $className = 'Civi\Api4\\' . basename($file, '.php');
-            if (is_a($className, 'Civi\Api4\Generic\AbstractEntity', TRUE)) {
-              $classNames[] = $className;
-            }
+    $classNames = [];
+    $locations = array_merge([\Civi::paths()->getPath('[civicrm.root]/Civi.php')],
+      array_column(\CRM_Extension_System::singleton()->getMapper()->getActiveModuleFiles(), 'filePath')
+    );
+    foreach ($locations as $location) {
+      $dir = \CRM_Utils_File::addTrailingSlash(dirname($location)) . 'Civi/Api4';
+      if (is_dir($dir)) {
+        foreach (glob("$dir/*.php") as $file) {
+          $className = 'Civi\Api4\\' . basename($file, '.php');
+          if (is_a($className, 'Civi\Api4\Generic\AbstractEntity', TRUE)) {
+            $classNames[] = $className;
           }
         }
       }
-      $cache->set('api4.entities.classNames', $classNames);
     }
     return $classNames;
   }
@@ -109,39 +97,35 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
    * @return array[]
    */
   private function getCustomEntities() {
-    $cache = \Civi::cache('metadata');
-    $entities = $cache->get('api4.entities.custom');
-    if (!isset($entities)) {
-      $entities = [];
-      $customEntities = CustomGroup::get()
-        ->addWhere('is_multiple', '=', 1)
-        ->addWhere('is_active', '=', 1)
-        ->setSelect(['name', 'title', 'help_pre', 'help_post', 'extends', 'icon'])
-        ->setCheckPermissions(FALSE)
-        ->execute();
-      $baseInfo = CustomValue::getInfo();
-      foreach ($customEntities as $customEntity) {
-        $fieldName = 'Custom_' . $customEntity['name'];
-        $baseEntity = CoreUtil::getApiClass(CustomGroupJoinable::getEntityFromExtends($customEntity['extends']));
-        $entities[$fieldName] = [
-          'name' => $fieldName,
-          'title' => $customEntity['title'],
-          'title_plural' => $customEntity['title'],
-          'description' => ts('Custom group for %1', [1 => $baseEntity::getInfo()['title_plural']]),
-          'paths' => [
-            'view' => "civicrm/contact/view/cd?reset=1&gid={$customEntity['id']}&recId=[id]&multiRecordDisplay=single",
-          ],
-          'icon' => $customEntity['icon'] ?: NULL,
-        ] + $baseInfo;
-        if (!empty($customEntity['help_pre'])) {
-          $entities[$fieldName]['comment'] = $this->plainTextify($customEntity['help_pre']);
-        }
-        if (!empty($customEntity['help_post'])) {
-          $pre = empty($entities[$fieldName]['comment']) ? '' : $entities[$fieldName]['comment'] . "\n\n";
-          $entities[$fieldName]['comment'] = $pre . $this->plainTextify($customEntity['help_post']);
-        }
+    $entities = [];
+    $baseInfo = CustomValue::getInfo();
+    $select = \CRM_Utils_SQL_Select::from('civicrm_custom_group')
+      ->where('is_multiple = 1')
+      ->where('is_active = 1')
+      ->toSQL();
+    $group = \CRM_Core_DAO::executeQuery($select);
+    while ($group->fetch()) {
+      $fieldName = 'Custom_' . $group->name;
+      $baseEntity = CoreUtil::getApiClass(CustomGroupJoinable::getEntityFromExtends($group->extends));
+      $entities[$fieldName] = [
+        'name' => $fieldName,
+        'title' => $group->title,
+        'title_plural' => $group->title,
+        'description' => ts('Custom group for %1', [1 => $baseEntity::getInfo()['title_plural']]),
+        'paths' => [
+          'view' => "civicrm/contact/view/cd?reset=1&gid={$group->id}&recId=[id]&multiRecordDisplay=single",
+        ],
+      ] + $baseInfo;
+      if (!empty($group->icon)) {
+        $entities[$fieldName]['icon'] = $group->icon;
+      }
+      if (!empty($group->help_pre)) {
+        $entities[$fieldName]['comment'] = $this->plainTextify($group->help_pre);
+      }
+      if (!empty($group->help_post)) {
+        $pre = empty($entities[$fieldName]['comment']) ? '' : $entities[$fieldName]['comment'] . "\n\n";
+        $entities[$fieldName]['comment'] = $pre . $this->plainTextify($group->help_post);
       }
-      $cache->set('api4.entities.custom', $entities);
     }
     return $entities;
   }
diff --git a/civicrm/Civi/Api4/Action/ExampleData/Get.php b/civicrm/Civi/Api4/Action/ExampleData/Get.php
new file mode 100644
index 0000000000..9f91c82221
--- /dev/null
+++ b/civicrm/Civi/Api4/Action/ExampleData/Get.php
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Action\ExampleData;
+
+use Civi\Api4\Generic\BasicGetAction;
+use Civi\Api4\Generic\Result;
+use Civi\Test\ExampleDataLoader;
+
+/**
+ * Get a list of example data-sets.
+ *
+ * Examples are generated by scanning `*.ex.php` files. The scanner caches
+ * metadata fields (`name`, `title`, `tags`, `file`) to avoid extraneous scanning, but
+ * substantive fields (`data`) are computed as-needed.
+ *
+ * FIXME: When we have an update for dev-docs, include a `@link` here.
+ */
+class Get extends BasicGetAction {
+
+  public function _run(Result $result) {
+    if ($this->select !== [] && !in_array('name', $this->select)) {
+      $this->select[] = 'name';
+    }
+    parent::_run($result);
+  }
+
+  protected function getRecords() {
+    return \Civi\Test::examples()->getMetas();
+  }
+
+  protected function selectArray($values) {
+    $result = parent::selectArray($values);
+
+    $heavyFields = array_intersect(
+      explode(',', ExampleDataLoader::HEAVY_FIELDS),
+      $this->select ?: []
+    );
+    if (!empty($heavyFields)) {
+      foreach ($result as &$item) {
+        $heavy = \Civi\Test::examples()->getFull($item['name']);
+        $item = array_merge($item, \CRM_Utils_Array::subset($heavy, $heavyFields));
+      }
+    }
+
+    return $result;
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php b/civicrm/Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php
new file mode 100644
index 0000000000..bef1735e03
--- /dev/null
+++ b/civicrm/Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace Civi\Api4\Action\WorkflowMessage;
+
+/**
+ * Class GetTemplateFields
+ * @package Civi\Api4\Action\WorkflowMessage
+ *
+ * @method $this setWorkflow(string $workflow)
+ * @method string getWorkflow()
+ * @method $this setFormat(string $workflow)
+ * @method string getFormat()
+ */
+class GetTemplateFields extends \Civi\Api4\Generic\BasicGetAction {
+
+  /**
+   * @var string
+   * @required
+   */
+  public $workflow;
+
+  /**
+   * Controls the return format.
+   *  - 'metadata': Return the fields as an array of metadata
+   *  - 'example': Return the fields as an example record (a basis for passing into Render::$values).
+   *
+   * @var string
+   * @options metadata,example
+   */
+  protected $format = 'metadata';
+
+  protected function getRecords() {
+    $item = \Civi\WorkflowMessage\WorkflowMessage::create($this->workflow);
+    /** @var \Civi\WorkflowMessage\FieldSpec[] $fields */
+    $fields = $item->getFields();
+    $array = [];
+    $genericExamples = [
+      'string[]' => ['example-string1', 'example-string2...'],
+      'string' => 'example-string',
+      'int[]' => [1, 2, 3],
+      'int' => 123,
+      'double[]' => [1.23, 4.56],
+      'double' => 1.23,
+      'array' => [],
+    ];
+
+    switch ($this->format) {
+      case 'metadata':
+        foreach ($fields as $name => $field) {
+          $array[$name] = $field->toArray();
+        }
+        return $array;
+
+      case 'example':
+        foreach ($fields as $name => $field) {
+          $array[$name] = NULL;
+          foreach (array_intersect(array_keys($genericExamples), $field->getType()) as $ex) {
+            $array[$name] = $genericExamples[$ex];
+          }
+        }
+        ksort($array);
+        return [$array];
+
+      default:
+        throw new \RuntimeException("Unrecognized format");
+    }
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Action/WorkflowMessage/Render.php b/civicrm/Civi/Api4/Action/WorkflowMessage/Render.php
new file mode 100644
index 0000000000..86611072b9
--- /dev/null
+++ b/civicrm/Civi/Api4/Action/WorkflowMessage/Render.php
@@ -0,0 +1,168 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Action\WorkflowMessage;
+
+use Civi\Api4\Event\ValidateValuesEvent;
+use Civi\WorkflowMessage\WorkflowMessage;
+
+/**
+ * Render a message.
+ *
+ * @method $this setValues(array $rows) Set the list of records to be rendered.
+ * @method array getValues()
+ * @method $this setMessageTemplate(array|null $fragments) Set of messages to be rendered.
+ * @method array|null getMessageTemplate()
+ * @method $this setMessageTemplateId(int|null $id) Set of messages to be rendered.
+ * @method int|null getMessageTemplateId()
+ * @method $this setWorkflow(string $workflow)
+ * @method string getWorkflow()
+ * @method $this setErrorLevel(string $workflow)
+ * @method string getErrorLevel()
+ */
+class Render extends \Civi\Api4\Generic\AbstractAction {
+
+  /**
+   * Abort if the validator finds any issues at this error level.
+   *
+   * @var string
+   * @options error,warning,info
+   */
+  protected $errorLevel = 'error';
+
+  /**
+   * Symbolic name of the workflow step for which we need a message.
+   * @var string
+   * @required
+   */
+  protected $workflow;
+
+  /**
+   * @var array
+   */
+  protected $values = [];
+
+  /**
+   * Load and render a specific message template (by ID).
+   *
+   * @var int|null
+   */
+  protected $messageTemplateId;
+
+  /**
+   * Use a draft message template.
+   *
+   * @var array|null
+   *   - `subject`: Message template (eg `Hello {contact.first_name}!`)
+   *   - `text`: Message template (eg `Hello {contact.first_name}!`)
+   *   - `html`: Message template (eg `<p>Hello {contact.first_name}!</p>`)
+   */
+  protected $messageTemplate;
+
+  /**
+   * @var \Civi\WorkflowMessage\WorkflowMessageInterface
+   */
+  protected $_model;
+
+  public function _run(\Civi\Api4\Generic\Result $result) {
+    $this->validateValues();
+
+    $r = \CRM_Core_BAO_MessageTemplate::renderTemplate([
+      'model' => $this->_model,
+      'messageTemplate' => $this->getMessageTemplate(),
+      'messageTemplateId' => $this->getMessageTemplateId(),
+    ]);
+
+    $result[] = \CRM_Utils_Array::subset($r, ['subject', 'html', 'text']);
+  }
+
+  /**
+   * The token-processor supports a range of context parameters. We enforce different security rules for each kind of input.
+   *
+   * Broadly, this distinguishes between a few values:
+   * - Autoloaded data (e.g. 'contactId', 'activityId'). We need to ensure that the specific records are visible and extant.
+   * - Inputted data (e.g. 'contact'). We merely ensure that these are type-correct.
+   * - Prohibited/extended options, e.g. 'smarty'
+   */
+  protected function validateValues() {
+    $rows = [$this->getValues()];
+    $e = new ValidateValuesEvent($this, $rows, new \CRM_Utils_LazyArray(function () use ($rows) {
+      return array_map(
+        function ($row) {
+          return ['old' => NULL, 'new' => $row];
+        },
+        $rows
+      );
+    }));
+    $this->onValidateValues($e);
+    \Civi::dispatcher()->dispatch('civi.api4.validate', $e);
+    if (!empty($e->errors)) {
+      throw $e->toException();
+    }
+  }
+
+  protected function onValidateValues(ValidateValuesEvent $e) {
+    $errorWeightMap = \CRM_Core_Error_Log::getMap();
+    $errorWeight = $errorWeightMap[$this->getErrorLevel()];
+
+    if (count($e->records) !== 1) {
+      throw new \CRM_Core_Exception("Expected exactly one record to validate");
+    }
+    foreach ($e->records as $recordKey => $record) {
+      /** @var \Civi\WorkflowMessage\WorkflowMessageInterface $w */
+      $w = $this->_model = WorkflowMessage::create($this->getWorkflow(), [
+        'modelProps' => $record,
+      ]);
+      $fields = $w->getFields();
+
+      $unknowns = array_diff(array_keys($record), array_keys($fields));
+      foreach ($unknowns as $fieldName) {
+        $e->addError($recordKey, $fieldName, 'unknown_field', ts('Unknown field (%1). Templates may only be executed with supported fields.', [
+          1 => $fieldName,
+        ]));
+      }
+
+      // Merge intrinsic validations
+      foreach ($w->validate() as $issue) {
+        if ($errorWeightMap[$issue['severity']] < $errorWeight) {
+          $e->addError($recordKey, $issue['fields'], $issue['name'], $issue['message']);
+        }
+      }
+
+      // Add checks which don't fit in WFM::validate
+      foreach ($fields as $fieldName => $fieldSpec) {
+        $fieldValue = $record[$fieldName] ?? NULL;
+        if ($fieldSpec->getFkEntity() && !empty($fieldValue)) {
+          if (!empty($params['check_permissions']) && !\Civi\Api4\Utils\CoreUtil::checkAccessDelegated($fieldSpec->getFkEntity(), 'get', ['id' => $fieldValue], CRM_Core_Session::getLoggedInContactID() ?: 0)) {
+            $e->addError($recordKey, $fieldName, 'nonexistent_id', ts('Referenced record does not exist or is not visible (%1).', [
+              1 => $this->getWorkflow() . '::' . $fieldName,
+            ]));
+          }
+        }
+      }
+    }
+  }
+
+  public function fields() {
+    return [];
+    // We don't currently get the name of the workflow. But if we do...
+    //$item = \Civi\WorkflowMessage\WorkflowMessage::create($this->workflow);
+    ///** @var \Civi\WorkflowMessage\FieldSpec[] $fields */
+    //$fields = $item->getFields();
+    //$array = [];
+    //foreach ($fields as $name => $field) {
+    //  $array[$name] = $field->toArray();
+    //}
+    //return $array;
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Address.php b/civicrm/Civi/Api4/Address.php
index a0e40683d4..a4ec60aeb3 100644
--- a/civicrm/Civi/Api4/Address.php
+++ b/civicrm/Civi/Api4/Address.php
@@ -19,6 +19,8 @@ namespace Civi\Api4;
  * Creating a new address requires at minimum a contact's ID and location type ID
  * and other attributes (although optional) like street address, city, country etc.
  *
+ * @ui_join_filters is_primary
+ *
  * @searchable secondary
  * @since 5.19
  * @package Civi\Api4
diff --git a/civicrm/Civi/Api4/Email.php b/civicrm/Civi/Api4/Email.php
index e9d02cbdee..16566d8c1e 100644
--- a/civicrm/Civi/Api4/Email.php
+++ b/civicrm/Civi/Api4/Email.php
@@ -17,6 +17,8 @@ namespace Civi\Api4;
  *
  * Creating a new email address requires at minimum a contact's ID and email
  *
+ * @ui_join_filters is_primary
+ *
  * @searchable secondary
  * @since 5.19
  * @package Civi\Api4
diff --git a/civicrm/Civi/Api4/Entity.php b/civicrm/Civi/Api4/Entity.php
index 1660d74d8c..c28f832d21 100644
--- a/civicrm/Civi/Api4/Entity.php
+++ b/civicrm/Civi/Api4/Entity.php
@@ -112,6 +112,11 @@ class Entity extends Generic\AbstractEntity {
           'data_type' => 'String',
           'description' => 'Version this API entity was added',
         ],
+        [
+          'name' => 'class',
+          'data_type' => 'String',
+          'description' => 'PHP class name',
+        ],
         [
           'name' => 'bridge',
           'data_type' => 'Array',
diff --git a/civicrm/Civi/Api4/Event/CreateApi4RequestEvent.php b/civicrm/Civi/Api4/Event/CreateApi4RequestEvent.php
new file mode 100644
index 0000000000..7a77989609
--- /dev/null
+++ b/civicrm/Civi/Api4/Event/CreateApi4RequestEvent.php
@@ -0,0 +1,56 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+namespace Civi\Api4\Event;
+
+use Civi\Core\Event\GenericHookEvent;
+
+/**
+ * civi.api4.createRequest event.
+ *
+ * This event fires whenever resolving the name of an api entity to an api class.
+ *
+ * e.g. the entity name "Contact" resolves to the class `Civi\Api4\Contact`
+ * and the entity "Case" resolves to `Civi\Api4\CiviCase`
+ */
+class CreateApi4RequestEvent extends GenericHookEvent {
+
+  /**
+   * Name of the entity to matched to an api class
+   *
+   * @var string
+   */
+  public $entityName;
+
+  /**
+   * Resolved fully-namespaced class name.
+   *
+   * @var string
+   */
+  public $className;
+
+  /**
+   * Additional arguments which should be passed to the action factory function.
+   *
+   * For example, `Civi\Api4\CustomValue` factory functions require the name of the custom group.
+   *
+   * @var array
+   */
+  public $args = [];
+
+  /**
+   * Event constructor
+   */
+  public function __construct($entityName) {
+    $this->entityName = $entityName;
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Event/Subscriber/CreateApi4RequestSubscriber.php b/civicrm/Civi/Api4/Event/Subscriber/CreateApi4RequestSubscriber.php
new file mode 100644
index 0000000000..519498efd0
--- /dev/null
+++ b/civicrm/Civi/Api4/Event/Subscriber/CreateApi4RequestSubscriber.php
@@ -0,0 +1,57 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Event\Subscriber;
+
+use Civi\API\Events;
+use Civi\Api4\Utils\CoreUtil;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * Resolve class for core and custom entities
+ *
+ * This runs while getting the class name for an entity / action.
+ */
+class CreateApi4RequestSubscriber implements EventSubscriberInterface {
+
+  /**
+   * @return array
+   */
+  public static function getSubscribedEvents() {
+    return [
+      'civi.api4.createRequest' => [
+        ['onApiRequestCreate', Events::W_LATE],
+      ],
+    ];
+  }
+
+  /**
+   * @param \Civi\Api4\Event\CreateApi4RequestEvent $event
+   */
+  public function onApiRequestCreate(\Civi\Api4\Event\CreateApi4RequestEvent $event) {
+    // Multi-record custom data entities
+    if (strpos($event->entityName, 'Custom_') === 0) {
+      $groupName = substr($event->entityName, 7);
+      if (CoreUtil::isCustomEntity($groupName)) {
+        $event->className = 'Civi\Api4\CustomValue';
+        $event->args = [$groupName];
+      }
+    }
+    else {
+      // Because "Case" is a reserved php keyword
+      $className = 'Civi\Api4\\' . ($event->entityName === 'Case' ? 'CiviCase' : $event->entityName);
+      if (class_exists($className)) {
+        $event->className = $className;
+      }
+    }
+  }
+
+}
diff --git a/civicrm/Civi/Api4/ExampleData.php b/civicrm/Civi/Api4/ExampleData.php
new file mode 100644
index 0000000000..c53f430b1b
--- /dev/null
+++ b/civicrm/Civi/Api4/ExampleData.php
@@ -0,0 +1,107 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4;
+
+/**
+ * Search for example data.
+ *
+ * @searchable none
+ * @since 5.43
+ * @package Civi\Api4
+ */
+class ExampleData extends \Civi\Api4\Generic\AbstractEntity {
+
+  /**
+   * @param bool $checkPermissions
+   * @return Generic\AbstractGetAction
+   */
+  public static function get($checkPermissions = TRUE) {
+    return (new Action\ExampleData\Get(__CLASS__, __FILE__))
+      ->setCheckPermissions($checkPermissions);
+  }
+
+  /**
+   * @param bool $checkPermissions
+   * @return Generic\BasicGetFieldsAction
+   */
+  public static function getFields($checkPermissions = TRUE) {
+    return (new Generic\BasicGetFieldsAction(__CLASS__, __FUNCTION__, function () {
+      return [
+        [
+          'name' => 'name',
+          'title' => 'Example Name',
+          'data_type' => 'String',
+        ],
+        [
+          'name' => 'title',
+          'title' => 'Example Title',
+          'data_type' => 'String',
+        ],
+        [
+          'name' => 'workflow',
+          'title' => 'Workflow Name',
+          'data_type' => 'String',
+        ],
+        [
+          'name' => 'file',
+          'title' => 'File Path',
+          'data_type' => 'String',
+          'description' => 'If the example is loaded from a file, this is the location.',
+        ],
+        [
+          'name' => 'tags',
+          'title' => 'Tags',
+          'data_type' => 'Array',
+          'options'  => [
+            'preview' => ts('Preview: Display as an example in the "Preview" dialog'),
+            'phpunit' => ts('PHPUnit: Run basic sniff tests in PHPUnit using this example'),
+          ],
+        ],
+        [
+          'type' => 'Extra',
+          'name' => 'data',
+          'title' => 'Example data',
+          'data_type' => 'String',
+          'serialize' => \CRM_Core_DAO::SERIALIZE_JSON,
+        ],
+        [
+          'type' => 'Extra',
+          'name' => 'asserts',
+          'title' => 'Test assertions',
+          'data_type' => 'String',
+          'serialize' => \CRM_Core_DAO::SERIALIZE_JSON,
+        ],
+      ];
+    }))->setCheckPermissions($checkPermissions);
+  }
+
+  /**
+   * @return array
+   */
+  public static function permissions() {
+    return [
+      // FIXME: Perhaps use 'edit message templates' or similar?
+      "meta" => ["access CiviCRM"],
+      "default" => ["administer CiviCRM"],
+    ];
+  }
+
+  /**
+   * @inheritDoc
+   */
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['primary_key'] = ['name'];
+    return $info;
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Generic/AbstractEntity.php b/civicrm/Civi/Api4/Generic/AbstractEntity.php
index 266c6307a4..735327f88f 100644
--- a/civicrm/Civi/Api4/Generic/AbstractEntity.php
+++ b/civicrm/Civi/Api4/Generic/AbstractEntity.php
@@ -129,45 +129,40 @@ abstract class AbstractEntity {
    * Reflection function called by Entity::get()
    *
    * @see \Civi\Api4\Action\Entity\Get
-   * @return array
+   * @return array{name: string, title: string, description: string, title_plural: string, type: string, paths: array, class: string, primary_key: array, searchable: string, dao: string, label_field: string, icon: string}
    */
   public static function getInfo() {
-    $cache = \Civi::cache('metadata');
     $entityName = static::getEntityName();
-    $info = $cache->get("api4.$entityName.info");
-    if (!$info) {
-      $info = [
-        'name' => $entityName,
-        'title' => static::getEntityTitle(),
-        'title_plural' => static::getEntityTitle(TRUE),
-        'type' => [self::stripNamespace(get_parent_class(static::class))],
-        'paths' => static::getEntityPaths(),
-        'class' => static::class,
-        'primary_key' => ['id'],
-        // Entities without a @searchable annotation will default to secondary,
-        // which makes them visible in SearchKit but not at the top of the list.
-        'searchable' => 'secondary',
-      ];
-      // Add info for entities with a corresponding DAO
-      $dao = \CRM_Core_DAO_AllCoreTables::getFullName($info['name']);
-      if ($dao) {
-        $info['paths'] = $dao::getEntityPaths();
-        $info['primary_key'] = $dao::$_primaryKey;
-        $info['icon'] = $dao::$_icon;
-        $info['label_field'] = $dao::$_labelField;
-        $info['dao'] = $dao;
-      }
-      foreach (ReflectionUtils::getTraits(static::class) as $trait) {
-        $info['type'][] = self::stripNamespace($trait);
-      }
-      $reflection = new \ReflectionClass(static::class);
-      $info = array_merge($info, ReflectionUtils::getCodeDocs($reflection, NULL, ['entity' => $info['name']]));
-      if ($dao) {
-        $info['description'] = $dao::getEntityDescription() ?? $info['description'] ?? NULL;
-      }
-      unset($info['package'], $info['method']);
-      $cache->set("api4.$entityName.info", $info);
+    $info = [
+      'name' => $entityName,
+      'title' => static::getEntityTitle(),
+      'title_plural' => static::getEntityTitle(TRUE),
+      'type' => [self::stripNamespace(get_parent_class(static::class))],
+      'paths' => static::getEntityPaths(),
+      'class' => static::class,
+      'primary_key' => ['id'],
+      // Entities without a @searchable annotation will default to secondary,
+      // which makes them visible in SearchKit but not at the top of the list.
+      'searchable' => 'secondary',
+    ];
+    // Add info for entities with a corresponding DAO
+    $dao = \CRM_Core_DAO_AllCoreTables::getFullName($info['name']);
+    if ($dao) {
+      $info['paths'] = $dao::getEntityPaths();
+      $info['primary_key'] = $dao::$_primaryKey;
+      $info['icon'] = $dao::$_icon;
+      $info['label_field'] = $dao::$_labelField;
+      $info['dao'] = $dao;
+    }
+    foreach (ReflectionUtils::getTraits(static::class) as $trait) {
+      $info['type'][] = self::stripNamespace($trait);
+    }
+    $reflection = new \ReflectionClass(static::class);
+    $info = array_merge($info, ReflectionUtils::getCodeDocs($reflection, NULL, ['entity' => $info['name']]));
+    if ($dao) {
+      $info['description'] = $dao::getEntityDescription() ?? $info['description'] ?? NULL;
     }
+    unset($info['package'], $info['method']);
     return $info;
   }
 
diff --git a/civicrm/Civi/Api4/Generic/AbstractGetAction.php b/civicrm/Civi/Api4/Generic/AbstractGetAction.php
index 0d5b27739b..5fd9274683 100644
--- a/civicrm/Civi/Api4/Generic/AbstractGetAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractGetAction.php
@@ -66,18 +66,32 @@ abstract class AbstractGetAction extends AbstractQueryAction {
   }
 
   /**
-   * Adds all fields matched by the * wildcard
+   * Adds all standard fields matched by the * wildcard
+   *
+   * Note: this function only deals with simple wildcard expressions.
+   * It ignores those containing special characters like dots or parentheses,
+   * they are handled separately in Api4SelectQuery.
    *
    * @throws \API_Exception
    */
   protected function expandSelectClauseWildcards() {
+    if (!$this->select) {
+      $this->select = ['*'];
+    }
+    // Get expressions containing wildcards but no dots or parentheses
     $wildFields = array_filter($this->select, function($item) {
       return strpos($item, '*') !== FALSE && strpos($item, '.') === FALSE && strpos($item, '(') === FALSE && strpos($item, ' ') === FALSE;
     });
-    foreach ($wildFields as $item) {
-      $pos = array_search($item, array_values($this->select));
-      $matches = SelectUtil::getMatchingFields($item, array_column($this->entityFields(), 'name'));
-      array_splice($this->select, $pos, 1, $matches);
+    if ($wildFields) {
+      // Wildcards should not match "Extra" fields
+      $standardFields = array_filter(array_map(function($field) {
+        return $field['type'] === 'Extra' ? NULL : $field['name'];
+      }, $this->entityFields()));
+      foreach ($wildFields as $item) {
+        $pos = array_search($item, array_values($this->select));
+        $matches = SelectUtil::getMatchingFields($item, $standardFields);
+        array_splice($this->select, $pos, 1, $matches);
+      }
     }
     $this->select = array_unique($this->select);
   }
diff --git a/civicrm/Civi/Api4/Generic/DAOGetAction.php b/civicrm/Civi/Api4/Generic/DAOGetAction.php
index f374047486..e8a46ce5b5 100644
--- a/civicrm/Civi/Api4/Generic/DAOGetAction.php
+++ b/civicrm/Civi/Api4/Generic/DAOGetAction.php
@@ -29,9 +29,9 @@ class DAOGetAction extends AbstractGetAction {
   use Traits\DAOActionTrait;
 
   /**
-   * Fields to return. Defaults to all non-custom fields `['*']`.
+   * Fields to return. Defaults to all standard (non-custom, non-extra) fields `['*']`.
    *
-   * The keyword `"custom.*"` selects all custom fields. So to select all core + custom fields, select `['*', 'custom.*']`.
+   * The keyword `"custom.*"` selects all custom fields. So to select all standard + custom fields, select `['*', 'custom.*']`.
    *
    * Use the dot notation to perform joins in the select clause, e.g. selecting `['*', 'contact.*']` from `Email::get()`
    * will select all fields for the email + all fields for the related contact.
@@ -123,6 +123,22 @@ class DAOGetAction extends AbstractGetAction {
     }
   }
 
+  /**
+   * @param string $fieldName
+   * @param string $op
+   * @param mixed $value
+   * @param bool $isExpression
+   * @return $this
+   * @throws \API_Exception
+   */
+  public function addWhere(string $fieldName, string $op, $value = NULL, bool $isExpression = FALSE) {
+    if (!in_array($op, CoreUtil::getOperators())) {
+      throw new \API_Exception('Unsupported operator');
+    }
+    $this->where[] = [$fieldName, $op, $value, $isExpression];
+    return $this;
+  }
+
   /**
    * @return array
    */
diff --git a/civicrm/Civi/Api4/Generic/Traits/ArrayQueryActionTrait.php b/civicrm/Civi/Api4/Generic/Traits/ArrayQueryActionTrait.php
index f11966f227..467fd6054c 100644
--- a/civicrm/Civi/Api4/Generic/Traits/ArrayQueryActionTrait.php
+++ b/civicrm/Civi/Api4/Generic/Traits/ArrayQueryActionTrait.php
@@ -149,6 +149,11 @@ trait ArrayQueryActionTrait {
         $pattern = '/^' . str_replace('%', '.*', preg_quote($expected, '/')) . '$/i';
         return !preg_match($pattern, $value) == ($operator != 'LIKE');
 
+      case 'REGEXP':
+      case 'NOT REGEXP':
+        $pattern = '/' . str_replace('/', '\\/', $expected) . '/';
+        return !preg_match($pattern, $value) == ($operator != 'REGEXP');
+
       case 'IN':
         return in_array($value, $expected);
 
diff --git a/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php b/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php
index 31c889f965..c032e762f5 100644
--- a/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php
+++ b/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php
@@ -149,6 +149,7 @@ trait DAOActionTrait {
       }
 
       $result[] = $this->baoToArray($createResult, $item);
+      \CRM_Utils_API_HTMLInputCoder::singleton()->decodeRows($result);
     }
 
     // Use bulk `writeRecords` method if the BAO doesn't have a create or add method
@@ -194,6 +195,9 @@ trait DAOActionTrait {
   }
 
   /**
+   * Converts params from flat array e.g. ['GroupName.Fieldname' => value] to the
+   * hierarchy expected by the BAO, nested within $params['custom'].
+   *
    * @param array $params
    * @param int $entityId
    *
@@ -203,8 +207,6 @@ trait DAOActionTrait {
   protected function formatCustomParams(&$params, $entityId) {
     $customParams = [];
 
-    // $customValueID is the ID of the custom value in the custom table for this
-    // entity (i guess this assumes it's not a multi value entity)
     foreach ($params as $name => $value) {
       $field = $this->getCustomFieldInfo($name);
       if (!$field) {
@@ -258,7 +260,7 @@ trait DAOActionTrait {
    *
    * @param string $fieldExpr
    *   Field identifier with possible suffix, e.g. MyCustomGroup.MyField1:label
-   * @return array|NULL
+   * @return array{id: int, name: string, entity: string, suffix: string, html_type: string, data_type: string}|NULL
    */
   protected function getCustomFieldInfo(string $fieldExpr) {
     if (strpos($fieldExpr, '.') === FALSE) {
diff --git a/civicrm/Civi/Api4/IM.php b/civicrm/Civi/Api4/IM.php
index f6d8045f4d..75977dba3d 100644
--- a/civicrm/Civi/Api4/IM.php
+++ b/civicrm/Civi/Api4/IM.php
@@ -13,6 +13,8 @@ namespace Civi\Api4;
 /**
  * IM entity.
  *
+ * @ui_join_filters is_primary
+ *
  * @searchable secondary
  * @since 5.19
  * @package Civi\Api4
diff --git a/civicrm/Civi/Api4/Phone.php b/civicrm/Civi/Api4/Phone.php
index 8eeedf8de5..067864eeb1 100644
--- a/civicrm/Civi/Api4/Phone.php
+++ b/civicrm/Civi/Api4/Phone.php
@@ -17,6 +17,8 @@ namespace Civi\Api4;
  *
  * Creating a new phone of a contact, requires at minimum a contact's ID and phone number
  *
+ * @ui_join_filters is_primary
+ *
  * @searchable secondary
  * @since 5.19
  * @package Civi\Api4
diff --git a/civicrm/Civi/Api4/PrintLabel.php b/civicrm/Civi/Api4/PrintLabel.php
new file mode 100644
index 0000000000..a793708538
--- /dev/null
+++ b/civicrm/Civi/Api4/PrintLabel.php
@@ -0,0 +1,21 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+namespace Civi\Api4;
+
+/**
+ * PrintLabel entity.
+ *
+ * @since 5.43
+ * @package Civi\Api4
+ */
+class PrintLabel extends Generic\DAOEntity {
+
+}
diff --git a/civicrm/Civi/Api4/Query/Api4SelectQuery.php b/civicrm/Civi/Api4/Query/Api4SelectQuery.php
index 119abe49a9..ff1590c32e 100644
--- a/civicrm/Civi/Api4/Query/Api4SelectQuery.php
+++ b/civicrm/Civi/Api4/Query/Api4SelectQuery.php
@@ -28,7 +28,8 @@ use Civi\Api4\Utils\SelectUtil;
  *
  * * '=', '<=', '>=', '>', '<', 'LIKE', "<>", "!=",
  * * 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN',
- * * 'IS NOT NULL', or 'IS NULL', 'CONTAINS'.
+ * * 'IS NOT NULL', 'IS NULL', 'CONTAINS', 'IS EMPTY', 'IS NOT EMPTY',
+ * * 'REGEXP', 'NOT REGEXP'.
  */
 class Api4SelectQuery {
 
@@ -431,7 +432,7 @@ class Api4SelectQuery {
 
   /**
    * Validate and transform a leaf clause array to SQL.
-   * @param array $clause [$fieldName, $operator, $criteria]
+   * @param array $clause [$fieldName, $operator, $criteria, $isExpression]
    * @param string $type
    *   WHERE|HAVING|ON
    * @param int $depth
@@ -443,12 +444,13 @@ class Api4SelectQuery {
     $field = NULL;
     // Pad array for unary operators
     [$expr, $operator, $value] = array_pad($clause, 3, NULL);
+    $isExpression = $clause[3] ?? FALSE;
     if (!in_array($operator, CoreUtil::getOperators(), TRUE)) {
       throw new \API_Exception('Illegal operator');
     }
 
     // For WHERE clause, expr must be the name of a field.
-    if ($type === 'WHERE') {
+    if ($type === 'WHERE' && !$isExpression) {
       $field = $this->getField($expr, TRUE);
       FormattingUtil::formatInputValue($value, $expr, $field, $operator);
       $fieldAlias = $this->getExpression($expr)->render($this->apiFieldSpec);
@@ -491,7 +493,7 @@ class Api4SelectQuery {
       }
       $fieldAlias = '`' . $fieldAlias . '`';
     }
-    elseif ($type === 'ON') {
+    elseif ($type === 'ON' || ($type === 'WHERE' && $isExpression)) {
       $expr = $this->getExpression($expr);
       $fieldName = count($expr->getFields()) === 1 ? $expr->getFields()[0] : NULL;
       $fieldAlias = $expr->render($this->apiFieldSpec);
@@ -575,6 +577,11 @@ class Api4SelectQuery {
         return "($fieldAlias $isEmptyClause $fieldAlias $operator)";
       }
     }
+
+    if ($operator == 'REGEXP' || $operator == 'NOT REGEXP') {
+      return sprintf('%s %s "%s"', $fieldAlias, $operator, \CRM_Core_DAO::escapeString($value));
+    }
+
     if (is_bool($value)) {
       $value = (int) $value;
     }
@@ -726,7 +733,6 @@ class Api4SelectQuery {
       ];
       // If the first condition is a string, it's the name of a bridge entity
       if (!empty($join[0]) && is_string($join[0]) && \CRM_Utils_Rule::alphanumeric($join[0])) {
-        $this->explicitJoins[$alias]['bridge'] = $join[0];
         $this->addBridgeJoin($join, $entity, $alias, $side);
       }
       else {
@@ -804,6 +810,7 @@ class Api4SelectQuery {
    */
   protected function addBridgeJoin($joinTree, $joinEntity, $alias, $side) {
     $bridgeEntity = array_shift($joinTree);
+    $this->explicitJoins[$alias]['bridge'] = $bridgeEntity;
 
     // INNER joins require unique aliases, whereas left joins will be inside a subquery and short aliases are more readable
     $bridgeAlias = $side === 'INNER' ? $alias . '_via_' . strtolower($bridgeEntity) : 'b';
@@ -827,6 +834,9 @@ class Api4SelectQuery {
 
     // INNER joins are done with 2 joins
     if ($side === 'INNER') {
+      // Info needed for joining custom fields extending the bridge entity
+      $this->explicitJoins[$alias]['bridge_table_alias'] = $bridgeAlias;
+      $this->explicitJoins[$alias]['bridge_id_alias'] = 'id';
       $this->join('INNER', $bridgeTable, $bridgeAlias, $bridgeConditions);
       $this->join('INNER', $joinTable, $alias, array_merge($linkConditions, $acls, $joinConditions));
     }
@@ -838,6 +848,10 @@ class Api4SelectQuery {
           $bridgeFields[$field['column_name']] = '`' . $joinAlias . '`.`' . $field['column_name'] . '`';
         }
       }
+      // Info needed for joining custom fields extending the bridge entity
+      $this->explicitJoins[$alias]['bridge_table_alias'] = $alias;
+      $this->explicitJoins[$alias]['bridge_id_alias'] = 'bridge_entity_id_key';
+      $bridgeFields[] = "`$bridgeAlias`.`id` AS `bridge_entity_id_key`";
       $select = implode(',', $bridgeFields);
       $joinConditions = array_merge($joinConditions, $bridgeConditions);
       $innerConditions = array_merge($linkConditions, $acls);
@@ -1011,12 +1025,25 @@ class Api4SelectQuery {
     // During iteration this variable will refer to the current position in the tree
     $joinTreeNode =& $this->joinTree[$baseTableAlias];
 
+    $useBridgeTable = FALSE;
     try {
       $joinPath = $joiner->getPath($explicitJoin['table'] ?? $this->getFrom(), $pathArray);
     }
     catch (\API_Exception $e) {
-      // Because the select clause silently ignores unknown fields, this function shouldn't throw exceptions
-      return;
+      if (!empty($explicitJoin['bridge'])) {
+        // Try looking up custom field in bridge entity instead
+        try {
+          $useBridgeTable = TRUE;
+          $joinPath = $joiner->getPath(CoreUtil::getTableName($explicitJoin['bridge']), $pathArray);
+        }
+        catch (\API_Exception $e) {
+          return;
+        }
+      }
+      else {
+        // Because the select clause silently ignores unknown fields, this function shouldn't throw exceptions
+        return;
+      }
     }
 
     foreach ($joinPath as $joinName => $link) {
@@ -1046,6 +1073,14 @@ class Api4SelectQuery {
           \CRM_Core_Error::deprecatedWarning("Deprecated join alias '$deprecatedAlias' used in APIv4 get. Should be changed to '{$deprecatedAlias}_id'");
         }
         $virtualField = $link->getSerialize();
+        $baseTableAlias = $joinTreeNode['#table_alias'];
+        if ($useBridgeTable) {
+          // When joining custom fields that directly extend the bridge entity
+          $baseTableAlias = $explicitJoin['bridge_table_alias'];
+          if ($link->getBaseColumn() === 'id') {
+            $link->setBaseColumn($explicitJoin['bridge_id_alias']);
+          }
+        }
 
         // Cache field info for retrieval by $this->getField()
         foreach ($link->getEntityFields() as $fieldObject) {
@@ -1057,7 +1092,7 @@ class Api4SelectQuery {
           // For virtual joins on serialized fields, the callback function will need the sql name of the serialized field
           // @see self::renderSerializedJoin()
           else {
-            $fieldArray['sql_name'] = '`' . $joinTreeNode['#table_alias'] . '`.`' . $link->getBaseColumn() . '`';
+            $fieldArray['sql_name'] = '`' . $baseTableAlias . '`.`' . $link->getBaseColumn() . '`';
           }
           // Custom fields will already have the group name prefixed
           $fieldName = $isCustom ? explode('.', $fieldArray['name'])[1] : $fieldArray['name'];
@@ -1067,7 +1102,7 @@ class Api4SelectQuery {
         // Serialized joins are rendered by this::renderSerializedJoin. Don't add their tables.
         if (!$virtualField) {
           $bao = $joinEntity ? CoreUtil::getBAOFromApiName($joinEntity) : NULL;
-          $conditions = $link->getConditionsForJoin($joinTreeNode['#table_alias'], $tableAlias);
+          $conditions = $link->getConditionsForJoin($baseTableAlias, $tableAlias);
           if ($bao) {
             $conditions = array_merge($conditions, $this->getAclClause($tableAlias, $bao, $joinPath));
           }
@@ -1076,6 +1111,7 @@ class Api4SelectQuery {
 
       }
       $joinTreeNode =& $joinTreeNode[$joinName];
+      $useBridgeTable = FALSE;
     }
   }
 
diff --git a/civicrm/Civi/Api4/Query/SqlEquation.php b/civicrm/Civi/Api4/Query/SqlEquation.php
new file mode 100644
index 0000000000..caaba24fb4
--- /dev/null
+++ b/civicrm/Civi/Api4/Query/SqlEquation.php
@@ -0,0 +1,123 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Query;
+
+/**
+ * Numeric sql expression
+ */
+class SqlEquation extends SqlExpression {
+
+  /**
+   * @var array
+   */
+  protected $args = [];
+
+  /**
+   * @var string[]
+   */
+  public static $arithmeticOperators = [
+    '+',
+    '-',
+    '*',
+    '/',
+  ];
+
+  /**
+   * @var string[]
+   */
+  public static $comparisonOperators = [
+    '<=',
+    '>=',
+    '<',
+    '>',
+    '=',
+    '!=',
+    '<=>',
+    'IS NOT',
+    'IS',
+    'BETWEEN',
+    'AND',
+  ];
+
+  protected function initialize() {
+    $arg = trim(substr($this->expr, strpos($this->expr, '(') + 1, -1));
+    $permitted = ['SqlField', 'SqlString', 'SqlNumber', 'SqlNull'];
+    $operators = array_merge(self::$arithmeticOperators, self::$comparisonOperators);
+    while (strlen($arg)) {
+      $this->args = array_merge($this->args, $this->captureExpressions($arg, $permitted, 1));
+      $op = $this->captureKeyword($operators, $arg);
+      if ($op) {
+        $this->args[] = $op;
+      }
+    }
+  }
+
+  /**
+   * Render the expression for insertion into the sql query
+   *
+   * @param array $fieldList
+   * @return string
+   */
+  public function render(array $fieldList): string {
+    $output = [];
+    foreach ($this->args as $arg) {
+      // Just an operator
+      if (is_string($arg)) {
+        $output[] = $arg;
+      }
+      // Surround fields with COALESCE to handle null values
+      elseif (is_a($arg, SqlField::class)) {
+        $output[] = 'COALESCE(' . $arg->render($fieldList) . ', 0)';
+      }
+      else {
+        $output[] = $arg->render($fieldList);
+      }
+    }
+    return '(' . implode(' ', $output) . ')';
+  }
+
+  /**
+   * Returns the alias to use for SELECT AS.
+   *
+   * @return string
+   */
+  public function getAlias(): string {
+    return $this->alias ?? \CRM_Utils_String::munge(trim($this->expr, ' ()'), '_', 256);
+  }
+
+  /**
+   * Change $dataType according to operator used in equation
+   *
+   * @see \Civi\Api4\Utils\FormattingUtil::formatOutputValues
+   * @param string $value
+   * @param string $dataType
+   * @return string
+   */
+  public function formatOutputValue($value, &$dataType) {
+    foreach (self::$comparisonOperators as $op) {
+      if (strpos($this->expr, " $op ")) {
+        $dataType = 'Boolean';
+      }
+    }
+    foreach (self::$arithmeticOperators as $op) {
+      if (strpos($this->expr, " $op ")) {
+        $dataType = 'Float';
+      }
+    }
+    return $value;
+  }
+
+  public static function getTitle(): string {
+    return ts('Equation');
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Query/SqlExpression.php b/civicrm/Civi/Api4/Query/SqlExpression.php
index 8e3d43254d..46a81c0f1d 100644
--- a/civicrm/Civi/Api4/Query/SqlExpression.php
+++ b/civicrm/Civi/Api4/Query/SqlExpression.php
@@ -73,19 +73,22 @@ abstract class SqlExpression {
    * @param string $expression
    * @param bool $parseAlias
    * @param array $mustBe
-   * @param array $cantBe
    * @return SqlExpression
    * @throws \API_Exception
    */
-  public static function convert(string $expression, $parseAlias = FALSE, $mustBe = [], $cantBe = ['SqlWild']) {
+  public static function convert(string $expression, $parseAlias = FALSE, $mustBe = []) {
     $as = $parseAlias ? strrpos($expression, ' AS ') : FALSE;
     $expr = $as ? substr($expression, 0, $as) : $expression;
     $alias = $as ? \CRM_Utils_String::munge(substr($expression, $as + 4), '_', 256) : NULL;
     $bracketPos = strpos($expr, '(');
     $firstChar = substr($expr, 0, 1);
     $lastChar = substr($expr, -1);
+    // Statement surrounded by brackets is an equation
+    if ($firstChar === '(' && $lastChar === ')') {
+      $className = 'SqlEquation';
+    }
     // If there are brackets but not the first character, we have a function
-    if ($bracketPos && $lastChar === ')') {
+    elseif ($bracketPos && $lastChar === ')') {
       $fnName = substr($expr, 0, $bracketPos);
       if ($fnName !== strtoupper($fnName)) {
         throw new \API_Exception('Sql function must be uppercase.');
@@ -114,11 +117,6 @@ abstract class SqlExpression {
       throw new \API_Exception('Unable to parse sql expression: ' . $expression);
     }
     $sqlExpression = new $className($expr, $alias);
-    foreach ($cantBe as $cant) {
-      if (is_a($sqlExpression, __NAMESPACE__ . '\\' . $cant)) {
-        throw new \API_Exception('Illegal sql expression.');
-      }
-    }
     if ($mustBe) {
       foreach ($mustBe as $must) {
         if (is_a($sqlExpression, __NAMESPACE__ . '\\' . $must)) {
@@ -173,6 +171,11 @@ abstract class SqlExpression {
     return substr($className, strrpos($className, '\\') + 1);
   }
 
+  /**
+   * @return string
+   */
+  abstract public static function getTitle(): string;
+
   /**
    * @return string|NULL
    */
@@ -180,4 +183,98 @@ abstract class SqlExpression {
     return static::$dataType;
   }
 
+  /**
+   * Shift a keyword off the beginning of the argument string and return it.
+   *
+   * @param array $keywords
+   *   Whitelist of keywords
+   * @param string $arg
+   * @return mixed|null
+   */
+  protected function captureKeyword($keywords, &$arg) {
+    foreach ($keywords as $key) {
+      // Match keyword followed by a space or eol
+      if (strpos($arg, $key . ' ') === 0 || rtrim($arg) === $key) {
+        $arg = ltrim(substr($arg, strlen($key)));
+        return $key;
+      }
+    }
+    return NULL;
+  }
+
+  /**
+   * Shifts 0 or more expressions off the argument string and returns them
+   *
+   * @param string $arg
+   * @param array $mustBe
+   * @param int $max
+   * @return SqlExpression[]
+   * @throws \API_Exception
+   */
+  protected function captureExpressions(string &$arg, array $mustBe, int $max) {
+    $captured = [];
+    $arg = ltrim($arg);
+    while ($arg) {
+      $item = $this->captureExpression($arg);
+      $arg = ltrim(substr($arg, strlen($item)));
+      $expr = self::convert($item, FALSE, $mustBe);
+      $this->fields = array_merge($this->fields, $expr->getFields());
+      $captured[] = $expr;
+      // Keep going if we have a comma indicating another expression follows
+      if (count($captured) < $max && substr($arg, 0, 1) === ',') {
+        $arg = ltrim(substr($arg, 1));
+      }
+      else {
+        break;
+      }
+    }
+    return $captured;
+  }
+
+  /**
+   * Scans the beginning of a string for an expression; stops when it hits delimiter
+   *
+   * @param $arg
+   * @return string
+   */
+  protected function captureExpression($arg) {
+    $isEscaped = $quote = NULL;
+    $item = '';
+    $quotes = ['"', "'"];
+    $brackets = [
+      ')' => '(',
+    ];
+    $enclosures = array_fill_keys($brackets, 0);
+    foreach (str_split($arg) as $char) {
+      if (!$isEscaped && in_array($char, $quotes, TRUE)) {
+        // Open quotes - we'll ignore everything inside
+        if (!$quote) {
+          $quote = $char;
+        }
+        // Close quotes
+        elseif ($char === $quote) {
+          $quote = NULL;
+        }
+      }
+      if (!$quote) {
+        // Delineates end of expression
+        if (($char == ',' || $char == ' ') && !array_filter($enclosures)) {
+          return $item;
+        }
+        // Open brackets - we'll ignore delineators inside
+        if (isset($enclosures[$char])) {
+          $enclosures[$char]++;
+        }
+        // Close brackets
+        if (isset($brackets[$char]) && $enclosures[$brackets[$char]]) {
+          $enclosures[$brackets[$char]]--;
+        }
+      }
+      $item .= $char;
+      // We are escaping the next char if this is a backslash not preceded by an odd number of backslashes
+      $isEscaped = $char === '\\' && ((strlen($item) - strlen(rtrim($item, '\\'))) % 2);
+    }
+    return $item;
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlField.php b/civicrm/Civi/Api4/Query/SqlField.php
index 6180fbf1b4..a665f68609 100644
--- a/civicrm/Civi/Api4/Query/SqlField.php
+++ b/civicrm/Civi/Api4/Query/SqlField.php
@@ -41,4 +41,8 @@ class SqlField extends SqlExpression {
     return $fieldList[$this->expr]['sql_name'];
   }
 
+  public static function getTitle(): string {
+    return ts('Field');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunction.php b/civicrm/Civi/Api4/Query/SqlFunction.php
index 457186c2e8..ea09a42d5d 100644
--- a/civicrm/Civi/Api4/Query/SqlFunction.php
+++ b/civicrm/Civi/Api4/Query/SqlFunction.php
@@ -43,19 +43,23 @@ abstract class SqlFunction extends SqlExpression {
     $arg = trim(substr($this->expr, strpos($this->expr, '(') + 1, -1));
     foreach ($this->getParams() as $idx => $param) {
       $prefix = NULL;
-      if ($param['prefix']) {
-        $prefix = $this->captureKeyword([$param['prefix']], $arg);
+      $name = $param['name'] ?: ($idx + 1);
+      // If this isn't the first param it needs to start with something;
+      // either the name (e.g. "ORDER BY") if it has one, or a comma separating it from the previous param.
+      $start = $param['name'] ?: ($idx ? ',' : NULL);
+      if ($start) {
+        $prefix = $this->captureKeyword([$start], $arg);
         // Supply api_default
         if (!$prefix && isset($param['api_default'])) {
           $this->args[$idx] = [
-            'prefix' => $param['api_default']['prefix'] ?? [$param['prefix']],
+            'prefix' => [$start],
             'expr' => array_map([parent::class, 'convert'], $param['api_default']['expr']),
-            'suffix' => $param['api_default']['suffix'] ?? [],
+            'suffix' => [],
           ];
           continue;
         }
         if (!$prefix && !$param['optional']) {
-          throw new \API_Exception("Missing {$param['prefix']} for SQL function " . static::getName());
+          throw new \API_Exception("Missing param $name for SQL function " . static::getName());
         }
       }
       elseif ($param['flag_before']) {
@@ -66,16 +70,22 @@ abstract class SqlFunction extends SqlExpression {
         'expr' => [],
         'suffix' => [],
       ];
-      if ($param['max_expr'] && (!$param['prefix'] || $param['prefix'] === $prefix)) {
-        $exprs = $this->captureExpressions($arg, $param['must_be'], $param['cant_be']);
-        if (count($exprs) < $param['min_expr'] || count($exprs) > $param['max_expr']) {
-          throw new \API_Exception('Incorrect number of arguments for SQL function ' . static::getName());
+      if ($param['max_expr'] && (!$param['name'] || $param['name'] === $prefix)) {
+        $exprs = $this->captureExpressions($arg, $param['must_be'], $param['max_expr']);
+        if (
+          count($exprs) < $param['min_expr'] &&
+          !(!$exprs && $param['optional'])
+        ) {
+          throw new \API_Exception("Too few arguments to param $name for SQL function " . static::getName());
         }
         $this->args[$idx]['expr'] = $exprs;
 
         $this->args[$idx]['suffix'] = (array) $this->captureKeyword(array_keys($param['flag_after']), $arg);
       }
     }
+    if (trim($arg)) {
+      throw new \API_Exception("Too many arguments given for SQL function " . static::getName());
+    }
   }
 
   /**
@@ -93,100 +103,6 @@ abstract class SqlFunction extends SqlExpression {
     return $value;
   }
 
-  /**
-   * Shift a keyword off the beginning of the argument string and return it.
-   *
-   * @param array $keywords
-   *   Whitelist of keywords
-   * @param string $arg
-   * @return mixed|null
-   */
-  private function captureKeyword($keywords, &$arg) {
-    foreach ($keywords as $key) {
-      if (strpos($arg, $key . ' ') === 0) {
-        $arg = ltrim(substr($arg, strlen($key)));
-        return $key;
-      }
-    }
-    return NULL;
-  }
-
-  /**
-   * Shifts 0 or more expressions off the argument string and returns them
-   *
-   * @param string $arg
-   * @param array $mustBe
-   * @param array $cantBe
-   * @return array
-   * @throws \API_Exception
-   */
-  private function captureExpressions(&$arg, $mustBe, $cantBe) {
-    $captured = [];
-    $arg = ltrim($arg);
-    while ($arg) {
-      $item = $this->captureExpression($arg);
-      $arg = ltrim(substr($arg, strlen($item)));
-      $expr = SqlExpression::convert($item, FALSE, $mustBe, $cantBe);
-      $this->fields = array_merge($this->fields, $expr->getFields());
-      $captured[] = $expr;
-      // Keep going if we have a comma indicating another expression follows
-      if (substr($arg, 0, 1) === ',') {
-        $arg = ltrim(substr($arg, 1));
-      }
-      else {
-        break;
-      }
-    }
-    return $captured;
-  }
-
-  /**
-   * Scans the beginning of a string for an expression; stops when it hits delimiter
-   *
-   * @param $arg
-   * @return string
-   */
-  private function captureExpression($arg) {
-    $chars = str_split($arg);
-    $isEscaped = $quote = NULL;
-    $item = '';
-    $quotes = ['"', "'"];
-    $brackets = [
-      ')' => '(',
-    ];
-    $enclosures = array_fill_keys($brackets, 0);
-    foreach ($chars as $index => $char) {
-      if (!$isEscaped && in_array($char, $quotes, TRUE)) {
-        // Open quotes - we'll ignore everything inside
-        if (!$quote) {
-          $quote = $char;
-        }
-        // Close quotes
-        elseif ($char === $quote) {
-          $quote = NULL;
-        }
-      }
-      if (!$quote) {
-        // Delineates end of expression
-        if (($char == ',' || $char == ' ') && !array_filter($enclosures)) {
-          return $item;
-        }
-        // Open brackets - we'll ignore delineators inside
-        if (isset($enclosures[$char])) {
-          $enclosures[$char]++;
-        }
-        // Close brackets
-        if (isset($brackets[$char]) && $enclosures[$brackets[$char]]) {
-          $enclosures[$brackets[$char]]--;
-        }
-      }
-      $item .= $char;
-      // We are escaping the next char if this is a backslash not preceded by an odd number of backslashes
-      $isEscaped = $char === '\\' && ((strlen($item) - strlen(rtrim($item, '\\'))) % 2);
-    }
-    return $item;
-  }
-
   /**
    * Render the expression for insertion into the sql query
    *
@@ -195,9 +111,8 @@ abstract class SqlFunction extends SqlExpression {
    */
   public function render(array $fieldList): string {
     $output = '';
-    $params = $this->getParams();
-    foreach ($this->args as $index => $arg) {
-      $rendered = $this->renderArg($arg, $params[$index], $fieldList);
+    foreach ($this->args as $arg) {
+      $rendered = $this->renderArg($arg, $fieldList);
       if (strlen($rendered)) {
         $output .= (strlen($output) ? ' ' : '') . $rendered;
       }
@@ -207,11 +122,10 @@ abstract class SqlFunction extends SqlExpression {
 
   /**
    * @param array $arg
-   * @param array $param
    * @param array $fieldList
    * @return string
    */
-  private function renderArg($arg, $param, $fieldList): string {
+  private function renderArg($arg, $fieldList): string {
     $rendered = implode(' ', $arg['prefix']);
     foreach ($arg['expr'] ?? [] as $idx => $expr) {
       if (strlen($rendered) || $idx) {
@@ -250,14 +164,14 @@ abstract class SqlFunction extends SqlExpression {
     foreach (static::params() as $param) {
       // Merge in defaults to ensure each param has these properties
       $params[] = $param + [
-        'prefix' => NULL,
+        'name' => NULL,
+        'label' => ts('Select'),
         'min_expr' => 1,
         'max_expr' => 1,
         'flag_before' => [],
         'flag_after' => [],
         'optional' => FALSE,
-        'must_be' => [],
-        'cant_be' => ['SqlWild'],
+        'must_be' => ['SqlField', 'SqlFunction', 'SqlString', 'SqlNumber', 'SqlNull'],
         'api_default' => NULL,
       ];
     }
@@ -284,6 +198,6 @@ abstract class SqlFunction extends SqlExpression {
   /**
    * @return string
    */
-  abstract public static function getTitle(): string;
+  abstract public static function getDescription(): string;
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionABS.php b/civicrm/Civi/Api4/Query/SqlFunctionABS.php
index 015906c4de..7e8b6f1aab 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionABS.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionABS.php
@@ -31,7 +31,14 @@ class SqlFunctionABS extends SqlFunction {
    * @return string
    */
   public static function getTitle(): string {
-    return ts('Absolute');
+    return ts('Absolute value');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The positive value of a number.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionAVG.php b/civicrm/Civi/Api4/Query/SqlFunctionAVG.php
index 59e6548a73..44ff3b0720 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionAVG.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionAVG.php
@@ -34,4 +34,11 @@ class SqlFunctionAVG extends SqlFunction {
     return ts('Average');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The mean of all values in the grouping.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionBINARY.php b/civicrm/Civi/Api4/Query/SqlFunctionBINARY.php
new file mode 100644
index 0000000000..cce4b8ea50
--- /dev/null
+++ b/civicrm/Civi/Api4/Query/SqlFunctionBINARY.php
@@ -0,0 +1,44 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Query;
+
+/**
+ * Sql function
+ */
+class SqlFunctionBINARY extends SqlFunction {
+
+  protected static $category = self::CATEGORY_STRING;
+
+  protected static function params(): array {
+    return [
+      [
+        'optional' => FALSE,
+        'must_be' => ['SqlField', 'SqlString'],
+      ],
+    ];
+  }
+
+  /**
+   * @return string
+   */
+  public static function getTitle(): string {
+    return ts('Binary');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Case-sensitive string treatment.');
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionCOALESCE.php b/civicrm/Civi/Api4/Query/SqlFunctionCOALESCE.php
index 62622be45f..1616b05280 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionCOALESCE.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionCOALESCE.php
@@ -25,6 +25,7 @@ class SqlFunctionCOALESCE extends SqlFunction {
       [
         'max_expr' => 99,
         'optional' => FALSE,
+        'label' => ts('Value?'),
       ],
     ];
   }
@@ -36,4 +37,11 @@ class SqlFunctionCOALESCE extends SqlFunction {
     return ts('Coalesce');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The first value that is not null.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionCONCAT.php b/civicrm/Civi/Api4/Query/SqlFunctionCONCAT.php
index a1c201fec2..fff67d74f9 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionCONCAT.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionCONCAT.php
@@ -26,6 +26,7 @@ class SqlFunctionCONCAT extends SqlFunction {
         'max_expr' => 99,
         'optional' => FALSE,
         'must_be' => ['SqlField', 'SqlString'],
+        'label' => ts('And'),
       ],
     ];
   }
@@ -34,7 +35,14 @@ class SqlFunctionCONCAT extends SqlFunction {
    * @return string
    */
   public static function getTitle(): string {
-    return ts('Combine');
+    return ts('Combine if');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Joined text, only if all values are not null.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionCONCAT_WS.php b/civicrm/Civi/Api4/Query/SqlFunctionCONCAT_WS.php
new file mode 100644
index 0000000000..92c7a2e289
--- /dev/null
+++ b/civicrm/Civi/Api4/Query/SqlFunctionCONCAT_WS.php
@@ -0,0 +1,53 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Query;
+
+/**
+ * Sql function
+ */
+class SqlFunctionCONCAT_WS extends SqlFunction {
+
+  protected static $category = self::CATEGORY_STRING;
+
+  protected static $dataType = 'String';
+
+  protected static function params(): array {
+    return [
+      [
+        'optional' => FALSE,
+        'must_be' => ['SqlString'],
+        'label' => ts('Separator'),
+      ],
+      [
+        'max_expr' => 99,
+        'optional' => FALSE,
+        'must_be' => ['SqlField', 'SqlString'],
+        'label' => ts('Plus'),
+      ],
+    ];
+  }
+
+  /**
+   * @return string
+   */
+  public static function getTitle(): string {
+    return ts('Combine text');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Every non-null value joined by a separator.');
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionCOUNT.php b/civicrm/Civi/Api4/Query/SqlFunctionCOUNT.php
index c51e024856..360ce7d8af 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionCOUNT.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionCOUNT.php
@@ -26,7 +26,6 @@ class SqlFunctionCOUNT extends SqlFunction {
         'flag_before' => ['DISTINCT' => ts('Distinct')],
         'max_expr' => 1,
         'must_be' => ['SqlField', 'SqlWild'],
-        'cant_be' => [],
       ],
     ];
   }
@@ -38,4 +37,11 @@ class SqlFunctionCOUNT extends SqlFunction {
     return ts('Count');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The number of items in the grouping.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionCURDATE.php b/civicrm/Civi/Api4/Query/SqlFunctionCURDATE.php
index f81993b536..951e4498c5 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionCURDATE.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionCURDATE.php
@@ -29,4 +29,11 @@ class SqlFunctionCURDATE extends SqlFunction {
     return ts('Now');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The current date.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionDATE.php b/civicrm/Civi/Api4/Query/SqlFunctionDATE.php
index 05362a5103..0fe0d136b6 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionDATE.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionDATE.php
@@ -33,7 +33,14 @@ class SqlFunctionDATE extends SqlFunction {
    * @return string
    */
   public static function getTitle(): string {
-    return ts('Date Only');
+    return ts('Date only');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Only the date portion of a date/time.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionGREATEST.php b/civicrm/Civi/Api4/Query/SqlFunctionGREATEST.php
index 549e59a3de..5cc4211c5d 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionGREATEST.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionGREATEST.php
@@ -24,7 +24,9 @@ class SqlFunctionGREATEST extends SqlFunction {
     return [
       [
         'max_expr' => 99,
+        'min_expr' => 2,
         'optional' => FALSE,
+        'label' => ts('Else'),
       ],
     ];
   }
@@ -36,4 +38,11 @@ class SqlFunctionGREATEST extends SqlFunction {
     return ts('Greatest');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The largest of all provided values.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php b/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php
index 939c2c7553..3c90f1a323 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php
@@ -29,14 +29,15 @@ class SqlFunctionGROUP_CONCAT extends SqlFunction {
         'optional' => FALSE,
       ],
       [
-        'prefix' => 'ORDER BY',
+        'name' => 'ORDER BY',
+        'label' => ts('Order by'),
         'max_expr' => 1,
         'flag_after' => ['ASC' => ts('Ascending'), 'DESC' => ts('Descending')],
         'must_be' => ['SqlField'],
         'optional' => TRUE,
       ],
       [
-        'prefix' => 'SEPARATOR',
+        'name' => 'SEPARATOR',
         'max_expr' => 1,
         'must_be' => ['SqlString'],
         'optional' => TRUE,
@@ -80,4 +81,11 @@ class SqlFunctionGROUP_CONCAT extends SqlFunction {
     return ts('List');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('All values in the grouping.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionIF.php b/civicrm/Civi/Api4/Query/SqlFunctionIF.php
index 1b120d4fed..810cfe2d70 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionIF.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionIF.php
@@ -23,9 +23,19 @@ class SqlFunctionIF extends SqlFunction {
   protected static function params(): array {
     return [
       [
-        'min_expr' => 3,
-        'max_expr' => 3,
         'optional' => FALSE,
+        'must_be' => ['SqlEquation', 'SqlField'],
+        'label' => ts('If'),
+      ],
+      [
+        'optional' => FALSE,
+        'must_be' => ['SqlField', 'SqlString', 'SqlNumber', 'SqlNull'],
+        'label' => ts('Then'),
+      ],
+      [
+        'optional' => FALSE,
+        'must_be' => ['SqlField', 'SqlString', 'SqlNumber', 'SqlNull'],
+        'label' => ts('Else'),
       ],
     ];
   }
@@ -34,7 +44,14 @@ class SqlFunctionIF extends SqlFunction {
    * @return string
    */
   public static function getTitle(): string {
-    return ts('If');
+    return ts('If/Else');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('If the field is empty, the first value, otherwise the second.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionISNULL.php b/civicrm/Civi/Api4/Query/SqlFunctionISNULL.php
index beeaebc77d..17d729d430 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionISNULL.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionISNULL.php
@@ -35,4 +35,11 @@ class SqlFunctionISNULL extends SqlFunction {
     return ts('Is null');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('TRUE if the value is NULL, otherwise FALSE.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionLEAST.php b/civicrm/Civi/Api4/Query/SqlFunctionLEAST.php
index 6317647241..c45893421d 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionLEAST.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionLEAST.php
@@ -24,7 +24,9 @@ class SqlFunctionLEAST extends SqlFunction {
     return [
       [
         'max_expr' => 99,
+        'min_expr' => 2,
         'optional' => FALSE,
+        'label' => ts('Else'),
       ],
     ];
   }
@@ -36,4 +38,11 @@ class SqlFunctionLEAST extends SqlFunction {
     return ts('Least');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The smallest of all provided values.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionLOWER.php b/civicrm/Civi/Api4/Query/SqlFunctionLOWER.php
index d1a77b6b5f..23d535e352 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionLOWER.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionLOWER.php
@@ -36,4 +36,11 @@ class SqlFunctionLOWER extends SqlFunction {
     return ts('Lowercase');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Lowercase version of text.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionMAX.php b/civicrm/Civi/Api4/Query/SqlFunctionMAX.php
index 6e3a880bf4..24ad68af4a 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionMAX.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionMAX.php
@@ -36,4 +36,11 @@ class SqlFunctionMAX extends SqlFunction {
     return ts('Max');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The largest value in the grouping.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionMIN.php b/civicrm/Civi/Api4/Query/SqlFunctionMIN.php
index 3c6a79227c..0883ee4c8f 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionMIN.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionMIN.php
@@ -36,4 +36,11 @@ class SqlFunctionMIN extends SqlFunction {
     return ts('Min');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The smallest value in the grouping.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionNULLIF.php b/civicrm/Civi/Api4/Query/SqlFunctionNULLIF.php
index 79e117a7fd..07e4f2df2e 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionNULLIF.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionNULLIF.php
@@ -26,6 +26,7 @@ class SqlFunctionNULLIF extends SqlFunction {
         'min_expr' => 2,
         'max_expr' => 2,
         'optional' => FALSE,
+        'label' => ts('Compare with'),
       ],
     ];
   }
@@ -34,7 +35,14 @@ class SqlFunctionNULLIF extends SqlFunction {
    * @return string
    */
   public static function getTitle(): string {
-    return ts('Null if');
+    return ts('Unequal');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The first value, only if it is not equal to the second.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionRAND.php b/civicrm/Civi/Api4/Query/SqlFunctionRAND.php
index 1cb0cfeeb9..8853973eb0 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionRAND.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionRAND.php
@@ -19,14 +19,26 @@ class SqlFunctionRAND extends SqlFunction {
   protected static $category = self::CATEGORY_MATH;
 
   protected static function params(): array {
-    return [];
+    return [
+      [
+        'optional' => TRUE,
+        'must_be' => ['SqlNumber'],
+      ],
+    ];
   }
 
   /**
    * @return string
    */
   public static function getTitle(): string {
-    return ts('Random Number');
+    return ts('Random number');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Generates a random number between 0 and 1.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionREPLACE.php b/civicrm/Civi/Api4/Query/SqlFunctionREPLACE.php
index 27c7c1b51c..961d151e23 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionREPLACE.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionREPLACE.php
@@ -21,10 +21,19 @@ class SqlFunctionREPLACE extends SqlFunction {
   protected static function params(): array {
     return [
       [
-        'min_expr' => 3,
-        'max_expr' => 3,
         'optional' => FALSE,
         'must_be' => ['SqlField', 'SqlString'],
+        'label' => ts('Source'),
+      ],
+      [
+        'optional' => FALSE,
+        'must_be' => ['SqlString', 'SqlField'],
+        'label' => ts('Find'),
+      ],
+      [
+        'optional' => FALSE,
+        'must_be' => ['SqlString', 'SqlField'],
+        'label' => ts('Replace'),
       ],
     ];
   }
@@ -33,7 +42,14 @@ class SqlFunctionREPLACE extends SqlFunction {
    * @return string
    */
   public static function getTitle(): string {
-    return ts('Replace');
+    return ts('Replace text');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Substitutes one value for another in the text.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionROUND.php b/civicrm/Civi/Api4/Query/SqlFunctionROUND.php
index 5a57c584b1..5db43b962c 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionROUND.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionROUND.php
@@ -23,10 +23,12 @@ class SqlFunctionROUND extends SqlFunction {
       [
         'optional' => FALSE,
         'must_be' => ['SqlField', 'SqlNumber'],
+        'label' => ts('Number'),
       ],
       [
         'optional' => TRUE,
         'must_be' => ['SqlNumber'],
+        'label' => ts('Decimal places'),
       ],
     ];
   }
@@ -38,4 +40,11 @@ class SqlFunctionROUND extends SqlFunction {
     return ts('Round');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Number rounded to specified number of decimal places.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionSUM.php b/civicrm/Civi/Api4/Query/SqlFunctionSUM.php
index 28522692aa..71c56611b8 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionSUM.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionSUM.php
@@ -34,4 +34,11 @@ class SqlFunctionSUM extends SqlFunction {
     return ts('Sum');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('The sum of all values in the grouping.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionTIME.php b/civicrm/Civi/Api4/Query/SqlFunctionTIME.php
index e55b48b867..0354877325 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionTIME.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionTIME.php
@@ -33,7 +33,14 @@ class SqlFunctionTIME extends SqlFunction {
    * @return string
    */
   public static function getTitle(): string {
-    return ts('Time Only');
+    return ts('Time only');
+  }
+
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Only the time portaion of a date/time.');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionUPPER.php b/civicrm/Civi/Api4/Query/SqlFunctionUPPER.php
index 57e3ae3243..51c08af908 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionUPPER.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionUPPER.php
@@ -36,4 +36,11 @@ class SqlFunctionUPPER extends SqlFunction {
     return ts('Uppercase');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Uppercase version of text.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionYEAR.php b/civicrm/Civi/Api4/Query/SqlFunctionYEAR.php
index 81b0ae52a5..f655000c43 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionYEAR.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionYEAR.php
@@ -36,4 +36,11 @@ class SqlFunctionYEAR extends SqlFunction {
     return ts('Year Only');
   }
 
+  /**
+   * @return string
+   */
+  public static function getDescription(): string {
+    return ts('Only the year of a date.');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlNull.php b/civicrm/Civi/Api4/Query/SqlNull.php
index 046d04c749..5b804ba7e9 100644
--- a/civicrm/Civi/Api4/Query/SqlNull.php
+++ b/civicrm/Civi/Api4/Query/SqlNull.php
@@ -23,4 +23,8 @@ class SqlNull extends SqlExpression {
     return 'NULL';
   }
 
+  public static function getTitle(): string {
+    return ts('Null');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlNumber.php b/civicrm/Civi/Api4/Query/SqlNumber.php
index c3331bd953..04e7424aa0 100644
--- a/civicrm/Civi/Api4/Query/SqlNumber.php
+++ b/civicrm/Civi/Api4/Query/SqlNumber.php
@@ -26,4 +26,8 @@ class SqlNumber extends SqlExpression {
     return $this->expr;
   }
 
+  public static function getTitle(): string {
+    return ts('Number');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlString.php b/civicrm/Civi/Api4/Query/SqlString.php
index ae2208d6f3..53228498d3 100644
--- a/civicrm/Civi/Api4/Query/SqlString.php
+++ b/civicrm/Civi/Api4/Query/SqlString.php
@@ -31,4 +31,8 @@ class SqlString extends SqlExpression {
     return '"' . \CRM_Core_DAO::escapeString($this->expr) . '"';
   }
 
+  public static function getTitle(): string {
+    return ts('Text');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Query/SqlWild.php b/civicrm/Civi/Api4/Query/SqlWild.php
index 7799042102..f0679f58a2 100644
--- a/civicrm/Civi/Api4/Query/SqlWild.php
+++ b/civicrm/Civi/Api4/Query/SqlWild.php
@@ -23,4 +23,8 @@ class SqlWild extends SqlExpression {
     return '*';
   }
 
+  public static function getTitle(): string {
+    return ts('Wild');
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php
index e6ff17de27..632dcd3cc1 100644
--- a/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php
+++ b/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php
@@ -22,6 +22,7 @@ class ContactGetSpecProvider implements Generic\SpecProviderInterface {
    * @param \Civi\Api4\Service\Spec\RequestSpec $spec
    */
   public function modifySpec(RequestSpec $spec) {
+    // Groups field
     $field = new FieldSpec('groups', 'Contact', 'Array');
     $field->setLabel(ts('In Groups'))
       ->setTitle(ts('Groups'))
@@ -33,6 +34,19 @@ class ContactGetSpecProvider implements Generic\SpecProviderInterface {
       ->setSuffixes(['id', 'name', 'label'])
       ->setOptionsCallback([__CLASS__, 'getGroupList']);
     $spec->addFieldSpec($field);
+
+    // Age field
+    if (!$spec->getValue('contact_type') || $spec->getValue('contact_type') === 'Individual') {
+      $field = new FieldSpec('age_years', 'Contact', 'Integer');
+      $field->setLabel(ts('Age (years)'))
+        ->setTitle(ts('Age (years)'))
+        ->setColumnName('birth_date')
+        ->setDescription(ts('Age of individual (in years)'))
+        ->setType('Extra')
+        ->setReadonly(TRUE)
+        ->setSqlRenderer([__CLASS__, 'calculateAge']);
+      $spec->addFieldSpec($field);
+    }
   }
 
   /**
@@ -94,4 +108,13 @@ class ContactGetSpecProvider implements Generic\SpecProviderInterface {
     return $options;
   }
 
+  /**
+   * Generate SQL for age field
+   * @param array $field
+   * @return string
+   */
+  public static function calculateAge(array $field) {
+    return "TIMESTAMPDIFF(YEAR, {$field['sql_name']}, CURDATE())";
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Service/Spec/RequestSpec.php b/civicrm/Civi/Api4/Service/Spec/RequestSpec.php
index a66b244a63..d1686c6010 100644
--- a/civicrm/Civi/Api4/Service/Spec/RequestSpec.php
+++ b/civicrm/Civi/Api4/Service/Spec/RequestSpec.php
@@ -36,16 +36,30 @@ class RequestSpec implements \Iterator {
    */
   protected $fields = [];
 
+  /**
+   * @var array
+   */
+  protected $values = [];
+
   /**
    * @param string $entity
    * @param string $action
+   * @param array $values
    */
-  public function __construct($entity, $action) {
+  public function __construct($entity, $action, $values = []) {
     $this->entity = $entity;
     $this->action = $action;
     $this->entityTableName = CoreUtil::getTableName($entity);
+    // Set contact_type from id if possible
+    if ($entity === 'Contact' && empty($values['contact_type']) && !empty($values['id'])) {
+      $values['contact_type'] = \CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $values['id'], 'contact_id');
+    }
+    $this->values = $values;
   }
 
+  /**
+   * @param FieldSpec $field
+   */
   public function addFieldSpec(FieldSpec $field) {
     if (!$field->getEntity()) {
       $field->setEntity($this->entity);
@@ -126,6 +140,21 @@ class RequestSpec implements \Iterator {
     return $this->entity;
   }
 
+  /**
+   * @return array
+   */
+  public function getValues() {
+    return $this->values;
+  }
+
+  /**
+   * @param string $key
+   * @return mixed
+   */
+  public function getValue(string $key) {
+    return $this->values[$key] ?? NULL;
+  }
+
   /**
    * @return string
    */
diff --git a/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php b/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php
index 413c1f3670..f570542309 100644
--- a/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php
+++ b/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php
@@ -32,6 +32,8 @@ class SpecFormatter {
         $field->setName($data['custom_group_id.name'] . '.' . $data['name']);
       }
       else {
+        // Fields belonging to custom entities are treated as normal; type = Field instead of Custom
+        $field->setType('Field');
         $field->setTableName($data['custom_group_id.table_name']);
       }
       $field->setColumnName($data['column_name']);
diff --git a/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php b/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php
index f4a9eacd9e..51a36fc82b 100644
--- a/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php
+++ b/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php
@@ -40,7 +40,7 @@ class SpecGatherer {
    * @return \Civi\Api4\Service\Spec\RequestSpec
    */
   public function getSpec($entity, $action, $includeCustom, $values = []) {
-    $specification = new RequestSpec($entity, $action);
+    $specification = new RequestSpec($entity, $action, $values);
 
     // Real entities
     if (strpos($entity, 'Custom_') !== 0) {
@@ -80,17 +80,16 @@ class SpecGatherer {
   /**
    * @param string $entity
    * @param string $action
-   * @param \Civi\Api4\Service\Spec\RequestSpec $specification
-   * @param array $values
+   * @param \Civi\Api4\Service\Spec\RequestSpec $spec
    */
-  private function addDAOFields($entity, $action, RequestSpec $specification, $values = []) {
+  private function addDAOFields($entity, $action, RequestSpec $spec) {
     $DAOFields = $this->getDAOFields($entity);
 
     foreach ($DAOFields as $DAOField) {
       if ($DAOField['name'] == 'id' && $action == 'create') {
         continue;
       }
-      if (array_key_exists('contactType', $DAOField) && !empty($values['contact_type']) && $DAOField['contactType'] != $values['contact_type']) {
+      if (array_key_exists('contactType', $DAOField) && $spec->getValue('contact_type') && $DAOField['contactType'] != $spec->getValue('contact_type')) {
         continue;
       }
       if (!empty($DAOField['component']) &&
@@ -105,28 +104,26 @@ class SpecGatherer {
         $DAOField['default'] = '1';
       }
       $field = SpecFormatter::arrayToField($DAOField, $entity);
-      $specification->addFieldSpec($field);
+      $spec->addFieldSpec($field);
     }
   }
 
   /**
    * Get custom fields that extend this entity
    *
-   * @see \CRM_Core_SelectValues::customGroupExtends
-   *
    * @param string $entity
-   * @param \Civi\Api4\Service\Spec\RequestSpec $specification
-   * @param array $values
+   * @param \Civi\Api4\Service\Spec\RequestSpec $spec
    * @throws \API_Exception
+   * @see \CRM_Core_SelectValues::customGroupExtends
    */
-  private function addCustomFields($entity, RequestSpec $specification, $values = []) {
+  private function addCustomFields($entity, RequestSpec $spec) {
     $customInfo = \Civi\Api4\Utils\CoreUtil::getCustomGroupExtends($entity);
     if (!$customInfo) {
       return;
     }
     // If a contact_type was passed in, exclude custom groups for other contact types
-    if ($entity === 'Contact' && !empty($values['contact_type'])) {
-      $extends = ['Contact', $values['contact_type']];
+    if ($entity === 'Contact' && $spec->getValue('contact_type')) {
+      $extends = ['Contact', $spec->getValue('contact_type')];
     }
     else {
       $extends = $customInfo['extends'];
@@ -139,7 +136,7 @@ class SpecGatherer {
 
     foreach ($customFields as $fieldArray) {
       $field = SpecFormatter::arrayToField($fieldArray, $entity);
-      $specification->addFieldSpec($field);
+      $spec->addFieldSpec($field);
     }
   }
 
diff --git a/civicrm/Civi/Api4/Survey.php b/civicrm/Civi/Api4/Survey.php
new file mode 100644
index 0000000000..c4cb0d433f
--- /dev/null
+++ b/civicrm/Civi/Api4/Survey.php
@@ -0,0 +1,23 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+namespace Civi\Api4;
+
+/**
+ * Survey entity.
+ *
+ * @see https://docs.civicrm.org/user/en/latest/survey/what-is-civisurvey/
+ * @searchable secondary
+ * @since 5.43
+ * @package Civi\Api4
+ */
+class Survey extends Generic\DAOEntity {
+
+}
diff --git a/civicrm/Civi/Api4/Utils/CoreUtil.php b/civicrm/Civi/Api4/Utils/CoreUtil.php
index efb11f48e3..62ee8124d9 100644
--- a/civicrm/Civi/Api4/Utils/CoreUtil.php
+++ b/civicrm/Civi/Api4/Utils/CoreUtil.php
@@ -13,6 +13,8 @@
 namespace Civi\Api4\Utils;
 
 use Civi\API\Request;
+use Civi\Api4\Entity;
+use Civi\Api4\Event\CreateApi4RequestEvent;
 use CRM_Core_DAO_AllCoreTables as AllCoreTables;
 
 class CoreUtil {
@@ -28,14 +30,8 @@ class CoreUtil {
     if ($entityName === 'CustomValue' || strpos($entityName, 'Custom_') === 0) {
       return 'CRM_Core_BAO_CustomValue';
     }
-    $dao = self::getInfoItem($entityName, 'dao');
-    if (!$dao) {
-      return NULL;
-    }
-    $bao = str_replace("DAO", "BAO", $dao);
-    // Check if this entity actually has a BAO. Fall back on the DAO if not.
-    $file = strtr($bao, '_', '/') . '.php';
-    return stream_resolve_include_path($file) ? $bao : $dao;
+    $dao = AllCoreTables::getFullName($entityName);
+    return $dao ? AllCoreTables::getBAOClassName($dao) : NULL;
   }
 
   /**
@@ -43,13 +39,9 @@ class CoreUtil {
    * @return string|\Civi\Api4\Generic\AbstractEntity
    */
   public static function getApiClass($entityName) {
-    if (strpos($entityName, 'Custom_') === 0) {
-      $groupName = substr($entityName, 7);
-      return self::isCustomEntity($groupName) ? 'Civi\Api4\CustomValue' : NULL;
-    }
-    // Because "Case" is a reserved php keyword
-    $className = 'Civi\Api4\\' . ($entityName === 'Case' ? 'CiviCase' : $entityName);
-    return class_exists($className) ? $className : NULL;
+    $e = new CreateApi4RequestEvent($entityName);
+    \Civi::dispatcher()->dispatch('civi.api4.createRequest', $e);
+    return $e->className;
   }
 
   /**
@@ -60,8 +52,11 @@ class CoreUtil {
    * @return mixed
    */
   public static function getInfoItem(string $entityName, string $keyToReturn) {
-    $className = self::getApiClass($entityName);
-    return $className ? $className::getInfo()[$keyToReturn] ?? NULL : NULL;
+    $info = Entity::get(FALSE)
+      ->addWhere('name', '=', $entityName)
+      ->addSelect($keyToReturn)
+      ->execute()->first();
+    return $info ? $info[$keyToReturn] ?? NULL : NULL;
   }
 
   /**
@@ -114,6 +109,8 @@ class CoreUtil {
     $operators[] = 'CONTAINS';
     $operators[] = 'IS EMPTY';
     $operators[] = 'IS NOT EMPTY';
+    $operators[] = 'REGEXP';
+    $operators[] = 'NOT REGEXP';
     return $operators;
   }
 
@@ -162,7 +159,7 @@ class CoreUtil {
    * @return bool
    * @throws \CRM_Core_Exception
    */
-  private static function isCustomEntity($customGroupName) {
+  public static function isCustomEntity($customGroupName) {
     return $customGroupName && \CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $customGroupName, 'is_multiple', 'name');
   }
 
diff --git a/civicrm/Civi/Api4/WorkflowMessage.php b/civicrm/Civi/Api4/WorkflowMessage.php
new file mode 100644
index 0000000000..5369e84df1
--- /dev/null
+++ b/civicrm/Civi/Api4/WorkflowMessage.php
@@ -0,0 +1,139 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ */
+
+namespace Civi\Api4;
+
+/**
+ * A WorkflowMessage describes the inputs to an automated email messages, and it
+ * allows you to render or preview the content fo automated email messages.
+ *
+ * For example, when a constituent donates online, CiviContribute uses the
+ * `contribution_online_receipt` workflow message. This expects certain inputs
+ * (eg `contactId` and `contributionId`) and supports certain tokens
+ * (eg `{contribution.total_amount}`).
+ *
+ * WorkflowMessages are related to MessageTemplates (by way of
+ * `WorkflowMessage.name`<=>`MessageTemplate.workflow_name`).
+ * The WorkflowMessage defines the _contract_ or _processing_ of the
+ * message, and the MessageTemplate defines the _literal prose_.  The prose
+ * would change frequently (eg for different deployments, locales, timeframes,
+ * and other whims), but contract would change conservatively (eg with a
+ * code-update and with some attention to backward-compatibility/change-management).
+ *
+ * @searchable none
+ * @since 5.43
+ * @package Civi\Api4
+ */
+class WorkflowMessage extends Generic\AbstractEntity {
+
+  /**
+   * @param bool $checkPermissions
+   * @return Generic\BasicGetAction
+   */
+  public static function get($checkPermissions = TRUE) {
+    return (new Generic\BasicGetAction(__CLASS__, __FUNCTION__, function ($get) {
+      return \Civi\WorkflowMessage\WorkflowMessage::getWorkflowSpecs();
+    }))->setCheckPermissions($checkPermissions);
+  }
+
+  /**
+   * @param bool $checkPermissions
+   *
+   * @return \Civi\Api4\Action\WorkflowMessage\Render
+   */
+  public static function render($checkPermissions = TRUE) {
+    return (new Action\WorkflowMessage\Render(__CLASS__, __FUNCTION__))
+      ->setCheckPermissions($checkPermissions);
+  }
+
+  /**
+   * @param bool $checkPermissions
+   * @return Generic\BasicGetFieldsAction
+   */
+  public static function getTemplateFields($checkPermissions = TRUE) {
+    return (new Action\WorkflowMessage\GetTemplateFields(__CLASS__, __FUNCTION__))
+      ->setCheckPermissions($checkPermissions);
+  }
+
+  /**
+   * @param bool $checkPermissions
+   * @return Generic\BasicGetFieldsAction
+   */
+  public static function getFields($checkPermissions = TRUE) {
+    return (new Generic\BasicGetFieldsAction(__CLASS__, __FUNCTION__, function() {
+      return [
+        [
+          'name' => 'name',
+          'title' => 'Name',
+          'data_type' => 'String',
+        ],
+        [
+          'name' => 'group',
+          'title' => 'Group',
+          'data_type' => 'String',
+        ],
+        [
+          'name' => 'class',
+          'title' => 'Class',
+          'data_type' => 'String',
+        ],
+        [
+          'name' => 'description',
+          'title' => 'Description',
+          'data_type' => 'String',
+        ],
+        [
+          'name' => 'support',
+          'title' => 'Support Level',
+          'options'  => [
+            'experimental' => ts('Experimental: Message may change substantively with no special communication or facilitation.'),
+            'template-only' => ts('Template Support: Changes affecting the content of the message-template will get active support/facilitation.'),
+            'full' => ts('Full Support: All changes affecting message-templates or message-senders will get active support/facilitation.'),
+          ],
+          'data_type' => 'String',
+        ],
+      ];
+    }))->setCheckPermissions($checkPermissions);
+  }
+
+  public static function permissions() {
+    return [
+      'meta' => ['access CiviCRM'],
+      'default' => ['administer CiviCRM'],
+      'render' => [
+        // nested array = OR
+        [
+          'edit message templates',
+          'edit user-driven message templates',
+          'edit system workflow message templates',
+          'render templates',
+        ],
+      ],
+    ];
+  }
+
+  /**
+   * @inheritDoc
+   */
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['primary_key'] = ['name'];
+    return $info;
+  }
+
+}
diff --git a/civicrm/Civi/Core/Container.php b/civicrm/Civi/Core/Container.php
index c680216844..fd7c2773d6 100644
--- a/civicrm/Civi/Core/Container.php
+++ b/civicrm/Civi/Core/Container.php
@@ -213,6 +213,11 @@ class Container {
       []
     ))->setPublic(TRUE);
 
+    $container->setDefinition('format', new Definition(
+      '\Civi\Core\Format',
+      []
+    ))->setPublic(TRUE);
+
     $container->setDefinition('bundle.bootstrap3', new Definition('CRM_Core_Resources_Bundle', ['bootstrap3']))
       ->setFactory('CRM_Core_Resources_Common::createBootstrap3Bundle')->setPublic(TRUE);
 
@@ -323,16 +328,28 @@ class Container {
       []
     ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
     $container->setDefinition("crm_mailing_action_tokens", new Definition(
-      "CRM_Mailing_ActionTokens",
+      'CRM_Mailing_ActionTokens',
       []
     ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
 
-    foreach (['Activity', 'Contribute', 'Event', 'Mailing', 'Member'] as $comp) {
-      $container->setDefinition("crm_" . strtolower($comp) . "_tokens", new Definition(
+    foreach (['Activity', 'Contact', 'Contribute', 'Event', 'Mailing', 'Member', 'Case'] as $comp) {
+      $container->setDefinition('crm_' . strtolower($comp) . '_tokens', new Definition(
         "CRM_{$comp}_Tokens",
         []
       ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
     }
+    $container->setDefinition('crm_participant_tokens', new Definition(
+      'CRM_Event_ParticipantTokens',
+      []
+    ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
+    $container->setDefinition('crm_contribution_recur_tokens', new Definition(
+      'CRM_Contribute_RecurTokens',
+      []
+    ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
+    $container->setDefinition('crm_domain_tokens', new Definition(
+      'CRM_Core_DomainTokens',
+      []
+    ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
 
     $dispatcherDefn = $container->getDefinition('dispatcher');
     foreach (\CRM_Core_DAO_AllCoreTables::getBaoClasses() as $baoEntity => $baoClass) {
diff --git a/civicrm/Civi/Core/Format.php b/civicrm/Civi/Core/Format.php
new file mode 100644
index 0000000000..52d85865a4
--- /dev/null
+++ b/civicrm/Civi/Core/Format.php
@@ -0,0 +1,184 @@
+<?php
+
+namespace Civi\Core;
+
+use Brick\Money\Currency;
+use Brick\Money\Money;
+use Brick\Math\RoundingMode;
+use Civi;
+use CRM_Core_Config;
+use CRM_Core_I18n;
+use CRM_Utils_Constant;
+use NumberFormatter;
+use Brick\Money\Context\AutoContext;
+
+/**
+ * Class Paths
+ * @package Civi\Core
+ *
+ * This class provides standardised formatting
+ */
+class Format {
+
+  /**
+   * Get formatted money
+   *
+   * @param string $amount
+   * @param string|null $currency
+   *   Currency, defaults to site currency if not provided.
+   * @param string|null $locale
+   *
+   * @return string
+   *
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  public function money(string $amount, ?string $currency = NULL, ?string $locale = NULL): string {
+    if (!$currency) {
+      $currency = Civi::settings()->get('defaultCurrency');
+    }
+    if (!isset($locale)) {
+      $locale = CRM_Core_I18n::getLocale();
+    }
+    $money = Money::of($amount, $currency, NULL, RoundingMode::HALF_UP);
+    $formatter = $this->getMoneyFormatter($currency, $locale);
+    return $money->formatWith($formatter);
+  }
+
+  /**
+   * Get a formatted number.
+   *
+   * @param string|int|float|Money $amount
+   *   Amount in a machine money format.
+   * @param string|null $locale
+   * @param array $attributes
+   *   Additional values supported by NumberFormatter
+   *   https://www.php.net/manual/en/class.numberformatter.php
+   *   By default this will set it to round to 8 places and not
+   *   add any padding.
+   *
+   * @return string
+   */
+  public function number($amount, ?string $locale = NULL, array $attributes = [
+    NumberFormatter::MIN_FRACTION_DIGITS => 0,
+    NumberFormatter::MAX_FRACTION_DIGITS => 8,
+  ]): string {
+    $formatter = $this->getMoneyFormatter(NULL, $locale, NumberFormatter::DECIMAL, $attributes);
+    return $formatter->format($amount);
+  }
+
+  /**
+   * Get a number formatted with rounding expectations derived from the currency.
+   *
+   * @param string|float|int $amount
+   * @param string $currency
+   * @param $locale
+   *
+   * @return string
+   *
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  public function moneyNumber($amount, string $currency, $locale): string {
+    $formatter = $this->getMoneyFormatter($currency, $locale, NumberFormatter::DECIMAL);
+    $money = Money::of($amount, $currency, NULL, RoundingMode::HALF_UP);
+    return $money->formatWith($formatter);
+  }
+
+  /**
+   * Get a money value with formatting but not rounding.
+   *
+   * @param string|float|int $amount
+   * @param string|null $currency
+   * @param string|null $locale
+   *
+   * @return string
+   *
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  public function moneyLong($amount, ?string $currency, ?string $locale): string {
+    $formatter = $this->getMoneyFormatter($currency, $locale, NumberFormatter::CURRENCY, [
+      NumberFormatter::MAX_FRACTION_DIGITS => 9,
+    ]);
+    $money = Money::of($amount, $currency, new AutoContext());
+    return $money->formatWith($formatter);
+  }
+
+  /**
+   * Get a number with minimum decimal places based on the currency but no rounding.
+   *
+   * @param string|float|int $amount
+   * @param string|null $currency
+   * @param string|null $locale
+   *
+   * @return string
+   *
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  public function moneyNumberLong($amount, ?string $currency, ?string $locale): string {
+    $formatter = $this->getMoneyFormatter($currency, $locale, NumberFormatter::DECIMAL, [
+      NumberFormatter::MAX_FRACTION_DIGITS => 9,
+    ]);
+    $money = Money::of($amount, $currency, new AutoContext());
+    return $money->formatWith($formatter);
+  }
+
+  /**
+   * Should we use the configured thousand & decimal separators.
+   *
+   * The goal is to phase this into being FALSE - but for now
+   * we are looking at how to manage an 'opt in'
+   */
+  protected function isUseSeparatorSettings(): bool {
+    return !CRM_Utils_Constant::value('IGNORE_SEPARATOR_CONFIG');
+  }
+
+  /**
+   * Get the money formatter for when we are using configured thousand separators.
+   *
+   * Our intent is to phase out these settings in favour of deriving them from the locale.
+   *
+   * @param string|null $currency
+   * @param string|null $locale
+   * @param int $style
+   *   See https://www.php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+   * @param array $attributes
+   *   See https://www.php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants.unumberformatattribute
+   *
+   * @return \NumberFormatter
+   *
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  public function getMoneyFormatter(?string $currency = NULL, ?string $locale = NULL, int $style = NumberFormatter::CURRENCY, array $attributes = []): NumberFormatter {
+    if (!$currency) {
+      $currency = Civi::settings()->get('defaultCurrency');
+    }
+    $cacheKey = __CLASS__ . $currency . '_' . $locale . '_' . $style . (!empty($attributes) ? md5(json_encode($attributes)) : '');
+    if (!isset(\Civi::$statics[$cacheKey])) {
+      $formatter = new NumberFormatter($locale, $style);
+
+      if (!isset($attributes[NumberFormatter::MIN_FRACTION_DIGITS])) {
+        $attributes[NumberFormatter::MIN_FRACTION_DIGITS] = Currency::of($currency)
+          ->getDefaultFractionDigits();
+      }
+      if (!isset($attributes[NumberFormatter::MAX_FRACTION_DIGITS])) {
+        $attributes[NumberFormatter::MAX_FRACTION_DIGITS] = Currency::of($currency)
+          ->getDefaultFractionDigits();
+      }
+
+      foreach ($attributes as $attribute => $value) {
+        $formatter->setAttribute($attribute, $value);
+      }
+      if ($locale === CRM_Core_I18n::getLocale() && $this->isUseSeparatorSettings()) {
+        $formatter->setSymbol(NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, CRM_Core_Config::singleton()->monetaryThousandSeparator);
+        $formatter->setSymbol(NumberFormatter::MONETARY_SEPARATOR_SYMBOL, CRM_Core_Config::singleton()->monetaryDecimalPoint);
+      }
+      \Civi::$statics[$cacheKey] = $formatter;
+    }
+    return \Civi::$statics[$cacheKey];
+  }
+
+}
diff --git a/civicrm/Civi/Test.php b/civicrm/Civi/Test.php
index cf9c841ab7..a0d6769747 100644
--- a/civicrm/Civi/Test.php
+++ b/civicrm/Civi/Test.php
@@ -182,6 +182,46 @@ class Test {
     return self::$singletons['data'];
   }
 
+  /**
+   * @return \Civi\Test\ExampleDataLoader
+   */
+  public static function examples(): \Civi\Test\ExampleDataLoader {
+    if (!isset(self::$singletons['examples'])) {
+      self::$singletons['examples'] = new \Civi\Test\ExampleDataLoader();
+    }
+    return self::$singletons['examples'];
+  }
+
+  /**
+   * Lookup the content of an example data-set.
+   *
+   * This helper is for the common case of looking up the data for a specific example.
+   * If you need more detailed information (eg the list of examples or other metadata),
+   * then use `\Civi\Test::examples(): ExampleDataLoader`. It  provides more methods.
+   *
+   * @param string $name
+   *   Symbolic name of the data-set.
+   * @return array
+   *   The example data.
+   */
+  public static function example(string $name): array {
+    $result = static::examples()->getFull($name);
+    if (!isset($result['data'])) {
+      throw new \CRM_Core_Exception("Failed to load example data-set: $name");
+    }
+    return $result['data'];
+  }
+
+  /**
+   * @return \Civi\Test\EventChecker
+   */
+  public static function eventChecker() {
+    if (!isset(self::$singletons['eventChecker'])) {
+      self::$singletons['eventChecker'] = new \Civi\Test\EventChecker();
+    }
+    return self::$singletons['eventChecker'];
+  }
+
   /**
    * Prepare and execute a batch of SQL statements.
    *
diff --git a/civicrm/Civi/Test/CiviTestListener.php b/civicrm/Civi/Test/CiviTestListener.php
index 8f4c21d7a4..6e3b4cdc08 100644
--- a/civicrm/Civi/Test/CiviTestListener.php
+++ b/civicrm/Civi/Test/CiviTestListener.php
@@ -65,9 +65,24 @@ else {
       else {
         $this->tx = NULL;
       }
+
+      if ($this->isCiviTest($test) || $test instanceof \CiviUnitTestCase) {
+        \Civi\Test::eventChecker()->start($test);
+      }
     }
 
     public function endTest(\PHPUnit\Framework\Test $test, $time) {
+      $exception = NULL;
+
+      if ($this->isCiviTest($test) || $test instanceof \CiviUnitTestCase) {
+        try {
+          \Civi\Test::eventChecker()->stop($test);
+        }
+        catch (\Exception $e) {
+          $exception = $e;
+        }
+      }
+
       if ($test instanceof TransactionalInterface) {
         $this->tx->rollback()->commit();
         $this->tx = NULL;
@@ -81,6 +96,10 @@ else {
         error_reporting(E_ALL & ~E_NOTICE);
         $this->errorScope = NULL;
       }
+
+      if ($exception) {
+        throw $exception;
+      }
     }
 
     /**
diff --git a/civicrm/Civi/Test/CiviTestListenerPHPUnit7.php b/civicrm/Civi/Test/CiviTestListenerPHPUnit7.php
index 42161cb12b..97c122081a 100644
--- a/civicrm/Civi/Test/CiviTestListenerPHPUnit7.php
+++ b/civicrm/Civi/Test/CiviTestListenerPHPUnit7.php
@@ -57,9 +57,24 @@ class CiviTestListenerPHPUnit7 implements \PHPUnit\Framework\TestListener {
     else {
       $this->tx = NULL;
     }
+
+    if ($this->isCiviTest($test) || $test instanceof \CiviUnitTestCase) {
+      \Civi\Test::eventChecker()->start($test);
+    }
   }
 
   public function endTest(\PHPUnit\Framework\Test $test, float $time): void {
+    $exception = NULL;
+
+    if ($this->isCiviTest($test) || $test instanceof \CiviUnitTestCase) {
+      try {
+        \Civi\Test::eventChecker()->stop($test);
+      }
+      catch (\Exception $e) {
+        $exception = $e;
+      }
+    }
+
     if ($test instanceof TransactionalInterface) {
       $this->tx->rollback()->commit();
       $this->tx = NULL;
@@ -73,6 +88,10 @@ class CiviTestListenerPHPUnit7 implements \PHPUnit\Framework\TestListener {
       error_reporting(E_ALL & ~E_NOTICE);
       $this->errorScope = NULL;
     }
+
+    if ($exception) {
+      throw $exception;
+    }
   }
 
   /**
diff --git a/civicrm/Civi/Test/EntityExample.php b/civicrm/Civi/Test/EntityExample.php
new file mode 100644
index 0000000000..930f5972a0
--- /dev/null
+++ b/civicrm/Civi/Test/EntityExample.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace Civi\Test;
+
+/**
+ * Helper class for defining entity examples.
+ *
+ * By convention, you should name this class relative to the target workflow,
+ * as in:
+ *
+ * - Entity Name: ContributionRecur
+ * - Example Data: Civi\Test\ExampleData\ContributionRecur\Euro5990
+ * - Example Name: entity/ContributionRecur/Euro5900
+ */
+abstract class EntityExample implements ExampleDataInterface {
+
+  /**
+   * @var string
+   */
+  protected $entityName;
+
+  /**
+   * @var string
+   */
+  protected $exName;
+
+  public function __construct() {
+    if (!preg_match(';^(.*)[_\\\]([a-zA-Z0-9]+)[_\\\]([a-zA-Z0-9]+)$;', static::class, $m)) {
+      throw new \RuntimeException("Failed to parse class: " . static::class);
+    }
+    $this->entityName = $m[2];
+    $this->exName = $m[3];
+  }
+
+  protected function dao(): string {
+    return \CRM_Core_DAO_AllCoreTables::getFullName($this->entityName);
+  }
+
+  protected function bao(): string {
+    return \CRM_Core_DAO_AllCoreTables::getBAOClassName($this->getDAO());
+  }
+
+}
diff --git a/civicrm/Civi/Test/EventCheck.php b/civicrm/Civi/Test/EventCheck.php
new file mode 100644
index 0000000000..6254201ed2
--- /dev/null
+++ b/civicrm/Civi/Test/EventCheck.php
@@ -0,0 +1,81 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Test;
+
+use PHPUnit\Framework\Assert;
+
+/**
+ * An EventCheck is a fragment of a unit-test -- it is mixed into
+ * various test-scenarios and applies extra assertions.
+ */
+class EventCheck extends Assert {
+
+  /**
+   * @var \PHPUnit\Framework\Test
+   */
+  private $test;
+
+  /**
+   * Determine whether this check should be used during the current test.
+   *
+   * @param \PHPUnit\Framework\Test|NULL $test
+   *
+   * @return bool|string
+   *   FALSE: The check will be completely skipped.
+   *   TRUE: The check will be enabled. However, if the events never
+   *         execute, that is OK. Useful for general compliance-testing.
+   */
+  public function isSupported($test) {
+    return TRUE;
+  }
+
+  /**
+   * @return \PHPUnit\Framework\Test|NULL
+   */
+  public function getTest() {
+    return $this->test;
+  }
+
+  /**
+   * @param \PHPUnit\Framework\Test|NULL $test
+   */
+  public function setTest($test): void {
+    $this->test = $test;
+  }
+
+  /**
+   * Assert that a variable has a given type.
+   *
+   * @param string|string[] $types
+   *   List of types, per `gettype()` or `get_class()`
+   *   Ex: 'int|string|NULL'
+   *   Ex: [`array`, `NULL`, `CRM_Core_DAO`]
+   * @param mixed $value
+   *   The variable to check
+   * @param string|NULL $msg
+   * @see \CRM_Utils_Type::validatePhpType
+   */
+  public function assertType($types, $value, ?string $msg = NULL) {
+    if (!\CRM_Utils_Type::validatePhpType($value, $types, FALSE)) {
+      $defactoType = is_object($value) ? get_class($value) : gettype($value);
+      $types = is_array($types) ? implode('|', $types) : $types;
+      $this->fail(sprintf("Expected one of (%s) but found %s\n%s", $types, $defactoType, $msg));
+    }
+  }
+
+  public function setUp() {
+  }
+
+  public function tearDown() {
+  }
+
+}
diff --git a/civicrm/Civi/Test/EventChecker.php b/civicrm/Civi/Test/EventChecker.php
new file mode 100644
index 0000000000..1dc1e27ed0
--- /dev/null
+++ b/civicrm/Civi/Test/EventChecker.php
@@ -0,0 +1,106 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Test;
+
+use Civi\Core\Event\EventScanner;
+
+class EventChecker {
+
+  /**
+   * @var \Civi\Test\EventCheck[]|null
+   */
+  private $allChecks = NULL;
+
+  /**
+   * @var \Civi\Test\EventCheck[]|null
+   */
+  private $activeChecks = NULL;
+
+  /**
+   * @param \PHPUnit\Framework\Test $test
+   *
+   * @return $this
+   */
+  public function start(\PHPUnit\Framework\Test $test) {
+    if ($this->activeChecks === NULL) {
+      $this->activeChecks = [];
+      foreach ($this->findAll() as $template) {
+        /** @var EventCheck $template */
+        if ($template->isSupported($test)) {
+          $checker = clone $template;
+          $checker->setTest($test);
+          $this->activeChecks[] = $checker;
+          $checker->setUp();
+        }
+      }
+    }
+    return $this;
+  }
+
+  /**
+   * @return $this
+   */
+  public function addListeners() {
+    $d = \Civi::dispatcher();
+    foreach ($this->activeChecks ?: [] as $checker) {
+      /** @var EventCheck $checker */
+      $d->addListenerMap($checker, EventScanner::findListeners($checker));
+      // For the moment, KISS. But we may want a counter at some point - to ensure things actually run.
+      //foreach (EventScanner::findListeners($checker) as $event => $listeners) {
+      //  foreach ($listeners as $listener) {
+      //    $d->addListener($event,
+      //      function($args...) use ($listener) {
+      //        $count++;
+      //        $m = $listener[1];
+      //        $checker->$m(...$args);
+      //      },
+      //      $listener[1] ?? 0
+      //    );
+      //  }
+      //}
+    }
+    return $this;
+  }
+
+  /**
+   * @return $this
+   */
+  public function stop() {
+    // NOTE: In test environment, dispatcher will be removed regardless.
+    foreach ($this->activeChecks ?? [] as $checker) {
+      /** @var \Civi\Test\EventCheck $checker */
+      Invasive::call([$checker, 'tearDown']);
+      $checker->setTest(NULL);
+    }
+    $this->activeChecks = NULL;
+    return $this;
+  }
+
+  /**
+   * @return EventCheck[]
+   */
+  protected function findAll() {
+    if ($this->allChecks === NULL) {
+      $all = [];
+      $testDir = \Civi::paths()->getPath('[civicrm.root]/tests/events');
+      $files = \CRM_Utils_File::findFiles($testDir, '*.evch.php', TRUE);
+      sort($files);
+      foreach ($files as $file) {
+        $all[$file] = require $testDir . '/' . $file;
+      }
+      $this->allChecks = $all;
+    }
+
+    return $this->allChecks;
+  }
+
+}
diff --git a/civicrm/Civi/Test/ExampleData/Contact/Alex.ex.php b/civicrm/Civi/Test/ExampleData/Contact/Alex.ex.php
new file mode 100644
index 0000000000..ebb2e78296
--- /dev/null
+++ b/civicrm/Civi/Test/ExampleData/Contact/Alex.ex.php
@@ -0,0 +1,85 @@
+<?php
+
+namespace Civi\Test\ExampleData\Contact;
+
+class Alex extends \Civi\Test\EntityExample {
+
+  public function getExamples(): iterable {
+    yield [
+      'name' => "entity/{$this->entityName}/{$this->exName}",
+    ];
+  }
+
+  public function build(array &$example): void {
+    $example['data'] = [
+      'contact_id' => '100',
+      'contact_type' => 'Individual',
+      'contact_sub_type' => NULL,
+      'sort_name' => 'D\u00edaz, Alex',
+      'display_name' => 'Dr. Alex D\u00edaz',
+      'do_not_email' => '1',
+      'do_not_phone' => '1',
+      'do_not_mail' => '0',
+      'do_not_sms' => '0',
+      'do_not_trade' => '0',
+      'is_opt_out' => '0',
+      'legal_identifier' => NULL,
+      'external_identifier' => NULL,
+      'nick_name' => NULL,
+      'legal_name' => NULL,
+      'image_URL' => NULL,
+      'preferred_communication_method' => NULL,
+      'preferred_language' => NULL,
+      'preferred_mail_format' => 'Both',
+      'first_name' => 'Alex',
+      'middle_name' => '',
+      'last_name' => 'D\u00edaz',
+      'prefix_id' => '4',
+      'suffix_id' => NULL,
+      'formal_title' => NULL,
+      'communication_style_id' => NULL,
+      'job_title' => NULL,
+      'gender_id' => '1',
+      'birth_date' => '1994-04-21',
+      'is_deceased' => '0',
+      'deceased_date' => NULL,
+      'household_name' => NULL,
+      'organization_name' => NULL,
+      'sic_code' => NULL,
+      'contact_is_deleted' => '0',
+      'current_employer' => NULL,
+      'address_id' => NULL,
+      'street_address' => NULL,
+      'supplemental_address_1' => NULL,
+      'supplemental_address_2' => NULL,
+      'supplemental_address_3' => NULL,
+      'city' => NULL,
+      'postal_code_suffix' => NULL,
+      'postal_code' => NULL,
+      'geo_code_1' => NULL,
+      'geo_code_2' => NULL,
+      'state_province_id' => NULL,
+      'country_id' => NULL,
+      'phone_id' => '7',
+      'phone_type_id' => '1',
+      'phone' => '293-6934',
+      'email_id' => '7',
+      'email' => 'daz.alex67@testing.net',
+      'on_hold' => '0',
+      'im_id' => NULL,
+      'provider_id' => NULL,
+      'im' => NULL,
+      'worldregion_id' => NULL,
+      'world_region' => NULL,
+      'languages' => NULL,
+      'individual_prefix' => 'Dr.',
+      'individual_suffix' => NULL,
+      'communication_style' => NULL,
+      'gender' => 'Female',
+      'state_province_name' => NULL,
+      'state_province' => NULL,
+      'country' => NULL,
+    ];
+  }
+
+}
diff --git a/civicrm/Civi/Test/ExampleData/Contact/Barb.ex.php b/civicrm/Civi/Test/ExampleData/Contact/Barb.ex.php
new file mode 100644
index 0000000000..015b6a0e9d
--- /dev/null
+++ b/civicrm/Civi/Test/ExampleData/Contact/Barb.ex.php
@@ -0,0 +1,91 @@
+<?php
+
+namespace Civi\Test\ExampleData\Contact;
+
+class Barb extends \Civi\Test\EntityExample {
+
+  public function getExamples(): iterable {
+    yield [
+      'name' => "entity/{$this->entityName}/{$this->exName}",
+    ];
+  }
+
+  public function build(array &$example): void {
+    $example['data'] = [
+      'contact_id' => '100',
+      'contact_type' => 'Individual',
+      'contact_sub_type' => NULL,
+      'sort_name' => 'Johnson, Barbara',
+      'display_name' => 'Barbara Johnson',
+      'do_not_email' => '1',
+      'do_not_phone' => '1',
+      'do_not_mail' => '0',
+      'do_not_sms' => '0',
+      'do_not_trade' => '0',
+      'is_opt_out' => '0',
+      'legal_identifier' => NULL,
+      'external_identifier' => NULL,
+      'nick_name' => 'Barb',
+      'legal_name' => NULL,
+      'image_URL' => NULL,
+      'preferred_communication_method' => NULL,
+      'preferred_language' => NULL,
+      'preferred_mail_format' => 'Both',
+      'first_name' => 'Barbara',
+      'middle_name' => '',
+      'last_name' => 'Johnson',
+      'prefix_id' => '4',
+      'suffix_id' => NULL,
+      'formal_title' => NULL,
+      'communication_style_id' => NULL,
+      'job_title' => NULL,
+      'gender_id' => '1',
+      'birth_date' => '1999-05-11',
+      'is_deceased' => '0',
+      'deceased_date' => NULL,
+      'household_name' => NULL,
+      'organization_name' => NULL,
+      'sic_code' => NULL,
+      'contact_is_deleted' => '0',
+      'current_employer' => NULL,
+      'address_id' => NULL,
+      'street_address' => NULL,
+      'supplemental_address_1' => NULL,
+      'supplemental_address_2' => NULL,
+      'supplemental_address_3' => NULL,
+      'city' => NULL,
+      'postal_code_suffix' => NULL,
+      'postal_code' => NULL,
+      'geo_code_1' => NULL,
+      'geo_code_2' => NULL,
+      'state_province_id' => NULL,
+      'country_id' => NULL,
+      'phone_id' => '7',
+      'phone_type_id' => '1',
+      'phone' => '393-7924',
+      'email_id' => '7',
+      'email' => 'barb@testing.net',
+      'on_hold' => '0',
+      'im_id' => NULL,
+      'provider_id' => NULL,
+      'im' => NULL,
+      'worldregion_id' => NULL,
+      'world_region' => NULL,
+      'languages' => NULL,
+      'individual_prefix' => NULL,
+      'individual_suffix' => NULL,
+      'communication_style' => NULL,
+      'gender' => 'Female',
+      'state_province_name' => NULL,
+      'state_province' => NULL,
+      'country' => NULL,
+      'email_greeting_id' => 1,
+      'email_greeting_custom' => NULL,
+      'email_greeting_display' => 'Dear Barb',
+      'postal_greeting_id' => 1,
+      'postal_greeting_custom' => NULL,
+      'postal_greeting_display' => 'Dear Barb',
+    ];
+  }
+
+}
diff --git a/civicrm/Civi/Test/ExampleData/Contribution/Euro5990.ex.php b/civicrm/Civi/Test/ExampleData/Contribution/Euro5990.ex.php
new file mode 100644
index 0000000000..0d3237d0be
--- /dev/null
+++ b/civicrm/Civi/Test/ExampleData/Contribution/Euro5990.ex.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace Civi\Test\ExampleData\Contribution;
+
+class Euro5990 extends \Civi\Test\EntityExample {
+
+  public function getExamples(): iterable {
+    yield [
+      'name' => "entity/{$this->entityName}/{$this->exName}/completed",
+    ];
+  }
+
+  public function build(array &$example): void {
+    $base = [
+      'id' => 50,
+      'contact_id' => 100,
+      'financial_type_id' => 'Member dues',
+      'payment_instrument_id:label' => 'Debit Card',
+      'contribution_page_id' => 2,
+      'receive_date' => '2021-07-23 15:39:20',
+      'revenue_recognition_date' => '2021-07-23 00:00:00',
+      'thankyou_date' => '2021-07-23 15:39:20',
+      'cancel_date' => '',
+      'cancel_reason' => '',
+      'non_deductible_amount' => 5,
+      'total_amount' => 5990.99,
+      'fee_amount' => 0.99,
+      'net_amount' => 5990,
+      'tax_amount' => 60,
+      'currency' => 'EUR',
+      'source' => 'Online donation',
+      'amount_level' => 'premium purchased',
+      'contribution_recur_id' => 50,
+      'check_number' => '',
+      'campaign_id:label' => 'Outreach',
+      'creditnote_id' => '',
+      'trxn_id' => 123,
+      'invoice_id' => 'inv123',
+      'is_test' => TRUE,
+      'is_pay_later' => FALSE,
+    ];
+
+    $extras['completed'] = [
+      'contribution_status_id' => 1,
+    ];
+
+    $example['data'] = $base + $extras[basename($example['name'])];
+  }
+
+}
diff --git a/civicrm/Civi/Test/ExampleData/ContributionRecur/Euro5990.ex.php b/civicrm/Civi/Test/ExampleData/ContributionRecur/Euro5990.ex.php
new file mode 100644
index 0000000000..e55cf2f187
--- /dev/null
+++ b/civicrm/Civi/Test/ExampleData/ContributionRecur/Euro5990.ex.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Civi\Test\ExampleData\ContributionRecur;
+
+class Euro5990 extends \Civi\Test\EntityExample {
+
+  public function getExamples(): iterable {
+    yield [
+      'name' => "entity/{$this->entityName}/{$this->exName}/pending",
+    ];
+    yield [
+      'name' => "entity/{$this->entityName}/{$this->exName}/cancelled",
+    ];
+  }
+
+  public function build(array &$example): void {
+    $base = [
+      'id' => 50,
+      'contact_id' => 100,
+      'is_email_receipt' => 1,
+      'start_date' => '2021-07-23 15:39:20',
+      'end_date' => '2021-07-26 18:07:20',
+      'amount' => 5990.99,
+      'currency' => 'EUR',
+      'frequency_unit' => 'year',
+      'frequency_interval' => 2,
+      'installments' => 24,
+      'payment_instrument_id:label' => 'Debit Card',
+      'financial_type_id:label' => 'Member dues',
+      'processor_id' => 'abc_xyz',
+      'payment_processor_id' => 2,
+      'trxn_id' => 123,
+      'invoice_id' => 'inv123',
+      'sequential' => 1,
+      'failure_retry_date' => '2020-01-03',
+      'auto_renew' => 1,
+      'cycle_day' => '15',
+      'is_test' => TRUE,
+      'payment_token_id' => 4,
+    ];
+
+    $extras['pending'] = [
+      'status_id' => 2,
+      'cancel_date' => NULL,
+      'cancel_reason' => NULL,
+    ];
+    $extras['cancelled'] = [
+      'status_id' => 3,
+      'cancel_date' => '2021-08-19 09:12:45',
+      'cancel_reason' => 'Because',
+    ];
+
+    $example['data'] = $base + $extras[basename($example['name'])];
+  }
+
+}
diff --git a/civicrm/Civi/Test/ExampleDataInterface.php b/civicrm/Civi/Test/ExampleDataInterface.php
new file mode 100644
index 0000000000..1389b05cdd
--- /dev/null
+++ b/civicrm/Civi/Test/ExampleDataInterface.php
@@ -0,0 +1,32 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Test;
+
+interface ExampleDataInterface {
+
+  /**
+   * Get list of examples (summary-info only).
+   *
+   * This data should be static and amenable to caching.
+   */
+  public function getExamples(): iterable;
+
+  /**
+   * Fill-in full details of the example.
+   *
+   * @param array $example
+   *   We start with summary-info for this example (name, title, tags).
+   *   We may expand upon the example record, filling in dynamic(ish) properties like $example['data'].
+   */
+  public function build(array &$example): void;
+
+}
diff --git a/civicrm/Civi/Test/ExampleDataLoader.php b/civicrm/Civi/Test/ExampleDataLoader.php
new file mode 100644
index 0000000000..e26cb4198b
--- /dev/null
+++ b/civicrm/Civi/Test/ExampleDataLoader.php
@@ -0,0 +1,150 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Test;
+
+class ExampleDataLoader {
+
+  /**
+   * These are "heavy" properties which are not cached. i.e.
+   *  - They are generated by `$ex->build($example);`
+   *  - They are not generated by '$ex->getExamples();'
+   *  - They are returned by `$this->getFull()`
+   *  - They are not returned by `$this->getMeta()`.
+   */
+  const HEAVY_FIELDS = 'data,asserts';
+
+  /**
+   * @var array|null
+   */
+  private $metas;
+
+  /**
+   * Get a list of all examples, including basic metadata (name, title, workflow).
+   *
+   * @return array
+   *   Ex: ['my_example' => ['title' => ..., 'workflow' => ..., 'tags' => ...]]
+   * @throws \ReflectionException
+   */
+  public function getMetas(): array {
+    if ($this->metas === NULL) {
+      // $cache = new \CRM_Utils_Cache_NoCache([]);
+      $cache = \CRM_Utils_Constant::value('CIVICRM_TEST') ? new \CRM_Utils_Cache_NoCache([]) : \Civi::cache('long');
+      $cacheKey = \CRM_Utils_String::munge(__CLASS__);
+      $this->metas = $cache->get($cacheKey);
+      if ($this->metas === NULL) {
+        $this->metas = $this->findMetas();
+        $cache->set($cacheKey, $this->metas);
+      }
+    }
+    return $this->metas;
+  }
+
+  public function getMeta(string $name): ?array {
+    $all = $this->getMetas();
+    return $all[$name] ?? NULL;
+  }
+
+  /**
+   * @param string $name
+   *
+   * @return array|null
+   */
+  public function getFull(string $name): ?array {
+    $example = $this->getMeta($name);
+    if ($example === NULL) {
+      return NULL;
+    }
+
+    $obj = $this->createObj($example['file'], $example['class']);
+    $obj->build($example);
+    return $example;
+  }
+
+  /**
+   * Get a list of all examples, including basic metadata (name, title, workflow).
+   *
+   * @return array
+   *   Ex: ['my_example' => ['title' => ..., 'workflow' => ..., 'tags' => ...]]
+   * @throws \ReflectionException
+   */
+  protected function findMetas(): array {
+    $classes = array_merge(
+      // This scope of search is decidedly narrow - it should probably be expanded.
+      $this->scanExampleClasses(\Civi::paths()->getPath('[civicrm.root]/'), 'Civi/Test/ExampleData', '\\'),
+      $this->scanExampleClasses(\Civi::paths()->getPath('[civicrm.root]/'), 'CRM/*/WorkflowMessage', '_'),
+      $this->scanExampleClasses(\Civi::paths()->getPath('[civicrm.root]/'), 'Civi/*/WorkflowMessage', '\\'),
+      $this->scanExampleClasses(\Civi::paths()->getPath('[civicrm.root]/'), 'Civi/WorkflowMessage', '\\'),
+      $this->scanExampleClasses(\Civi::paths()->getPath('[civicrm.root]/tests/phpunit/'), 'CRM/*/WorkflowMessage', '_'),
+      $this->scanExampleClasses(\Civi::paths()->getPath('[civicrm.root]/tests/phpunit/'), 'Civi/*/WorkflowMessage', '\\')
+    );
+
+    $all = [];
+    foreach ($classes as $file => $class) {
+      $obj = $this->createObj($file, $class);
+      $offset = 0;
+      foreach ($obj->getExamples() as $example) {
+        $example['file'] = $file;
+        $example['class'] = $class;
+        if (!isset($example['name'])) {
+          $example['name'] = $example['class'] . '#' . $offset;
+        }
+        $all[$example['name']] = $example;
+        $offset++;
+      }
+    }
+
+    return $all;
+  }
+
+  /**
+   * @param $classRoot
+   *   Ex: Civi root dir.
+   * @param $classDir
+   *   Folder to search (within the parent).
+   * @param $classDelim
+   *   Namespace separator, eg underscore or backslash.
+   * @return array
+   *   Array(string $includeFile => string $className).
+   */
+  private function scanExampleClasses($classRoot, $classDir, $classDelim): array {
+    $civiRoot = \Civi::paths()->getPath('[civicrm.root]/');
+    $classRoot = \CRM_Utils_File::addTrailingSlash($classRoot, '/');
+    // Prefer include-paths relative to civiRoot - eg make tests/phpunit/* loadable at runtime.
+    $includeRoot = \CRM_Utils_File::isChildPath($civiRoot, $classRoot) ? $civiRoot : $classRoot;
+
+    $r = [];
+    $exDirs = (array) glob($classRoot . $classDir);
+    foreach ($exDirs as $exDir) {
+      foreach (\CRM_Utils_File::findFiles($exDir, '*.ex.php') as $file) {
+        $file = str_replace(DIRECTORY_SEPARATOR, '/', $file);
+        $includeFile = \CRM_Utils_File::relativize($file, $includeRoot);
+        $classFile = \CRM_Utils_File::relativize($file, $classRoot);
+        $class = str_replace('/', $classDelim, preg_replace('/\.ex\.php$/', '',
+          $classFile));
+        $r[$includeFile] = $class;
+      }
+    }
+    return $r;
+  }
+
+  private function createObj(?string $file, ?string $class): ExampleDataInterface {
+    if ($file) {
+      include_once $file;
+    }
+    if (!class_exists($class)) {
+      throw new \CRM_Core_Exception("Failed to read example (class '{$class}' in file '{$file}')");
+    }
+
+    return new $class();
+  }
+
+}
diff --git a/civicrm/Civi/Test/HttpTestTrait.php b/civicrm/Civi/Test/HttpTestTrait.php
index 80be44515d..18f1dad115 100644
--- a/civicrm/Civi/Test/HttpTestTrait.php
+++ b/civicrm/Civi/Test/HttpTestTrait.php
@@ -34,11 +34,20 @@ trait HttpTestTrait {
   /**
    * Create an HTTP client suitable for simulating AJAX requests.
    *
+   * The client may include some mix of these middlewares:
+   *
+   * @see \CRM_Utils_GuzzleMiddleware::authx()
+   * @see \CRM_Utils_GuzzleMiddleware::url()
+   * @see \CRM_Utils_GuzzleMiddleware::curlLog()
+   * @see Middleware::history()
+   * @see Middleware::log()
+   *
    * @param array $options
    * @return \GuzzleHttp\Client
    */
   protected function createGuzzle($options = []) {
     $handler = HandlerStack::create();
+    $handler->unshift(\CRM_Utils_GuzzleMiddleware::authx(), 'civi_authx');
     $handler->unshift(\CRM_Utils_GuzzleMiddleware::url(), 'civi_url');
     $handler->push(Middleware::history($this->httpHistory), 'history');
 
diff --git a/civicrm/Civi/Test/Legacy/CiviTestListener.php b/civicrm/Civi/Test/Legacy/CiviTestListener.php
index 4a71a74504..93fb4ac8fb 100644
--- a/civicrm/Civi/Test/Legacy/CiviTestListener.php
+++ b/civicrm/Civi/Test/Legacy/CiviTestListener.php
@@ -55,9 +55,24 @@ class CiviTestListener extends \PHPUnit_Framework_BaseTestListener {
     else {
       $this->tx = NULL;
     }
+
+    if ($this->isCiviTest($test) || $test instanceof \CiviUnitTestCase) {
+      \Civi\Test::eventChecker()->start($test);
+    }
   }
 
   public function endTest(\PHPUnit_Framework_Test $test, $time) {
+    $exception = NULL;
+
+    if ($this->isCiviTest($test) || $test instanceof \CiviUnitTestCase) {
+      try {
+        \Civi\Test::eventChecker()->stop($test);
+      }
+      catch (\Exception $e) {
+        $exception = $e;
+      }
+    }
+
     if ($test instanceof \Civi\Test\TransactionalInterface) {
       $this->tx->rollback()->commit();
       $this->tx = NULL;
@@ -71,6 +86,10 @@ class CiviTestListener extends \PHPUnit_Framework_BaseTestListener {
       error_reporting(E_ALL & ~E_NOTICE);
       $this->errorScope = NULL;
     }
+
+    if ($exception) {
+      throw $exception;
+    }
   }
 
   /**
diff --git a/civicrm/Civi/Test/WorkflowMessageTestTrait.php b/civicrm/Civi/Test/WorkflowMessageTestTrait.php
new file mode 100644
index 0000000000..1c4bd77805
--- /dev/null
+++ b/civicrm/Civi/Test/WorkflowMessageTestTrait.php
@@ -0,0 +1,82 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Test;
+
+use Civi\WorkflowMessage\WorkflowMessage;
+
+trait WorkflowMessageTestTrait {
+
+  abstract public function getWorkflowClass(): string;
+
+  public function getWorkflowName(): string {
+    $class = $this->getWorkflowClass();
+    return $class::WORKFLOW;
+  }
+
+  /**
+   * @return \Civi\Api4\Generic\AbstractGetAction
+   * @throws \API_Exception
+   */
+  protected function findExamples(): \Civi\Api4\Generic\AbstractGetAction {
+    return \Civi\Api4\ExampleData::get(0)
+      ->setSelect(['name', 'title', 'tags', 'data', 'asserts'])
+      ->addWhere('name', 'LIKE', 'workflow/' . $this->getWorkflowName() . '/%')
+      ->addWhere('tags', 'CONTAINS', 'phpunit');
+  }
+
+  /**
+   * @param array $exampleProps
+   * @param string $exampleName
+   * @throws \Civi\WorkflowMessage\Exception\WorkflowMessageException
+   */
+  protected function assertConstructorEquivalence(array $exampleProps, $exampleName = ''): void {
+    $class = $this->getWorkflowClass();
+    $instances = [];
+    $instances["factory_$exampleName"] = WorkflowMessage::create($this->getWorkflowName(), $exampleProps);
+    $instances["class_$exampleName"] = new $class($exampleProps);
+
+    /** @var \Civi\WorkflowMessage\WorkflowMessageInterface $refInstance */
+    /** @var \Civi\WorkflowMessage\WorkflowMessageInterface $cmpInstance */
+
+    $refName = $refInstance = NULL;
+    $comparisons = 0;
+    foreach ($instances as $cmpName => $cmpInstance) {
+      if ($refName === NULL) {
+        $refName = $cmpName;
+        $refInstance = $cmpInstance;
+        continue;
+      }
+
+      $this->assertSameWorkflowMessage($refInstance, $cmpInstance, "Compare $refName vs $cmpName: ");
+      $comparisons++;
+    }
+    $this->assertEquals(1, $comparisons);
+  }
+
+  /**
+   * @param \Civi\WorkflowMessage\WorkflowMessageInterface $refInstance
+   * @param \Civi\WorkflowMessage\WorkflowMessageInterface $cmpInstance
+   * @param string|null $prefix
+   */
+  protected function assertSameWorkflowMessage(\Civi\WorkflowMessage\WorkflowMessageInterface $refInstance, \Civi\WorkflowMessage\WorkflowMessageInterface $cmpInstance, ?string $prefix = NULL): void {
+    if ($prefix === NULL) {
+      $prefix = sprintf('[%s] ', $this->getWorkflowName());
+    }
+    $this->assertEquals($refInstance->export('tplParams'), $cmpInstance->export('tplParams'), "{$prefix}Should have same export(tplParams)");
+    $this->assertEquals($refInstance->export('tokenContext'), $cmpInstance->export('tokenContext'), "{$prefix}should have same export(tokenContext)");
+    $this->assertEquals($refInstance->export('envelope'), $cmpInstance->export('envelope'), "{$prefix}Should have same export(envelope)");
+    $refExportAll = WorkflowMessage::exportAll($refInstance);
+    $cmpExportAll = WorkflowMessage::exportAll($cmpInstance);
+    $this->assertEquals($refExportAll, $cmpExportAll, "{$prefix}Should have same exportAll()");
+  }
+
+}
diff --git a/civicrm/Civi/Token/TokenCompatSubscriber.php b/civicrm/Civi/Token/TokenCompatSubscriber.php
index 9d745c1489..6274d8f29c 100644
--- a/civicrm/Civi/Token/TokenCompatSubscriber.php
+++ b/civicrm/Civi/Token/TokenCompatSubscriber.php
@@ -3,31 +3,24 @@ namespace Civi\Token;
 
 use Civi\Token\Event\TokenRenderEvent;
 use Civi\Token\Event\TokenValueEvent;
+use Money\Money;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 
 /**
  * Class TokenCompatSubscriber
  * @package Civi\Token
  *
- * This class provides a compatibility layer for using CRM_Utils_Token
- * helpers within TokenProcessor.
- *
- * THIS IS NOT A GOOD EXAMPLE TO EMULATE. The class exists to two
- * bridge two different designs. CRM_Utils_Token has some
- * undesirable elements (like iterative token substitution).
- * However, if you're refactor CRM_Utils_Token or improve the
- * bridge, then it makes sense to update this class.
+ * This class handles the smarty processing of tokens.
  */
 class TokenCompatSubscriber implements EventSubscriberInterface {
 
   /**
    * @inheritDoc
    */
-  public static function getSubscribedEvents() {
+  public static function getSubscribedEvents(): array {
     return [
       'civi.token.eval' => [
         ['setupSmartyAliases', 1000],
-        ['onEvaluate'],
       ],
       'civi.token.render' => 'onRender',
     ];
@@ -56,111 +49,31 @@ class TokenCompatSubscriber implements EventSubscriberInterface {
     $proc->addMessage('TokenCompatSubscriber.aliases', $fakeMessage, 'text/plain');
   }
 
-  /**
-   * Load token data.
-   *
-   * @param \Civi\Token\Event\TokenValueEvent $e
-   * @throws TokenException
-   */
-  public function onEvaluate(TokenValueEvent $e) {
-    // For reasons unknown, replaceHookTokens used to require a pre-computed list of
-    // hook *categories* (aka entities aka namespaces). We cache
-    // this in the TokenProcessor's context but can likely remove it now.
-
-    $e->getTokenProcessor()->context['hookTokenCategories'] = \CRM_Utils_Token::getTokenCategories();
-
-    $messageTokens = $e->getTokenProcessor()->getMessageTokens();
-    $returnProperties = array_fill_keys($messageTokens['contact'] ?? [], 1);
-    $returnProperties = array_merge(\CRM_Contact_BAO_Query::defaultReturnProperties(), $returnProperties);
-
-    foreach ($e->getRows() as $row) {
-      if (empty($row->context['contactId'])) {
-        continue;
-      }
-
-      unset($swapLocale);
-      $swapLocale = empty($row->context['locale']) ? NULL : \CRM_Utils_AutoClean::swapLocale($row->context['locale']);
-
-      /** @var int $contactId */
-      $contactId = $row->context['contactId'];
-      if (empty($row->context['contact'])) {
-        $params = [
-          ['contact_id', '=', $contactId, 0, 0],
-        ];
-        [$contact] = \CRM_Contact_BAO_Query::apiQuery($params, $returnProperties ?? NULL);
-        //CRM-4524
-        $contact = reset($contact);
-        // Test cover for greeting in CRM_Core_BAO_ActionScheduleTest::testMailer
-        $contact['email_greeting'] = $contact['email_greeting_display'] ?? '';
-        $contact['postal_greeting'] = $contact['postal_greeting_display'] ?? '';
-        $contact['addressee'] = $contact['address_display'] ?? '';
-        if (!$contact || is_a($contact, 'CRM_Core_Error')) {
-          // FIXME: Need to differentiate errors which kill the batch vs the individual row.
-          \Civi::log()->debug('Failed to generate token data. Invalid contact ID: ' . $row->context['contactId']);
-          continue;
-        }
-
-        //update value of custom field token
-        if (!empty($messageTokens['contact'])) {
-          foreach ($messageTokens['contact'] as $token) {
-            if (\CRM_Core_BAO_CustomField::getKeyID($token)) {
-              $contact[$token] = \CRM_Core_BAO_CustomField::displayValue($contact[$token], \CRM_Core_BAO_CustomField::getKeyID($token));
-            }
-          }
-        }
-      }
-      else {
-        $contact = $row->context['contact'];
-      }
-
-      if (!empty($row->context['tmpTokenParams'])) {
-        // merge activity tokens with contact array
-        // this is pretty weird.
-        $contact = array_merge($contact, $row->context['tmpTokenParams']);
-      }
-
-      $contactArray = [$contactId => $contact];
-      \CRM_Utils_Hook::tokenValues($contactArray,
-        [$contactId],
-        empty($row->context['mailingJobId']) ? NULL : $row->context['mailingJobId'],
-        $messageTokens,
-        $row->context['controller']
-      );
-
-      // merge the custom tokens in the $contact array
-      if (!empty($contactArray[$contactId])) {
-        $contact = array_merge($contact, $contactArray[$contactId]);
-      }
-      $row->context('contact', $contact);
-    }
-  }
-
   /**
    * Apply the various CRM_Utils_Token helpers.
    *
    * @param \Civi\Token\Event\TokenRenderEvent $e
    */
-  public function onRender(TokenRenderEvent $e) {
-    $isHtml = ($e->message['format'] == 'text/html');
+  public function onRender(TokenRenderEvent $e): void {
     $useSmarty = !empty($e->context['smarty']);
+    $e->string = $e->getTokenProcessor()->visitTokens($e->string, function() {
+      // For historical consistency, we filter out unrecognized tokens.
+      return '';
+    });
 
-    $domain = \CRM_Core_BAO_Domain::getDomain();
-    $e->string = \CRM_Utils_Token::replaceDomainTokens($e->string, $domain, $isHtml, $e->message['tokens'], $useSmarty);
-
-    if (!empty($e->context['contact'])) {
-      \CRM_Utils_Token::replaceGreetingTokens($e->string, $e->context['contact'], $e->context['contact']['contact_id'], NULL, $useSmarty);
-      $e->string = \CRM_Utils_Token::replaceContactTokens($e->string, $e->context['contact'], $isHtml, $e->message['tokens'], TRUE, $useSmarty);
-
-      // FIXME: This may depend on $contact being merged with hook values.
-      $e->string = \CRM_Utils_Token::replaceHookTokens($e->string, $e->context['contact'], $e->context['hookTokenCategories'], $isHtml, $useSmarty);
-    }
+    // This removes the pattern used in greetings of having bits of text that
+    // depend on the tokens around them - ie '{first_name}{ }{last_name}
+    // has an extra construct '{ }' which will resolve as a space if the
+    // tokens on either side are resolved to 'something'
+    $e->string = preg_replace('/\\\\|\{(\s*)?\}/', ' ', $e->string);
 
     if ($useSmarty) {
       $smartyVars = [];
       foreach ($e->context['smartyTokenAlias'] ?? [] as $smartyName => $tokenName) {
-        // Note: $e->row->tokens resolves event-based tokens (eg CRM_*_Tokens). But if the target token relies on the
-        // above bits (replaceGreetingTokens=>replaceContactTokens=>replaceHookTokens) then this lookup isn't sufficient.
-        $smartyVars[$smartyName] = \CRM_Utils_Array::pathGet($e->row->tokens, explode('.', $tokenName));
+        $smartyVars[$smartyName] = \CRM_Utils_Array::pathGet($e->row->tokens, explode('.', $tokenName), $e->context['locale'] ?? NULL);
+        if ($smartyVars[$smartyName] instanceof \Brick\Money\Money) {
+          $smartyVars[$smartyName] = \Civi::format()->money($smartyVars[$smartyName]->getAmount(), $smartyVars[$smartyName]->getCurrency());
+        }
       }
       \CRM_Core_Smarty::singleton()->pushScope($smartyVars);
       try {
diff --git a/civicrm/Civi/Token/TokenProcessor.php b/civicrm/Civi/Token/TokenProcessor.php
index 61438d2092..0451b2ae53 100644
--- a/civicrm/Civi/Token/TokenProcessor.php
+++ b/civicrm/Civi/Token/TokenProcessor.php
@@ -1,6 +1,7 @@
 <?php
 namespace Civi\Token;
 
+use Brick\Money\Money;
 use Civi\Token\Event\TokenRegisterEvent;
 use Civi\Token\Event\TokenRenderEvent;
 use Civi\Token\Event\TokenValueEvent;
@@ -138,10 +139,14 @@ class TokenProcessor {
    * @return TokenProcessor
    */
   public function addMessage($name, $value, $format) {
+    $tokens = [];
+    $this->visitTokens($value ?: '', function (?string $fullToken, ?string $entity, ?string $field, ?array $modifier) use (&$tokens) {
+      $tokens[$entity][] = $field;
+    });
     $this->messages[$name] = [
       'string' => $value,
       'format' => $format,
-      'tokens' => \CRM_Utils_Token::getTokens($value),
+      'tokens' => $tokens,
     ];
     return $this;
   }
@@ -360,30 +365,138 @@ class TokenProcessor {
     $row->fill($message['format']);
     $useSmarty = !empty($row->context['smarty']);
 
-    /**
-     *@FIXME preg_callback.
-     */
     $tokens = $this->rowValues[$row->tokenRow][$message['format']];
-    $flatTokens = [];
-    \CRM_Utils_Array::flatten($tokens, $flatTokens, '', '.');
-    $filteredTokens = [];
-    foreach ($flatTokens as $k => $v) {
-      $filteredTokens['{' . $k . '}'] = ($useSmarty ? \CRM_Utils_Token::tokenEscapeSmarty($v) : $v);
-    }
+    $getToken = function(?string $fullToken, ?string $entity, ?string $field, ?array $modifier) use ($tokens, $useSmarty, $row) {
+      if (isset($tokens[$entity][$field])) {
+        $v = $tokens[$entity][$field];
+        $v = $this->filterTokenValue($v, $modifier, $row);
+        if ($useSmarty) {
+          $v = \CRM_Utils_Token::tokenEscapeSmarty($v);
+        }
+        return $v;
+      }
+      return $fullToken;
+    };
 
     $event = new TokenRenderEvent($this);
     $event->message = $message;
     $event->context = $row->context;
     $event->row = $row;
-    $event->string = strtr($message['string'], $filteredTokens);
+    $event->string = $this->visitTokens($message['string'] ?? '', $getToken);
     $this->dispatcher->dispatch('civi.token.render', $event);
     return $event->string;
   }
 
+  /**
+   * Examine a token string and filter each token expression.
+   *
+   * @internal
+   *   This function is only intended for use within civicrm-core. The name/location/callback-signature may change.
+   * @param string $expression
+   *   Ex: 'Hello {foo.bar} and {whiz.bang|filter:"arg"}!'
+   * @param callable $callback
+   *   A function which visits (and substitutes) each token.
+   *   function(?string $fullToken, ?string $entity, ?string $field, ?array $modifier)
+   * @return string
+   */
+  public function visitTokens(string $expression, callable $callback): string {
+    // Regex examples: '{foo.bar}', '{foo.bar|whiz}', '{foo.bar|whiz:"bang"}', '{foo.bar|whiz:"bang":"bang"}'
+    // Regex counter-examples: '{foobar}', '{foo bar}', '{$foo.bar}', '{$foo.bar|whiz}', '{foo.bar|whiz{bang}}'
+    // Key observations: Civi tokens MUST have a `.` and MUST NOT have a `$`. Civi filters MUST NOT have `{}`s or `$`s.
+
+    static $fullRegex = NULL;
+    if ($fullRegex === NULL) {
+      // The regex is a bit complicated, we so break it down into fragments.
+      // Consider the example '{foo.bar|whiz:"bang":"bang"}'. Each fragment matches the following:
+
+      $tokenRegex = '([\w]+)\.([\w:\.]+)'; /* MATCHES: 'foo.bar' */
+      $filterArgRegex = ':[\w": %\-_()\[\]\+/#@!,\.\?]*'; /* MATCHES: ':"bang":"bang"' */
+      // Key rule of filterArgRegex is to prohibit '{}'s because they may parse ambiguously. So you *might* relax it to:
+      // $filterArgRegex = ':[^{}\n]*'; /* MATCHES: ':"bang":"bang"' */
+      $filterNameRegex = "\w+"; /* MATCHES: 'whiz' */
+      $filterRegex = "\|($filterNameRegex(?:$filterArgRegex)?)"; /* MATCHES: '|whiz:"bang":"bang"' */
+      $fullRegex = ";\{$tokenRegex(?:$filterRegex)?\};";
+    }
+    return preg_replace_callback($fullRegex, function($m) use ($callback) {
+      $filterParts = NULL;
+      if (isset($m[3])) {
+        $filterParts = [];
+        $enqueue = function($m) use (&$filterParts) {
+          $filterParts[] = $m[1];
+          return '';
+        };
+        $unmatched = preg_replace_callback_array([
+          '/^(\w+)/' => $enqueue,
+          '/:"([^"]+)"/' => $enqueue,
+        ], $m[3]);
+        if ($unmatched) {
+          throw new \CRM_Core_Exception('Malformed token parameters (' . $m[0] . ')');
+        }
+      }
+      return $callback($m[0] ?? NULL, $m[1] ?? NULL, $m[2] ?? NULL, $filterParts);
+    }, $expression);
+  }
+
+  /**
+   * Given a token value, run it through any filters.
+   *
+   * @param mixed $value
+   *   Raw token value (e.g. from `$row->tokens['foo']['bar']`).
+   * @param array|null $filter
+   * @param TokenRow $row
+   *   The current target/row.
+   * @return string
+   * @throws \CRM_Core_Exception
+   */
+  private function filterTokenValue($value, ?array $filter, TokenRow $row) {
+    // KISS demonstration. This should change... e.g. provide a filter-registry or reuse Smarty's registry...
+
+    if ($value instanceof \DateTime && $filter === NULL) {
+      $filter = ['crmDate'];
+      if ($value->format('His') === '000000') {
+        // if time is 'midnight' default to just date.
+        $filter[1] = 'Full';
+      }
+    }
+
+    if ($value instanceof Money && $filter === NULL) {
+      $filter = ['crmMoney'];
+    }
+
+    switch ($filter[0] ?? NULL) {
+      case NULL:
+        return $value;
+
+      case 'upper':
+        return mb_strtoupper($value);
+
+      case 'lower':
+        return mb_strtolower($value);
+
+      case 'crmMoney':
+        if ($value instanceof Money) {
+          return \Civi::format()->money($value->getAmount(), $value->getCurrency());
+        }
+
+      case 'crmDate':
+        if ($value instanceof \DateTime) {
+          // @todo cludgey.
+          require_once 'CRM/Core/Smarty/plugins/modifier.crmDate.php';
+          return \smarty_modifier_crmDate($value->format('Y-m-d H:i:s'), $filter[1] ?? NULL);
+        }
+
+      default:
+        throw new \CRM_Core_Exception("Invalid token filter: $filter");
+    }
+  }
+
 }
 
 class TokenRowIterator extends \IteratorIterator {
 
+  /**
+   * @var \Civi\Token\TokenProcessor
+   */
   protected $tokenProcessor;
 
   /**
diff --git a/civicrm/Civi/Token/TokenRow.php b/civicrm/Civi/Token/TokenRow.php
index fb1fda5c21..11be3a3ba1 100644
--- a/civicrm/Civi/Token/TokenRow.php
+++ b/civicrm/Civi/Token/TokenRow.php
@@ -1,8 +1,11 @@
 <?php
 namespace Civi\Token;
 
+use Brick\Money\Money;
+
 /**
  * Class TokenRow
+ *
  * @package Civi\Token
  *
  * A TokenRow is a helper/stub providing simplified access to the TokenProcessor.
@@ -174,8 +177,8 @@ class TokenRow {
    * @return TokenRow
    */
   public function customToken($entity, $customFieldID, $entityID) {
-    $customFieldName = "custom_" . $customFieldID;
-    $record = civicrm_api3($entity, "getSingle", [
+    $customFieldName = 'custom_' . $customFieldID;
+    $record = civicrm_api3($entity, 'getSingle', [
       'return' => $customFieldName,
       'id' => $entityID,
     ]);
@@ -183,10 +186,10 @@ class TokenRow {
 
     // format the raw custom field value into proper display value
     if (isset($fieldValue)) {
-      $fieldValue = \CRM_Core_BAO_CustomField::displayValue($fieldValue, $customFieldID);
+      $fieldValue = (string) \CRM_Core_BAO_CustomField::displayValue($fieldValue, $customFieldID);
     }
 
-    return $this->tokens($entity, $customFieldName, $fieldValue);
+    return $this->format('text/html')->tokens($entity, $customFieldName, $fieldValue);
   }
 
   /**
@@ -272,7 +275,7 @@ class TokenRow {
                 $htmlTokens[$entity][$field] = \CRM_Utils_String::purifyHTML($value);
               }
               else {
-                $htmlTokens[$entity][$field] = htmlentities($value);
+                $htmlTokens[$entity][$field] = is_object($value) ? $value : htmlentities($value);
               }
             }
           }
@@ -283,15 +286,18 @@ class TokenRow {
         // HTML => Plain.
         foreach ($htmlTokens as $entity => $values) {
           foreach ($values as $field => $value) {
+            if (!$value instanceof \DateTime && !$value instanceof Money) {
+              $value = html_entity_decode(strip_tags($value));
+            }
             if (!isset($textTokens[$entity][$field])) {
-              $textTokens[$entity][$field] = html_entity_decode(strip_tags($value));
+              $textTokens[$entity][$field] = $value;
             }
           }
         }
         break;
 
       default:
-        throw new \RuntimeException("Invalid format");
+        throw new \RuntimeException('Invalid format');
     }
 
     return $this;
diff --git a/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php b/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php
index 862c3a8d42..05ba1cc7ee 100644
--- a/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php
+++ b/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php
@@ -15,6 +15,7 @@ namespace Civi\WorkflowMessage;
 use Civi\Schema\Traits\MagicGetterSetterTrait;
 use Civi\WorkflowMessage\Traits\AddressingTrait;
 use Civi\WorkflowMessage\Traits\FinalHelperTrait;
+use Civi\WorkflowMessage\Traits\LocalizationTrait;
 use Civi\WorkflowMessage\Traits\ReflectiveWorkflowTrait;
 
 /**
@@ -24,6 +25,10 @@ use Civi\WorkflowMessage\Traits\ReflectiveWorkflowTrait;
  * @method int|null getContactId()
  * @method $this setContact(array|null $contact)
  * @method array|null getContact()
+ *
+ * @support template-only
+ * GenericWorkflowMessage should aim for "full" support, but it's prudent to keep
+ * it flexible for the first few months. Consider updating to "full" after Dec 2021.
  */
 class GenericWorkflowMessage implements WorkflowMessageInterface {
 
@@ -40,6 +45,9 @@ class GenericWorkflowMessage implements WorkflowMessageInterface {
   // Implement setTo(), setReplyTo(), etc
   use AddressingTrait;
 
+  // Implement setLocale(), etc
+  use LocalizationTrait;
+
   /**
    * WorkflowMessage constructor.
    *
diff --git a/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage/Alex.ex.php b/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage/Alex.ex.php
new file mode 100644
index 0000000000..be869b0c95
--- /dev/null
+++ b/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage/Alex.ex.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Civi\WorkflowMessage\GenericWorkflowMessage;
+
+class Alex extends \Civi\WorkflowMessage\WorkflowMessageExample {
+
+  /**
+   * @inheritDoc
+   */
+  public function getExamples(): iterable {
+    yield [
+      'name' => "workflow/{$this->wfName}/{$this->exName}",
+      'tags' => [],
+    ];
+  }
+
+  /**
+   * @inheritDoc
+   */
+  public function build(array &$example): void {
+    $example['data'] = [
+      'modelProps' => [
+        'contact' => \Civi\Test::example('entity/Contact/Alex'),
+      ],
+    ];
+  }
+
+}
diff --git a/civicrm/Civi/WorkflowMessage/Traits/LocalizationTrait.php b/civicrm/Civi/WorkflowMessage/Traits/LocalizationTrait.php
new file mode 100644
index 0000000000..51aa90503f
--- /dev/null
+++ b/civicrm/Civi/WorkflowMessage/Traits/LocalizationTrait.php
@@ -0,0 +1,50 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\WorkflowMessage\Traits;
+
+trait LocalizationTrait {
+
+  /**
+   * @var string|null
+   * @scope tokenContext
+   */
+  protected $locale;
+
+  /**
+   * @return string
+   */
+  public function getLocale(): ?string {
+    return $this->locale;
+  }
+
+  /**
+   * @param string|null $locale
+   * @return $this
+   */
+  public function setLocale(?string $locale) {
+    $this->locale = $locale;
+    return $this;
+  }
+
+  protected function validateExtra_localization(&$errors) {
+    $allLangs = \CRM_Core_I18n::languages();
+    if ($this->locale !== NULL && !isset($allLangs[$this->locale])) {
+      $errors[] = [
+        'severity' => 'error',
+        'fields' => ['locale'],
+        'name' => 'badLocale',
+        'message' => ts('The given locale is not valid (%1)', [json_encode($this->locale)]),
+      ];
+    }
+  }
+
+}
diff --git a/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php b/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php
index a19958eb8f..f10fe04113 100644
--- a/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php
+++ b/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php
@@ -250,7 +250,7 @@ trait ReflectiveWorkflowTrait {
    */
   protected function exportExtraEnvelope(array &$export): void {
     if ($wfName = \CRM_Utils_Constant::value(static::CLASS . '::WORKFLOW')) {
-      $export['valueName'] = $wfName;
+      $export['workflow'] = $wfName;
     }
     if ($wfGroup = \CRM_Utils_Constant::value(static::CLASS . '::GROUP')) {
       $export['groupName'] = $wfGroup;
@@ -292,8 +292,8 @@ trait ReflectiveWorkflowTrait {
    */
   protected function importExtraEnvelope(array &$values): void {
     if ($wfName = \CRM_Utils_Constant::value(static::CLASS . '::WORKFLOW')) {
-      if (isset($values['valueName']) && $wfName === $values['valueName']) {
-        unset($values['valueName']);
+      if (isset($values['workflow']) && $wfName === $values['workflow']) {
+        unset($values['workflow']);
       }
     }
     if ($wfGroup = \CRM_Utils_Constant::value(static::CLASS . '::GROUP')) {
diff --git a/civicrm/Civi/WorkflowMessage/WorkflowMessage.php b/civicrm/Civi/WorkflowMessage/WorkflowMessage.php
index 3647286ef5..7ecf283bdb 100644
--- a/civicrm/Civi/WorkflowMessage/WorkflowMessage.php
+++ b/civicrm/Civi/WorkflowMessage/WorkflowMessage.php
@@ -12,6 +12,7 @@
 
 namespace Civi\WorkflowMessage;
 
+use Civi\Api4\Utils\ReflectionUtils;
 use Civi\WorkflowMessage\Exception\WorkflowMessageException;
 
 /**
@@ -65,7 +66,7 @@ class WorkflowMessage {
   public static function create(string $wfName, array $imports = []) {
     $classMap = static::getWorkflowNameClassMap();
     $class = $classMap[$wfName] ?? 'Civi\WorkflowMessage\GenericWorkflowMessage';
-    $imports['envelope']['valueName'] = $wfName;
+    $imports['envelope']['workflow'] = $wfName;
     $model = new $class();
     static::importAll($model, $imports);
     return $model;
@@ -95,13 +96,6 @@ class WorkflowMessage {
       unset($params['model']);
     }
 
-    \CRM_Utils_Array::pathMove($params, ['contactId'], ['tokenContext', 'contactId']);
-
-    // Core#644 - handle Email ID passed as "From".
-    if (isset($params['from'])) {
-      $params['from'] = \CRM_Utils_Mail::formatFromAddress($params['from']);
-    }
-
     if (isset($params['tplParams'])) {
       $model->import('tplParams', $params['tplParams']);
       unset($params['tplParams']);
@@ -170,4 +164,38 @@ class WorkflowMessage {
     return $map;
   }
 
+  /**
+   * Get general description of available workflow-messages.
+   *
+   * @return array
+   *   Array(string $workflowName => string $className).
+   *   Ex: ["case_activity" => ["name" => "case_activity", "group" => "msg_workflow_case"]
+   * @internal
+   */
+  public static function getWorkflowSpecs() {
+    $compute = function() {
+      $keys = ['name', 'group', 'class', 'description', 'comment', 'support'];
+      $list = [];
+      foreach (self::getWorkflowNameClassMap() as $name => $class) {
+        $specs = [
+          'name' => $name,
+          'group' => \CRM_Utils_Constant::value($class . '::GROUP'),
+          'class' => $class,
+        ];
+        $list[$name] = \CRM_Utils_Array::subset(
+          array_merge(ReflectionUtils::getCodeDocs(new \ReflectionClass($class)), $specs),
+          $keys);
+      }
+      return $list;
+    };
+
+    $cache = \Civi::cache('long');
+    $cacheKey = 'WorkflowMessage-' . __FUNCTION__;
+    $list = $cache->get($cacheKey);
+    if ($list === NULL) {
+      $cache->set($cacheKey, $list = $compute());
+    }
+    return $list;
+  }
+
 }
diff --git a/civicrm/Civi/WorkflowMessage/WorkflowMessageExample.php b/civicrm/Civi/WorkflowMessage/WorkflowMessageExample.php
new file mode 100644
index 0000000000..40aead12b4
--- /dev/null
+++ b/civicrm/Civi/WorkflowMessage/WorkflowMessageExample.php
@@ -0,0 +1,86 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\WorkflowMessage;
+
+use Civi\Test\ExampleDataInterface;
+
+/**
+ * Helper class for defining WorkflowMessage example-data.
+ *
+ * By convention, you should name this class relative to the target workflow, as in:
+ * - Workflow Name: case_activity
+ * - Workflow Class: CRM_Case_WorkflowMessage_CaseActivity
+ * - Example Data: CRM_Case_WorkflowMessage_CaseActivity_Foo
+ * - Example Name: workflow/case_activity/foo
+ */
+abstract class WorkflowMessageExample implements ExampleDataInterface {
+
+  /**
+   * Name of the workflow for which we are providing example data.
+   *
+   * @var string
+   *   Ex: 'CRM_Case_WorkflowMessage_CaseActivity'
+   */
+  protected $wfClass;
+
+  /**
+   * Name of the workflow for which we are providing example data.
+   *
+   * @var string|null
+   *   Ex: 'case_activity'
+   */
+  protected $wfName;
+
+  /**
+   * Name for this example specifically.
+   *
+   * @var string
+   */
+  protected $exName;
+
+  /**
+   * WorkflowMessageExample constructor.
+   */
+  public function __construct() {
+    if (!preg_match(';^(.*)[_\\\]([a-zA-Z0-9]+)$;', static::class, $m)) {
+      throw new \RuntimeException("Failed to parse class: " . static::class);
+    }
+    $this->wfClass = $m[1];
+    $this->wfName = array_search($m[1], \Civi\WorkflowMessage\WorkflowMessage::getWorkflowNameClassMap());
+    $this->exName = $m[2];
+  }
+
+  /**
+   * Get an example, merge/extend it with more data, and return the extended
+   * variant.
+   *
+   * @param array $base
+   *   Baseline data to build upon.
+   * @param array $overrides
+   *   Additional data to recursively add.
+   *
+   * @return array
+   *   The result of merging the original example with the $overrides.
+   */
+  public function extend($base, $overrides = []) {
+    \CRM_Utils_Array::extend($base, $overrides);
+    return $base;
+  }
+
+  protected function toArray(\Civi\WorkflowMessage\WorkflowMessageInterface $wfMsg) {
+    return [
+      'workflow' => $this->wfName,
+      'modelProps' => $wfMsg->export('modelProps'),
+    ];
+  }
+
+}
diff --git a/civicrm/ang/api4Explorer/Explorer.js b/civicrm/ang/api4Explorer/Explorer.js
index 2bdaa72b11..0d5404a8f4 100644
--- a/civicrm/ang/api4Explorer/Explorer.js
+++ b/civicrm/ang/api4Explorer/Explorer.js
@@ -456,8 +456,8 @@
             children: _.transform(CRM.vars.api4.functions, function(result, fn) {
               result.push({
                 id: fn.name + '() AS ' + fn.name.toLowerCase(),
-                text: fn.name + '()',
-                description: fn.name + '(' + describeSqlFn(fn.params) + ')'
+                description: fn.description,
+                text: fn.name + '(' + describeSqlFn(fn.params) + ')'
               });
             })
           };
@@ -607,16 +607,19 @@
       var desc = ' ';
       _.each(params, function(param) {
         desc += ' ';
-        if (param.prefix) {
-          desc += _.filter(param.prefix).join('|') + ' ';
+        if (param.name) {
+          desc += param.name + ' ';
         }
-        if (param.expr === 1) {
+        if (!_.isEmpty(param.flag_before)) {
+          desc += '[' + _.filter(param.name ? [param.name] : _.keys(param.flag_before)).join('|') + '] ';
+        }
+        if (param.max_expr === 1) {
           desc += 'expr ';
-        } else if (param.expr > 1) {
+        } else if (param.max_expr > 1) {
           desc += 'expr, ... ';
         }
-        if (param.suffix) {
-          desc += ' ' + _.filter(param.suffix).join('|') + ' ';
+        if (!_.isEmpty(param.flag_after)) {
+          desc += ' [' + _.filter(param.flag_after).join('|') + '] ';
         }
       });
       return desc.replace(/[ ]+/g, ' ');
diff --git a/civicrm/ang/crmMailing/Templates.js b/civicrm/ang/crmMailing/Templates.js
index 0c2b93dc26..301b565f23 100644
--- a/civicrm/ang/crmMailing/Templates.js
+++ b/civicrm/ang/crmMailing/Templates.js
@@ -72,8 +72,8 @@
                     }
 
                     rcpAjaxState.page_i = page_num - rcpAjaxState.page_n;
-                    var filterParams = { is_active: 1, workflow_id: { "IS NULL": 1 } };
-                    
+                    var filterParams = { is_active: 1, workflow_name: { "IS NULL": 1 } };
+
                     var params = {
                       input: input,
                       page_num: rcpAjaxState.page_i,
diff --git a/civicrm/ang/crmMonaco.js b/civicrm/ang/crmMonaco.js
index 3d6ff667f4..6a451b0a63 100644
--- a/civicrm/ang/crmMonaco.js
+++ b/civicrm/ang/crmMonaco.js
@@ -65,6 +65,12 @@
             // FIXME: else: retry?
           };
 
+          if ($attr.ngDisabled) {
+            $scope.$watch($parse($attr.ngDisabled), function(disabled){
+              editor.updateOptions({readOnly: disabled});
+            });
+          }
+
           // FIXME: This makes vertical scrolling much better, but horizontal is still weird.
           var origOverflow;
           function bodyScrollSuspend() {
diff --git a/civicrm/ang/crmStatusPage.js b/civicrm/ang/crmStatusPage.js
index 9693485b66..4be75df5c8 100644
--- a/civicrm/ang/crmStatusPage.js
+++ b/civicrm/ang/crmStatusPage.js
@@ -9,7 +9,7 @@
 
       resolve: {
         statusData: function(crmApi) {
-          return crmApi('System', 'check', {sequential: 1});
+          return crmApi('System', 'check', {sequential: 1, options: {limit: 0}});
         }
       }
     });
diff --git a/civicrm/ang/crmStatusPage/StatusPageCtrl.js b/civicrm/ang/crmStatusPage/StatusPageCtrl.js
index 530d7ffdbe..0fd79df29f 100644
--- a/civicrm/ang/crmStatusPage/StatusPageCtrl.js
+++ b/civicrm/ang/crmStatusPage/StatusPageCtrl.js
@@ -10,7 +10,7 @@
       // Refresh the list. Optionally execute api calls first.
       function refresh(apiCalls, title) {
         title = title || 'Untitled operation';
-        apiCalls = (apiCalls || []).concat([['System', 'check', {sequential: 1}]]);
+        apiCalls = (apiCalls || []).concat([['System', 'check', {sequential: 1, options: {limit: 0}}]]);
         $('#crm-status-list').block();
         crmApi(apiCalls, true)
           .then(function(results) {
diff --git a/civicrm/ang/crmUi.js b/civicrm/ang/crmUi.js
index 16ef03f0ba..944630d4db 100644
--- a/civicrm/ang/crmUi.js
+++ b/civicrm/ang/crmUi.js
@@ -945,7 +945,8 @@
           else {
             $(element).prepend('<span class="icon ui-icon-' + attrs.crmIcon + '"></span> ');
           }
-          if ($(element).is('button')) {
+          // Add crm-* class to non-bootstrap buttons
+          if ($(element).is('button:not(.btn)')) {
             $(element).addClass('crm-button');
           }
         }
diff --git a/civicrm/api/v3/System/ini-whitelist.txt b/civicrm/api/v3/System/ini-whitelist.txt
index ab674b93fd..4e6dbabfd0 100644
--- a/civicrm/api/v3/System/ini-whitelist.txt
+++ b/civicrm/api/v3/System/ini-whitelist.txt
@@ -180,7 +180,6 @@ register_long_arrays
 report_memleaks
 report_zend_debug
 request_order
-safe_mode
 # Omit: safe_mode_allowed_env_vars
 # Omit: safe_mode_exec_dir
 safe_mode_gid
diff --git a/civicrm/api/v3/examples/Mailing/GetTokens.ex.php b/civicrm/api/v3/examples/Mailing/GetTokens.ex.php
index bc343a4237..986fd86e61 100644
--- a/civicrm/api/v3/examples/Mailing/GetTokens.ex.php
+++ b/civicrm/api/v3/examples/Mailing/GetTokens.ex.php
@@ -84,8 +84,8 @@ function mailing_gettokens_expectedresult() {
       '{contact.first_name}' => 'First Name',
       '{contact.middle_name}' => 'Middle Name',
       '{contact.last_name}' => 'Last Name',
-      '{contact.individual_prefix}' => 'Individual Prefix',
-      '{contact.individual_suffix}' => 'Individual Suffix',
+      '{contact.prefix_id:label}' => 'Individual Prefix',
+      '{contact.suffix_id:label}' => 'Individual Suffix',
       '{contact.formal_title}' => 'Formal Title',
       '{contact.communication_style}' => 'Communication Style',
       '{contact.email_greeting_id}' => 'Email Greeting ID',
diff --git a/civicrm/api/v3/examples/MessageTemplate/Get.ex.php b/civicrm/api/v3/examples/MessageTemplate/Get.ex.php
index 985ecbba48..9874c57f2e 100644
--- a/civicrm/api/v3/examples/MessageTemplate/Get.ex.php
+++ b/civicrm/api/v3/examples/MessageTemplate/Get.ex.php
@@ -11,7 +11,7 @@ function message_template_get_example() {
     'msg_subject' => 'msg_subject_472',
     'msg_text' => 'msg_text_472',
     'msg_html' => 'msg_html_472',
-    'workflow_id' => 472,
+    'workflow_name' => 'contribution_online_invoice',
     'is_default' => '1',
     'is_reserved' => 1,
   ];
diff --git a/civicrm/api/v3/examples/Setting/GetFields.ex.php b/civicrm/api/v3/examples/Setting/GetFields.ex.php
index b906e47d3f..2c128b70d8 100644
--- a/civicrm/api/v3/examples/Setting/GetFields.ex.php
+++ b/civicrm/api/v3/examples/Setting/GetFields.ex.php
@@ -479,7 +479,7 @@ function setting_getfields_expectedresult() {
         'name' => 'display_name_format',
         'type' => 'String',
         'html_type' => 'textarea',
-        'default' => '{contact.individual_prefix}{ }{contact.first_name}{ }{contact.last_name}{ }{contact.individual_suffix}',
+        'default' => '{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.last_name}{ }{contact.suffix_id:label}',
         'add' => '4.1',
         'title' => 'Individual Display Name Format',
         'is_domain' => 1,
diff --git a/civicrm/api/v3/utils.php b/civicrm/api/v3/utils.php
index 3a940ac389..9415938513 100644
--- a/civicrm/api/v3/utils.php
+++ b/civicrm/api/v3/utils.php
@@ -1876,6 +1876,7 @@ function _civicrm_api3_generic_replace_base_params($params) {
   unset($baseParams['values']);
   unset($baseParams['sequential']);
   unset($baseParams['options']);
+  $baseParams['options']['limit'] = 0;
   return $baseParams;
 }
 
@@ -2303,11 +2304,8 @@ function _civicrm_api3_api_match_pseudoconstant(&$fieldValue, $entity, $fieldNam
     $options = CRM_Utils_Array::value('values', $options, []);
   }
 
-  // If passed a value-separated string, explode to an array, then re-implode after matching values.
-  $implode = FALSE;
   if (is_string($fieldValue) && strpos($fieldValue, CRM_Core_DAO::VALUE_SEPARATOR) !== FALSE) {
     $fieldValue = CRM_Utils_Array::explodePadded($fieldValue);
-    $implode = TRUE;
   }
   // If passed multiple options, validate each.
   if (is_array($fieldValue)) {
@@ -2316,12 +2314,6 @@ function _civicrm_api3_api_match_pseudoconstant(&$fieldValue, $entity, $fieldNam
         _civicrm_api3_api_match_pseudoconstant_value($value, $options, $fieldName, CRM_Utils_Array::value('api.required', $fieldInfo));
       }
     }
-    // TODO: unwrap the call to implodePadded from the conditional and do it always
-    // need to verify that this is safe and doesn't break anything though.
-    // Better yet would be to leave it as an array and ensure that every dao/bao can handle array input
-    if ($implode) {
-      CRM_Utils_Array::implodePadded($fieldValue);
-    }
   }
   else {
     _civicrm_api3_api_match_pseudoconstant_value($fieldValue, $options, $fieldName, CRM_Utils_Array::value('api.required', $fieldInfo));
diff --git a/civicrm/bin/ContributionProcessor.php b/civicrm/bin/ContributionProcessor.php
index a6c7bee51d..3de786f487 100644
--- a/civicrm/bin/ContributionProcessor.php
+++ b/civicrm/bin/ContributionProcessor.php
@@ -545,10 +545,7 @@ CRM_Core_Error::debug_log_message('ContributionProcessor.php');
 $lock = Civi::lockManager()->acquire('worker.contribute.CiviContributeProcessor');
 
 if ($lock->isAcquired()) {
-  // try to unset any time limits
-  if (!ini_get('safe_mode')) {
-    set_time_limit(0);
-  }
+  set_time_limit(0);
 
   CiviContributeProcessor::process();
 }
diff --git a/civicrm/bin/regen.sh b/civicrm/bin/regen.sh
index d78890c7d8..d50c444a23 100755
--- a/civicrm/bin/regen.sh
+++ b/civicrm/bin/regen.sh
@@ -47,7 +47,7 @@ php GenerateData.php
 
 ## Prune local data
 $MYSQLCMD -e "DROP TABLE IF EXISTS civicrm_install_canary; DELETE FROM civicrm_cache; DELETE FROM civicrm_setting;"
-$MYSQLCMD -e "DELETE FROM civicrm_extension WHERE full_name NOT IN ('sequentialcreditnotes', 'eventcart', 'greenwich', 'search', 'flexmailer', 'financialacls', 'contributioncancelactions', 'recaptcha', 'ckeditor4', 'legacycustomsearches');"
+$MYSQLCMD -e "DELETE FROM civicrm_extension WHERE full_name NOT IN ('sequentialcreditnotes', 'eventcart', 'greenwich', 'search', 'org.civicrm.flexmailer', 'financialacls', 'contributioncancelactions', 'recaptcha', 'ckeditor4', 'legacycustomsearches');"
 TABLENAMES=$( echo "show tables like 'civicrm_%'" | $MYSQLCMD | grep ^civicrm_ | xargs )
 
 cd $CIVISOURCEDIR/sql
diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php
index 4c8e36bb77..72e0051097 100644
--- a/civicrm/civicrm-version.php
+++ b/civicrm/civicrm-version.php
@@ -1,7 +1,7 @@
 <?php
 /** @deprecated */
 function civicrmVersion( ) {
-  return array( 'version'  => '5.42.1',
+  return array( 'version'  => '5.43.0',
                 'cms'      => 'Wordpress',
                 'revision' => '' );
 }
diff --git a/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php b/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php
index 00ef13985c..46f4d3279d 100644
--- a/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php
+++ b/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php
@@ -116,6 +116,7 @@ class LoadAdminData extends \Civi\Api4\Generic\AbstractAction {
         if (!isset($info['blocks'][$blockTag])) {
           // Load full contents of block used on the form, then recurse into it
           $embeddedForm = Afform::get($this->checkPermissions)
+            ->addSelect('*', 'directive_name')
             ->setFormatWhitespace(TRUE)
             ->setLayoutFormat('shallow')
             ->addWhere('directive_name', '=', $blockTag)
@@ -215,6 +216,7 @@ class LoadAdminData extends \Civi\Api4\Generic\AbstractAction {
    */
   private function loadForm($name) {
     return Afform::get($this->checkPermissions)
+      ->addSelect('*', 'directive_name')
       ->setFormatWhitespace(TRUE)
       ->setLayoutFormat('shallow')
       ->addWhere('name', '=', $name)
@@ -273,9 +275,12 @@ class LoadAdminData extends \Civi\Api4\Generic\AbstractAction {
     foreach ($apiParams['select'] ?? [] as $select) {
       if (strstr($select, ' AS ')) {
         $expr = SqlExpression::convert($select, TRUE);
-        $field = $expr->getFields() ? $selectQuery->getField($expr->getFields()[0]) : NULL;
-        $joinName = explode('.', $expr->getFields()[0] ?? '')[0];
-        $label = $expr::getTitle() . ': ' . (isset($joinMap[$joinName]) ? $joinMap[$joinName] . ' ' : '') . $field['title'];
+        $label = $expr::getTitle();
+        foreach ($expr->getFields() as $num => $fieldName) {
+          $field = $selectQuery->getField($fieldName);
+          $joinName = explode('.', $fieldName)[0];
+          $label .= ($num ? ', ' : ': ') . (isset($joinMap[$joinName]) ? $joinMap[$joinName] . ' ' : '') . $field['title'];
+        }
         $calcFields[] = [
           '#tag' => 'af-field',
           'name' => $expr->getAlias(),
diff --git a/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html b/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html
index 3a61badce1..a40a04e388 100644
--- a/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html
+++ b/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html
@@ -34,7 +34,7 @@
     </div>
   </div>
 
-  <table>
+  <table class="table table-striped">
     <thead>
     <tr>
       <th title="{{:: ts('Click to sort') }}" ng-click="$ctrl.sortBy('title')">
@@ -62,19 +62,20 @@
     </thead>
     <tbody>
     <tr ng-repeat="afform in $ctrl.afforms[$ctrl.tab] | filter:$ctrl.searchAfformList | orderBy:$ctrl.sortField:$ctrl.sortDir">
-      <td>{{ afform.title }}</td>
+      <td>{{:: afform.title }}</td>
       <td>
-        <code>{{ afform.name }}</code>
+        <code>{{:: afform.name }}</code>
       </td>
       <td>
-        <a ng-if="afform.server_route" ng-href="{{:: crmUrl(afform.server_route, null, afform.is_public ? 'front' : 'back') }}" target="_blank">
-          <code>{{ afform.server_route }}</code>
+        <a ng-if=":: afform.server_route" ng-href="{{:: crmUrl(afform.server_route, null, afform.is_public ? 'front' : 'back') }}" target="_blank">
+          <i class="crm-i fa-external-link"></i>
+          {{:: afform.server_route }}
         </a>
       </td>
-      <td>{{ afform.placement.join(', ') }}</td>
+      <td>{{:: afform.placement.join(', ') }}</td>
       <td class="text-right">
-        <a ng-if="afform.type !== 'system'" href="#/edit/{{ afform.name }}" class="btn btn-xs btn-primary">{{:: ts('Edit') }}</a>
-        <a ng-if="afform.type !== 'system'" href="#/clone/{{ afform.name }}" class="btn btn-xs btn-primary">{{:: ts('Clone') }}</a>
+        <a ng-if="afform.type !== 'system'" href="#/edit/{{:: afform.name }}" class="btn btn-xs btn-primary">{{:: ts('Edit') }}</a>
+        <a ng-if="afform.type !== 'system'" href="#/clone/{{:: afform.name }}" class="btn btn-xs btn-primary">{{:: ts('Clone') }}</a>
         <a href ng-if="afform.has_local" class="btn btn-xs btn-danger" crm-confirm="{type: afform.has_base ? 'revert' : 'delete', obj: afform}" on-yes="$ctrl.revert(afform)">
           {{ afform.has_base ? ts('Revert') : ts('Delete') }}
         </a>
diff --git a/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.html b/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.html
index 72e4ea3b7b..78c1199455 100644
--- a/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.html
+++ b/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.html
@@ -1,4 +1,5 @@
 <div id="bootstrap-theme">
+  <h1 crm-page-title>{{ ts('Form Builder: %1', {1: editor.afform.title || ts('Untitled')}) }}</h1>
   <div id="afGuiEditor" class="crm-flex-box">
     <div id="afGuiEditor-palette" class="crm-flex-3" ng-include="'~/afGuiEditor/afGuiEditorPalette.html'"></div>
     <div id="afGuiEditor-canvas" class="crm-flex-5" ng-include="'~/afGuiEditor/afGuiEditorCanvas.html'"></div>
diff --git a/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiSearch.component.js b/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiSearch.component.js
index ed1a98f73a..14937f6540 100644
--- a/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiSearch.component.js
+++ b/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiSearch.component.js
@@ -86,7 +86,7 @@
             "#tag": "af-field",
             name: (prefix ? prefix + '.' : '') + field.name
           };
-          if (field.input_type === 'Select') {
+          if (field.input_type === 'Select' || field.input_type === 'ChainSelect') {
             tag.defn = {input_attrs: {multiple: true}};
           } else if (field.input_type === 'Date') {
             tag.defn = {input_type: 'Select', search_range: true};
diff --git a/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js b/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js
index 2cc5e04a7d..f740d3d3f6 100644
--- a/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js
+++ b/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js
@@ -76,7 +76,7 @@
       this.canBeMultiple = function() {
         return this.isSearch() &&
           !_.includes(['Date', 'Timestamp'], ctrl.getDefn().data_type) &&
-          _.includes(['Select', 'EntityRef'], $scope.getProp('input_type'));
+          _.includes(['Select', 'EntityRef', 'ChainSelect'], $scope.getProp('input_type'));
       };
 
       this.getRangeElements = function(type) {
diff --git a/civicrm/ext/afform/admin/info.xml b/civicrm/ext/afform/admin/info.xml
index 65a80c06eb..f80148bb32 100644
--- a/civicrm/ext/afform/admin/info.xml
+++ b/civicrm/ext/afform/admin/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>beta</develStage>
   <compatibility>
     <ver>5.23</ver>
diff --git a/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php b/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php
index fca28b8694..ca20b3ac78 100644
--- a/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php
+++ b/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php
@@ -104,7 +104,7 @@ class AfformMetadataInjector {
       $isSearchRange = !empty($fieldDefn['search_range']) && \CRM_Utils_JS::decode($fieldDefn['search_range']);
 
       // Default placeholder for select inputs
-      if ($inputType === 'Select') {
+      if ($inputType === 'Select' || $inputType === 'ChainSelect') {
         $fieldInfo['input_attrs']['placeholder'] = E::ts('Select');
       }
       elseif ($inputType === 'EntityRef') {
@@ -172,11 +172,16 @@ class AfformMetadataInjector {
       $params['values'] = ['contact_type' => $entityName];
       $entityName = 'Contact';
     }
-    $fields = civicrm_api4($entityName, 'getFields', $params);
-    $field = $originalField = $fields->first();
+    foreach (civicrm_api4($entityName, 'getFields', $params) as $field) {
+      // In the highly unlikely event of 2 fields returned, prefer the exact match
+      if ($field['name'] === $fieldName) {
+        break;
+      }
+    }
     // If this is an implicit join, get new field from fk entity
     if ($field['name'] !== $fieldName && $field['fk_entity']) {
       $params['where'] = [['name', '=', substr($fieldName, 1 + strrpos($fieldName, '.'))]];
+      $originalField = $field;
       $field = civicrm_api4($field['fk_entity'], 'getFields', $params)->first();
       if ($field) {
         $field['label'] = $originalField['label'] . ' ' . $field['label'];
diff --git a/civicrm/ext/afform/core/Civi/Afform/AngularDependencyMapper.php b/civicrm/ext/afform/core/Civi/Afform/AngularDependencyMapper.php
index a893cae499..ad5012e521 100644
--- a/civicrm/ext/afform/core/Civi/Afform/AngularDependencyMapper.php
+++ b/civicrm/ext/afform/core/Civi/Afform/AngularDependencyMapper.php
@@ -49,6 +49,10 @@ class AngularDependencyMapper {
       $jFile = $scanner->findFilePath($formName, 'aff.json');
       $hFile = $scanner->findFilePath($formName, 'aff.html');
 
+      if (!$hFile) {
+        \Civi::log()->warning("Missing html file for Afform: '$jFile'");
+        continue;
+      }
       $jStat = stat($jFile);
       $hStat = stat($hFile);
 
diff --git a/civicrm/ext/afform/core/Civi/Afform/Event/AfformSubmitEvent.php b/civicrm/ext/afform/core/Civi/Afform/Event/AfformSubmitEvent.php
index 1277cf66db..1788763d3c 100644
--- a/civicrm/ext/afform/core/Civi/Afform/Event/AfformSubmitEvent.php
+++ b/civicrm/ext/afform/core/Civi/Afform/Event/AfformSubmitEvent.php
@@ -107,6 +107,33 @@ class AfformSubmitEvent extends AfformBaseEvent {
     return $this;
   }
 
+  /**
+   * Get the id of a saved record
+   * @param int $index
+   * @return mixed
+   */
+  public function getEntityId(int $index = 0) {
+    $idField = CoreUtil::getIdFieldName($this->entityName);
+    return $this->entityIds[$this->entityName][$index][$idField] ?? NULL;
+  }
+
+  /**
+   * Get records to be saved
+   * @return array
+   */
+  public function getRecords(): array {
+    return $this->records;
+  }
+
+  /**
+   * @param array $records
+   * @return $this
+   */
+  public function setRecords(array $records) {
+    $this->records = $records;
+    return $this;
+  }
+
   /**
    * @param int $index
    * @param string $joinEntity
diff --git a/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php b/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php
index 82b78fb189..3feade32dc 100644
--- a/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php
+++ b/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php
@@ -16,7 +16,7 @@ class FormDataModel {
   protected $defaults = ['security' => 'RBAC', 'actions' => ['create' => TRUE, 'update' => TRUE]];
 
   /**
-   * @var array
+   * @var array[]
    *   Ex: $entities['spouse']['type'] = 'Contact';
    */
   protected $entities;
@@ -26,6 +26,11 @@ class FormDataModel {
    */
   protected $blocks = [];
 
+  /**
+   * @var array[]
+   */
+  protected $searchDisplays = [];
+
   /**
    * @var array
    *   Ex: $secureApi4s['spouse'] = function($entity, $action, $params){...};
@@ -124,14 +129,19 @@ class FormDataModel {
    * @param array $nodes
    * @param string $entity
    * @param string $join
+   * @param string $searchDisplay
    */
-  protected function parseFields($nodes, $entity = NULL, $join = NULL) {
+  protected function parseFields($nodes, $entity = NULL, $join = NULL, $searchDisplay = NULL) {
     foreach ($nodes as $node) {
       if (!is_array($node) || !isset($node['#tag'])) {
         continue;
       }
-      elseif (!empty($node['af-fieldset']) && !empty($node['#children'])) {
-        $this->parseFields($node['#children'], $node['af-fieldset'], $join);
+      elseif (isset($node['af-fieldset']) && !empty($node['#children'])) {
+        $searchDisplay = $node['af-fieldset'] ? NULL : $this->findSearchDisplay($node);
+        $this->parseFields($node['#children'], $node['af-fieldset'], $join, $searchDisplay);
+      }
+      elseif ($searchDisplay && $node['#tag'] === 'af-field') {
+        $this->searchDisplays[$searchDisplay]['fields'][$node['name']] = AHQ::getProps($node);
       }
       elseif ($entity && $node['#tag'] === 'af-field') {
         if ($join) {
@@ -146,7 +156,7 @@ class FormDataModel {
         $this->parseFields($node['#children'] ?? [], $entity, $node['af-join']);
       }
       elseif (!empty($node['#children'])) {
-        $this->parseFields($node['#children'], $entity, $join);
+        $this->parseFields($node['#children'], $entity, $join, $searchDisplay);
       }
       // Recurse into embedded blocks
       if (isset($this->blocks[$node['#tag']])) {
@@ -154,12 +164,26 @@ class FormDataModel {
           $this->blocks[$node['#tag']] = Afform::get()->setCheckPermissions(FALSE)->setSelect(['name', 'layout'])->addWhere('name', '=', $this->blocks[$node['#tag']]['name'])->execute()->first();
         }
         if (!empty($this->blocks[$node['#tag']]['layout'])) {
-          $this->parseFields($this->blocks[$node['#tag']]['layout'], $entity, $join);
+          $this->parseFields($this->blocks[$node['#tag']]['layout'], $entity, $join, $searchDisplay);
         }
       }
     }
   }
 
+  /**
+   * Finds a search display within a fieldset
+   *
+   * @param array $node
+   */
+  public function findSearchDisplay($node) {
+    foreach (\Civi\Search\Display::getDisplayTypes(['name']) as $displayType) {
+      foreach (AHQ::getTags($node, $displayType['name']) as $display) {
+        $this->searchDisplays[$display['display-name']]['searchName'] = $display['search-name'];
+        return $display['display-name'];
+      }
+    }
+  }
+
   /**
    * @return array[]
    *   Ex: $entities['spouse']['type'] = 'Contact';
@@ -169,10 +193,17 @@ class FormDataModel {
   }
 
   /**
-   * @return array
+   * @return array{type: string, fields: array, joins: array, security: string, actions: array}
    */
   public function getEntity($entityName) {
     return $this->entities[$entityName] ?? NULL;
   }
 
+  /**
+   * @return array{fields: array, searchName: string}
+   */
+  public function getSearchDisplay($displayName) {
+    return $this->searchDisplays[$displayName] ?? NULL;
+  }
+
 }
diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php
index 6a9ae6e681..cd5ed83424 100644
--- a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php
+++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php
@@ -17,8 +17,9 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
   public function getRecords() {
     /** @var \CRM_Afform_AfformScanner $scanner */
     $scanner = \Civi::service('afform_scanner');
-    $getComputed = $this->_isFieldSelected('has_local') || $this->_isFieldSelected('has_base');
+    $getComputed = $this->_isFieldSelected('has_local', 'has_base');
     $getLayout = $this->_isFieldSelected('layout');
+    $getSearchDisplays = $this->_isFieldSelected('search_displays');
     $values = [];
 
     // This helps optimize lookups by file/module/directive name
@@ -64,10 +65,13 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
       if ($getComputed) {
         $scanner->addComputedFields($values[$name]);
       }
-      if ($getLayout) {
+      if ($getLayout || $getSearchDisplays) {
         // Autogenerated layouts will already be in values but can be overridden; scanner takes priority
         $values[$name]['layout'] = $scanner->getLayout($name) ?? $values[$name]['layout'] ?? '';
       }
+      if ($getSearchDisplays) {
+        $values[$name]['search_displays'] = $this->getSearchDisplays($values[$name]['layout']);
+      }
     }
 
     if ($getLayout && $this->layoutFormat !== 'html') {
@@ -158,4 +162,24 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
     return $values;
   }
 
+  /**
+   * Find search display tags in afform markup
+   *
+   * @param string $html
+   * @return string[]
+   */
+  private function getSearchDisplays(string $html) {
+    $tags = $searchDisplays = [];
+    preg_match_all('/<\\s*crm-search-display[^>]+>/', $html, $tags);
+    foreach ($tags[0] ?? [] as $tag) {
+      $searchName = $displayName = [];
+      preg_match('/search-name\\s*=\\s*[\'"]([^\'"]+)[\'"]/', $tag, $searchName);
+      preg_match('/display-name\\s*=\\s*[\'"]([^\'"]+)[\'"]/', $tag, $displayName);
+      if (!empty($searchName[1]) && !empty($displayName[1])) {
+        $searchDisplays[] = $searchName[1] . '.' . $displayName[1];
+      }
+    }
+    return $searchDisplays;
+  }
+
 }
diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/GetOptions.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/GetOptions.php
new file mode 100644
index 0000000000..a972694072
--- /dev/null
+++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/GetOptions.php
@@ -0,0 +1,98 @@
+<?php
+
+namespace Civi\Api4\Action\Afform;
+
+use Civi\Api4\SavedSearch;
+use Civi\Api4\Utils\FormattingUtil;
+
+/**
+ * Loads option values for a form field
+ *
+ * @method $this setFieldName(string $fieldName)
+ * @method $this setModelName(string $modelName)
+ * @method $this setJoinEntity(string $joinEntity)
+ * @method $this setValues(array $values)
+ * @method string getFieldName()
+ * @method string getModelName()
+ * @method string getJoinEntity()
+ * @method array getValues()
+ * @package Civi\Api4\Action\Afform
+ */
+class GetOptions extends AbstractProcessor {
+
+  /**
+   * @var string
+   * @required
+   */
+  protected $modelName;
+
+  /**
+   * @var string
+   * @required
+   */
+  protected $fieldName;
+
+  /**
+   * @var string
+   */
+  protected $joinEntity;
+
+  /**
+   * @var array
+   */
+  protected $values;
+
+  /**
+   * @return array
+   * @throws \API_Exception
+   */
+  protected function processForm() {
+    $formEntity = $this->_formDataModel->getEntity($this->modelName);
+    $searchDisplay = $this->_formDataModel->getSearchDisplay($this->modelName);
+    $fieldName = $this->fieldName;
+
+    // For data-entry forms
+    if ($formEntity) {
+      $entity = $this->joinEntity ?: $formEntity['type'];
+      if ($this->joinEntity && !isset($formEntity['joins'][$this->joinEntity]['fields'][$this->fieldName])) {
+        throw new \API_Exception('Cannot get options for field not present on form');
+      }
+      elseif (!$this->joinEntity && !isset($formEntity['fields'][$this->fieldName])) {
+        throw new \API_Exception('Cannot get options for field not present on form');
+      }
+    }
+    // For search forms, get entity from savedSearch api params
+    elseif ($searchDisplay) {
+      if (!isset($searchDisplay['fields'][$this->fieldName])) {
+        throw new \API_Exception('Cannot get options for field not present on form');
+      }
+      $savedSearch = SavedSearch::get(FALSE)
+        ->addWhere('name', '=', $searchDisplay['searchName'])
+        ->addSelect('api_entity', 'api_params')
+        ->execute()->single();
+      // If field is not prefixed with a join, it's from the main entity
+      $entity = $savedSearch['api__entity'];
+      // Check to see if field belongs to a join
+      foreach ($savedSearch['api_params']['join'] ?? [] as $join) {
+        [$joinEntity, $joinAlias] = array_pad(explode(' AS ', $join[0]), 2, '');
+        if (strpos($fieldName, $joinAlias . '.') === 0) {
+          $entity = $joinEntity;
+          $fieldName = substr($fieldName, strlen($joinAlias) + 1);
+        }
+      }
+    }
+
+    return civicrm_api4($entity, 'getFields', [
+      'checkPermissions' => FALSE,
+      'where' => [['name', '=', $fieldName]],
+      'select' => ['options'],
+      'loadOptions' => ['id', 'label'],
+      'values' => FormattingUtil::filterByPrefix($this->values, $this->fieldName, $fieldName),
+    ], 0)['options'] ?: [];
+  }
+
+  protected function loadEntities() {
+    // Do nothing; this action doesn't need entity data
+  }
+
+}
diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/SubmitFile.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/SubmitFile.php
index bd463b02c2..5d1f975319 100644
--- a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/SubmitFile.php
+++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/SubmitFile.php
@@ -12,10 +12,16 @@ use Civi\Api4\Utils\CoreUtil;
  *
  * @method $this setToken(string $token)
  * @method $this setFieldName(string $fieldName)
- * @method $this setEntityName(string $entityName)
+ * @method $this setModelName(string $modelName)
  * @method $this setJoinEntity(string $joinEntity)
  * @method $this setEntityIndex(int $entityIndex)
  * @method $this setJoinIndex(int $joinIndex)
+ * @method string getToken()
+ * @method string getFieldName()
+ * @method string getModelName()
+ * @method string getJoinEntity()
+ * @method int getEntityIndex()
+ * @method int getJoinIndex()
  * @package Civi\Api4\Action\Afform
  */
 class SubmitFile extends AbstractProcessor {
@@ -31,7 +37,7 @@ class SubmitFile extends AbstractProcessor {
    * @var string
    * @required
    */
-  protected $entityName;
+  protected $modelName;
 
   /**
    * @var string
@@ -58,15 +64,15 @@ class SubmitFile extends AbstractProcessor {
     if (empty($_FILES['file'])) {
       throw new \API_Exception('File upload required');
     }
-    $afformEntity = $this->_formDataModel->getEntity($this->entityName);
+    $afformEntity = $this->_formDataModel->getEntity($this->modelName);
     $apiEntity = $this->joinEntity ?: $afformEntity['type'];
     $entityIndex = (int) $this->entityIndex;
     $joinIndex = (int) $this->joinIndex;
     if ($this->joinEntity) {
-      $entityId = $this->_entityIds[$this->entityName][$entityIndex]['joins'][$this->joinEntity][$joinIndex] ?? NULL;
+      $entityId = $this->_entityIds[$this->modelName][$entityIndex]['joins'][$this->joinEntity][$joinIndex] ?? NULL;
     }
     else {
-      $entityId = $this->_entityIds[$this->entityName][$entityIndex]['id'] ?? NULL;
+      $entityId = $this->_entityIds[$this->modelName][$entityIndex]['id'] ?? NULL;
     }
 
     if (!$entityId) {
diff --git a/civicrm/ext/afform/core/Civi/Api4/Afform.php b/civicrm/ext/afform/core/Civi/Api4/Afform.php
index ec76fd3df2..4e5f0c977f 100644
--- a/civicrm/ext/afform/core/Civi/Api4/Afform.php
+++ b/civicrm/ext/afform/core/Civi/Api4/Afform.php
@@ -93,6 +93,15 @@ class Afform extends Generic\AbstractEntity {
       ->setCheckPermissions($checkPermissions);
   }
 
+  /**
+   * @param bool $checkPermissions
+   * @return Action\Afform\GetOptions
+   */
+  public static function getOptions($checkPermissions = TRUE) {
+    return (new Action\Afform\GetOptions('Afform', __FUNCTION__))
+      ->setCheckPermissions($checkPermissions);
+  }
+
   /**
    * @param bool $checkPermissions
    * @return Generic\BasicBatchAction
@@ -201,22 +210,33 @@ class Afform extends Generic\AbstractEntity {
       if ($self->getAction() === 'get') {
         $fields[] = [
           'name' => 'module_name',
+          'type' => 'Extra',
           'readonly' => TRUE,
         ];
         $fields[] = [
           'name' => 'directive_name',
+          'type' => 'Extra',
           'readonly' => TRUE,
         ];
         $fields[] = [
           'name' => 'has_local',
+          'type' => 'Extra',
           'data_type' => 'Boolean',
           'readonly' => TRUE,
         ];
         $fields[] = [
           'name' => 'has_base',
+          'type' => 'Extra',
           'data_type' => 'Boolean',
           'readonly' => TRUE,
         ];
+        $fields[] = [
+          'name' => 'search_displays',
+          'type' => 'Extra',
+          'data_type' => 'Array',
+          'readonly' => TRUE,
+          'description' => 'Embedded search displays, formatted like ["search-name.display-name"]',
+        ];
       }
 
       return $fields;
@@ -232,6 +252,7 @@ class Afform extends Generic\AbstractEntity {
       "default" => ["administer CiviCRM"],
       // These all check form-level permissions
       'get' => [],
+      'getOptions' => [],
       'prefill' => [],
       'submit' => [],
       'submitFile' => [],
diff --git a/civicrm/ext/afform/core/afform.php b/civicrm/ext/afform/core/afform.php
index 4822b15d23..2ecf7c854d 100644
--- a/civicrm/ext/afform/core/afform.php
+++ b/civicrm/ext/afform/core/afform.php
@@ -492,7 +492,9 @@ function _afform_angular_module_name($fileBaseName, $format = 'camel') {
  */
 function afform_civicrm_alterApiRoutePermissions(&$permissions, $entity, $action) {
   if ($entity == 'Afform') {
-    if ($action == 'prefill' || $action == 'submit' || $action == 'submitFile') {
+    // These actions should be accessible to anonymous users; permissions are checked internally
+    $allowedActions = ['prefill', 'submit', 'submitFile', 'getOptions'];
+    if (in_array($action, $allowedActions, TRUE)) {
       $permissions = CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION;
     }
   }
@@ -519,6 +521,22 @@ function afform_civicrm_preProcess($formName, &$form) {
   }
 }
 
+/**
+ * Implements hook_civicrm_pre().
+ */
+function afform_civicrm_pre($op, $entity, $id, &$params) {
+  // When deleting a searchDisplay, also delete any Afforms the display is embedded within
+  if ($entity === 'SearchDisplay' && $op === 'delete') {
+    $display = \Civi\Api4\SearchDisplay::get(FALSE)
+      ->addSelect('saved_search_id.name', 'name')
+      ->addWhere('id', '=', $id)
+      ->execute()->first();
+    \Civi\Api4\Afform::revert(FALSE)
+      ->addWhere('search_displays', 'CONTAINS', $display['saved_search_id.name'] . ".{$display['name']}")
+      ->execute();
+  }
+}
+
 // Wordpress only: Register callback for rendering shortcodes
 if (function_exists('add_filter')) {
   add_filter('civicrm_shortcode_get_markup', 'afform_shortcode_content', 10, 4);
diff --git a/civicrm/ext/afform/core/ang/af/afField.component.js b/civicrm/ext/afform/core/ang/af/afField.component.js
index 22ba460deb..aa83eac8fb 100644
--- a/civicrm/ext/afform/core/ang/af/afField.component.js
+++ b/civicrm/ext/afform/core/ang/af/afField.component.js
@@ -12,10 +12,14 @@
       fieldName: '@name',
       defn: '='
     },
-    controller: function($scope, $element, crmApi4, $timeout) {
+    controller: function($scope, $element, crmApi4, $timeout, $location) {
       var ts = $scope.ts = CRM.ts('org.civicrm.afform'),
         ctrl = this,
+        // Prefix used for SearchKit explicit joins
+        namePrefix = '',
         boolOptions = [{id: true, label: ts('Yes')}, {id: false, label: ts('No')}],
+        // Used to store chain select options loaded on-the-fly
+        chainSelectOptions = null,
         // Only used for is_primary radio button
         noOptions = [{id: true, label: ''}];
 
@@ -29,6 +33,9 @@
 
         $element.addClass('af-field-type-' + _.kebabCase(ctrl.defn.input_type));
 
+        if (this.defn.name !== this.fieldName) {
+          namePrefix = this.fieldName.substr(0, this.fieldName.length - this.defn.name.length);
+        }
 
         if (ctrl.defn.search_range) {
           // Initialize value as object unless using relative date select
@@ -69,32 +76,88 @@
 
         // ChainSelect - watch control field & reload options as needed
         if (ctrl.defn.input_type === 'ChainSelect') {
-          $scope.$watch('dataProvider.getFieldData()[defn.input_attrs.control_field]', function(val) {
-            if (val) {
+          var controlField = namePrefix + ctrl.defn.input_attrs.control_field;
+          $scope.$watch('dataProvider.getFieldData()["' + controlField + '"]', function(val) {
+            // After switching option list, remove invalid options
+            function validateValue() {
+              var options = $scope.getOptions(),
+                value = $scope.dataProvider.getFieldData()[ctrl.fieldName];
+              if (_.isArray(value)) {
+                _.remove(value, function(item) {
+                  return !_.find(options, function(option) {return option.id == item;});
+                });
+              } else if (value && !_.find(options, function(option) {return option.id == value;})) {
+                $scope.dataProvider.getFieldData()[ctrl.fieldName] = '';
+              }
+            }
+            if (val && (typeof val === 'number' || val.length)) {
+              $('input[crm-ui-select]', $element).addClass('loading').prop('disabled', true);
               var params = {
-                where: [['name', '=', ctrl.fieldName]],
-                select: ['options'],
-                loadOptions: ['id', 'label'],
-                values: {}
+                name: ctrl.afFieldset.getFormName(),
+                modelName: ctrl.afFieldset.getName(),
+                fieldName: ctrl.fieldName,
+                joinEntity: ctrl.afJoin ? ctrl.afJoin.entity : null,
+                values: $scope.dataProvider.getFieldData()
               };
-              params.values[ctrl.defn.input_attrs.control_field] = val;
-              crmApi4($scope.dataProvider.getEntityType(), 'getFields', params, 0)
+              crmApi4('Afform', 'getOptions', params)
                 .then(function(data) {
-                  ctrl.defn.options = data.options;
+                  $('input[crm-ui-select]', $element).removeClass('loading').prop('disabled', !data.length);
+                  chainSelectOptions = data;
+                  validateValue();
                 });
+            } else {
+              chainSelectOptions = null;
+              validateValue();
             }
-          });
+          }, true);
         }
 
-        // Set default value
-        if (ctrl.defn.afform_default) {
-          // Wait for parent controllers to initialize
-          $timeout(function() {
-            $scope.dataProvider.getFieldData()[ctrl.fieldName] = ctrl.defn.afform_default;
-          });
+        // Wait for parent controllers to initialize
+        $timeout(function() {
+          // Unique field name = entity_name index . join . field_name
+          var entityName = ctrl.afFieldset.getName(),
+            joinEntity = ctrl.afJoin ? ctrl.afJoin.entity : null,
+            uniquePrefix = '',
+            urlArgs = $location.search();
+          if (entityName) {
+            var index = ctrl.getEntityIndex();
+            uniquePrefix = entityName + (index ? index + 1 : '') + (joinEntity ? '.' + joinEntity : '') + '.';
+          }
+          // Set default value from url with uniquePrefix + fieldName
+          if (urlArgs && urlArgs[uniquePrefix + ctrl.fieldName]) {
+            setValue(urlArgs[uniquePrefix + ctrl.fieldName]);
+          }
+          // Set default value from url with fieldName only
+          else if (urlArgs && urlArgs[ctrl.fieldName]) {
+            $scope.dataProvider.getFieldData()[ctrl.fieldName] = urlArgs[ctrl.fieldName];
+          }
+          // Set default value based on field defn
+          else if (ctrl.defn.afform_default) {
+            setValue(ctrl.defn.afform_default);
+          }
+        });
+      };
+
+      // Set default value; ensure data type matches input type
+      function setValue(value) {
+        if (ctrl.defn.input_type === 'Number' && ctrl.defn.search_range) {
+          if (!_.isPlainObject(value)) {
+            value = {
+              '>=': +(('' + value).split('-')[0] || 0),
+              '<=': +(('' + value).split('-')[1] || 0),
+            };
+          }
+        } else if (ctrl.defn.input_type === 'Number') {
+          value = +value;
+        } else if (ctrl.defn.search_range && !_.isPlainObject(value)) {
+          value = {
+            '>=': ('' + value).split('-')[0],
+            '<=': ('' + value).split('-')[1] || '',
+          };
         }
 
-      };
+        $scope.dataProvider.getFieldData()[ctrl.fieldName] = value;
+      }
 
       // Get the repeat index of the entity fieldset (not the join)
       ctrl.getEntityIndex = function() {
@@ -109,7 +172,7 @@
       // Params for the Afform.submitFile API when uploading a file field
       ctrl.getFileUploadParams = function() {
         return {
-          entityName: ctrl.afFieldset.modelName,
+          modelName: ctrl.afFieldset.getName(),
           fieldName: ctrl.fieldName,
           joinEntity: ctrl.afJoin ? ctrl.afJoin.entity : null,
           entityIndex: ctrl.getEntityIndex(),
@@ -118,7 +181,7 @@
       };
 
       $scope.getOptions = function () {
-        return ctrl.defn.options || (ctrl.fieldName === 'is_primary' && ctrl.defn.input_type === 'Radio' ? noOptions : boolOptions);
+        return chainSelectOptions || ctrl.defn.options || (ctrl.fieldName === 'is_primary' && ctrl.defn.input_type === 'Radio' ? noOptions : boolOptions);
       };
 
       $scope.select2Options = function() {
diff --git a/civicrm/ext/afform/core/ang/af/afFieldset.directive.js b/civicrm/ext/afform/core/ang/af/afFieldset.directive.js
index 273651fe64..384fad9b90 100644
--- a/civicrm/ext/afform/core/ang/af/afFieldset.directive.js
+++ b/civicrm/ext/afform/core/ang/af/afFieldset.directive.js
@@ -11,15 +11,18 @@
         var self = ctrls[0];
         self.afFormCtrl = ctrls[1];
       },
-      controller: function($scope) {
+      controller: function($scope, $element) {
         var ctrl = this,
           localData = [];
 
         this.getData = function() {
           return ctrl.afFormCtrl ? ctrl.afFormCtrl.getData(ctrl.modelName) : localData;
         };
+        // Get name of afform entity or search display
         this.getName = function() {
-          return this.modelName;
+          return this.modelName ||
+            // If there is no Afform entity, get the name of embedded search display
+            $element.find('[search-name][display-name]').attr('display-name');
         };
         this.getEntityType = function() {
           return this.afFormCtrl.getEntity(this.modelName).type;
@@ -32,7 +35,7 @@
           return data[0].fields;
         };
         this.getFormName = function() {
-          return ctrl.afFormCtrl ? ctrl.afFormCtrl.getMeta().name : $scope.meta.name;
+          return ctrl.afFormCtrl ? ctrl.afFormCtrl.getFormMeta().name : $scope.meta.name;
         };
       }
     };
diff --git a/civicrm/ext/afform/core/info.xml b/civicrm/ext/afform/core/info.xml
index 26304df6de..82de9f23c0 100644
--- a/civicrm/ext/afform/core/info.xml
+++ b/civicrm/ext/afform/core/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>beta</develStage>
   <compatibility>
     <ver>5.23</ver>
diff --git a/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php b/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php
new file mode 100644
index 0000000000..b8d0f9d8b0
--- /dev/null
+++ b/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php
@@ -0,0 +1,74 @@
+<?php
+namespace Civi\Afform;
+
+use Civi\Api4\Afform;
+use Civi\Test\HeadlessInterface;
+use Civi\Test\TransactionalInterface;
+
+/**
+ * @group headless
+ */
+class AfformGetTest extends \PHPUnit\Framework\TestCase implements HeadlessInterface, TransactionalInterface {
+
+  private $formName = 'abc_123_test';
+
+  public function setUpHeadless() {
+    return \Civi\Test::headless()->installMe(__DIR__)->apply();
+  }
+
+  public function tearDown(): void {
+    Afform::revert(FALSE)->addWhere('name', '=', $this->formName)->execute();
+    parent::tearDown();
+  }
+
+  public function testGetReturnFields() {
+    Afform::create()
+      ->addValue('name', $this->formName)
+      ->addValue('title', 'Test Form')
+      ->execute();
+
+    // Omitting select should return regular fields but not extra fields
+    $result = Afform::get()
+      ->addWhere('name', '=', $this->formName)
+      ->execute()->single();
+    $this->assertEquals($this->formName, $result['name']);
+    $this->assertArrayNotHasKey('directive_name', $result);
+    $this->assertArrayNotHasKey('has_base', $result);
+
+    // Select * should also return regular fields only
+    $result = Afform::get()
+      ->addSelect('*')
+      ->addWhere('name', '=', $this->formName)
+      ->execute()->single();
+    $this->assertEquals($this->formName, $result['name']);
+    $this->assertArrayNotHasKey('module_name', $result);
+    $this->assertArrayNotHasKey('has_local', $result);
+
+    // Selecting * and has_base should return core and that one extra field
+    $result = Afform::get()
+      ->addSelect('*', 'has_base')
+      ->addWhere('name', '=', $this->formName)
+      ->execute()->single();
+    $this->assertEquals($this->formName, $result['name']);
+    $this->assertFalse($result['has_base']);
+    $this->assertArrayNotHasKey('has_local', $result);
+  }
+
+  public function testGetSearchDisplays() {
+    Afform::create()
+      ->addValue('name', $this->formName)
+      ->addValue('title', 'Test Form')
+      ->addValue('layout', '<div><crm-search-display-grid search-name="foo" display-name="foo-bar" /></div>< crm-search-display-table search-name=\'foo\' display-name = \'bar-food\' >')
+      ->setLayoutFormat('html')
+      ->execute();
+
+    $result = Afform::get()
+      ->addSelect('name', 'search_displays')
+      ->addWhere('name', '=', $this->formName)
+      ->addWhere('search_displays', 'CONTAINS', 'foo.foo-bar')
+      ->execute()->single();
+
+    $this->assertEquals(['foo.foo-bar', 'foo.bar-food'], $result['search_displays']);
+  }
+
+}
diff --git a/civicrm/ext/afform/html/info.xml b/civicrm/ext/afform/html/info.xml
index 717d3f3fdc..16f0c5d8f3 100644
--- a/civicrm/ext/afform/html/info.xml
+++ b/civicrm/ext/afform/html/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>alpha</develStage>
   <compatibility>
     <ver>5.23</ver>
diff --git a/civicrm/ext/afform/mock/info.xml b/civicrm/ext/afform/mock/info.xml
index c8944777f5..78389d0e6f 100644
--- a/civicrm/ext/afform/mock/info.xml
+++ b/civicrm/ext/afform/mock/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php
index 7e0b2f6f46..35d1c2a159 100644
--- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php
+++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php
@@ -15,6 +15,9 @@ class api_v4_AfformContactUsageTest extends api_v4_AfformUsageTestCase {
   <fieldset af-fieldset="me">
       <af-field name="first_name" />
       <af-field name="last_name" />
+      <div af-join="Address" min="1" af-repeat="Add">
+        <afblock-contact-address></afblock-contact-address>
+      </div>
   </fieldset>
 </af-form>
 EOHTML;
@@ -87,6 +90,33 @@ EOHTML;
     $this->assertEquals('Lasty', $contact['last_name']);
   }
 
+  public function testChainSelect(): void {
+    $this->useValues([
+      'layout' => self::$layouts['aboutMe'],
+      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+    ]);
+
+    // Get states for USA
+    $result = Civi\Api4\Afform::getOptions()
+      ->setName($this->formName)
+      ->setModelName('me')
+      ->setFieldName('state_province_id')
+      ->setJoinEntity('Address')
+      ->setValues(['country_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Country', 'United States', 'id', 'name')])
+      ->execute();
+    $this->assertEquals('Alabama', $result[0]['label']);
+
+    // Get states for UK
+    $result = Civi\Api4\Afform::getOptions()
+      ->setName($this->formName)
+      ->setModelName('me')
+      ->setFieldName('state_province_id')
+      ->setJoinEntity('Address')
+      ->setValues(['country_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Country', 'United Kingdom', 'id', 'name')])
+      ->execute();
+    $this->assertEquals('Aberdeen City', $result[0]['label']);
+  }
+
   public function testCheckEntityReferenceFieldsReplacement(): void {
     $this->useValues([
       'layout' => self::$layouts['registerSite'],
diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformCustomFieldUsageTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformCustomFieldUsageTest.php
index 3ece0fb88d..e1e848a208 100644
--- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformCustomFieldUsageTest.php
+++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformCustomFieldUsageTest.php
@@ -50,6 +50,7 @@ EOHTML;
     // Creating a custom group should automatically create an afform block
     $block = \Civi\Api4\Afform::get()
       ->addWhere('name', '=', 'afblockCustom_MyThings')
+      ->addSelect('layout', 'directive_name')
       ->setLayoutFormat('shallow')
       ->setFormatWhitespace(TRUE)
       ->execute()->single();
diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformFileUploadTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformFileUploadTest.php
index c8bfb3040d..fa706c1cb3 100644
--- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformFileUploadTest.php
+++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformFileUploadTest.php
@@ -110,7 +110,7 @@ EOHTML;
       Civi\Api4\Afform::submitFile()
         ->setName($this->formName)
         ->setToken($submission['token'])
-        ->setEntityName('Individual1')
+        ->setModelName('Individual1')
         ->setFieldName('MyInfo.single_file_field')
         ->setEntityIndex($entityIndex)
         ->execute();
@@ -120,7 +120,7 @@ EOHTML;
         Civi\Api4\Afform::submitFile()
           ->setName($this->formName)
           ->setToken($submission['token'])
-          ->setEntityName('Individual1')
+          ->setModelName('Individual1')
           ->setFieldName('my_file')
           ->setEntityIndex($entityIndex)
           ->setJoinEntity('Custom_MyFiles')
diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php
index 3d57c90bb0..ffb62766f8 100644
--- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php
+++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php
@@ -53,7 +53,9 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
     Civi\Api4\Afform::revert()->addWhere('name', '=', $formName)->execute();
 
     $message = 'The initial Afform.get should return default data';
-    $result = Civi\Api4\Afform::get()->addWhere('name', '=', $formName)->execute();
+    $result = Civi\Api4\Afform::get()
+      ->addSelect('*', 'has_base', 'has_local')
+      ->addWhere('name', '=', $formName)->execute();
     $this->assertEquals($formName, $result[0]['name'], $message);
     $this->assertEquals($get($originalMetadata, 'title'), $get($result[0], 'title'), $message);
     $this->assertEquals($get($originalMetadata, 'description'), $get($result[0], 'description'), $message);
@@ -75,7 +77,9 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
     $this->assertEquals('The temporary description', $result[0]['description'], $message);
 
     $message = 'After updating, the Afform.get API should return blended data';
-    $result = Civi\Api4\Afform::get()->addWhere('name', '=', $formName)->execute();
+    $result = Civi\Api4\Afform::get()
+      ->addSelect('*', 'has_base', 'has_local')
+      ->addWhere('name', '=', $formName)->execute();
     $this->assertEquals($formName, $result[0]['name'], $message);
     $this->assertEquals($get($originalMetadata, 'title'), $get($result[0], 'title'), $message);
     $this->assertEquals('The temporary description', $get($result[0], 'description'), $message);
@@ -88,7 +92,9 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
 
     Civi\Api4\Afform::revert()->addWhere('name', '=', $formName)->execute();
     $message = 'After reverting, the final Afform.get should return default data';
-    $result = Civi\Api4\Afform::get()->addWhere('name', '=', $formName)->execute();
+    $result = Civi\Api4\Afform::get()
+      ->addSelect('*', 'has_base', 'has_local')
+      ->addWhere('name', '=', $formName)->execute();
     $this->assertEquals($formName, $result[0]['name'], $message);
     $this->assertEquals($get($originalMetadata, 'title'), $get($result[0], 'title'), $message);
     $this->assertEquals($get($originalMetadata, 'description'), $get($result[0], 'description'), $message);
diff --git a/civicrm/ext/authx/README.md b/civicrm/ext/authx/README.md
index f0515b8a3e..d5404a88bf 100644
--- a/civicrm/ext/authx/README.md
+++ b/civicrm/ext/authx/README.md
@@ -124,3 +124,6 @@ $ cv ev 'Civi::settings()->set("authx_header_cred", ["pass","jwt"]);'
 $ curl 'https://demouser:demopass@example.org/civicrm/authx/id'
 {"contact_id":203,"user_id":"2"}
 ```
+
+The "AuthX: Authenticate to services with password" CiviCRM permission must
+also be granted for the role associated to the user.
diff --git a/civicrm/ext/authx/info.xml b/civicrm/ext/authx/info.xml
index 88f9cd9869..02b8cfb1f1 100644
--- a/civicrm/ext/authx/info.xml
+++ b/civicrm/ext/authx/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-02-11</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>alpha</develStage>
   <compatibility>
     <ver>5.0</ver>
diff --git a/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php b/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php
index d2e2ea5f61..e7792914f4 100644
--- a/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php
+++ b/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php
@@ -423,6 +423,46 @@ class AllFlowsTest extends \PHPUnit\Framework\TestCase implements EndToEndInterf
     $this->assertEquals($actualSteps, $planSteps);
   }
 
+  /**
+   * Civi's test suite includes middleware that will add JWT tokens to outgoing requests.
+   *
+   * This test tries a few permutations with different principals ("demo", "Lebowski"),
+   * different identifier fields (authx_user, authx_contact_id), and different
+   * flows (param/header/xheader).
+   *
+   * @throws \CiviCRM_API3_Exception
+   * @throws \GuzzleHttp\Exception\GuzzleException
+   */
+  public function testJwtMiddleware() {
+    // HTTP GET with a specific user. Choose flow automatically.
+    $response = $this->createGuzzle()->get('civicrm/authx/id', [
+      'authx_user' => $GLOBALS['_CV']['DEMO_USER'],
+    ]);
+    $this->assertMyContact($this->getDemoCID(), $this->getDemoUID(), 'jwt', 'param', $response);
+
+    // HTTP GET with a specific contact. Choose flow automatically.
+    $response = $this->createGuzzle()->get('civicrm/authx/id', [
+      'authx_contact_id' => $this->getDemoCID(),
+    ]);
+    $this->assertMyContact($this->getDemoCID(), $this->getDemoUID(), 'jwt', 'param', $response);
+
+    // HTTP POST with a specific contact. Per-client default.
+    $response = $this->createGuzzle([
+      'authx_contact_id' => $this->getLebowskiCID(),
+    ])->post('civicrm/authx/id');
+    $this->assertMyContact($this->getLebowskiCID(), NULL, 'jwt', 'param', $response);
+
+    // Using explicit flow options...
+    foreach (['param', 'xheader', 'header'] as $flowType) {
+      \Civi::settings()->set("authx_{$flowType}_cred", ['jwt']);
+      $response = $this->createGuzzle()->get('civicrm/authx/id', [
+        'authx_contact_id' => $this->getDemoCID(),
+        'authx_flow' => $flowType,
+      ]);
+      $this->assertMyContact($this->getDemoCID(), $this->getDemoUID(), 'jwt', $flowType, $response);
+    }
+  }
+
   /**
    * Filter a request, applying the given authentication options
    *
diff --git a/civicrm/ext/ckeditor4/info.xml b/civicrm/ext/ckeditor4/info.xml
index a86695d96f..2bd2c602aa 100644
--- a/civicrm/ext/ckeditor4/info.xml
+++ b/civicrm/ext/ckeditor4/info.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <extension key="ckeditor4" type="module">
   <file>ckeditor4</file>
-  <name>CKEditor</name>
-  <description>CiviCRM CKEditor Plugin.</description>
+  <name>CKEditor4</name>
+  <description>CiviCRM CKEditor4 Plugin.</description>
   <license>AGPL-3.0</license>
   <maintainer>
     <author>Seamus Lee</author>
@@ -15,12 +15,12 @@
     <url desc="Licensing">https://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-05-23</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>stable</develStage>
   <compatibility>
     <ver>5.39</ver>
   </compatibility>
-  <comments>This takes the original CKEditor and shifts it into its own core extension</comments>
+  <comments>This is the version of CKEditor that originally shipped with CiviCRM core</comments>
   <classloader>
     <psr4 prefix="Civi\" path="Civi"/>
   </classloader>
diff --git a/civicrm/ext/contributioncancelactions/info.xml b/civicrm/ext/contributioncancelactions/info.xml
index ed653efbe1..351d99f1e3 100644
--- a/civicrm/ext/contributioncancelactions/info.xml
+++ b/civicrm/ext/contributioncancelactions/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-10-12</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>stable</develStage>
   <compatibility>
     <ver>5.32</ver>
diff --git a/civicrm/ext/eventcart/info.xml b/civicrm/ext/eventcart/info.xml
index 017bd49e38..55a0ddb655 100644
--- a/civicrm/ext/eventcart/info.xml
+++ b/civicrm/ext/eventcart/info.xml
@@ -13,7 +13,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-08-03</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
diff --git a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl
index fba3a4770c..60d841abc3 100644
--- a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl
+++ b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl
@@ -94,7 +94,7 @@
   </tfoot>
 </table>
 {if $payment_required == true}
-  {if $form.is_pay_later.label}
+  {if !empty($form.is_pay_later.label)}
     <div class="crm-section {$form.is_pay_later.name}-section">
       <div class="label">{$form.is_pay_later.label}</div>
       <div class="content">{$form.is_pay_later.html}
@@ -117,14 +117,14 @@
 {/if}
 
 <script type="text/javascript">
-{if $form.is_pay_later.name}
+{if !empty($form.is_pay_later.name)}
 var pay_later_sel = "input#{$form.is_pay_later.name}";
 {/if}
 {literal}
 CRM.$(function($) {
 
   function refresh() {
-    {/literal}{if $form.is_pay_later.name}{literal}
+    {/literal}{if !empty($form.is_pay_later.name)}{literal}
     var is_pay_later = $(pay_later_sel).prop("checked");
     {/literal}{else}
     var is_pay_later = false;
@@ -133,7 +133,7 @@ CRM.$(function($) {
     $(".pay-later-instructions").toggle(is_pay_later);
     $("div.billingNameInfo-section .description").html(is_pay_later ? "Enter the billing address at which you can be invoiced." : "Enter the name as shown on your credit or debit card, and the billing address for this card.");
   }
-  {/literal}{if $form.is_pay_later.name}{literal}
+  {/literal}{if !empty($form.is_pay_later.name)}{literal}
   $(pay_later_sel).change(function() {
     refresh();
   });
diff --git a/civicrm/ext/ewaysingle/info.xml b/civicrm/ext/ewaysingle/info.xml
index 3ff8160659..ea6bd038ab 100644
--- a/civicrm/ext/ewaysingle/info.xml
+++ b/civicrm/ext/ewaysingle/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-10-07</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
diff --git a/civicrm/ext/financialacls/info.xml b/civicrm/ext/financialacls/info.xml
index 97bb65c559..dfba585dac 100644
--- a/civicrm/ext/financialacls/info.xml
+++ b/civicrm/ext/financialacls/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-08-27</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>stable</develStage>
   <compatibility>
     <ver>5.30</ver>
diff --git a/civicrm/ext/flexmailer/info.xml b/civicrm/ext/flexmailer/info.xml
index 9a67d26c19..ff0c21b536 100644
--- a/civicrm/ext/flexmailer/info.xml
+++ b/civicrm/ext/flexmailer/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-08-05</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>stable</develStage>
   <comments>
     FlexMailer is an email delivery engine which replaces the internal guts
diff --git a/civicrm/ext/flexmailer/src/API/MailingPreview.php b/civicrm/ext/flexmailer/src/API/MailingPreview.php
index cdd11ac428..e585eda77a 100644
--- a/civicrm/ext/flexmailer/src/API/MailingPreview.php
+++ b/civicrm/ext/flexmailer/src/API/MailingPreview.php
@@ -41,11 +41,23 @@ class MailingPreview {
     $contactID = \CRM_Utils_Array::value('contact_id', $params,
       \CRM_Core_Session::singleton()->get('userID'));
 
-    $job = new \CRM_Mailing_BAO_MailingJob();
+    $job = new class extends \CRM_Mailing_BAO_MailingJob {
+
+      public function insert() {
+        throw new \RuntimeException('MailingJob is just a preview. It cannot be saved.');
+      }
+
+      public function update($dataObject = FALSE) {
+        throw new \RuntimeException('MailingJob is just a preview. It cannot be saved.');
+      }
+
+      public function save($hook = TRUE) {
+        throw new \RuntimeException('MailingJob is just a preview. It cannot be saved.');
+      }
+
+    };
     $job->mailing_id = $mailing->id ?: NULL;
-    $job->is_test = 1;
     $job->status = 'Complete';
-    // $job->save();
 
     $flexMailer = new FlexMailer(array(
       'is_preview' => TRUE,
diff --git a/civicrm/ext/flexmailer/src/ClickTracker/HtmlClickTracker.php b/civicrm/ext/flexmailer/src/ClickTracker/HtmlClickTracker.php
index adca06ed7e..9dd3759b37 100644
--- a/civicrm/ext/flexmailer/src/ClickTracker/HtmlClickTracker.php
+++ b/civicrm/ext/flexmailer/src/ClickTracker/HtmlClickTracker.php
@@ -51,9 +51,9 @@ class HtmlClickTracker implements ClickTrackerInterface {
 
     // Find anything like href="..." or href='...' inside a tag.
     $tmp = preg_replace_callback(
-      ';(\<a[^>]*href *= *")([^">]+)(");i', $callback, $html);
+      ';(\<a[^>]*href *= *")([^">]+)(");iu', $callback, $html);
     return preg_replace_callback(
-      ';(\<a[^>]*href *= *\')([^\'>]+)(\');i', $callback, $tmp);
+      ';(\<a[^>]*href *= *\')([^\'>]+)(\');iu', $callback, $tmp);
   }
 
   //  /**
diff --git a/civicrm/ext/flexmailer/src/ClickTracker/TextClickTracker.php b/civicrm/ext/flexmailer/src/ClickTracker/TextClickTracker.php
index 31cdd90c2c..63a14a0955 100644
--- a/civicrm/ext/flexmailer/src/ClickTracker/TextClickTracker.php
+++ b/civicrm/ext/flexmailer/src/ClickTracker/TextClickTracker.php
@@ -37,7 +37,7 @@ class TextClickTracker implements ClickTrackerInterface {
     };
     // Find any HTTP(S) URLs in the text.
     // return preg_replace_callback('/\b(?:(?:https?):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $callback, $tex
-    return preg_replace_callback('/\b(?:(?:https?):\/\/)[-A-Z0-9+&@#\/%=~_|$?!:,.{}\[\];]*[A-Z0-9+&@#\/%=~_|${}\[\];]/i',
+    return preg_replace_callback('/\b(?:(?:https?):\/\/)[\w+&@#\/%=~_|$?!:,.{}\[\];]*[\w+&@#\/%=~_|${}\[\];]/iu',
       $callback, $text);
   }
 
diff --git a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ClickTrackerTest.php b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ClickTrackerTest.php
index 91a7af91e2..5ba9c960e8 100644
--- a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ClickTrackerTest.php
+++ b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ClickTrackerTest.php
@@ -29,15 +29,15 @@ class ClickTrackerTest extends \PHPUnit\Framework\TestCase implements HeadlessIn
     // Mock the getTrackerURL call; we don't need to test creating a row in a table.
     // If you want this to work without runkit, then either (a) make the dummy rows or (b) switch this to a hook/event that is runtime-configurable.
     require_once 'CRM/Mailing/BAO/TrackableURL.php';
-    runkit7_method_rename('\CRM_Mailing_BAO_TrackableURL', 'getBasicTrackerURL', 'orig_getBasicTrackerURL');
-    runkit7_method_add('\CRM_Mailing_BAO_TrackableURL', 'getBasicTrackerURL', '$a, $b, $c', 'return \'http://example.com/extern?u=1&qid=1\';', RUNKIT7_ACC_STATIC | RUNKIT7_ACC_PRIVATE);
+    \runkit7_method_rename('\CRM_Mailing_BAO_TrackableURL', 'getBasicTrackerURL', 'orig_getBasicTrackerURL');
+    \runkit7_method_add('\CRM_Mailing_BAO_TrackableURL', 'getBasicTrackerURL', '$a, $b, $c', 'return \'http://example.com/extern?u=1&qid=1\';', RUNKIT7_ACC_STATIC | RUNKIT7_ACC_PRIVATE);
     parent::setUp();
   }
 
   public function tearDown(): void {
     // Reset the class.
-    runkit7_method_remove('\CRM_Mailing_BAO_TrackableURL', 'getBasicTrackerURL');
-    runkit7_method_rename('\CRM_Mailing_BAO_TrackableURL', 'orig_getBasicTrackerURL', 'getBasicTrackerURL');
+    \runkit7_method_remove('\CRM_Mailing_BAO_TrackableURL', 'getBasicTrackerURL');
+    \runkit7_method_rename('\CRM_Mailing_BAO_TrackableURL', 'orig_getBasicTrackerURL', 'getBasicTrackerURL');
     parent::tearDown();
   }
 
@@ -137,4 +137,18 @@ class ClickTrackerTest extends \PHPUnit\Framework\TestCase implements HeadlessIn
     $this->assertEquals('See this: https://example.com/{some.path}', $result);
   }
 
+  public function testLinkWithUnicode(): void {
+    $filter = new TextClickTracker();
+    $msg = 'See this: https://civińcrm.org';
+    $result = $filter->filterContent($msg, 1, 1);
+    $this->assertEquals('See this: http://example.com/extern?u=1&qid=1', $result);
+  }
+
+  public function testHtmlLinkWithUnicode(): void {
+    $filter = new HtmlClickTracker();
+    $msg = '<p><a href="https://civińcrm.org">See This</a></p>';
+    $result = $filter->filterContent($msg, 1, 1);
+    $this->assertEquals('<p><a href="http://example.com/extern?u=1&amp;qid=1" rel=\'nofollow\'>See This</a></p>', $result);
+  }
+
 }
diff --git a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php
index aad8443ce4..a12ddad7c5 100644
--- a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php
+++ b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php
@@ -83,7 +83,7 @@ class MailingPreviewTest extends \CiviUnitTestCase {
     $this->assertMaxIds($maxIDs);
 
     $previewResult = $result['values'][$result['id']]['api.Mailing.preview'];
-    $this->assertEquals("[CiviMail Draft] Hello $displayName",
+    $this->assertEquals("Hello $displayName",
       $previewResult['values']['subject']);
 
     $this->assertStringContainsString("This is $displayName", $previewResult['values']['body_text']);
@@ -112,7 +112,7 @@ class MailingPreviewTest extends \CiviUnitTestCase {
     $previewResult = $this->callAPISuccess('mailing', 'preview', $params);
     $this->assertMaxIds($maxIDs);
 
-    $this->assertEquals("[CiviMail Draft] Hello $displayName",
+    $this->assertEquals("Hello $displayName",
       $previewResult['values']['subject']);
 
     $this->assertStringContainsString("This is $displayName", $previewResult['values']['body_text']);
diff --git a/civicrm/ext/greenwich/info.xml b/civicrm/ext/greenwich/info.xml
index d43da6e672..5b14a03fd4 100644
--- a/civicrm/ext/greenwich/info.xml
+++ b/civicrm/ext/greenwich/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-07-21</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ActivitySearch.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ActivitySearch.php
index 3cc5e6d4e7..7c403fd0c1 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ActivitySearch.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ActivitySearch.php
@@ -390,18 +390,6 @@ ORDER BY contact_a.sort_name';
     return $this->_columns;
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @return null
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Base.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Base.php
index 6550170deb..6c275cdc07 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Base.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Base.php
@@ -22,6 +22,12 @@ class CRM_Contact_Form_Search_Custom_Base {
 
   protected $_stateID;
 
+  /**
+   * The title of this form
+   * @var string
+   */
+  protected $_title = NULL;
+
   /**
    * Class constructor.
    *
@@ -228,17 +234,17 @@ class CRM_Contact_Form_Search_Custom_Base {
   }
 
   /**
-   * Set the title.
+   * Setter function for title.
    *
    * @param string $title
+   *   The title of the form.
    */
   public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
+    if (empty($title)) {
+      $title = ts('Search');
     }
+    $this->_title = $title;
+    CRM_Utils_System::setTitle($title);
   }
 
   /**
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContribSYBNT.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContribSYBNT.php
index de292bb76a..cbd887c39f 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContribSYBNT.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContribSYBNT.php
@@ -365,18 +365,6 @@ AND      c.receive_date < {$this->start_date_1}
     return NULL;
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @param string $tableAlias
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContributionAggregate.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContributionAggregate.php
index 0b0698c5a9..2e640827ba 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContributionAggregate.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ContributionAggregate.php
@@ -320,18 +320,6 @@ civicrm_contact AS contact_a {$this->_aclFrom}
     return $this->_columns;
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @return null
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/DateAdded.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/DateAdded.php
index 8fca291f52..2e4877bac7 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/DateAdded.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/DateAdded.php
@@ -361,18 +361,6 @@ class CRM_Contact_Form_Search_Custom_DateAdded extends CRM_Contact_Form_Search_C
     return 'CRM/Contact/Form/Search/Custom.tpl';
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @return mixed
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/EventAggregate.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/EventAggregate.php
index 29e76dbeaa..af1bd24238 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/EventAggregate.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/EventAggregate.php
@@ -335,18 +335,6 @@ class CRM_Contact_Form_Search_Custom_EventAggregate extends CRM_Contact_Form_Sea
     return $this->_columns;
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @param string $tableAlias
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/FullText.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/FullText.php
index 12b793fa2f..dcc3ea12f1 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/FullText.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/FullText.php
@@ -519,15 +519,6 @@ FROM   {$this->_tableName} contact_a
   public function alterRow(&$row) {
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-  }
-
   /**
    * @param int|array $limit
    * @return string
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Group.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Group.php
index 1cc949d4f9..7eabd91dad 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Group.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Group.php
@@ -652,20 +652,6 @@ WHERE  gcc.group_id = {$ssGroup->id}
     return 'CRM/Contact/Form/Search/Custom.tpl';
   }
 
-  /**
-   * Set title on search.
-   *
-   * @param string $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * Build ACL clause.
    *
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/PriceSet.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/PriceSet.php
index 74e5aa006e..49b5b32e95 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/PriceSet.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/PriceSet.php
@@ -333,12 +333,10 @@ INNER JOIN {$this->_tableName} tempTable ON ( tempTable.contact_id = contact_a.i
    * @param $title
    */
   public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Export Price Set Info for an Event'));
+    if (empty($title)) {
+      $title = ts('Export Price Set Info for an Event');
     }
+    parent::setTitle($title);
   }
 
   /**
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Proximity.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Proximity.php
index 8d211aafcf..11533db374 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Proximity.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Proximity.php
@@ -270,18 +270,6 @@ class CRM_Contact_Form_Search_Custom_Proximity extends CRM_Contact_Form_Search_C
   public function alterRow(&$row) {
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * Validate form input.
    *
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/RandomSegment.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/RandomSegment.php
index b09d151fce..db5110b049 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/RandomSegment.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/RandomSegment.php
@@ -332,18 +332,6 @@ class CRM_Contact_Form_Search_Custom_RandomSegment extends CRM_Contact_Form_Sear
     return 'CRM/Contact/Form/Search/Custom.tpl';
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @return mixed
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Sample.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Sample.php
index 8ea2b519a9..70bc6b8f19 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Sample.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/Sample.php
@@ -206,18 +206,6 @@ LEFT JOIN civicrm_state_province state_province ON state_province.id = address.s
     $row['sort_name'] .= ' ( altered )';
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @param string $tableAlias
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/TagContributions.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/TagContributions.php
index 7b1cd6a65d..a0995d50ad 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/TagContributions.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/TagContributions.php
@@ -236,18 +236,6 @@ WHERE  $where
     return $this->_columns;
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @return null
    */
diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ZipCodeRange.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ZipCodeRange.php
index 98887e8f2e..77dec63eab 100644
--- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ZipCodeRange.php
+++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom/ZipCodeRange.php
@@ -188,18 +188,6 @@ LEFT JOIN civicrm_email   email   ON ( email.contact_id = contact_a.id AND
     return 'CRM/Contact/Form/Search/Custom.tpl';
   }
 
-  /**
-   * @param $title
-   */
-  public function setTitle($title) {
-    if ($title) {
-      CRM_Utils_System::setTitle($title);
-    }
-    else {
-      CRM_Utils_System::setTitle(ts('Search'));
-    }
-  }
-
   /**
    * @param string $tableAlias
    */
diff --git a/civicrm/ext/legacycustomsearches/info.xml b/civicrm/ext/legacycustomsearches/info.xml
index 50de83be30..26317d3d7c 100644
--- a/civicrm/ext/legacycustomsearches/info.xml
+++ b/civicrm/ext/legacycustomsearches/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-07-25</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>stable</develStage>
   <tags>
     <tag>mgmt:hidden</tag>
diff --git a/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/MultipleValuesCriteria.tpl b/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/MultipleValuesCriteria.tpl
index 1fba20c429..3326b6fbfd 100644
--- a/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/MultipleValuesCriteria.tpl
+++ b/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/MultipleValuesCriteria.tpl
@@ -29,7 +29,7 @@
           <div class="clear"></div>
         </div>
 
-        {if $form.contact_type}
+        {if !empty($form.contact_type)}
           <div class="crm-section contact_type-section">
             <div class="label">
               {$form.contact_type.label}
@@ -41,7 +41,7 @@
           </div>
         {/if}
 
-        {if $form.group}
+        {if !empty($form.group)}
         <div class="crm-section group_selection-section">
           <div class="label">
               {$form.group.label}
@@ -53,7 +53,7 @@
         </div>
         {/if}
 
-        {if $form.tag}
+        {if !empty($form.tag)}
             <div class="crm-section tag-section">
               <div class="label">
                 {$form.tag.label}
diff --git a/civicrm/ext/message_admin/CRM/MessageAdmin/Page/MsgtplBasePage.php b/civicrm/ext/message_admin/CRM/MessageAdmin/Page/MsgtplBasePage.php
new file mode 100644
index 0000000000..32a72afe5b
--- /dev/null
+++ b/civicrm/ext/message_admin/CRM/MessageAdmin/Page/MsgtplBasePage.php
@@ -0,0 +1,34 @@
+<?php
+use CRM_MessageAdmin_ExtensionUtil as E;
+
+class CRM_MessageAdmin_Page_MsgtplBasePage extends CRM_Core_Page {
+
+  public function run() {
+    // Did we get an old school URL? Translate to preferred format.
+    $child = CRM_Utils_Request::retrieve('selectedChild', 'String');
+    switch ($child) {
+      case 'user':
+      case 'workflow':
+        $url = CRM_Utils_System::url('civicrm/admin/messageTemplates/', NULL, TRUE, '/' . $child, FALSE);
+        CRM_Utils_System::redirect($url);
+        break;
+    }
+
+    CRM_Utils_System::setTitle(ts('Message Templates'));
+
+    $breadCrumb = [
+      'title' => E::ts('Message Templates'),
+      'url' => CRM_Utils_System::url('civicrm/admin/messageTemplates', NULL, FALSE, '/user'),
+    ];
+    CRM_Utils_System::appendBreadCrumb([$breadCrumb]);
+
+    /** @var \Civi\Angular\AngularLoader $loader */
+    $loader = \Civi::service('angularjs.loader');
+    $loader->addModules(['crmMsgadm']);
+    $loader->useApp(array(
+      'defaultRoute' => '/user',
+    ));
+    parent::run();
+  }
+
+}
diff --git a/civicrm/ext/message_admin/CRM/MessageAdmin/Settings.php b/civicrm/ext/message_admin/CRM/MessageAdmin/Settings.php
new file mode 100644
index 0000000000..68b5780e49
--- /dev/null
+++ b/civicrm/ext/message_admin/CRM/MessageAdmin/Settings.php
@@ -0,0 +1,18 @@
+<?php
+
+class CRM_MessageAdmin_Settings {
+
+  public static function getAll() {
+    $allLangs = \Civi\Api4\OptionValue::get()
+      ->addWhere('option_group_id:name', '=', 'languages')
+      ->addWhere('is_active', '=', TRUE)
+      ->addSelect('name', 'label')
+      ->addOrderBy('label')
+      ->execute();
+    return [
+      'allLanguages' => array_combine($allLangs->column('name'), $allLangs->column('label')),
+      'uiLanguages' => CRM_Core_I18n::uiLanguages(),
+    ];
+  }
+
+}
diff --git a/civicrm/ext/message_admin/LICENSE.txt b/civicrm/ext/message_admin/LICENSE.txt
new file mode 100644
index 0000000000..55e0b3cb41
--- /dev/null
+++ b/civicrm/ext/message_admin/LICENSE.txt
@@ -0,0 +1,667 @@
+Package: message_admin
+Copyright (C) 2021, Tim Otten <totten@civicrm.org>
+Licensed under the GNU Affero Public License 3.0 (below).
+
+-------------------------------------------------------------------------------
+
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+  A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate.  Many developers of free software are heartened and
+encouraged by the resulting cooperation.  However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+  The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community.  It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server.  Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+  An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals.  This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU Affero General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Remote Network Interaction; Use with the GNU General Public License.
+
+  Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software.  This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time.  Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source.  For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code.  There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<http://www.gnu.org/licenses/>.
diff --git a/civicrm/ext/message_admin/README.md b/civicrm/ext/message_admin/README.md
new file mode 100644
index 0000000000..1a7652d84b
--- /dev/null
+++ b/civicrm/ext/message_admin/README.md
@@ -0,0 +1,44 @@
+# message_admin
+
+![Screenshot](/images/screenshot.png)
+
+(*FIXME: In one or two paragraphs, describe what the extension does and why one would download it. *)
+
+The extension is licensed under [AGPL-3.0](LICENSE.txt).
+
+## Requirements
+
+* PHP v7.2+
+* CiviCRM (*FIXME: Version number*)
+
+## Installation (Web UI)
+
+Learn more about installing CiviCRM extensions in the [CiviCRM Sysadmin Guide](https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/).
+
+## Installation (CLI, Zip)
+
+Sysadmins and developers may download the `.zip` file for this extension and
+install it with the command-line tool [cv](https://github.com/civicrm/cv).
+
+```bash
+cd <extension-dir>
+cv dl message_admin@https://github.com/FIXME/message_admin/archive/master.zip
+```
+
+## Installation (CLI, Git)
+
+Sysadmins and developers may clone the [Git](https://en.wikipedia.org/wiki/Git) repo for this extension and
+install it with the command-line tool [cv](https://github.com/civicrm/cv).
+
+```bash
+git clone https://github.com/FIXME/message_admin.git
+cv en message_admin
+```
+
+## Getting Started
+
+(* FIXME: Where would a new user navigate to get started? What changes would they see? *)
+
+## Known Issues
+
+(* FIXME *)
diff --git a/civicrm/ext/message_admin/ang/crmDialog.ang.php b/civicrm/ext/message_admin/ang/crmDialog.ang.php
new file mode 100644
index 0000000000..fec3ee3414
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmDialog.ang.php
@@ -0,0 +1,16 @@
+<?php
+// This file declares an Angular module which can be autoloaded
+// in CiviCRM. See also:
+// \https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_angularModules/n
+return [
+  'js' => [
+    'ang/crmDialog.js',
+  ],
+  'requires' => [
+    //'crmUi',
+    //'crmUtil',
+    'dialogService',
+  ],
+  'settings' => [],
+  'basePages' => [],
+];
diff --git a/civicrm/ext/message_admin/ang/crmDialog.js b/civicrm/ext/message_admin/ang/crmDialog.js
new file mode 100644
index 0000000000..f5a33f97d3
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmDialog.js
@@ -0,0 +1,83 @@
+(function(angular, $, _) {
+  "use strict";
+
+  angular.module('crmDialog', CRM.angRequires('crmDialog'));
+
+  // Ex: <div crm-dialog="myDialogName"> ... <button ng-click="$dialog.cancel()">Cancel</button> ... </div>
+  // Ex: <div crm-dialog="myDialogName"> ... <button ng-click="$dialog.close(outputData)">Close</button> ... </div>
+  // Ex: <div crm-dialog="myDialogName"> ... <crm-dialog-button text="'Close'" on-click="$dialog.close()" /> ... </div>
+  angular.module('crmDialog').directive('crmDialog', function(dialogService) {
+    return {
+      restrict: 'A',
+      controllerAs: '$dialog',
+      controller: function($scope, $parse, $timeout) {
+        var $dialog = this;
+        $dialog.buttons = [];
+
+        $dialog.close = function (result) {
+          dialogService.close($dialog.name, result);
+        };
+
+        $dialog.cancel = function (result) {
+          dialogService.cancel($dialog.name);
+        };
+
+        $dialog.loadButtons = function() {
+          var buttons = [];
+          angular.forEach($dialog.buttons, function (crmDialogButton) {
+            var button = _.pick(crmDialogButton, ['id', 'icons', 'text']);
+            button.click = function () {
+              crmDialogButton.onClick();
+            };
+            buttons.push(button);
+          });
+          dialogService.setButtons($dialog.name, buttons);
+          $dialog.toggleButtons();
+        };
+
+        $dialog.toggleButtons = function() {
+          angular.forEach($dialog.buttons, function (crmDialogButton) {
+            $('#' + crmDialogButton.id).prop('disabled', crmDialogButton.disabled);
+          });
+        };
+
+        $timeout(function(){
+          $dialog.loadButtons();
+          $('.ui-dialog:last input:not([disabled]):not([type="submit"]):first').focus();
+        });
+
+      },
+      link: function(scope, element, attrs, controller) {
+        controller.name = attrs.crmDialog;
+        scope[attrs.crmDialog] = controller;
+      }
+    };
+  });
+
+  var idNum = 1;
+
+  // Ex: <crm-dialog-button text="ts('Do it')" icons="{primary: 'fa-foo'}" on-click="doIt()" />
+  angular.module('crmDialog').component('crmDialogButton', {
+    bindings: {
+      disabled: '<',
+      icons: '<',
+      text: '<',
+      onClick: '&'
+    },
+    require: {
+      crmDialog: '?^^crmDialog'
+    },
+    controller: function($scope, $element, dialogService, $timeout) {
+      var ts = $scope.ts = CRM.ts('crmDialog'), $ctrl = this;
+      $ctrl.$onInit = function() {
+        $ctrl.crmDialog.buttons.push(this);
+      };
+      $ctrl.id = 'crmDialogButton_' + (idNum++);
+
+      $scope.$watch('$ctrl.disabled', function(){
+        $ctrl.crmDialog.toggleButtons();
+      });
+    }
+  });
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmDialog.md b/civicrm/ext/message_admin/ang/crmDialog.md
new file mode 100644
index 0000000000..4cfd54fdb5
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmDialog.md
@@ -0,0 +1,24 @@
+The `crmDialog` is a helper for working with the `dialogService`.  In particular, it allows you to define then
+dialog widgets as part of the markup.
+
+To open a dialog:
+
+```js
+dialogService.open('someDialog', '~/Path/To/Some.html', model, options)
+  .then(function(result){
+    console.log('received output from dialog', result);
+  });
+```
+
+```html
+<!-- FILE: Path/To/Some.html -->
+<div id="bootstrap-theme" crm-dialog="someDialog">
+  <form name="someForm">
+    
+    <input type="text" ng-model="model.foo"/>
+
+    <crm-dialog-button text="ts('Create')" icons="{primary: 'fa-plus'}" on-click="someDialog.close(model)" disabled="!someForm.$valid" />
+    <crm-dialog-button text="ts('Cancel')" icons="{primary: 'fa-times'}" on-click="someDialog.cancel()" />
+  </form>
+</div>
+```
\ No newline at end of file
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm.ang.php b/civicrm/ext/message_admin/ang/crmMsgadm.ang.php
new file mode 100644
index 0000000000..22bcbe64fe
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm.ang.php
@@ -0,0 +1,42 @@
+<?php
+// This file declares an Angular module which can be autoloaded
+// in CiviCRM. See also:
+// \https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_angularModules/n
+return [
+  'js' => [
+    'ang/crmMsgadm.js',
+    'ang/crmMsgadm/*.js',
+    'ang/crmMsgadm/*/*.js',
+  ],
+  'css' => [
+    'ang/crmMsgadm.css',
+  ],
+  'partials' => [
+    'ang/crmMsgadm',
+  ],
+  'bundles' => [
+    'bootstrap3',
+  ],
+  'requires' => [
+    'crmRouteBinder',
+    'crmUi',
+    'crmUtil',
+    'crmDialog',
+    'crmMailing',
+    'crmMonaco',
+    'jsonFormatter',
+    'ngRoute',
+    'ngSanitize',
+    'api4',
+    'ui.bootstrap',
+  ],
+  'settings' => [],
+  'basePages' => [],
+  'permissions' => [
+    'edit message templates',
+    'edit user-driven message templates',
+    'edit system workflow message templates',
+    'access CiviMail',
+  ],
+  'settingsFactory' => ['CRM_MessageAdmin_Settings', 'getAll'],
+];
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm.css b/civicrm/ext/message_admin/ang/crmMsgadm.css
new file mode 100644
index 0000000000..db9eddc58c
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm.css
@@ -0,0 +1,3 @@
+.ui-dialog.crm-msgadm-dialog .ui-dialog-titlebar {
+  display:none;
+}
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm.js b/civicrm/ext/message_admin/ang/crmMsgadm.js
new file mode 100644
index 0000000000..19b5ec35e9
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm.js
@@ -0,0 +1,4 @@
+(function(angular, $, _) {
+  // Declare a list of dependencies.
+  angular.module('crmMsgadm', CRM.angRequires('crmMsgadm'));
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/AddTranslation.html b/civicrm/ext/message_admin/ang/crmMsgadm/AddTranslation.html
new file mode 100644
index 0000000000..2f63a66c5c
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/AddTranslation.html
@@ -0,0 +1,43 @@
+<div id="bootstrap-theme" crm-dialog="addTranslationDlg" ng-controller="MsgtpluiGenericCtrl">
+
+  <form name="addTranslationForm">
+    <div class="form-group">
+      <label>{{:: ts('Message Template')}}</label>
+      <input class="form-control" ng-model="model.msgtpl.msg_title" disabled>
+    </div>
+
+    <label>{{:: ts('Locale')}} <span class="crm-marker">*</span></label>
+
+    <div class="radio" ng-repeat="lang in model.langs | orderBy:['label']">
+      <label ng-if="lang.is_encouraged" ng-class="{disabled: !lang.is_allowed}">
+        <input type="radio" ng-model="model.selected" ng-value="lang.name" name="lang" ng-disabled="!lang.is_allowed"/>
+        {{:: lang.label}}
+        <span ng-if="!lang.is_allowed"><em>({{:: ts('existing')}})</em></span>
+      </label>
+    </div>
+
+    <div class="radio" ng-if="!!model.langs">
+      <label>
+        <input type="radio" ng-model="model.selected" value="other" name="lang" ng-disabled="!model.langs"/>
+
+        <select
+          class="form-control"
+          style="min-width: 200px"
+          crm-ui-select="{dropdownAutoWidth : true, allowClear: true, placeholder: ts('Other')}"
+          name="selectedOther"
+          ng-model="model.selectedOther"
+          ng-change="model.selected='other'">
+          <option value=""></option>
+          <option ng-repeat="item in model.langs | orderBy:'label'" value="{{item.name}}" ng-disabled="!item.is_allowed">{{item.label}}</option>
+        </select>
+
+      </label>
+    </div>
+
+    <span ng-model="placeholder" crm-ui-validate="!(model.selected === 'other' && model.selectedOther === '')"></span>
+
+    <crm-dialog-button text="ts('Add')" icons="{primary: 'fa-plus'}" on-click="addTranslationDlg.close()" disabled="!addTranslationForm.$valid" />
+    <crm-dialog-button text="ts('Cancel')" icons="{primary: 'fa-times'}" on-click="addTranslationDlg.cancel()" />
+  </form>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/Edit.html b/civicrm/ext/message_admin/ang/crmMsgadm/Edit.html
new file mode 100644
index 0000000000..5b3a2dfd27
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/Edit.html
@@ -0,0 +1,97 @@
+<div id="bootstrap-theme">
+
+  <div crm-ui-debug="$ctrl"></div>
+
+  <ng-form name="edit_form">
+
+    <div class="form-group">
+      <label for="msgtpl_title">
+        {{:: ts('Message Title') }} <span class="crm-marker">*</span>
+      </label>
+      <input ng-model="$ctrl.records.main.msg_title" class="form-control" id="msgtpl_title" required title="{{:: ts('Required') }}" ng-disabled="!!$ctrl.records.main.workflow_name" />
+      <p class="help-block">{{:: ts('Descriptive title of the message - used for template selection') }}</p>
+    </div>
+
+    <div class="form-group" ng-if="$ctrl.lang">
+      <label for="msgtpl_language">
+        {{:: ts('Locale') }} <span class="crm-marker">*</span>
+      </label>
+      <input ng-model="$ctrl.locales[$ctrl.lang]" class="form-control" id="msgtpl_language" required title="{{:: ts('Required') }}" ng-disabled="true" />
+      <!-- TODO: Pretty name -->
+    </div>
+
+    <a name="crm-msgadm-tabs"></a>
+    <div class="panel panel-default">
+      <div class="panel-heading" role="navigation">
+        <ul class="nav nav-pills">
+          <li role="presentation" class="navitem" ng-class="{active: $ctrl.tab == 'main'}" ng-if="!$ctrl.lang">
+            <a crm-icon="fa-file-text" class="nav-link" ng-click="$ctrl.tab = 'main'">
+              {{:: ts('Current') }}
+            </a>
+          </li>
+          <li role="presentation" class="navitem" ng-class="{active: $ctrl.tab == 'txActive'}" ng-if="!!$ctrl.lang">
+            <a crm-icon="fa-file-text" class="nav-link" ng-click="$ctrl.tab = 'txActive'">
+              {{:: ts('Current') }}
+            </a>
+          </li>
+          <li role="presentation" class="navitem" ng-class="{active: $ctrl.tab == 'txDraft'}" ng-if="$ctrl.hasDraft()">
+            <a crm-icon="fa-file-text-o" class="nav-link" ng-click="$ctrl.tab = 'txDraft'">
+              {{:: ts('Draft') }}
+            </a>
+          </li>
+          <li role="presentation" class="navitem" ng-class="{active: $ctrl.tab == 'original'}">
+            <a crm-icon="fa-file-text-o" class="nav-link" ng-click="$ctrl.tab = 'original'">
+              {{:: ts('Original') }}
+            </a>
+          </li>
+          <li role="presentation" class="navitem pull-right" ng-show="$ctrl.tab.match('txActive|original') && !$ctrl.hasDraft() && $ctrl.allowDraft()">
+            <a crm-icon="fa-plus" class="nav-link text-success" ng-click="$ctrl.createDraft($ctrl.records[$ctrl.tab])">
+              {{:: ts('Create draft') }}
+            </a>
+          </li>
+          <li role="presentation" class="navitem pull-right" ng-show="$ctrl.tab.match('txActive|original') && $ctrl.hasDraft() && $ctrl.allowDraft()">
+            <a crm-icon="fa-plus" class="nav-link text-warning" crm-confirm="{title: ts('Create draft?'), message: ts('There is already an existing draft. Click &quot;Continue&quot; to overwrite it with a new, clean draft.')}" on-yes="$ctrl.createDraft($ctrl.records[$ctrl.tab])">
+              {{:: ts('Create draft') }}
+            </a>
+          </li>
+          <li role="presentation" class="navitem pull-right" ng-show="$ctrl.tab === 'txDraft'">
+            <a crm-icon="fa-trash" class="nav-link text-danger" crm-confirm="{type: 'delete', obj: {}, title: ts('Abandon draft?'), message: ts('Are you sure you want to abandon this draft?')}" on-yes="$ctrl.deleteDraft()">
+              {{:: ts('Abandon draft') }}
+            </a>
+          </li>
+          <li role="presentation" class="navitem pull-right" ng-show="$ctrl.tab === 'txDraft'">
+            <a crm-icon="fa-rocket" class="nav-link text-success" crm-confirm="{title: ts('Activate draft?'), message: ts('Are you sure you want to activate this draft?')}" on-yes="$ctrl.activateDraft()">
+              {{:: ts('Activate draft') }}
+            </a>
+          </li>
+        </ul>
+      </div>
+      <div class="panel-body" ng-hide="$ctrl.loading">
+        <crm-msgadm-edit-content msgtpl="$ctrl.records[$ctrl.tab]" token-list="$ctrl.tokenList" disabled="$ctrl.tab==='original'"></crm-msgadm-edit-content>
+      </div>
+    </div>
+
+    <div class="btn-group pull-right">
+      <button type="button" class="btn btn-primary" ng-click="$ctrl.save()">
+        <i class="crm-i fa-check"></i>
+        {{:: ts('Save') }}
+      </button>
+      <button type="button" class="btn btn-primary" ng-click="$ctrl.save().then($ctrl.cancel)">
+        <i class="crm-i fa-check-circle"></i>
+        {{:: ts('Save and Done') }}
+      </button>
+      <button type="button" class="btn btn-primary" ng-click="$ctrl.cancel()">
+        <i class="crm-i fa-times"></i>
+        {{:: ts('Cancel') }}
+      </button>
+      <button type="button" class="btn btn-danger" crm-confirm="{type: 'delete', obj: {}, title: ts('Delete translation?'), message: ts('Are you sure want to delete this translation (%1)? This will remove any current and draft versions.', {1: $ctrl.lang})}" on-yes="$ctrl.delete()" ng-if="!!$ctrl.lang">
+        <i class="crm-i fa-trash"></i>
+        {{:: ts('Delete') }}
+      </button>
+    </div>
+
+    <div class="clearfix"></div>
+
+  </ng-form>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/Edit.js b/civicrm/ext/message_admin/ang/crmMsgadm/Edit.js
new file mode 100644
index 0000000000..d6f955271d
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/Edit.js
@@ -0,0 +1,319 @@
+(function(angular, $, _) {
+
+  var TRANSLATED = ['msg_subject', 'msg_html', 'msg_text'];
+
+  /**
+   * Create an APIv4 request to replace a series of translations.
+   *
+   * @param id
+   *   The ID of the translated entity.
+   * @param lang
+   *   The language of the translation ('fr_CA', 'en_GB').
+   * @param status
+   *   The status of the translation ('active', 'draft').
+   * @param values
+   *   Key-value pairs. ({msg_title: 'Cheerio'})
+   * @returns []
+   *   An API call which replaces the translations ([entity,action,params]).
+   */
+  function reqReplaceTranslations(id, lang, status, values) {
+    if (!values._exists) {
+      return reqDeleteTranslations(id, lang, status);
+    }
+    var records = [];
+    angular.forEach(TRANSLATED, function(key) {
+      records.push({"entity_field":key, "string":values[key]});
+    });
+    return ['Translation', 'replace', {
+      records: records,
+      where: [
+        ["entity_table", "=", "civicrm_msg_template"],
+        ["entity_id", "=", id],
+        ["language", "=", lang],
+        ["status_id:name", "=", status]
+      ]
+    }];
+  }
+
+  function reqDeleteTranslations(id, lang, status) {
+    return ['Translation', 'delete', {
+      where: [
+        ["entity_table", "=", "civicrm_msg_template"],
+        ["entity_id", "=", id],
+        ["language", "=", lang],
+        ["status_id:name", "=", status]
+      ]
+    }];
+  }
+
+  /**
+   * Create an APIv4 request to read a series of translations.
+   *
+   * @param lang
+   *   The language of the translation ('fr_CA', 'en_GB').
+   * @param status
+   *   The status of the translation ('active', 'draft').
+   * @returns []
+   *   An API call which replaces the translations ([entity,action,params]).
+   */
+  function reqChainTranslations(lang, status) {
+    return ["Translation", "get", {
+      "select": ['id', 'entity_field', 'string'],
+      "where": [
+        ['entity_table', '=', 'civicrm_msg_template'],
+        ['entity_id', '=', '$id'],
+        ['language', '=', lang],
+        ['status_id:name', '=', status]
+      ]
+    }];
+  }
+
+  function respMergeTranslations(prefetch) {
+    angular.forEach(prefetch, function(results, queryName) {
+      var forceExists = (queryName === 'txActive');
+      angular.forEach(results, function(result) {
+        if (result.translations) {
+          angular.forEach(result.translations, function(tx) {
+            result[tx.entity_field] = tx.string;
+          });
+          result._exists = forceExists || (result.translations.length > 0);
+        }
+      });
+    });
+    return prefetch;
+  }
+
+  function pickFirsts(prefetch) {
+    return _.reduce(prefetch, function(all, record, key){
+      all[key] = record[0] || undefined;
+      return all;
+    }, {});
+  }
+
+  function copyTranslations(src, dest) {
+    dest._exists = false; // Starting assumption - prove otherwise in a moment.
+    TRANSLATED.forEach(function(fld) {
+      if (src[fld] !== undefined) {
+        dest._exists = true;
+        dest[fld] = src[fld];
+      }
+      else {
+        delete dest[fld];
+      }
+    });
+  }
+
+  angular.module('crmMsgadm').config(function($routeProvider) {
+      $routeProvider.when('/edit', {
+        controller: 'MsgtpluiEdit',
+        controllerAs: '$ctrl',
+        templateUrl: '~/crmMsgadm/Edit.html',
+
+        // If you need to look up data when opening the page, list it out
+        // under "resolve".
+        resolve: {
+          prefetch: function(crmApi4, crmStatus, $location) {
+            var args = $location.search();
+            var requests = {};
+
+            requests.main = ['MessageTemplate', 'get', {
+              where: [['id', '=', args.id]],
+            }];
+
+            requests.original = ['MessageTemplate', 'get', {
+              join: [["MessageTemplate AS other", "INNER", null, ["workflow_name", "=", "other.workflow_name"]]],
+              where: [["other.id", "=", args.id], ["is_reserved", "=", true]],
+              limit: 25
+            }];
+
+            if (args.lang) {
+              requests.txActive = ['MessageTemplate', 'get', {
+                select: TRANSLATED,
+                where: [['id', '=', args.id]],
+                chain: {translations: reqChainTranslations(args.lang, 'active')}
+              }];
+
+              requests.txDraft = ['MessageTemplate', 'get', {
+                select: TRANSLATED,
+                where: [['id', '=', args.id]],
+                chain: {translations: reqChainTranslations(args.lang, 'draft')}
+              }];
+            }
+
+            return crmStatus({start: ts('Loading...'), success: ''}, crmApi4(requests).then(respMergeTranslations).then(pickFirsts));
+          },
+          tokenList: function () {
+            return CRM.crmMailing.mailTokens;
+          }
+        }
+      });
+    }
+  );
+
+  angular.module('crmMsgadm').controller('MsgtpluiEdit', function($q, $scope, crmApi4, crmBlocker, crmStatus, crmUiAlert, crmUiHelp, $location, prefetch, tokenList, $rootScope, dialogService) {
+    var block = $scope.block = crmBlocker();
+    var ts = $scope.ts = CRM.ts('crmMsgadm');
+    var hs = $scope.hs = crmUiHelp({file: 'CRM/MessageAdmin/Edit'}); // See: templates/CRM/MessageAdmin/Edit.hlp
+    var $ctrl = this;
+    var args = $location.search();
+
+    $ctrl.locales = CRM.crmMsgadm.allLanguages;
+    $ctrl.records = prefetch;
+    $ctrl.tokenList = tokenList;
+    if (args.lang) {
+      $ctrl.lang = args.lang;
+      $ctrl.tab = (args.status === 'draft' && $ctrl.records.txDraft && $ctrl.records.txDraft._exists) ? 'txDraft' : 'txActive';
+    }
+    else {
+      $ctrl.lang = null;
+      $ctrl.tab = 'main';
+    }
+
+    var revisionTypes = [
+      {name: 'original', label: ts('Original')},
+      {name: 'main', label: ts('Standard')},
+      {name: 'txActive', label: ts('%1 - Current translation', {1: $ctrl.locales[$ctrl.lang] || $ctrl.lang})},
+      {name: 'txDraft', label: ts('%1 - Draft translation', {1: $ctrl.locales[$ctrl.lang] || $ctrl.lang})}
+    ];
+
+    function doSave() {
+      var requests = {};
+      if ($ctrl.lang) {
+        requests.txActive = reqReplaceTranslations($ctrl.records.main.id, $ctrl.lang, 'active', $ctrl.records.txActive);
+        requests.txDraft = reqReplaceTranslations($ctrl.records.main.id, $ctrl.lang, 'draft', $ctrl.records.txDraft);
+      }
+      else {
+        requests.main = ['MessageTemplate', 'update', {
+          where: [['id', '=', $ctrl.records.main.id]],
+          values: $ctrl.records.main
+        }];
+      }
+      return crmApi4(requests);
+    }
+
+    $ctrl.switchTab = function switchTab(tgt) {
+      $ctrl.tab = tgt;
+      // Experimenting with action buttons in the tab-bar. This makes the scroll unnecessary.
+      // $('html, body').animate({scrollTop: $("a[name=crm-msgadm-tabs]").offset().top - $('#civicrm-menu').height()}, 200);
+    };
+    $ctrl.allowDraft = function allowDraft() {
+      return !!$ctrl.lang;
+    };
+    $ctrl.hasDraft = function hasDraft() {
+      return $ctrl.allowDraft() && $ctrl.records.txDraft && $ctrl.records.txDraft._exists;
+    };
+    $ctrl.hasRevType = function hasRevType(name) {
+      switch (name) {
+        case 'txDraft': return $ctrl.hasDraft();
+        case 'txActive': return !!$ctrl.lang;
+        case 'original': return !!$ctrl.records.original;
+        case 'main': return !$ctrl.lang; // !!$ctrl.records.main;
+      }
+    };
+    $ctrl.createDraft = function createDraft(src) {
+      copyTranslations(src, $ctrl.records.txDraft);
+      $ctrl.switchTab('txDraft');
+      crmStatus({start: ts('Saving...'), success: ts('Created draft.')}, doSave());
+    };
+    $ctrl.deleteDraft = function deleteDraft() {
+      copyTranslations({}, $ctrl.records.txDraft);
+      $ctrl.switchTab('txActive');
+      crmStatus({start: ts('Saving...'), success: ts('Abandoned draft.')}, doSave());
+    };
+    $ctrl.activateDraft = function activateDraft() {
+      copyTranslations($ctrl.records.txDraft, $ctrl.records.txActive);
+      copyTranslations({}, $ctrl.records.txDraft);
+      $ctrl.switchTab('txActive');
+      crmStatus({start: ts('Saving...'), success: ts('Activated draft.')}, doSave());
+    };
+    $ctrl.save = function save() {
+      return block(crmStatus({start: ts('Saving...'), success: ts('Saved')}, doSave()));
+    };
+    $ctrl.cancel = function() {
+      window.location = '#/workflow';
+    };
+    $ctrl.delete = function() {
+      var requests = {};
+      if ($ctrl.lang) {
+        requests.txActive = reqDeleteTranslations($ctrl.records.main.id, $ctrl.lang, 'active');
+        requests.txDraft = reqDeleteTranslations($ctrl.records.main.id, $ctrl.lang, 'draft');
+      }
+      else {
+        requests.main = ['MessageTemplate', 'delete', {where: [['id', '=', $ctrl.records.main.id]]}];
+      }
+      return block(crmStatus({start: ts('Deleting...'), success: ts('Deleted')}, crmApi4(requests)))
+        .then($ctrl.cancel);
+    };
+
+    // Ex: $rootScope.$emit('previewMsgTpl', {revisionName: 'txDraft', formatName: 'msg_text'})
+    function onPreview(event, args) {
+      var defaults = {
+        formatName: 'msg_html',
+        formats: [
+          {id: 0, name: 'msg_html', label: ts('HTML')},
+          {id: 1, name: 'msg_text', label: ts('Text')}
+        ],
+        revisionName: $ctrl.tab,
+        revisions: _.reduce(revisionTypes, function(acc, revType){
+          if ($ctrl.hasRevType(revType.name)) {
+            acc.push(angular.extend({id: acc.length, rec: $ctrl.records[revType.name]}, revType));
+          }
+          return acc;
+        }, []),
+        filterData: function(data) {
+          data.modelProps.locale = $ctrl.lang;
+          return data;
+        },
+        title: $ctrl.lang ? ts('Preview - %1', {1: $ctrl.locales[$ctrl.lang] || $ctrl.lang}) : ts('Preview')
+      };
+
+      crmApi4({
+        examples: ['ExampleData', 'get', {
+          // FIXME: workflow name
+          where: [["tags", "CONTAINS", "preview"], ["name", "LIKE", "workflow/" + $ctrl.records.main.workflow_name + "/%"]],
+          select: ['name', 'title', 'data']
+        }],
+        adhoc: ['WorkflowMessage', 'getTemplateFields', {
+          workflow: $ctrl.records.main.workflow_name,
+          format: 'example'
+        }]
+      }).then(function(resp) {
+        console.log('resp',resp);
+        if ((!resp.examples || resp.examples.length === 0) && resp.adhoc) {
+          // In the future, if Preview dialog allows editing adhoc examples, then we can show the dialog. But for now, it won't work without explicit examples.
+          crmUiAlert({
+            title: ts('Preview unavailable'),
+            text: ts('Generating a preview for this message requires example data. Please talk to a developer about adding example data for "%1".', {1: $ctrl.records.main.workflow_name}),
+            type: 'error'
+          });
+          return;
+        }
+        defaults.exampleName = resp.examples.length > 0  ? (resp.examples)[0].name : null;
+        var i = 0;
+        angular.forEach(resp.examples, function(ex) {
+          ex.id = i++;
+        });
+        defaults.examples = resp.examples;
+
+        var model = angular.extend({}, defaults, args);
+        var options = CRM.utils.adjustDialogDefaults({
+          dialogClass: 'crm-msgadm-dialog',
+          autoOpen: false,
+          height: '90%',
+          width: '90%'
+        });
+        return dialogService.open('previewMsgDlg', '~/crmMsgadm/Preview.html', model, options)
+          // Nothing to do but hide warnings. The field was edited live.
+          .then(function(){}, function(){});
+      }, function(failure) {
+        // handle failure
+      });
+
+    }
+    var unreg = $rootScope.$on('previewMsgTpl', onPreview);
+    $scope.$on('$destroy', function (){
+      unreg();
+    });
+  });
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/EditContent.html b/civicrm/ext/message_admin/ang/crmMsgadm/EditContent.html
new file mode 100644
index 0000000000..ae08fe0cc6
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/EditContent.html
@@ -0,0 +1,96 @@
+<div crm-ui-debug="options"></div>
+
+<ng-form name="contentForm" crm-ui-id-scope ng-init="accordions={msg_subject: true, msg_html: true, msg_text: false}">
+
+  <div class="panel panel-default">
+    <div class="panel-heading">
+      <a href ng-click="accordions.msg_subject = !accordions.msg_subject">
+        <i class="crm-i fa-caret-{{ accordions.msg_subject ? 'down' : 'right' }}"></i>
+        {{:: ts('Subject') }}
+      </a>
+      <input class="form-control pull-right crm-action-menu fa-code"
+             tabindex="-1"
+             style="z-index:1"
+             crm-ui-select="{placeholder: ts('Token'), data: $ctrl.tokenList, width: '12em', dropdownAutoWidth: true}"
+             on-crm-ui-select="$broadcast('insert:msg_subject', selection)"
+             ng-show="accordions.msg_subject && !$ctrl.isDisabled()"
+      />
+      <div class="clearfix"></div>
+    </div>
+    <div class="panel-body" uib-collapse="!accordions.msg_subject">
+      <div ng-model="$ctrl.msgtpl.msg_subject"
+           crm-monaco="$ctrl.monacoOptions({language: 'smarty', crmHeightPct: 0.15})"
+           crm-monaco-insert-rx="insert:msg_subject"
+           ng-disabled="$ctrl.isDisabled()"
+      ></div>
+      <p class="help-block">{{::ts('The email subject is a single line. However, template codes may use multiple lines.')}}</p>
+    </div>
+  </div>
+
+  <div class="panel panel-default">
+    <div class="panel-heading">
+      <a href ng-click="accordions.msg_html = !accordions.msg_html">
+        <i class="crm-i fa-caret-{{ accordions.msg_html ? 'down' : 'right' }}"></i>
+        {{:: ts('HTML Content') }}
+      </a>
+      <div class="btn-group btn-group-xs pull-right" role="toolbar" aria-label="{{::ts('HTML Content: Toolbar')}}" ng-show="accordions.msg_html">
+        <button type="button" class="btn btn-secondary" title="{{::ts('Open large editor')}}" ng-click="$ctrl.openFull(ts('HTML Content'), 'msg_html', {language: 'html'})">
+          <i class="crm-i fa-expand"></i>
+        </button>
+        <button type="button" class="btn btn-secondary" title="{{::ts('Open preview')}}" ng-click="$ctrl.openPreview({formatName: 'msg_html'})">
+          <i class="crm-i fa-eye"></i>
+        </button>
+      </div>
+      <input class="form-control pull-right crm-action-menu fa-code"
+             tabindex="-1"
+             style="z-index:1"
+             crm-ui-select="{placeholder: ts('Token'), data: $ctrl.tokenList, width: '12em', dropdownAutoWidth: true}"
+             on-crm-ui-select="$broadcast('insert:msg_html', selection)"
+             ng-show="accordions.msg_html && !$ctrl.isDisabled()"
+      />
+      <div class="clearfix"></div>
+    </div>
+    <div class="panel-body" uib-collapse="!accordions.msg_html">
+      <div ng-model="$ctrl.msgtpl.msg_html"
+           crm-monaco="$ctrl.monacoOptions({language: 'html', crmHeightPct: 0.5})"
+           crm-monaco-insert-rx="insert:msg_html"
+           ng-disabled="$ctrl.isDisabled()"
+      ></div>
+    </div>
+  </div>
+
+  <div class="panel panel-default">
+    <div class="panel-heading">
+      <a href ng-click="accordions.msg_text = !accordions.msg_text">
+        <i class="crm-i fa-caret-{{ accordions.msg_text ? 'down' : 'right' }}"></i>
+        {{:: ts('Text Content') }}
+      </a>
+      <div class="btn-group btn-group-xs pull-right" role="toolbar" aria-label="{{::ts('Text Content: Toolbar')}}" ng-show="accordions.msg_text">
+        <button type="button" class="btn btn-secondary" title="{{ ::ts('Open large editor') }}" ng-click="$ctrl.openFull(ts('Text Content'), 'msg_text', {language: 'smarty'})">
+          <i class="crm-i fa-expand"></i>
+        </button>
+        <button type="button" class="btn btn-secondary" title="{{ ::ts('Open preview') }}" ng-click="$ctrl.openPreview({formatName: 'msg_text'})">
+          <i class="crm-i fa-eye"></i>
+        </button>
+      </div>
+      &nbsp;
+      <input class="form-control pull-right crm-action-menu fa-code"
+             tabindex="-1"
+             style="z-index:1"
+             crm-ui-select="{placeholder: ts('Token'), data: $ctrl.tokenList, width: '12em', dropdownAutoWidth: true}"
+             on-crm-ui-select="$broadcast('insert:msg_text', selection)"
+             ng-show="accordions.msg_text && !$ctrl.isDisabled()"
+      />
+      <div class="clearfix"></div>
+    </div>
+    <div class="panel-body" uib-collapse="!accordions.msg_text">
+      <div ng-model="$ctrl.msgtpl.msg_text"
+           crm-monaco="$ctrl.monacoOptions({language: 'smarty', crmHeightPct: 0.5})"
+           crm-monaco-insert-rx="insert:msg_text"
+           ng-disabled="$ctrl.isDisabled()"
+      ></div>
+    </div>
+  </div>
+
+
+</ng-form>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/EditContent.js b/civicrm/ext/message_admin/ang/crmMsgadm/EditContent.js
new file mode 100644
index 0000000000..3c429a321e
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/EditContent.js
@@ -0,0 +1,56 @@
+(function (angular, $, _) {
+  angular.module('crmMsgadm').component('crmMsgadmEditContent', {
+    bindings: {
+      onPreview: '&',
+      tokenList: '<',
+      disabled: '<',
+      msgtpl: '='
+    },
+    templateUrl: '~/crmMsgadm/EditContent.html',
+    controller: function ($scope, $element, crmStatus, crmUiAlert, dialogService, $rootScope) {
+      var ts = $scope.ts = CRM.ts('crmMsgadm');
+      var $ctrl = this;
+
+      $ctrl.isDisabled = function() {
+        return $ctrl.disabled;
+      };
+
+      $ctrl.monacoOptions = function (opts) {
+        return angular.extend({}, {
+          wordWrap: 'wordWrapColumn',
+          wordWrapColumn: 100,
+          wordWrapMinified: false,
+          wrappingIndent: 'indent'
+        }, opts);
+      };
+
+      $ctrl.openFull = function(title, fld, monacoOptions) {
+        var model = {
+          title: title,
+          monacoOptions: $ctrl.monacoOptions(angular.extend({crmHeightPct: 0.80}, monacoOptions)),
+          openPreview: function(options) {
+            return $ctrl.openPreview(options);
+          },
+          record: $ctrl.msgtpl,
+          field: fld,
+          tokenList: $ctrl.tokenList
+        };
+        var options = CRM.utils.adjustDialogDefaults({
+          // show: {effect: 'slideDown'},
+          dialogClass: 'crm-msgadm-dialog',
+          autoOpen: false,
+          height: '90%',
+          width: '90%'
+        });
+        return dialogService.open('expandedEditDlg', '~/crmMsgadm/ExpandedEdit.html', model, options)
+          // Nothing to do but hide warnings. The field was edited live.
+          .then(function(){}, function(){});
+      };
+
+      $ctrl.openPreview = function(options) {
+        $rootScope.$emit('previewMsgTpl', options);
+      };
+
+    }
+  });
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/ExpandedEdit.html b/civicrm/ext/message_admin/ang/crmMsgadm/ExpandedEdit.html
new file mode 100644
index 0000000000..2202a305f5
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/ExpandedEdit.html
@@ -0,0 +1,42 @@
+<div id="bootstrap-theme" crm-dialog="expandedEditDlg" ng-controller="MsgtpluiGenericCtrl">
+
+  <form name="expandedEditForm">
+
+    <nav class="navbar navbar-default">
+      <div class="container-fluid">
+        <div class="navbar-header">
+          <div class="navbar-brand">
+            {{::model.title}}
+          </div>
+        </div>
+        <div class="navbar-form navbar-right">
+          <div class="form-group">
+            <button type="button" class="btn btn-default" ng-click="model.openPreview({formatName: model.field})">
+              <i class="crm-i fa-eye"></i>
+              {{ ::ts('Preview') }}
+            </button>
+
+            <input class="form-control crm-action-menu fa-code"
+                   tabindex="-1"
+                   style="z-index:1"
+                   crm-ui-select="{placeholder: ts('Token'), data: model.tokenList, width: '12em', dropdownAutoWidth: true}"
+                   on-crm-ui-select="$broadcast('insert:expanded', selection)"
+            />
+
+            <button type="button" class="btn btn-default" ng-click="expandedEditDlg.close()">
+              <i class="crm-i fa-times"></i>
+              {{ ::ts('Close') }}
+            </button>
+
+          </div>
+        </div>
+      </div>
+    </nav>
+
+    <div ng-model="model.record[model.field]"
+         crm-monaco="model.monacoOptions"
+         crm-monaco-insert-rx="insert:expanded"
+    ></div>
+  </form>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/GenericCtrl.js b/civicrm/ext/message_admin/ang/crmMsgadm/GenericCtrl.js
new file mode 100644
index 0000000000..f68e763cd3
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/GenericCtrl.js
@@ -0,0 +1,8 @@
+(function(angular, $, _) {
+
+  angular.module('crmMsgadm').controller('MsgtpluiGenericCtrl', function($scope, crmUiHelp) {
+    var ts = $scope.ts = CRM.ts('crmMsgadm');
+    var hs = $scope.hs = crmUiHelp({file: 'CRM/MessageAdmin/crmMsgadm'}); // See: templates/CRM/MessageAdmin/crmMsgadm.hlp
+  });
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/InspectExample.html b/civicrm/ext/message_admin/ang/crmMsgadm/InspectExample.html
new file mode 100644
index 0000000000..c7a8a3fe56
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/InspectExample.html
@@ -0,0 +1,24 @@
+<div id="bootstrap-theme" crm-dialog="inspectExampleDlg">
+
+  <nav class="navbar navbar-default">
+    <div class="container-fluid">
+      <div class="navbar-header">
+        <div class="navbar-brand">
+          {{::model.title}}
+        </div>
+      </div>
+      <div class="navbar-form navbar-right">
+        <div class="form-group">
+          <button crm-icon="fa-refresh" type="button" class="btn btn-default" ng-click="model.refresh()"></button>
+          <button crm-icon="fa-times" type="button" class="btn btn-default" ng-click="inspectExampleDlg.close()">
+            {{::ts('Close')}}
+          </button>
+        </div>
+      </div>
+    </div>
+  </nav>
+
+
+  <json-formatter json="model.data" open="1"></json-formatter>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/ListCtrl.js b/civicrm/ext/message_admin/ang/crmMsgadm/ListCtrl.js
new file mode 100644
index 0000000000..f2c77dfd42
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/ListCtrl.js
@@ -0,0 +1,130 @@
+(function(angular, $, _) {
+
+  /**
+   * Convert keys with literal dots to Javascript subtrees.
+   *
+   * @param rec
+   *   Ex: {'foo.bar.whiz:bang': 123}
+   * @returns {{}}
+   *   Ex: {foo_bar_whiz_bang: 123}
+   */
+  function simpleKeys(rec) {
+    var newRec = {};
+    angular.forEach(rec, function(value, key) {
+      newRec[key.replaceAll('.','_').replaceAll(':', '_')] = value;
+    });
+    return newRec;
+  }
+
+  angular.module('crmMsgadm').controller('MsgtpluiListCtrl', function($scope, $route, crmApi4, crmStatus, crmUiAlert, crmUiHelp, prefetch, $location, dialogService) {
+    var ts = $scope.ts = CRM.ts('crmMsgadm');
+    var hs = $scope.hs = crmUiHelp({file: 'CRM/MessageAdmin/User'}); // See: templates/CRM/MessageAdmin/User.hlp
+    $scope.crmUrl = CRM.url;
+    $scope.crmUiAlert = crmUiAlert;
+    $scope.location = $location;
+    $scope.checkPerm = CRM.checkPerm;
+    $scope.help = CRM.help;
+
+    $scope.$bindToRoute({
+      param: 'f',
+      expr: 'filters',
+      default: {text: ''}
+    });
+
+    var $ctrl = this;
+    $ctrl.records = _.map(
+      [].concat(prefetch.records, _.map(prefetch.translations || [], simpleKeys)),
+      function(r) {
+        r._is_translation = (r.tx_language !== undefined);
+        return r;
+      }
+    );
+
+    function findTranslations(record) {
+      return _.reduce($ctrl.records, function(existing, rec){
+        if (rec._is_translation && record.id === rec.id) {
+          existing[rec.tx_language] = record;
+        }
+        return existing;
+      }, {});
+    }
+
+    function findActiveLangs() {
+      return _.reduce($ctrl.records, function(langs, rec){
+        if (rec._is_translation) {
+          langs[rec.tx_language] = true;
+        }
+        return langs;
+      }, {});
+    }
+
+    /**
+     *
+     * @param record
+     * @param variant - One of null 'legacy', 'current', 'draft'. (If null, then 'current'.)
+     * @returns {string}
+     */
+    $ctrl.editUrl = function(record, variant) {
+      if (variant === 'legacy') {
+        return CRM.url('civicrm/admin/messageTemplates/add', {action: 'update', id: record.id, reset: 1});
+      }
+      var url = '#/edit?id=' + encodeURIComponent(record.id);
+      if (record.tx_language) {
+        url = url + '&lang=' + encodeURIComponent(record.tx_language);
+      }
+      if (variant === 'draft') {
+        url = url + '&status=draft';
+      }
+      return url;
+    };
+
+    $ctrl.addTranslation = function(record) {
+      var existing = findTranslations(record), activeLangs = findActiveLangs();
+      var langs = [];
+      angular.forEach(CRM.crmMsgadm.allLanguages, function (label, value) {
+        langs.push({
+          name: value,
+          label: label,
+          is_allowed: !existing[value],
+          is_encouraged: !!(activeLangs[value] || CRM.crmMsgadm.uiLanguages[value])
+        });
+      });
+      var model = {
+        msgtpl: record,
+        selected: (_.head(_.filter(langs, {is_allowed: true, is_encouraged: true}))||{}).name,
+        selectedOther: '',
+        langs: langs
+      };
+      var options = CRM.utils.adjustDialogDefaults({
+        autoOpen: false,
+        height: '50%',
+        width: '50%',
+        title: ts('Add Translation')
+      });
+      return dialogService.open('addTranslationDlg', '~/crmMsgadm/AddTranslation.html', model, options)
+        .then(function(){
+          var selection = (model.selected === 'other') ? model.selectedOther : model.selected;
+          window.location = $ctrl.editUrl({id: record.id, tx_language: selection});
+        });
+    };
+
+    $ctrl.delete = function (record) {
+      var q = crmApi4('MessageTemplate', 'delete', {where: [['id', '=', record.id]]}).then(function(){
+        $route.reload();
+      });
+      return crmStatus({start: ts('Deleting...'), success: ts('Deleted')}, q);
+    };
+
+    $ctrl.toggle = function (record) {
+      var wasActive = !!record.is_active;
+      var q = crmApi4('MessageTemplate', 'update', {where: [['id', '=', record.id]], values: {is_active: !wasActive}})
+        .then(function(resp){
+          record.is_active = !wasActive;
+        });
+      return wasActive ? crmStatus({start: ts('Disabling...'), success: ts('Disabled')}, q)
+        : crmStatus({start: ts('Enabling...'), success: ts('Enabled')}, q);
+    };
+
+  });
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/ListNav.html b/civicrm/ext/message_admin/ang/crmMsgadm/ListNav.html
new file mode 100644
index 0000000000..b7f50332af
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/ListNav.html
@@ -0,0 +1,28 @@
+<nav class="bg-info">
+  <ul class="nav nav-tabs">
+    <li role="presentation"
+        ng-class="{active: location.path() === '/user'}"
+        ng-if="checkPerm('edit message templates') || checkPerm('edit user-driven message templates')">
+      <a ng-href="#/user">{{:: ts('User-Driven Messages') }}</a>
+    </li>
+    <li role="presentation"
+        ng-class="{active: location.path() === '/workflow'}"
+        ng-if="checkPerm('edit message templates') || checkPerm('edit system workflow message templates')">
+      <a ng-href="#/workflow">{{:: ts('System Workflow Messages' )}}</a>
+    </li>
+  </ul>
+</nav>
+
+<div class="help">
+
+  <div ng-if="location.path() === '/user'">
+    <span ng-bind-html="ts('Message templates allow you to easily create similar emails or letters on a recurring basis. Messages used for membership renewal reminders, as well as event and activity related reminders should be created via <a href=\'%1\'>Schedule Reminders</a>.', {1: crmUrl('civicrm/admin/scheduleReminders', 'reset=1')})"></span>
+    <span ng-if="checkPerm('access CiviMail')" ng-bind-html="ts('You can also use message templates for CiviMail (bulk email) content. However, subscribe, unsubscribe and opt-out messages are configured at <a href=\'%1\'>Administer > CiviMail > Headers, Footers and Automated Messages</a>.', {1: crmUrl('civicrm/admin/component', 'reset=1')})"></span>
+    <a crm-ui-help="hs({title:ts('User-Driven Messages'), id:'id-intro', file:'CRM/Admin/Page/MessageTemplates'})"></a>
+  </div>
+  <div ng-if="location.path() === '/workflow'">
+    {{ts('System workflow message templates are used to generate the emails sent to constituents and administrators for contribution receipts, event confirmations and many other workflows. You can customize the style and wording of these messages here.')}}
+    <a crm-ui-help="hs({title:ts('System Workflow Messages'), id:'id-system-workflow', file:'CRM/Admin/Page/MessageTemplates'})"></a>
+  </div>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/Preview.html b/civicrm/ext/message_admin/ang/crmMsgadm/Preview.html
new file mode 100644
index 0000000000..1c15b01242
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/Preview.html
@@ -0,0 +1,99 @@
+<div id="bootstrap-theme" crm-dialog="previewMsgDlg" ng-controller="MsgtpluiPreviewCtrl as $ctrl">
+
+  <div crm-ui-debug="$ctrl"></div>
+
+  <form name="previewMsgForm">
+
+    <nav class="navbar navbar-default">
+      <div class="container-fluid">
+        <div class="navbar-header">
+          <div class="navbar-brand">
+            {{::model.title}}
+          </div>
+        </div>
+        <div class="navbar-form navbar-right">
+          <div class="form-group">
+            <button crm-icon="fa-times" type="button" class="btn btn-default" ng-click="previewMsgDlg.close()">
+              {{::ts('Close')}}
+            </button>
+          </div>
+        </div>
+      </div>
+    </nav>
+
+    <div class="well-sm">
+      <div class="form-horizontal">
+        <div class="form-group">
+          <label class="control-label col-sm-2">{{::ts('Revision')}}</label>
+          <div class="input-group col-sm-9">
+            <select class="form-control" ng-options="item.id as item.label for item in model.revisions" ng-model="$ctrl.revisionId"></select>
+            <div class="input-group-btn">
+              <button class="btn btn-default" ng-disabled="model.revisions.length <= 1" ng-click="$ctrl.cycle('revisionId', 'revisions', -1)" title="{{::ts('Previous revision')}}">&#xab;</button>
+              <button class="btn btn-default" ng-disabled="model.revisions.length <= 1" ng-click="$ctrl.cycle('revisionId', 'revisions', +1)" title="{{::ts('Next revision')}}">&#xbb;</button>
+            </div>
+          </div>
+        </div>
+
+        <div class="form-group">
+          <label class="control-label col-sm-2">{{::ts('Example')}}</label>
+          <div class="input-group col-sm-9">
+            <select class="form-control" ng-options="item.id as item.title for item in model.examples" ng-model="$ctrl.exampleId"></select>
+            <div class="input-group-btn">
+              <!-- <button class="btn btn-default" ng-click="$ctrl.toggleAdhoc()" crm-icon="fa-pencil"></button> -->
+              <button class="btn btn-default" ng-disabled="model.examples.length <= 1" ng-click="$ctrl.inspectExample()" title="{{::ts('Inspect example data')}}"><i class="crm-i fa-file-code-o"></i></button>
+              <button class="btn btn-default" ng-disabled="model.examples.length <= 1" ng-click="$ctrl.cycle('exampleId', 'examples', -1)" title="{{::ts('Previous example')}}">&#xab;</button>
+              <button class="btn btn-default" ng-disabled="model.examples.length <= 1" ng-click="$ctrl.cycle('exampleId', 'examples', +1)" title="{{::ts('Next example')}}">&#xbb;</button>
+            </div>
+          </div>
+        </div>
+
+        <!--
+        <div class="form-group" ng-if="$ctrl.isAdhocExample">
+          <label class="control-label col-sm-2"></label>
+          <div class="input-group col-sm-9">
+            <p><em>{{ts('Changes to this example are temporary.')}}</em></p>
+            <div ng-model="$ctrl.adhocExampleJson"
+                 crm-monaco="$ctrl.monacoOptions({language: 'javascript', crmHeightPct: 0.15})"
+            ></div>
+          </div>
+        </div>
+        -->
+
+        <div class="form-group">
+          <label class="control-label col-sm-2">{{::ts('Format')}}</label>
+          <div class="input-group col-sm-9">
+            <select class="form-control" ng-options="item.id as item.label for item in model.formats" ng-model="$ctrl.formatId"></select>
+            <div class="input-group-btn">
+              <button class="btn btn-default" ng-disabled="model.formats.length <= 1" ng-click="$ctrl.cycle('formatId', 'formats', -1)" title="{{::ts('Previous format')}}">&#xab;</button>
+              <button class="btn btn-default" ng-disabled="model.formats.length <= 1" ng-click="$ctrl.cycle('formatId', 'formats', +1)" title="{{::ts('Next format')}}">&#xbb;</button>
+            </div>
+          </div>
+        </div>
+
+        <hr/>
+
+        <div class="form-group text-center" ng-if="!!$ctrl.preview.loading">
+          {{::ts('Loading...')}}
+        </div>
+
+        <div class="form-group" ng-if="!$ctrl.preview.loading">
+          <label class="control-label col-sm-2">{{::ts('Subject')}}</label>
+          <p class="col-sm-9">{{$ctrl.preview.subject}}</p>
+        </div>
+
+        <div class="form-group" ng-if="!$ctrl.preview.loading && model.formats[$ctrl.formatId].name === 'msg_text'">
+          <pre class="col-sm-12">{{$ctrl.preview.text}}</pre>
+        </div>
+
+        <div class="form-group" ng-if="!$ctrl.preview.loading && model.formats[$ctrl.formatId].name === 'msg_html'">
+          <div class="jumbotron well col-sm-12">
+            <iframe crm-ui-iframe="$ctrl.preview.html"></iframe>
+          </div>
+        </div>
+
+      </div>
+
+    </div>
+  </form>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/Preview.js b/civicrm/ext/message_admin/ang/crmMsgadm/Preview.js
new file mode 100644
index 0000000000..82b994c27d
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/Preview.js
@@ -0,0 +1,108 @@
+(function(angular, $, _) {
+
+  angular.module('crmMsgadm').controller('MsgtpluiPreviewCtrl', function($scope, crmUiHelp, crmStatus, crmApi4, crmUiAlert, $timeout, $q, dialogService) {
+    var ts = $scope.ts = CRM.ts('crmMsgadm');
+    var hs = $scope.hs = crmUiHelp({file: 'CRM/MessageAdmin/crmMsgadm'}); // See: templates/CRM/MessageAdmin/crmMsgadm.hlp
+
+    var $ctrl = this, model = $scope.model;
+
+    $ctrl.exampleId = parseInt(_.findKey(model.examples, {name: model.exampleName}));
+    $ctrl.revisionId = parseInt(_.findKey(model.revisions, {name: model.revisionName}));
+    $ctrl.formatId = parseInt(_.findKey(model.formats, {name: model.formatName}));
+    $ctrl.cycle = function(idFld, listFld, delta){
+      $ctrl[idFld] = ($ctrl[idFld] + delta + model[listFld].length) % model[listFld].length;
+    };
+
+    $ctrl.adhocExample = {};
+    $ctrl.isAdhocExample = false;
+    $ctrl.toggleAdhoc = function(value){
+      $ctrl.isAdhocExample = !$ctrl.isAdhocExample;
+      $ctrl.adhocExampleJson = angular.toJson(model.examples[$ctrl.exampleId], 2);
+    };
+
+    $ctrl.inspectExample = function() {
+      var dlgModel = {
+        title: '',
+        data: {}
+      };
+      var dlgOptions = CRM.utils.adjustDialogDefaults({
+        dialogClass: 'crm-msgadm-dialog',
+        autoOpen: false,
+        height: '80%',
+        width: '80%'
+      });
+
+      dlgModel.refresh = function(){
+        return crmApi4('ExampleData', 'get', {
+          where: [["name", "=", model.examples[$ctrl.exampleId].name]],
+          select: ['name', 'file', 'title', 'data']
+        }).then(function(response){
+          dlgModel.title = ts('Example: %1', {1: response[0].title || response[0].name});
+          dlgModel.data = response[0];
+          if (model.filterData && dlgModel.data.data) {
+            dlgModel.data['data(filtered)'] = model.filterData(angular.copy(dlgModel.data.data));
+          }
+        });
+      };
+
+      dlgModel.refresh().then(function(){
+        return dialogService.open('inspectExampleDlg', '~/crmMsgadm/InspectExample.html', dlgModel, dlgOptions)
+          // Nothing to do but hide warnings.
+          .then(forceUpdate, forceUpdate);
+      });
+    };
+
+    function requestAdhocExample() {
+      try {
+        return $q.resolve(JSON.parse($ctrl.adhocExampleJson.data));
+      }
+      catch (err) {
+        return $q.reject(ts('Malformed JSON example'));
+      }
+    }
+
+    function requestStoredExample() {
+      return crmApi4('ExampleData', 'get', {
+        where: [["name", "=", model.examples[$ctrl.exampleId].name]],
+        select: ['data']
+      }).then(function(response) {
+        return response[0].data;
+      });
+    }
+
+    var lastId = null;
+    var update = function update() {
+      var id = $ctrl.revisionId + ':' + $ctrl.exampleId;
+      if (lastId === id) return;
+      lastId = id;
+
+      //   $ctrl.preview = model.revisions[$ctrl.revisionId].rec;
+      $ctrl.preview = {loading: true};
+      var rendering = $ctrl.isAdhocExample ? requestAdhocExample() : requestStoredExample();
+      rendering.then(function(exampleData) {
+        var filteredData = model.filterData ? model.filterData(exampleData) : exampleData;
+        return crmApi4('WorkflowMessage', 'render', {
+          workflow: filteredData.workflow,
+          values: filteredData.modelProps,
+          messageTemplate: model.revisions[$ctrl.revisionId].rec
+        });
+      }).then(function(response) {
+        $ctrl.preview = response[0];
+      }, function(failure) {
+        $ctrl.preview = {};
+        crmUiAlert({title: ts('Render failed'), text: failure.error_message, type: 'error'});
+      });
+      return crmStatus({start: ts('Rendering...'), success: ''}, rendering);
+    };
+    function forceUpdate() {
+      lastId = null;
+      return update();
+    }
+
+    $scope.$watch('$ctrl.revisionId', update);
+    $scope.$watch('$ctrl.formatId', update);
+    $scope.$watch('$ctrl.exampleId', update);
+    update();
+  });
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/User.html b/civicrm/ext/message_admin/ang/crmMsgadm/User.html
new file mode 100644
index 0000000000..91c4a40a64
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/User.html
@@ -0,0 +1,40 @@
+<div id="bootstrap-theme">
+  <div crm-ui-debug="$ctrl"></div>
+
+  <div ng-include="'~/crmMsgadm/ListNav.html'"></div>
+
+  <div class="form-inline">
+    <label for="msgtpl-filter-text">{{:: ts('Filter') }}</label>
+    <input class="form-control" type="search" id="msgtpl-filter-text" ng-model="filters.text">
+
+    <a class="btn btn-primary pull-right" ng-href="{{crmUrl('civicrm/admin/messageTemplates/add', 'action=add&reset=1')}}">
+      <i class="crm-i fa-plus"></i>
+      {{:: ts('Add Message Template') }}
+    </a>
+  </div>
+
+  <table class="table table-striped">
+    <thead>
+    <tr>
+      <th>{{:: ts('Title') }}</th>
+      <th>{{:: ts('Subject') }}</th>
+      <th>{{:: ts('Enabled?') }}</th>
+      <th></th>
+    </tr>
+    </thead>
+    <tbody>
+    <tr ng-repeat="record in $ctrl.records | filter:filters.text">
+      <td>{{record.msg_title}}</td>
+      <td>{{record.msg_subject}}</td>
+      <td>{{record.is_active ? ts('Yes') : ts('No')}}</td>
+      <td class="text-right">
+        <a class="btn btn-xs btn-default" ng-href="{{$ctrl.editUrl(record, 'legacy')}}">{{:: ts('Edit') }}</a>
+        <a class="btn btn-xs btn-default" ng-click="$ctrl.toggle(record)" ng-if="!!record.is_active">{{:: ts('Disable') }}</a>
+        <a class="btn btn-xs btn-default" ng-click="$ctrl.toggle(record)" ng-if="!record.is_active">{{:: ts('Enable') }}</a>
+        <a class="btn btn-xs btn-danger" crm-confirm="{type: 'delete', obj: record}" on-yes="$ctrl.delete(record)">{{:: ts('Delete') }}</a>
+      </td>
+    </tr>
+    </tbody>
+  </table>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/User.js b/civicrm/ext/message_admin/ang/crmMsgadm/User.js
new file mode 100644
index 0000000000..be8bef4ea8
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/User.js
@@ -0,0 +1,25 @@
+(function(angular, $, _) {
+
+  // Display a list of user-driven message-templates.
+  angular.module('crmMsgadm').config(function($routeProvider) {
+      $routeProvider.when('/user', {
+        reloadOnSearch: false,
+        controller: 'MsgtpluiListCtrl',
+        controllerAs: '$ctrl',
+        templateUrl: '~/crmMsgadm/User.html',
+        resolve: {
+          prefetch: function(crmApi4, crmStatus) {
+            var q = crmApi4({
+              records: ['MessageTemplate', 'get', {
+                select: ["id", "msg_title", "msg_subject", "is_active"],
+                where: [["workflow_name", "IS EMPTY"], ["is_reserved", "=", "0"]]
+              }]
+            });
+            return crmStatus({start: ts('Loading...'), success: ''}, q);
+          }
+        }
+      });
+    }
+  );
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/Workflow.html b/civicrm/ext/message_admin/ang/crmMsgadm/Workflow.html
new file mode 100644
index 0000000000..9260e14f43
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/Workflow.html
@@ -0,0 +1,28 @@
+<div id="bootstrap-theme">
+  <div crm-ui-debug="$ctrl"></div>
+
+  <div ng-include="'~/crmMsgadm/ListNav.html'"></div>
+
+  <div class="form-inline">
+    <label for="msgtpl-filter-text">{{:: ts('Filter') }}</label>
+    <input class="form-control" type="search" id="msgtpl-filter-text" ng-model="filters.text">
+  </div>
+
+  <table class="table table-striped">
+    <thead>
+    <tr>
+      <th>{{:: ts('Title') }}</th>
+      <th></th>
+    </tr>
+    </thead>
+    <tbody>
+    <tr ng-repeat="record in $ctrl.records | filter:filters.text | orderBy:['msg_title','_is_translation','tx_language_label']">
+      <td>{{record.msg_title}}</td>
+      <td class="text-right">
+        <a class="btn btn-xs btn-default" ng-href="{{$ctrl.editUrl(record)}}">{{:: ts('Edit') }}</a>
+      </td>
+    </tr>
+    </tbody>
+  </table>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/Workflow.js b/civicrm/ext/message_admin/ang/crmMsgadm/Workflow.js
new file mode 100644
index 0000000000..833b544227
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/Workflow.js
@@ -0,0 +1,41 @@
+(function(angular, $, _) {
+
+  // Display a list of system-workflow message-templates.
+  angular.module('crmMsgadm').config(function($routeProvider) {
+      $routeProvider.when('/workflow', {
+        reloadOnSearch: false,
+        controller: 'MsgtpluiListCtrl',
+        controllerAs: '$ctrl',
+        templateUrl: function() {
+          // The original drafts had a mode where the "Translate" button was conditioned on some kind of language-opt-in.
+          // However, uiLanguages isn't giving that signal anymore, and that opt-in isn't strictly needed since htis
+          // is currently packaged as an opt-in extension. Maybe we should just remove `~/crmMsgadm/Workflow.html` in a few months.
+          // But for the moment, keep it around it in case we have to pivot.
+
+          // var supportsTranslation = CRM.crmMsgadm.uiLanguages && _.size(CRM.crmMsgadm.uiLanguages) > 1;
+          // return supportsTranslation ? '~/crmMsgadm/WorkflowTranslated.html' : '~/crmMsgadm/Workflow.html';
+          return '~/crmMsgadm/WorkflowTranslated.html';
+        },
+        resolve: {
+          prefetch: function(crmApi4, crmStatus) {
+            var q = crmApi4({
+              records: ['MessageTemplate', 'get', {
+                select: ["id", "msg_title", "is_default", "is_active"],
+                where: [["workflow_name", "IS NOT EMPTY"], ["is_reserved", "=", "0"]]
+              }],
+              translations: ['MessageTemplate', 'get', {
+                select: ["id", "msg_title", "is_default", "is_active", "tx.language:label", "tx.language"],
+                join: [["Translation AS tx", "INNER", null, ["tx.entity_table", "=", "'civicrm_msg_template'"], ["tx.entity_id", "=", "id"]]],
+                where: [["workflow_name", "IS NOT EMPTY"], ["is_reserved", "=", "0"]],
+                groupBy: ["id", "tx.language"],
+                chain: {"tx.statuses":["Translation", "get", {"select":["status_id:name"], "where":[["entity_table", "=", "civicrm_msg_template"], ["entity_id", "=", "$id"], ["language", "=", "$tx.language"]], "groupBy":["status_id"]}, "status_id:name"]}
+              }]
+            });
+            return crmStatus({start: ts('Loading...'), success: ''}, q);
+          }
+        },
+      });
+    }
+  );
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/message_admin/ang/crmMsgadm/WorkflowTranslated.html b/civicrm/ext/message_admin/ang/crmMsgadm/WorkflowTranslated.html
new file mode 100644
index 0000000000..4a51e0ed3d
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadm/WorkflowTranslated.html
@@ -0,0 +1,50 @@
+<div id="bootstrap-theme">
+  <div crm-ui-debug="$ctrl"></div>
+
+  <div ng-include="'~/crmMsgadm/ListNav.html'"></div>
+
+  <div class="form-inline">
+    <label for="msgtpl-filter-text">{{:: ts('Filter') }}</label>
+    <input class="form-control" type="search" id="msgtpl-filter-text" ng-model="filters.text">
+  </div>
+
+  <table class="table table-striped">
+    <thead>
+    <tr>
+      <th>{{:: ts('Title') }}</th>
+      <th>{{:: ts('Locale') }}</th>
+      <th></th>
+      <th></th>
+      <th></th>
+    </tr>
+    </thead>
+    <tbody>
+    <tr ng-repeat="record in $ctrl.records | filter:filters.text | orderBy:['msg_title','_is_translation','tx_language_label']">
+      <td>{{record.msg_title}}</td>
+      <td>{{record.tx_language_label || ts('Standard')}}</td>
+      <td>
+        <span ng-if="!record.tx_language || !!record.tx_statuses.active">
+          <a class="text-success" crm-icon="fa-file-text" title="{{ts('Edit current revision, &quot;%1&quot;, &quot;%2&quot;', {1: record.msg_title, 2: record.tx_language_label || ts('Standard')})}}" ng-href="{{$ctrl.editUrl(record)}}">{{:: ts('Current') }}</a>
+        </span>
+        <span ng-if="!(!record.tx_language || !!record.tx_statuses.active)">
+          <span class="text-danger" crm-icon="fa-file-text" title="{{ts('No current revision, &quot;%1&quot;, &quot;%2&quot;', {1: record.msg_title, 2: record.tx_language_label || ts('Standard')})}}">{{:: ts('Current') }}</span>
+        </span>
+      </td>
+      <td>
+        <span ng-if="!!record.tx_statuses.draft">
+          <a class="text-warning" crm-icon="fa-file-text-o" title="{{ts('Edit draft revision, &quot;%1&quot;, &quot;%2&quot;', {1: record.msg_title, 2: record.tx_language_label || ts('Standard')})}}" ng-href="{{$ctrl.editUrl(record, 'draft')}}">{{:: ts('Draft') }}</a>
+        </span>
+        <span ng-if="!record.tx_statuses.draft">
+          <span class="text-muted" crm-icon="fa-file-text-o" title="{{ts('No draft revision, &quot;%1&quot;, &quot;%2&quot;', {1: record.msg_title, 2: record.tx_language_label || ts('Standard')})}}">{{:: ts('Draft') }}</span>
+        </span>
+      </td>
+      <td>
+        <span ng-if="!record.tx_language">
+          <a href crm-icon="fa-plus" ng-click="$ctrl.addTranslation(record)" title="{{ts('Add translation, &quot;%1&quot;', {1: record.msg_title})}}">{{:: ts('Translate') }}</a>
+        </span>
+      </td>
+    </tr>
+    </tbody>
+  </table>
+
+</div>
diff --git a/civicrm/ext/message_admin/ang/crmMsgadmMonaco.aff.html b/civicrm/ext/message_admin/ang/crmMsgadmMonaco.aff.html
new file mode 100644
index 0000000000..3a521b16fa
--- /dev/null
+++ b/civicrm/ext/message_admin/ang/crmMsgadmMonaco.aff.html
@@ -0,0 +1,9 @@
+<!-- (1) Encapsulate some common options. (2) Work-around issues with propagating updates to 'readOnly'/'disabled' property. -->
+<div ng-if="options.disabled"
+   crm-monaco="{crmHeightPct: options.crmHeightPct, language: options.language, wordWrap: 'wordWrapColumn', wordWrapColumn: 100, wordWrapMinified: false, wrappingIndent: 'indent', readOnly: true}"
+   ng-model="options.record[options.field]">
+</div>
+<div ng-if="!options.disabled"
+   crm-monaco="{crmHeightPct: options.crmHeightPct, language: options.language, wordWrap: 'wordWrapColumn', wordWrapColumn: 100, wordWrapMinified: false, wrappingIndent: 'indent'}"
+   ng-model="options.record[options.field]">
+</div>
diff --git a/civicrm/ext/message_admin/backlog.md b/civicrm/ext/message_admin/backlog.md
new file mode 100644
index 0000000000..5d9f132ce6
--- /dev/null
+++ b/civicrm/ext/message_admin/backlog.md
@@ -0,0 +1,83 @@
+= past =
+[x] display situation where there is no 'draft'
+[x] add buttons to create, activate, and destroy drafts
+[x] implement button to add translation
+[x] make ctrl/$ctrl more consistent
+[n] token insert - subject
+[x] always use monaco for subject
+[x] make toolbar more consistent
+[x] token insert - monaco
+[x] full screen edit
+[x] more button/toolbar cleanup
+[x] preview ui (skeleton)
+[x] fork-off: APIv4 metadata for array inputs (#2665)
+[x] (big chunk outside this list)
+[x] move traits under 'Traits/'
+[x] example loading
+[x] - scanner
+[x] - api
+[x] update FluentGetterSetter for use in AbstractAction
+[x] Reflective::validate() method
+[x] - delegate to validateExtra()
+[x] - check @required
+[x] - check types (maybe)
+
+[x] test class for msgwf
+[x] - test trait; new class
+[x] - extract data file
+[x] - move test
+[~] - rework equivalence assertions
+[~] - add rendering assertions for stock template
+[x] wfmsgexample api test
+
+[x] render api
+[x] render ui-api (hookup)
+[~] api - get example fields; json
+[~] render - edit example,
+[x] default/autogen example? or maybe hide preview?
+
+[x] MR for devdocs msgtpl
+[x] split exploratory pr
+[x] token list api - finish agreeing contract https://lab.civicrm.org/dev/core/-/issues/2788
+
+[x] wf msg apis - review process
+[x] - rework as ExampleData API
+[x] - Type=>Array
+[x] - NFC: Some more docblocks,
+[x] - move CaseAct into `tests/`
+
+[x] contribution recur wf msg
+[x] msgtplui - allow other/non-UI languages (or maybe override/different setting)
+[x] msgtplui - better failure when no example-data available
+[x] date and money formatting - design
+[x] date and money formatting - impl
+
+= near =
+
+[ ] submit msgtplui as hidden ext
+[ ] generate wf boilerplate
+
+= mid =
+
+[ ] token list api
+[ ] try to reproduce/debug issue crashiness after browsing multiple msgtpl txs
+[ ] sendTemplate() / renderTemplate(): Override loading to make use of the translations
+
+= far =
+
+[ ] merge devdocs MR
+[ ] presentation
+
+[ ] docs for ExampleData
+[ ] switch User Templates to angular editor
+[ ] - add "Message Source"
+[ ] - add "PDF Layout"
+[ ] bootstrap token picker - or fix btn-group/select2 interaction
+
+= wishlist =
+
+[ ] token list api - add more metadata+filters (eg support visibility/verbosity/audience, grouping/section)
+[ ] better syntax highlighting and autocomplete for smarty
+[ ] diff button
+[ ] indicate unsaved changes
+[ ] api explorer, workflow-field, other-fields
diff --git a/civicrm/ext/message_admin/images/screenshot.png b/civicrm/ext/message_admin/images/screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..6765b696fa03249ac2cd605d5f0e4aa000ad6dad
GIT binary patch
literal 11775
zcmcI~2{hF0+y56OQnV|Q9{obnC}fhoMT;zDD-6k&WsqSQyC_cyNfKkwBV?D!GRBt5
zGGmLzHfHR`GDD0#%X^QW=l8znfBxq^@Be?!drqgOx$n8}>%Q*KwcOX|dS;+^ZTC)*
zoe%`=zH$A^9SGtfLJ-$;K3?!m^9hqK2s%@D<BFD%PcMt6`w%yQ(YUX5JVNvMo`$~+
zq_-9EZQB_F+ZhsaNjOCF_{*!u_wae{<rCwx-OG2N{PY3tkV}8;X^_~%x2@>9eVB`m
ze0z+oc|*}j>nVYr)!O=^lmDV7CVZoA&aAMLlfE~UxJ+GV44YZJ@XT$!mYBA*L~lj)
zU!JMn4BQT+S+^Z82wHdcnxR)ZA(43^qM|u-7s2=QMf=d#u3gKaP$-jW(dyZW&GzS2
zRLlc@e%^724}yY|<<-?KpA#;#gaVfb!zq1z7R9BdrefmarerdiQtaF%dl;;OIQ^~n
z0Mf8R_l@p3?{Q;C9~+xABR_F9Un5%Cqc0NN5Y%@5P7>nYy;EH9tJDK-QwY-K0zZb4
zAA`ZjSzlkDTwyat{bwjSre|cqa`6)1x)0bHCh5i~ed{%BWhPTbMr;=bK8H>YM{DGl
zl$Pd9OgIYch9J%Q^zp<Y=jVl|>N2FULrgL~a2%=L*wApjxUkSb?AS3Aa5l=&&;v}9
z5Lh>u{aV8LdETk=jO9cL<~_RGI6~u5+V_V6L(R?2bLHaTz>r%`WsL}CMOPsAGGpPJ
z1;HcT%*-r1S<TPnCdqq-p7%67d_5J+EBl#-zl>YvM&0#saLDuzQI_>zU-i<s0EX00
zFkEN)2<)tkhEo|;Q}tq#Bf>bIuS+xi1(p>)x77kx=Zkmz$pt}&cj1nCt9b71zcO}|
zR)N7&M0}A*){o9Mu*kgkK{(!BVLu%IC_X-(oZF}8pZ_jmV@&(^Wz9vZ1+JAP;&8~_
z>)?J<H$O3I?D3dCl-<XRs(SowSkKh^eKPl{ft7?)R$!>`83VZNrK-V&g@sN_mh7KS
zazJ}C%00x1MHV%_o#^-hd+4OVOG%S^FUti?50T_{fpKqaLV~02XybA!IhmyJBTwM`
zxpUtW3tn$0*RE^_mpXpz#EBD>_Vznoo}NY=ZU3zx;*hiG<l;B-CA-f>?)PeBM=(tm
zVEO<{Q6$m{g~A_@V)s|jkygVmw*%P+a-TGWhK43fUlCjwl5o%>78?ly!03A{q5+J&
zzRuT0imJ_e2`#MFrl@Yi;j04w0J@`FCho|L@Bn}1c$A-BGGh<C3tX|b9qg!7MkKL$
zZkRI258VJn+H&gZ>PV`6FP<Qkuxe_D&>#8(FT|^r0obN?$^T$7UHD5I4RUgFDC6S~
zTZ61FudiJuqFH7uS{#u3`T21$-%5`Iio7sW@u{L>Evw>(KG7zecQE{Jf0obM@}m{4
zMKTUJfnazXuOX30On;88Gj!CXME5h=QrGX}(+Tv@<h+*3iXCF$w6c@WlqMd1s;;(@
z?49?EPJ5@dZq3+%l{BgBLja`@7-wW;WV2W-`O2}uFW~_BBQ^drmjk(cy<HDLP|XdF
z%4=&cdHML<6%!MSi)VMI=7kng?R|X8Ub785Tjj2j)=n*%i-Pk})17_+tMRZ^p!7{l
zOoUhpSudRwiPSD85bkAHu3T-L>IC{9uNzJ{)jg^@UFo-UwDkbGwQBqQM~^-l`Qmrq
zHz)<?hG-`uy}P=)G$=k@<$Of9GgN5u3$5qa+3Vp%E-08BcS=6t2{xf@;X0*>RIF4x
zO=v6$b`knOMLSS6t4mqH8^Y>=cKJ*A%c8|K^6ecQBJ~fVRpfA3JTmoILlSEnM-HDZ
z8P^iYu6s5}q;BUPwA{54Az3-Oc;cBJlb5XR*_Gh%)M*J|JXwhMwXWW@kj9e7_V|0#
zHMT^p60y7Bzyo&e;tzo}Qp6uVcu)&Or8&E}<hsDGkLxa1dQH8lTmYbc)H@PCIB4yB
zg1H#wqS8<@=5pC*cIax)bgr`q1ntVuPP>hCb$uf<-Pvh^p@BuzW>y!b(qoLXD|<3t
z@|to)T{V{}0a!oNVZm_>XU?24HqE#As8s73v{}UXNw7jgkOA{jH|un4Y%JwVxDZ+C
zDY#LO3$$_|fSb6D|J=wkn-{gP1+ImoH(LkiSA%_z;gtYb*X5sF4K=fl@4D^<H>Ml;
z87}B9ba8&<edDd}hrDail1vdb8KwuXa=p1wT+0eQiGAJ(hz&C>IqBf%QF6+G=uvWp
zs3(lZ=qNW;5sBv0heu!f2@=hPfy?T4o>NTp(1kIFVEcfFS#u@d(r;`?^)0o_$hj+O
zEzIBnpkV+bH4(=(H|qv?h9O{=FHKKQI_0pbOlEG28wCA)dgo)F)cd1iV#W~>5t8ru
zh@PRo8C`U`rI)|IO9t2`>GRjGS2*7K&bQ`-zFXHm!fIg%neb86Lv;%MTJ*8FFY_E7
zZkR|Xrlb@ks|T26q}c8x0q36=S*RnouJ6xi!Fjx;Z+->WQ9e66+dh*4+X?(*$6ihA
zc+2?93q8p(n;%i#^hIDVyjry`tG%kg86I8IsTOTUJVC4)2=<hUSG1A^={!)ITYI(S
zXC*Fp08-K8Ao|F0Df4WG*AzFTDM#)cak<?RRR?@xkyj76>0Q!ainyS0y9u4x4aEt=
z*r^`Hl$)C(04kSsF2XZMeX}bk#*<oFfcU|#uhkV7^uEn!-bfLddR$0$o{6$EnTZgV
zyQ#BCEp;QR@Ip1|Ieu;LH*c-BjcbJ#lFb|c*jPjfIZ~$kfS!fV7*oTA#NWucW)lnz
z4Li46$FpM&vAnJk?eSS@z)^_B;hs!L#iGiTqp|7=6L1^k9`wZBVsBU1{7>!$4sq$l
z#9}UJK=r-bt<`#4hr#J-*NM|Mh&^b6K~H<qn`w*$$%Ns8F=1_o29VihURoyuY}z%n
zwZKOCJ{~tCmK5=%L$RL%^<z&v^FTHCqDbjJLm!TUyXsdxp4Z=@dfetk`#w4VUt6Fo
zOoe;D>y+dN8ylNWUh8=JSyfdFv(K3){ms5)z6&n-2|=M`ADuA7s$San4@z*jPBDD5
znd4pVpMC$?2)#CHb~ZAzJ(yH}oY`*LE~9>s?#t(6)|kodf&|vIR6a8>P~#<D3k$We
zx6kkjmviu!l9bF9fP%#Wz%Mi$;O&(Jbz)3@ON%Q2Zj_OWA%T*!-C9`hw)ZHxf?j^w
zYHZm|6bhbxjW1;xUMNDff}Ltl|6q4UMMsnGKVo-6Q2Ax_fSr^jdc@Ab5<PC0nOv;Z
z{RE!7C^@bU(6g<7+rTz!pb7VnMZ++anIaxJmD!>b`scW<g;hUuL-Q_!?|NKhRKc=W
z-Ef4U&8j>F2x5%)7CTes<~*jZ_w@B8@&3g}bdS+fy4q0V0U-7h?QzB!E<o$<Zj(J=
zEetcKO{?>er_f7BY+b>*Ezfk_a+F_KTVXo|1yz@$7*R67R6NrbwZ_cN&3O}epri-B
zzU94iI;`tf&ndXFvLm?Ocfz(WS3pXWHE&<D0s=u61bqGdmj%%ty04wnR#&B??}>&X
z+!_0TDUbAKPNQBq|79V1PdE%Qeqy4xFHrI%0*AZ71+CuBf8?>D)TK&TY&`!mS(1-<
z7Lw02E!Bcj`$rNbyOaoZjm1%p2f_EL^4DDL?7kgUhEg3knc=92WS2Z4qp?^w|55Jl
zTA0Dc^`@2<lV*GTTFhMpA`j#!dAp&uVvoF6&TlM;BfqDARN^DnWPxa$U0hsTv@R8N
zp=h*6To6h%cWo;buP2?47`_X%E82)2bK&=0op)Rq`WE4Y!SuX24h`J-5vhdIedWAA
zQVHA|>e2e@f(bqxhZAc)1_cY8Q&2F>SDW1XoFMrT2G$^m9y^vlO|PUn4Of5q^gdDp
za?jV+)+U{=`~LklCvxVidF+0G)a-sD5W~g7VzGH#tSuvie4Hb-)4Y%$i;ImdOF2uW
z(*qE9?>?jjG?Ot+y%6L;JCAmEH^@K96ydQJE^nWo_sp8>WH{YfFNT5W?4|M2LScLd
zcP(uGMPH0={nw<a<`sJ1N6NXq5HHm+_E@`JPj7IcfZ8c<CvR_W9VtfNXUbJDM(*yu
zn-Gq54gn!;Y{cF&znIHfc=eL~{FtEY^oTlU?tNd6F>8D9#_O{xAVIH1Zu#Z&7cV+-
zj`4YAI9{c4W0^~Hlh#M4Qc);?fy1}>2`p;jzQ;&sZm9kZ#95D4DB&GE_4FV?0a#wD
zU-}<*+S?tk^Vh=Mc^9M~_Z<nGACI}c4QjIkS%_I0FB}e!6xn7i?9<^igH!P);fDIo
zwMd^B=7$D6Uc7i=Bp@I_0l}1$|5>&G*ARvn5F3e_4c#F`5*z8ek(``d0)qzJ&K_qz
zCX%3<9&gj;)>c#f6!l`_&M-s`<_~BbIXpZ}SzYzbajR>_!t(?GNbIsywAB3;b1D2D
zK0e*OP|XqB5i9LYJBixa*+<3Y<xUdZd_>LC8;mgk0EG=`;Jo~lI`HvJv%~fFw9rC<
z`Nv78NxAeUW-}%YIAiRu9l<iwn*#Wr#H2GM!nul)5|a{`x#%8r$g%Y_x{K2K?H%`1
z-MBLwjS_W7CEXMC3H-ZiVQt~m;(dY0F7DKRyITgdrgOugiYTCraT`Lc8XVr`^z~y=
z(O-LaKmjLCtQ-;+CjVLWVv_t;JyKMwdpqxoy#mmDgb`BVxtwvI5lS@jsTa6W1J-(B
zk`+lgBguh8$VhT4Qi443MlK2-a%oHQkLA*q<zKaO@Zmm*n@w^i;bvc)BVnYbxHaL8
z4=Z1ElUv@e<&nnKrho!!5@y~ok_=l^M*9q>-!P88F6J62LjRG@_!=vvPvXq(Kyia3
zdcQ*H1Amg<i)9<MXmPpUme)O=#s<MzF~q#oH9-;rORbQUKN$HKPN-eDAkBF1S+;GU
z;$)NLkCN7B`s2k)KpszvmTRL)Mry>fj7;E{XC#{U;?<O?uR9daQQzPLdU_!Mp;N+=
z6Lbr!x9@ZC0{bEQ7_U=ynWO3`ugq~KH==k{7Uio@u(Z5f=AukKYURvRlM_{EYippr
zLs^6e+-Db=kPV)p`+S!c7qfeM?loV5q!rb+g&|VqvMc$^`78LV_-jO7K)aG-hnYa#
zk$4_3reUjtQoAT&j>C`MD;7?z*1dJ>wdB*Rp|M-j^Yfp)xHwbNF~*5^(-Vvn&C&_R
zi5B-np;k7Kw@tVmiC>S}Y-)Pp#Z?%(L$iDPDnr(^-2K?mqp$H66D<iaTqkcTky3f&
zm_}eOoCh4E;%2!=hKd771Uj>Hq%@ZZ;HgktRMb9Mt^tQ<J_qQ99AaR&te+X}*lFCv
zkmH6#&1g0w%OPiOb+sHb2~_zL)?TUL;A_ZgKGNUVcw>s&U8~(fMmHl_Bgm39GZQ~%
z=y=Hv39L1hN7!OwZsM^(DjqIUT3V`euq#p<2w4Ux3)`O-({zY>InsUo*WOpE_MGVh
zkG-5@UmGPGhVc5}j&_tW8M#JCadrQ@Q4#MGRnDIub=w6F;0Z$WupD^io4%;#<h@zy
zJQaG$a<E~HOueT3;u(hf{&Li<uibF4(fEU&_AOhvAhkC3VD7J+N}#kn>m`s6Q|jup
zF;RUqTApiP*`V7Fu=4yXqcg7kRfv)Uj0YYV3_+2w4;`W<K*Xpwor^xY)G!^dDn54j
z&+3Cf2W`WXH?>>RM*S@^Pagq`?zV>4D|_Ug;DW0lJo?f^S499SA%+Wh)OcyLdhiaM
zSLU^r5B$J6JfW4_1k@r+WEgkrySv|3bAk2FO1B4if|n&F;M4bq086b;X+Q%(n}I7n
z%2hEoN9|*HYGF0d)K`le*1}~U3b8gvl#^pby_NH0Y($f(z%YaL6Oxl*#&iosb)TQ9
zMnO*ysnlB6D65gf+OF+l01(4Rlrsh~NB5x5aMw7O^4O2r+Ut+`bG#z`p-L*S5DDg3
z+0}qGiA}ZEVPOETn&8GmpE>!iwwwb^LYm3VIEbFA^UWH_cty>s^WB<3x<zWrXyS`*
z%5G{R#T)xQK@1?ixVq+!Ubw0zkF>Y1L!IMjOZmuD%)PjUyU|UBO|m+`9d{LCMITQ5
zmE=mosM6w4xwR-cFwgznJ`aU2^6%h-OPzV<CwB=DYp`K7kU@8%Zba#h%&NxwByZn?
z=7Je#pX=#d8)=O77)(Tl!-hie%OkP+q}e|^(9a+aNFtN)`_Uozo9CBw%PTp!w-BMe
z4bf}q*$!X<R<ITZ|AIeZ2mn0r2Yj{l@%LyL;`iwP>%?L{pcJqfxOzS!IM3Ec*wF9Y
zwiW|h{oZwJx8J*N?FK&nv)k`)|Mw?u?eqJ<|GD)O&e8uF`TcQALBFN`FS`0i>i?p)
z|LH_bdjI;gH^sY(jhoD|T6bFT4qEaat>%159uEB^2r2}2Vu34UtK?tx8)U1EA#dF+
znZTQxBo{av;q>s~ht)NPhE>3@X#WSg-%RCPe`~-rYIHVbbB)1+KNPgVP9ZNP)%Ycg
z!<~KU;`_Ihxd)ATCZw@e7}i(4`Kx;K*66H$(5hk9oaFqNo%IsSYsf}o>*{J@a<f*O
z3sxupOfUEAt=?n=Z8)qfE%gU&rVpOAEIofgPd$*;TRc~_GLu6O0ts#f?OrJt1G#_5
zYH3#QSGoRE4rCPqB3Jw|MBpH;P5+Ue3QCw$`@VXpFMSHqZ}`=}x!$k;gc9~GWo<-?
z5??i+K36q6Di=gpjow_2?xe0wRc|=Ql;-qj2>!_0x5?JnL`}^uX9lfiwi-pVF@f`G
z;>K3XwZdj@OK}DM>DzuTmgZ=f9&7EoUCrvMS}dMis@`1BRHq9CEq~DusPGrkSf9|>
z*pIGWXStd7Z*DB<P*e&s%h%;L=j2YVC0kSnEr$m^45+9GxP%mo3i?Iue>3T`aV7;W
z$2eE*R}0%hbork%sYVhVFJ!El;+wPLIyM<y$a{KxO;oA-lFao<(`p$9fA(F=7OFoR
z+b{cBflJP9DbFn+N0E5bODQ^NHo_`5a1oypcO17Tss67@Uu@029kZJ&DVwLnRo-2Q
zE{4A(F-Y}f#?7*gnaz!v$$E{ANBkdpl5sDwr8%MA+-~Y_Rg3-zOs?RhS9kL-$**Ix
z{`6JWTxC}ZJVh#cl(p{@``rE(cGbO(T%=6Z%Hf68u~AcF+}__79*<(~ORDL%bkzNM
zt2_6Lv)`zKHEeLkcKZcug^+x~RMsCwi<L701*#j^{<Sd$S}NOTqcZ=`l4`moPWPMA
z!5&|-`#M1{Fps|xQ;|PC#=3Jv{m3HQ=drh6x2}(Ce|b_Xb_sk4Qk(Mhh(L?@;`&yR
zqWCReaGYuRDy-IJqWRG9VqR5NMkm$V@OHCJmQ(VfM19`2SZd&YK|_8u7F+6Tr?uk2
z_KHo%wCH^jR34PNX^BuZlXd42vfzM}CL>_#`HZ6j8gI8UQe7OBd@(8WroUOSs+;MK
zpnrpnc;)f^l9f(sY|zh8@z?d6tp1I>ij8oMwZXU<t8iL}$oWb=I_&dLFE>-uNH)Ra
z(BcRqyHu#l8m?8c?vLaK7)bQQrHi6|Eg8WVeS1{t{%S0%*uv9)yEkEJsyC`?!EQ5|
z<WjP$9`l680r$y2t8V#qH)H7Wm56|n<y`Ah!CB=^>~j~HMz5cFp&vLu-|~t9sjkcO
z*&o&UGnKz2#_w0RDv4D7Ovs0-WtozS)h?o_lG|NY*VJ3cCFdB(jpcfcKqvD2z0*WY
zbu2z?iWjjU{T?4i^UsqKHNo}OB^4h;Kl$y-m-c<~-l>j!<AV5{+gezat!4a}*~n`w
zrC~`^oU~QQGJ4K_G_};4&|5ytZe&p~*flEF1kGMZPxPD1od&*Ssm>bSo-5<<QXg%a
z-@3CjT5;dM*M8hOCfU#__UHbFB4cH9>{PZJH{#O$b@d)@iyhy?I=2lO1?@MPy1!CX
zXdZoxgz52*st73I&OB#KuMXfv(hOv*6;m<;<_-L=E&$cgA0vV)d{t0>9|B_wvC+4q
z;Uq@3hUKsEcdJPDx};0y>>Fj`me~at`e}v0hdp|+aLVqaJI~aR5vc5VezyhcSU^Wx
z_Qq0JeFyhLG3osm_V1ip(!cAfVQwCT;Qzo%k&?@N&})fnW;o6G_gTiZbQy$`EA;JI
zB|#Pb(fl90y2kwrFex47vMGydCkMuy-8OwD7X6EECbRmz!l!(j_Wo`59$I%IZygSx
z9HGa?^~R#?`~PLjK;cRPRzJ0(ItwObix$c%&DQfL&$I=G{||!dzvJNlHKKrE^S=~&
zKq&t2xBfl46%YSC@xPDN)?IAL-?6?H2Esr12*Ur?$Nw`E_&o}~{r{Sne--*CO#c&%
zHM_m`3T^H7dspz0HW4bM{y}|p{DkmqO~S~^1MmQ4OM&4wT)t(c8Lc{~+Q?CTWn};F
zVTllLz)_S3u9q_m!Ff|vnwpx7!26t1FCJu}1`<h&+}^rf6^%+`eX{13mM}RDaO33x
zzt9VV;o`ngTgg}_hpzhc$p}>Qjl;vkDKw(DM)B_3-P`G7O|DT|BOgIUAiL7p*_i^K
zP7IEfrsDr8;+L(sS$3uF9KRBp{r&rQCoiw!i|XpIL2op=B+R<?8_-w{;rchFI4U4m
z?lkINT_VMuE<eX3+#ab+O<;_TWmi^K?(;V_G0ArB%Etuq0u9miTId<px3bHWWBrEf
zA{D9&KyLeB-k?OWpr9cBOiT1JHJO>26%n9BpFAUj_QR69A9!#jK0W7nl${}dt$X`L
zWe0exF`LaEC2)8>3ZNC}lZ2gM{x}NM57YPF%08(q8ZXf1tt=|V<i_nHvLvOXbflJj
zg-PJa#_$3&58LwN9hdKTtLdJ2s~Dyn9esw$EqoA7{UsnPEBjh-)+;E)Giu47b9p=x
zk%&pm8^`5Wb#e@~);rzXVHcUn%%j!C#S6VHvp@x!;@3m7Xf)cLZ@R--im8)77~o+-
z-bF0-j4E(=oSC-Pm@vSZ7M(3O-(F(}YH=3hIPZfX?I=IbECC$YslQ)qdi0+>KtmU8
zot&~kRn8STsKXN<v9<;tFi7jtH~GyIbP&E=TP7y`_rkeAMjTxFT3eRYd~a^f?!3cZ
zbcpM2B1?C5ZbhL0Ua!&~qmJ@lSK~~BeOE`Hp!B&OCO-1_w}2hvvXpXgl>4Q88aLh%
zquz>e?2Ff1n2`_M%~85ek4Jo-chBQ^c3ID>_&iJ}?*Q$e2QowX)z+LRE+5UUtmG&!
zT`I|kRHwMx5*Sn$q~3U5ikq<?FyhoNaZfp14J1sAm1IP)-gDA-hX!c%X5B%G+CKR@
zX*M~JlYb|De4e8st?3O4YA_VJ!{Rh;Mxj*|)ttARGicBna0`D5CC=r0E$zEByUCD6
z>+O{(Fy|!cyq0y_>?{mmuZqsYY{GH{G-nzu*qj<ea|OHUqW*SJ*Qte_H4wf6Xav}w
zP+!9~P^+NFN8o&O%wdmRym;KNaJ-oB9oko0&Xq79KHxt4wihep>f-WHoew<n+(<sp
zEt*FDs`J?iIVHqafoHhLX;87s>;*1F)0_P5Cd@2Z6?3Q3XZ9~MV0^;oJ9&d+<(**c
z4s5eMe^o+G^2%f<z<fx4Ohl~3`}fbW5pOIiMkMNbA@@U|h)$SX=#O#1EP8W9(;=P+
zn(EB+xc!PVx9o&a4Tibrrb3QyxB;i607ShA6BZ*ZH(b3A(@rYpPTfBr2!VRor4fk}
z!lFk+Uq?h+gxwW}F6x>Ffypfhn54(;S!NI3BPJ#y(!vuESg<dRnBR3supi!8QG^0G
zD8k!@t5-oS67r0QiHUKtwtjc<;>B!1AtCZsL9!P1vmN<>@UY?AWtno=QD_|9(b17k
z!is(pI;JX3v6=$jQWNmDw_$=FF)tMegolMNXnyEB)^BM#4pph_i(<5h?LNS%Sm|yo
zx3;#HYO9P4)jZq*tzJ!(nVz10qt}us^SDr8S1`!R<%QruYg@cNpsSn606_C;z;hJW
zjjCbhzLu#1xdUHq6(~9MH1I|FCZ?u2py&#!JvHlRT$He*Pu*PCR?Yc<&3y631J84_
zhDN2H_Qo4O;yUcfPgsCuhV_Tt4-y9w`Hm#rDUt4Cyynm|P)(+t3d(gG<EeXzvI7z2
zdSI)72YWSkhb1Q6;ZI8V7jyxuSV-DE)F-WHlhb#hg!7h+Z*b9qF7!LOX&)M`d*pf?
zYXV^B9s;Vt*-xH4nf&>)uwhG&H7kv~M|=eXTxGGBg@ACMHOhs=)#tAXL$C=+_V@2G
z*e0+Vu2;`%lynf#1o8KQ6Y%nXh(dMD{sE2+j}s($rM>Vp>6GSy%CEVq$^lleHCgR6
z{5|NoFyAdCv?Xr5@uR7|d<l`x+qfam>b{rso*u`@H5~^B&OQC?+SKR^1WtUL#TOP=
zDm>j8<!a<$Khu$^p99L6qC7xryOP6tuyD6GppLo!pE@Qq9$h_42w}OYf?~aacfd@4
zb$|JkiiXBaz8utDxt)*LhPAi1Ct;F3-I|)z85rokdlHk(sb0$M0E0yNP&u54LaZEq
z#nWjURFsYh2&g>&=nwN`V?R)BPi}jtNMcs{@>+3VSkvg_7NszHw}Z`S&EbG(SdUZp
z9hb@K&hYR9rEwWT*0?=y3LvK}9XvdWj-p7Bb4UFWIi+AwPah@qP@8__Y+kVIO!ne}
z=!;_<5<_{zs9&}9qqH+9(^zzuq&0!WHO<qw<(3*X3bbvg9|DxY=-mTARtyLsb|#i0
zH*NicpYDS+Ge_?l(SFL;rz=)~(rnAsS{M5vO6Z`%X*mUU?rzBayIz!h(%ZL%oV~G)
zOrnc^i_&P*SF%fmi&cpdRAWb;&GK|>@wyphoSuW9I<N;l7}tIu)aFZ#9(DN0?EV0%
zoo#t4Z63KYY+n@X)v!szurr|ILiBM@8eb4W^NPozI@)b0HGbr+ag;e|8i+?YDnCsx
z<=oYWtgI|2KR+U6^sK@(XQ3$yeH(2XeVf&~_8zpgrmYF$*IIdnOQ0Ck7G0DMQsVu-
zcuLQ|_<=qzXZ2<{TW6PLjp^y@1N!#<@ev=Bzss1MG(?e51PGP39r{c_5avHg?&b>C
zdNYRg;^OdjNgaUyx+H|`xd);Ef`96a3gF@f+(7e+j$sSP1w1~TZob&@siPOnidW7%
za@l^AL!X%fpObzMR5wArc+?Bfnga2%Atu-WDA+qb<9AWhKG|_3VP_$SI}^wq5=j+=
z+LRr~?nOUrI%0J~WH0(%=vFba-9<(>v)x}t_XD^DO-4cW;?fc#=nv*&l?c#`lpf$f
ztE+p8^Wr1^EOF2V#a!GGK)lLNBouLKsR{BNCmvBKP!OAqr0qUSv7kX*P`RPn?zA44
zk__t?QBh`q-}o@9cYmy6^yu}L(6?+}sLdQ`Q1>$aoAMysJXyCvv)k@IqB^iLX{jN0
zsHH{EYq)MVAm!SIufA|`)>HT{EN5v1nwadUcyJiI`^iv>DrSg(52R@g>dL<6Ep8)6
zuT>VGWT?0xfowsJ@{<iBwXlG$PXnCdTA$>|*wOF|KxBtb*($VWWt{@*(wS-aIlG0h
zq^`Coz)Yc!C?tG;#j=rPzXhA5pB_D`-C{GMhiGvaNdkNTr`sblQzs7I_403T4VdI~
zGA1I4*nl7;eQChFNFo=4#(;_muThXkkqGqF^7d&>z{^_zqP3)?gd|o5=5m<UV0Q1h
zGC=sRR&}5Ivrwm=f}8iqmx${#^2Fr<THjFqucGPgvESo-KObj$<V#9Ql2)D>Jwi#s
z88QHwknl-Eb@}r4*Fs?k`n~D5fToFeB@trZu=h_CaY))SKqm1M`78OW`9Jf2;gG<l
zBI4q1Y8X}D`48n7c7_z_uqrRQ5Q}UEO*82iVp%Oci!R78guv%4>LtL!f)+Dl>Lt)_
za>Vg|oVJPAXUX09xe<lrVDV+Et;R6#uO1G!4hloTmidcx0xI(bjKp{1+H4qt_tv!M
zXp||9q-GwU2Si=B1#X36>*eQX9&2nJ9~h@%#=2bI;eV3~`Yu)x+IBEm*-v#2V|K#|
zpcz1O`u?b%$@Ig~7L#fBd!Rpo_xq0@MpL~$z;hRW1PurMl{>u)K=X)Oz6Ie9r<a4{
zwTZ|6?X^K)1n8DX)p(!M3{XUPs;7bVM3-=y8U{W^p$LYcRu2s@+lM9bz6$uIiH=MP
zi(0x+wiiv<HIeG_1~eKa6}%X#z_9HpE=uI$#ope;iIcT3;oIMuW&4`GHoNroVMw_a
zAf`YJH&4$`W(dTYE;@fT9*;k{%N(?2Y{qgyn*9fHCMG5aaNv5peqAY%rmBM`C>kos
z9k^<*q_bVjowsXY4yuP!Bn=lnFR!d%b_{btsRB8b1e4bDel%&NuDMR_?$NM>gai{Z
z`-M>Z+))Vfz5I)>&7wn;ONJ>}0kRAErq%KB4;NKc6`Md)iSOO~QQ<>}NW}s9v#7ij
z=RnX1A^76&{umVv@bm!T0BW=9S_AGPf8`17a~V07#QOYMYYNsHciI$KJ~aQ)g55<_
zj@`~2JAnSB-9iW1+o#2ue$W;OItyx`i#?eRzk78m)04l%wYW@VS5#EwDu8YtgSRyj
z%*CXSA3uVuL!mUWIU~Uw{6y#E>3=EMTDr+!DZ0WT{jE!#1GO9+9CXT><;Fp)$`&OG
znz0mgo?d@*0c0SHi;Fkw3@+?P%Y6g=iloI67qtdCo02nBU(ni=bnV=kBPTwap408F
zJnMM27#I+Tvx?(20wx7ra06LjUNe7X&m{Bh`$E6zN%UZAiber&W;#T7V+(Nc694jh
z|IC;MEp4p-5*gS@oRJJo0bGrFXsVQy6bG&DjzxGyn}`=m2hsiA|Jj-N=5s4X8Bp~A
zS?0ThgyO|AckI}4veZ_}3H^R2F;H3kgfVqh@J2QPq;nim#-E90^*l?I#dDZxVKghi
zjTO*}>Dz@aSpv->;}k?T$fMKSvAFD>^u(Qog({lu6c>OEPosQd;z|kt*SK&`mf4ax
zNw8CELPPPT_0lJdaYEcw&^91~l^w$gUDz3GSA;K4ks|Lh>efxwE!3^iZPOh%j|IJL
zhZTFiC*tyY2FpKwyp68dNmRT04Y{dhzXzqUah%hRmvOudxNaG~mgeRK-QrTWFRp&i
z)O9mgE3W{*@H79K8c4aPJ}>~h3a5Ua2OUj8hebtCt31FfC=J3@?EGez9jw9-NRTx^
zEvD!?dvg?;RP{S?pU$eQQWHZP7U%7d%uG~i-~sjkT^#+VD~t2ojueH5(e(NdWqwPp
zj&V44nU0PQ1we3(8}uD|-bJ@9-aIyyP)LpN2Br+HQW|k3fbXxJ#!l}Inj5*HKMh!1
zXxw|^-Rr6w6DdYZ1|*x>=~L}P7xVI`rmY-9Xc4q(@I&4kaNYWe#6s*@KkyXT=epmc
zW3s%9aS_O~>#wBYO79s<<t{9{Qkj9p5qS=x3qZ-BM9Kl{VP@t)ox3Urgn@7|fjXQf
z!4C=Qw<hX;fP!JayNGUjML<mdSuiXtw;n%v$zfIAtGo^K&KjQ1{FI>%SpK-8j`Cii
zV-V=58R2sV!>fE#Pr_&%YeXXBWL(V*8D1K;0Qa9e8^^wi2@n?w2R|k2orE8xxjxhY
zmZ<5SRo^nrV&SOWJt!gK{{8#Yzj<<A`Pj~mKp(Jk($!Vv^a8`|O3n*^JsEa}DftAv
z2S6COG3a;>2O|d>fLRsDmI@R@Z(`~7UTwETh5l1a;M?QBeDxZt!m!5(tOC&O7yLFU
z$%S>CPN%DP2oAvoi7XtR(}!a{r03ZJbP$Z5-~kP~ZIip>;;lMGC!4I{;h|ekf#!FE
zM~|6&19%^hw<YOkS1kNUF$(IJW{#b8FOhc0@et&9m@0Y###2Q(y}7qGF^kN5%Kg|Z
z%>+SDr|#x={YN*N{}`xvl&C-IUigHAZS(ZIU^r_rP=-17(hb4eGT0w$cOM*O9DQm)
zuvq+Oq^a0Xuwt;~+1KB-9FR27RR*c;MFVzWbA3N&p48?JJ%4|t45-&1{1>`$Rqsmv
IrTdTn0|#irRsaA1

literal 0
HcmV?d00001

diff --git a/civicrm/ext/message_admin/info.xml b/civicrm/ext/message_admin/info.xml
new file mode 100644
index 0000000000..4f05213f31
--- /dev/null
+++ b/civicrm/ext/message_admin/info.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<extension key="message_admin" type="module">
+  <file>message_admin</file>
+  <name>Message Administration</name>
+  <description>Rich interface for browsing, editing, previewing, and translating message templates</description>
+  <license>AGPL-3.0</license>
+  <maintainer>
+    <author>CiviCRM</author>
+    <email>info@civicrm.org</email>
+  </maintainer>
+  <urls>
+    <url desc="Main Extension Page">http://civicrm.org</url>
+    <url desc="Documentation">http://civicrm.org</url>
+    <url desc="Support">http://civicrm.org</url>
+    <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
+  </urls>
+  <releaseDate>2021-06-12</releaseDate>
+  <version>5.43.0</version>
+  <tags>
+    <tag>mgmt:hidden</tag>
+  </tags>
+  <develStage>alpha</develStage>
+  <compatibility>
+    <ver>5.43</ver>
+  </compatibility>
+  <requires>
+    <ext>org.civicrm.afform</ext>
+  </requires>
+  <comments/>
+  <classloader>
+    <psr4 prefix="Civi\" path="Civi"/>
+  </classloader>
+  <civix>
+    <namespace>CRM/MessageAdmin</namespace>
+  </civix>
+</extension>
diff --git a/civicrm/ext/message_admin/message_admin.civix.php b/civicrm/ext/message_admin/message_admin.civix.php
new file mode 100644
index 0000000000..d030462a2f
--- /dev/null
+++ b/civicrm/ext/message_admin/message_admin.civix.php
@@ -0,0 +1,453 @@
+<?php
+
+// AUTO-GENERATED FILE -- Civix may overwrite any changes made to this file
+
+/**
+ * The ExtensionUtil class provides small stubs for accessing resources of this
+ * extension.
+ */
+class CRM_MessageAdmin_ExtensionUtil {
+  const SHORT_NAME = 'message_admin';
+  const LONG_NAME = 'message_admin';
+  const CLASS_PREFIX = 'CRM_MessageAdmin';
+
+  /**
+   * Translate a string using the extension's domain.
+   *
+   * If the extension doesn't have a specific translation
+   * for the string, fallback to the default translations.
+   *
+   * @param string $text
+   *   Canonical message text (generally en_US).
+   * @param array $params
+   * @return string
+   *   Translated text.
+   * @see ts
+   */
+  public static function ts($text, $params = []) {
+    if (!array_key_exists('domain', $params)) {
+      $params['domain'] = [self::LONG_NAME, NULL];
+    }
+    return ts($text, $params);
+  }
+
+  /**
+   * Get the URL of a resource file (in this extension).
+   *
+   * @param string|NULL $file
+   *   Ex: NULL.
+   *   Ex: 'css/foo.css'.
+   * @return string
+   *   Ex: 'http://example.org/sites/default/ext/org.example.foo'.
+   *   Ex: 'http://example.org/sites/default/ext/org.example.foo/css/foo.css'.
+   */
+  public static function url($file = NULL) {
+    if ($file === NULL) {
+      return rtrim(CRM_Core_Resources::singleton()->getUrl(self::LONG_NAME), '/');
+    }
+    return CRM_Core_Resources::singleton()->getUrl(self::LONG_NAME, $file);
+  }
+
+  /**
+   * Get the path of a resource file (in this extension).
+   *
+   * @param string|NULL $file
+   *   Ex: NULL.
+   *   Ex: 'css/foo.css'.
+   * @return string
+   *   Ex: '/var/www/example.org/sites/default/ext/org.example.foo'.
+   *   Ex: '/var/www/example.org/sites/default/ext/org.example.foo/css/foo.css'.
+   */
+  public static function path($file = NULL) {
+    // return CRM_Core_Resources::singleton()->getPath(self::LONG_NAME, $file);
+    return __DIR__ . ($file === NULL ? '' : (DIRECTORY_SEPARATOR . $file));
+  }
+
+  /**
+   * Get the name of a class within this extension.
+   *
+   * @param string $suffix
+   *   Ex: 'Page_HelloWorld' or 'Page\\HelloWorld'.
+   * @return string
+   *   Ex: 'CRM_Foo_Page_HelloWorld'.
+   */
+  public static function findClass($suffix) {
+    return self::CLASS_PREFIX . '_' . str_replace('\\', '_', $suffix);
+  }
+
+}
+
+use CRM_MessageAdmin_ExtensionUtil as E;
+
+/**
+ * (Delegated) Implements hook_civicrm_config().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_config
+ */
+function _message_admin_civix_civicrm_config(&$config = NULL) {
+  static $configured = FALSE;
+  if ($configured) {
+    return;
+  }
+  $configured = TRUE;
+
+  $template =& CRM_Core_Smarty::singleton();
+
+  $extRoot = dirname(__FILE__) . DIRECTORY_SEPARATOR;
+  $extDir = $extRoot . 'templates';
+
+  if (is_array($template->template_dir)) {
+    array_unshift($template->template_dir, $extDir);
+  }
+  else {
+    $template->template_dir = [$extDir, $template->template_dir];
+  }
+
+  $include_path = $extRoot . PATH_SEPARATOR . get_include_path();
+  set_include_path($include_path);
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_xmlMenu().
+ *
+ * @param $files array(string)
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_xmlMenu
+ */
+function _message_admin_civix_civicrm_xmlMenu(&$files) {
+  foreach (_message_admin_civix_glob(__DIR__ . '/xml/Menu/*.xml') as $file) {
+    $files[] = $file;
+  }
+}
+
+/**
+ * Implements hook_civicrm_install().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_install
+ */
+function _message_admin_civix_civicrm_install() {
+  _message_admin_civix_civicrm_config();
+  if ($upgrader = _message_admin_civix_upgrader()) {
+    $upgrader->onInstall();
+  }
+}
+
+/**
+ * Implements hook_civicrm_postInstall().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_postInstall
+ */
+function _message_admin_civix_civicrm_postInstall() {
+  _message_admin_civix_civicrm_config();
+  if ($upgrader = _message_admin_civix_upgrader()) {
+    if (is_callable([$upgrader, 'onPostInstall'])) {
+      $upgrader->onPostInstall();
+    }
+  }
+}
+
+/**
+ * Implements hook_civicrm_uninstall().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_uninstall
+ */
+function _message_admin_civix_civicrm_uninstall() {
+  _message_admin_civix_civicrm_config();
+  if ($upgrader = _message_admin_civix_upgrader()) {
+    $upgrader->onUninstall();
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_enable().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_enable
+ */
+function _message_admin_civix_civicrm_enable() {
+  _message_admin_civix_civicrm_config();
+  if ($upgrader = _message_admin_civix_upgrader()) {
+    if (is_callable([$upgrader, 'onEnable'])) {
+      $upgrader->onEnable();
+    }
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_disable().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_disable
+ * @return mixed
+ */
+function _message_admin_civix_civicrm_disable() {
+  _message_admin_civix_civicrm_config();
+  if ($upgrader = _message_admin_civix_upgrader()) {
+    if (is_callable([$upgrader, 'onDisable'])) {
+      $upgrader->onDisable();
+    }
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_upgrade().
+ *
+ * @param $op string, the type of operation being performed; 'check' or 'enqueue'
+ * @param $queue CRM_Queue_Queue, (for 'enqueue') the modifiable list of pending up upgrade tasks
+ *
+ * @return mixed
+ *   based on op. for 'check', returns array(boolean) (TRUE if upgrades are pending)
+ *   for 'enqueue', returns void
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_upgrade
+ */
+function _message_admin_civix_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
+  if ($upgrader = _message_admin_civix_upgrader()) {
+    return $upgrader->onUpgrade($op, $queue);
+  }
+}
+
+/**
+ * @return CRM_MessageAdmin_Upgrader
+ */
+function _message_admin_civix_upgrader() {
+  if (!file_exists(__DIR__ . '/CRM/MessageAdmin/Upgrader.php')) {
+    return NULL;
+  }
+  else {
+    return CRM_MessageAdmin_Upgrader_Base::instance();
+  }
+}
+
+/**
+ * Search directory tree for files which match a glob pattern.
+ *
+ * Note: Dot-directories (like "..", ".git", or ".svn") will be ignored.
+ * Note: Delegate to CRM_Utils_File::findFiles(), this function kept only
+ * for backward compatibility of extension code that uses it.
+ *
+ * @param string $dir base dir
+ * @param string $pattern , glob pattern, eg "*.txt"
+ *
+ * @return array
+ */
+function _message_admin_civix_find_files($dir, $pattern) {
+  return CRM_Utils_File::findFiles($dir, $pattern);
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_managed().
+ *
+ * Find any *.mgd.php files, merge their content, and return.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_managed
+ */
+function _message_admin_civix_civicrm_managed(&$entities) {
+  $mgdFiles = _message_admin_civix_find_files(__DIR__, '*.mgd.php');
+  sort($mgdFiles);
+  foreach ($mgdFiles as $file) {
+    $es = include $file;
+    foreach ($es as $e) {
+      if (empty($e['module'])) {
+        $e['module'] = E::LONG_NAME;
+      }
+      if (empty($e['params']['version'])) {
+        $e['params']['version'] = '3';
+      }
+      $entities[] = $e;
+    }
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_caseTypes().
+ *
+ * Find any and return any files matching "xml/case/*.xml"
+ *
+ * Note: This hook only runs in CiviCRM 4.4+.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_caseTypes
+ */
+function _message_admin_civix_civicrm_caseTypes(&$caseTypes) {
+  if (!is_dir(__DIR__ . '/xml/case')) {
+    return;
+  }
+
+  foreach (_message_admin_civix_glob(__DIR__ . '/xml/case/*.xml') as $file) {
+    $name = preg_replace('/\.xml$/', '', basename($file));
+    if ($name != CRM_Case_XMLProcessor::mungeCaseType($name)) {
+      $errorMessage = sprintf("Case-type file name is malformed (%s vs %s)", $name, CRM_Case_XMLProcessor::mungeCaseType($name));
+      throw new CRM_Core_Exception($errorMessage);
+    }
+    $caseTypes[$name] = [
+      'module' => E::LONG_NAME,
+      'name' => $name,
+      'file' => $file,
+    ];
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_angularModules().
+ *
+ * Find any and return any files matching "ang/*.ang.php"
+ *
+ * Note: This hook only runs in CiviCRM 4.5+.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_angularModules
+ */
+function _message_admin_civix_civicrm_angularModules(&$angularModules) {
+  if (!is_dir(__DIR__ . '/ang')) {
+    return;
+  }
+
+  $files = _message_admin_civix_glob(__DIR__ . '/ang/*.ang.php');
+  foreach ($files as $file) {
+    $name = preg_replace(':\.ang\.php$:', '', basename($file));
+    $module = include $file;
+    if (empty($module['ext'])) {
+      $module['ext'] = E::LONG_NAME;
+    }
+    $angularModules[$name] = $module;
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_themes().
+ *
+ * Find any and return any files matching "*.theme.php"
+ */
+function _message_admin_civix_civicrm_themes(&$themes) {
+  $files = _message_admin_civix_glob(__DIR__ . '/*.theme.php');
+  foreach ($files as $file) {
+    $themeMeta = include $file;
+    if (empty($themeMeta['name'])) {
+      $themeMeta['name'] = preg_replace(':\.theme\.php$:', '', basename($file));
+    }
+    if (empty($themeMeta['ext'])) {
+      $themeMeta['ext'] = E::LONG_NAME;
+    }
+    $themes[$themeMeta['name']] = $themeMeta;
+  }
+}
+
+/**
+ * Glob wrapper which is guaranteed to return an array.
+ *
+ * The documentation for glob() says, "On some systems it is impossible to
+ * distinguish between empty match and an error." Anecdotally, the return
+ * result for an empty match is sometimes array() and sometimes FALSE.
+ * This wrapper provides consistency.
+ *
+ * @link http://php.net/glob
+ * @param string $pattern
+ *
+ * @return array
+ */
+function _message_admin_civix_glob($pattern) {
+  $result = glob($pattern);
+  return is_array($result) ? $result : [];
+}
+
+/**
+ * Inserts a navigation menu item at a given place in the hierarchy.
+ *
+ * @param array $menu - menu hierarchy
+ * @param string $path - path to parent of this item, e.g. 'my_extension/submenu'
+ *    'Mailing', or 'Administer/System Settings'
+ * @param array $item - the item to insert (parent/child attributes will be
+ *    filled for you)
+ *
+ * @return bool
+ */
+function _message_admin_civix_insert_navigation_menu(&$menu, $path, $item) {
+  // If we are done going down the path, insert menu
+  if (empty($path)) {
+    $menu[] = [
+      'attributes' => array_merge([
+        'label'      => CRM_Utils_Array::value('name', $item),
+        'active'     => 1,
+      ], $item),
+    ];
+    return TRUE;
+  }
+  else {
+    // Find an recurse into the next level down
+    $found = FALSE;
+    $path = explode('/', $path);
+    $first = array_shift($path);
+    foreach ($menu as $key => &$entry) {
+      if ($entry['attributes']['name'] == $first) {
+        if (!isset($entry['child'])) {
+          $entry['child'] = [];
+        }
+        $found = _message_admin_civix_insert_navigation_menu($entry['child'], implode('/', $path), $item);
+      }
+    }
+    return $found;
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_navigationMenu().
+ */
+function _message_admin_civix_navigationMenu(&$nodes) {
+  if (!is_callable(['CRM_Core_BAO_Navigation', 'fixNavigationMenu'])) {
+    _message_admin_civix_fixNavigationMenu($nodes);
+  }
+}
+
+/**
+ * Given a navigation menu, generate navIDs for any items which are
+ * missing them.
+ */
+function _message_admin_civix_fixNavigationMenu(&$nodes) {
+  $maxNavID = 1;
+  array_walk_recursive($nodes, function($item, $key) use (&$maxNavID) {
+    if ($key === 'navID') {
+      $maxNavID = max($maxNavID, $item);
+    }
+  });
+  _message_admin_civix_fixNavigationMenuItems($nodes, $maxNavID, NULL);
+}
+
+function _message_admin_civix_fixNavigationMenuItems(&$nodes, &$maxNavID, $parentID) {
+  $origKeys = array_keys($nodes);
+  foreach ($origKeys as $origKey) {
+    if (!isset($nodes[$origKey]['attributes']['parentID']) && $parentID !== NULL) {
+      $nodes[$origKey]['attributes']['parentID'] = $parentID;
+    }
+    // If no navID, then assign navID and fix key.
+    if (!isset($nodes[$origKey]['attributes']['navID'])) {
+      $newKey = ++$maxNavID;
+      $nodes[$origKey]['attributes']['navID'] = $newKey;
+      $nodes[$newKey] = $nodes[$origKey];
+      unset($nodes[$origKey]);
+      $origKey = $newKey;
+    }
+    if (isset($nodes[$origKey]['child']) && is_array($nodes[$origKey]['child'])) {
+      _message_admin_civix_fixNavigationMenuItems($nodes[$origKey]['child'], $maxNavID, $nodes[$origKey]['attributes']['navID']);
+    }
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_alterSettingsFolders().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterSettingsFolders
+ */
+function _message_admin_civix_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) {
+  $settingsDir = __DIR__ . DIRECTORY_SEPARATOR . 'settings';
+  if (!in_array($settingsDir, $metaDataFolders) && is_dir($settingsDir)) {
+    $metaDataFolders[] = $settingsDir;
+  }
+}
+
+/**
+ * (Delegated) Implements hook_civicrm_entityTypes().
+ *
+ * Find any *.entityType.php files, merge their content, and return.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_entityTypes
+ */
+function _message_admin_civix_civicrm_entityTypes(&$entityTypes) {
+  $entityTypes = array_merge($entityTypes, []);
+}
diff --git a/civicrm/ext/message_admin/message_admin.php b/civicrm/ext/message_admin/message_admin.php
new file mode 100644
index 0000000000..851e1fac48
--- /dev/null
+++ b/civicrm/ext/message_admin/message_admin.php
@@ -0,0 +1,182 @@
+<?php
+
+require_once 'message_admin.civix.php';
+// phpcs:disable
+use CRM_MessageAdmin_ExtensionUtil as E;
+// phpcs:enable
+
+/**
+ * Implements hook_civicrm_config().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_config/
+ */
+function message_admin_civicrm_config(&$config) {
+  _message_admin_civix_civicrm_config($config);
+}
+
+/**
+ * Implements hook_civicrm_xmlMenu().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_xmlMenu
+ */
+function message_admin_civicrm_xmlMenu(&$files) {
+  _message_admin_civix_civicrm_xmlMenu($files);
+}
+
+/**
+ * Implements hook_civicrm_install().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_install
+ */
+function message_admin_civicrm_install() {
+  _message_admin_civix_civicrm_install();
+}
+
+/**
+ * Implements hook_civicrm_postInstall().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_postInstall
+ */
+function message_admin_civicrm_postInstall() {
+  _message_admin_civix_civicrm_postInstall();
+}
+
+/**
+ * Implements hook_civicrm_uninstall().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_uninstall
+ */
+function message_admin_civicrm_uninstall() {
+  _message_admin_civix_civicrm_uninstall();
+}
+
+/**
+ * Implements hook_civicrm_enable().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_enable
+ */
+function message_admin_civicrm_enable() {
+  _message_admin_civix_civicrm_enable();
+}
+
+/**
+ * Implements hook_civicrm_disable().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_disable
+ */
+function message_admin_civicrm_disable() {
+  _message_admin_civix_civicrm_disable();
+}
+
+/**
+ * Implements hook_civicrm_upgrade().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_upgrade
+ */
+function message_admin_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
+  return _message_admin_civix_civicrm_upgrade($op, $queue);
+}
+
+/**
+ * Implements hook_civicrm_managed().
+ *
+ * Generate a list of entities to create/deactivate/delete when this module
+ * is installed, disabled, uninstalled.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_managed
+ */
+function message_admin_civicrm_managed(&$entities) {
+  _message_admin_civix_civicrm_managed($entities);
+}
+
+/**
+ * Implements hook_civicrm_caseTypes().
+ *
+ * Generate a list of case-types.
+ *
+ * Note: This hook only runs in CiviCRM 4.4+.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_caseTypes
+ */
+function message_admin_civicrm_caseTypes(&$caseTypes) {
+  _message_admin_civix_civicrm_caseTypes($caseTypes);
+}
+
+/**
+ * Implements hook_civicrm_angularModules().
+ *
+ * Generate a list of Angular modules.
+ *
+ * Note: This hook only runs in CiviCRM 4.5+. It may
+ * use features only available in v4.6+.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_angularModules
+ */
+function message_admin_civicrm_angularModules(&$angularModules) {
+  _message_admin_civix_civicrm_angularModules($angularModules);
+}
+
+/**
+ * Implements hook_civicrm_alterSettingsFolders().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterSettingsFolders
+ */
+function message_admin_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) {
+  _message_admin_civix_civicrm_alterSettingsFolders($metaDataFolders);
+}
+
+/**
+ * Implements hook_civicrm_entityTypes().
+ *
+ * Declare entity types provided by this module.
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_entityTypes
+ */
+function message_admin_civicrm_entityTypes(&$entityTypes) {
+  _message_admin_civix_civicrm_entityTypes($entityTypes);
+}
+
+/**
+ * Implements hook_civicrm_themes().
+ */
+function message_admin_civicrm_themes(&$themes) {
+  _message_admin_civix_civicrm_themes($themes);
+}
+
+// --- Functions below this ship commented out. Uncomment as required. ---
+
+/**
+ * Implements hook_civicrm_preProcess().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_preProcess
+ */
+//function message_admin_civicrm_preProcess($formName, &$form) {
+//
+//}
+
+/**
+ * Implements hook_civicrm_navigationMenu().
+ *
+ * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_navigationMenu
+ */
+//function message_admin_civicrm_navigationMenu(&$menu) {
+//  _message_admin_civix_insert_navigation_menu($menu, 'Mailings', array(
+//    'label' => E::ts('New subliminal message'),
+//    'name' => 'mailing_subliminal_message',
+//    'url' => 'civicrm/mailing/subliminal',
+//    'permission' => 'access CiviMail',
+//    'operator' => 'OR',
+//    'separator' => 0,
+//  ));
+//  _message_admin_civix_navigationMenu($menu);
+//}
+
+/**
+ * Mark these fields as translateable.
+ * @see CRM_Utils_Hook::translateFields
+ */
+function message_admin_civicrm_translateFields(&$fields) {
+  $fields['civicrm_msg_template']['msg_subject'] = TRUE;
+  $fields['civicrm_msg_template']['msg_text'] = TRUE;
+  $fields['civicrm_msg_template']['msg_html'] = TRUE;
+}
diff --git a/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Edit.hlp b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Edit.hlp
new file mode 100644
index 0000000000..ddea10c3e3
--- /dev/null
+++ b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Edit.hlp
@@ -0,0 +1,3 @@
+{htxt id="full_name"}
+{ts}The contact name  should be divided in two parts, the first name and last name.{/ts}
+{/htxt}
diff --git a/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Page/MsgtplBasePage.tpl b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Page/MsgtplBasePage.tpl
new file mode 100644
index 0000000000..0a3b96aa8c
--- /dev/null
+++ b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Page/MsgtplBasePage.tpl
@@ -0,0 +1,2 @@
+{* Placeholder *}
+
diff --git a/civicrm/ext/message_admin/templates/CRM/MessageAdmin/User.hlp b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/User.hlp
new file mode 100644
index 0000000000..ddea10c3e3
--- /dev/null
+++ b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/User.hlp
@@ -0,0 +1,3 @@
+{htxt id="full_name"}
+{ts}The contact name  should be divided in two parts, the first name and last name.{/ts}
+{/htxt}
diff --git a/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Workflow.hlp b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Workflow.hlp
new file mode 100644
index 0000000000..ddea10c3e3
--- /dev/null
+++ b/civicrm/ext/message_admin/templates/CRM/MessageAdmin/Workflow.hlp
@@ -0,0 +1,3 @@
+{htxt id="full_name"}
+{ts}The contact name  should be divided in two parts, the first name and last name.{/ts}
+{/htxt}
diff --git a/civicrm/ext/message_admin/xml/Menu/message_admin.xml b/civicrm/ext/message_admin/xml/Menu/message_admin.xml
new file mode 100644
index 0000000000..19a87a5a50
--- /dev/null
+++ b/civicrm/ext/message_admin/xml/Menu/message_admin.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<menu>
+  <item>
+    <path>civicrm/admin/messageTemplates</path>
+    <page_callback>CRM_MessageAdmin_Page_MsgtplBasePage</page_callback>
+    <title>MsgtplBasePage</title>
+    <access_arguments>access CiviCRM</access_arguments>
+  </item>
+</menu>
diff --git a/civicrm/ext/oauth-client/Civi/Api4/OAuthProvider.php b/civicrm/ext/oauth-client/Civi/Api4/OAuthProvider.php
index fc556d5192..726248815f 100644
--- a/civicrm/ext/oauth-client/Civi/Api4/OAuthProvider.php
+++ b/civicrm/ext/oauth-client/Civi/Api4/OAuthProvider.php
@@ -59,6 +59,9 @@ class OAuthProvider extends Generic\AbstractEntity {
         [
           'name' => 'options',
         ],
+        [
+          'name' => 'contactTemplate',
+        ],
       ];
     });
     return $action->setCheckPermissions($checkPermissions);
diff --git a/civicrm/ext/oauth-client/info.xml b/civicrm/ext/oauth-client/info.xml
index 1fbd3d4f60..f6c9354ed3 100644
--- a/civicrm/ext/oauth-client/info.xml
+++ b/civicrm/ext/oauth-client/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-10-23</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>stable</develStage>
   <compatibility>
     <ver>5.38</ver>
diff --git a/civicrm/ext/payflowpro/info.xml b/civicrm/ext/payflowpro/info.xml
index ea769b7c50..c29c81db22 100644
--- a/civicrm/ext/payflowpro/info.xml
+++ b/civicrm/ext/payflowpro/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-04-13</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>stable</develStage>
   <compatibility>
     <ver>5.0</ver>
diff --git a/civicrm/ext/payflowpro/tests/phpunit/bootstrap.php b/civicrm/ext/payflowpro/tests/phpunit/bootstrap.php
index a5b49253c8..5133778c81 100644
--- a/civicrm/ext/payflowpro/tests/phpunit/bootstrap.php
+++ b/civicrm/ext/payflowpro/tests/phpunit/bootstrap.php
@@ -1,7 +1,6 @@
 <?php
 
 ini_set('memory_limit', '2G');
-ini_set('safe_mode', 0);
 // phpcs:disable
 eval(cv('php:boot --level=classloader', 'phpcode'));
 // phpcs:enable
diff --git a/civicrm/ext/recaptcha/info.xml b/civicrm/ext/recaptcha/info.xml
index cac65d4a3b..fb037476fe 100644
--- a/civicrm/ext/recaptcha/info.xml
+++ b/civicrm/ext/recaptcha/info.xml
@@ -13,7 +13,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-04-03</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
diff --git a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php
index 0e025f27df..75269cefdd 100644
--- a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php
+++ b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php
@@ -41,6 +41,14 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
    */
   protected $filters = [];
 
+  /**
+   * Integer used as a seed when ordering by RAND().
+   * This keeps the order stable enough to use a pager with random sorting.
+   *
+   * @var int
+   */
+  protected $seed;
+
   /**
    * Name of Afform, if this display is embedded (used for permissioning)
    * @var string
@@ -121,20 +129,43 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
       $select[$expr->getAlias()] = $item;
     }
     $formatted = [];
-    foreach ($result as $data) {
+    foreach ($result as $index => $data) {
       $row = [];
       foreach ($select as $key => $item) {
-        $raw = $data[$key] ?? NULL;
-        $row[$key] = [
-          'raw' => $raw,
-          'view' => $this->formatViewValue($item['dataType'], $raw),
-        ];
+        $row[$key] = $this->getValue($key, $data, $item['dataType'], $index);
       }
       $formatted[] = $row;
     }
     return $formatted;
   }
 
+  /**
+   * @param $key
+   * @param $data
+   * @param $dataType
+   * @param $index
+   * @return array
+   */
+  private function getValue($key, $data, $dataType, $index) {
+    // Get value from api result unless this is a pseudo-field which gets a calculated value
+    switch ($key) {
+      case 'result_row_num':
+        $raw = $index + 1 + ($this->savedSearch['api_params']['offset'] ?? 0);
+        break;
+
+      case 'user_contact_id':
+        $raw = \CRM_Core_Session::getLoggedInContactID();
+        break;
+
+      default:
+        $raw = $data[$key] ?? NULL;
+    }
+    return [
+      'raw' => $raw,
+      'view' => $this->formatViewValue($dataType, $raw),
+    ];
+  }
+
   /**
    * Returns field definition for a given field or NULL if not found
    * @param $fieldName
@@ -186,17 +217,19 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
    * Applies supplied filters to the where clause
    */
   protected function applyFilters() {
+    // Allow all filters that are included in SELECT clause or are fields on the Afform.
+    $allowedFilters = array_merge($this->getSelectAliases(), $this->getAfformFilters());
+
     // Ignore empty strings
     $filters = array_filter($this->filters, [$this, 'hasValue']);
     if (!$filters) {
       return;
     }
 
-    // Process all filters that are included in SELECT clause or are allowed by the Afform.
-    $allowedFilters = array_merge($this->getSelectAliases(), $this->getAfformFilters());
-    foreach ($filters as $fieldName => $value) {
-      if (in_array($fieldName, $allowedFilters, TRUE)) {
-        $this->applyFilter($fieldName, $value);
+    foreach ($filters as $key => $value) {
+      $fieldNames = explode(',', $key);
+      if (in_array($key, $allowedFilters, TRUE) || !array_diff($fieldNames, $allowedFilters)) {
+        $this->applyFilter($fieldNames, $value);
       }
     }
   }
@@ -221,13 +254,16 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
   }
 
   /**
-   * @param string $fieldName
+   * @param array $fieldNames
+   *   If multiple field names are given they will be combined in an OR clause
    * @param mixed $value
    */
-  private function applyFilter(string $fieldName, $value) {
+  private function applyFilter(array $fieldNames, $value) {
     // Global setting determines if % wildcard should be added to both sides (default) or only the end of a search string
     $prefixWithWildcard = \Civi::settings()->get('includeWildCardInName');
 
+    // Based on the first field, decide which clause to add this condition to
+    $fieldName = $fieldNames[0];
     $field = $this->getField($fieldName);
     // If field is not found it must be an aggregated column & belongs in the HAVING clause.
     if (!$field) {
@@ -248,44 +284,57 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
       $clause =& $this->savedSearch['api_params']['where'];
     }
 
-    $dataType = $field['data_type'] ?? NULL;
-
-    // Array is either associative `OP => VAL` or sequential `IN (...)`
-    if (is_array($value)) {
-      $value = array_filter($value, [$this, 'hasValue']);
-      // If array does not contain operators as keys, assume array of values
-      if (array_diff_key($value, array_flip(CoreUtil::getOperators()))) {
-        // Use IN for regular fields
-        if (empty($field['serialize'])) {
-          $clause[] = [$fieldName, 'IN', $value];
+    $filterClauses = [];
+
+    foreach ($fieldNames as $fieldName) {
+      $field = $this->getField($fieldName);
+      $dataType = $field['data_type'] ?? NULL;
+      // Array is either associative `OP => VAL` or sequential `IN (...)`
+      if (is_array($value)) {
+        $value = array_filter($value, [$this, 'hasValue']);
+        // If array does not contain operators as keys, assume array of values
+        if (array_diff_key($value, array_flip(CoreUtil::getOperators()))) {
+          // Use IN for regular fields
+          if (empty($field['serialize'])) {
+            $filterClauses[] = [$fieldName, 'IN', $value];
+          }
+          // Use an OR group of CONTAINS for array fields
+          else {
+            $orGroup = [];
+            foreach ($value as $val) {
+              $orGroup[] = [$fieldName, 'CONTAINS', $val];
+            }
+            $filterClauses[] = ['OR', $orGroup];
+          }
         }
-        // Use an OR group of CONTAINS for array fields
+        // Operator => Value array
         else {
-          $orGroup = [];
-          foreach ($value as $val) {
-            $orGroup[] = [$fieldName, 'CONTAINS', $val];
+          $andGroup = [];
+          foreach ($value as $operator => $val) {
+            $andGroup[] = [$fieldName, $operator, $val];
           }
-          $clause[] = ['OR', $orGroup];
+          $filterClauses[] = ['AND', $andGroup];
         }
       }
-      // Operator => Value array
+      elseif (!empty($field['serialize'])) {
+        $filterClauses[] = [$fieldName, 'CONTAINS', $value];
+      }
+      elseif (!empty($field['options']) || in_array($dataType, ['Integer', 'Boolean', 'Date', 'Timestamp'])) {
+        $filterClauses[] = [$fieldName, '=', $value];
+      }
+      elseif ($prefixWithWildcard) {
+        $filterClauses[] = [$fieldName, 'CONTAINS', $value];
+      }
       else {
-        foreach ($value as $operator => $val) {
-          $clause[] = [$fieldName, $operator, $val];
-        }
+        $filterClauses[] = [$fieldName, 'LIKE', $value . '%'];
       }
     }
-    elseif (!empty($field['serialize'])) {
-      $clause[] = [$fieldName, 'CONTAINS', $value];
-    }
-    elseif (!empty($field['options']) || in_array($dataType, ['Integer', 'Boolean', 'Date', 'Timestamp'])) {
-      $clause[] = [$fieldName, '=', $value];
-    }
-    elseif ($prefixWithWildcard) {
-      $clause[] = [$fieldName, 'CONTAINS', $value];
+    // Single field
+    if (count($filterClauses) === 1) {
+      $clause[] = $filterClauses[0];
     }
     else {
-      $clause[] = [$fieldName, 'LIKE', $value . '%'];
+      $clause[] = ['OR', $filterClauses];
     }
   }
 
@@ -308,6 +357,10 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
 
     $orderBy = [];
     foreach ($currentSort ?: $defaultSort as $item) {
+      // Apply seed to random sorting
+      if ($item[0] === 'RAND()' && isset($this->seed)) {
+        $item[0] = 'RAND(' . $this->seed . ')';
+      }
       $orderBy[$item[0]] = $item[1];
     }
     return $orderBy;
@@ -347,9 +400,36 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
     preg_match_all('/\\[([^]]+)\\]/', $possibleTokens, $tokens);
     // Only add fields not already in SELECT clause
     $additions = array_diff(array_merge($additions, $tokens[1]), $existing);
+    // Tokens for aggregated columns start with 'GROUP_CONCAT_'
+    foreach ($additions as $index => $alias) {
+      if (strpos($alias, 'GROUP_CONCAT_') === 0) {
+        $additions[$index] = 'GROUP_CONCAT(' . $this->getJoinFromAlias(explode('_', $alias, 3)[2]) . ') AS ' . $alias;
+      }
+    }
     $apiParams['select'] = array_unique(array_merge($apiParams['select'], $additions));
   }
 
+  /**
+   * Given an alias like Contact_Email_01_location_type_id
+   * this will return Contact_Email_01.location_type_id
+   * @param string $alias
+   * @return string
+   */
+  protected function getJoinFromAlias(string $alias) {
+    $result = '';
+    foreach ($this->savedSearch['api_params']['join'] ?? [] as $join) {
+      $joinName = explode(' AS ', $join[0])[1];
+      if (strpos($alias, $joinName) === 0) {
+        $parsed = $joinName . '.' . substr($alias, strlen($joinName) + 1);
+        // Ensure we are using the longest match
+        if (strlen($parsed) > strlen($result)) {
+          $result = $parsed;
+        }
+      }
+    }
+    return $result;
+  }
+
   /**
    * Checks if a filter contains a non-empty value
    *
@@ -384,11 +464,17 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
     $filterAttr = $afform['searchDisplay']['filters'] ?? NULL;
     if ($filterAttr && is_string($filterAttr) && $filterAttr[0] === '{') {
       foreach (\CRM_Utils_JS::decode($filterAttr) as $filterKey => $filterVal) {
-        $filterKeys[] = $filterKey;
         // Automatically apply filters from the markup if they have a value
-        // (if it's a javascript variable it will have come back from decode() as NULL and we'll ignore it).
-        if ($this->hasValue($filterVal)) {
-          $this->applyFilter($filterKey, $filterVal);
+        if ($filterVal !== NULL) {
+          unset($this->filters[$filterKey]);
+          if ($this->hasValue($filterVal)) {
+            $this->applyFilter(explode(',', $filterKey), $filterVal);
+          }
+        }
+        // If it's a javascript variable it will have come back from decode() as NULL;
+        // whitelist it to allow it to be passed to this api from javascript.
+        else {
+          $filterKeys[] = $filterKey;
         }
       }
     }
@@ -423,4 +509,33 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
     return $this->_afform;
   }
 
+  /**
+   * Extra calculated fields provided by SearchKit
+   * @return array[]
+   */
+  public static function getPseudoFields(): array {
+    return [
+      [
+        'name' => 'result_row_num',
+        'fieldName' => 'result_row_num',
+        'title' => ts('Row Number'),
+        'label' => ts('Row Number'),
+        'description' => ts('Index of each row, starting from 1 on the first page'),
+        'type' => 'Pseudo',
+        'data_type' => 'Integer',
+        'readonly' => TRUE,
+      ],
+      [
+        'name' => 'user_contact_id',
+        'fieldName' => 'result_row_num',
+        'title' => ts('Current User ID'),
+        'label' => ts('Current User ID'),
+        'description' => ts('Contact ID of the current user if logged in'),
+        'type' => 'Pseudo',
+        'data_type' => 'Integer',
+        'readonly' => TRUE,
+      ],
+    ];
+  }
+
 }
diff --git a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Download.php b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Download.php
index 3371bfdc05..0d48360306 100644
--- a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Download.php
+++ b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Download.php
@@ -7,19 +7,24 @@ use League\Csv\Writer;
 /**
  * Download the results of a SearchDisplay as a spreadsheet.
  *
- * Note: unlike other APIs this action directly outputs a file.
+ * Note: unlike other APIs this action will directly output a file
+ * if 'format' is set to anything other than 'array'.
  *
  * @package Civi\Api4\Action\SearchDisplay
  */
 class Download extends AbstractRunAction {
 
   /**
-   * Requested file format
+   * Requested file format.
+   *
+   * 'array' will return a normal api result, with table headers as the first row.
+   * 'csv', etc. will directly output a file to the browser.
+   *
    * @var string
    * @required
-   * @options csv
+   * @options array,csv
    */
-  protected $format;
+  protected $format = 'array';
 
   /**
    * @param \Civi\Api4\Generic\Result $result
@@ -60,6 +65,17 @@ class Download extends AbstractRunAction {
     $fileName = \CRM_Utils_File::makeFilenameWithUnicode($this->display['label']) . '.' . $this->format;
 
     switch ($this->format) {
+      case 'array':
+        $result[] = $columns;
+        foreach ($rows as $data) {
+          $row = [];
+          foreach ($columns as $col) {
+            $row[] = $this->formatColumnValue($col, $data);
+          }
+          $result[] = $row;
+        }
+        return;
+
       case 'csv':
         $this->outputCSV($rows, $columns, $fileName);
         break;
diff --git a/civicrm/ext/search_kit/Civi/Search/Admin.php b/civicrm/ext/search_kit/Civi/Search/Admin.php
index 963b02c44d..1e05fa1a57 100644
--- a/civicrm/ext/search_kit/Civi/Search/Admin.php
+++ b/civicrm/ext/search_kit/Civi/Search/Admin.php
@@ -11,6 +11,10 @@
 
 namespace Civi\Search;
 
+use Civi\Api4\Action\SearchDisplay\AbstractRunAction;
+use Civi\Api4\Query\SqlEquation;
+use Civi\Api4\Query\SqlFunction;
+use Civi\Api4\Tag;
 use CRM_Search_ExtensionUtil as E;
 
 /**
@@ -28,13 +32,18 @@ class Admin {
     return [
       'schema' => self::addImplicitFKFields($schema),
       'joins' => self::getJoins($schema),
+      'pseudoFields' => AbstractRunAction::getPseudoFields(),
       'operators' => \CRM_Utils_Array::makeNonAssociative(self::getOperators()),
-      'functions' => \CRM_Api4_Page_Api4Explorer::getSqlFunctions(),
+      'functions' => self::getSqlFunctions(),
       'displayTypes' => Display::getDisplayTypes(['id', 'name', 'label', 'description', 'icon']),
       'styles' => \CRM_Utils_Array::makeNonAssociative(self::getStyles()),
       'defaultPagerSize' => \Civi::settings()->get('default_pager_size'),
       'afformEnabled' => $extensions->isActiveModule('afform'),
       'afformAdminEnabled' => $extensions->isActiveModule('afform_admin'),
+      'tags' => Tag::get()
+        ->addSelect('id', 'name', 'color', 'is_selectable', 'description')
+        ->addWhere('used_for', 'CONTAINS', 'civicrm_saved_search')
+        ->execute(),
     ];
   }
 
@@ -53,7 +62,9 @@ class Admin {
       'IN' => E::ts('Is One Of'),
       'NOT IN' => E::ts('Not One Of'),
       'LIKE' => E::ts('Is Like'),
+      'REGEXP' => E::ts('Matches Regexp'),
       'NOT LIKE' => E::ts('Not Like'),
+      'NOT REGEXP' => E::ts('Not Regexp'),
       'BETWEEN' => E::ts('Is Between'),
       'NOT BETWEEN' => E::ts('Not Between'),
       'IS EMPTY' => E::ts('Is Empty'),
@@ -109,6 +120,13 @@ class Admin {
         ]);
         foreach ($getFields as $field) {
           $field['fieldName'] = $field['name'];
+          // Hack for RelationshipCache to make Relationship fields editable
+          if ($entity['name'] === 'RelationshipCache') {
+            $entity['primary_key'] = ['relationship_id'];
+            if (in_array($field['name'], ['is_active', 'start_date', 'end_date'])) {
+              $field['readonly'] = FALSE;
+            }
+          }
           $entity['fields'][] = $field;
         }
         $params = $entity['get'][0];
@@ -339,13 +357,20 @@ class Admin {
     foreach ($entities as $entity) {
       foreach ($entity['ui_join_filters'] ?? [] as $fieldName) {
         $field = civicrm_api4($entity['name'], 'getFields', [
-          'select' => ['options'],
+          'select' => ['options', 'data_type'],
           'where' => [['name', '=', $fieldName]],
           'loadOptions' => ['name'],
         ])->first();
-        $value = isset($field['options'][0]) ? json_encode($field['options'][0]['name']) : '';
+        $value = '';
+        if ($field['data_type'] === 'Boolean') {
+          $value = TRUE;
+        }
+        elseif (isset($field['options'][0])) {
+          $fieldName .= ':name';
+          $value = json_encode($field['options'][0]['name']);
+        }
         $conditions[] = [
-          $alias . '.' . $fieldName . ($value ? ':name' : ''),
+          $alias . '.' . $fieldName,
           '=',
           $value,
         ];
@@ -354,4 +379,41 @@ class Admin {
     return $conditions;
   }
 
+  private static function getSqlFunctions() {
+    $functions = \CRM_Api4_Page_Api4Explorer::getSqlFunctions();
+    // Add faux function "e" for SqlEquations
+    $functions[] = [
+      'name' => 'e',
+      'title' => ts('Arithmetic'),
+      'description' => ts('Add, subtract, multiply, divide'),
+      'category' => SqlFunction::CATEGORY_MATH,
+      'dataType' => 'Number',
+      'params' => [
+        [
+          'label' => ts('Value'),
+          'min_expr' => 1,
+          'max_expr' => 1,
+          'must_be' => ['SqlField', 'SqlNumber'],
+        ],
+        [
+          'label' => ts('Value'),
+          'min_expr' => 1,
+          'max_expr' => 99,
+          'flag_before' => array_combine(SqlEquation::$arithmeticOperators, SqlEquation::$arithmeticOperators),
+          'must_be' => ['SqlField', 'SqlNumber'],
+        ],
+      ],
+    ];
+    // Filter out empty param properties (simplifies the javascript which treats empty arrays/objects as != null)
+    foreach ($functions as &$function) {
+      foreach ($function['params'] as $i => $param) {
+        $function['params'][$i] = array_filter($param);
+      }
+    }
+    usort($functions, function($a, $b) {
+      return $a['title'] <=> $b['title'];
+    });
+    return $functions;
+  }
+
 }
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin.module.js b/civicrm/ext/search_kit/ang/crmSearchAdmin.module.js
index 265d5708ac..ee6bb116f5 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin.module.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin.module.js
@@ -29,7 +29,12 @@
           savedSearch: function($route, crmApi4) {
             var params = $route.current.params;
             return crmApi4('SavedSearch', 'get', {
+              select: ['*', 'GROUP_CONCAT(DISTINCT entity_tag.tag_id) AS tag_id'],
               where: [['id', '=', params.id]],
+              join: [
+                ['EntityTag AS entity_tag', 'LEFT', ['entity_tag.entity_table', '=', '"civicrm_saved_search"'], ['id', '=', 'entity_tag.entity_id']],
+              ],
+              groupBy: ['id'],
               chain: {
                 groups: ['Group', 'get', {select: ['id', 'title', 'description', 'visibility', 'group_type', 'custom.*'], where: [['saved_search_id', '=', '$id']]}],
                 displays: ['SearchDisplay', 'get', {where: [['saved_search_id', '=', '$id']]}]
@@ -45,7 +50,7 @@
       searchEntity = $routeParams.entity;
       $scope.$ctrl = this;
       this.savedSearch = {
-        api_entity: searchEntity,
+        api_entity: searchEntity
       };
       // Changing entity will refresh the angular page
       $scope.$watch('$ctrl.savedSearch.api_entity', function(newEntity, oldEntity) {
@@ -62,7 +67,7 @@
       $scope.$ctrl = this;
     })
 
-    .factory('searchMeta', function($q) {
+    .factory('searchMeta', function($q, formatForSelect2) {
       function getEntity(entityName) {
         if (entityName) {
           return _.find(CRM.crmSearchAdmin.schema, {name: entityName});
@@ -132,58 +137,158 @@
         if (!field && join && join.bridge) {
           field = _.find(getEntity(join.bridge).fields, {name: name});
         }
+        // Might be a pseudoField
+        if (!field) {
+          field = _.cloneDeep(_.find(CRM.crmSearchAdmin.pseudoFields, {name: name}));
+        }
         if (field) {
           field.baseEntity = entityName;
           return {field: field, join: join};
         }
       }
+      function parseFnArgs(info, expr) {
+        var fnName = expr.split('(')[0],
+          argString = expr.substr(fnName.length + 1, expr.length - fnName.length - 2);
+        info.fn = _.find(CRM.crmSearchAdmin.functions, {name: fnName || 'e'});
+
+        function getKeyword(whitelist) {
+          var keyword;
+          _.each(whitelist, function(flag) {
+            if (argString.indexOf(flag) === 0) {
+              keyword = flag;
+              argString = _.trim(argString.substr(flag.length));
+              return false;
+            }
+          });
+          return keyword;
+        }
+
+        function getExpr() {
+          var expr;
+          if (argString.indexOf('"') === 0) {
+            // Match double-quoted string
+            expr = argString.match(/"([^"\\]|\\.)*"/)[0];
+          } else if (argString.indexOf("'") === 0) {
+            // Match single-quoted string
+            expr = argString.match(/'([^'\\]|\\.)*'/)[0];
+          } else {
+            // Match anything else
+            expr = argString.match(/[^ ,]+/)[0];
+          }
+          if (expr) {
+            argString = _.trim(argString.substr(expr.length));
+            return parseArg(expr);
+          }
+        }
+
+        _.each(info.fn.params, function(param, index) {
+          var exprCount = 0,
+            expr, flagBefore;
+          argString = _.trim(argString);
+          if (!argString.length || (param.name && !getKeyword(param.name))) {
+            return false;
+          }
+          if (param.max_expr) {
+            while (++exprCount <= param.max_expr && argString.length) {
+              flagBefore = getKeyword(_.keys(param.flag_before || {}));
+              expr = getExpr();
+              if (expr) {
+                expr.param = param.name || index;
+                expr.flag_before = flagBefore;
+                info.args.push(expr);
+              }
+              // Only continue if an expression was found and followed by a comma
+              if (!expr) {
+                break;
+              }
+              getKeyword([',']);
+            }
+            if (expr && !_.isEmpty(expr.flag_after)) {
+              _.last(info.args).flag_after = getKeyword(_.keys(param.flag_after));
+            }
+          }
+        });
+      }
+      // @param {String} arg
+      function parseArg(arg) {
+        arg = _.trim(arg);
+        if (arg && !isNaN(arg)) {
+          return {
+            type: 'number',
+            value: +arg
+          };
+        } else if (_.includes(['"', "'"], arg.substr(0, 1))) {
+          return {
+            type: 'string',
+            value: arg.substr(1, arg.length - 2)
+          };
+        } else if (arg) {
+          var fieldAndJoin = getFieldAndJoin(arg, searchEntity);
+          if (fieldAndJoin) {
+            var split = arg.split(':'),
+              prefixPos = split[0].lastIndexOf(fieldAndJoin.field.name);
+            return {
+              type: 'field',
+              value: arg,
+              path: split[0],
+              field: fieldAndJoin.field,
+              join: fieldAndJoin.join,
+              prefix: prefixPos > 0 ? split[0].substring(0, prefixPos) : '',
+              suffix: !split[1] ? '' : ':' + split[1]
+            };
+          }
+        }
+      }
       function parseExpr(expr) {
         if (!expr) {
           return;
         }
         var splitAs = expr.split(' AS '),
-          info = {fn: null, modifier: '', field: {}, alias: _.last(splitAs)},
-          fieldName = splitAs[0],
-          bracketPos = splitAs[0].indexOf('(');
+          info = {fn: null, args: [], alias: _.last(splitAs)},
+          bracketPos = expr.indexOf('(');
         if (bracketPos >= 0) {
-          var parsed = splitAs[0].substr(bracketPos).match(/[ ]?([A-Z]+[ ]+)?([\w.:]+)/);
-          fieldName = parsed[2];
-          info.fn = _.find(CRM.crmSearchAdmin.functions, {name: expr.substring(0, bracketPos)});
-          info.modifier = _.trim(parsed[1]);
-        }
-        var fieldAndJoin = getFieldAndJoin(fieldName, searchEntity);
-        if (fieldAndJoin) {
-          var split = fieldName.split(':'),
-            prefixPos = split[0].lastIndexOf(fieldAndJoin.field.name);
-          info.path = split[0];
-          info.prefix = prefixPos > 0 ? info.path.substring(0, prefixPos) : '';
-          info.suffix = !split[1] ? '' : ':' + split[1];
-          info.field = fieldAndJoin.field;
-          info.join = fieldAndJoin.join;
+          parseFnArgs(info, splitAs[0]);
+        } else {
+          var arg = parseArg(splitAs[0]);
+          if (arg) {
+            arg.param = 0;
+            info.args.push(arg);
+          }
         }
         return info;
       }
       function getDefaultLabel(col) {
         var info = parseExpr(col),
-          label = info.field.label;
+          label = '';
         if (info.fn) {
-          label = '(' + info.fn.title + ') ' + label;
-        }
-        if (info.join) {
-          label = info.join.label + ': ' + label;
+          label = '(' + info.fn.title + ')';
         }
+        _.each(info.args, function(arg) {
+          if (arg.join) {
+            label += (label ? ' ' : '') + arg.join.label + ':';
+          }
+          if (arg.field) {
+            label += (label ? ' ' : '') + arg.field.label;
+          } else {
+            label += (label ? ' ' : '') + arg.value;
+          }
+        });
         return label;
       }
       function fieldToColumn(fieldExpr, defaults) {
         var info = parseExpr(fieldExpr),
+          field = (_.findWhere(info.args, {type: 'field'}) || {}).field || {},
           values = _.merge({
             type: 'field',
             key: info.alias,
-            dataType: (info.fn && info.fn.dataType) || (info.field && info.field.data_type)
+            dataType: (info.fn && info.fn.dataType) || field.data_type
           }, defaults);
         if (defaults.label === true) {
           values.label = getDefaultLabel(fieldExpr);
         }
+        if (defaults.sortable) {
+          values.sortable = field.type && field.type !== 'Pseudo';
+        }
         return values;
       }
       return {
@@ -224,12 +329,25 @@
         },
         // Returns name of explicit or implicit join, for links
         getJoinEntity: function(info) {
-          if (info.field.fk_entity || info.field.name !== info.field.fieldName) {
-            return info.prefix + (info.field.fk_entity ? info.field.name : info.field.name.substr(0, info.field.name.lastIndexOf('.')));
-          } else if (info.prefix) {
-            return info.prefix.replace('.', '');
+          var arg = _.findWhere(info.args, {type: 'field'}) || {},
+            field = arg.field || {};
+          if (field.fk_entity || field.name !== field.fieldName) {
+            return arg.prefix + (field.fk_entity ? field.name : field.name.substr(0, field.name.lastIndexOf('.')));
+          } else if (arg.prefix) {
+            return arg.prefix.replace('.', '');
           }
           return '';
+        },
+        getPrimaryAndSecondaryEntitySelect: function() {
+          var primaryEntities = _.filter(CRM.crmSearchAdmin.schema, {searchable: 'primary'}),
+            secondaryEntities = _.filter(CRM.crmSearchAdmin.schema, {searchable: 'secondary'}),
+            select = formatForSelect2(primaryEntities, 'name', 'title_plural', ['description', 'icon']);
+          select.push({
+            text: ts('More...'),
+            description: ts('Other less-commonly searched entities'),
+            children: formatForSelect2(secondaryEntities, 'name', 'title_plural', ['description', 'icon'])
+          });
+          return select;
         }
       };
     })
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html
index 64b1694b26..6437a92b57 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html
@@ -35,17 +35,6 @@
                crm-ui-select="{placeholder: ts('Group By'), data: fieldsForGroupBy, dropdownCss: {width: '300px'}}"
                on-crm-ui-select="$ctrl.addParam('groupBy', selection)" >
       </div>
-      <fieldset id="crm-search-build-functions">
-        <legend ng-click="controls.showFunctions = !controls.showFunctions">
-          <i class="crm-i fa-caret-{{ !controls.showFunctions ? 'right' : 'down' }}"></i>
-          {{:: ts('Field Transformations') }}
-        </legend>
-        <div ng-if="!!controls.showFunctions">
-          <fieldset ng-repeat="col in $ctrl.savedSearch.api_params.select">
-            <crm-search-function expr="$ctrl.savedSearch.api_params.select[$index]"></crm-search-function>
-          </fieldset>
-        </div>
-      </fieldset>
     </fieldset>
   </div>
   <div class="crm-search-criteria-column">
@@ -57,3 +46,15 @@
     </fieldset>
   </div>
 </div>
+<fieldset id="crm-search-build-functions">
+  <legend ng-click="controls.showFunctions = !controls.showFunctions">
+    <i class="crm-i fa-caret-{{ !controls.showFunctions ? 'right' : 'down' }}"></i>
+    {{:: ts('Field Transformations') }}
+  </legend>
+  <div ng-if="!!controls.showFunctions">
+    <!-- Must use track by $index with an array of primitives, and manually refresh this loop when indexes change -->
+    <fieldset ng-repeat="col in $ctrl.savedSearch.api_params.select track by $index" ng-if="!$ctrl.isPseudoField(col)">
+      <crm-search-function expr="$ctrl.savedSearch.api_params.select[$index]"></crm-search-function>
+    </fieldset>
+  </div>
+</fieldset>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
index 822f2556ee..64868513b7 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
@@ -6,13 +6,15 @@
       savedSearch: '<'
     },
     templateUrl: '~/crmSearchAdmin/crmSearchAdmin.html',
-    controller: function($scope, $element, $location, $timeout, crmApi4, dialogService, searchMeta, formatForSelect2) {
+    controller: function($scope, $element, $location, $timeout, crmApi4, dialogService, searchMeta) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this,
+        afformLoad,
         fieldsForJoinGetters = {};
 
       this.DEFAULT_AGGREGATE_FN = 'GROUP_CONCAT';
-
+      this.afformEnabled = CRM.crmSearchAdmin.afformEnabled;
+      this.afformAdminEnabled = CRM.crmSearchAdmin.afformAdminEnabled;
       this.displayTypes = _.indexBy(CRM.crmSearchAdmin.displayTypes, 'id');
 
       $scope.controls = {tab: 'compose', joinType: 'LEFT'};
@@ -32,6 +34,7 @@
 
         this.savedSearch.displays = this.savedSearch.displays || [];
         this.savedSearch.groups = this.savedSearch.groups || [];
+        this.savedSearch.tag_id = this.savedSearch.tag_id || [];
         this.groupExists = !!this.savedSearch.groups.length;
 
         if (!this.savedSearch.id) {
@@ -48,14 +51,7 @@
           });
         }
 
-        var primaryEntities = _.filter(CRM.crmSearchAdmin.schema, {searchable: 'primary'}),
-          secondaryEntities = _.filter(CRM.crmSearchAdmin.schema, {searchable: 'secondary'});
-        $scope.mainEntitySelect = formatForSelect2(primaryEntities, 'name', 'title_plural', ['description', 'icon']);
-        $scope.mainEntitySelect.push({
-          text: ts('More...'),
-          description: ts('Other less-commonly searched entities'),
-          children: formatForSelect2(secondaryEntities, 'name', 'title_plural', ['description', 'icon'])
-        });
+        $scope.mainEntitySelect = searchMeta.getPrimaryAndSecondaryEntitySelect();
 
         $scope.$watchCollection('$ctrl.savedSearch.api_params.select', onChangeSelect);
 
@@ -79,6 +75,7 @@
         });
 
         loadFieldOptions();
+        loadAfforms();
       };
 
       function onChangeAnything() {
@@ -106,6 +103,17 @@
           apiCalls.deleteDisplays = ['SearchDisplay', 'delete', {where: [['saved_search_id', '=', params.id]]}];
         }
         delete params.displays;
+        if (params.tag_id && params.tag_id.length) {
+          chain.tag_id = ['EntityTag', 'replace', {
+            where: [['entity_id', '=', '$id'], ['entity_table', '=', 'civicrm_saved_search']],
+            records: _.transform(params.tag_id, function(records, id) {records.push({tag_id: id});})
+          }];
+        } else if (params.id) {
+          chain.tag_id = ['EntityTag', 'delete', {
+            where: [['entity_id', '=', '$id'], ['entity_table', '=', 'civicrm_saved_search']]
+          }];
+        }
+        delete params.tag_id;
         apiCalls.saved = ['SavedSearch', 'save', {records: [params], chain: chain}, 0];
         crmApi4(apiCalls).then(function(results) {
           // After saving a new search, redirect to the edit url
@@ -146,6 +154,16 @@
           } else if (!display.trashed) {
             $scope.selectTab('display_' + index);
           }
+          if (display.trashed && afformLoad) {
+            afformLoad.then(function() {
+              if (ctrl.afforms[display.name]) {
+                var msg = ctrl.afforms[display.name].length === 1 ?
+                  ts('Form "%1" will be deleted if the embedded display "%2" is deleted.', {1: ctrl.afforms[display.name][0].title, 2: display.label}) :
+                  ts('%1 forms will be deleted if the embedded display "%2" is deleted.', {1: ctrl.afforms[display.name].length, 2: display.label});
+                CRM.alert(msg, ts('Display embedded'), 'alert');
+              }
+            });
+          }
         } else {
           $scope.selectTab('compose');
           ctrl.savedSearch.displays.splice(index, 1);
@@ -292,11 +310,11 @@
       function reconcileAggregateColumns() {
         _.each(ctrl.savedSearch.api_params.select, function(col, pos) {
           var info = searchMeta.parseExpr(col),
-            fieldExpr = info.path + info.suffix;
+            fieldExpr = (_.findWhere(info.args, {type: 'field'}) || {}).value;
           if (ctrl.canAggregate(col)) {
             // Ensure all non-grouped columns are aggregated if using GROUP BY
             if (!info.fn || info.fn.category !== 'aggregate') {
-              ctrl.savedSearch.api_params.select[pos] = ctrl.DEFAULT_AGGREGATE_FN + '(DISTINCT ' + fieldExpr + ') AS ' + ctrl.DEFAULT_AGGREGATE_FN + '_DISTINCT_' + fieldExpr.replace(/[.:]/g, '_');
+              ctrl.savedSearch.api_params.select[pos] = ctrl.DEFAULT_AGGREGATE_FN + '(DISTINCT ' + fieldExpr + ') AS ' + ctrl.DEFAULT_AGGREGATE_FN + '_' + fieldExpr.replace(/[.:]/g, '_');
             }
           } else {
             // Remove aggregate functions when no grouping
@@ -378,9 +396,17 @@
 
       // Deletes an item from an array param
       this.clearParam = function(name, idx) {
+        if (name === 'select') {
+          // Function selectors use `ng-repeat` with `track by $index` so must be refreshed when splicing the array
+          ctrl.hideFuncitons();
+        }
         ctrl.savedSearch.api_params[name].splice(idx, 1);
       };
 
+      this.hideFuncitons = function() {
+        $scope.controls.showFunctions = false;
+      };
+
       function onChangeSelect(newSelect, oldSelect) {
         // When removing a column from SELECT, also remove from ORDER BY & HAVING
         _.each(_.difference(oldSelect, newSelect), function(col) {
@@ -400,14 +426,18 @@
         if (!ctrl.savedSearch.api_params.groupBy.length) {
           return false;
         }
-        var info = searchMeta.parseExpr(col);
+        var arg = _.findWhere(searchMeta.parseExpr(col).args, {type: 'field'}) || {};
+        // If the column is not a database field, no
+        if (!arg.field || !arg.field.entity || arg.field.type !== 'Field') {
+          return false;
+        }
         // If the column is used for a groupBy, no
-        if (ctrl.savedSearch.api_params.groupBy.indexOf(info.path) > -1) {
+        if (ctrl.savedSearch.api_params.groupBy.indexOf(arg.path) > -1) {
           return false;
         }
         // If the entity this column belongs to is being grouped by primary key, then also no
-        var idField = searchMeta.getEntity(info.field.entity).primary_key[0];
-        return ctrl.savedSearch.api_params.groupBy.indexOf(info.prefix + idField) < 0;
+        var idField = searchMeta.getEntity(arg.field.entity).primary_key[0];
+        return ctrl.savedSearch.api_params.groupBy.indexOf(arg.prefix + idField) < 0;
       };
 
       $scope.fieldsForGroupBy = function() {
@@ -418,9 +448,10 @@
       };
 
       function getFieldsForJoin(joinEntity) {
-        return {results: ctrl.getAllFields(':name', ['Field', 'Custom'], null, joinEntity)};
+        return {results: ctrl.getAllFields(':name', ['Field'], null, joinEntity)};
       }
 
+      // @return {function}
       $scope.fieldsForJoin = function(joinEntity) {
         if (!fieldsForJoinGetters[joinEntity]) {
           fieldsForJoinGetters[joinEntity] = _.wrap(joinEntity, getFieldsForJoin);
@@ -448,34 +479,37 @@
 
       this.getAllFields = function(suffix, allowedTypes, disabledIf, topJoin) {
         disabledIf = disabledIf || _.noop;
-        function formatFields(entityName, join) {
+
+        function formatEntityFields(entityName, join) {
           var prefix = join ? join.alias + '.' : '',
             result = [];
 
-          function addFields(fields) {
-            _.each(fields, function(field) {
-              var item = {
-                id: prefix + field.name + (field.options ? suffix : ''),
-                text: field.label,
-                description: field.description
-              };
-              if (disabledIf(item.id)) {
-                item.disabled = true;
-              }
-              if (!allowedTypes || _.includes(allowedTypes, field.type)) {
-                result.push(item);
-              }
-            });
-          }
-
           // Add extra searchable fields from bridge entity
           if (join && join.bridge) {
-            addFields(_.filter(searchMeta.getEntity(join.bridge).fields, function(field) {
-              return (field.name !== 'id' && field.name !== 'entity_id' && field.name !== 'entity_table' && !field.fk_entity && !_.includes(field.name, '.'));
-            }));
+            formatFields(_.filter(searchMeta.getEntity(join.bridge).fields, function(field) {
+              return (field.name !== 'id' && field.name !== 'entity_id' && field.name !== 'entity_table' && !field.fk_entity);
+            }), result, prefix);
           }
 
-          addFields(searchMeta.getEntity(entityName).fields);
+          formatFields(searchMeta.getEntity(entityName).fields, result, prefix);
+          return result;
+        }
+
+        function formatFields(fields, result, prefix) {
+          prefix = typeof prefix === 'undefined' ? '' : prefix;
+          _.each(fields, function(field) {
+            var item = {
+              id: prefix + field.name + (field.options ? suffix : ''),
+              text: field.label,
+              description: field.description
+            };
+            if (disabledIf(item.id)) {
+              item.disabled = true;
+            }
+            if (!allowedTypes || _.includes(allowedTypes, field.type)) {
+              result.push(item);
+            }
+          });
           return result;
         }
 
@@ -490,7 +524,7 @@
             text: joinInfo.label,
             description: joinInfo.description,
             icon: joinEntity.icon,
-            children: formatFields(joinEntity.name, joinInfo)
+            children: formatEntityFields(joinEntity.name, joinInfo)
           });
         }
 
@@ -503,8 +537,18 @@
         result.push({
           text: mainEntity.title_plural,
           icon: mainEntity.icon,
-          children: formatFields(ctrl.savedSearch.api_entity)
+          children: formatEntityFields(ctrl.savedSearch.api_entity)
         });
+
+        // Include SearchKit's pseudo-fields if specifically requested
+        if (allowedTypes && _.includes(allowedTypes, 'Pseudo')) {
+          result.push({
+            text: ts('Extra'),
+            icon: 'fa-gear',
+            children: formatFields(CRM.crmSearchAdmin.pseudoFields, [])
+          });
+        }
+
         _.each(joinEntities, addJoin);
         return result;
       };
@@ -516,7 +560,7 @@
           var item = {
             id: info.alias,
             text: ctrl.getFieldLabel(name),
-            description: info.field && info.field.description
+            description: info.fn ? info.fn.description : info.args[0].field && info.args[0].field.description
           };
           if (disabledIf(item.id)) {
             item.disabled = true;
@@ -525,6 +569,10 @@
         });
       };
 
+      this.isPseudoField = function(name) {
+        return _.findIndex(CRM.crmSearchAdmin.pseudoFields, {name: name}) >= 0;
+      };
+
       /**
        * Fetch pseudoconstants for main entity + joined entities
        *
@@ -615,12 +663,16 @@
           var join = searchMeta.getJoin(joinClause[0]),
             joinEntity = searchMeta.getEntity(join.entity),
             primaryKey = joinEntity.primary_key[0],
+            // Links for aggregate columns get aggregated using GROUP_CONCAT
             isAggregate = ctrl.canAggregate(join.alias + '.' + primaryKey),
+            joinPrefix = (isAggregate ? ctrl.DEFAULT_AGGREGATE_FN + '_' : '') + join.alias + '.',
             bridgeEntity = _.isString(joinClause[2]) ? searchMeta.getEntity(joinClause[2]) : null;
           _.each(joinEntity.paths, function(path) {
             var link = _.cloneDeep(path);
-            link.isAggregate = isAggregate;
-            link.path = link.path.replace(/\[/g, '[' + join.alias + '.');
+            link.path = link.path.replace(/\[/g, '[' + joinPrefix);
+            if (isAggregate) {
+              link.path = link.path.replace(/[.:]/g, '_');
+            }
             link.join = join.alias;
             addTitle(link, join.label);
             links.push(link);
@@ -636,10 +688,10 @@
         // Links to implicit joins
         _.each(ctrl.savedSearch.api_params.select, function(fieldName) {
           if (!_.includes(fieldName, ' AS ')) {
-            var info = searchMeta.parseExpr(fieldName);
-            if (info.field && !info.suffix && !info.fn && (info.field.fk_entity || info.field.name !== info.field.fieldName)) {
+            var info = searchMeta.parseExpr(fieldName).args[0];
+            if (info.field && !info.suffix && !info.fn && info.field.type === 'Field' && (info.field.fk_entity || info.field.name !== info.field.fieldName)) {
               var idFieldName = info.field.fk_entity ? fieldName : fieldName.substr(0, fieldName.lastIndexOf('.')),
-                idField = searchMeta.parseExpr(idFieldName).field;
+                idField = searchMeta.parseExpr(idFieldName).args[0].field;
               if (!ctrl.canAggregate(idFieldName)) {
                 var joinEntity = searchMeta.getEntity(idField.fk_entity),
                   label = (idField.join ? idField.join.label + ': ' : '') + (idField.input_attrs && idField.input_attrs.label || idField.label);
@@ -657,6 +709,39 @@
         return _.uniq(links, 'path');
       };
 
+      function loadAfforms() {
+        if (ctrl.afformEnabled && ctrl.savedSearch.id) {
+          var findDisplays = _.transform(ctrl.savedSearch.displays, function(findDisplays, display) {
+            if (display.id && display.name) {
+              findDisplays.push(['search_displays', 'CONTAINS', ctrl.savedSearch.name + '.' + display.name]);
+            }
+          }, []);
+          if (findDisplays.length) {
+            afformLoad = crmApi4('Afform', 'get', {
+              select: ['name', 'title', 'search_displays'],
+              where: [['OR', findDisplays]]
+            }).then(function(afforms) {
+              ctrl.afforms = {};
+              _.each(afforms, function(afform) {
+                _.each(_.uniq(afform.search_displays), function(searchNameDisplayName) {
+                  var displayName = searchNameDisplayName.split('.')[1];
+                  ctrl.afforms[displayName] = ctrl.afforms[displayName] || [];
+                  ctrl.afforms[displayName].push({
+                    title: afform.title,
+                    link: ctrl.afformAdminEnabled ? CRM.url('civicrm/admin/afform#/edit/' + afform.name) : '',
+                  });
+                });
+              });
+            });
+          }
+        }
+      }
+
+      // Creating an Afform opens a new tab, so when switching back to this tab, re-check for Afforms
+      $(window).on('focus', _.debounce(function() {
+        $scope.$apply(loadAfforms);
+      }, 10000, {leading: true, trailing: false}));
+
     }
   });
 
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.html
index a486708809..ca6c2a2c4b 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.html
@@ -14,7 +14,7 @@
   <form>
     <div class="crm-flex-box">
       <div class="nav-stacked">
-        <input id="crm-saved-search-label" class="form-control" ng-model="$ctrl.savedSearch.label" type="text" required placeholder="{{ ts('Untitled Search') }}" />
+        <input id="crm-saved-search-label" class="form-control" ng-model="$ctrl.savedSearch.label" type="text" required placeholder="{{:: ts('Untitled Search') }}" />
       </div>
       <div class="crm-flex-4 form-inline">
         <label for="crm-search-main-entity">{{:: ts('Search for') }}</label>
@@ -22,9 +22,9 @@
         <div class="btn-group btn-group-md pull-right">
           <button type="button" class="btn" ng-class="{'btn-primary': status === 'unsaved', 'btn-warning': status === 'saving', 'btn-success': status === 'saved'}" ng-disabled="status !== 'unsaved'" ng-click="$ctrl.save()">
             <i class="crm-i" ng-class="{'fa-check': status !== 'saving', 'fa-spin fa-spinner': status === 'saving'}"></i>
-            <span ng-if="status === 'saved'">{{ ts('Saved') }}</span>
-            <span ng-if="status === 'unsaved'">{{ ts('Save') }}</span>
-            <span ng-if="status === 'saving'">{{ ts('Saving...') }}</span>
+            <span ng-if="status === 'saved'">{{:: ts('Saved') }}</span>
+            <span ng-if="status === 'unsaved'">{{:: ts('Save') }}</span>
+            <span ng-if="status === 'saving'">{{:: ts('Saving...') }}</span>
           </button>
         </div>
       </div>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.component.js
index a8e6ebe14f..22219d6672 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.component.js
@@ -34,8 +34,10 @@
     },
     controller: function($scope, $timeout, searchMeta) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
-        ctrl = this;
+        ctrl = this,
+        afforms;
 
+      this.afformPath = CRM.url('civicrm/admin/afform');
       this.isSuperAdmin = CRM.checkPerm('all CiviCRM permissions and ACLs');
       this.aclBypassHelp = ts('Only users with "all CiviCRM permissions and ACLs" can disable permission checks.');
 
@@ -158,19 +160,28 @@
         }
 
         var info = searchMeta.parseExpr(col.key),
+          arg = _.findWhere(info.args, {type: 'field'}) || {},
           value = col.key.split(':')[0];
+        if (!arg.field || info.fn) {
+          delete col.editable;
+          return;
+        }
         // If field is an implicit join, use the original fk field
-        if (info.field.name !== info.field.fieldName) {
+        if (arg.field.name !== arg.field.fieldName) {
           value = value.substr(0, value.lastIndexOf('.'));
           info = searchMeta.parseExpr(value);
+          arg = info.args[0];
         }
         col.editable = {
-          entity: info.field.baseEntity,
-          options: !!info.field.options,
-          serialize: !!info.field.serialize,
-          fk_entity: info.field.fk_entity,
-          id: info.prefix + 'id',
-          name: info.field.name,
+          // Hack to support editing relationships
+          entity: arg.field.entity.replace('RelationshipCache', 'Relationship'),
+          input_type: arg.field.input_type,
+          data_type: arg.field.data_type,
+          options: !!arg.field.options,
+          serialize: !!arg.field.serialize,
+          fk_entity: arg.field.fk_entity,
+          id: arg.prefix + searchMeta.getEntity(arg.field.entity).primary_key[0],
+          name: arg.field.name,
           value: value
         };
       };
@@ -178,7 +189,24 @@
       this.isEditable = function(col) {
         var expr = ctrl.getExprFromSelect(col.key),
           info = searchMeta.parseExpr(expr);
-        return !col.image && !col.rewrite && !col.link && !info.fn && info.field && !info.field.readonly;
+        return !col.image && !col.rewrite && !col.link && !info.fn && info.args[0] && info.args[0].field && !info.args[0].field.readonly;
+      };
+
+      // Checks if a column contains a sortable value
+      // Must be a real sql expression (not a pseudo-field like `result_row_num`)
+      this.canBeSortable = function(col) {
+        var expr = ctrl.getExprFromSelect(col.key),
+          info = searchMeta.parseExpr(expr),
+          arg = (info && info.args && _.findWhere(info.args, {type: 'field'})) || {};
+        return arg.field && arg.field.type !== 'Pseudo';
+      };
+
+      // Aggregate functions (COUNT, AVG, MAX) cannot display as links, except for GROUP_CONCAT
+      // which gets special treatment in APIv4 to convert it to an array.
+      this.canBeLink = function(col) {
+        var expr = ctrl.getExprFromSelect(col.key),
+          info = searchMeta.parseExpr(expr);
+        return !info.fn || info.fn.category !== 'aggregate' || info.fn.name === 'GROUP_CONCAT';
       };
 
       this.toggleLink = function(column) {
@@ -292,6 +320,16 @@
         }
       };
 
+      // @return {Array}
+      this.getAfforms = function() {
+        if (ctrl.display.name && ctrl.crmSearchAdmin.afforms) {
+          if (!afforms || (ctrl.crmSearchAdmin.afforms[ctrl.display.name] && afforms !== ctrl.crmSearchAdmin.afforms[ctrl.display.name])) {
+            afforms = ctrl.crmSearchAdmin.afforms[ctrl.display.name] || [];
+          }
+        }
+        return afforms;
+      };
+
       $scope.$watch('$ctrl.display.settings', function() {
         ctrl.stale = true;
       }, true);
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.html
index 6393bf24b9..17110c51dc 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplay.html
@@ -14,6 +14,32 @@
       <i class="crm-i fa-unlock"></i>
       {{:: ts('Anyone who can view this display will be able to see all results, regardless of their permission level.') }}
     </div>
+    <div class="btn-group pull-right" ng-if="$ctrl.crmSearchAdmin.afformEnabled && $ctrl.display.name">
+      <button type="button" ng-click="$ctrl.openAfformMenu = true;" class="btn dropdown-toggle btn-primary-outline" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+        <i class="crm-i fa-list-alt"></i>
+        {{ $ctrl.getAfforms() ? ($ctrl.getAfforms().length === 1 ? ts('1 Form') : ts('%1 Forms', {1: $ctrl.getAfforms().length})) : ts('Forms...') }}
+        <span class="caret"></span>
+      </button>
+      <ul class="dropdown-menu" ng-if=":: $ctrl.openAfformMenu">
+        <li ng-if=":: $ctrl.crmSearchAdmin.afformAdminEnabled">
+          <a target="_blank" href="{{:: $ctrl.afformPath + '#/create/search/' + $ctrl.crmSearchAdmin.savedSearch.name + '.' + $ctrl.display.name }}">
+            <i class="fa fa-plus"></i> {{:: ts('Create form for this display') }}
+          </a>
+        </li>
+        <li class="divider" role="separator" ng-if=":: $ctrl.crmSearchAdmin.afformAdminEnabled"></li>
+        <li ng-if="!$ctrl.getAfforms()" class="disabled">
+          <a href>
+            <i class="crm-i fa-spinner fa-spin"></i>
+          </a>
+        </li>
+        <li ng-repeat="afform in $ctrl.getAfforms()" title="{{:: $ctrl.crmSearchAdmin.afformAdminEnabled ? ts('Edit form') : '' }}">
+          <a target="_blank" ng-href="{{:: afform.link }}">
+            <i class="crm-i {{:: $ctrl.crmSearchAdmin.afformAdminEnabled ? 'fa-pencil-square-o' : 'fa-list-alt' }}"></i>
+            {{:: afform.title }}
+          </a>
+        </li>
+      </ul>
+    </div>
   </div>
 
 </fieldset>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplaySort.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplaySort.html
index a3a1cf737e..248ef07b46 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplaySort.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminDisplaySort.html
@@ -2,8 +2,8 @@
   <label for="crm-search-display-sort-{{$index}}">{{ $index ? ts('Also by') : ts('Sort by') }}</label>
   <input id="crm-search-display-sort-{{$index}}" class="form-control huge" ng-model="sort[0]" crm-ui-select="{data: $ctrl.parent.fieldsForSort}" />
   <select class="form-control" ng-model="sort[1]" ng-show="sort[0] !== 'RAND()'">
-    <option value="ASC">{{ ts('Ascending') }}</option>
-    <option value="DESC">{{ ts('Descending') }}</option>
+    <option value="ASC">{{:: ts('Ascending') }}</option>
+    <option value="DESC">{{:: ts('Descending') }}</option>
   </select>
   <a href class="crm-hover-button" title="{{:: ts('Clear') }}" ng-click="$ctrl.display.settings.sort.splice($index, 1)"><i class="crm-i fa-times" aria-hidden="true"></i></a>
 </div>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkSelect.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkSelect.html
index 8fcdfbb73e..cd5b1f1f91 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkSelect.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkSelect.html
@@ -1,10 +1,10 @@
 <div class="crm-flex-1 input-group" >
   <input type="text" class="form-control" ng-if="!$ctrl.getLink($ctrl.link.path)" ng-model="$ctrl.link.path" ng-model-options="{updateOn: 'blur'}" ng-change="$ctrl.onChange({before: 'civicrm/', after: $ctrl.link.path})">
   <div class="input-group-btn" style="{{ $ctrl.getLink($ctrl.link.path) ? '' : 'width:27px' }}">
-    <button type="button" class="btn btn-default-outline dropdown-toggle" style="min-width: 200px; text-align: left;" ng-if="$ctrl.getLink($ctrl.link.path)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+    <button type="button" class="btn btn-sm btn-secondary-outline dropdown-toggle" style="min-width: 200px; text-align: left;" ng-if="$ctrl.getLink($ctrl.link.path)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
       {{ $ctrl.getLink($ctrl.link.path).title }}
     </button>
-    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+    <button type="button" class="btn btn-sm btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
       <span class="caret"></span>
     </button>
     <ul class="dropdown-menu {{ $ctrl.getLink($ctrl.link.path) ? '' : 'dropdown-menu-right' }}" style="min-width: 223px;">
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.component.js
new file mode 100644
index 0000000000..0527d1a1c4
--- /dev/null
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.component.js
@@ -0,0 +1,84 @@
+(function(angular, $, _) {
+  "use strict";
+
+  angular.module('crmSearchAdmin').component('crmSearchAdminTags', {
+    bindings: {
+      tagIds: '<',
+      savedSearchId: '<'
+    },
+    templateUrl: '~/crmSearchAdmin/crmSearchAdminTags.html',
+    controller: function ($scope, $element, crmApi4, crmStatus) {
+      var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
+        ctrl = this;
+      this.allTags = CRM.crmSearchAdmin.tags;
+
+      function reset() {
+        ctrl.menuOpen = false;
+        ctrl.search = '';
+      }
+
+      this.$onInit = function() {
+        ctrl.tagIds = ctrl.tagIds || [];
+        reset();
+        $element.on('hidden.bs.dropdown', function() {
+          $scope.$apply(reset);
+        });
+      };
+
+      this.openMenu = function() {
+        ctrl.menuOpen = true;
+        ctrl.color = getRandomColor();
+      };
+
+      this.getTag = function(id) {
+        return _.findWhere(ctrl.allTags, {id: id});
+      };
+
+      this.hasTag = function(tag) {
+        return _.includes(ctrl.tagIds, tag.id);
+      };
+
+      this.getStyle = function(id) {
+        var tag = ctrl.getTag(id);
+        if (tag && tag.color) {
+          return 'background-color: ' + tag.color + '; color: ' + CRM.utils.colorContrast(tag.color);
+        }
+        return '';
+      };
+
+      this.toggleTag = function(tag) {
+        if (ctrl.hasTag(tag)) {
+          _.remove(ctrl.tagIds, function(id) {return id === tag.id;});
+          if (ctrl.savedSearchId) {
+            crmStatus({}, crmApi4('EntityTag', 'delete', {
+              where: [['entity_id', '=', ctrl.savedSearchId], ['tag_id', '=', tag.id], ['entity_table', '=', 'civicrm_saved_search']]
+            }));
+          }
+        } else {
+          ctrl.tagIds.push(tag.id);
+          if (ctrl.savedSearchId) {
+            crmStatus({}, crmApi4('EntityTag', 'create', {
+              values: {entity_id: ctrl.savedSearchId, tag_id: tag.id, entity_table: 'civicrm_saved_search'}
+            }));
+          }
+        }
+      };
+
+      this.makeTag = function(name) {
+        crmApi4('Tag', 'create', {
+          values: {name: name, color: ctrl.color, is_selectable: true, used_for: ['civicrm_saved_search']}
+        }, 0).then(function(tag) {
+          ctrl.allTags.push(tag);
+          ctrl.toggleTag(tag);
+        });
+      };
+
+      // TODO: Use https://github.com/davidmerfield/randomColor
+      function getRandomColor() {
+        return '#' + Math.floor(Math.random()*16777215).toString(16);
+      }
+
+    }
+  });
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.html
new file mode 100644
index 0000000000..31711443dc
--- /dev/null
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTags.html
@@ -0,0 +1,29 @@
+<button type="button" class="btn btn-secondary-outline dropdown-toggle" ng-click="$ctrl.openMenu()" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+  <i class="crm-i fa-tag"></i>
+  <span class="crm-search-admin-tags-btn-label">{{:: ts('Tags') }}</span>
+  <span class="caret"></span>
+</button>
+<ul class="dropdown-menu" ng-if="$ctrl.menuOpen">
+  <li>
+    <div class="form-inline" ng-click="$event.stopPropagation()">
+      <input type="search" placeholder="{{:: ts('Add tag...') }}" ng-model="$ctrl.search">
+    </div>
+  </li>
+  <li ng-if="$ctrl.search.length > 1">
+    <div class="form-inline">
+      <label ng-click="$ctrl.makeTag($ctrl.search)">{{:: ts('Create Tag') }}</label>
+      <input type="color" ng-model="$ctrl.color">
+      <a href ng-click="$ctrl.makeTag($ctrl.search)">{{ $ctrl.search }}</a>
+    </div>
+  </li>
+  <li ng-repeat="tag in $ctrl.allTags | filter:{name: $ctrl.search, is_selectable: true}">
+    <a href ng-click="$ctrl.toggleTag(tag)">
+      <i class="crm-i fa-check" style="visibility: {{ $ctrl.hasTag(tag) ? 'visible' : 'hidden' }}"></i>
+      <span class="crm-search-admin-tag-color" style="background-color: {{:: tag.color }}"></span>
+      {{:: tag.name }}
+    </a>
+  </li>
+</ul>
+<span class="badge" ng-repeat="id in $ctrl.tagIds" style="{{:: $ctrl.getStyle(id) }}">
+  {{:: $ctrl.getTag(id).name }}
+</span>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTokenSelect.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTokenSelect.component.js
index f364ebf66d..b1f69ba2f2 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTokenSelect.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminTokenSelect.component.js
@@ -27,7 +27,7 @@
       };
 
       this.getTokens = function() {
-        var allFields = ctrl.admin.getAllFields(ctrl.suffix || '', ['Field', 'Custom', 'Extra']);
+        var allFields = ctrl.admin.getAllFields(ctrl.suffix || '', ['Field', 'Custom', 'Extra', 'Pseudo']);
         _.eachRight(ctrl.admin.savedSearch.api_params.select, function(fieldName) {
           allFields.unshift({
             id: fieldName,
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js
index c2b21354eb..25b3e0a0a2 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js
@@ -63,14 +63,14 @@
 
       this.getField = function(expr) {
         if (!meta[expr]) {
-          meta[expr] = searchMeta.parseExpr(expr);
+          meta[expr] = searchMeta.parseExpr(expr).args[0];
         }
         return meta[expr].field;
       };
 
       this.getOptionKey = function(expr) {
         if (!meta[expr]) {
-          meta[expr] = searchMeta.parseExpr(expr);
+          meta[expr] = _.findWhere(searchMeta.parseExpr(expr).args, {type: 'field'});
         }
         return meta[expr].suffix ? meta[expr].suffix.slice(1) : 'id';
       };
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.component.js
index 7ea57ecd4b..3fda35afe0 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.component.js
@@ -21,77 +21,149 @@
         string: ts('Text')
       };
 
-      $scope.$watch('$ctrl.expr', function(expr) {
-        var fieldInfo = searchMeta.parseExpr(expr);
-        ctrl.path = fieldInfo.path + fieldInfo.suffix;
-        ctrl.field = [fieldInfo.field];
-        ctrl.fn = !fieldInfo.fn ? '' : fieldInfo.fn.name;
-        ctrl.modifier = fieldInfo.modifier || null;
+      this.exprTypes = {
+        SqlField: {label: ts('Field'), type: 'field'},
+        SqlString: {label: ts('Text'), type: 'string'},
+        SqlNumber: {label: ts('Number'), type: 'number'},
+      };
+
+      this.$onInit = function() {
+        var info = searchMeta.parseExpr(ctrl.expr);
+        ctrl.fieldArg = _.findWhere(info.args, {type: 'field'});
+        ctrl.args = info.args;
+        ctrl.fn = info.fn;
+        ctrl.fnName = !info.fn ? '' : info.fn.name;
         initFunction();
-      });
+      };
+
+      this.addArg = function(exprType) {
+        var param = ctrl.getParam(ctrl.args.length);
+        ctrl.args.push({
+          type: ctrl.exprTypes[exprType].type,
+          flag_before: _.keys(param.flag_before)[0],
+          value: exprType === 'SqlNumber' ? 0 : ''
+        });
+      };
 
       function initFunction() {
-        ctrl.fnInfo = _.find(CRM.crmSearchAdmin.functions, {name: ctrl.fn});
-        if (ctrl.fnInfo && ctrl.fnInfo.params[0] && !_.isEmpty(ctrl.fnInfo.params[0].flag_before)) {
-          ctrl.modifierName = _.keys(ctrl.fnInfo.params[0].flag_before)[0];
-          ctrl.modifierLabel = ctrl.fnInfo.params[0].flag_before[ctrl.modifierName];
-        }
-        else {
-          ctrl.modifierName = null;
-          ctrl.modifier = null;
+        if (!ctrl.fn) {
+          return;
         }
+        // Push args to reach the minimum
+        _.each(ctrl.fn.params, function(param, index) {
+          while (
+            (ctrl.args.length - index < param.min_expr) &&
+            // TODO: Handle named params like "ORDER BY"
+            !param.name &&
+            (!param.optional || param.must_be.length === 1)
+          ) {
+            ctrl.addArg(param.must_be[0]);
+          }
+        });
       }
 
+      this.getParam = function(index) {
+        return ctrl.fn.params[index] || _.last(ctrl.fn.params);
+      };
+
+      this.canAddArg = function() {
+        if (!ctrl.fn) {
+          return false;
+        }
+        var param = ctrl.getParam(ctrl.args.length),
+          index = ctrl.fn.params.indexOf(param);
+        // TODO: Handle named params like "ORDER BY"
+        if (param.name) {
+          return false;
+        }
+        return ctrl.args.length - index < param.max_expr;
+      };
+
       // On-demand options for dropdown function selector
       this.getFunctions = function() {
         var allowedTypes = [], functions = [];
-        if (ctrl.expr && ctrl.field) {
+        if (ctrl.expr && ctrl.fieldArg) {
           if (ctrl.crmSearchAdmin.canAggregate(ctrl.expr)) {
             allowedTypes.push('aggregate');
           } else {
             allowedTypes.push('comparison', 'string');
-            if (_.includes(['Integer', 'Float', 'Date', 'Timestamp'], ctrl.field[0].data_type)) {
+            if (_.includes(['Integer', 'Float', 'Date', 'Timestamp', 'Money'], ctrl.fieldArg.field.data_type)) {
               allowedTypes.push('math');
             }
-            if (_.includes(['Date', 'Timestamp'], ctrl.field[0].data_type)) {
+            if (_.includes(['Date', 'Timestamp'], ctrl.fieldArg.field.data_type)) {
               allowedTypes.push('date');
             }
           }
           _.each(allowedTypes, function(type) {
             var allowedFunctions = _.filter(CRM.crmSearchAdmin.functions, function(fn) {
-              return fn.category === type &&
-                fn.params.length &&
-                // For now, only support functions that take a single field
-                fn.params[0].min_expr === 1 &&
-                fn.params[0].max_expr === 1 &&
-                !_.includes(fn.params[0].cant_be, 'SqlField') &&
-                (!fn.params[0].must_be.length || _.includes(fn.params[0].must_be, 'SqlField'));
+              return fn.category === type && fn.params.length;
             });
             functions.push({
               text: allTypes[type],
-              children: formatForSelect2(allowedFunctions, 'name', 'title')
+              children: formatForSelect2(allowedFunctions, 'name', 'title', ['description'])
             });
           });
         }
         return {results: functions};
       };
 
+      this.getFields = function() {
+        return {
+          results: ctrl.crmSearchAdmin.getAllFields(':label', ['Field', 'Custom', 'Extra'])
+        };
+      };
+
       this.selectFunction = function() {
+        ctrl.fn = _.find(CRM.crmSearchAdmin.functions, {name: ctrl.fnName});
+        delete ctrl.fieldArg.flag_before;
+        ctrl.args = [ctrl.fieldArg];
+        if (ctrl.fn) {
+          var exprType, pos = 0,
+            uiDefaults = ctrl.fn.params[0].ui_defaults || [];
+          // Add non-field args to the beginning if needed
+          while (uiDefaults[pos] && uiDefaults[pos].type && uiDefaults[pos].type !== 'SqlField') {
+            exprType = uiDefaults[pos].type;
+            ctrl.args.splice(pos, 0, {
+              type: ctrl.exprTypes[exprType].type,
+              value: exprType === 'SqlNumber' ? 0 : ''
+            });
+            ++pos;
+          }
+          initFunction();
+        }
         ctrl.writeExpr();
       };
 
-      this.toggleModifier = function() {
-        ctrl.modifier = ctrl.modifier ? null : ctrl. modifierName;
+      this.changeArg = function(index) {
+        var val = ctrl.args[index].value;
+        // Delete empty value
+        if (index && !val && ctrl.args.length > ctrl.fn.params[0].min_expr) {
+          ctrl.args.splice(index, 1);
+        }
         ctrl.writeExpr();
       };
 
       // Make a sql-friendly alias for this expression
       function makeAlias() {
-        return (ctrl.fn + '_' + (ctrl.modifier ? ctrl.modifier + '_' : '') + ctrl.path).replace(/[.:]/g, '_');
+        var args = _.pluck(_.filter(_.filter(ctrl.args, 'value'), {type: 'field'}), 'value');
+        return (ctrl.fnName + '_' + args.join('_')).replace(/[.:]/g, '_');
       }
 
       this.writeExpr = function() {
-        ctrl.expr = ctrl.fn ? (ctrl.fn + '(' + (ctrl.modifier ? ctrl.modifier + ' ' : '') + ctrl.path + ') AS ' + makeAlias()) : ctrl.path;
+        if (ctrl.fnName) {
+          var args = _.transform(ctrl.args, function(args, arg, index) {
+            if (arg.value) {
+              var prefix = arg.flag_before ? (index ? ' ' : '') + arg.flag_before + ' ' : (index ? ', ' : '');
+              args.push(prefix + (arg.type === 'string' ? JSON.stringify(arg.value) : arg.value));
+            }
+          });
+          // Replace fake function "e"
+          ctrl.expr = (ctrl.fnName === 'e' ? '' : ctrl.fnName) + '(';
+          ctrl.expr += args.join('');
+          ctrl.expr += ') AS ' + makeAlias();
+        } else {
+          ctrl.expr = ctrl.args[0].value;
+        }
       };
     }
   });
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.html
index 258433196a..0b4e742de5 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchFunction.html
@@ -1,8 +1,30 @@
 <div class="form-inline">
-  <label>{{ $ctrl.field[0].label }}:</label>
-  <input class="form-control" style="width: 15em;" ng-model="$ctrl.fn" crm-ui-select="{data: $ctrl.getFunctions, placeholder: ts('Select')}" ng-change="$ctrl.selectFunction()">
-  <label ng-if="$ctrl.modifierName">
-    <input type="checkbox" ng-checked="!!$ctrl.modifier" ng-click="$ctrl.toggleModifier()">
-    {{ $ctrl.modifierLabel }}
+  <input class="form-control" style="width: 15em;" ng-model="$ctrl.fnName" crm-ui-select="{data: $ctrl.getFunctions, placeholder: ts('Function')}" ng-change="$ctrl.selectFunction()">
+  <label>{{ $ctrl.fieldArg.field.label }}</label>
+  <label ng-repeat="(val, label) in $ctrl.fn.params[0].flag_before">
+    <input type="checkbox" ng-checked="$ctrl.fieldArg.flag_before === val" ng-click="$ctrl.fieldArg.flag_before = ($ctrl.fieldArg.flag_before === val ? null : val); $ctrl.writeExpr();" >
+    {{ label }}
   </label>
+  <div class="form-group" ng-repeat="arg in $ctrl.args" ng-if="arg !== $ctrl.fieldArg">
+    <select class="form-control" ng-if="$index && $ctrl.getParam($index).flag_before" ng-model="arg.flag_before" ng-change="$ctrl.writeExpr();">
+      <option ng-repeat="(val, label) in $ctrl.getParam($index).flag_before" value="{{ val }}">
+        {{ label }}
+      </option>
+    </select>
+    <span ng-switch="arg.type">
+      <input ng-switch-when="number" class="form-control" type="number" ng-model="arg.value" placeholder="{{ $ctrl.getParam($index).label }}" ng-change="$ctrl.changeArg($index)" ng-model-options="{updateOn: 'blur'}">
+      <input ng-switch-when="string" class="form-control" ng-model="arg.value" placeholder="{{ $ctrl.getParam($index).label }}" ng-change="$ctrl.changeArg($index)" ng-trim="false" ng-model-options="{updateOn: 'blur'}">
+      <input ng-switch-default class="form-control" ng-model="arg.value" crm-ui-select="{data: $ctrl.getFields, placeholder: $ctrl.getParam($index).label}" ng-change="$ctrl.changeArg($index)">
+    </span>
+  </div>
+  <div class="btn-group" ng-if="$ctrl.canAddArg()">
+    <button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+      <i class="crm-i fa-plus"></i> <span class="caret"></span>
+    </button>
+    <ul class="dropdown-menu">
+      <li ng-repeat="(name, type) in $ctrl.exprTypes" ng-show="$ctrl.getParam($ctrl.args.length).must_be.indexOf(name) >= 0">
+        <a href ng-click="$ctrl.addArg(name)">{{ type.label }}</a>
+      </li>
+    </ul>
+  </div>
 </div>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html
index ddc0383657..801c3d3108 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html
@@ -1,4 +1,4 @@
-<div class="form-inline crm-search-admin-flex-row">
+<div class="form-inline crm-search-admin-flex-row" ng-if=":: $ctrl.parent.canBeLink(col)">
   <label title="{{:: ts('Display as clickable link') }}" >
     <input type="checkbox" ng-checked="col.link" ng-click="$ctrl.parent.toggleLink(col)" >
     {{:: ts('Link') }}
@@ -35,7 +35,7 @@
   </div>
 </div>
 <div class="form-inline crm-search-admin-flex-row">
-  <label title="{{ ts('Change the contents of this field, or combine multiple field values.') }}">
+  <label title="{{:: ts('Change the contents of this field, or combine multiple field values.') }}">
     <input type="checkbox" ng-checked="col.rewrite" ng-click="$ctrl.parent.toggleRewrite(col)" >
     {{:: ts('Rewrite') }}
   </label>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/common/searchButtonConfig.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/common/searchButtonConfig.html
index 64c67b8dee..790c3cdaaf 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/common/searchButtonConfig.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/common/searchButtonConfig.html
@@ -1,10 +1,10 @@
 <div class="input-group">
   <div class="input-group-btn" title="{{:: ts('Should the search be run immediately, or wait for the user to click a button?') }}">
-    <button type="button" class="btn btn-outline-default" ng-click="$ctrl.display.settings.button = null" ng-class="{active: !$ctrl.display.settings.button}">
+    <button type="button" class="btn btn-secondary-outline btn-sm" ng-click="$ctrl.display.settings.button = null" ng-class="{active: !$ctrl.display.settings.button}">
       <i class="crm-i fa-{{ $ctrl.display.settings.button ? '' : 'check-' }}circle-o"></i>
       {{:: ts('Auto-Run') }}
     </button>
-    <button type="button" class="btn btn-outline-default" ng-click="$ctrl.display.settings.button = ts('Search')" ng-class="{active: $ctrl.display.settings.button}">
+    <button type="button" class="btn btn-secondary-outline btn-sm" ng-click="$ctrl.display.settings.button = ts('Search')" ng-class="{active: $ctrl.display.settings.button}">
       <i class="crm-i fa-{{ !$ctrl.display.settings.button ? '' : 'check-' }}circle-o"></i>
       {{:: ts('Search Button') }}
     </button>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.html
index 2da44b5580..f08c98c633 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.html
@@ -20,7 +20,7 @@
   <div class="crm-search-admin-edit-columns" ng-model="$ctrl.display.settings.columns" ui-sortable="$ctrl.parent.sortableOptions">
     <fieldset ng-repeat="col in $ctrl.display.settings.columns" class="crm-draggable">
       <legend><i class="crm-i fa-arrows crm-search-move-icon"></i> {{ $ctrl.parent.getColLabel(col) }}</legend>
-      <div class="form-inline" title="{{ ts('Should this item display on its own line or inline with other items?') }}">
+      <div class="form-inline" title="{{:: ts('Should this item display on its own line or inline with other items?') }}">
         <label><input type="checkbox" ng-model="col.break"> {{:: ts('New Line') }}</label>
         <button type="button" class="btn-xs pull-right" ng-click="$ctrl.parent.removeCol($index)" title="{{:: ts('Remove') }}">
           <i class="crm-i fa-ban"></i>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.html
index 5d733db80b..3561df20b9 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.html
@@ -24,7 +24,7 @@
   <div class="crm-search-admin-edit-columns" ng-model="$ctrl.display.settings.columns" ui-sortable="$ctrl.parent.sortableOptions">
     <fieldset ng-repeat="col in $ctrl.display.settings.columns" class="crm-draggable">
       <legend><i class="crm-i fa-arrows crm-search-move-icon"></i> {{ $ctrl.parent.getColLabel(col) }}</legend>
-      <div class="form-inline" title="{{ ts('Should this item display on its own line or inline with other items?') }}">
+      <div class="form-inline" title="{{:: ts('Should this item display on its own line or inline with other items?') }}">
         <label><input type="checkbox" ng-model="col.break"> {{:: ts('New Line') }}</label>
         <button type="button" class="btn-xs pull-right" ng-click="$ctrl.parent.removeCol($index)" title="{{:: ts('Remove') }}">
           <i class="crm-i fa-ban"></i>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
index 23b7c4daeb..c4df08c5c5 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
@@ -15,14 +15,35 @@
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this;
 
+      this.tableClasses = [
+        {name: 'table', label: ts('Row Borders')},
+        {name: 'table-bordered', label: ts('Column Borders')},
+        {name: 'table-striped', label: ts('Even/Odd Stripes')}
+      ];
+
+      // Check if array conatains item
+      this.includes = _.includes;
+
+      // Add or remove an item from an array
+      this.toggle = function(collection, item) {
+        if (_.includes(collection, item)) {
+          _.pull(collection, item);
+        } else {
+          collection.push(item);
+        }
+      };
+
       this.$onInit = function () {
         if (!ctrl.display.settings) {
           ctrl.display.settings = {
             limit: CRM.crmSearchAdmin.defaultPagerSize,
+            classes: ['table'],
             pager: {}
           };
         }
-        ctrl.parent.initColumns({label: true});
+        // Displays created prior to 5.43 may not have this property
+        ctrl.display.settings.classes = ctrl.display.settings.classes || [];
+        ctrl.parent.initColumns({label: true, sortable: true});
       };
 
     }
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html
index c2961ecf25..b3234eadaa 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html
@@ -9,6 +9,15 @@
     </div>
     <div class="form-group" ng-include="'~/crmSearchAdmin/displays/common/searchButtonConfig.html'"></div>
   </div>
+  <div class="form-inline">
+    <label>{{:: ts('Table Style') }}</label>
+    <div class="checkbox-inline form-control" ng-repeat="style in $ctrl.tableClasses">
+      <label>
+        <input type="checkbox" ng-checked="$ctrl.includes($ctrl.display.settings.classes, style.name)" ng-click="$ctrl.toggle($ctrl.display.settings.classes, style.name)">
+        <span>{{:: style.label }}</span>
+      </label>
+    </div>
+  </div>
   <search-admin-pager-config display="$ctrl.display"></search-admin-pager-config>
 </fieldset>
 <fieldset class="crm-search-admin-edit-columns-wrapper">
@@ -34,6 +43,12 @@
           <option value="text-right">{{:: ts('Right') }}</option>
         </select>
       </div>
+      <div class="form-inline" ng-if=":: $ctrl.parent.canBeSortable(col)">
+        <label title="{{:: ts('Allow user to click on header to sort table by this column') }}">
+          <input type="checkbox" ng-checked="col.sortable !== false" ng-click="col.sortable = col.sortable === false" >
+          {{:: ts('Sortable Header') }}
+        </label>
+      </div>
       <div ng-include="'~/crmSearchAdmin/displays/colType/' + col.type + '.html'"></div>
     </fieldset>
   </div>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/group.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/group.html
index db196e3930..66a8e5cb08 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/group.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/group.html
@@ -3,7 +3,7 @@
 </div>
 
 <div class="form-inline">
-  <label for="crm-search-admin-group-title">{{ ts('Group Title') }} <span class="crm-marker">*</span></label>
+  <label for="crm-search-admin-group-title">{{:: ts('Group Title') }} <span class="crm-marker">*</span></label>
   <input id="crm-search-admin-group-title" class="form-control" placeholder="{{:: ts('Untitled') }}" ng-model="$ctrl.savedSearch.groups[0].title" ng-disabled="!smartGroupColumns.length" ng-required="smartGroupColumns.length">
   <label for="api-save-search-select-column">{{:: ts('Contact Column') }}</label>
   <input id="api-save-search-select-column" ng-model="$ctrl.savedSearch.api_params.select[0]" class="form-control huge" crm-ui-select="{data: smartGroupColumns}"/>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js
index 71f09c22ea..f00dc3a831 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js
@@ -18,8 +18,9 @@
       // Output user-facing name/label fields as a link, if possible
       function getViewLink(fieldExpr, links) {
         var info = searchMeta.parseExpr(fieldExpr),
-          entity = searchMeta.getEntity(info.field.entity);
-        if (!info.fn && entity && info.field.fieldName === entity.label_field) {
+          firstField = _.findWhere(info.args, {type: 'field'}),
+          entity = firstField && searchMeta.getEntity(firstField.field.entity);
+        if (entity && firstField.field.fieldName === entity.label_field) {
           var joinEntity = searchMeta.getJoinEntity(info);
           return _.find(links, {join: joinEntity, action: 'view'});
         }
@@ -34,9 +35,10 @@
             limit: CRM.crmSearchAdmin.defaultPagerSize,
             pager: {show_count: true, expose_limit: true},
             actions: true,
+            classes: ['table', 'table-striped'],
             button: ts('Search'),
             columns: _.transform(ctrl.search.api_params.select, function(columns, fieldExpr) {
-              var column = {label: true},
+              var column = {label: true, sortable: true},
                 link = getViewLink(fieldExpr, links);
               if (link) {
                 column.title = link.title;
@@ -106,11 +108,13 @@
           if (!ui.item.sortable.dropindex && ctrl.crmSearchAdmin.groupExists) {
             ui.item.sortable.cancel();
           }
+          // Function selectors use `ng-repeat` with `track by $index` so must be refreshed when rearranging the array
+          ctrl.crmSearchAdmin.hideFuncitons();
         }
       };
 
       $scope.fieldsForSelect = function() {
-        return {results: ctrl.crmSearchAdmin.getAllFields(':label', ['Field', 'Custom', 'Extra'], function(key) {
+        return {results: ctrl.crmSearchAdmin.getAllFields(':label', ['Field', 'Custom', 'Extra', 'Pseudo'], function(key) {
             return _.contains(ctrl.search.api_params.select, key);
           })
         };
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.html
index 101d101949..f8c04f2f6c 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.html
@@ -4,22 +4,22 @@
     <div class="btn-group" ng-include="'~/crmSearchDisplay/SearchButton.html'"></div>
     <crm-search-tasks entity="$ctrl.apiEntity" ids="$ctrl.selectedRows" search="$ctrl.search" display="$ctrl.display" display-controller="$ctrl" refresh="$ctrl.refreshAfterTask()"></crm-search-tasks>
   </div>
-  <table>
+  <table class="{{:: $ctrl.settings.classes.join(' ') }}">
     <thead>
       <tr ng-model="$ctrl.search.api_params.select" ui-sortable="sortableColumnOptions">
         <th class="crm-search-result-select" ng-if=":: $ctrl.settings.actions">
           <input type="checkbox" ng-disabled="$ctrl.loading || !$ctrl.results.length" ng-checked="$ctrl.allRowsSelected" ng-click="$ctrl.selectAllRows()" >
         </th>
         <th ng-repeat="item in $ctrl.search.api_params.select" ng-click="$ctrl.setSort($ctrl.settings.columns[$index], $event)" title="{{$index || !$ctrl.crmSearchAdmin.groupExists ? ts('Drag to reorder columns, click to sort results (shift-click to sort by multiple).') : ts('Column reserved for smart group.')}}">
-          <i class="crm-i {{ $ctrl.getSort($ctrl.settings.columns[$index]) }}"></i>
+          <i ng-if=":: $ctrl.isSortable($ctrl.settings.columns[$index])" class="crm-i {{ $ctrl.getSort($ctrl.settings.columns[$index]) }}"></i>
           <span ng-class="{'crm-draggable': $index || !$ctrl.crmSearchAdmin.groupExists}">{{ $ctrl.settings.columns[$index].label }}</span>
           <span ng-switch="$index || !$ctrl.crmSearchAdmin.groupExists ? 'sortable' : 'locked'">
             <i ng-switch-when="locked" class="crm-i fa-lock" aria-hidden="true"></i>
             <a href ng-switch-default class="crm-hover-button" title="{{:: ts('Clear') }}" ng-click="removeColumn($index); $event.stopPropagation();"><i class="crm-i fa-times" aria-hidden="true"></i></a>
           </span>
         </th>
-        <th class="form-inline">
-          <input class="form-control crm-action-menu fa-plus"
+        <th class="form-inline text-right">
+          <input class="form-control crm-action-menu fa-plus collapsible-optgroups"
                  crm-ui-select="::{data: fieldsForSelect, placeholder: ts('Add'), width: '80px', containerCss: {minWidth: '80px'}, dropdownCss: {width: '300px'}}"
                  on-crm-ui-select="addColumn(selection)" >
         </th>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/afforms.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/afforms.html
index 12f6a40387..856b6d10d1 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/afforms.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/afforms.html
@@ -16,9 +16,9 @@
         <em ng-if="$ctrl.afforms && !$ctrl.afforms[row.name.raw]">{{:: ts('None Found') }}</em>
       </a>
     </li>
-    <li ng-if="$ctrl.afforms" ng-repeat="afform in $ctrl.afforms[row.name.raw]" title="{{:: ts('Edit form') }}">
-      <a target="_blank" href="{{:: $ctrl.afformPath + '#/edit/' + afform.name }}">
-        <i class="crm-i fa-pencil-square-o"></i>
+    <li ng-if="$ctrl.afforms" ng-repeat="afform in $ctrl.afforms[row.name.raw]" title="{{:: $ctrl.afformAdminEnabled ? ts('Edit form') : '' }}">
+      <a target="_blank" ng-href="{{:: afform.link }}">
+        <i class="crm-i {{:: $ctrl.afformAdminEnabled ? 'fa-pencil-square-o' : 'fa-list-alt' }}"></i>
         {{:: afform.title }}
       </a>
     </li>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html
index ee5eff3621..1f86009c68 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html
@@ -4,6 +4,6 @@
 <a class="btn btn-xs btn-default" href="#/create/{{:: row.api_entity.raw + '?params=' + $ctrl.encode(row.api_params.raw) }}">
   {{:: ts('Clone') }}
 </a>
-<a href class="btn btn-xs btn-danger" crm-confirm="{type: 'delete', obj: row}" on-yes="$ctrl.deleteSearch(row)">
+<a href class="btn btn-xs btn-danger" ng-click="$ctrl.confirmDelete(row)">
   {{:: ts('Delete') }}
 </a>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js
index 038ec00c2e..b689022133 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js
@@ -4,15 +4,17 @@
   // Specialized searchDisplay, only used by Admins
   angular.module('crmSearchAdmin').component('crmSearchAdminSearchListing', {
     templateUrl: '~/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.html',
-    controller: function($scope, crmApi4, crmStatus, searchMeta, searchDisplayBaseTrait, searchDisplaySortableTrait) {
+    controller: function($scope, $q, crmApi4, crmStatus, searchMeta, searchDisplayBaseTrait, searchDisplaySortableTrait, formatForSelect2) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         // Mix in traits to this controller
-        ctrl = angular.extend(this, searchDisplayBaseTrait, searchDisplaySortableTrait);
+        ctrl = angular.extend(this, searchDisplayBaseTrait, searchDisplaySortableTrait),
+        afformLoad;
 
       this.searchDisplayPath = CRM.url('civicrm/search');
       this.afformPath = CRM.url('civicrm/admin/afform');
       this.afformEnabled = CRM.crmSearchAdmin.afformEnabled;
       this.afformAdminEnabled = CRM.crmSearchAdmin.afformAdminEnabled;
+      this.entitySelect = searchMeta.getPrimaryAndSecondaryEntitySelect();
 
       this.apiEntity = 'SavedSearch';
       this.search = {
@@ -26,15 +28,26 @@
             'api_entity',
             'api_entity:label',
             'api_params',
+            // These two need to be in the select clause so they are allowed as filters
+            'created_id.display_name',
+            'modified_id.display_name',
             'created_date',
             'modified_date',
+            'DATE(created_date) AS date_created',
+            'DATE(modified_date) AS date_modified',
             'GROUP_CONCAT(display.name ORDER BY display.id) AS display_name',
             'GROUP_CONCAT(display.label ORDER BY display.id) AS display_label',
             'GROUP_CONCAT(display.type:icon ORDER BY display.id) AS display_icon',
             'GROUP_CONCAT(display.acl_bypass ORDER BY display.id) AS display_acl_bypass',
+            'tags', // Not a selectable field but this hacks around the requirement that filters be in the select clause
+            'GROUP_CONCAT(DISTINCT entity_tag.tag_id) AS tag_id',
             'GROUP_CONCAT(DISTINCT group.title) AS groups'
           ],
-          join: [['SearchDisplay AS display'], ['Group AS group']],
+          join: [
+            ['SearchDisplay AS display', 'LEFT', ['id', '=', 'display.saved_search_id']],
+            ['Group AS group', 'LEFT', ['id', '=', 'group.saved_search_id']],
+            ['EntityTag AS entity_tag', 'LEFT', ['entity_tag.entity_table', '=', '"civicrm_saved_search"'], ['id', '=', 'entity_tag.entity_id']],
+          ],
           where: [['api_entity', 'IS NOT NULL']],
           groupBy: ['id']
         }
@@ -60,6 +73,40 @@
         return encodeURI(angular.toJson(params));
       };
 
+      this.confirmDelete = function(search) {
+        function getConfirmationMsg() {
+          var msg = '<h4>' + _.escape(ts('Permanently delete this saved search?')) + '</h4>' +
+            '<ul>';
+          if (search.display_label.view && search.display_label.view.length === 1) {
+            msg += '<li>' + _.escape(ts('Includes 1 display which will also be deleted.')) + '</li>';
+          } else if (search.display_label.view && search.display_label.view.length > 1) {
+            msg += '<li>' + _.escape(ts('Includes %1 displays which will also be deleted.', {1: search.display_label.view.length})) + '</li>';
+          }
+          _.each(search.groups.view, function(smartGroup) {
+            msg += '<li class="crm-error"><i class="crm-i fa-exclamation-triangle"></i> ' + _.escape(ts('Smart group "%1" will also be deleted.', {1: smartGroup})) + '</li>';
+          });
+          if (search.afform_count) {
+            _.each(ctrl.afforms[search.name.raw], function(afform) {
+              msg += '<li class="crm-error"><i class="crm-i fa-exclamation-triangle"></i> ' + _.escape(ts('Form "%1" will also be deleted because it contains an embedded display from this search.', {1: afform.title})) + '</li>';
+            });
+          }
+          return msg + '</ul>';
+        }
+
+        var dialog = CRM.confirm({
+          title: ts('Delete %1', {1: search.label.view}),
+          message: getConfirmationMsg(),
+        }).on('crmConfirm:yes', function() {
+          $scope.$apply(function() {
+            ctrl.deleteSearch(search);
+          });
+        }).block();
+
+        ctrl.loadAfforms().then(function() {
+          dialog.html(getConfirmationMsg()).unblock();
+        });
+      };
+
       this.deleteSearch = function(search) {
         crmStatus({start: ts('Deleting...'), success: ts('Search Deleted')},
           crmApi4('SavedSearch', 'delete', {where: [['id', '=', search.id.raw]]}).then(function() {
@@ -69,6 +116,14 @@
         );
       };
 
+      this.getTags = function() {
+        return {results: formatForSelect2(CRM.crmSearchAdmin.tags, 'id', 'name', ['color', 'description'])};
+      };
+
+      this.getEntities = function() {
+        return {results: formatForSelect2(CRM.crmSearchAdmin.tags, 'id', 'name', ['color', 'description'])};
+      };
+
       function buildDisplaySettings() {
         ctrl.display = {
           type: 'table',
@@ -76,6 +131,7 @@
             limit: CRM.crmSearchAdmin.defaultPagerSize,
             pager: {show_count: true, expose_limit: true},
             actions: false,
+            classes: ['table', 'table-striped'],
             sort: [['modified_date', 'DESC']],
             columns: [
               searchMeta.fieldToColumn('label', {
@@ -86,6 +142,11 @@
               searchMeta.fieldToColumn('api_entity:label', {
                 label: ts('For'),
               }),
+              {
+                type: 'include',
+                label: ts('Tags'),
+                path: '~/crmSearchAdmin/searchListing/tags.html'
+              },
               {
                 type: 'include',
                 label: ts('Displays'),
@@ -96,13 +157,13 @@
               }),
               searchMeta.fieldToColumn('created_date', {
                 label: ts('Created'),
-                dataType: 'Date',
-                rewrite: ts('%1 by %2', {1: '[created_date]', 2: '[created_id.display_name]'})
+                title: '[created_date]',
+                rewrite: ts('%1 by %2', {1: '[date_created]', 2: '[created_id.display_name]'})
               }),
               searchMeta.fieldToColumn('modified_date', {
                 label: ts('Last Modified'),
-                dataType: 'Date',
-                rewrite: ts('%1 by %2', {1: '[modified_date]', 2: '[modified_id.display_name]'})
+                title: '[modified_date]',
+                rewrite: ts('%1 by %2', {1: '[date_modified]', 2: '[modified_id.display_name]'})
               }),
               {
                 type: 'include',
@@ -113,7 +174,7 @@
           }
         };
         if (ctrl.afformEnabled) {
-          ctrl.display.settings.columns.splice(3, 0, {
+          ctrl.display.settings.columns.splice(4, 0, {
             type: 'include',
             label: ts('Forms'),
             path: '~/crmSearchAdmin/searchListing/afforms.html'
@@ -122,31 +183,38 @@
         ctrl.settings = ctrl.display.settings;
       }
 
+      // @return {Promise}
       this.loadAfforms = function() {
-        if (ctrl.afforms || ctrl.afforms === null) {
-          return;
+        if (!ctrl.afformEnabled && !afformLoad) {
+          var deferred = $q.defer();
+          afformLoad = deferred.promise;
+          deferred.resolve([]);
+        }
+        if (afformLoad) {
+          return afformLoad;
         }
         ctrl.afforms = null;
-        crmApi4('Afform', 'get', {
-          select: ['layout', 'name', 'title', 'server_route'],
-          where: [['type', '=', 'search']],
-          layoutFormat: 'html'
+        afformLoad = crmApi4('Afform', 'get', {
+          select: ['search_displays', 'name', 'title', 'server_route'],
+          where: [['type', '=', 'search'], ['search_displays', 'IS NOT EMPTY']]
         }).then(function(afforms) {
           ctrl.afforms = {};
           _.each(afforms, function(afform) {
-            var searchName = afform.layout.match(/<crm-search-display-[^>]+search-name[ ]*=[ ]*['"]([^"']+)/);
-            if (searchName) {
-              ctrl.afforms[searchName[1]] = ctrl.afforms[searchName[1]] || [];
-              ctrl.afforms[searchName[1]].push({
+            _.each(_.uniq(afform.search_displays), function(searchNameDisplayName) {
+              var searchName = searchNameDisplayName.split('.')[0];
+              ctrl.afforms[searchName] = ctrl.afforms[searchName] || [];
+              ctrl.afforms[searchName].push({
                 title: afform.title,
                 name: afform.name,
+                link: ctrl.afformAdminEnabled ? CRM.url('civicrm/admin/afform#/edit/' + afform.name) : '',
                 // FIXME: This is the view url, currently not exposed to the UI, as BS3 doesn't support submenus.
                 url: afform.server_route ? CRM.url(afform.server_route) : null
               });
-            }
+            });
           });
           updateAfformCounts();
         });
+        return afformLoad;
       };
 
       function updateAfformCounts() {
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.html
index b2e0db8b3f..473f38b89e 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.html
@@ -1,8 +1,10 @@
 <div id="bootstrap-theme" class="crm-search">
   <h1 crm-page-title>{{:: ts('Saved Searches') }}</h1>
   <div class="form-inline">
-    <label for="search-list-filter">{{:: ts('Filter') }}</label>
-    <input class="form-control" type="search" id="search-list-filter" ng-model="$ctrl.filters.label" placeholder="&#xf002">
+    <input class="form-control" type="search" ng-model="$ctrl.filters.label" placeholder="{{:: ts('Filter by label...') }}">
+    <input class="form-control" type="search" ng-model="$ctrl.filters['created_id.display_name,modified_id.display_name']" placeholder="{{:: ts('Filter by author...') }}">
+    <input class="form-control collapsible-optgroups" ng-model="$ctrl.filters.api_entity" ng-list crm-ui-select="{multiple: true, data: $ctrl.entitySelect, placeholder: ts('Filter by entity...')}">
+    <input class="form-control" ng-model="$ctrl.filters.tags" ng-list crm-ui-select="{multiple: true, data: $ctrl.getTags, placeholder: ts('Filter by tags...')}">
     <a class="btn btn-primary pull-right" href="#/create/Contact/">
       <i class="crm-i fa-plus"></i>
       {{:: ts('New Search') }}
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/tags.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/tags.html
new file mode 100644
index 0000000000..3be6368a60
--- /dev/null
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/tags.html
@@ -0,0 +1 @@
+<crm-search-admin-tags tag-ids="row.tag_id.raw" saved-search-id="row.id.raw" class="btn-group btn-group-xs"></crm-search-admin-tags>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/tabs.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/tabs.html
index c5cf94aeb0..22841b6d04 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/tabs.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/tabs.html
@@ -1,7 +1,10 @@
+<li>
+  <crm-search-admin-tags tag-ids="$ctrl.savedSearch.tag_id" class="btn-group btn-group-sm"></crm-search-admin-tags>
+</li>
 <li role="presentation" ng-class="{active: controls.tab === 'compose'}">
   <a href ng-click="selectTab('compose')">
     <i class="crm-i fa-gears"></i>
-    {{ ts('Compose Search') }}
+    {{:: ts('Compose Search') }}
   </a>
 </li>
 <li role="presentation" ng-class="{active: controls.tab === 'group'}" ng-if="$ctrl.savedSearch.groups.length" title="{{ !$ctrl.groupExists ? ts('Group will be deleted.') : '' }}">
@@ -23,7 +26,7 @@
   </button>
 </li>
 <li role="presentation">
-  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
     <i class="crm-i fa-plus"></i> {{:: ts('Add...') }} <span class="caret"></span>
   </button>
   <ul class="dropdown-menu">
@@ -33,7 +36,7 @@
         {{:: ts('Smart Group') }}
       </a>
     </li>
-    <li class="dropdown-header">{{ ts('Display') }}</li>
+    <li class="dropdown-header">{{:: ts('Display') }}</li>
     <li ng-repeat="type in ::$ctrl.displayTypes">
       <a href ng-click="$ctrl.addDisplay(type.id)">
         <i class="crm-i {{:: type.icon }}"></i>
diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js b/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js
index b6b6957562..55cb13b943 100644
--- a/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js
@@ -23,7 +23,8 @@
         initialValue = _.cloneDeep(this.row[col.editable.value].raw);
 
         this.field = {
-          data_type: col.dataType,
+          data_type: col.editable.data_type,
+          input_type: col.editable.input_type,
           name: col.editable.name,
           options: col.editable.options,
           fk_entity: col.editable.fk_entity,
diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js
index f4700a6b01..89752172d5 100644
--- a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js
+++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js
@@ -3,7 +3,9 @@
 
   // Trait provides base methods and properties common to all search display types
   angular.module('crmSearchDisplay').factory('searchDisplayBaseTrait', function(crmApi4) {
-    var ts = CRM.ts('org.civicrm.search_kit');
+    var ts = CRM.ts('org.civicrm.search_kit'),
+      runCount = 0,
+      seed = Date.now();
 
     // Replace tokens keyed to rowData.
     // Pass view=true to replace with view value, otherwise raw value is used.
@@ -72,12 +74,13 @@
         var ctrl = this;
         this.limit = this.settings.limit;
         this.sort = this.settings.sort ? _.cloneDeep(this.settings.sort) : [];
+        this.seed = Date.now();
 
         this.getResults = _.debounce(function() {
           $scope.$apply(function() {
             ctrl.runSearch();
           });
-        }, 100);
+        }, 800);
 
         // If search is embedded in contact summary tab, display count in tab-header
         var contactTab = $element.closest('.crm-contact-page .ui-tabs-panel').attr('id');
@@ -128,6 +131,7 @@
           display: this.display,
           sort: this.sort,
           limit: this.limit,
+          seed: this.seed,
           filters: _.assign({}, (this.afFieldset ? this.afFieldset.getFieldData() : {}), this.filters),
           afform: this.afFieldset ? this.afFieldset.getFormName() : null
         };
@@ -142,12 +146,16 @@
       // Call SearchDisplay.run and update ctrl.results and ctrl.rowCount
       runSearch: function(editedRow) {
         var ctrl = this,
+          requestId = ++runCount,
           apiParams = this.getApiParams();
         this.loading = true;
         _.each(ctrl.onPreRun, function(callback) {
           callback.call(ctrl, apiParams);
         });
         return crmApi4('SearchDisplay', 'run', apiParams).then(function(results) {
+          if (requestId < runCount) {
+            return; // Another request started after this one
+          }
           ctrl.results = results;
           ctrl.editing = ctrl.loading = false;
           if (!ctrl.rowCount) {
@@ -164,6 +172,9 @@
             callback.call(ctrl, results, 'success', editedRow);
           });
         }, function(error) {
+          if (requestId < runCount) {
+            return; // Another request started after this one
+          }
           ctrl.results = [];
           ctrl.editing = ctrl.loading = false;
           _.each(ctrl.onPostRun, function(callback) {
diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js
index 207da88e10..403ddeab53 100644
--- a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js
+++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js
@@ -10,6 +10,10 @@
 
       sort: [],
 
+      isSortable: function(col) {
+        return col.type === 'field' && col.sortable !== false;
+      },
+
       getSort: function(col) {
         var dir = _.reduce(this.sort, function(dir, item) {
           return item[0] === col.key ? item[1] : dir;
@@ -21,7 +25,7 @@
       },
 
       setSort: function(col, $event) {
-        if (col.type !== 'field') {
+        if (!this.isSortable(col)) {
           return;
         }
         var dir = this.getSort(col) === 'fa-sort-asc' ? 'DESC' : 'ASC';
diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.html b/civicrm/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.html
index 86c5b1ca07..5857239c13 100644
--- a/civicrm/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.html
+++ b/civicrm/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.html
@@ -3,14 +3,14 @@
     <div class="btn-group" ng-include="'~/crmSearchDisplay/SearchButton.html'" ng-if="$ctrl.settings.button"></div>
     <crm-search-tasks ng-if="$ctrl.settings.actions" entity="$ctrl.apiEntity" ids="$ctrl.selectedRows" search="$ctrl.search" display="$ctrl.display" display-controller="$ctrl" refresh="$ctrl.refreshAfterTask()"></crm-search-tasks>
   </div>
-  <table>
+  <table class="{{:: $ctrl.settings.classes.join(' ') }}">
     <thead>
       <tr>
         <th class="crm-search-result-select" ng-if=":: $ctrl.settings.actions">
           <input type="checkbox" ng-disabled="$ctrl.loading || !$ctrl.results.length" ng-checked="$ctrl.allRowsSelected" ng-click="$ctrl.selectAllRows()" >
         </th>
-        <th ng-repeat="col in $ctrl.settings.columns" ng-click="$ctrl.setSort(col, $event)" title="{{:: col.type === 'field' ? ts('Click to sort results (shift-click to sort by multiple).') : '' }}">
-          <i ng-if=":: col.type === 'field'" class="crm-i {{ $ctrl.getSort(col) }}"></i>
+        <th ng-repeat="col in $ctrl.settings.columns" ng-click="$ctrl.setSort(col, $event)" title="{{:: $ctrl.isSortable(col) ? ts('Click to sort results (shift-click to sort by multiple).') : '' }}">
+          <i ng-if=":: $ctrl.isSortable(col)" class="crm-i {{ $ctrl.getSort(col) }}"></i>
           <span>{{:: col.label }}</span>
         </th>
       </tr>
diff --git a/civicrm/ext/search_kit/css/crmSearchAdmin.css b/civicrm/ext/search_kit/css/crmSearchAdmin.css
index bdcf4123c5..a02c9c9562 100644
--- a/civicrm/ext/search_kit/css/crmSearchAdmin.css
+++ b/civicrm/ext/search_kit/css/crmSearchAdmin.css
@@ -211,16 +211,39 @@
 #bootstrap-theme tbody .crm-search-admin-icon-col {
   text-align: center;
 }
+#bootstrap-theme .crm-search-admin-tag-color {
+  display: inline-block;
+  width: 12px;
+  height: 12px;
+  border: 1px solid lightgrey;
+  border-radius: 5px;
+}
+
+#bootstrap-theme crm-search-admin-tags.btn-group-xs .crm-search-admin-tags-btn-label {
+  display: none;
+}
 
-#bootstrap-theme input[type=search]::placeholder {
-  font-family: FontAwesome;
-  text-align: right;
+#bootstrap-theme .dropdown-menu li .form-inline {
+  padding: 2px 19px 2px 21px;
+  clear: both;
+  font-weight: 400;
+  line-height: 1.5384615385;
+  color: #4d4d69;
+  white-space: nowrap;
 }
-#bootstrap-theme input[type=search]:-ms-input-placeholder {
-  font-family: FontAwesome;
-  text-align: right;
+
+#bootstrap-theme .dropdown-menu li > * > label {
+  font-weight: normal;
+  cursor: pointer;
 }
-#bootstrap-theme input[type=search]::-ms-input-placeholder {
-  font-family: FontAwesome;
-  text-align: right;
+
+#bootstrap-theme .dropdown-menu li .form-inline > select {
+  max-width: 120px;
+  padding-left: 5px;
+  padding-right: 5px;
+}
+
+#bootstrap-theme li .form-inline input[type=color] {
+  width: 30px;
+  padding: 2px 4px;
 }
diff --git a/civicrm/ext/search_kit/css/crmSearchTasks.css b/civicrm/ext/search_kit/css/crmSearchTasks.css
index 69f37e8959..dbd48542e1 100644
--- a/civicrm/ext/search_kit/css/crmSearchTasks.css
+++ b/civicrm/ext/search_kit/css/crmSearchTasks.css
@@ -4,6 +4,10 @@
   border: 1px solid lightgrey;
 }
 
+#bootstrap-theme .crm-search-display-table > table.table > thead > tr > th.crm-search-result-select {
+  vertical-align: middle;
+}
+
 .crm-search-display.crm-search-display-table td > crm-search-display-editable,
 .crm-search-display.crm-search-display-table td > .crm-editable-enabled {
   display: block !important;
diff --git a/civicrm/ext/search_kit/info.xml b/civicrm/ext/search_kit/info.xml
index d986a1e3f4..ff9f274879 100644
--- a/civicrm/ext/search_kit/info.xml
+++ b/civicrm/ext/search_kit/info.xml
@@ -14,7 +14,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-01-06</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <develStage>beta</develStage>
   <compatibility>
     <ver>5.38</ver>
diff --git a/civicrm/ext/search_kit/managed/TagUsedFor.mgd.php b/civicrm/ext/search_kit/managed/TagUsedFor.mgd.php
new file mode 100644
index 0000000000..d11246a793
--- /dev/null
+++ b/civicrm/ext/search_kit/managed/TagUsedFor.mgd.php
@@ -0,0 +1,15 @@
+<?php
+// Adds option group for SearchDisplay.type
+
+return [
+  [
+    'name' => 'SavedSearch:tag_used_for',
+    'entity' => 'OptionValue',
+    'params' => [
+      'option_group_id' => 'tag_used_for',
+      'value' => 'civicrm_saved_search',
+      'name' => 'SavedSearch',
+      'label' => ts('Saved Searches'),
+    ],
+  ],
+];
diff --git a/civicrm/ext/search_kit/search_kit.php b/civicrm/ext/search_kit/search_kit.php
index 846b2b61b6..c37d3e5c48 100644
--- a/civicrm/ext/search_kit/search_kit.php
+++ b/civicrm/ext/search_kit/search_kit.php
@@ -130,4 +130,12 @@ function search_kit_civicrm_pre($op, $entity, $id, &$params) {
       $params['name'] = \CRM_Utils_String::munge($params['label']);
     }
   }
+  // When deleting a saved search, also delete the displays
+  // This would happen anyway in sql because of the ON DELETE CASCADE foreign key,
+  // But this ensures that pre and post hooks are called
+  if ($entity === 'SavedSearch' && $op === 'delete') {
+    \Civi\Api4\SearchDisplay::delete(FALSE)
+      ->addWhere('saved_search_id', '=', $id)
+      ->execute();
+  }
 }
diff --git a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchAfformTest.php b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchAfformTest.php
index c790462eac..feaee1539f 100644
--- a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchAfformTest.php
+++ b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchAfformTest.php
@@ -1,6 +1,8 @@
 <?php
 namespace api\v4\SearchDisplay;
 
+use Civi\Api4\Action\Afform\Save;
+use Civi\Api4\Afform;
 use Civi\Api4\Contact;
 use Civi\Api4\Email;
 use Civi\Api4\SavedSearch;
@@ -35,7 +37,7 @@ class SearchAfformTest extends \PHPUnit\Framework\TestCase implements HeadlessIn
           'select' => [
             'id',
             'display_name',
-            'GROUP_CONCAT(DISTINCT Contact_Email_contact_id_01.email) AS GROUP_CONCAT_DISTINCT_Contact_Email_contact_id_01_email',
+            'GROUP_CONCAT(DISTINCT Contact_Email_contact_id_01.email) AS GROUP_CONCAT_Contact_Email_contact_id_01_email',
           ],
           'orderBy' => [],
           'where' => [
@@ -77,7 +79,7 @@ class SearchAfformTest extends \PHPUnit\Framework\TestCase implements HeadlessIn
               'type' => 'field',
             ],
             [
-              'key' => 'GROUP_CONCAT_DISTINCT_Contact_Email_contact_id_01_email',
+              'key' => 'GROUP_CONCAT_Contact_Email_contact_id_01_email',
               'label' => 'Emails',
               'dataType' => 'String',
               'type' => 'field',
@@ -151,4 +153,53 @@ class SearchAfformTest extends \PHPUnit\Framework\TestCase implements HeadlessIn
     $this->assertCount(1, $result);
   }
 
+  public function testDeleteSearchWillDeleteAfform() {
+    $search = SavedSearch::create(FALSE)
+      ->setValues([
+        'name' => 'TestSearchToDelete',
+        'label' => 'TestSearchToDelete',
+        'api_entity' => 'Contact',
+        'api_params' => [
+          'version' => 4,
+          'select' => ['id'],
+        ],
+      ])
+      ->execute()->first();
+
+    $display = SearchDisplay::create(FALSE)
+      ->setValues([
+        'name' => 'TestDisplayToDelete',
+        'label' => 'TestDisplayToDelete',
+        'saved_search_id.name' => 'TestSearchToDelete',
+        'type' => 'table',
+        'settings' => [
+          'columns' => [
+            [
+              'key' => 'id',
+              'label' => 'Contact ID',
+              'dataType' => 'Integer',
+              'type' => 'field',
+            ],
+          ],
+        ],
+        'acl_bypass' => FALSE,
+      ])
+      ->execute()->first();
+
+    Afform::create(FALSE)
+      ->addValue('name', 'TestAfformToDelete')
+      ->addValue('title', 'TestAfformToDelete')
+      ->setLayoutFormat('html')
+      ->addValue('layout', '<div><crm-search-display-table search-name="TestSearchToDelete" display-name="TestDisplayToDelete"></crm-search-display-table></div>')
+      ->execute();
+
+    $this->assertCount(1, Afform::get(FALSE)->addWhere('name', '=', 'TestAfformToDelete')->execute());
+
+    SavedSearch::delete(FALSE)
+      ->addWhere('name', '=', 'TestSearchToDelete')
+      ->execute();
+
+    $this->assertCount(0, Afform::get(FALSE)->addWhere('name', '=', 'TestAfformToDelete')->execute());
+  }
+
 }
diff --git a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchDownloadTest.php b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchDownloadTest.php
index fd28518640..bd642f4b57 100644
--- a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchDownloadTest.php
+++ b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchDownloadTest.php
@@ -18,6 +18,65 @@ class SearchDownloadTest extends \PHPUnit\Framework\TestCase implements Headless
       ->apply();
   }
 
+  /**
+   * Test downloading array format.
+   */
+  public function testDownloadArray() {
+    $lastName = uniqid(__FUNCTION__);
+    $sampleData = [
+      ['first_name' => 'One', 'last_name' => $lastName],
+      ['first_name' => 'Two', 'last_name' => $lastName],
+      ['first_name' => 'Three', 'last_name' => $lastName],
+      ['first_name' => 'Four', 'last_name' => $lastName],
+    ];
+    Contact::save(FALSE)->setRecords($sampleData)->execute();
+
+    $params = [
+      'checkPermissions' => FALSE,
+      'format' => 'array',
+      'savedSearch' => [
+        'api_entity' => 'Contact',
+        'api_params' => [
+          'version' => 4,
+          'select' => ['last_name'],
+          'where' => [],
+        ],
+      ],
+      'display' => [
+        'type' => 'table',
+        'label' => '',
+        'settings' => [
+          'limit' => 2,
+          'actions' => TRUE,
+          'pager' => [],
+          'columns' => [
+            [
+              'key' => 'last_name',
+              'label' => 'First Last',
+              'dataType' => 'String',
+              'type' => 'field',
+              'rewrite' => '[first_name] [last_name]',
+            ],
+          ],
+          'sort' => [
+            ['id', 'ASC'],
+          ],
+        ],
+      ],
+      'filters' => ['last_name' => $lastName],
+      'afform' => NULL,
+    ];
+
+    $download = (array) civicrm_api4('SearchDisplay', 'download', $params);
+    $header = array_shift($download);
+
+    $this->assertEquals('First Last', $header[0]['label']);
+
+    foreach ($download as $rowNum => $data) {
+      $this->assertEquals($sampleData[$rowNum]['first_name'] . ' ' . $lastName, $data[0]);
+    }
+  }
+
   /**
    * Test downloading CSV format.
    *
diff --git a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php
index c22b32e6de..20158ed149 100644
--- a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php
+++ b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php
@@ -41,7 +41,7 @@ class SearchRunTest extends \PHPUnit\Framework\TestCase implements HeadlessInter
       ['first_name' => 'One', 'last_name' => $lastName, 'contact_sub_type' => ['Tester', 'Bot']],
       ['first_name' => 'Two', 'last_name' => $lastName, 'contact_sub_type' => ['Tester']],
       ['first_name' => 'Three', 'last_name' => $lastName, 'contact_sub_type' => ['Bot']],
-      ['first_name' => 'Four', 'last_name' => $lastName],
+      ['first_name' => 'Four', 'middle_name' => 'None', 'last_name' => $lastName],
     ];
     Contact::save(FALSE)->setRecords($sampleData)->execute();
 
@@ -52,7 +52,7 @@ class SearchRunTest extends \PHPUnit\Framework\TestCase implements HeadlessInter
         'api_entity' => 'Contact',
         'api_params' => [
           'version' => 4,
-          'select' => ['id', 'first_name', 'last_name', 'contact_sub_type:label', 'is_deceased'],
+          'select' => ['id', 'first_name', 'middle_name', 'last_name', 'contact_sub_type:label', 'is_deceased'],
           'where' => [],
         ],
       ],
@@ -110,18 +110,24 @@ class SearchRunTest extends \PHPUnit\Framework\TestCase implements HeadlessInter
     $this->assertEquals(FALSE, $result[0]['is_deceased']['raw']);
     $this->assertEquals(ts('No'), $result[0]['is_deceased']['view']);
 
-    $params['filters'] = ['id' => ['>' => $result[0]['id']['raw'], '<=' => $result[1]['id']['raw'] + 1]];
+    $params['filters'] = ['last_name' => $lastName, 'id' => ['>' => $result[0]['id']['raw'], '<=' => $result[1]['id']['raw'] + 1]];
     $params['sort'] = [['first_name', 'ASC']];
     $result = civicrm_api4('SearchDisplay', 'run', $params);
     $this->assertCount(2, $result);
     $this->assertEquals('Three', $result[0]['first_name']['raw']);
     $this->assertEquals('Two', $result[1]['first_name']['raw']);
 
-    $params['filters'] = ['contact_sub_type:label' => ['Tester', 'Bot']];
+    $params['filters'] = ['last_name' => $lastName, 'contact_sub_type:label' => ['Tester', 'Bot']];
     $result = civicrm_api4('SearchDisplay', 'run', $params);
     $this->assertCount(3, $result);
 
-    $params['filters'] = ['contact_sub_type' => ['Tester']];
+    // Comma indicates first_name OR last_name
+    $params['filters'] = ['first_name,last_name' => $lastName, 'contact_sub_type' => ['Tester']];
+    $result = civicrm_api4('SearchDisplay', 'run', $params);
+    $this->assertCount(2, $result);
+
+    // Comma indicates first_name OR middle_name, matches "One" or "None"
+    $params['filters'] = ['first_name,middle_name' => 'one', 'last_name' => $lastName];
     $result = civicrm_api4('SearchDisplay', 'run', $params);
     $this->assertCount(2, $result);
   }
@@ -491,4 +497,75 @@ class SearchRunTest extends \PHPUnit\Framework\TestCase implements HeadlessInter
     $this->assertStringContainsString('failed', $error);
   }
 
+  /**
+   * Test running a searchDisplay with random sorting.
+   */
+  public function testSortByRand() {
+    $lastName = uniqid(__FUNCTION__);
+    $sampleData = [
+      ['first_name' => 'One', 'last_name' => $lastName],
+      ['first_name' => 'Two', 'last_name' => $lastName],
+      ['first_name' => 'Three', 'last_name' => $lastName],
+      ['first_name' => 'Four', 'last_name' => $lastName],
+    ];
+    Contact::save(FALSE)->setRecords($sampleData)->execute();
+
+    $params = [
+      'checkPermissions' => FALSE,
+      'return' => 'page:1',
+      'savedSearch' => [
+        'api_entity' => 'Contact',
+        'api_params' => [
+          'version' => 4,
+          'select' => ['id', 'first_name', 'last_name'],
+          'where' => [['last_name', '=', $lastName]],
+        ],
+      ],
+      'display' => [
+        'type' => 'list',
+        'label' => '',
+        'settings' => [
+          'limit' => 20,
+          'pager' => TRUE,
+          'columns' => [
+            [
+              'key' => 'first_name',
+              'label' => 'First Name',
+              'dataType' => 'String',
+              'type' => 'field',
+            ],
+          ],
+          'sort' => [
+            ['RAND()', 'ASC'],
+          ],
+        ],
+      ],
+      'afform' => NULL,
+    ];
+
+    // Without seed, results are returned in unpredictable order
+    // (hard to test this, but we can at least assert we get the correct number of results back)
+    $unseeded = civicrm_api4('SearchDisplay', 'run', $params);
+    $this->assertCount(4, $unseeded);
+
+    // Seed must be an integer
+    $params['seed'] = 'hello';
+    try {
+      civicrm_api4('SearchDisplay', 'run', $params);
+      $this->fail();
+    }
+    catch (\API_Exception $e) {
+    }
+
+    // With a random seed, results should be shuffled in stable order
+    $params['seed'] = 12345678987654321;
+    $seeded = civicrm_api4('SearchDisplay', 'run', $params);
+
+    // Same seed, same order every time
+    for ($i = 0; $i <= 9; ++$i) {
+      $repeat = civicrm_api4('SearchDisplay', 'run', $params);
+      $this->assertEquals($seeded->column('id'), $repeat->column('id'));
+    }
+  }
+
 }
diff --git a/civicrm/ext/search_kit/tests/phpunit/bootstrap.php b/civicrm/ext/search_kit/tests/phpunit/bootstrap.php
index a5b49253c8..5133778c81 100644
--- a/civicrm/ext/search_kit/tests/phpunit/bootstrap.php
+++ b/civicrm/ext/search_kit/tests/phpunit/bootstrap.php
@@ -1,7 +1,6 @@
 <?php
 
 ini_set('memory_limit', '2G');
-ini_set('safe_mode', 0);
 // phpcs:disable
 eval(cv('php:boot --level=classloader', 'phpcode'));
 // phpcs:enable
diff --git a/civicrm/ext/sequentialcreditnotes/info.xml b/civicrm/ext/sequentialcreditnotes/info.xml
index 53b6ab1cec..c1551dc14e 100644
--- a/civicrm/ext/sequentialcreditnotes/info.xml
+++ b/civicrm/ext/sequentialcreditnotes/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-28</releaseDate>
-  <version>5.42.1</version>
+  <version>5.43.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
diff --git a/civicrm/js/Common.js b/civicrm/js/Common.js
index c17432bb7f..f5601ed8c0 100644
--- a/civicrm/js/Common.js
+++ b/civicrm/js/Common.js
@@ -368,6 +368,9 @@ if (!CRM.vars) CRM.vars = {};
         settings.width = '' + parseInt(percentage+gap-((screenWidth - 700)/7*(gap)/100), 10) + '%';
       }
     }
+    if (settings.dialogClass && !_.includes(settings.dialogClass, 'crm-container')) {
+      settings.dialogClass += ' crm-container';
+    }
     return settings;
   };
 
diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md
index 48a46a3f3d..dffc97b019 100644
--- a/civicrm/release-notes.md
+++ b/civicrm/release-notes.md
@@ -15,6 +15,17 @@ Other resources for identifying changes are:
     * https://github.com/civicrm/civicrm-joomla
     * https://github.com/civicrm/civicrm-wordpress
 
+## CiviCRM 5.43.0
+
+Released November 3, 2021
+
+- **[Synopsis](release-notes/5.43.0.md#synopsis)**
+- **[Features](release-notes/5.43.0.md#features)**
+- **[Bugs resolved](release-notes/5.43.0.md#bugs)**
+- **[Miscellany](release-notes/5.43.0.md#misc)**
+- **[Credits](release-notes/5.43.0.md#credits)**
+- **[Feedback](release-notes/5.43.0.md#feedback)**
+
 ## CiviCRM 5.42.1
 
 Released October 13, 2021
diff --git a/civicrm/release-notes/5.43.0.md b/civicrm/release-notes/5.43.0.md
new file mode 100644
index 0000000000..88f14b0d66
--- /dev/null
+++ b/civicrm/release-notes/5.43.0.md
@@ -0,0 +1,1238 @@
+# CiviCRM 5.43.0
+
+Released November 3, 2021
+
+- **[Synopsis](#synopsis)**
+- **[Features](#features)**
+- **[Bugs resolved](#bugs)**
+- **[Miscellany](#misc)**
+- **[Credits](#credits)**
+- **[Feedback](#feedback)**
+
+## <a name="synopsis"></a>Synopsis
+
+| *Does this version...?*                                         |         |
+|:--------------------------------------------------------------- |:-------:|
+| Fix security vulnerabilities?                                   |   no    |
+| **Change the database schema?**                                 | **yes** |
+| **Alter the API?**                                              | **yes** |
+| **Require attention to configuration options?**                 | **yes** |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| **Introduce features?**                                         | **yes** |
+| **Fix bugs?**                                                   | **yes** |
+
+## <a name="features"></a>Features
+
+### Core CiviCRM
+
+- **Use money formatting for currency in templates
+  ([21783](https://github.com/civicrm/civicrm-core/pull/21783))**
+
+  Receipt templates now use the more modern Brick/Money library to format
+  currency amounts.  This will provide better formats in most cases, but it will
+  be a change.
+
+- **Add sort functionality to event summary report
+  ([21501](https://github.com/civicrm/civicrm-core/pull/21501))**
+
+  Improves Event Summary Report by making it possible to sort columns.
+
+- **Add REGEXP/NOT REGEXP operators to API4
+  ([dev/core#2793](https://lab.civicrm.org/dev/core/-/issues/2793):
+  [21288](https://github.com/civicrm/civicrm-core/pull/21288))**
+
+  Makes it so users can use regular expressions operators in APIv4.
+
+- **APIv4 - Add Contact.age_years extra field to make age calculations easy
+  ([21718](https://github.com/civicrm/civicrm-core/pull/21718))**
+
+  Adds a calculated field to APIv4 which makes it simple to return or filter on
+  a contact's age.
+
+- **APIv4 - Add support for sql equations
+  ([21551](https://github.com/civicrm/civicrm-core/pull/21551))**
+
+  Allows equations e.g. (1 + 1) as sql expressions in APIv4 queries.
+
+- **Apiv4 entity parity (Work Towards
+  [dev/core#2486](https://lab.civicrm.org/dev/core/-/issues/2486):
+  [21355](https://github.com/civicrm/civicrm-core/pull/21355) and
+  [21500](https://github.com/civicrm/civicrm-core/pull/21500))**
+
+  Adds APIv4 entity support for the PrintLabel and Survey entities.
+
+- **APIv4 - Use event instead of hardcoded list to resolve entityName to
+  className ([21771](https://github.com/civicrm/civicrm-core/pull/21771),
+  [21803](https://github.com/civicrm/civicrm-core/pull/21803),
+  [21819](https://github.com/civicrm/civicrm-core/pull/21819),
+  [21824](https://github.com/civicrm/civicrm-core/pull/21824),
+  [21828](https://github.com/civicrm/civicrm-core/pull/21828),
+  [21839](https://github.com/civicrm/civicrm-core/pull/21839), and
+  [21851](https://github.com/civicrm/civicrm-core/pull/21851))**
+
+  This allows core and extension-introduced entities to have arbitrary class and
+  entity names instead of requiring the two to agree.
+
+- **activity import: prepend custom group title to custom fields
+  ([21318](https://github.com/civicrm/civicrm-core/pull/21318))**
+
+  Makes it possible to distinguish between core and custom fields on the
+  Activity Import screen.
+
+- **No way to distinguish the core and custom fields on Find and Merge Duplicate
+  Contacts page
+  ([dev/core#2766](https://lab.civicrm.org/dev/core/-/issues/2766):
+  [21728](https://github.com/civicrm/civicrm-core/pull/21728))**
+
+  Makes it possible to distinguish between core and custom fields on the Find
+  and Merge Duplicate Contacts page.
+
+- **Support participant & membership tokens in send-email tasks
+  ([21745](https://github.com/civicrm/civicrm-core/pull/21745) and
+  [dev/core#2895](https://lab.civicrm.org/dev/core/-/issues/2895):
+  [21801](https://github.com/civicrm/civicrm-core/pull/21801))**
+
+  Makes it so users can use participant & membership tokens in send-email tasks.
+
+- **Add participant tokens to pdf task
+  ([21695](https://github.com/civicrm/civicrm-core/pull/21695))**
+
+  Makes it so users can use participant tokens in PDF tasks.
+
+- **Meta - token usage 5.43 standardisation effort
+  ([dev/core#2864](https://lab.civicrm.org/dev/core/-/issues/2864):
+  [21428](https://github.com/civicrm/civicrm-core/pull/21428),
+  [21605](https://github.com/civicrm/civicrm-core/pull/21605),
+  [21713](https://github.com/civicrm/civicrm-core/pull/21713),
+  [21584](https://github.com/civicrm/civicrm-core/pull/21584),
+  [21523](https://github.com/civicrm/civicrm-core/pull/21523),
+  [21706](https://github.com/civicrm/civicrm-core/pull/21706),
+  [21806](https://github.com/civicrm/civicrm-core/pull/21806),
+  [21821](https://github.com/civicrm/civicrm-core/pull/21821),
+  [21530](https://github.com/civicrm/civicrm-core/pull/21530),
+  [21537](https://github.com/civicrm/civicrm-core/pull/21537), and
+  [21913](https://github.com/civicrm/civicrm-core/pull/21913))**
+
+  Standardizes Token usage.
+
+- **Add {domain.now}, supporting |crmDate
+  ([21531](https://github.com/civicrm/civicrm-core/pull/21531))**
+
+  Adds new token {domain.now} that provides the current date.
+
+- **Afform - Use search display name as field prefix for url-based field
+  defaults ([21645](https://github.com/civicrm/civicrm-core/pull/21645))**
+
+   Makes field prefix optional for Afform url-based defaults, and uses search
+   display name as prefix for search forms.
+
+- **Afform - Accept default field values from the url
+  ([21606](https://github.com/civicrm/civicrm-core/pull/21606))**
+
+  Allows default Afform field values to be set from the url.
+
+- **Afform Admin add link icon & template cleanup
+  ([21764](https://github.com/civicrm/civicrm-core/pull/21764))**
+
+  Minor cleanup to improve template efficiency, style afform page link, and add
+  a page title.
+
+- **Search kit - default filter - primary
+  ([dev/core#2852](https://lab.civicrm.org/dev/core/-/issues/2852):
+  [21574](https://github.com/civicrm/civicrm-core/pull/21574))**
+
+  Adds is_primary as a default SearchKit filter.
+
+- **SearchKit - Add UI for arithmetic equations
+  ([21600](https://github.com/civicrm/civicrm-core/pull/21600))**
+
+  Allows adding, subtracting, dividing and multiplying any number of values in
+  SearchKit.
+
+- **SearchKit - Support multiple arguments to field transformations aka SQL
+  functions ([21528](https://github.com/civicrm/civicrm-core/pull/21528) and
+  [21535](https://github.com/civicrm/civicrm-core/pull/21535))**
+
+  Enhances the SearchKit UI to allow multiple fields to be acted upon at once in
+  a function.
+
+- **SearchKit - Add pseudo-fields for row number and current user
+  ([21435](https://github.com/civicrm/civicrm-core/pull/21435))**
+
+  Makes a couple calculated fields available for use as columns or tokens in
+  SearchKit.
+
+- **SearchKit - Support custom fields in bridge join entities
+  ([21424](https://github.com/civicrm/civicrm-core/pull/21424))**
+
+  Makes it possible to use relationship custom data throughout Search Kit.
+
+- **SearchKit & Afform - Use Bootstrap table styles on admin screens
+  ([21405](https://github.com/civicrm/civicrm-core/pull/21405) and
+  [21397](https://github.com/civicrm/civicrm-core/pull/21397))**
+
+  applies Bootstrap table styles to admin tables in SearchKit and Afform.
+
+- **SearchKit - Filter search listing by creator
+  ([21388](https://github.com/civicrm/civicrm-core/pull/21388))**
+
+  Makes it so users can filter the search listing by creator.
+
+- **SearchKit - enable tags for Saved Searches
+  ([21376](https://github.com/civicrm/civicrm-core/pull/21376))**
+
+  Enables tags for saved searches in searchkit.
+
+- **SearchKit - Add 'array' option to download API and add test
+  ([21363](https://github.com/civicrm/civicrm-core/pull/21363))**
+
+  Adds a new option to the SearchKit "Download" api to return a normal array
+  result, which makes testing easier.
+
+- **SearchKit - Sortable column fixes/improvements
+  ([21720](https://github.com/civicrm/civicrm-core/pull/21720) and
+  [21894](https://github.com/civicrm/civicrm-core/pull/21894))**
+
+  Fixes sortable column headers on SearchKit admin tables and makes
+  click-sortable column headers configurable.
+
+- **Add message admin to dist
+  ([21670](https://github.com/civicrm/civicrm-core/pull/21670))**
+
+  Adds Message admin extension.
+
+- **message_admin - Add titles/hints to hyperlinks
+  ([21698](https://github.com/civicrm/civicrm-core/pull/21698))**
+
+  Adds help text to links on Message Admin Screen.
+
+- **Replace expensive query with cheaper one
+  ([21426](https://github.com/civicrm/civicrm-core/pull/21426))**
+
+  Improves performance.
+
+- **Add support for CiviCRM date formats in crmDate
+  ([21508](https://github.com/civicrm/civicrm-core/pull/21508))**
+
+  Adds support for CiviCRM date formats in crmDate.
+
+- **Mailing Unsubscribe Form: Show if email is already unsubscribed
+  ([21174](https://github.com/civicrm/civicrm-core/pull/21174))**
+
+  Improves languaging on the Mailing Unsubscribe form regarding if the email is
+  already unsubscribed.
+
+- **Change Do Not SMS privacy icon
+  ([dev/core#2754](https://lab.civicrm.org/dev/core/-/issues/2754):
+  [21354](https://github.com/civicrm/civicrm-core/pull/21354))**
+
+  Improves usability by improving the Do Not SMS icon.
+
+### CiviContribute
+
+- **Add workflow template for 'recurring edit' workflow
+  ([21356](https://github.com/civicrm/civicrm-core/pull/21356) and
+  [21826](https://github.com/civicrm/civicrm-core/pull/21826))**
+
+  Adds workflow template for 'recurring edit' workflow
+
+- **Can we re-order the 'recur links'
+  ([dev/core#2843](https://lab.civicrm.org/dev/core/-/issues/2843):
+  [21529](https://github.com/civicrm/civicrm-core/pull/21529))**
+
+  Improves user experience by reordering the contribution recur links.
+
+- **View Contribution page, move the Done button to the last button, currently
+  shown in the middle
+  ([21547](https://github.com/civicrm/civicrm-core/pull/21547))**
+
+  Reorders buttons on the Contribution page to improve user experience.
+
+- **Replace "Print Invoice" and "Print Invoice and Credit Note" buttons with
+  label "Download Invoice" and "Download Invoice and Credit Note"
+  ([21546](https://github.com/civicrm/civicrm-core/pull/21546))**
+
+  Improves labels for Invoice buttons.
+
+### CiviEvent
+
+- **Custom Participant tokens not working in scheduled reminders
+  ([dev/core#348](https://lab.civicrm.org/dev/core/-/issues/348):
+  [21666](https://github.com/civicrm/civicrm-core/pull/21666))**
+
+  Adds support for participant tokens in scheduled reminders.
+
+### CiviMail
+
+- **CRM-19236 - Fix Flexmailer extension to support unicode urls
+  ([21597](https://github.com/civicrm/civicrm-core/pull/21597))**
+
+  Updates flexmailer click tracking to support unicode urls.
+
+- **Install flexmailer by default on new installs
+  ([dev/core#2836](https://lab.civicrm.org/dev/core/-/issues/2836):
+  [21522](https://github.com/civicrm/civicrm-core/pull/21522) and
+  [21830](https://github.com/civicrm/civicrm-core/pull/21830))**
+
+  Installs flexmailer on new installs by default.
+
+### CiviMember
+
+- **Fix code to use Order api to create Memberships in core forms (Work Towards
+  [dev/core#2717](https://lab.civicrm.org/dev/core/-/issues/2717):
+  [21152](https://github.com/civicrm/civicrm-core/pull/21152))**
+
+  Use order api for new membership create in batch.
+
+### WordPress integration
+
+- **Add deduping to Quick Add Dashboard Widget
+  ([256](https://github.com/civicrm/civicrm-wordpress/pull/256))**
+
+  Adds a simple deduplication check when submitting details via the "Quick Add
+  Contact to CiviCRM" Dashboard Widget.
+
+## <a name="bugs"></a>Bugs resolved
+
+### Core CiviCRM
+
+- **Full Month Names: avoid relying on the operating system's locale for
+  translation
+  ([dev/translation#71](https://lab.civicrm.org/dev/translation/-/issues/71):
+  [21157](https://github.com/civicrm/civicrm-core/pull/21157))**
+
+- **CRM_Utils_Date - Month and day names should match active locale
+  ([21569](https://github.com/civicrm/civicrm-core/pull/21569))**
+
+- **System Workflow Messages - Improve localization experience (Work Towards
+  [dev/mail#83](https://lab.civicrm.org/dev/mail/-/issues/83):
+  [21773](https://github.com/civicrm/civicrm-core/pull/21773),
+  [21747](https://github.com/civicrm/civicrm-core/pull/21747),
+  [21774](https://github.com/civicrm/civicrm-core/pull/21774),
+  [21772](https://github.com/civicrm/civicrm-core/pull/21772),
+  [21590](https://github.com/civicrm/civicrm-core/pull/21590),
+  [21338](https://github.com/civicrm/civicrm-core/pull/21338),
+  [21480](https://github.com/civicrm/civicrm-core/pull/21480) and
+  [21486](https://github.com/civicrm/civicrm-core/pull/21486))**
+
+- **When extensions do upgrades and add fields to tables, trigger-based logging
+  tables require the extension to do the right thing
+  ([dev/core#1618](https://lab.civicrm.org/dev/core/-/issues/1618):
+  [21135](https://github.com/civicrm/civicrm-core/pull/21135))**
+
+- **Special characters become "?" On PDF report
+  ([dev/core#2126](https://lab.civicrm.org/dev/core/-/issues/2126):
+  [21423](https://github.com/civicrm/civicrm-core/pull/21423))**
+
+- **Send an Email / Cancel button does not work
+  ([dev/core#2318](https://lab.civicrm.org/dev/core/-/issues/2318):
+  [21474](https://github.com/civicrm/civicrm-core/pull/21474))**
+
+- **hook_civicrm_tokenValues inconsistent data
+  ([dev/core#2554](https://lab.civicrm.org/dev/core/-/issues/2554):
+  [21490](https://github.com/civicrm/civicrm-core/pull/21490))**
+
+  Remove code to assign contact to the template in sendEmail.
+
+- **Use consistent token syntax for pseudoconstants
+  ([dev/core#2650](https://lab.civicrm.org/dev/core/-/issues/2650):
+  [21477](https://github.com/civicrm/civicrm-core/pull/21477),
+  [21464](https://github.com/civicrm/civicrm-core/pull/21464),
+  [21570](https://github.com/civicrm/civicrm-core/pull/21570) and
+  [21705](https://github.com/civicrm/civicrm-core/pull/21705))**
+
+- **Remove unused token assigns (Work Towards
+  [dev/core#2748](https://lab.civicrm.org/dev/core/-/issues/2748):
+  [21059](https://github.com/civicrm/civicrm-core/pull/21059))**
+
+  Removes some no-longer-used token assigns & adds an upgrade message in case
+  people have templates still referring to them.
+
+- **Something something tokens something tokens
+  ([dev/core#2856](https://lab.civicrm.org/dev/core/-/issues/2856):
+  [21580](https://github.com/civicrm/civicrm-core/pull/21580))**
+
+  Token "filter" can be null so filter[0] doesn't exist.
+
+- **Fix contact tokens class to load using apiv4
+  ([21780](https://github.com/civicrm/civicrm-core/pull/21780))**
+
+- **Remove case token listing from contact email task
+  ([21787](https://github.com/civicrm/civicrm-core/pull/21787))**
+
+- **Fix another instance of double token rendering
+  ([21788](https://github.com/civicrm/civicrm-core/pull/21788))**
+
+- **Fix token regression - re-add support for empty tokens
+  ([21756](https://github.com/civicrm/civicrm-core/pull/21756))**
+
+- **Fix event custom field tokens in scheduled reminders
+  ([21374](https://github.com/civicrm/civicrm-core/pull/21374))**
+
+- **Reference token metadata internally fix custom tokens label bug
+  ([21767](https://github.com/civicrm/civicrm-core/pull/21767))**
+
+- **Participant tokens - remove / replace unsupportable from badges (conversion
+  preparation) ([21520](https://github.com/civicrm/civicrm-core/pull/21520))**
+
+- **Fix activity tokens
+  ([21489](https://github.com/civicrm/civicrm-core/pull/21489))**
+
+- **Ensure TokenSmary::render returns an array
+  ([21461](https://github.com/civicrm/civicrm-core/pull/21461))**
+
+- **Replace event type token in action schedule changes event.event_type_id to
+  participant.event_type_id:label
+  ([dev/core#2892](https://lab.civicrm.org/dev/core/-/issues/2892):
+  [21738](https://github.com/civicrm/civicrm-core/pull/21738))**
+
+- **Custom field multiselect of type int crashes when saving
+  ([dev/core#2772](https://lab.civicrm.org/dev/core/-/issues/2772):
+  [21186](https://github.com/civicrm/civicrm-core/pull/21186))**
+
+- **Deduping produces bad results after a rule change
+  ([dev/core#2820](https://lab.civicrm.org/dev/core/-/issues/2820):
+  [21509](https://github.com/civicrm/civicrm-core/pull/21509))**
+
+- **[REF] Extend 'managed' api to provide information about 'status' (Clean up
+  towards [dev/core#2823](https://lab.civicrm.org/dev/core/-/issues/2823):
+  [21399](https://github.com/civicrm/civicrm-core/pull/21399),
+  [21440](https://github.com/civicrm/civicrm-core/pull/21440),
+  [21400](https://github.com/civicrm/civicrm-core/pull/21400),
+  [21401](https://github.com/civicrm/civicrm-core/pull/21401),
+  [21412](https://github.com/civicrm/civicrm-core/pull/21412) and
+  [21395](https://github.com/civicrm/civicrm-core/pull/21395))**
+
+- **Dashboard error `Trying to access array offset on value of type null`
+  ([dev/core#2829](https://lab.civicrm.org/dev/core/-/issues/2829):
+  [21441](https://github.com/civicrm/civicrm-core/pull/21441) and
+  [21437](https://github.com/civicrm/civicrm-core/pull/21437))**
+
+- **Upgrade error - upgrading to 5.43
+  ([dev/core#2870](https://lab.civicrm.org/dev/core/-/issues/2870):
+  [21640](https://github.com/civicrm/civicrm-core/pull/21640))**
+
+  Fix upgrade error with rpow installed.
+
+- **Search Builder: Fails validation when state_province location type is
+  "primary" and operator is "IN"
+  ([dev/core#2874](https://lab.civicrm.org/dev/core/-/issues/2874):
+  [21646](https://github.com/civicrm/civicrm-core/pull/21646))**
+
+- **APIv3 "replace" action is broken when there is > 25 records to replace.
+  ([dev/core#2881](https://lab.civicrm.org/dev/core/-/issues/2881):
+  [21681](https://github.com/civicrm/civicrm-core/pull/21681))**
+
+- **Add contacts to Group action missing custom fields
+  ([dev/core#2885](https://lab.civicrm.org/dev/core/-/issues/2885):
+  [21716](https://github.com/civicrm/civicrm-core/pull/21716))**
+
+- **Find Activities + Send Email task always says the contact is on hold or
+  deceased etc ([dev/core#2901](https://lab.civicrm.org/dev/core/-/issues/2901):
+  [21781](https://github.com/civicrm/civicrm-core/pull/21781))**
+
+- **Afform - Fix chainSelect to work with anonymous users
+  ([21759](https://github.com/civicrm/civicrm-core/pull/21759))**
+
+- **Afform - Fix chain-select of country and address to work on SearchKit forms
+  ([21749](https://github.com/civicrm/civicrm-core/pull/21749))**
+
+- **Afform - gracefully handle missing html files
+  ([21436](https://github.com/civicrm/civicrm-core/pull/21436))**
+
+- **Afform - fix loading embedded blocks
+  ([21609](https://github.com/civicrm/civicrm-core/pull/21609))**
+
+- **Afform - ensure default value data type matches input type
+  ([21643](https://github.com/civicrm/civicrm-core/pull/21643))**
+
+- **api4 explorer - entity displays as `\undefined` in the generated code sample
+  ([dev/core#2867](https://lab.civicrm.org/dev/core/-/issues/2867):
+  [21634](https://github.com/civicrm/civicrm-core/pull/21634))**
+
+- **APIv4 - Default select clause to exclude "Extra" fields
+  ([21438](https://github.com/civicrm/civicrm-core/pull/21438))**
+
+- **APIv4 - Give every SQL expression a title
+  ([21691](https://github.com/civicrm/civicrm-core/pull/21691))**
+
+- **APIv4 - Automatically coalesce potentially null field values in equations
+  ([21647](https://github.com/civicrm/civicrm-core/pull/21647))**
+
+- **UX: Deleting a saved Search Kit search should warn/delete associated afforms
+  ([dev/core#2824](https://lab.civicrm.org/dev/core/-/issues/2824):
+  [21457](https://github.com/civicrm/civicrm-core/pull/21457))**
+
+- **search kit: deleting a search has weird confirmation dialog box
+  ([dev/core#2826](https://lab.civicrm.org/dev/core/-/issues/2826):
+  [21404](https://github.com/civicrm/civicrm-core/pull/21404))**
+
+- **New download spreadsheet search kit feature broken
+  ([dev/core#2888](https://lab.civicrm.org/dev/core/-/issues/2888):
+  [21724](https://github.com/civicrm/civicrm-core/pull/21724))**
+
+- **SearchKit - Style buttons for compatability with Shoreditch theme
+  ([21627](https://github.com/civicrm/civicrm-core/pull/21627))**
+
+- **SearchKit - tweak button styles for shorditch
+  ([21726](https://github.com/civicrm/civicrm-core/pull/21726))**
+
+  Tweaks the "Tags" and "Add" buttons in SearchKit to look better in Shoreditch,
+  and tidies up some ts() calls.
+
+- **SearchKit - A random stable genius
+  ([21586](https://github.com/civicrm/civicrm-core/pull/21586))**
+
+  Allows the pager, edit-in-place, and bulk updates to work properly with random
+  sorting.
+
+- **SearchKit - Exclude custom fields from ON clause selector
+  ([21495](https://github.com/civicrm/civicrm-core/pull/21495))**
+
+  Custom fields cannot as-yet be added to an ON clause in APIv4 because they do
+  not belong to the tables being joined. This removes the tripping hazard from
+  the UI, by making custom fields unavailable to select in an ON clause.
+
+- **SearchKit - Fix links to non-aggregage join fields
+  ([21482](https://github.com/civicrm/civicrm-core/pull/21482))**
+
+- **SearchKit - Fix display of links in aggregated columns
+  ([21420](https://github.com/civicrm/civicrm-core/pull/21420))**
+
+- **SearchKit - Fix alignment in table headers
+  ([21431](https://github.com/civicrm/civicrm-core/pull/21431))**
+
+- **SearchKit - Correctly process filters passed through Afform from js
+  ([21485](https://github.com/civicrm/civicrm-core/pull/21485))**
+
+- **SearchKit - Prevent race conditions in search display loading
+  ([21394](https://github.com/civicrm/civicrm-core/pull/21394))**
+
+- **[search kit] Semicolon vs comma
+  ([21406](https://github.com/civicrm/civicrm-core/pull/21406))**
+
+- **message_admin Style fixes
+  ([21712](https://github.com/civicrm/civicrm-core/pull/21712))**
+
+- **message_admin - Fix quirk when using "Create Draft"
+  ([21700](https://github.com/civicrm/civicrm-core/pull/21700))**
+
+- **MessageTemplate API - Fix saving of templates with workflow_name sans
+  workflow_id ([21694](https://github.com/civicrm/civicrm-core/pull/21694))**
+
+- **Find Activities Search, default search option for Activity Text is set to
+  "both" in the code, but should actually be set to 6 which is the value for
+  "both" ([21598](https://github.com/civicrm/civicrm-core/pull/21598))**
+
+- **UFMatch - E_NOTICE when nonexistent uf_id
+  ([21576](https://github.com/civicrm/civicrm-core/pull/21576))**
+
+- **flushCaches should respect permitCacheFlushMode. Also flush caches which
+  have a NULL cache_date
+  ([21430](https://github.com/civicrm/civicrm-core/pull/21430))**
+
+- **Setting::getItem - use deprecatedWarning instead of just logging
+  ([21625](https://github.com/civicrm/civicrm-core/pull/21625))**
+
+- **Fix display of subscription frequency on 'Update Subscription' form
+  ([21469](https://github.com/civicrm/civicrm-core/pull/21469))**
+
+- **Fix bug where log hook is ignored on custom field create
+  ([21557](https://github.com/civicrm/civicrm-core/pull/21557))**
+
+- **Set default for civicrm_message_template.is_reserved
+  ([21651](https://github.com/civicrm/civicrm-core/pull/21651))**
+
+- **CiviReport - avoid error in test environments when using built-in php web
+  server ([21560](https://github.com/civicrm/civicrm-core/pull/21560))**
+
+- **Update SelfSvcUpdate.php
+  ([21679](https://github.com/civicrm/civicrm-core/pull/21679))**
+
+   Changes "cancel" text to read "cancel registration".
+
+- **Import csv-Fix not importing extension in phones
+  ([20995](https://github.com/civicrm/civicrm-core/pull/20995))**
+
+- **Missed message template updates from 5.39/5.40
+  ([21550](https://github.com/civicrm/civicrm-core/pull/21550))**
+
+- **Don't clear the GroupContactCache until we're ready to insert the new
+  version ([21384](https://github.com/civicrm/civicrm-core/pull/21384))**
+
+- **Fix syntax error on a ts() function call
+  ([21518](https://github.com/civicrm/civicrm-core/pull/21518))**
+
+- **flushCaches should respect permitCacheFlushMode
+  ([21468](https://github.com/civicrm/civicrm-core/pull/21468))**
+
+- **Smarty warning about missing contact subtype on New Individual
+  ([21410](https://github.com/civicrm/civicrm-core/pull/21410))**
+
+- **Fix Upgrade step to ensure all fields are converted correctly as well
+  ([21396](https://github.com/civicrm/civicrm-core/pull/21396))**
+
+- **Don't specify character set for civicrm_relationship_cache table
+  ([21382](https://github.com/civicrm/civicrm-core/pull/21382))**
+
+- **Error about count() on New Email
+  ([21714](https://github.com/civicrm/civicrm-core/pull/21714))**
+
+- **Fix generating civicrm.settings.php by ensuring that CMSdbSSL and dbSSL
+  variables are properly removed from the DSNs
+  ([63](https://github.com/civicrm/civicrm-joomla/pull/63))**
+
+- **Smarty notices on Find Activities results page
+  ([21422](https://github.com/civicrm/civicrm-core/pull/21422))**
+
+- **Smarty notice on Find Activities / Find Cases
+  ([21421](https://github.com/civicrm/civicrm-core/pull/21421))**
+
+- **Tpl notice fixes
+  ([21503](https://github.com/civicrm/civicrm-core/pull/21503))**
+
+- **Fix extra apostrophe added in 21636
+  ([21650](https://github.com/civicrm/civicrm-core/pull/21650))**
+
+- **avoid back trace when importing preferred communication method
+  ([21433](https://github.com/civicrm/civicrm-core/pull/21433))**
+
+- **Fixed issue with sending from do-not-reply@domain address
+  ([21455](https://github.com/civicrm/civicrm-core/pull/21455))**
+
+- **Find Activities Search, the default search option of "With" criteria
+  excludes Activities by default. Confuses End Users when 0 results are returned
+  when criteria appears to be correct.
+  ([21595](https://github.com/civicrm/civicrm-core/pull/21595))**
+
+- **Do not send email notification to the user if `notify` is not set in the
+  params ([21562](https://github.com/civicrm/civicrm-core/pull/21562))**
+
+- **ensure blank note date in UI defaults to current date.
+  ([21717](https://github.com/civicrm/civicrm-core/pull/21717))**
+
+- **System status checks only shows 25 messages
+  ([21748](https://github.com/civicrm/civicrm-core/pull/21748))**
+
+- **Enotice fixes
+  ([21723](https://github.com/civicrm/civicrm-core/pull/21723))**
+
+- **Enotice tpl fix
+  ([21689](https://github.com/civicrm/civicrm-core/pull/21689))**
+
+- **Enotice fix
+  ([21782](https://github.com/civicrm/civicrm-core/pull/21782))**
+
+- **Enotice fix
+  ([21732](https://github.com/civicrm/civicrm-core/pull/21732))**
+
+- **enotice fix
+  ([21702](https://github.com/civicrm/civicrm-core/pull/21702))**
+
+- **typo fixes
+  ([21655](https://github.com/civicrm/civicrm-core/pull/21655))**
+
+- **Enotice fix
+  ([21636](https://github.com/civicrm/civicrm-core/pull/21636))**
+
+- **enotice fix
+  ([21631](https://github.com/civicrm/civicrm-core/pull/21631))**
+
+- **Enotice fix
+  ([21579](https://github.com/civicrm/civicrm-core/pull/21579))**
+
+- **Fix header e-notices
+  ([21633](https://github.com/civicrm/civicrm-core/pull/21633))**
+
+- **Enotice fix
+  ([21658](https://github.com/civicrm/civicrm-core/pull/21658))**
+
+- **Enotice fixes
+  ([21659](https://github.com/civicrm/civicrm-core/pull/21659))**
+
+- **Enotice fixes
+  ([21632](https://github.com/civicrm/civicrm-core/pull/21632))**
+
+- **enotice fixes in fatal error template
+  ([21639](https://github.com/civicrm/civicrm-core/pull/21639))**
+
+- **Tpl notice fix
+  ([21543](https://github.com/civicrm/civicrm-core/pull/21543))**
+
+- **tpl enotice fixes on extensions page
+  ([21545](https://github.com/civicrm/civicrm-core/pull/21545))**
+
+- **Tpl notice fixes
+  ([21544](https://github.com/civicrm/civicrm-core/pull/21544))**
+
+- **Tpl enotice fixes
+  ([21542](https://github.com/civicrm/civicrm-core/pull/21542))**
+
+- **Enotice fixes in tpls
+  ([21541](https://github.com/civicrm/civicrm-core/pull/21541))**
+
+- **Add missing ts
+  ([21711](https://github.com/civicrm/civicrm-core/pull/21711))**
+
+- **Another enotice fix
+  ([21682](https://github.com/civicrm/civicrm-core/pull/21682))**
+
+- **And another one
+  ([21683](https://github.com/civicrm/civicrm-core/pull/21683))**
+
+- **Another one bites the dust
+  ([21684](https://github.com/civicrm/civicrm-core/pull/21684))**
+
+- **Fix possibly undefined $form variables in smarty templates
+  ([21735](https://github.com/civicrm/civicrm-core/pull/21735))**
+
+- **Fix regression from enotice fixes
+  ([21743](https://github.com/civicrm/civicrm-core/pull/21743))**
+
+- **Count of sent messages can be wrong in status popup for email form
+  ([dev/core#2914](https://lab.civicrm.org/dev/core/-/issues/2914):
+  [21827](https://github.com/civicrm/civicrm-core/pull/21827))
+
+- **[REF] Fix pseduoconstant token rendering for contributions via legacy way on
+  php8 and include campaign_id pseudoconsntants as well
+  ([21958](https://github.com/civicrm/civicrm-core/pull/21958))**
+
+### CiviCase
+
+- **For latest iteration of case email form, don't fail when there's no To
+  contact ([21737](https://github.com/civicrm/civicrm-core/pull/21737))**
+
+### CiviContribute
+
+- **Fix PHP notices in contributionrecur tpl
+  ([21526](https://github.com/civicrm/civicrm-core/pull/21526))**
+
+- **Follow up on removing contributeMode from templates
+  ([21417](https://github.com/civicrm/civicrm-core/pull/21417))**
+
+- **Getting system status message about contributeMode after upgrade to 5.43
+  when it seems like it shouldn't
+  ([dev/core#2828](https://lab.civicrm.org/dev/core/-/issues/2828):
+  [21434](https://github.com/civicrm/civicrm-core/pull/21434))**
+
+- **Participant Status: pending refund can have two conflicting meanings (Work
+  Towards [dev/core#2629](https://lab.civicrm.org/dev/core/-/issues/2629):
+  [21624](https://github.com/civicrm/civicrm-core/pull/21624))**
+
+  Only show contribution statuses on contribution form.
+
+- **Money - create new Civi:: facade - now format helper (Work Towards:
+  [dev/core#2638](https://lab.civicrm.org/dev/core/-/issues/2638):
+  [21599](https://github.com/civicrm/civicrm-core/pull/21599))**
+
+  Adds a helper function for formatting.
+
+- **CiviCRM 5.35.1, truncation of money values where $1,000 donation is recorded
+  as $1 which appears to be truncating at the thousand separator when using the
+  Australian (AU) and US Locale (Work Towards
+  [dev/core#2493](https://lab.civicrm.org/dev/core/-/issues/2493):
+  [21555](https://github.com/civicrm/civicrm-core/pull/21555))**
+
+  Ensures that any money fields retrieved by getSubmittedValue are in a machine
+  usable format.
+
+- **[regression-ish] When a recurring contribution template has no line items,
+  the contact contribution tab crashes
+  ([dev/financial#187](https://lab.civicrm.org/dev/financial/-/issues/187):
+  [21729](https://github.com/civicrm/civicrm-core/pull/21729))**
+
+- **ContributionRecur modified_date should update to current_timestamp on update
+  ([21472](https://github.com/civicrm/civicrm-core/pull/21472))**
+
+- **ensure recur options are present on backend cc contribution form.
+  ([21577](https://github.com/civicrm/civicrm-core/pull/21577))**
+
+### CiviEvent
+
+- **Flush metadata cache on event edit
+  ([21740](https://github.com/civicrm/civicrm-core/pull/21740))**
+
+- **Fix Badge to use token processor
+  ([dev/core#2834](https://lab.civicrm.org/dev/core/-/issues/2834):
+  [21458](https://github.com/civicrm/civicrm-core/pull/21458) and
+  [21587](https://github.com/civicrm/civicrm-core/pull/21587))**
+
+- **Event confirmation emails should go to the email submitted, not primary
+  email ([dev/event#64](https://lab.civicrm.org/dev/event/-/issues/64):
+  [21669](https://github.com/civicrm/civicrm-core/pull/21669))**
+
+- **Fix label for participant role
+  ([21656](https://github.com/civicrm/civicrm-core/pull/21656))**
+
+### CiviMail
+
+- **flexmailer - Update `[CiviMail Draft]` prefix to match BAO behavior
+  ([21715](https://github.com/civicrm/civicrm-core/pull/21715))**
+
+- **update_email_resetdate job does not consider opt out on hold
+  ([dev/core#2850](https://lab.civicrm.org/dev/core/-/issues/2850):
+  [21564](https://github.com/civicrm/civicrm-core/pull/21564))**
+
+- **Start phasing out 'preferred_mail_format' (Work Towards
+  [dev/core#2866](https://lab.civicrm.org/dev/core/-/issues/2866):
+  [21676](https://github.com/civicrm/civicrm-core/pull/21676))**
+
+### Drupal Integration
+
+- **Contact Image uploaded from Drupal Webform doesn't render on Drupal View as
+  a thumbnail. ([dev/drupal#13](https://lab.civicrm.org/dev/drupal/issues/13):
+  [524](https://github.com/civicrm/civicrm-drupal/pull/524))**
+
+- **Session erroneously getting set to NULL on Drupal user login
+  ([dev/drupal#163](https://lab.civicrm.org/dev/drupal/-/issues/163):
+  [21403](https://github.com/civicrm/civicrm-core/pull/21403))**
+
+### WordPress integration
+
+- **Wordpress Profile User Creation Sign On (v2)
+  ([20807](https://github.com/civicrm/civicrm-core/pull/20807))**
+
+  Ensures user is logged in on profile submission.
+
+## <a name="misc"></a>Miscellany
+
+- **MessageTemplate - Deprecate `valueName`. Emphasize `workflow`. Consolidate
+  converters.  ([21657](https://github.com/civicrm/civicrm-core/pull/21657))**
+
+- **Bump minimum upgradable version to 4.5.9
+  ([21408](https://github.com/civicrm/civicrm-core/pull/21408))**
+
+- **Use Case form for case email action
+  ([21688](https://github.com/civicrm/civicrm-core/pull/21688))**
+
+- **Consolidate building of contact token list
+  ([21429](https://github.com/civicrm/civicrm-core/pull/21429),
+  [21761](https://github.com/civicrm/civicrm-core/pull/21761), and
+  [dev/core#2907](https://lab.civicrm.org/dev/core/-/issues/2907):
+  [21812](https://github.com/civicrm/civicrm-core/pull/21812))**
+
+- **Remove call to legacy getTokenDetails
+  ([21786](https://github.com/civicrm/civicrm-core/pull/21786))**
+
+- **Remove extraneous call to legacy token processing in sms task
+  ([21785](https://github.com/civicrm/civicrm-core/pull/21785))**
+
+- **Remove stray token code
+  ([21763](https://github.com/civicrm/civicrm-core/pull/21763))**
+
+- **Stop using `replaceContributionTokens` in core
+  ([dev/core#2851](https://lab.civicrm.org/dev/core/-/issues/2851):
+  [21525](https://github.com/civicrm/civicrm-core/pull/21525) and
+  [21565](https://github.com/civicrm/civicrm-core/pull/21565))**
+
+- **Add SqlFunction support in addWhere
+  ([21301](https://github.com/civicrm/civicrm-core/pull/21301))**
+
+- **Deprecate `replaceEntityTokens`, stop using in core
+  ([dev/core#2832](https://lab.civicrm.org/dev/core/-/issues/2832):
+  [21506](https://github.com/civicrm/civicrm-core/pull/21506),
+  [21521](https://github.com/civicrm/civicrm-core/pull/21521),
+  [21452](https://github.com/civicrm/civicrm-core/pull/21452) and
+  [21453](https://github.com/civicrm/civicrm-core/pull/21453))**
+
+- **Deprecate `replaceCaseTokens` in core
+  ([dev/core#2817](https://lab.civicrm.org/dev/core/-/issues/2817):
+  [21380](https://github.com/civicrm/civicrm-core/pull/21380),
+  [21445](https://github.com/civicrm/civicrm-core/pull/21445),
+  [21383](https://github.com/civicrm/civicrm-core/pull/21383),
+  [21381](https://github.com/civicrm/civicrm-core/pull/21381),
+  [21447](https://github.com/civicrm/civicrm-core/pull/21447) and
+  [21475](https://github.com/civicrm/civicrm-core/pull/21475))**
+
+- **Stop using replaceContactTokens in core (Work Towards
+  [dev/core#2814](https://lab.civicrm.org/dev/core/-/issues/2814):
+  [21365](https://github.com/civicrm/civicrm-core/pull/21365),
+  [21414](https://github.com/civicrm/civicrm-core/pull/21414),
+  [21364](https://github.com/civicrm/civicrm-core/pull/21364),
+  [21379](https://github.com/civicrm/civicrm-core/pull/21379),
+  [21377](https://github.com/civicrm/civicrm-core/pull/21377),
+  [21378](https://github.com/civicrm/civicrm-core/pull/21378),
+  [21568](https://github.com/civicrm/civicrm-core/pull/21568),
+  [21494](https://github.com/civicrm/civicrm-core/pull/21494),
+  [21367](https://github.com/civicrm/civicrm-core/pull/21367) and
+  [21449](https://github.com/civicrm/civicrm-core/pull/21449))**
+
+- **[REF] Cleanup pdf classes to use a trait like we do for email classes
+  ([dev/core#2790](https://lab.civicrm.org/dev/core/-/issues/2790):
+  [21478](https://github.com/civicrm/civicrm-core/pull/21478),
+  [21479](https://github.com/civicrm/civicrm-core/pull/21479),
+  [21366](https://github.com/civicrm/civicrm-core/pull/21366),
+  [21359](https://github.com/civicrm/civicrm-core/pull/21359) and
+  [21335](https://github.com/civicrm/civicrm-core/pull/21335))**
+
+- **Afform - Add getters/setters to the AfformSubmitEvent class
+  ([21572](https://github.com/civicrm/civicrm-core/pull/21572))**
+
+- **Api v4 contact delete bug (Cleanup Towards
+  [dev/core#2757](https://lab.civicrm.org/dev/core/-/issues/2757):
+  [21210](https://github.com/civicrm/civicrm-core/pull/21210),
+  [21198](https://github.com/civicrm/civicrm-core/pull/21198),
+  [21211](https://github.com/civicrm/civicrm-core/pull/21211) and
+  [21199](https://github.com/civicrm/civicrm-core/pull/21199))**
+
+- **[REF] Separate repeattransaction from completeorder function - only call the
+  latter from payment.create
+  (Cleanup Towards [dev/core#2716](https://lab.civicrm.org/dev/core/-/issues/2716):
+  [20856](https://github.com/civicrm/civicrm-core/pull/20856))**
+
+- **Financial record processing - extract to new class to faciliate cleanup
+  (Work Towards [dev/core#2715](https://lab.civicrm.org/dev/core/-/issues/2715):
+  [20985](https://github.com/civicrm/civicrm-core/pull/20985) and
+  [21370](https://github.com/civicrm/civicrm-core/pull/21370))**
+
+- **Add unique class to price field template
+  ([21484](https://github.com/civicrm/civicrm-core/pull/21484))**
+
+- **Clean up UpdateBilling/UpdateSubscription/ContributionRecur to use getters
+  ([21538](https://github.com/civicrm/civicrm-core/pull/21538))**
+
+- **[REF] Fix form to call this->setTitle()
+  ([21362](https://github.com/civicrm/civicrm-core/pull/21362))**
+
+- **Update use of CRM_Utils_System::setTitle() for legacycustomsearches
+  ([21375](https://github.com/civicrm/civicrm-core/pull/21375))**
+
+- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
+  part 2 ([21202](https://github.com/civicrm/civicrm-core/pull/21202))**
+
+- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
+  part 3 ([21352](https://github.com/civicrm/civicrm-core/pull/21352))**
+
+- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
+  part 4 ([21368](https://github.com/civicrm/civicrm-core/pull/21368))**
+
+- **Simplify getRecurFromAddress
+  ([21613](https://github.com/civicrm/civicrm-core/pull/21613))**
+
+- **Return another function to the email trait
+  ([21677](https://github.com/civicrm/civicrm-core/pull/21677))**
+
+- **Rename test clas to reflect tested class name
+  ([21686](https://github.com/civicrm/civicrm-core/pull/21686))**
+
+- **Remove unused function - convertDateFieldsToMySQL
+  ([21617](https://github.com/civicrm/civicrm-core/pull/21617))**
+
+- **Remove all references to safe_mode, DEPRECATED as of PHP 5.3.0 and REMOVED
+  as of PHP 5.4.0
+  ([21594](https://github.com/civicrm/civicrm-core/pull/21594))**
+
+- **Remove duplicate global declaration in civicrm.settings.php template
+  ([21409](https://github.com/civicrm/civicrm-core/pull/21409))**
+
+- **Remove broken code
+  ([21602](https://github.com/civicrm/civicrm-core/pull/21602))**
+
+- **Remove call to the dreaded replaceMultipleContributionTokens
+  ([21652](https://github.com/civicrm/civicrm-core/pull/21652))**
+
+- **Remove handling for empty required field
+  ([21623](https://github.com/civicrm/civicrm-core/pull/21623))**
+
+- **Remove error handling for core error being returned
+  ([21425](https://github.com/civicrm/civicrm-core/pull/21425))**
+
+- **Remove over-copied function
+  ([21641](https://github.com/civicrm/civicrm-core/pull/21641))**
+
+- **Remove unused paramter
+  ([21685](https://github.com/civicrm/civicrm-core/pull/21685))**
+
+- **Remove deprecated code lines
+  ([21566](https://github.com/civicrm/civicrm-core/pull/21566))**
+
+- **Remove workflow_id reference
+  ([21671](https://github.com/civicrm/civicrm-core/pull/21671))**
+
+- **Remove now-silly function
+  ([21680](https://github.com/civicrm/civicrm-core/pull/21680))**
+
+- **Remove fugly bit
+  ([21497](https://github.com/civicrm/civicrm-core/pull/21497))**
+
+- **Remove requirement to enter email address on Opt Out
+  ([21350](https://github.com/civicrm/civicrm-core/pull/21350))**
+
+- **Remove requirement to enter email address on unsubscribe
+  ([21175](https://github.com/civicrm/civicrm-core/pull/21175))**
+
+- **Remove deprecated input variable
+  ([21372](https://github.com/civicrm/civicrm-core/pull/21372))**
+
+- **Remove unused private function
+  ([21371](https://github.com/civicrm/civicrm-core/pull/21371))**
+
+- **Remove deprecated function
+  ([21361](https://github.com/civicrm/civicrm-core/pull/21361))**
+
+- **Remove testing hack
+  ([21360](https://github.com/civicrm/civicrm-core/pull/21360))**
+
+- **Remove deprecated function
+  ([21358](https://github.com/civicrm/civicrm-core/pull/21358))**
+
+- **Removes duplicate replace on event fee amount.
+  ([21739](https://github.com/civicrm/civicrm-core/pull/21739))**
+
+- **Remove function duplicated in error
+  ([21758](https://github.com/civicrm/civicrm-core/pull/21758))**
+
+- **Remove now-obsolete getPseudoTokens
+  ([21760](https://github.com/civicrm/civicrm-core/pull/21760))**
+
+- **APIv4 - Minor code cleanup to improve efficiency in
+  CreateApi4RequestSubscriber
+  ([21775](https://github.com/civicrm/civicrm-core/pull/21775))**
+
+- **Function cleanup following move to non-static function
+  ([21693](https://github.com/civicrm/civicrm-core/pull/21693))**
+
+- **[REF] Extract getRedirectUrl method
+  ([21687](https://github.com/civicrm/civicrm-core/pull/21687))**
+
+- **[REF] Copy another email trait function back to the trait
+  ([21648](https://github.com/civicrm/civicrm-core/pull/21648))**
+
+- **REF - Remove non-functional code from APIv3
+  ([21727](https://github.com/civicrm/civicrm-core/pull/21727))**
+
+- **[REF] Do not set input['line_item'] pointlessly
+  ([21311](https://github.com/civicrm/civicrm-core/pull/21311))**
+
+- **[REF] Use getSubmittedValue rather than passed values
+  ([21668](https://github.com/civicrm/civicrm-core/pull/21668))**
+
+- **(REF) MessageTemplate - Reverse renderTemplate()<=>sendTemplate() call
+  ([21610](https://github.com/civicrm/civicrm-core/pull/21610))**
+
+- **[REF] Separate contact tokens from 'tokenCompatSubscriber'
+  ([21626](https://github.com/civicrm/civicrm-core/pull/21626))**
+
+- **[Ref] Function signature cleanup
+  ([21618](https://github.com/civicrm/civicrm-core/pull/21618))**
+
+- **[REF] Return the sendEmail function to it's owner
+  ([21608](https://github.com/civicrm/civicrm-core/pull/21608))**
+
+- **[REF] Remove illusion of looping
+  ([21554](https://github.com/civicrm/civicrm-core/pull/21554))**
+
+- **[Ref] Extend email trait test, process more sanely
+  ([21553](https://github.com/civicrm/civicrm-core/pull/21553))**
+
+- **[REF] Extract domain tokens to their own class
+  ([21510](https://github.com/civicrm/civicrm-core/pull/21510))**
+
+- **[REF] add test & static array to participant values tokens
+  ([21476](https://github.com/civicrm/civicrm-core/pull/21476))**
+
+- **[REF] simplify member_tokens
+  ([21481](https://github.com/civicrm/civicrm-core/pull/21481))**
+
+- **[Ref] Cleanup on SelectValues::contributeTokens
+  ([21465](https://github.com/civicrm/civicrm-core/pull/21465))**
+
+- **[Ref] Remove pass-by-reference
+  ([21466](https://github.com/civicrm/civicrm-core/pull/21466))**
+
+- **[Ref] Remove unnecessary pass-by-reference
+  ([21463](https://github.com/civicrm/civicrm-core/pull/21463))**
+
+- **[REF] Use OO when determining what to suggest for settings.php prefixes for
+  drupal/backdrop views, instead of scattered "if cms =="
+  ([21042](https://github.com/civicrm/civicrm-core/pull/21042))**
+
+- **[REF] Remove unused parameter
+  ([21448](https://github.com/civicrm/civicrm-core/pull/21448))**
+
+- **[REF] Remove unused variable
+  ([21451](https://github.com/civicrm/civicrm-core/pull/21451))**
+
+- **[REF] Extract code to load the contact in tokenCompat
+  ([21450](https://github.com/civicrm/civicrm-core/pull/21450))**
+
+- **[REF] Extract function to getDomainTokens
+  ([21416](https://github.com/civicrm/civicrm-core/pull/21416))**
+
+- **[REF] Remove cruft
+  ([21418](https://github.com/civicrm/civicrm-core/pull/21418))**
+
+- **[REF] Extract code to get the from address for a recurring contribution.
+  ([21357](https://github.com/civicrm/civicrm-core/pull/21357))**
+
+- **[Ref] Remove no-longer-used variables
+  ([21459](https://github.com/civicrm/civicrm-core/pull/21459))**
+
+- **[REF] Update Frequenecy template assignments in UpdateBilling to be
+  consistent with #21469
+  ([21635](https://github.com/civicrm/civicrm-core/pull/21635))**
+
+- **[REF] Update Product Create to use hooks and also switch the manage
+  product/premium page to use APIv4 Product Entity
+  ([20822](https://github.com/civicrm/civicrm-core/pull/20822))**
+
+- **[REF] Add in upgrade step to align the relationship cache table collation
+  and charset with the other tables
+  ([21389](https://github.com/civicrm/civicrm-core/pull/21389))**
+
+- **[REF] stop passing form into createActivities
+  ([21653](https://github.com/civicrm/civicrm-core/pull/21653))**
+
+- **[REF] Extract function for re-use
+  ([21778](https://github.com/civicrm/civicrm-core/pull/21778))**
+
+- **[REF] Move getCustomFieldTokens to the tokens class, annotate more
+  deprecations ([21660](https://github.com/civicrm/civicrm-core/pull/21660))**
+
+- **Update contributors for Third Sector Design
+  ([21516](https://github.com/civicrm/civicrm-core/pull/21516))**
+
+- **[NFC/Unit test] - Fix test fail on php 7.4
+  CRM_Core_BAO_MessageTemplateTest::testCaseActivityCopyTemplate
+  ([21443](https://github.com/civicrm/civicrm-core/pull/21443))**
+
+- **[NFC/Unit Test] Remove wombats and bananas from
+  sites/default/files/civicrm/custom
+  ([21768](https://github.com/civicrm/civicrm-core/pull/21768))**
+
+- **[NFC/Unit test] - Fix secondary issue with case token consistency test
+  ([21369](https://github.com/civicrm/civicrm-core/pull/21369))**
+
+- **Authx: README: add note about CMS permissions
+  ([21439](https://github.com/civicrm/civicrm-core/pull/21439))**
+
+- **[NFC] Add test for new case email url
+  ([21766](https://github.com/civicrm/civicrm-core/pull/21766))**
+
+- **[NFC] Afform - Add array shape annotations to FormDataModel
+  ([21765](https://github.com/civicrm/civicrm-core/pull/21765))**
+
+- **[NFC] Unit test fixes for the problem of quickform rules going missing
+  ([21725](https://github.com/civicrm/civicrm-core/pull/21725))**
+
+- **NFC - Update code comments
+  ([21675](https://github.com/civicrm/civicrm-core/pull/21675))**
+
+- **[NFC] Unit test for file-on-case
+  ([21678](https://github.com/civicrm/civicrm-core/pull/21678))**
+
+- **[NFC] [test] minor cleanup in test
+  ([21498](https://github.com/civicrm/civicrm-core/pull/21498))**
+
+- **[NFC] Fix Fatal error on php 8 due to mis matched function declaration
+  ([21487](https://github.com/civicrm/civicrm-core/pull/21487))**
+
+- **[NFC] Put back email test without tokens and enhance a little
+  ([21398](https://github.com/civicrm/civicrm-core/pull/21398))**
+
+- **[NFC] Extend send email test to cover for contact tokens being replaced
+  ([21386](https://github.com/civicrm/civicrm-core/pull/21386))**
+
+- **[NFC] Add in type hints to template upgrade functions
+  ([21390](https://github.com/civicrm/civicrm-core/pull/21390))**
+
+- **NFC Clarify description for ckeditor4 plugin
+  ([21349](https://github.com/civicrm/civicrm-core/pull/21349))**
+
+- **Improve test readability, use schema labels for membership tokens
+  ([21708](https://github.com/civicrm/civicrm-core/pull/21708))**
+
+- **Add test to cancel subscription form
+  ([21588](https://github.com/civicrm/civicrm-core/pull/21588))**
+
+- **Fix test to test trait not deprecated function
+  ([21373](https://github.com/civicrm/civicrm-core/pull/21373))**
+
+- **Fix test
+  ([21585](https://github.com/civicrm/civicrm-core/pull/21585))**
+
+- **Tests -  update to use postProcess
+  ([21637](https://github.com/civicrm/civicrm-core/pull/21637))**
+
+- **Basic IDE cleanup on test class
+  ([21661](https://github.com/civicrm/civicrm-core/pull/21661))**
+
+- **Test fix
+  ([21662](https://github.com/civicrm/civicrm-core/pull/21662))**
+
+- **tests/events/*.php - Enforce general compliance with hook/event signatures
+  ([21615](https://github.com/civicrm/civicrm-core/pull/21615))**
+
+- **HttpTestTrait - Allow one to easily authenticate subrequests
+  ([21261](https://github.com/civicrm/civicrm-core/pull/21261))**
+
+- **Test regression fix
+  ([21649](https://github.com/civicrm/civicrm-core/pull/21649))**
+
+- **Test tearDown fixes
+  ([21548](https://github.com/civicrm/civicrm-core/pull/21548))**
+
+- **Convert more tests to call postProcess
+  ([21628](https://github.com/civicrm/civicrm-core/pull/21628))**
+
+- **Stop testing for gender_id output that was described as 'legacy' years ago
+  ([21558](https://github.com/civicrm/civicrm-core/pull/21558))**
+
+- **Test cleanup
+  ([21622](https://github.com/civicrm/civicrm-core/pull/21622))**
+
+- **Fix test to use postProcess
+  ([21630](https://github.com/civicrm/civicrm-core/pull/21630))**
+
+- **Test cleanup -convert to use postProcess
+  ([21629](https://github.com/civicrm/civicrm-core/pull/21629))**
+
+- **Add test and fix for API4 failing to decode strings stored as HTML
+  ([21549](https://github.com/civicrm/civicrm-core/pull/21549))**
+
+- **Initial test on event tokens
+  ([21563](https://github.com/civicrm/civicrm-core/pull/21563))**
+
+- **Cleanup on test tear downs
+  ([21552](https://github.com/civicrm/civicrm-core/pull/21552))**
+
+- **Attempt to fix test site 500 errors on activity pdf
+  ([21504](https://github.com/civicrm/civicrm-core/pull/21504))**
+
+- **(NFC) TokenConsistencyTest - Add some examples of HTML escaping
+  ([21837](https://github.com/civicrm/civicrm-core/pull/21837))**
+
+- **[REF] Fix PDF Test failure on php versions 7.4 and later
+  ([21866](https://github.com/civicrm/civicrm-core/pull/21866))**
+
+## <a name="credits"></a>Credits
+
+This release was developed by the following code authors:
+
+AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; Andy
+Burns; Benjamin W; Christian Wach; CiviCoop - Jaap Jansma; CiviCRM - Coleman
+Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy;
+Dave D; Digitalcourage - Detlev Sieber; Francesc Bassas i Bullich; Fuzion -
+Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; iXiam -
+Rubén Pineda; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth;
+Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology
+Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology
+Project - Jamie McClelland; Third Sector Design - Kurund Jalmi, Michael
+McAndrew, William Mortada; Valéry Gouleau; Wikimedia Foundation - Eileen
+McNaughton
+
+Most authors also reviewed code for this release; in addition, the following
+reviewers contributed their comments:
+
+AGH Strategies - Eli Lisseck; Artful Robot - Rich Lott; Black Brick Software -
+David Hayes; CiviCRM - Josh Gowans; CiviDesk - Yashodha Chaku; CompuCorp - Omar
+Abu Hussein; Freeform Solutions - Herb van den Dool; Humanists UK - Andrew West;
+Lemniscus - Noah Miller; OPEN - dewy; Richard Baugh; Richard van Oosterhout;
+Semper IT - Karin Gerritsen; Skvare - Mark Hanna; Squiffle Consulting - Aidan
+Saunders; Tadpole Collective - Kevin Cristiano
+
+## <a name="feedback"></a>Feedback
+
+These release notes are edited by Alice Frumin and Andie Hunt.  If you'd like
+to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
+and contact `@agh1`.
diff --git a/civicrm/settings/Core.setting.php b/civicrm/settings/Core.setting.php
index 64778e4d87..b01373382d 100644
--- a/civicrm/settings/Core.setting.php
+++ b/civicrm/settings/Core.setting.php
@@ -529,6 +529,78 @@ return [
       'callback' => 'CRM_Contact_Form_Task_PDFLetterCommon::getLoggingOptions',
     ],
   ],
+  'dompdf_font_dir' => [
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'dompdf_font_dir',
+    'title' => ts('DOMPDF Font Folder'),
+    'description' => ts('Additional folder where DOMPDF will look for fonts.'),
+    'type' => 'String',
+    'quick_form_type' => 'Element',
+    'html_type' => 'text',
+    'html_attributes' => [
+      'size' => 64,
+      'maxlength' => 256,
+    ],
+    'default' => NULL,
+    'help_text' => NULL,
+    'add' => '5.43',
+  ],
+  'dompdf_chroot' => [
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'dompdf_chroot',
+    'title' => ts('DOMPDF Local Images Folder'),
+    'description' => ts('Folder to restrict where DOMPDF looks when loading local images. By default it is the DOMPDF folder itself for security reasons. It will search in subfolders.'),
+    'type' => 'String',
+    'quick_form_type' => 'Element',
+    'html_type' => 'text',
+    'html_attributes' => [
+      'size' => 64,
+      'maxlength' => 256,
+    ],
+    'default' => NULL,
+    'help_text' => NULL,
+    'add' => '5.43',
+  ],
+  'dompdf_enable_remote' => [
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'dompdf_enable_remote',
+    'title' => ts('DOMPDF Enable Remote Images'),
+    'description' => ts('Enable the use of remote images. By default this is enabled, but if not using remote images you may wish to turn it off for security reasons.'),
+    'type' => 'Boolean',
+    'quick_form_type' => 'YesNo',
+    'html_type' => '',
+    'default' => TRUE,
+    'help_text' => NULL,
+    'add' => '5.43',
+  ],
+  'dompdf_log_output_file' => [
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'dompdf_log_output_file',
+    'title' => ts('DOMPDF Log File'),
+    'description' => ts('DOMPDF will log debugging output in this file.'),
+    'type' => 'String',
+    'quick_form_type' => 'Element',
+    'html_type' => 'text',
+    'html_attributes' => [
+      'size' => 64,
+      'maxlength' => 256,
+    ],
+    'default' => NULL,
+    'help_text' => NULL,
+    'add' => '5.43',
+  ],
   'wkhtmltopdfPath' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
diff --git a/civicrm/sql/civicrm.mysql b/civicrm/sql/civicrm.mysql
index d6df7ec8ce..c57a1fdc69 100644
--- a/civicrm/sql/civicrm.mysql
+++ b/civicrm/sql/civicrm.mysql
@@ -283,7 +283,7 @@ CREATE TABLE `civicrm_msg_template` (
   `workflow_id` int unsigned COMMENT 'a pseudo-FK to civicrm_option_value',
   `workflow_name` varchar(255),
   `is_default` tinyint DEFAULT 1 COMMENT 'is this the default message template for the workflow referenced by workflow_id?',
-  `is_reserved` tinyint COMMENT 'is this the reserved message template which we ship for the workflow referenced by workflow_id?',
+  `is_reserved` tinyint DEFAULT 0 COMMENT 'is this the reserved message template which we ship for the workflow referenced by workflow_id?',
   `is_sms` tinyint DEFAULT 0 COMMENT 'Is this message template used for sms?',
   `pdf_format_id` int unsigned COMMENT 'a pseudo-FK to civicrm_option_value containing PDF Page Format.',
   PRIMARY KEY (`id`)
@@ -1699,7 +1699,7 @@ CREATE TABLE `civicrm_mapping_field` (
   `operator` varchar(16) COMMENT 'SQL WHERE operator for search-builder mapping fields (search criteria).',
   `value` varchar(255) COMMENT 'SQL WHERE value for search-builder mapping fields.',
   PRIMARY KEY (`id`),
-  CONSTRAINT FK_civicrm_mapping_field_mapping_id FOREIGN KEY (`mapping_id`) REFERENCES `civicrm_mapping`(`id`),
+  CONSTRAINT FK_civicrm_mapping_field_mapping_id FOREIGN KEY (`mapping_id`) REFERENCES `civicrm_mapping`(`id`) ON DELETE CASCADE,
   CONSTRAINT FK_civicrm_mapping_field_location_type_id FOREIGN KEY (`location_type_id`) REFERENCES `civicrm_location_type`(`id`),
   CONSTRAINT FK_civicrm_mapping_field_relationship_type_id FOREIGN KEY (`relationship_type_id`) REFERENCES `civicrm_relationship_type`(`id`)
 )
@@ -3360,7 +3360,7 @@ CREATE TABLE `civicrm_contribution_recur` (
   `installments` int unsigned COMMENT 'Total number of payments to be made. Set this to 0 if this is an open-ended commitment i.e. no set end date.',
   `start_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'The date the first scheduled recurring contribution occurs.',
   `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'When this recurring contribution record was created.',
-  `modified_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Last updated date for this record. mostly the last time a payment was received',
+  `modified_date` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last updated date for this record. mostly the last time a payment was received',
   `cancel_date` datetime COMMENT 'Date this recurring contribution was cancelled by contributor- if we can get access to it',
   `cancel_reason` text COMMENT 'Free text field for a reason for cancelling',
   `end_date` datetime COMMENT 'Date this recurring contribution finished successfully',
diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql
index 15a949658d..4a929b5931 100644
--- a/civicrm/sql/civicrm_data.mysql
+++ b/civicrm/sql/civicrm_data.mysql
@@ -5333,19 +5333,19 @@ VALUES
 
 -- email greeting.
   (@option_group_id_emailGreeting, 'Dear {contact.first_name}',                                                 1, 'Dear {contact.first_name}',                                                 NULL,    1, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_emailGreeting, 'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}', 2, 'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_emailGreeting, 'Dear {contact.individual_prefix} {contact.last_name}',                      3, 'Dear {contact.individual_prefix} {contact.last_name}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_emailGreeting, 'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}', 2, 'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_emailGreeting, 'Dear {contact.prefix_id:label} {contact.last_name}',                      3, 'Dear {contact.prefix_id:label} {contact.last_name}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_emailGreeting, 'Customized',                                                                4, 'Customized',                                                                NULL, 0, 0, 4, NULL, 0, 1, 1, NULL, NULL, NULL),
   (@option_group_id_emailGreeting, 'Dear {contact.household_name}',                                             5, 'Dear {contact.household_name}',                                             NULL,    2, 1, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
 -- postal greeting.
   (@option_group_id_postalGreeting, 'Dear {contact.first_name}',                                                 1, 'Dear {contact.first_name}',                                                 NULL,    1, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_postalGreeting, 'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}', 2, 'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_postalGreeting, 'Dear {contact.individual_prefix} {contact.last_name}',                      3, 'Dear {contact.individual_prefix} {contact.last_name}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_postalGreeting, 'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}', 2, 'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_postalGreeting, 'Dear {contact.prefix_id:label} {contact.last_name}',                      3, 'Dear {contact.prefix_id:label} {contact.last_name}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_postalGreeting, 'Customized',                                                                4, 'Customized',                                                                NULL, 0, 0, 4, NULL, 0, 1, 1, NULL, NULL, NULL),
   (@option_group_id_postalGreeting, 'Dear {contact.household_name}',                                             5, 'Dear {contact.household_name}',                                             NULL,    2, 1, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
 
 -- addressee
-  (@option_group_id_addressee, '{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}',          '1', '}{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}',         NULL ,   '1', '1', '1', NULL , '0', '0', '1', NULL , NULL, NULL),
+  (@option_group_id_addressee, '{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}',          '1', '{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}',         NULL ,   '1', '1', '1', NULL , '0', '0', '1', NULL , NULL, NULL),
   (@option_group_id_addressee, '{contact.household_name}',    '2', '{contact.household_name}',    NULL ,   '2', '1', '2', NULL , '0', '0', '1', NULL , NULL, NULL),
   (@option_group_id_addressee, '{contact.organization_name}', '3', '{contact.organization_name}', NULL ,   '3', '1', '3', NULL , '0', '0', '1', NULL , NULL, NULL),
   (@option_group_id_addressee, 'Customized',                  '4', 'Customized',                  NULL ,    0 , '0', '4', NULL , '0', '1', '1', NULL , NULL, NULL),
@@ -23157,6 +23157,7 @@ INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_act
 INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'recaptcha', 'reCAPTCHA', 'reCAPTCHA', 'recaptcha', 1);
 INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'ckeditor4', 'CKEditor4', 'CKEditor4', 'ckeditor4', 1);
 INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'legacycustomsearches', 'Custom search framework', 'Custom search framework', 'legacycustomsearches', 1);
+INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'org.civicrm.flexmailer', 'FlexMailer', 'FlexMailer', 'flexmailer', 1);
 
 -- +--------------------------------------------------------------------+
 -- | Copyright CiviCRM LLC. All rights reserved.                        |
@@ -23194,7 +23195,7 @@ INSERT INTO `civicrm_dashboard`
 -- event badge
 INSERT INTO civicrm_print_label (title, name, description, label_format_name, label_type_id, is_default, is_reserved, is_active, data)
 VALUES
-('Annual Conference Hanging Badge (Avery 5395)', 'Annual_Conference_Hanging_Badge', 'For our annual conference', 'Avery 5395', 1, 1, 1, 1, '{"title":"Annual Conference Hanging Badge (Avery 5395)","label_format_name":"Avery 5395","description":"For our annual conference","token":{"1":"{event.title}","2":"{contact.display_name}","3":"{contact.current_employer}","4":"{event.start_date}"},"font_name":{"1":"dejavusans","2":"dejavusans","3":"dejavusans","4":"dejavusans"},"font_size":{"1":"9","2":"20","3":"15","4":"9"},"font_style":{"1":"","2":"","3":"","4":""},"text_alignment":{"1":"L","2":"C","3":"C","4":"R"},"barcode_type":"barcode","barcode_alignment":"R","image_1":"","image_2":"","is_default":"1","is_active":"1","is_reserved":"1","_qf_default":"Layout:next","_qf_Layout_refresh":"Save and Preview"}');
+('Annual Conference Hanging Badge (Avery 5395)', 'Annual_Conference_Hanging_Badge', 'For our annual conference', 'Avery 5395', 1, 1, 1, 1, '{"title":"Annual Conference Hanging Badge (Avery 5395)","label_format_name":"Avery 5395","description":"For our annual conference","token":{"1":"{event.title}","2":"{contact.display_name}","3":"{contact.current_employer}","4":"{event.start_date|crmDate:\"%B %E%f\"}"},"font_name":{"1":"dejavusans","2":"dejavusans","3":"dejavusans","4":"dejavusans"},"font_size":{"1":"9","2":"20","3":"15","4":"9"},"font_style":{"1":"","2":"","3":"","4":""},"text_alignment":{"1":"L","2":"C","3":"C","4":"R"},"barcode_type":"barcode","barcode_alignment":"R","image_1":"","image_2":"","is_default":"1","is_active":"1","is_reserved":"1","_qf_default":"Layout:next","_qf_Layout_refresh":"Save and Preview"}');
 
 -- navigation
 
@@ -23961,4 +23962,4 @@ INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
     (  @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}');
-UPDATE civicrm_domain SET version = '5.42.1';
+UPDATE civicrm_domain SET version = '5.43.0';
diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql
index 0521d9e757..a39591405e 100644
--- a/civicrm/sql/civicrm_generated.mysql
+++ b/civicrm/sql/civicrm_generated.mysql
@@ -1,15 +1,16 @@
--- MySQL dump 10.19  Distrib 10.3.29-MariaDB, for debian-linux-gnu (x86_64)
+-- MySQL dump 10.13  Distrib 5.6.47, for Linux (x86_64)
 --
--- Host: database    Database: dmastercivicrm
+-- Host: 127.0.0.1    Database: dmastercivi_ssc8b
 -- ------------------------------------------------------
--- Server version	10.4.20-MariaDB-1:10.4.20+maria~focal
+-- Server version	5.6.47
 
 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
 /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8mb4 */;
+/*!40101 SET NAMES utf8 */;
 /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
 /*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
 /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
 /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
@@ -159,629 +160,629 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_activity` WRITE;
 /*!40000 ALTER TABLE `civicrm_activity` DISABLE KEYS */;
 INSERT INTO `civicrm_activity` (`id`, `source_record_id`, `activity_type_id`, `subject`, `activity_date_time`, `duration`, `location`, `phone_id`, `phone_number`, `details`, `status_id`, `priority_id`, `parent_id`, `is_test`, `medium_id`, `is_auto`, `relationship_id`, `is_current_revision`, `original_id`, `result`, `is_deleted`, `campaign_id`, `engagement_level`, `weight`, `is_star`, `created_date`, `modified_date`) VALUES
- (1,NULL,9,'Subject for Tell a Friend','2020-12-04 12:12:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (2,NULL,10,'Subject for Pledge Acknowledgment','2021-05-24 20:32:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (3,NULL,10,'Subject for Pledge Acknowledgment','2020-08-22 01:57:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (4,NULL,9,'Subject for Tell a Friend','2020-10-02 01:06:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (5,NULL,10,'Subject for Pledge Acknowledgment','2020-12-12 15:15:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (6,NULL,10,'Subject for Pledge Acknowledgment','2020-08-10 16:38:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (7,NULL,9,'Subject for Tell a Friend','2020-12-21 11:34:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (8,NULL,9,'Subject for Tell a Friend','2020-10-09 23:43:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (9,NULL,10,'Subject for Pledge Acknowledgment','2020-12-09 13:59:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (10,NULL,9,'Subject for Tell a Friend','2021-01-27 18:45:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (11,NULL,10,'Subject for Pledge Acknowledgment','2020-09-23 04:57:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (12,NULL,10,'Subject for Pledge Acknowledgment','2021-01-14 17:32:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (13,NULL,9,'Subject for Tell a Friend','2021-06-26 05:05:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (14,NULL,10,'Subject for Pledge Acknowledgment','2021-04-14 06:18:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (15,NULL,9,'Subject for Tell a Friend','2020-10-01 14:47:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (16,NULL,9,'Subject for Tell a Friend','2020-09-20 11:20:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (17,NULL,9,'Subject for Tell a Friend','2020-09-21 02:34:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (18,NULL,9,'Subject for Tell a Friend','2020-10-24 18:24:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (19,NULL,10,'Subject for Pledge Acknowledgment','2021-06-11 14:47:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (20,NULL,10,'Subject for Pledge Acknowledgment','2020-08-26 06:53:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (21,NULL,10,'Subject for Pledge Acknowledgment','2020-12-12 10:48:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (22,NULL,10,'Subject for Pledge Acknowledgment','2021-06-09 04:20:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (23,NULL,9,'Subject for Tell a Friend','2021-01-24 13:16:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (24,NULL,9,'Subject for Tell a Friend','2021-07-07 22:55:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (25,NULL,10,'Subject for Pledge Acknowledgment','2021-01-13 02:59:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:45','2021-07-26 14:08:45'),
- (26,NULL,9,'Subject for Tell a Friend','2021-01-18 17:24:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (27,NULL,10,'Subject for Pledge Acknowledgment','2020-09-04 03:32:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (28,NULL,9,'Subject for Tell a Friend','2021-05-03 02:24:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (29,NULL,10,'Subject for Pledge Acknowledgment','2021-07-01 05:59:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (30,NULL,9,'Subject for Tell a Friend','2020-09-10 12:39:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (31,NULL,10,'Subject for Pledge Acknowledgment','2021-02-17 14:49:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (32,NULL,9,'Subject for Tell a Friend','2020-12-08 00:45:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (33,NULL,9,'Subject for Tell a Friend','2020-09-22 18:21:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (34,NULL,10,'Subject for Pledge Acknowledgment','2021-01-02 11:17:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (35,NULL,9,'Subject for Tell a Friend','2021-05-03 05:23:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (36,NULL,10,'Subject for Pledge Acknowledgment','2020-12-11 19:44:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (37,NULL,9,'Subject for Tell a Friend','2021-01-11 23:58:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (38,NULL,10,'Subject for Pledge Acknowledgment','2020-07-27 05:53:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (39,NULL,10,'Subject for Pledge Acknowledgment','2020-11-10 00:28:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (40,NULL,9,'Subject for Tell a Friend','2021-02-25 13:10:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (41,NULL,9,'Subject for Tell a Friend','2020-11-04 14:41:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (42,NULL,10,'Subject for Pledge Acknowledgment','2020-11-29 13:30:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (43,NULL,9,'Subject for Tell a Friend','2021-07-13 00:35:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (44,NULL,10,'Subject for Pledge Acknowledgment','2020-09-11 21:43:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (45,NULL,9,'Subject for Tell a Friend','2021-06-03 23:45:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (46,NULL,10,'Subject for Pledge Acknowledgment','2020-10-14 02:59:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (47,NULL,10,'Subject for Pledge Acknowledgment','2020-08-20 22:28:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (48,NULL,10,'Subject for Pledge Acknowledgment','2021-04-28 08:45:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (49,NULL,10,'Subject for Pledge Acknowledgment','2020-09-07 02:47:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (50,NULL,9,'Subject for Tell a Friend','2020-11-15 13:41:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (51,NULL,10,'Subject for Pledge Acknowledgment','2021-02-19 10:08:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (52,NULL,9,'Subject for Tell a Friend','2020-10-01 02:38:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (53,NULL,10,'Subject for Pledge Acknowledgment','2021-03-24 00:02:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (54,NULL,10,'Subject for Pledge Acknowledgment','2021-04-23 07:00:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (55,NULL,9,'Subject for Tell a Friend','2021-03-26 04:13:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (56,NULL,10,'Subject for Pledge Acknowledgment','2021-07-21 15:05:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (57,NULL,10,'Subject for Pledge Acknowledgment','2021-02-27 07:09:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (58,NULL,10,'Subject for Pledge Acknowledgment','2020-08-13 01:46:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (59,NULL,9,'Subject for Tell a Friend','2021-07-25 21:52:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (60,NULL,9,'Subject for Tell a Friend','2021-07-21 06:12:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (61,NULL,10,'Subject for Pledge Acknowledgment','2021-04-26 23:41:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (62,NULL,9,'Subject for Tell a Friend','2021-06-11 02:57:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (63,NULL,9,'Subject for Tell a Friend','2021-06-21 07:42:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (64,NULL,9,'Subject for Tell a Friend','2021-07-09 14:16:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (65,NULL,9,'Subject for Tell a Friend','2020-10-19 06:34:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (66,NULL,10,'Subject for Pledge Acknowledgment','2021-05-21 20:41:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (67,NULL,10,'Subject for Pledge Acknowledgment','2021-04-02 01:04:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (68,NULL,10,'Subject for Pledge Acknowledgment','2021-03-21 19:25:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (69,NULL,10,'Subject for Pledge Acknowledgment','2020-07-29 23:25:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (70,NULL,10,'Subject for Pledge Acknowledgment','2021-05-21 18:52:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (71,NULL,10,'Subject for Pledge Acknowledgment','2021-03-26 12:57:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (72,NULL,9,'Subject for Tell a Friend','2021-04-09 13:53:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (73,NULL,9,'Subject for Tell a Friend','2021-03-07 23:11:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (74,NULL,9,'Subject for Tell a Friend','2020-09-24 03:18:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (75,NULL,10,'Subject for Pledge Acknowledgment','2020-09-19 15:59:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (76,NULL,9,'Subject for Tell a Friend','2021-05-22 10:52:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (77,NULL,9,'Subject for Tell a Friend','2021-07-21 12:26:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (78,NULL,10,'Subject for Pledge Acknowledgment','2020-08-19 13:59:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (79,NULL,10,'Subject for Pledge Acknowledgment','2021-02-23 09:30:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (80,NULL,9,'Subject for Tell a Friend','2021-03-08 08:35:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (81,NULL,10,'Subject for Pledge Acknowledgment','2021-04-30 03:23:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (82,NULL,10,'Subject for Pledge Acknowledgment','2020-12-08 07:38:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (83,NULL,9,'Subject for Tell a Friend','2021-04-05 15:06:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (84,NULL,9,'Subject for Tell a Friend','2021-04-12 11:18:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (85,NULL,9,'Subject for Tell a Friend','2020-09-29 08:24:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (86,NULL,9,'Subject for Tell a Friend','2021-06-24 06:39:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (87,NULL,10,'Subject for Pledge Acknowledgment','2021-06-28 01:41:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (88,NULL,10,'Subject for Pledge Acknowledgment','2021-02-22 03:49:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (89,NULL,9,'Subject for Tell a Friend','2021-07-19 12:10:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (90,NULL,10,'Subject for Pledge Acknowledgment','2020-11-09 23:51:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (91,NULL,10,'Subject for Pledge Acknowledgment','2021-06-04 13:26:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (92,NULL,9,'Subject for Tell a Friend','2021-04-30 12:03:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (93,NULL,10,'Subject for Pledge Acknowledgment','2021-07-16 22:21:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (94,NULL,9,'Subject for Tell a Friend','2021-04-23 08:05:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (95,NULL,9,'Subject for Tell a Friend','2020-12-13 00:42:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (96,NULL,9,'Subject for Tell a Friend','2021-05-09 07:15:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (97,NULL,9,'Subject for Tell a Friend','2021-07-05 04:00:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (98,NULL,10,'Subject for Pledge Acknowledgment','2021-07-08 13:18:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (99,NULL,10,'Subject for Pledge Acknowledgment','2020-08-25 16:51:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (100,NULL,10,'Subject for Pledge Acknowledgment','2020-08-13 00:29:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (101,NULL,9,'Subject for Tell a Friend','2020-11-10 02:40:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (102,NULL,9,'Subject for Tell a Friend','2021-05-31 07:51:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (103,NULL,10,'Subject for Pledge Acknowledgment','2020-09-02 02:42:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (104,NULL,10,'Subject for Pledge Acknowledgment','2021-07-01 04:13:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (105,NULL,9,'Subject for Tell a Friend','2021-03-09 06:15:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (106,NULL,9,'Subject for Tell a Friend','2020-08-25 23:56:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (107,NULL,10,'Subject for Pledge Acknowledgment','2021-03-05 01:01:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (108,NULL,9,'Subject for Tell a Friend','2020-09-18 21:04:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (109,NULL,10,'Subject for Pledge Acknowledgment','2021-05-23 10:15:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (110,NULL,10,'Subject for Pledge Acknowledgment','2021-04-21 03:15:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (111,NULL,9,'Subject for Tell a Friend','2021-06-23 06:09:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (112,NULL,10,'Subject for Pledge Acknowledgment','2021-03-14 19:14:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (113,NULL,9,'Subject for Tell a Friend','2020-11-05 16:50:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (114,NULL,9,'Subject for Tell a Friend','2020-09-11 05:53:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (115,NULL,10,'Subject for Pledge Acknowledgment','2021-04-05 21:25:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (116,NULL,9,'Subject for Tell a Friend','2021-02-02 23:35:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (117,NULL,10,'Subject for Pledge Acknowledgment','2020-10-09 09:11:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (118,NULL,9,'Subject for Tell a Friend','2020-11-07 11:31:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (119,NULL,10,'Subject for Pledge Acknowledgment','2021-06-24 15:10:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (120,NULL,9,'Subject for Tell a Friend','2021-02-14 11:37:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (121,NULL,9,'Subject for Tell a Friend','2020-10-24 20:15:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (122,NULL,10,'Subject for Pledge Acknowledgment','2020-09-09 17:42:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (123,NULL,9,'Subject for Tell a Friend','2021-04-20 07:35:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (124,NULL,10,'Subject for Pledge Acknowledgment','2021-02-19 18:32:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (125,NULL,10,'Subject for Pledge Acknowledgment','2020-12-05 19:01:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (126,NULL,9,'Subject for Tell a Friend','2021-06-06 05:00:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (127,NULL,9,'Subject for Tell a Friend','2021-06-27 20:28:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (128,NULL,9,'Subject for Tell a Friend','2021-07-13 18:44:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (129,NULL,10,'Subject for Pledge Acknowledgment','2021-02-18 23:59:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (130,NULL,9,'Subject for Tell a Friend','2021-04-17 19:15:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (131,NULL,10,'Subject for Pledge Acknowledgment','2020-11-03 23:53:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (132,NULL,10,'Subject for Pledge Acknowledgment','2021-07-23 08:46:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (133,NULL,10,'Subject for Pledge Acknowledgment','2020-08-27 17:44:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (134,NULL,9,'Subject for Tell a Friend','2020-08-18 18:49:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (135,NULL,10,'Subject for Pledge Acknowledgment','2021-02-16 15:57:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (136,NULL,9,'Subject for Tell a Friend','2020-09-05 08:36:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (137,NULL,10,'Subject for Pledge Acknowledgment','2020-08-20 15:01:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (138,NULL,9,'Subject for Tell a Friend','2020-10-16 11:28:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (139,NULL,10,'Subject for Pledge Acknowledgment','2020-11-10 07:50:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (140,NULL,10,'Subject for Pledge Acknowledgment','2020-10-07 01:27:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (141,NULL,10,'Subject for Pledge Acknowledgment','2021-03-16 01:44:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (142,NULL,9,'Subject for Tell a Friend','2021-05-23 15:48:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (143,NULL,9,'Subject for Tell a Friend','2020-10-26 09:57:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (144,NULL,9,'Subject for Tell a Friend','2020-11-23 15:31:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (145,NULL,9,'Subject for Tell a Friend','2020-12-19 19:11:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (146,NULL,9,'Subject for Tell a Friend','2021-06-15 17:33:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (147,NULL,10,'Subject for Pledge Acknowledgment','2021-07-11 23:53:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (148,NULL,10,'Subject for Pledge Acknowledgment','2021-06-03 12:28:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (149,NULL,9,'Subject for Tell a Friend','2021-04-06 07:16:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (150,NULL,10,'Subject for Pledge Acknowledgment','2021-07-10 12:48:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (151,NULL,9,'Subject for Tell a Friend','2021-01-21 13:38:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (152,NULL,10,'Subject for Pledge Acknowledgment','2020-10-22 14:40:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (153,NULL,9,'Subject for Tell a Friend','2021-02-07 13:49:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (154,NULL,9,'Subject for Tell a Friend','2020-08-14 11:14:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (155,NULL,10,'Subject for Pledge Acknowledgment','2021-01-23 19:46:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (156,NULL,10,'Subject for Pledge Acknowledgment','2021-02-04 18:51:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (157,NULL,9,'Subject for Tell a Friend','2020-11-03 19:21:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (158,NULL,9,'Subject for Tell a Friend','2020-12-02 08:11:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (159,NULL,10,'Subject for Pledge Acknowledgment','2021-02-16 15:34:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (160,NULL,9,'Subject for Tell a Friend','2021-06-29 04:12:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (161,NULL,9,'Subject for Tell a Friend','2020-11-21 16:53:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (162,NULL,9,'Subject for Tell a Friend','2020-09-11 16:27:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (163,NULL,10,'Subject for Pledge Acknowledgment','2021-05-03 17:26:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (164,NULL,9,'Subject for Tell a Friend','2020-11-07 04:51:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (165,NULL,9,'Subject for Tell a Friend','2020-08-13 06:11:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (166,NULL,9,'Subject for Tell a Friend','2020-08-13 03:49:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (167,NULL,10,'Subject for Pledge Acknowledgment','2021-01-27 04:43:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (168,NULL,9,'Subject for Tell a Friend','2021-03-29 09:17:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (169,NULL,9,'Subject for Tell a Friend','2021-02-12 22:22:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (170,NULL,10,'Subject for Pledge Acknowledgment','2021-03-24 07:00:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (171,NULL,10,'Subject for Pledge Acknowledgment','2021-01-19 17:58:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (172,NULL,9,'Subject for Tell a Friend','2020-09-26 06:00:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (173,NULL,9,'Subject for Tell a Friend','2021-02-14 04:38:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (174,NULL,9,'Subject for Tell a Friend','2021-02-15 03:36:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:46','2021-07-26 14:08:46'),
- (175,NULL,9,'Subject for Tell a Friend','2021-06-16 02:37:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (176,NULL,9,'Subject for Tell a Friend','2020-11-20 09:54:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (177,NULL,9,'Subject for Tell a Friend','2020-08-20 22:54:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (178,NULL,9,'Subject for Tell a Friend','2020-08-07 19:20:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (179,NULL,10,'Subject for Pledge Acknowledgment','2020-12-15 11:48:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (180,NULL,10,'Subject for Pledge Acknowledgment','2021-01-18 17:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (181,NULL,10,'Subject for Pledge Acknowledgment','2021-04-04 09:06:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (182,NULL,10,'Subject for Pledge Acknowledgment','2021-06-01 08:24:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (183,NULL,10,'Subject for Pledge Acknowledgment','2020-10-10 09:39:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (184,NULL,10,'Subject for Pledge Acknowledgment','2020-12-29 22:11:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (185,NULL,10,'Subject for Pledge Acknowledgment','2021-01-11 11:38:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (186,NULL,10,'Subject for Pledge Acknowledgment','2021-06-05 10:27:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (187,NULL,9,'Subject for Tell a Friend','2020-10-15 07:57:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (188,NULL,10,'Subject for Pledge Acknowledgment','2021-02-03 13:26:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (189,NULL,10,'Subject for Pledge Acknowledgment','2021-06-03 23:15:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (190,NULL,10,'Subject for Pledge Acknowledgment','2021-04-03 20:57:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (191,NULL,9,'Subject for Tell a Friend','2021-03-26 11:09:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (192,NULL,9,'Subject for Tell a Friend','2020-10-20 23:26:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (193,NULL,10,'Subject for Pledge Acknowledgment','2020-07-29 05:27:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (194,NULL,10,'Subject for Pledge Acknowledgment','2021-01-14 07:50:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (195,NULL,10,'Subject for Pledge Acknowledgment','2021-02-16 04:05:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (196,NULL,10,'Subject for Pledge Acknowledgment','2020-09-21 02:55:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (197,NULL,9,'Subject for Tell a Friend','2021-06-02 07:14:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (198,NULL,10,'Subject for Pledge Acknowledgment','2021-02-28 02:57:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (199,NULL,9,'Subject for Tell a Friend','2020-10-06 12:47:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (200,NULL,10,'Subject for Pledge Acknowledgment','2020-10-20 01:29:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (201,NULL,10,'Subject for Pledge Acknowledgment','2021-05-23 22:41:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (202,NULL,9,'Subject for Tell a Friend','2021-07-24 22:35:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (203,NULL,9,'Subject for Tell a Friend','2021-02-03 17:21:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (204,NULL,9,'Subject for Tell a Friend','2021-01-25 00:00:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (205,NULL,9,'Subject for Tell a Friend','2021-02-16 18:53:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (206,NULL,9,'Subject for Tell a Friend','2021-04-28 01:15:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (207,NULL,10,'Subject for Pledge Acknowledgment','2021-01-26 09:28:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (208,NULL,9,'Subject for Tell a Friend','2020-12-29 14:25:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (209,NULL,9,'Subject for Tell a Friend','2021-06-20 02:57:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (210,NULL,10,'Subject for Pledge Acknowledgment','2021-05-23 21:00:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (211,NULL,10,'Subject for Pledge Acknowledgment','2021-06-10 22:23:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (212,NULL,10,'Subject for Pledge Acknowledgment','2021-03-19 06:04:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (213,NULL,9,'Subject for Tell a Friend','2021-03-13 21:41:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (214,NULL,10,'Subject for Pledge Acknowledgment','2021-03-15 09:49:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (215,NULL,10,'Subject for Pledge Acknowledgment','2021-06-25 22:11:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (216,NULL,9,'Subject for Tell a Friend','2020-09-16 00:08:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (217,NULL,10,'Subject for Pledge Acknowledgment','2021-02-05 19:29:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (218,NULL,9,'Subject for Tell a Friend','2021-03-10 00:02:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (219,NULL,10,'Subject for Pledge Acknowledgment','2021-01-07 03:52:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (220,NULL,10,'Subject for Pledge Acknowledgment','2021-05-15 03:23:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (221,NULL,10,'Subject for Pledge Acknowledgment','2020-10-12 07:29:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (222,NULL,10,'Subject for Pledge Acknowledgment','2020-08-07 21:53:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (223,NULL,9,'Subject for Tell a Friend','2020-12-09 16:42:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (224,NULL,9,'Subject for Tell a Friend','2021-07-19 09:29:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (225,NULL,10,'Subject for Pledge Acknowledgment','2020-09-02 05:41:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (226,NULL,9,'Subject for Tell a Friend','2021-05-28 02:33:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (227,NULL,10,'Subject for Pledge Acknowledgment','2021-02-04 00:38:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (228,NULL,10,'Subject for Pledge Acknowledgment','2020-09-04 22:28:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (229,NULL,9,'Subject for Tell a Friend','2021-01-06 14:50:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (230,NULL,10,'Subject for Pledge Acknowledgment','2021-03-10 20:49:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (231,NULL,9,'Subject for Tell a Friend','2020-12-06 20:58:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (232,NULL,9,'Subject for Tell a Friend','2021-07-09 04:22:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (233,NULL,10,'Subject for Pledge Acknowledgment','2020-12-05 05:24:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (234,NULL,10,'Subject for Pledge Acknowledgment','2020-09-02 12:41:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (235,NULL,9,'Subject for Tell a Friend','2021-04-22 07:11:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (236,NULL,9,'Subject for Tell a Friend','2021-02-20 11:29:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (237,NULL,10,'Subject for Pledge Acknowledgment','2021-07-03 07:08:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (238,NULL,10,'Subject for Pledge Acknowledgment','2021-05-15 16:55:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (239,NULL,9,'Subject for Tell a Friend','2021-06-18 02:17:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (240,NULL,10,'Subject for Pledge Acknowledgment','2021-05-24 04:46:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (241,NULL,10,'Subject for Pledge Acknowledgment','2020-12-08 09:15:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (242,NULL,9,'Subject for Tell a Friend','2020-09-17 03:28:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (243,NULL,9,'Subject for Tell a Friend','2020-09-14 21:15:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (244,NULL,10,'Subject for Pledge Acknowledgment','2020-08-15 06:33:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (245,NULL,9,'Subject for Tell a Friend','2020-08-04 02:27:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (246,NULL,10,'Subject for Pledge Acknowledgment','2020-08-10 00:16:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (247,NULL,10,'Subject for Pledge Acknowledgment','2021-01-16 06:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (248,NULL,9,'Subject for Tell a Friend','2020-10-12 17:30:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (249,NULL,10,'Subject for Pledge Acknowledgment','2020-09-17 13:24:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (250,NULL,10,'Subject for Pledge Acknowledgment','2021-07-23 17:53:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (251,NULL,9,'Subject for Tell a Friend','2020-11-06 13:21:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (252,NULL,10,'Subject for Pledge Acknowledgment','2021-05-15 09:42:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (253,NULL,9,'Subject for Tell a Friend','2021-07-18 02:13:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (254,NULL,9,'Subject for Tell a Friend','2021-04-27 14:42:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (255,NULL,10,'Subject for Pledge Acknowledgment','2020-12-31 22:52:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (256,NULL,9,'Subject for Tell a Friend','2020-12-01 05:33:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (257,NULL,10,'Subject for Pledge Acknowledgment','2021-01-08 12:14:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (258,NULL,10,'Subject for Pledge Acknowledgment','2021-04-12 01:06:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (259,NULL,9,'Subject for Tell a Friend','2020-09-22 21:14:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (260,NULL,10,'Subject for Pledge Acknowledgment','2021-02-08 05:03:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (261,NULL,9,'Subject for Tell a Friend','2020-12-14 03:33:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (262,NULL,10,'Subject for Pledge Acknowledgment','2021-01-28 05:22:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (263,NULL,9,'Subject for Tell a Friend','2021-06-19 21:59:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (264,NULL,9,'Subject for Tell a Friend','2021-02-17 22:26:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (265,NULL,10,'Subject for Pledge Acknowledgment','2020-12-18 18:52:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (266,NULL,9,'Subject for Tell a Friend','2020-11-02 00:56:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (267,NULL,10,'Subject for Pledge Acknowledgment','2020-07-30 21:55:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (268,NULL,9,'Subject for Tell a Friend','2020-11-19 12:35:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (269,NULL,9,'Subject for Tell a Friend','2020-11-08 07:16:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (270,NULL,9,'Subject for Tell a Friend','2021-02-16 08:54:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (271,NULL,10,'Subject for Pledge Acknowledgment','2020-12-05 18:18:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (272,NULL,9,'Subject for Tell a Friend','2020-11-22 21:31:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (273,NULL,10,'Subject for Pledge Acknowledgment','2020-11-03 11:48:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (274,NULL,9,'Subject for Tell a Friend','2021-02-18 07:06:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (275,NULL,10,'Subject for Pledge Acknowledgment','2021-02-13 17:04:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (276,NULL,9,'Subject for Tell a Friend','2020-10-25 16:50:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (277,NULL,9,'Subject for Tell a Friend','2021-07-24 01:57:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (278,NULL,9,'Subject for Tell a Friend','2020-07-26 16:31:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (279,NULL,9,'Subject for Tell a Friend','2020-11-01 07:06:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (280,NULL,9,'Subject for Tell a Friend','2021-06-13 12:36:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (281,NULL,9,'Subject for Tell a Friend','2021-03-23 10:19:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (282,NULL,10,'Subject for Pledge Acknowledgment','2021-06-14 10:34:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (283,NULL,10,'Subject for Pledge Acknowledgment','2021-01-20 00:39:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (284,NULL,9,'Subject for Tell a Friend','2020-10-04 04:01:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (285,NULL,10,'Subject for Pledge Acknowledgment','2020-10-07 04:25:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (286,NULL,9,'Subject for Tell a Friend','2021-04-13 09:06:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (287,NULL,9,'Subject for Tell a Friend','2020-11-23 20:12:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:47','2021-07-26 14:08:47'),
- (288,NULL,9,'Subject for Tell a Friend','2020-09-12 11:12:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (289,NULL,10,'Subject for Pledge Acknowledgment','2021-03-21 18:02:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (290,NULL,10,'Subject for Pledge Acknowledgment','2020-11-17 07:12:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (291,NULL,10,'Subject for Pledge Acknowledgment','2020-12-18 04:53:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (292,NULL,10,'Subject for Pledge Acknowledgment','2020-10-07 16:13:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (293,NULL,10,'Subject for Pledge Acknowledgment','2021-01-01 19:52:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (294,NULL,10,'Subject for Pledge Acknowledgment','2020-10-10 20:34:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (295,NULL,10,'Subject for Pledge Acknowledgment','2021-07-21 00:41:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (296,NULL,10,'Subject for Pledge Acknowledgment','2020-11-06 11:07:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (297,NULL,10,'Subject for Pledge Acknowledgment','2020-11-06 14:02:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (298,NULL,9,'Subject for Tell a Friend','2020-10-06 19:23:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (299,NULL,10,'Subject for Pledge Acknowledgment','2020-10-28 05:50:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (300,NULL,10,'Subject for Pledge Acknowledgment','2021-07-05 02:28:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (301,NULL,10,'Subject for Pledge Acknowledgment','2020-09-06 07:35:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (302,NULL,10,'Subject for Pledge Acknowledgment','2021-07-16 15:04:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (303,NULL,9,'Subject for Tell a Friend','2021-02-27 20:20:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (304,NULL,10,'Subject for Pledge Acknowledgment','2020-09-26 21:45:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (305,NULL,10,'Subject for Pledge Acknowledgment','2021-01-23 06:02:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (306,NULL,9,'Subject for Tell a Friend','2020-12-05 02:34:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (307,NULL,9,'Subject for Tell a Friend','2020-11-21 17:34:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (308,NULL,10,'Subject for Pledge Acknowledgment','2021-02-24 16:25:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (309,NULL,10,'Subject for Pledge Acknowledgment','2020-09-16 08:56:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (310,NULL,9,'Subject for Tell a Friend','2021-02-03 21:17:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (311,NULL,10,'Subject for Pledge Acknowledgment','2021-02-01 01:08:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (312,NULL,9,'Subject for Tell a Friend','2020-10-02 19:53:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (313,NULL,9,'Subject for Tell a Friend','2021-01-10 01:54:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (314,NULL,10,'Subject for Pledge Acknowledgment','2021-07-03 16:01:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (315,NULL,9,'Subject for Tell a Friend','2020-08-14 04:54:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (316,NULL,9,'Subject for Tell a Friend','2020-10-11 19:05:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (317,NULL,9,'Subject for Tell a Friend','2020-10-01 04:51:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (318,NULL,10,'Subject for Pledge Acknowledgment','2021-04-06 21:00:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (319,NULL,9,'Subject for Tell a Friend','2021-05-30 23:04:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (320,NULL,10,'Subject for Pledge Acknowledgment','2021-04-30 09:26:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (321,NULL,10,'Subject for Pledge Acknowledgment','2020-12-31 03:15:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (322,NULL,10,'Subject for Pledge Acknowledgment','2020-08-24 06:53:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (323,NULL,9,'Subject for Tell a Friend','2020-11-06 22:22:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (324,NULL,9,'Subject for Tell a Friend','2021-05-11 07:06:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (325,NULL,9,'Subject for Tell a Friend','2020-08-17 14:36:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (326,NULL,9,'Subject for Tell a Friend','2021-03-04 20:40:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (327,NULL,10,'Subject for Pledge Acknowledgment','2021-05-20 09:22:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (328,NULL,9,'Subject for Tell a Friend','2021-02-27 01:09:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (329,NULL,9,'Subject for Tell a Friend','2021-05-25 07:59:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (330,NULL,10,'Subject for Pledge Acknowledgment','2020-09-26 15:09:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (331,NULL,9,'Subject for Tell a Friend','2020-11-06 13:45:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (332,NULL,10,'Subject for Pledge Acknowledgment','2020-10-14 07:02:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (333,NULL,10,'Subject for Pledge Acknowledgment','2021-02-25 12:18:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (334,NULL,10,'Subject for Pledge Acknowledgment','2020-12-24 16:35:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (335,NULL,10,'Subject for Pledge Acknowledgment','2020-08-17 03:29:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (336,NULL,10,'Subject for Pledge Acknowledgment','2021-04-01 22:25:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (337,NULL,10,'Subject for Pledge Acknowledgment','2021-04-30 21:50:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (338,NULL,9,'Subject for Tell a Friend','2020-12-15 02:16:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (339,NULL,9,'Subject for Tell a Friend','2020-09-28 14:56:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (340,NULL,9,'Subject for Tell a Friend','2020-11-02 04:50:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (341,NULL,9,'Subject for Tell a Friend','2021-02-10 05:19:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (342,NULL,9,'Subject for Tell a Friend','2021-01-07 17:48:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (343,NULL,10,'Subject for Pledge Acknowledgment','2021-02-08 19:42:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (344,NULL,10,'Subject for Pledge Acknowledgment','2021-04-28 06:53:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (345,NULL,10,'Subject for Pledge Acknowledgment','2020-10-04 05:29:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (346,NULL,10,'Subject for Pledge Acknowledgment','2021-07-14 05:19:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (347,NULL,10,'Subject for Pledge Acknowledgment','2021-05-11 00:08:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (348,NULL,9,'Subject for Tell a Friend','2020-11-19 14:55:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (349,NULL,9,'Subject for Tell a Friend','2020-11-30 01:12:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (350,NULL,9,'Subject for Tell a Friend','2021-02-15 11:42:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (351,NULL,9,'Subject for Tell a Friend','2021-06-25 04:14:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (352,NULL,10,'Subject for Pledge Acknowledgment','2021-07-20 15:35:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (353,NULL,10,'Subject for Pledge Acknowledgment','2021-03-28 22:41:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (354,NULL,9,'Subject for Tell a Friend','2021-05-02 23:45:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (355,NULL,9,'Subject for Tell a Friend','2020-08-13 20:50:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (356,NULL,9,'Subject for Tell a Friend','2021-04-30 05:20:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (357,NULL,9,'Subject for Tell a Friend','2021-05-07 17:53:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (358,NULL,9,'Subject for Tell a Friend','2021-05-13 01:19:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (359,NULL,10,'Subject for Pledge Acknowledgment','2021-03-26 04:59:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (360,NULL,9,'Subject for Tell a Friend','2021-01-25 10:21:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (361,NULL,10,'Subject for Pledge Acknowledgment','2021-06-06 15:19:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (362,NULL,10,'Subject for Pledge Acknowledgment','2021-01-02 10:40:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (363,NULL,9,'Subject for Tell a Friend','2021-03-10 19:13:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (364,NULL,9,'Subject for Tell a Friend','2021-05-23 09:09:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (365,NULL,10,'Subject for Pledge Acknowledgment','2020-09-29 14:53:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (366,NULL,9,'Subject for Tell a Friend','2021-01-14 03:50:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (367,NULL,10,'Subject for Pledge Acknowledgment','2020-12-21 17:48:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (368,NULL,9,'Subject for Tell a Friend','2020-12-02 01:02:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (369,NULL,9,'Subject for Tell a Friend','2021-06-30 11:20:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (370,NULL,9,'Subject for Tell a Friend','2021-05-27 11:36:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (371,NULL,9,'Subject for Tell a Friend','2021-02-11 14:33:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (372,NULL,9,'Subject for Tell a Friend','2020-11-07 04:13:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (373,NULL,10,'Subject for Pledge Acknowledgment','2021-02-25 04:17:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (374,NULL,9,'Subject for Tell a Friend','2020-10-21 14:26:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (375,NULL,9,'Subject for Tell a Friend','2021-06-03 17:32:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (376,NULL,9,'Subject for Tell a Friend','2021-04-27 08:04:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (377,NULL,9,'Subject for Tell a Friend','2021-02-18 23:27:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (378,NULL,10,'Subject for Pledge Acknowledgment','2021-06-30 07:44:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (379,NULL,9,'Subject for Tell a Friend','2021-05-30 22:54:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (380,NULL,10,'Subject for Pledge Acknowledgment','2020-10-19 09:21:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (381,NULL,10,'Subject for Pledge Acknowledgment','2020-10-11 05:26:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (382,NULL,10,'Subject for Pledge Acknowledgment','2020-10-20 18:52:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (383,NULL,9,'Subject for Tell a Friend','2021-07-13 21:27:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (384,NULL,10,'Subject for Pledge Acknowledgment','2021-06-03 16:36:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (385,NULL,10,'Subject for Pledge Acknowledgment','2020-12-06 15:34:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (386,NULL,9,'Subject for Tell a Friend','2020-12-11 02:34:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (387,NULL,9,'Subject for Tell a Friend','2021-05-23 15:44:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (388,NULL,9,'Subject for Tell a Friend','2021-04-04 08:36:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (389,NULL,9,'Subject for Tell a Friend','2021-06-01 01:09:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (390,NULL,10,'Subject for Pledge Acknowledgment','2021-05-25 11:51:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (391,NULL,9,'Subject for Tell a Friend','2020-12-16 08:47:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (392,NULL,10,'Subject for Pledge Acknowledgment','2021-03-26 09:48:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:48','2021-07-26 14:08:48'),
- (393,NULL,10,'Subject for Pledge Acknowledgment','2020-12-09 17:45:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (394,NULL,9,'Subject for Tell a Friend','2021-05-07 11:54:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (395,NULL,9,'Subject for Tell a Friend','2021-07-23 19:44:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (396,NULL,9,'Subject for Tell a Friend','2020-10-06 12:19:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (397,NULL,10,'Subject for Pledge Acknowledgment','2021-05-03 22:50:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (398,NULL,10,'Subject for Pledge Acknowledgment','2020-08-26 12:24:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (399,NULL,9,'Subject for Tell a Friend','2020-10-07 08:27:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (400,NULL,10,'Subject for Pledge Acknowledgment','2021-06-04 18:35:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (401,NULL,9,'Subject for Tell a Friend','2020-11-17 22:59:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (402,NULL,9,'Subject for Tell a Friend','2020-08-12 02:42:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (403,NULL,10,'Subject for Pledge Acknowledgment','2021-07-24 21:03:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (404,NULL,10,'Subject for Pledge Acknowledgment','2021-06-07 01:39:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (405,NULL,10,'Subject for Pledge Acknowledgment','2021-02-11 12:22:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (406,NULL,10,'Subject for Pledge Acknowledgment','2020-09-04 20:08:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (407,NULL,9,'Subject for Tell a Friend','2020-10-26 09:32:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (408,NULL,9,'Subject for Tell a Friend','2020-09-14 06:31:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (409,NULL,9,'Subject for Tell a Friend','2021-04-11 12:27:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (410,NULL,9,'Subject for Tell a Friend','2021-06-30 16:41:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (411,NULL,9,'Subject for Tell a Friend','2020-07-29 22:22:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (412,NULL,10,'Subject for Pledge Acknowledgment','2021-02-13 07:41:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (413,NULL,9,'Subject for Tell a Friend','2021-07-13 14:08:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (414,NULL,9,'Subject for Tell a Friend','2021-03-21 18:56:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (415,NULL,10,'Subject for Pledge Acknowledgment','2021-01-06 13:28:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (416,NULL,10,'Subject for Pledge Acknowledgment','2020-09-07 07:15:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (417,NULL,10,'Subject for Pledge Acknowledgment','2021-06-23 14:15:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (418,NULL,10,'Subject for Pledge Acknowledgment','2021-06-26 09:27:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (419,NULL,9,'Subject for Tell a Friend','2021-02-11 16:25:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (420,NULL,9,'Subject for Tell a Friend','2020-12-25 16:26:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (421,NULL,10,'Subject for Pledge Acknowledgment','2020-11-19 12:37:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (422,NULL,10,'Subject for Pledge Acknowledgment','2021-03-21 01:15:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (423,NULL,9,'Subject for Tell a Friend','2021-07-24 02:32:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (424,NULL,9,'Subject for Tell a Friend','2020-12-17 09:26:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (425,NULL,9,'Subject for Tell a Friend','2021-07-15 12:48:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (426,NULL,10,'Subject for Pledge Acknowledgment','2020-08-15 07:16:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (427,NULL,9,'Subject for Tell a Friend','2021-06-12 20:33:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (428,NULL,9,'Subject for Tell a Friend','2020-08-26 10:38:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (429,NULL,9,'Subject for Tell a Friend','2020-09-23 15:37:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (430,NULL,10,'Subject for Pledge Acknowledgment','2020-12-28 13:52:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (431,NULL,10,'Subject for Pledge Acknowledgment','2021-05-23 08:05:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (432,NULL,10,'Subject for Pledge Acknowledgment','2020-08-06 20:50:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (433,NULL,9,'Subject for Tell a Friend','2020-10-15 17:52:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (434,NULL,9,'Subject for Tell a Friend','2021-02-25 10:20:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (435,NULL,10,'Subject for Pledge Acknowledgment','2021-02-23 18:43:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (436,NULL,9,'Subject for Tell a Friend','2021-03-12 06:50:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (437,NULL,10,'Subject for Pledge Acknowledgment','2020-10-03 08:53:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (438,NULL,10,'Subject for Pledge Acknowledgment','2020-08-11 16:34:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (439,NULL,9,'Subject for Tell a Friend','2020-12-04 14:54:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (440,NULL,10,'Subject for Pledge Acknowledgment','2020-10-03 21:31:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (441,NULL,10,'Subject for Pledge Acknowledgment','2020-09-02 17:58:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (442,NULL,10,'Subject for Pledge Acknowledgment','2021-03-23 02:59:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (443,NULL,9,'Subject for Tell a Friend','2020-09-27 16:22:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (444,NULL,10,'Subject for Pledge Acknowledgment','2021-05-09 11:45:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (445,NULL,9,'Subject for Tell a Friend','2021-05-10 20:00:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (446,NULL,9,'Subject for Tell a Friend','2021-07-10 02:08:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (447,NULL,9,'Subject for Tell a Friend','2021-04-21 03:38:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (448,NULL,10,'Subject for Pledge Acknowledgment','2021-01-12 22:28:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (449,NULL,10,'Subject for Pledge Acknowledgment','2020-10-17 17:54:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (450,NULL,9,'Subject for Tell a Friend','2021-04-03 16:45:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (451,1,6,'$ 125.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (452,2,6,'$ 50.00-Online: Save the Penguins','2010-03-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (453,3,6,'$ 25.00-Apr 2007 Mailer 1','2010-04-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (454,4,6,'$ 50.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (455,5,6,'$ 500.00-Apr 2007 Mailer 1','2010-04-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (456,6,6,'$ 175.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (457,7,6,'$ 50.00-Online: Save the Penguins','2010-03-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (458,8,6,'$ 10.00-Online: Save the Penguins','2010-03-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (459,9,6,'$ 250.00-Online: Save the Penguins','2010-04-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (460,10,6,NULL,'2009-07-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (461,11,6,NULL,'2009-07-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (462,12,6,NULL,'2009-10-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (463,13,6,NULL,'2009-12-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (464,1,7,'General','2021-07-26 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (465,2,7,'Student','2021-07-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (466,3,7,'General','2021-07-24 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (467,4,7,'Student','2021-07-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (468,5,7,'General','2019-06-24 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (469,6,7,'Student','2021-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (470,7,7,'General','2021-07-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (471,8,7,'Student','2021-07-19 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (472,9,7,'General','2021-07-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (473,10,7,'General','2019-05-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (474,11,7,'Lifetime','2021-07-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (475,12,7,'Student','2021-07-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (476,13,7,'General','2021-07-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (477,14,7,'Student','2021-07-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (478,15,7,'Student','2020-07-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (479,16,7,'Student','2021-07-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (480,17,7,'General','2021-07-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (481,18,7,'Student','2021-07-09 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (482,19,7,'General','2021-07-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (483,20,7,'General','2019-02-24 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (484,21,7,'General','2021-07-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (485,22,7,'Lifetime','2021-07-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (486,23,7,'General','2021-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (487,24,7,'Student','2021-07-03 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (488,25,7,'Student','2020-07-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (489,26,7,'Student','2021-07-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (490,27,7,'General','2021-06-30 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (491,28,7,'Student','2021-06-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (492,29,7,'General','2021-06-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (493,30,7,'General','2018-12-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (494,14,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (495,15,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (496,16,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (497,17,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (498,18,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (499,19,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (500,20,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (501,21,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (502,22,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (503,23,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (504,24,6,'$ 1200.00 - Lifetime Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (505,25,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (506,26,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (507,27,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (508,28,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (509,29,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (510,30,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (511,31,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (512,32,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (513,33,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (514,34,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (515,35,6,'$ 1200.00 - Lifetime Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (516,36,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (517,37,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (518,38,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (519,39,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (520,40,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (521,41,6,'$ 50.00 - Student Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (522,42,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (523,43,6,'$ 100.00 - General Membership: Offline signup','2021-07-26 14:08:49',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:49','2021-07-26 14:08:49'),
- (525,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (526,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (527,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (528,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (529,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (530,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (531,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (532,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (533,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (534,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (535,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (536,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (537,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (538,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (539,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (540,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (541,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (542,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (543,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (544,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (545,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (546,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (547,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (548,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (549,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (550,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (551,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (552,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (553,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (554,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (555,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (556,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (557,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (558,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (559,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (560,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (561,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (562,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (563,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (564,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (565,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (566,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (567,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (568,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (569,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (570,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (571,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (572,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (573,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (574,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (575,45,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (576,46,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (577,47,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (578,48,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (579,49,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (580,50,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (581,51,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (582,52,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (583,53,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (584,54,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (585,55,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (586,56,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (587,57,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (588,58,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (589,59,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (590,60,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (591,61,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (592,62,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (593,63,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (594,64,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (595,65,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (596,66,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (597,67,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (598,68,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (599,69,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (600,70,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (601,71,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (602,72,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (603,73,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (604,74,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (605,75,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (606,76,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (607,77,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (608,78,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (609,79,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (610,80,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (611,81,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (612,82,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (613,83,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (614,84,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (615,85,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (616,86,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (617,87,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (618,88,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (619,89,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (620,90,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (621,91,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (622,92,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (623,93,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50'),
- (624,94,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-07-26 14:08:50',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-07-26 14:08:50','2021-07-26 14:08:50');
+ (1,NULL,10,'Subject for Pledge Acknowledgment','2021-07-25 15:51:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (2,NULL,9,'Subject for Tell a Friend','2021-08-19 05:45:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (3,NULL,10,'Subject for Pledge Acknowledgment','2021-01-15 22:30:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (4,NULL,10,'Subject for Pledge Acknowledgment','2020-11-08 08:53:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (5,NULL,9,'Subject for Tell a Friend','2021-04-29 05:39:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (6,NULL,9,'Subject for Tell a Friend','2021-04-22 16:06:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (7,NULL,10,'Subject for Pledge Acknowledgment','2021-07-23 01:49:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (8,NULL,9,'Subject for Tell a Friend','2021-03-31 23:05:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (9,NULL,10,'Subject for Pledge Acknowledgment','2021-06-18 05:57:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (10,NULL,10,'Subject for Pledge Acknowledgment','2021-06-01 22:29:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (11,NULL,9,'Subject for Tell a Friend','2020-11-11 15:05:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (12,NULL,10,'Subject for Pledge Acknowledgment','2021-08-06 20:26:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (13,NULL,9,'Subject for Tell a Friend','2021-07-24 03:10:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (14,NULL,10,'Subject for Pledge Acknowledgment','2021-06-19 07:36:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (15,NULL,9,'Subject for Tell a Friend','2021-06-16 02:27:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (16,NULL,10,'Subject for Pledge Acknowledgment','2021-01-30 15:29:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (17,NULL,9,'Subject for Tell a Friend','2020-12-16 09:56:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (18,NULL,9,'Subject for Tell a Friend','2021-01-29 02:23:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (19,NULL,9,'Subject for Tell a Friend','2021-01-03 06:29:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (20,NULL,9,'Subject for Tell a Friend','2021-03-18 21:58:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (21,NULL,10,'Subject for Pledge Acknowledgment','2020-12-18 14:02:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (22,NULL,10,'Subject for Pledge Acknowledgment','2021-02-16 00:21:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (23,NULL,10,'Subject for Pledge Acknowledgment','2021-05-23 21:40:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (24,NULL,10,'Subject for Pledge Acknowledgment','2021-03-27 07:44:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (25,NULL,9,'Subject for Tell a Friend','2020-12-09 16:33:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (26,NULL,10,'Subject for Pledge Acknowledgment','2020-11-04 10:07:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (27,NULL,9,'Subject for Tell a Friend','2020-11-18 14:38:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (28,NULL,9,'Subject for Tell a Friend','2021-02-12 16:33:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (29,NULL,10,'Subject for Pledge Acknowledgment','2021-05-22 00:56:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (30,NULL,9,'Subject for Tell a Friend','2020-10-26 11:58:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (31,NULL,10,'Subject for Pledge Acknowledgment','2021-10-01 04:15:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (32,NULL,9,'Subject for Tell a Friend','2021-03-08 14:59:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (33,NULL,10,'Subject for Pledge Acknowledgment','2020-10-15 04:22:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (34,NULL,10,'Subject for Pledge Acknowledgment','2021-03-03 18:39:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (35,NULL,9,'Subject for Tell a Friend','2021-09-29 04:13:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (36,NULL,10,'Subject for Pledge Acknowledgment','2021-01-25 18:35:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (37,NULL,9,'Subject for Tell a Friend','2020-11-22 13:46:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (38,NULL,9,'Subject for Tell a Friend','2021-01-23 12:47:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (39,NULL,9,'Subject for Tell a Friend','2021-01-01 21:42:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (40,NULL,10,'Subject for Pledge Acknowledgment','2021-09-08 09:30:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (41,NULL,10,'Subject for Pledge Acknowledgment','2021-07-27 10:36:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (42,NULL,10,'Subject for Pledge Acknowledgment','2021-05-05 06:19:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (43,NULL,9,'Subject for Tell a Friend','2021-09-19 17:36:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (44,NULL,9,'Subject for Tell a Friend','2021-03-02 11:43:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (45,NULL,10,'Subject for Pledge Acknowledgment','2020-11-06 07:10:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (46,NULL,10,'Subject for Pledge Acknowledgment','2021-01-09 01:04:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (47,NULL,10,'Subject for Pledge Acknowledgment','2021-07-21 11:31:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (48,NULL,10,'Subject for Pledge Acknowledgment','2021-03-07 00:31:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (49,NULL,9,'Subject for Tell a Friend','2021-03-10 05:19:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (50,NULL,9,'Subject for Tell a Friend','2021-08-22 21:56:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (51,NULL,9,'Subject for Tell a Friend','2021-07-18 10:03:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (52,NULL,10,'Subject for Pledge Acknowledgment','2021-09-22 17:47:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (53,NULL,10,'Subject for Pledge Acknowledgment','2021-04-12 15:31:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (54,NULL,10,'Subject for Pledge Acknowledgment','2020-10-16 10:02:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (55,NULL,9,'Subject for Tell a Friend','2021-03-31 21:23:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (56,NULL,10,'Subject for Pledge Acknowledgment','2021-02-14 18:29:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (57,NULL,9,'Subject for Tell a Friend','2021-02-06 03:42:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (58,NULL,9,'Subject for Tell a Friend','2021-03-07 20:40:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (59,NULL,9,'Subject for Tell a Friend','2021-06-20 12:50:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (60,NULL,10,'Subject for Pledge Acknowledgment','2021-09-11 14:43:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (61,NULL,10,'Subject for Pledge Acknowledgment','2020-11-10 18:12:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (62,NULL,9,'Subject for Tell a Friend','2021-03-06 04:21:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (63,NULL,9,'Subject for Tell a Friend','2020-11-28 03:02:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (64,NULL,10,'Subject for Pledge Acknowledgment','2021-08-11 15:53:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (65,NULL,9,'Subject for Tell a Friend','2021-02-03 04:47:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (66,NULL,10,'Subject for Pledge Acknowledgment','2021-04-06 10:32:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (67,NULL,9,'Subject for Tell a Friend','2021-04-26 10:25:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (68,NULL,10,'Subject for Pledge Acknowledgment','2021-10-12 17:25:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (69,NULL,9,'Subject for Tell a Friend','2020-12-01 02:05:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (70,NULL,9,'Subject for Tell a Friend','2020-12-07 01:54:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (71,NULL,10,'Subject for Pledge Acknowledgment','2020-12-07 12:22:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (72,NULL,9,'Subject for Tell a Friend','2020-10-16 23:16:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (73,NULL,10,'Subject for Pledge Acknowledgment','2020-10-14 22:07:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (74,NULL,10,'Subject for Pledge Acknowledgment','2021-08-05 21:10:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (75,NULL,9,'Subject for Tell a Friend','2021-04-06 01:08:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (76,NULL,10,'Subject for Pledge Acknowledgment','2021-09-05 03:27:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (77,NULL,9,'Subject for Tell a Friend','2021-04-30 09:09:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (78,NULL,9,'Subject for Tell a Friend','2020-10-29 17:04:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (79,NULL,9,'Subject for Tell a Friend','2021-02-21 18:05:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (80,NULL,9,'Subject for Tell a Friend','2020-11-02 09:26:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (81,NULL,9,'Subject for Tell a Friend','2021-04-14 20:35:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (82,NULL,10,'Subject for Pledge Acknowledgment','2021-08-03 04:40:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (83,NULL,9,'Subject for Tell a Friend','2021-06-08 11:23:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (84,NULL,10,'Subject for Pledge Acknowledgment','2021-08-08 18:09:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (85,NULL,9,'Subject for Tell a Friend','2021-01-07 08:07:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (86,NULL,9,'Subject for Tell a Friend','2021-03-23 18:20:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (87,NULL,9,'Subject for Tell a Friend','2021-09-03 09:34:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (88,NULL,10,'Subject for Pledge Acknowledgment','2021-08-02 15:43:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (89,NULL,10,'Subject for Pledge Acknowledgment','2020-12-19 21:12:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (90,NULL,10,'Subject for Pledge Acknowledgment','2021-01-27 09:30:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (91,NULL,10,'Subject for Pledge Acknowledgment','2021-09-04 07:51:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (92,NULL,10,'Subject for Pledge Acknowledgment','2021-03-28 06:14:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (93,NULL,9,'Subject for Tell a Friend','2021-06-18 18:24:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (94,NULL,9,'Subject for Tell a Friend','2021-05-27 10:40:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (95,NULL,10,'Subject for Pledge Acknowledgment','2021-01-16 12:23:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (96,NULL,9,'Subject for Tell a Friend','2021-02-09 03:34:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (97,NULL,9,'Subject for Tell a Friend','2021-07-17 18:33:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (98,NULL,10,'Subject for Pledge Acknowledgment','2020-12-30 11:01:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (99,NULL,9,'Subject for Tell a Friend','2021-01-02 04:33:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (100,NULL,9,'Subject for Tell a Friend','2021-02-02 20:44:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (101,NULL,10,'Subject for Pledge Acknowledgment','2021-04-07 15:37:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (102,NULL,9,'Subject for Tell a Friend','2021-02-12 00:56:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (103,NULL,9,'Subject for Tell a Friend','2021-02-28 19:18:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (104,NULL,9,'Subject for Tell a Friend','2021-01-14 07:26:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (105,NULL,10,'Subject for Pledge Acknowledgment','2021-05-03 15:54:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (106,NULL,9,'Subject for Tell a Friend','2021-01-25 17:29:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (107,NULL,10,'Subject for Pledge Acknowledgment','2021-09-16 00:18:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (108,NULL,10,'Subject for Pledge Acknowledgment','2021-02-01 14:43:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (109,NULL,9,'Subject for Tell a Friend','2021-09-20 19:53:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (110,NULL,9,'Subject for Tell a Friend','2021-05-22 00:34:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (111,NULL,9,'Subject for Tell a Friend','2021-05-15 00:21:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (112,NULL,9,'Subject for Tell a Friend','2021-03-02 11:26:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (113,NULL,10,'Subject for Pledge Acknowledgment','2020-11-16 10:09:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (114,NULL,10,'Subject for Pledge Acknowledgment','2021-09-14 02:58:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (115,NULL,9,'Subject for Tell a Friend','2021-03-03 10:21:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (116,NULL,10,'Subject for Pledge Acknowledgment','2021-08-27 11:38:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (117,NULL,9,'Subject for Tell a Friend','2021-05-06 20:37:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (118,NULL,9,'Subject for Tell a Friend','2021-02-05 06:36:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (119,NULL,10,'Subject for Pledge Acknowledgment','2021-07-06 01:36:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (120,NULL,10,'Subject for Pledge Acknowledgment','2021-05-01 19:16:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (121,NULL,10,'Subject for Pledge Acknowledgment','2021-02-10 12:07:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (122,NULL,9,'Subject for Tell a Friend','2021-10-01 06:29:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (123,NULL,9,'Subject for Tell a Friend','2021-04-12 18:42:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (124,NULL,10,'Subject for Pledge Acknowledgment','2021-06-06 11:35:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (125,NULL,10,'Subject for Pledge Acknowledgment','2021-05-07 14:34:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (126,NULL,10,'Subject for Pledge Acknowledgment','2021-09-21 11:47:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (127,NULL,9,'Subject for Tell a Friend','2021-05-12 14:40:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (128,NULL,10,'Subject for Pledge Acknowledgment','2021-09-29 16:01:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (129,NULL,10,'Subject for Pledge Acknowledgment','2021-04-07 05:03:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (130,NULL,10,'Subject for Pledge Acknowledgment','2020-10-22 12:22:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (131,NULL,10,'Subject for Pledge Acknowledgment','2021-03-20 16:00:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (132,NULL,9,'Subject for Tell a Friend','2021-05-18 23:48:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (133,NULL,10,'Subject for Pledge Acknowledgment','2021-08-23 06:57:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (134,NULL,9,'Subject for Tell a Friend','2021-02-14 02:58:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (135,NULL,9,'Subject for Tell a Friend','2021-02-13 17:59:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (136,NULL,10,'Subject for Pledge Acknowledgment','2021-02-14 14:20:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (137,NULL,9,'Subject for Tell a Friend','2021-04-20 15:25:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (138,NULL,9,'Subject for Tell a Friend','2021-08-12 20:01:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (139,NULL,9,'Subject for Tell a Friend','2021-05-21 21:55:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (140,NULL,9,'Subject for Tell a Friend','2021-02-22 07:03:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (141,NULL,10,'Subject for Pledge Acknowledgment','2020-11-11 01:21:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (142,NULL,9,'Subject for Tell a Friend','2021-07-31 01:44:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (143,NULL,10,'Subject for Pledge Acknowledgment','2021-02-26 05:29:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (144,NULL,10,'Subject for Pledge Acknowledgment','2021-07-01 00:36:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (145,NULL,9,'Subject for Tell a Friend','2021-06-22 19:38:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (146,NULL,9,'Subject for Tell a Friend','2021-09-02 15:26:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (147,NULL,9,'Subject for Tell a Friend','2021-02-19 11:04:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (148,NULL,10,'Subject for Pledge Acknowledgment','2021-09-04 21:26:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (149,NULL,9,'Subject for Tell a Friend','2021-07-27 19:29:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (150,NULL,10,'Subject for Pledge Acknowledgment','2021-08-16 11:49:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (151,NULL,9,'Subject for Tell a Friend','2021-08-05 09:37:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (152,NULL,9,'Subject for Tell a Friend','2020-10-26 12:26:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (153,NULL,9,'Subject for Tell a Friend','2021-03-20 08:18:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (154,NULL,9,'Subject for Tell a Friend','2021-06-11 00:06:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (155,NULL,9,'Subject for Tell a Friend','2021-06-29 02:20:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (156,NULL,9,'Subject for Tell a Friend','2021-07-08 01:11:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (157,NULL,10,'Subject for Pledge Acknowledgment','2021-03-31 10:39:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (158,NULL,9,'Subject for Tell a Friend','2021-03-22 06:24:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (159,NULL,9,'Subject for Tell a Friend','2021-05-17 03:30:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (160,NULL,10,'Subject for Pledge Acknowledgment','2021-02-11 09:28:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (161,NULL,10,'Subject for Pledge Acknowledgment','2020-12-22 23:17:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (162,NULL,10,'Subject for Pledge Acknowledgment','2021-08-19 23:04:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (163,NULL,9,'Subject for Tell a Friend','2021-04-26 13:45:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (164,NULL,10,'Subject for Pledge Acknowledgment','2021-04-05 19:01:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (165,NULL,9,'Subject for Tell a Friend','2021-04-08 23:58:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (166,NULL,10,'Subject for Pledge Acknowledgment','2020-11-28 02:42:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (167,NULL,10,'Subject for Pledge Acknowledgment','2021-08-10 15:03:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (168,NULL,10,'Subject for Pledge Acknowledgment','2021-08-22 22:12:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (169,NULL,10,'Subject for Pledge Acknowledgment','2021-03-31 07:11:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (170,NULL,9,'Subject for Tell a Friend','2020-12-13 10:03:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (171,NULL,9,'Subject for Tell a Friend','2021-01-26 13:48:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (172,NULL,9,'Subject for Tell a Friend','2021-10-03 23:42:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (173,NULL,10,'Subject for Pledge Acknowledgment','2021-07-28 10:27:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (174,NULL,9,'Subject for Tell a Friend','2020-11-18 17:55:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (175,NULL,9,'Subject for Tell a Friend','2021-06-27 17:25:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (176,NULL,9,'Subject for Tell a Friend','2021-04-28 05:59:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (177,NULL,9,'Subject for Tell a Friend','2021-01-24 14:34:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (178,NULL,10,'Subject for Pledge Acknowledgment','2021-04-20 11:33:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (179,NULL,9,'Subject for Tell a Friend','2021-05-20 18:47:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (180,NULL,9,'Subject for Tell a Friend','2021-04-04 05:45:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (181,NULL,9,'Subject for Tell a Friend','2021-01-15 16:44:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (182,NULL,9,'Subject for Tell a Friend','2020-11-21 22:27:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (183,NULL,9,'Subject for Tell a Friend','2021-01-13 03:48:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (184,NULL,9,'Subject for Tell a Friend','2021-01-28 14:05:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (185,NULL,9,'Subject for Tell a Friend','2021-04-07 11:33:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (186,NULL,10,'Subject for Pledge Acknowledgment','2021-07-23 00:29:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (187,NULL,9,'Subject for Tell a Friend','2021-06-15 18:57:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (188,NULL,10,'Subject for Pledge Acknowledgment','2021-02-26 00:21:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (189,NULL,9,'Subject for Tell a Friend','2021-03-17 16:19:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (190,NULL,10,'Subject for Pledge Acknowledgment','2021-03-20 15:30:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (191,NULL,10,'Subject for Pledge Acknowledgment','2021-01-18 23:42:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (192,NULL,10,'Subject for Pledge Acknowledgment','2021-01-07 03:53:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (193,NULL,9,'Subject for Tell a Friend','2021-07-27 18:30:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (194,NULL,9,'Subject for Tell a Friend','2021-04-27 17:16:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (195,NULL,10,'Subject for Pledge Acknowledgment','2021-06-14 17:07:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (196,NULL,10,'Subject for Pledge Acknowledgment','2021-07-02 22:56:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (197,NULL,9,'Subject for Tell a Friend','2021-06-03 00:18:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (198,NULL,10,'Subject for Pledge Acknowledgment','2020-12-20 09:51:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (199,NULL,10,'Subject for Pledge Acknowledgment','2021-02-11 08:49:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (200,NULL,9,'Subject for Tell a Friend','2020-11-02 19:23:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (201,NULL,9,'Subject for Tell a Friend','2021-06-06 08:07:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (202,NULL,10,'Subject for Pledge Acknowledgment','2020-11-02 10:24:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (203,NULL,10,'Subject for Pledge Acknowledgment','2021-09-17 01:52:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (204,NULL,10,'Subject for Pledge Acknowledgment','2021-01-17 12:49:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (205,NULL,9,'Subject for Tell a Friend','2021-03-05 00:13:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (206,NULL,9,'Subject for Tell a Friend','2021-08-29 12:11:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (207,NULL,9,'Subject for Tell a Friend','2021-06-20 07:06:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (208,NULL,9,'Subject for Tell a Friend','2021-09-09 17:09:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (209,NULL,9,'Subject for Tell a Friend','2020-12-25 10:06:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (210,NULL,9,'Subject for Tell a Friend','2021-03-24 01:05:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (211,NULL,10,'Subject for Pledge Acknowledgment','2021-07-01 00:42:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (212,NULL,10,'Subject for Pledge Acknowledgment','2021-01-19 03:51:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (213,NULL,10,'Subject for Pledge Acknowledgment','2021-10-03 08:01:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (214,NULL,10,'Subject for Pledge Acknowledgment','2021-06-01 08:18:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (215,NULL,10,'Subject for Pledge Acknowledgment','2020-12-04 15:43:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (216,NULL,9,'Subject for Tell a Friend','2021-04-06 15:30:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (217,NULL,9,'Subject for Tell a Friend','2021-02-13 22:43:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (218,NULL,9,'Subject for Tell a Friend','2021-06-02 15:32:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (219,NULL,10,'Subject for Pledge Acknowledgment','2020-10-21 22:18:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (220,NULL,10,'Subject for Pledge Acknowledgment','2021-01-23 21:11:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (221,NULL,10,'Subject for Pledge Acknowledgment','2021-08-08 10:10:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (222,NULL,9,'Subject for Tell a Friend','2021-03-20 13:09:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (223,NULL,9,'Subject for Tell a Friend','2021-05-31 00:54:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (224,NULL,9,'Subject for Tell a Friend','2021-05-02 02:59:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (225,NULL,10,'Subject for Pledge Acknowledgment','2021-06-30 21:20:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (226,NULL,10,'Subject for Pledge Acknowledgment','2021-08-19 07:21:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (227,NULL,9,'Subject for Tell a Friend','2021-01-25 17:22:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (228,NULL,10,'Subject for Pledge Acknowledgment','2021-01-02 19:06:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (229,NULL,9,'Subject for Tell a Friend','2020-10-31 03:54:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (230,NULL,10,'Subject for Pledge Acknowledgment','2020-12-20 21:07:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (231,NULL,9,'Subject for Tell a Friend','2021-02-22 10:03:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (232,NULL,9,'Subject for Tell a Friend','2020-11-03 05:26:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (233,NULL,10,'Subject for Pledge Acknowledgment','2020-11-30 10:35:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (234,NULL,9,'Subject for Tell a Friend','2021-07-18 23:44:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (235,NULL,10,'Subject for Pledge Acknowledgment','2021-08-05 12:23:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (236,NULL,9,'Subject for Tell a Friend','2020-11-01 21:10:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (237,NULL,10,'Subject for Pledge Acknowledgment','2021-05-21 04:51:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (238,NULL,10,'Subject for Pledge Acknowledgment','2021-06-09 08:20:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (239,NULL,9,'Subject for Tell a Friend','2021-09-14 19:16:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (240,NULL,9,'Subject for Tell a Friend','2021-04-05 23:34:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (241,NULL,9,'Subject for Tell a Friend','2021-09-18 10:15:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (242,NULL,10,'Subject for Pledge Acknowledgment','2021-08-23 12:44:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (243,NULL,10,'Subject for Pledge Acknowledgment','2021-01-12 14:13:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (244,NULL,10,'Subject for Pledge Acknowledgment','2021-05-15 12:38:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (245,NULL,9,'Subject for Tell a Friend','2021-08-11 21:02:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (246,NULL,10,'Subject for Pledge Acknowledgment','2021-02-10 16:34:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (247,NULL,9,'Subject for Tell a Friend','2021-03-17 03:39:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (248,NULL,9,'Subject for Tell a Friend','2021-08-25 02:37:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (249,NULL,10,'Subject for Pledge Acknowledgment','2020-11-18 01:37:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (250,NULL,10,'Subject for Pledge Acknowledgment','2021-08-07 05:36:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (251,NULL,9,'Subject for Tell a Friend','2021-09-23 18:49:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (252,NULL,9,'Subject for Tell a Friend','2020-11-06 18:16:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (253,NULL,10,'Subject for Pledge Acknowledgment','2021-04-14 14:28:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (254,NULL,10,'Subject for Pledge Acknowledgment','2021-02-24 16:06:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (255,NULL,9,'Subject for Tell a Friend','2021-07-10 19:13:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (256,NULL,9,'Subject for Tell a Friend','2021-03-28 00:11:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (257,NULL,10,'Subject for Pledge Acknowledgment','2020-11-17 09:16:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (258,NULL,10,'Subject for Pledge Acknowledgment','2021-09-20 02:25:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (259,NULL,10,'Subject for Pledge Acknowledgment','2021-02-24 09:09:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (260,NULL,10,'Subject for Pledge Acknowledgment','2021-10-07 16:31:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (261,NULL,9,'Subject for Tell a Friend','2020-11-13 11:53:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (262,NULL,9,'Subject for Tell a Friend','2021-09-13 14:51:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (263,NULL,9,'Subject for Tell a Friend','2021-05-24 06:41:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (264,NULL,9,'Subject for Tell a Friend','2021-06-15 05:46:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (265,NULL,10,'Subject for Pledge Acknowledgment','2021-07-15 11:37:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (266,NULL,9,'Subject for Tell a Friend','2020-11-05 22:49:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (267,NULL,10,'Subject for Pledge Acknowledgment','2021-08-04 06:23:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (268,NULL,10,'Subject for Pledge Acknowledgment','2021-10-10 10:48:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (269,NULL,10,'Subject for Pledge Acknowledgment','2021-03-04 05:45:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (270,NULL,9,'Subject for Tell a Friend','2020-11-11 13:55:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (271,NULL,10,'Subject for Pledge Acknowledgment','2021-07-07 03:38:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (272,NULL,9,'Subject for Tell a Friend','2021-06-27 05:31:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (273,NULL,9,'Subject for Tell a Friend','2020-12-28 00:46:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (274,NULL,10,'Subject for Pledge Acknowledgment','2021-04-26 15:57:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (275,NULL,9,'Subject for Tell a Friend','2021-09-04 13:22:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (276,NULL,10,'Subject for Pledge Acknowledgment','2021-09-19 20:19:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (277,NULL,9,'Subject for Tell a Friend','2021-09-23 19:48:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (278,NULL,9,'Subject for Tell a Friend','2021-03-20 23:35:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (279,NULL,9,'Subject for Tell a Friend','2021-08-07 06:00:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (280,NULL,9,'Subject for Tell a Friend','2020-11-21 15:33:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (281,NULL,10,'Subject for Pledge Acknowledgment','2021-09-29 06:25:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (282,NULL,9,'Subject for Tell a Friend','2021-07-26 03:07:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (283,NULL,10,'Subject for Pledge Acknowledgment','2021-05-20 08:12:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (284,NULL,9,'Subject for Tell a Friend','2021-09-25 12:19:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (285,NULL,9,'Subject for Tell a Friend','2021-02-20 01:07:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (286,NULL,10,'Subject for Pledge Acknowledgment','2020-10-25 22:39:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (287,NULL,9,'Subject for Tell a Friend','2020-11-03 03:30:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (288,NULL,9,'Subject for Tell a Friend','2020-11-01 04:24:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (289,NULL,9,'Subject for Tell a Friend','2021-06-05 02:28:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (290,NULL,9,'Subject for Tell a Friend','2021-08-08 20:51:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (291,NULL,10,'Subject for Pledge Acknowledgment','2021-10-13 05:45:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (292,NULL,10,'Subject for Pledge Acknowledgment','2021-08-03 06:28:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (293,NULL,10,'Subject for Pledge Acknowledgment','2021-04-03 04:13:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (294,NULL,10,'Subject for Pledge Acknowledgment','2021-03-02 10:26:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (295,NULL,10,'Subject for Pledge Acknowledgment','2020-10-21 11:38:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (296,NULL,10,'Subject for Pledge Acknowledgment','2021-08-26 12:57:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (297,NULL,10,'Subject for Pledge Acknowledgment','2021-07-01 22:42:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (298,NULL,10,'Subject for Pledge Acknowledgment','2020-10-17 23:24:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (299,NULL,10,'Subject for Pledge Acknowledgment','2021-09-03 09:57:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (300,NULL,10,'Subject for Pledge Acknowledgment','2020-12-27 12:13:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (301,NULL,9,'Subject for Tell a Friend','2021-06-28 16:06:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (302,NULL,10,'Subject for Pledge Acknowledgment','2021-07-23 05:57:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (303,NULL,9,'Subject for Tell a Friend','2021-09-27 05:11:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (304,NULL,10,'Subject for Pledge Acknowledgment','2021-06-18 06:27:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (305,NULL,9,'Subject for Tell a Friend','2020-11-19 03:23:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (306,NULL,9,'Subject for Tell a Friend','2021-02-12 14:58:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (307,NULL,10,'Subject for Pledge Acknowledgment','2021-07-19 15:45:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (308,NULL,10,'Subject for Pledge Acknowledgment','2020-11-28 06:07:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (309,NULL,9,'Subject for Tell a Friend','2021-09-15 06:24:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (310,NULL,10,'Subject for Pledge Acknowledgment','2021-08-06 03:29:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (311,NULL,10,'Subject for Pledge Acknowledgment','2021-08-21 23:56:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (312,NULL,10,'Subject for Pledge Acknowledgment','2021-08-26 00:19:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (313,NULL,10,'Subject for Pledge Acknowledgment','2020-11-08 04:53:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (314,NULL,9,'Subject for Tell a Friend','2021-04-12 13:09:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (315,NULL,10,'Subject for Pledge Acknowledgment','2021-03-12 15:20:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (316,NULL,10,'Subject for Pledge Acknowledgment','2021-07-07 10:13:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (317,NULL,10,'Subject for Pledge Acknowledgment','2021-07-17 22:14:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (318,NULL,9,'Subject for Tell a Friend','2020-11-11 09:59:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (319,NULL,10,'Subject for Pledge Acknowledgment','2021-03-16 10:06:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (320,NULL,9,'Subject for Tell a Friend','2021-10-01 21:48:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (321,NULL,10,'Subject for Pledge Acknowledgment','2021-10-02 03:56:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (322,NULL,9,'Subject for Tell a Friend','2021-04-21 00:43:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (323,NULL,9,'Subject for Tell a Friend','2021-04-03 02:45:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (324,NULL,9,'Subject for Tell a Friend','2020-10-24 09:39:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (325,NULL,9,'Subject for Tell a Friend','2021-03-09 13:24:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (326,NULL,9,'Subject for Tell a Friend','2020-12-13 00:12:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (327,NULL,9,'Subject for Tell a Friend','2021-08-31 00:10:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (328,NULL,10,'Subject for Pledge Acknowledgment','2020-12-10 03:48:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (329,NULL,10,'Subject for Pledge Acknowledgment','2020-11-01 18:12:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (330,NULL,9,'Subject for Tell a Friend','2021-04-13 13:07:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (331,NULL,9,'Subject for Tell a Friend','2020-12-16 23:42:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (332,NULL,9,'Subject for Tell a Friend','2021-07-05 10:33:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (333,NULL,9,'Subject for Tell a Friend','2021-08-18 05:19:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (334,NULL,9,'Subject for Tell a Friend','2021-05-01 00:42:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (335,NULL,9,'Subject for Tell a Friend','2020-12-18 04:54:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (336,NULL,9,'Subject for Tell a Friend','2021-09-18 15:50:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (337,NULL,10,'Subject for Pledge Acknowledgment','2020-11-15 01:07:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (338,NULL,9,'Subject for Tell a Friend','2021-03-19 13:50:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (339,NULL,10,'Subject for Pledge Acknowledgment','2021-01-09 04:31:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (340,NULL,9,'Subject for Tell a Friend','2021-09-03 21:58:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (341,NULL,10,'Subject for Pledge Acknowledgment','2021-07-20 06:53:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (342,NULL,10,'Subject for Pledge Acknowledgment','2020-11-11 21:52:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (343,NULL,10,'Subject for Pledge Acknowledgment','2021-06-19 21:08:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (344,NULL,9,'Subject for Tell a Friend','2021-06-25 00:24:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (345,NULL,9,'Subject for Tell a Friend','2021-02-20 00:55:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (346,NULL,9,'Subject for Tell a Friend','2020-10-24 02:21:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (347,NULL,10,'Subject for Pledge Acknowledgment','2021-06-02 06:14:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (348,NULL,10,'Subject for Pledge Acknowledgment','2021-10-10 13:50:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (349,NULL,9,'Subject for Tell a Friend','2021-05-02 18:28:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (350,NULL,10,'Subject for Pledge Acknowledgment','2020-12-01 05:52:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (351,NULL,9,'Subject for Tell a Friend','2021-09-27 06:27:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (352,NULL,10,'Subject for Pledge Acknowledgment','2020-11-06 05:18:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (353,NULL,9,'Subject for Tell a Friend','2020-12-03 18:48:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (354,NULL,10,'Subject for Pledge Acknowledgment','2021-02-06 17:42:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (355,NULL,9,'Subject for Tell a Friend','2021-08-12 09:42:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (356,NULL,10,'Subject for Pledge Acknowledgment','2020-10-27 05:37:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (357,NULL,9,'Subject for Tell a Friend','2021-03-07 01:47:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (358,NULL,10,'Subject for Pledge Acknowledgment','2021-02-06 13:30:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (359,NULL,9,'Subject for Tell a Friend','2021-04-18 21:56:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (360,NULL,10,'Subject for Pledge Acknowledgment','2020-11-11 18:01:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (361,NULL,10,'Subject for Pledge Acknowledgment','2020-11-01 00:09:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (362,NULL,10,'Subject for Pledge Acknowledgment','2021-04-25 11:44:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (363,NULL,9,'Subject for Tell a Friend','2020-10-30 00:33:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (364,NULL,10,'Subject for Pledge Acknowledgment','2021-01-29 16:16:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (365,NULL,9,'Subject for Tell a Friend','2021-03-26 22:46:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (366,NULL,9,'Subject for Tell a Friend','2021-08-06 21:17:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (367,NULL,10,'Subject for Pledge Acknowledgment','2020-11-06 09:55:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (368,NULL,9,'Subject for Tell a Friend','2020-11-01 09:44:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (369,NULL,9,'Subject for Tell a Friend','2021-03-07 07:00:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (370,NULL,10,'Subject for Pledge Acknowledgment','2021-08-28 22:06:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (371,NULL,10,'Subject for Pledge Acknowledgment','2021-05-09 14:16:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (372,NULL,9,'Subject for Tell a Friend','2021-04-28 04:38:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (373,NULL,9,'Subject for Tell a Friend','2021-03-10 11:54:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (374,NULL,9,'Subject for Tell a Friend','2021-03-13 10:56:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (375,NULL,9,'Subject for Tell a Friend','2021-02-12 20:28:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (376,NULL,10,'Subject for Pledge Acknowledgment','2020-10-24 22:19:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (377,NULL,9,'Subject for Tell a Friend','2021-10-09 03:57:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (378,NULL,9,'Subject for Tell a Friend','2021-08-26 08:37:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (379,NULL,9,'Subject for Tell a Friend','2021-04-12 03:05:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (380,NULL,9,'Subject for Tell a Friend','2020-12-07 21:50:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (381,NULL,10,'Subject for Pledge Acknowledgment','2021-07-06 06:10:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (382,NULL,10,'Subject for Pledge Acknowledgment','2021-05-18 14:32:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (383,NULL,9,'Subject for Tell a Friend','2021-03-11 23:48:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (384,NULL,9,'Subject for Tell a Friend','2021-05-12 21:29:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (385,NULL,9,'Subject for Tell a Friend','2021-02-28 13:57:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (386,NULL,9,'Subject for Tell a Friend','2020-10-23 23:13:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (387,NULL,10,'Subject for Pledge Acknowledgment','2021-09-30 18:29:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (388,NULL,9,'Subject for Tell a Friend','2021-01-15 03:41:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (389,NULL,10,'Subject for Pledge Acknowledgment','2020-12-13 07:06:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (390,NULL,10,'Subject for Pledge Acknowledgment','2021-08-25 11:16:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (391,NULL,10,'Subject for Pledge Acknowledgment','2021-04-21 10:11:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (392,NULL,10,'Subject for Pledge Acknowledgment','2021-02-11 01:05:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (393,NULL,9,'Subject for Tell a Friend','2020-12-24 19:53:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (394,NULL,9,'Subject for Tell a Friend','2021-02-19 09:39:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (395,NULL,10,'Subject for Pledge Acknowledgment','2021-01-31 17:11:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (396,NULL,10,'Subject for Pledge Acknowledgment','2021-05-07 23:03:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (397,NULL,9,'Subject for Tell a Friend','2021-08-08 06:29:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (398,NULL,10,'Subject for Pledge Acknowledgment','2021-05-31 10:34:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (399,NULL,9,'Subject for Tell a Friend','2021-06-27 22:54:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (400,NULL,10,'Subject for Pledge Acknowledgment','2020-12-26 18:25:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (401,NULL,10,'Subject for Pledge Acknowledgment','2020-10-14 06:45:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (402,NULL,9,'Subject for Tell a Friend','2021-09-24 09:57:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (403,NULL,9,'Subject for Tell a Friend','2020-11-15 01:18:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (404,NULL,10,'Subject for Pledge Acknowledgment','2021-09-19 01:36:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (405,NULL,10,'Subject for Pledge Acknowledgment','2020-12-01 07:39:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (406,NULL,9,'Subject for Tell a Friend','2021-04-17 04:01:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (407,NULL,10,'Subject for Pledge Acknowledgment','2020-11-11 05:03:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (408,NULL,10,'Subject for Pledge Acknowledgment','2021-08-20 04:26:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (409,NULL,10,'Subject for Pledge Acknowledgment','2021-04-08 15:30:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (410,NULL,9,'Subject for Tell a Friend','2021-07-01 17:42:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (411,NULL,9,'Subject for Tell a Friend','2021-04-25 14:24:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (412,NULL,9,'Subject for Tell a Friend','2020-12-12 18:59:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (413,NULL,10,'Subject for Pledge Acknowledgment','2021-08-09 08:36:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (414,NULL,10,'Subject for Pledge Acknowledgment','2021-05-16 19:20:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (415,NULL,10,'Subject for Pledge Acknowledgment','2020-10-18 17:48:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (416,NULL,9,'Subject for Tell a Friend','2021-05-27 17:29:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (417,NULL,9,'Subject for Tell a Friend','2021-10-08 22:48:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (418,NULL,9,'Subject for Tell a Friend','2021-06-07 11:42:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (419,NULL,9,'Subject for Tell a Friend','2021-05-05 20:11:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (420,NULL,10,'Subject for Pledge Acknowledgment','2021-07-23 19:54:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (421,NULL,10,'Subject for Pledge Acknowledgment','2020-12-29 01:31:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (422,NULL,9,'Subject for Tell a Friend','2021-09-18 14:21:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (423,NULL,10,'Subject for Pledge Acknowledgment','2020-11-05 04:03:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (424,NULL,10,'Subject for Pledge Acknowledgment','2021-03-31 15:27:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (425,NULL,9,'Subject for Tell a Friend','2021-08-06 16:39:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (426,NULL,10,'Subject for Pledge Acknowledgment','2021-08-11 23:09:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (427,NULL,9,'Subject for Tell a Friend','2021-04-14 00:58:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (428,NULL,10,'Subject for Pledge Acknowledgment','2021-07-16 11:28:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (429,NULL,9,'Subject for Tell a Friend','2021-05-22 17:24:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (430,NULL,9,'Subject for Tell a Friend','2021-09-26 09:46:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (431,NULL,9,'Subject for Tell a Friend','2021-06-02 21:39:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (432,NULL,10,'Subject for Pledge Acknowledgment','2021-01-12 05:24:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (433,NULL,10,'Subject for Pledge Acknowledgment','2020-10-20 02:44:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (434,NULL,10,'Subject for Pledge Acknowledgment','2021-10-07 22:50:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (435,NULL,9,'Subject for Tell a Friend','2021-04-04 15:15:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (436,NULL,10,'Subject for Pledge Acknowledgment','2021-01-24 21:53:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (437,NULL,10,'Subject for Pledge Acknowledgment','2021-05-02 16:25:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (438,NULL,9,'Subject for Tell a Friend','2021-03-01 18:37:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (439,NULL,9,'Subject for Tell a Friend','2021-01-11 13:21:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (440,NULL,9,'Subject for Tell a Friend','2021-07-29 08:01:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (441,NULL,9,'Subject for Tell a Friend','2021-04-26 00:02:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (442,NULL,10,'Subject for Pledge Acknowledgment','2020-11-13 18:35:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (443,NULL,10,'Subject for Pledge Acknowledgment','2021-07-28 03:24:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (444,NULL,10,'Subject for Pledge Acknowledgment','2021-03-28 05:56:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (445,NULL,10,'Subject for Pledge Acknowledgment','2021-01-01 13:19:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (446,NULL,10,'Subject for Pledge Acknowledgment','2021-03-18 00:38:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (447,NULL,9,'Subject for Tell a Friend','2021-06-21 12:18:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (448,NULL,10,'Subject for Pledge Acknowledgment','2021-07-24 13:34:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (449,NULL,10,'Subject for Pledge Acknowledgment','2020-10-23 16:28:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (450,NULL,10,'Subject for Pledge Acknowledgment','2021-09-19 10:09:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (451,1,6,'$ 125.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (452,2,6,'$ 50.00-Online: Save the Penguins','2010-03-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (453,3,6,'$ 25.00-Apr 2007 Mailer 1','2010-04-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (454,4,6,'$ 50.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (455,5,6,'$ 500.00-Apr 2007 Mailer 1','2010-04-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (456,6,6,'$ 175.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (457,7,6,'$ 50.00-Online: Save the Penguins','2010-03-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (458,8,6,'$ 10.00-Online: Save the Penguins','2010-03-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (459,9,6,'$ 250.00-Online: Save the Penguins','2010-04-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (460,10,6,NULL,'2009-07-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (461,11,6,NULL,'2009-07-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (462,12,6,NULL,'2009-10-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (463,13,6,NULL,'2009-12-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (464,1,7,'General','2021-10-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (465,2,7,'Student','2021-10-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (466,3,7,'General','2021-10-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (467,4,7,'Student','2021-10-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (468,5,7,'General','2019-09-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (469,6,7,'Student','2021-10-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (470,7,7,'General','2021-10-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (471,8,7,'Student','2021-10-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (472,9,7,'General','2021-10-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (473,10,7,'General','2019-08-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (474,11,7,'Lifetime','2021-10-03 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (475,12,7,'Student','2021-10-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (476,13,7,'General','2021-10-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (477,14,7,'Student','2021-09-30 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (478,15,7,'Student','2020-09-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (479,16,7,'Student','2021-09-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (480,17,7,'General','2021-09-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (481,18,7,'Student','2021-09-26 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (482,19,7,'General','2021-09-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (483,20,7,'Student','2020-09-24 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (484,21,7,'General','2021-09-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (485,22,7,'Lifetime','2021-09-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (486,23,7,'General','2021-09-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (487,24,7,'Student','2021-09-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (488,25,7,'Student','2020-09-19 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (489,26,7,'Student','2021-09-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (490,27,7,'General','2021-09-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (491,28,7,'Student','2021-09-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (492,29,7,'General','2021-09-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (493,30,7,'Student','2020-09-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (494,14,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (495,15,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (496,16,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (497,17,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (498,18,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (499,19,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (500,20,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (501,21,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (502,22,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (503,23,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (504,24,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (505,25,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (506,26,6,'$ 100.00 - General Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (507,27,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (508,28,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (509,29,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (510,30,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (511,31,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (512,32,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (513,33,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (514,34,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (515,35,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (516,36,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (517,37,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (518,38,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (519,39,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (520,40,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (521,41,6,'$ 50.00 - Student Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (522,42,6,'$ 1200.00 - Lifetime Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (523,43,6,'$ 1200.00 - Lifetime Membership: Offline signup','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (525,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (526,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (527,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (528,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (529,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (530,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (531,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (532,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (533,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (534,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (535,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (536,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (537,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (538,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (539,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (540,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (541,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (542,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (543,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (544,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (545,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (546,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (547,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (548,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (549,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (550,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (551,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (552,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (553,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (554,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (555,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (556,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (557,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (558,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (559,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (560,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (561,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (562,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (563,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (564,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (565,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (566,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (567,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (568,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (569,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (570,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (571,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (572,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (573,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (574,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (575,45,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (576,46,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (577,47,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (578,48,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (579,49,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (580,50,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (581,51,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (582,52,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (583,53,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (584,54,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (585,55,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (586,56,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (587,57,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (588,58,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (589,59,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (590,60,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (591,61,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (592,62,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (593,63,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (594,64,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (595,65,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (596,66,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (597,67,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (598,68,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (599,69,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (600,70,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (601,71,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (602,72,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (603,73,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (604,74,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (605,75,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (606,76,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (607,77,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (608,78,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (609,79,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (610,80,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (611,81,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (612,82,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (613,83,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (614,84,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (615,85,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (616,86,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (617,87,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (618,88,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (619,89,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (620,90,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (621,91,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (622,92,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (623,93,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55'),
+ (624,94,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2021-10-13 21:23:55',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2021-10-14 04:23:55','2021-10-14 04:23:55');
 /*!40000 ALTER TABLE `civicrm_activity` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -792,807 +793,812 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_activity_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_activity_contact` DISABLE KEYS */;
 INSERT INTO `civicrm_activity_contact` (`id`, `activity_id`, `contact_id`, `record_type_id`) VALUES
- (421,280,1,3),
- (423,281,1,3),
- (483,324,1,3),
- (543,363,1,3),
- (95,64,2,3),
- (143,96,2,3),
- (505,339,2,3),
- (679,451,2,2),
- (434,288,3,3),
- (487,326,3,3),
- (518,348,3,3),
- (766,538,3,2),
- (680,452,4,2),
- (787,559,4,2),
- (122,83,5,3),
- (139,94,5,3),
- (455,306,5,3),
- (681,453,6,2),
- (791,563,6,2),
- (152,102,7,3),
- (6,4,8,3),
- (145,97,8,3),
- (545,364,8,3),
- (682,454,8,2),
- (562,374,9,3),
- (639,424,10,3),
- (696,468,10,2),
- (722,498,10,2),
- (168,113,11,3),
- (492,329,11,3),
- (586,389,11,3),
- (674,447,11,3),
- (702,474,11,2),
- (723,504,11,2),
- (466,313,12,3),
- (520,349,12,3),
- (655,434,12,3),
- (109,74,13,3),
- (219,146,13,3),
- (379,254,13,3),
- (530,355,13,3),
- (658,436,13,3),
- (156,105,14,3),
- (223,149,14,3),
- (695,467,14,2),
- (724,497,14,2),
- (93,63,15,3),
- (419,279,15,3),
- (12,8,16,3),
- (158,106,16,3),
- (262,173,16,3),
- (357,239,16,3),
- (400,268,16,3),
- (614,408,16,3),
- (683,455,16,2),
- (717,489,16,2),
- (725,519,16,2),
- (461,310,17,3),
- (699,471,17,2),
- (726,501,17,2),
- (118,80,18,3),
- (700,472,18,2),
- (727,502,18,2),
- (22,15,19,3),
- (402,269,19,3),
- (407,272,19,3),
- (684,456,19,2),
- (782,554,19,2),
- (112,76,20,3),
- (161,108,20,3),
- (264,174,20,3),
- (473,317,20,3),
- (623,413,20,3),
- (150,101,21,3),
- (272,178,21,3),
- (509,341,21,3),
- (760,532,21,2),
- (48,32,22,3),
- (295,197,22,3),
- (310,206,22,3),
- (448,301,22,2),
- (449,302,22,2),
- (450,303,22,2),
- (452,304,22,2),
- (453,305,22,2),
- (454,306,22,2),
- (456,307,22,2),
- (458,308,22,2),
- (459,309,22,2),
- (460,310,22,2),
- (462,311,22,2),
- (463,312,22,2),
- (465,313,22,2),
- (467,314,22,2),
- (468,315,22,2),
- (470,316,22,2),
- (472,317,22,2),
- (474,318,22,2),
- (475,319,22,2),
- (477,320,22,2),
- (478,321,22,2),
- (479,322,22,2),
- (480,323,22,2),
- (482,324,22,2),
- (484,325,22,2),
- (486,326,22,2),
- (488,327,22,2),
- (489,328,22,2),
- (491,329,22,2),
- (493,330,22,2),
- (494,331,22,2),
- (496,332,22,2),
- (497,333,22,2),
- (498,334,22,2),
- (499,335,22,2),
- (500,336,22,2),
- (501,337,22,2),
- (502,338,22,2),
- (504,339,22,2),
- (506,340,22,2),
- (508,341,22,2),
- (510,342,22,2),
- (512,343,22,2),
- (513,344,22,2),
- (514,345,22,2),
- (515,346,22,2),
- (516,347,22,2),
- (517,348,22,2),
- (519,349,22,2),
- (521,350,22,2),
- (523,351,22,2),
- (525,352,22,2),
- (526,353,22,2),
- (527,354,22,2),
- (529,355,22,2),
- (531,356,22,2),
- (533,357,22,2),
- (535,358,22,2),
- (537,359,22,2),
- (538,360,22,2),
- (540,361,22,2),
- (541,362,22,2),
- (542,363,22,2),
- (544,364,22,2),
- (546,365,22,2),
- (547,366,22,2),
- (549,367,22,2),
- (550,368,22,2),
- (552,369,22,2),
- (554,370,22,2),
- (556,371,22,2),
- (558,372,22,2),
- (560,373,22,2),
- (561,374,22,2),
- (563,375,22,2),
- (565,376,22,2),
- (567,377,22,2),
- (569,378,22,2),
- (570,379,22,2),
- (572,380,22,2),
- (573,381,22,2),
- (574,382,22,2),
- (575,383,22,2),
- (577,384,22,2),
- (578,385,22,2),
- (579,386,22,2),
- (581,387,22,2),
- (583,388,22,2),
- (585,389,22,2),
- (587,390,22,2),
- (588,391,22,2),
- (590,392,22,2),
- (591,393,22,2),
- (592,394,22,2),
- (594,395,22,2),
- (596,396,22,2),
- (598,397,22,2),
- (599,398,22,2),
- (600,399,22,2),
- (602,400,22,2),
- (603,401,22,2),
- (605,402,22,2),
- (607,403,22,2),
- (608,404,22,2),
- (609,405,22,2),
- (610,406,22,2),
- (611,407,22,2),
- (613,408,22,2),
- (615,409,22,2),
- (617,410,22,2),
- (619,411,22,2),
- (621,412,22,2),
- (622,413,22,2),
- (624,414,22,2),
- (626,415,22,2),
- (627,416,22,2),
- (628,417,22,2),
- (629,418,22,2),
- (630,419,22,2),
- (631,419,22,3),
- (632,420,22,2),
- (634,421,22,2),
- (635,422,22,2),
- (636,423,22,2),
- (638,424,22,2),
- (640,425,22,2),
- (642,426,22,2),
- (643,427,22,2),
- (645,428,22,2),
- (647,429,22,2),
- (648,429,22,3),
- (649,430,22,2),
- (650,431,22,2),
- (651,432,22,2),
- (652,433,22,2),
- (654,434,22,2),
- (656,435,22,2),
- (657,436,22,2),
- (659,437,22,2),
- (660,438,22,2),
- (661,439,22,2),
- (663,440,22,2),
- (664,441,22,2),
- (665,442,22,2),
- (666,443,22,2),
- (668,444,22,2),
- (669,445,22,2),
- (671,446,22,2),
- (673,447,22,2),
- (675,448,22,2),
- (676,449,22,2),
- (677,450,22,2),
- (593,394,23,3),
- (755,527,23,2),
- (77,52,24,3),
- (392,263,24,3),
- (481,323,24,3),
- (694,466,24,2),
- (728,496,24,2),
- (451,303,25,3),
- (522,350,25,3),
- (564,375,25,3),
- (705,477,25,2),
- (729,507,25,2),
- (777,549,25,2),
- (333,223,26,3),
- (39,26,27,3),
- (86,59,27,3),
- (206,138,27,3),
- (215,144,27,3),
- (633,420,27,3),
- (792,564,27,2),
- (176,118,28,3),
- (582,387,28,3),
- (324,216,29,3),
- (507,340,29,3),
- (287,191,30,3),
- (366,245,30,3),
- (566,376,30,3),
- (244,162,32,3),
- (313,208,32,3),
- (536,358,32,3),
- (690,462,32,2),
- (691,463,32,2),
- (410,274,33,3),
- (495,331,33,3),
- (45,30,34,3),
- (687,459,34,2),
- (192,128,35,3),
- (430,286,35,3),
- (672,446,35,3),
- (105,72,36,3),
- (308,205,36,3),
- (361,242,36,3),
- (413,276,36,3),
- (50,33,37,3),
- (53,35,37,3),
- (289,192,37,3),
- (302,202,37,3),
- (589,391,37,3),
- (231,154,38,3),
- (568,377,39,3),
- (417,278,40,3),
- (662,439,40,3),
- (179,120,41,3),
- (200,134,41,3),
- (342,229,41,3),
- (776,548,41,2),
- (60,40,42,3),
- (427,284,42,3),
- (469,315,42,3),
- (128,86,43,3),
- (689,461,43,2),
- (759,531,43,2),
- (551,368,44,3),
- (559,372,44,3),
- (42,28,45,3),
- (282,187,45,3),
- (254,168,46,3),
- (26,17,47,3),
- (389,261,47,3),
- (698,470,47,2),
- (730,500,47,2),
- (397,266,48,3),
- (646,428,48,3),
- (256,169,49,3),
- (511,342,49,3),
- (786,558,49,2),
- (229,153,51,3),
- (242,161,51,3),
- (141,95,52,3),
- (188,126,52,3),
- (268,176,52,3),
- (370,248,52,3),
- (235,157,53,3),
- (667,443,53,3),
- (678,450,53,3),
- (797,569,53,2),
- (88,60,54,3),
- (374,251,54,3),
- (576,383,54,3),
- (795,567,54,2),
- (237,158,55,3),
- (320,213,55,3),
- (485,325,55,3),
- (758,530,55,2),
- (1,1,56,2),
- (3,2,56,2),
- (4,3,56,2),
- (5,4,56,2),
- (7,5,56,2),
- (8,6,56,2),
- (9,7,56,2),
- (11,8,56,2),
- (13,9,56,2),
- (14,10,56,2),
- (16,11,56,2),
- (17,12,56,2),
- (18,13,56,2),
- (20,14,56,2),
- (21,15,56,2),
- (23,16,56,2),
- (25,17,56,2),
- (27,18,56,2),
- (29,19,56,2),
- (30,20,56,2),
- (31,21,56,2),
- (32,22,56,2),
- (33,23,56,2),
- (35,24,56,2),
- (37,25,56,2),
- (38,26,56,2),
- (40,27,56,2),
- (41,28,56,2),
- (43,29,56,2),
- (44,30,56,2),
- (46,31,56,2),
- (47,32,56,2),
- (49,33,56,2),
- (51,34,56,2),
- (52,35,56,2),
- (54,36,56,2),
- (55,37,56,2),
- (57,38,56,2),
- (58,39,56,2),
- (59,40,56,2),
- (61,41,56,2),
- (63,42,56,2),
- (64,43,56,2),
- (66,44,56,2),
- (67,45,56,2),
- (69,46,56,2),
- (70,47,56,2),
- (71,48,56,2),
- (72,49,56,2),
- (73,50,56,2),
- (75,51,56,2),
- (76,52,56,2),
- (78,53,56,2),
- (79,54,56,2),
- (80,55,56,2),
- (82,56,56,2),
- (83,57,56,2),
- (84,58,56,2),
- (85,59,56,2),
- (87,60,56,2),
- (89,61,56,2),
- (90,62,56,2),
- (92,63,56,2),
- (94,64,56,2),
- (96,65,56,2),
- (98,66,56,2),
- (99,67,56,2),
- (100,68,56,2),
- (101,69,56,2),
- (102,70,56,2),
- (103,71,56,2),
- (104,72,56,2),
- (106,73,56,2),
- (108,74,56,2),
- (110,75,56,2),
- (111,76,56,2),
- (113,77,56,2),
- (115,78,56,2),
- (116,79,56,2),
- (117,80,56,2),
- (119,81,56,2),
- (120,82,56,2),
- (121,83,56,2),
- (123,84,56,2),
- (125,85,56,2),
- (127,86,56,2),
- (129,87,56,2),
- (130,88,56,2),
- (131,89,56,2),
- (133,90,56,2),
- (134,91,56,2),
- (135,92,56,2),
- (137,93,56,2),
- (138,94,56,2),
- (140,95,56,2),
- (142,96,56,2),
- (144,97,56,2),
- (146,98,56,2),
- (147,99,56,2),
- (148,100,56,2),
- (149,101,56,2),
- (151,102,56,2),
- (153,103,56,2),
- (154,104,56,2),
- (155,105,56,2),
- (157,106,56,2),
- (159,107,56,2),
- (160,108,56,2),
- (162,109,56,2),
- (163,110,56,2),
- (164,111,56,2),
- (166,112,56,2),
- (167,113,56,2),
- (169,114,56,2),
- (171,115,56,2),
- (172,116,56,2),
- (174,117,56,2),
- (175,118,56,2),
- (177,119,56,2),
- (178,120,56,2),
- (180,121,56,2),
- (182,122,56,2),
- (183,123,56,2),
- (185,124,56,2),
- (186,125,56,2),
- (187,126,56,2),
- (189,127,56,2),
- (191,128,56,2),
- (193,129,56,2),
- (194,130,56,2),
- (196,131,56,2),
- (197,132,56,2),
- (198,133,56,2),
- (199,134,56,2),
- (201,135,56,2),
- (202,136,56,2),
- (204,137,56,2),
- (205,138,56,2),
- (207,139,56,2),
- (208,140,56,2),
- (209,141,56,2),
- (210,142,56,2),
- (212,143,56,2),
- (214,144,56,2),
- (216,145,56,2),
- (218,146,56,2),
- (220,147,56,2),
- (221,148,56,2),
- (222,149,56,2),
- (224,150,56,2),
- (195,130,57,3),
- (213,143,57,3),
- (644,427,57,3),
- (345,231,58,3),
- (15,10,59,3),
- (132,89,59,3),
- (226,151,59,3),
- (306,204,59,3),
- (625,414,59,3),
- (641,425,59,3),
- (595,395,60,3),
- (19,13,61,3),
- (190,127,61,3),
- (714,486,62,2),
- (731,516,62,2),
- (2,1,63,3),
- (56,37,63,3),
- (247,164,64,3),
- (270,177,64,3),
- (415,277,64,3),
- (184,123,65,3),
- (211,142,65,3),
- (136,92,66,3),
- (386,259,66,3),
- (457,307,66,3),
- (785,557,66,2),
- (97,65,67,3),
- (203,136,67,3),
- (476,319,67,3),
- (606,402,67,3),
- (709,481,67,2),
- (732,511,67,2),
- (62,41,68,3),
- (165,111,68,3),
- (266,175,68,3),
- (553,369,68,3),
- (620,411,68,3),
- (713,485,68,2),
- (733,515,68,2),
- (763,535,68,2),
- (716,488,69,2),
- (734,518,69,2),
- (81,55,70,3),
- (327,218,70,3),
- (377,253,70,3),
- (653,433,70,3),
- (753,525,70,2),
- (688,460,71,2),
- (712,484,71,2),
- (735,514,71,2),
- (217,145,72,3),
- (706,478,72,2),
- (736,508,72,2),
- (597,396,74,3),
- (126,85,75,3),
- (363,243,75,3),
- (404,270,75,3),
- (584,388,75,3),
- (789,561,75,2),
- (670,445,76,3),
- (351,235,77,3),
- (532,356,77,3),
- (181,121,79,3),
- (173,116,80,3),
- (445,298,81,3),
- (539,360,82,3),
- (685,457,82,2),
- (28,18,83,3),
- (124,84,83,3),
- (315,209,83,3),
- (347,232,83,3),
- (555,370,83,3),
- (756,528,83,2),
- (394,264,84,3),
- (503,338,84,3),
- (528,354,84,3),
- (601,399,84,3),
- (10,7,85,3),
- (534,357,85,3),
- (616,409,85,3),
- (251,166,86,3),
- (796,568,86,2),
- (36,24,87,3),
- (170,114,87,3),
- (353,236,87,3),
- (382,256,87,3),
- (471,316,87,3),
- (490,328,88,3),
- (34,23,89,3),
- (91,62,89,3),
- (107,73,89,3),
- (260,172,89,3),
- (464,312,89,3),
- (710,482,89,2),
- (737,512,89,2),
- (524,351,90,3),
- (74,50,91,3),
- (548,366,91,3),
- (612,407,91,3),
- (790,562,91,2),
- (24,16,92,3),
- (65,43,92,3),
- (249,165,92,3),
- (618,410,92,3),
- (686,458,92,2),
- (773,545,93,2),
- (68,45,94,3),
- (580,386,94,3),
- (114,77,95,3),
- (335,224,95,3),
- (715,487,95,2),
- (738,517,95,2),
- (304,203,96,3),
- (240,160,97,3),
- (432,287,98,3),
- (637,423,98,3),
- (799,571,98,2),
- (571,379,99,3),
- (298,199,100,3),
- (338,226,100,3),
- (557,371,100,3),
- (604,401,100,3),
- (693,465,101,2),
- (739,495,101,2),
- (784,556,102,2),
- (783,555,105,2),
- (697,469,106,2),
- (740,499,106,2),
- (754,526,110,2),
- (720,492,111,2),
- (741,522,111,2),
- (788,560,112,2),
- (798,570,113,2),
- (701,473,114,2),
- (742,503,114,2),
- (707,479,115,2),
- (743,509,115,2),
- (767,539,116,2),
- (768,540,117,2),
- (708,480,119,2),
- (744,510,119,2),
- (802,574,121,2),
- (719,491,122,2),
- (745,521,122,2),
- (692,464,124,2),
- (746,494,124,2),
- (765,537,124,2),
- (774,546,131,2),
- (794,566,142,2),
- (778,550,144,2),
- (711,483,148,2),
- (747,513,148,2),
- (780,552,149,2),
- (775,547,152,2),
- (757,529,158,2),
- (770,542,165,2),
- (781,553,166,2),
- (764,536,167,2),
- (703,475,168,2),
- (748,505,168,2),
- (769,541,170,2),
- (718,490,171,2),
- (749,520,171,2),
- (800,572,173,2),
- (771,543,176,2),
- (721,493,182,2),
- (750,523,182,2),
- (779,551,183,2),
- (762,534,190,2),
- (225,151,193,2),
- (227,152,193,2),
- (228,153,193,2),
- (230,154,193,2),
- (232,155,193,2),
- (233,156,193,2),
- (234,157,193,2),
- (236,158,193,2),
- (238,159,193,2),
- (239,160,193,2),
- (241,161,193,2),
- (243,162,193,2),
- (245,163,193,2),
- (246,164,193,2),
- (248,165,193,2),
- (250,166,193,2),
- (252,167,193,2),
- (253,168,193,2),
- (255,169,193,2),
- (257,170,193,2),
- (258,171,193,2),
- (259,172,193,2),
- (261,173,193,2),
- (263,174,193,2),
- (265,175,193,2),
- (267,176,193,2),
- (269,177,193,2),
- (271,178,193,2),
- (273,179,193,2),
- (274,180,193,2),
- (275,181,193,2),
- (276,182,193,2),
- (277,183,193,2),
- (278,184,193,2),
- (279,185,193,2),
- (280,186,193,2),
- (281,187,193,2),
- (283,188,193,2),
- (284,189,193,2),
- (285,190,193,2),
- (286,191,193,2),
- (288,192,193,2),
- (290,193,193,2),
- (291,194,193,2),
- (292,195,193,2),
- (293,196,193,2),
- (294,197,193,2),
- (296,198,193,2),
- (297,199,193,2),
- (299,200,193,2),
- (300,201,193,2),
- (301,202,193,2),
- (303,203,193,2),
- (305,204,193,2),
- (307,205,193,2),
- (309,206,193,2),
- (311,207,193,2),
- (312,208,193,2),
- (314,209,193,2),
- (316,210,193,2),
- (317,211,193,2),
- (318,212,193,2),
- (319,213,193,2),
- (321,214,193,2),
- (322,215,193,2),
- (323,216,193,2),
- (325,217,193,2),
- (326,218,193,2),
- (328,219,193,2),
- (329,220,193,2),
- (330,221,193,2),
- (331,222,193,2),
- (332,223,193,2),
- (334,224,193,2),
- (336,225,193,2),
- (337,226,193,2),
- (339,227,193,2),
- (340,228,193,2),
- (341,229,193,2),
- (343,230,193,2),
- (344,231,193,2),
- (346,232,193,2),
- (348,233,193,2),
- (349,234,193,2),
- (350,235,193,2),
- (352,236,193,2),
- (354,237,193,2),
- (355,238,193,2),
- (356,239,193,2),
- (358,240,193,2),
- (359,241,193,2),
- (360,242,193,2),
- (362,243,193,2),
- (364,244,193,2),
- (365,245,193,2),
- (367,246,193,2),
- (368,247,193,2),
- (369,248,193,2),
- (371,249,193,2),
- (372,250,193,2),
- (373,251,193,2),
- (375,252,193,2),
- (376,253,193,2),
- (378,254,193,2),
- (380,255,193,2),
- (381,256,193,2),
- (383,257,193,2),
- (384,258,193,2),
- (385,259,193,2),
- (387,260,193,2),
- (388,261,193,2),
- (390,262,193,2),
- (391,263,193,2),
- (393,264,193,2),
- (395,265,193,2),
- (396,266,193,2),
- (398,267,193,2),
- (399,268,193,2),
- (401,269,193,2),
- (403,270,193,2),
- (405,271,193,2),
- (406,272,193,2),
- (408,273,193,2),
- (409,274,193,2),
- (411,275,193,2),
- (412,276,193,2),
- (414,277,193,2),
- (416,278,193,2),
- (418,279,193,2),
- (420,280,193,2),
- (422,281,193,2),
- (424,282,193,2),
- (425,283,193,2),
- (426,284,193,2),
- (428,285,193,2),
- (429,286,193,2),
- (431,287,193,2),
- (433,288,193,2),
- (435,289,193,2),
- (436,290,193,2),
- (437,291,193,2),
- (438,292,193,2),
- (439,293,193,2),
- (440,294,193,2),
- (441,295,193,2),
- (442,296,193,2),
- (443,297,193,2),
- (444,298,193,2),
- (446,299,193,2),
- (447,300,193,2),
- (801,573,197,2),
- (704,476,199,2),
- (751,506,199,2),
- (761,533,199,2),
- (793,565,200,2),
- (772,544,201,2);
+ (72,49,1,3),
+ (506,332,1,3),
+ (321,208,2,3),
+ (371,241,2,3),
+ (517,338,2,3),
+ (684,451,2,2),
+ (283,183,3,3),
+ (438,285,4,3),
+ (595,388,4,3),
+ (685,452,4,2),
+ (702,469,4,2),
+ (742,509,4,2),
+ (227,149,5,3),
+ (281,182,5,3),
+ (477,314,5,3),
+ (722,489,5,2),
+ (752,519,5,2),
+ (216,142,6,3),
+ (399,261,6,3),
+ (686,453,6,2),
+ (157,103,7,3),
+ (103,69,8,3),
+ (168,110,8,3),
+ (401,262,8,3),
+ (539,353,8,3),
+ (638,418,8,3),
+ (687,454,8,2),
+ (123,81,9,3),
+ (325,210,9,3),
+ (527,345,9,3),
+ (542,355,9,3),
+ (607,397,9,3),
+ (66,44,10,3),
+ (494,325,10,3),
+ (548,359,10,3),
+ (108,72,11,3),
+ (332,216,11,3),
+ (385,251,11,3),
+ (629,412,11,3),
+ (658,431,11,3),
+ (266,174,12,3),
+ (782,549,12,2),
+ (514,336,13,3),
+ (805,572,13,2),
+ (19,13,15,3),
+ (465,305,15,3),
+ (471,309,15,3),
+ (533,349,15,3),
+ (545,357,15,3),
+ (37,25,16,3),
+ (81,55,16,3),
+ (181,118,16,3),
+ (482,318,16,3),
+ (688,455,16,2),
+ (720,487,16,2),
+ (750,517,16,2),
+ (179,117,17,3),
+ (199,132,17,3),
+ (243,158,17,3),
+ (723,490,17,2),
+ (738,505,17,2),
+ (48,32,18,3),
+ (504,331,18,3),
+ (644,422,18,3),
+ (669,439,18,3),
+ (794,561,18,2),
+ (689,456,19,2),
+ (726,493,19,2),
+ (754,521,19,2),
+ (367,239,20,3),
+ (767,534,21,2),
+ (209,138,22,3),
+ (341,222,22,3),
+ (467,306,22,3),
+ (763,530,22,2),
+ (270,176,23,3),
+ (421,275,23,3),
+ (498,327,23,3),
+ (717,484,23,2),
+ (736,503,23,2),
+ (376,245,25,3),
+ (443,288,25,3),
+ (634,416,25,3),
+ (162,106,27,3),
+ (166,109,27,3),
+ (229,151,28,2),
+ (231,152,28,2),
+ (233,153,28,2),
+ (235,154,28,2),
+ (237,155,28,2),
+ (239,156,28,2),
+ (241,157,28,2),
+ (242,158,28,2),
+ (244,159,28,2),
+ (246,160,28,2),
+ (247,161,28,2),
+ (248,162,28,2),
+ (249,163,28,2),
+ (251,164,28,2),
+ (252,165,28,2),
+ (253,165,28,3),
+ (254,166,28,2),
+ (255,167,28,2),
+ (256,168,28,2),
+ (257,169,28,2),
+ (258,170,28,2),
+ (260,171,28,2),
+ (262,172,28,2),
+ (264,173,28,2),
+ (265,174,28,2),
+ (267,175,28,2),
+ (269,176,28,2),
+ (271,177,28,2),
+ (273,178,28,2),
+ (274,179,28,2),
+ (276,180,28,2),
+ (278,181,28,2),
+ (280,182,28,2),
+ (282,183,28,2),
+ (284,184,28,2),
+ (286,185,28,2),
+ (288,186,28,2),
+ (289,187,28,2),
+ (291,188,28,2),
+ (292,189,28,2),
+ (294,190,28,2),
+ (295,191,28,2),
+ (296,192,28,2),
+ (297,193,28,2),
+ (299,194,28,2),
+ (301,195,28,2),
+ (302,196,28,2),
+ (303,197,28,2),
+ (305,198,28,2),
+ (306,199,28,2),
+ (307,200,28,2),
+ (309,201,28,2),
+ (311,202,28,2),
+ (312,203,28,2),
+ (313,204,28,2),
+ (314,205,28,2),
+ (316,206,28,2),
+ (318,207,28,2),
+ (320,208,28,2),
+ (322,209,28,2),
+ (324,210,28,2),
+ (326,211,28,2),
+ (327,212,28,2),
+ (328,213,28,2),
+ (329,214,28,2),
+ (330,215,28,2),
+ (331,216,28,2),
+ (333,217,28,2),
+ (335,218,28,2),
+ (337,219,28,2),
+ (338,220,28,2),
+ (339,221,28,2),
+ (340,222,28,2),
+ (342,223,28,2),
+ (344,224,28,2),
+ (346,225,28,2),
+ (347,226,28,2),
+ (348,227,28,2),
+ (350,228,28,2),
+ (351,229,28,2),
+ (353,230,28,2),
+ (354,231,28,2),
+ (356,232,28,2),
+ (358,233,28,2),
+ (359,234,28,2),
+ (361,235,28,2),
+ (362,236,28,2),
+ (364,237,28,2),
+ (365,238,28,2),
+ (366,239,28,2),
+ (368,240,28,2),
+ (370,241,28,2),
+ (372,242,28,2),
+ (373,243,28,2),
+ (374,244,28,2),
+ (375,245,28,2),
+ (377,246,28,2),
+ (378,247,28,2),
+ (380,248,28,2),
+ (382,249,28,2),
+ (383,250,28,2),
+ (384,251,28,2),
+ (386,252,28,2),
+ (388,253,28,2),
+ (389,254,28,2),
+ (390,255,28,2),
+ (392,256,28,2),
+ (394,257,28,2),
+ (395,258,28,2),
+ (396,259,28,2),
+ (397,260,28,2),
+ (398,261,28,2),
+ (400,262,28,2),
+ (402,263,28,2),
+ (404,264,28,2),
+ (406,265,28,2),
+ (407,266,28,2),
+ (409,267,28,2),
+ (410,268,28,2),
+ (411,269,28,2),
+ (412,270,28,2),
+ (414,271,28,2),
+ (415,272,28,2),
+ (417,273,28,2),
+ (419,274,28,2),
+ (420,275,28,2),
+ (422,276,28,2),
+ (423,277,28,2),
+ (425,278,28,2),
+ (427,279,28,2),
+ (429,280,28,2),
+ (431,281,28,2),
+ (432,282,28,2),
+ (434,283,28,2),
+ (435,284,28,2),
+ (437,285,28,2),
+ (439,286,28,2),
+ (440,287,28,2),
+ (441,287,28,3),
+ (442,288,28,2),
+ (444,289,28,2),
+ (446,290,28,2),
+ (448,291,28,2),
+ (449,292,28,2),
+ (450,293,28,2),
+ (451,294,28,2),
+ (452,295,28,2),
+ (453,296,28,2),
+ (454,297,28,2),
+ (455,298,28,2),
+ (456,299,28,2),
+ (457,300,28,2),
+ (97,65,29,3),
+ (52,35,30,3),
+ (172,112,30,3),
+ (708,475,30,2),
+ (744,511,30,2),
+ (352,229,31,3),
+ (680,447,31,3),
+ (57,38,32,3),
+ (64,43,32,3),
+ (117,78,32,3),
+ (426,278,32,3),
+ (588,384,32,3),
+ (695,462,32,2),
+ (696,463,32,2),
+ (336,218,33,3),
+ (485,320,33,3),
+ (488,322,33,3),
+ (636,417,33,3),
+ (774,541,33,2),
+ (29,19,34,3),
+ (520,340,34,3),
+ (692,459,34,2),
+ (236,154,35,3),
+ (355,231,35,3),
+ (393,256,35,3),
+ (620,406,35,3),
+ (759,526,35,2),
+ (92,62,36,3),
+ (211,139,36,3),
+ (556,365,36,3),
+ (27,18,37,3),
+ (510,334,37,3),
+ (150,99,38,3),
+ (601,393,38,3),
+ (159,104,39,3),
+ (188,123,39,3),
+ (379,247,39,3),
+ (31,20,40,3),
+ (7,5,41,3),
+ (238,155,41,3),
+ (250,163,41,3),
+ (413,270,41,3),
+ (433,282,41,3),
+ (447,290,41,3),
+ (496,326,41,3),
+ (772,539,41,2),
+ (25,17,42,3),
+ (323,209,42,3),
+ (603,394,42,3),
+ (694,461,43,2),
+ (105,70,44,3),
+ (126,83,44,3),
+ (272,177,44,3),
+ (391,255,44,3),
+ (571,374,44,3),
+ (673,441,44,3),
+ (725,492,44,2),
+ (739,506,44,2),
+ (259,170,46,3),
+ (287,185,46,3),
+ (424,277,46,3),
+ (787,554,46,2),
+ (213,140,47,3),
+ (300,194,47,3),
+ (610,399,47,3),
+ (558,366,48,3),
+ (207,137,49,3),
+ (569,373,49,3),
+ (193,127,50,3),
+ (204,135,50,3),
+ (786,553,50,2),
+ (94,63,51,3),
+ (458,301,51,2),
+ (460,302,51,2),
+ (461,303,51,2),
+ (463,304,51,2),
+ (464,305,51,2),
+ (466,306,51,2),
+ (468,307,51,2),
+ (469,308,51,2),
+ (470,309,51,2),
+ (472,310,51,2),
+ (473,311,51,2),
+ (474,312,51,2),
+ (475,313,51,2),
+ (476,314,51,2),
+ (478,315,51,2),
+ (479,316,51,2),
+ (480,317,51,2),
+ (481,318,51,2),
+ (483,319,51,2),
+ (484,320,51,2),
+ (486,321,51,2),
+ (487,322,51,2),
+ (489,323,51,2),
+ (491,324,51,2),
+ (493,325,51,2),
+ (495,326,51,2),
+ (497,327,51,2),
+ (499,328,51,2),
+ (500,329,51,2),
+ (501,330,51,2),
+ (503,331,51,2),
+ (505,332,51,2),
+ (507,333,51,2),
+ (509,334,51,2),
+ (511,335,51,2),
+ (513,336,51,2),
+ (515,337,51,2),
+ (516,338,51,2),
+ (518,339,51,2),
+ (519,340,51,2),
+ (521,341,51,2),
+ (522,342,51,2),
+ (523,343,51,2),
+ (524,344,51,2),
+ (526,345,51,2),
+ (528,346,51,2),
+ (530,347,51,2),
+ (531,348,51,2),
+ (532,349,51,2),
+ (534,350,51,2),
+ (535,351,51,2),
+ (537,352,51,2),
+ (538,353,51,2),
+ (540,354,51,2),
+ (541,355,51,2),
+ (543,356,51,2),
+ (544,357,51,2),
+ (546,358,51,2),
+ (547,359,51,2),
+ (549,360,51,2),
+ (550,361,51,2),
+ (551,362,51,2),
+ (552,363,51,2),
+ (554,364,51,2),
+ (555,365,51,2),
+ (557,366,51,2),
+ (559,367,51,2),
+ (560,368,51,2),
+ (562,369,51,2),
+ (564,370,51,2),
+ (565,371,51,2),
+ (566,372,51,2),
+ (568,373,51,2),
+ (570,374,51,2),
+ (572,375,51,2),
+ (574,376,51,2),
+ (575,377,51,2),
+ (577,378,51,2),
+ (579,379,51,2),
+ (581,380,51,2),
+ (583,381,51,2),
+ (584,382,51,2),
+ (585,383,51,2),
+ (587,384,51,2),
+ (589,385,51,2),
+ (591,386,51,2),
+ (593,387,51,2),
+ (594,388,51,2),
+ (596,389,51,2),
+ (597,390,51,2),
+ (598,391,51,2),
+ (599,392,51,2),
+ (600,393,51,2),
+ (602,394,51,2),
+ (604,395,51,2),
+ (605,396,51,2),
+ (606,397,51,2),
+ (608,398,51,2),
+ (609,399,51,2),
+ (611,400,51,2),
+ (612,401,51,2),
+ (613,402,51,2),
+ (615,403,51,2),
+ (617,404,51,2),
+ (618,405,51,2),
+ (619,406,51,2),
+ (621,407,51,2),
+ (622,408,51,2),
+ (623,409,51,2),
+ (624,410,51,2),
+ (626,411,51,2),
+ (628,412,51,2),
+ (630,413,51,2),
+ (631,414,51,2),
+ (632,415,51,2),
+ (633,416,51,2),
+ (635,417,51,2),
+ (637,418,51,2),
+ (639,419,51,2),
+ (641,420,51,2),
+ (642,421,51,2),
+ (643,422,51,2),
+ (645,423,51,2),
+ (646,424,51,2),
+ (647,425,51,2),
+ (649,426,51,2),
+ (650,427,51,2),
+ (652,428,51,2),
+ (653,429,51,2),
+ (655,430,51,2),
+ (657,431,51,2),
+ (659,432,51,2),
+ (660,433,51,2),
+ (661,434,51,2),
+ (662,435,51,2),
+ (664,436,51,2),
+ (665,437,51,2),
+ (666,438,51,2),
+ (667,438,51,3),
+ (668,439,51,2),
+ (670,440,51,2),
+ (672,441,51,2),
+ (674,442,51,2),
+ (675,443,51,2),
+ (676,444,51,2),
+ (677,445,51,2),
+ (678,446,51,2),
+ (679,447,51,2),
+ (681,448,51,2),
+ (682,449,51,2),
+ (683,450,51,2),
+ (713,480,51,2),
+ (734,501,51,2),
+ (758,525,51,2),
+ (536,351,52,3),
+ (462,303,53,3),
+ (3,2,54,3),
+ (230,151,54,3),
+ (567,372,54,3),
+ (84,57,55,3),
+ (360,234,55,3),
+ (802,569,55,2),
+ (490,323,56,3),
+ (698,465,56,2),
+ (740,507,56,2),
+ (240,156,57,3),
+ (369,240,57,3),
+ (648,425,57,3),
+ (129,85,58,3),
+ (147,97,58,3),
+ (234,153,58,3),
+ (724,491,58,2),
+ (753,520,58,2),
+ (308,200,59,3),
+ (345,224,59,3),
+ (405,264,59,3),
+ (561,368,59,3),
+ (42,28,60,3),
+ (186,122,60,3),
+ (761,528,60,2),
+ (59,39,61,3),
+ (202,134,61,3),
+ (663,435,61,3),
+ (418,273,62,3),
+ (508,333,62,3),
+ (155,102,63,3),
+ (349,227,63,3),
+ (703,470,63,2),
+ (730,497,63,2),
+ (76,51,64,3),
+ (800,567,64,2),
+ (277,180,65,3),
+ (55,37,66,3),
+ (121,80,66,3),
+ (140,93,66,3),
+ (152,100,67,3),
+ (220,145,67,3),
+ (428,279,67,3),
+ (9,6,68,3),
+ (74,50,68,3),
+ (512,335,68,3),
+ (232,152,69,3),
+ (656,430,70,3),
+ (716,483,70,2),
+ (749,516,70,2),
+ (693,460,71,2),
+ (408,266,73,3),
+ (651,427,73,3),
+ (769,536,73,2),
+ (119,79,74,3),
+ (317,206,74,3),
+ (363,236,76,3),
+ (553,363,76,3),
+ (627,411,76,3),
+ (16,11,77,3),
+ (285,184,77,3),
+ (445,289,77,3),
+ (502,330,77,3),
+ (525,344,77,3),
+ (529,346,77,3),
+ (590,385,77,3),
+ (671,440,77,3),
+ (12,8,78,3),
+ (115,77,78,3),
+ (261,171,78,3),
+ (298,193,78,3),
+ (580,379,78,3),
+ (640,419,78,3),
+ (22,15,79,3),
+ (315,205,79,3),
+ (343,223,79,3),
+ (616,403,79,3),
+ (625,410,79,3),
+ (586,383,80,3),
+ (614,402,80,3),
+ (100,67,82,3),
+ (582,380,82,3),
+ (690,457,82,2),
+ (783,550,82,2),
+ (222,146,83,3),
+ (416,272,83,3),
+ (170,111,84,3),
+ (796,563,84,2),
+ (142,94,85,3),
+ (245,159,85,3),
+ (700,467,85,2),
+ (741,508,85,2),
+ (86,58,86,3),
+ (176,115,86,3),
+ (131,86,87,3),
+ (263,172,87,3),
+ (459,301,87,3),
+ (563,369,87,3),
+ (112,75,88,3),
+ (290,187,88,3),
+ (381,248,88,3),
+ (792,559,89,2),
+ (334,217,90,3),
+ (357,232,90,3),
+ (387,252,90,3),
+ (697,464,90,2),
+ (727,494,90,2),
+ (40,27,91,3),
+ (436,284,91,3),
+ (45,30,92,3),
+ (293,189,92,3),
+ (403,263,92,3),
+ (573,375,92,3),
+ (592,386,92,3),
+ (691,458,92,2),
+ (714,481,92,2),
+ (748,515,92,2),
+ (88,59,93,3),
+ (492,324,93,3),
+ (765,532,93,2),
+ (319,207,94,3),
+ (145,96,95,3),
+ (654,429,95,3),
+ (268,175,96,3),
+ (304,197,96,3),
+ (430,280,96,3),
+ (224,147,98,3),
+ (279,181,98,3),
+ (578,378,98,3),
+ (133,87,99,3),
+ (275,179,99,3),
+ (576,377,99,3),
+ (310,201,100,3),
+ (762,529,100,2),
+ (789,556,103,2),
+ (791,558,104,2),
+ (711,478,107,2),
+ (746,513,107,2),
+ (801,568,107,2),
+ (798,565,110,2),
+ (712,479,113,2),
+ (747,514,113,2),
+ (797,564,114,2),
+ (1,1,115,2),
+ (2,2,115,2),
+ (4,3,115,2),
+ (5,4,115,2),
+ (6,5,115,2),
+ (8,6,115,2),
+ (10,7,115,2),
+ (11,8,115,2),
+ (13,9,115,2),
+ (14,10,115,2),
+ (15,11,115,2),
+ (17,12,115,2),
+ (18,13,115,2),
+ (20,14,115,2),
+ (21,15,115,2),
+ (23,16,115,2),
+ (24,17,115,2),
+ (26,18,115,2),
+ (28,19,115,2),
+ (30,20,115,2),
+ (32,21,115,2),
+ (33,22,115,2),
+ (34,23,115,2),
+ (35,24,115,2),
+ (36,25,115,2),
+ (38,26,115,2),
+ (39,27,115,2),
+ (41,28,115,2),
+ (43,29,115,2),
+ (44,30,115,2),
+ (46,31,115,2),
+ (47,32,115,2),
+ (49,33,115,2),
+ (50,34,115,2),
+ (51,35,115,2),
+ (53,36,115,2),
+ (54,37,115,2),
+ (56,38,115,2),
+ (58,39,115,2),
+ (60,40,115,2),
+ (61,41,115,2),
+ (62,42,115,2),
+ (63,43,115,2),
+ (65,44,115,2),
+ (67,45,115,2),
+ (68,46,115,2),
+ (69,47,115,2),
+ (70,48,115,2),
+ (71,49,115,2),
+ (73,50,115,2),
+ (75,51,115,2),
+ (77,52,115,2),
+ (78,53,115,2),
+ (79,54,115,2),
+ (80,55,115,2),
+ (82,56,115,2),
+ (83,57,115,2),
+ (85,58,115,2),
+ (87,59,115,2),
+ (89,60,115,2),
+ (90,61,115,2),
+ (91,62,115,2),
+ (93,63,115,2),
+ (95,64,115,2),
+ (96,65,115,2),
+ (98,66,115,2),
+ (99,67,115,2),
+ (101,68,115,2),
+ (102,69,115,2),
+ (104,70,115,2),
+ (106,71,115,2),
+ (107,72,115,2),
+ (109,73,115,2),
+ (110,74,115,2),
+ (111,75,115,2),
+ (113,76,115,2),
+ (114,77,115,2),
+ (116,78,115,2),
+ (118,79,115,2),
+ (120,80,115,2),
+ (122,81,115,2),
+ (124,82,115,2),
+ (125,83,115,2),
+ (127,84,115,2),
+ (128,85,115,2),
+ (130,86,115,2),
+ (132,87,115,2),
+ (134,88,115,2),
+ (135,89,115,2),
+ (136,90,115,2),
+ (137,91,115,2),
+ (138,92,115,2),
+ (139,93,115,2),
+ (141,94,115,2),
+ (143,95,115,2),
+ (144,96,115,2),
+ (146,97,115,2),
+ (148,98,115,2),
+ (149,99,115,2),
+ (151,100,115,2),
+ (153,101,115,2),
+ (154,102,115,2),
+ (156,103,115,2),
+ (158,104,115,2),
+ (160,105,115,2),
+ (161,106,115,2),
+ (163,107,115,2),
+ (164,108,115,2),
+ (165,109,115,2),
+ (167,110,115,2),
+ (169,111,115,2),
+ (171,112,115,2),
+ (173,113,115,2),
+ (174,114,115,2),
+ (175,115,115,2),
+ (177,116,115,2),
+ (178,117,115,2),
+ (180,118,115,2),
+ (182,119,115,2),
+ (183,120,115,2),
+ (184,121,115,2),
+ (185,122,115,2),
+ (187,123,115,2),
+ (189,124,115,2),
+ (190,125,115,2),
+ (191,126,115,2),
+ (192,127,115,2),
+ (194,128,115,2),
+ (195,129,115,2),
+ (196,130,115,2),
+ (197,131,115,2),
+ (198,132,115,2),
+ (200,133,115,2),
+ (201,134,115,2),
+ (203,135,115,2),
+ (205,136,115,2),
+ (206,137,115,2),
+ (208,138,115,2),
+ (210,139,115,2),
+ (212,140,115,2),
+ (214,141,115,2),
+ (215,142,115,2),
+ (217,143,115,2),
+ (218,144,115,2),
+ (219,145,115,2),
+ (221,146,115,2),
+ (223,147,115,2),
+ (225,148,115,2),
+ (226,149,115,2),
+ (228,150,115,2),
+ (701,468,117,2),
+ (729,496,117,2),
+ (781,548,117,2),
+ (804,571,122,2),
+ (785,552,123,2),
+ (799,566,125,2),
+ (704,471,127,2),
+ (743,510,127,2),
+ (768,535,129,2),
+ (715,482,132,2),
+ (735,502,132,2),
+ (793,560,133,2),
+ (777,544,136,2),
+ (780,547,142,2),
+ (807,574,143,2),
+ (806,573,144,2),
+ (771,538,147,2),
+ (776,543,151,2),
+ (719,486,152,2),
+ (737,504,152,2),
+ (778,545,153,2),
+ (788,555,155,2),
+ (795,562,157,2),
+ (775,542,158,2),
+ (718,485,159,2),
+ (756,523,159,2),
+ (773,540,166,2),
+ (705,472,168,2),
+ (731,498,168,2),
+ (707,474,170,2),
+ (755,522,170,2),
+ (770,537,171,2),
+ (766,533,179,2),
+ (710,477,180,2),
+ (745,512,180,2),
+ (784,551,184,2),
+ (699,466,185,2),
+ (728,495,185,2),
+ (779,546,185,2),
+ (764,531,187,2),
+ (790,557,191,2),
+ (709,476,194,2),
+ (733,500,194,2),
+ (706,473,195,2),
+ (732,499,195,2),
+ (760,527,196,2),
+ (803,570,200,2),
+ (721,488,201,2),
+ (751,518,201,2);
 /*!40000 ALTER TABLE `civicrm_activity_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1603,186 +1609,183 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_address` WRITE;
 /*!40000 ALTER TABLE `civicrm_address` DISABLE KEYS */;
 INSERT INTO `civicrm_address` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `street_address`, `street_number`, `street_number_suffix`, `street_number_predirectional`, `street_name`, `street_type`, `street_number_postdirectional`, `street_unit`, `supplemental_address_1`, `supplemental_address_2`, `supplemental_address_3`, `city`, `county_id`, `state_province_id`, `postal_code_suffix`, `postal_code`, `usps_adc`, `country_id`, `geo_code_1`, `geo_code_2`, `manual_geo_code`, `timezone`, `name`, `master_id`) VALUES
- (1,65,1,1,0,'643D Pine St NE',643,'D',NULL,'Pine','St','NE',NULL,NULL,NULL,NULL,'Snowflake',1,1002,NULL,'85937',NULL,1228,34.560896,-110.03633,0,NULL,NULL,NULL),
- (2,164,1,1,0,'71C Jackson Path NE',71,'C',NULL,'Jackson','Path','NE',NULL,NULL,NULL,NULL,'Edwardsville',1,1045,NULL,'22456',NULL,1228,37.852316,-76.40511,0,NULL,NULL,NULL),
- (3,187,1,1,0,'449A Caulder Rd W',449,'A',NULL,'Caulder','Rd','W',NULL,NULL,NULL,NULL,'Belvidere',1,1026,NULL,'68315',NULL,1228,40.248038,-97.5574,0,NULL,NULL,NULL),
- (4,69,1,1,0,'704U Maple St NW',704,'U',NULL,'Maple','St','NW',NULL,NULL,NULL,NULL,'Suwannee',1,1008,NULL,'32692',NULL,1228,29.330426,-83.14401,0,NULL,NULL,NULL),
- (5,6,1,1,0,'664J Martin Luther King Way SE',664,'J',NULL,'Martin Luther King','Way','SE',NULL,NULL,NULL,NULL,'Missoula',1,1025,NULL,'59812',NULL,1228,47.116034,-114.049824,0,NULL,NULL,NULL),
- (6,159,1,1,0,'969O College Rd SE',969,'O',NULL,'College','Rd','SE',NULL,NULL,NULL,NULL,'Homosassa',1,1008,NULL,'34446',NULL,1228,28.746912,-82.53331,0,NULL,NULL,NULL),
- (7,33,1,1,0,'456H States Blvd E',456,'H',NULL,'States','Blvd','E',NULL,NULL,NULL,NULL,'Boomer',1,1032,NULL,'28606',NULL,1228,36.058853,-81.30497,0,NULL,NULL,NULL),
- (8,185,1,1,0,'446I Green Blvd NW',446,'I',NULL,'Green','Blvd','NW',NULL,NULL,NULL,NULL,'Locustville',1,1045,NULL,'23404',NULL,1228,37.635838,-75.66642,0,NULL,NULL,NULL),
- (9,103,1,1,0,'467K College Ave W',467,'K',NULL,'College','Ave','W',NULL,NULL,NULL,NULL,'East Lansing',1,1021,NULL,'48826',NULL,1228,42.599184,-84.371973,0,NULL,NULL,NULL),
- (10,137,1,1,0,'879Y Caulder Way SE',879,'Y',NULL,'Caulder','Way','SE',NULL,NULL,NULL,NULL,'Rehobeth',1,1019,NULL,'21857',NULL,1228,38.092718,-75.888207,0,NULL,NULL,NULL),
- (11,52,1,1,0,'458E Pine Ln SW',458,'E',NULL,'Pine','Ln','SW',NULL,NULL,NULL,NULL,'Atwater',1,1012,NULL,'62511',NULL,1228,39.346468,-89.73278,0,NULL,NULL,NULL),
- (12,165,1,1,0,'1000U States Rd W',1000,'U',NULL,'States','Rd','W',NULL,NULL,NULL,NULL,'Duquesne',1,1037,NULL,'15110',NULL,1228,40.369969,-79.85095,0,NULL,NULL,NULL),
- (13,162,1,1,0,'927E Martin Luther King Pl S',927,'E',NULL,'Martin Luther King','Pl','S',NULL,NULL,NULL,NULL,'Freeport',1,1022,NULL,'56331',NULL,1228,45.67539,-94.67303,0,NULL,NULL,NULL),
- (14,131,1,1,0,'783Q Main Pl SW',783,'Q',NULL,'Main','Pl','SW',NULL,NULL,NULL,NULL,'Centerville',1,1037,NULL,'16404',NULL,1228,41.727069,-79.78908,0,NULL,NULL,NULL),
- (15,171,1,1,0,'359K Second Path NW',359,'K',NULL,'Second','Path','NW',NULL,NULL,NULL,NULL,'Hector',1,1031,NULL,'14841',NULL,1228,42.521501,-76.86246,0,NULL,NULL,NULL),
- (16,17,1,1,0,'917F States Dr SE',917,'F',NULL,'States','Dr','SE',NULL,NULL,NULL,NULL,'Cashiers',1,1032,NULL,'28717',NULL,1228,35.103251,-83.09538,0,NULL,NULL,NULL),
- (17,149,1,1,0,'160W Jackson Ave SE',160,'W',NULL,'Jackson','Ave','SE',NULL,NULL,NULL,NULL,'Milesburg',1,1037,NULL,'16853',NULL,1228,40.942533,-77.7892,0,NULL,NULL,NULL),
- (18,199,1,1,0,'13E El Camino Way NW',13,'E',NULL,'El Camino','Way','NW',NULL,NULL,NULL,NULL,'Glynn',1,1017,NULL,'70736',NULL,1228,30.633678,-91.33786,0,NULL,NULL,NULL),
- (19,115,1,1,0,'752C Green St E',752,'C',NULL,'Green','St','E',NULL,NULL,NULL,NULL,'Williamsville',1,1024,NULL,'63967',NULL,1228,36.944333,-90.48271,0,NULL,NULL,NULL),
- (20,201,1,1,0,'786V Woodbridge Pl SE',786,'V',NULL,'Woodbridge','Pl','SE',NULL,NULL,NULL,NULL,'Axtell',1,1042,NULL,'76624',NULL,1228,31.661554,-96.95451,0,NULL,NULL,NULL),
- (21,166,1,1,0,'47C Woodbridge Rd SE',47,'C',NULL,'Woodbridge','Rd','SE',NULL,NULL,NULL,NULL,'Fresno',1,1004,NULL,'93771',NULL,1228,36.746375,-119.639658,0,NULL,NULL,NULL),
- (22,138,1,1,0,'266O El Camino Ln SE',266,'O',NULL,'El Camino','Ln','SE',NULL,NULL,NULL,NULL,'Conowingo',1,1019,NULL,'21918',NULL,1228,39.679246,-76.15464,0,NULL,NULL,NULL),
- (23,61,1,1,0,'846D Van Ness Rd S',846,'D',NULL,'Van Ness','Rd','S',NULL,NULL,NULL,NULL,'Nondalton',1,1001,NULL,'99640',NULL,1228,59.971286,-154.85008,0,NULL,NULL,NULL),
- (24,25,1,1,0,'16E Pine St SE',16,'E',NULL,'Pine','St','SE',NULL,NULL,NULL,NULL,'Redwood City',1,1004,NULL,'94063',NULL,1228,37.483504,-122.2144,0,NULL,NULL,NULL),
- (25,133,1,1,0,'593D Beech Path NE',593,'D',NULL,'Beech','Path','NE',NULL,NULL,NULL,NULL,'Millersburg',1,1016,NULL,'40348',NULL,1228,38.302495,-84.14578,0,NULL,NULL,NULL),
- (26,184,1,1,0,'515V Green Blvd SE',515,'V',NULL,'Green','Blvd','SE',NULL,NULL,NULL,NULL,'Blue Hill Falls',1,1018,NULL,'04615',NULL,1228,44.354477,-68.54781,0,NULL,NULL,NULL),
- (27,198,1,1,0,'701L Northpoint Ln S',701,'L',NULL,'Northpoint','Ln','S',NULL,NULL,NULL,NULL,'Lake Park',1,1009,NULL,'31636',NULL,1228,30.72289,-83.13302,0,NULL,NULL,NULL),
- (28,54,1,1,0,'882Q Woodbridge Blvd NW',882,'Q',NULL,'Woodbridge','Blvd','NW',NULL,NULL,NULL,NULL,'Weatogue',1,1006,NULL,'06089',NULL,1228,41.839731,-72.81974,0,NULL,NULL,NULL),
- (29,55,1,1,0,'232O College Rd SW',232,'O',NULL,'College','Rd','SW',NULL,NULL,NULL,NULL,'Tennessee',1,1012,NULL,'62374',NULL,1228,40.403553,-90.8834,0,NULL,NULL,NULL),
- (30,111,1,1,0,'46Y Cadell Pl W',46,'Y',NULL,'Cadell','Pl','W',NULL,NULL,NULL,NULL,'Harborcreek',1,1037,NULL,'16421',NULL,1228,42.169106,-79.9409,0,NULL,NULL,NULL),
- (31,50,1,1,0,'348X Second Dr SE',348,'X',NULL,'Second','Dr','SE',NULL,NULL,NULL,NULL,'Fenwick Island',1,1007,NULL,'19944',NULL,1228,38.459314,-75.05356,0,NULL,NULL,NULL),
- (32,13,1,1,0,'898D Pine Ave NW',898,'D',NULL,'Pine','Ave','NW',NULL,NULL,NULL,NULL,'Eton',1,1009,NULL,'30724',NULL,1228,34.822176,-84.75967,0,NULL,NULL,NULL),
- (33,112,1,1,0,'65C Beech Dr W',65,'C',NULL,'Beech','Dr','W',NULL,NULL,NULL,NULL,'Oak City',1,1043,NULL,'84649',NULL,1228,39.370295,-112.32369,0,NULL,NULL,NULL),
- (34,114,1,1,0,'253C Woodbridge Ave E',253,'C',NULL,'Woodbridge','Ave','E',NULL,NULL,NULL,NULL,'Clearfield',1,1037,NULL,'16830',NULL,1228,41.026239,-78.43838,0,NULL,NULL,NULL),
- (35,175,1,1,0,'356O Bay Way SW',356,'O',NULL,'Bay','Way','SW',NULL,NULL,NULL,NULL,'Clarendon',1,1042,NULL,'79226',NULL,1228,34.971719,-100.90662,0,NULL,NULL,NULL),
- (36,90,1,1,0,'855U Van Ness Way E',855,'U',NULL,'Van Ness','Way','E',NULL,NULL,NULL,NULL,'Corona',1,1040,NULL,'57227',NULL,1228,45.377288,-96.64746,0,NULL,NULL,NULL),
- (37,80,1,1,0,'405Y Woodbridge Path E',405,'Y',NULL,'Woodbridge','Path','E',NULL,NULL,NULL,NULL,'Charlotte',1,1032,NULL,'28207',NULL,1228,35.197643,-80.82752,0,NULL,NULL,NULL),
- (38,20,1,1,0,'152A Van Ness Rd W',152,'A',NULL,'Van Ness','Rd','W',NULL,NULL,NULL,NULL,'Huntington',1,1047,NULL,'25726',NULL,1228,38.413384,-82.277401,0,NULL,NULL,NULL),
- (39,41,1,1,0,'261W Second Rd NW',261,'W',NULL,'Second','Rd','NW',NULL,NULL,NULL,NULL,'Quicksburg',1,1045,NULL,'22847',NULL,1228,38.704494,-78.70088,0,NULL,NULL,NULL),
- (40,193,1,1,0,'10U Woodbridge Pl SE',10,'U',NULL,'Woodbridge','Pl','SE',NULL,NULL,NULL,NULL,'Eufaula',1,1035,NULL,'74432',NULL,1228,35.280145,-95.57854,0,NULL,NULL,NULL),
- (41,128,1,1,0,'58G Maple Pl E',58,'G',NULL,'Maple','Pl','E',NULL,NULL,NULL,NULL,'Winchester',1,1004,NULL,'92596',NULL,1228,33.653216,-117.07986,0,NULL,NULL,NULL),
- (42,197,1,1,0,'213N States Blvd SE',213,'N',NULL,'States','Blvd','SE',NULL,NULL,NULL,NULL,'Bogart',1,1009,NULL,'30622',NULL,1228,33.927792,-83.51552,0,NULL,NULL,NULL),
- (43,26,1,1,0,'781T El Camino Way NE',781,'T',NULL,'El Camino','Way','NE',NULL,NULL,NULL,NULL,'Arabi',1,1017,NULL,'70032',NULL,1228,29.958802,-89.99902,0,NULL,NULL,NULL),
- (44,135,1,1,0,'655I Pine Blvd W',655,'I',NULL,'Pine','Blvd','W',NULL,NULL,NULL,NULL,'Great Bend',1,1037,NULL,'18821',NULL,1228,41.977241,-75.74391,0,NULL,NULL,NULL),
- (45,28,1,1,0,'653F Caulder Pl S',653,'F',NULL,'Caulder','Pl','S',NULL,NULL,NULL,NULL,'Wilkes Barre',1,1037,NULL,'18761',NULL,1228,41.272248,-75.880146,0,NULL,NULL,NULL),
- (46,7,1,1,0,'838C Martin Luther King Ave NE',838,'C',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Pulaski',1,1037,NULL,'16143',NULL,1228,41.096535,-80.46266,0,NULL,NULL,NULL),
- (47,36,1,1,0,'489Q Caulder Ln SE',489,'Q',NULL,'Caulder','Ln','SE',NULL,NULL,NULL,NULL,'Carbon Hill',1,1034,NULL,'43111',NULL,1228,39.501342,-82.24434,0,NULL,NULL,NULL),
- (48,155,1,1,0,'377I Dowlen Pl W',377,'I',NULL,'Dowlen','Pl','W',NULL,NULL,NULL,NULL,'Fort Howard',1,1019,NULL,'21052',NULL,1228,39.206108,-76.44642,0,NULL,NULL,NULL),
- (49,102,1,1,0,'295P Second St NE',295,'P',NULL,'Second','St','NE',NULL,NULL,NULL,NULL,'Stratford',1,1046,NULL,'98853',NULL,1228,47.417461,-119.28312,0,NULL,NULL,NULL),
- (50,9,1,1,0,'311A Northpoint Blvd N',311,'A',NULL,'Northpoint','Blvd','N',NULL,NULL,NULL,NULL,'Gaffney',1,1039,NULL,'29340',NULL,1228,35.03653,-81.62497,0,NULL,NULL,NULL),
- (51,130,1,1,0,'817B Main Ln SW',817,'B',NULL,'Main','Ln','SW',NULL,NULL,NULL,NULL,'Upton',1,1020,NULL,'01568',NULL,1228,42.17382,-71.60971,0,NULL,NULL,NULL),
- (52,144,1,1,0,'905U Woodbridge Blvd SW',905,'U',NULL,'Woodbridge','Blvd','SW',NULL,NULL,NULL,NULL,'Buffalo',1,1022,NULL,'55313',NULL,1228,45.175558,-93.85441,0,NULL,NULL,NULL),
- (53,29,1,1,0,'519P Beech Rd S',519,'P',NULL,'Beech','Rd','S',NULL,NULL,NULL,NULL,'Concord',1,1037,NULL,'17217',NULL,1228,40.225168,-77.725013,0,NULL,NULL,NULL),
- (54,48,1,1,0,'30Q Pine Way S',30,'Q',NULL,'Pine','Way','S',NULL,NULL,NULL,NULL,'Poway',1,1004,NULL,'92074',NULL,1228,33.016928,-116.846046,0,NULL,NULL,NULL),
- (55,15,1,1,0,'985Z Woodbridge Ave N',985,'Z',NULL,'Woodbridge','Ave','N',NULL,NULL,NULL,NULL,'Sweetwater',1,1041,NULL,'37874',NULL,1228,35.598659,-84.46613,0,NULL,NULL,NULL),
- (56,183,1,1,0,'525B El Camino Pl NW',525,'B',NULL,'El Camino','Pl','NW',NULL,NULL,NULL,NULL,'Henryville',1,1037,NULL,'18332',NULL,1228,41.093813,-75.26213,0,NULL,NULL,NULL),
- (57,63,1,1,0,'394O Main Rd S',394,'O',NULL,'Main','Rd','S',NULL,NULL,NULL,NULL,'Dingle',1,1011,NULL,'83233',NULL,1228,42.177359,-111.217381,0,NULL,NULL,NULL),
- (58,151,1,1,0,'769M Van Ness Pl NW',769,'M',NULL,'Van Ness','Pl','NW',NULL,NULL,NULL,NULL,'Ripley',1,1031,NULL,'14775',NULL,1228,42.254906,-79.69185,0,NULL,NULL,NULL),
- (59,127,1,1,0,'902O Martin Luther King Blvd N',902,'O',NULL,'Martin Luther King','Blvd','N',NULL,NULL,NULL,NULL,'Coupland',1,1042,NULL,'78615',NULL,1228,30.460373,-97.3935,0,NULL,NULL,NULL),
- (60,8,1,1,0,'184C Pine Blvd SE',184,'C',NULL,'Pine','Blvd','SE',NULL,NULL,NULL,NULL,'Ponce',1,1056,NULL,'00733',NULL,1228,18.019331,-66.619165,0,NULL,NULL,NULL),
- (61,66,1,1,0,'706Z Northpoint Blvd NE',706,'Z',NULL,'Northpoint','Blvd','NE',NULL,NULL,NULL,NULL,'Luray',1,1045,NULL,'22875',NULL,1228,38.665568,-78.466716,0,NULL,NULL,NULL),
- (62,74,1,1,0,'812I Cadell Ln NE',812,'I',NULL,'Cadell','Ln','NE',NULL,NULL,NULL,NULL,'East Hartland',1,1006,NULL,'06027',NULL,1228,42.002345,-72.90922,0,NULL,NULL,NULL),
- (63,179,3,1,0,'801T Bay Way NE',801,'T',NULL,'Bay','Way','NE',NULL,'Urgent',NULL,NULL,'Kaneohe',1,1010,NULL,'96477',NULL,1228,21.41345,-157.80575,0,NULL,NULL,NULL),
- (64,86,2,1,0,'801T Bay Way NE',801,'T',NULL,'Bay','Way','NE',NULL,'Urgent',NULL,NULL,'Kaneohe',1,1010,NULL,'96477',NULL,1228,21.41345,-157.80575,0,NULL,NULL,63),
- (65,107,3,1,0,'41Y Pine Way NW',41,'Y',NULL,'Pine','Way','NW',NULL,'Editorial Dept',NULL,NULL,'La Jolla',1,1004,NULL,'92038',NULL,1228,33.016928,-116.846046,0,NULL,NULL,NULL),
- (66,106,2,1,0,'41Y Pine Way NW',41,'Y',NULL,'Pine','Way','NW',NULL,'Editorial Dept',NULL,NULL,'La Jolla',1,1004,NULL,'92038',NULL,1228,33.016928,-116.846046,0,NULL,NULL,65),
- (67,167,3,1,0,'249V Beech Way S',249,'V',NULL,'Beech','Way','S',NULL,'Community Relations',NULL,NULL,'Whiting',1,1044,NULL,'05778',NULL,1228,43.864419,-73.21148,0,NULL,NULL,NULL),
- (68,6,2,0,0,'249V Beech Way S',249,'V',NULL,'Beech','Way','S',NULL,'Community Relations',NULL,NULL,'Whiting',1,1044,NULL,'05778',NULL,1228,43.864419,-73.21148,0,NULL,NULL,67),
- (69,154,3,1,0,'301F Dowlen Ln N',301,'F',NULL,'Dowlen','Ln','N',NULL,'Donor Relations',NULL,NULL,'Charlotte',1,1003,NULL,'72522',NULL,1228,35.819494,-91.45128,0,NULL,NULL,NULL),
- (70,88,3,1,0,'503R Green Dr SE',503,'R',NULL,'Green','Dr','SE',NULL,'Disbursements',NULL,NULL,'Liberal',1,1015,NULL,'67905',NULL,1228,37.021641,-100.938049,0,NULL,NULL,NULL),
- (71,59,2,1,0,'503R Green Dr SE',503,'R',NULL,'Green','Dr','SE',NULL,'Disbursements',NULL,NULL,'Liberal',1,1015,NULL,'67905',NULL,1228,37.021641,-100.938049,0,NULL,NULL,70),
- (72,70,3,1,0,'883C Dowlen Dr N',883,'C',NULL,'Dowlen','Dr','N',NULL,'Community Relations',NULL,NULL,'Claremont',1,1004,NULL,'91711',NULL,1228,34.110009,-117.71973,0,NULL,NULL,NULL),
- (73,54,2,0,0,'883C Dowlen Dr N',883,'C',NULL,'Dowlen','Dr','N',NULL,'Community Relations',NULL,NULL,'Claremont',1,1004,NULL,'91711',NULL,1228,34.110009,-117.71973,0,NULL,NULL,72),
- (74,191,3,1,0,'355W Second Ln S',355,'W',NULL,'Second','Ln','S',NULL,'Mailstop 101',NULL,NULL,'Saluda',1,1032,NULL,'28773',NULL,1228,35.23899,-82.34408,0,NULL,NULL,NULL),
- (75,87,2,1,0,'355W Second Ln S',355,'W',NULL,'Second','Ln','S',NULL,'Mailstop 101',NULL,NULL,'Saluda',1,1032,NULL,'28773',NULL,1228,35.23899,-82.34408,0,NULL,NULL,74),
- (76,188,3,1,0,'191K Jackson Ln W',191,'K',NULL,'Jackson','Ln','W',NULL,'Mailstop 101',NULL,NULL,'Kerby',1,1036,NULL,'97531',NULL,1228,42.208018,-123.65551,0,NULL,NULL,NULL),
- (77,39,2,1,0,'191K Jackson Ln W',191,'K',NULL,'Jackson','Ln','W',NULL,'Mailstop 101',NULL,NULL,'Kerby',1,1036,NULL,'97531',NULL,1228,42.208018,-123.65551,0,NULL,NULL,76),
- (78,57,3,1,0,'564O Van Ness Dr W',564,'O',NULL,'Van Ness','Dr','W',NULL,'Mailstop 101',NULL,NULL,'Cornettsville',1,1016,NULL,'41731',NULL,1228,37.115385,-83.08501,0,NULL,NULL,NULL),
- (79,200,2,1,0,'564O Van Ness Dr W',564,'O',NULL,'Van Ness','Dr','W',NULL,'Mailstop 101',NULL,NULL,'Cornettsville',1,1016,NULL,'41731',NULL,1228,37.115385,-83.08501,0,NULL,NULL,78),
- (80,109,3,1,0,'568D Dowlen Ln NW',568,'D',NULL,'Dowlen','Ln','NW',NULL,'Attn: Development',NULL,NULL,'Greenville',1,1023,NULL,'38703',NULL,1228,33.442801,-91.02984,0,NULL,NULL,NULL),
- (81,187,2,0,0,'568D Dowlen Ln NW',568,'D',NULL,'Dowlen','Ln','NW',NULL,'Attn: Development',NULL,NULL,'Greenville',1,1023,NULL,'38703',NULL,1228,33.442801,-91.02984,0,NULL,NULL,80),
- (82,110,3,1,0,'939M El Camino Blvd W',939,'M',NULL,'El Camino','Blvd','W',NULL,'Mailstop 101',NULL,NULL,'White Lake',1,1031,NULL,'12786',NULL,1228,41.649008,-74.85751,0,NULL,NULL,NULL),
- (83,18,2,1,0,'939M El Camino Blvd W',939,'M',NULL,'El Camino','Blvd','W',NULL,'Mailstop 101',NULL,NULL,'White Lake',1,1031,NULL,'12786',NULL,1228,41.649008,-74.85751,0,NULL,NULL,82),
- (84,34,3,1,0,'815R Green Rd SE',815,'R',NULL,'Green','Rd','SE',NULL,'Receiving',NULL,NULL,'Pittsburgh',1,1037,NULL,'15213',NULL,1228,40.443269,-79.95487,0,NULL,NULL,NULL),
- (85,152,3,1,0,'483B Pine Rd N',483,'B',NULL,'Pine','Rd','N',NULL,'Editorial Dept',NULL,NULL,'Greenfield',1,1014,NULL,'50849',NULL,1228,41.308843,-94.42424,0,NULL,NULL,NULL),
- (86,42,3,1,0,'840B Maple Way W',840,'B',NULL,'Maple','Way','W',NULL,'Cuffe Parade',NULL,NULL,'Fargo',1,1035,NULL,'73840',NULL,1228,36.403804,-99.64674,0,NULL,NULL,NULL),
- (87,76,3,1,0,'848D Second Way W',848,'D',NULL,'Second','Way','W',NULL,'Urgent',NULL,NULL,'Gracewood',1,1009,NULL,'30812',NULL,1228,33.386041,-82.090996,0,NULL,NULL,NULL),
- (88,190,2,1,0,'848D Second Way W',848,'D',NULL,'Second','Way','W',NULL,'Urgent',NULL,NULL,'Gracewood',1,1009,NULL,'30812',NULL,1228,33.386041,-82.090996,0,NULL,NULL,87),
- (89,97,3,1,0,'317W Cadell Way E',317,'W',NULL,'Cadell','Way','E',NULL,'c/o PO Plus',NULL,NULL,'Addis',1,1017,NULL,'70710',NULL,1228,30.350306,-91.26121,0,NULL,NULL,NULL),
- (90,38,2,1,0,'317W Cadell Way E',317,'W',NULL,'Cadell','Way','E',NULL,'c/o PO Plus',NULL,NULL,'Addis',1,1017,NULL,'70710',NULL,1228,30.350306,-91.26121,0,NULL,NULL,89),
- (91,125,3,1,0,'601E Dowlen Way S',601,'E',NULL,'Dowlen','Way','S',NULL,'Cuffe Parade',NULL,NULL,'Dawson',1,1012,NULL,'62520',NULL,1228,39.824457,-89.45643,0,NULL,NULL,NULL),
- (92,31,3,1,0,'694T Van Ness Ln E',694,'T',NULL,'Van Ness','Ln','E',NULL,'Donor Relations',NULL,NULL,'Heyburn',1,1011,NULL,'83336',NULL,1228,42.562839,-113.7864,0,NULL,NULL,NULL),
- (93,116,2,1,0,'694T Van Ness Ln E',694,'T',NULL,'Van Ness','Ln','E',NULL,'Donor Relations',NULL,NULL,'Heyburn',1,1011,NULL,'83336',NULL,1228,42.562839,-113.7864,0,NULL,NULL,92),
- (94,120,3,1,0,'19B Maple Way NE',19,'B',NULL,'Maple','Way','NE',NULL,'Attn: Development',NULL,NULL,'Parrish',1,1000,NULL,'35580',NULL,1228,33.701484,-87.27103,0,NULL,NULL,NULL),
- (95,104,2,1,0,'19B Maple Way NE',19,'B',NULL,'Maple','Way','NE',NULL,'Attn: Development',NULL,NULL,'Parrish',1,1000,NULL,'35580',NULL,1228,33.701484,-87.27103,0,NULL,NULL,94),
- (96,73,3,1,0,'737Z Dowlen Dr S',737,'Z',NULL,'Dowlen','Dr','S',NULL,'Editorial Dept',NULL,NULL,'Danese',1,1047,NULL,'25831',NULL,1228,37.950115,-80.92051,0,NULL,NULL,NULL),
- (97,72,2,1,0,'737Z Dowlen Dr S',737,'Z',NULL,'Dowlen','Dr','S',NULL,'Editorial Dept',NULL,NULL,'Danese',1,1047,NULL,'25831',NULL,1228,37.950115,-80.92051,0,NULL,NULL,96),
- (98,161,1,1,0,'781T El Camino Way NE',781,'T',NULL,'El Camino','Way','NE',NULL,NULL,NULL,NULL,'Arabi',1,1017,NULL,'70032',NULL,1228,29.958802,-89.99902,0,NULL,NULL,43),
- (99,72,1,0,0,'781T El Camino Way NE',781,'T',NULL,'El Camino','Way','NE',NULL,NULL,NULL,NULL,'Arabi',1,1017,NULL,'70032',NULL,1228,29.958802,-89.99902,0,NULL,NULL,43),
- (100,18,1,0,0,'781T El Camino Way NE',781,'T',NULL,'El Camino','Way','NE',NULL,NULL,NULL,NULL,'Arabi',1,1017,NULL,'70032',NULL,1228,29.958802,-89.99902,0,NULL,NULL,43),
- (101,145,1,1,0,'781T El Camino Way NE',781,'T',NULL,'El Camino','Way','NE',NULL,NULL,NULL,NULL,'Arabi',1,1017,NULL,'70032',NULL,1228,29.958802,-89.99902,0,NULL,NULL,43),
- (102,192,1,1,0,'655I Pine Blvd W',655,'I',NULL,'Pine','Blvd','W',NULL,NULL,NULL,NULL,'Great Bend',1,1037,NULL,'18821',NULL,1228,41.977241,-75.74391,0,NULL,NULL,44),
- (103,95,1,1,0,'655I Pine Blvd W',655,'I',NULL,'Pine','Blvd','W',NULL,NULL,NULL,NULL,'Great Bend',1,1037,NULL,'18821',NULL,1228,41.977241,-75.74391,0,NULL,NULL,44),
- (104,124,1,1,0,'655I Pine Blvd W',655,'I',NULL,'Pine','Blvd','W',NULL,NULL,NULL,NULL,'Great Bend',1,1037,NULL,'18821',NULL,1228,41.977241,-75.74391,0,NULL,NULL,44),
- (105,101,1,1,0,'655I Pine Blvd W',655,'I',NULL,'Pine','Blvd','W',NULL,NULL,NULL,NULL,'Great Bend',1,1037,NULL,'18821',NULL,1228,41.977241,-75.74391,0,NULL,NULL,44),
- (106,79,1,1,0,'653F Caulder Pl S',653,'F',NULL,'Caulder','Pl','S',NULL,NULL,NULL,NULL,'Wilkes Barre',1,1037,NULL,'18761',NULL,1228,41.272248,-75.880146,0,NULL,NULL,45),
- (107,62,1,1,0,'653F Caulder Pl S',653,'F',NULL,'Caulder','Pl','S',NULL,NULL,NULL,NULL,'Wilkes Barre',1,1037,NULL,'18761',NULL,1228,41.272248,-75.880146,0,NULL,NULL,45),
- (108,148,1,1,0,'653F Caulder Pl S',653,'F',NULL,'Caulder','Pl','S',NULL,NULL,NULL,NULL,'Wilkes Barre',1,1037,NULL,'18761',NULL,1228,41.272248,-75.880146,0,NULL,NULL,45),
- (109,96,1,1,0,'824L Cadell Path W',824,'L',NULL,'Cadell','Path','W',NULL,NULL,NULL,NULL,'Monee',1,1012,NULL,'60449',NULL,1228,41.422555,-87.75531,0,NULL,NULL,NULL),
- (110,150,1,1,0,'838C Martin Luther King Ave NE',838,'C',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Pulaski',1,1037,NULL,'16143',NULL,1228,41.096535,-80.46266,0,NULL,NULL,46),
- (111,16,1,1,0,'838C Martin Luther King Ave NE',838,'C',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Pulaski',1,1037,NULL,'16143',NULL,1228,41.096535,-80.46266,0,NULL,NULL,46),
- (112,122,1,1,0,'838C Martin Luther King Ave NE',838,'C',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Pulaski',1,1037,NULL,'16143',NULL,1228,41.096535,-80.46266,0,NULL,NULL,46),
- (113,3,1,1,0,'18V Maple Pl S',18,'V',NULL,'Maple','Pl','S',NULL,NULL,NULL,NULL,'Osage',1,1014,NULL,'50461',NULL,1228,43.290536,-92.82115,0,NULL,NULL,NULL),
- (114,24,1,1,0,'489Q Caulder Ln SE',489,'Q',NULL,'Caulder','Ln','SE',NULL,NULL,NULL,NULL,'Carbon Hill',1,1034,NULL,'43111',NULL,1228,39.501342,-82.24434,0,NULL,NULL,47),
- (115,141,1,1,0,'489Q Caulder Ln SE',489,'Q',NULL,'Caulder','Ln','SE',NULL,NULL,NULL,NULL,'Carbon Hill',1,1034,NULL,'43111',NULL,1228,39.501342,-82.24434,0,NULL,NULL,47),
- (116,117,1,1,0,'489Q Caulder Ln SE',489,'Q',NULL,'Caulder','Ln','SE',NULL,NULL,NULL,NULL,'Carbon Hill',1,1034,NULL,'43111',NULL,1228,39.501342,-82.24434,0,NULL,NULL,47),
- (117,100,1,1,0,'340N Jackson Rd N',340,'N',NULL,'Jackson','Rd','N',NULL,NULL,NULL,NULL,'Soldiers Grove',1,1048,NULL,'54655',NULL,1228,43.388055,-90.76632,0,NULL,NULL,NULL),
- (118,82,1,1,0,'377I Dowlen Pl W',377,'I',NULL,'Dowlen','Pl','W',NULL,NULL,NULL,NULL,'Fort Howard',1,1019,NULL,'21052',NULL,1228,39.206108,-76.44642,0,NULL,NULL,48),
- (119,104,1,0,0,'377I Dowlen Pl W',377,'I',NULL,'Dowlen','Pl','W',NULL,NULL,NULL,NULL,'Fort Howard',1,1019,NULL,'21052',NULL,1228,39.206108,-76.44642,0,NULL,NULL,48),
- (120,139,1,1,0,'377I Dowlen Pl W',377,'I',NULL,'Dowlen','Pl','W',NULL,NULL,NULL,NULL,'Fort Howard',1,1019,NULL,'21052',NULL,1228,39.206108,-76.44642,0,NULL,NULL,48),
- (121,87,1,0,0,'377I Dowlen Pl W',377,'I',NULL,'Dowlen','Pl','W',NULL,NULL,NULL,NULL,'Fort Howard',1,1019,NULL,'21052',NULL,1228,39.206108,-76.44642,0,NULL,NULL,48),
- (122,12,1,1,0,'295P Second St NE',295,'P',NULL,'Second','St','NE',NULL,NULL,NULL,NULL,'Stratford',1,1046,NULL,'98853',NULL,1228,47.417461,-119.28312,0,NULL,NULL,49),
- (123,176,1,1,0,'295P Second St NE',295,'P',NULL,'Second','St','NE',NULL,NULL,NULL,NULL,'Stratford',1,1046,NULL,'98853',NULL,1228,47.417461,-119.28312,0,NULL,NULL,49),
- (124,14,1,1,0,'295P Second St NE',295,'P',NULL,'Second','St','NE',NULL,NULL,NULL,NULL,'Stratford',1,1046,NULL,'98853',NULL,1228,47.417461,-119.28312,0,NULL,NULL,49),
- (125,129,1,1,0,'712A Maple Ln NW',712,'A',NULL,'Maple','Ln','NW',NULL,NULL,NULL,NULL,'Oroville',1,1004,NULL,'95966',NULL,1228,39.491076,-121.49468,0,NULL,NULL,NULL),
- (126,106,1,0,0,'311A Northpoint Blvd N',311,'A',NULL,'Northpoint','Blvd','N',NULL,NULL,NULL,NULL,'Gaffney',1,1039,NULL,'29340',NULL,1228,35.03653,-81.62497,0,NULL,NULL,50),
- (127,59,1,0,0,'311A Northpoint Blvd N',311,'A',NULL,'Northpoint','Blvd','N',NULL,NULL,NULL,NULL,'Gaffney',1,1039,NULL,'29340',NULL,1228,35.03653,-81.62497,0,NULL,NULL,50),
- (128,64,1,1,0,'311A Northpoint Blvd N',311,'A',NULL,'Northpoint','Blvd','N',NULL,NULL,NULL,NULL,'Gaffney',1,1039,NULL,'29340',NULL,1228,35.03653,-81.62497,0,NULL,NULL,50),
- (129,67,1,1,0,'547H Dowlen St NW',547,'H',NULL,'Dowlen','St','NW',NULL,NULL,NULL,NULL,'Karnack',1,1042,NULL,'75661',NULL,1228,32.66797,-94.16846,0,NULL,NULL,NULL),
- (130,168,1,1,0,'817B Main Ln SW',817,'B',NULL,'Main','Ln','SW',NULL,NULL,NULL,NULL,'Upton',1,1020,NULL,'01568',NULL,1228,42.17382,-71.60971,0,NULL,NULL,51),
- (131,189,1,1,0,'817B Main Ln SW',817,'B',NULL,'Main','Ln','SW',NULL,NULL,NULL,NULL,'Upton',1,1020,NULL,'01568',NULL,1228,42.17382,-71.60971,0,NULL,NULL,51),
- (132,142,1,1,0,'817B Main Ln SW',817,'B',NULL,'Main','Ln','SW',NULL,NULL,NULL,NULL,'Upton',1,1020,NULL,'01568',NULL,1228,42.17382,-71.60971,0,NULL,NULL,51),
- (133,116,1,0,0,'705W Martin Luther King Ave SW',705,'W',NULL,'Martin Luther King','Ave','SW',NULL,NULL,NULL,NULL,'Broadview',1,1030,NULL,'88112',NULL,1228,34.857544,-103.15193,0,NULL,NULL,NULL),
- (134,47,1,1,0,'905U Woodbridge Blvd SW',905,'U',NULL,'Woodbridge','Blvd','SW',NULL,NULL,NULL,NULL,'Buffalo',1,1022,NULL,'55313',NULL,1228,45.175558,-93.85441,0,NULL,NULL,52),
- (135,105,1,1,0,'905U Woodbridge Blvd SW',905,'U',NULL,'Woodbridge','Blvd','SW',NULL,NULL,NULL,NULL,'Buffalo',1,1022,NULL,'55313',NULL,1228,45.175558,-93.85441,0,NULL,NULL,52),
- (136,118,1,1,0,'905U Woodbridge Blvd SW',905,'U',NULL,'Woodbridge','Blvd','SW',NULL,NULL,NULL,NULL,'Buffalo',1,1022,NULL,'55313',NULL,1228,45.175558,-93.85441,0,NULL,NULL,52),
- (137,140,1,1,0,'905U Woodbridge Blvd SW',905,'U',NULL,'Woodbridge','Blvd','SW',NULL,NULL,NULL,NULL,'Buffalo',1,1022,NULL,'55313',NULL,1228,45.175558,-93.85441,0,NULL,NULL,52),
- (138,200,1,0,0,'519P Beech Rd S',519,'P',NULL,'Beech','Rd','S',NULL,NULL,NULL,NULL,'Concord',1,1037,NULL,'17217',NULL,1228,40.225168,-77.725013,0,NULL,NULL,53),
- (139,51,1,1,0,'519P Beech Rd S',519,'P',NULL,'Beech','Rd','S',NULL,NULL,NULL,NULL,'Concord',1,1037,NULL,'17217',NULL,1228,40.225168,-77.725013,0,NULL,NULL,53),
- (140,22,1,1,0,'519P Beech Rd S',519,'P',NULL,'Beech','Rd','S',NULL,NULL,NULL,NULL,'Concord',1,1037,NULL,'17217',NULL,1228,40.225168,-77.725013,0,NULL,NULL,53),
- (141,113,1,1,0,'519P Beech Rd S',519,'P',NULL,'Beech','Rd','S',NULL,NULL,NULL,NULL,'Concord',1,1037,NULL,'17217',NULL,1228,40.225168,-77.725013,0,NULL,NULL,53),
- (142,132,1,1,0,'30Q Pine Way S',30,'Q',NULL,'Pine','Way','S',NULL,NULL,NULL,NULL,'Poway',1,1004,NULL,'92074',NULL,1228,33.016928,-116.846046,0,NULL,NULL,54),
- (143,108,1,1,0,'30Q Pine Way S',30,'Q',NULL,'Pine','Way','S',NULL,NULL,NULL,NULL,'Poway',1,1004,NULL,'92074',NULL,1228,33.016928,-116.846046,0,NULL,NULL,54),
- (144,178,1,1,0,'30Q Pine Way S',30,'Q',NULL,'Pine','Way','S',NULL,NULL,NULL,NULL,'Poway',1,1004,NULL,'92074',NULL,1228,33.016928,-116.846046,0,NULL,NULL,54),
- (145,160,1,1,0,'30Q Pine Way S',30,'Q',NULL,'Pine','Way','S',NULL,NULL,NULL,NULL,'Poway',1,1004,NULL,'92074',NULL,1228,33.016928,-116.846046,0,NULL,NULL,54),
- (146,93,1,1,0,'985Z Woodbridge Ave N',985,'Z',NULL,'Woodbridge','Ave','N',NULL,NULL,NULL,NULL,'Sweetwater',1,1041,NULL,'37874',NULL,1228,35.598659,-84.46613,0,NULL,NULL,55),
- (147,174,1,1,0,'985Z Woodbridge Ave N',985,'Z',NULL,'Woodbridge','Ave','N',NULL,NULL,NULL,NULL,'Sweetwater',1,1041,NULL,'37874',NULL,1228,35.598659,-84.46613,0,NULL,NULL,55),
- (148,92,1,1,0,'985Z Woodbridge Ave N',985,'Z',NULL,'Woodbridge','Ave','N',NULL,NULL,NULL,NULL,'Sweetwater',1,1041,NULL,'37874',NULL,1228,35.598659,-84.46613,0,NULL,NULL,55),
- (149,186,1,1,0,'985Z Woodbridge Ave N',985,'Z',NULL,'Woodbridge','Ave','N',NULL,NULL,NULL,NULL,'Sweetwater',1,1041,NULL,'37874',NULL,1228,35.598659,-84.46613,0,NULL,NULL,55),
- (150,147,1,1,0,'525B El Camino Pl NW',525,'B',NULL,'El Camino','Pl','NW',NULL,NULL,NULL,NULL,'Henryville',1,1037,NULL,'18332',NULL,1228,41.093813,-75.26213,0,NULL,NULL,56),
- (151,68,1,1,0,'525B El Camino Pl NW',525,'B',NULL,'El Camino','Pl','NW',NULL,NULL,NULL,NULL,'Henryville',1,1037,NULL,'18332',NULL,1228,41.093813,-75.26213,0,NULL,NULL,56),
- (152,40,1,1,0,'525B El Camino Pl NW',525,'B',NULL,'El Camino','Pl','NW',NULL,NULL,NULL,NULL,'Henryville',1,1037,NULL,'18332',NULL,1228,41.093813,-75.26213,0,NULL,NULL,56),
- (153,190,1,0,0,'416R States Ave NE',416,'R',NULL,'States','Ave','NE',NULL,NULL,NULL,NULL,'Trujillo Alto',1,1056,NULL,'00976',NULL,1228,18.346767,-66.00561,0,NULL,NULL,NULL),
- (154,136,1,1,0,'394O Main Rd S',394,'O',NULL,'Main','Rd','S',NULL,NULL,NULL,NULL,'Dingle',1,1011,NULL,'83233',NULL,1228,42.177359,-111.217381,0,NULL,NULL,57),
- (155,75,1,1,0,'394O Main Rd S',394,'O',NULL,'Main','Rd','S',NULL,NULL,NULL,NULL,'Dingle',1,1011,NULL,'83233',NULL,1228,42.177359,-111.217381,0,NULL,NULL,57),
- (156,156,1,1,0,'394O Main Rd S',394,'O',NULL,'Main','Rd','S',NULL,NULL,NULL,NULL,'Dingle',1,1011,NULL,'83233',NULL,1228,42.177359,-111.217381,0,NULL,NULL,57),
- (157,180,1,1,0,'394O Main Rd S',394,'O',NULL,'Main','Rd','S',NULL,NULL,NULL,NULL,'Dingle',1,1011,NULL,'83233',NULL,1228,42.177359,-111.217381,0,NULL,NULL,57),
- (158,123,1,1,0,'769M Van Ness Pl NW',769,'M',NULL,'Van Ness','Pl','NW',NULL,NULL,NULL,NULL,'Ripley',1,1031,NULL,'14775',NULL,1228,42.254906,-79.69185,0,NULL,NULL,58),
- (159,45,1,1,0,'769M Van Ness Pl NW',769,'M',NULL,'Van Ness','Pl','NW',NULL,NULL,NULL,NULL,'Ripley',1,1031,NULL,'14775',NULL,1228,42.254906,-79.69185,0,NULL,NULL,58),
- (160,23,1,1,0,'769M Van Ness Pl NW',769,'M',NULL,'Van Ness','Pl','NW',NULL,NULL,NULL,NULL,'Ripley',1,1031,NULL,'14775',NULL,1228,42.254906,-79.69185,0,NULL,NULL,58),
- (161,46,1,1,0,'769M Van Ness Pl NW',769,'M',NULL,'Van Ness','Pl','NW',NULL,NULL,NULL,NULL,'Ripley',1,1031,NULL,'14775',NULL,1228,42.254906,-79.69185,0,NULL,NULL,58),
- (162,98,1,1,0,'902O Martin Luther King Blvd N',902,'O',NULL,'Martin Luther King','Blvd','N',NULL,NULL,NULL,NULL,'Coupland',1,1042,NULL,'78615',NULL,1228,30.460373,-97.3935,0,NULL,NULL,59),
- (163,143,1,1,0,'902O Martin Luther King Blvd N',902,'O',NULL,'Martin Luther King','Blvd','N',NULL,NULL,NULL,NULL,'Coupland',1,1042,NULL,'78615',NULL,1228,30.460373,-97.3935,0,NULL,NULL,59),
- (164,5,1,1,0,'902O Martin Luther King Blvd N',902,'O',NULL,'Martin Luther King','Blvd','N',NULL,NULL,NULL,NULL,'Coupland',1,1042,NULL,'78615',NULL,1228,30.460373,-97.3935,0,NULL,NULL,59),
- (165,38,1,0,0,'902O Martin Luther King Blvd N',902,'O',NULL,'Martin Luther King','Blvd','N',NULL,NULL,NULL,NULL,'Coupland',1,1042,NULL,'78615',NULL,1228,30.460373,-97.3935,0,NULL,NULL,59),
- (166,196,1,1,0,'184C Pine Blvd SE',184,'C',NULL,'Pine','Blvd','SE',NULL,NULL,NULL,NULL,'Ponce',1,1056,NULL,'00733',NULL,1228,18.019331,-66.619165,0,NULL,NULL,60),
- (167,194,1,1,0,'184C Pine Blvd SE',184,'C',NULL,'Pine','Blvd','SE',NULL,NULL,NULL,NULL,'Ponce',1,1056,NULL,'00733',NULL,1228,18.019331,-66.619165,0,NULL,NULL,60),
- (168,86,1,0,0,'184C Pine Blvd SE',184,'C',NULL,'Pine','Blvd','SE',NULL,NULL,NULL,NULL,'Ponce',1,1056,NULL,'00733',NULL,1228,18.019331,-66.619165,0,NULL,NULL,60),
- (169,163,1,1,0,'184C Pine Blvd SE',184,'C',NULL,'Pine','Blvd','SE',NULL,NULL,NULL,NULL,'Ponce',1,1056,NULL,'00733',NULL,1228,18.019331,-66.619165,0,NULL,NULL,60),
- (170,89,1,1,0,'706Z Northpoint Blvd NE',706,'Z',NULL,'Northpoint','Blvd','NE',NULL,NULL,NULL,NULL,'Luray',1,1045,NULL,'22875',NULL,1228,38.665568,-78.466716,0,NULL,NULL,61),
- (171,158,1,1,0,'706Z Northpoint Blvd NE',706,'Z',NULL,'Northpoint','Blvd','NE',NULL,NULL,NULL,NULL,'Luray',1,1045,NULL,'22875',NULL,1228,38.665568,-78.466716,0,NULL,NULL,61),
- (172,77,1,1,0,'706Z Northpoint Blvd NE',706,'Z',NULL,'Northpoint','Blvd','NE',NULL,NULL,NULL,NULL,'Luray',1,1045,NULL,'22875',NULL,1228,38.665568,-78.466716,0,NULL,NULL,61),
- (173,83,1,1,0,'706Z Northpoint Blvd NE',706,'Z',NULL,'Northpoint','Blvd','NE',NULL,NULL,NULL,NULL,'Luray',1,1045,NULL,'22875',NULL,1228,38.665568,-78.466716,0,NULL,NULL,61),
- (174,44,1,1,0,'812I Cadell Ln NE',812,'I',NULL,'Cadell','Ln','NE',NULL,NULL,NULL,NULL,'East Hartland',1,1006,NULL,'06027',NULL,1228,42.002345,-72.90922,0,NULL,NULL,62),
- (175,85,1,1,0,'812I Cadell Ln NE',812,'I',NULL,'Cadell','Ln','NE',NULL,NULL,NULL,NULL,'East Hartland',1,1006,NULL,'06027',NULL,1228,42.002345,-72.90922,0,NULL,NULL,62),
- (176,43,1,1,0,'812I Cadell Ln NE',812,'I',NULL,'Cadell','Ln','NE',NULL,NULL,NULL,NULL,'East Hartland',1,1006,NULL,'06027',NULL,1228,42.002345,-72.90922,0,NULL,NULL,62),
- (177,84,1,1,0,'11X States Ln NE',11,'X',NULL,'States','Ln','NE',NULL,NULL,NULL,NULL,'Niotaze',1,1015,NULL,'67355',NULL,1228,37.053112,-96.01065,0,NULL,NULL,NULL),
- (178,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL),
- (179,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL),
- (180,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL);
+ (1,4,1,1,0,'16F Green Dr NE',16,'F',NULL,'Green','Dr','NE',NULL,NULL,NULL,NULL,'Baldwin Place',1,1031,NULL,'10505',NULL,1228,41.33431,-73.749244,0,NULL,NULL,NULL),
+ (2,200,1,1,0,'63C Jackson Blvd NE',63,'C',NULL,'Jackson','Blvd','NE',NULL,NULL,NULL,NULL,'Norfolk',1,1045,NULL,'23507',NULL,1228,36.864047,-76.29947,0,NULL,NULL,NULL),
+ (3,195,1,1,0,'119U Northpoint Ave NE',119,'U',NULL,'Northpoint','Ave','NE',NULL,NULL,NULL,NULL,'Reliance',1,1049,NULL,'82943',NULL,1228,41.702635,-109.22044,0,NULL,NULL,NULL),
+ (4,156,1,1,0,'778D College St NE',778,'D',NULL,'College','St','NE',NULL,NULL,NULL,NULL,'Meadview',1,1002,NULL,'86444',NULL,1228,35.950442,-114.07783,0,NULL,NULL,NULL),
+ (5,157,1,1,0,'329B Bay Dr SW',329,'B',NULL,'Bay','Dr','SW',NULL,NULL,NULL,NULL,'Hampton',1,1006,NULL,'06247',NULL,1228,41.767929,-72.06127,0,NULL,NULL,NULL),
+ (6,28,1,1,0,'449P Dowlen Dr W',449,'P',NULL,'Dowlen','Dr','W',NULL,NULL,NULL,NULL,'Homosassa',1,1008,NULL,'34487',NULL,1228,28.859286,-82.508694,0,NULL,NULL,NULL),
+ (7,13,1,1,0,'217O Cadell Path NW',217,'O',NULL,'Cadell','Path','NW',NULL,NULL,NULL,NULL,'Fort Myers',1,1008,NULL,'33912',NULL,1228,26.501582,-81.82841,0,NULL,NULL,NULL),
+ (8,191,1,1,0,'664F States Rd E',664,'F',NULL,'States','Rd','E',NULL,NULL,NULL,NULL,'New Buffalo',1,1021,NULL,'49117',NULL,1228,41.784691,-86.75519,0,NULL,NULL,NULL),
+ (9,7,1,1,0,'215N Maple Rd N',215,'N',NULL,'Maple','Rd','N',NULL,NULL,NULL,NULL,'West Suffield',1,1006,NULL,'06093',NULL,1228,42.019907,-72.73357,0,NULL,NULL,NULL),
+ (10,30,1,1,0,'495Y El Camino Ave NE',495,'Y',NULL,'El Camino','Ave','NE',NULL,NULL,NULL,NULL,'Mobile',1,1000,NULL,'36605',NULL,1228,30.641191,-88.08222,0,NULL,NULL,NULL),
+ (11,109,1,1,0,'160B Beech Ln SW',160,'B',NULL,'Beech','Ln','SW',NULL,NULL,NULL,NULL,'Tippo',1,1023,NULL,'38962',NULL,1228,33.90263,-90.16305,0,NULL,NULL,NULL),
+ (12,98,1,1,0,'368E Bay St W',368,'E',NULL,'Bay','St','W',NULL,NULL,NULL,NULL,'Dodge City',1,1015,NULL,'67801',NULL,1228,37.755267,-100.02632,0,NULL,NULL,NULL),
+ (13,116,1,1,0,'286F Maple Blvd S',286,'F',NULL,'Maple','Blvd','S',NULL,NULL,NULL,NULL,'Honolulu',1,1010,NULL,'96810',NULL,1228,24.859832,-168.021815,0,NULL,NULL,NULL),
+ (14,32,1,1,0,'691K Van Ness Dr NE',691,'K',NULL,'Van Ness','Dr','NE',NULL,NULL,NULL,NULL,'Concord',1,1032,NULL,'28026',NULL,1228,35.346285,-80.541088,0,NULL,NULL,NULL),
+ (15,12,1,1,0,'105H Second Blvd NE',105,'H',NULL,'Second','Blvd','NE',NULL,NULL,NULL,NULL,'Callery',1,1037,NULL,'16024',NULL,1228,40.739587,-80.03721,0,NULL,NULL,NULL),
+ (16,3,1,1,0,'948A Northpoint Ln NW',948,'A',NULL,'Northpoint','Ln','NW',NULL,NULL,NULL,NULL,'Albany',1,1031,NULL,'12214',NULL,1228,42.614852,-73.970812,0,NULL,NULL,NULL),
+ (17,73,1,1,0,'48T Main Ave N',48,'T',NULL,'Main','Ave','N',NULL,NULL,NULL,NULL,'Ossineke',1,1021,NULL,'49766',NULL,1228,44.920907,-83.45125,0,NULL,NULL,NULL),
+ (18,36,1,1,0,'476E Van Ness Ln S',476,'E',NULL,'Van Ness','Ln','S',NULL,NULL,NULL,NULL,'Wartburg',1,1041,NULL,'37887',NULL,1228,36.091018,-84.56863,0,NULL,NULL,NULL),
+ (19,53,1,1,0,'144P Beech Blvd E',144,'P',NULL,'Beech','Blvd','E',NULL,NULL,NULL,NULL,'Dennison',1,1022,NULL,'55018',NULL,1228,44.422975,-93.00089,0,NULL,NULL,NULL),
+ (20,83,1,1,0,'52N Maple Dr NW',52,'N',NULL,'Maple','Dr','NW',NULL,NULL,NULL,NULL,'Wheeling',1,1047,NULL,'26003',NULL,1228,40.071472,-80.6868,0,NULL,NULL,NULL),
+ (21,171,1,1,0,'278N Bay Dr SE',278,'N',NULL,'Bay','Dr','SE',NULL,NULL,NULL,NULL,'Fresno',1,1004,NULL,'93771',NULL,1228,36.746375,-119.639658,0,NULL,NULL,NULL),
+ (22,25,1,1,0,'278W College Pl NW',278,'W',NULL,'College','Pl','NW',NULL,NULL,NULL,NULL,'Manorville',1,1037,NULL,'16238',NULL,1228,40.786362,-79.52164,0,NULL,NULL,NULL),
+ (23,163,1,1,0,'656I El Camino Blvd S',656,'I',NULL,'El Camino','Blvd','S',NULL,NULL,NULL,NULL,'West Springfield',1,1020,NULL,'01089',NULL,1228,42.112793,-72.64066,0,NULL,NULL,NULL),
+ (24,8,1,1,0,'541O Van Ness Rd E',541,'O',NULL,'Van Ness','Rd','E',NULL,NULL,NULL,NULL,'Tampa',1,1008,NULL,'33605',NULL,1228,27.963849,-82.43193,0,NULL,NULL,NULL),
+ (25,23,1,1,0,'502J Pine Ave N',502,'J',NULL,'Pine','Ave','N',NULL,NULL,NULL,NULL,'Scottdale',1,1009,NULL,'30079',NULL,1228,33.791537,-84.25994,0,NULL,NULL,NULL),
+ (26,38,1,1,0,'962L Maple Path S',962,'L',NULL,'Maple','Path','S',NULL,NULL,NULL,NULL,'Ebro',1,1008,NULL,'32437',NULL,1228,30.443152,-85.88079,0,NULL,NULL,NULL),
+ (27,55,1,1,0,'105S Dowlen Way N',105,'S',NULL,'Dowlen','Way','N',NULL,NULL,NULL,NULL,'Tularosa',1,1030,NULL,'88352',NULL,1228,33.098649,-106.02058,0,NULL,NULL,NULL),
+ (28,72,1,1,0,'399J El Camino Way SE',399,'J',NULL,'El Camino','Way','SE',NULL,NULL,NULL,NULL,'Charleston',1,1039,NULL,'29424',NULL,1228,32.783076,-79.93701,0,NULL,NULL,NULL),
+ (29,18,1,1,0,'507M Main Ln S',507,'M',NULL,'Main','Ln','S',NULL,NULL,NULL,NULL,'Harris',1,1024,NULL,'64645',NULL,1228,40.299574,-93.33273,0,NULL,NULL,NULL),
+ (30,44,1,1,0,'982Q Van Ness Dr N',982,'Q',NULL,'Van Ness','Dr','N',NULL,NULL,NULL,NULL,'Yellow Springs',1,1034,NULL,'45387',NULL,1228,39.797227,-83.89239,0,NULL,NULL,NULL),
+ (31,114,1,1,0,'451L El Camino Way NW',451,'L',NULL,'El Camino','Way','NW',NULL,NULL,NULL,NULL,'Kenoza Lake',1,1031,NULL,'12750',NULL,1228,41.729581,-74.961146,0,NULL,NULL,NULL),
+ (32,15,1,1,0,'228U Van Ness Blvd E',228,'U',NULL,'Van Ness','Blvd','E',NULL,NULL,NULL,NULL,'Amherstdale',1,1047,NULL,'25607',NULL,1228,37.788146,-81.80248,0,NULL,NULL,NULL),
+ (33,128,1,1,0,'908N Van Ness Rd NW',908,'N',NULL,'Van Ness','Rd','NW',NULL,NULL,NULL,NULL,'The Plains',1,1034,NULL,'45780',NULL,1228,39.370636,-82.13406,0,NULL,NULL,NULL),
+ (34,70,1,1,0,'71T Green Ln SE',71,'T',NULL,'Green','Ln','SE',NULL,NULL,NULL,NULL,'Bedminster',1,1037,NULL,'18910',NULL,1228,40.328645,-75.10278,0,NULL,NULL,NULL),
+ (35,24,1,1,0,'961S Dowlen St NW',961,'S',NULL,'Dowlen','St','NW',NULL,NULL,NULL,NULL,'Tahoe Vista',1,1004,NULL,'96148',NULL,1228,39.243877,-120.05437,0,NULL,NULL,NULL),
+ (36,41,1,1,0,'357D Dowlen Path N',357,'D',NULL,'Dowlen','Path','N',NULL,NULL,NULL,NULL,'Atlanta',1,1009,NULL,'30301',NULL,1228,33.844371,-84.47405,0,NULL,NULL,NULL),
+ (37,2,1,1,0,'693U Woodbridge Way SW',693,'U',NULL,'Woodbridge','Way','SW',NULL,NULL,NULL,NULL,'Young America',1,1013,NULL,'46998',NULL,1228,40.569059,-86.34952,0,NULL,NULL,NULL),
+ (38,10,1,1,0,'777Y Jackson Path NE',777,'Y',NULL,'Jackson','Path','NE',NULL,NULL,NULL,NULL,'Dexter',1,1022,NULL,'55926',NULL,1228,43.731945,-92.70852,0,NULL,NULL,NULL),
+ (39,133,1,1,0,'342R Cadell Ave SW',342,'R',NULL,'Cadell','Ave','SW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76130',NULL,1228,32.771419,-97.291484,0,NULL,NULL,NULL),
+ (40,124,1,1,0,'91Z Main Pl NW',91,'Z',NULL,'Main','Pl','NW',NULL,NULL,NULL,NULL,'Bearsville',1,1031,NULL,'12409',NULL,1228,42.061841,-74.16063,0,NULL,NULL,NULL),
+ (41,96,1,1,0,'778P Jackson Ln W',778,'P',NULL,'Jackson','Ln','W',NULL,NULL,NULL,NULL,'Paoli',1,1037,NULL,'19301',NULL,1228,40.042252,-75.48357,0,NULL,NULL,NULL),
+ (42,184,1,1,0,'311G Lincoln Ave E',311,'G',NULL,'Lincoln','Ave','E',NULL,NULL,NULL,NULL,'El Paso',1,1042,NULL,'79920',NULL,1228,31.821439,-106.461405,0,NULL,NULL,NULL),
+ (43,192,1,1,0,'76H Caulder Dr E',76,'H',NULL,'Caulder','Dr','E',NULL,NULL,NULL,NULL,'Summerfield',1,1034,NULL,'43788',NULL,1228,39.799978,-81.33548,0,NULL,NULL,NULL),
+ (44,193,1,1,0,'805K Dowlen Path N',805,'K',NULL,'Dowlen','Path','N',NULL,NULL,NULL,NULL,'Oil City',1,1037,NULL,'16301',NULL,1228,41.439658,-79.69044,0,NULL,NULL,NULL),
+ (45,189,1,1,0,'830D Beech Ave W',830,'D',NULL,'Beech','Ave','W',NULL,NULL,NULL,NULL,'Buckeye Lake',1,1034,NULL,'43008',NULL,1228,39.93398,-82.47932,0,NULL,NULL,NULL),
+ (46,33,1,1,0,'724E College Dr SE',724,'E',NULL,'College','Dr','SE',NULL,NULL,NULL,NULL,'Plano',1,1042,NULL,'75025',NULL,1228,33.086868,-96.74504,0,NULL,NULL,NULL),
+ (47,66,1,1,0,'30D Green Ave NE',30,'D',NULL,'Green','Ave','NE',NULL,NULL,NULL,NULL,'Winston Salem',1,1032,NULL,'27150',NULL,1228,36.027482,-80.20728,0,NULL,NULL,NULL),
+ (48,158,1,1,0,'897E Dowlen Blvd E',897,'E',NULL,'Dowlen','Blvd','E',NULL,NULL,NULL,NULL,'Oxbow',1,1018,NULL,'04764',NULL,1228,46.416656,-68.47646,0,NULL,NULL,NULL),
+ (49,77,1,1,0,'317V States Pl SE',317,'V',NULL,'States','Pl','SE',NULL,NULL,NULL,NULL,'Galt',1,1024,NULL,'64641',NULL,1228,40.165088,-93.39425,0,NULL,NULL,NULL),
+ (50,34,1,1,0,'973N Caulder Pl SE',973,'N',NULL,'Caulder','Pl','SE',NULL,NULL,NULL,NULL,'Rush Hill',1,1024,NULL,'65280',NULL,1228,39.213975,-91.73545,0,NULL,NULL,NULL),
+ (51,20,1,1,0,'805Z Pine Dr W',805,'Z',NULL,'Pine','Dr','W',NULL,NULL,NULL,NULL,'Hillsboro',1,1009,NULL,'31038',NULL,1228,33.172786,-83.63554,0,NULL,NULL,NULL),
+ (52,148,1,1,0,'265U Pine Path S',265,'U',NULL,'Pine','Path','S',NULL,NULL,NULL,NULL,'Chuckey',1,1041,NULL,'37641',NULL,1228,36.21503,-82.6744,0,NULL,NULL,NULL),
+ (53,79,1,1,0,'743U Van Ness Ln SE',743,'U',NULL,'Van Ness','Ln','SE',NULL,NULL,NULL,NULL,'Castaic',1,1004,NULL,'91310',NULL,1228,33.786594,-118.298662,0,NULL,NULL,NULL),
+ (54,162,1,1,0,'964E Cadell Ln S',964,'E',NULL,'Cadell','Ln','S',NULL,NULL,NULL,NULL,'Pleasant Ridge',1,1021,NULL,'48069',NULL,1228,42.472235,-83.14051,0,NULL,NULL,NULL),
+ (55,123,1,1,0,'705O Main Rd E',705,'O',NULL,'Main','Rd','E',NULL,NULL,NULL,NULL,'Yorkville',1,1041,NULL,'38389',NULL,1228,36.135364,-89.111653,0,NULL,NULL,NULL),
+ (56,37,1,1,0,'508U Cadell Way NE',508,'U',NULL,'Cadell','Way','NE',NULL,NULL,NULL,NULL,'Piney Point',1,1019,NULL,'20674',NULL,1228,38.127843,-76.49055,0,NULL,NULL,NULL),
+ (57,91,1,1,0,'839I Dowlen Ave N',839,'I',NULL,'Dowlen','Ave','N',NULL,NULL,NULL,NULL,'North Fort Myers',1,1008,NULL,'33918',NULL,1228,26.71613,-81.607007,0,NULL,NULL,NULL),
+ (58,174,1,1,0,'905C Bay Way SE',905,'C',NULL,'Bay','Way','SE',NULL,NULL,NULL,NULL,'Ashford',1,1046,NULL,'98304',NULL,1228,46.75523,-122.01544,0,NULL,NULL,NULL),
+ (59,167,3,1,0,'484K Lincoln Rd E',484,'K',NULL,'Lincoln','Rd','E',NULL,'Churchgate',NULL,NULL,'Foster',1,1047,NULL,'25081',NULL,1228,38.092103,-81.75855,0,NULL,NULL,NULL),
+ (60,7,2,0,0,'484K Lincoln Rd E',484,'K',NULL,'Lincoln','Rd','E',NULL,'Churchgate',NULL,NULL,'Foster',1,1047,NULL,'25081',NULL,1228,38.092103,-81.75855,0,NULL,NULL,59),
+ (61,95,3,1,0,'361R Bay Ave NE',361,'R',NULL,'Bay','Ave','NE',NULL,'c/o OPDC',NULL,NULL,'Alexander City',1,1000,NULL,'35011',NULL,1228,32.990191,-85.958001,0,NULL,NULL,NULL),
+ (62,146,3,1,0,'494K Second Blvd W',494,'K',NULL,'Second','Blvd','W',NULL,'c/o PO Plus',NULL,NULL,'Yucca Valley',1,1004,NULL,'92284',NULL,1228,34.161795,-116.41246,0,NULL,NULL,NULL),
+ (63,195,2,0,0,'494K Second Blvd W',494,'K',NULL,'Second','Blvd','W',NULL,'c/o PO Plus',NULL,NULL,'Yucca Valley',1,1004,NULL,'92284',NULL,1228,34.161795,-116.41246,0,NULL,NULL,62),
+ (64,78,3,1,0,'460M Green Path E',460,'M',NULL,'Green','Path','E',NULL,'Receiving',NULL,NULL,'Trinity',1,1042,NULL,'75862',NULL,1228,30.94481,-95.33298,0,NULL,NULL,NULL),
+ (65,13,2,0,0,'460M Green Path E',460,'M',NULL,'Green','Path','E',NULL,'Receiving',NULL,NULL,'Trinity',1,1042,NULL,'75862',NULL,1228,30.94481,-95.33298,0,NULL,NULL,64),
+ (66,42,3,1,0,'639N Beech Blvd N',639,'N',NULL,'Beech','Blvd','N',NULL,'Editorial Dept',NULL,NULL,'Westport',1,1020,NULL,'02781',NULL,1228,41.522877,-71.069344,0,NULL,NULL,NULL),
+ (67,39,2,1,0,'639N Beech Blvd N',639,'N',NULL,'Beech','Blvd','N',NULL,'Editorial Dept',NULL,NULL,'Westport',1,1020,NULL,'02781',NULL,1228,41.522877,-71.069344,0,NULL,NULL,66),
+ (68,169,3,1,0,'127L Second Dr S',127,'L',NULL,'Second','Dr','S',NULL,'c/o OPDC',NULL,NULL,'Snow Shoe',1,1037,NULL,'16874',NULL,1228,41.034029,-77.93356,0,NULL,NULL,NULL),
+ (69,58,2,1,0,'127L Second Dr S',127,'L',NULL,'Second','Dr','S',NULL,'c/o OPDC',NULL,NULL,'Snow Shoe',1,1037,NULL,'16874',NULL,1228,41.034029,-77.93356,0,NULL,NULL,68),
+ (70,81,3,1,0,'976N El Camino Ave NW',976,'N',NULL,'El Camino','Ave','NW',NULL,'Community Relations',NULL,NULL,'Altura',1,1022,NULL,'55910',NULL,1228,44.128262,-91.95965,0,NULL,NULL,NULL),
+ (71,44,2,0,0,'976N El Camino Ave NW',976,'N',NULL,'El Camino','Ave','NW',NULL,'Community Relations',NULL,NULL,'Altura',1,1022,NULL,'55910',NULL,1228,44.128262,-91.95965,0,NULL,NULL,70),
+ (72,166,3,1,0,'534I Lincoln Pl SW',534,'I',NULL,'Lincoln','Pl','SW',NULL,'Receiving',NULL,NULL,'Arlington',1,1045,NULL,'22218',NULL,1228,38.880811,-77.11295,0,NULL,NULL,NULL),
+ (73,50,2,1,0,'534I Lincoln Pl SW',534,'I',NULL,'Lincoln','Pl','SW',NULL,'Receiving',NULL,NULL,'Arlington',1,1045,NULL,'22218',NULL,1228,38.880811,-77.11295,0,NULL,NULL,72),
+ (74,134,3,1,0,'827N Beech Blvd SE',827,'N',NULL,'Beech','Blvd','SE',NULL,'Editorial Dept',NULL,NULL,'Quaker Hill',1,1006,NULL,'06375',NULL,1228,41.401398,-72.11444,0,NULL,NULL,NULL),
+ (75,141,3,1,0,'48C States Way E',48,'C',NULL,'States','Way','E',NULL,'Mailstop 101',NULL,NULL,'Knoxville',1,1041,NULL,'37919',NULL,1228,35.922881,-84.00384,0,NULL,NULL,NULL),
+ (76,56,2,1,0,'48C States Way E',48,'C',NULL,'States','Way','E',NULL,'Mailstop 101',NULL,NULL,'Knoxville',1,1041,NULL,'37919',NULL,1228,35.922881,-84.00384,0,NULL,NULL,75),
+ (77,86,3,1,0,'764N Green Path S',764,'N',NULL,'Green','Path','S',NULL,'Disbursements',NULL,NULL,'Jackson',1,1025,NULL,'59736',NULL,1228,45.26938,-113.35533,0,NULL,NULL,NULL),
+ (78,110,2,1,0,'764N Green Path S',764,'N',NULL,'Green','Path','S',NULL,'Disbursements',NULL,NULL,'Jackson',1,1025,NULL,'59736',NULL,1228,45.26938,-113.35533,0,NULL,NULL,77),
+ (79,125,3,1,0,'812H Beech St E',812,'H',NULL,'Beech','St','E',NULL,'Donor Relations',NULL,NULL,'Locust Hill',1,1045,NULL,'23092',NULL,1228,37.593059,-76.50694,0,NULL,NULL,NULL),
+ (80,17,2,1,0,'812H Beech St E',812,'H',NULL,'Beech','St','E',NULL,'Donor Relations',NULL,NULL,'Locust Hill',1,1045,NULL,'23092',NULL,1228,37.593059,-76.50694,0,NULL,NULL,79),
+ (81,68,3,1,0,'748X Northpoint Way N',748,'X',NULL,'Northpoint','Way','N',NULL,'Community Relations',NULL,NULL,'Lenapah',1,1035,NULL,'74042',NULL,1228,36.857305,-95.61423,0,NULL,NULL,NULL),
+ (82,26,2,1,0,'748X Northpoint Way N',748,'X',NULL,'Northpoint','Way','N',NULL,'Community Relations',NULL,NULL,'Lenapah',1,1035,NULL,'74042',NULL,1228,36.857305,-95.61423,0,NULL,NULL,81),
+ (83,173,3,1,0,'739P Jackson Path S',739,'P',NULL,'Jackson','Path','S',NULL,'Attn: Development',NULL,NULL,'Miccosukee Cpo',1,1008,NULL,'32309',NULL,1228,30.514599,-84.188446,0,NULL,NULL,NULL),
+ (84,100,3,1,0,'143M Caulder Ln N',143,'M',NULL,'Caulder','Ln','N',NULL,'Payables Dept.',NULL,NULL,'Anahola',1,1010,NULL,'96703',NULL,1228,22.148133,-159.31765,0,NULL,NULL,NULL),
+ (85,35,2,1,0,'143M Caulder Ln N',143,'M',NULL,'Caulder','Ln','N',NULL,'Payables Dept.',NULL,NULL,'Anahola',1,1010,NULL,'96703',NULL,1228,22.148133,-159.31765,0,NULL,NULL,84),
+ (86,14,3,1,0,'614H Green St SE',614,'H',NULL,'Green','St','SE',NULL,'Disbursements',NULL,NULL,'Seattle',1,1046,NULL,'98122',NULL,1228,47.61157,-122.30406,0,NULL,NULL,NULL),
+ (87,62,2,1,0,'614H Green St SE',614,'H',NULL,'Green','St','SE',NULL,'Disbursements',NULL,NULL,'Seattle',1,1046,NULL,'98122',NULL,1228,47.61157,-122.30406,0,NULL,NULL,86),
+ (88,87,3,1,0,'252T Dowlen Path S',252,'T',NULL,'Dowlen','Path','S',NULL,'Disbursements',NULL,NULL,'Boise',1,1011,NULL,'83799',NULL,1228,43.459855,-116.243984,0,NULL,NULL,NULL),
+ (89,151,2,1,0,'252T Dowlen Path S',252,'T',NULL,'Dowlen','Path','S',NULL,'Disbursements',NULL,NULL,'Boise',1,1011,NULL,'83799',NULL,1228,43.459855,-116.243984,0,NULL,NULL,88),
+ (90,129,3,1,0,'147C Caulder Blvd N',147,'C',NULL,'Caulder','Blvd','N',NULL,'Cuffe Parade',NULL,NULL,'Dillwyn',1,1045,NULL,'23936',NULL,1228,37.529284,-78.49082,0,NULL,NULL,NULL),
+ (91,67,2,1,0,'147C Caulder Blvd N',147,'C',NULL,'Caulder','Blvd','N',NULL,'Cuffe Parade',NULL,NULL,'Dillwyn',1,1045,NULL,'23936',NULL,1228,37.529284,-78.49082,0,NULL,NULL,90),
+ (92,182,3,1,0,'766W Woodbridge Pl SE',766,'W',NULL,'Woodbridge','Pl','SE',NULL,'Urgent',NULL,NULL,'Kennewick',1,1046,NULL,'99536',NULL,1228,46.216706,-119.160173,0,NULL,NULL,NULL),
+ (93,113,2,1,0,'766W Woodbridge Pl SE',766,'W',NULL,'Woodbridge','Pl','SE',NULL,'Urgent',NULL,NULL,'Kennewick',1,1046,NULL,'99536',NULL,1228,46.216706,-119.160173,0,NULL,NULL,92),
+ (94,102,3,1,0,'875Y Beech Dr W',875,'Y',NULL,'Beech','Dr','W',NULL,'Attn: Development',NULL,NULL,'Southern Pines',1,1032,NULL,'28387',NULL,1228,35.180394,-79.39084,0,NULL,NULL,NULL),
+ (95,120,1,1,0,'342R Cadell Ave SW',342,'R',NULL,'Cadell','Ave','SW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76130',NULL,1228,32.771419,-97.291484,0,NULL,NULL,39),
+ (96,135,1,1,0,'342R Cadell Ave SW',342,'R',NULL,'Cadell','Ave','SW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76130',NULL,1228,32.771419,-97.291484,0,NULL,NULL,39),
+ (97,80,1,1,0,'342R Cadell Ave SW',342,'R',NULL,'Cadell','Ave','SW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76130',NULL,1228,32.771419,-97.291484,0,NULL,NULL,39),
+ (98,10,1,0,0,'342R Cadell Ave SW',342,'R',NULL,'Cadell','Ave','SW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76130',NULL,1228,32.771419,-97.291484,0,NULL,NULL,39),
+ (99,62,1,0,0,'91Z Main Pl NW',91,'Z',NULL,'Main','Pl','NW',NULL,NULL,NULL,NULL,'Bearsville',1,1031,NULL,'12409',NULL,1228,42.061841,-74.16063,0,NULL,NULL,40),
+ (100,118,1,1,0,'91Z Main Pl NW',91,'Z',NULL,'Main','Pl','NW',NULL,NULL,NULL,NULL,'Bearsville',1,1031,NULL,'12409',NULL,1228,42.061841,-74.16063,0,NULL,NULL,40),
+ (101,75,1,1,0,'91Z Main Pl NW',91,'Z',NULL,'Main','Pl','NW',NULL,NULL,NULL,NULL,'Bearsville',1,1031,NULL,'12409',NULL,1228,42.061841,-74.16063,0,NULL,NULL,40),
+ (102,154,1,1,0,'640J Woodbridge Way E',640,'J',NULL,'Woodbridge','Way','E',NULL,NULL,NULL,NULL,'Roanoke',1,1045,NULL,'24018',NULL,1228,37.229786,-80.02477,0,NULL,NULL,NULL),
+ (103,126,1,1,0,'778P Jackson Ln W',778,'P',NULL,'Jackson','Ln','W',NULL,NULL,NULL,NULL,'Paoli',1,1037,NULL,'19301',NULL,1228,40.042252,-75.48357,0,NULL,NULL,41),
+ (104,127,1,1,0,'778P Jackson Ln W',778,'P',NULL,'Jackson','Ln','W',NULL,NULL,NULL,NULL,'Paoli',1,1037,NULL,'19301',NULL,1228,40.042252,-75.48357,0,NULL,NULL,41),
+ (105,65,1,1,0,'778P Jackson Ln W',778,'P',NULL,'Jackson','Ln','W',NULL,NULL,NULL,NULL,'Paoli',1,1037,NULL,'19301',NULL,1228,40.042252,-75.48357,0,NULL,NULL,41),
+ (106,76,1,1,0,'267O Beech Rd NE',267,'O',NULL,'Beech','Rd','NE',NULL,NULL,NULL,NULL,'Austin',1,1042,NULL,'78765',NULL,1228,30.326374,-97.771258,0,NULL,NULL,NULL),
+ (107,115,1,1,0,'311G Lincoln Ave E',311,'G',NULL,'Lincoln','Ave','E',NULL,NULL,NULL,NULL,'El Paso',1,1042,NULL,'79920',NULL,1228,31.821439,-106.461405,0,NULL,NULL,42),
+ (108,110,1,0,0,'311G Lincoln Ave E',311,'G',NULL,'Lincoln','Ave','E',NULL,NULL,NULL,NULL,'El Paso',1,1042,NULL,'79920',NULL,1228,31.821439,-106.461405,0,NULL,NULL,42),
+ (109,74,1,1,0,'311G Lincoln Ave E',311,'G',NULL,'Lincoln','Ave','E',NULL,NULL,NULL,NULL,'El Paso',1,1042,NULL,'79920',NULL,1228,31.821439,-106.461405,0,NULL,NULL,42),
+ (110,51,1,1,0,'539X Caulder Way N',539,'X',NULL,'Caulder','Way','N',NULL,NULL,NULL,NULL,'Billings',1,1035,NULL,'74630',NULL,1228,36.52791,-97.43304,0,NULL,NULL,NULL),
+ (111,143,1,1,0,'76H Caulder Dr E',76,'H',NULL,'Caulder','Dr','E',NULL,NULL,NULL,NULL,'Summerfield',1,1034,NULL,'43788',NULL,1228,39.799978,-81.33548,0,NULL,NULL,43),
+ (112,170,1,1,0,'76H Caulder Dr E',76,'H',NULL,'Caulder','Dr','E',NULL,NULL,NULL,NULL,'Summerfield',1,1034,NULL,'43788',NULL,1228,39.799978,-81.33548,0,NULL,NULL,43),
+ (113,50,1,0,0,'76H Caulder Dr E',76,'H',NULL,'Caulder','Dr','E',NULL,NULL,NULL,NULL,'Summerfield',1,1034,NULL,'43788',NULL,1228,39.799978,-81.33548,0,NULL,NULL,43),
+ (114,71,1,1,0,'76H Caulder Dr E',76,'H',NULL,'Caulder','Dr','E',NULL,NULL,NULL,NULL,'Summerfield',1,1034,NULL,'43788',NULL,1228,39.799978,-81.33548,0,NULL,NULL,43),
+ (115,60,1,1,0,'805K Dowlen Path N',805,'K',NULL,'Dowlen','Path','N',NULL,NULL,NULL,NULL,'Oil City',1,1037,NULL,'16301',NULL,1228,41.439658,-79.69044,0,NULL,NULL,44),
+ (116,64,1,1,0,'805K Dowlen Path N',805,'K',NULL,'Dowlen','Path','N',NULL,NULL,NULL,NULL,'Oil City',1,1037,NULL,'16301',NULL,1228,41.439658,-79.69044,0,NULL,NULL,44),
+ (117,186,1,1,0,'805K Dowlen Path N',805,'K',NULL,'Dowlen','Path','N',NULL,NULL,NULL,NULL,'Oil City',1,1037,NULL,'16301',NULL,1228,41.439658,-79.69044,0,NULL,NULL,44),
+ (118,97,1,1,0,'805K Dowlen Path N',805,'K',NULL,'Dowlen','Path','N',NULL,NULL,NULL,NULL,'Oil City',1,1037,NULL,'16301',NULL,1228,41.439658,-79.69044,0,NULL,NULL,44),
+ (119,185,1,1,0,'830D Beech Ave W',830,'D',NULL,'Beech','Ave','W',NULL,NULL,NULL,NULL,'Buckeye Lake',1,1034,NULL,'43008',NULL,1228,39.93398,-82.47932,0,NULL,NULL,45),
+ (120,5,1,1,0,'830D Beech Ave W',830,'D',NULL,'Beech','Ave','W',NULL,NULL,NULL,NULL,'Buckeye Lake',1,1034,NULL,'43008',NULL,1228,39.93398,-82.47932,0,NULL,NULL,45),
+ (121,180,1,1,0,'830D Beech Ave W',830,'D',NULL,'Beech','Ave','W',NULL,NULL,NULL,NULL,'Buckeye Lake',1,1034,NULL,'43008',NULL,1228,39.93398,-82.47932,0,NULL,NULL,45),
+ (122,150,1,1,0,'830D Beech Ave W',830,'D',NULL,'Beech','Ave','W',NULL,NULL,NULL,NULL,'Buckeye Lake',1,1034,NULL,'43008',NULL,1228,39.93398,-82.47932,0,NULL,NULL,45),
+ (123,113,1,0,0,'724E College Dr SE',724,'E',NULL,'College','Dr','SE',NULL,NULL,NULL,NULL,'Plano',1,1042,NULL,'75025',NULL,1228,33.086868,-96.74504,0,NULL,NULL,46),
+ (124,147,1,1,0,'724E College Dr SE',724,'E',NULL,'College','Dr','SE',NULL,NULL,NULL,NULL,'Plano',1,1042,NULL,'75025',NULL,1228,33.086868,-96.74504,0,NULL,NULL,46),
+ (125,17,1,0,0,'724E College Dr SE',724,'E',NULL,'College','Dr','SE',NULL,NULL,NULL,NULL,'Plano',1,1042,NULL,'75025',NULL,1228,33.086868,-96.74504,0,NULL,NULL,46),
+ (126,201,1,1,0,'724E College Dr SE',724,'E',NULL,'College','Dr','SE',NULL,NULL,NULL,NULL,'Plano',1,1042,NULL,'75025',NULL,1228,33.086868,-96.74504,0,NULL,NULL,46),
+ (127,119,1,1,0,'30D Green Ave NE',30,'D',NULL,'Green','Ave','NE',NULL,NULL,NULL,NULL,'Winston Salem',1,1032,NULL,'27150',NULL,1228,36.027482,-80.20728,0,NULL,NULL,47),
+ (128,56,1,0,0,'30D Green Ave NE',30,'D',NULL,'Green','Ave','NE',NULL,NULL,NULL,NULL,'Winston Salem',1,1032,NULL,'27150',NULL,1228,36.027482,-80.20728,0,NULL,NULL,47),
+ (129,19,1,1,0,'30D Green Ave NE',30,'D',NULL,'Green','Ave','NE',NULL,NULL,NULL,NULL,'Winston Salem',1,1032,NULL,'27150',NULL,1228,36.027482,-80.20728,0,NULL,NULL,47),
+ (130,9,1,1,0,'30D Green Ave NE',30,'D',NULL,'Green','Ave','NE',NULL,NULL,NULL,NULL,'Winston Salem',1,1032,NULL,'27150',NULL,1228,36.027482,-80.20728,0,NULL,NULL,47),
+ (131,52,1,1,0,'897E Dowlen Blvd E',897,'E',NULL,'Dowlen','Blvd','E',NULL,NULL,NULL,NULL,'Oxbow',1,1018,NULL,'04764',NULL,1228,46.416656,-68.47646,0,NULL,NULL,48),
+ (132,40,1,1,0,'897E Dowlen Blvd E',897,'E',NULL,'Dowlen','Blvd','E',NULL,NULL,NULL,NULL,'Oxbow',1,1018,NULL,'04764',NULL,1228,46.416656,-68.47646,0,NULL,NULL,48),
+ (133,84,1,1,0,'897E Dowlen Blvd E',897,'E',NULL,'Dowlen','Blvd','E',NULL,NULL,NULL,NULL,'Oxbow',1,1018,NULL,'04764',NULL,1228,46.416656,-68.47646,0,NULL,NULL,48),
+ (134,178,1,1,0,'897E Dowlen Blvd E',897,'E',NULL,'Dowlen','Blvd','E',NULL,NULL,NULL,NULL,'Oxbow',1,1018,NULL,'04764',NULL,1228,46.416656,-68.47646,0,NULL,NULL,48),
+ (135,140,1,1,0,'317V States Pl SE',317,'V',NULL,'States','Pl','SE',NULL,NULL,NULL,NULL,'Galt',1,1024,NULL,'64641',NULL,1228,40.165088,-93.39425,0,NULL,NULL,49),
+ (136,82,1,1,0,'317V States Pl SE',317,'V',NULL,'States','Pl','SE',NULL,NULL,NULL,NULL,'Galt',1,1024,NULL,'64641',NULL,1228,40.165088,-93.39425,0,NULL,NULL,49),
+ (137,131,1,1,0,'317V States Pl SE',317,'V',NULL,'States','Pl','SE',NULL,NULL,NULL,NULL,'Galt',1,1024,NULL,'64641',NULL,1228,40.165088,-93.39425,0,NULL,NULL,49),
+ (138,117,1,1,0,'317V States Pl SE',317,'V',NULL,'States','Pl','SE',NULL,NULL,NULL,NULL,'Galt',1,1024,NULL,'64641',NULL,1228,40.165088,-93.39425,0,NULL,NULL,49),
+ (139,181,1,1,0,'973N Caulder Pl SE',973,'N',NULL,'Caulder','Pl','SE',NULL,NULL,NULL,NULL,'Rush Hill',1,1024,NULL,'65280',NULL,1228,39.213975,-91.73545,0,NULL,NULL,50),
+ (140,21,1,1,0,'973N Caulder Pl SE',973,'N',NULL,'Caulder','Pl','SE',NULL,NULL,NULL,NULL,'Rush Hill',1,1024,NULL,'65280',NULL,1228,39.213975,-91.73545,0,NULL,NULL,50),
+ (141,155,1,1,0,'973N Caulder Pl SE',973,'N',NULL,'Caulder','Pl','SE',NULL,NULL,NULL,NULL,'Rush Hill',1,1024,NULL,'65280',NULL,1228,39.213975,-91.73545,0,NULL,NULL,50),
+ (142,89,1,1,0,'973N Caulder Pl SE',973,'N',NULL,'Caulder','Pl','SE',NULL,NULL,NULL,NULL,'Rush Hill',1,1024,NULL,'65280',NULL,1228,39.213975,-91.73545,0,NULL,NULL,50),
+ (143,11,1,1,0,'805Z Pine Dr W',805,'Z',NULL,'Pine','Dr','W',NULL,NULL,NULL,NULL,'Hillsboro',1,1009,NULL,'31038',NULL,1228,33.172786,-83.63554,0,NULL,NULL,51),
+ (144,29,1,1,0,'805Z Pine Dr W',805,'Z',NULL,'Pine','Dr','W',NULL,NULL,NULL,NULL,'Hillsboro',1,1009,NULL,'31038',NULL,1228,33.172786,-83.63554,0,NULL,NULL,51),
+ (145,187,1,1,0,'805Z Pine Dr W',805,'Z',NULL,'Pine','Dr','W',NULL,NULL,NULL,NULL,'Hillsboro',1,1009,NULL,'31038',NULL,1228,33.172786,-83.63554,0,NULL,NULL,51),
+ (146,164,1,1,0,'805Z Pine Dr W',805,'Z',NULL,'Pine','Dr','W',NULL,NULL,NULL,NULL,'Hillsboro',1,1009,NULL,'31038',NULL,1228,33.172786,-83.63554,0,NULL,NULL,51),
+ (147,112,1,1,0,'265U Pine Path S',265,'U',NULL,'Pine','Path','S',NULL,NULL,NULL,NULL,'Chuckey',1,1041,NULL,'37641',NULL,1228,36.21503,-82.6744,0,NULL,NULL,52),
+ (148,198,1,1,0,'265U Pine Path S',265,'U',NULL,'Pine','Path','S',NULL,NULL,NULL,NULL,'Chuckey',1,1041,NULL,'37641',NULL,1228,36.21503,-82.6744,0,NULL,NULL,52),
+ (149,16,1,1,0,'265U Pine Path S',265,'U',NULL,'Pine','Path','S',NULL,NULL,NULL,NULL,'Chuckey',1,1041,NULL,'37641',NULL,1228,36.21503,-82.6744,0,NULL,NULL,52),
+ (150,176,1,1,0,'265U Pine Path S',265,'U',NULL,'Pine','Path','S',NULL,NULL,NULL,NULL,'Chuckey',1,1041,NULL,'37641',NULL,1228,36.21503,-82.6744,0,NULL,NULL,52),
+ (151,153,1,1,0,'743U Van Ness Ln SE',743,'U',NULL,'Van Ness','Ln','SE',NULL,NULL,NULL,NULL,'Castaic',1,1004,NULL,'91310',NULL,1228,33.786594,-118.298662,0,NULL,NULL,53),
+ (152,151,1,0,0,'743U Van Ness Ln SE',743,'U',NULL,'Van Ness','Ln','SE',NULL,NULL,NULL,NULL,'Castaic',1,1004,NULL,'91310',NULL,1228,33.786594,-118.298662,0,NULL,NULL,53),
+ (153,106,1,1,0,'743U Van Ness Ln SE',743,'U',NULL,'Van Ness','Ln','SE',NULL,NULL,NULL,NULL,'Castaic',1,1004,NULL,'91310',NULL,1228,33.786594,-118.298662,0,NULL,NULL,53),
+ (154,196,1,1,0,'743U Van Ness Ln SE',743,'U',NULL,'Van Ness','Ln','SE',NULL,NULL,NULL,NULL,'Castaic',1,1004,NULL,'91310',NULL,1228,33.786594,-118.298662,0,NULL,NULL,53),
+ (155,137,1,1,0,'964E Cadell Ln S',964,'E',NULL,'Cadell','Ln','S',NULL,NULL,NULL,NULL,'Pleasant Ridge',1,1021,NULL,'48069',NULL,1228,42.472235,-83.14051,0,NULL,NULL,54),
+ (156,145,1,1,0,'964E Cadell Ln S',964,'E',NULL,'Cadell','Ln','S',NULL,NULL,NULL,NULL,'Pleasant Ridge',1,1021,NULL,'48069',NULL,1228,42.472235,-83.14051,0,NULL,NULL,54),
+ (157,59,1,1,0,'964E Cadell Ln S',964,'E',NULL,'Cadell','Ln','S',NULL,NULL,NULL,NULL,'Pleasant Ridge',1,1021,NULL,'48069',NULL,1228,42.472235,-83.14051,0,NULL,NULL,54),
+ (158,45,1,1,0,'959L Main Dr SE',959,'L',NULL,'Main','Dr','SE',NULL,NULL,NULL,NULL,'San Antonio',1,1042,NULL,'78278',NULL,1228,29.437532,-98.461582,0,NULL,NULL,NULL),
+ (159,35,1,0,0,'705O Main Rd E',705,'O',NULL,'Main','Rd','E',NULL,NULL,NULL,NULL,'Yorkville',1,1041,NULL,'38389',NULL,1228,36.135364,-89.111653,0,NULL,NULL,55),
+ (160,92,1,1,0,'705O Main Rd E',705,'O',NULL,'Main','Rd','E',NULL,NULL,NULL,NULL,'Yorkville',1,1041,NULL,'38389',NULL,1228,36.135364,-89.111653,0,NULL,NULL,55),
+ (161,161,1,1,0,'705O Main Rd E',705,'O',NULL,'Main','Rd','E',NULL,NULL,NULL,NULL,'Yorkville',1,1041,NULL,'38389',NULL,1228,36.135364,-89.111653,0,NULL,NULL,55),
+ (162,183,1,1,0,'705O Main Rd E',705,'O',NULL,'Main','Rd','E',NULL,NULL,NULL,NULL,'Yorkville',1,1041,NULL,'38389',NULL,1228,36.135364,-89.111653,0,NULL,NULL,55),
+ (163,168,1,1,0,'508U Cadell Way NE',508,'U',NULL,'Cadell','Way','NE',NULL,NULL,NULL,NULL,'Piney Point',1,1019,NULL,'20674',NULL,1228,38.127843,-76.49055,0,NULL,NULL,56),
+ (164,90,1,1,0,'508U Cadell Way NE',508,'U',NULL,'Cadell','Way','NE',NULL,NULL,NULL,NULL,'Piney Point',1,1019,NULL,'20674',NULL,1228,38.127843,-76.49055,0,NULL,NULL,56),
+ (165,101,1,1,0,'508U Cadell Way NE',508,'U',NULL,'Cadell','Way','NE',NULL,NULL,NULL,NULL,'Piney Point',1,1019,NULL,'20674',NULL,1228,38.127843,-76.49055,0,NULL,NULL,56),
+ (166,160,1,1,0,'962N Cadell Ave E',962,'N',NULL,'Cadell','Ave','E',NULL,NULL,NULL,NULL,'Gunter',1,1042,NULL,'75058',NULL,1228,33.453628,-96.73436,0,NULL,NULL,NULL),
+ (167,22,1,1,0,'839I Dowlen Ave N',839,'I',NULL,'Dowlen','Ave','N',NULL,NULL,NULL,NULL,'North Fort Myers',1,1008,NULL,'33918',NULL,1228,26.71613,-81.607007,0,NULL,NULL,57),
+ (168,177,1,1,0,'839I Dowlen Ave N',839,'I',NULL,'Dowlen','Ave','N',NULL,NULL,NULL,NULL,'North Fort Myers',1,1008,NULL,'33918',NULL,1228,26.71613,-81.607007,0,NULL,NULL,57),
+ (169,31,1,1,0,'839I Dowlen Ave N',839,'I',NULL,'Dowlen','Ave','N',NULL,NULL,NULL,NULL,'North Fort Myers',1,1008,NULL,'33918',NULL,1228,26.71613,-81.607007,0,NULL,NULL,57),
+ (170,46,1,1,0,'341W Dowlen Way SW',341,'W',NULL,'Dowlen','Way','SW',NULL,NULL,NULL,NULL,'Hanover',1,1045,NULL,'23069',NULL,1228,37.753904,-77.33963,0,NULL,NULL,NULL),
+ (171,197,1,1,0,'905C Bay Way SE',905,'C',NULL,'Bay','Way','SE',NULL,NULL,NULL,NULL,'Ashford',1,1046,NULL,'98304',NULL,1228,46.75523,-122.01544,0,NULL,NULL,58),
+ (172,144,1,1,0,'905C Bay Way SE',905,'C',NULL,'Bay','Way','SE',NULL,NULL,NULL,NULL,'Ashford',1,1046,NULL,'98304',NULL,1228,46.75523,-122.01544,0,NULL,NULL,58),
+ (173,159,1,1,0,'905C Bay Way SE',905,'C',NULL,'Bay','Way','SE',NULL,NULL,NULL,NULL,'Ashford',1,1046,NULL,'98304',NULL,1228,46.75523,-122.01544,0,NULL,NULL,58),
+ (174,93,1,1,0,'905C Bay Way SE',905,'C',NULL,'Bay','Way','SE',NULL,NULL,NULL,NULL,'Ashford',1,1046,NULL,'98304',NULL,1228,46.75523,-122.01544,0,NULL,NULL,58),
+ (175,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL),
+ (176,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL),
+ (177,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_address` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1893,207 +1896,207 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_contact` DISABLE KEYS */;
 INSERT INTO `civicrm_contact` (`id`, `contact_type`, `contact_sub_type`, `do_not_email`, `do_not_phone`, `do_not_mail`, `do_not_sms`, `do_not_trade`, `is_opt_out`, `legal_identifier`, `external_identifier`, `sort_name`, `display_name`, `nick_name`, `legal_name`, `image_URL`, `preferred_communication_method`, `preferred_language`, `preferred_mail_format`, `hash`, `api_key`, `source`, `first_name`, `middle_name`, `last_name`, `prefix_id`, `suffix_id`, `formal_title`, `communication_style_id`, `email_greeting_id`, `email_greeting_custom`, `email_greeting_display`, `postal_greeting_id`, `postal_greeting_custom`, `postal_greeting_display`, `addressee_id`, `addressee_custom`, `addressee_display`, `job_title`, `gender_id`, `birth_date`, `is_deceased`, `deceased_date`, `household_name`, `primary_contact_id`, `organization_name`, `sic_code`, `user_unique_id`, `employer_id`, `is_deleted`, `created_date`, `modified_date`) VALUES
- (1,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Default Organization','Default Organization',NULL,'Default Organization',NULL,NULL,NULL,'Both',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,'Default Organization',NULL,NULL,NULL,0,NULL,'2021-07-26 14:08:31'),
- (2,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Díaz, Santina','Santina Díaz',NULL,NULL,NULL,NULL,NULL,'Both','3076461979',NULL,'Sample Data','Santina','','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Díaz',NULL,1,'1971-02-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (3,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Rolando','Rolando Müller III',NULL,NULL,NULL,'2',NULL,'Both','2804310363',NULL,'Sample Data','Rolando','C','Müller',NULL,4,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Müller III',NULL,2,'1970-04-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (4,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Patel, Rebekah','Rebekah Patel',NULL,NULL,NULL,NULL,NULL,'Both','218502217',NULL,'Sample Data','Rebekah','','Patel',NULL,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Rebekah Patel',NULL,1,'1974-04-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (5,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner-Olsen, Brent','Brent Wagner-Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3671570293',NULL,'Sample Data','Brent','G','Wagner-Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Wagner-Olsen',NULL,2,'2002-10-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (6,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Brittney','Brittney Cruz',NULL,NULL,NULL,NULL,NULL,'Both','3852362968',NULL,'Sample Data','Brittney','N','Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Brittney Cruz',NULL,1,'1943-06-16',1,NULL,NULL,NULL,'Urban Legal Center',NULL,NULL,167,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (7,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Müller family','Müller family',NULL,NULL,NULL,NULL,NULL,'Both','1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (8,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Lee family','Lee family',NULL,NULL,NULL,NULL,NULL,'Both','845831176',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Lee family',5,NULL,'Dear Lee family',2,NULL,'Lee family',NULL,NULL,NULL,0,NULL,'Lee family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (9,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Parker family','Parker family',NULL,NULL,NULL,'3',NULL,'Both','425242179',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Parker family',5,NULL,'Dear Parker family',2,NULL,'Parker family',NULL,NULL,NULL,0,NULL,'Parker family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (10,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Megan','Megan Jensen',NULL,NULL,NULL,NULL,NULL,'Both','3426769371',NULL,'Sample Data','Megan','J','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Jensen',NULL,1,'1951-02-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (11,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Sherman','Sherman Roberts',NULL,NULL,NULL,NULL,NULL,'Both','1027715448',NULL,'Sample Data','Sherman','N','Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Roberts',NULL,NULL,'1947-12-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (12,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Müller, Angelika','Dr. Angelika Müller',NULL,NULL,NULL,NULL,NULL,'Both','420537853',NULL,'Sample Data','Angelika','T','Müller',4,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Dr. Angelika Müller',NULL,1,'1966-07-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (13,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Roberts, Iris','Iris Roberts',NULL,NULL,NULL,'1',NULL,'Both','1428740139',NULL,'Sample Data','Iris','','Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Iris',1,NULL,'Dear Iris',1,NULL,'Iris Roberts',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (14,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Jacob','Jacob Müller',NULL,NULL,NULL,'3',NULL,'Both','176489544',NULL,'Sample Data','Jacob','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Müller',NULL,2,'2001-07-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (15,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner family','Wagner family',NULL,NULL,NULL,NULL,NULL,'Both','1570966486',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wagner family',5,NULL,'Dear Wagner family',2,NULL,'Wagner family',NULL,NULL,NULL,0,NULL,'Wagner family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (16,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Müller, Allan','Allan Müller',NULL,NULL,NULL,'5',NULL,'Both','324455196',NULL,'Sample Data','Allan','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Müller',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (17,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'ct.wilson@fakemail.biz','ct.wilson@fakemail.biz',NULL,NULL,NULL,'2',NULL,'Both','1210566056',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear ct.wilson@fakemail.biz',1,NULL,'Dear ct.wilson@fakemail.biz',1,NULL,'ct.wilson@fakemail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (18,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jensen, Betty','Dr. Betty Jensen',NULL,NULL,NULL,NULL,NULL,'Both','3826692336',NULL,'Sample Data','Betty','','Jensen',4,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Dr. Betty Jensen',NULL,NULL,'2000-02-02',0,NULL,NULL,NULL,'El Camino Family Alliance',NULL,NULL,110,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (19,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wagner, Landon','Landon Wagner',NULL,NULL,NULL,NULL,NULL,'Both','2517566731',NULL,'Sample Data','Landon','R','Wagner',NULL,NULL,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Landon Wagner',NULL,NULL,'1937-09-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (20,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Princess','Ms. Princess Deforest',NULL,NULL,NULL,NULL,NULL,'Both','1925726838',NULL,'Sample Data','Princess','','Deforest',2,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Ms. Princess Deforest',NULL,1,'1981-02-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (21,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jensen, Beula','Ms. Beula Jensen',NULL,NULL,NULL,'2',NULL,'Both','1956895432',NULL,'Sample Data','Beula','I','Jensen',2,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Ms. Beula Jensen',NULL,1,'1976-12-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (22,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Adams, Kandace','Kandace Adams',NULL,NULL,NULL,NULL,NULL,'Both','1187139850',NULL,'Sample Data','Kandace','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Adams',NULL,1,'2009-06-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (23,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Scott','Mr. Scott Reynolds Sr.',NULL,NULL,NULL,NULL,NULL,'Both','674660419',NULL,'Sample Data','Scott','','Reynolds',3,2,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Mr. Scott Reynolds Sr.',NULL,2,'1998-08-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (24,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Elbert','Elbert Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','3751423670',NULL,'Sample Data','Elbert','S','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert Nielsen',NULL,NULL,'1954-07-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (25,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Norris','Mr. Norris Terrell',NULL,NULL,NULL,NULL,NULL,'Both','1035663398',NULL,'Sample Data','Norris','','Terrell',3,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Mr. Norris Terrell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (26,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen family','Jensen family',NULL,NULL,NULL,NULL,NULL,'Both','797435572',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jensen family',5,NULL,'Dear Jensen family',2,NULL,'Jensen family',NULL,NULL,NULL,0,NULL,'Jensen family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (27,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav, Jackson','Mr. Jackson Yadav',NULL,NULL,NULL,NULL,NULL,'Both','1490538521',NULL,'Sample Data','Jackson','','Yadav',3,NULL,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Mr. Jackson Yadav',NULL,2,'1967-06-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (28,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski-Yadav family','Łąchowski-Yadav family',NULL,NULL,NULL,NULL,NULL,'Both','3479662396',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Łąchowski-Yadav family',5,NULL,'Dear Łąchowski-Yadav family',2,NULL,'Łąchowski-Yadav family',NULL,NULL,NULL,0,NULL,'Łąchowski-Yadav family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (29,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Adams family','Adams family',NULL,NULL,NULL,NULL,NULL,'Both','1515323104',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Adams family',5,NULL,'Dear Adams family',2,NULL,'Adams family',NULL,NULL,NULL,0,NULL,'Adams family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (30,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'jacobs.erik34@lol.info','jacobs.erik34@lol.info',NULL,NULL,NULL,'5',NULL,'Both','2122755995',NULL,'Sample Data',NULL,NULL,NULL,4,4,NULL,NULL,1,NULL,'Dear jacobs.erik34@lol.info',1,NULL,'Dear jacobs.erik34@lol.info',1,NULL,'jacobs.erik34@lol.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (31,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Idaho Wellness Collective','Idaho Wellness Collective',NULL,NULL,NULL,NULL,NULL,'Both','2125875626',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Idaho Wellness Collective',NULL,NULL,NULL,0,NULL,NULL,116,'Idaho Wellness Collective',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (32,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'bnielsen17@infomail.net','bnielsen17@infomail.net',NULL,NULL,NULL,NULL,NULL,'Both','1278613659',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear bnielsen17@infomail.net',1,NULL,'Dear bnielsen17@infomail.net',1,NULL,'bnielsen17@infomail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (33,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Smith, Sanford','Sanford Smith',NULL,NULL,NULL,NULL,NULL,'Both','2584375586',NULL,'Sample Data','Sanford','G','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Smith',NULL,2,'1936-05-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (34,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Rural Sustainability Collective','Rural Sustainability Collective',NULL,NULL,NULL,'5',NULL,'Both','2757306759',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Sustainability Collective',NULL,NULL,NULL,0,NULL,NULL,NULL,'Rural Sustainability Collective',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (35,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Jed','Jed Jensen Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3204161808',NULL,'Sample Data','Jed','T','Jensen',NULL,1,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Jed Jensen Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (36,'Household',NULL,1,1,0,0,0,0,NULL,NULL,'Nielsen family','Nielsen family',NULL,NULL,NULL,'1',NULL,'Both','766698874',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Nielsen family',5,NULL,'Dear Nielsen family',2,NULL,'Nielsen family',NULL,NULL,NULL,0,NULL,'Nielsen family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (37,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Nielsen, Sanford','Sanford Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','2540808507',NULL,'Sample Data','Sanford','','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Nielsen',NULL,2,'1961-12-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (38,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Clint','Dr. Clint Wagner III',NULL,NULL,NULL,'2',NULL,'Both','205032941',NULL,'Sample Data','Clint','Z','Wagner',4,4,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Dr. Clint Wagner III',NULL,NULL,'1974-11-04',0,NULL,NULL,NULL,'Sierra Sustainability Systems',NULL,NULL,97,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (39,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope, Sherman','Sherman Zope III',NULL,NULL,NULL,NULL,NULL,'Both','3265645175',NULL,'Sample Data','Sherman','N','Zope',NULL,4,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Zope III',NULL,2,'1957-06-23',0,NULL,NULL,NULL,'Jackson Education Association',NULL,NULL,188,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (40,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Samuels, Sharyn','Sharyn Samuels',NULL,NULL,NULL,'5',NULL,'Both','1300309067',NULL,'Sample Data','Sharyn','E','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Sharyn Samuels',NULL,NULL,'1983-08-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (41,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Margaret','Ms. Margaret Jensen',NULL,NULL,NULL,'1',NULL,'Both','198729910',NULL,'Sample Data','Margaret','A','Jensen',2,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Ms. Margaret Jensen',NULL,1,'1957-12-17',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (42,'Organization',NULL,1,0,0,0,1,0,NULL,NULL,'Oklahoma Legal Systems','Oklahoma Legal Systems',NULL,NULL,NULL,NULL,NULL,'Both','543319240',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Oklahoma Legal Systems',NULL,NULL,NULL,0,NULL,NULL,NULL,'Oklahoma Legal Systems',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (43,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'brigettesmith-grant-adams@testing.com','brigettesmith-grant-adams@testing.com',NULL,NULL,NULL,'5',NULL,'Both','846941203',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear brigettesmith-grant-adams@testing.com',1,NULL,'Dear brigettesmith-grant-adams@testing.com',1,NULL,'brigettesmith-grant-adams@testing.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (44,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Shauna','Shauna Adams',NULL,NULL,NULL,NULL,NULL,'Both','1778468249',NULL,'Sample Data','Shauna','Y','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Adams',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (45,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Laree','Laree Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','1293450074',NULL,'Sample Data','Laree','','Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Reynolds',NULL,1,'2006-07-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (46,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Reynolds, Miguel','Dr. Miguel Reynolds II',NULL,NULL,NULL,'4',NULL,'Both','2637758166',NULL,'Sample Data','Miguel','','Reynolds',4,3,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Dr. Miguel Reynolds II',NULL,NULL,'1981-03-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (47,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Rosario','Rosario Terry',NULL,NULL,NULL,NULL,NULL,'Both','1264009879',NULL,'Sample Data','Rosario','T','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Terry',NULL,NULL,'1973-02-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (48,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Robertson family','Robertson family',NULL,NULL,NULL,NULL,NULL,'Both','3444393980',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Robertson family',5,NULL,'Dear Robertson family',2,NULL,'Robertson family',NULL,NULL,NULL,0,NULL,'Robertson family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (49,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Kiara','Kiara Jameson',NULL,NULL,NULL,'2',NULL,'Both','1442754095',NULL,'Sample Data','Kiara','B','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Jameson',NULL,1,'1967-11-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (50,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones, Junko','Ms. Junko Jones',NULL,NULL,NULL,'3',NULL,'Both','3254186828',NULL,'Sample Data','Junko','','Jones',2,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Ms. Junko Jones',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (51,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'adams.rebekah@fishmail.net','adams.rebekah@fishmail.net',NULL,NULL,NULL,NULL,NULL,'Both','1105467188',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear adams.rebekah@fishmail.net',1,NULL,'Dear adams.rebekah@fishmail.net',1,NULL,'adams.rebekah@fishmail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (52,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Kathleen','Ms. Kathleen Lee',NULL,NULL,NULL,NULL,NULL,'Both','2198492721',NULL,'Sample Data','Kathleen','','Lee',2,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Ms. Kathleen Lee',NULL,1,'1991-01-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (53,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Zope, Magan','Magan Zope',NULL,NULL,NULL,'1',NULL,'Both','250517479',NULL,'Sample Data','Magan','','Zope',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Zope',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (54,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Díaz, Kenny','Kenny Díaz II',NULL,NULL,NULL,'4',NULL,'Both','3864119395',NULL,'Sample Data','Kenny','V','Díaz',NULL,3,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Kenny Díaz II',NULL,2,'1945-07-18',0,NULL,NULL,NULL,'Dowlen Technology Systems',NULL,NULL,70,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (55,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Smith, Barry','Barry Smith',NULL,NULL,NULL,'3',NULL,'Both','3850252418',NULL,'Sample Data','Barry','','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Barry Smith',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (56,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Barry','Mr. Barry Adams',NULL,NULL,NULL,'5',NULL,'Both','1282794695',NULL,'Sample Data','Barry','','Adams',3,NULL,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Mr. Barry Adams',NULL,2,'1945-06-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (57,'Organization',NULL,1,1,0,0,0,0,NULL,NULL,'Cornettsville Literacy Initiative','Cornettsville Literacy Initiative',NULL,NULL,NULL,'3',NULL,'Both','3359459322',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Cornettsville Literacy Initiative',NULL,NULL,NULL,0,NULL,NULL,200,'Cornettsville Literacy Initiative',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (58,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Ivanov, Shad','Shad Ivanov',NULL,NULL,NULL,NULL,NULL,'Both','4103446266',NULL,'Sample Data','Shad','S','Ivanov',NULL,NULL,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Ivanov',NULL,NULL,'1997-03-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (59,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Parker, Junko','Mrs. Junko Parker',NULL,NULL,NULL,NULL,NULL,'Both','2594142512',NULL,'Sample Data','Junko','E','Parker',1,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Mrs. Junko Parker',NULL,NULL,'1982-05-15',0,NULL,NULL,NULL,'Global Environmental Systems',NULL,NULL,88,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (60,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker, Russell','Dr. Russell Parker',NULL,NULL,NULL,'3',NULL,'Both','1852900847',NULL,'Sample Data','Russell','','Parker',4,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Dr. Russell Parker',NULL,2,NULL,1,'2020-12-05',NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (61,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Scott','Dr. Scott Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','674660419',NULL,'Sample Data','Scott','','Reynolds',4,NULL,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Dr. Scott Reynolds',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (62,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'chowski-yadav.maxwell75@sample.org','chowski-yadav.maxwell75@sample.org',NULL,NULL,NULL,'5',NULL,'Both','3705846184',NULL,'Sample Data',NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,'Dear chowski-yadav.maxwell75@sample.org',1,NULL,'Dear chowski-yadav.maxwell75@sample.org',1,NULL,'chowski-yadav.maxwell75@sample.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (63,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Grant family','Grant family',NULL,NULL,NULL,NULL,NULL,'Both','3228000340',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Grant family',5,NULL,'Dear Grant family',2,NULL,'Grant family',NULL,NULL,NULL,0,NULL,'Grant family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (64,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker, Eleonor','Mrs. Eleonor Parker',NULL,NULL,NULL,'2',NULL,'Both','3234463672',NULL,'Sample Data','Eleonor','D','Parker',1,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Mrs. Eleonor Parker',NULL,1,'1985-10-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (65,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'González, Norris','Norris González Sr.',NULL,NULL,NULL,'1',NULL,'Both','2069001526',NULL,'Sample Data','Norris','K','González',NULL,2,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris González Sr.',NULL,2,'1971-11-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (66,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts-Samson family','Roberts-Samson family',NULL,NULL,NULL,'5',NULL,'Both','2677861429',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Roberts-Samson family',5,NULL,'Dear Roberts-Samson family',2,NULL,'Roberts-Samson family',NULL,NULL,NULL,0,NULL,'Roberts-Samson family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (67,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'princessp46@infomail.info','princessp46@infomail.info',NULL,NULL,NULL,'4',NULL,'Both','1332791446',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear princessp46@infomail.info',1,NULL,'Dear princessp46@infomail.info',1,NULL,'princessp46@infomail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (68,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Samuels, Kandace','Kandace Samuels',NULL,NULL,NULL,'5',NULL,'Both','757003024',NULL,'Sample Data','Kandace','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Samuels',NULL,1,'2010-11-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (69,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Bob','Dr. Bob Blackwell III',NULL,NULL,NULL,NULL,NULL,'Both','533638173',NULL,'Sample Data','Bob','X','Blackwell',4,4,NULL,NULL,1,NULL,'Dear Bob',1,NULL,'Dear Bob',1,NULL,'Dr. Bob Blackwell III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (70,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Dowlen Technology Systems','Dowlen Technology Systems',NULL,NULL,NULL,'3',NULL,'Both','462859646',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Dowlen Technology Systems',NULL,NULL,NULL,0,NULL,NULL,54,'Dowlen Technology Systems',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (71,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Deforest, Laree','Ms. Laree Deforest',NULL,NULL,NULL,'3',NULL,'Both','2017561536',NULL,'Sample Data','Laree','R','Deforest',2,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Ms. Laree Deforest',NULL,1,'1997-05-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (72,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jensen, Norris','Norris Jensen',NULL,NULL,NULL,'5',NULL,'Both','4026647106',NULL,'Sample Data','Norris','M','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Jensen',NULL,2,NULL,0,NULL,NULL,NULL,'Dowlen Culture Trust',NULL,NULL,73,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (73,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Dowlen Culture Trust','Dowlen Culture Trust',NULL,NULL,NULL,'2',NULL,'Both','756900020',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Dowlen Culture Trust',NULL,NULL,NULL,0,NULL,NULL,72,'Dowlen Culture Trust',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (74,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Smith-Grant-Adams family','Smith-Grant-Adams family',NULL,NULL,NULL,'4',NULL,'Both','3195403293',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Smith-Grant-Adams family',5,NULL,'Dear Smith-Grant-Adams family',2,NULL,'Smith-Grant-Adams family',NULL,NULL,NULL,0,NULL,'Smith-Grant-Adams family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (75,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Grant, Maxwell','Mr. Maxwell Grant III',NULL,NULL,NULL,NULL,NULL,'Both','3863854365',NULL,'Sample Data','Maxwell','','Grant',3,4,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Mr. Maxwell Grant III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (76,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Second Sports Partners','Second Sports Partners',NULL,NULL,NULL,'3',NULL,'Both','1809491574',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Second Sports Partners',NULL,NULL,NULL,0,NULL,NULL,190,'Second Sports Partners',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (77,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts-Samson, Arlyne','Ms. Arlyne Roberts-Samson',NULL,NULL,NULL,'3',NULL,'Both','70150083',NULL,'Sample Data','Arlyne','I','Roberts-Samson',2,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Ms. Arlyne Roberts-Samson',NULL,NULL,'1980-05-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (78,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Adams, Rebekah','Rebekah Adams',NULL,NULL,NULL,NULL,NULL,'Both','323607436',NULL,'Sample Data','Rebekah','I','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Rebekah Adams',NULL,1,'1940-05-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (79,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'lyadav@fishmail.info','lyadav@fishmail.info',NULL,NULL,NULL,NULL,NULL,'Both','1434246618',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear lyadav@fishmail.info',1,NULL,'Dear lyadav@fishmail.info',1,NULL,'lyadav@fishmail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (80,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Laree','Laree Samuels',NULL,NULL,NULL,NULL,NULL,'Both','2893408513',NULL,'Sample Data','Laree','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Samuels',NULL,1,'1936-03-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (81,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'González, Megan','Mrs. Megan González',NULL,NULL,NULL,NULL,NULL,'Both','558876545',NULL,'Sample Data','Megan','K','González',1,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Mrs. Megan González',NULL,1,'1964-12-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (82,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Felisha','Felisha Olsen',NULL,NULL,NULL,'5',NULL,'Both','3594358078',NULL,'Sample Data','Felisha','','Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Felisha Olsen',NULL,1,'1972-08-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (83,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Roberts, Toby','Toby Roberts II',NULL,NULL,NULL,NULL,NULL,'Both','3766769567',NULL,'Sample Data','Toby','','Roberts',NULL,3,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Toby Roberts II',NULL,2,'1964-07-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (84,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Sanford','Mr. Sanford Grant',NULL,NULL,NULL,'2',NULL,'Both','27540077',NULL,'Sample Data','Sanford','B','Grant',3,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Mr. Sanford Grant',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (85,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Smith-Grant-Adams, Damaris','Dr. Damaris Smith-Grant-Adams',NULL,NULL,NULL,NULL,NULL,'Both','2679369995',NULL,'Sample Data','Damaris','','Smith-Grant-Adams',4,NULL,NULL,NULL,1,NULL,'Dear Damaris',1,NULL,'Dear Damaris',1,NULL,'Dr. Damaris Smith-Grant-Adams',NULL,1,'1989-12-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (86,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Ashlie','Ashlie Lee',NULL,NULL,NULL,NULL,NULL,'Both','3141899481',NULL,'Sample Data','Ashlie','P','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie Lee',NULL,1,NULL,0,NULL,NULL,NULL,'Kaneohe Poetry Trust',NULL,NULL,179,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (87,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Olsen, Roland','Mr. Roland Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3464138564',NULL,'Sample Data','Roland','C','Olsen',3,NULL,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Mr. Roland Olsen',NULL,NULL,'1996-04-11',0,NULL,NULL,NULL,'Rural Music Network',NULL,NULL,191,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (88,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Global Environmental Systems','Global Environmental Systems',NULL,NULL,NULL,'1',NULL,'Both','736386757',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Global Environmental Systems',NULL,NULL,NULL,0,NULL,NULL,59,'Global Environmental Systems',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (89,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Rebekah','Dr. Rebekah Samson',NULL,NULL,NULL,NULL,NULL,'Both','2854985005',NULL,'Sample Data','Rebekah','','Samson',4,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Dr. Rebekah Samson',NULL,NULL,'1954-08-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (90,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'wilson.sanford27@fakemail.co.uk','wilson.sanford27@fakemail.co.uk',NULL,NULL,NULL,'3',NULL,'Both','2011204283',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear wilson.sanford27@fakemail.co.uk',1,NULL,'Dear wilson.sanford27@fakemail.co.uk',1,NULL,'wilson.sanford27@fakemail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (91,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Betty','Mrs. Betty Blackwell',NULL,NULL,NULL,'4',NULL,'Both','1950991394',NULL,'Sample Data','Betty','N','Blackwell',1,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Mrs. Betty Blackwell',NULL,NULL,'1937-12-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (92,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wagner, Errol','Mr. Errol Wagner Jr.',NULL,NULL,NULL,NULL,NULL,'Both','700104039',NULL,'Sample Data','Errol','','Wagner',3,1,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Mr. Errol Wagner Jr.',NULL,2,'1985-11-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (93,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov-Wagner, Delana','Dr. Delana Ivanov-Wagner',NULL,NULL,NULL,NULL,NULL,'Both','821987495',NULL,'Sample Data','Delana','','Ivanov-Wagner',4,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Dr. Delana Ivanov-Wagner',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (94,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'McReynolds, Kenny','Dr. Kenny McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','3554599492',NULL,'Sample Data','Kenny','Y','McReynolds',4,NULL,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Dr. Kenny McReynolds',NULL,2,'1953-07-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (95,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'terrelli51@airmail.info','terrelli51@airmail.info',NULL,NULL,NULL,'3',NULL,'Both','1122014594',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear terrelli51@airmail.info',1,NULL,'Dear terrelli51@airmail.info',1,NULL,'terrelli51@airmail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (96,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'lawerencechowski92@example.biz','lawerencechowski92@example.biz',NULL,NULL,NULL,'1',NULL,'Both','1418757669',NULL,'Sample Data',NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,'Dear lawerencechowski92@example.biz',1,NULL,'Dear lawerencechowski92@example.biz',1,NULL,'lawerencechowski92@example.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (97,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Sierra Sustainability Systems','Sierra Sustainability Systems',NULL,NULL,NULL,'2',NULL,'Both','155568892',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Sierra Sustainability Systems',NULL,NULL,NULL,0,NULL,NULL,38,'Sierra Sustainability Systems',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (98,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Olsen, Kathleen','Kathleen Olsen',NULL,NULL,NULL,'2',NULL,'Both','1625164526',NULL,'Sample Data','Kathleen','','Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Olsen',NULL,1,'1965-03-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (99,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Betty','Ms. Betty Jameson',NULL,NULL,NULL,NULL,NULL,'Both','1306733997',NULL,'Sample Data','Betty','O','Jameson',2,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Ms. Betty Jameson',NULL,1,'1946-10-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (100,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'nielsen.jackson90@testing.co.pl','nielsen.jackson90@testing.co.pl',NULL,NULL,NULL,NULL,NULL,'Both','3216767670',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear nielsen.jackson90@testing.co.pl',1,NULL,'Dear nielsen.jackson90@testing.co.pl',1,NULL,'nielsen.jackson90@testing.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (101,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Brzęczysław','Brzęczysław Terrell',NULL,NULL,NULL,NULL,NULL,'Both','2155865046',NULL,'Sample Data','Brzęczysław','','Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Brzęczysław Terrell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (102,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Müller family','Müller family',NULL,NULL,NULL,NULL,NULL,'Both','1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (103,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Díaz, Rodrigo','Dr. Rodrigo Díaz',NULL,NULL,NULL,'5',NULL,'Both','1921232492',NULL,'Sample Data','Rodrigo','','Díaz',4,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Dr. Rodrigo Díaz',NULL,2,'1982-03-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (104,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Jackson','Jackson Olsen Jr.',NULL,NULL,NULL,'4',NULL,'Both','2108387664',NULL,'Sample Data','Jackson','','Olsen',NULL,1,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Jackson Olsen Jr.',NULL,2,'2013-03-03',0,NULL,NULL,NULL,'Parrish Advocacy Initiative',NULL,NULL,120,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (105,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Terry, Heidi','Heidi Terry',NULL,NULL,NULL,'2',NULL,'Both','3824053436',NULL,'Sample Data','Heidi','Q','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Heidi',1,NULL,'Dear Heidi',1,NULL,'Heidi Terry',NULL,1,'1991-05-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (106,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker, Justina','Justina Parker',NULL,NULL,NULL,NULL,NULL,'Both','3792308388',NULL,'Sample Data','Justina','X','Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Justina Parker',NULL,NULL,'1962-11-04',0,NULL,NULL,NULL,'Pine Health Partnership',NULL,NULL,107,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (107,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Pine Health Partnership','Pine Health Partnership',NULL,NULL,NULL,NULL,NULL,'Both','1715202444',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Pine Health Partnership',NULL,NULL,NULL,0,NULL,NULL,106,'Pine Health Partnership',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (108,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Rosario','Rosario Robertson',NULL,NULL,NULL,'5',NULL,'Both','1907398578',NULL,'Sample Data','Rosario','J','Robertson',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Robertson',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (109,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Rural Environmental Alliance','Rural Environmental Alliance',NULL,NULL,NULL,NULL,NULL,'Both','1663956080',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Environmental Alliance',NULL,NULL,NULL,0,NULL,NULL,187,'Rural Environmental Alliance',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (110,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'El Camino Family Alliance','El Camino Family Alliance',NULL,NULL,NULL,'2',NULL,'Both','900420684',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'El Camino Family Alliance',NULL,NULL,NULL,0,NULL,NULL,18,'El Camino Family Alliance',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (111,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Arlyne','Mrs. Arlyne Bachman',NULL,NULL,NULL,NULL,NULL,'Both','3269134604',NULL,'Sample Data','Arlyne','','Bachman',1,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Mrs. Arlyne Bachman',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (112,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jensen, Mei','Mei Jensen',NULL,NULL,NULL,NULL,NULL,'Both','3305491240',NULL,'Sample Data','Mei','','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mei Jensen',NULL,1,'1935-01-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (113,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Rosario','Rosario Adams',NULL,NULL,NULL,'1',NULL,'Both','628774619',NULL,'Sample Data','Rosario','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Adams',NULL,2,'1965-03-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (114,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'jameson.sharyn@lol.org','jameson.sharyn@lol.org',NULL,NULL,NULL,'4',NULL,'Both','3814673775',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear jameson.sharyn@lol.org',1,NULL,'Dear jameson.sharyn@lol.org',1,NULL,'jameson.sharyn@lol.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (115,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Kiara','Kiara Terry',NULL,NULL,NULL,NULL,NULL,'Both','4073244041',NULL,'Sample Data','Kiara','X','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Terry',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (116,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'rosariod@airmail.org','rosariod@airmail.org',NULL,NULL,NULL,'2',NULL,'Both','132093910',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear rosariod@airmail.org',1,NULL,'Dear rosariod@airmail.org',1,NULL,'rosariod@airmail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,'Idaho Wellness Collective',NULL,NULL,31,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (117,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Nielsen, Junko','Dr. Junko Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','2926916105',NULL,'Sample Data','Junko','','Nielsen',4,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Dr. Junko Nielsen',NULL,1,'1983-01-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (118,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Terry, Ashley','Dr. Ashley Terry Sr.',NULL,NULL,NULL,NULL,NULL,'Both','3948576229',NULL,'Sample Data','Ashley','','Terry',4,2,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Dr. Ashley Terry Sr.',NULL,NULL,'1985-11-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (119,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Sherman','Mr. Sherman Smith II',NULL,NULL,NULL,'1',NULL,'Both','2534452689',NULL,'Sample Data','Sherman','','Smith',3,3,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Mr. Sherman Smith II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (120,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Parrish Advocacy Initiative','Parrish Advocacy Initiative',NULL,NULL,NULL,'2',NULL,'Both','1690045769',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Parrish Advocacy Initiative',NULL,NULL,NULL,0,NULL,NULL,104,'Parrish Advocacy Initiative',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (121,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Mei','Mei Smith',NULL,NULL,NULL,'3',NULL,'Both','3741631719',NULL,'Sample Data','Mei','H','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mei Smith',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (122,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Beula','Beula Müller',NULL,NULL,NULL,NULL,NULL,'Both','521667941',NULL,'Sample Data','Beula','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Beula Müller',NULL,1,'2005-03-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (123,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Reynolds, Princess','Dr. Princess Reynolds',NULL,NULL,NULL,'2',NULL,'Both','2219276168',NULL,'Sample Data','Princess','R','Reynolds',4,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Dr. Princess Reynolds',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (124,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'terrell.santina@infomail.com','terrell.santina@infomail.com',NULL,NULL,NULL,'3',NULL,'Both','3222025074',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear terrell.santina@infomail.com',1,NULL,'Dear terrell.santina@infomail.com',1,NULL,'terrell.santina@infomail.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (125,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Dawson Agriculture Association','Dawson Agriculture Association',NULL,NULL,NULL,'3',NULL,'Both','1720179439',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Dawson Agriculture Association',NULL,NULL,NULL,0,NULL,NULL,NULL,'Dawson Agriculture Association',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (126,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Brigette','Dr. Brigette Wattson',NULL,NULL,NULL,NULL,NULL,'Both','4266118861',NULL,'Sample Data','Brigette','Z','Wattson',4,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Dr. Brigette Wattson',NULL,NULL,'1989-11-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (127,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner-Olsen family','Wagner-Olsen family',NULL,NULL,NULL,'1',NULL,'Both','267436342',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wagner-Olsen family',5,NULL,'Dear Wagner-Olsen family',2,NULL,'Wagner-Olsen family',NULL,NULL,NULL,0,NULL,'Wagner-Olsen family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (128,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Deforest, Laree','Laree Deforest',NULL,NULL,NULL,NULL,NULL,'Both','2017561536',NULL,'Sample Data','Laree','','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Deforest',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (129,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Nicole','Nicole Müller',NULL,NULL,NULL,NULL,NULL,'Both','2729775781',NULL,'Sample Data','Nicole','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Müller',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (130,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest family','Deforest family',NULL,NULL,NULL,NULL,NULL,'Both','3235379039',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Deforest family',5,NULL,'Dear Deforest family',2,NULL,'Deforest family',NULL,NULL,NULL,0,NULL,'Deforest family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (131,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Lawerence','Lawerence Lee',NULL,NULL,NULL,'3',NULL,'Both','834383091',NULL,'Sample Data','Lawerence','','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Lawerence Lee',NULL,NULL,'1971-05-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (132,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'robertsona83@lol.org','robertsona83@lol.org',NULL,NULL,NULL,'3',NULL,'Both','486974159',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear robertsona83@lol.org',1,NULL,'Dear robertsona83@lol.org',1,NULL,'robertsona83@lol.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (133,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'González, Jerome','Mr. Jerome González',NULL,NULL,NULL,'5',NULL,'Both','775254007',NULL,'Sample Data','Jerome','','González',3,NULL,NULL,NULL,1,NULL,'Dear Jerome',1,NULL,'Dear Jerome',1,NULL,'Mr. Jerome González',NULL,2,'1993-12-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (134,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Ashlie','Ms. Ashlie Bachman',NULL,NULL,NULL,'2',NULL,'Both','628441271',NULL,'Sample Data','Ashlie','N','Bachman',2,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ms. Ashlie Bachman',NULL,NULL,'1948-04-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (135,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell family','Terrell family',NULL,NULL,NULL,NULL,NULL,'Both','1136333121',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Terrell family',5,NULL,'Dear Terrell family',2,NULL,'Terrell family',NULL,NULL,NULL,0,NULL,'Terrell family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (136,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'elizabethgrant@spamalot.biz','elizabethgrant@spamalot.biz',NULL,NULL,NULL,NULL,NULL,'Both','3087022863',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear elizabethgrant@spamalot.biz',1,NULL,'Dear elizabethgrant@spamalot.biz',1,NULL,'elizabethgrant@spamalot.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (137,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Rodrigo','Dr. Rodrigo Roberts',NULL,NULL,NULL,'3',NULL,'Both','2634521608',NULL,'Sample Data','Rodrigo','','Roberts',4,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Dr. Rodrigo Roberts',NULL,2,'1983-02-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (138,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wagner, Margaret','Margaret Wagner',NULL,NULL,NULL,NULL,NULL,'Both','2539132666',NULL,'Sample Data','Margaret','','Wagner',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Wagner',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (139,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Margaret','Margaret Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3839484919',NULL,'Sample Data','Margaret','E','Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Olsen',NULL,1,'1985-06-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (140,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Terry, Brzęczysław','Brzęczysław Terry III',NULL,NULL,NULL,NULL,NULL,'Both','884241841',NULL,'Sample Data','Brzęczysław','','Terry',NULL,4,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Brzęczysław Terry III',NULL,NULL,'1973-01-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (141,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Nielsen, Santina','Santina Nielsen',NULL,NULL,NULL,'1',NULL,'Both','4294042447',NULL,'Sample Data','Santina','W','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Nielsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (142,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Eleonor','Dr. Eleonor Deforest',NULL,NULL,NULL,'3',NULL,'Both','873042490',NULL,'Sample Data','Eleonor','L','Deforest',4,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Dr. Eleonor Deforest',NULL,1,'1988-07-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (143,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner-Olsen, Betty','Betty Wagner-Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3294730098',NULL,'Sample Data','Betty','C','Wagner-Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Wagner-Olsen',NULL,1,'2013-03-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (144,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Terry family','Terry family',NULL,NULL,NULL,'2',NULL,'Both','558108751',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Terry family',5,NULL,'Dear Terry family',2,NULL,'Terry family',NULL,NULL,NULL,0,NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (145,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Laree','Laree Jacobs',NULL,NULL,NULL,'4',NULL,'Both','3788424198',NULL,'Sample Data','Laree','S','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Jacobs',NULL,1,'1936-08-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (146,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Truman','Dr. Truman Barkley',NULL,NULL,NULL,NULL,NULL,'Both','2843718007',NULL,'Sample Data','Truman','V','Barkley',4,NULL,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Dr. Truman Barkley',NULL,2,'1942-02-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (147,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Wilson-Samuels, Herminia','Herminia Wilson-Samuels',NULL,NULL,NULL,NULL,NULL,'Both','4281562450',NULL,'Sample Data','Herminia','P','Wilson-Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Wilson-Samuels',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (148,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'chowski-yadav.arlyne@testing.net','chowski-yadav.arlyne@testing.net',NULL,NULL,NULL,NULL,NULL,'Both','3309369873',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear chowski-yadav.arlyne@testing.net',1,NULL,'Dear chowski-yadav.arlyne@testing.net',1,NULL,'chowski-yadav.arlyne@testing.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (149,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'González, Rosario','Rosario González',NULL,NULL,NULL,'1',NULL,'Both','3206727065',NULL,'Sample Data','Rosario','V','González',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario González',NULL,2,'1940-02-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (150,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Brittney','Brittney Müller',NULL,NULL,NULL,'3',NULL,'Both','1298536395',NULL,'Sample Data','Brittney','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Brittney Müller',NULL,1,'1954-12-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (151,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds family','Reynolds family',NULL,NULL,NULL,NULL,NULL,'Both','4119726021',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Reynolds family',5,NULL,'Dear Reynolds family',2,NULL,'Reynolds family',NULL,NULL,NULL,0,NULL,'Reynolds family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (152,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Creative Environmental Association','Creative Environmental Association',NULL,NULL,NULL,NULL,NULL,'Both','63083572',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Creative Environmental Association',NULL,NULL,NULL,0,NULL,NULL,NULL,'Creative Environmental Association',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (153,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Magan','Magan Müller',NULL,NULL,NULL,'5',NULL,'Both','681120033',NULL,'Sample Data','Magan','T','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Müller',NULL,1,'1978-09-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (154,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Charlotte Education Association','Charlotte Education Association',NULL,NULL,NULL,NULL,NULL,'Both','2202053113',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Charlotte Education Association',NULL,NULL,NULL,0,NULL,NULL,NULL,'Charlotte Education Association',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (155,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen family','Olsen family',NULL,NULL,NULL,NULL,NULL,'Both','1990073228',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Olsen family',5,NULL,'Dear Olsen family',2,NULL,'Olsen family',NULL,NULL,NULL,0,NULL,'Olsen family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:42'),
- (156,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Merrie','Merrie Grant',NULL,NULL,NULL,'4',NULL,'Both','1746149346',NULL,'Sample Data','Merrie','F','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Merrie Grant',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (157,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Margaret','Dr. Margaret Terry',NULL,NULL,NULL,'3',NULL,'Both','4072810936',NULL,'Sample Data','Margaret','','Terry',4,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Dr. Margaret Terry',NULL,1,'1969-08-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (158,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Roberts-Samson, Sherman','Sherman Roberts-Samson',NULL,NULL,NULL,NULL,NULL,'Both','2488675464',NULL,'Sample Data','Sherman','A','Roberts-Samson',NULL,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Roberts-Samson',NULL,2,'1981-09-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (159,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Sharyn','Mrs. Sharyn Díaz',NULL,NULL,NULL,NULL,NULL,'Both','4129279229',NULL,'Sample Data','Sharyn','G','Díaz',1,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Mrs. Sharyn Díaz',NULL,NULL,'1936-11-10',1,'2020-09-15',NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (160,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Robertson, Jerome','Dr. Jerome Robertson III',NULL,NULL,NULL,'5',NULL,'Both','3716406144',NULL,'Sample Data','Jerome','','Robertson',4,4,NULL,NULL,1,NULL,'Dear Jerome',1,NULL,'Dear Jerome',1,NULL,'Dr. Jerome Robertson III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (161,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Kandace','Kandace Jensen',NULL,NULL,NULL,NULL,NULL,'Both','2339972314',NULL,'Sample Data','Kandace','','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Jensen',NULL,NULL,'1967-12-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (162,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Roberts, Megan','Megan Roberts',NULL,NULL,NULL,NULL,NULL,'Both','2663769717',NULL,'Sample Data','Megan','R','Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Roberts',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (163,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Allen','Allen Lee',NULL,NULL,NULL,NULL,NULL,'Both','23882505',NULL,'Sample Data','Allen','P','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Allen Lee',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (164,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Prentice, Juliann','Juliann Prentice',NULL,NULL,NULL,'1',NULL,'Both','4163234057',NULL,'Sample Data','Juliann','N','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Prentice',NULL,NULL,'1970-08-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (165,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Zope, Angelika','Angelika Zope',NULL,NULL,NULL,'1',NULL,'Both','797627515',NULL,'Sample Data','Angelika','','Zope',NULL,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Angelika Zope',NULL,NULL,'1973-08-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (166,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Andrew','Dr. Andrew Wattson Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3954041415',NULL,'Sample Data','Andrew','','Wattson',4,1,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Dr. Andrew Wattson Jr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (167,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Urban Legal Center','Urban Legal Center',NULL,NULL,NULL,'1',NULL,'Both','3304452841',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Urban Legal Center',NULL,NULL,NULL,0,NULL,NULL,6,'Urban Legal Center',NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:43'),
- (168,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Deforest, Brittney','Mrs. Brittney Deforest',NULL,NULL,NULL,'3',NULL,'Both','1540368141',NULL,'Sample Data','Brittney','','Deforest',1,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Mrs. Brittney Deforest',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (169,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Alida','Ms. Alida Cooper',NULL,NULL,NULL,NULL,NULL,'Both','4292976032',NULL,'Sample Data','Alida','','Cooper',2,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Ms. Alida Cooper',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (170,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samson, Lashawnda','Lashawnda Samson',NULL,NULL,NULL,NULL,NULL,'Both','1918471490',NULL,'Sample Data','Lashawnda','B','Samson',NULL,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Lashawnda Samson',NULL,1,'1953-08-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (171,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'juliannchowski@mymail.co.nz','juliannchowski@mymail.co.nz',NULL,NULL,NULL,'1',NULL,'Both','2708318330',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear juliannchowski@mymail.co.nz',1,NULL,'Dear juliannchowski@mymail.co.nz',1,NULL,'juliannchowski@mymail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (172,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Scarlet','Mrs. Scarlet Ivanov',NULL,NULL,NULL,NULL,NULL,'Both','959385532',NULL,'Sample Data','Scarlet','','Ivanov',1,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Mrs. Scarlet Ivanov',NULL,NULL,'1958-09-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (173,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'yadav.v.barry20@notmail.co.in','yadav.v.barry20@notmail.co.in',NULL,NULL,NULL,'5',NULL,'Both','906622343',NULL,'Sample Data',NULL,NULL,NULL,3,NULL,NULL,NULL,1,NULL,'Dear yadav.v.barry20@notmail.co.in',1,NULL,'Dear yadav.v.barry20@notmail.co.in',1,NULL,'yadav.v.barry20@notmail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:40'),
- (174,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Kiara','Dr. Kiara Wagner',NULL,NULL,NULL,NULL,NULL,'Both','2385501712',NULL,'Sample Data','Kiara','','Wagner',4,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Dr. Kiara Wagner',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (175,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Terry, Margaret','Ms. Margaret Terry',NULL,NULL,NULL,NULL,NULL,'Both','4072810936',NULL,'Sample Data','Margaret','','Terry',2,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Ms. Margaret Terry',NULL,1,'1956-11-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (176,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Ray','Ray Müller Sr.',NULL,NULL,NULL,'3',NULL,'Both','1173052896',NULL,'Sample Data','Ray','B','Müller',NULL,2,NULL,NULL,1,NULL,'Dear Ray',1,NULL,'Dear Ray',1,NULL,'Ray Müller Sr.',NULL,NULL,'2009-07-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (177,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Norris','Norris Wattson',NULL,NULL,NULL,NULL,NULL,'Both','4180802164',NULL,'Sample Data','Norris','','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Wattson',NULL,2,'1997-03-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:41'),
- (178,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Claudio','Claudio Robertson',NULL,NULL,NULL,NULL,NULL,'Both','3950881166',NULL,'Sample Data','Claudio','N','Robertson',NULL,NULL,NULL,NULL,1,NULL,'Dear Claudio',1,NULL,'Dear Claudio',1,NULL,'Claudio Robertson',NULL,2,'2001-01-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:39','2021-07-26 14:08:44'),
- (179,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Kaneohe Poetry Trust','Kaneohe Poetry Trust',NULL,NULL,NULL,NULL,NULL,'Both','3030009151',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Kaneohe Poetry Trust',NULL,NULL,NULL,0,NULL,NULL,86,'Kaneohe Poetry Trust',NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:43'),
- (180,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Ashley','Dr. Ashley Grant III',NULL,NULL,NULL,NULL,NULL,'Both','1641977721',NULL,'Sample Data','Ashley','D','Grant',4,4,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Dr. Ashley Grant III',NULL,2,'1960-11-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:44'),
- (181,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Cooper, Ashley','Ashley Cooper II',NULL,NULL,NULL,'3',NULL,'Both','495032298',NULL,'Sample Data','Ashley','T','Cooper',NULL,3,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Cooper II',NULL,2,'1959-09-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:40'),
- (182,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jacobs, Maria','Dr. Maria Jacobs Sr.',NULL,NULL,NULL,'1',NULL,'Both','2004248227',NULL,'Sample Data','Maria','','Jacobs',4,2,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Dr. Maria Jacobs Sr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:41'),
- (183,'Household',NULL,1,1,0,0,0,0,NULL,NULL,'Samuels family','Samuels family',NULL,NULL,NULL,NULL,NULL,'Both','350459294',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels family',5,NULL,'Dear Samuels family',2,NULL,'Samuels family',NULL,NULL,NULL,0,NULL,'Samuels family',NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:42'),
- (184,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'ashleymcreynolds11@lol.org','ashleymcreynolds11@lol.org',NULL,NULL,NULL,'2',NULL,'Both','4125278943',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear ashleymcreynolds11@lol.org',1,NULL,'Dear ashleymcreynolds11@lol.org',1,NULL,'ashleymcreynolds11@lol.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:41'),
- (185,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Dimitrov, Valene','Valene Dimitrov',NULL,NULL,NULL,'4',NULL,'Both','1409634663',NULL,'Sample Data','Valene','','Dimitrov',NULL,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Valene Dimitrov',NULL,1,'1961-01-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:40'),
- (186,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'jwagner@spamalot.co.in','jwagner@spamalot.co.in',NULL,NULL,NULL,'1',NULL,'Both','2177136335',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear jwagner@spamalot.co.in',1,NULL,'Dear jwagner@spamalot.co.in',1,NULL,'jwagner@spamalot.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:44'),
- (187,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Rodrigo','Rodrigo Samson',NULL,NULL,NULL,'3',NULL,'Both','2189738630',NULL,'Sample Data','Rodrigo','O','Samson',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Samson',NULL,2,'1947-01-19',1,'2020-08-18',NULL,NULL,'Rural Environmental Alliance',NULL,NULL,109,0,'2021-07-26 14:08:40','2021-07-26 14:08:43'),
- (188,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Jackson Education Association','Jackson Education Association',NULL,NULL,NULL,NULL,NULL,'Both','2403360554',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Jackson Education Association',NULL,NULL,NULL,0,NULL,NULL,39,'Jackson Education Association',NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:43'),
- (189,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Felisha','Felisha Deforest',NULL,NULL,NULL,'3',NULL,'Both','3583247352',NULL,'Sample Data','Felisha','O','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Felisha Deforest',NULL,1,'2016-11-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:44'),
- (190,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Samuels, Rodrigo','Rodrigo Samuels',NULL,NULL,NULL,'4',NULL,'Both','1345988157',NULL,'Sample Data','Rodrigo','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Samuels',NULL,2,NULL,0,NULL,NULL,NULL,'Second Sports Partners',NULL,NULL,76,0,'2021-07-26 14:08:40','2021-07-26 14:08:44'),
- (191,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Rural Music Network','Rural Music Network',NULL,NULL,NULL,NULL,NULL,'Both','2463996286',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Music Network',NULL,NULL,NULL,0,NULL,NULL,87,'Rural Music Network',NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:43'),
- (192,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice-Terrell, Sherman','Sherman Prentice-Terrell',NULL,NULL,NULL,NULL,NULL,'Both','2332317818',NULL,'Sample Data','Sherman','L','Prentice-Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Prentice-Terrell',NULL,2,'1967-01-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:43'),
- (193,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Adams, Eleonor','Eleonor Adams',NULL,NULL,NULL,'5',NULL,'Both','780665455',NULL,'Sample Data','Eleonor','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Adams',NULL,NULL,'1961-09-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:41'),
- (194,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Lawerence','Dr. Lawerence Lee',NULL,NULL,NULL,'2',NULL,'Both','834383091',NULL,'Sample Data','Lawerence','Y','Lee',4,NULL,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Dr. Lawerence Lee',NULL,2,'1980-07-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:44'),
- (195,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'terry.esta30@example.co.in','terry.esta30@example.co.in',NULL,NULL,NULL,NULL,NULL,'Both','2679605165',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear terry.esta30@example.co.in',1,NULL,'Dear terry.esta30@example.co.in',1,NULL,'terry.esta30@example.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:40'),
- (196,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Megan','Ms. Megan Lee',NULL,NULL,NULL,NULL,NULL,'Both','3517834087',NULL,'Sample Data','Megan','F','Lee',2,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Ms. Megan Lee',NULL,1,'1964-05-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:44'),
- (197,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Shauna','Dr. Shauna Grant',NULL,NULL,NULL,'2',NULL,'Both','2794914962',NULL,'Sample Data','Shauna','','Grant',4,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Dr. Shauna Grant',NULL,1,'1944-05-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:41'),
- (198,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'McReynolds, Lawerence','Lawerence McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','2918598675',NULL,'Sample Data','Lawerence','','McReynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Lawerence McReynolds',NULL,2,'1980-12-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:41'),
- (199,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Patel, Delana','Delana Patel',NULL,NULL,NULL,NULL,NULL,'Both','725274088',NULL,'Sample Data','Delana','','Patel',NULL,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Delana Patel',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:40'),
- (200,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee-Adams, Delana','Delana Lee-Adams',NULL,NULL,NULL,NULL,NULL,'Both','603814298',NULL,'Sample Data','Delana','H','Lee-Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Delana Lee-Adams',NULL,NULL,NULL,0,NULL,NULL,NULL,'Cornettsville Literacy Initiative',NULL,NULL,57,0,'2021-07-26 14:08:40','2021-07-26 14:08:44'),
- (201,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Zope, Barry','Barry Zope III',NULL,NULL,NULL,'3',NULL,'Both','1953474040',NULL,'Sample Data','Barry','','Zope',NULL,4,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Barry Zope III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-07-26 14:08:40','2021-07-26 14:08:40');
+ (1,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Default Organization','Default Organization',NULL,'Default Organization',NULL,NULL,NULL,'Both',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,'Default Organization',NULL,NULL,NULL,0,NULL,'2021-10-14 04:23:51'),
+ (2,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Barkley, Kathleen','Kathleen Barkley',NULL,NULL,NULL,NULL,NULL,'Both','560974379',NULL,'Sample Data','Kathleen','','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Barkley',NULL,1,'1998-06-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (3,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Patel, Mei','Mei Patel',NULL,NULL,NULL,'5',NULL,'Both','1870757222',NULL,'Sample Data','Mei','D','Patel',NULL,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mei Patel',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (4,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Irvin','Mr. Irvin Wattson Jr.',NULL,NULL,NULL,NULL,NULL,'Both','2806500990',NULL,'Sample Data','Irvin','Y','Wattson',3,1,NULL,NULL,1,NULL,'Dear Irvin',1,NULL,'Dear Irvin',1,NULL,'Mr. Irvin Wattson Jr.',NULL,NULL,'1966-05-17',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (5,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Ashley','Ashley Cooper',NULL,NULL,NULL,NULL,NULL,'Both','495032298',NULL,'Sample Data','Ashley','T','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Cooper',NULL,1,'2014-09-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (6,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Lashawnda','Lashawnda Samuels',NULL,NULL,NULL,NULL,NULL,'Both','3524202222',NULL,'Sample Data','Lashawnda','I','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Lashawnda Samuels',NULL,1,'1941-06-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (7,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Reynolds, Arlyne','Arlyne Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','3120138036',NULL,'Sample Data','Arlyne','','Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Reynolds',NULL,NULL,'1977-06-25',0,NULL,NULL,NULL,'Lincoln Technology Collective',NULL,NULL,167,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (8,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Barry','Dr. Barry Terry Jr.',NULL,NULL,NULL,NULL,NULL,'Both','929041000',NULL,'Sample Data','Barry','','Terry',4,1,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Dr. Barry Terry Jr.',NULL,2,'1984-06-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (9,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Lincoln','Dr. Lincoln Samson II',NULL,NULL,NULL,'2',NULL,'Both','1364687804',NULL,'Sample Data','Lincoln','U','Samson',4,3,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Dr. Lincoln Samson II',NULL,NULL,'1965-01-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (10,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'bj.wilson@example.org','bj.wilson@example.org',NULL,NULL,NULL,NULL,NULL,'Both','1790437097',NULL,'Sample Data',NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,'Dear bj.wilson@example.org',1,NULL,'Dear bj.wilson@example.org',1,NULL,'bj.wilson@example.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (11,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Herminia','Herminia Samuels',NULL,NULL,NULL,'2',NULL,'Both','2536556293',NULL,'Sample Data','Herminia','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Samuels',NULL,NULL,'1977-08-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (12,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Truman','Dr. Truman Cooper',NULL,NULL,NULL,NULL,NULL,'Both','938772676',NULL,'Sample Data','Truman','','Cooper',4,NULL,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Dr. Truman Cooper',NULL,NULL,'1961-06-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (13,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Lee, Brzęczysław','Dr. Brzęczysław Lee',NULL,NULL,NULL,NULL,NULL,'Both','2392926300',NULL,'Sample Data','Brzęczysław','','Lee',4,NULL,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Dr. Brzęczysław Lee',NULL,2,'1996-11-21',0,NULL,NULL,NULL,'Green Technology School',NULL,NULL,78,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (14,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Green Family Association','Green Family Association',NULL,NULL,NULL,NULL,NULL,'Both','2146910932',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Green Family Association',NULL,NULL,NULL,0,NULL,NULL,62,'Green Family Association',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (15,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen, Beula','Mrs. Beula Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','1989597446',NULL,'Sample Data','Beula','X','Nielsen',1,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Mrs. Beula Nielsen',NULL,NULL,'1953-06-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (16,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen-Jacobs, Jina','Jina Olsen-Jacobs',NULL,NULL,NULL,'1',NULL,'Both','2274760444',NULL,'Sample Data','Jina','','Olsen-Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Jina Olsen-Jacobs',NULL,1,'1993-02-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (17,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'angelikaw@notmail.biz','angelikaw@notmail.biz',NULL,NULL,NULL,'5',NULL,'Both','1156913310',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear angelikaw@notmail.biz',1,NULL,'Dear angelikaw@notmail.biz',1,NULL,'angelikaw@notmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,'Locust Hill Technology Collective',NULL,NULL,125,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (18,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wilson, Teddy','Dr. Teddy Wilson III',NULL,NULL,NULL,NULL,NULL,'Both','1714543497',NULL,'Sample Data','Teddy','U','Wilson',4,4,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Dr. Teddy Wilson III',NULL,2,'1978-01-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (19,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Samson-Wattson, Rodrigo','Rodrigo Samson-Wattson III',NULL,NULL,NULL,'2',NULL,'Both','3240820617',NULL,'Sample Data','Rodrigo','V','Samson-Wattson',NULL,4,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Samson-Wattson III',NULL,NULL,'2003-02-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (20,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Samuels family','Samuels family',NULL,NULL,NULL,'5',NULL,'Both','350459294',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels family',5,NULL,'Dear Samuels family',2,NULL,'Samuels family',NULL,NULL,NULL,0,NULL,'Samuels family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (21,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Roberts, Elbert','Elbert Roberts II',NULL,NULL,NULL,'5',NULL,'Both','2457403218',NULL,'Sample Data','Elbert','W','Roberts',NULL,3,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert Roberts II',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (22,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Barkley, Tanya','Tanya Barkley',NULL,NULL,NULL,NULL,NULL,'Both','2953066257',NULL,'Sample Data','Tanya','B','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Barkley',NULL,NULL,'1964-06-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (23,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Bernadette','Ms. Bernadette Samson',NULL,NULL,NULL,NULL,NULL,'Both','1089960007',NULL,'Sample Data','Bernadette','','Samson',2,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Ms. Bernadette Samson',NULL,1,'1945-12-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (24,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Brent','Dr. Brent Jacobs',NULL,NULL,NULL,'3',NULL,'Both','2357186266',NULL,'Sample Data','Brent','R','Jacobs',4,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Dr. Brent Jacobs',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (25,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Jameson, Allen','Allen Jameson',NULL,NULL,NULL,NULL,NULL,'Both','3044297960',NULL,'Sample Data','Allen','Z','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Allen Jameson',NULL,NULL,'1990-01-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (26,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Jina','Dr. Jina Samuels',NULL,NULL,NULL,NULL,NULL,'Both','202942024',NULL,'Sample Data','Jina','','Samuels',4,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Dr. Jina Samuels',NULL,1,NULL,0,NULL,NULL,NULL,'Oklahoma Arts Collective',NULL,NULL,68,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (27,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Junko','Mrs. Junko Müller',NULL,NULL,NULL,'3',NULL,'Both','3355176554',NULL,'Sample Data','Junko','','Müller',1,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Mrs. Junko Müller',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (28,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Esta','Dr. Esta Adams',NULL,NULL,NULL,NULL,NULL,'Both','1125073025',NULL,'Sample Data','Esta','W','Adams',4,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Dr. Esta Adams',NULL,1,'1990-06-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (29,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Toby','Toby Samuels Jr.',NULL,NULL,NULL,'5',NULL,'Both','126496012',NULL,'Sample Data','Toby','Z','Samuels',NULL,1,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Toby Samuels Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (30,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jacobs, Lawerence','Mr. Lawerence Jacobs Sr.',NULL,NULL,NULL,'5',NULL,'Both','2914828015',NULL,'Sample Data','Lawerence','','Jacobs',3,2,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Mr. Lawerence Jacobs Sr.',NULL,2,'1958-04-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (31,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson-Barkley, Troy','Troy Jameson-Barkley II',NULL,NULL,NULL,NULL,NULL,'Both','3887786774',NULL,'Sample Data','Troy','C','Jameson-Barkley',NULL,3,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Troy Jameson-Barkley II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (32,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Miguel','Miguel Nielsen Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3325979689',NULL,'Sample Data','Miguel','','Nielsen',NULL,1,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Miguel Nielsen Jr.',NULL,2,'1973-01-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (33,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Wagner family','Wagner family',NULL,NULL,NULL,NULL,NULL,'Both','1570966486',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wagner family',5,NULL,'Dear Wagner family',2,NULL,'Wagner family',NULL,NULL,NULL,0,NULL,'Wagner family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (34,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts family','Roberts family',NULL,NULL,NULL,NULL,NULL,'Both','2097305882',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Roberts family',5,NULL,'Dear Roberts family',2,NULL,'Roberts family',NULL,NULL,NULL,0,NULL,'Roberts family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (35,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov-Jones, Ivey','Ms. Ivey Dimitrov-Jones',NULL,NULL,NULL,'2',NULL,'Both','3620358871',NULL,'Sample Data','Ivey','M','Dimitrov-Jones',2,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ms. Ivey Dimitrov-Jones',NULL,NULL,'1984-12-02',0,NULL,NULL,NULL,'Hawaii Empowerment Center',NULL,NULL,100,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (36,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov, Landon','Landon Dimitrov II',NULL,NULL,NULL,'1',NULL,'Both','3544857327',NULL,'Sample Data','Landon','H','Dimitrov',NULL,3,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Landon Dimitrov II',NULL,2,'1934-05-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (37,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen family','Olsen family',NULL,NULL,NULL,'2',NULL,'Both','1990073228',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Olsen family',5,NULL,'Dear Olsen family',2,NULL,'Olsen family',NULL,NULL,NULL,0,NULL,'Olsen family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (38,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Patel, Ivey','Ivey Patel',NULL,NULL,NULL,NULL,NULL,'Both','1657972343',NULL,'Sample Data','Ivey','','Patel',NULL,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ivey Patel',NULL,1,'1961-06-17',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (39,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Erik','Erik Wattson Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1174454182',NULL,'Sample Data','Erik','','Wattson',NULL,1,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Erik Wattson Jr.',NULL,2,'1969-03-06',0,NULL,NULL,NULL,'Rural Poetry Trust',NULL,NULL,42,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (40,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen, Omar','Omar Nielsen Sr.',NULL,NULL,NULL,'4',NULL,'Both','1831503188',NULL,'Sample Data','Omar','I','Nielsen',NULL,2,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Omar Nielsen Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (41,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'bachmanb50@airmail.info','bachmanb50@airmail.info',NULL,NULL,NULL,NULL,NULL,'Both','2029445311',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear bachmanb50@airmail.info',1,NULL,'Dear bachmanb50@airmail.info',1,NULL,'bachmanb50@airmail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (42,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Rural Poetry Trust','Rural Poetry Trust',NULL,NULL,NULL,NULL,NULL,'Both','682926146',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Poetry Trust',NULL,NULL,NULL,0,NULL,NULL,39,'Rural Poetry Trust',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (43,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Billy','Mr. Billy Samuels',NULL,NULL,NULL,NULL,NULL,'Both','92935923',NULL,'Sample Data','Billy','','Samuels',3,NULL,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Mr. Billy Samuels',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (44,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Allen','Dr. Allen Łąchowski Sr.',NULL,NULL,NULL,NULL,NULL,'Both','3162448518',NULL,'Sample Data','Allen','','Łąchowski',4,2,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Dr. Allen Łąchowski Sr.',NULL,2,NULL,0,NULL,NULL,NULL,'Global Wellness Trust',NULL,NULL,81,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (45,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Damaris','Ms. Damaris Łąchowski',NULL,NULL,NULL,NULL,NULL,'Both','3452696651',NULL,'Sample Data','Damaris','G','Łąchowski',2,NULL,NULL,NULL,1,NULL,'Dear Damaris',1,NULL,'Dear Damaris',1,NULL,'Ms. Damaris Łąchowski',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (46,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jameson, Sonny','Mr. Sonny Jameson Sr.',NULL,NULL,NULL,'4',NULL,'Both','3728912262',NULL,'Sample Data','Sonny','L','Jameson',3,2,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Mr. Sonny Jameson Sr.',NULL,2,'1992-12-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (47,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wagner, Craig','Mr. Craig Wagner',NULL,NULL,NULL,NULL,NULL,'Both','2031234016',NULL,'Sample Data','Craig','T','Wagner',3,NULL,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Mr. Craig Wagner',NULL,NULL,'1951-06-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (48,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Brigette','Brigette Wattson',NULL,NULL,NULL,NULL,NULL,'Both','4266118861',NULL,'Sample Data','Brigette','W','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Brigette Wattson',NULL,1,'1961-10-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (49,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Terry, Erik','Erik Terry Jr.',NULL,NULL,NULL,'4',NULL,'Both','4189171326',NULL,'Sample Data','Erik','W','Terry',NULL,1,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Erik Terry Jr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (50,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Samson-Terrell, Daren','Daren Samson-Terrell',NULL,NULL,NULL,'4',NULL,'Both','3849209138',NULL,'Sample Data','Daren','E','Samson-Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Daren Samson-Terrell',NULL,NULL,'1980-12-01',0,NULL,NULL,NULL,'Community Advocacy Solutions',NULL,NULL,166,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (51,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Adams, Ray','Mr. Ray Adams',NULL,NULL,NULL,NULL,NULL,'Both','1995383476',NULL,'Sample Data','Ray','','Adams',3,NULL,NULL,NULL,1,NULL,'Dear Ray',1,NULL,'Dear Ray',1,NULL,'Mr. Ray Adams',NULL,NULL,'1976-03-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (52,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen, Junko','Junko Nielsen',NULL,NULL,NULL,'4',NULL,'Both','2926916105',NULL,'Sample Data','Junko','','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Junko Nielsen',NULL,1,'1958-06-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (53,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Bernadette','Mrs. Bernadette Cooper',NULL,NULL,NULL,NULL,NULL,'Both','1160205929',NULL,'Sample Data','Bernadette','G','Cooper',1,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Mrs. Bernadette Cooper',NULL,1,'1957-07-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (54,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'santinadeforest@sample.co.uk','santinadeforest@sample.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','1158701715',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear santinadeforest@sample.co.uk',1,NULL,'Dear santinadeforest@sample.co.uk',1,NULL,'santinadeforest@sample.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (55,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Barkley, Kiara','Dr. Kiara Barkley',NULL,NULL,NULL,NULL,NULL,'Both','2141749595',NULL,'Sample Data','Kiara','','Barkley',4,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Dr. Kiara Barkley',NULL,1,'1939-05-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (56,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson-Wattson, Omar','Omar Samson-Wattson III',NULL,NULL,NULL,NULL,NULL,'Both','354104625',NULL,'Sample Data','Omar','S','Samson-Wattson',NULL,4,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Omar Samson-Wattson III',NULL,2,'1987-03-31',0,NULL,NULL,NULL,'Urban Empowerment Partnership',NULL,NULL,141,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (57,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Scott','Scott Lee Jr.',NULL,NULL,NULL,'5',NULL,'Both','4023573390',NULL,'Sample Data','Scott','V','Lee',NULL,1,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Scott Lee Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (58,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Arlyne','Arlyne Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','3808368075',NULL,'Sample Data','Arlyne','E','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Nielsen',NULL,1,NULL,0,NULL,NULL,NULL,'Snow Shoe Arts Association',NULL,NULL,169,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (59,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Łąchowski-Jameson, Margaret','Margaret Łąchowski-Jameson',NULL,NULL,NULL,NULL,NULL,'Both','2364033948',NULL,'Sample Data','Margaret','','Łąchowski-Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Łąchowski-Jameson',NULL,1,'2005-02-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (60,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson-Müller, Kenny','Dr. Kenny Jameson-Müller',NULL,NULL,NULL,'4',NULL,'Both','3436168703',NULL,'Sample Data','Kenny','S','Jameson-Müller',4,NULL,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Dr. Kenny Jameson-Müller',NULL,2,'1968-01-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (61,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wilson, Ivey','Mrs. Ivey Wilson',NULL,NULL,NULL,'4',NULL,'Both','4270128246',NULL,'Sample Data','Ivey','','Wilson',1,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Mrs. Ivey Wilson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (62,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Justina','Dr. Justina Samuels',NULL,NULL,NULL,NULL,NULL,'Both','1737971561',NULL,'Sample Data','Justina','','Samuels',4,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Dr. Justina Samuels',NULL,1,NULL,0,NULL,NULL,NULL,'Green Family Association',NULL,NULL,14,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (63,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Shad','Shad Barkley',NULL,NULL,NULL,NULL,NULL,'Both','2908565533',NULL,'Sample Data','Shad','','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Barkley',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (64,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Müller, Rolando','Rolando Müller II',NULL,NULL,NULL,NULL,NULL,'Both','2804310363',NULL,'Sample Data','Rolando','O','Müller',NULL,3,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Müller II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (65,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry-Prentice, Erik','Dr. Erik Terry-Prentice',NULL,NULL,NULL,'5',NULL,'Both','685103230',NULL,'Sample Data','Erik','','Terry-Prentice',4,NULL,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Dr. Erik Terry-Prentice',NULL,NULL,'1987-10-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (66,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Samson-Wattson family','Samson-Wattson family',NULL,NULL,NULL,'5',NULL,'Both','269631773',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samson-Wattson family',5,NULL,'Dear Samson-Wattson family',2,NULL,'Samson-Wattson family',NULL,NULL,NULL,0,NULL,'Samson-Wattson family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (67,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Alexia','Ms. Alexia Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','1389353396',NULL,'Sample Data','Alexia','Q','Reynolds',2,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Ms. Alexia Reynolds',NULL,1,'1951-11-09',0,NULL,NULL,NULL,'Global Arts Fellowship',NULL,NULL,129,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (68,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Oklahoma Arts Collective','Oklahoma Arts Collective',NULL,NULL,NULL,NULL,NULL,'Both','2854687282',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Oklahoma Arts Collective',NULL,NULL,NULL,0,NULL,NULL,26,'Oklahoma Arts Collective',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (69,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Sanford','Sanford Samson Sr.',NULL,NULL,NULL,'3',NULL,'Both','802697989',NULL,'Sample Data','Sanford','X','Samson',NULL,2,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Samson Sr.',NULL,2,'1984-12-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (70,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Lashawnda','Ms. Lashawnda Cruz',NULL,NULL,NULL,NULL,NULL,'Both','2604537313',NULL,'Sample Data','Lashawnda','B','Cruz',2,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Ms. Lashawnda Cruz',NULL,NULL,'1960-03-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (71,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Roland','Dr. Roland Samson',NULL,NULL,NULL,NULL,NULL,'Both','2394998180',NULL,'Sample Data','Roland','L','Samson',4,NULL,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Dr. Roland Samson',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (72,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Müller, Scott','Dr. Scott Müller',NULL,NULL,NULL,NULL,NULL,'Both','2575613599',NULL,'Sample Data','Scott','W','Müller',4,NULL,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Dr. Scott Müller',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (73,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Samuels, Omar','Mr. Omar Samuels',NULL,NULL,NULL,'5',NULL,'Both','1072276407',NULL,'Sample Data','Omar','X','Samuels',3,NULL,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Mr. Omar Samuels',NULL,NULL,'1962-08-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (74,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'adamsf@sample.co.nz','adamsf@sample.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','554483999',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear adamsf@sample.co.nz',1,NULL,'Dear adamsf@sample.co.nz',1,NULL,'adamsf@sample.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (75,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Lashawnda','Lashawnda Samuels',NULL,NULL,NULL,NULL,NULL,'Both','3524202222',NULL,'Sample Data','Lashawnda','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Lashawnda Samuels',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (76,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Teddy','Teddy Terry',NULL,NULL,NULL,NULL,NULL,'Both','1402049800',NULL,'Sample Data','Teddy','','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Terry',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (77,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Terry family','Terry family',NULL,NULL,NULL,'5',NULL,'Both','558108751',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Terry family',5,NULL,'Dear Terry family',2,NULL,'Terry family',NULL,NULL,NULL,0,NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (78,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Green Technology School','Green Technology School',NULL,NULL,NULL,'2',NULL,'Both','3321300520',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Green Technology School',NULL,NULL,NULL,0,NULL,NULL,13,'Green Technology School',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (79,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Patel family','Patel family',NULL,NULL,NULL,'3',NULL,'Both','1669281794',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Patel family',5,NULL,'Dear Patel family',2,NULL,'Patel family',NULL,NULL,NULL,0,NULL,'Patel family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (80,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Clint','Clint Samuels Jr.',NULL,NULL,NULL,'1',NULL,'Both','1165497253',NULL,'Sample Data','Clint','','Samuels',NULL,1,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Clint Samuels Jr.',NULL,2,'2015-08-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (81,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Global Wellness Trust','Global Wellness Trust',NULL,NULL,NULL,'5',NULL,'Both','43589731',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Global Wellness Trust',NULL,NULL,NULL,0,NULL,NULL,44,'Global Wellness Trust',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (82,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Terry, Magan','Dr. Magan Terry',NULL,NULL,NULL,'1',NULL,'Both','1306605687',NULL,'Sample Data','Magan','S','Terry',4,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Dr. Magan Terry',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (83,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Bernadette','Mrs. Bernadette Roberts',NULL,NULL,NULL,NULL,NULL,'Both','4225100946',NULL,'Sample Data','Bernadette','K','Roberts',1,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Mrs. Bernadette Roberts',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (84,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen, Troy','Troy Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','4095296897',NULL,'Sample Data','Troy','F','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Troy Nielsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (85,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Maxwell','Maxwell Cruz',NULL,NULL,NULL,NULL,NULL,'Both','780249075',NULL,'Sample Data','Maxwell','','Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Maxwell Cruz',NULL,2,'1960-04-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (86,'Organization',NULL,1,1,0,0,0,0,NULL,NULL,'Rural Food Academy','Rural Food Academy',NULL,NULL,NULL,NULL,NULL,'Both','3746923021',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Food Academy',NULL,NULL,NULL,0,NULL,NULL,110,'Rural Food Academy',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (87,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Boise Peace Partners','Boise Peace Partners',NULL,NULL,NULL,NULL,NULL,'Both','3009264098',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Boise Peace Partners',NULL,NULL,NULL,0,NULL,NULL,151,'Boise Peace Partners',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (88,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Müller, Felisha','Felisha Müller',NULL,NULL,NULL,'2',NULL,'Both','258703399',NULL,'Sample Data','Felisha','S','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Felisha Müller',NULL,1,'1965-02-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (89,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Sonny','Sonny Roberts III',NULL,NULL,NULL,NULL,NULL,'Both','624070005',NULL,'Sample Data','Sonny','','Roberts',NULL,4,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Sonny Roberts III',NULL,2,'1981-12-05',0,NULL,NULL,NULL,'Alexander City Poetry Association',NULL,NULL,95,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (90,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Heidi','Dr. Heidi Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3023333247',NULL,'Sample Data','Heidi','Y','Olsen',4,NULL,NULL,NULL,1,NULL,'Dear Heidi',1,NULL,'Dear Heidi',1,NULL,'Dr. Heidi Olsen',NULL,NULL,'1977-03-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (91,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson-Barkley family','Jameson-Barkley family',NULL,NULL,NULL,'1',NULL,'Both','1137328179',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson-Barkley family',5,NULL,'Dear Jameson-Barkley family',2,NULL,'Jameson-Barkley family',NULL,NULL,NULL,0,NULL,'Jameson-Barkley family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (92,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jones, Toby','Mr. Toby Jones',NULL,NULL,NULL,NULL,NULL,'Both','1728032569',NULL,'Sample Data','Toby','G','Jones',3,NULL,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Mr. Toby Jones',NULL,NULL,'1981-05-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (93,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Lou','Lou Jensen',NULL,NULL,NULL,'1',NULL,'Both','707335642',NULL,'Sample Data','Lou','','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Jensen',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (94,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Rolando','Rolando Terrell Sr.',NULL,NULL,NULL,'3',NULL,'Both','3773897082',NULL,'Sample Data','Rolando','','Terrell',NULL,2,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Terrell Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (95,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Alexander City Poetry Association','Alexander City Poetry Association',NULL,NULL,NULL,NULL,NULL,'Both','4230975214',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Alexander City Poetry Association',NULL,NULL,NULL,0,NULL,NULL,89,'Alexander City Poetry Association',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (96,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Terry-Prentice family','Terry-Prentice family',NULL,NULL,NULL,'5',NULL,'Both','563442745',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Terry-Prentice family',5,NULL,'Dear Terry-Prentice family',2,NULL,'Terry-Prentice family',NULL,NULL,NULL,0,NULL,'Terry-Prentice family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (97,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Andrew','Andrew Müller',NULL,NULL,NULL,'3',NULL,'Both','1251065595',NULL,'Sample Data','Andrew','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Andrew Müller',NULL,NULL,'1958-08-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (98,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Norris','Norris Cruz III',NULL,NULL,NULL,'2',NULL,'Both','1269804686',NULL,'Sample Data','Norris','','Cruz',NULL,4,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Cruz III',NULL,2,NULL,1,'2021-08-01',NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (99,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Blackwell, Megan','Megan Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','1545547017',NULL,'Sample Data','Megan','','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Blackwell',NULL,1,'1948-03-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (100,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Hawaii Empowerment Center','Hawaii Empowerment Center',NULL,NULL,NULL,NULL,NULL,'Both','2701338814',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Hawaii Empowerment Center',NULL,NULL,NULL,0,NULL,NULL,35,'Hawaii Empowerment Center',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (101,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Olsen, Arlyne','Arlyne Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3061476892',NULL,'Sample Data','Arlyne','','Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Olsen',NULL,1,'2018-10-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (102,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Friends Health Fund','Friends Health Fund',NULL,NULL,NULL,'5',NULL,'Both','1168427903',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Friends Health Fund',NULL,NULL,NULL,0,NULL,NULL,NULL,'Friends Health Fund',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (103,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Patel, Carylon','Dr. Carylon Patel',NULL,NULL,NULL,'3',NULL,'Both','1606295742',NULL,'Sample Data','Carylon','U','Patel',4,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Dr. Carylon Patel',NULL,1,'1995-06-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (104,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Kiara','Kiara Jensen',NULL,NULL,NULL,NULL,NULL,'Both','4228592498',NULL,'Sample Data','Kiara','X','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Jensen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (105,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Terry, Scott','Scott Terry Sr.',NULL,NULL,NULL,'3',NULL,'Both','4244412361',NULL,'Sample Data','Scott','P','Terry',NULL,2,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Scott Terry Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (106,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'patelj@lol.com','patelj@lol.com',NULL,NULL,NULL,'4',NULL,'Both','4145652266',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,NULL,1,NULL,'Dear patelj@lol.com',1,NULL,'Dear patelj@lol.com',1,NULL,'patelj@lol.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (107,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Kathleen','Dr. Kathleen Terrell',NULL,NULL,NULL,'4',NULL,'Both','1212297989',NULL,'Sample Data','Kathleen','','Terrell',4,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Dr. Kathleen Terrell',NULL,1,'1952-09-12',1,'2021-01-01',NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (108,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Grant, Rosario','Rosario Grant',NULL,NULL,NULL,NULL,NULL,'Both','2992904466',NULL,'Sample Data','Rosario','G','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Grant',NULL,2,'1979-03-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (109,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Brzęczysław','Brzęczysław Wattson III',NULL,NULL,NULL,'3',NULL,'Both','1189364369',NULL,'Sample Data','Brzęczysław','E','Wattson',NULL,4,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Brzęczysław Wattson III',NULL,2,'1994-03-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (110,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Rebekah','Rebekah Adams',NULL,NULL,NULL,'2',NULL,'Both','323607436',NULL,'Sample Data','Rebekah','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Rebekah Adams',NULL,NULL,'2009-08-06',0,NULL,NULL,NULL,'Rural Food Academy',NULL,NULL,86,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (111,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Samuels, Juliann','Juliann Samuels',NULL,NULL,NULL,NULL,NULL,'Both','3120075857',NULL,'Sample Data','Juliann','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Samuels',NULL,1,NULL,1,'2021-01-28',NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (112,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Jacobs, Teresa','Teresa Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','128468563',NULL,'Sample Data','Teresa','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Teresa Jacobs',NULL,NULL,'1984-08-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (113,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wagner, Juliann','Juliann Wagner',NULL,NULL,NULL,'4',NULL,'Both','2532288095',NULL,'Sample Data','Juliann','W','Wagner',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Wagner',NULL,NULL,'1996-05-09',0,NULL,NULL,NULL,'Global Education Systems',NULL,NULL,182,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (114,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'lterrell14@mymail.com','lterrell14@mymail.com',NULL,NULL,NULL,'5',NULL,'Both','4066193161',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear lterrell14@mymail.com',1,NULL,'Dear lterrell14@mymail.com',1,NULL,'lterrell14@mymail.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (115,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Adams, Angelika','Angelika Adams',NULL,NULL,NULL,'2',NULL,'Both','347992528',NULL,'Sample Data','Angelika','I','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Angelika Adams',NULL,NULL,'1963-05-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (116,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Betty','Ms. Betty Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3171896776',NULL,'Sample Data','Betty','P','Olsen',2,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Ms. Betty Olsen',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (117,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'shermant@notmail.biz','shermant@notmail.biz',NULL,NULL,NULL,NULL,NULL,'Both','3989446187',NULL,'Sample Data',NULL,NULL,NULL,3,NULL,NULL,NULL,1,NULL,'Dear shermant@notmail.biz',1,NULL,'Dear shermant@notmail.biz',1,NULL,'shermant@notmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (118,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Norris','Dr. Norris Samuels',NULL,NULL,NULL,'1',NULL,'Both','729903079',NULL,'Sample Data','Norris','','Samuels',4,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Dr. Norris Samuels',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (119,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'wattson.betty@fishmail.co.uk','wattson.betty@fishmail.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','2879494088',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear wattson.betty@fishmail.co.uk',1,NULL,'Dear wattson.betty@fishmail.co.uk',1,NULL,'wattson.betty@fishmail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (120,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'samuels.alexia57@infomail.org','samuels.alexia57@infomail.org',NULL,NULL,NULL,NULL,NULL,'Both','2586307204',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear samuels.alexia57@infomail.org',1,NULL,'Dear samuels.alexia57@infomail.org',1,NULL,'samuels.alexia57@infomail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (121,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'andrewb81@fakemail.org','andrewb81@fakemail.org',NULL,NULL,NULL,'5',NULL,'Both','3762315372',NULL,'Sample Data',NULL,NULL,NULL,3,2,NULL,NULL,1,NULL,'Dear andrewb81@fakemail.org',1,NULL,'Dear andrewb81@fakemail.org',1,NULL,'andrewb81@fakemail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (122,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jones, Ivey','Ms. Ivey Jones',NULL,NULL,NULL,NULL,NULL,'Both','2553949763',NULL,'Sample Data','Ivey','','Jones',2,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ms. Ivey Jones',NULL,1,'1945-06-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (123,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jones family','Jones family',NULL,NULL,NULL,'4',NULL,'Both','1110516799',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jones family',5,NULL,'Dear Jones family',2,NULL,'Jones family',NULL,NULL,NULL,0,NULL,'Jones family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (124,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels family','Samuels family',NULL,NULL,NULL,'2',NULL,'Both','350459294',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels family',5,NULL,'Dear Samuels family',2,NULL,'Samuels family',NULL,NULL,NULL,0,NULL,'Samuels family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (125,'Organization',NULL,1,0,0,0,1,0,NULL,NULL,'Locust Hill Technology Collective','Locust Hill Technology Collective',NULL,NULL,NULL,'4',NULL,'Both','135820058',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Locust Hill Technology Collective',NULL,NULL,NULL,0,NULL,NULL,17,'Locust Hill Technology Collective',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (126,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Josefa','Dr. Josefa Prentice',NULL,NULL,NULL,'4',NULL,'Both','3169036877',NULL,'Sample Data','Josefa','H','Prentice',4,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Dr. Josefa Prentice',NULL,NULL,'1963-01-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (127,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Terry-Prentice, Mei','Mei Terry-Prentice',NULL,NULL,NULL,'3',NULL,'Both','3550102875',NULL,'Sample Data','Mei','','Terry-Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mei Terry-Prentice',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (128,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wattson, Josefa','Josefa Wattson',NULL,NULL,NULL,NULL,NULL,'Both','3075737461',NULL,'Sample Data','Josefa','G','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Josefa Wattson',NULL,1,'1993-07-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (129,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Global Arts Fellowship','Global Arts Fellowship',NULL,NULL,NULL,NULL,NULL,'Both','373712732',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Global Arts Fellowship',NULL,NULL,NULL,0,NULL,NULL,67,'Global Arts Fellowship',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (130,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Elina','Elina Lee',NULL,NULL,NULL,NULL,NULL,'Both','2171390840',NULL,'Sample Data','Elina','','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina Lee',NULL,NULL,'1972-05-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (131,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Maria','Maria Terry',NULL,NULL,NULL,'2',NULL,'Both','258657909',NULL,'Sample Data','Maria','','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Maria Terry',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (132,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jensen, Rosario','Dr. Rosario Jensen',NULL,NULL,NULL,NULL,NULL,'Both','3904971531',NULL,'Sample Data','Rosario','A','Jensen',4,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Dr. Rosario Jensen',NULL,2,'1974-10-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (133,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Samuels family','Samuels family',NULL,NULL,NULL,NULL,NULL,'Both','350459294',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels family',5,NULL,'Dear Samuels family',2,NULL,'Samuels family',NULL,NULL,NULL,0,NULL,'Samuels family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (134,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Sierra Food Services','Sierra Food Services',NULL,NULL,NULL,'1',NULL,'Both','743110705',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Sierra Food Services',NULL,NULL,NULL,0,NULL,NULL,NULL,'Sierra Food Services',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (135,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Russell','Russell Samuels',NULL,NULL,NULL,NULL,NULL,'Both','3958135330',NULL,'Sample Data','Russell','I','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Samuels',NULL,2,'2004-05-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (136,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Tanya','Ms. Tanya Samuels',NULL,NULL,NULL,NULL,NULL,'Both','147060242',NULL,'Sample Data','Tanya','','Samuels',2,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Ms. Tanya Samuels',NULL,NULL,'1951-04-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (137,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Kathlyn','Kathlyn Jameson',NULL,NULL,NULL,NULL,NULL,'Both','1165214036',NULL,'Sample Data','Kathlyn','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathlyn',1,NULL,'Dear Kathlyn',1,NULL,'Kathlyn Jameson',NULL,1,'1990-08-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (138,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Terry, Iris','Mrs. Iris Terry',NULL,NULL,NULL,'4',NULL,'Both','2685110672',NULL,'Sample Data','Iris','H','Terry',1,NULL,NULL,NULL,1,NULL,'Dear Iris',1,NULL,'Dear Iris',1,NULL,'Mrs. Iris Terry',NULL,NULL,'1997-07-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (139,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Ivanov, Bob','Bob Ivanov II',NULL,NULL,NULL,'1',NULL,'Both','2246956398',NULL,'Sample Data','Bob','H','Ivanov',NULL,3,NULL,NULL,1,NULL,'Dear Bob',1,NULL,'Dear Bob',1,NULL,'Bob Ivanov II',NULL,2,'1991-07-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (140,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Terry, Josefa','Ms. Josefa Terry',NULL,NULL,NULL,'4',NULL,'Both','2483410721',NULL,'Sample Data','Josefa','A','Terry',2,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Ms. Josefa Terry',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (141,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Urban Empowerment Partnership','Urban Empowerment Partnership',NULL,NULL,NULL,NULL,NULL,'Both','2325656105',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Urban Empowerment Partnership',NULL,NULL,NULL,0,NULL,NULL,56,'Urban Empowerment Partnership',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (142,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Patel, Elbert','Mr. Elbert Patel III',NULL,NULL,NULL,'2',NULL,'Both','2164922981',NULL,'Sample Data','Elbert','V','Patel',3,4,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Mr. Elbert Patel III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (143,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Terrell, Tanya','Tanya Terrell',NULL,NULL,NULL,'5',NULL,'Both','1604022989',NULL,'Sample Data','Tanya','T','Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Terrell',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (144,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Billy','Dr. Billy Jensen Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1055811033',NULL,'Sample Data','Billy','','Jensen',4,1,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Dr. Billy Jensen Jr.',NULL,2,'1982-06-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (145,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Łąchowski-Jameson, Teddy','Teddy Łąchowski-Jameson Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1651965315',NULL,'Sample Data','Teddy','N','Łąchowski-Jameson',NULL,1,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Łąchowski-Jameson Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (146,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Yucca Valley Advocacy Fellowship','Yucca Valley Advocacy Fellowship',NULL,NULL,NULL,NULL,NULL,'Both','521165788',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Yucca Valley Advocacy Fellowship',NULL,NULL,NULL,0,NULL,NULL,195,'Yucca Valley Advocacy Fellowship',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (147,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Jackson','Jackson Wagner Sr.',NULL,NULL,NULL,NULL,NULL,'Both','541654999',NULL,'Sample Data','Jackson','D','Wagner',NULL,2,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Jackson Wagner Sr.',NULL,2,'2005-04-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (148,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen-Jacobs family','Olsen-Jacobs family',NULL,NULL,NULL,NULL,NULL,'Both','3630460091',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Olsen-Jacobs family',5,NULL,'Dear Olsen-Jacobs family',2,NULL,'Olsen-Jacobs family',NULL,NULL,NULL,0,NULL,'Olsen-Jacobs family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (149,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Rodrigo','Rodrigo Jensen',NULL,NULL,NULL,'1',NULL,'Both','4133351927',NULL,'Sample Data','Rodrigo','T','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Jensen',NULL,2,'1967-04-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (150,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'cooperc58@example.co.in','cooperc58@example.co.in',NULL,NULL,NULL,'3',NULL,'Both','2347487222',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear cooperc58@example.co.in',1,NULL,'Dear cooperc58@example.co.in',1,NULL,'cooperc58@example.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (151,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Patel, Scarlet','Dr. Scarlet Patel',NULL,NULL,NULL,NULL,NULL,'Both','2187618008',NULL,'Sample Data','Scarlet','G','Patel',4,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Dr. Scarlet Patel',NULL,NULL,'1984-01-29',0,NULL,NULL,NULL,'Boise Peace Partners',NULL,NULL,87,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (152,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Maria','Dr. Maria Müller',NULL,NULL,NULL,'5',NULL,'Both','1779623715',NULL,'Sample Data','Maria','','Müller',4,NULL,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Dr. Maria Müller',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (153,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Patel, Margaret','Dr. Margaret Patel',NULL,NULL,NULL,'2',NULL,'Both','1725329639',NULL,'Sample Data','Margaret','','Patel',4,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Dr. Margaret Patel',NULL,1,'1991-12-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (154,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Samuels, Sanford','Sanford Samuels',NULL,NULL,NULL,NULL,NULL,'Both','4251375550',NULL,'Sample Data','Sanford','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Samuels',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (155,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Roberts, Jed','Jed Roberts III',NULL,NULL,NULL,'1',NULL,'Both','1541419664',NULL,'Sample Data','Jed','J','Roberts',NULL,4,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Jed Roberts III',NULL,2,'1980-10-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (156,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Sherman','Dr. Sherman Jameson III',NULL,NULL,NULL,'5',NULL,'Both','3618683282',NULL,'Sample Data','Sherman','R','Jameson',4,4,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Dr. Sherman Jameson III',NULL,2,'1981-11-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (157,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov, Elizabeth','Elizabeth Dimitrov',NULL,NULL,NULL,NULL,NULL,'Both','2520947662',NULL,'Sample Data','Elizabeth','','Dimitrov',NULL,NULL,NULL,NULL,1,NULL,'Dear Elizabeth',1,NULL,'Dear Elizabeth',1,NULL,'Elizabeth Dimitrov',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (158,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen family','Nielsen family',NULL,NULL,NULL,'2',NULL,'Both','766698874',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Nielsen family',5,NULL,'Dear Nielsen family',2,NULL,'Nielsen family',NULL,NULL,NULL,0,NULL,'Nielsen family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (159,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Ivey','Mrs. Ivey Jensen',NULL,NULL,NULL,'1',NULL,'Both','4078718550',NULL,'Sample Data','Ivey','','Jensen',1,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Mrs. Ivey Jensen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (160,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Jerome','Mr. Jerome Olsen',NULL,NULL,NULL,NULL,NULL,'Both','2369616352',NULL,'Sample Data','Jerome','','Olsen',3,NULL,NULL,NULL,1,NULL,'Dear Jerome',1,NULL,'Dear Jerome',1,NULL,'Mr. Jerome Olsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (161,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones, Jina','Mrs. Jina Jones',NULL,NULL,NULL,NULL,NULL,'Both','1835869309',NULL,'Sample Data','Jina','V','Jones',1,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Mrs. Jina Jones',NULL,NULL,'1988-09-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (162,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Łąchowski-Jameson family','Łąchowski-Jameson family',NULL,NULL,NULL,'5',NULL,'Both','279148740',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Łąchowski-Jameson family',5,NULL,'Dear Łąchowski-Jameson family',2,NULL,'Łąchowski-Jameson family',NULL,NULL,NULL,0,NULL,'Łąchowski-Jameson family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (163,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Valene','Mrs. Valene Grant',NULL,NULL,NULL,NULL,NULL,'Both','309020900',NULL,'Sample Data','Valene','','Grant',1,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Mrs. Valene Grant',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (164,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Samuels, Shad','Shad Samuels III',NULL,NULL,NULL,'5',NULL,'Both','3610852394',NULL,'Sample Data','Shad','','Samuels',NULL,4,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Samuels III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (165,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'olsen.winford55@sample.net','olsen.winford55@sample.net',NULL,NULL,NULL,'3',NULL,'Both','4094685611',NULL,'Sample Data',NULL,NULL,NULL,NULL,3,NULL,NULL,1,NULL,'Dear olsen.winford55@sample.net',1,NULL,'Dear olsen.winford55@sample.net',1,NULL,'olsen.winford55@sample.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (166,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Community Advocacy Solutions','Community Advocacy Solutions',NULL,NULL,NULL,'2',NULL,'Both','1040914150',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Community Advocacy Solutions',NULL,NULL,NULL,0,NULL,NULL,50,'Community Advocacy Solutions',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (167,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Lincoln Technology Collective','Lincoln Technology Collective',NULL,NULL,NULL,NULL,NULL,'Both','1001606668',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Lincoln Technology Collective',NULL,NULL,NULL,0,NULL,NULL,7,'Lincoln Technology Collective',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (168,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice-Olsen, Herminia','Dr. Herminia Prentice-Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3697608246',NULL,'Sample Data','Herminia','','Prentice-Olsen',4,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Dr. Herminia Prentice-Olsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (169,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Snow Shoe Arts Association','Snow Shoe Arts Association',NULL,NULL,NULL,NULL,NULL,'Both','492788617',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Snow Shoe Arts Association',NULL,NULL,NULL,0,NULL,NULL,58,'Snow Shoe Arts Association',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (170,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson-Terrell, Esta','Esta Samson-Terrell',NULL,NULL,NULL,'1',NULL,'Both','1119370337',NULL,'Sample Data','Esta','','Samson-Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Esta Samson-Terrell',NULL,1,'1975-06-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (171,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Russell','Russell Wagner',NULL,NULL,NULL,NULL,NULL,'Both','3304810540',NULL,'Sample Data','Russell','','Wagner',NULL,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Wagner',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (172,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Grant, Jed','Dr. Jed Grant',NULL,NULL,NULL,'1',NULL,'Both','2644056120',NULL,'Sample Data','Jed','','Grant',4,NULL,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Dr. Jed Grant',NULL,2,'1997-10-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (173,'Organization',NULL,1,1,0,0,0,0,NULL,NULL,'Miccosukee Cpo Health Network','Miccosukee Cpo Health Network',NULL,NULL,NULL,NULL,NULL,'Both','1901968302',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Miccosukee Cpo Health Network',NULL,NULL,NULL,0,NULL,NULL,NULL,'Miccosukee Cpo Health Network',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (174,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen family','Jensen family',NULL,NULL,NULL,NULL,NULL,'Both','797435572',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jensen family',5,NULL,'Dear Jensen family',2,NULL,'Jensen family',NULL,NULL,NULL,0,NULL,'Jensen family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (175,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Prentice, Toby','Dr. Toby Prentice',NULL,NULL,NULL,NULL,NULL,'Both','3734648232',NULL,'Sample Data','Toby','','Prentice',4,NULL,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Dr. Toby Prentice',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (176,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Sanford','Dr. Sanford Olsen',NULL,NULL,NULL,'1',NULL,'Both','2408737591',NULL,'Sample Data','Sanford','Z','Olsen',4,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Dr. Sanford Olsen',NULL,2,'1989-06-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (177,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jameson-Barkley, Sanford','Mr. Sanford Jameson-Barkley',NULL,NULL,NULL,'4',NULL,'Both','276194408',NULL,'Sample Data','Sanford','P','Jameson-Barkley',3,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Mr. Sanford Jameson-Barkley',NULL,NULL,'1981-09-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (178,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'nielseni@notmail.biz','nielseni@notmail.biz',NULL,NULL,NULL,'5',NULL,'Both','2235054562',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,NULL,1,NULL,'Dear nielseni@notmail.biz',1,NULL,'Dear nielseni@notmail.biz',1,NULL,'nielseni@notmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (179,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'wagner.toby@fishmail.org','wagner.toby@fishmail.org',NULL,NULL,NULL,'5',NULL,'Both','252863661',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear wagner.toby@fishmail.org',1,NULL,'Dear wagner.toby@fishmail.org',1,NULL,'wagner.toby@fishmail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (180,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Ashley','Ashley Cooper',NULL,NULL,NULL,'4',NULL,'Both','495032298',NULL,'Sample Data','Ashley','','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Cooper',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (181,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Kathlyn','Kathlyn Roberts',NULL,NULL,NULL,NULL,NULL,'Both','2944584126',NULL,'Sample Data','Kathlyn','','Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathlyn',1,NULL,'Dear Kathlyn',1,NULL,'Kathlyn Roberts',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (182,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Global Education Systems','Global Education Systems',NULL,NULL,NULL,'4',NULL,'Both','369166162',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Global Education Systems',NULL,NULL,NULL,0,NULL,NULL,113,'Global Education Systems',NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (183,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'barryjones@infomail.info','barryjones@infomail.info',NULL,NULL,NULL,'5',NULL,'Both','3019916473',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,NULL,1,NULL,'Dear barryjones@infomail.info',1,NULL,'Dear barryjones@infomail.info',1,NULL,'barryjones@infomail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (184,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Adams family','Adams family',NULL,NULL,NULL,'5',NULL,'Both','1515323104',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Adams family',5,NULL,'Dear Adams family',2,NULL,'Adams family',NULL,NULL,NULL,0,NULL,'Adams family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (185,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Truman','Truman Cooper III',NULL,NULL,NULL,NULL,NULL,'Both','938772676',NULL,'Sample Data','Truman','','Cooper',NULL,4,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Truman Cooper III',NULL,2,'1965-09-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (186,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Troy','Troy Müller',NULL,NULL,NULL,NULL,NULL,'Both','2080888850',NULL,'Sample Data','Troy','H','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Troy Müller',NULL,2,'2002-11-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (187,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Rodrigo','Rodrigo Samuels',NULL,NULL,NULL,NULL,NULL,'Both','1345988157',NULL,'Sample Data','Rodrigo','Q','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Samuels',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (188,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'lawerencer92@testmail.co.uk','lawerencer92@testmail.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','585163192',NULL,'Sample Data',NULL,NULL,NULL,3,NULL,NULL,NULL,1,NULL,'Dear lawerencer92@testmail.co.uk',1,NULL,'Dear lawerencer92@testmail.co.uk',1,NULL,'lawerencer92@testmail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (189,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Cooper family','Cooper family',NULL,NULL,NULL,'2',NULL,'Both','1133003930',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Cooper family',5,NULL,'Dear Cooper family',2,NULL,'Cooper family',NULL,NULL,NULL,0,NULL,'Cooper family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (190,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'bachman.g.rosario26@testmail.co.uk','bachman.g.rosario26@testmail.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','3077201033',NULL,'Sample Data',NULL,NULL,NULL,NULL,3,NULL,NULL,1,NULL,'Dear bachman.g.rosario26@testmail.co.uk',1,NULL,'Dear bachman.g.rosario26@testmail.co.uk',1,NULL,'bachman.g.rosario26@testmail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (191,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Brigette','Brigette Bachman',NULL,NULL,NULL,'2',NULL,'Both','692911964',NULL,'Sample Data','Brigette','C','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Brigette Bachman',NULL,1,'1976-03-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (192,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Samson-Terrell family','Samson-Terrell family',NULL,NULL,NULL,NULL,NULL,'Both','4200246244',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samson-Terrell family',5,NULL,'Dear Samson-Terrell family',2,NULL,'Samson-Terrell family',NULL,NULL,NULL,0,NULL,'Samson-Terrell family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (193,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Müller family','Müller family',NULL,NULL,NULL,NULL,NULL,'Both','1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (194,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'olsen.allen@fishmail.co.nz','olsen.allen@fishmail.co.nz',NULL,NULL,NULL,'4',NULL,'Both','616930330',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear olsen.allen@fishmail.co.nz',1,NULL,'Dear olsen.allen@fishmail.co.nz',1,NULL,'olsen.allen@fishmail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (195,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson, Ashley','Ashley Wilson',NULL,NULL,NULL,NULL,NULL,'Both','1909485085',NULL,'Sample Data','Ashley','N','Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Wilson',NULL,1,NULL,0,NULL,NULL,NULL,'Yucca Valley Advocacy Fellowship',NULL,NULL,146,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (196,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Patel, Ashley','Ashley Patel',NULL,NULL,NULL,'3',NULL,'Both','3816127456',NULL,'Sample Data','Ashley','E','Patel',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Patel',NULL,1,'1964-01-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (197,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Kathleen','Kathleen Jensen',NULL,NULL,NULL,'3',NULL,'Both','2413791663',NULL,'Sample Data','Kathleen','Q','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Jensen',NULL,1,'1969-02-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (198,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Olsen-Jacobs, Nicole','Nicole Olsen-Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','2599520308',NULL,'Sample Data','Nicole','','Olsen-Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Olsen-Jacobs',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:55'),
+ (199,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Olsen, Kenny','Mr. Kenny Olsen II',NULL,NULL,NULL,'4',NULL,'Both','293860292',NULL,'Sample Data','Kenny','K','Olsen',3,3,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Mr. Kenny Olsen II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (200,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Smith, Kiara','Kiara Smith',NULL,NULL,NULL,NULL,NULL,'Both','550960995',NULL,'Sample Data','Kiara','T','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Smith',NULL,NULL,'1944-07-30',1,'2021-02-16',NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54'),
+ (201,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wagner, Jay','Jay Wagner III',NULL,NULL,NULL,NULL,NULL,'Both','3927011642',NULL,'Sample Data','Jay','','Wagner',NULL,4,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Jay Wagner III',NULL,2,'1960-12-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2021-10-14 04:23:54','2021-10-14 04:23:54');
 /*!40000 ALTER TABLE `civicrm_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2135,86 +2138,86 @@ INSERT INTO `civicrm_contribution` (`id`, `contact_id`, `financial_type_id`, `co
  (11,43,1,NULL,1,'2009-07-01 12:55:41',0.00,200.00,NULL,NULL,'PL43II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
  (12,32,1,NULL,1,'2009-10-01 11:53:50',0.00,200.00,NULL,NULL,'PL32I',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
  (13,32,1,NULL,1,'2009-12-01 12:55:41',0.00,200.00,NULL,NULL,'PL32II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (14,124,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'265d4a9ad0de9fd2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (15,101,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'f7157b3b3fa5c283',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (16,24,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'57e38d761e59a721',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (17,14,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'88168b573cb3617a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (18,10,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'f00c6d2a40dc2a64',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (19,106,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'b86c8bcd44bc0a1e',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (20,47,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'a095a0d306cda22f',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (21,17,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'bd9eaeec577b8efc',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (22,18,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'d9d191b9bea2b62e',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (23,114,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'339a7db343e94bc2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (24,11,2,NULL,1,'2021-07-26 14:08:49',0.00,1200.00,NULL,NULL,'d329a07dc00e1ca0',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (25,168,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'ae8e0c78ac7fc6f3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (26,199,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'6db138fa4b2db889',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (27,25,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'1aade87b8799b7f0',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (28,72,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'283aee0df5c8c237',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (29,115,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'9fbafd4b5679a855',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (30,119,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'91ccd804f3b76ec5',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (31,67,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'60ab832261bf5c1b',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (32,89,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'a3221cb2433d03cd',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (33,148,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'40fbece99ed55b19',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (34,71,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'46c4a6820032e43a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (35,68,2,NULL,1,'2021-07-26 14:08:49',0.00,1200.00,NULL,NULL,'14827126e69c3dd2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (36,62,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'9235a2719cf32e3f',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (37,95,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'d42cdfc830be6a93',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (38,69,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'73a6aaa10274b3c1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (39,16,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'faeb1d70680f56d5',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (40,171,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'b336bcfd69b8b819',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (41,122,2,NULL,1,'2021-07-26 14:08:49',0.00,50.00,NULL,NULL,'8fc57cfbdd77acd5',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (42,111,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'24c041fa93005434',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (43,182,2,NULL,1,'2021-07-26 14:08:49',0.00,100.00,NULL,NULL,'c17dffac419ffdcf',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (45,3,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'9e7be43ff5f873d3',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (46,4,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'be9a3cc452954f73',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (47,6,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'f983f223240219db',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (48,19,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'c2540070bae2289b',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (49,21,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'cd6cd9487ab311f8',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (50,23,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'733de302f9256a05',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (51,25,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'b5c122ed978c1c6f',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (52,27,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'dd90ceb664d90bea',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (53,41,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'a8f60d370111743d',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (54,43,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'3c0eed9086036f19',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (55,49,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'27c59bebfb548249',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (56,53,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'33ba84e7587ebc6c',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (57,54,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'26ed41bc3d4d6c3d',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (58,55,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'c79544d018331a7a',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (59,66,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'c6e7f4e18e693f6f',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (60,68,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'dd83f3d146ff5e8c',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (61,70,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'744c965d085afa74',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (62,75,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'6d14827b0441bfe8',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (63,83,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'10b466c494c963e1',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (64,86,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'349a5c60c0808612',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (65,91,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'e8744fe637a6ba6e',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (66,93,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'014a8b245afaa58c',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (67,98,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'8b323d9a9a19cb07',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (68,102,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'3aafb20b38f0f470',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (69,105,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'019fada0c0e1d439',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (70,110,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'5a759e1e7746035c',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (71,112,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'20bcbdfe99fcda71',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (72,113,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'68e88dd16e0922d0',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (73,116,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'bf733e3bafbde15e',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (74,117,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'fce8ba604a6cec44',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (75,121,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'8a0509d7c745c313',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (76,124,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'271e0a56c2353e1d',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (77,131,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'17df6e7505bf904f',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (78,142,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'6128d1f2f2ef28d2',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (79,144,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'aa15ef80bdb20881',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (80,149,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'e0f26a01d7162233',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (81,152,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'b004479cec4aba24',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (82,158,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'e300b9a6923825d1',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (83,165,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'2082bfc0bf4e9a6e',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (84,166,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'2ea74cf5414ef9e4',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (85,167,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'f9ed2b4c61761269',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (86,170,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'0759cde1834b181e',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (87,173,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'108a57b20490daed',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (88,176,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'5f21e73f191d5cbf',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (89,183,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'466bf29da2613307',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (90,190,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'e79204c85376e81d',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (91,197,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'79d4eebfbb24b666',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (92,199,4,NULL,1,'2021-07-26 14:08:50',0.00,800.00,NULL,NULL,'20fca987b08ebe96',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (93,200,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'365932a74590a754',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (94,201,4,NULL,1,'2021-07-26 14:08:50',0.00,50.00,NULL,NULL,'b20dfffdc357e928',NULL,NULL,'USD',NULL,NULL,'2021-07-26 14:08:50',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0);
+ (14,90,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'336a2be8849c513b',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (15,185,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'b41b63804835db17',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (16,117,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'30707bdd0036a11d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (17,63,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'f615441da9d778ad',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (18,168,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'465dd61e8780c563',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (19,195,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'46fee5a7a1a4453a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (20,194,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'a52e614bdf2191c4',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (21,51,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'6aedd8d8c265eb06',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (22,132,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'08b4b1cead3c903c',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (23,23,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'5581286b492d7f1c',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (24,152,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'16f8ef0cfafa0255',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (25,17,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'2fc6b73e9113a98b',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (26,44,2,NULL,1,'2021-10-13 21:23:55',0.00,100.00,NULL,NULL,'6deef275e898d941',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (27,56,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'ea45eaf33f4496a7',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (28,85,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'a061951fffb181c6',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (29,4,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'3beb1ae16bed4dfc',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (30,127,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'aba1ebf533a192fb',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (31,30,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'e51f787577a6158d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (32,180,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'3c218c08992a227d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (33,107,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'953b38a2fd65aaca',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (34,113,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'76aab48c99f3cdf4',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (35,92,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'53fd3ff288a6ac48',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (36,70,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'ee89eefdbc2b0d17',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (37,16,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'ac2bb1a3a4f21eae',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (38,201,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'9ddf1f7d015bf77d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (39,5,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'a98fb1fdf1643ccd',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (40,58,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'bf0893884bf6927c',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (41,19,2,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'1bbc4d49e4d7e15b',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (42,170,2,NULL,1,'2021-10-13 21:23:55',0.00,1200.00,NULL,NULL,'e088fc325e7ced95',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (43,159,2,NULL,1,'2021-10-13 21:23:55',0.00,1200.00,NULL,NULL,'fc96e364fc5260ff',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (45,12,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'89474d05c5f39994',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (46,13,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'2cb5b9ff43ae28cb',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (47,18,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'c94659092628227a',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (48,21,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'5b09c886c3bdf851',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (49,22,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'b5bdcad709c2bfab',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (50,33,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'ae364912ef6a7985',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (51,35,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'44cae8db1b816fc2',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (52,41,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'769b8756d7717132',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (53,46,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'2ab849c71a69961d',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (54,50,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'5a56d33babcf8687',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (55,51,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'b3361ee994d7fa68',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (56,55,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'bf018db8cd3303b4',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (57,60,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'0f9949d2ec3ff270',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (58,64,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'d788f0e3c987ead1',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (59,73,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'f3e5305d70fc5133',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (60,82,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'fccdb9b92972d68e',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (61,84,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'97a7b19fd9d63661',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (62,89,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'b628a833883bcab0',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (63,93,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'fa9e4c3fa2ad6656',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (64,100,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'663cac64e12684f1',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (65,103,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'e4037df9657e1b24',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (66,104,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'b817fae05c14837d',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (67,107,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'bcc16c72b720d2e2',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (68,110,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'095a67c3d040d66b',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (69,114,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'d8e1bc59b753a862',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (70,117,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'84bc4b83a05daf30',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (71,122,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'7853f510147594df',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (72,123,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'882aef032e8bb52e',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (73,125,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'09bf84d91a24d1db',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (74,129,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'6c2825d1a0c88cd7',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (75,133,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'ef76d9d0d293fa6b',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (76,136,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'7841bcf422e3f93c',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (77,142,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'005345d7deb28d36',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (78,143,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'e5f88e7dd97bc6d2',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (79,144,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'027ce2b64fc8841d',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (80,147,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'03214fc447c50a52',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (81,151,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'b8d570025384a9eb',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (82,153,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'6904fcf8eabda81d',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (83,155,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'e70812efd9b41bb2',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (84,157,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'78e6b8f15edc4f0c',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (85,158,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'6520927bc905b26e',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (86,166,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'094887ad144afe0e',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (87,171,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'b66600820dc92da1',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (88,179,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'5b685284348b5b12',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (89,184,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'78485ffadc4f02ab',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (90,185,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'b871a4dcc2ab2f92',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (91,187,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'dfe6d72cceddad1e',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (92,191,4,NULL,1,'2021-10-13 21:23:55',0.00,50.00,NULL,NULL,'96706b843d760190',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (93,196,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'e167222a259f3cc4',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (94,200,4,NULL,1,'2021-10-13 21:23:55',0.00,800.00,NULL,NULL,'25e79f708ae0b0dc',NULL,NULL,'USD',NULL,NULL,'2021-10-13 21:23:55',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0);
 /*!40000 ALTER TABLE `civicrm_contribution` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2256,8 +2259,8 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_contribution_soft` WRITE;
 /*!40000 ALTER TABLE `civicrm_contribution_soft` DISABLE KEYS */;
 INSERT INTO `civicrm_contribution_soft` (`id`, `contribution_id`, `contact_id`, `amount`, `currency`, `pcp_id`, `pcp_display_in_roll`, `pcp_roll_nickname`, `pcp_personal_note`, `soft_credit_type_id`) VALUES
- (1,8,39,10.00,'USD',1,1,'Jones Family','Helping Hands',10),
- (2,9,39,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10);
+ (1,8,48,10.00,'USD',1,1,'Jones Family','Helping Hands',10),
+ (2,9,48,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10);
 /*!40000 ALTER TABLE `civicrm_contribution_soft` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2866,7 +2869,7 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_domain` WRITE;
 /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */;
 INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES
- (1,'Default Domain Name',NULL,'5.42.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
+ (1,'Default Domain Name',NULL,'5.43.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
 /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2878,207 +2881,192 @@ LOCK TABLES `civicrm_email` WRITE;
 /*!40000 ALTER TABLE `civicrm_email` DISABLE KEYS */;
 INSERT INTO `civicrm_email` (`id`, `contact_id`, `location_type_id`, `email`, `is_primary`, `is_billing`, `on_hold`, `is_bulkmail`, `hold_date`, `reset_date`, `signature_text`, `signature_html`) VALUES
  (1,1,1,'fixme.domainemail@example.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (2,60,1,'russellp@testmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (3,94,1,'mcreynolds.kenny33@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (4,94,1,'kennymcreynolds@infomail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (5,81,1,'gonzlezm@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (6,81,1,'megang18@testing.info',0,0,0,0,NULL,NULL,NULL,NULL),
- (7,195,1,'estat36@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (8,195,1,'terry.esta30@example.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (9,69,1,'blackwellb@mymail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (10,69,1,'blackwellb40@lol.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (11,6,1,'cruz.n.brittney21@lol.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (12,6,1,'brittneycruz@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (13,173,1,'yadav.barry@spamalot.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (14,173,1,'yadav.v.barry20@notmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (15,159,1,'daz.g.sharyn@airmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (16,159,1,'dazs@airmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (17,185,1,'valenedimitrov@example.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (18,185,1,'vdimitrov@spamalot.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (19,19,1,'wagner.r.landon49@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (20,19,1,'landonwagner@spamalot.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (21,103,1,'rdaz@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (22,10,1,'jensenm@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (23,119,1,'smith.sherman92@testing.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (24,137,1,'roberts.rodrigo1@fakemail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (25,137,1,'robertsr@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (26,52,1,'leek87@testing.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (27,30,1,'jacobs.erik34@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (28,171,1,'chowskij@testing.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (29,171,1,'juliannchowski@mymail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (30,181,1,'cooper.ashley37@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (31,27,1,'yadav.jackson@lol.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (32,27,1,'jacksonyadav@sample.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (33,17,1,'wilson.claudio25@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (34,17,1,'ct.wilson@fakemail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (35,115,1,'terryk@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (36,115,1,'terry.kiara@fakemail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (37,201,1,'barryz@sample.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (38,201,1,'barryzope22@example.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (39,166,1,'andrewwattson@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (40,138,1,'wagner.margaret11@sample.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (41,138,1,'mwagner35@airmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (42,61,1,'reynoldss@sample.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (43,56,1,'adamsb@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (44,71,1,'lareed@notmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (45,71,1,'deforest.r.laree79@lol.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (46,32,1,'beulan@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (47,32,1,'bnielsen17@infomail.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (48,21,1,'jensen.beula29@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (49,49,1,'kb.jameson@example.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (50,49,1,'kb.jameson83@sample.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (51,11,1,'robertss51@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (52,78,1,'rebekaha78@example.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (53,78,1,'rebekaha34@testmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (54,133,1,'jeromeg3@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (55,133,1,'gonzlez.jerome@testing.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (56,184,1,'ashleymcreynolds@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (57,184,1,'ashleymcreynolds11@lol.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (58,198,1,'lawerencemcreynolds39@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (59,55,1,'smith.barry@lol.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (60,111,1,'bachmana@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (61,35,1,'jedj1@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (62,50,1,'jjones@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (63,134,1,'ashliebachman@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (64,134,1,'bachmana73@testing.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (65,114,1,'jameson.sharyn@lol.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (66,175,1,'terry.margaret2@fishmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (67,175,1,'terry.margaret74@lol.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (68,90,1,'wilson.sanford@infomail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (69,90,1,'wilson.sanford27@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (70,80,1,'samuels.laree@spamalot.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (71,80,1,'samuels.laree8@lol.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (72,193,1,'eleonoradams1@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (73,193,1,'adams.eleonor40@sample.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (74,128,1,'lareedeforest@spamalot.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (75,197,1,'shaunag@infomail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (76,169,1,'alidacooper@lol.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (77,169,1,'acooper@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (78,126,1,'wattson.z.brigette@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (79,145,1,'ls.jacobs88@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (80,145,1,'jacobsl@sample.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (81,72,1,'norrisjensen@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (82,72,1,'nm.jensen@notmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (83,192,1,'prentice-terrell.sherman@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (84,192,1,'prentice-terrell.l.sherman@mymail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (85,95,1,'terrelli51@airmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (86,124,1,'terrell.santina@infomail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (87,96,1,'chowskil68@lol.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (88,96,1,'lawerencechowski92@example.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (89,79,1,'lyadav35@notmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (90,79,1,'lyadav@fishmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
- (91,62,1,'maxwell@testmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (92,62,1,'chowski-yadav.maxwell75@sample.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (93,148,1,'chowski-yadav.arlyne@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (94,3,1,'mller.rolando66@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (95,150,1,'mllerb@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (96,150,1,'mller.brittney62@infomail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (97,100,1,'nielsenj@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (98,100,1,'nielsen.jackson90@testing.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (99,24,1,'es.nielsen@fakemail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (100,117,1,'junkon@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (101,117,1,'nielsen.junko19@lol.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (102,87,1,'olsenr@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (103,82,1,'felishaolsen@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (104,82,1,'felishaolsen11@testmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (105,104,1,'olsenj@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (106,139,1,'olsenm@testing.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (107,12,1,'angelikam@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (108,176,1,'mller.b.ray49@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (109,67,1,'princessp46@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (110,106,1,'parkerj@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (111,106,1,'jx.parker@spamalot.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (112,59,1,'parker.e.junko@sample.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (113,59,1,'junkop96@testmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (114,116,1,'rosariod@sample.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (115,116,1,'rosariod@airmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (116,189,1,'deforestf@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (117,189,1,'fo.deforest42@sample.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (118,142,1,'deforest.l.eleonor44@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (119,142,1,'eleonord@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (120,140,1,'brzczysawterry@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (121,140,1,'terryb67@notmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (122,47,1,'rosariot82@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (123,105,1,'heiditerry@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (124,105,1,'terryh35@infomail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (125,118,1,'ashleyterry49@testing.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (126,118,1,'ashleyt@spamalot.info',0,0,0,0,NULL,NULL,NULL,NULL),
- (127,200,1,'dh.lee-adams89@testmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (128,51,1,'adams.rebekah@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (129,160,1,'jeromerobertson@spamalot.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (130,132,1,'arlyner@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (131,132,1,'robertsona83@lol.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (132,108,1,'rosarior@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (133,178,1,'robertson.claudio@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (134,178,1,'cn.robertson66@infomail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (135,186,1,'jwagner@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (136,93,1,'delanaivanov-wagner@example.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (137,190,1,'samuels.rodrigo@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (138,190,1,'samuels.rodrigo@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (139,68,1,'kandaces84@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (140,40,1,'se.samuels@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (141,180,1,'ashleygrant@fakemail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (142,180,1,'ashleygrant15@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (143,136,1,'grant.elizabeth@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (144,136,1,'elizabethgrant@spamalot.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (145,75,1,'maxwellg@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (146,156,1,'grantm@mymail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (147,156,1,'grant.f.merrie@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (148,46,1,'reynolds.miguel46@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (149,123,1,'reynolds.princess@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (150,123,1,'reynolds.princess14@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (151,45,1,'lareereynolds@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (152,23,1,'scottr24@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (153,98,1,'kathleenolsen@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (154,143,1,'bc.wagner-olsen@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (155,143,1,'wagner-olsen.betty42@infomail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (156,5,1,'wagner-olsenb57@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (157,196,1,'meganlee42@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (158,196,1,'meganlee@testing.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (159,194,1,'lawerencel@sample.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (160,86,1,'lee.p.ashlie@spamalot.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (161,89,1,'samsonr@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (162,89,1,'samson.rebekah@fakemail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (163,158,1,'roberts-samson.a.sherman@testing.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (164,77,1,'roberts-samson.i.arlyne20@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (165,84,1,'grants54@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (166,44,1,'shaunaadams@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (167,85,1,'damarissmith-grant-adams@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (168,43,1,'brigettes@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (169,43,1,'brigettesmith-grant-adams@testing.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (170,179,3,'feedback@kaneohetrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (171,86,2,'lee.p.ashlie@kaneohetrust.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (172,167,3,'sales@urbancenter.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (173,6,2,'cruz.brittney57@urbancenter.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (174,154,3,'info@charlotteassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (175,88,3,'feedback@globalsystems.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (176,59,2,'je.parker74@globalsystems.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (177,70,3,'contact@dowlentechnology.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (178,54,2,'kv.daz@dowlentechnology.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (179,191,3,'info@ruralmusic.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (180,87,2,'olsen.c.roland5@ruralmusic.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (181,188,3,'feedback@jacksoneducation.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (182,39,2,'zope.sherman@jacksoneducation.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (183,57,3,'info@cornettsvilleliteracy.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (184,200,2,'delanal96@cornettsvilleliteracy.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (185,109,3,'service@ruralalliance.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (186,187,2,'samson.o.rodrigo@ruralalliance.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (187,34,3,'sales@ruralsustainability.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (188,152,3,'sales@creativeassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (189,76,3,'info@secondpartners.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (190,190,2,'samuels.rodrigo@secondpartners.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (191,97,3,'sales@sierrasystems.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (192,38,2,'clintwagner@sierrasystems.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (193,125,3,'feedback@dawsonassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (194,31,3,'sales@idahocollective.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (195,116,2,'@idahocollective.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (196,120,3,'contact@parrishadvocacyinitiative.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (197,104,2,'jacksonolsen@parrishadvocacyinitiative.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (198,73,3,'service@dowlenculturetrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (199,72,2,'jensenn@dowlenculturetrust.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (200,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (201,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (202,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL);
+ (2,104,1,'jensen.x.kiara@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (3,4,1,'irvinw@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (4,188,1,'robertson.v.lawerence80@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (5,188,1,'lawerencer92@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (6,130,1,'lee.elina@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (7,107,1,'kterrell@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (8,195,1,'ashleyw7@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (9,121,1,'blackwell.andrew@airmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (10,121,1,'andrewb81@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (11,172,1,'jedgrant@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (12,172,1,'jgrant@lol.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (13,190,1,'rosariob@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (14,190,1,'bachman.g.rosario26@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (15,138,1,'terryi@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (16,191,1,'bachman.c.brigette75@infomail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (17,7,1,'arlyner@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (18,7,1,'areynolds@lol.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (19,67,1,'reynolds.q.alexia@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (20,30,1,'lawerencejacobs@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (21,30,1,'lawerencejacobs@testmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (22,109,1,'brzczysaww@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (23,109,1,'wattson.brzczysaw59@airmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (24,98,1,'norriscruz@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (25,94,1,'terrell.rolando@spamalot.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (26,94,1,'rterrell@testing.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (27,116,1,'olsenb@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (28,99,1,'meganb@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (29,36,1,'landond29@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (30,171,1,'wagner.russell@example.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (31,149,1,'rodrigoj@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (32,149,1,'rodrigoj71@example.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (33,199,1,'kk.olsen1@sample.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (34,199,1,'olsen.kenny@example.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (35,165,1,'olsen.winford55@sample.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (36,27,1,'mller.junko11@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (37,8,1,'terry.barry65@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (38,103,1,'carylonp@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (39,103,1,'cu.patel@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (40,23,1,'samson.bernadette68@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (41,38,1,'iveyp@spamalot.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (42,122,1,'jones.ivey@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (43,55,1,'kiarab27@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (44,55,1,'barkley.kiara62@notmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (45,72,1,'mller.w.scott33@fishmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (46,72,1,'scottm@fakemail.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (47,18,1,'wilson.u.teddy@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (48,44,1,'achowski@spamalot.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (49,179,1,'twagner@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (50,179,1,'wagner.toby@fishmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (51,57,1,'scottl29@lol.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (52,57,1,'lee.v.scott@spamalot.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (53,114,1,'lterrell14@mymail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (54,15,1,'bx.nielsen@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (55,15,1,'beulanielsen33@notmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (56,128,1,'josefawattson@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (57,85,1,'cruz.maxwell@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (58,139,1,'bobivanov49@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (59,139,1,'bobi@spamalot.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (60,194,1,'olsen.allen@fishmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (61,43,1,'samuels.billy@infomail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (62,26,1,'samuels.jina70@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (63,47,1,'craigwagner25@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (64,47,1,'ct.wagner18@lol.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (65,54,1,'santinadeforest@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (66,70,1,'cruzl@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (67,70,1,'lashawndac46@sample.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (68,24,1,'jacobsb85@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (69,24,1,'br.jacobs@fishmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (70,6,1,'samuelsl20@airmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (71,41,1,'bachmanb50@airmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (72,2,1,'barkley.kathleen@testmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (73,2,1,'barkley.kathleen@testmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (74,10,1,'bj.wilson@example.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (75,120,1,'samuels.alexia57@infomail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (76,135,1,'samuels.russell85@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (77,135,1,'samuels.i.russell@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (78,118,1,'samuels.norris43@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (79,75,1,'lashawndasamuels@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (80,76,1,'terry.teddy73@spamalot.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (81,76,1,'terry.teddy@spamalot.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (82,126,1,'prentice.josefa@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (83,65,1,'erikterry-prentice51@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (84,65,1,'erikt75@testmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (85,51,1,'adams.ray@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (86,115,1,'angelikaadams@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (87,115,1,'adams.i.angelika@airmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (88,110,1,'adamsr@example.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (89,110,1,'adams.rebekah45@testing.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (90,74,1,'adamsf@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (91,71,1,'samson.roland@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (92,71,1,'samson.l.roland68@testing.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (93,143,1,'terrell.t.tanya51@testing.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (94,143,1,'terrell.tanya@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (95,170,1,'samson-terrell.esta@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (96,170,1,'esamson-terrell@testmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (97,50,1,'de.samson-terrell68@sample.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (98,97,1,'amller40@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (99,60,1,'ks.jameson-mller@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (100,186,1,'troymller95@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (101,150,1,'craigc@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (102,150,1,'cooperc58@example.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (103,185,1,'trumancooper52@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (104,113,1,'wagner.juliann@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (105,17,1,'angelikaw@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (106,9,1,'samsonl@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (107,9,1,'lincolns@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (108,119,1,'wattson.betty@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (109,119,1,'wattson.betty@fishmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (110,56,1,'samson-wattson.omar@example.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (111,56,1,'omars@sample.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (112,19,1,'samson-wattsonr39@mymail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (113,19,1,'rv.samson-wattson@spamalot.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (114,178,1,'irvinn@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (115,178,1,'nielseni@notmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (116,84,1,'troyn83@lol.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (117,84,1,'troynielsen@mymail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (118,117,1,'sm.terry@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (119,117,1,'shermant@notmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (120,82,1,'ms.terry@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (121,82,1,'terry.s.magan@infomail.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (122,89,1,'roberts.sonny3@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (123,89,1,'roberts.sonny@mymail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (124,181,1,'robertsk33@lol.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (125,21,1,'elbertr@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (126,21,1,'roberts.elbert@fakemail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (127,155,1,'jj.roberts@example.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (128,164,1,'samuelss@notmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (129,164,1,'samuelss@notmail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (130,11,1,'herminias@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (131,29,1,'tz.samuels7@airmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (132,29,1,'samuels.z.toby@fishmail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (133,187,1,'rq.samuels@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (134,176,1,'olsens@example.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (135,112,1,'tjacobs48@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (136,106,1,'patelj@lol.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (137,45,1,'chowski.damaris@fakemail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (138,137,1,'kathlynj3@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (139,145,1,'teddy@sample.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (140,59,1,'chowski-jamesonm67@lol.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (141,183,1,'barryjones@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (142,35,1,'im.dimitrov-jones@mymail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (143,35,1,'iveydimitrov-jones@mymail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (144,92,1,'jones.toby79@airmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (145,92,1,'tobyj54@example.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (146,161,1,'jinaj@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (147,161,1,'jinaj@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (148,168,1,'herminiap49@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (149,90,1,'olsen.heidi@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (150,90,1,'heidiolsen@example.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (151,101,1,'olsena97@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (152,177,1,'sanfordj@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (153,177,1,'jameson-barkley.p.sanford83@mymail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (154,31,1,'tc.jameson-barkley@notmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (155,197,1,'jensen.q.kathleen@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (156,197,1,'jensenk69@fakemail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (157,167,3,'feedback@lincolncollective.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (158,7,2,'reynolds.arlyne8@lincolncollective.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (159,95,3,'info@acpoetryassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (160,89,2,'roberts.sonny2@acpoetryassociation.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (161,42,3,'service@ruraltrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (162,39,2,'erikw@ruraltrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (163,169,3,'service@ssartsassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (164,58,2,'arlynen@ssartsassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (165,81,3,'info@globaltrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (166,44,2,'allenchowski@globaltrust.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (167,134,3,'sales@sierrafoodservices.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (168,141,3,'service@urbanempowerment.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (169,56,2,'os.samson-wattson@urbanempowerment.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (170,125,3,'service@lhtechnologycollective.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (171,17,2,'37@lhtechnologycollective.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (172,68,3,'contact@oklahomaartscollective.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (173,26,2,'samuels.jina64@oklahomaartscollective.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (174,173,3,'contact@mchealthnetwork.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (175,100,3,'service@hawaiicenter.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (176,35,2,'dimitrov-jones.m.ivey54@hawaiicenter.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (177,14,3,'sales@greenassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (178,62,2,'samuels.justina@greenassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (179,87,3,'info@boisepartners.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (180,151,2,'scarletpatel80@boisepartners.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (181,129,3,'contact@globalfellowship.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (182,67,2,'alexiar41@globalfellowship.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (183,182,3,'contact@globaleducationsystems.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (184,113,2,'wagnerj@globaleducationsystems.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (185,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (186,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (187,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_email` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3168,163 +3156,163 @@ INSERT INTO `civicrm_entity_financial_trxn` (`id`, `entity_table`, `entity_id`,
  (26,'civicrm_financial_item',13,13,200.00),
  (27,'civicrm_contribution',14,14,100.00),
  (28,'civicrm_financial_item',14,14,100.00),
- (29,'civicrm_contribution',16,15,100.00),
+ (29,'civicrm_contribution',15,15,100.00),
  (30,'civicrm_financial_item',15,15,100.00),
- (31,'civicrm_contribution',18,16,100.00),
+ (31,'civicrm_contribution',16,16,100.00),
  (32,'civicrm_financial_item',16,16,100.00),
- (33,'civicrm_contribution',20,17,100.00),
+ (33,'civicrm_contribution',17,17,100.00),
  (34,'civicrm_financial_item',17,17,100.00),
- (35,'civicrm_contribution',22,18,100.00),
+ (35,'civicrm_contribution',18,18,100.00),
  (36,'civicrm_financial_item',18,18,100.00),
- (37,'civicrm_contribution',23,19,100.00),
+ (37,'civicrm_contribution',19,19,100.00),
  (38,'civicrm_financial_item',19,19,100.00),
- (39,'civicrm_contribution',26,20,100.00),
+ (39,'civicrm_contribution',20,20,100.00),
  (40,'civicrm_financial_item',20,20,100.00),
- (41,'civicrm_contribution',30,21,100.00),
+ (41,'civicrm_contribution',21,21,100.00),
  (42,'civicrm_financial_item',21,21,100.00),
- (43,'civicrm_contribution',32,22,100.00),
+ (43,'civicrm_contribution',22,22,100.00),
  (44,'civicrm_financial_item',22,22,100.00),
- (45,'civicrm_contribution',33,23,100.00),
+ (45,'civicrm_contribution',23,23,100.00),
  (46,'civicrm_financial_item',23,23,100.00),
- (47,'civicrm_contribution',34,24,100.00),
+ (47,'civicrm_contribution',24,24,100.00),
  (48,'civicrm_financial_item',24,24,100.00),
- (49,'civicrm_contribution',36,25,100.00),
+ (49,'civicrm_contribution',25,25,100.00),
  (50,'civicrm_financial_item',25,25,100.00),
- (51,'civicrm_contribution',40,26,100.00),
+ (51,'civicrm_contribution',26,26,100.00),
  (52,'civicrm_financial_item',26,26,100.00),
- (53,'civicrm_contribution',42,27,100.00),
- (54,'civicrm_financial_item',27,27,100.00),
- (55,'civicrm_contribution',43,28,100.00),
- (56,'civicrm_financial_item',28,28,100.00),
- (57,'civicrm_contribution',15,29,50.00),
+ (53,'civicrm_contribution',27,27,50.00),
+ (54,'civicrm_financial_item',27,27,50.00),
+ (55,'civicrm_contribution',28,28,50.00),
+ (56,'civicrm_financial_item',28,28,50.00),
+ (57,'civicrm_contribution',29,29,50.00),
  (58,'civicrm_financial_item',29,29,50.00),
- (59,'civicrm_contribution',17,30,50.00),
+ (59,'civicrm_contribution',30,30,50.00),
  (60,'civicrm_financial_item',30,30,50.00),
- (61,'civicrm_contribution',19,31,50.00),
+ (61,'civicrm_contribution',31,31,50.00),
  (62,'civicrm_financial_item',31,31,50.00),
- (63,'civicrm_contribution',21,32,50.00),
+ (63,'civicrm_contribution',32,32,50.00),
  (64,'civicrm_financial_item',32,32,50.00),
- (65,'civicrm_contribution',25,33,50.00),
+ (65,'civicrm_contribution',33,33,50.00),
  (66,'civicrm_financial_item',33,33,50.00),
- (67,'civicrm_contribution',27,34,50.00),
+ (67,'civicrm_contribution',34,34,50.00),
  (68,'civicrm_financial_item',34,34,50.00),
- (69,'civicrm_contribution',28,35,50.00),
+ (69,'civicrm_contribution',35,35,50.00),
  (70,'civicrm_financial_item',35,35,50.00),
- (71,'civicrm_contribution',29,36,50.00),
+ (71,'civicrm_contribution',36,36,50.00),
  (72,'civicrm_financial_item',36,36,50.00),
- (73,'civicrm_contribution',31,37,50.00),
+ (73,'civicrm_contribution',37,37,50.00),
  (74,'civicrm_financial_item',37,37,50.00),
- (75,'civicrm_contribution',37,38,50.00),
+ (75,'civicrm_contribution',38,38,50.00),
  (76,'civicrm_financial_item',38,38,50.00),
- (77,'civicrm_contribution',38,39,50.00),
+ (77,'civicrm_contribution',39,39,50.00),
  (78,'civicrm_financial_item',39,39,50.00),
- (79,'civicrm_contribution',39,40,50.00),
+ (79,'civicrm_contribution',40,40,50.00),
  (80,'civicrm_financial_item',40,40,50.00),
  (81,'civicrm_contribution',41,41,50.00),
  (82,'civicrm_financial_item',41,41,50.00),
- (83,'civicrm_contribution',24,42,1200.00),
+ (83,'civicrm_contribution',42,42,1200.00),
  (84,'civicrm_financial_item',42,42,1200.00),
- (85,'civicrm_contribution',35,43,1200.00),
+ (85,'civicrm_contribution',43,43,1200.00),
  (86,'civicrm_financial_item',43,43,1200.00),
- (87,'civicrm_contribution',70,44,50.00),
+ (87,'civicrm_contribution',51,44,50.00),
  (88,'civicrm_financial_item',44,44,50.00),
- (89,'civicrm_contribution',82,45,50.00),
+ (89,'civicrm_contribution',64,45,50.00),
  (90,'civicrm_financial_item',45,45,50.00),
- (91,'civicrm_contribution',49,46,50.00),
+ (91,'civicrm_contribution',63,46,50.00),
  (92,'civicrm_financial_item',46,46,50.00),
- (93,'civicrm_contribution',60,47,50.00),
+ (93,'civicrm_contribution',74,47,50.00),
  (94,'civicrm_financial_item',47,47,50.00),
- (95,'civicrm_contribution',45,48,50.00),
+ (95,'civicrm_contribution',80,48,50.00),
  (96,'civicrm_financial_item',48,48,50.00),
- (97,'civicrm_contribution',86,49,50.00),
+ (97,'civicrm_contribution',50,49,50.00),
  (98,'civicrm_financial_item',49,49,50.00),
- (99,'civicrm_contribution',94,50,50.00),
+ (99,'civicrm_contribution',76,50,50.00),
  (100,'civicrm_financial_item',50,50,50.00),
- (101,'civicrm_contribution',81,51,50.00),
+ (101,'civicrm_contribution',77,51,50.00),
  (102,'civicrm_financial_item',51,51,50.00),
  (103,'civicrm_contribution',89,52,50.00),
  (104,'civicrm_financial_item',52,52,50.00),
- (105,'civicrm_contribution',48,53,50.00),
+ (105,'civicrm_contribution',53,53,50.00),
  (106,'civicrm_financial_item',53,53,50.00),
- (107,'civicrm_contribution',59,54,50.00),
+ (107,'civicrm_contribution',92,54,50.00),
  (108,'civicrm_financial_item',54,54,50.00),
- (109,'civicrm_contribution',71,55,50.00),
+ (109,'civicrm_contribution',75,55,50.00),
  (110,'civicrm_financial_item',55,55,50.00),
- (111,'civicrm_contribution',47,56,50.00),
+ (111,'civicrm_contribution',61,56,50.00),
  (112,'civicrm_financial_item',56,56,50.00),
- (113,'civicrm_contribution',78,57,50.00),
+ (113,'civicrm_contribution',73,57,50.00),
  (114,'civicrm_financial_item',57,57,50.00),
  (115,'civicrm_contribution',56,58,50.00),
  (116,'civicrm_financial_item',58,58,50.00),
- (117,'civicrm_contribution',87,59,50.00),
+ (117,'civicrm_contribution',46,59,50.00),
  (118,'civicrm_financial_item',59,59,50.00),
- (119,'civicrm_contribution',50,60,800.00),
+ (119,'civicrm_contribution',93,60,800.00),
  (120,'civicrm_financial_item',60,60,800.00),
- (121,'civicrm_contribution',58,61,800.00),
+ (121,'civicrm_contribution',49,61,800.00),
  (122,'civicrm_financial_item',61,61,800.00),
- (123,'civicrm_contribution',92,62,800.00),
+ (123,'civicrm_contribution',88,62,800.00),
  (124,'civicrm_financial_item',62,62,800.00),
- (125,'civicrm_contribution',85,63,800.00),
+ (125,'civicrm_contribution',59,63,800.00),
  (126,'civicrm_financial_item',63,63,800.00),
- (127,'civicrm_contribution',73,64,800.00),
+ (127,'civicrm_contribution',52,64,800.00),
  (128,'civicrm_financial_item',64,64,800.00),
- (129,'civicrm_contribution',83,65,800.00),
+ (129,'civicrm_contribution',85,65,800.00),
  (130,'civicrm_financial_item',65,65,800.00),
- (131,'civicrm_contribution',66,66,800.00),
+ (131,'civicrm_contribution',82,66,800.00),
  (132,'civicrm_financial_item',66,66,800.00),
- (133,'civicrm_contribution',53,67,800.00),
+ (133,'civicrm_contribution',70,67,800.00),
  (134,'civicrm_financial_item',67,67,800.00),
- (135,'civicrm_contribution',51,68,800.00),
+ (135,'civicrm_contribution',45,68,800.00),
  (136,'civicrm_financial_item',68,68,800.00),
- (137,'civicrm_contribution',80,69,800.00),
+ (137,'civicrm_contribution',72,69,800.00),
  (138,'civicrm_financial_item',69,69,800.00),
- (139,'civicrm_contribution',69,70,800.00),
+ (139,'civicrm_contribution',83,70,800.00),
  (140,'civicrm_financial_item',70,70,800.00),
- (141,'civicrm_contribution',55,71,800.00),
+ (141,'civicrm_contribution',66,71,800.00),
  (142,'civicrm_financial_item',71,71,800.00),
- (143,'civicrm_contribution',62,72,800.00),
+ (143,'civicrm_contribution',47,72,800.00),
  (144,'civicrm_financial_item',72,72,800.00),
- (145,'civicrm_contribution',52,73,800.00),
+ (145,'civicrm_contribution',69,73,800.00),
  (146,'civicrm_financial_item',73,73,800.00),
- (147,'civicrm_contribution',57,74,800.00),
+ (147,'civicrm_contribution',58,74,800.00),
  (148,'civicrm_financial_item',74,74,800.00),
- (149,'civicrm_contribution',72,75,800.00),
+ (149,'civicrm_contribution',94,75,800.00),
  (150,'civicrm_financial_item',75,75,800.00),
- (151,'civicrm_contribution',91,76,800.00),
+ (151,'civicrm_contribution',79,76,800.00),
  (152,'civicrm_financial_item',76,76,800.00),
- (153,'civicrm_contribution',75,77,800.00),
+ (153,'civicrm_contribution',78,77,800.00),
  (154,'civicrm_financial_item',77,77,800.00),
- (155,'civicrm_contribution',61,78,50.00),
+ (155,'civicrm_contribution',55,78,50.00),
  (156,'civicrm_financial_item',78,78,50.00),
- (157,'civicrm_contribution',63,79,50.00),
+ (157,'civicrm_contribution',57,79,50.00),
  (158,'civicrm_financial_item',79,79,50.00),
- (159,'civicrm_contribution',54,80,50.00),
+ (159,'civicrm_contribution',91,80,50.00),
  (160,'civicrm_financial_item',80,80,50.00),
- (161,'civicrm_contribution',90,81,50.00),
+ (161,'civicrm_contribution',48,81,50.00),
  (162,'civicrm_financial_item',81,81,50.00),
- (163,'civicrm_contribution',76,82,50.00),
+ (163,'civicrm_contribution',87,82,50.00),
  (164,'civicrm_financial_item',82,82,50.00),
- (165,'civicrm_contribution',74,83,50.00),
+ (165,'civicrm_contribution',86,83,50.00),
  (166,'civicrm_financial_item',83,83,50.00),
- (167,'civicrm_contribution',88,84,50.00),
+ (167,'civicrm_contribution',81,84,50.00),
  (168,'civicrm_financial_item',84,84,50.00),
- (169,'civicrm_contribution',77,85,50.00),
+ (169,'civicrm_contribution',90,85,50.00),
  (170,'civicrm_financial_item',85,85,50.00),
- (171,'civicrm_contribution',79,86,50.00),
+ (171,'civicrm_contribution',60,86,50.00),
  (172,'civicrm_financial_item',86,86,50.00),
- (173,'civicrm_contribution',84,87,50.00),
+ (173,'civicrm_contribution',54,87,50.00),
  (174,'civicrm_financial_item',87,87,50.00),
- (175,'civicrm_contribution',68,88,50.00),
+ (175,'civicrm_contribution',65,88,50.00),
  (176,'civicrm_financial_item',88,88,50.00),
- (177,'civicrm_contribution',46,89,50.00),
+ (177,'civicrm_contribution',62,89,50.00),
  (178,'civicrm_financial_item',89,89,50.00),
- (179,'civicrm_contribution',65,90,50.00),
+ (179,'civicrm_contribution',84,90,50.00),
  (180,'civicrm_financial_item',90,90,50.00),
- (181,'civicrm_contribution',93,91,50.00),
+ (181,'civicrm_contribution',68,91,50.00),
  (182,'civicrm_financial_item',91,91,50.00),
- (183,'civicrm_contribution',64,92,50.00),
+ (183,'civicrm_contribution',67,92,50.00),
  (184,'civicrm_financial_item',92,92,50.00),
- (185,'civicrm_contribution',67,93,50.00),
+ (185,'civicrm_contribution',71,93,50.00),
  (186,'civicrm_financial_item',93,93,50.00);
 /*!40000 ALTER TABLE `civicrm_entity_financial_trxn` ENABLE KEYS */;
 UNLOCK TABLES;
@@ -3336,126 +3324,124 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_entity_tag` WRITE;
 /*!40000 ALTER TABLE `civicrm_entity_tag` DISABLE KEYS */;
 INSERT INTO `civicrm_entity_tag` (`id`, `entity_table`, `entity_id`, `tag_id`) VALUES
- (73,'civicrm_contact',3,4),
- (74,'civicrm_contact',3,5),
- (18,'civicrm_contact',4,4),
- (54,'civicrm_contact',13,4),
- (75,'civicrm_contact',16,4),
- (42,'civicrm_contact',21,4),
- (43,'civicrm_contact',21,5),
- (32,'civicrm_contact',27,4),
- (33,'civicrm_contact',27,5),
- (26,'civicrm_contact',30,4),
- (27,'civicrm_contact',30,5),
- (52,'civicrm_contact',35,5),
- (34,'civicrm_contact',37,4),
- (112,'civicrm_contact',38,4),
- (62,'civicrm_contact',41,5),
- (110,'civicrm_contact',45,4),
- (111,'civicrm_contact',45,5),
- (109,'civicrm_contact',46,4),
- (44,'civicrm_contact',49,4),
- (94,'civicrm_contact',51,4),
- (95,'civicrm_contact',51,5),
- (48,'civicrm_contact',54,4),
- (49,'civicrm_contact',54,5),
- (5,'civicrm_contact',57,2),
- (13,'civicrm_contact',58,5),
- (86,'civicrm_contact',59,5),
- (39,'civicrm_contact',61,5),
- (72,'civicrm_contact',62,5),
- (12,'civicrm_contact',65,4),
- (85,'civicrm_contact',67,4),
- (104,'civicrm_contact',68,4),
- (16,'civicrm_contact',69,4),
- (17,'civicrm_contact',69,5),
- (41,'civicrm_contact',71,4),
- (66,'civicrm_contact',72,4),
- (67,'civicrm_contact',72,5),
- (107,'civicrm_contact',75,4),
- (108,'civicrm_contact',75,5),
- (8,'civicrm_contact',76,1),
- (45,'civicrm_contact',78,4),
- (46,'civicrm_contact',78,5),
- (61,'civicrm_contact',80,5),
- (116,'civicrm_contact',83,5),
- (118,'civicrm_contact',84,4),
- (119,'civicrm_contact',84,5),
- (120,'civicrm_contact',85,5),
- (79,'civicrm_contact',87,4),
- (80,'civicrm_contact',87,5),
- (3,'civicrm_contact',88,3),
- (59,'civicrm_contact',90,4),
- (60,'civicrm_contact',90,5),
- (69,'civicrm_contact',95,4),
- (70,'civicrm_contact',96,4),
- (71,'civicrm_contact',96,5),
- (36,'civicrm_contact',99,4),
- (37,'civicrm_contact',99,5),
- (76,'civicrm_contact',100,5),
- (68,'civicrm_contact',101,4),
- (22,'civicrm_contact',103,4),
- (81,'civicrm_contact',104,4),
- (91,'civicrm_contact',105,4),
- (92,'civicrm_contact',105,5),
- (97,'civicrm_contact',108,4),
- (98,'civicrm_contact',108,5),
- (6,'civicrm_contact',110,3),
- (50,'civicrm_contact',111,4),
- (51,'civicrm_contact',111,5),
- (55,'civicrm_contact',112,4),
- (93,'civicrm_contact',113,5),
- (56,'civicrm_contact',114,4),
- (57,'civicrm_contact',114,5),
- (87,'civicrm_contact',116,5),
- (10,'civicrm_contact',120,1),
- (11,'civicrm_contact',121,5),
- (9,'civicrm_contact',125,1),
- (63,'civicrm_contact',128,4),
- (82,'civicrm_contact',129,4),
- (83,'civicrm_contact',129,5),
- (25,'civicrm_contact',137,4),
- (90,'civicrm_contact',140,4),
- (77,'civicrm_contact',141,4),
- (78,'civicrm_contact',141,5),
- (113,'civicrm_contact',143,5),
- (65,'civicrm_contact',145,5),
- (7,'civicrm_contact',152,3),
- (23,'civicrm_contact',153,4),
- (24,'civicrm_contact',153,5),
- (117,'civicrm_contact',158,4),
- (19,'civicrm_contact',159,4),
- (20,'civicrm_contact',159,5),
- (96,'civicrm_contact',160,5),
- (28,'civicrm_contact',162,4),
- (29,'civicrm_contact',162,5),
- (114,'civicrm_contact',163,4),
- (14,'civicrm_contact',164,5),
- (38,'civicrm_contact',166,4),
- (2,'civicrm_contact',167,3),
- (64,'civicrm_contact',169,4),
- (53,'civicrm_contact',170,4),
- (30,'civicrm_contact',171,4),
- (31,'civicrm_contact',171,5),
- (40,'civicrm_contact',172,5),
- (101,'civicrm_contact',174,4),
- (102,'civicrm_contact',174,5),
- (84,'civicrm_contact',176,4),
- (1,'civicrm_contact',179,1),
- (105,'civicrm_contact',180,4),
- (106,'civicrm_contact',180,5),
- (58,'civicrm_contact',182,5),
- (47,'civicrm_contact',184,4),
- (21,'civicrm_contact',185,5),
- (99,'civicrm_contact',186,4),
- (100,'civicrm_contact',186,5),
- (15,'civicrm_contact',187,4),
- (88,'civicrm_contact',189,4),
- (89,'civicrm_contact',189,5),
- (103,'civicrm_contact',190,4),
- (4,'civicrm_contact',191,3),
- (115,'civicrm_contact',194,5),
- (35,'civicrm_contact',199,5);
+ (63,'civicrm_contact',2,5),
+ (14,'civicrm_contact',4,5),
+ (80,'civicrm_contact',5,4),
+ (61,'civicrm_contact',6,4),
+ (62,'civicrm_contact',6,5),
+ (24,'civicrm_contact',7,5),
+ (85,'civicrm_contact',9,4),
+ (86,'civicrm_contact',9,5),
+ (64,'civicrm_contact',10,4),
+ (29,'civicrm_contact',12,4),
+ (30,'civicrm_contact',12,5),
+ (21,'civicrm_contact',13,4),
+ (48,'civicrm_contact',18,4),
+ (49,'civicrm_contact',18,5),
+ (94,'civicrm_contact',21,4),
+ (95,'civicrm_contact',21,5),
+ (39,'civicrm_contact',25,4),
+ (97,'civicrm_contact',29,5),
+ (25,'civicrm_contact',30,4),
+ (26,'civicrm_contact',30,5),
+ (89,'civicrm_contact',40,5),
+ (3,'civicrm_contact',42,1),
+ (55,'civicrm_contact',43,5),
+ (103,'civicrm_contact',45,4),
+ (104,'civicrm_contact',45,5),
+ (112,'civicrm_contact',46,4),
+ (56,'civicrm_contact',47,4),
+ (60,'civicrm_contact',49,4),
+ (71,'civicrm_contact',51,4),
+ (72,'civicrm_contact',51,5),
+ (34,'civicrm_contact',53,4),
+ (57,'civicrm_contact',54,4),
+ (58,'civicrm_contact',54,5),
+ (87,'civicrm_contact',56,5),
+ (45,'civicrm_contact',63,4),
+ (46,'civicrm_contact',63,5),
+ (77,'civicrm_contact',64,5),
+ (7,'civicrm_contact',68,2),
+ (42,'civicrm_contact',69,4),
+ (43,'civicrm_contact',69,5),
+ (59,'civicrm_contact',70,4),
+ (74,'civicrm_contact',71,5),
+ (33,'civicrm_contact',73,5),
+ (69,'civicrm_contact',76,4),
+ (4,'civicrm_contact',81,1),
+ (92,'civicrm_contact',82,5),
+ (6,'civicrm_contact',86,1),
+ (9,'civicrm_contact',87,1),
+ (93,'civicrm_contact',89,4),
+ (110,'civicrm_contact',90,4),
+ (111,'civicrm_contact',90,5),
+ (108,'civicrm_contact',92,5),
+ (115,'civicrm_contact',93,4),
+ (116,'civicrm_contact',93,5),
+ (76,'civicrm_contact',97,5),
+ (27,'civicrm_contact',98,4),
+ (31,'civicrm_contact',99,4),
+ (32,'civicrm_contact',99,5),
+ (8,'civicrm_contact',100,3),
+ (41,'civicrm_contact',103,4),
+ (11,'civicrm_contact',104,5),
+ (12,'civicrm_contact',105,4),
+ (13,'civicrm_contact',105,5),
+ (16,'civicrm_contact',107,5),
+ (73,'civicrm_contact',110,5),
+ (51,'civicrm_contact',114,4),
+ (52,'civicrm_contact',114,5),
+ (28,'civicrm_contact',116,5),
+ (90,'civicrm_contact',117,4),
+ (91,'civicrm_contact',117,5),
+ (68,'civicrm_contact',118,4),
+ (19,'civicrm_contact',121,4),
+ (44,'civicrm_contact',122,5),
+ (70,'civicrm_contact',127,5),
+ (53,'civicrm_contact',128,4),
+ (15,'civicrm_contact',130,4),
+ (35,'civicrm_contact',132,4),
+ (36,'civicrm_contact',132,5),
+ (5,'civicrm_contact',134,2),
+ (65,'civicrm_contact',135,4),
+ (66,'civicrm_contact',135,5),
+ (47,'civicrm_contact',136,5),
+ (22,'civicrm_contact',138,4),
+ (23,'civicrm_contact',138,5),
+ (54,'civicrm_contact',139,4),
+ (117,'civicrm_contact',144,4),
+ (118,'civicrm_contact',144,5),
+ (105,'civicrm_contact',145,5),
+ (2,'civicrm_contact',146,2),
+ (83,'civicrm_contact',147,4),
+ (84,'civicrm_contact',147,5),
+ (78,'civicrm_contact',150,4),
+ (79,'civicrm_contact',150,5),
+ (102,'civicrm_contact',151,5),
+ (37,'civicrm_contact',152,4),
+ (67,'civicrm_contact',154,4),
+ (17,'civicrm_contact',156,4),
+ (18,'civicrm_contact',156,5),
+ (109,'civicrm_contact',160,5),
+ (40,'civicrm_contact',163,4),
+ (96,'civicrm_contact',164,4),
+ (1,'civicrm_contact',167,1),
+ (75,'civicrm_contact',170,4),
+ (20,'civicrm_contact',172,4),
+ (98,'civicrm_contact',176,4),
+ (113,'civicrm_contact',177,4),
+ (114,'civicrm_contact',177,5),
+ (88,'civicrm_contact',178,5),
+ (50,'civicrm_contact',179,5),
+ (10,'civicrm_contact',182,1),
+ (106,'civicrm_contact',183,4),
+ (107,'civicrm_contact',183,5),
+ (101,'civicrm_contact',196,4),
+ (99,'civicrm_contact',198,4),
+ (100,'civicrm_contact',198,5),
+ (38,'civicrm_contact',199,5),
+ (81,'civicrm_contact',201,4),
+ (82,'civicrm_contact',201,5);
 /*!40000 ALTER TABLE `civicrm_entity_tag` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3466,9 +3452,9 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_event` WRITE;
 /*!40000 ALTER TABLE `civicrm_event` DISABLE KEYS */;
 INSERT INTO `civicrm_event` (`id`, `title`, `summary`, `description`, `event_type_id`, `participant_listing_id`, `is_public`, `start_date`, `end_date`, `is_online_registration`, `registration_link_text`, `registration_start_date`, `registration_end_date`, `max_participants`, `event_full_text`, `is_monetary`, `financial_type_id`, `payment_processor`, `is_map`, `is_active`, `fee_label`, `is_show_location`, `loc_block_id`, `default_role_id`, `intro_text`, `footer_text`, `confirm_title`, `confirm_text`, `confirm_footer_text`, `is_email_confirm`, `confirm_email_text`, `confirm_from_name`, `confirm_from_email`, `cc_confirm`, `bcc_confirm`, `default_fee_id`, `default_discount_fee_id`, `thankyou_title`, `thankyou_text`, `thankyou_footer_text`, `is_pay_later`, `pay_later_text`, `pay_later_receipt`, `is_partial_payment`, `initial_amount_label`, `initial_amount_help_text`, `min_initial_amount`, `is_multiple_registrations`, `max_additional_participants`, `allow_same_participant_emails`, `has_waitlist`, `requires_approval`, `expiration_time`, `allow_selfcancelxfer`, `selfcancelxfer_time`, `waitlist_text`, `approval_req_text`, `is_template`, `template_title`, `created_id`, `created_date`, `currency`, `campaign_id`, `is_share`, `is_confirm_enabled`, `parent_event_id`, `slot_label_id`, `dedupe_rule_group_id`, `is_billing_required`) VALUES
- (1,'Fall Fundraiser Dinner','Kick up your heels at our Fall Fundraiser Dinner/Dance at Glen Echo Park! Come by yourself or bring a partner, friend or the entire family!','This event benefits our teen programs. Admission includes a full 3 course meal and wine or soft drinks. Grab your dancing shoes, bring the kids and come join the party!',3,1,1,'2022-01-26 17:00:00','2022-01-28 17:00:00',1,'Register Now',NULL,NULL,100,'Sorry! The Fall Fundraiser Dinner is full. Please call Jane at 204 222-1000 ext 33 if you want to be added to the waiting list.',1,4,NULL,1,1,'Dinner Contribution',1,1,1,'Fill in the information below to join as at this wonderful dinner event.',NULL,'Confirm Your Registration Information','Review the information below carefully.',NULL,1,'Contact the Development Department if you need to make any changes to your registration.','Fundraising Dept.','development@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!','<p>Thank you for your support. Your contribution will help us build even better tools.</p><p>Please tell your friends and colleagues about this wonderful event.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',1,'I will send payment by check','Send a check payable to Our Organization within 3 business days to hold your reservation. Checks should be sent to: 100 Main St., Suite 3, San Francisco CA 94110',0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
- (2,'Summer Solstice Festival Day Concert','Festival Day is coming! Join us and help support your parks.','We will gather at noon, learn a song all together,  and then join in a joyous procession to the pavilion. We will be one of many groups performing at this wonderful concert which benefits our city parks.',5,1,1,'2021-07-25 12:00:00','2021-07-25 17:00:00',1,'Register Now',NULL,NULL,50,'We have all the singers we can handle. Come to the pavilion anyway and join in from the audience.',1,2,NULL,NULL,1,'Festival Fee',1,2,1,'Complete the form below and click Continue to register online for the festival. Or you can register by calling us at 204 222-1000 ext 22.','','Confirm Your Registration Information','','',1,'This email confirms your registration. If you have questions or need to change your registration - please do not hesitate to call us.','Event Dept.','events@example.org','',NULL,NULL,NULL,'Thanks for Your Joining In!','<p>Thank you for your support. Your participation will help build new parks.</p><p>Please tell your friends and colleagues about the concert.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
- (3,'Rain-forest Cup Youth Soccer Tournament','Sign up your team to participate in this fun tournament which benefits several Rain-forest protection groups in the Amazon basin.','This is a FYSA Sanctioned Tournament, which is open to all USSF/FIFA affiliated organizations for boys and girls in age groups: U9-U10 (6v6), U11-U12 (8v8), and U13-U17 (Full Sided).',3,1,1,'2022-02-26 07:00:00','2022-03-01 17:00:00',1,'Register Now',NULL,NULL,500,'Sorry! All available team slots for this tournament have been filled. Contact Jill Futbol for information about the waiting list and next years event.',1,4,NULL,NULL,1,'Tournament Fees',1,3,1,'Complete the form below to register your team for this year\'s tournament.','<em>A Soccer Youth Event</em>','Review and Confirm Your Registration Information','','<em>A Soccer Youth Event</em>',1,'Contact our Tournament Director for eligibility details.','Tournament Director','tournament@example.org','',NULL,NULL,NULL,'Thanks for Your Support!','<p>Thank you for your support. Your participation will help save thousands of acres of rainforest.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
+ (1,'Fall Fundraiser Dinner','Kick up your heels at our Fall Fundraiser Dinner/Dance at Glen Echo Park! Come by yourself or bring a partner, friend or the entire family!','This event benefits our teen programs. Admission includes a full 3 course meal and wine or soft drinks. Grab your dancing shoes, bring the kids and come join the party!',3,1,1,'2022-04-13 17:00:00','2022-04-15 17:00:00',1,'Register Now',NULL,NULL,100,'Sorry! The Fall Fundraiser Dinner is full. Please call Jane at 204 222-1000 ext 33 if you want to be added to the waiting list.',1,4,NULL,1,1,'Dinner Contribution',1,1,1,'Fill in the information below to join as at this wonderful dinner event.',NULL,'Confirm Your Registration Information','Review the information below carefully.',NULL,1,'Contact the Development Department if you need to make any changes to your registration.','Fundraising Dept.','development@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!','<p>Thank you for your support. Your contribution will help us build even better tools.</p><p>Please tell your friends and colleagues about this wonderful event.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',1,'I will send payment by check','Send a check payable to Our Organization within 3 business days to hold your reservation. Checks should be sent to: 100 Main St., Suite 3, San Francisco CA 94110',0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
+ (2,'Summer Solstice Festival Day Concert','Festival Day is coming! Join us and help support your parks.','We will gather at noon, learn a song all together,  and then join in a joyous procession to the pavilion. We will be one of many groups performing at this wonderful concert which benefits our city parks.',5,1,1,'2021-10-12 12:00:00','2021-10-12 17:00:00',1,'Register Now',NULL,NULL,50,'We have all the singers we can handle. Come to the pavilion anyway and join in from the audience.',1,2,NULL,NULL,1,'Festival Fee',1,2,1,'Complete the form below and click Continue to register online for the festival. Or you can register by calling us at 204 222-1000 ext 22.','','Confirm Your Registration Information','','',1,'This email confirms your registration. If you have questions or need to change your registration - please do not hesitate to call us.','Event Dept.','events@example.org','',NULL,NULL,NULL,'Thanks for Your Joining In!','<p>Thank you for your support. Your participation will help build new parks.</p><p>Please tell your friends and colleagues about the concert.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
+ (3,'Rain-forest Cup Youth Soccer Tournament','Sign up your team to participate in this fun tournament which benefits several Rain-forest protection groups in the Amazon basin.','This is a FYSA Sanctioned Tournament, which is open to all USSF/FIFA affiliated organizations for boys and girls in age groups: U9-U10 (6v6), U11-U12 (8v8), and U13-U17 (Full Sided).',3,1,1,'2022-05-13 07:00:00','2022-05-16 17:00:00',1,'Register Now',NULL,NULL,500,'Sorry! All available team slots for this tournament have been filled. Contact Jill Futbol for information about the waiting list and next years event.',1,4,NULL,NULL,1,'Tournament Fees',1,3,1,'Complete the form below to register your team for this year\'s tournament.','<em>A Soccer Youth Event</em>','Review and Confirm Your Registration Information','','<em>A Soccer Youth Event</em>',1,'Contact our Tournament Director for eligibility details.','Tournament Director','tournament@example.org','',NULL,NULL,NULL,'Thanks for Your Support!','<p>Thank you for your support. Your participation will help save thousands of acres of rainforest.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
  (4,NULL,NULL,NULL,4,1,1,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,0,0,NULL,NULL,1,'Free Meeting without Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
  (5,NULL,NULL,NULL,4,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,0,0,NULL,NULL,1,'Free Meeting with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
  (6,NULL,NULL,NULL,1,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,1,4,NULL,0,1,'Conference Fee',1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,1,NULL,'Event Template Dept.','event_templates@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,0,0,NULL,NULL,1,'Paid Conference with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0);
@@ -3507,7 +3493,8 @@ INSERT INTO `civicrm_extension` (`id`, `type`, `full_name`, `name`, `label`, `fi
  (5,'module','contributioncancelactions','Contribution cancel actions','Contribution cancel actions','contributioncancelactions',NULL,1),
  (6,'module','recaptcha','reCAPTCHA','reCAPTCHA','recaptcha',NULL,1),
  (7,'module','ckeditor4','CKEditor4','CKEditor4','ckeditor4',NULL,1),
- (8,'module','legacycustomsearches','Custom search framework','Custom search framework','legacycustomsearches',NULL,1);
+ (8,'module','legacycustomsearches','Custom search framework','Custom search framework','legacycustomsearches',NULL,1),
+ (9,'module','org.civicrm.flexmailer','FlexMailer','FlexMailer','flexmailer',NULL,1);
 /*!40000 ALTER TABLE `civicrm_extension` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3551,99 +3538,99 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_financial_item` WRITE;
 /*!40000 ALTER TABLE `civicrm_financial_item` DISABLE KEYS */;
 INSERT INTO `civicrm_financial_item` (`id`, `created_date`, `transaction_date`, `contact_id`, `description`, `amount`, `currency`, `financial_account_id`, `status_id`, `entity_table`, `entity_id`) VALUES
- (1,'2021-07-26 14:08:50','2010-04-11 00:00:00',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1),
- (2,'2021-07-26 14:08:50','2010-03-21 00:00:00',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2),
- (3,'2021-07-26 14:08:50','2010-04-29 00:00:00',6,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',3),
- (4,'2021-07-26 14:08:50','2010-04-11 00:00:00',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4),
- (5,'2021-07-26 14:08:50','2010-04-15 00:00:00',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',5),
- (6,'2021-07-26 14:08:50','2010-04-11 00:00:00',19,'Contribution Amount',175.00,'USD',1,1,'civicrm_line_item',6),
- (7,'2021-07-26 14:08:50','2010-03-27 00:00:00',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',7),
- (8,'2021-07-26 14:08:50','2010-03-08 00:00:00',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',8),
- (9,'2021-07-26 14:08:50','2010-04-22 00:00:00',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',9),
- (10,'2021-07-26 14:08:50','2009-07-01 11:53:50',71,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',10),
- (11,'2021-07-26 14:08:50','2009-07-01 12:55:41',43,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',11),
- (12,'2021-07-26 14:08:50','2009-10-01 11:53:50',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',12),
- (13,'2021-07-26 14:08:50','2009-12-01 12:55:41',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',13),
- (14,'2021-07-26 14:08:50','2021-07-26 14:08:49',124,'General',100.00,'USD',2,1,'civicrm_line_item',16),
- (15,'2021-07-26 14:08:50','2021-07-26 14:08:49',24,'General',100.00,'USD',2,1,'civicrm_line_item',17),
- (16,'2021-07-26 14:08:50','2021-07-26 14:08:49',10,'General',100.00,'USD',2,1,'civicrm_line_item',18),
- (17,'2021-07-26 14:08:50','2021-07-26 14:08:49',47,'General',100.00,'USD',2,1,'civicrm_line_item',19),
- (18,'2021-07-26 14:08:50','2021-07-26 14:08:49',18,'General',100.00,'USD',2,1,'civicrm_line_item',20),
- (19,'2021-07-26 14:08:50','2021-07-26 14:08:49',114,'General',100.00,'USD',2,1,'civicrm_line_item',21),
- (20,'2021-07-26 14:08:50','2021-07-26 14:08:49',199,'General',100.00,'USD',2,1,'civicrm_line_item',22),
- (21,'2021-07-26 14:08:50','2021-07-26 14:08:49',119,'General',100.00,'USD',2,1,'civicrm_line_item',23),
- (22,'2021-07-26 14:08:50','2021-07-26 14:08:49',89,'General',100.00,'USD',2,1,'civicrm_line_item',24),
- (23,'2021-07-26 14:08:50','2021-07-26 14:08:49',148,'General',100.00,'USD',2,1,'civicrm_line_item',25),
- (24,'2021-07-26 14:08:50','2021-07-26 14:08:49',71,'General',100.00,'USD',2,1,'civicrm_line_item',26),
- (25,'2021-07-26 14:08:50','2021-07-26 14:08:49',62,'General',100.00,'USD',2,1,'civicrm_line_item',27),
- (26,'2021-07-26 14:08:50','2021-07-26 14:08:49',171,'General',100.00,'USD',2,1,'civicrm_line_item',28),
- (27,'2021-07-26 14:08:50','2021-07-26 14:08:49',111,'General',100.00,'USD',2,1,'civicrm_line_item',29),
- (28,'2021-07-26 14:08:50','2021-07-26 14:08:49',182,'General',100.00,'USD',2,1,'civicrm_line_item',30),
- (29,'2021-07-26 14:08:50','2021-07-26 14:08:49',101,'Student',50.00,'USD',2,1,'civicrm_line_item',31),
- (30,'2021-07-26 14:08:50','2021-07-26 14:08:49',14,'Student',50.00,'USD',2,1,'civicrm_line_item',32),
- (31,'2021-07-26 14:08:50','2021-07-26 14:08:49',106,'Student',50.00,'USD',2,1,'civicrm_line_item',33),
- (32,'2021-07-26 14:08:50','2021-07-26 14:08:49',17,'Student',50.00,'USD',2,1,'civicrm_line_item',34),
- (33,'2021-07-26 14:08:50','2021-07-26 14:08:49',168,'Student',50.00,'USD',2,1,'civicrm_line_item',35),
- (34,'2021-07-26 14:08:50','2021-07-26 14:08:49',25,'Student',50.00,'USD',2,1,'civicrm_line_item',36),
- (35,'2021-07-26 14:08:50','2021-07-26 14:08:49',72,'Student',50.00,'USD',2,1,'civicrm_line_item',37),
- (36,'2021-07-26 14:08:50','2021-07-26 14:08:49',115,'Student',50.00,'USD',2,1,'civicrm_line_item',38),
- (37,'2021-07-26 14:08:50','2021-07-26 14:08:49',67,'Student',50.00,'USD',2,1,'civicrm_line_item',39),
- (38,'2021-07-26 14:08:50','2021-07-26 14:08:49',95,'Student',50.00,'USD',2,1,'civicrm_line_item',40),
- (39,'2021-07-26 14:08:50','2021-07-26 14:08:49',69,'Student',50.00,'USD',2,1,'civicrm_line_item',41),
- (40,'2021-07-26 14:08:50','2021-07-26 14:08:49',16,'Student',50.00,'USD',2,1,'civicrm_line_item',42),
- (41,'2021-07-26 14:08:50','2021-07-26 14:08:49',122,'Student',50.00,'USD',2,1,'civicrm_line_item',43),
- (42,'2021-07-26 14:08:51','2021-07-26 14:08:49',11,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',44),
- (43,'2021-07-26 14:08:51','2021-07-26 14:08:49',68,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',45),
- (44,'2021-07-26 14:08:51','2021-07-26 14:08:50',110,'Soprano',50.00,'USD',2,1,'civicrm_line_item',81),
- (45,'2021-07-26 14:08:51','2021-07-26 14:08:50',158,'Soprano',50.00,'USD',2,1,'civicrm_line_item',82),
- (46,'2021-07-26 14:08:51','2021-07-26 14:08:50',21,'Soprano',50.00,'USD',2,1,'civicrm_line_item',83),
- (47,'2021-07-26 14:08:51','2021-07-26 14:08:50',68,'Soprano',50.00,'USD',2,1,'civicrm_line_item',84),
- (48,'2021-07-26 14:08:51','2021-07-26 14:08:50',3,'Soprano',50.00,'USD',2,1,'civicrm_line_item',85),
- (49,'2021-07-26 14:08:51','2021-07-26 14:08:50',170,'Soprano',50.00,'USD',2,1,'civicrm_line_item',86),
- (50,'2021-07-26 14:08:51','2021-07-26 14:08:50',201,'Soprano',50.00,'USD',2,1,'civicrm_line_item',87),
- (51,'2021-07-26 14:08:51','2021-07-26 14:08:50',152,'Soprano',50.00,'USD',2,1,'civicrm_line_item',88),
- (52,'2021-07-26 14:08:51','2021-07-26 14:08:50',183,'Soprano',50.00,'USD',2,1,'civicrm_line_item',89),
- (53,'2021-07-26 14:08:51','2021-07-26 14:08:50',19,'Soprano',50.00,'USD',2,1,'civicrm_line_item',90),
- (54,'2021-07-26 14:08:51','2021-07-26 14:08:50',66,'Soprano',50.00,'USD',2,1,'civicrm_line_item',91),
- (55,'2021-07-26 14:08:51','2021-07-26 14:08:50',112,'Soprano',50.00,'USD',2,1,'civicrm_line_item',92),
- (56,'2021-07-26 14:08:51','2021-07-26 14:08:50',6,'Soprano',50.00,'USD',2,1,'civicrm_line_item',93),
- (57,'2021-07-26 14:08:51','2021-07-26 14:08:50',142,'Soprano',50.00,'USD',2,1,'civicrm_line_item',94),
- (58,'2021-07-26 14:08:51','2021-07-26 14:08:50',53,'Soprano',50.00,'USD',2,1,'civicrm_line_item',95),
- (59,'2021-07-26 14:08:51','2021-07-26 14:08:50',173,'Soprano',50.00,'USD',2,1,'civicrm_line_item',96),
- (60,'2021-07-26 14:08:51','2021-07-26 14:08:50',23,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',47),
- (61,'2021-07-26 14:08:51','2021-07-26 14:08:50',55,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',48),
- (62,'2021-07-26 14:08:51','2021-07-26 14:08:50',199,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',49),
- (63,'2021-07-26 14:08:51','2021-07-26 14:08:50',167,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',50),
- (64,'2021-07-26 14:08:51','2021-07-26 14:08:50',116,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',51),
- (65,'2021-07-26 14:08:51','2021-07-26 14:08:50',165,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',52),
- (66,'2021-07-26 14:08:51','2021-07-26 14:08:50',93,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',53),
- (67,'2021-07-26 14:08:51','2021-07-26 14:08:50',41,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',54),
- (68,'2021-07-26 14:08:51','2021-07-26 14:08:50',25,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',55),
- (69,'2021-07-26 14:08:51','2021-07-26 14:08:50',149,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',56),
- (70,'2021-07-26 14:08:51','2021-07-26 14:08:50',105,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',57),
- (71,'2021-07-26 14:08:51','2021-07-26 14:08:50',49,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',58),
- (72,'2021-07-26 14:08:51','2021-07-26 14:08:50',75,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',59),
- (73,'2021-07-26 14:08:51','2021-07-26 14:08:50',27,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',60),
- (74,'2021-07-26 14:08:51','2021-07-26 14:08:50',54,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',61),
- (75,'2021-07-26 14:08:51','2021-07-26 14:08:50',113,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',62),
- (76,'2021-07-26 14:08:51','2021-07-26 14:08:50',197,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63),
- (77,'2021-07-26 14:08:51','2021-07-26 14:08:50',121,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64),
- (78,'2021-07-26 14:08:51','2021-07-26 14:08:50',70,'Single',50.00,'USD',4,1,'civicrm_line_item',65),
- (79,'2021-07-26 14:08:51','2021-07-26 14:08:50',83,'Single',50.00,'USD',4,1,'civicrm_line_item',66),
- (80,'2021-07-26 14:08:51','2021-07-26 14:08:50',43,'Single',50.00,'USD',4,1,'civicrm_line_item',67),
- (81,'2021-07-26 14:08:51','2021-07-26 14:08:50',190,'Single',50.00,'USD',4,1,'civicrm_line_item',68),
- (82,'2021-07-26 14:08:51','2021-07-26 14:08:50',124,'Single',50.00,'USD',4,1,'civicrm_line_item',69),
- (83,'2021-07-26 14:08:51','2021-07-26 14:08:50',117,'Single',50.00,'USD',4,1,'civicrm_line_item',70),
- (84,'2021-07-26 14:08:51','2021-07-26 14:08:50',176,'Single',50.00,'USD',4,1,'civicrm_line_item',71),
- (85,'2021-07-26 14:08:51','2021-07-26 14:08:50',131,'Single',50.00,'USD',4,1,'civicrm_line_item',72),
- (86,'2021-07-26 14:08:51','2021-07-26 14:08:50',144,'Single',50.00,'USD',4,1,'civicrm_line_item',73),
- (87,'2021-07-26 14:08:51','2021-07-26 14:08:50',166,'Single',50.00,'USD',4,1,'civicrm_line_item',74),
- (88,'2021-07-26 14:08:51','2021-07-26 14:08:50',102,'Single',50.00,'USD',4,1,'civicrm_line_item',75),
- (89,'2021-07-26 14:08:52','2021-07-26 14:08:50',4,'Single',50.00,'USD',4,1,'civicrm_line_item',76),
- (90,'2021-07-26 14:08:52','2021-07-26 14:08:50',91,'Single',50.00,'USD',4,1,'civicrm_line_item',77),
- (91,'2021-07-26 14:08:52','2021-07-26 14:08:50',200,'Single',50.00,'USD',4,1,'civicrm_line_item',78),
- (92,'2021-07-26 14:08:52','2021-07-26 14:08:50',86,'Single',50.00,'USD',4,1,'civicrm_line_item',79),
- (93,'2021-07-26 14:08:52','2021-07-26 14:08:50',98,'Single',50.00,'USD',4,1,'civicrm_line_item',80);
+ (1,'2021-10-14 04:23:55','2010-04-11 00:00:00',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1),
+ (2,'2021-10-14 04:23:55','2010-03-21 00:00:00',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2),
+ (3,'2021-10-14 04:23:55','2010-04-29 00:00:00',6,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',3),
+ (4,'2021-10-14 04:23:55','2010-04-11 00:00:00',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4),
+ (5,'2021-10-14 04:23:55','2010-04-15 00:00:00',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',5),
+ (6,'2021-10-14 04:23:55','2010-04-11 00:00:00',19,'Contribution Amount',175.00,'USD',1,1,'civicrm_line_item',6),
+ (7,'2021-10-14 04:23:55','2010-03-27 00:00:00',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',7),
+ (8,'2021-10-14 04:23:55','2010-03-08 00:00:00',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',8),
+ (9,'2021-10-14 04:23:55','2010-04-22 00:00:00',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',9),
+ (10,'2021-10-14 04:23:55','2009-07-01 11:53:50',71,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',10),
+ (11,'2021-10-14 04:23:55','2009-07-01 12:55:41',43,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',11),
+ (12,'2021-10-14 04:23:55','2009-10-01 11:53:50',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',12),
+ (13,'2021-10-14 04:23:55','2009-12-01 12:55:41',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',13),
+ (14,'2021-10-14 04:23:55','2021-10-13 21:23:55',90,'General',100.00,'USD',2,1,'civicrm_line_item',16),
+ (15,'2021-10-14 04:23:55','2021-10-13 21:23:55',185,'General',100.00,'USD',2,1,'civicrm_line_item',17),
+ (16,'2021-10-14 04:23:55','2021-10-13 21:23:55',117,'General',100.00,'USD',2,1,'civicrm_line_item',18),
+ (17,'2021-10-14 04:23:55','2021-10-13 21:23:55',63,'General',100.00,'USD',2,1,'civicrm_line_item',19),
+ (18,'2021-10-14 04:23:55','2021-10-13 21:23:55',168,'General',100.00,'USD',2,1,'civicrm_line_item',20),
+ (19,'2021-10-14 04:23:55','2021-10-13 21:23:55',195,'General',100.00,'USD',2,1,'civicrm_line_item',21),
+ (20,'2021-10-14 04:23:55','2021-10-13 21:23:55',194,'General',100.00,'USD',2,1,'civicrm_line_item',22),
+ (21,'2021-10-14 04:23:55','2021-10-13 21:23:55',51,'General',100.00,'USD',2,1,'civicrm_line_item',23),
+ (22,'2021-10-14 04:23:55','2021-10-13 21:23:55',132,'General',100.00,'USD',2,1,'civicrm_line_item',24),
+ (23,'2021-10-14 04:23:55','2021-10-13 21:23:55',23,'General',100.00,'USD',2,1,'civicrm_line_item',25),
+ (24,'2021-10-14 04:23:55','2021-10-13 21:23:55',152,'General',100.00,'USD',2,1,'civicrm_line_item',26),
+ (25,'2021-10-14 04:23:55','2021-10-13 21:23:55',17,'General',100.00,'USD',2,1,'civicrm_line_item',27),
+ (26,'2021-10-14 04:23:55','2021-10-13 21:23:55',44,'General',100.00,'USD',2,1,'civicrm_line_item',28),
+ (27,'2021-10-14 04:23:55','2021-10-13 21:23:55',56,'Student',50.00,'USD',2,1,'civicrm_line_item',29),
+ (28,'2021-10-14 04:23:55','2021-10-13 21:23:55',85,'Student',50.00,'USD',2,1,'civicrm_line_item',30),
+ (29,'2021-10-14 04:23:55','2021-10-13 21:23:55',4,'Student',50.00,'USD',2,1,'civicrm_line_item',31),
+ (30,'2021-10-14 04:23:55','2021-10-13 21:23:55',127,'Student',50.00,'USD',2,1,'civicrm_line_item',32),
+ (31,'2021-10-14 04:23:55','2021-10-13 21:23:55',30,'Student',50.00,'USD',2,1,'civicrm_line_item',33),
+ (32,'2021-10-14 04:23:55','2021-10-13 21:23:55',180,'Student',50.00,'USD',2,1,'civicrm_line_item',34),
+ (33,'2021-10-14 04:23:55','2021-10-13 21:23:55',107,'Student',50.00,'USD',2,1,'civicrm_line_item',35),
+ (34,'2021-10-14 04:23:55','2021-10-13 21:23:55',113,'Student',50.00,'USD',2,1,'civicrm_line_item',36),
+ (35,'2021-10-14 04:23:55','2021-10-13 21:23:55',92,'Student',50.00,'USD',2,1,'civicrm_line_item',37),
+ (36,'2021-10-14 04:23:55','2021-10-13 21:23:55',70,'Student',50.00,'USD',2,1,'civicrm_line_item',38),
+ (37,'2021-10-14 04:23:55','2021-10-13 21:23:55',16,'Student',50.00,'USD',2,1,'civicrm_line_item',39),
+ (38,'2021-10-14 04:23:55','2021-10-13 21:23:55',201,'Student',50.00,'USD',2,1,'civicrm_line_item',40),
+ (39,'2021-10-14 04:23:55','2021-10-13 21:23:55',5,'Student',50.00,'USD',2,1,'civicrm_line_item',41),
+ (40,'2021-10-14 04:23:55','2021-10-13 21:23:55',58,'Student',50.00,'USD',2,1,'civicrm_line_item',42),
+ (41,'2021-10-14 04:23:55','2021-10-13 21:23:55',19,'Student',50.00,'USD',2,1,'civicrm_line_item',43),
+ (42,'2021-10-14 04:23:55','2021-10-13 21:23:55',170,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',44),
+ (43,'2021-10-14 04:23:55','2021-10-13 21:23:55',159,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',45),
+ (44,'2021-10-14 04:23:55','2021-10-13 21:23:55',35,'Soprano',50.00,'USD',2,1,'civicrm_line_item',81),
+ (45,'2021-10-14 04:23:55','2021-10-13 21:23:55',100,'Soprano',50.00,'USD',2,1,'civicrm_line_item',82),
+ (46,'2021-10-14 04:23:55','2021-10-13 21:23:55',93,'Soprano',50.00,'USD',2,1,'civicrm_line_item',83),
+ (47,'2021-10-14 04:23:55','2021-10-13 21:23:55',129,'Soprano',50.00,'USD',2,1,'civicrm_line_item',84),
+ (48,'2021-10-14 04:23:55','2021-10-13 21:23:55',147,'Soprano',50.00,'USD',2,1,'civicrm_line_item',85),
+ (49,'2021-10-14 04:23:55','2021-10-13 21:23:55',33,'Soprano',50.00,'USD',2,1,'civicrm_line_item',86),
+ (50,'2021-10-14 04:23:55','2021-10-13 21:23:55',136,'Soprano',50.00,'USD',2,1,'civicrm_line_item',87),
+ (51,'2021-10-14 04:23:55','2021-10-13 21:23:55',142,'Soprano',50.00,'USD',2,1,'civicrm_line_item',88),
+ (52,'2021-10-14 04:23:55','2021-10-13 21:23:55',184,'Soprano',50.00,'USD',2,1,'civicrm_line_item',89),
+ (53,'2021-10-14 04:23:55','2021-10-13 21:23:55',46,'Soprano',50.00,'USD',2,1,'civicrm_line_item',90),
+ (54,'2021-10-14 04:23:55','2021-10-13 21:23:55',191,'Soprano',50.00,'USD',2,1,'civicrm_line_item',91),
+ (55,'2021-10-14 04:23:55','2021-10-13 21:23:55',133,'Soprano',50.00,'USD',2,1,'civicrm_line_item',92),
+ (56,'2021-10-14 04:23:55','2021-10-13 21:23:55',84,'Soprano',50.00,'USD',2,1,'civicrm_line_item',93),
+ (57,'2021-10-14 04:23:55','2021-10-13 21:23:55',125,'Soprano',50.00,'USD',2,1,'civicrm_line_item',94),
+ (58,'2021-10-14 04:23:55','2021-10-13 21:23:55',55,'Soprano',50.00,'USD',2,1,'civicrm_line_item',95),
+ (59,'2021-10-14 04:23:55','2021-10-13 21:23:55',13,'Soprano',50.00,'USD',2,1,'civicrm_line_item',96),
+ (60,'2021-10-14 04:23:55','2021-10-13 21:23:55',196,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',47),
+ (61,'2021-10-14 04:23:55','2021-10-13 21:23:55',22,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',48),
+ (62,'2021-10-14 04:23:55','2021-10-13 21:23:55',179,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',49),
+ (63,'2021-10-14 04:23:55','2021-10-13 21:23:55',73,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',50),
+ (64,'2021-10-14 04:23:55','2021-10-13 21:23:55',41,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',51),
+ (65,'2021-10-14 04:23:55','2021-10-13 21:23:55',158,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',52),
+ (66,'2021-10-14 04:23:55','2021-10-13 21:23:55',153,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',53),
+ (67,'2021-10-14 04:23:55','2021-10-13 21:23:55',117,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',54),
+ (68,'2021-10-14 04:23:55','2021-10-13 21:23:55',12,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',55),
+ (69,'2021-10-14 04:23:55','2021-10-13 21:23:55',123,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',56),
+ (70,'2021-10-14 04:23:55','2021-10-13 21:23:55',155,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',57),
+ (71,'2021-10-14 04:23:55','2021-10-13 21:23:55',104,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',58),
+ (72,'2021-10-14 04:23:55','2021-10-13 21:23:55',18,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',59),
+ (73,'2021-10-14 04:23:55','2021-10-13 21:23:55',114,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',60),
+ (74,'2021-10-14 04:23:55','2021-10-13 21:23:55',64,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',61),
+ (75,'2021-10-14 04:23:55','2021-10-13 21:23:55',200,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',62),
+ (76,'2021-10-14 04:23:55','2021-10-13 21:23:55',144,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63),
+ (77,'2021-10-14 04:23:55','2021-10-13 21:23:55',143,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64),
+ (78,'2021-10-14 04:23:55','2021-10-13 21:23:55',51,'Single',50.00,'USD',4,1,'civicrm_line_item',65),
+ (79,'2021-10-14 04:23:55','2021-10-13 21:23:55',60,'Single',50.00,'USD',4,1,'civicrm_line_item',66),
+ (80,'2021-10-14 04:23:55','2021-10-13 21:23:55',187,'Single',50.00,'USD',4,1,'civicrm_line_item',67),
+ (81,'2021-10-14 04:23:55','2021-10-13 21:23:55',21,'Single',50.00,'USD',4,1,'civicrm_line_item',68),
+ (82,'2021-10-14 04:23:55','2021-10-13 21:23:55',171,'Single',50.00,'USD',4,1,'civicrm_line_item',69),
+ (83,'2021-10-14 04:23:55','2021-10-13 21:23:55',166,'Single',50.00,'USD',4,1,'civicrm_line_item',70),
+ (84,'2021-10-14 04:23:55','2021-10-13 21:23:55',151,'Single',50.00,'USD',4,1,'civicrm_line_item',71),
+ (85,'2021-10-14 04:23:55','2021-10-13 21:23:55',185,'Single',50.00,'USD',4,1,'civicrm_line_item',72),
+ (86,'2021-10-14 04:23:55','2021-10-13 21:23:55',82,'Single',50.00,'USD',4,1,'civicrm_line_item',73),
+ (87,'2021-10-14 04:23:55','2021-10-13 21:23:55',50,'Single',50.00,'USD',4,1,'civicrm_line_item',74),
+ (88,'2021-10-14 04:23:55','2021-10-13 21:23:55',103,'Single',50.00,'USD',4,1,'civicrm_line_item',75),
+ (89,'2021-10-14 04:23:55','2021-10-13 21:23:55',89,'Single',50.00,'USD',4,1,'civicrm_line_item',76),
+ (90,'2021-10-14 04:23:55','2021-10-13 21:23:55',157,'Single',50.00,'USD',4,1,'civicrm_line_item',77),
+ (91,'2021-10-14 04:23:55','2021-10-13 21:23:55',110,'Single',50.00,'USD',4,1,'civicrm_line_item',78),
+ (92,'2021-10-14 04:23:55','2021-10-13 21:23:55',107,'Single',50.00,'USD',4,1,'civicrm_line_item',79),
+ (93,'2021-10-14 04:23:55','2021-10-13 21:23:55',122,'Single',50.00,'USD',4,1,'civicrm_line_item',80);
 /*!40000 ALTER TABLE `civicrm_financial_item` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3667,86 +3654,86 @@ INSERT INTO `civicrm_financial_trxn` (`id`, `from_financial_account_id`, `to_fin
  (11,NULL,6,'2009-07-01 12:55:41',200.00,NULL,NULL,'USD',1,'PL43II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
  (12,NULL,6,'2009-10-01 11:53:50',200.00,NULL,NULL,'USD',1,'PL32I',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
  (13,NULL,6,'2009-12-01 12:55:41',200.00,NULL,NULL,'USD',1,'PL32II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (14,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'265d4a9ad0de9fd2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (15,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'57e38d761e59a721',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (16,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'f00c6d2a40dc2a64',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (17,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'a095a0d306cda22f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (18,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'d9d191b9bea2b62e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (19,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'339a7db343e94bc2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (20,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'6db138fa4b2db889',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (21,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'91ccd804f3b76ec5',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (22,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'a3221cb2433d03cd',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (23,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'40fbece99ed55b19',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (24,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'46c4a6820032e43a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (25,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'9235a2719cf32e3f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (26,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'b336bcfd69b8b819',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (27,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'24c041fa93005434',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (28,NULL,6,'2021-07-26 14:08:49',100.00,NULL,NULL,'USD',1,'c17dffac419ffdcf',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (29,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'f7157b3b3fa5c283',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (30,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'88168b573cb3617a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (31,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'b86c8bcd44bc0a1e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (32,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'bd9eaeec577b8efc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (33,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'ae8e0c78ac7fc6f3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (34,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'1aade87b8799b7f0',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (35,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'283aee0df5c8c237',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (36,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'9fbafd4b5679a855',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (37,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'60ab832261bf5c1b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (38,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'d42cdfc830be6a93',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (39,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'73a6aaa10274b3c1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (40,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'faeb1d70680f56d5',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (41,NULL,6,'2021-07-26 14:08:49',50.00,NULL,NULL,'USD',1,'8fc57cfbdd77acd5',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (42,NULL,6,'2021-07-26 14:08:49',1200.00,NULL,NULL,'USD',1,'d329a07dc00e1ca0',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (43,NULL,6,'2021-07-26 14:08:49',1200.00,NULL,NULL,'USD',1,'14827126e69c3dd2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (44,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'5a759e1e7746035c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (45,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'e300b9a6923825d1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (46,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'cd6cd9487ab311f8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (47,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'dd83f3d146ff5e8c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (48,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'9e7be43ff5f873d3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (49,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'0759cde1834b181e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (50,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'b20dfffdc357e928',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (51,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'b004479cec4aba24',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (52,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'466bf29da2613307',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (53,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'c2540070bae2289b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (54,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'c6e7f4e18e693f6f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (55,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'20bcbdfe99fcda71',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (56,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'f983f223240219db',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (57,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'6128d1f2f2ef28d2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (58,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'33ba84e7587ebc6c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (59,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'108a57b20490daed',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (60,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'733de302f9256a05',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (61,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'c79544d018331a7a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (62,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'20fca987b08ebe96',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (63,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'f9ed2b4c61761269',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (64,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'bf733e3bafbde15e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (65,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'2082bfc0bf4e9a6e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (66,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'014a8b245afaa58c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (67,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'a8f60d370111743d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (68,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'b5c122ed978c1c6f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (69,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'e0f26a01d7162233',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (70,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'019fada0c0e1d439',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (71,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'27c59bebfb548249',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (72,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'6d14827b0441bfe8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (73,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'dd90ceb664d90bea',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (74,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'26ed41bc3d4d6c3d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (75,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'68e88dd16e0922d0',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (76,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'79d4eebfbb24b666',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (77,NULL,6,'2021-07-26 14:08:50',800.00,NULL,NULL,'USD',1,'8a0509d7c745c313',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (78,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'744c965d085afa74',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (79,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'10b466c494c963e1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (80,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'3c0eed9086036f19',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (81,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'e79204c85376e81d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (82,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'271e0a56c2353e1d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (83,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'fce8ba604a6cec44',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (84,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'5f21e73f191d5cbf',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (85,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'17df6e7505bf904f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (86,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'aa15ef80bdb20881',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (87,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'2ea74cf5414ef9e4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (88,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'3aafb20b38f0f470',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (89,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'be9a3cc452954f73',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (90,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'e8744fe637a6ba6e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (91,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'365932a74590a754',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (92,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'349a5c60c0808612',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (93,NULL,6,'2021-07-26 14:08:50',50.00,NULL,NULL,'USD',1,'8b323d9a9a19cb07',NULL,1,NULL,1,NULL,NULL,NULL,NULL);
+ (14,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'336a2be8849c513b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (15,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'b41b63804835db17',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (16,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'30707bdd0036a11d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (17,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'f615441da9d778ad',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (18,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'465dd61e8780c563',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (19,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'46fee5a7a1a4453a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (20,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'a52e614bdf2191c4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (21,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'6aedd8d8c265eb06',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (22,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'08b4b1cead3c903c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (23,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'5581286b492d7f1c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (24,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'16f8ef0cfafa0255',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (25,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'2fc6b73e9113a98b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (26,NULL,6,'2021-10-13 21:23:55',100.00,NULL,NULL,'USD',1,'6deef275e898d941',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (27,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'ea45eaf33f4496a7',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (28,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'a061951fffb181c6',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (29,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'3beb1ae16bed4dfc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (30,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'aba1ebf533a192fb',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (31,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'e51f787577a6158d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (32,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'3c218c08992a227d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (33,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'953b38a2fd65aaca',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (34,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'76aab48c99f3cdf4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (35,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'53fd3ff288a6ac48',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (36,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'ee89eefdbc2b0d17',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (37,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'ac2bb1a3a4f21eae',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (38,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'9ddf1f7d015bf77d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (39,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'a98fb1fdf1643ccd',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (40,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'bf0893884bf6927c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (41,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'1bbc4d49e4d7e15b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (42,NULL,6,'2021-10-13 21:23:55',1200.00,NULL,NULL,'USD',1,'e088fc325e7ced95',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (43,NULL,6,'2021-10-13 21:23:55',1200.00,NULL,NULL,'USD',1,'fc96e364fc5260ff',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (44,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'44cae8db1b816fc2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (45,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'663cac64e12684f1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (46,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'fa9e4c3fa2ad6656',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (47,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'6c2825d1a0c88cd7',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (48,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'03214fc447c50a52',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (49,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'ae364912ef6a7985',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (50,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'7841bcf422e3f93c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (51,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'005345d7deb28d36',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (52,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'78485ffadc4f02ab',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (53,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'2ab849c71a69961d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (54,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'96706b843d760190',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (55,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'ef76d9d0d293fa6b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (56,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'97a7b19fd9d63661',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (57,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'09bf84d91a24d1db',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (58,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'bf018db8cd3303b4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (59,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'2cb5b9ff43ae28cb',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (60,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'e167222a259f3cc4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (61,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'b5bdcad709c2bfab',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (62,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'5b685284348b5b12',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (63,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'f3e5305d70fc5133',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (64,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'769b8756d7717132',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (65,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'6520927bc905b26e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (66,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'6904fcf8eabda81d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (67,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'84bc4b83a05daf30',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (68,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'89474d05c5f39994',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (69,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'882aef032e8bb52e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (70,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'e70812efd9b41bb2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (71,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'b817fae05c14837d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (72,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'c94659092628227a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (73,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'d8e1bc59b753a862',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (74,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'d788f0e3c987ead1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (75,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'25e79f708ae0b0dc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (76,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'027ce2b64fc8841d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (77,NULL,6,'2021-10-13 21:23:55',800.00,NULL,NULL,'USD',1,'e5f88e7dd97bc6d2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (78,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'b3361ee994d7fa68',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (79,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'0f9949d2ec3ff270',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (80,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'dfe6d72cceddad1e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (81,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'5b09c886c3bdf851',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (82,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'b66600820dc92da1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (83,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'094887ad144afe0e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (84,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'b8d570025384a9eb',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (85,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'b871a4dcc2ab2f92',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (86,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'fccdb9b92972d68e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (87,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'5a56d33babcf8687',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (88,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'e4037df9657e1b24',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (89,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'b628a833883bcab0',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (90,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'78e6b8f15edc4f0c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (91,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'095a67c3d040d66b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (92,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'bcc16c72b720d2e2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (93,NULL,6,'2021-10-13 21:23:55',50.00,NULL,NULL,'USD',1,'7853f510147594df',NULL,1,NULL,1,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_financial_trxn` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3794,89 +3781,89 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_group_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_group_contact` DISABLE KEYS */;
 INSERT INTO `civicrm_group_contact` (`id`, `group_id`, `contact_id`, `status`, `location_id`, `email_id`) VALUES
- (1,2,121,'Added',NULL,NULL),
- (2,2,60,'Added',NULL,NULL),
- (3,2,65,'Added',NULL,NULL),
- (4,2,39,'Added',NULL,NULL),
- (5,2,58,'Added',NULL,NULL),
- (6,2,94,'Added',NULL,NULL),
- (7,2,164,'Added',NULL,NULL),
- (8,2,81,'Added',NULL,NULL),
- (9,2,187,'Added',NULL,NULL),
+ (1,2,104,'Added',NULL,NULL),
+ (2,2,111,'Added',NULL,NULL),
+ (3,2,105,'Added',NULL,NULL),
+ (4,2,48,'Added',NULL,NULL),
+ (5,2,4,'Added',NULL,NULL),
+ (6,2,188,'Added',NULL,NULL),
+ (7,2,130,'Added',NULL,NULL),
+ (8,2,200,'Added',NULL,NULL),
+ (9,2,107,'Added',NULL,NULL),
  (10,2,195,'Added',NULL,NULL),
- (11,2,69,'Added',NULL,NULL),
- (12,2,6,'Added',NULL,NULL),
- (13,2,4,'Added',NULL,NULL),
- (14,2,173,'Added',NULL,NULL),
- (15,2,159,'Added',NULL,NULL),
- (16,2,33,'Added',NULL,NULL),
- (17,2,185,'Added',NULL,NULL),
- (18,2,19,'Added',NULL,NULL),
- (19,2,103,'Added',NULL,NULL),
- (20,2,10,'Added',NULL,NULL),
- (21,2,153,'Added',NULL,NULL),
- (22,2,119,'Added',NULL,NULL),
- (23,2,137,'Added',NULL,NULL),
- (24,2,52,'Added',NULL,NULL),
- (25,2,30,'Added',NULL,NULL),
- (26,2,165,'Added',NULL,NULL),
- (27,2,162,'Added',NULL,NULL),
- (28,2,131,'Added',NULL,NULL),
- (29,2,171,'Added',NULL,NULL),
- (30,2,181,'Added',NULL,NULL),
- (31,2,27,'Added',NULL,NULL),
- (32,2,17,'Added',NULL,NULL),
- (33,2,37,'Added',NULL,NULL),
- (34,2,149,'Added',NULL,NULL),
- (35,2,199,'Added',NULL,NULL),
- (36,2,115,'Added',NULL,NULL),
- (37,2,99,'Added',NULL,NULL),
- (38,2,201,'Added',NULL,NULL),
- (39,2,166,'Added',NULL,NULL),
- (40,2,138,'Added',NULL,NULL),
- (41,2,61,'Added',NULL,NULL),
- (42,2,56,'Added',NULL,NULL),
- (43,2,172,'Added',NULL,NULL),
- (44,2,157,'Added',NULL,NULL),
- (45,2,71,'Added',NULL,NULL),
- (46,2,32,'Added',NULL,NULL),
- (47,2,21,'Added',NULL,NULL),
- (48,2,25,'Added',NULL,NULL),
- (49,2,49,'Added',NULL,NULL),
- (50,2,11,'Added',NULL,NULL),
- (51,2,78,'Added',NULL,NULL),
- (52,2,133,'Added',NULL,NULL),
- (53,2,184,'Added',NULL,NULL),
- (54,2,198,'Added',NULL,NULL),
- (55,2,54,'Added',NULL,NULL),
- (56,2,55,'Added',NULL,NULL),
- (57,2,111,'Added',NULL,NULL),
- (58,2,146,'Added',NULL,NULL),
- (59,2,35,'Added',NULL,NULL),
- (60,2,50,'Added',NULL,NULL),
- (61,3,170,'Added',NULL,NULL),
- (62,3,91,'Added',NULL,NULL),
- (63,3,13,'Added',NULL,NULL),
- (64,3,134,'Added',NULL,NULL),
- (65,3,112,'Added',NULL,NULL),
- (66,3,177,'Added',NULL,NULL),
- (67,3,114,'Added',NULL,NULL),
- (68,3,175,'Added',NULL,NULL),
- (69,3,182,'Added',NULL,NULL),
- (70,3,2,'Added',NULL,NULL),
- (71,3,90,'Added',NULL,NULL),
- (72,3,53,'Added',NULL,NULL),
- (73,3,80,'Added',NULL,NULL),
- (74,3,20,'Added',NULL,NULL),
- (75,3,41,'Added',NULL,NULL),
- (76,4,121,'Added',NULL,NULL),
- (77,4,81,'Added',NULL,NULL),
- (78,4,159,'Added',NULL,NULL),
- (79,4,119,'Added',NULL,NULL),
- (80,4,171,'Added',NULL,NULL),
- (81,4,115,'Added',NULL,NULL),
- (82,4,172,'Added',NULL,NULL),
- (83,4,11,'Added',NULL,NULL);
+ (11,2,156,'Added',NULL,NULL),
+ (12,2,157,'Added',NULL,NULL),
+ (13,2,121,'Added',NULL,NULL),
+ (14,2,28,'Added',NULL,NULL),
+ (15,2,172,'Added',NULL,NULL),
+ (16,2,39,'Added',NULL,NULL),
+ (17,2,13,'Added',NULL,NULL),
+ (18,2,190,'Added',NULL,NULL),
+ (19,2,138,'Added',NULL,NULL),
+ (20,2,191,'Added',NULL,NULL),
+ (21,2,7,'Added',NULL,NULL),
+ (22,2,67,'Added',NULL,NULL),
+ (23,2,30,'Added',NULL,NULL),
+ (24,2,109,'Added',NULL,NULL),
+ (25,2,98,'Added',NULL,NULL),
+ (26,2,94,'Added',NULL,NULL),
+ (27,2,116,'Added',NULL,NULL),
+ (28,2,32,'Added',NULL,NULL),
+ (29,2,12,'Added',NULL,NULL),
+ (30,2,88,'Added',NULL,NULL),
+ (31,2,99,'Added',NULL,NULL),
+ (32,2,3,'Added',NULL,NULL),
+ (33,2,73,'Added',NULL,NULL),
+ (34,2,36,'Added',NULL,NULL),
+ (35,2,53,'Added',NULL,NULL),
+ (36,2,83,'Added',NULL,NULL),
+ (37,2,132,'Added',NULL,NULL),
+ (38,2,171,'Added',NULL,NULL),
+ (39,2,152,'Added',NULL,NULL),
+ (40,2,149,'Added',NULL,NULL),
+ (41,2,199,'Added',NULL,NULL),
+ (42,2,165,'Added',NULL,NULL),
+ (43,2,25,'Added',NULL,NULL),
+ (44,2,27,'Added',NULL,NULL),
+ (45,2,163,'Added',NULL,NULL),
+ (46,2,8,'Added',NULL,NULL),
+ (47,2,103,'Added',NULL,NULL),
+ (48,2,23,'Added',NULL,NULL),
+ (49,2,69,'Added',NULL,NULL),
+ (50,2,38,'Added',NULL,NULL),
+ (51,2,122,'Added',NULL,NULL),
+ (52,2,55,'Added',NULL,NULL),
+ (53,2,63,'Added',NULL,NULL),
+ (54,2,72,'Added',NULL,NULL),
+ (55,2,136,'Added',NULL,NULL),
+ (56,2,142,'Added',NULL,NULL),
+ (57,2,18,'Added',NULL,NULL),
+ (58,2,44,'Added',NULL,NULL),
+ (59,2,179,'Added',NULL,NULL),
+ (60,2,57,'Added',NULL,NULL),
+ (61,3,114,'Added',NULL,NULL),
+ (62,3,15,'Added',NULL,NULL),
+ (63,3,128,'Added',NULL,NULL),
+ (64,3,85,'Added',NULL,NULL),
+ (65,3,139,'Added',NULL,NULL),
+ (66,3,194,'Added',NULL,NULL),
+ (67,3,43,'Added',NULL,NULL),
+ (68,3,26,'Added',NULL,NULL),
+ (69,3,47,'Added',NULL,NULL),
+ (70,3,61,'Added',NULL,NULL),
+ (71,3,54,'Added',NULL,NULL),
+ (72,3,175,'Added',NULL,NULL),
+ (73,3,70,'Added',NULL,NULL),
+ (74,3,24,'Added',NULL,NULL),
+ (75,3,49,'Added',NULL,NULL),
+ (76,4,104,'Added',NULL,NULL),
+ (77,4,200,'Added',NULL,NULL),
+ (78,4,172,'Added',NULL,NULL),
+ (79,4,67,'Added',NULL,NULL),
+ (80,4,12,'Added',NULL,NULL),
+ (81,4,83,'Added',NULL,NULL),
+ (82,4,25,'Added',NULL,NULL),
+ (83,4,38,'Added',NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_group_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3973,85 +3960,85 @@ INSERT INTO `civicrm_line_item` (`id`, `entity_table`, `entity_id`, `contributio
  (12,'civicrm_contribution',12,12,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL,NULL),
  (13,'civicrm_contribution',13,13,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL,NULL),
  (16,'civicrm_membership',1,14,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (17,'civicrm_membership',3,16,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (18,'civicrm_membership',5,18,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (19,'civicrm_membership',7,20,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (20,'civicrm_membership',9,22,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (21,'civicrm_membership',10,23,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (22,'civicrm_membership',13,26,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (23,'civicrm_membership',17,30,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (24,'civicrm_membership',19,32,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (25,'civicrm_membership',20,33,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (26,'civicrm_membership',21,34,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (27,'civicrm_membership',23,36,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (28,'civicrm_membership',27,40,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (29,'civicrm_membership',29,42,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (30,'civicrm_membership',30,43,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (31,'civicrm_membership',2,15,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (32,'civicrm_membership',4,17,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (33,'civicrm_membership',6,19,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (34,'civicrm_membership',8,21,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (35,'civicrm_membership',12,25,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (36,'civicrm_membership',14,27,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (37,'civicrm_membership',15,28,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (38,'civicrm_membership',16,29,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (39,'civicrm_membership',18,31,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (40,'civicrm_membership',24,37,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (41,'civicrm_membership',25,38,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (42,'civicrm_membership',26,39,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (43,'civicrm_membership',28,41,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (44,'civicrm_membership',11,24,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL,NULL),
- (45,'civicrm_membership',22,35,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL,NULL),
- (47,'civicrm_participant',3,50,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (48,'civicrm_participant',6,58,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (49,'civicrm_participant',9,92,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (50,'civicrm_participant',12,85,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (51,'civicrm_participant',15,73,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (52,'civicrm_participant',18,83,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (53,'civicrm_participant',21,66,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (54,'civicrm_participant',24,53,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (55,'civicrm_participant',25,51,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (56,'civicrm_participant',28,80,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (57,'civicrm_participant',31,69,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (58,'civicrm_participant',34,55,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (59,'civicrm_participant',37,62,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (60,'civicrm_participant',40,52,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (61,'civicrm_participant',43,57,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (62,'civicrm_participant',46,72,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (63,'civicrm_participant',49,91,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (64,'civicrm_participant',50,75,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
- (65,'civicrm_participant',1,61,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (66,'civicrm_participant',4,63,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (67,'civicrm_participant',7,54,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (68,'civicrm_participant',10,90,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (69,'civicrm_participant',13,76,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (70,'civicrm_participant',16,74,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (71,'civicrm_participant',19,88,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (72,'civicrm_participant',22,77,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (73,'civicrm_participant',26,79,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (74,'civicrm_participant',29,84,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (75,'civicrm_participant',32,68,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (76,'civicrm_participant',35,46,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (77,'civicrm_participant',38,65,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (78,'civicrm_participant',41,93,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (79,'civicrm_participant',44,64,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (80,'civicrm_participant',47,67,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
- (81,'civicrm_participant',2,70,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (82,'civicrm_participant',5,82,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (83,'civicrm_participant',8,49,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (84,'civicrm_participant',11,60,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (85,'civicrm_participant',14,45,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (86,'civicrm_participant',17,86,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (87,'civicrm_participant',20,94,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (88,'civicrm_participant',23,81,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (17,'civicrm_membership',3,15,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (18,'civicrm_membership',5,16,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (19,'civicrm_membership',7,17,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (20,'civicrm_membership',9,18,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (21,'civicrm_membership',10,19,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (22,'civicrm_membership',13,20,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (23,'civicrm_membership',17,21,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (24,'civicrm_membership',19,22,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (25,'civicrm_membership',21,23,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (26,'civicrm_membership',23,24,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (27,'civicrm_membership',27,25,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (28,'civicrm_membership',29,26,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (29,'civicrm_membership',2,27,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (30,'civicrm_membership',4,28,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (31,'civicrm_membership',6,29,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (32,'civicrm_membership',8,30,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (33,'civicrm_membership',12,31,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (34,'civicrm_membership',14,32,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (35,'civicrm_membership',15,33,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (36,'civicrm_membership',16,34,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (37,'civicrm_membership',18,35,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (38,'civicrm_membership',20,36,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (39,'civicrm_membership',24,37,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (40,'civicrm_membership',25,38,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (41,'civicrm_membership',26,39,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (42,'civicrm_membership',28,40,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (43,'civicrm_membership',30,41,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (44,'civicrm_membership',11,42,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL,NULL),
+ (45,'civicrm_membership',22,43,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL,NULL),
+ (47,'civicrm_participant',3,93,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (48,'civicrm_participant',6,49,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (49,'civicrm_participant',9,88,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (50,'civicrm_participant',12,59,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (51,'civicrm_participant',15,52,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (52,'civicrm_participant',18,85,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (53,'civicrm_participant',21,82,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (54,'civicrm_participant',24,70,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (55,'civicrm_participant',25,45,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (56,'civicrm_participant',28,72,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (57,'civicrm_participant',31,83,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (58,'civicrm_participant',34,66,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (59,'civicrm_participant',37,47,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (60,'civicrm_participant',40,69,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (61,'civicrm_participant',43,58,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (62,'civicrm_participant',46,94,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (63,'civicrm_participant',49,79,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (64,'civicrm_participant',50,78,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL),
+ (65,'civicrm_participant',1,55,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (66,'civicrm_participant',4,57,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (67,'civicrm_participant',7,91,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (68,'civicrm_participant',10,48,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (69,'civicrm_participant',13,87,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (70,'civicrm_participant',16,86,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (71,'civicrm_participant',19,81,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (72,'civicrm_participant',22,90,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (73,'civicrm_participant',26,60,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (74,'civicrm_participant',29,54,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (75,'civicrm_participant',32,65,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (76,'civicrm_participant',35,62,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (77,'civicrm_participant',38,84,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (78,'civicrm_participant',41,68,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (79,'civicrm_participant',44,67,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (80,'civicrm_participant',47,71,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL),
+ (81,'civicrm_participant',2,51,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (82,'civicrm_participant',5,64,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (83,'civicrm_participant',8,63,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (84,'civicrm_participant',11,74,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (85,'civicrm_participant',14,80,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (86,'civicrm_participant',17,50,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (87,'civicrm_participant',20,76,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (88,'civicrm_participant',23,77,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
  (89,'civicrm_participant',27,89,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (90,'civicrm_participant',30,48,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (91,'civicrm_participant',33,59,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (92,'civicrm_participant',36,71,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (93,'civicrm_participant',39,47,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (94,'civicrm_participant',42,78,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (90,'civicrm_participant',30,53,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (91,'civicrm_participant',33,92,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (92,'civicrm_participant',36,75,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (93,'civicrm_participant',39,61,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
+ (94,'civicrm_participant',42,73,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
  (95,'civicrm_participant',45,56,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL),
- (96,'civicrm_participant',48,87,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL);
+ (96,'civicrm_participant',48,46,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_line_item` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4062,9 +4049,9 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_loc_block` WRITE;
 /*!40000 ALTER TABLE `civicrm_loc_block` DISABLE KEYS */;
 INSERT INTO `civicrm_loc_block` (`id`, `address_id`, `email_id`, `phone_id`, `im_id`, `address_2_id`, `email_2_id`, `phone_2_id`, `im_2_id`) VALUES
- (1,178,200,141,NULL,NULL,NULL,NULL,NULL),
- (2,179,201,142,NULL,NULL,NULL,NULL,NULL),
- (3,180,202,143,NULL,NULL,NULL,NULL,NULL);
+ (1,175,185,159,NULL,NULL,NULL,NULL,NULL),
+ (2,176,186,160,NULL,NULL,NULL,NULL,NULL),
+ (3,177,187,161,NULL,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_loc_block` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4504,36 +4491,36 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_membership` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership` DISABLE KEYS */;
 INSERT INTO `civicrm_membership` (`id`, `contact_id`, `membership_type_id`, `join_date`, `start_date`, `end_date`, `source`, `status_id`, `is_override`, `status_override_end_date`, `owner_membership_id`, `max_related`, `is_test`, `is_pay_later`, `contribution_recur_id`, `campaign_id`) VALUES
- (1,124,1,'2021-07-26','2021-07-26','2023-07-25','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (2,101,2,'2021-07-25','2021-07-25','2022-07-24','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (3,24,1,'2021-07-24','2021-07-24','2023-07-23','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (4,14,2,'2021-07-23','2021-07-23','2022-07-22','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (5,10,1,'2019-06-24','2019-06-24','2021-06-23','Check',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (6,106,2,'2021-07-21','2021-07-21','2022-07-20','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (7,47,1,'2021-07-20','2021-07-20','2023-07-19','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (8,17,2,'2021-07-19','2021-07-19','2022-07-18','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (9,18,1,'2021-07-18','2021-07-18','2023-07-17','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (10,114,1,'2019-05-15','2019-05-15','2021-05-14','Donation',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (11,11,3,'2021-07-16','2021-07-16',NULL,'Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (12,168,2,'2021-07-15','2021-07-15','2022-07-14','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (13,199,1,'2021-07-14','2021-07-14','2023-07-13','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (14,25,2,'2021-07-13','2021-07-13','2022-07-12','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (15,72,2,'2020-07-12','2020-07-12','2021-07-11','Check',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (16,115,2,'2021-07-11','2021-07-11','2022-07-10','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (17,119,1,'2021-07-10','2021-07-10','2023-07-09','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (18,67,2,'2021-07-09','2021-07-09','2022-07-08','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (19,89,1,'2021-07-08','2021-07-08','2023-07-07','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (20,148,1,'2019-02-24','2019-02-24','2021-02-23','Donation',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (21,71,1,'2021-07-06','2021-07-06','2023-07-05','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (22,68,3,'2021-07-05','2021-07-05',NULL,'Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (23,62,1,'2021-07-04','2021-07-04','2023-07-03','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (24,95,2,'2021-07-03','2021-07-03','2022-07-02','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (25,69,2,'2020-07-02','2020-07-02','2021-07-01','Donation',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (26,16,2,'2021-07-01','2021-07-01','2022-06-30','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (27,171,1,'2021-06-30','2021-06-30','2023-06-29','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (28,122,2,'2021-06-29','2021-06-29','2022-06-28','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (29,111,1,'2021-06-28','2021-06-28','2023-06-27','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
- (30,182,1,'2018-12-06','2018-12-06','2020-12-05','Payment',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL);
+ (1,90,1,'2021-10-13','2021-10-13','2023-10-12','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (2,56,2,'2021-10-12','2021-10-12','2022-10-11','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (3,185,1,'2021-10-11','2021-10-11','2023-10-10','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (4,85,2,'2021-10-10','2021-10-10','2022-10-09','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (5,117,1,'2019-09-11','2019-09-11','2021-09-10','Donation',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (6,4,2,'2021-10-08','2021-10-08','2022-10-07','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (7,63,1,'2021-10-07','2021-10-07','2023-10-06','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (8,127,2,'2021-10-06','2021-10-06','2022-10-05','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (9,168,1,'2021-10-05','2021-10-05','2023-10-04','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (10,195,1,'2019-08-02','2019-08-02','2021-08-01','Payment',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (11,170,3,'2021-10-03','2021-10-03',NULL,'Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (12,30,2,'2021-10-02','2021-10-02','2022-10-01','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (13,194,1,'2021-10-01','2021-10-01','2023-09-30','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (14,180,2,'2021-09-30','2021-09-30','2022-09-29','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (15,107,2,'2020-09-29','2020-09-29','2021-09-28','Payment',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (16,113,2,'2021-09-28','2021-09-28','2022-09-27','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (17,51,1,'2021-09-27','2021-09-27','2023-09-26','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (18,92,2,'2021-09-26','2021-09-26','2022-09-25','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (19,132,1,'2021-09-25','2021-09-25','2023-09-24','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (20,70,2,'2020-09-24','2020-09-24','2021-09-23','Check',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (21,23,1,'2021-09-23','2021-09-23','2023-09-22','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (22,159,3,'2021-09-22','2021-09-22',NULL,'Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (23,152,1,'2021-09-21','2021-09-21','2023-09-20','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (24,16,2,'2021-09-20','2021-09-20','2022-09-19','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (25,201,2,'2020-09-19','2020-09-19','2021-09-18','Payment',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (26,5,2,'2021-09-18','2021-09-18','2022-09-17','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (27,17,1,'2021-09-17','2021-09-17','2023-09-16','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (28,58,2,'2021-09-16','2021-09-16','2022-09-15','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (29,44,1,'2021-09-15','2021-09-15','2023-09-14','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),
+ (30,19,2,'2020-09-14','2020-09-14','2021-09-13','Check',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_membership` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4555,36 +4542,36 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_membership_log` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership_log` DISABLE KEYS */;
 INSERT INTO `civicrm_membership_log` (`id`, `membership_id`, `status_id`, `start_date`, `end_date`, `modified_id`, `modified_date`, `membership_type_id`, `max_related`) VALUES
- (1,5,3,'2019-06-24','2021-06-23',10,'2021-07-26',1,NULL),
- (2,11,1,'2021-07-16',NULL,11,'2021-07-26',3,NULL),
- (3,4,1,'2021-07-23','2022-07-22',14,'2021-07-26',2,NULL),
- (4,26,1,'2021-07-01','2022-06-30',16,'2021-07-26',2,NULL),
- (5,8,1,'2021-07-19','2022-07-18',17,'2021-07-26',2,NULL),
- (6,9,1,'2021-07-18','2023-07-17',18,'2021-07-26',1,NULL),
- (7,3,1,'2021-07-24','2023-07-23',24,'2021-07-26',1,NULL),
- (8,14,1,'2021-07-13','2022-07-12',25,'2021-07-26',2,NULL),
- (9,7,1,'2021-07-20','2023-07-19',47,'2021-07-26',1,NULL),
- (10,23,1,'2021-07-04','2023-07-03',62,'2021-07-26',1,NULL),
- (11,18,1,'2021-07-09','2022-07-08',67,'2021-07-26',2,NULL),
- (12,22,1,'2021-07-05',NULL,68,'2021-07-26',3,NULL),
- (13,25,4,'2020-07-02','2021-07-01',69,'2021-07-26',2,NULL),
- (14,21,1,'2021-07-06','2023-07-05',71,'2021-07-26',1,NULL),
- (15,15,4,'2020-07-12','2021-07-11',72,'2021-07-26',2,NULL),
- (16,19,1,'2021-07-08','2023-07-07',89,'2021-07-26',1,NULL),
- (17,24,1,'2021-07-03','2022-07-02',95,'2021-07-26',2,NULL),
- (18,2,1,'2021-07-25','2022-07-24',101,'2021-07-26',2,NULL),
- (19,6,1,'2021-07-21','2022-07-20',106,'2021-07-26',2,NULL),
- (20,29,1,'2021-06-28','2023-06-27',111,'2021-07-26',1,NULL),
- (21,10,3,'2019-05-15','2021-05-14',114,'2021-07-26',1,NULL),
- (22,16,1,'2021-07-11','2022-07-10',115,'2021-07-26',2,NULL),
- (23,17,1,'2021-07-10','2023-07-09',119,'2021-07-26',1,NULL),
- (24,28,1,'2021-06-29','2022-06-28',122,'2021-07-26',2,NULL),
- (25,1,1,'2021-07-26','2023-07-25',124,'2021-07-26',1,NULL),
- (26,20,3,'2019-02-24','2021-02-23',148,'2021-07-26',1,NULL),
- (27,12,1,'2021-07-15','2022-07-14',168,'2021-07-26',2,NULL),
- (28,27,1,'2021-06-30','2023-06-29',171,'2021-07-26',1,NULL),
- (29,30,3,'2018-12-06','2020-12-05',182,'2021-07-26',1,NULL),
- (30,13,1,'2021-07-14','2023-07-13',199,'2021-07-26',1,NULL);
+ (1,6,1,'2021-10-08','2022-10-07',4,'2021-10-13',2,NULL),
+ (2,26,1,'2021-09-18','2022-09-17',5,'2021-10-13',2,NULL),
+ (3,24,1,'2021-09-20','2022-09-19',16,'2021-10-13',2,NULL),
+ (4,27,1,'2021-09-17','2023-09-16',17,'2021-10-13',1,NULL),
+ (5,30,4,'2020-09-14','2021-09-13',19,'2021-10-13',2,NULL),
+ (6,21,1,'2021-09-23','2023-09-22',23,'2021-10-13',1,NULL),
+ (7,12,1,'2021-10-02','2022-10-01',30,'2021-10-13',2,NULL),
+ (8,29,1,'2021-09-15','2023-09-14',44,'2021-10-13',1,NULL),
+ (9,17,1,'2021-09-27','2023-09-26',51,'2021-10-13',1,NULL),
+ (10,2,1,'2021-10-12','2022-10-11',56,'2021-10-13',2,NULL),
+ (11,28,1,'2021-09-16','2022-09-15',58,'2021-10-13',2,NULL),
+ (12,7,1,'2021-10-07','2023-10-06',63,'2021-10-13',1,NULL),
+ (13,20,4,'2020-09-24','2021-09-23',70,'2021-10-13',2,NULL),
+ (14,4,1,'2021-10-10','2022-10-09',85,'2021-10-13',2,NULL),
+ (15,1,1,'2021-10-13','2023-10-12',90,'2021-10-13',1,NULL),
+ (16,18,1,'2021-09-26','2022-09-25',92,'2021-10-13',2,NULL),
+ (17,15,4,'2020-09-29','2021-09-28',107,'2021-10-13',2,NULL),
+ (18,16,1,'2021-09-28','2022-09-27',113,'2021-10-13',2,NULL),
+ (19,5,3,'2019-09-11','2021-09-10',117,'2021-10-13',1,NULL),
+ (20,8,1,'2021-10-06','2022-10-05',127,'2021-10-13',2,NULL),
+ (21,19,1,'2021-09-25','2023-09-24',132,'2021-10-13',1,NULL),
+ (22,23,1,'2021-09-21','2023-09-20',152,'2021-10-13',1,NULL),
+ (23,22,1,'2021-09-22',NULL,159,'2021-10-13',3,NULL),
+ (24,9,1,'2021-10-05','2023-10-04',168,'2021-10-13',1,NULL),
+ (25,11,1,'2021-10-03',NULL,170,'2021-10-13',3,NULL),
+ (26,14,1,'2021-09-30','2022-09-29',180,'2021-10-13',2,NULL),
+ (27,3,1,'2021-10-11','2023-10-10',185,'2021-10-13',1,NULL),
+ (28,13,1,'2021-10-01','2023-09-30',194,'2021-10-13',1,NULL),
+ (29,10,3,'2019-08-02','2021-08-01',195,'2021-10-13',1,NULL),
+ (30,25,4,'2020-09-19','2021-09-18',201,'2021-10-13',2,NULL);
 /*!40000 ALTER TABLE `civicrm_membership_log` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4595,36 +4582,36 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_membership_payment` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership_payment` DISABLE KEYS */;
 INSERT INTO `civicrm_membership_payment` (`id`, `membership_id`, `contribution_id`) VALUES
- (25,1,14),
- (18,2,15),
- (7,3,16),
- (3,4,17),
- (1,5,18),
- (19,6,19),
- (9,7,20),
- (5,8,21),
- (6,9,22),
- (21,10,23),
- (2,11,24),
- (27,12,25),
- (30,13,26),
- (8,14,27),
- (15,15,28),
- (22,16,29),
- (23,17,30),
- (11,18,31),
- (16,19,32),
- (26,20,33),
- (14,21,34),
- (12,22,35),
- (10,23,36),
- (17,24,37),
- (13,25,38),
- (4,26,39),
- (28,27,40),
- (24,28,41),
- (20,29,42),
- (29,30,43);
+ (1,1,14),
+ (2,3,15),
+ (3,5,16),
+ (4,7,17),
+ (5,9,18),
+ (6,10,19),
+ (7,13,20),
+ (8,17,21),
+ (9,19,22),
+ (10,21,23),
+ (11,23,24),
+ (12,27,25),
+ (13,29,26),
+ (14,2,27),
+ (15,4,28),
+ (16,6,29),
+ (17,8,30),
+ (18,12,31),
+ (19,14,32),
+ (20,15,33),
+ (21,16,34),
+ (22,18,35),
+ (23,20,36),
+ (24,24,37),
+ (25,25,38),
+ (26,26,39),
+ (27,28,40),
+ (28,30,41),
+ (29,11,42),
+ (30,22,43);
 /*!40000 ALTER TABLE `civicrm_membership_payment` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4665,413 +4652,413 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_menu` WRITE;
 /*!40000 ALTER TABLE `civicrm_menu` DISABLE KEYS */;
 INSERT INTO `civicrm_menu` (`id`, `domain_id`, `path`, `path_arguments`, `title`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `breadcrumb`, `return_url`, `return_url_args`, `component_id`, `is_active`, `is_public`, `is_exposed`, `is_ssl`, `weight`, `type`, `page_type`, `skipBreadcrumb`, `module_data`) VALUES
- (1,1,'civicrm/group',NULL,'Manage Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Page_Group\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,30,1,1,NULL,'a:0:{}'),
- (2,1,'civicrm/group/search',NULL,'Group Members','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:7:\"comment\";s:164:\"Note: group search already respect ACL, so a strict permission at url level is not required. A simple/basic permission like \'access CiviCRM\' could be used. CRM-5417\";}'),
- (3,1,'civicrm/group/add',NULL,'New Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (4,1,'civicrm/ajax/grouplist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Group_Page_AJAX\";i:1;s:12:\"getGroupList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (5,1,'civicrm/import',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,400,1,1,NULL,'a:0:{}'),
- (6,1,'civicrm/import/contact',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,410,1,1,NULL,'a:0:{}'),
- (7,1,'civicrm/import/activity',NULL,'Import Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),
- (8,1,'civicrm/import/custom','id=%%id%%','Import Multi-value Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Custom_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),
- (9,1,'civicrm/ajax/status',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Contact_Import_Page_AJAX\";i:1;s:6:\"status\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (10,1,'civicrm/admin/custom/group',NULL,'Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (11,1,'civicrm/admin/custom/group/field',NULL,'Custom Data Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,11,1,0,0,'a:0:{}'),
- (12,1,'civicrm/admin/custom/group/field/option',NULL,'Custom Field - Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:22:\"CRM_Custom_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (13,1,'civicrm/admin/custom/group/field/add',NULL,'Custom Field - Add','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (14,1,'civicrm/admin/custom/group/field/update',NULL,'Custom Field - Edit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (15,1,'civicrm/admin/custom/group/field/move',NULL,'Custom Field - Move','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:25:\"CRM_Custom_Form_MoveField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (16,1,'civicrm/admin/uf/group',NULL,'Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (17,1,'civicrm/admin/uf/group/field',NULL,'CiviCRM Profile Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,21,1,0,0,'a:0:{}'),
- (18,1,'civicrm/admin/uf/group/field/add',NULL,'Add Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,22,1,0,NULL,'a:0:{}'),
- (19,1,'civicrm/admin/uf/group/field/update',NULL,'Edit Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,23,1,0,NULL,'a:0:{}'),
- (20,1,'civicrm/admin/uf/group/add',NULL,'New CiviCRM Profile','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,24,1,0,NULL,'a:0:{}'),
- (21,1,'civicrm/admin/uf/group/update',NULL,'Profile Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,25,1,0,NULL,'a:0:{}'),
- (22,1,'civicrm/admin/uf/group/setting',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_UF_Form_AdvanceSetting\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,0,1,0,NULL,'a:0:{}'),
- (23,1,'civicrm/admin/options/activity_type',NULL,'Activity Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (24,1,'civicrm/admin/reltype',NULL,'Relationship Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_RelationshipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,35,1,0,NULL,'a:2:{s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (25,1,'civicrm/admin/options/subtype',NULL,'Contact Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_ContactType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (26,1,'civicrm/admin/options/gender',NULL,'Gender Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,45,1,0,NULL,'a:2:{s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (27,1,'civicrm/admin/options/individual_prefix',NULL,'Individual Prefixes (Ms, Mr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:2:{s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (28,1,'civicrm/admin/options/individual_suffix',NULL,'Individual Suffixes (Jr, Sr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,55,1,0,NULL,'a:2:{s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (29,1,'civicrm/admin/locationType',NULL,'Location Types (Home, Work...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LocationType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:2:{s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (30,1,'civicrm/admin/options/website_type',NULL,'Website Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,65,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (31,1,'civicrm/admin/options/instant_messenger_service',NULL,'Instant Messenger Services','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:2:{s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (32,1,'civicrm/admin/options/mobile_provider',NULL,'Mobile Phone Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:2:{s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (33,1,'civicrm/admin/options/phone_type',NULL,'Phone Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:2:{s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (34,1,'civicrm/admin/setting/preferences/display',NULL,'Display Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Display\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (35,1,'civicrm/admin/setting/search',NULL,'Search Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Form_Setting_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,95,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (36,1,'civicrm/admin/setting/preferences/date',NULL,'View Date Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Page_PreferencesDate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (37,1,'civicrm/admin/menu',NULL,'Navigation Menu','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Navigation\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:2:{s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (38,1,'civicrm/admin/options/wordreplacements',NULL,'Word Replacements','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_WordReplacements\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:2:{s:4:\"desc\";s:18:\"Word Replacements.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (39,1,'civicrm/admin/options/custom_search',NULL,'Manage Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:2:{s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (40,1,'civicrm/admin/domain','action=update','Organization Address and Contact Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contact_Form_Domain\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (41,1,'civicrm/admin/options/from_email_address',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (42,1,'civicrm/admin/messageTemplates',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Page_MessageTemplates\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (43,1,'civicrm/admin/messageTemplates/add',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Form_MessageTemplates\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Message Templates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,262,1,0,NULL,'a:1:{s:4:\"desc\";s:26:\"Add/Edit Message Templates\";}'),
- (44,1,'civicrm/admin/scheduleReminders',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCRM data\";i:1;s:15:\"edit all events\";}i:1;s:2:\"or\";}','s:32:\"CRM_Admin_Page_ScheduleReminders\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:4:\"desc\";s:19:\"Schedule Reminders.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (45,1,'civicrm/admin/weight',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_Weight\";i:1;s:8:\"fixOrder\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (46,1,'civicrm/admin/options/preferred_communication_method',NULL,'Preferred Communication Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:2:{s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (47,1,'civicrm/admin/labelFormats',NULL,'Label Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LabelFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:2:{s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (48,1,'civicrm/admin/pdfFormats',NULL,'Print Page (PDF) Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_PdfFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:2:{s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (49,1,'civicrm/admin/options/communication_style',NULL,'Communication Style Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:2:{s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (50,1,'civicrm/admin/options/email_greeting',NULL,'Email Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:2:{s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (51,1,'civicrm/admin/options/postal_greeting',NULL,'Postal Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:2:{s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (52,1,'civicrm/admin/options/addressee',NULL,'Addressee Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:2:{s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
- (53,1,'civicrm/admin/setting/localization',NULL,'Languages, Currency, Locations','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Form_Setting_Localization\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'),
- (54,1,'civicrm/admin/setting/preferences/address',NULL,'Address Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Address\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'),
- (55,1,'civicrm/admin/setting/date',NULL,'Date Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Date\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'),
- (56,1,'civicrm/admin/options/languages',NULL,'Preferred Languages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:4:\"desc\";s:30:\"Options for contact languages.\";s:10:\"adminGroup\";s:12:\"Localization\";}'),
- (57,1,'civicrm/admin/access',NULL,'Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_Access\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'),
- (58,1,'civicrm/admin/access/wp-permissions',NULL,'WordPress Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_ACL_Form_WordPress_Permissions\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Access Control\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:1:{s:4:\"desc\";s:65:\"Grant access to CiviCRM components and other CiviCRM permissions.\";}'),
- (59,1,'civicrm/admin/synchUser',NULL,'Synchronize Users to Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_CMSUser\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'),
- (60,1,'civicrm/admin/configtask',NULL,'Configuration Checklist','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_ConfigTaskList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}','civicrm/admin/configtask',NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (61,1,'civicrm/admin/setting/component',NULL,'Enable CiviCRM Components','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (62,1,'civicrm/admin/extensions',NULL,'Manage Extensions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Extensions\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:2:{s:4:\"desc\";s:0:\"\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (63,1,'civicrm/admin/extensions/upgrade',NULL,'Database Upgrades','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Page_ExtensionsUpgrade\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Manage Extensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (64,1,'civicrm/admin/setting/smtp',NULL,'Outbound Email Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Smtp\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (65,1,'civicrm/admin/paymentProcessor',NULL,'Settings - Payment Processor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_PaymentProcessor\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (66,1,'civicrm/admin/setting/mapping',NULL,'Mapping and Geocoding','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Form_Setting_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (67,1,'civicrm/admin/setting/misc',NULL,'Misc (Undelete, PDFs, Limits, Logging, etc.)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Form_Setting_Miscellaneous\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:2:{s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (68,1,'civicrm/admin/setting/path',NULL,'Directories','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Path\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (69,1,'civicrm/admin/setting/url',NULL,'Resource URLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_Setting_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (70,1,'civicrm/admin/setting/updateConfigBackend',NULL,'Cleanup Caches and Update Paths','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Admin_Form_Setting_UpdateConfigBackend\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:2:{s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (71,1,'civicrm/admin/setting/uf',NULL,'CMS Database Integration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Form_Setting_UF\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (72,1,'civicrm/admin/options/safe_file_extension',NULL,'Safe File Extension Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:2:{s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (73,1,'civicrm/admin/options',NULL,'Option Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (74,1,'civicrm/admin/mapping',NULL,'Import/Export Mappings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:2:{s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (75,1,'civicrm/admin/setting/debug',NULL,'Debugging','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Debugging\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (76,1,'civicrm/admin/setting/preferences/multisite',NULL,'Multi Site Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,130,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (77,1,'civicrm/admin/setting/preferences/campaign',NULL,'CiviCampaign Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'),
- (78,1,'civicrm/admin/setting/preferences/event',NULL,'CiviEvent Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:2:{s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (79,1,'civicrm/admin/setting/preferences/mailing',NULL,'CiviMail Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Mailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:2:{s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
- (80,1,'civicrm/admin/setting/preferences/member',NULL,'CiviMember Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Admin_Form_Preferences_Member\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),
- (81,1,'civicrm/admin/runjobs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:20:\"executeScheduledJobs\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:36:\"URL used for running scheduled jobs.\";}'),
- (82,1,'civicrm/admin/job',NULL,'Scheduled Jobs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1370,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (83,1,'civicrm/admin/joblog',NULL,'Scheduled Jobs Log','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_JobLog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1380,1,0,NULL,'a:2:{s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:10:\"adminGroup\";s:6:\"Manage\";}'),
- (84,1,'civicrm/admin/options/grant_type',NULL,'Grant Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:2:{s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:10:\"adminGroup\";s:12:\"Option Lists\";}'),
- (85,1,'civicrm/admin/paymentProcessorType',NULL,'Payment Processor Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Page_PaymentProcessorType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:1:{s:4:\"desc\";s:34:\"Payment Processor type information\";}'),
- (86,1,'civicrm/admin',NULL,'Administer CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Admin_Page_Admin\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,9000,1,1,NULL,'a:0:{}'),
- (87,1,'civicrm/ajax/navmenu',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:7:\"navMenu\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (88,1,'civicrm/ajax/menutree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:8:\"menuTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
- (89,1,'civicrm/ajax/statusmsg',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:12:\"getStatusMsg\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (90,1,'civicrm/admin/price',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:10:\"adminGroup\";s:9:\"Customize\";}'),
- (91,1,'civicrm/admin/price/add','action=add','New Price Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";}'),
- (92,1,'civicrm/admin/price/field',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,0,'a:0:{}'),
- (93,1,'civicrm/admin/price/field/option',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (94,1,'civicrm/ajax/mapping',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:11:\"mappingList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (95,1,'civicrm/ajax/recipientListing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:16:\"recipientListing\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (96,1,'civicrm/admin/sms/provider',NULL,'Sms Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Provider\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,500,1,0,NULL,'a:2:{s:4:\"desc\";s:27:\"To configure a sms provider\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
- (97,1,'civicrm/sms/send',NULL,'New Mass SMS','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:23:\"CRM_SMS_Controller_Send\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),
- (98,1,'civicrm/sms/callback',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Callback\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (99,1,'civicrm/admin/badgelayout','action=browse','Event Name Badge Layouts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Page_Layout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,399,1,0,NULL,'a:2:{s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (100,1,'civicrm/admin/badgelayout/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Form_Layout\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?reset=1&amp;action=browse\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (101,1,'civicrm/ajax/jqState',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:7:\"jqState\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (102,1,'civicrm/ajax/jqCounty',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:8:\"jqCounty\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (103,1,'civicrm/profile',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (104,1,'civicrm/profile/create',NULL,'CiviCRM Profile Create','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (105,1,'civicrm/profile/view',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Profile_Page_View\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (106,1,'civicrm/custom/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Custom_Form_CustomData\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (107,1,'civicrm/ajax/optionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:13:\"getOptionList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (108,1,'civicrm/ajax/reorder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:11:\"fixOrdering\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (109,1,'civicrm/ajax/multirecordfieldlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:23:\"getMultiRecordFieldList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (110,1,'civicrm/upgrade',NULL,'Upgrade CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Upgrade_Page_Upgrade\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (111,1,'civicrm/export',NULL,'Download Errors','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (112,1,'civicrm/export/contact',NULL,'Export Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
- (113,1,'civicrm/export/standalone',NULL,'Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Export_Controller_Standalone\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (114,1,'civicrm/admin/options/acl_role',NULL,'ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (115,1,'civicrm/acl',NULL,'Manage ACLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_ACL_Page_ACL\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (116,1,'civicrm/acl/entityrole',NULL,'Assign Users to ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_ACL_Page_EntityRole\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (117,1,'civicrm/acl/basic',NULL,'ACL','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_ACL_Page_ACLBasic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (118,1,'civicrm/file',NULL,'Browse Uploaded files','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_Page_File\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (119,1,'civicrm/file/delete',NULL,'Delete File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:17:\"CRM_Core_BAO_File\";i:1;s:16:\"deleteAttachment\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:21:\"Browse Uploaded files\";s:3:\"url\";s:21:\"/civicrm/file?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (120,1,'civicrm/friend',NULL,'Tell a Friend','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:15:\"CRM_Friend_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (121,1,'civicrm/logout',NULL,'Log out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:6:\"logout\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,9999,1,1,NULL,'a:0:{}'),
- (122,1,'civicrm/i18n',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"translate CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_I18n_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (123,1,'civicrm/ajax/attachment',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:29:\"CRM_Core_Page_AJAX_Attachment\";i:1;s:10:\"attachFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (124,1,'civicrm/api',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (125,1,'civicrm/api3',NULL,'CiviCRM API v3','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_APIExplorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (126,1,'civicrm/ajax/apiexample',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:14:\"getExampleFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (127,1,'civicrm/ajax/apidoc',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:6:\"getDoc\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (128,1,'civicrm/ajax/rest',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:4:\"ajax\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (129,1,'civicrm/api/json',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:8:\"ajaxJson\";}','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (130,1,'civicrm/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:12:\"loadTemplate\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (131,1,'civicrm/ajax/chart',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (132,1,'civicrm/asset/builder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"\\Civi\\Core\\AssetBuilder\";i:1;s:7:\"pageRun\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (133,1,'civicrm/contribute/ajax/tableview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (134,1,'civicrm/payment/ipn',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Core_Payment\";i:1;s:9:\"handleIPN\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (135,1,'civicrm/batch',NULL,'Batch Data Entry','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (136,1,'civicrm/batch/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Batch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (137,1,'civicrm/batch/entry',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Entry\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (138,1,'civicrm/ajax/batch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:9:\"batchSave\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (139,1,'civicrm/ajax/batchlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:12:\"getBatchList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (140,1,'civicrm/ajax/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Page_AJAX\";i:1;s:3:\"run\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (141,1,'civicrm/dev/qunit',NULL,'QUnit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_Core_Page_QUnit\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (142,1,'civicrm/profile-editor/schema',NULL,'ProfileEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:25:\"CRM_UF_Page_ProfileEditor\";i:1;s:13:\"getSchemaJSON\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (143,1,'civicrm/a',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"\\Civi\\Angular\\Page\\Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (144,1,'civicrm/ajax/angular-modules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"\\Civi\\Angular\\Page\\Modules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (145,1,'civicrm/ajax/recurringentity/update-mode',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:34:\"CRM_Core_Page_AJAX_RecurringEntity\";i:1;s:10:\"updateMode\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (146,1,'civicrm/recurringentity/preview',NULL,'Confirm dates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Core_Page_RecurringEntityPreview\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (147,1,'civicrm/shortcode',NULL,'Insert CiviCRM Content','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Form_ShortCode\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (148,1,'civicrm/task/add-to-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Form_Task_AddToGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (149,1,'civicrm/task/remove-from-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contact_Form_Task_RemoveFromGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (150,1,'civicrm/task/add-to-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contact_Form_Task_AddToTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (151,1,'civicrm/task/remove-from-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Form_Task_RemoveFromTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (152,1,'civicrm/task/send-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (153,1,'civicrm/task/make-mailing-label',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Label\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (154,1,'civicrm/task/pick-profile',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contact_Form_Task_PickProfile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (155,1,'civicrm/task/print-document',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (156,1,'civicrm/task/unhold-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Unhold\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (157,1,'civicrm/task/alter-contact-preference',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contact_Form_Task_AlterPreferences\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (158,1,'civicrm/task/delete-contact',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (159,1,'civicrm',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:0:{}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
- (160,1,'civicrm/dashboard',NULL,'CiviCRM Home','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,1,NULL,'a:0:{}'),
- (161,1,'civicrm/contact/search',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,10,1,1,NULL,'a:0:{}'),
- (162,1,'civicrm/contact/image',NULL,'Process Uploaded Images','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"CRM_Contact_BAO_Contact\";i:1;s:12:\"processImage\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (163,1,'civicrm/contact/imagefile',NULL,'Get Image File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_ImageFile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (164,1,'civicrm/contact/search/basic',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (165,1,'civicrm/contact/search/advanced',NULL,'Advanced Search','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=512\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,12,1,1,NULL,'a:0:{}'),
- (166,1,'civicrm/contact/search/builder',NULL,'Search Builder','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:9:\"mode=8192\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,14,1,1,NULL,'a:0:{}'),
- (167,1,'civicrm/contact/search/custom',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Legacycustomsearches_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,10,1,1,NULL,'a:0:{}'),
- (168,1,'civicrm/contact/search/custom/list',NULL,'Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Page_CustomSearch\";','s:8:\"mode=256\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:38:\"/civicrm/contact/search/custom?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,16,1,1,NULL,'a:0:{}'),
- (169,1,'civicrm/contact/add',NULL,'New Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (170,1,'civicrm/contact/add/individual','ct=Individual','New Individual','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (171,1,'civicrm/contact/add/household','ct=Household','New Household','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (172,1,'civicrm/contact/add/organization','ct=Organization','New Organization','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (173,1,'civicrm/contact/relatedcontact',NULL,'Edit Related Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_RelatedContact\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (174,1,'civicrm/contact/merge',NULL,'Merge Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:22:\"CRM_Contact_Form_Merge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (175,1,'civicrm/contact/email',NULL,'Email a Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (176,1,'civicrm/contact/map',NULL,'Map Location(s)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_Map\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (177,1,'civicrm/contact/map/event',NULL,'Map Event Location','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_Task_Map_Event\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Map Location(s)\";s:3:\"url\";s:28:\"/civicrm/contact/map?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (178,1,'civicrm/contact/view','cid=%%cid%%','Contact Summary','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Summary\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (179,1,'civicrm/contact/view/delete',NULL,'Delete Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (180,1,'civicrm/contact/view/activity','show=1,cid=%%cid%%','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:21:\"CRM_Activity_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (181,1,'civicrm/activity/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (182,1,'civicrm/activity/email/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (183,1,'civicrm/activity/pdf/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (184,1,'civicrm/contact/view/rel','cid=%%cid%%','Relationships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_Relationship\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (185,1,'civicrm/contact/view/group','cid=%%cid%%','Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_GroupContact\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (186,1,'civicrm/contact/view/smartgroup','cid=%%cid%%','Smart Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:39:\"CRM_Contact_Page_View_ContactSmartGroup\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (187,1,'civicrm/contact/view/note','cid=%%cid%%','Notes','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:26:\"CRM_Contact_Page_View_Note\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (188,1,'civicrm/contact/view/tag','cid=%%cid%%','Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Tag\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (189,1,'civicrm/contact/view/cd',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:32:\"CRM_Contact_Page_View_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (190,1,'civicrm/contact/view/cd/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Form_CustomData\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (191,1,'civicrm/contact/view/vcard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Vcard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (192,1,'civicrm/contact/view/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Print\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (193,1,'civicrm/contact/view/log',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Log\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (194,1,'civicrm/user',NULL,'Contact Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Page_View_UserDashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (195,1,'civicrm/dashlet/activity',NULL,'Activity Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_Activity\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (196,1,'civicrm/dashlet/blog',NULL,'CiviCRM Blog','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Dashlet_Page_Blog\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (197,1,'civicrm/dashlet/getting-started',NULL,'CiviCRM Resources','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Dashlet_Page_GettingStarted\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (198,1,'civicrm/ajax/relation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"relationship\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
- (199,1,'civicrm/ajax/groupTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"groupTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (200,1,'civicrm/ajax/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:11:\"customField\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (201,1,'civicrm/ajax/customvalue',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:17:\"deleteCustomValue\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
- (202,1,'civicrm/ajax/cmsuser',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"checkUserName\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (203,1,'civicrm/ajax/checkemail',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactEmail\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (204,1,'civicrm/ajax/checkphone',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactPhone\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (205,1,'civicrm/ajax/subtype',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"buildSubTypes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (206,1,'civicrm/ajax/signature',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"getSignature\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (207,1,'civicrm/ajax/pdfFormat',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"pdfFormat\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (208,1,'civicrm/ajax/paperSize',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"paperSize\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (209,1,'civicrm/ajax/contactref',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:31:\"access contact reference fields\";i:1;s:15:\" access CiviCRM\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"contactReference\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (210,1,'civicrm/dashlet/myCases',NULL,'Case Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Dashlet_Page_MyCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (211,1,'civicrm/dashlet/allCases',NULL,'All Cases Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_AllCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (212,1,'civicrm/dashlet/casedashboard',NULL,'Case Dashboard Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Dashlet_Page_CaseDashboard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (213,1,'civicrm/contact/deduperules',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer dedupe rules\";i:1;s:24:\"merge duplicate contacts\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Page_DedupeRules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,105,1,0,NULL,'a:2:{s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:10:\"adminGroup\";s:6:\"Manage\";}'),
- (214,1,'civicrm/contact/dedupefind',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Page_DedupeFind\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (215,1,'civicrm/ajax/dedupefind',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:10:\"getDedupes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (216,1,'civicrm/contact/dedupemerge',NULL,'Batch Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Page_DedupeMerge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (217,1,'civicrm/dedupe/exception',NULL,'Dedupe Exceptions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Page_DedupeException\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,110,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:6:\"Manage\";}'),
- (218,1,'civicrm/ajax/dedupeRules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"buildDedupeRules\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (219,1,'civicrm/contact/view/useradd','cid=%%cid%%','Add User','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Useradd\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (220,1,'civicrm/ajax/markSelection',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:22:\"selectUnselectContacts\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (221,1,'civicrm/ajax/toggleDedupeSelect',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:18:\"toggleDedupeSelect\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (222,1,'civicrm/ajax/flipDupePairs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"flipDupePairs\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (223,1,'civicrm/activity/sms/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_SMS\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (224,1,'civicrm/ajax/contactrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"view my contact\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:23:\"getContactRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (225,1,'civicrm/ajax/api4',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Api4_Permission\";i:1;s:5:\"check\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Api4_Page_AJAX\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (226,1,'civicrm/api4',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Api4_Page_Api4Explorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (227,1,'civicrm/activity','action=add&context=standalone','New Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (228,1,'civicrm/activity/view',NULL,'View Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Form_ActivityView\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (229,1,'civicrm/ajax/activity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:15:\"getCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (230,1,'civicrm/ajax/globalrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseGlobalRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (231,1,'civicrm/ajax/clientrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseClientRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (232,1,'civicrm/ajax/caseroles',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:12:\"getCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (233,1,'civicrm/ajax/contactactivity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:18:\"getContactActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (234,1,'civicrm/ajax/activity/convert',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:21:\"convertToCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
- (235,1,'civicrm/activity/search',NULL,'Find Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Controller_Search\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (236,1,'civicrm/tag',NULL,'Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:16:\"CRM_Tag_Page_Tag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,25,1,0,NULL,'a:2:{s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
- (237,1,'civicrm/tag/edit','action=add','New Tag','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:17:\"CRM_Tag_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (238,1,'civicrm/tag/merge',NULL,'Merge Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:18:\"CRM_Tag_Form_Merge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (239,1,'civicrm/ajax/tagTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:10:\"getTagTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (240,1,'civicrm/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (241,1,'civicrm/pcp/campaign',NULL,'Setup a Personal Campaign Page - Account Information','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (242,1,'civicrm/pcp/info',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_PCP_Page_PCPInfo\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (243,1,'civicrm/admin/pcp','context=contribute','Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Page_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,362,1,0,NULL,'a:2:{s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (244,1,'civicrm/payment/form',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Financial_Form_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (245,1,'civicrm/payment/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Financial_Form_PaymentEdit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (246,1,'civicrm/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Custom_Form_CustomDataByType\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (247,1,'civicrm/event',NULL,'CiviEvent Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,800,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),
- (248,1,'civicrm/participant/add','action=add','Register New Participant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),
- (249,1,'civicrm/event/info',NULL,'Event Information','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (250,1,'civicrm/event/register',NULL,'Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Controller_Registration\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),
- (251,1,'civicrm/event/confirm',NULL,'Confirm Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:46:\"CRM_Event_Form_Registration_ParticipantConfirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),
- (252,1,'civicrm/event/ical',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_ICalendar\";i:1;s:3:\"run\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (253,1,'civicrm/event/list',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','s:19:\"CRM_Event_Page_List\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (254,1,'civicrm/event/participant',NULL,'Event Participants List','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"view event participants\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Page_ParticipantListing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (255,1,'civicrm/admin/event',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:2:{s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (256,1,'civicrm/admin/eventTemplate',NULL,'Event Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Admin_Page_EventTemplate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,375,1,0,NULL,'a:2:{s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (257,1,'civicrm/admin/options/event_type',NULL,'Event Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:2:{s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (258,1,'civicrm/admin/participant_status',NULL,'Participant Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Page_ParticipantStatusType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (259,1,'civicrm/admin/options/participant_role',NULL,'Participant Role','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:2:{s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (260,1,'civicrm/admin/options/participant_listing',NULL,'Participant Listing Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,398,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (261,1,'civicrm/admin/options/conference_slot',NULL,'Conference Slot Labels','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
- (262,1,'civicrm/event/search',NULL,'Find Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,810,1,1,NULL,'a:0:{}'),
- (263,1,'civicrm/event/manage',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,820,1,1,NULL,'a:0:{}'),
- (264,1,'civicrm/event/badge',NULL,'Print Event Name Badge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:25:\"CRM_Event_Form_Task_Badge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (265,1,'civicrm/event/manage/settings',NULL,'Event Info and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,910,1,0,NULL,'a:0:{}'),
- (266,1,'civicrm/event/manage/location',NULL,'Event Location','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:35:\"CRM_Event_Form_ManageEvent_Location\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),
- (267,1,'civicrm/event/manage/fee',NULL,'Event Fees','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_ManageEvent_Fee\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,920,1,0,NULL,'a:0:{}'),
- (268,1,'civicrm/event/manage/registration',NULL,'Event Online Registration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:39:\"CRM_Event_Form_ManageEvent_Registration\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),
- (269,1,'civicrm/event/manage/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Friend_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,940,1,0,NULL,'a:0:{}'),
- (270,1,'civicrm/event/manage/reminder',NULL,'Schedule Reminders','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:44:\"CRM_Event_Form_ManageEvent_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),
- (271,1,'civicrm/event/manage/repeat',NULL,'Repeat Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Form_ManageEvent_Repeat\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,960,1,0,NULL,'a:0:{}'),
- (272,1,'civicrm/event/manage/conference',NULL,'Conference Slots','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:37:\"CRM_Event_Form_ManageEvent_Conference\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),
- (273,1,'civicrm/event/add','action=add','New Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,830,1,0,NULL,'a:0:{}'),
- (274,1,'civicrm/event/import',NULL,'Import Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:23:\"edit event participants\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,840,1,1,NULL,'a:0:{}'),
- (275,1,'civicrm/event/price',NULL,'Manage Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,850,1,1,NULL,'a:0:{}'),
- (276,1,'civicrm/event/selfsvcupdate',NULL,'Self-service Registration Update','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Form_SelfSvcUpdate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,880,1,1,NULL,'a:0:{}'),
- (277,1,'civicrm/event/selfsvctransfer',NULL,'Self-service Registration Transfer','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_SelfSvcTransfer\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,890,1,1,NULL,'a:0:{}'),
- (278,1,'civicrm/contact/view/participant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,4,1,0,NULL,'a:0:{}'),
- (279,1,'civicrm/ajax/eventFee',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_Page_AJAX\";i:1;s:8:\"eventFee\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (280,1,'civicrm/ajax/locBlock',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:11:\"getLocBlock\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (281,1,'civicrm/event/participant/feeselection',NULL,'Change Registration Selections','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:38:\"CRM_Event_Form_ParticipantFeeSelection\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:23:\"Event Participants List\";s:3:\"url\";s:34:\"/civicrm/event/participant?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (282,1,'civicrm/event/manage/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_PCP_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,540,1,1,NULL,'a:0:{}'),
- (283,1,'civicrm/event/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (284,1,'civicrm/event/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (285,1,'civicrm/contribute',NULL,'CiviContribute Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,500,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (286,1,'civicrm/contribute/add','action=add','New Contribution','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (287,1,'civicrm/contribute/chart',NULL,'Contribution Summary - Chart View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (288,1,'civicrm/contribute/transact',NULL,'CiviContribute','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Controller_Contribution\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,1,0,1,0,NULL,'a:0:{}'),
- (289,1,'civicrm/admin/contribute',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,360,1,0,NULL,'a:2:{s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (290,1,'civicrm/admin/contribute/settings',NULL,'Title and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_Settings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:0:{}'),
- (291,1,'civicrm/admin/contribute/amount',NULL,'Contribution Amounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Amount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:0:{}'),
- (292,1,'civicrm/admin/contribute/membership',NULL,'Membership Section','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Member_Form_MembershipBlock\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:0:{}'),
- (293,1,'civicrm/admin/contribute/custom',NULL,'Include Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Custom\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),
- (294,1,'civicrm/admin/contribute/thankyou',NULL,'Thank-you and Receipting','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_ThankYou\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),
- (295,1,'civicrm/admin/contribute/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Friend_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,440,1,0,NULL,'a:0:{}'),
- (296,1,'civicrm/admin/contribute/widget',NULL,'Configure Widget','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Widget\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,460,1,0,NULL,'a:0:{}'),
- (297,1,'civicrm/admin/contribute/premium',NULL,'Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:44:\"CRM_Contribute_Form_ContributionPage_Premium\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,470,1,0,NULL,'a:0:{}'),
- (298,1,'civicrm/admin/contribute/addProductToPage',NULL,'Add Products to This Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:47:\"CRM_Contribute_Form_ContributionPage_AddProduct\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,480,1,0,NULL,'a:0:{}'),
- (299,1,'civicrm/admin/contribute/add','action=add','New Contribution Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Contribute_Controller_ContributionPage\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (300,1,'civicrm/admin/contribute/managePremiums',NULL,'Manage Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Page_ManagePremiums\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,365,1,0,NULL,'a:2:{s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (301,1,'civicrm/admin/financial/financialType',NULL,'Financial Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Page_FinancialType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,580,1,0,NULL,'a:2:{s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (302,1,'civicrm/payment','action=add','New Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Form_AdditionalPayment\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (303,1,'civicrm/admin/financial/financialAccount',NULL,'Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_FinancialAccount\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:2:{s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (304,1,'civicrm/admin/options/payment_instrument',NULL,'Payment Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (305,1,'civicrm/admin/options/accept_creditcard',NULL,'Accepted Credit Cards','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:2:{s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (306,1,'civicrm/admin/options/soft_credit_type',NULL,'Soft Credit Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (307,1,'civicrm/contact/view/contribution',NULL,'Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (308,1,'civicrm/contact/view/contributionrecur',NULL,'Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:37:\"CRM_Contribute_Page_ContributionRecur\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (309,1,'civicrm/contact/view/contribution/additionalinfo',NULL,'Additional Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:13:\"Contributions\";s:3:\"url\";s:42:\"/civicrm/contact/view/contribution?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (310,1,'civicrm/contribute/search',NULL,'Find Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,510,1,1,NULL,'a:0:{}'),
- (311,1,'civicrm/contribute/searchBatch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Controller_SearchBatch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,588,1,1,NULL,'a:0:{}'),
- (312,1,'civicrm/contribute/import',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,520,1,1,NULL,'a:0:{}'),
- (313,1,'civicrm/contribute/manage',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,530,1,1,NULL,'a:0:{}'),
- (314,1,'civicrm/contribute/additionalinfo',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
- (315,1,'civicrm/ajax/permlocation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:23:\"getPermissionedLocation\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (316,1,'civicrm/contribute/unsubscribe',NULL,'Cancel Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_CancelSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (317,1,'civicrm/contribute/onbehalf',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_Contribution_OnBehalfOf\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (318,1,'civicrm/contribute/updatebilling',NULL,'Update Billing Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contribute_Form_UpdateBilling\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (319,1,'civicrm/contribute/updaterecur',NULL,'Update Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_UpdateSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (320,1,'civicrm/contribute/subscriptionstatus',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Page_SubscriptionStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (321,1,'civicrm/admin/financial/financialType/accounts',NULL,'Financial Type Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:39:\"CRM_Financial_Page_FinancialTypeAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,581,1,0,NULL,'a:0:{}'),
- (322,1,'civicrm/financial/batch',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:33:\"CRM_Financial_Page_FinancialBatch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,585,1,0,NULL,'a:0:{}'),
- (323,1,'civicrm/financial/financialbatches',NULL,'Accounting Batches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Financial_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,586,1,0,NULL,'a:0:{}'),
- (324,1,'civicrm/batchtransaction',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_BatchTransaction\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,600,1,0,NULL,'a:0:{}'),
- (325,1,'civicrm/financial/batch/export',NULL,'Accounting Batch Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:25:\"CRM_Financial_Form_Export\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Accounting Batch\";s:3:\"url\";s:32:\"/civicrm/financial/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,0,NULL,'a:0:{}'),
- (326,1,'civicrm/payment/view','action=view','View Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contribute_Page_PaymentInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (327,1,'civicrm/admin/setting/preferences/contribute',NULL,'CiviContribute Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Admin_Form_Preferences_Contribute\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
- (328,1,'civicrm/contribute/invoice',NULL,'PDF Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Contribute_Form_Task_Invoice\";i:1;s:11:\"getPrintPDF\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,620,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (329,1,'civicrm/contribute/invoice/email',NULL,'Email Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Form_Task_Invoice\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"PDF Invoice\";s:3:\"url\";s:35:\"/civicrm/contribute/invoice?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,630,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
- (330,1,'civicrm/ajax/softcontributionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:24:\"CRM_Contribute_Page_AJAX\";i:1;s:23:\"getSoftContributionRows\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (331,1,'civicrm/contribute/contributionrecur-payments',NULL,'Recurring Contribution\'s Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Page_ContributionRecurPayments\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (332,1,'civicrm/membership/recurring-contributions',NULL,'Membership Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Member_Page_RecurringContributions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (333,1,'civicrm/contribute/widget',NULL,'CiviContribute','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contribute_Page_Widget\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (334,1,'civicrm/contribute/task',NULL,'Contribution Task','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contribute_Controller_Task\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (335,1,'civicrm/admin/contribute/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_PCP_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,450,1,0,NULL,'a:0:{}'),
- (336,1,'civicrm/contribute/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
- (337,1,'civicrm/member',NULL,'CiviMember Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:25:\"CRM_Member_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,700,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),
- (338,1,'civicrm/member/add','action=add','New Membership','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),
- (339,1,'civicrm/admin/member/membershipType',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Page_MembershipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:2:{s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),
- (340,1,'civicrm/admin/member/membershipStatus',NULL,'Membership Status Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Member_Page_MembershipStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),
- (341,1,'civicrm/contact/view/membership','force=1,cid=%%cid%%','Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,2,1,0,NULL,'a:0:{}'),
- (342,1,'civicrm/membership/view',NULL,'Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipView\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,390,1,0,NULL,'a:0:{}'),
- (343,1,'civicrm/member/search',NULL,'Find Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,710,1,1,NULL,'a:0:{}'),
- (344,1,'civicrm/member/import',NULL,'Import Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:16:\"edit memberships\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,720,1,1,NULL,'a:0:{}'),
- (345,1,'civicrm/ajax/memType',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Member_Page_AJAX\";i:1;s:21:\"getMemberTypeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (346,1,'civicrm/admin/member/membershipType/add',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:16:\"Membership Types\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (347,1,'civicrm/mailing',NULL,'CiviMail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,600,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviMail\";}'),
- (348,1,'civicrm/admin/mail',NULL,'Mailer Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Mail\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
- (349,1,'civicrm/admin/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:2:{s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
- (350,1,'civicrm/admin/options/from_email_address/civimail',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:20:\"From Email Addresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
- (351,1,'civicrm/admin/mailSettings',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_MailSettings\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:2:{s:4:\"desc\";s:32:\"Configure email account setting.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
- (352,1,'civicrm/mailing/send',NULL,'New Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:27:\"CRM_Mailing_Controller_Send\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),
- (353,1,'civicrm/mailing/browse/scheduled','scheduled=true','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:5:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";i:4;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),
- (354,1,'civicrm/mailing/browse/unscheduled','scheduled=false','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),
- (355,1,'civicrm/mailing/browse/archived',NULL,'Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,625,1,1,NULL,'a:0:{}'),
- (356,1,'civicrm/mailing/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,630,1,1,NULL,'a:0:{}'),
- (357,1,'civicrm/mailing/unsubscribe',NULL,'Unsubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Form_Unsubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,640,1,0,NULL,'a:0:{}'),
- (358,1,'civicrm/mailing/resubscribe',NULL,'Resubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Page_Resubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,645,1,0,NULL,'a:0:{}'),
- (359,1,'civicrm/mailing/optout',NULL,'Opt-out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Form_Optout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,650,1,0,NULL,'a:0:{}'),
- (360,1,'civicrm/mailing/confirm',NULL,'Confirm','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:24:\"CRM_Mailing_Page_Confirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),
- (361,1,'civicrm/mailing/subscribe',NULL,'Subscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Form_Subscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),
- (362,1,'civicrm/mailing/preview',NULL,'Preview Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Page_Preview\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,670,1,0,NULL,'a:0:{}'),
- (363,1,'civicrm/mailing/report','mid=%%mid%%','Mailing Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,680,1,0,NULL,'a:0:{}'),
- (364,1,'civicrm/mailing/forward',NULL,'Forward Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:31:\"CRM_Mailing_Form_ForwardMailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,685,1,0,NULL,'a:0:{}'),
- (365,1,'civicrm/mailing/queue',NULL,'Sending Mail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,690,1,0,NULL,'a:0:{}'),
- (366,1,'civicrm/mailing/report/event',NULL,'Mailing Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:22:\"CRM_Mailing_Page_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Mailing Report\";s:3:\"url\";s:47:\"/civicrm/mailing/report?reset=1&amp;mid=%%mid%%\";}}',NULL,NULL,4,NULL,NULL,NULL,0,695,1,0,NULL,'a:0:{}'),
- (367,1,'civicrm/ajax/template',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:8:\"template\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (368,1,'civicrm/mailing/view',NULL,'View Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:28:\"view public CiviMail content\";i:1;s:15:\"access CiviMail\";i:2;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:21:\"CRM_Mailing_Page_View\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,800,1,0,NULL,'a:0:{}'),
- (369,1,'civicrm/mailing/approve',NULL,'Approve Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Form_Approve\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,850,1,0,NULL,'a:0:{}'),
- (370,1,'civicrm/contact/view/mailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:20:\"CRM_Mailing_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (371,1,'civicrm/ajax/contactmailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:18:\"getContactMailings\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (372,1,'civicrm/ajax/setupMailAccount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:5:\"setup\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (373,1,'civicrm/mailing/url',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:20:\"CRM_Mailing_Page_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (374,1,'civicrm/mailing/open',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:21:\"CRM_Mailing_Page_Open\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (375,1,'civicrm/grant',NULL,'CiviGrant Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1000,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),
- (376,1,'civicrm/grant/info',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
- (377,1,'civicrm/grant/search',NULL,'Find Grants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:27:\"CRM_Grant_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1010,1,1,NULL,'a:0:{}'),
- (378,1,'civicrm/grant/add','action=add','New Grant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),
- (379,1,'civicrm/contact/view/grant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (380,1,'civicrm/pledge',NULL,'CiviPledge Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:25:\"CRM_Pledge_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,550,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),
- (381,1,'civicrm/pledge/search',NULL,'Find Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:28:\"CRM_Pledge_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,560,1,1,NULL,'a:0:{}'),
- (382,1,'civicrm/contact/view/pledge','force=1,cid=%%cid%%','Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,570,1,0,NULL,'a:0:{}'),
- (383,1,'civicrm/pledge/add','action=add','New Pledge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),
- (384,1,'civicrm/pledge/payment',NULL,'Pledge Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:23:\"CRM_Pledge_Page_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,580,1,0,NULL,'a:0:{}'),
- (385,1,'civicrm/ajax/pledgeAmount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviPledge\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Pledge_Page_AJAX\";i:1;s:17:\"getPledgeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (386,1,'civicrm/case',NULL,'CiviCase Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Case_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,900,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),
- (387,1,'civicrm/case/add',NULL,'Open Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Case_Form_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),
- (388,1,'civicrm/case/search',NULL,'Find Cases','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,910,1,1,NULL,'a:0:{}'),
- (389,1,'civicrm/case/activity',NULL,'Case Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Case_Form_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (390,1,'civicrm/case/report',NULL,'Case Activity Audit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:20:\"CRM_Case_Form_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (391,1,'civicrm/case/cd/edit',NULL,'Case Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (392,1,'civicrm/contact/view/case',NULL,'Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:17:\"CRM_Case_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (393,1,'civicrm/case/activity/view',NULL,'Activity View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Form_ActivityView\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Case Activity\";s:3:\"url\";s:30:\"/civicrm/case/activity?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (394,1,'civicrm/contact/view/case/editClient',NULL,'Assign to Another Client','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Case_Form_EditClient\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:4:\"Case\";s:3:\"url\";s:34:\"/civicrm/contact/view/case?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (395,1,'civicrm/case/addToCase',NULL,'File on Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Case_Form_ActivityToCase\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (396,1,'civicrm/case/details',NULL,'Case Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Case_Page_CaseDetails\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (397,1,'civicrm/admin/setting/case',NULL,'CiviCase Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
- (398,1,'civicrm/admin/options/case_type',NULL,'Case Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:24:\"url=civicrm/a/#/caseType\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
- (399,1,'civicrm/admin/options/redaction_rule',NULL,'Redaction Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
- (400,1,'civicrm/admin/options/case_status',NULL,'Case Statuses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
- (401,1,'civicrm/admin/options/encounter_medium',NULL,'Encounter Mediums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:26:\"List of encounter mediums.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
- (402,1,'civicrm/case/report/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Case_XMLProcessor_Report\";i:1;s:15:\"printCaseReport\";}',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:19:\"Case Activity Audit\";s:3:\"url\";s:28:\"/civicrm/case/report?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (403,1,'civicrm/case/ajax/addclient',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:9:\"addClient\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (404,1,'civicrm/case/ajax/processtags',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"processCaseTags\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
- (405,1,'civicrm/case/ajax/details',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:11:\"CaseDetails\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (406,1,'civicrm/ajax/delcaserole',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"deleteCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
- (407,1,'civicrm/ajax/get-cases',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:8:\"getCases\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (1,1,'civicrm/custom/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Custom_Form_CustomData\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (2,1,'civicrm/ajax/optionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:13:\"getOptionList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (3,1,'civicrm/ajax/reorder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:11:\"fixOrdering\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (4,1,'civicrm/ajax/multirecordfieldlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:23:\"getMultiRecordFieldList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (5,1,'civicrm',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:0:{}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (6,1,'civicrm/dashboard',NULL,'CiviCRM Home','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,1,NULL,'a:0:{}'),
+ (7,1,'civicrm/contact/search',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,10,1,1,NULL,'a:0:{}'),
+ (8,1,'civicrm/contact/image',NULL,'Process Uploaded Images','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"CRM_Contact_BAO_Contact\";i:1;s:12:\"processImage\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (9,1,'civicrm/contact/imagefile',NULL,'Get Image File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_ImageFile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (10,1,'civicrm/contact/search/basic',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (11,1,'civicrm/contact/search/advanced',NULL,'Advanced Search','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=512\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,12,1,1,NULL,'a:0:{}'),
+ (12,1,'civicrm/contact/search/builder',NULL,'Search Builder','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:9:\"mode=8192\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,14,1,1,NULL,'a:0:{}'),
+ (13,1,'civicrm/contact/search/custom/list',NULL,'Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Page_CustomSearch\";','s:10:\"mode=16384\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:38:\"/civicrm/contact/search/custom?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,16,1,1,NULL,'a:0:{}'),
+ (14,1,'civicrm/contact/add',NULL,'New Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (15,1,'civicrm/contact/add/individual','ct=Individual','New Individual','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (16,1,'civicrm/contact/add/household','ct=Household','New Household','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (17,1,'civicrm/contact/add/organization','ct=Organization','New Organization','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (18,1,'civicrm/contact/relatedcontact',NULL,'Edit Related Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_RelatedContact\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (19,1,'civicrm/contact/merge',NULL,'Merge Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:22:\"CRM_Contact_Form_Merge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (20,1,'civicrm/contact/email',NULL,'Email a Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (21,1,'civicrm/contact/map',NULL,'Map Location(s)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_Map\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (22,1,'civicrm/contact/map/event',NULL,'Map Event Location','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_Task_Map_Event\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Map Location(s)\";s:3:\"url\";s:28:\"/civicrm/contact/map?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (23,1,'civicrm/contact/view','cid=%%cid%%','Contact Summary','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Summary\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (24,1,'civicrm/contact/view/delete',NULL,'Delete Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (25,1,'civicrm/contact/view/activity','show=1,cid=%%cid%%','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:21:\"CRM_Activity_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (26,1,'civicrm/activity/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (27,1,'civicrm/activity/email/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (28,1,'civicrm/activity/pdf/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (29,1,'civicrm/contact/view/rel','cid=%%cid%%','Relationships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_Relationship\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (30,1,'civicrm/contact/view/group','cid=%%cid%%','Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_GroupContact\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (31,1,'civicrm/contact/view/smartgroup','cid=%%cid%%','Smart Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:39:\"CRM_Contact_Page_View_ContactSmartGroup\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (32,1,'civicrm/contact/view/note','cid=%%cid%%','Notes','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:26:\"CRM_Contact_Page_View_Note\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (33,1,'civicrm/contact/view/tag','cid=%%cid%%','Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Tag\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (34,1,'civicrm/contact/view/cd',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:32:\"CRM_Contact_Page_View_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (35,1,'civicrm/contact/view/cd/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Form_CustomData\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (36,1,'civicrm/contact/view/vcard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Vcard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (37,1,'civicrm/contact/view/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Print\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (38,1,'civicrm/contact/view/log',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Log\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (39,1,'civicrm/user',NULL,'Contact Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Page_View_UserDashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (40,1,'civicrm/dashlet/activity',NULL,'Activity Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_Activity\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (41,1,'civicrm/dashlet/blog',NULL,'CiviCRM Blog','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Dashlet_Page_Blog\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (42,1,'civicrm/dashlet/getting-started',NULL,'CiviCRM Resources','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Dashlet_Page_GettingStarted\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (43,1,'civicrm/ajax/relation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"relationship\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
+ (44,1,'civicrm/ajax/groupTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"groupTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (45,1,'civicrm/ajax/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:11:\"customField\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (46,1,'civicrm/ajax/customvalue',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:17:\"deleteCustomValue\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
+ (47,1,'civicrm/ajax/cmsuser',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"checkUserName\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (48,1,'civicrm/ajax/checkemail',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactEmail\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (49,1,'civicrm/ajax/checkphone',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactPhone\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (50,1,'civicrm/ajax/subtype',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"buildSubTypes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (51,1,'civicrm/ajax/signature',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"getSignature\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (52,1,'civicrm/ajax/pdfFormat',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"pdfFormat\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (53,1,'civicrm/ajax/paperSize',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"paperSize\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (54,1,'civicrm/ajax/contactref',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:31:\"access contact reference fields\";i:1;s:15:\" access CiviCRM\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"contactReference\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (55,1,'civicrm/dashlet/myCases',NULL,'Case Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Dashlet_Page_MyCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (56,1,'civicrm/dashlet/allCases',NULL,'All Cases Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_AllCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (57,1,'civicrm/dashlet/casedashboard',NULL,'Case Dashboard Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Dashlet_Page_CaseDashboard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (58,1,'civicrm/contact/deduperules',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer dedupe rules\";i:1;s:24:\"merge duplicate contacts\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Page_DedupeRules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,105,1,0,NULL,'a:2:{s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:10:\"adminGroup\";s:6:\"Manage\";}'),
+ (59,1,'civicrm/contact/dedupefind',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Page_DedupeFind\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (60,1,'civicrm/ajax/dedupefind',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:10:\"getDedupes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (61,1,'civicrm/contact/dedupemerge',NULL,'Batch Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Page_DedupeMerge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (62,1,'civicrm/dedupe/exception',NULL,'Dedupe Exceptions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Page_DedupeException\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,110,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:6:\"Manage\";}'),
+ (63,1,'civicrm/ajax/dedupeRules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"buildDedupeRules\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (64,1,'civicrm/contact/view/useradd','cid=%%cid%%','Add User','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Useradd\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (65,1,'civicrm/ajax/markSelection',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:22:\"selectUnselectContacts\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (66,1,'civicrm/ajax/toggleDedupeSelect',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:18:\"toggleDedupeSelect\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (67,1,'civicrm/ajax/flipDupePairs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"flipDupePairs\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (68,1,'civicrm/activity/sms/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_SMS\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (69,1,'civicrm/ajax/contactrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"view my contact\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:23:\"getContactRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (70,1,'civicrm/admin/custom/group',NULL,'Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (71,1,'civicrm/admin/custom/group/field',NULL,'Custom Data Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,11,1,0,0,'a:0:{}'),
+ (72,1,'civicrm/admin/custom/group/field/option',NULL,'Custom Field - Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:22:\"CRM_Custom_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (73,1,'civicrm/admin/custom/group/field/add',NULL,'Custom Field - Add','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (74,1,'civicrm/admin/custom/group/field/update',NULL,'Custom Field - Edit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (75,1,'civicrm/admin/custom/group/field/move',NULL,'Custom Field - Move','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:25:\"CRM_Custom_Form_MoveField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (76,1,'civicrm/admin/uf/group',NULL,'Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (77,1,'civicrm/admin/uf/group/field',NULL,'CiviCRM Profile Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,21,1,0,0,'a:0:{}'),
+ (78,1,'civicrm/admin/uf/group/field/add',NULL,'Add Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,22,1,0,NULL,'a:0:{}'),
+ (79,1,'civicrm/admin/uf/group/field/update',NULL,'Edit Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,23,1,0,NULL,'a:0:{}'),
+ (80,1,'civicrm/admin/uf/group/add',NULL,'New CiviCRM Profile','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,24,1,0,NULL,'a:0:{}'),
+ (81,1,'civicrm/admin/uf/group/update',NULL,'Profile Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,25,1,0,NULL,'a:0:{}'),
+ (82,1,'civicrm/admin/uf/group/setting',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_UF_Form_AdvanceSetting\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,0,1,0,NULL,'a:0:{}'),
+ (83,1,'civicrm/admin/options/activity_type',NULL,'Activity Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (84,1,'civicrm/admin/reltype',NULL,'Relationship Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_RelationshipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,35,1,0,NULL,'a:2:{s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (85,1,'civicrm/admin/options/subtype',NULL,'Contact Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_ContactType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (86,1,'civicrm/admin/options/gender',NULL,'Gender Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,45,1,0,NULL,'a:2:{s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (87,1,'civicrm/admin/options/individual_prefix',NULL,'Individual Prefixes (Ms, Mr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:2:{s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (88,1,'civicrm/admin/options/individual_suffix',NULL,'Individual Suffixes (Jr, Sr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,55,1,0,NULL,'a:2:{s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (89,1,'civicrm/admin/locationType',NULL,'Location Types (Home, Work...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LocationType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:2:{s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (90,1,'civicrm/admin/options/website_type',NULL,'Website Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,65,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (91,1,'civicrm/admin/options/instant_messenger_service',NULL,'Instant Messenger Services','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:2:{s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (92,1,'civicrm/admin/options/mobile_provider',NULL,'Mobile Phone Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:2:{s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (93,1,'civicrm/admin/options/phone_type',NULL,'Phone Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:2:{s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (94,1,'civicrm/admin/setting/preferences/display',NULL,'Display Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Display\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (95,1,'civicrm/admin/setting/search',NULL,'Search Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Form_Setting_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,95,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (96,1,'civicrm/admin/setting/preferences/date',NULL,'View Date Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Page_PreferencesDate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (97,1,'civicrm/admin/menu',NULL,'Navigation Menu','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Navigation\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:2:{s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (98,1,'civicrm/admin/options/wordreplacements',NULL,'Word Replacements','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_WordReplacements\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:2:{s:4:\"desc\";s:18:\"Word Replacements.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (99,1,'civicrm/admin/options/custom_search',NULL,'Manage Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:2:{s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (100,1,'civicrm/admin/domain','action=update','Organization Address and Contact Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contact_Form_Domain\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (101,1,'civicrm/admin/options/from_email_address',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (102,1,'civicrm/admin/messageTemplates',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Page_MessageTemplates\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (103,1,'civicrm/admin/messageTemplates/add',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Form_MessageTemplates\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Message Templates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,262,1,0,NULL,'a:1:{s:4:\"desc\";s:26:\"Add/Edit Message Templates\";}'),
+ (104,1,'civicrm/admin/scheduleReminders',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCRM data\";i:1;s:15:\"edit all events\";}i:1;s:2:\"or\";}','s:32:\"CRM_Admin_Page_ScheduleReminders\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:4:\"desc\";s:19:\"Schedule Reminders.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (105,1,'civicrm/admin/weight',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_Weight\";i:1;s:8:\"fixOrder\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (106,1,'civicrm/admin/options/preferred_communication_method',NULL,'Preferred Communication Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:2:{s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (107,1,'civicrm/admin/labelFormats',NULL,'Label Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LabelFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:2:{s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (108,1,'civicrm/admin/pdfFormats',NULL,'Print Page (PDF) Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_PdfFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:2:{s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (109,1,'civicrm/admin/options/communication_style',NULL,'Communication Style Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:2:{s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (110,1,'civicrm/admin/options/email_greeting',NULL,'Email Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:2:{s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (111,1,'civicrm/admin/options/postal_greeting',NULL,'Postal Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:2:{s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (112,1,'civicrm/admin/options/addressee',NULL,'Addressee Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:2:{s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'),
+ (113,1,'civicrm/admin/setting/localization',NULL,'Languages, Currency, Locations','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Form_Setting_Localization\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'),
+ (114,1,'civicrm/admin/setting/preferences/address',NULL,'Address Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Address\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'),
+ (115,1,'civicrm/admin/setting/date',NULL,'Date Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Date\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'),
+ (116,1,'civicrm/admin/options/languages',NULL,'Preferred Languages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:4:\"desc\";s:30:\"Options for contact languages.\";s:10:\"adminGroup\";s:12:\"Localization\";}'),
+ (117,1,'civicrm/admin/access',NULL,'Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_Access\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'),
+ (118,1,'civicrm/admin/access/wp-permissions',NULL,'WordPress Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_ACL_Form_WordPress_Permissions\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Access Control\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:1:{s:4:\"desc\";s:65:\"Grant access to CiviCRM components and other CiviCRM permissions.\";}'),
+ (119,1,'civicrm/admin/synchUser',NULL,'Synchronize Users to Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_CMSUser\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'),
+ (120,1,'civicrm/admin/configtask',NULL,'Configuration Checklist','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_ConfigTaskList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}','civicrm/admin/configtask',NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (121,1,'civicrm/admin/setting/component',NULL,'Enable CiviCRM Components','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (122,1,'civicrm/admin/extensions',NULL,'Manage Extensions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Extensions\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:2:{s:4:\"desc\";s:0:\"\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (123,1,'civicrm/admin/extensions/upgrade',NULL,'Database Upgrades','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Page_ExtensionsUpgrade\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Manage Extensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (124,1,'civicrm/admin/setting/smtp',NULL,'Outbound Email Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Smtp\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (125,1,'civicrm/admin/paymentProcessor',NULL,'Settings - Payment Processor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_PaymentProcessor\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (126,1,'civicrm/admin/setting/mapping',NULL,'Mapping and Geocoding','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Form_Setting_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (127,1,'civicrm/admin/setting/misc',NULL,'Misc (Undelete, PDFs, Limits, Logging, etc.)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Form_Setting_Miscellaneous\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:2:{s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (128,1,'civicrm/admin/setting/path',NULL,'Directories','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Path\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (129,1,'civicrm/admin/setting/url',NULL,'Resource URLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_Setting_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (130,1,'civicrm/admin/setting/updateConfigBackend',NULL,'Cleanup Caches and Update Paths','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Admin_Form_Setting_UpdateConfigBackend\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:2:{s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (131,1,'civicrm/admin/setting/uf',NULL,'CMS Database Integration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Form_Setting_UF\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (132,1,'civicrm/admin/options/safe_file_extension',NULL,'Safe File Extension Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:2:{s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (133,1,'civicrm/admin/options',NULL,'Option Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (134,1,'civicrm/admin/mapping',NULL,'Import/Export Mappings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:2:{s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (135,1,'civicrm/admin/setting/debug',NULL,'Debugging','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Debugging\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (136,1,'civicrm/admin/setting/preferences/multisite',NULL,'Multi Site Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,130,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (137,1,'civicrm/admin/setting/preferences/campaign',NULL,'CiviCampaign Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'),
+ (138,1,'civicrm/admin/setting/preferences/event',NULL,'CiviEvent Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:2:{s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (139,1,'civicrm/admin/setting/preferences/mailing',NULL,'CiviMail Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Mailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:2:{s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
+ (140,1,'civicrm/admin/setting/preferences/member',NULL,'CiviMember Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Admin_Form_Preferences_Member\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),
+ (141,1,'civicrm/admin/runjobs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:20:\"executeScheduledJobs\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:36:\"URL used for running scheduled jobs.\";}'),
+ (142,1,'civicrm/admin/job',NULL,'Scheduled Jobs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1370,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (143,1,'civicrm/admin/joblog',NULL,'Scheduled Jobs Log','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_JobLog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1380,1,0,NULL,'a:2:{s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:10:\"adminGroup\";s:6:\"Manage\";}'),
+ (144,1,'civicrm/admin/options/grant_type',NULL,'Grant Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:2:{s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:10:\"adminGroup\";s:12:\"Option Lists\";}'),
+ (145,1,'civicrm/admin/paymentProcessorType',NULL,'Payment Processor Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Page_PaymentProcessorType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:1:{s:4:\"desc\";s:34:\"Payment Processor type information\";}'),
+ (146,1,'civicrm/admin',NULL,'Administer CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Admin_Page_Admin\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,9000,1,1,NULL,'a:0:{}'),
+ (147,1,'civicrm/ajax/navmenu',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:7:\"navMenu\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (148,1,'civicrm/ajax/menutree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:8:\"menuTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
+ (149,1,'civicrm/ajax/statusmsg',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:12:\"getStatusMsg\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (150,1,'civicrm/admin/price',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:10:\"adminGroup\";s:9:\"Customize\";}'),
+ (151,1,'civicrm/admin/price/add','action=add','New Price Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";}'),
+ (152,1,'civicrm/admin/price/field',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,0,'a:0:{}'),
+ (153,1,'civicrm/admin/price/field/option',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (154,1,'civicrm/ajax/mapping',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:11:\"mappingList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (155,1,'civicrm/ajax/recipientListing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:16:\"recipientListing\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (156,1,'civicrm/admin/sms/provider',NULL,'Sms Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Provider\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,500,1,0,NULL,'a:2:{s:4:\"desc\";s:27:\"To configure a sms provider\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
+ (157,1,'civicrm/sms/send',NULL,'New Mass SMS','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:23:\"CRM_SMS_Controller_Send\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),
+ (158,1,'civicrm/sms/callback',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Callback\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (159,1,'civicrm/admin/badgelayout','action=browse','Event Name Badge Layouts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Page_Layout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,399,1,0,NULL,'a:2:{s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (160,1,'civicrm/admin/badgelayout/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Form_Layout\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?reset=1&amp;action=browse\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (161,1,'civicrm/group',NULL,'Manage Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Page_Group\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,30,1,1,NULL,'a:0:{}'),
+ (162,1,'civicrm/group/search',NULL,'Group Members','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:7:\"comment\";s:164:\"Note: group search already respect ACL, so a strict permission at url level is not required. A simple/basic permission like \'access CiviCRM\' could be used. CRM-5417\";}'),
+ (163,1,'civicrm/group/add',NULL,'New Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (164,1,'civicrm/ajax/grouplist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Group_Page_AJAX\";i:1;s:12:\"getGroupList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (165,1,'civicrm/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (166,1,'civicrm/pcp/campaign',NULL,'Setup a Personal Campaign Page - Account Information','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (167,1,'civicrm/pcp/info',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_PCP_Page_PCPInfo\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (168,1,'civicrm/admin/pcp','context=contribute','Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Page_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,362,1,0,NULL,'a:2:{s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (169,1,'civicrm/payment/form',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Financial_Form_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (170,1,'civicrm/payment/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Financial_Form_PaymentEdit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (171,1,'civicrm/profile',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (172,1,'civicrm/profile/create',NULL,'CiviCRM Profile Create','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (173,1,'civicrm/profile/view',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Profile_Page_View\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (174,1,'civicrm/activity','action=add&context=standalone','New Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (175,1,'civicrm/activity/view',NULL,'View Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Form_ActivityView\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (176,1,'civicrm/ajax/activity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:15:\"getCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (177,1,'civicrm/ajax/globalrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseGlobalRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (178,1,'civicrm/ajax/clientrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseClientRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (179,1,'civicrm/ajax/caseroles',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:12:\"getCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (180,1,'civicrm/ajax/contactactivity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:18:\"getContactActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (181,1,'civicrm/ajax/activity/convert',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:21:\"convertToCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
+ (182,1,'civicrm/activity/search',NULL,'Find Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Controller_Search\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (183,1,'civicrm/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Custom_Form_CustomDataByType\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (184,1,'civicrm/tag',NULL,'Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:16:\"CRM_Tag_Page_Tag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,25,1,0,NULL,'a:2:{s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),
+ (185,1,'civicrm/tag/edit','action=add','New Tag','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:17:\"CRM_Tag_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (186,1,'civicrm/tag/merge',NULL,'Merge Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:18:\"CRM_Tag_Form_Merge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (187,1,'civicrm/ajax/tagTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:10:\"getTagTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (188,1,'civicrm/ajax/jqState',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:7:\"jqState\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (189,1,'civicrm/ajax/jqCounty',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:8:\"jqCounty\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (190,1,'civicrm/upgrade',NULL,'Upgrade CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Upgrade_Page_Upgrade\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (191,1,'civicrm/export',NULL,'Download Errors','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (192,1,'civicrm/export/contact',NULL,'Export Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (193,1,'civicrm/export/standalone',NULL,'Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Export_Controller_Standalone\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (194,1,'civicrm/admin/options/acl_role',NULL,'ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (195,1,'civicrm/acl',NULL,'Manage ACLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_ACL_Page_ACL\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (196,1,'civicrm/acl/entityrole',NULL,'Assign Users to ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_ACL_Page_EntityRole\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (197,1,'civicrm/acl/basic',NULL,'ACL','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_ACL_Page_ACLBasic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (198,1,'civicrm/file',NULL,'Browse Uploaded files','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_Page_File\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (199,1,'civicrm/file/delete',NULL,'Delete File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:17:\"CRM_Core_BAO_File\";i:1;s:16:\"deleteAttachment\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:21:\"Browse Uploaded files\";s:3:\"url\";s:21:\"/civicrm/file?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (200,1,'civicrm/friend',NULL,'Tell a Friend','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:15:\"CRM_Friend_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (201,1,'civicrm/logout',NULL,'Log out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:6:\"logout\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,9999,1,1,NULL,'a:0:{}'),
+ (202,1,'civicrm/i18n',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"translate CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_I18n_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (203,1,'civicrm/ajax/attachment',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:29:\"CRM_Core_Page_AJAX_Attachment\";i:1;s:10:\"attachFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (204,1,'civicrm/api',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (205,1,'civicrm/api3',NULL,'CiviCRM API v3','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_APIExplorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (206,1,'civicrm/ajax/apiexample',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:14:\"getExampleFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (207,1,'civicrm/ajax/apidoc',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:6:\"getDoc\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (208,1,'civicrm/ajax/rest',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:4:\"ajax\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (209,1,'civicrm/api/json',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:8:\"ajaxJson\";}','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (210,1,'civicrm/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:12:\"loadTemplate\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (211,1,'civicrm/ajax/chart',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (212,1,'civicrm/asset/builder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"\\Civi\\Core\\AssetBuilder\";i:1;s:7:\"pageRun\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (213,1,'civicrm/contribute/ajax/tableview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (214,1,'civicrm/payment/ipn',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Core_Payment\";i:1;s:9:\"handleIPN\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (215,1,'civicrm/batch',NULL,'Batch Data Entry','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (216,1,'civicrm/batch/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Batch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (217,1,'civicrm/batch/entry',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Entry\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (218,1,'civicrm/ajax/batch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:9:\"batchSave\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (219,1,'civicrm/ajax/batchlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:12:\"getBatchList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (220,1,'civicrm/ajax/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Page_AJAX\";i:1;s:3:\"run\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (221,1,'civicrm/dev/qunit',NULL,'QUnit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_Core_Page_QUnit\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (222,1,'civicrm/profile-editor/schema',NULL,'ProfileEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:25:\"CRM_UF_Page_ProfileEditor\";i:1;s:13:\"getSchemaJSON\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (223,1,'civicrm/a',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"\\Civi\\Angular\\Page\\Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (224,1,'civicrm/ajax/angular-modules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"\\Civi\\Angular\\Page\\Modules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (225,1,'civicrm/ajax/recurringentity/update-mode',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:34:\"CRM_Core_Page_AJAX_RecurringEntity\";i:1;s:10:\"updateMode\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (226,1,'civicrm/recurringentity/preview',NULL,'Confirm dates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Core_Page_RecurringEntityPreview\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (227,1,'civicrm/shortcode',NULL,'Insert CiviCRM Content','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Form_ShortCode\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (228,1,'civicrm/task/add-to-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Form_Task_AddToGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (229,1,'civicrm/task/remove-from-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contact_Form_Task_RemoveFromGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (230,1,'civicrm/task/add-to-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contact_Form_Task_AddToTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (231,1,'civicrm/task/remove-from-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Form_Task_RemoveFromTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (232,1,'civicrm/task/send-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (233,1,'civicrm/task/make-mailing-label',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Label\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (234,1,'civicrm/task/pick-profile',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contact_Form_Task_PickProfile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (235,1,'civicrm/task/print-document',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (236,1,'civicrm/task/unhold-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Unhold\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (237,1,'civicrm/task/alter-contact-preference',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contact_Form_Task_AlterPreferences\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (238,1,'civicrm/task/delete-contact',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (239,1,'civicrm/ajax/api4',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Api4_Permission\";i:1;s:5:\"check\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Api4_Page_AJAX\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (240,1,'civicrm/api4',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Api4_Page_Api4Explorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (241,1,'civicrm/import',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,400,1,1,NULL,'a:0:{}'),
+ (242,1,'civicrm/import/contact',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,410,1,1,NULL,'a:0:{}'),
+ (243,1,'civicrm/import/activity',NULL,'Import Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),
+ (244,1,'civicrm/import/custom','id=%%id%%','Import Multi-value Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Custom_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),
+ (245,1,'civicrm/ajax/status',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Contact_Import_Page_AJAX\";i:1;s:6:\"status\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (246,1,'civicrm/event',NULL,'CiviEvent Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,800,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),
+ (247,1,'civicrm/participant/add','action=add','Register New Participant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),
+ (248,1,'civicrm/event/info',NULL,'Event Information','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (249,1,'civicrm/event/register',NULL,'Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Controller_Registration\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (250,1,'civicrm/event/confirm',NULL,'Confirm Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:46:\"CRM_Event_Form_Registration_ParticipantConfirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (251,1,'civicrm/event/ical',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_ICalendar\";i:1;s:3:\"run\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (252,1,'civicrm/event/list',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','s:19:\"CRM_Event_Page_List\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (253,1,'civicrm/event/participant',NULL,'Event Participants List','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"view event participants\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Page_ParticipantListing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (254,1,'civicrm/admin/event',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:2:{s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (255,1,'civicrm/admin/eventTemplate',NULL,'Event Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Admin_Page_EventTemplate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,375,1,0,NULL,'a:2:{s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (256,1,'civicrm/admin/options/event_type',NULL,'Event Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:2:{s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (257,1,'civicrm/admin/participant_status',NULL,'Participant Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Page_ParticipantStatusType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (258,1,'civicrm/admin/options/participant_role',NULL,'Participant Role','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:2:{s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (259,1,'civicrm/admin/options/participant_listing',NULL,'Participant Listing Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,398,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (260,1,'civicrm/admin/options/conference_slot',NULL,'Conference Slot Labels','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),
+ (261,1,'civicrm/event/search',NULL,'Find Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,810,1,1,NULL,'a:0:{}'),
+ (262,1,'civicrm/event/manage',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,820,1,1,NULL,'a:0:{}'),
+ (263,1,'civicrm/event/badge',NULL,'Print Event Name Badge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:25:\"CRM_Event_Form_Task_Badge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (264,1,'civicrm/event/manage/settings',NULL,'Event Info and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,910,1,0,NULL,'a:0:{}'),
+ (265,1,'civicrm/event/manage/location',NULL,'Event Location','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:35:\"CRM_Event_Form_ManageEvent_Location\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),
+ (266,1,'civicrm/event/manage/fee',NULL,'Event Fees','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_ManageEvent_Fee\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,920,1,0,NULL,'a:0:{}'),
+ (267,1,'civicrm/event/manage/registration',NULL,'Event Online Registration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:39:\"CRM_Event_Form_ManageEvent_Registration\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),
+ (268,1,'civicrm/event/manage/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Friend_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,940,1,0,NULL,'a:0:{}'),
+ (269,1,'civicrm/event/manage/reminder',NULL,'Schedule Reminders','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:44:\"CRM_Event_Form_ManageEvent_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),
+ (270,1,'civicrm/event/manage/repeat',NULL,'Repeat Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Form_ManageEvent_Repeat\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,960,1,0,NULL,'a:0:{}'),
+ (271,1,'civicrm/event/manage/conference',NULL,'Conference Slots','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:37:\"CRM_Event_Form_ManageEvent_Conference\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),
+ (272,1,'civicrm/event/add','action=add','New Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,830,1,0,NULL,'a:0:{}'),
+ (273,1,'civicrm/event/import',NULL,'Import Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:23:\"edit event participants\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,840,1,1,NULL,'a:0:{}'),
+ (274,1,'civicrm/event/price',NULL,'Manage Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,850,1,1,NULL,'a:0:{}'),
+ (275,1,'civicrm/event/selfsvcupdate',NULL,'Self-service Registration Update','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Form_SelfSvcUpdate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,880,1,1,NULL,'a:0:{}'),
+ (276,1,'civicrm/event/selfsvctransfer',NULL,'Self-service Registration Transfer','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_SelfSvcTransfer\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,890,1,1,NULL,'a:0:{}'),
+ (277,1,'civicrm/contact/view/participant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,4,1,0,NULL,'a:0:{}'),
+ (278,1,'civicrm/ajax/eventFee',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_Page_AJAX\";i:1;s:8:\"eventFee\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (279,1,'civicrm/ajax/locBlock',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:11:\"getLocBlock\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (280,1,'civicrm/event/participant/feeselection',NULL,'Change Registration Selections','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:38:\"CRM_Event_Form_ParticipantFeeSelection\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:23:\"Event Participants List\";s:3:\"url\";s:34:\"/civicrm/event/participant?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (281,1,'civicrm/event/manage/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_PCP_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,540,1,1,NULL,'a:0:{}'),
+ (282,1,'civicrm/event/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (283,1,'civicrm/event/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (284,1,'civicrm/admin/contribute/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_PCP_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,450,1,0,NULL,'a:0:{}'),
+ (285,1,'civicrm/contribute/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (286,1,'civicrm/contribute',NULL,'CiviContribute Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,500,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (287,1,'civicrm/contribute/add','action=add','New Contribution','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (288,1,'civicrm/contribute/chart',NULL,'Contribution Summary - Chart View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (289,1,'civicrm/contribute/transact',NULL,'CiviContribute','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Controller_Contribution\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,1,0,1,0,NULL,'a:0:{}'),
+ (290,1,'civicrm/admin/contribute',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,360,1,0,NULL,'a:2:{s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (291,1,'civicrm/admin/contribute/settings',NULL,'Title and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_Settings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:0:{}'),
+ (292,1,'civicrm/admin/contribute/amount',NULL,'Contribution Amounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Amount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:0:{}'),
+ (293,1,'civicrm/admin/contribute/membership',NULL,'Membership Section','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Member_Form_MembershipBlock\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:0:{}'),
+ (294,1,'civicrm/admin/contribute/custom',NULL,'Include Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Custom\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),
+ (295,1,'civicrm/admin/contribute/thankyou',NULL,'Thank-you and Receipting','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_ThankYou\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),
+ (296,1,'civicrm/admin/contribute/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Friend_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,440,1,0,NULL,'a:0:{}'),
+ (297,1,'civicrm/admin/contribute/widget',NULL,'Configure Widget','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Widget\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,460,1,0,NULL,'a:0:{}'),
+ (298,1,'civicrm/admin/contribute/premium',NULL,'Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:44:\"CRM_Contribute_Form_ContributionPage_Premium\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,470,1,0,NULL,'a:0:{}'),
+ (299,1,'civicrm/admin/contribute/addProductToPage',NULL,'Add Products to This Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:47:\"CRM_Contribute_Form_ContributionPage_AddProduct\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,480,1,0,NULL,'a:0:{}'),
+ (300,1,'civicrm/admin/contribute/add','action=add','New Contribution Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Contribute_Controller_ContributionPage\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (301,1,'civicrm/admin/contribute/managePremiums',NULL,'Manage Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Page_ManagePremiums\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,365,1,0,NULL,'a:2:{s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (302,1,'civicrm/admin/financial/financialType',NULL,'Financial Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Page_FinancialType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,580,1,0,NULL,'a:2:{s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (303,1,'civicrm/payment','action=add','New Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Form_AdditionalPayment\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (304,1,'civicrm/admin/financial/financialAccount',NULL,'Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_FinancialAccount\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:2:{s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (305,1,'civicrm/admin/options/payment_instrument',NULL,'Payment Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (306,1,'civicrm/admin/options/accept_creditcard',NULL,'Accepted Credit Cards','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:2:{s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (307,1,'civicrm/admin/options/soft_credit_type',NULL,'Soft Credit Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (308,1,'civicrm/contact/view/contribution',NULL,'Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (309,1,'civicrm/contact/view/contributionrecur',NULL,'Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:37:\"CRM_Contribute_Page_ContributionRecur\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (310,1,'civicrm/contact/view/contribution/additionalinfo',NULL,'Additional Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:13:\"Contributions\";s:3:\"url\";s:42:\"/civicrm/contact/view/contribution?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (311,1,'civicrm/contribute/search',NULL,'Find Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,510,1,1,NULL,'a:0:{}'),
+ (312,1,'civicrm/contribute/searchBatch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Controller_SearchBatch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,588,1,1,NULL,'a:0:{}'),
+ (313,1,'civicrm/contribute/import',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,520,1,1,NULL,'a:0:{}'),
+ (314,1,'civicrm/contribute/manage',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,530,1,1,NULL,'a:0:{}'),
+ (315,1,'civicrm/contribute/additionalinfo',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (316,1,'civicrm/ajax/permlocation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:23:\"getPermissionedLocation\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (317,1,'civicrm/contribute/unsubscribe',NULL,'Cancel Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_CancelSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (318,1,'civicrm/contribute/onbehalf',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_Contribution_OnBehalfOf\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (319,1,'civicrm/contribute/updatebilling',NULL,'Update Billing Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contribute_Form_UpdateBilling\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (320,1,'civicrm/contribute/updaterecur',NULL,'Update Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_UpdateSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (321,1,'civicrm/contribute/subscriptionstatus',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Page_SubscriptionStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (322,1,'civicrm/admin/financial/financialType/accounts',NULL,'Financial Type Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:39:\"CRM_Financial_Page_FinancialTypeAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,581,1,0,NULL,'a:0:{}'),
+ (323,1,'civicrm/financial/batch',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:33:\"CRM_Financial_Page_FinancialBatch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,585,1,0,NULL,'a:0:{}'),
+ (324,1,'civicrm/financial/financialbatches',NULL,'Accounting Batches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Financial_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,586,1,0,NULL,'a:0:{}'),
+ (325,1,'civicrm/batchtransaction',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_BatchTransaction\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,600,1,0,NULL,'a:0:{}'),
+ (326,1,'civicrm/financial/batch/export',NULL,'Accounting Batch Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:25:\"CRM_Financial_Form_Export\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Accounting Batch\";s:3:\"url\";s:32:\"/civicrm/financial/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,0,NULL,'a:0:{}'),
+ (327,1,'civicrm/payment/view','action=view','View Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contribute_Page_PaymentInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (328,1,'civicrm/admin/setting/preferences/contribute',NULL,'CiviContribute Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Admin_Form_Preferences_Contribute\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),
+ (329,1,'civicrm/contribute/invoice',NULL,'PDF Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Contribute_Form_Task_Invoice\";i:1;s:11:\"getPrintPDF\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,620,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (330,1,'civicrm/contribute/invoice/email',NULL,'Email Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Form_Task_Invoice\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"PDF Invoice\";s:3:\"url\";s:35:\"/civicrm/contribute/invoice?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,630,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),
+ (331,1,'civicrm/ajax/softcontributionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:24:\"CRM_Contribute_Page_AJAX\";i:1;s:23:\"getSoftContributionRows\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (332,1,'civicrm/contribute/contributionrecur-payments',NULL,'Recurring Contribution\'s Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Page_ContributionRecurPayments\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (333,1,'civicrm/membership/recurring-contributions',NULL,'Membership Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Member_Page_RecurringContributions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (334,1,'civicrm/contribute/widget',NULL,'CiviContribute','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contribute_Page_Widget\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (335,1,'civicrm/contribute/task',NULL,'Contribution Task','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contribute_Controller_Task\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (336,1,'civicrm/member',NULL,'CiviMember Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:25:\"CRM_Member_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,700,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),
+ (337,1,'civicrm/member/add','action=add','New Membership','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),
+ (338,1,'civicrm/admin/member/membershipType',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Page_MembershipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:2:{s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),
+ (339,1,'civicrm/admin/member/membershipStatus',NULL,'Membership Status Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Member_Page_MembershipStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),
+ (340,1,'civicrm/contact/view/membership','force=1,cid=%%cid%%','Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,2,1,0,NULL,'a:0:{}'),
+ (341,1,'civicrm/membership/view',NULL,'Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipView\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,390,1,0,NULL,'a:0:{}'),
+ (342,1,'civicrm/member/search',NULL,'Find Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,710,1,1,NULL,'a:0:{}'),
+ (343,1,'civicrm/member/import',NULL,'Import Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:16:\"edit memberships\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,720,1,1,NULL,'a:0:{}'),
+ (344,1,'civicrm/ajax/memType',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Member_Page_AJAX\";i:1;s:21:\"getMemberTypeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (345,1,'civicrm/admin/member/membershipType/add',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:16:\"Membership Types\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (346,1,'civicrm/mailing',NULL,'CiviMail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,600,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviMail\";}'),
+ (347,1,'civicrm/admin/mail',NULL,'Mailer Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Mail\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
+ (348,1,'civicrm/admin/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:2:{s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
+ (349,1,'civicrm/admin/options/from_email_address/civimail',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:20:\"From Email Addresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
+ (350,1,'civicrm/admin/mailSettings',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_MailSettings\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:2:{s:4:\"desc\";s:32:\"Configure email account setting.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),
+ (351,1,'civicrm/mailing/send',NULL,'New Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:27:\"CRM_Mailing_Controller_Send\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),
+ (352,1,'civicrm/mailing/browse/scheduled','scheduled=true','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:5:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";i:4;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),
+ (353,1,'civicrm/mailing/browse/unscheduled','scheduled=false','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),
+ (354,1,'civicrm/mailing/browse/archived',NULL,'Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,625,1,1,NULL,'a:0:{}'),
+ (355,1,'civicrm/mailing/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,630,1,1,NULL,'a:0:{}'),
+ (356,1,'civicrm/mailing/unsubscribe',NULL,'Unsubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Form_Unsubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,640,1,0,NULL,'a:0:{}'),
+ (357,1,'civicrm/mailing/resubscribe',NULL,'Resubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Page_Resubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,645,1,0,NULL,'a:0:{}'),
+ (358,1,'civicrm/mailing/optout',NULL,'Opt-out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Form_Optout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,650,1,0,NULL,'a:0:{}'),
+ (359,1,'civicrm/mailing/confirm',NULL,'Confirm','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:24:\"CRM_Mailing_Page_Confirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),
+ (360,1,'civicrm/mailing/subscribe',NULL,'Subscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Form_Subscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),
+ (361,1,'civicrm/mailing/preview',NULL,'Preview Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Page_Preview\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,670,1,0,NULL,'a:0:{}'),
+ (362,1,'civicrm/mailing/report','mid=%%mid%%','Mailing Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,680,1,0,NULL,'a:0:{}'),
+ (363,1,'civicrm/mailing/forward',NULL,'Forward Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:31:\"CRM_Mailing_Form_ForwardMailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,685,1,0,NULL,'a:0:{}'),
+ (364,1,'civicrm/mailing/queue',NULL,'Sending Mail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,690,1,0,NULL,'a:0:{}'),
+ (365,1,'civicrm/mailing/report/event',NULL,'Mailing Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:22:\"CRM_Mailing_Page_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Mailing Report\";s:3:\"url\";s:47:\"/civicrm/mailing/report?reset=1&amp;mid=%%mid%%\";}}',NULL,NULL,4,NULL,NULL,NULL,0,695,1,0,NULL,'a:0:{}'),
+ (366,1,'civicrm/ajax/template',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:8:\"template\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (367,1,'civicrm/mailing/view',NULL,'View Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:28:\"view public CiviMail content\";i:1;s:15:\"access CiviMail\";i:2;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:21:\"CRM_Mailing_Page_View\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,800,1,0,NULL,'a:0:{}'),
+ (368,1,'civicrm/mailing/approve',NULL,'Approve Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Form_Approve\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,850,1,0,NULL,'a:0:{}'),
+ (369,1,'civicrm/contact/view/mailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:20:\"CRM_Mailing_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (370,1,'civicrm/ajax/contactmailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:18:\"getContactMailings\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (371,1,'civicrm/ajax/setupMailAccount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:5:\"setup\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (372,1,'civicrm/mailing/url',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:20:\"CRM_Mailing_Page_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (373,1,'civicrm/mailing/open',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:21:\"CRM_Mailing_Page_Open\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (374,1,'civicrm/grant',NULL,'CiviGrant Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1000,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),
+ (375,1,'civicrm/grant/info',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),
+ (376,1,'civicrm/grant/search',NULL,'Find Grants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:27:\"CRM_Grant_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1010,1,1,NULL,'a:0:{}'),
+ (377,1,'civicrm/grant/add','action=add','New Grant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),
+ (378,1,'civicrm/contact/view/grant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (379,1,'civicrm/pledge',NULL,'CiviPledge Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:25:\"CRM_Pledge_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,550,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),
+ (380,1,'civicrm/pledge/search',NULL,'Find Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:28:\"CRM_Pledge_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,560,1,1,NULL,'a:0:{}'),
+ (381,1,'civicrm/contact/view/pledge','force=1,cid=%%cid%%','Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,570,1,0,NULL,'a:0:{}'),
+ (382,1,'civicrm/pledge/add','action=add','New Pledge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),
+ (383,1,'civicrm/pledge/payment',NULL,'Pledge Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:23:\"CRM_Pledge_Page_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,580,1,0,NULL,'a:0:{}'),
+ (384,1,'civicrm/ajax/pledgeAmount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviPledge\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Pledge_Page_AJAX\";i:1;s:17:\"getPledgeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (385,1,'civicrm/case',NULL,'CiviCase Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Case_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,900,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),
+ (386,1,'civicrm/case/add',NULL,'Open Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Case_Form_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),
+ (387,1,'civicrm/case/search',NULL,'Find Cases','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,910,1,1,NULL,'a:0:{}'),
+ (388,1,'civicrm/case/activity',NULL,'Case Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Case_Form_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (389,1,'civicrm/case/report',NULL,'Case Activity Audit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:20:\"CRM_Case_Form_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (390,1,'civicrm/case/cd/edit',NULL,'Case Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (391,1,'civicrm/contact/view/case',NULL,'Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:17:\"CRM_Case_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (392,1,'civicrm/case/activity/view',NULL,'Activity View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Form_ActivityView\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Case Activity\";s:3:\"url\";s:30:\"/civicrm/case/activity?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (393,1,'civicrm/contact/view/case/editClient',NULL,'Assign to Another Client','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Case_Form_EditClient\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:4:\"Case\";s:3:\"url\";s:34:\"/civicrm/contact/view/case?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (394,1,'civicrm/case/addToCase',NULL,'File on Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Case_Form_ActivityToCase\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (395,1,'civicrm/case/details',NULL,'Case Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Case_Page_CaseDetails\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (396,1,'civicrm/admin/setting/case',NULL,'CiviCase Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
+ (397,1,'civicrm/admin/options/case_type',NULL,'Case Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:24:\"url=civicrm/a/#/caseType\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
+ (398,1,'civicrm/admin/options/redaction_rule',NULL,'Redaction Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
+ (399,1,'civicrm/admin/options/case_status',NULL,'Case Statuses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
+ (400,1,'civicrm/admin/options/encounter_medium',NULL,'Encounter Mediums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:2:{s:4:\"desc\";s:26:\"List of encounter mediums.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'),
+ (401,1,'civicrm/case/report/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Case_XMLProcessor_Report\";i:1;s:15:\"printCaseReport\";}',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:19:\"Case Activity Audit\";s:3:\"url\";s:28:\"/civicrm/case/report?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (402,1,'civicrm/case/ajax/addclient',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:9:\"addClient\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (403,1,'civicrm/case/ajax/processtags',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"processCaseTags\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),
+ (404,1,'civicrm/case/ajax/details',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:11:\"CaseDetails\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (405,1,'civicrm/ajax/delcaserole',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"deleteCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (406,1,'civicrm/ajax/get-cases',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:8:\"getCases\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
+ (407,1,'civicrm/case/email/add','action=add,task=email','Email','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_Task_Email\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
  (408,1,'civicrm/report',NULL,'CiviReport','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:22:\"CRM_Report_Page_Report\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1200,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviReport\";}'),
  (409,1,'civicrm/report/list',NULL,'CiviCRM Reports','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),
  (410,1,'civicrm/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1220,1,1,NULL,'a:0:{}'),
@@ -5107,9 +5094,11 @@ INSERT INTO `civicrm_menu` (`id`, `domain_id`, `path`, `path_arguments`, `title`
  (440,1,'civicrm/event/cart_checkout',NULL,'Cart Checkout','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Controller_Checkout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),
  (441,1,'civicrm/event/remove_from_cart',NULL,'Remove From Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Page_RemoveFromCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
  (442,1,'civicrm/event/view_cart',NULL,'View Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Cart_Page_ViewCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),
- (443,1,'civicrm/admin/setting/recaptcha',NULL,'reCAPTCHA Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
+ (443,1,'civicrm/admin/setting/recaptcha',NULL,'reCAPTCHA Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:43:\"Configure anti-abuse/bot-prevention service\";s:10:\"adminGroup\";s:15:\"System Settings\";}'),
  (444,1,'civicrm/admin/ckeditor',NULL,'Configure CKEditor 4','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Ckeditor4_Form_CKEditorConfig\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),
- (445,1,'admin',NULL,NULL,NULL,NULL,NULL,NULL,'a:15:{s:26:\"Customize Data and Screens\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:19:{s:20:\"{weight}.Custom Data\";a:6:{s:5:\"title\";s:11:\"Custom Data\";s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:2:\"id\";s:10:\"CustomData\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:17:\"{weight}.Profiles\";a:6:{s:5:\"title\";s:8:\"Profiles\";s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:2:\"id\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Activity Types\";a:6:{s:5:\"title\";s:14:\"Activity Types\";s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:2:\"id\";s:13:\"ActivityTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/activity_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Relationship Types\";a:6:{s:5:\"title\";s:18:\"Relationship Types\";s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:2:\"id\";s:17:\"RelationshipTypes\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Contact Types\";a:6:{s:5:\"title\";s:13:\"Contact Types\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ContactTypes\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Gender Options\";a:6:{s:5:\"title\";s:14:\"Gender Options\";s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:2:\"id\";s:13:\"GenderOptions\";s:3:\"url\";s:37:\"/civicrm/admin/options/gender?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Prefixes (Ms, Mr...)\";a:6:{s:5:\"title\";s:31:\"Individual Prefixes (Ms, Mr...)\";s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:2:\"id\";s:27:\"IndividualPrefixes_Ms_Mr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_prefix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Suffixes (Jr, Sr...)\";a:6:{s:5:\"title\";s:31:\"Individual Suffixes (Jr, Sr...)\";s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:2:\"id\";s:27:\"IndividualSuffixes_Jr_Sr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_suffix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:39:\"{weight}.Location Types (Home, Work...)\";a:6:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:2:\"id\";s:26:\"LocationTypes_Home_Work...\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Website Types\";a:6:{s:5:\"title\";s:13:\"Website Types\";s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:2:\"id\";s:12:\"WebsiteTypes\";s:3:\"url\";s:43:\"/civicrm/admin/options/website_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:35:\"{weight}.Instant Messenger Services\";a:6:{s:5:\"title\";s:26:\"Instant Messenger Services\";s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:2:\"id\";s:24:\"InstantMessengerServices\";s:3:\"url\";s:56:\"/civicrm/admin/options/instant_messenger_service?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Mobile Phone Providers\";a:6:{s:5:\"title\";s:22:\"Mobile Phone Providers\";s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:2:\"id\";s:20:\"MobilePhoneProviders\";s:3:\"url\";s:46:\"/civicrm/admin/options/mobile_provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Phone Type\";a:6:{s:5:\"title\";s:10:\"Phone Type\";s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:2:\"id\";s:9:\"PhoneType\";s:3:\"url\";s:41:\"/civicrm/admin/options/phone_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Display Preferences\";a:6:{s:5:\"title\";s:19:\"Display Preferences\";s:4:\"desc\";N;s:2:\"id\";s:18:\"DisplayPreferences\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/display?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Search Preferences\";a:6:{s:5:\"title\";s:18:\"Search Preferences\";s:4:\"desc\";N;s:2:\"id\";s:17:\"SearchPreferences\";s:3:\"url\";s:37:\"/civicrm/admin/setting/search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Navigation Menu\";a:6:{s:5:\"title\";s:15:\"Navigation Menu\";s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:2:\"id\";s:14:\"NavigationMenu\";s:3:\"url\";s:27:\"/civicrm/admin/menu?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Word Replacements\";a:6:{s:5:\"title\";s:17:\"Word Replacements\";s:4:\"desc\";s:18:\"Word Replacements.\";s:2:\"id\";s:16:\"WordReplacements\";s:3:\"url\";s:47:\"/civicrm/admin/options/wordreplacements?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Manage Custom Searches\";a:6:{s:5:\"title\";s:22:\"Manage Custom Searches\";s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:2:\"id\";s:20:\"ManageCustomSearches\";s:3:\"url\";s:44:\"/civicrm/admin/options/custom_search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:13:\"{weight}.Tags\";a:6:{s:5:\"title\";s:4:\"Tags\";s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:2:\"id\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:14:\"Communications\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:11:{s:46:\"{weight}.Organization Address and Contact Info\";a:6:{s:5:\"title\";s:37:\"Organization Address and Contact Info\";s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:2:\"id\";s:33:\"OrganizationAddressandContactInfo\";s:3:\"url\";s:47:\"/civicrm/admin/domain?action=update&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Message Templates\";a:6:{s:5:\"title\";s:17:\"Message Templates\";s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:2:\"id\";s:16:\"MessageTemplates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Schedule Reminders\";a:6:{s:5:\"title\";s:18:\"Schedule Reminders\";s:4:\"desc\";s:19:\"Schedule Reminders.\";s:2:\"id\";s:17:\"ScheduleReminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Preferred Communication Methods\";a:6:{s:5:\"title\";s:31:\"Preferred Communication Methods\";s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:2:\"id\";s:29:\"PreferredCommunicationMethods\";s:3:\"url\";s:61:\"/civicrm/admin/options/preferred_communication_method?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Label Formats\";a:6:{s:5:\"title\";s:13:\"Label Formats\";s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:2:\"id\";s:12:\"LabelFormats\";s:3:\"url\";s:35:\"/civicrm/admin/labelFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Print Page (PDF) Formats\";a:6:{s:5:\"title\";s:24:\"Print Page (PDF) Formats\";s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:2:\"id\";s:20:\"PrintPage_PDFFormats\";s:3:\"url\";s:33:\"/civicrm/admin/pdfFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Communication Style Options\";a:6:{s:5:\"title\";s:27:\"Communication Style Options\";s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:2:\"id\";s:25:\"CommunicationStyleOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/communication_style?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Email Greeting Formats\";a:6:{s:5:\"title\";s:22:\"Email Greeting Formats\";s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:2:\"id\";s:20:\"EmailGreetingFormats\";s:3:\"url\";s:45:\"/civicrm/admin/options/email_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Postal Greeting Formats\";a:6:{s:5:\"title\";s:23:\"Postal Greeting Formats\";s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:2:\"id\";s:21:\"PostalGreetingFormats\";s:3:\"url\";s:46:\"/civicrm/admin/options/postal_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Addressee Formats\";a:6:{s:5:\"title\";s:17:\"Addressee Formats\";s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:2:\"id\";s:16:\"AddresseeFormats\";s:3:\"url\";s:40:\"/civicrm/admin/options/addressee?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Localization\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:4:{s:39:\"{weight}.Languages, Currency, Locations\";a:6:{s:5:\"title\";s:30:\"Languages, Currency, Locations\";s:4:\"desc\";N;s:2:\"id\";s:28:\"Languages_Currency_Locations\";s:3:\"url\";s:43:\"/civicrm/admin/setting/localization?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Address Settings\";a:6:{s:5:\"title\";s:16:\"Address Settings\";s:4:\"desc\";N;s:2:\"id\";s:15:\"AddressSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Date Formats\";a:6:{s:5:\"title\";s:12:\"Date Formats\";s:4:\"desc\";N;s:2:\"id\";s:11:\"DateFormats\";s:3:\"url\";s:35:\"/civicrm/admin/setting/date?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Preferred Languages\";a:6:{s:5:\"title\";s:19:\"Preferred Languages\";s:4:\"desc\";s:30:\"Options for contact languages.\";s:2:\"id\";s:18:\"PreferredLanguages\";s:3:\"url\";s:40:\"/civicrm/admin/options/languages?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:21:\"Users and Permissions\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:2:{s:23:\"{weight}.Access Control\";a:6:{s:5:\"title\";s:14:\"Access Control\";s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:2:\"id\";s:13:\"AccessControl\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Synchronize Users to Contacts\";a:6:{s:5:\"title\";s:29:\"Synchronize Users to Contacts\";s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:2:\"id\";s:26:\"SynchronizeUserstoContacts\";s:3:\"url\";s:32:\"/civicrm/admin/synchUser?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:15:\"System Settings\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:18:{s:32:\"{weight}.Configuration Checklist\";a:6:{s:5:\"title\";s:23:\"Configuration Checklist\";s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:2:\"id\";s:22:\"ConfigurationChecklist\";s:3:\"url\";s:33:\"/civicrm/admin/configtask?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Enable CiviCRM Components\";a:6:{s:5:\"title\";s:25:\"Enable CiviCRM Components\";s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:2:\"id\";s:23:\"EnableCiviCRMComponents\";s:3:\"url\";s:40:\"/civicrm/admin/setting/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Manage Extensions\";a:6:{s:5:\"title\";s:17:\"Manage Extensions\";s:4:\"desc\";s:0:\"\";s:2:\"id\";s:16:\"ManageExtensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Outbound Email Settings\";a:6:{s:5:\"title\";s:23:\"Outbound Email Settings\";s:4:\"desc\";N;s:2:\"id\";s:21:\"OutboundEmailSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/smtp?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:37:\"{weight}.Settings - Payment Processor\";a:6:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:2:\"id\";s:25:\"Settings-PaymentProcessor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Mapping and Geocoding\";a:6:{s:5:\"title\";s:21:\"Mapping and Geocoding\";s:4:\"desc\";N;s:2:\"id\";s:19:\"MappingandGeocoding\";s:3:\"url\";s:38:\"/civicrm/admin/setting/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:53:\"{weight}.Misc (Undelete, PDFs, Limits, Logging, etc.)\";a:6:{s:5:\"title\";s:44:\"Misc (Undelete, PDFs, Limits, Logging, etc.)\";s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:2:\"id\";s:38:\"Misc_Undelete_PDFs_Limits_Logging_etc.\";s:3:\"url\";s:35:\"/civicrm/admin/setting/misc?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Directories\";a:6:{s:5:\"title\";s:11:\"Directories\";s:4:\"desc\";N;s:2:\"id\";s:11:\"Directories\";s:3:\"url\";s:35:\"/civicrm/admin/setting/path?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Resource URLs\";a:6:{s:5:\"title\";s:13:\"Resource URLs\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ResourceURLs\";s:3:\"url\";s:34:\"/civicrm/admin/setting/url?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Cleanup Caches and Update Paths\";a:6:{s:5:\"title\";s:31:\"Cleanup Caches and Update Paths\";s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:2:\"id\";s:27:\"CleanupCachesandUpdatePaths\";s:3:\"url\";s:50:\"/civicrm/admin/setting/updateConfigBackend?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.CMS Database Integration\";a:6:{s:5:\"title\";s:24:\"CMS Database Integration\";s:4:\"desc\";N;s:2:\"id\";s:22:\"CMSDatabaseIntegration\";s:3:\"url\";s:33:\"/civicrm/admin/setting/uf?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Safe File Extension Options\";a:6:{s:5:\"title\";s:27:\"Safe File Extension Options\";s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:2:\"id\";s:24:\"SafeFileExtensionOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/safe_file_extension?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Option Groups\";a:6:{s:5:\"title\";s:13:\"Option Groups\";s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:2:\"id\";s:12:\"OptionGroups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Import/Export Mappings\";a:6:{s:5:\"title\";s:22:\"Import/Export Mappings\";s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:2:\"id\";s:21:\"Import_ExportMappings\";s:3:\"url\";s:30:\"/civicrm/admin/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:18:\"{weight}.Debugging\";a:6:{s:5:\"title\";s:9:\"Debugging\";s:4:\"desc\";N;s:2:\"id\";s:9:\"Debugging\";s:3:\"url\";s:36:\"/civicrm/admin/setting/debug?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Multi Site Settings\";a:6:{s:5:\"title\";s:19:\"Multi Site Settings\";s:4:\"desc\";N;s:2:\"id\";s:17:\"MultiSiteSettings\";s:3:\"url\";s:52:\"/civicrm/admin/setting/preferences/multisite?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Scheduled Jobs\";a:6:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:2:\"id\";s:13:\"ScheduledJobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Sms Providers\";a:6:{s:5:\"title\";s:13:\"Sms Providers\";s:4:\"desc\";s:27:\"To configure a sms provider\";s:2:\"id\";s:12:\"SmsProviders\";s:3:\"url\";s:35:\"/civicrm/admin/sms/provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"CiviCampaign\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:40:\"{weight}.CiviCampaign Component Settings\";a:6:{s:5:\"title\";s:31:\"CiviCampaign Component Settings\";s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:2:\"id\";s:29:\"CiviCampaignComponentSettings\";s:3:\"url\";s:51:\"/civicrm/admin/setting/preferences/campaign?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Survey Types\";a:6:{s:5:\"title\";s:12:\"Survey Types\";s:4:\"desc\";N;s:2:\"id\";s:11:\"SurveyTypes\";s:3:\"url\";s:42:\"/civicrm/admin/campaign/surveyType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Campaign Types\";a:6:{s:5:\"title\";s:14:\"Campaign Types\";s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:2:\"id\";s:13:\"CampaignTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/campaign_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Campaign Status\";a:6:{s:5:\"title\";s:15:\"Campaign Status\";s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:2:\"id\";s:14:\"CampaignStatus\";s:3:\"url\";s:46:\"/civicrm/admin/options/campaign_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Engagement Index\";a:6:{s:5:\"title\";s:16:\"Engagement Index\";s:4:\"desc\";s:18:\"Engagement levels.\";s:2:\"id\";s:15:\"EngagementIndex\";s:3:\"url\";s:47:\"/civicrm/admin/options/engagement_index?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"CiviEvent\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:37:\"{weight}.CiviEvent Component Settings\";a:6:{s:5:\"title\";s:28:\"CiviEvent Component Settings\";s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:2:\"id\";s:26:\"CiviEventComponentSettings\";s:3:\"url\";s:48:\"/civicrm/admin/setting/preferences/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Event Name Badge Layouts\";a:6:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:2:\"id\";s:21:\"EventNameBadgeLayouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?action=browse&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Manage Events\";a:6:{s:5:\"title\";s:13:\"Manage Events\";s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:2:\"id\";s:12:\"ManageEvents\";s:3:\"url\";s:28:\"/civicrm/admin/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Event Templates\";a:6:{s:5:\"title\";s:15:\"Event Templates\";s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:2:\"id\";s:14:\"EventTemplates\";s:3:\"url\";s:36:\"/civicrm/admin/eventTemplate?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Event Types\";a:6:{s:5:\"title\";s:11:\"Event Types\";s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:2:\"id\";s:10:\"EventTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/event_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Participant Status\";a:6:{s:5:\"title\";s:18:\"Participant Status\";s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:2:\"id\";s:17:\"ParticipantStatus\";s:3:\"url\";s:41:\"/civicrm/admin/participant_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Participant Role\";a:6:{s:5:\"title\";s:16:\"Participant Role\";s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:2:\"id\";s:15:\"ParticipantRole\";s:3:\"url\";s:47:\"/civicrm/admin/options/participant_role?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Participant Listing Templates\";a:6:{s:5:\"title\";s:29:\"Participant Listing Templates\";s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:2:\"id\";s:27:\"ParticipantListingTemplates\";s:3:\"url\";s:50:\"/civicrm/admin/options/participant_listing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Conference Slot Labels\";a:6:{s:5:\"title\";s:22:\"Conference Slot Labels\";s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:2:\"id\";s:20:\"ConferenceSlotLabels\";s:3:\"url\";s:46:\"/civicrm/admin/options/conference_slot?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviMail\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:36:\"{weight}.CiviMail Component Settings\";a:6:{s:5:\"title\";s:27:\"CiviMail Component Settings\";s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:2:\"id\";s:25:\"CiviMailComponentSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/mailing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Mailer Settings\";a:6:{s:5:\"title\";s:15:\"Mailer Settings\";s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:2:\"id\";s:14:\"MailerSettings\";s:3:\"url\";s:27:\"/civicrm/admin/mail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:49:\"{weight}.Headers, Footers, and Automated Messages\";a:6:{s:5:\"title\";s:40:\"Headers, Footers, and Automated Messages\";s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:2:\"id\";s:36:\"Headers_Footers_andAutomatedMessages\";s:3:\"url\";s:32:\"/civicrm/admin/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:58:\"/civicrm/admin/options/from_email_address/civimail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Mail Accounts\";a:6:{s:5:\"title\";s:13:\"Mail Accounts\";s:4:\"desc\";s:32:\"Configure email account setting.\";s:2:\"id\";s:12:\"MailAccounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:10:\"CiviMember\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:38:\"{weight}.CiviMember Component Settings\";a:6:{s:5:\"title\";s:29:\"CiviMember Component Settings\";s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:2:\"id\";s:27:\"CiviMemberComponentSettings\";s:3:\"url\";s:49:\"/civicrm/admin/setting/preferences/member?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Membership Types\";a:6:{s:5:\"title\";s:16:\"Membership Types\";s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:2:\"id\";s:15:\"MembershipTypes\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Membership Status Rules\";a:6:{s:5:\"title\";s:23:\"Membership Status Rules\";s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:2:\"id\";s:21:\"MembershipStatusRules\";s:3:\"url\";s:46:\"/civicrm/admin/member/membershipStatus?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:6:\"Manage\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:27:\"{weight}.Scheduled Jobs Log\";a:6:{s:5:\"title\";s:18:\"Scheduled Jobs Log\";s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:2:\"id\";s:16:\"ScheduledJobsLog\";s:3:\"url\";s:29:\"/civicrm/admin/joblog?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:42:\"{weight}.Find and Merge Duplicate Contacts\";a:6:{s:5:\"title\";s:33:\"Find and Merge Duplicate Contacts\";s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:2:\"id\";s:29:\"FindandMergeDuplicateContacts\";s:3:\"url\";s:36:\"/civicrm/contact/deduperules?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Dedupe Exceptions\";a:6:{s:5:\"title\";s:17:\"Dedupe Exceptions\";s:4:\"desc\";N;s:2:\"id\";s:16:\"DedupeExceptions\";s:3:\"url\";s:33:\"/civicrm/dedupe/exception?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Option Lists\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:20:\"{weight}.Grant Types\";a:6:{s:5:\"title\";s:11:\"Grant Types\";s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:2:\"id\";s:10:\"GrantTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/grant_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"Customize\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:19:\"{weight}.Price Sets\";a:6:{s:5:\"title\";s:10:\"Price Sets\";s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:2:\"id\";s:9:\"PriceSets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:14:\"CiviContribute\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:32:\"{weight}.Personal Campaign Pages\";a:6:{s:5:\"title\";s:23:\"Personal Campaign Pages\";s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:2:\"id\";s:21:\"PersonalCampaignPages\";s:3:\"url\";s:49:\"/civicrm/admin/pcp?context=contribute&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Manage Contribution Pages\";a:6:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:2:\"id\";s:23:\"ManageContributionPages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Manage Premiums\";a:6:{s:5:\"title\";s:15:\"Manage Premiums\";s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:2:\"id\";s:14:\"ManagePremiums\";s:3:\"url\";s:48:\"/civicrm/admin/contribute/managePremiums?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Financial Types\";a:6:{s:5:\"title\";s:15:\"Financial Types\";s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:2:\"id\";s:14:\"FinancialTypes\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Financial Accounts\";a:6:{s:5:\"title\";s:18:\"Financial Accounts\";s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:2:\"id\";s:17:\"FinancialAccounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Payment Methods\";a:6:{s:5:\"title\";s:15:\"Payment Methods\";s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:2:\"id\";s:14:\"PaymentMethods\";s:3:\"url\";s:49:\"/civicrm/admin/options/payment_instrument?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Accepted Credit Cards\";a:6:{s:5:\"title\";s:21:\"Accepted Credit Cards\";s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:2:\"id\";s:19:\"AcceptedCreditCards\";s:3:\"url\";s:48:\"/civicrm/admin/options/accept_creditcard?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Soft Credit Types\";a:6:{s:5:\"title\";s:17:\"Soft Credit Types\";s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:2:\"id\";s:15:\"SoftCreditTypes\";s:3:\"url\";s:47:\"/civicrm/admin/options/soft_credit_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:42:\"{weight}.CiviContribute Component Settings\";a:6:{s:5:\"title\";s:33:\"CiviContribute Component Settings\";s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:2:\"id\";s:31:\"CiviContributeComponentSettings\";s:3:\"url\";s:53:\"/civicrm/admin/setting/preferences/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviCase\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:26:\"{weight}.CiviCase Settings\";a:6:{s:5:\"title\";s:17:\"CiviCase Settings\";s:4:\"desc\";N;s:2:\"id\";s:16:\"CiviCaseSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/case?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Case Types\";a:6:{s:5:\"title\";s:10:\"Case Types\";s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:2:\"id\";s:9:\"CaseTypes\";s:3:\"url\";s:40:\"/civicrm/admin/options/case_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Redaction Rules\";a:6:{s:5:\"title\";s:15:\"Redaction Rules\";s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:2:\"id\";s:14:\"RedactionRules\";s:3:\"url\";s:45:\"/civicrm/admin/options/redaction_rule?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Case Statuses\";a:6:{s:5:\"title\";s:13:\"Case Statuses\";s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:2:\"id\";s:12:\"CaseStatuses\";s:3:\"url\";s:42:\"/civicrm/admin/options/case_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Encounter Mediums\";a:6:{s:5:\"title\";s:17:\"Encounter Mediums\";s:4:\"desc\";s:26:\"List of encounter mediums.\";s:2:\"id\";s:16:\"EncounterMediums\";s:3:\"url\";s:47:\"/civicrm/admin/options/encounter_medium?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:10:\"CiviReport\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:40:\"{weight}.Create New Report from Template\";a:6:{s:5:\"title\";s:31:\"Create New Report from Template\";s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:2:\"id\";s:27:\"CreateNewReportfromTemplate\";s:3:\"url\";s:43:\"/civicrm/admin/report/template/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Manage Templates\";a:6:{s:5:\"title\";s:16:\"Manage Templates\";s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:2:\"id\";s:15:\"ManageTemplates\";s:3:\"url\";s:53:\"/civicrm/admin/report/options/report_template?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Reports Listing\";a:6:{s:5:\"title\";s:15:\"Reports Listing\";s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:2:\"id\";s:14:\"ReportsListing\";s:3:\"url\";s:34:\"/civicrm/admin/report/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}}',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,NULL,'a:0:{}');
+ (445,1,'civicrm/contact/search/custom',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Legacycustomsearches_Controller_Search\";','s:10:\"mode=16384\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,10,1,1,NULL,'a:0:{}'),
+ (446,1,'civicrm/admin/setting/flexmailer',NULL,'Flexmailer Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";}'),
+ (447,1,'admin',NULL,NULL,NULL,NULL,NULL,NULL,'a:15:{s:6:\"Manage\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:42:\"{weight}.Find and Merge Duplicate Contacts\";a:6:{s:5:\"title\";s:33:\"Find and Merge Duplicate Contacts\";s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:2:\"id\";s:29:\"FindandMergeDuplicateContacts\";s:3:\"url\";s:36:\"/civicrm/contact/deduperules?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Dedupe Exceptions\";a:6:{s:5:\"title\";s:17:\"Dedupe Exceptions\";s:4:\"desc\";N;s:2:\"id\";s:16:\"DedupeExceptions\";s:3:\"url\";s:33:\"/civicrm/dedupe/exception?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Scheduled Jobs Log\";a:6:{s:5:\"title\";s:18:\"Scheduled Jobs Log\";s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:2:\"id\";s:16:\"ScheduledJobsLog\";s:3:\"url\";s:29:\"/civicrm/admin/joblog?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:26:\"Customize Data and Screens\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:19:{s:20:\"{weight}.Custom Data\";a:6:{s:5:\"title\";s:11:\"Custom Data\";s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:2:\"id\";s:10:\"CustomData\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:17:\"{weight}.Profiles\";a:6:{s:5:\"title\";s:8:\"Profiles\";s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:2:\"id\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Activity Types\";a:6:{s:5:\"title\";s:14:\"Activity Types\";s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:2:\"id\";s:13:\"ActivityTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/activity_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Relationship Types\";a:6:{s:5:\"title\";s:18:\"Relationship Types\";s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:2:\"id\";s:17:\"RelationshipTypes\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Contact Types\";a:6:{s:5:\"title\";s:13:\"Contact Types\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ContactTypes\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Gender Options\";a:6:{s:5:\"title\";s:14:\"Gender Options\";s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:2:\"id\";s:13:\"GenderOptions\";s:3:\"url\";s:37:\"/civicrm/admin/options/gender?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Prefixes (Ms, Mr...)\";a:6:{s:5:\"title\";s:31:\"Individual Prefixes (Ms, Mr...)\";s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:2:\"id\";s:27:\"IndividualPrefixes_Ms_Mr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_prefix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Suffixes (Jr, Sr...)\";a:6:{s:5:\"title\";s:31:\"Individual Suffixes (Jr, Sr...)\";s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:2:\"id\";s:27:\"IndividualSuffixes_Jr_Sr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_suffix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:39:\"{weight}.Location Types (Home, Work...)\";a:6:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:2:\"id\";s:26:\"LocationTypes_Home_Work...\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Website Types\";a:6:{s:5:\"title\";s:13:\"Website Types\";s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:2:\"id\";s:12:\"WebsiteTypes\";s:3:\"url\";s:43:\"/civicrm/admin/options/website_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:35:\"{weight}.Instant Messenger Services\";a:6:{s:5:\"title\";s:26:\"Instant Messenger Services\";s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:2:\"id\";s:24:\"InstantMessengerServices\";s:3:\"url\";s:56:\"/civicrm/admin/options/instant_messenger_service?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Mobile Phone Providers\";a:6:{s:5:\"title\";s:22:\"Mobile Phone Providers\";s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:2:\"id\";s:20:\"MobilePhoneProviders\";s:3:\"url\";s:46:\"/civicrm/admin/options/mobile_provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Phone Type\";a:6:{s:5:\"title\";s:10:\"Phone Type\";s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:2:\"id\";s:9:\"PhoneType\";s:3:\"url\";s:41:\"/civicrm/admin/options/phone_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Display Preferences\";a:6:{s:5:\"title\";s:19:\"Display Preferences\";s:4:\"desc\";N;s:2:\"id\";s:18:\"DisplayPreferences\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/display?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Search Preferences\";a:6:{s:5:\"title\";s:18:\"Search Preferences\";s:4:\"desc\";N;s:2:\"id\";s:17:\"SearchPreferences\";s:3:\"url\";s:37:\"/civicrm/admin/setting/search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Navigation Menu\";a:6:{s:5:\"title\";s:15:\"Navigation Menu\";s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:2:\"id\";s:14:\"NavigationMenu\";s:3:\"url\";s:27:\"/civicrm/admin/menu?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Word Replacements\";a:6:{s:5:\"title\";s:17:\"Word Replacements\";s:4:\"desc\";s:18:\"Word Replacements.\";s:2:\"id\";s:16:\"WordReplacements\";s:3:\"url\";s:47:\"/civicrm/admin/options/wordreplacements?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Manage Custom Searches\";a:6:{s:5:\"title\";s:22:\"Manage Custom Searches\";s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:2:\"id\";s:20:\"ManageCustomSearches\";s:3:\"url\";s:44:\"/civicrm/admin/options/custom_search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:13:\"{weight}.Tags\";a:6:{s:5:\"title\";s:4:\"Tags\";s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:2:\"id\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:14:\"Communications\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:11:{s:46:\"{weight}.Organization Address and Contact Info\";a:6:{s:5:\"title\";s:37:\"Organization Address and Contact Info\";s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:2:\"id\";s:33:\"OrganizationAddressandContactInfo\";s:3:\"url\";s:47:\"/civicrm/admin/domain?action=update&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Message Templates\";a:6:{s:5:\"title\";s:17:\"Message Templates\";s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:2:\"id\";s:16:\"MessageTemplates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Schedule Reminders\";a:6:{s:5:\"title\";s:18:\"Schedule Reminders\";s:4:\"desc\";s:19:\"Schedule Reminders.\";s:2:\"id\";s:17:\"ScheduleReminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Preferred Communication Methods\";a:6:{s:5:\"title\";s:31:\"Preferred Communication Methods\";s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:2:\"id\";s:29:\"PreferredCommunicationMethods\";s:3:\"url\";s:61:\"/civicrm/admin/options/preferred_communication_method?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Label Formats\";a:6:{s:5:\"title\";s:13:\"Label Formats\";s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:2:\"id\";s:12:\"LabelFormats\";s:3:\"url\";s:35:\"/civicrm/admin/labelFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Print Page (PDF) Formats\";a:6:{s:5:\"title\";s:24:\"Print Page (PDF) Formats\";s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:2:\"id\";s:20:\"PrintPage_PDFFormats\";s:3:\"url\";s:33:\"/civicrm/admin/pdfFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Communication Style Options\";a:6:{s:5:\"title\";s:27:\"Communication Style Options\";s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:2:\"id\";s:25:\"CommunicationStyleOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/communication_style?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Email Greeting Formats\";a:6:{s:5:\"title\";s:22:\"Email Greeting Formats\";s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:2:\"id\";s:20:\"EmailGreetingFormats\";s:3:\"url\";s:45:\"/civicrm/admin/options/email_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Postal Greeting Formats\";a:6:{s:5:\"title\";s:23:\"Postal Greeting Formats\";s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:2:\"id\";s:21:\"PostalGreetingFormats\";s:3:\"url\";s:46:\"/civicrm/admin/options/postal_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Addressee Formats\";a:6:{s:5:\"title\";s:17:\"Addressee Formats\";s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:2:\"id\";s:16:\"AddresseeFormats\";s:3:\"url\";s:40:\"/civicrm/admin/options/addressee?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Localization\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:4:{s:39:\"{weight}.Languages, Currency, Locations\";a:6:{s:5:\"title\";s:30:\"Languages, Currency, Locations\";s:4:\"desc\";N;s:2:\"id\";s:28:\"Languages_Currency_Locations\";s:3:\"url\";s:43:\"/civicrm/admin/setting/localization?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Address Settings\";a:6:{s:5:\"title\";s:16:\"Address Settings\";s:4:\"desc\";N;s:2:\"id\";s:15:\"AddressSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Date Formats\";a:6:{s:5:\"title\";s:12:\"Date Formats\";s:4:\"desc\";N;s:2:\"id\";s:11:\"DateFormats\";s:3:\"url\";s:35:\"/civicrm/admin/setting/date?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Preferred Languages\";a:6:{s:5:\"title\";s:19:\"Preferred Languages\";s:4:\"desc\";s:30:\"Options for contact languages.\";s:2:\"id\";s:18:\"PreferredLanguages\";s:3:\"url\";s:40:\"/civicrm/admin/options/languages?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:21:\"Users and Permissions\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:2:{s:23:\"{weight}.Access Control\";a:6:{s:5:\"title\";s:14:\"Access Control\";s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:2:\"id\";s:13:\"AccessControl\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Synchronize Users to Contacts\";a:6:{s:5:\"title\";s:29:\"Synchronize Users to Contacts\";s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:2:\"id\";s:26:\"SynchronizeUserstoContacts\";s:3:\"url\";s:32:\"/civicrm/admin/synchUser?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:15:\"System Settings\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:19:{s:32:\"{weight}.Configuration Checklist\";a:6:{s:5:\"title\";s:23:\"Configuration Checklist\";s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:2:\"id\";s:22:\"ConfigurationChecklist\";s:3:\"url\";s:33:\"/civicrm/admin/configtask?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Enable CiviCRM Components\";a:6:{s:5:\"title\";s:25:\"Enable CiviCRM Components\";s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:2:\"id\";s:23:\"EnableCiviCRMComponents\";s:3:\"url\";s:40:\"/civicrm/admin/setting/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Manage Extensions\";a:6:{s:5:\"title\";s:17:\"Manage Extensions\";s:4:\"desc\";s:0:\"\";s:2:\"id\";s:16:\"ManageExtensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Outbound Email Settings\";a:6:{s:5:\"title\";s:23:\"Outbound Email Settings\";s:4:\"desc\";N;s:2:\"id\";s:21:\"OutboundEmailSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/smtp?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:37:\"{weight}.Settings - Payment Processor\";a:6:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:2:\"id\";s:25:\"Settings-PaymentProcessor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Mapping and Geocoding\";a:6:{s:5:\"title\";s:21:\"Mapping and Geocoding\";s:4:\"desc\";N;s:2:\"id\";s:19:\"MappingandGeocoding\";s:3:\"url\";s:38:\"/civicrm/admin/setting/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:53:\"{weight}.Misc (Undelete, PDFs, Limits, Logging, etc.)\";a:6:{s:5:\"title\";s:44:\"Misc (Undelete, PDFs, Limits, Logging, etc.)\";s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:2:\"id\";s:38:\"Misc_Undelete_PDFs_Limits_Logging_etc.\";s:3:\"url\";s:35:\"/civicrm/admin/setting/misc?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Directories\";a:6:{s:5:\"title\";s:11:\"Directories\";s:4:\"desc\";N;s:2:\"id\";s:11:\"Directories\";s:3:\"url\";s:35:\"/civicrm/admin/setting/path?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Resource URLs\";a:6:{s:5:\"title\";s:13:\"Resource URLs\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ResourceURLs\";s:3:\"url\";s:34:\"/civicrm/admin/setting/url?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Cleanup Caches and Update Paths\";a:6:{s:5:\"title\";s:31:\"Cleanup Caches and Update Paths\";s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:2:\"id\";s:27:\"CleanupCachesandUpdatePaths\";s:3:\"url\";s:50:\"/civicrm/admin/setting/updateConfigBackend?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.CMS Database Integration\";a:6:{s:5:\"title\";s:24:\"CMS Database Integration\";s:4:\"desc\";N;s:2:\"id\";s:22:\"CMSDatabaseIntegration\";s:3:\"url\";s:33:\"/civicrm/admin/setting/uf?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Safe File Extension Options\";a:6:{s:5:\"title\";s:27:\"Safe File Extension Options\";s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:2:\"id\";s:24:\"SafeFileExtensionOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/safe_file_extension?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Option Groups\";a:6:{s:5:\"title\";s:13:\"Option Groups\";s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:2:\"id\";s:12:\"OptionGroups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Import/Export Mappings\";a:6:{s:5:\"title\";s:22:\"Import/Export Mappings\";s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:2:\"id\";s:21:\"Import_ExportMappings\";s:3:\"url\";s:30:\"/civicrm/admin/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:18:\"{weight}.Debugging\";a:6:{s:5:\"title\";s:9:\"Debugging\";s:4:\"desc\";N;s:2:\"id\";s:9:\"Debugging\";s:3:\"url\";s:36:\"/civicrm/admin/setting/debug?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Multi Site Settings\";a:6:{s:5:\"title\";s:19:\"Multi Site Settings\";s:4:\"desc\";N;s:2:\"id\";s:17:\"MultiSiteSettings\";s:3:\"url\";s:52:\"/civicrm/admin/setting/preferences/multisite?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Scheduled Jobs\";a:6:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:2:\"id\";s:13:\"ScheduledJobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Sms Providers\";a:6:{s:5:\"title\";s:13:\"Sms Providers\";s:4:\"desc\";s:27:\"To configure a sms provider\";s:2:\"id\";s:12:\"SmsProviders\";s:3:\"url\";s:35:\"/civicrm/admin/sms/provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.reCAPTCHA Settings\";a:6:{s:5:\"title\";s:18:\"reCAPTCHA Settings\";s:4:\"desc\";s:43:\"Configure anti-abuse/bot-prevention service\";s:2:\"id\";s:17:\"reCAPTCHASettings\";s:3:\"url\";s:40:\"/civicrm/admin/setting/recaptcha?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"CiviCampaign\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:40:\"{weight}.CiviCampaign Component Settings\";a:6:{s:5:\"title\";s:31:\"CiviCampaign Component Settings\";s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:2:\"id\";s:29:\"CiviCampaignComponentSettings\";s:3:\"url\";s:51:\"/civicrm/admin/setting/preferences/campaign?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Survey Types\";a:6:{s:5:\"title\";s:12:\"Survey Types\";s:4:\"desc\";N;s:2:\"id\";s:11:\"SurveyTypes\";s:3:\"url\";s:42:\"/civicrm/admin/campaign/surveyType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Campaign Types\";a:6:{s:5:\"title\";s:14:\"Campaign Types\";s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:2:\"id\";s:13:\"CampaignTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/campaign_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Campaign Status\";a:6:{s:5:\"title\";s:15:\"Campaign Status\";s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:2:\"id\";s:14:\"CampaignStatus\";s:3:\"url\";s:46:\"/civicrm/admin/options/campaign_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Engagement Index\";a:6:{s:5:\"title\";s:16:\"Engagement Index\";s:4:\"desc\";s:18:\"Engagement levels.\";s:2:\"id\";s:15:\"EngagementIndex\";s:3:\"url\";s:47:\"/civicrm/admin/options/engagement_index?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"CiviEvent\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:37:\"{weight}.CiviEvent Component Settings\";a:6:{s:5:\"title\";s:28:\"CiviEvent Component Settings\";s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:2:\"id\";s:26:\"CiviEventComponentSettings\";s:3:\"url\";s:48:\"/civicrm/admin/setting/preferences/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Event Name Badge Layouts\";a:6:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:2:\"id\";s:21:\"EventNameBadgeLayouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?action=browse&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Manage Events\";a:6:{s:5:\"title\";s:13:\"Manage Events\";s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:2:\"id\";s:12:\"ManageEvents\";s:3:\"url\";s:28:\"/civicrm/admin/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Event Templates\";a:6:{s:5:\"title\";s:15:\"Event Templates\";s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:2:\"id\";s:14:\"EventTemplates\";s:3:\"url\";s:36:\"/civicrm/admin/eventTemplate?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Event Types\";a:6:{s:5:\"title\";s:11:\"Event Types\";s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:2:\"id\";s:10:\"EventTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/event_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Participant Status\";a:6:{s:5:\"title\";s:18:\"Participant Status\";s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:2:\"id\";s:17:\"ParticipantStatus\";s:3:\"url\";s:41:\"/civicrm/admin/participant_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Participant Role\";a:6:{s:5:\"title\";s:16:\"Participant Role\";s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:2:\"id\";s:15:\"ParticipantRole\";s:3:\"url\";s:47:\"/civicrm/admin/options/participant_role?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Participant Listing Templates\";a:6:{s:5:\"title\";s:29:\"Participant Listing Templates\";s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:2:\"id\";s:27:\"ParticipantListingTemplates\";s:3:\"url\";s:50:\"/civicrm/admin/options/participant_listing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Conference Slot Labels\";a:6:{s:5:\"title\";s:22:\"Conference Slot Labels\";s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:2:\"id\";s:20:\"ConferenceSlotLabels\";s:3:\"url\";s:46:\"/civicrm/admin/options/conference_slot?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviMail\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:6:{s:36:\"{weight}.CiviMail Component Settings\";a:6:{s:5:\"title\";s:27:\"CiviMail Component Settings\";s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:2:\"id\";s:25:\"CiviMailComponentSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/mailing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Mailer Settings\";a:6:{s:5:\"title\";s:15:\"Mailer Settings\";s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:2:\"id\";s:14:\"MailerSettings\";s:3:\"url\";s:27:\"/civicrm/admin/mail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:49:\"{weight}.Headers, Footers, and Automated Messages\";a:6:{s:5:\"title\";s:40:\"Headers, Footers, and Automated Messages\";s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:2:\"id\";s:36:\"Headers_Footers_andAutomatedMessages\";s:3:\"url\";s:32:\"/civicrm/admin/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:58:\"/civicrm/admin/options/from_email_address/civimail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Mail Accounts\";a:6:{s:5:\"title\";s:13:\"Mail Accounts\";s:4:\"desc\";s:32:\"Configure email account setting.\";s:2:\"id\";s:12:\"MailAccounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Flexmailer Settings\";a:6:{s:5:\"title\";s:19:\"Flexmailer Settings\";s:4:\"desc\";N;s:2:\"id\";s:18:\"FlexmailerSettings\";s:3:\"url\";s:41:\"/civicrm/admin/setting/flexmailer?reset=1\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";s:5:\"extra\";N;}}}s:10:\"CiviMember\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:38:\"{weight}.CiviMember Component Settings\";a:6:{s:5:\"title\";s:29:\"CiviMember Component Settings\";s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:2:\"id\";s:27:\"CiviMemberComponentSettings\";s:3:\"url\";s:49:\"/civicrm/admin/setting/preferences/member?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Membership Types\";a:6:{s:5:\"title\";s:16:\"Membership Types\";s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:2:\"id\";s:15:\"MembershipTypes\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Membership Status Rules\";a:6:{s:5:\"title\";s:23:\"Membership Status Rules\";s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:2:\"id\";s:21:\"MembershipStatusRules\";s:3:\"url\";s:46:\"/civicrm/admin/member/membershipStatus?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Option Lists\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:20:\"{weight}.Grant Types\";a:6:{s:5:\"title\";s:11:\"Grant Types\";s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:2:\"id\";s:10:\"GrantTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/grant_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"Customize\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:19:\"{weight}.Price Sets\";a:6:{s:5:\"title\";s:10:\"Price Sets\";s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:2:\"id\";s:9:\"PriceSets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:14:\"CiviContribute\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:32:\"{weight}.Personal Campaign Pages\";a:6:{s:5:\"title\";s:23:\"Personal Campaign Pages\";s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:2:\"id\";s:21:\"PersonalCampaignPages\";s:3:\"url\";s:49:\"/civicrm/admin/pcp?context=contribute&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Manage Contribution Pages\";a:6:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:2:\"id\";s:23:\"ManageContributionPages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Manage Premiums\";a:6:{s:5:\"title\";s:15:\"Manage Premiums\";s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:2:\"id\";s:14:\"ManagePremiums\";s:3:\"url\";s:48:\"/civicrm/admin/contribute/managePremiums?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Financial Types\";a:6:{s:5:\"title\";s:15:\"Financial Types\";s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:2:\"id\";s:14:\"FinancialTypes\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Financial Accounts\";a:6:{s:5:\"title\";s:18:\"Financial Accounts\";s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:2:\"id\";s:17:\"FinancialAccounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Payment Methods\";a:6:{s:5:\"title\";s:15:\"Payment Methods\";s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:2:\"id\";s:14:\"PaymentMethods\";s:3:\"url\";s:49:\"/civicrm/admin/options/payment_instrument?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Accepted Credit Cards\";a:6:{s:5:\"title\";s:21:\"Accepted Credit Cards\";s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:2:\"id\";s:19:\"AcceptedCreditCards\";s:3:\"url\";s:48:\"/civicrm/admin/options/accept_creditcard?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Soft Credit Types\";a:6:{s:5:\"title\";s:17:\"Soft Credit Types\";s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:2:\"id\";s:15:\"SoftCreditTypes\";s:3:\"url\";s:47:\"/civicrm/admin/options/soft_credit_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:42:\"{weight}.CiviContribute Component Settings\";a:6:{s:5:\"title\";s:33:\"CiviContribute Component Settings\";s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:2:\"id\";s:31:\"CiviContributeComponentSettings\";s:3:\"url\";s:53:\"/civicrm/admin/setting/preferences/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviCase\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:26:\"{weight}.CiviCase Settings\";a:6:{s:5:\"title\";s:17:\"CiviCase Settings\";s:4:\"desc\";N;s:2:\"id\";s:16:\"CiviCaseSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/case?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Case Types\";a:6:{s:5:\"title\";s:10:\"Case Types\";s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:2:\"id\";s:9:\"CaseTypes\";s:3:\"url\";s:40:\"/civicrm/admin/options/case_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Redaction Rules\";a:6:{s:5:\"title\";s:15:\"Redaction Rules\";s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:2:\"id\";s:14:\"RedactionRules\";s:3:\"url\";s:45:\"/civicrm/admin/options/redaction_rule?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Case Statuses\";a:6:{s:5:\"title\";s:13:\"Case Statuses\";s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:2:\"id\";s:12:\"CaseStatuses\";s:3:\"url\";s:42:\"/civicrm/admin/options/case_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Encounter Mediums\";a:6:{s:5:\"title\";s:17:\"Encounter Mediums\";s:4:\"desc\";s:26:\"List of encounter mediums.\";s:2:\"id\";s:16:\"EncounterMediums\";s:3:\"url\";s:47:\"/civicrm/admin/options/encounter_medium?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:10:\"CiviReport\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:40:\"{weight}.Create New Report from Template\";a:6:{s:5:\"title\";s:31:\"Create New Report from Template\";s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:2:\"id\";s:27:\"CreateNewReportfromTemplate\";s:3:\"url\";s:43:\"/civicrm/admin/report/template/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Manage Templates\";a:6:{s:5:\"title\";s:16:\"Manage Templates\";s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:2:\"id\";s:15:\"ManageTemplates\";s:3:\"url\";s:53:\"/civicrm/admin/report/options/report_template?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Reports Listing\";a:6:{s:5:\"title\";s:15:\"Reports Listing\";s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:2:\"id\";s:14:\"ReportsListing\";s:3:\"url\";s:34:\"/civicrm/admin/report/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}}',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,NULL,'a:0:{}');
 /*!40000 ALTER TABLE `civicrm_menu` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -5120,70 +5109,70 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_msg_template` WRITE;
 /*!40000 ALTER TABLE `civicrm_msg_template` DISABLE KEYS */;
 INSERT INTO `civicrm_msg_template` (`id`, `msg_title`, `msg_subject`, `msg_text`, `msg_html`, `is_active`, `workflow_id`, `workflow_name`, `is_default`, `is_reserved`, `is_sms`, `pdf_format_id`) VALUES
- (1,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n  {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n  {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n  {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <center>\n    <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Activity Summary{/ts} - {$activityTypeName}\n              </th>\n            </tr>\n            {if !empty($isCaseActivity)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Your Case Role(s){/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$contact.role|default:\'\'}\n                </td>\n              </tr>\n              {if !empty($manageCaseURL)}\n                <tr>\n                  <td colspan=\"2\" {$valueStyle}>\n                    <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n                  </td>\n                </tr>\n              {/if}\n            {/if}\n            {if !empty($editActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {if !empty($viewActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {foreach from=$activity.fields item=field}\n              <tr>\n                <td {$labelStyle}>\n                  {$field.label}{if !empty($field.category)}({$field.category}){/if}\n                </td>\n                <td {$valueStyle}>\n                  {if $field.type eq \'Date\'}\n                    {$field.value|crmDate:$config->dateformatDatetime}\n                  {else}\n                    {$field.value}\n                  {/if}\n                </td>\n              </tr>\n            {/foreach}\n\n            {if !empty($activity.customGroups)}\n              {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n                <tr>\n                  <th {$headerStyle}>\n                    {$customGroupName}\n                  </th>\n                </tr>\n                {foreach from=$customGroup item=field}\n                  <tr>\n                    <td {$labelStyle}>\n                      {$field.label}\n                    </td>\n                    <td {$valueStyle}>\n                      {if $field.type eq \'Date\'}\n                        {$field.value|crmDate:$config->dateformatDatetime}\n                      {else}\n                        {$field.value}\n                      {/if}\n                    </td>\n                  </tr>\n                {/foreach}\n              {/foreach}\n            {/if}\n          </table>\n        </td>\n      </tr>\n    </table>\n  </center>\n</body>\n</html>\n',1,823,'case_activity',1,0,0,NULL),
- (2,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n  {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n  {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n  {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <center>\n    <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Activity Summary{/ts} - {$activityTypeName}\n              </th>\n            </tr>\n            {if !empty($isCaseActivity)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Your Case Role(s){/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$contact.role|default:\'\'}\n                </td>\n              </tr>\n              {if !empty($manageCaseURL)}\n                <tr>\n                  <td colspan=\"2\" {$valueStyle}>\n                    <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n                  </td>\n                </tr>\n              {/if}\n            {/if}\n            {if !empty($editActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {if !empty($viewActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {foreach from=$activity.fields item=field}\n              <tr>\n                <td {$labelStyle}>\n                  {$field.label}{if !empty($field.category)}({$field.category}){/if}\n                </td>\n                <td {$valueStyle}>\n                  {if $field.type eq \'Date\'}\n                    {$field.value|crmDate:$config->dateformatDatetime}\n                  {else}\n                    {$field.value}\n                  {/if}\n                </td>\n              </tr>\n            {/foreach}\n\n            {if !empty($activity.customGroups)}\n              {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n                <tr>\n                  <th {$headerStyle}>\n                    {$customGroupName}\n                  </th>\n                </tr>\n                {foreach from=$customGroup item=field}\n                  <tr>\n                    <td {$labelStyle}>\n                      {$field.label}\n                    </td>\n                    <td {$valueStyle}>\n                      {if $field.type eq \'Date\'}\n                        {$field.value|crmDate:$config->dateformatDatetime}\n                      {else}\n                        {$field.value}\n                      {/if}\n                    </td>\n                  </tr>\n                {/foreach}\n              {/foreach}\n            {/if}\n          </table>\n        </td>\n      </tr>\n    </table>\n  </center>\n</body>\n</html>\n',1,823,'case_activity',0,1,0,NULL),
- (3,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,824,'contribution_dupalert',1,0,0,NULL),
- (4,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,824,'contribution_dupalert',0,1,0,NULL),
- (5,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text)}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($getTaxDetails)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($getTaxDetails)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($getTaxDetails)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($getTaxDetails) && !empty($dataArray)}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($receipt_date)}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if !empty($formValues.trxn_id)}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($formValues.receipt_text)}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contributor Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {contact.display_name}\n      </td>\n     </tr>\n     <tr>\n      {if !empty($formValues.contributionType_name)}\n        <td {$labelStyle}>\n         {ts}Financial Type{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.contributionType_name}\n        </td>\n      {/if}\n     </tr>\n\n     {if !empty($lineItem) and empty($is_quick_config)}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if !empty($getTaxDetails)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if !empty($getTaxDetails)}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if !empty($getTaxDetails) && !empty($dataArray)}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if !empty($receipt_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if !empty($formValues.check_number)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($formValues.trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($ccContribution)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($formValues.product_name)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($fulfilled_date)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,825,'contribution_offline_receipt',1,0,0,NULL),
- (6,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text)}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($getTaxDetails)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($getTaxDetails)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($getTaxDetails)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($getTaxDetails) && !empty($dataArray)}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($receipt_date)}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if !empty($formValues.trxn_id)}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($formValues.receipt_text)}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contributor Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {contact.display_name}\n      </td>\n     </tr>\n     <tr>\n      {if !empty($formValues.contributionType_name)}\n        <td {$labelStyle}>\n         {ts}Financial Type{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.contributionType_name}\n        </td>\n      {/if}\n     </tr>\n\n     {if !empty($lineItem) and empty($is_quick_config)}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if !empty($getTaxDetails)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if !empty($getTaxDetails)}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if !empty($getTaxDetails) && !empty($dataArray)}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if !empty($receipt_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if !empty($formValues.check_number)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($formValues.trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($ccContribution)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($formValues.product_name)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($fulfilled_date)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,825,'contribution_offline_receipt',0,1,0,NULL),
- (7,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if !empty($lineItem) and !empty($priceSetID) and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if !empty($dataArray)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if !empty($getTaxDetails)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if !empty($totalTaxAmount)}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,826,'contribution_online_receipt',1,0,0,NULL),
- (8,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if !empty($lineItem) and !empty($priceSetID) and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if !empty($dataArray)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if !empty($getTaxDetails)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if !empty($totalTaxAmount)}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,826,'contribution_online_receipt',0,1,0,NULL),
- (9,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n  <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n    {if $config->empoweredBy}\n      <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n      <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n          <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{$domain_organization}</font></b></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n          <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n          <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n          <td><font size=\"1\" align=\"right\">{if !empty($source)}{$source}{/if}</font></td>\n          <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td valign=\"top\"><font size=\"1\" align=\"right\">{if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n      </table>\n\n             <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n              <tr>\n                <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                {else}\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;nowrap\"><font size=\"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                   </font>\n                  </td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}-{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                    {if $priceset}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL %1{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n                  {if $contribution_status_id == $refundedStatusId}\n                    {ts}Amount Credited{/ts}\n                  {else}\n                    {ts}Amount Paid{/ts}\n                  {/if}\n                 </font>\n                </td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n              </tr>\n\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"5\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan=\"2\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n          </tr>\n        </table>\n\n        <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/><font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n              {$domain_organization}<br />\n              {$domain_street_address} {$domain_supplemental_address_1}<br />\n              {$domain_supplemental_address_2} {$domain_state}<br />\n              {$domain_city} {$domain_postal_code}<br />\n              {$domain_country}<br />\n              {$domain_email}</div>\n              {$domain_phone}<br />\n             </font><br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table cellpadding=\"5\" cellspacing=\"0\"  width=\"100%\" border=\"0\">\n                <tr>\n                  <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                  <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n                </tr>\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n                </tr>\n              </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n      {if $config->empoweredBy}\n        <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n          </tr>\n        </table>\n      {/if}\n\n    <center>\n      <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n        <tr>\n          <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_country}{$domain_country}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$source}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_email}{$domain_email}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n           </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td colspan=\"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td colspan=\"5\"><hr size=\"3\" style=\"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size=\"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                   </font>\n                  </td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}No %1{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  {if $priceset}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL NO %1{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td colspan=\"2\"><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan=\"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table align=\"right\">\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n\n  </div>\n  </body>\n</html>\n',1,827,'contribution_invoice_receipt',1,0,0,NULL),
- (10,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n  <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n    {if $config->empoweredBy}\n      <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n      <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n          <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{$domain_organization}</font></b></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n          <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n          <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n          <td><font size=\"1\" align=\"right\">{if !empty($source)}{$source}{/if}</font></td>\n          <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td valign=\"top\"><font size=\"1\" align=\"right\">{if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n      </table>\n\n             <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n              <tr>\n                <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                {else}\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;nowrap\"><font size=\"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                   </font>\n                  </td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}-{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                    {if $priceset}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL %1{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n                  {if $contribution_status_id == $refundedStatusId}\n                    {ts}Amount Credited{/ts}\n                  {else}\n                    {ts}Amount Paid{/ts}\n                  {/if}\n                 </font>\n                </td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n              </tr>\n\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"5\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan=\"2\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n          </tr>\n        </table>\n\n        <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/><font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n              {$domain_organization}<br />\n              {$domain_street_address} {$domain_supplemental_address_1}<br />\n              {$domain_supplemental_address_2} {$domain_state}<br />\n              {$domain_city} {$domain_postal_code}<br />\n              {$domain_country}<br />\n              {$domain_email}</div>\n              {$domain_phone}<br />\n             </font><br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table cellpadding=\"5\" cellspacing=\"0\"  width=\"100%\" border=\"0\">\n                <tr>\n                  <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                  <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n                </tr>\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n                </tr>\n              </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n      {if $config->empoweredBy}\n        <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n          </tr>\n        </table>\n      {/if}\n\n    <center>\n      <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n        <tr>\n          <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_country}{$domain_country}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$source}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_email}{$domain_email}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n           </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td colspan=\"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td colspan=\"5\"><hr size=\"3\" style=\"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size=\"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                   </font>\n                  </td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}No %1{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  {if $priceset}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL NO %1{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td colspan=\"2\"><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan=\"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table align=\"right\">\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n\n  </div>\n  </body>\n</html>\n',1,827,'contribution_invoice_receipt',0,1,0,NULL),
- (11,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,828,'contribution_recurring_notify',1,0,0,NULL),
- (12,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,828,'contribution_recurring_notify',0,1,0,NULL),
- (13,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,829,'contribution_recurring_cancelled',1,0,0,NULL),
- (14,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,829,'contribution_recurring_cancelled',0,1,0,NULL),
- (15,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,830,'contribution_recurring_billing',1,0,0,NULL),
- (16,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,830,'contribution_recurring_billing',0,1,0,NULL),
- (17,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,831,'contribution_recurring_edit',1,0,0,NULL),
- (18,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,831,'contribution_recurring_edit',0,1,0,NULL),
- (19,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,832,'pcp_notify',1,0,0,NULL),
- (20,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,832,'pcp_notify',0,1,0,NULL),
- (21,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,833,'pcp_status_change',1,0,0,NULL),
- (22,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,833,'pcp_status_change',0,1,0,NULL),
- (23,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,834,'pcp_supporter_notify',1,0,0,NULL),
- (24,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,834,'pcp_supporter_notify',0,1,0,NULL),
- (25,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,835,'pcp_owner_notify',1,0,0,NULL),
- (26,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,835,'pcp_owner_notify',0,1,0,NULL),
- (27,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if isset($totalAmount)}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{/if}\n{if isset($totalPaid)}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{/if}\n{if isset($amountOwed)}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($trxn_id)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($paidBy)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($checkNumber)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  {if isset($totalAmount)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($totalPaid)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($amountOwed)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  {/if}\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if !empty($billingName) || !empty($address)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {if !empty($billingName)}{$billingName}{/if}<br />\n        {if !empty($address)}{$address|nl2br}{/if}\n            </td>\n          </tr>\n    {/if}\n    {if !empty($credit_card_number)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if !empty($event.participant_role)}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($isShowLocation)}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,836,'payment_or_refund_notification',1,0,0,NULL),
- (28,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if isset($totalAmount)}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{/if}\n{if isset($totalPaid)}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{/if}\n{if isset($amountOwed)}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($trxn_id)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($paidBy)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($checkNumber)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  {if isset($totalAmount)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($totalPaid)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($amountOwed)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  {/if}\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if !empty($billingName) || !empty($address)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {if !empty($billingName)}{$billingName}{/if}<br />\n        {if !empty($address)}{$address|nl2br}{/if}\n            </td>\n          </tr>\n    {/if}\n    {if !empty($credit_card_number)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if !empty($event.participant_role)}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($isShowLocation)}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,836,'payment_or_refund_notification',0,1,0,NULL),
- (29,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($is_pay_later)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary)}\n\n{if !empty($balanceAmount)}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($balanceAmount)}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if !empty($is_pay_later) }\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if !empty($event.is_monetary)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if !empty($dataArray)}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  !empty($pricesetFieldsCount) }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amount) && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n        {if isset($balanceAmount)}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if isset($balanceAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if !empty($is_pay_later)}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customProfile)}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,837,'event_offline_receipt',1,0,0,NULL),
- (30,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($is_pay_later)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary)}\n\n{if !empty($balanceAmount)}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($balanceAmount)}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if !empty($is_pay_later) }\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if !empty($event.is_monetary)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if !empty($dataArray)}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  !empty($pricesetFieldsCount) }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amount) && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n        {if isset($balanceAmount)}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if isset($balanceAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if !empty($is_pay_later)}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customProfile)}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,837,'event_offline_receipt',0,1,0,NULL),
- (31,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary) }\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($event.is_share)}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if !empty($payer.name)}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if !empty($event.is_monetary) and empty($isRequireApproval)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if !empty($dataArray)}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if !empty($pricesetFieldsCount) }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if !empty($individual)}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amounts) && empty($lineItem)}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    </table>\n    {if !empty($event.allow_selfcancelxfer) }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,838,'event_online_receipt',1,0,0,NULL),
- (32,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary) }\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($event.is_share)}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if !empty($payer.name)}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if !empty($event.is_monetary) and empty($isRequireApproval)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if !empty($dataArray)}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if !empty($pricesetFieldsCount) }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if !empty($individual)}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amounts) && empty($lineItem)}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    </table>\n    {if !empty($event.allow_selfcancelxfer) }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,838,'event_online_receipt',0,1,0,NULL),
- (33,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n{/if}\n\n  Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if !empty($source)}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,839,'event_registration_receipt',1,0,0,NULL),
- (34,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n{/if}\n\n  Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if !empty($source)}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,839,'event_registration_receipt',0,1,0,NULL),
- (35,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if !empty($register_date)}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($register_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,840,'participant_cancelled',1,0,0,NULL),
- (36,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if !empty($register_date)}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($register_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,840,'participant_cancelled',0,1,0,NULL),
- (37,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,'participant_confirm',1,0,0,NULL),
- (38,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,'participant_confirm',0,1,0,NULL),
- (39,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,842,'participant_expired',1,0,0,NULL),
- (40,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,842,'participant_expired',0,1,0,NULL),
- (41,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,'participant_transferred',1,0,0,NULL),
- (42,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,'participant_transferred',0,1,0,NULL),
- (43,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,844,'friend',1,0,0,NULL),
- (44,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,844,'friend',0,1,0,NULL),
- (45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text_signup)}\n{$formValues.receipt_text_signup}\n{elseif !empty($formValues.receipt_text_renewal)}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if !empty($formValues.receipt_text_signup)}\n          <p>{$formValues.receipt_text_signup|htmlize}</p>\n        {elseif !empty($formValues.receipt_text_renewal)}\n          <p>{$formValues.receipt_text_renewal|htmlize}</p>\n        {else}\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership End Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership End Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if isset($formValues.total_amount) and isset($totalTaxAmount)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if isset($totalTaxAmount)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,845,'membership_offline_receipt',1,0,0,NULL),
- (46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text_signup)}\n{$formValues.receipt_text_signup}\n{elseif !empty($formValues.receipt_text_renewal)}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if !empty($formValues.receipt_text_signup)}\n          <p>{$formValues.receipt_text_signup|htmlize}</p>\n        {elseif !empty($formValues.receipt_text_renewal)}\n          <p>{$formValues.receipt_text_renewal|htmlize}</p>\n        {else}\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership End Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership End Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if isset($formValues.total_amount) and isset($totalTaxAmount)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if isset($totalTaxAmount)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,845,'membership_offline_receipt',0,1,0,NULL),
- (47,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,846,'membership_online_receipt',1,0,0,NULL),
- (48,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,846,'membership_online_receipt',0,1,0,NULL),
- (49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,847,'membership_autorenew_cancelled',1,0,0,NULL),
- (50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,847,'membership_autorenew_cancelled',0,1,0,NULL),
- (51,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,848,'membership_autorenew_billing',1,0,0,NULL),
- (52,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,848,'membership_autorenew_billing',0,1,0,NULL),
- (53,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,849,'test_preview',1,0,0,NULL),
- (54,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,849,'test_preview',0,1,0,NULL),
- (55,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,850,'pledge_acknowledge',1,0,0,NULL),
- (56,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,850,'pledge_acknowledge',0,1,0,NULL),
- (57,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,851,'pledge_reminder',1,0,0,NULL),
- (58,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,851,'pledge_reminder',0,1,0,NULL),
- (59,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,852,'uf_notify',1,0,0,NULL),
- (60,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,852,'uf_notify',0,1,0,NULL),
- (61,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,853,'petition_sign',1,0,0,NULL),
- (62,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,853,'petition_sign',0,1,0,NULL),
- (63,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,854,'petition_confirmation_needed',1,0,0,NULL),
- (64,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,854,'petition_confirmation_needed',0,1,0,NULL),
+ (1,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n  {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n  {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n  {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <center>\n    <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Activity Summary{/ts} - {$activityTypeName}\n              </th>\n            </tr>\n            {if !empty($isCaseActivity)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Your Case Role(s){/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$contact.role|default:\'\'}\n                </td>\n              </tr>\n              {if !empty($manageCaseURL)}\n                <tr>\n                  <td colspan=\"2\" {$valueStyle}>\n                    <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n                  </td>\n                </tr>\n              {/if}\n            {/if}\n            {if !empty($editActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {if !empty($viewActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {foreach from=$activity.fields item=field}\n              <tr>\n                <td {$labelStyle}>\n                  {$field.label}{if !empty($field.category)}({$field.category}){/if}\n                </td>\n                <td {$valueStyle}>\n                  {if $field.type eq \'Date\'}\n                    {$field.value|crmDate:$config->dateformatDatetime}\n                  {else}\n                    {$field.value}\n                  {/if}\n                </td>\n              </tr>\n            {/foreach}\n\n            {if !empty($activity.customGroups)}\n              {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n                <tr>\n                  <th {$headerStyle}>\n                    {$customGroupName}\n                  </th>\n                </tr>\n                {foreach from=$customGroup item=field}\n                  <tr>\n                    <td {$labelStyle}>\n                      {$field.label}\n                    </td>\n                    <td {$valueStyle}>\n                      {if $field.type eq \'Date\'}\n                        {$field.value|crmDate:$config->dateformatDatetime}\n                      {else}\n                        {$field.value}\n                      {/if}\n                    </td>\n                  </tr>\n                {/foreach}\n              {/foreach}\n            {/if}\n          </table>\n        </td>\n      </tr>\n    </table>\n  </center>\n</body>\n</html>\n',1,824,'case_activity',1,0,0,NULL),
+ (2,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if !empty($field.category)}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n  {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n  {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n  {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <center>\n    <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Activity Summary{/ts} - {$activityTypeName}\n              </th>\n            </tr>\n            {if !empty($isCaseActivity)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Your Case Role(s){/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$contact.role|default:\'\'}\n                </td>\n              </tr>\n              {if !empty($manageCaseURL)}\n                <tr>\n                  <td colspan=\"2\" {$valueStyle}>\n                    <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n                  </td>\n                </tr>\n              {/if}\n            {/if}\n            {if !empty($editActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {if !empty($viewActURL)}\n              <tr>\n                <td colspan=\"2\" {$valueStyle}>\n                  <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n                </td>\n              </tr>\n            {/if}\n            {foreach from=$activity.fields item=field}\n              <tr>\n                <td {$labelStyle}>\n                  {$field.label}{if !empty($field.category)}({$field.category}){/if}\n                </td>\n                <td {$valueStyle}>\n                  {if $field.type eq \'Date\'}\n                    {$field.value|crmDate:$config->dateformatDatetime}\n                  {else}\n                    {$field.value}\n                  {/if}\n                </td>\n              </tr>\n            {/foreach}\n\n            {if !empty($activity.customGroups)}\n              {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n                <tr>\n                  <th {$headerStyle}>\n                    {$customGroupName}\n                  </th>\n                </tr>\n                {foreach from=$customGroup item=field}\n                  <tr>\n                    <td {$labelStyle}>\n                      {$field.label}\n                    </td>\n                    <td {$valueStyle}>\n                      {if $field.type eq \'Date\'}\n                        {$field.value|crmDate:$config->dateformatDatetime}\n                      {else}\n                        {$field.value}\n                      {/if}\n                    </td>\n                  </tr>\n                {/foreach}\n              {/foreach}\n            {/if}\n          </table>\n        </td>\n      </tr>\n    </table>\n  </center>\n</body>\n</html>\n',1,824,'case_activity',0,1,0,NULL),
+ (3,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,825,'contribution_dupalert',1,0,0,NULL),
+ (4,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,825,'contribution_dupalert',0,1,0,NULL),
+ (5,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text)}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($getTaxDetails)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($getTaxDetails)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($getTaxDetails)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($getTaxDetails) && !empty($dataArray)}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($receipt_date)}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if !empty($formValues.trxn_id)}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($formValues.receipt_text)}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contributor Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {contact.display_name}\n      </td>\n     </tr>\n     <tr>\n      {if !empty($formValues.contributionType_name)}\n        <td {$labelStyle}>\n         {ts}Financial Type{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.contributionType_name}\n        </td>\n      {/if}\n     </tr>\n\n     {if !empty($lineItem) and empty($is_quick_config)}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if !empty($getTaxDetails)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if !empty($getTaxDetails)}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if !empty($getTaxDetails) && !empty($dataArray)}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if !empty($receipt_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if !empty($formValues.check_number)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($formValues.trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($ccContribution)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($formValues.product_name)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($fulfilled_date)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,826,'contribution_offline_receipt',1,0,0,NULL),
+ (6,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text)}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($getTaxDetails)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($getTaxDetails)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($getTaxDetails)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($getTaxDetails) && !empty($dataArray)}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($receipt_date)}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if !empty($formValues.trxn_id)}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($formValues.receipt_text)}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contributor Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {contact.display_name}\n      </td>\n     </tr>\n     <tr>\n      {if !empty($formValues.contributionType_name)}\n        <td {$labelStyle}>\n         {ts}Financial Type{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.contributionType_name}\n        </td>\n      {/if}\n     </tr>\n\n     {if !empty($lineItem) and empty($is_quick_config)}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if !empty($getTaxDetails)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if !empty($getTaxDetails)}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if !empty($getTaxDetails) && !empty($dataArray)}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if !empty($receipt_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($formValues.paidBy) and empty($formValues.hidden_CreditCard)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if !empty($formValues.check_number)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($formValues.trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($ccContribution)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($formValues.product_name)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($fulfilled_date)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,826,'contribution_offline_receipt',0,1,0,NULL),
+ (7,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if !empty($lineItem) and !empty($priceSetID) and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if !empty($dataArray)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if !empty($getTaxDetails)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if !empty($totalTaxAmount)}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,827,'contribution_online_receipt',1,0,0,NULL),
+ (8,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if !empty($lineItem) and !empty($priceSetID) and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if !empty($dataArray)}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if !empty($getTaxDetails)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if !empty($totalTaxAmount)}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,827,'contribution_online_receipt',0,1,0,NULL),
+ (9,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n  <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n    {if $config->empoweredBy}\n      <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n      <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n          <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{$domain_organization}</font></b></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n          <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n          <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n          <td><font size=\"1\" align=\"right\">{if !empty($source)}{$source}{/if}</font></td>\n          <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td valign=\"top\"><font size=\"1\" align=\"right\">{if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n      </table>\n\n             <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n              <tr>\n                <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                {else}\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;nowrap\"><font size=\"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                   </font>\n                  </td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}-{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                    {if $priceset}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL %1{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n                  {if $contribution_status_id == $refundedStatusId}\n                    {ts}Amount Credited{/ts}\n                  {else}\n                    {ts}Amount Paid{/ts}\n                  {/if}\n                 </font>\n                </td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n              </tr>\n\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"5\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan=\"2\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n          </tr>\n        </table>\n\n        <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/><font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n              {$domain_organization}<br />\n              {$domain_street_address} {$domain_supplemental_address_1}<br />\n              {$domain_supplemental_address_2} {$domain_state}<br />\n              {$domain_city} {$domain_postal_code}<br />\n              {$domain_country}<br />\n              {$domain_email}</div>\n              {$domain_phone}<br />\n             </font><br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table cellpadding=\"5\" cellspacing=\"0\"  width=\"100%\" border=\"0\">\n                <tr>\n                  <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                  <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n                </tr>\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n                </tr>\n              </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n      {if $config->empoweredBy}\n        <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n          </tr>\n        </table>\n      {/if}\n\n    <center>\n      <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n        <tr>\n          <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_country}{$domain_country}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$source}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_email}{$domain_email}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n           </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td colspan=\"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td colspan=\"5\"><hr size=\"3\" style=\"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size=\"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                   </font>\n                  </td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}No %1{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  {if $priceset}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL NO %1{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td colspan=\"2\"><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan=\"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table align=\"right\">\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n\n  </div>\n  </body>\n</html>\n',1,828,'contribution_invoice_receipt',1,0,0,NULL),
+ (10,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n  <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n    {if $config->empoweredBy}\n      <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n      <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n          <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{$domain_organization}</font></b></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n          <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n          <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n          <td style=\"white-space: nowrap\">\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n          <td><font size=\"1\" align=\"right\">{if !empty($source)}{$source}{/if}</font></td>\n          <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td valign=\"top\"><font size=\"1\" align=\"right\">{if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n      </table>\n\n             <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n              <tr>\n                <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                {else}\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;nowrap\"><font size=\"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                   </font>\n                  </td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}-{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                    {if $priceset}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL %1{/ts}{/if}</font></td>\n                      <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                    {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n                  {if $contribution_status_id == $refundedStatusId}\n                    {ts}Amount Credited{/ts}\n                  {else}\n                    {ts}Amount Paid{/ts}\n                  {/if}\n                 </font>\n                </td>\n                <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n                <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n              </tr>\n\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"5\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan=\"2\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n          </tr>\n        </table>\n\n        <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/><font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n              {$domain_organization}<br />\n              {$domain_street_address} {$domain_supplemental_address_1}<br />\n              {$domain_supplemental_address_2} {$domain_state}<br />\n              {$domain_city} {$domain_postal_code}<br />\n              {$domain_country}<br />\n              {$domain_email}</div>\n              {$domain_phone}<br />\n             </font><br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table cellpadding=\"5\" cellspacing=\"0\"  width=\"100%\" border=\"0\">\n                <tr>\n                  <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                  <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n                </tr>\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n                </tr>\n              </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n      {if $config->empoweredBy}\n        <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n          </tr>\n        </table>\n      {/if}\n\n    <center>\n      <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n        <tr>\n          <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size=\"1\" align=\"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}</font></td>\n          {/if}\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n          <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_country}{$domain_country}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$source}</font></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_email}{$domain_email}{/if}\n           </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td>\n            <font size=\"1\" align=\"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n           </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td colspan=\"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{if isset($taxTerm)}{$taxTerm}{/if}</font></th>\n                <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td colspan=\"5\"><hr size=\"3\" style=\"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size=\"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                   </font>\n                  </td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.qty}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($value.tax_rate)}{$value.tax_rate}%{/if}</font></td>\n                  {else}\n                    <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}No %1{/ts}{/if}</font></td>\n                  {/if}\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {if !empty($dataArray)}\n              {foreach from=$dataArray item=value key=priceset}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  {if $priceset}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if isset($taxTerm)}{ts 1=$taxTerm}TOTAL NO %1{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$value|crmMoney:$currency}</font> </td>\n                  {/if}\n                </tr>\n              {/foreach}\n              {/if}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td colspan=\"2\"><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan=\"3\"></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan=\"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan=\"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n\n      <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n        <tr>\n          <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table align=\"right\">\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan=\"2\"></td>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n\n  </div>\n  </body>\n</html>\n',1,828,'contribution_invoice_receipt',0,1,0,NULL),
+ (11,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,829,'contribution_recurring_notify',1,0,0,NULL),
+ (12,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,829,'contribution_recurring_notify',0,1,0,NULL),
+ (13,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,830,'contribution_recurring_cancelled',1,0,0,NULL),
+ (14,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,830,'contribution_recurring_cancelled',0,1,0,NULL),
+ (15,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,831,'contribution_recurring_billing',1,0,0,NULL),
+ (16,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,831,'contribution_recurring_billing',0,1,0,NULL),
+ (17,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,832,'contribution_recurring_edit',1,0,0,NULL),
+ (18,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,832,'contribution_recurring_edit',0,1,0,NULL),
+ (19,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,833,'pcp_notify',1,0,0,NULL),
+ (20,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,833,'pcp_notify',0,1,0,NULL),
+ (21,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,834,'pcp_status_change',1,0,0,NULL),
+ (22,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,834,'pcp_status_change',0,1,0,NULL),
+ (23,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,835,'pcp_supporter_notify',1,0,0,NULL),
+ (24,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,835,'pcp_supporter_notify',0,1,0,NULL),
+ (25,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,836,'pcp_owner_notify',1,0,0,NULL),
+ (26,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,836,'pcp_owner_notify',0,1,0,NULL),
+ (27,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if isset($totalAmount)}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{/if}\n{if isset($totalPaid)}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{/if}\n{if isset($amountOwed)}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($trxn_id)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($paidBy)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($checkNumber)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  {if isset($totalAmount)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($totalPaid)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($amountOwed)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  {/if}\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if !empty($billingName) || !empty($address)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {if !empty($billingName)}{$billingName}{/if}<br />\n        {if !empty($address)}{$address|nl2br}{/if}\n            </td>\n          </tr>\n    {/if}\n    {if !empty($credit_card_number)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if !empty($event.participant_role)}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($isShowLocation)}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,837,'payment_or_refund_notification',1,0,0,NULL),
+ (28,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if isset($totalAmount)}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{/if}\n{if isset($totalPaid)}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{/if}\n{if isset($amountOwed)}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($trxn_id)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($paidBy)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if !empty($checkNumber)}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  {if isset($totalAmount)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($totalPaid)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  {/if}\n  {if isset($amountOwed)}\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  {/if}\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if !empty($billingName) || !empty($address)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {if !empty($billingName)}{$billingName}{/if}<br />\n        {if !empty($address)}{$address|nl2br}{/if}\n            </td>\n          </tr>\n    {/if}\n    {if !empty($credit_card_number)}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if !empty($event.participant_role)}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($isShowLocation)}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,837,'payment_or_refund_notification',0,1,0,NULL),
+ (29,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($is_pay_later)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary)}\n\n{if !empty($balanceAmount)}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($balanceAmount)}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if !empty($is_pay_later) }\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if !empty($event.is_monetary)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if !empty($dataArray)}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  !empty($pricesetFieldsCount) }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amount) && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n        {if isset($balanceAmount)}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if isset($balanceAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if !empty($is_pay_later)}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customProfile)}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,838,'event_offline_receipt',1,0,0,NULL),
+ (30,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($is_pay_later)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary)}\n\n{if !empty($balanceAmount)}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($balanceAmount)}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if !empty($is_pay_later) }\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if !empty($event.is_monetary)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if !empty($dataArray)}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  !empty($pricesetFieldsCount) }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amount) && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n        {if isset($balanceAmount)}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if isset($balanceAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if !empty($is_pay_later)}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customProfile)}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,838,'event_offline_receipt',0,1,0,NULL),
+ (31,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary) }\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($event.is_share)}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if !empty($payer.name)}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if !empty($event.is_monetary) and empty($isRequireApproval)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if !empty($dataArray)}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if !empty($pricesetFieldsCount) }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if !empty($individual)}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amounts) && empty($lineItem)}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    </table>\n    {if !empty($event.allow_selfcancelxfer) }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,839,'event_online_receipt',1,0,0,NULL),
+ (32,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if !empty($isPrimary)}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if !empty($isPrimary)}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if !empty($isPrimary)}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if !empty($dataArray)}\n{if isset($totalAmount) and isset($totalTaxAmount)}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if !empty($isPrimary) }\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if !empty($isOnWaitlist)}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if !empty($isPrimary)}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif !empty($isRequireApproval)}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if !empty($isPrimary)}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($isShowLocation)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($event.is_public)}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($event.is_share)}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if !empty($payer.name)}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if !empty($event.is_monetary) and empty($isRequireApproval)}\n\n      <tr>\n       <th {$headerStyle}>\n        {if !empty($event.fee_label)}{$event.fee_label}{/if}\n       </th>\n      </tr>\n\n      {if !empty($lineItem)}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if !empty($isPrimary)}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if !empty($dataArray)}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if !empty($pricesetFieldsCount) }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if !empty($individual)}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if !empty($dataArray)}\n        {if isset($totalAmount) and isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {/if}\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if !empty($amounts) && empty($lineItem)}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if isset($totalTaxAmount)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($isPrimary)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if !empty($pricesetFieldsCount) }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($receive_date)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($financialTypeName)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($trxn_id)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($paidBy)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($checkNumber)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($billingName)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if !empty($credit_card_type)}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    </table>\n    {if !empty($event.allow_selfcancelxfer) }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,839,'event_online_receipt',0,1,0,NULL),
+ (33,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n{/if}\n\n  Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if !empty($source)}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,840,'event_registration_receipt',1,0,0,NULL),
+ (34,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n{/if}\n\n  Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if !empty($source)}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,840,'event_registration_receipt',0,1,0,NULL),
+ (35,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if !empty($register_date)}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($register_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,'participant_cancelled',1,0,0,NULL),
+ (36,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if !empty($register_date)}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($register_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,'participant_cancelled',0,1,0,NULL),
+ (37,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,842,'participant_confirm',1,0,0,NULL),
+ (38,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,842,'participant_confirm',0,1,0,NULL),
+ (39,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,'participant_expired',1,0,0,NULL),
+ (40,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,'participant_expired',0,1,0,NULL),
+ (41,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,844,'participant_transferred',1,0,0,NULL),
+ (42,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,844,'participant_transferred',0,1,0,NULL),
+ (43,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,845,'friend',1,0,0,NULL),
+ (44,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,845,'friend',0,1,0,NULL),
+ (45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text_signup)}\n{$formValues.receipt_text_signup}\n{elseif !empty($formValues.receipt_text_renewal)}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if !empty($formValues.receipt_text_signup)}\n          <p>{$formValues.receipt_text_signup|htmlize}</p>\n        {elseif !empty($formValues.receipt_text_renewal)}\n          <p>{$formValues.receipt_text_renewal|htmlize}</p>\n        {else}\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership End Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership End Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if isset($formValues.total_amount) and isset($totalTaxAmount)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if isset($totalTaxAmount)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,846,'membership_offline_receipt',1,0,0,NULL),
+ (46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text_signup)}\n{$formValues.receipt_text_signup}\n{elseif !empty($formValues.receipt_text_renewal)}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if !empty($formValues.receipt_text_signup)}\n          <p>{$formValues.receipt_text_signup|htmlize}</p>\n        {elseif !empty($formValues.receipt_text_renewal)}\n          <p>{$formValues.receipt_text_renewal|htmlize}</p>\n        {else}\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership End Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership End Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if isset($formValues.total_amount) and isset($totalTaxAmount)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if isset($totalTaxAmount)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,846,'membership_offline_receipt',0,1,0,NULL),
+ (47,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,847,'membership_online_receipt',1,0,0,NULL),
+ (48,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {if isset($taxTerm)}{$taxTerm}{/if}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{if isset($pay_later_receipt)}{$pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if isset($line.tax_rate) and ($line.tax_rate != \"\" || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{if isset($taxTerm)}{$taxTerm}{/if} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {if isset($taxTerm)}{$taxTerm}{/if}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,847,'membership_online_receipt',0,1,0,NULL),
+ (49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,848,'membership_autorenew_cancelled',1,0,0,NULL),
+ (50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,848,'membership_autorenew_cancelled',0,1,0,NULL),
+ (51,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,849,'membership_autorenew_billing',1,0,0,NULL),
+ (52,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,849,'membership_autorenew_billing',0,1,0,NULL),
+ (53,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,850,'test_preview',1,0,0,NULL),
+ (54,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,850,'test_preview',0,1,0,NULL),
+ (55,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,851,'pledge_acknowledge',1,0,0,NULL),
+ (56,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,851,'pledge_acknowledge',0,1,0,NULL),
+ (57,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,852,'pledge_reminder',1,0,0,NULL),
+ (58,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,852,'pledge_reminder',0,1,0,NULL),
+ (59,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,853,'uf_notify',1,0,0,NULL),
+ (60,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,853,'uf_notify',0,1,0,NULL),
+ (61,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,854,'petition_sign',1,0,0,NULL),
+ (62,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,854,'petition_sign',0,1,0,NULL),
+ (63,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,855,'petition_confirmation_needed',1,0,0,NULL),
+ (64,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,855,'petition_confirmation_needed',0,1,0,NULL),
  (65,'Sample CiviMail Newsletter Template','Sample CiviMail Newsletter','','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<table width=612 cellpadding=0 cellspacing=0 bgcolor=\"#ffffff\">\n  <tr>\n    <td colspan=\"2\" bgcolor=\"#ffffff\" valign=\"middle\" >\n      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >\n        <tr>\n          <td>\n          <a href=\"https://civicrm.org\"><img src=\"https://civicrm.org/sites/civicrm.org/files/top-logo_2.png\" border=0 alt=\"Replace this logo with the URL to your own\"></a>\n          </td>\n          <td>&nbsp; &nbsp;</td>\n          <td>\n          <a href=\"https://civicrm.org\" style=\"text-decoration: none;\"><font size=5 face=\"Arial, Verdana, sans-serif\" color=\"#8bc539\">Your Newsletter Title</font></a>\n          </td>\n        </tr>\n      </table>\n    </td>\n  </tr>\n  <tr>\n    <td valign=\"top\" width=\"70%\">\n      <!-- left column -->\n      <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n      <tr>\n        <td style=\"font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        Greetings {contact.display_name},\n        <br /><br />\n        This is a sample template designed to help you get started creating and sending your own CiviMail messages. This template uses an HTML layout that is generally compatible with the wide variety of email clients that your recipients might be using (e.g. Gmail, Outlook, Yahoo, etc.).\n        <br /><br />You can select this \"Sample CiviMail Newsletter Template\" from the \"Use Template\" drop-down in Step 3 of creating a mailing, and customize it to your needs. Then check the \"Save as New Template\" box on the bottom the page to save your customized version for use in future mailings.\n        <br /><br />The logo you use must be uploaded to your server.  Copy and paste the URL path to the logo into the &lt;img src= tag in the HTML at the top.  Click \"Source\" or the Image button if you are using the text editor.\n        <br /><br />\n        Edit the color of the links and headers using the color button or by editing the HTML.\n        <br /><br />\n        Your newsletter message and donation appeal can go here.  Click the link button to <a href=\"#\">create links</a> - remember to use a fully qualified URL starting with http:// in all your links!\n        <br /><br />\n        To use CiviMail:\n        <ul>\n          <li><a href=\"http://book.civicrm.org/user/advanced-configuration/email-system-configuration/\">Configure your Email System</a>.</li>\n          <li>Make sure your web hosting provider allows outgoing bulk mail, and see if they have a restriction on quantity.  If they don\'t allow bulk mail, consider <a href=\"https://civicrm.org/providers/hosting\">finding a new host</a>.</li>\n        </ul>\n        Sincerely,\n        <br /><br />\n        Your Team\n        <br /><br />\n        </font>\n        </td>\n      </tr>\n      </table>\n    </td>\n\n    <td valign=\"top\" width=\"30%\" bgcolor=\"#ffffff\" style=\"border: 1px solid #056085;\">\n      <!-- right column -->\n      <table cellpadding=10 cellspacing=0 border=0>\n      <tr>\n        <td bgcolor=\"#056085\"><font face=\"Arial, Verdana, sans-serif\" size=\"4\" color=\"#ffffff\">News and Events</font></td>\n      </tr>\n      <tr>\n        <td style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        <font color=\"#056085\"><strong>Featured Events</strong> </font><br />\n        Fundraising Dinner<br />\n        Training Meeting<br />\n        Board of Directors Annual Meeting<br />\n\n        <br /><br />\n        <font color=\"#056085\"><strong>Community Events</strong></font><br />\n        Bake Sale<br />\n        Charity Auction<br />\n        Art Exhibit<br />\n\n        <br /><br />\n        <font color=\"#056085\"><strong>Important Dates</strong></font><br />\n        Tuesday August 27<br />\n        Wednesday September 8<br />\n        Thursday September 29<br />\n        Saturday October 1<br />\n        Sunday October 20<br />\n        </font>\n        </td>\n      </tr>\n      </table>\n    </td>\n  </tr>\n\n  <tr>\n    <td colspan=\"2\">\n      <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n      <tr>\n        <td>\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        <font color=\"#7dc857\"><strong>Helpful Tips</strong></font>\n        <br /><br />\n        <font color=\"#3b5187\">Tokens</font><br />\n        Click \"Insert Tokens\" to dynamically insert names, addresses, and other contact data of your recipients.\n        <br /><br />\n        <font color=\"#3b5187\">Plain Text Version</font><br />\n        Some people refuse HTML emails altogether.  We recommend sending a plain-text version of your important communications to accommodate them.  Luckily, CiviCRM accommodates for this!  Just click \"Plain Text\" and copy and paste in some text.  Line breaks (carriage returns) and fully qualified URLs like http://www.example.com are all you get, no HTML here!\n        <br /><br />\n        <font color=\"#3b5187\">Play by the Rules</font><br />\n        The address of the sender is required by the Can Spam Act law.  This is an available token called domain.address.  An unsubscribe or opt-out link is also required.  There are several available tokens for this. <em>{action.optOutUrl}</em> creates a link for recipients to click if they want to opt out of receiving  emails from your organization. <em>{action.unsubscribeUrl}</em> creates a link to unsubscribe from the specific mailing list used to send this message. Click on \"Insert Tokens\" to find these and look for tokens named \"Domain\" or \"Unsubscribe\".  This sample template includes both required tokens at the bottom of the message. You can also configure a default Mailing Footer containing these tokens.\n        <br /><br />\n        <font color=\"#3b5187\">Composing Offline</font><br />\n        If you prefer to compose an HTML email offline in your own text editor, you can upload this HTML content into CiviMail or simply click \"Source\" and then copy and paste the HTML in.\n        <br /><br />\n        <font color=\"#3b5187\">Images</font><br />\n        Most email clients these days (Outlook, Gmail, etc) block image loading by default.  This is to protect their users from annoying or harmful email.  Not much we can do about this, so encourage recipients to add you to their contacts or \"whitelist\".  Also use images sparingly, do not rely on images to convey vital information, and always use HTML \"alt\" tags which describe the image content.\n        </td>\n      </tr>\n      </table>\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 10px;\">\n      <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n      <hr />\n      <a href=\"{action.unsubscribeUrl}\" title=\"click to unsubscribe\">Click here</a> to unsubscribe from this mailing list.<br /><br />\n      Our mailing address is:<br />\n      {domain.address}\n    </td>\n  </tr>\n  </table>\n\n</body>\n</html>\n',1,NULL,NULL,1,0,0,NULL),
  (66,'Sample Responsive Design Newsletter - Single Column Template','Sample Responsive Design Newsletter - Single Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n  <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n  <title></title>\n\n  <style type=\"text/css\">\n    {literal}\n    /* Client-specific Styles */\n    #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n    body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n    /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n    .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n    .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n    #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n    img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n    a img {border:none;}\n    .image_fix {display:block;}\n    p {margin: 0px 0px !important;}\n    table td {border-collapse: collapse;}\n    table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n    a {text-decoration: none;text-decoration:none;}\n\n    /*STYLES*/\n    table[class=full] { width: 100%; clear: both; }\n\n    /*IPAD STYLES*/\n    @media only screen and (max-width: 640px) {\n    a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: none;cursor: default;}\n    .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color:#136388;pointer-events: auto;cursor: default;}\n    table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n    table[class=devicewidthmob] {width: 416px!important;text-align:center!important;}\n    table[class=devicewidthinner] {width: 416px!important;text-align:center!important;}\n    img[class=banner] {width: 440px!important;auto!important;}\n    img[class=col2img] {width: 440px!important;height:auto!important;}\n    table[class=\"cols3inner\"] {width: 100px!important;}\n    table[class=\"col3img\"] {width: 131px!important;}\n    img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n    table[class=\"removeMobile\"]{width:10px!important;}\n    img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n    }\n\n    /*IPHONE STYLES*/\n    @media only screen and (max-width: 480px) {\n    a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #136388;pointer-events: none;cursor: default;}\n    .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: auto;cursor: default;}\n\n    table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n    table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n    table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n    img[class=banner] {width: 280px!important;height:100px!important;}\n    img[class=col2img] {width: 280px!important;height:auto!important;}\n    table[class=\"cols3inner\"] {width: 260px!important;}\n    img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n    table[class=\"col3img\"] {width: 280px!important;}\n    img[class=\"blog\"] {width: 280px!important;auto!important;}\n    td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n    td[class=\"padding-right15\"]{padding-right:15px !important;}\n    }\n\n    @media only screen and (max-device-width: 800px)\n    {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n    td[class=\"padding-right15\"]{padding-right:15px !important;}}\n    @media only screen and (max-device-width: 769px) {\n    .devicewidthmob {font-size:16px;}\n    }\n\n    @media only screen and (max-width: 640px) {\n    .desktop-spacer {display:none !important;}\n }\n  {/literal}\n  </style>\n\n<body>\n  <!-- Start of preheader --><!-- Start of preheader -->\n  <table bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"310\">\n  										<tbody>\n  											<tr>\n  												<td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; line-height:120%; color: #f8f8f8;padding-left:15px; padding-bottom:5px;\" valign=\"middle\">Organization or Program Name Here</td>\n  											</tr>\n  										</tbody>\n  									</table>\n\n  									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"310\">\n  										<tbody>\n  											<tr>\n                          <td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px; text-align:right;\" valign=\"middle\">Month and Year</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- End of main-banner-->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">\n  									<table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n  										<tbody>\n  											<tr>\n                          <td rowspan=\"2\" style=\"padding-top:10px; padding-bottom:10px;\" width=\"38%\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" /></td>\n  												<td align=\"right\" width=\"62%\">\n  												<h6 class=\"collapse\">&nbsp;</h6>\n  												</td>\n  											</tr>\n  											<tr>\n  												<td align=\"right\">\n  												<h5 style=\"font-family: Gill Sans, Gill Sans MT, Myriad Pro, DejaVu Sans Condensed, Helvetica, Arial, sans-serif; color:#136388;\">&nbsp;</h5>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody><!-- /Spacing -->\n  														<tr>\n  															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 23px; color:#f8f8f8; text-align:left; line-height: 32px; padding:5px 15px; background-color:#136388;\">Headline Here</td>\n  														</tr>\n  														<!-- Spacing -->\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- hero story -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/650x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /hero image --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px; color:#89c66b;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading Here</a></td>\n  																	</tr>\n  																	<!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing --><!-- content -->\n  																	<tr>\n  																		<td style=\"padding:0 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">{contact.email_greeting},																		</p>\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></p>\n  																		</td>\n  																	</tr>\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  																	</tr>\n  																	<!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- end of hero image and story --><!-- story 1 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"250\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading  Here</a></td>\n  																	</tr>\n  																	<!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing --><!-- content -->\n  																	<tr>\n  																		<td style=\"padding:0 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n  																		</td>\n  																	</tr>\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  																	</tr>\n  																	<!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /story 2--><!-- banner1 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- content --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"padding:15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n  																		</td>\n  																	</tr>\n  																	<!-- /button --><!-- white button -->\n  																	<!-- /button --><!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /banner 1--><!-- banner 2 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#136388\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- content --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"padding: 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n  																		</td>\n  																	</tr>\n  																	<!-- /button --><!-- white button -->\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-bottom:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#ffffff;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /banner2 --><!-- footer -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#89c66b\"  border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td><!-- logo -->\n  									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n  										<tbody>\n  											<tr>\n  												<td width=\"20\">&nbsp;</td>\n  												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0; \">Unsubscribe | </a><a href=\"{action.subscribeUrl}\"  style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n  											</tr>\n  											<tr>\n  												<td width=\"20\">&nbsp;</td>\n  												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									<!-- end of logo --><!-- start of social icons -->\n\n  									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n  										<tbody>\n  											<tr>\n  												<td align=\"left\" height=\"22\" width=\"22\">\n  												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n  												</td>\n  												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\">&nbsp;</td>\n  												<td align=\"right\" height=\"22\" width=\"22\">\n  												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n  												</td>\n  												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\">&nbsp;</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									<!-- end of social icons --></td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n\n</body>\n</html>\n',1,NULL,NULL,1,0,0,NULL),
  (67,'Sample Responsive Design Newsletter - Two Column Template','Sample Responsive Design Newsletter - Two Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n  <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n  <title></title>\n  <style type=\"text/css\">\n     {literal}\n     img {height: auto !important;}\n     /* Client-specific Styles */\n     #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n     body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n     /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n     .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n     .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n     #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n     img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n     a img {border:none;}\n     .image_fix {display:block;}\n     p {margin: 0px 0px !important;}\n     table td {border-collapse: collapse;}\n     table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n     a {/*color: #33b9ff;*/text-decoration: none;text-decoration:none!important;}\n\n\n     /*STYLES*/\n     table[class=full] { width: 100%; clear: both; }\n\n     /*IPAD STYLES*/\n     @media only screen and (max-width: 640px) {\n     a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n     .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important;pointer-events: auto;cursor: default;}\n     table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n     table[class=devicewidthmob] {width: 414px!important;text-align:center!important;}\n     table[class=devicewidthinner] {width: 414px!important;text-align:center!important;}\n     img[class=banner] {width: 440px!important;auto!important;}\n     img[class=col2img] {width: 440px!important;height:auto!important;}\n     table[class=\"cols3inner\"] {width: 100px!important;}\n     table[class=\"col3img\"] {width: 131px!important;}\n     img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n     table[class=\"removeMobile\"]{width:10px!important;}\n     img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n     }\n\n     /*IPHONE STYLES*/\n     @media only screen and (max-width: 480px) {\n     a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n     .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important; pointer-events: auto;cursor: default;}\n     table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n     table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n     table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n     img[class=banner] {width: 280px!important;height:100px!important;}\n     img[class=col2img] {width: 280px!important;height:auto!important;}\n     table[class=\"cols3inner\"] {width: 260px!important;}\n     img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n     table[class=\"col3img\"] {width: 280px!important;}\n     img[class=\"blog\"] {width: 280px!important;auto!important;}\n     td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n     td[class=\"padding-right15\"]{padding-right:15px !important;}\n     }\n\n     @media only screen and (max-device-width: 800px)\n     {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n     td[class=\"padding-right15\"]{padding-right:15px !important;}}\n     @media only screen and (max-device-width: 769px) {.devicewidthmob {font-size:14px;}}\n\n     @media only screen and (max-width: 640px) {.desktop-spacer {display:none !important;}\n	   }\n     {/literal}\n  </style>\n  <body>\n    <!-- Start of preheader --><!-- Start of preheader -->\n    <table bgcolor=\"#0B4151\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"360\">\n    										<tbody>\n    											<tr>\n    												<td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height:120%; color: #f8f8f8;padding-left:15px;\" valign=\"middle\">Organization or Program Name Here</td>\n    											</tr>\n    										</tbody>\n    									</table>\n\n    									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"320\">\n    										<tbody>\n    											<tr>\n    												<td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px;\" valign=\"middle\">Month Year</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- End of preheader --><!-- start of logo -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">\n    									<table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n    										<tbody>\n    											<tr>\n                             <td rowspan=\"2\" width=\"330\"><a href=\"#\"> <div class=\"imgpop\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" style=\"display:block;\"/></div></a></td>\n                            <td align=\"right\" >\n    												<h6 class=\"collapse\">&nbsp;</h6>\n    												</td>\n    											</tr>\n    											<tr>\n    												<td align=\"right\">\n\n    												</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- end of logo --> <!-- hero story 1 -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"101%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody>\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    										<tbody>\n    											<tr>\n    												<td width=\"100%\">\n    												<table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    													<tbody><!-- /Spacing -->\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Hero Story Heading</td>\n    														</tr>\n    														<!-- Spacing -->\n    														<tr>\n    															<td>\n    															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"700\">\n    																<tbody><!-- image -->\n    																	<tr>\n    																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n    																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"396\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/700x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"700\" /></a></div>\n    																		</td>\n    																	</tr>\n    																	<!-- /image --><!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr>\n    																	<!-- /Spacing --><!-- hero story -->\n    																	<tr>\n    																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Subheading Here</a></td>\n    																	</tr>\n    																	<!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr><!-- /Spacing -->\n    																	<tr>\n    																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 26px; padding:0 15px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></td>\n    																	</tr>\n\n    <!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr><!-- /Spacing -->\n\n              <!-- /Spacing --><!-- /hero story -->\n\n    																	<!-- Spacing -->                                                            <!-- Spacing -->\n\n\n\n    																	<!-- Spacing --><!-- end of content -->\n    																</tbody>\n    															</table>\n    															</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Section Heading -->\n    								<tr>\n    									<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Section Heading Here</td>\n    								</tr>\n    								<!-- /Section Heading -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /hero story 1 --><!-- story one -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful” Movement”going strong\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful” Movement”going strong\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story one -->\n    <!-- story two -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing --><!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story two --><!-- story three -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing --><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" class=\"desktop-spacer\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story three -->\n\n\n\n\n\n    <!-- story four -->\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody>\n                                <!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n                                <!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"Google Summer of Code\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"Google Summer of Code\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n                       <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n                    </tr>\n                    <!-- /Spacing -->\n                    <tr>\n                      <td style=\"padding: 15px;\">\n                      <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color:#076187; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n                      </td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story four -->\n\n    <!-- footer -->\n\n    <!-- End of footer --><!-- Start of postfooter -->\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n            <tbody>\n              <tr>\n                <td width=\"100%\">\n                  <table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				        <tbody><!-- Spacing -->\n    					        <tr>\n                        <td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    					        </tr>\n    					        <!-- Spacing -->\n    					        <tr>\n                        <td><!-- logo -->\n                        <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n            							<tbody>\n            								<tr>\n                               <td width=\"20\">&nbsp;</td>\n                              <td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0;\">Unsubscribe | </a><a href=\"{action.subscribeUrl}\" style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n                            </tr>\n      											<tr>\n      												<td width=\"20\">&nbsp;</td>\n      												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n      											</tr>\n                          </tbody>\n                        </table>\n                        <!-- end of logo --><!-- start of social icons -->\n      									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n      										<tbody>\n      											<tr>\n      												<td align=\"left\" height=\"22\" width=\"22\">\n                                <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>      											  </td>\n      												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\">&nbsp;</td>\n      												<td align=\"right\" height=\"22\" width=\"22\">\n      												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n      												</td>\n      												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\">&nbsp;</td>\n      											</tr>\n      										</tbody>\n      									</table>\n    									<!-- end of social icons --></td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#80C457\" height=\"10\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- End of footer -->\n  </body>\n</html>\n',1,NULL,NULL,1,0,0,NULL);
@@ -5470,26 +5459,26 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_note` WRITE;
 /*!40000 ALTER TABLE `civicrm_note` DISABLE KEYS */;
 INSERT INTO `civicrm_note` (`id`, `entity_table`, `entity_id`, `note`, `contact_id`, `note_date`, `created_date`, `modified_date`, `subject`, `privacy`) VALUES
- (1,'civicrm_contact',194,'Arrange for cricket match with Sunil Gavaskar',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-12-27 23:23:15',NULL,'0'),
- (2,'civicrm_contact',26,'Reminder screening of \"Black\" on next Friday',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-01-02 13:23:19',NULL,'0'),
- (3,'civicrm_contact',3,'Send reminder for annual dinner',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-02-14 14:56:25',NULL,'0'),
- (4,'civicrm_contact',43,'Send newsletter for April 2005',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-02-01 15:58:06',NULL,'0'),
- (5,'civicrm_contact',186,'Reminder screening of \"Black\" on next Friday',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-02-19 21:02:20',NULL,'0'),
- (6,'civicrm_contact',179,'Organize the Terry Fox run',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-06-30 04:00:57',NULL,'0'),
- (7,'civicrm_contact',66,'Arrange for cricket match with Sunil Gavaskar',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-07-24 12:11:13',NULL,'0'),
- (8,'civicrm_contact',83,'Arrange for cricket match with Sunil Gavaskar',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-05-24 19:51:31',NULL,'0'),
- (9,'civicrm_contact',14,'Invite members for the Steve Prefontaine 10k dream run',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-03-30 19:37:15',NULL,'0'),
- (10,'civicrm_contact',79,'Arrange for cricket match with Sunil Gavaskar',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-07-31 10:03:05',NULL,'0'),
- (11,'civicrm_contact',160,'Arrange for cricket match with Sunil Gavaskar',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-11-24 03:25:25',NULL,'0'),
- (12,'civicrm_contact',185,'Contact the Commissioner of Charities',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-09-04 14:23:15',NULL,'0'),
- (13,'civicrm_contact',48,'Organize the Terry Fox run',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-03-22 22:56:36',NULL,'0'),
- (14,'civicrm_contact',137,'Organize the Terry Fox run',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-08-09 17:54:40',NULL,'0'),
- (15,'civicrm_contact',122,'Arrange for cricket match with Sunil Gavaskar',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-10-25 13:39:32',NULL,'0'),
- (16,'civicrm_contact',57,'Connect for presentation',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-09-22 00:20:50',NULL,'0'),
- (17,'civicrm_contact',121,'Send reminder for annual dinner',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-02-09 04:01:29',NULL,'0'),
- (18,'civicrm_contact',145,'Arrange for cricket match with Sunil Gavaskar',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2020-10-31 05:43:28',NULL,'0'),
- (19,'civicrm_contact',170,'Get the registration done for NGO status',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-03-24 22:13:51',NULL,'0'),
- (20,'civicrm_contact',74,'Reminder screening of \"Black\" on next Friday',1,'2021-07-26 14:08:45','2021-07-26 14:08:45','2021-06-06 19:17:45',NULL,'0');
+ (1,'civicrm_contact',142,'Reminder screening of \"Black\" on next Friday',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-04-21 22:15:46',NULL,'0'),
+ (2,'civicrm_contact',131,'Get the registration done for NGO status',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2020-11-21 08:29:07',NULL,'0'),
+ (3,'civicrm_contact',92,'Get the registration done for NGO status',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-02-02 08:12:03',NULL,'0'),
+ (4,'civicrm_contact',199,'Send reminder for annual dinner',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2020-10-18 18:39:43',NULL,'0'),
+ (5,'civicrm_contact',34,'Connect for presentation',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-07-07 23:57:11',NULL,'0'),
+ (6,'civicrm_contact',14,'Send reminder for annual dinner',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2020-12-02 15:07:44',NULL,'0'),
+ (7,'civicrm_contact',182,'Get the registration done for NGO status',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-08-29 21:28:19',NULL,'0'),
+ (8,'civicrm_contact',113,'Organize the Terry Fox run',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-02-22 11:28:36',NULL,'0'),
+ (9,'civicrm_contact',183,'Arrange collection of funds from members',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-06-28 20:59:41',NULL,'0'),
+ (10,'civicrm_contact',72,'Chart out route map for next 10k run',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2020-11-25 20:12:23',NULL,'0'),
+ (11,'civicrm_contact',60,'Arrange collection of funds from members',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-08-28 00:17:23',NULL,'0'),
+ (12,'civicrm_contact',50,'Chart out route map for next 10k run',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-05-28 10:59:33',NULL,'0'),
+ (13,'civicrm_contact',156,'Contact the Commissioner of Charities',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-07-29 09:17:41',NULL,'0'),
+ (14,'civicrm_contact',54,'Contact the Commissioner of Charities',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-01-24 11:47:34',NULL,'0'),
+ (15,'civicrm_contact',43,'Arrange collection of funds from members',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-08-05 12:07:05',NULL,'0'),
+ (16,'civicrm_contact',103,'Reminder screening of \"Black\" on next Friday',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2020-10-25 05:13:17',NULL,'0'),
+ (17,'civicrm_contact',151,'Send newsletter for April 2005',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-05-20 15:31:21',NULL,'0'),
+ (18,'civicrm_contact',53,'Organize the Terry Fox run',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2020-12-02 05:04:24',NULL,'0'),
+ (19,'civicrm_contact',184,'Chart out route map for next 10k run',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-04-29 12:23:17',NULL,'0'),
+ (20,'civicrm_contact',24,'Send reminder for annual dinner',1,'2021-10-14 04:23:55','2021-10-14 04:23:55','2021-01-22 22:40:34',NULL,'0');
 /*!40000 ALTER TABLE `civicrm_note` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -5966,16 +5955,16 @@ INSERT INTO `civicrm_option_value` (`id`, `option_group_id`, `label`, `value`, `
  (348,40,'Vancouver','city_','city_',NULL,0,NULL,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),
  (349,40,'/(19|20)(\\d{2})-(\\d{1,2})-(\\d{1,2})/','date_','date_',NULL,1,NULL,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),
  (350,42,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
- (351,42,'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}','2','Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
- (352,42,'Dear {contact.individual_prefix} {contact.last_name}','3','Dear {contact.individual_prefix} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
+ (351,42,'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}','2','Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
+ (352,42,'Dear {contact.prefix_id:label} {contact.last_name}','3','Dear {contact.prefix_id:label} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
  (353,42,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),
  (354,42,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
  (355,43,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
- (356,43,'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}','2','Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
- (357,43,'Dear {contact.individual_prefix} {contact.last_name}','3','Dear {contact.individual_prefix} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
+ (356,43,'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}','2','Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
+ (357,43,'Dear {contact.prefix_id:label} {contact.last_name}','3','Dear {contact.prefix_id:label} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
  (358,43,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),
  (359,43,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
- (360,44,'{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}','1','}{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
+ (360,44,'{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}','1','{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
  (361,44,'{contact.household_name}','2','{contact.household_name}',NULL,2,1,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
  (362,44,'{contact.organization_name}','3','{contact.organization_name}',NULL,3,1,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),
  (363,44,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),
@@ -6493,56 +6482,56 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_participant` WRITE;
 /*!40000 ALTER TABLE `civicrm_participant` DISABLE KEYS */;
 INSERT INTO `civicrm_participant` (`id`, `contact_id`, `event_id`, `status_id`, `role_id`, `register_date`, `source`, `fee_level`, `is_test`, `is_pay_later`, `fee_amount`, `registered_by_id`, `discount_id`, `fee_currency`, `campaign_id`, `discount_amount`, `cart_id`, `must_wait`, `transferred_to_contact_id`) VALUES
- (1,70,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (2,110,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (3,23,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (4,83,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (5,158,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (6,55,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (7,43,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (8,21,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (9,199,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (10,190,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (11,68,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (12,167,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (13,124,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (14,3,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (15,116,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (16,117,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (17,170,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (18,165,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (19,176,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (20,201,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (21,93,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (22,131,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (23,152,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (24,41,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (25,25,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (26,144,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (27,183,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (28,149,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (29,166,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (30,19,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (31,105,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (32,102,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (33,66,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (34,49,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (35,4,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (36,112,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (37,75,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (38,91,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (39,6,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (40,27,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (41,200,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (42,142,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (43,54,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (44,86,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (45,53,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (46,113,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (47,98,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (48,173,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (49,197,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
- (50,121,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL);
+ (1,51,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (2,35,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (3,196,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (4,60,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (5,100,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (6,22,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (7,187,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (8,93,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (9,179,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (10,21,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (11,129,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (12,73,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (13,171,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (14,147,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (15,41,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (16,166,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (17,33,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (18,158,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (19,151,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (20,136,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (21,153,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (22,185,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (23,142,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (24,117,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (25,12,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (26,82,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (27,184,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (28,123,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (29,50,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (30,46,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (31,155,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (32,103,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (33,191,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (34,104,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (35,89,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (36,133,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (37,18,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (38,157,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (39,84,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (40,114,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (41,110,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (42,125,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (43,64,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (44,107,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (45,55,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (46,200,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (47,122,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (48,13,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (49,144,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),
+ (50,143,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_participant` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -6553,56 +6542,56 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_participant_payment` WRITE;
 /*!40000 ALTER TABLE `civicrm_participant_payment` DISABLE KEYS */;
 INSERT INTO `civicrm_participant_payment` (`id`, `participant_id`, `contribution_id`) VALUES
- (1,14,45),
- (2,35,46),
- (3,39,47),
- (4,30,48),
- (5,8,49),
- (6,3,50),
- (7,25,51),
- (8,40,52),
- (9,24,53),
- (10,7,54),
- (11,34,55),
+ (1,25,45),
+ (2,48,46),
+ (3,37,47),
+ (4,10,48),
+ (5,6,49),
+ (6,17,50),
+ (7,2,51),
+ (8,15,52),
+ (9,30,53),
+ (10,29,54),
+ (11,1,55),
  (12,45,56),
- (13,43,57),
- (14,6,58),
- (15,33,59),
- (16,11,60),
- (17,1,61),
- (18,37,62),
- (19,4,63),
- (20,44,64),
- (21,38,65),
- (22,21,66),
- (23,47,67),
- (24,32,68),
- (25,31,69),
- (26,2,70),
- (27,36,71),
- (28,46,72),
- (29,15,73),
- (30,16,74),
- (31,50,75),
- (32,13,76),
- (33,22,77),
- (34,42,78),
- (35,26,79),
- (36,28,80),
- (37,23,81),
- (38,5,82),
- (39,18,83),
- (40,29,84),
- (41,12,85),
- (42,17,86),
- (43,48,87),
- (44,19,88),
+ (13,4,57),
+ (14,43,58),
+ (15,12,59),
+ (16,26,60),
+ (17,39,61),
+ (18,35,62),
+ (19,8,63),
+ (20,5,64),
+ (21,32,65),
+ (22,34,66),
+ (23,44,67),
+ (24,41,68),
+ (25,40,69),
+ (26,24,70),
+ (27,47,71),
+ (28,28,72),
+ (29,42,73),
+ (30,11,74),
+ (31,36,75),
+ (32,20,76),
+ (33,23,77),
+ (34,50,78),
+ (35,49,79),
+ (36,14,80),
+ (37,19,81),
+ (38,21,82),
+ (39,31,83),
+ (40,38,84),
+ (41,18,85),
+ (42,16,86),
+ (43,13,87),
+ (44,9,88),
  (45,27,89),
- (46,10,90),
- (47,49,91),
- (48,9,92),
- (49,41,93),
- (50,20,94);
+ (46,22,90),
+ (47,7,91),
+ (48,33,92),
+ (49,3,93),
+ (50,46,94);
 /*!40000 ALTER TABLE `civicrm_participant_payment` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -6676,7 +6665,7 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_pcp` WRITE;
 /*!40000 ALTER TABLE `civicrm_pcp` DISABLE KEYS */;
 INSERT INTO `civicrm_pcp` (`id`, `contact_id`, `status_id`, `title`, `intro_text`, `page_text`, `donate_link_text`, `page_id`, `page_type`, `pcp_block_id`, `is_thermometer`, `is_honor_roll`, `goal_amount`, `currency`, `is_active`, `is_notify`) VALUES
- (1,39,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1);
+ (1,48,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1);
 /*!40000 ALTER TABLE `civicrm_pcp` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -6698,149 +6687,167 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_phone` WRITE;
 /*!40000 ALTER TABLE `civicrm_phone` DISABLE KEYS */;
 INSERT INTO `civicrm_phone` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `mobile_provider_id`, `phone`, `phone_ext`, `phone_numeric`, `phone_type_id`) VALUES
- (1,60,1,1,0,NULL,'(631) 502-7632',NULL,'6315027632',2),
- (2,60,1,0,0,NULL,'306-5286',NULL,'3065286',1),
- (3,65,1,1,0,NULL,'(664) 556-8449',NULL,'6645568449',1),
- (4,39,1,1,0,NULL,'(666) 804-7672',NULL,'6668047672',1),
- (5,58,1,1,0,NULL,'490-2731',NULL,'4902731',2),
- (6,58,1,0,0,NULL,'(752) 434-5094',NULL,'7524345094',1),
- (7,94,1,1,0,NULL,'(598) 531-1150',NULL,'5985311150',2),
- (8,164,1,1,0,NULL,'470-6150',NULL,'4706150',1),
- (9,81,1,1,0,NULL,'(268) 413-2738',NULL,'2684132738',2),
- (10,81,1,0,0,NULL,'675-7787',NULL,'6757787',1),
- (11,187,1,1,0,NULL,'340-8178',NULL,'3408178',1),
- (12,195,1,1,0,NULL,'396-5598',NULL,'3965598',1),
- (13,69,1,1,0,NULL,'(468) 419-5582',NULL,'4684195582',2),
- (14,69,1,0,0,NULL,'547-4732',NULL,'5474732',2),
- (15,4,1,1,0,NULL,'596-6699',NULL,'5966699',1),
- (16,4,1,0,0,NULL,'(253) 898-2469',NULL,'2538982469',1),
- (17,19,1,1,0,NULL,'(246) 206-4702',NULL,'2462064702',1),
- (18,19,1,0,0,NULL,'416-7576',NULL,'4167576',1),
- (19,10,1,1,0,NULL,'(556) 694-1060',NULL,'5566941060',1),
- (20,10,1,0,0,NULL,'713-4496',NULL,'7134496',2),
- (21,137,1,1,0,NULL,'(346) 672-4375',NULL,'3466724375',1),
- (22,137,1,0,0,NULL,'257-2955',NULL,'2572955',2),
- (23,30,1,1,0,NULL,'558-1911',NULL,'5581911',2),
- (24,165,1,1,0,NULL,'(393) 816-3318',NULL,'3938163318',1),
- (25,165,1,0,0,NULL,'(536) 353-9891',NULL,'5363539891',1),
- (26,162,1,1,0,NULL,'(341) 622-9484',NULL,'3416229484',2),
- (27,131,1,1,0,NULL,'896-4973',NULL,'8964973',2),
- (28,27,1,1,0,NULL,'593-8180',NULL,'5938180',1),
- (29,17,1,1,0,NULL,'(746) 514-3812',NULL,'7465143812',2),
- (30,17,1,0,0,NULL,'826-8525',NULL,'8268525',1),
- (31,149,1,1,0,NULL,'(324) 894-7558',NULL,'3248947558',1),
- (32,149,1,0,0,NULL,'544-2102',NULL,'5442102',2),
- (33,199,1,1,0,NULL,'(582) 370-7412',NULL,'5823707412',2),
- (34,199,1,0,0,NULL,'564-1332',NULL,'5641332',2),
- (35,115,1,1,0,NULL,'306-7021',NULL,'3067021',1),
- (36,201,1,1,0,NULL,'706-2312',NULL,'7062312',1),
- (37,201,1,0,0,NULL,'(706) 523-7684',NULL,'7065237684',2),
- (38,166,1,1,0,NULL,'(605) 337-9231',NULL,'6053379231',1),
- (39,61,1,1,0,NULL,'819-7845',NULL,'8197845',2),
- (40,56,1,1,0,NULL,'588-3229',NULL,'5883229',2),
- (41,56,1,0,0,NULL,'(327) 507-5826',NULL,'3275075826',1),
- (42,172,1,1,0,NULL,'(851) 529-4920',NULL,'8515294920',1),
- (43,157,1,1,0,NULL,'799-5820',NULL,'7995820',1),
- (44,157,1,0,0,NULL,'(336) 496-9949',NULL,'3364969949',1),
- (45,71,1,1,0,NULL,'(708) 838-9081',NULL,'7088389081',2),
- (46,71,1,0,0,NULL,'(796) 724-1136',NULL,'7967241136',2),
- (47,21,1,1,0,NULL,'(702) 243-8648',NULL,'7022438648',2),
- (48,21,1,0,0,NULL,'(314) 656-6957',NULL,'3146566957',1),
- (49,25,1,1,0,NULL,'(304) 431-5590',NULL,'3044315590',2),
- (50,49,1,1,0,NULL,'(668) 732-7307',NULL,'6687327307',1),
- (51,11,1,1,0,NULL,'(552) 484-3091',NULL,'5524843091',1),
- (52,78,1,1,0,NULL,'670-5669',NULL,'6705669',1),
- (53,133,1,1,0,NULL,'(331) 367-5236',NULL,'3313675236',1),
- (54,133,1,0,0,NULL,'471-5778',NULL,'4715778',2),
- (55,184,1,1,0,NULL,'235-2266',NULL,'2352266',1),
- (56,184,1,0,0,NULL,'717-3709',NULL,'7173709',1),
- (57,55,1,1,0,NULL,'(857) 412-1949',NULL,'8574121949',2),
- (58,55,1,0,0,NULL,'342-4560',NULL,'3424560',1),
- (59,146,1,1,0,NULL,'489-6363',NULL,'4896363',2),
- (60,146,1,0,0,NULL,'(255) 263-6254',NULL,'2552636254',2),
- (61,170,1,1,0,NULL,'(690) 507-8377',NULL,'6905078377',2),
- (62,112,1,1,0,NULL,'793-8784',NULL,'7938784',2),
- (63,112,1,0,0,NULL,'463-3338',NULL,'4633338',1),
- (64,177,1,1,0,NULL,'(728) 225-4864',NULL,'7282254864',1),
- (65,177,1,0,0,NULL,'814-8256',NULL,'8148256',1),
- (66,175,1,1,0,NULL,'452-8819',NULL,'4528819',1),
- (67,175,1,0,0,NULL,'(747) 596-4923',NULL,'7475964923',1),
- (68,182,1,1,0,NULL,'(234) 265-3675',NULL,'2342653675',2),
- (69,182,1,0,0,NULL,'(401) 457-9782',NULL,'4014579782',2),
- (70,2,1,1,0,NULL,'(373) 769-9145',NULL,'3737699145',2),
- (71,90,1,1,0,NULL,'794-1366',NULL,'7941366',2),
- (72,80,1,1,0,NULL,'666-4673',NULL,'6664673',1),
- (73,80,1,0,0,NULL,'856-1567',NULL,'8561567',1),
- (74,20,1,1,0,NULL,'(549) 886-3510',NULL,'5498863510',1),
- (75,41,1,1,0,NULL,'397-4218',NULL,'3974218',1),
- (76,41,1,0,0,NULL,'(791) 269-2479',NULL,'7912692479',2),
- (77,128,1,1,0,NULL,'428-1343',NULL,'4281343',2),
- (78,128,1,0,0,NULL,'550-4730',NULL,'5504730',1),
- (79,197,1,1,0,NULL,'(570) 794-3005',NULL,'5707943005',2),
- (80,197,1,0,0,NULL,'795-8612',NULL,'7958612',2),
- (81,126,1,1,0,NULL,'(369) 871-4787',NULL,'3698714787',1),
- (82,72,1,1,0,NULL,'(787) 404-4255',NULL,'7874044255',1),
- (83,18,1,1,0,NULL,'(536) 839-8282',NULL,'5368398282',2),
- (84,18,1,0,0,NULL,'808-4380',NULL,'8084380',2),
- (85,101,1,1,0,NULL,'442-6300',NULL,'4426300',2),
- (86,192,1,1,0,NULL,'(394) 775-9196',NULL,'3947759196',2),
- (87,95,1,1,0,NULL,'879-4781',NULL,'8794781',2),
- (88,96,1,1,0,NULL,'591-6861',NULL,'5916861',1),
- (89,96,1,0,0,NULL,'(897) 862-7708',NULL,'8978627708',2),
- (90,79,1,1,0,NULL,'(688) 535-7384',NULL,'6885357384',1),
- (91,62,1,1,0,NULL,'249-4663',NULL,'2494663',1),
- (92,62,1,0,0,NULL,'749-1849',NULL,'7491849',2),
- (93,148,1,1,0,NULL,'(782) 613-9828',NULL,'7826139828',2),
- (94,3,1,1,0,NULL,'(747) 402-8360',NULL,'7474028360',1),
- (95,150,1,1,0,NULL,'(337) 475-4791',NULL,'3374754791',1),
- (96,16,1,1,0,NULL,'(824) 616-5301',NULL,'8246165301',1),
- (97,141,1,1,0,NULL,'376-2523',NULL,'3762523',2),
- (98,82,1,1,0,NULL,'881-3072',NULL,'8813072',1),
- (99,104,1,1,0,NULL,'473-2993',NULL,'4732993',1),
- (100,12,1,1,0,NULL,'391-1408',NULL,'3911408',2),
- (101,12,1,0,0,NULL,'(312) 884-9568',NULL,'3128849568',1),
- (102,14,1,1,0,NULL,'626-1697',NULL,'6261697',2),
- (103,14,1,0,0,NULL,'519-4702',NULL,'5194702',2),
- (104,59,1,1,0,NULL,'398-7690',NULL,'3987690',2),
- (105,64,1,1,0,NULL,'(687) 630-8229',NULL,'6876308229',1),
- (106,116,1,1,0,NULL,'(306) 437-7083',NULL,'3064377083',1),
- (107,47,1,1,0,NULL,'(204) 719-6897',NULL,'2047196897',1),
- (108,47,1,0,0,NULL,'840-9262',NULL,'8409262',2),
- (109,113,1,1,0,NULL,'(623) 892-8608',NULL,'6238928608',2),
- (110,113,1,0,0,NULL,'410-4853',NULL,'4104853',1),
- (111,200,1,1,0,NULL,'(698) 679-4101',NULL,'6986794101',2),
- (112,51,1,1,0,NULL,'(554) 694-1265',NULL,'5546941265',1),
- (113,51,1,0,0,NULL,'(774) 530-8718',NULL,'7745308718',1),
- (114,132,1,1,0,NULL,'(868) 578-3362',NULL,'8685783362',1),
- (115,132,1,0,0,NULL,'(402) 843-3905',NULL,'4028433905',2),
- (116,108,1,1,0,NULL,'596-1254',NULL,'5961254',2),
- (117,108,1,0,0,NULL,'(710) 430-3209',NULL,'7104303209',2),
- (118,178,1,1,0,NULL,'230-3227',NULL,'2303227',2),
- (119,93,1,1,0,NULL,'294-1346',NULL,'2941346',2),
- (120,93,1,0,0,NULL,'(520) 593-1333',NULL,'5205931333',2),
- (121,92,1,1,0,NULL,'(323) 643-5508',NULL,'3236435508',2),
- (122,68,1,1,0,NULL,'(709) 699-7261',NULL,'7096997261',1),
- (123,68,1,0,0,NULL,'(533) 556-7878',NULL,'5335567878',1),
- (124,136,1,1,0,NULL,'519-5572',NULL,'5195572',2),
- (125,75,1,1,0,NULL,'(756) 531-4898',NULL,'7565314898',1),
- (126,75,1,0,0,NULL,'(222) 894-8530',NULL,'2228948530',2),
- (127,156,1,1,0,NULL,'539-9453',NULL,'5399453',1),
- (128,156,1,0,0,NULL,'(564) 560-4185',NULL,'5645604185',1),
- (129,46,1,1,0,NULL,'(856) 628-3123',NULL,'8566283123',1),
- (130,123,1,1,0,NULL,'(651) 524-6464',NULL,'6515246464',2),
- (131,45,1,1,0,NULL,'403-4431',NULL,'4034431',2),
- (132,45,1,0,0,NULL,'(729) 351-3727',NULL,'7293513727',1),
- (133,23,1,1,0,NULL,'(375) 371-2517',NULL,'3753712517',1),
- (134,163,1,1,0,NULL,'814-7804',NULL,'8147804',1),
- (135,194,1,1,0,NULL,'511-8371',NULL,'5118371',2),
- (136,86,1,1,0,NULL,'239-8049',NULL,'2398049',2),
- (137,86,1,0,0,NULL,'(526) 278-3701',NULL,'5262783701',2),
- (138,77,1,1,0,NULL,'358-6653',NULL,'3586653',2),
- (139,44,1,1,0,NULL,'613-6975',NULL,'6136975',1),
- (140,43,1,1,0,NULL,'(764) 278-9077',NULL,'7642789077',1),
- (141,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1),
- (142,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1),
- (143,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1);
+ (1,111,1,1,0,NULL,'718-8327',NULL,'7188327',2),
+ (2,105,1,1,0,NULL,'810-5338',NULL,'8105338',2),
+ (3,105,1,0,0,NULL,'(880) 315-3802',NULL,'8803153802',1),
+ (4,188,1,1,0,NULL,'707-8755',NULL,'7078755',1),
+ (5,188,1,0,0,NULL,'445-4834',NULL,'4454834',1),
+ (6,200,1,1,0,NULL,'840-4466',NULL,'8404466',1),
+ (7,200,1,0,0,NULL,'(599) 223-4032',NULL,'5992234032',2),
+ (8,107,1,1,0,NULL,'(599) 396-4976',NULL,'5993964976',2),
+ (9,156,1,1,0,NULL,'806-2840',NULL,'8062840',1),
+ (10,121,1,1,0,NULL,'537-6151',NULL,'5376151',2),
+ (11,121,1,0,0,NULL,'(772) 789-7268',NULL,'7727897268',1),
+ (12,28,1,1,0,NULL,'(785) 582-1113',NULL,'7855821113',1),
+ (13,28,1,0,0,NULL,'324-3836',NULL,'3243836',1),
+ (14,172,1,1,0,NULL,'(798) 299-4019',NULL,'7982994019',1),
+ (15,172,1,0,0,NULL,'(785) 658-5377',NULL,'7856585377',1),
+ (16,39,1,1,0,NULL,'(862) 669-8365',NULL,'8626698365',1),
+ (17,39,1,0,0,NULL,'(541) 612-6073',NULL,'5416126073',1),
+ (18,190,1,1,0,NULL,'427-8905',NULL,'4278905',2),
+ (19,190,1,0,0,NULL,'(723) 386-5373',NULL,'7233865373',1),
+ (20,138,1,1,0,NULL,'737-1587',NULL,'7371587',2),
+ (21,138,1,0,0,NULL,'254-6474',NULL,'2546474',1),
+ (22,7,1,1,0,NULL,'371-9316',NULL,'3719316',2),
+ (23,7,1,0,0,NULL,'(417) 753-5113',NULL,'4177535113',2),
+ (24,67,1,1,0,NULL,'(229) 290-4659',NULL,'2292904659',2),
+ (25,116,1,1,0,NULL,'(414) 566-8879',NULL,'4145668879',2),
+ (26,32,1,1,0,NULL,'698-5689',NULL,'6985689',1),
+ (27,12,1,1,0,NULL,'(648) 357-7492',NULL,'6483577492',1),
+ (28,12,1,0,0,NULL,'453-3313',NULL,'4533313',2),
+ (29,88,1,1,0,NULL,'(385) 629-9159',NULL,'3856299159',2),
+ (30,88,1,0,0,NULL,'(384) 715-4406',NULL,'3847154406',2),
+ (31,99,1,1,0,NULL,'651-8247',NULL,'6518247',2),
+ (32,99,1,0,0,NULL,'(691) 810-9320',NULL,'6918109320',1),
+ (33,73,1,1,0,NULL,'293-7928',NULL,'2937928',1),
+ (34,132,1,1,0,NULL,'(505) 532-1975',NULL,'5055321975',1),
+ (35,171,1,1,0,NULL,'839-7071',NULL,'8397071',2),
+ (36,152,1,1,0,NULL,'661-5784',NULL,'6615784',1),
+ (37,149,1,1,0,NULL,'828-1875',NULL,'8281875',1),
+ (38,8,1,1,0,NULL,'316-9181',NULL,'3169181',2),
+ (39,103,1,1,0,NULL,'258-4439',NULL,'2584439',1),
+ (40,103,1,0,0,NULL,'(780) 783-5044',NULL,'7807835044',1),
+ (41,23,1,1,0,NULL,'426-8695',NULL,'4268695',2),
+ (42,23,1,0,0,NULL,'704-7417',NULL,'7047417',1),
+ (43,69,1,1,0,NULL,'(480) 672-9034',NULL,'4806729034',1),
+ (44,69,1,0,0,NULL,'654-5488',NULL,'6545488',1),
+ (45,38,1,1,0,NULL,'748-3239',NULL,'7483239',1),
+ (46,38,1,0,0,NULL,'294-7300',NULL,'2947300',2),
+ (47,122,1,1,0,NULL,'(305) 666-9127',NULL,'3056669127',2),
+ (48,122,1,0,0,NULL,'480-8849',NULL,'4808849',2),
+ (49,55,1,1,0,NULL,'421-3245',NULL,'4213245',2),
+ (50,142,1,1,0,NULL,'785-6319',NULL,'7856319',2),
+ (51,18,1,1,0,NULL,'(714) 718-6772',NULL,'7147186772',1),
+ (52,18,1,0,0,NULL,'(381) 361-4988',NULL,'3813614988',1),
+ (53,44,1,1,0,NULL,'600-2285',NULL,'6002285',1),
+ (54,57,1,1,0,NULL,'(856) 835-4384',NULL,'8568354384',2),
+ (55,57,1,0,0,NULL,'511-1010',NULL,'5111010',1),
+ (56,114,1,1,0,NULL,'(787) 729-7934',NULL,'7877297934',2),
+ (57,15,1,1,0,NULL,'753-3887',NULL,'7533887',2),
+ (58,15,1,0,0,NULL,'(739) 293-8878',NULL,'7392938878',2),
+ (59,194,1,1,0,NULL,'(455) 484-9167',NULL,'4554849167',1),
+ (60,194,1,0,0,NULL,'418-5045',NULL,'4185045',2),
+ (61,43,1,1,0,NULL,'(707) 612-4695',NULL,'7076124695',2),
+ (62,43,1,0,0,NULL,'(663) 789-3427',NULL,'6637893427',1),
+ (63,26,1,1,0,NULL,'(309) 627-1147',NULL,'3096271147',1),
+ (64,47,1,1,0,NULL,'(642) 688-2943',NULL,'6426882943',2),
+ (65,49,1,1,0,NULL,'(447) 433-4142',NULL,'4474334142',2),
+ (66,49,1,0,0,NULL,'(866) 645-1422',NULL,'8666451422',1),
+ (67,108,1,1,0,NULL,'641-3393',NULL,'6413393',2),
+ (68,108,1,0,0,NULL,'(564) 851-4988',NULL,'5648514988',1),
+ (69,6,1,1,0,NULL,'(658) 582-9878',NULL,'6585829878',1),
+ (70,41,1,1,0,NULL,'(652) 656-9886',NULL,'6526569886',2),
+ (71,2,1,1,0,NULL,'828-5357',NULL,'8285357',2),
+ (72,58,1,1,0,NULL,'251-1360',NULL,'2511360',1),
+ (73,135,1,1,0,NULL,'(495) 674-9964',NULL,'4956749964',2),
+ (74,80,1,1,0,NULL,'772-3601',NULL,'7723601',1),
+ (75,80,1,0,0,NULL,'809-1027',NULL,'8091027',1),
+ (76,154,1,1,0,NULL,'252-2492',NULL,'2522492',2),
+ (77,154,1,0,0,NULL,'870-8493',NULL,'8708493',2),
+ (78,62,1,1,0,NULL,'650-7739',NULL,'6507739',1),
+ (79,62,1,0,0,NULL,'(427) 340-8107',NULL,'4273408107',1),
+ (80,118,1,1,0,NULL,'(470) 738-3752',NULL,'4707383752',2),
+ (81,75,1,1,0,NULL,'823-7712',NULL,'8237712',1),
+ (82,75,1,0,0,NULL,'(868) 354-1311',NULL,'8683541311',2),
+ (83,76,1,1,0,NULL,'(828) 478-2269',NULL,'8284782269',2),
+ (84,126,1,1,0,NULL,'(492) 420-5988',NULL,'4924205988',1),
+ (85,126,1,0,0,NULL,'260-7791',NULL,'2607791',2),
+ (86,65,1,1,0,NULL,'482-5795',NULL,'4825795',1),
+ (87,51,1,1,0,NULL,'244-5193',NULL,'2445193',2),
+ (88,110,1,1,0,NULL,'590-2937',NULL,'5902937',1),
+ (89,71,1,1,0,NULL,'(558) 253-3817',NULL,'5582533817',2),
+ (90,143,1,1,0,NULL,'(891) 382-6419',NULL,'8913826419',2),
+ (91,143,1,0,0,NULL,'636-9447',NULL,'6369447',2),
+ (92,170,1,1,0,NULL,'(790) 506-5718',NULL,'7905065718',1),
+ (93,170,1,0,0,NULL,'702-7150',NULL,'7027150',1),
+ (94,50,1,1,0,NULL,'660-3014',NULL,'6603014',2),
+ (95,50,1,0,0,NULL,'(782) 654-5982',NULL,'7826545982',1),
+ (96,97,1,1,0,NULL,'(384) 693-3280',NULL,'3846933280',1),
+ (97,60,1,1,0,NULL,'682-4919',NULL,'6824919',1),
+ (98,64,1,1,0,NULL,'(735) 487-9999',NULL,'7354879999',2),
+ (99,186,1,1,0,NULL,'493-8511',NULL,'4938511',1),
+ (100,186,1,0,0,NULL,'433-9361',NULL,'4339361',2),
+ (101,150,1,1,0,NULL,'360-4596',NULL,'3604596',2),
+ (102,5,1,1,0,NULL,'(638) 785-6912',NULL,'6387856912',1),
+ (103,201,1,1,0,NULL,'(760) 819-8922',NULL,'7608198922',2),
+ (104,201,1,0,0,NULL,'(494) 728-8846',NULL,'4947288846',1),
+ (105,113,1,1,0,NULL,'247-1431',NULL,'2471431',1),
+ (106,113,1,0,0,NULL,'611-3033',NULL,'6113033',2),
+ (107,19,1,1,0,NULL,'860-9848',NULL,'8609848',1),
+ (108,19,1,0,0,NULL,'(848) 430-7570',NULL,'8484307570',1),
+ (109,178,1,1,0,NULL,'459-2661',NULL,'4592661',1),
+ (110,178,1,0,0,NULL,'894-7318',NULL,'8947318',1),
+ (111,52,1,1,0,NULL,'(231) 690-1801',NULL,'2316901801',2),
+ (112,40,1,1,0,NULL,'(791) 321-6272',NULL,'7913216272',2),
+ (113,117,1,1,0,NULL,'459-1946',NULL,'4591946',1),
+ (114,140,1,1,0,NULL,'338-2426',NULL,'3382426',1),
+ (115,82,1,1,0,NULL,'(595) 428-8192',NULL,'5954288192',2),
+ (116,89,1,1,0,NULL,'473-4488',NULL,'4734488',1),
+ (117,181,1,1,0,NULL,'897-2913',NULL,'8972913',2),
+ (118,181,1,0,0,NULL,'(504) 873-7390',NULL,'5048737390',2),
+ (119,21,1,1,0,NULL,'(740) 460-8963',NULL,'7404608963',1),
+ (120,21,1,0,0,NULL,'(645) 799-9388',NULL,'6457999388',2),
+ (121,155,1,1,0,NULL,'(857) 672-6525',NULL,'8576726525',1),
+ (122,164,1,1,0,NULL,'(737) 457-3013',NULL,'7374573013',1),
+ (123,164,1,0,0,NULL,'703-4273',NULL,'7034273',1),
+ (124,11,1,1,0,NULL,'502-7650',NULL,'5027650',1),
+ (125,11,1,0,0,NULL,'763-9525',NULL,'7639525',1),
+ (126,29,1,1,0,NULL,'(810) 529-9427',NULL,'8105299427',2),
+ (127,187,1,1,0,NULL,'344-6848',NULL,'3446848',1),
+ (128,187,1,0,0,NULL,'282-5921',NULL,'2825921',2),
+ (129,112,1,1,0,NULL,'(359) 861-5146',NULL,'3598615146',1),
+ (130,112,1,0,0,NULL,'(331) 840-3846',NULL,'3318403846',1),
+ (131,198,1,1,0,NULL,'649-7056',NULL,'6497056',2),
+ (132,198,1,0,0,NULL,'355-6048',NULL,'3556048',2),
+ (133,196,1,1,0,NULL,'(816) 302-6487',NULL,'8163026487',2),
+ (134,196,1,0,0,NULL,'263-6330',NULL,'2636330',1),
+ (135,151,1,1,0,NULL,'(628) 382-1932',NULL,'6283821932',2),
+ (136,151,1,0,0,NULL,'508-1410',NULL,'5081410',2),
+ (137,106,1,1,0,NULL,'(702) 360-4503',NULL,'7023604503',2),
+ (138,106,1,0,0,NULL,'(449) 717-3937',NULL,'4497173937',1),
+ (139,45,1,1,0,NULL,'(438) 344-7110',NULL,'4383447110',2),
+ (140,137,1,1,0,NULL,'(869) 754-1264',NULL,'8697541264',2),
+ (141,137,1,0,0,NULL,'726-4449',NULL,'7264449',2),
+ (142,145,1,1,0,NULL,'(875) 541-8563',NULL,'8755418563',1),
+ (143,92,1,1,0,NULL,'730-3859',NULL,'7303859',2),
+ (144,92,1,0,0,NULL,'874-2521',NULL,'8742521',2),
+ (145,161,1,1,0,NULL,'248-3399',NULL,'2483399',2),
+ (146,160,1,1,0,NULL,'(302) 633-4648',NULL,'3026334648',1),
+ (147,160,1,0,0,NULL,'316-7107',NULL,'3167107',1),
+ (148,168,1,1,0,NULL,'470-7329',NULL,'4707329',1),
+ (149,101,1,1,0,NULL,'653-1218',NULL,'6531218',1),
+ (150,46,1,1,0,NULL,'(405) 577-4146',NULL,'4055774146',2),
+ (151,22,1,1,0,NULL,'730-3580',NULL,'7303580',2),
+ (152,177,1,1,0,NULL,'(636) 424-8033',NULL,'6364248033',1),
+ (153,177,1,0,0,NULL,'305-9079',NULL,'3059079',2),
+ (154,31,1,1,0,NULL,'(410) 239-4812',NULL,'4102394812',1),
+ (155,93,1,1,0,NULL,'(772) 745-3128',NULL,'7727453128',2),
+ (156,197,1,1,0,NULL,'(307) 595-2871',NULL,'3075952871',1),
+ (157,144,1,1,0,NULL,'(798) 645-5347',NULL,'7986455347',2),
+ (158,159,1,1,0,NULL,'(808) 423-9146',NULL,'8084239146',1),
+ (159,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1),
+ (160,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1),
+ (161,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1);
 /*!40000 ALTER TABLE `civicrm_phone` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -7026,7 +7033,7 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_print_label` WRITE;
 /*!40000 ALTER TABLE `civicrm_print_label` DISABLE KEYS */;
 INSERT INTO `civicrm_print_label` (`id`, `title`, `name`, `description`, `label_format_name`, `label_type_id`, `data`, `is_default`, `is_active`, `is_reserved`, `created_id`) VALUES
- (1,'Annual Conference Hanging Badge (Avery 5395)','Annual_Conference_Hanging_Badge','For our annual conference','Avery 5395',1,'{\"title\":\"Annual Conference Hanging Badge (Avery 5395)\",\"label_format_name\":\"Avery 5395\",\"description\":\"For our annual conference\",\"token\":{\"1\":\"{event.title}\",\"2\":\"{contact.display_name}\",\"3\":\"{contact.current_employer}\",\"4\":\"{event.start_date}\"},\"font_name\":{\"1\":\"dejavusans\",\"2\":\"dejavusans\",\"3\":\"dejavusans\",\"4\":\"dejavusans\"},\"font_size\":{\"1\":\"9\",\"2\":\"20\",\"3\":\"15\",\"4\":\"9\"},\"font_style\":{\"1\":\"\",\"2\":\"\",\"3\":\"\",\"4\":\"\"},\"text_alignment\":{\"1\":\"L\",\"2\":\"C\",\"3\":\"C\",\"4\":\"R\"},\"barcode_type\":\"barcode\",\"barcode_alignment\":\"R\",\"image_1\":\"\",\"image_2\":\"\",\"is_default\":\"1\",\"is_active\":\"1\",\"is_reserved\":\"1\",\"_qf_default\":\"Layout:next\",\"_qf_Layout_refresh\":\"Save and Preview\"}',1,1,1,NULL);
+ (1,'Annual Conference Hanging Badge (Avery 5395)','Annual_Conference_Hanging_Badge','For our annual conference','Avery 5395',1,'{\"title\":\"Annual Conference Hanging Badge (Avery 5395)\",\"label_format_name\":\"Avery 5395\",\"description\":\"For our annual conference\",\"token\":{\"1\":\"{event.title}\",\"2\":\"{contact.display_name}\",\"3\":\"{contact.current_employer}\",\"4\":\"{event.start_date|crmDate:\"%B %E%f\"}\"},\"font_name\":{\"1\":\"dejavusans\",\"2\":\"dejavusans\",\"3\":\"dejavusans\",\"4\":\"dejavusans\"},\"font_size\":{\"1\":\"9\",\"2\":\"20\",\"3\":\"15\",\"4\":\"9\"},\"font_style\":{\"1\":\"\",\"2\":\"\",\"3\":\"\",\"4\":\"\"},\"text_alignment\":{\"1\":\"L\",\"2\":\"C\",\"3\":\"C\",\"4\":\"R\"},\"barcode_type\":\"barcode\",\"barcode_alignment\":\"R\",\"image_1\":\"\",\"image_2\":\"\",\"is_default\":\"1\",\"is_active\":\"1\",\"is_reserved\":\"1\",\"_qf_default\":\"Layout:next\",\"_qf_Layout_refresh\":\"Save and Preview\"}',1,1,1,NULL);
 /*!40000 ALTER TABLE `civicrm_print_label` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -7066,221 +7073,223 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_relationship` WRITE;
 /*!40000 ALTER TABLE `civicrm_relationship` DISABLE KEYS */;
 INSERT INTO `civicrm_relationship` (`id`, `contact_id_a`, `contact_id_b`, `relationship_type_id`, `start_date`, `end_date`, `is_active`, `description`, `is_permission_a_b`, `is_permission_b_a`, `case_id`) VALUES
- (1,72,145,1,NULL,NULL,1,NULL,0,0,NULL),
- (2,18,145,1,NULL,NULL,1,NULL,0,0,NULL),
- (3,72,161,1,NULL,NULL,1,NULL,0,0,NULL),
- (4,18,161,1,NULL,NULL,1,NULL,0,0,NULL),
- (5,18,72,4,NULL,NULL,1,NULL,0,0,NULL),
- (6,161,26,8,NULL,NULL,1,NULL,0,0,NULL),
- (7,72,26,8,NULL,NULL,1,NULL,0,0,NULL),
- (8,18,26,8,NULL,NULL,1,NULL,0,0,NULL),
- (9,145,26,7,NULL,NULL,1,NULL,0,0,NULL),
- (10,161,145,2,NULL,NULL,1,NULL,0,0,NULL),
- (11,95,101,1,NULL,NULL,1,NULL,0,0,NULL),
- (12,124,101,1,NULL,NULL,1,NULL,0,0,NULL),
- (13,95,192,1,NULL,NULL,1,NULL,0,0,NULL),
- (14,124,192,1,NULL,NULL,1,NULL,0,0,NULL),
- (15,124,95,4,NULL,NULL,1,NULL,0,0,NULL),
- (16,192,135,8,NULL,NULL,1,NULL,0,0,NULL),
- (17,95,135,8,NULL,NULL,1,NULL,0,0,NULL),
- (18,124,135,8,NULL,NULL,1,NULL,0,0,NULL),
- (19,101,135,7,NULL,NULL,1,NULL,0,0,NULL),
- (20,192,101,2,NULL,NULL,1,NULL,0,0,NULL),
- (21,62,96,1,NULL,NULL,1,NULL,0,0,NULL),
- (22,148,96,1,NULL,NULL,1,NULL,0,0,NULL),
- (23,62,79,1,NULL,NULL,1,NULL,0,0,NULL),
- (24,148,79,1,NULL,NULL,1,NULL,0,0,NULL),
- (25,148,62,4,NULL,NULL,1,NULL,0,0,NULL),
- (26,79,28,8,NULL,NULL,1,NULL,0,0,NULL),
- (27,62,28,8,NULL,NULL,1,NULL,0,0,NULL),
- (28,148,28,8,NULL,NULL,1,NULL,0,0,NULL),
- (29,96,28,7,NULL,NULL,0,NULL,0,0,NULL),
- (30,79,96,2,NULL,NULL,0,NULL,0,0,NULL),
- (31,16,3,1,NULL,NULL,1,NULL,0,0,NULL),
- (32,122,3,1,NULL,NULL,1,NULL,0,0,NULL),
- (33,16,150,1,NULL,NULL,1,NULL,0,0,NULL),
- (34,122,150,1,NULL,NULL,1,NULL,0,0,NULL),
- (35,122,16,4,NULL,NULL,1,NULL,0,0,NULL),
- (36,150,7,8,NULL,NULL,1,NULL,0,0,NULL),
- (37,16,7,8,NULL,NULL,1,NULL,0,0,NULL),
- (38,122,7,8,NULL,NULL,1,NULL,0,0,NULL),
- (39,3,7,7,NULL,NULL,0,NULL,0,0,NULL),
- (40,150,3,2,NULL,NULL,0,NULL,0,0,NULL),
- (41,141,100,1,NULL,NULL,1,NULL,0,0,NULL),
- (42,117,100,1,NULL,NULL,1,NULL,0,0,NULL),
- (43,141,24,1,NULL,NULL,1,NULL,0,0,NULL),
- (44,117,24,1,NULL,NULL,1,NULL,0,0,NULL),
- (45,117,141,4,NULL,NULL,1,NULL,0,0,NULL),
- (46,24,36,8,NULL,NULL,1,NULL,0,0,NULL),
- (47,141,36,8,NULL,NULL,1,NULL,0,0,NULL),
- (48,117,36,8,NULL,NULL,1,NULL,0,0,NULL),
- (49,100,36,7,NULL,NULL,0,NULL,0,0,NULL),
- (50,24,100,2,NULL,NULL,0,NULL,0,0,NULL),
- (51,104,87,1,NULL,NULL,1,NULL,0,0,NULL),
- (52,139,87,1,NULL,NULL,1,NULL,0,0,NULL),
- (53,104,82,1,NULL,NULL,1,NULL,0,0,NULL),
- (54,139,82,1,NULL,NULL,1,NULL,0,0,NULL),
- (55,139,104,4,NULL,NULL,1,NULL,0,0,NULL),
- (56,82,155,8,NULL,NULL,1,NULL,0,0,NULL),
- (57,104,155,8,NULL,NULL,1,NULL,0,0,NULL),
- (58,139,155,8,NULL,NULL,1,NULL,0,0,NULL),
- (59,87,155,7,NULL,NULL,1,NULL,0,0,NULL),
- (60,82,87,2,NULL,NULL,1,NULL,0,0,NULL),
- (61,176,129,1,NULL,NULL,1,NULL,0,0,NULL),
- (62,14,129,1,NULL,NULL,1,NULL,0,0,NULL),
- (63,176,12,1,NULL,NULL,1,NULL,0,0,NULL),
- (64,14,12,1,NULL,NULL,1,NULL,0,0,NULL),
- (65,14,176,4,NULL,NULL,1,NULL,0,0,NULL),
- (66,12,102,8,NULL,NULL,1,NULL,0,0,NULL),
- (67,176,102,8,NULL,NULL,1,NULL,0,0,NULL),
- (68,14,102,8,NULL,NULL,1,NULL,0,0,NULL),
- (69,129,102,7,NULL,NULL,0,NULL,0,0,NULL),
- (70,12,129,2,NULL,NULL,0,NULL,0,0,NULL),
- (71,59,67,1,NULL,NULL,1,NULL,0,0,NULL),
- (72,64,67,1,NULL,NULL,1,NULL,0,0,NULL),
- (73,59,106,1,NULL,NULL,1,NULL,0,0,NULL),
- (74,64,106,1,NULL,NULL,1,NULL,0,0,NULL),
- (75,64,59,4,NULL,NULL,1,NULL,0,0,NULL),
- (76,106,9,8,NULL,NULL,1,NULL,0,0,NULL),
- (77,59,9,8,NULL,NULL,1,NULL,0,0,NULL),
- (78,64,9,8,NULL,NULL,1,NULL,0,0,NULL),
- (79,67,9,7,NULL,NULL,0,NULL,0,0,NULL),
- (80,106,67,2,NULL,NULL,0,NULL,0,0,NULL),
- (81,189,116,1,NULL,NULL,1,NULL,0,0,NULL),
- (82,142,116,1,NULL,NULL,1,NULL,0,0,NULL),
- (83,189,168,1,NULL,NULL,1,NULL,0,0,NULL),
- (84,142,168,1,NULL,NULL,1,NULL,0,0,NULL),
- (85,142,189,4,NULL,NULL,1,NULL,0,0,NULL),
- (86,168,130,8,NULL,NULL,1,NULL,0,0,NULL),
- (87,189,130,8,NULL,NULL,1,NULL,0,0,NULL),
- (88,142,130,8,NULL,NULL,1,NULL,0,0,NULL),
- (89,116,130,7,NULL,NULL,0,NULL,0,0,NULL),
- (90,168,116,2,NULL,NULL,0,NULL,0,0,NULL),
- (91,105,140,1,NULL,NULL,1,NULL,0,0,NULL),
- (92,118,140,1,NULL,NULL,1,NULL,0,0,NULL),
- (93,105,47,1,NULL,NULL,1,NULL,0,0,NULL),
- (94,118,47,1,NULL,NULL,1,NULL,0,0,NULL),
- (95,118,105,4,NULL,NULL,1,NULL,0,0,NULL),
- (96,47,144,8,NULL,NULL,1,NULL,0,0,NULL),
- (97,105,144,8,NULL,NULL,1,NULL,0,0,NULL),
- (98,118,144,8,NULL,NULL,1,NULL,0,0,NULL),
- (99,140,144,7,NULL,NULL,1,NULL,0,0,NULL),
- (100,47,140,2,NULL,NULL,1,NULL,0,0,NULL),
- (101,51,113,1,NULL,NULL,1,NULL,0,0,NULL),
- (102,22,113,1,NULL,NULL,1,NULL,0,0,NULL),
- (103,51,200,1,NULL,NULL,1,NULL,0,0,NULL),
- (104,22,200,1,NULL,NULL,1,NULL,0,0,NULL),
- (105,22,51,4,NULL,NULL,1,NULL,0,0,NULL),
- (106,200,29,8,NULL,NULL,1,NULL,0,0,NULL),
- (107,51,29,8,NULL,NULL,1,NULL,0,0,NULL),
- (108,22,29,8,NULL,NULL,1,NULL,0,0,NULL),
- (109,113,29,7,NULL,NULL,1,NULL,0,0,NULL),
- (110,200,113,2,NULL,NULL,1,NULL,0,0,NULL),
- (111,108,160,1,NULL,NULL,1,NULL,0,0,NULL),
- (112,178,160,1,NULL,NULL,1,NULL,0,0,NULL),
- (113,108,132,1,NULL,NULL,1,NULL,0,0,NULL),
- (114,178,132,1,NULL,NULL,1,NULL,0,0,NULL),
- (115,178,108,4,NULL,NULL,1,NULL,0,0,NULL),
- (116,132,48,8,NULL,NULL,1,NULL,0,0,NULL),
- (117,108,48,8,NULL,NULL,1,NULL,0,0,NULL),
- (118,178,48,8,NULL,NULL,1,NULL,0,0,NULL),
- (119,160,48,7,NULL,NULL,1,NULL,0,0,NULL),
- (120,132,160,2,NULL,NULL,1,NULL,0,0,NULL),
- (121,174,186,1,NULL,NULL,1,NULL,0,0,NULL),
- (122,92,186,1,NULL,NULL,1,NULL,0,0,NULL),
- (123,174,93,1,NULL,NULL,1,NULL,0,0,NULL),
- (124,92,93,1,NULL,NULL,1,NULL,0,0,NULL),
- (125,92,174,4,NULL,NULL,1,NULL,0,0,NULL),
- (126,93,15,8,NULL,NULL,1,NULL,0,0,NULL),
- (127,174,15,8,NULL,NULL,1,NULL,0,0,NULL),
- (128,92,15,8,NULL,NULL,1,NULL,0,0,NULL),
- (129,186,15,7,NULL,NULL,1,NULL,0,0,NULL),
- (130,93,186,2,NULL,NULL,1,NULL,0,0,NULL),
- (131,68,190,1,NULL,NULL,1,NULL,0,0,NULL),
- (132,40,190,1,NULL,NULL,1,NULL,0,0,NULL),
- (133,68,147,1,NULL,NULL,1,NULL,0,0,NULL),
- (134,40,147,1,NULL,NULL,1,NULL,0,0,NULL),
- (135,40,68,4,NULL,NULL,1,NULL,0,0,NULL),
- (136,147,183,8,NULL,NULL,1,NULL,0,0,NULL),
- (137,68,183,8,NULL,NULL,1,NULL,0,0,NULL),
- (138,40,183,8,NULL,NULL,1,NULL,0,0,NULL),
- (139,190,183,7,NULL,NULL,0,NULL,0,0,NULL),
- (140,147,190,2,NULL,NULL,0,NULL,0,0,NULL),
- (141,75,180,1,NULL,NULL,1,NULL,0,0,NULL),
- (142,156,180,1,NULL,NULL,1,NULL,0,0,NULL),
- (143,75,136,1,NULL,NULL,1,NULL,0,0,NULL),
- (144,156,136,1,NULL,NULL,1,NULL,0,0,NULL),
- (145,156,75,4,NULL,NULL,1,NULL,0,0,NULL),
- (146,136,63,8,NULL,NULL,1,NULL,0,0,NULL),
- (147,75,63,8,NULL,NULL,1,NULL,0,0,NULL),
- (148,156,63,8,NULL,NULL,1,NULL,0,0,NULL),
- (149,180,63,7,NULL,NULL,1,NULL,0,0,NULL),
- (150,136,180,2,NULL,NULL,1,NULL,0,0,NULL),
- (151,45,46,1,NULL,NULL,1,NULL,0,0,NULL),
- (152,23,46,1,NULL,NULL,1,NULL,0,0,NULL),
- (153,45,123,1,NULL,NULL,1,NULL,0,0,NULL),
- (154,23,123,1,NULL,NULL,1,NULL,0,0,NULL),
- (155,23,45,4,NULL,NULL,1,NULL,0,0,NULL),
- (156,123,151,8,NULL,NULL,1,NULL,0,0,NULL),
- (157,45,151,8,NULL,NULL,1,NULL,0,0,NULL),
- (158,23,151,8,NULL,NULL,1,NULL,0,0,NULL),
- (159,46,151,7,NULL,NULL,1,NULL,0,0,NULL),
- (160,123,46,2,NULL,NULL,1,NULL,0,0,NULL),
- (161,143,38,1,NULL,NULL,1,NULL,0,0,NULL),
- (162,5,38,1,NULL,NULL,1,NULL,0,0,NULL),
- (163,143,98,1,NULL,NULL,1,NULL,0,0,NULL),
- (164,5,98,1,NULL,NULL,1,NULL,0,0,NULL),
- (165,5,143,4,NULL,NULL,1,NULL,0,0,NULL),
- (166,98,127,8,NULL,NULL,1,NULL,0,0,NULL),
- (167,143,127,8,NULL,NULL,1,NULL,0,0,NULL),
- (168,5,127,8,NULL,NULL,1,NULL,0,0,NULL),
- (169,38,127,7,NULL,NULL,1,NULL,0,0,NULL),
- (170,98,38,2,NULL,NULL,1,NULL,0,0,NULL),
- (171,194,163,1,NULL,NULL,1,NULL,0,0,NULL),
- (172,86,163,1,NULL,NULL,1,NULL,0,0,NULL),
- (173,194,196,1,NULL,NULL,1,NULL,0,0,NULL),
- (174,86,196,1,NULL,NULL,1,NULL,0,0,NULL),
- (175,86,194,4,NULL,NULL,1,NULL,0,0,NULL),
- (176,196,8,8,NULL,NULL,1,NULL,0,0,NULL),
- (177,194,8,8,NULL,NULL,1,NULL,0,0,NULL),
- (178,86,8,8,NULL,NULL,1,NULL,0,0,NULL),
- (179,163,8,7,NULL,NULL,1,NULL,0,0,NULL),
- (180,196,163,2,NULL,NULL,1,NULL,0,0,NULL),
- (181,158,83,1,NULL,NULL,1,NULL,0,0,NULL),
- (182,77,83,1,NULL,NULL,1,NULL,0,0,NULL),
- (183,158,89,1,NULL,NULL,1,NULL,0,0,NULL),
- (184,77,89,1,NULL,NULL,1,NULL,0,0,NULL),
- (185,77,158,4,NULL,NULL,1,NULL,0,0,NULL),
- (186,89,66,8,NULL,NULL,1,NULL,0,0,NULL),
- (187,158,66,8,NULL,NULL,1,NULL,0,0,NULL),
- (188,77,66,8,NULL,NULL,1,NULL,0,0,NULL),
- (189,83,66,7,NULL,NULL,1,NULL,0,0,NULL),
- (190,89,83,2,NULL,NULL,1,NULL,0,0,NULL),
- (191,85,84,1,NULL,NULL,1,NULL,0,0,NULL),
- (192,43,84,1,NULL,NULL,1,NULL,0,0,NULL),
- (193,85,44,1,NULL,NULL,1,NULL,0,0,NULL),
- (194,43,44,1,NULL,NULL,1,NULL,0,0,NULL),
- (195,43,85,4,NULL,NULL,1,NULL,0,0,NULL),
- (196,44,74,8,NULL,NULL,1,NULL,0,0,NULL),
- (197,85,74,8,NULL,NULL,1,NULL,0,0,NULL),
- (198,43,74,8,NULL,NULL,1,NULL,0,0,NULL),
- (199,84,74,7,NULL,NULL,0,NULL,0,0,NULL),
- (200,44,84,2,NULL,NULL,0,NULL,0,0,NULL),
- (201,116,31,5,NULL,NULL,1,NULL,0,0,NULL),
- (202,200,57,5,NULL,NULL,1,NULL,0,0,NULL),
- (203,54,70,5,NULL,NULL,1,NULL,0,0,NULL),
- (204,72,73,5,NULL,NULL,1,NULL,0,0,NULL),
- (205,190,76,5,NULL,NULL,1,NULL,0,0,NULL),
- (206,59,88,5,NULL,NULL,1,NULL,0,0,NULL),
- (207,38,97,5,NULL,NULL,1,NULL,0,0,NULL),
- (208,106,107,5,NULL,NULL,1,NULL,0,0,NULL),
- (209,187,109,5,NULL,NULL,1,NULL,0,0,NULL),
- (210,18,110,5,NULL,NULL,1,NULL,0,0,NULL),
- (211,104,120,5,NULL,NULL,1,NULL,0,0,NULL),
- (212,6,167,5,NULL,NULL,1,NULL,0,0,NULL),
- (213,86,179,5,NULL,NULL,1,NULL,0,0,NULL),
- (214,39,188,5,NULL,NULL,1,NULL,0,0,NULL),
- (215,87,191,5,NULL,NULL,1,NULL,0,0,NULL);
+ (1,135,10,1,NULL,NULL,1,NULL,0,0,NULL),
+ (2,80,10,1,NULL,NULL,1,NULL,0,0,NULL),
+ (3,135,120,1,NULL,NULL,1,NULL,0,0,NULL),
+ (4,80,120,1,NULL,NULL,1,NULL,0,0,NULL),
+ (5,80,135,4,NULL,NULL,1,NULL,0,0,NULL),
+ (6,120,133,8,NULL,NULL,1,NULL,0,0,NULL),
+ (7,135,133,8,NULL,NULL,1,NULL,0,0,NULL),
+ (8,80,133,8,NULL,NULL,1,NULL,0,0,NULL),
+ (9,10,133,7,NULL,NULL,1,NULL,0,0,NULL),
+ (10,120,10,2,NULL,NULL,1,NULL,0,0,NULL),
+ (11,118,154,1,NULL,NULL,1,NULL,0,0,NULL),
+ (12,75,154,1,NULL,NULL,1,NULL,0,0,NULL),
+ (13,118,62,1,NULL,NULL,1,NULL,0,0,NULL),
+ (14,75,62,1,NULL,NULL,1,NULL,0,0,NULL),
+ (15,75,118,4,NULL,NULL,1,NULL,0,0,NULL),
+ (16,62,124,8,NULL,NULL,1,NULL,0,0,NULL),
+ (17,118,124,8,NULL,NULL,1,NULL,0,0,NULL),
+ (18,75,124,8,NULL,NULL,1,NULL,0,0,NULL),
+ (19,154,124,7,NULL,NULL,0,NULL,0,0,NULL),
+ (20,62,154,2,NULL,NULL,0,NULL,0,0,NULL),
+ (21,127,76,1,NULL,NULL,1,NULL,0,0,NULL),
+ (22,65,76,1,NULL,NULL,1,NULL,0,0,NULL),
+ (23,127,126,1,NULL,NULL,1,NULL,0,0,NULL),
+ (24,65,126,1,NULL,NULL,1,NULL,0,0,NULL),
+ (25,65,127,4,NULL,NULL,1,NULL,0,0,NULL),
+ (26,126,96,8,NULL,NULL,1,NULL,0,0,NULL),
+ (27,127,96,8,NULL,NULL,1,NULL,0,0,NULL),
+ (28,65,96,8,NULL,NULL,1,NULL,0,0,NULL),
+ (29,76,96,7,NULL,NULL,0,NULL,0,0,NULL),
+ (30,126,76,2,NULL,NULL,0,NULL,0,0,NULL),
+ (31,110,51,1,NULL,NULL,1,NULL,0,0,NULL),
+ (32,74,51,1,NULL,NULL,1,NULL,0,0,NULL),
+ (33,110,115,1,NULL,NULL,1,NULL,0,0,NULL),
+ (34,74,115,1,NULL,NULL,1,NULL,0,0,NULL),
+ (35,74,110,4,NULL,NULL,1,NULL,0,0,NULL),
+ (36,115,184,8,NULL,NULL,1,NULL,0,0,NULL),
+ (37,110,184,8,NULL,NULL,1,NULL,0,0,NULL),
+ (38,74,184,8,NULL,NULL,1,NULL,0,0,NULL),
+ (39,51,184,7,NULL,NULL,0,NULL,0,0,NULL),
+ (40,115,51,2,NULL,NULL,0,NULL,0,0,NULL),
+ (41,170,71,1,NULL,NULL,1,NULL,0,0,NULL),
+ (42,50,71,1,NULL,NULL,1,NULL,0,0,NULL),
+ (43,170,143,1,NULL,NULL,1,NULL,0,0,NULL),
+ (44,50,143,1,NULL,NULL,1,NULL,0,0,NULL),
+ (45,50,170,4,NULL,NULL,1,NULL,0,0,NULL),
+ (46,143,192,8,NULL,NULL,1,NULL,0,0,NULL),
+ (47,170,192,8,NULL,NULL,1,NULL,0,0,NULL),
+ (48,50,192,8,NULL,NULL,1,NULL,0,0,NULL),
+ (49,71,192,7,NULL,NULL,1,NULL,0,0,NULL),
+ (50,143,71,2,NULL,NULL,1,NULL,0,0,NULL),
+ (51,64,97,1,NULL,NULL,1,NULL,0,0,NULL),
+ (52,186,97,1,NULL,NULL,1,NULL,0,0,NULL),
+ (53,64,60,1,NULL,NULL,1,NULL,0,0,NULL),
+ (54,186,60,1,NULL,NULL,1,NULL,0,0,NULL),
+ (55,186,64,4,NULL,NULL,1,NULL,0,0,NULL),
+ (56,60,193,8,NULL,NULL,1,NULL,0,0,NULL),
+ (57,64,193,8,NULL,NULL,1,NULL,0,0,NULL),
+ (58,186,193,8,NULL,NULL,1,NULL,0,0,NULL),
+ (59,97,193,7,NULL,NULL,1,NULL,0,0,NULL),
+ (60,60,97,2,NULL,NULL,1,NULL,0,0,NULL),
+ (61,5,150,1,NULL,NULL,1,NULL,0,0,NULL),
+ (62,180,150,1,NULL,NULL,1,NULL,0,0,NULL),
+ (63,5,185,1,NULL,NULL,1,NULL,0,0,NULL),
+ (64,180,185,1,NULL,NULL,1,NULL,0,0,NULL),
+ (65,180,5,4,NULL,NULL,1,NULL,0,0,NULL),
+ (66,185,189,8,NULL,NULL,1,NULL,0,0,NULL),
+ (67,5,189,8,NULL,NULL,1,NULL,0,0,NULL),
+ (68,180,189,8,NULL,NULL,1,NULL,0,0,NULL),
+ (69,150,189,7,NULL,NULL,1,NULL,0,0,NULL),
+ (70,185,150,2,NULL,NULL,1,NULL,0,0,NULL),
+ (71,147,201,1,NULL,NULL,1,NULL,0,0,NULL),
+ (72,17,201,1,NULL,NULL,1,NULL,0,0,NULL),
+ (73,147,113,1,NULL,NULL,1,NULL,0,0,NULL),
+ (74,17,113,1,NULL,NULL,1,NULL,0,0,NULL),
+ (75,17,147,4,NULL,NULL,1,NULL,0,0,NULL),
+ (76,113,33,8,NULL,NULL,1,NULL,0,0,NULL),
+ (77,147,33,8,NULL,NULL,1,NULL,0,0,NULL),
+ (78,17,33,8,NULL,NULL,1,NULL,0,0,NULL),
+ (79,201,33,7,NULL,NULL,1,NULL,0,0,NULL),
+ (80,113,201,2,NULL,NULL,1,NULL,0,0,NULL),
+ (81,56,9,1,NULL,NULL,1,NULL,0,0,NULL),
+ (82,19,9,1,NULL,NULL,1,NULL,0,0,NULL),
+ (83,56,119,1,NULL,NULL,1,NULL,0,0,NULL),
+ (84,19,119,1,NULL,NULL,1,NULL,0,0,NULL),
+ (85,19,56,4,NULL,NULL,1,NULL,0,0,NULL),
+ (86,119,66,8,NULL,NULL,1,NULL,0,0,NULL),
+ (87,56,66,8,NULL,NULL,1,NULL,0,0,NULL),
+ (88,19,66,8,NULL,NULL,1,NULL,0,0,NULL),
+ (89,9,66,7,NULL,NULL,1,NULL,0,0,NULL),
+ (90,119,9,2,NULL,NULL,1,NULL,0,0,NULL),
+ (91,40,178,1,NULL,NULL,1,NULL,0,0,NULL),
+ (92,84,178,1,NULL,NULL,1,NULL,0,0,NULL),
+ (93,40,52,1,NULL,NULL,1,NULL,0,0,NULL),
+ (94,84,52,1,NULL,NULL,1,NULL,0,0,NULL),
+ (95,84,40,4,NULL,NULL,1,NULL,0,0,NULL),
+ (96,52,158,8,NULL,NULL,1,NULL,0,0,NULL),
+ (97,40,158,8,NULL,NULL,1,NULL,0,0,NULL),
+ (98,84,158,8,NULL,NULL,1,NULL,0,0,NULL),
+ (99,178,158,7,NULL,NULL,1,NULL,0,0,NULL),
+ (100,52,178,2,NULL,NULL,1,NULL,0,0,NULL),
+ (101,82,117,1,NULL,NULL,1,NULL,0,0,NULL),
+ (102,131,117,1,NULL,NULL,1,NULL,0,0,NULL),
+ (103,82,140,1,NULL,NULL,1,NULL,0,0,NULL),
+ (104,131,140,1,NULL,NULL,1,NULL,0,0,NULL),
+ (105,131,82,4,NULL,NULL,1,NULL,0,0,NULL),
+ (106,140,77,8,NULL,NULL,1,NULL,0,0,NULL),
+ (107,82,77,8,NULL,NULL,1,NULL,0,0,NULL),
+ (108,131,77,8,NULL,NULL,1,NULL,0,0,NULL),
+ (109,117,77,7,NULL,NULL,1,NULL,0,0,NULL),
+ (110,140,117,2,NULL,NULL,1,NULL,0,0,NULL),
+ (111,21,89,1,NULL,NULL,1,NULL,0,0,NULL),
+ (112,155,89,1,NULL,NULL,1,NULL,0,0,NULL),
+ (113,21,181,1,NULL,NULL,1,NULL,0,0,NULL),
+ (114,155,181,1,NULL,NULL,1,NULL,0,0,NULL),
+ (115,155,21,4,NULL,NULL,1,NULL,0,0,NULL),
+ (116,181,34,8,NULL,NULL,1,NULL,0,0,NULL),
+ (117,21,34,8,NULL,NULL,1,NULL,0,0,NULL),
+ (118,155,34,8,NULL,NULL,1,NULL,0,0,NULL),
+ (119,89,34,7,NULL,NULL,1,NULL,0,0,NULL),
+ (120,181,89,2,NULL,NULL,1,NULL,0,0,NULL),
+ (121,29,164,1,NULL,NULL,1,NULL,0,0,NULL),
+ (122,187,164,1,NULL,NULL,1,NULL,0,0,NULL),
+ (123,29,11,1,NULL,NULL,1,NULL,0,0,NULL),
+ (124,187,11,1,NULL,NULL,1,NULL,0,0,NULL),
+ (125,187,29,4,NULL,NULL,1,NULL,0,0,NULL),
+ (126,11,20,8,NULL,NULL,1,NULL,0,0,NULL),
+ (127,29,20,8,NULL,NULL,1,NULL,0,0,NULL),
+ (128,187,20,8,NULL,NULL,1,NULL,0,0,NULL),
+ (129,164,20,7,NULL,NULL,1,NULL,0,0,NULL),
+ (130,11,164,2,NULL,NULL,1,NULL,0,0,NULL),
+ (131,198,176,1,NULL,NULL,1,NULL,0,0,NULL),
+ (132,16,176,1,NULL,NULL,1,NULL,0,0,NULL),
+ (133,198,112,1,NULL,NULL,1,NULL,0,0,NULL),
+ (134,16,112,1,NULL,NULL,1,NULL,0,0,NULL),
+ (135,16,198,4,NULL,NULL,1,NULL,0,0,NULL),
+ (136,112,148,8,NULL,NULL,1,NULL,0,0,NULL),
+ (137,198,148,8,NULL,NULL,1,NULL,0,0,NULL),
+ (138,16,148,8,NULL,NULL,1,NULL,0,0,NULL),
+ (139,176,148,7,NULL,NULL,1,NULL,0,0,NULL),
+ (140,112,176,2,NULL,NULL,1,NULL,0,0,NULL),
+ (141,151,196,1,NULL,NULL,1,NULL,0,0,NULL),
+ (142,106,196,1,NULL,NULL,1,NULL,0,0,NULL),
+ (143,151,153,1,NULL,NULL,1,NULL,0,0,NULL),
+ (144,106,153,1,NULL,NULL,1,NULL,0,0,NULL),
+ (145,106,151,4,NULL,NULL,1,NULL,0,0,NULL),
+ (146,153,79,8,NULL,NULL,1,NULL,0,0,NULL),
+ (147,151,79,8,NULL,NULL,1,NULL,0,0,NULL),
+ (148,106,79,8,NULL,NULL,1,NULL,0,0,NULL),
+ (149,196,79,7,NULL,NULL,1,NULL,0,0,NULL),
+ (150,153,196,2,NULL,NULL,1,NULL,0,0,NULL),
+ (151,145,45,1,NULL,NULL,1,NULL,0,0,NULL),
+ (152,59,45,1,NULL,NULL,1,NULL,0,0,NULL),
+ (153,145,137,1,NULL,NULL,1,NULL,0,0,NULL),
+ (154,59,137,1,NULL,NULL,1,NULL,0,0,NULL),
+ (155,59,145,4,NULL,NULL,1,NULL,0,0,NULL),
+ (156,137,162,8,NULL,NULL,1,NULL,0,0,NULL),
+ (157,145,162,8,NULL,NULL,1,NULL,0,0,NULL),
+ (158,59,162,8,NULL,NULL,1,NULL,0,0,NULL),
+ (159,45,162,7,NULL,NULL,0,NULL,0,0,NULL),
+ (160,137,45,2,NULL,NULL,0,NULL,0,0,NULL),
+ (161,92,183,1,NULL,NULL,1,NULL,0,0,NULL),
+ (162,161,183,1,NULL,NULL,1,NULL,0,0,NULL),
+ (163,92,35,1,NULL,NULL,1,NULL,0,0,NULL),
+ (164,161,35,1,NULL,NULL,1,NULL,0,0,NULL),
+ (165,161,92,4,NULL,NULL,1,NULL,0,0,NULL),
+ (166,35,123,8,NULL,NULL,1,NULL,0,0,NULL),
+ (167,92,123,8,NULL,NULL,1,NULL,0,0,NULL),
+ (168,161,123,8,NULL,NULL,1,NULL,0,0,NULL),
+ (169,183,123,7,NULL,NULL,1,NULL,0,0,NULL),
+ (170,35,183,2,NULL,NULL,1,NULL,0,0,NULL),
+ (171,90,160,1,NULL,NULL,1,NULL,0,0,NULL),
+ (172,101,160,1,NULL,NULL,1,NULL,0,0,NULL),
+ (173,90,168,1,NULL,NULL,1,NULL,0,0,NULL),
+ (174,101,168,1,NULL,NULL,1,NULL,0,0,NULL),
+ (175,101,90,4,NULL,NULL,1,NULL,0,0,NULL),
+ (176,168,37,8,NULL,NULL,1,NULL,0,0,NULL),
+ (177,90,37,8,NULL,NULL,1,NULL,0,0,NULL),
+ (178,101,37,8,NULL,NULL,1,NULL,0,0,NULL),
+ (179,160,37,7,NULL,NULL,0,NULL,0,0,NULL),
+ (180,168,160,2,NULL,NULL,0,NULL,0,0,NULL),
+ (181,177,46,1,NULL,NULL,1,NULL,0,0,NULL),
+ (182,31,46,1,NULL,NULL,1,NULL,0,0,NULL),
+ (183,177,22,1,NULL,NULL,1,NULL,0,0,NULL),
+ (184,31,22,1,NULL,NULL,1,NULL,0,0,NULL),
+ (185,31,177,4,NULL,NULL,1,NULL,0,0,NULL),
+ (186,22,91,8,NULL,NULL,1,NULL,0,0,NULL),
+ (187,177,91,8,NULL,NULL,1,NULL,0,0,NULL),
+ (188,31,91,8,NULL,NULL,1,NULL,0,0,NULL),
+ (189,46,91,7,NULL,NULL,0,NULL,0,0,NULL),
+ (190,22,46,2,NULL,NULL,0,NULL,0,0,NULL),
+ (191,144,93,1,NULL,NULL,1,NULL,0,0,NULL),
+ (192,159,93,1,NULL,NULL,1,NULL,0,0,NULL),
+ (193,144,197,1,NULL,NULL,1,NULL,0,0,NULL),
+ (194,159,197,1,NULL,NULL,1,NULL,0,0,NULL),
+ (195,159,144,4,NULL,NULL,1,NULL,0,0,NULL),
+ (196,197,174,8,NULL,NULL,1,NULL,0,0,NULL),
+ (197,144,174,8,NULL,NULL,1,NULL,0,0,NULL),
+ (198,159,174,8,NULL,NULL,1,NULL,0,0,NULL),
+ (199,93,174,7,NULL,NULL,1,NULL,0,0,NULL),
+ (200,197,93,2,NULL,NULL,1,NULL,0,0,NULL),
+ (201,62,14,5,NULL,NULL,1,NULL,0,0,NULL),
+ (202,39,42,5,NULL,NULL,1,NULL,0,0,NULL),
+ (203,26,68,5,NULL,NULL,1,NULL,0,0,NULL),
+ (204,13,78,5,NULL,NULL,1,NULL,0,0,NULL),
+ (205,44,81,5,NULL,NULL,1,NULL,0,0,NULL),
+ (206,110,86,5,NULL,NULL,1,NULL,0,0,NULL),
+ (207,151,87,5,NULL,NULL,1,NULL,0,0,NULL),
+ (208,89,95,5,NULL,NULL,1,NULL,0,0,NULL),
+ (209,35,100,5,NULL,NULL,1,NULL,0,0,NULL),
+ (210,17,125,5,NULL,NULL,1,NULL,0,0,NULL),
+ (211,67,129,5,NULL,NULL,1,NULL,0,0,NULL),
+ (212,56,141,5,NULL,NULL,1,NULL,0,0,NULL),
+ (213,195,146,5,NULL,NULL,1,NULL,0,0,NULL),
+ (214,50,166,5,NULL,NULL,1,NULL,0,0,NULL),
+ (215,7,167,5,NULL,NULL,1,NULL,0,0,NULL),
+ (216,58,169,5,NULL,NULL,1,NULL,0,0,NULL),
+ (217,113,182,5,NULL,NULL,1,NULL,0,0,NULL);
 /*!40000 ALTER TABLE `civicrm_relationship` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -7291,436 +7300,440 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_relationship_cache` WRITE;
 /*!40000 ALTER TABLE `civicrm_relationship_cache` DISABLE KEYS */;
 INSERT INTO `civicrm_relationship_cache` (`id`, `relationship_id`, `relationship_type_id`, `orientation`, `near_contact_id`, `near_relation`, `far_contact_id`, `far_relation`, `is_active`, `start_date`, `end_date`) VALUES
- (1,1,1,'a_b',72,'Child of',145,'Parent of',1,NULL,NULL),
- (2,1,1,'b_a',145,'Parent of',72,'Child of',1,NULL,NULL),
- (3,2,1,'a_b',18,'Child of',145,'Parent of',1,NULL,NULL),
- (4,2,1,'b_a',145,'Parent of',18,'Child of',1,NULL,NULL),
- (5,3,1,'a_b',72,'Child of',161,'Parent of',1,NULL,NULL),
- (6,3,1,'b_a',161,'Parent of',72,'Child of',1,NULL,NULL),
- (7,4,1,'a_b',18,'Child of',161,'Parent of',1,NULL,NULL),
- (8,4,1,'b_a',161,'Parent of',18,'Child of',1,NULL,NULL),
- (9,5,4,'a_b',18,'Sibling of',72,'Sibling of',1,NULL,NULL),
- (10,5,4,'b_a',72,'Sibling of',18,'Sibling of',1,NULL,NULL),
- (11,6,8,'a_b',161,'Household Member of',26,'Household Member is',1,NULL,NULL),
- (12,6,8,'b_a',26,'Household Member is',161,'Household Member of',1,NULL,NULL),
- (13,7,8,'a_b',72,'Household Member of',26,'Household Member is',1,NULL,NULL),
- (14,7,8,'b_a',26,'Household Member is',72,'Household Member of',1,NULL,NULL),
- (15,8,8,'a_b',18,'Household Member of',26,'Household Member is',1,NULL,NULL),
- (16,8,8,'b_a',26,'Household Member is',18,'Household Member of',1,NULL,NULL),
- (17,9,7,'a_b',145,'Head of Household for',26,'Head of Household is',1,NULL,NULL),
- (18,9,7,'b_a',26,'Head of Household is',145,'Head of Household for',1,NULL,NULL),
- (19,10,2,'a_b',161,'Spouse of',145,'Spouse of',1,NULL,NULL),
- (20,10,2,'b_a',145,'Spouse of',161,'Spouse of',1,NULL,NULL),
- (21,11,1,'a_b',95,'Child of',101,'Parent of',1,NULL,NULL),
- (22,11,1,'b_a',101,'Parent of',95,'Child of',1,NULL,NULL),
- (23,12,1,'a_b',124,'Child of',101,'Parent of',1,NULL,NULL),
- (24,12,1,'b_a',101,'Parent of',124,'Child of',1,NULL,NULL),
- (25,13,1,'a_b',95,'Child of',192,'Parent of',1,NULL,NULL),
- (26,13,1,'b_a',192,'Parent of',95,'Child of',1,NULL,NULL),
- (27,14,1,'a_b',124,'Child of',192,'Parent of',1,NULL,NULL),
- (28,14,1,'b_a',192,'Parent of',124,'Child of',1,NULL,NULL),
- (29,15,4,'a_b',124,'Sibling of',95,'Sibling of',1,NULL,NULL),
- (30,15,4,'b_a',95,'Sibling of',124,'Sibling of',1,NULL,NULL),
- (31,16,8,'a_b',192,'Household Member of',135,'Household Member is',1,NULL,NULL),
- (32,16,8,'b_a',135,'Household Member is',192,'Household Member of',1,NULL,NULL),
- (33,17,8,'a_b',95,'Household Member of',135,'Household Member is',1,NULL,NULL),
- (34,17,8,'b_a',135,'Household Member is',95,'Household Member of',1,NULL,NULL),
- (35,18,8,'a_b',124,'Household Member of',135,'Household Member is',1,NULL,NULL),
- (36,18,8,'b_a',135,'Household Member is',124,'Household Member of',1,NULL,NULL),
- (37,19,7,'a_b',101,'Head of Household for',135,'Head of Household is',1,NULL,NULL),
- (38,19,7,'b_a',135,'Head of Household is',101,'Head of Household for',1,NULL,NULL),
- (39,20,2,'a_b',192,'Spouse of',101,'Spouse of',1,NULL,NULL),
- (40,20,2,'b_a',101,'Spouse of',192,'Spouse of',1,NULL,NULL),
- (41,21,1,'a_b',62,'Child of',96,'Parent of',1,NULL,NULL),
- (42,21,1,'b_a',96,'Parent of',62,'Child of',1,NULL,NULL),
- (43,22,1,'a_b',148,'Child of',96,'Parent of',1,NULL,NULL),
- (44,22,1,'b_a',96,'Parent of',148,'Child of',1,NULL,NULL),
- (45,23,1,'a_b',62,'Child of',79,'Parent of',1,NULL,NULL),
- (46,23,1,'b_a',79,'Parent of',62,'Child of',1,NULL,NULL),
- (47,24,1,'a_b',148,'Child of',79,'Parent of',1,NULL,NULL),
- (48,24,1,'b_a',79,'Parent of',148,'Child of',1,NULL,NULL),
- (49,25,4,'a_b',148,'Sibling of',62,'Sibling of',1,NULL,NULL),
- (50,25,4,'b_a',62,'Sibling of',148,'Sibling of',1,NULL,NULL),
- (51,26,8,'a_b',79,'Household Member of',28,'Household Member is',1,NULL,NULL),
- (52,26,8,'b_a',28,'Household Member is',79,'Household Member of',1,NULL,NULL),
- (53,27,8,'a_b',62,'Household Member of',28,'Household Member is',1,NULL,NULL),
- (54,27,8,'b_a',28,'Household Member is',62,'Household Member of',1,NULL,NULL),
- (55,28,8,'a_b',148,'Household Member of',28,'Household Member is',1,NULL,NULL),
- (56,28,8,'b_a',28,'Household Member is',148,'Household Member of',1,NULL,NULL),
- (57,29,7,'a_b',96,'Head of Household for',28,'Head of Household is',0,NULL,NULL),
- (58,29,7,'b_a',28,'Head of Household is',96,'Head of Household for',0,NULL,NULL),
- (59,30,2,'a_b',79,'Spouse of',96,'Spouse of',0,NULL,NULL),
- (60,30,2,'b_a',96,'Spouse of',79,'Spouse of',0,NULL,NULL),
- (61,31,1,'a_b',16,'Child of',3,'Parent of',1,NULL,NULL),
- (62,31,1,'b_a',3,'Parent of',16,'Child of',1,NULL,NULL),
- (63,32,1,'a_b',122,'Child of',3,'Parent of',1,NULL,NULL),
- (64,32,1,'b_a',3,'Parent of',122,'Child of',1,NULL,NULL),
- (65,33,1,'a_b',16,'Child of',150,'Parent of',1,NULL,NULL),
- (66,33,1,'b_a',150,'Parent of',16,'Child of',1,NULL,NULL),
- (67,34,1,'a_b',122,'Child of',150,'Parent of',1,NULL,NULL),
- (68,34,1,'b_a',150,'Parent of',122,'Child of',1,NULL,NULL),
- (69,35,4,'a_b',122,'Sibling of',16,'Sibling of',1,NULL,NULL),
- (70,35,4,'b_a',16,'Sibling of',122,'Sibling of',1,NULL,NULL),
- (71,36,8,'a_b',150,'Household Member of',7,'Household Member is',1,NULL,NULL),
- (72,36,8,'b_a',7,'Household Member is',150,'Household Member of',1,NULL,NULL),
- (73,37,8,'a_b',16,'Household Member of',7,'Household Member is',1,NULL,NULL),
- (74,37,8,'b_a',7,'Household Member is',16,'Household Member of',1,NULL,NULL),
- (75,38,8,'a_b',122,'Household Member of',7,'Household Member is',1,NULL,NULL),
- (76,38,8,'b_a',7,'Household Member is',122,'Household Member of',1,NULL,NULL),
- (77,39,7,'a_b',3,'Head of Household for',7,'Head of Household is',0,NULL,NULL),
- (78,39,7,'b_a',7,'Head of Household is',3,'Head of Household for',0,NULL,NULL),
- (79,40,2,'a_b',150,'Spouse of',3,'Spouse of',0,NULL,NULL),
- (80,40,2,'b_a',3,'Spouse of',150,'Spouse of',0,NULL,NULL),
- (81,41,1,'a_b',141,'Child of',100,'Parent of',1,NULL,NULL),
- (82,41,1,'b_a',100,'Parent of',141,'Child of',1,NULL,NULL),
- (83,42,1,'a_b',117,'Child of',100,'Parent of',1,NULL,NULL),
- (84,42,1,'b_a',100,'Parent of',117,'Child of',1,NULL,NULL),
- (85,43,1,'a_b',141,'Child of',24,'Parent of',1,NULL,NULL),
- (86,43,1,'b_a',24,'Parent of',141,'Child of',1,NULL,NULL),
- (87,44,1,'a_b',117,'Child of',24,'Parent of',1,NULL,NULL),
- (88,44,1,'b_a',24,'Parent of',117,'Child of',1,NULL,NULL),
- (89,45,4,'a_b',117,'Sibling of',141,'Sibling of',1,NULL,NULL),
- (90,45,4,'b_a',141,'Sibling of',117,'Sibling of',1,NULL,NULL),
- (91,46,8,'a_b',24,'Household Member of',36,'Household Member is',1,NULL,NULL),
- (92,46,8,'b_a',36,'Household Member is',24,'Household Member of',1,NULL,NULL),
- (93,47,8,'a_b',141,'Household Member of',36,'Household Member is',1,NULL,NULL),
- (94,47,8,'b_a',36,'Household Member is',141,'Household Member of',1,NULL,NULL),
- (95,48,8,'a_b',117,'Household Member of',36,'Household Member is',1,NULL,NULL),
- (96,48,8,'b_a',36,'Household Member is',117,'Household Member of',1,NULL,NULL),
- (97,49,7,'a_b',100,'Head of Household for',36,'Head of Household is',0,NULL,NULL),
- (98,49,7,'b_a',36,'Head of Household is',100,'Head of Household for',0,NULL,NULL),
- (99,50,2,'a_b',24,'Spouse of',100,'Spouse of',0,NULL,NULL),
- (100,50,2,'b_a',100,'Spouse of',24,'Spouse of',0,NULL,NULL),
- (101,51,1,'a_b',104,'Child of',87,'Parent of',1,NULL,NULL),
- (102,51,1,'b_a',87,'Parent of',104,'Child of',1,NULL,NULL),
- (103,52,1,'a_b',139,'Child of',87,'Parent of',1,NULL,NULL),
- (104,52,1,'b_a',87,'Parent of',139,'Child of',1,NULL,NULL),
- (105,53,1,'a_b',104,'Child of',82,'Parent of',1,NULL,NULL),
- (106,53,1,'b_a',82,'Parent of',104,'Child of',1,NULL,NULL),
- (107,54,1,'a_b',139,'Child of',82,'Parent of',1,NULL,NULL),
- (108,54,1,'b_a',82,'Parent of',139,'Child of',1,NULL,NULL),
- (109,55,4,'a_b',139,'Sibling of',104,'Sibling of',1,NULL,NULL),
- (110,55,4,'b_a',104,'Sibling of',139,'Sibling of',1,NULL,NULL),
- (111,56,8,'a_b',82,'Household Member of',155,'Household Member is',1,NULL,NULL),
- (112,56,8,'b_a',155,'Household Member is',82,'Household Member of',1,NULL,NULL),
- (113,57,8,'a_b',104,'Household Member of',155,'Household Member is',1,NULL,NULL),
- (114,57,8,'b_a',155,'Household Member is',104,'Household Member of',1,NULL,NULL),
- (115,58,8,'a_b',139,'Household Member of',155,'Household Member is',1,NULL,NULL),
- (116,58,8,'b_a',155,'Household Member is',139,'Household Member of',1,NULL,NULL),
- (117,59,7,'a_b',87,'Head of Household for',155,'Head of Household is',1,NULL,NULL),
- (118,59,7,'b_a',155,'Head of Household is',87,'Head of Household for',1,NULL,NULL),
- (119,60,2,'a_b',82,'Spouse of',87,'Spouse of',1,NULL,NULL),
- (120,60,2,'b_a',87,'Spouse of',82,'Spouse of',1,NULL,NULL),
- (121,61,1,'a_b',176,'Child of',129,'Parent of',1,NULL,NULL),
- (122,61,1,'b_a',129,'Parent of',176,'Child of',1,NULL,NULL),
- (123,62,1,'a_b',14,'Child of',129,'Parent of',1,NULL,NULL),
- (124,62,1,'b_a',129,'Parent of',14,'Child of',1,NULL,NULL),
- (125,63,1,'a_b',176,'Child of',12,'Parent of',1,NULL,NULL),
- (126,63,1,'b_a',12,'Parent of',176,'Child of',1,NULL,NULL),
- (127,64,1,'a_b',14,'Child of',12,'Parent of',1,NULL,NULL),
- (128,64,1,'b_a',12,'Parent of',14,'Child of',1,NULL,NULL),
- (129,65,4,'a_b',14,'Sibling of',176,'Sibling of',1,NULL,NULL),
- (130,65,4,'b_a',176,'Sibling of',14,'Sibling of',1,NULL,NULL),
- (131,66,8,'a_b',12,'Household Member of',102,'Household Member is',1,NULL,NULL),
- (132,66,8,'b_a',102,'Household Member is',12,'Household Member of',1,NULL,NULL),
- (133,67,8,'a_b',176,'Household Member of',102,'Household Member is',1,NULL,NULL),
- (134,67,8,'b_a',102,'Household Member is',176,'Household Member of',1,NULL,NULL),
- (135,68,8,'a_b',14,'Household Member of',102,'Household Member is',1,NULL,NULL),
- (136,68,8,'b_a',102,'Household Member is',14,'Household Member of',1,NULL,NULL),
- (137,69,7,'a_b',129,'Head of Household for',102,'Head of Household is',0,NULL,NULL),
- (138,69,7,'b_a',102,'Head of Household is',129,'Head of Household for',0,NULL,NULL),
- (139,70,2,'a_b',12,'Spouse of',129,'Spouse of',0,NULL,NULL),
- (140,70,2,'b_a',129,'Spouse of',12,'Spouse of',0,NULL,NULL),
- (141,71,1,'a_b',59,'Child of',67,'Parent of',1,NULL,NULL),
- (142,71,1,'b_a',67,'Parent of',59,'Child of',1,NULL,NULL),
- (143,72,1,'a_b',64,'Child of',67,'Parent of',1,NULL,NULL),
- (144,72,1,'b_a',67,'Parent of',64,'Child of',1,NULL,NULL),
- (145,73,1,'a_b',59,'Child of',106,'Parent of',1,NULL,NULL),
- (146,73,1,'b_a',106,'Parent of',59,'Child of',1,NULL,NULL),
- (147,74,1,'a_b',64,'Child of',106,'Parent of',1,NULL,NULL),
- (148,74,1,'b_a',106,'Parent of',64,'Child of',1,NULL,NULL),
- (149,75,4,'a_b',64,'Sibling of',59,'Sibling of',1,NULL,NULL),
- (150,75,4,'b_a',59,'Sibling of',64,'Sibling of',1,NULL,NULL),
- (151,76,8,'a_b',106,'Household Member of',9,'Household Member is',1,NULL,NULL),
- (152,76,8,'b_a',9,'Household Member is',106,'Household Member of',1,NULL,NULL),
- (153,77,8,'a_b',59,'Household Member of',9,'Household Member is',1,NULL,NULL),
- (154,77,8,'b_a',9,'Household Member is',59,'Household Member of',1,NULL,NULL),
- (155,78,8,'a_b',64,'Household Member of',9,'Household Member is',1,NULL,NULL),
- (156,78,8,'b_a',9,'Household Member is',64,'Household Member of',1,NULL,NULL),
- (157,79,7,'a_b',67,'Head of Household for',9,'Head of Household is',0,NULL,NULL),
- (158,79,7,'b_a',9,'Head of Household is',67,'Head of Household for',0,NULL,NULL),
- (159,80,2,'a_b',106,'Spouse of',67,'Spouse of',0,NULL,NULL),
- (160,80,2,'b_a',67,'Spouse of',106,'Spouse of',0,NULL,NULL),
- (161,81,1,'a_b',189,'Child of',116,'Parent of',1,NULL,NULL),
- (162,81,1,'b_a',116,'Parent of',189,'Child of',1,NULL,NULL),
- (163,82,1,'a_b',142,'Child of',116,'Parent of',1,NULL,NULL),
- (164,82,1,'b_a',116,'Parent of',142,'Child of',1,NULL,NULL),
- (165,83,1,'a_b',189,'Child of',168,'Parent of',1,NULL,NULL),
- (166,83,1,'b_a',168,'Parent of',189,'Child of',1,NULL,NULL),
- (167,84,1,'a_b',142,'Child of',168,'Parent of',1,NULL,NULL),
- (168,84,1,'b_a',168,'Parent of',142,'Child of',1,NULL,NULL),
- (169,85,4,'a_b',142,'Sibling of',189,'Sibling of',1,NULL,NULL),
- (170,85,4,'b_a',189,'Sibling of',142,'Sibling of',1,NULL,NULL),
- (171,86,8,'a_b',168,'Household Member of',130,'Household Member is',1,NULL,NULL),
- (172,86,8,'b_a',130,'Household Member is',168,'Household Member of',1,NULL,NULL),
- (173,87,8,'a_b',189,'Household Member of',130,'Household Member is',1,NULL,NULL),
- (174,87,8,'b_a',130,'Household Member is',189,'Household Member of',1,NULL,NULL),
- (175,88,8,'a_b',142,'Household Member of',130,'Household Member is',1,NULL,NULL),
- (176,88,8,'b_a',130,'Household Member is',142,'Household Member of',1,NULL,NULL),
- (177,89,7,'a_b',116,'Head of Household for',130,'Head of Household is',0,NULL,NULL),
- (178,89,7,'b_a',130,'Head of Household is',116,'Head of Household for',0,NULL,NULL),
- (179,90,2,'a_b',168,'Spouse of',116,'Spouse of',0,NULL,NULL),
- (180,90,2,'b_a',116,'Spouse of',168,'Spouse of',0,NULL,NULL),
- (181,91,1,'a_b',105,'Child of',140,'Parent of',1,NULL,NULL),
- (182,91,1,'b_a',140,'Parent of',105,'Child of',1,NULL,NULL),
- (183,92,1,'a_b',118,'Child of',140,'Parent of',1,NULL,NULL),
- (184,92,1,'b_a',140,'Parent of',118,'Child of',1,NULL,NULL),
- (185,93,1,'a_b',105,'Child of',47,'Parent of',1,NULL,NULL),
- (186,93,1,'b_a',47,'Parent of',105,'Child of',1,NULL,NULL),
- (187,94,1,'a_b',118,'Child of',47,'Parent of',1,NULL,NULL),
- (188,94,1,'b_a',47,'Parent of',118,'Child of',1,NULL,NULL),
- (189,95,4,'a_b',118,'Sibling of',105,'Sibling of',1,NULL,NULL),
- (190,95,4,'b_a',105,'Sibling of',118,'Sibling of',1,NULL,NULL),
- (191,96,8,'a_b',47,'Household Member of',144,'Household Member is',1,NULL,NULL),
- (192,96,8,'b_a',144,'Household Member is',47,'Household Member of',1,NULL,NULL),
- (193,97,8,'a_b',105,'Household Member of',144,'Household Member is',1,NULL,NULL),
- (194,97,8,'b_a',144,'Household Member is',105,'Household Member of',1,NULL,NULL),
- (195,98,8,'a_b',118,'Household Member of',144,'Household Member is',1,NULL,NULL),
- (196,98,8,'b_a',144,'Household Member is',118,'Household Member of',1,NULL,NULL),
- (197,99,7,'a_b',140,'Head of Household for',144,'Head of Household is',1,NULL,NULL),
- (198,99,7,'b_a',144,'Head of Household is',140,'Head of Household for',1,NULL,NULL),
- (199,100,2,'a_b',47,'Spouse of',140,'Spouse of',1,NULL,NULL),
- (200,100,2,'b_a',140,'Spouse of',47,'Spouse of',1,NULL,NULL),
- (201,101,1,'a_b',51,'Child of',113,'Parent of',1,NULL,NULL),
- (202,101,1,'b_a',113,'Parent of',51,'Child of',1,NULL,NULL),
- (203,102,1,'a_b',22,'Child of',113,'Parent of',1,NULL,NULL),
- (204,102,1,'b_a',113,'Parent of',22,'Child of',1,NULL,NULL),
- (205,103,1,'a_b',51,'Child of',200,'Parent of',1,NULL,NULL),
- (206,103,1,'b_a',200,'Parent of',51,'Child of',1,NULL,NULL),
- (207,104,1,'a_b',22,'Child of',200,'Parent of',1,NULL,NULL),
- (208,104,1,'b_a',200,'Parent of',22,'Child of',1,NULL,NULL),
- (209,105,4,'a_b',22,'Sibling of',51,'Sibling of',1,NULL,NULL),
- (210,105,4,'b_a',51,'Sibling of',22,'Sibling of',1,NULL,NULL),
- (211,106,8,'a_b',200,'Household Member of',29,'Household Member is',1,NULL,NULL),
- (212,106,8,'b_a',29,'Household Member is',200,'Household Member of',1,NULL,NULL),
- (213,107,8,'a_b',51,'Household Member of',29,'Household Member is',1,NULL,NULL),
- (214,107,8,'b_a',29,'Household Member is',51,'Household Member of',1,NULL,NULL),
- (215,108,8,'a_b',22,'Household Member of',29,'Household Member is',1,NULL,NULL),
- (216,108,8,'b_a',29,'Household Member is',22,'Household Member of',1,NULL,NULL),
- (217,109,7,'a_b',113,'Head of Household for',29,'Head of Household is',1,NULL,NULL),
- (218,109,7,'b_a',29,'Head of Household is',113,'Head of Household for',1,NULL,NULL),
- (219,110,2,'a_b',200,'Spouse of',113,'Spouse of',1,NULL,NULL),
- (220,110,2,'b_a',113,'Spouse of',200,'Spouse of',1,NULL,NULL),
- (221,111,1,'a_b',108,'Child of',160,'Parent of',1,NULL,NULL),
- (222,111,1,'b_a',160,'Parent of',108,'Child of',1,NULL,NULL),
- (223,112,1,'a_b',178,'Child of',160,'Parent of',1,NULL,NULL),
- (224,112,1,'b_a',160,'Parent of',178,'Child of',1,NULL,NULL),
- (225,113,1,'a_b',108,'Child of',132,'Parent of',1,NULL,NULL),
- (226,113,1,'b_a',132,'Parent of',108,'Child of',1,NULL,NULL),
- (227,114,1,'a_b',178,'Child of',132,'Parent of',1,NULL,NULL),
- (228,114,1,'b_a',132,'Parent of',178,'Child of',1,NULL,NULL),
- (229,115,4,'a_b',178,'Sibling of',108,'Sibling of',1,NULL,NULL),
- (230,115,4,'b_a',108,'Sibling of',178,'Sibling of',1,NULL,NULL),
- (231,116,8,'a_b',132,'Household Member of',48,'Household Member is',1,NULL,NULL),
- (232,116,8,'b_a',48,'Household Member is',132,'Household Member of',1,NULL,NULL),
- (233,117,8,'a_b',108,'Household Member of',48,'Household Member is',1,NULL,NULL),
- (234,117,8,'b_a',48,'Household Member is',108,'Household Member of',1,NULL,NULL),
- (235,118,8,'a_b',178,'Household Member of',48,'Household Member is',1,NULL,NULL),
- (236,118,8,'b_a',48,'Household Member is',178,'Household Member of',1,NULL,NULL),
- (237,119,7,'a_b',160,'Head of Household for',48,'Head of Household is',1,NULL,NULL),
- (238,119,7,'b_a',48,'Head of Household is',160,'Head of Household for',1,NULL,NULL),
- (239,120,2,'a_b',132,'Spouse of',160,'Spouse of',1,NULL,NULL),
- (240,120,2,'b_a',160,'Spouse of',132,'Spouse of',1,NULL,NULL),
- (241,121,1,'a_b',174,'Child of',186,'Parent of',1,NULL,NULL),
- (242,121,1,'b_a',186,'Parent of',174,'Child of',1,NULL,NULL),
- (243,122,1,'a_b',92,'Child of',186,'Parent of',1,NULL,NULL),
- (244,122,1,'b_a',186,'Parent of',92,'Child of',1,NULL,NULL),
- (245,123,1,'a_b',174,'Child of',93,'Parent of',1,NULL,NULL),
- (246,123,1,'b_a',93,'Parent of',174,'Child of',1,NULL,NULL),
- (247,124,1,'a_b',92,'Child of',93,'Parent of',1,NULL,NULL),
- (248,124,1,'b_a',93,'Parent of',92,'Child of',1,NULL,NULL),
- (249,125,4,'a_b',92,'Sibling of',174,'Sibling of',1,NULL,NULL),
- (250,125,4,'b_a',174,'Sibling of',92,'Sibling of',1,NULL,NULL),
- (251,126,8,'a_b',93,'Household Member of',15,'Household Member is',1,NULL,NULL),
- (252,126,8,'b_a',15,'Household Member is',93,'Household Member of',1,NULL,NULL),
- (253,127,8,'a_b',174,'Household Member of',15,'Household Member is',1,NULL,NULL),
- (254,127,8,'b_a',15,'Household Member is',174,'Household Member of',1,NULL,NULL),
- (255,128,8,'a_b',92,'Household Member of',15,'Household Member is',1,NULL,NULL),
- (256,128,8,'b_a',15,'Household Member is',92,'Household Member of',1,NULL,NULL),
- (257,129,7,'a_b',186,'Head of Household for',15,'Head of Household is',1,NULL,NULL),
- (258,129,7,'b_a',15,'Head of Household is',186,'Head of Household for',1,NULL,NULL),
- (259,130,2,'a_b',93,'Spouse of',186,'Spouse of',1,NULL,NULL),
- (260,130,2,'b_a',186,'Spouse of',93,'Spouse of',1,NULL,NULL),
- (261,131,1,'a_b',68,'Child of',190,'Parent of',1,NULL,NULL),
- (262,131,1,'b_a',190,'Parent of',68,'Child of',1,NULL,NULL),
- (263,132,1,'a_b',40,'Child of',190,'Parent of',1,NULL,NULL),
- (264,132,1,'b_a',190,'Parent of',40,'Child of',1,NULL,NULL),
- (265,133,1,'a_b',68,'Child of',147,'Parent of',1,NULL,NULL),
- (266,133,1,'b_a',147,'Parent of',68,'Child of',1,NULL,NULL),
- (267,134,1,'a_b',40,'Child of',147,'Parent of',1,NULL,NULL),
- (268,134,1,'b_a',147,'Parent of',40,'Child of',1,NULL,NULL),
- (269,135,4,'a_b',40,'Sibling of',68,'Sibling of',1,NULL,NULL),
- (270,135,4,'b_a',68,'Sibling of',40,'Sibling of',1,NULL,NULL),
- (271,136,8,'a_b',147,'Household Member of',183,'Household Member is',1,NULL,NULL),
- (272,136,8,'b_a',183,'Household Member is',147,'Household Member of',1,NULL,NULL),
- (273,137,8,'a_b',68,'Household Member of',183,'Household Member is',1,NULL,NULL),
- (274,137,8,'b_a',183,'Household Member is',68,'Household Member of',1,NULL,NULL),
- (275,138,8,'a_b',40,'Household Member of',183,'Household Member is',1,NULL,NULL),
- (276,138,8,'b_a',183,'Household Member is',40,'Household Member of',1,NULL,NULL),
- (277,139,7,'a_b',190,'Head of Household for',183,'Head of Household is',0,NULL,NULL),
- (278,139,7,'b_a',183,'Head of Household is',190,'Head of Household for',0,NULL,NULL),
- (279,140,2,'a_b',147,'Spouse of',190,'Spouse of',0,NULL,NULL),
- (280,140,2,'b_a',190,'Spouse of',147,'Spouse of',0,NULL,NULL),
- (281,141,1,'a_b',75,'Child of',180,'Parent of',1,NULL,NULL),
- (282,141,1,'b_a',180,'Parent of',75,'Child of',1,NULL,NULL),
- (283,142,1,'a_b',156,'Child of',180,'Parent of',1,NULL,NULL),
- (284,142,1,'b_a',180,'Parent of',156,'Child of',1,NULL,NULL),
- (285,143,1,'a_b',75,'Child of',136,'Parent of',1,NULL,NULL),
- (286,143,1,'b_a',136,'Parent of',75,'Child of',1,NULL,NULL),
- (287,144,1,'a_b',156,'Child of',136,'Parent of',1,NULL,NULL),
- (288,144,1,'b_a',136,'Parent of',156,'Child of',1,NULL,NULL),
- (289,145,4,'a_b',156,'Sibling of',75,'Sibling of',1,NULL,NULL),
- (290,145,4,'b_a',75,'Sibling of',156,'Sibling of',1,NULL,NULL),
- (291,146,8,'a_b',136,'Household Member of',63,'Household Member is',1,NULL,NULL),
- (292,146,8,'b_a',63,'Household Member is',136,'Household Member of',1,NULL,NULL),
- (293,147,8,'a_b',75,'Household Member of',63,'Household Member is',1,NULL,NULL),
- (294,147,8,'b_a',63,'Household Member is',75,'Household Member of',1,NULL,NULL),
- (295,148,8,'a_b',156,'Household Member of',63,'Household Member is',1,NULL,NULL),
- (296,148,8,'b_a',63,'Household Member is',156,'Household Member of',1,NULL,NULL),
- (297,149,7,'a_b',180,'Head of Household for',63,'Head of Household is',1,NULL,NULL),
- (298,149,7,'b_a',63,'Head of Household is',180,'Head of Household for',1,NULL,NULL),
- (299,150,2,'a_b',136,'Spouse of',180,'Spouse of',1,NULL,NULL),
- (300,150,2,'b_a',180,'Spouse of',136,'Spouse of',1,NULL,NULL),
- (301,151,1,'a_b',45,'Child of',46,'Parent of',1,NULL,NULL),
- (302,151,1,'b_a',46,'Parent of',45,'Child of',1,NULL,NULL),
- (303,152,1,'a_b',23,'Child of',46,'Parent of',1,NULL,NULL),
- (304,152,1,'b_a',46,'Parent of',23,'Child of',1,NULL,NULL),
- (305,153,1,'a_b',45,'Child of',123,'Parent of',1,NULL,NULL),
- (306,153,1,'b_a',123,'Parent of',45,'Child of',1,NULL,NULL),
- (307,154,1,'a_b',23,'Child of',123,'Parent of',1,NULL,NULL),
- (308,154,1,'b_a',123,'Parent of',23,'Child of',1,NULL,NULL),
- (309,155,4,'a_b',23,'Sibling of',45,'Sibling of',1,NULL,NULL),
- (310,155,4,'b_a',45,'Sibling of',23,'Sibling of',1,NULL,NULL),
- (311,156,8,'a_b',123,'Household Member of',151,'Household Member is',1,NULL,NULL),
- (312,156,8,'b_a',151,'Household Member is',123,'Household Member of',1,NULL,NULL),
- (313,157,8,'a_b',45,'Household Member of',151,'Household Member is',1,NULL,NULL),
- (314,157,8,'b_a',151,'Household Member is',45,'Household Member of',1,NULL,NULL),
- (315,158,8,'a_b',23,'Household Member of',151,'Household Member is',1,NULL,NULL),
- (316,158,8,'b_a',151,'Household Member is',23,'Household Member of',1,NULL,NULL),
- (317,159,7,'a_b',46,'Head of Household for',151,'Head of Household is',1,NULL,NULL),
- (318,159,7,'b_a',151,'Head of Household is',46,'Head of Household for',1,NULL,NULL),
- (319,160,2,'a_b',123,'Spouse of',46,'Spouse of',1,NULL,NULL),
- (320,160,2,'b_a',46,'Spouse of',123,'Spouse of',1,NULL,NULL),
- (321,161,1,'a_b',143,'Child of',38,'Parent of',1,NULL,NULL),
- (322,161,1,'b_a',38,'Parent of',143,'Child of',1,NULL,NULL),
- (323,162,1,'a_b',5,'Child of',38,'Parent of',1,NULL,NULL),
- (324,162,1,'b_a',38,'Parent of',5,'Child of',1,NULL,NULL),
- (325,163,1,'a_b',143,'Child of',98,'Parent of',1,NULL,NULL),
- (326,163,1,'b_a',98,'Parent of',143,'Child of',1,NULL,NULL),
- (327,164,1,'a_b',5,'Child of',98,'Parent of',1,NULL,NULL),
- (328,164,1,'b_a',98,'Parent of',5,'Child of',1,NULL,NULL),
- (329,165,4,'a_b',5,'Sibling of',143,'Sibling of',1,NULL,NULL),
- (330,165,4,'b_a',143,'Sibling of',5,'Sibling of',1,NULL,NULL),
- (331,166,8,'a_b',98,'Household Member of',127,'Household Member is',1,NULL,NULL),
- (332,166,8,'b_a',127,'Household Member is',98,'Household Member of',1,NULL,NULL),
- (333,167,8,'a_b',143,'Household Member of',127,'Household Member is',1,NULL,NULL),
- (334,167,8,'b_a',127,'Household Member is',143,'Household Member of',1,NULL,NULL),
- (335,168,8,'a_b',5,'Household Member of',127,'Household Member is',1,NULL,NULL),
- (336,168,8,'b_a',127,'Household Member is',5,'Household Member of',1,NULL,NULL),
- (337,169,7,'a_b',38,'Head of Household for',127,'Head of Household is',1,NULL,NULL),
- (338,169,7,'b_a',127,'Head of Household is',38,'Head of Household for',1,NULL,NULL),
- (339,170,2,'a_b',98,'Spouse of',38,'Spouse of',1,NULL,NULL),
- (340,170,2,'b_a',38,'Spouse of',98,'Spouse of',1,NULL,NULL),
- (341,171,1,'a_b',194,'Child of',163,'Parent of',1,NULL,NULL),
- (342,171,1,'b_a',163,'Parent of',194,'Child of',1,NULL,NULL),
- (343,172,1,'a_b',86,'Child of',163,'Parent of',1,NULL,NULL),
- (344,172,1,'b_a',163,'Parent of',86,'Child of',1,NULL,NULL),
- (345,173,1,'a_b',194,'Child of',196,'Parent of',1,NULL,NULL),
- (346,173,1,'b_a',196,'Parent of',194,'Child of',1,NULL,NULL),
- (347,174,1,'a_b',86,'Child of',196,'Parent of',1,NULL,NULL),
- (348,174,1,'b_a',196,'Parent of',86,'Child of',1,NULL,NULL),
- (349,175,4,'a_b',86,'Sibling of',194,'Sibling of',1,NULL,NULL),
- (350,175,4,'b_a',194,'Sibling of',86,'Sibling of',1,NULL,NULL),
- (351,176,8,'a_b',196,'Household Member of',8,'Household Member is',1,NULL,NULL),
- (352,176,8,'b_a',8,'Household Member is',196,'Household Member of',1,NULL,NULL),
- (353,177,8,'a_b',194,'Household Member of',8,'Household Member is',1,NULL,NULL),
- (354,177,8,'b_a',8,'Household Member is',194,'Household Member of',1,NULL,NULL),
- (355,178,8,'a_b',86,'Household Member of',8,'Household Member is',1,NULL,NULL),
- (356,178,8,'b_a',8,'Household Member is',86,'Household Member of',1,NULL,NULL),
- (357,179,7,'a_b',163,'Head of Household for',8,'Head of Household is',1,NULL,NULL),
- (358,179,7,'b_a',8,'Head of Household is',163,'Head of Household for',1,NULL,NULL),
- (359,180,2,'a_b',196,'Spouse of',163,'Spouse of',1,NULL,NULL),
- (360,180,2,'b_a',163,'Spouse of',196,'Spouse of',1,NULL,NULL),
- (361,181,1,'a_b',158,'Child of',83,'Parent of',1,NULL,NULL),
- (362,181,1,'b_a',83,'Parent of',158,'Child of',1,NULL,NULL),
- (363,182,1,'a_b',77,'Child of',83,'Parent of',1,NULL,NULL),
- (364,182,1,'b_a',83,'Parent of',77,'Child of',1,NULL,NULL),
- (365,183,1,'a_b',158,'Child of',89,'Parent of',1,NULL,NULL),
- (366,183,1,'b_a',89,'Parent of',158,'Child of',1,NULL,NULL),
- (367,184,1,'a_b',77,'Child of',89,'Parent of',1,NULL,NULL),
- (368,184,1,'b_a',89,'Parent of',77,'Child of',1,NULL,NULL),
- (369,185,4,'a_b',77,'Sibling of',158,'Sibling of',1,NULL,NULL),
- (370,185,4,'b_a',158,'Sibling of',77,'Sibling of',1,NULL,NULL),
- (371,186,8,'a_b',89,'Household Member of',66,'Household Member is',1,NULL,NULL),
- (372,186,8,'b_a',66,'Household Member is',89,'Household Member of',1,NULL,NULL),
- (373,187,8,'a_b',158,'Household Member of',66,'Household Member is',1,NULL,NULL),
- (374,187,8,'b_a',66,'Household Member is',158,'Household Member of',1,NULL,NULL),
- (375,188,8,'a_b',77,'Household Member of',66,'Household Member is',1,NULL,NULL),
- (376,188,8,'b_a',66,'Household Member is',77,'Household Member of',1,NULL,NULL),
- (377,189,7,'a_b',83,'Head of Household for',66,'Head of Household is',1,NULL,NULL),
- (378,189,7,'b_a',66,'Head of Household is',83,'Head of Household for',1,NULL,NULL),
- (379,190,2,'a_b',89,'Spouse of',83,'Spouse of',1,NULL,NULL),
- (380,190,2,'b_a',83,'Spouse of',89,'Spouse of',1,NULL,NULL),
- (381,191,1,'a_b',85,'Child of',84,'Parent of',1,NULL,NULL),
- (382,191,1,'b_a',84,'Parent of',85,'Child of',1,NULL,NULL),
- (383,192,1,'a_b',43,'Child of',84,'Parent of',1,NULL,NULL),
- (384,192,1,'b_a',84,'Parent of',43,'Child of',1,NULL,NULL),
- (385,193,1,'a_b',85,'Child of',44,'Parent of',1,NULL,NULL),
- (386,193,1,'b_a',44,'Parent of',85,'Child of',1,NULL,NULL),
- (387,194,1,'a_b',43,'Child of',44,'Parent of',1,NULL,NULL),
- (388,194,1,'b_a',44,'Parent of',43,'Child of',1,NULL,NULL),
- (389,195,4,'a_b',43,'Sibling of',85,'Sibling of',1,NULL,NULL),
- (390,195,4,'b_a',85,'Sibling of',43,'Sibling of',1,NULL,NULL),
- (391,196,8,'a_b',44,'Household Member of',74,'Household Member is',1,NULL,NULL),
- (392,196,8,'b_a',74,'Household Member is',44,'Household Member of',1,NULL,NULL),
- (393,197,8,'a_b',85,'Household Member of',74,'Household Member is',1,NULL,NULL),
- (394,197,8,'b_a',74,'Household Member is',85,'Household Member of',1,NULL,NULL),
- (395,198,8,'a_b',43,'Household Member of',74,'Household Member is',1,NULL,NULL),
- (396,198,8,'b_a',74,'Household Member is',43,'Household Member of',1,NULL,NULL),
- (397,199,7,'a_b',84,'Head of Household for',74,'Head of Household is',0,NULL,NULL),
- (398,199,7,'b_a',74,'Head of Household is',84,'Head of Household for',0,NULL,NULL),
- (399,200,2,'a_b',44,'Spouse of',84,'Spouse of',0,NULL,NULL),
- (400,200,2,'b_a',84,'Spouse of',44,'Spouse of',0,NULL,NULL),
- (401,201,5,'a_b',116,'Employee of',31,'Employer of',1,NULL,NULL),
- (402,201,5,'b_a',31,'Employer of',116,'Employee of',1,NULL,NULL),
- (403,202,5,'a_b',200,'Employee of',57,'Employer of',1,NULL,NULL),
- (404,202,5,'b_a',57,'Employer of',200,'Employee of',1,NULL,NULL),
- (405,203,5,'a_b',54,'Employee of',70,'Employer of',1,NULL,NULL),
- (406,203,5,'b_a',70,'Employer of',54,'Employee of',1,NULL,NULL),
- (407,204,5,'a_b',72,'Employee of',73,'Employer of',1,NULL,NULL),
- (408,204,5,'b_a',73,'Employer of',72,'Employee of',1,NULL,NULL),
- (409,205,5,'a_b',190,'Employee of',76,'Employer of',1,NULL,NULL),
- (410,205,5,'b_a',76,'Employer of',190,'Employee of',1,NULL,NULL),
- (411,206,5,'a_b',59,'Employee of',88,'Employer of',1,NULL,NULL),
- (412,206,5,'b_a',88,'Employer of',59,'Employee of',1,NULL,NULL),
- (413,207,5,'a_b',38,'Employee of',97,'Employer of',1,NULL,NULL),
- (414,207,5,'b_a',97,'Employer of',38,'Employee of',1,NULL,NULL),
- (415,208,5,'a_b',106,'Employee of',107,'Employer of',1,NULL,NULL),
- (416,208,5,'b_a',107,'Employer of',106,'Employee of',1,NULL,NULL),
- (417,209,5,'a_b',187,'Employee of',109,'Employer of',1,NULL,NULL),
- (418,209,5,'b_a',109,'Employer of',187,'Employee of',1,NULL,NULL),
- (419,210,5,'a_b',18,'Employee of',110,'Employer of',1,NULL,NULL),
- (420,210,5,'b_a',110,'Employer of',18,'Employee of',1,NULL,NULL),
- (421,211,5,'a_b',104,'Employee of',120,'Employer of',1,NULL,NULL),
- (422,211,5,'b_a',120,'Employer of',104,'Employee of',1,NULL,NULL),
- (423,212,5,'a_b',6,'Employee of',167,'Employer of',1,NULL,NULL),
- (424,212,5,'b_a',167,'Employer of',6,'Employee of',1,NULL,NULL),
- (425,213,5,'a_b',86,'Employee of',179,'Employer of',1,NULL,NULL),
- (426,213,5,'b_a',179,'Employer of',86,'Employee of',1,NULL,NULL),
- (427,214,5,'a_b',39,'Employee of',188,'Employer of',1,NULL,NULL),
- (428,214,5,'b_a',188,'Employer of',39,'Employee of',1,NULL,NULL),
- (429,215,5,'a_b',87,'Employee of',191,'Employer of',1,NULL,NULL),
- (430,215,5,'b_a',191,'Employer of',87,'Employee of',1,NULL,NULL);
+ (1,1,1,'a_b',135,'Child of',10,'Parent of',1,NULL,NULL),
+ (2,1,1,'b_a',10,'Parent of',135,'Child of',1,NULL,NULL),
+ (3,2,1,'a_b',80,'Child of',10,'Parent of',1,NULL,NULL),
+ (4,2,1,'b_a',10,'Parent of',80,'Child of',1,NULL,NULL),
+ (5,3,1,'a_b',135,'Child of',120,'Parent of',1,NULL,NULL),
+ (6,3,1,'b_a',120,'Parent of',135,'Child of',1,NULL,NULL),
+ (7,4,1,'a_b',80,'Child of',120,'Parent of',1,NULL,NULL),
+ (8,4,1,'b_a',120,'Parent of',80,'Child of',1,NULL,NULL),
+ (9,5,4,'a_b',80,'Sibling of',135,'Sibling of',1,NULL,NULL),
+ (10,5,4,'b_a',135,'Sibling of',80,'Sibling of',1,NULL,NULL),
+ (11,6,8,'a_b',120,'Household Member of',133,'Household Member is',1,NULL,NULL),
+ (12,6,8,'b_a',133,'Household Member is',120,'Household Member of',1,NULL,NULL),
+ (13,7,8,'a_b',135,'Household Member of',133,'Household Member is',1,NULL,NULL),
+ (14,7,8,'b_a',133,'Household Member is',135,'Household Member of',1,NULL,NULL),
+ (15,8,8,'a_b',80,'Household Member of',133,'Household Member is',1,NULL,NULL),
+ (16,8,8,'b_a',133,'Household Member is',80,'Household Member of',1,NULL,NULL),
+ (17,9,7,'a_b',10,'Head of Household for',133,'Head of Household is',1,NULL,NULL),
+ (18,9,7,'b_a',133,'Head of Household is',10,'Head of Household for',1,NULL,NULL),
+ (19,10,2,'a_b',120,'Spouse of',10,'Spouse of',1,NULL,NULL),
+ (20,10,2,'b_a',10,'Spouse of',120,'Spouse of',1,NULL,NULL),
+ (21,11,1,'a_b',118,'Child of',154,'Parent of',1,NULL,NULL),
+ (22,11,1,'b_a',154,'Parent of',118,'Child of',1,NULL,NULL),
+ (23,12,1,'a_b',75,'Child of',154,'Parent of',1,NULL,NULL),
+ (24,12,1,'b_a',154,'Parent of',75,'Child of',1,NULL,NULL),
+ (25,13,1,'a_b',118,'Child of',62,'Parent of',1,NULL,NULL),
+ (26,13,1,'b_a',62,'Parent of',118,'Child of',1,NULL,NULL),
+ (27,14,1,'a_b',75,'Child of',62,'Parent of',1,NULL,NULL),
+ (28,14,1,'b_a',62,'Parent of',75,'Child of',1,NULL,NULL),
+ (29,15,4,'a_b',75,'Sibling of',118,'Sibling of',1,NULL,NULL),
+ (30,15,4,'b_a',118,'Sibling of',75,'Sibling of',1,NULL,NULL),
+ (31,16,8,'a_b',62,'Household Member of',124,'Household Member is',1,NULL,NULL),
+ (32,16,8,'b_a',124,'Household Member is',62,'Household Member of',1,NULL,NULL),
+ (33,17,8,'a_b',118,'Household Member of',124,'Household Member is',1,NULL,NULL),
+ (34,17,8,'b_a',124,'Household Member is',118,'Household Member of',1,NULL,NULL),
+ (35,18,8,'a_b',75,'Household Member of',124,'Household Member is',1,NULL,NULL),
+ (36,18,8,'b_a',124,'Household Member is',75,'Household Member of',1,NULL,NULL),
+ (37,19,7,'a_b',154,'Head of Household for',124,'Head of Household is',0,NULL,NULL),
+ (38,19,7,'b_a',124,'Head of Household is',154,'Head of Household for',0,NULL,NULL),
+ (39,20,2,'a_b',62,'Spouse of',154,'Spouse of',0,NULL,NULL),
+ (40,20,2,'b_a',154,'Spouse of',62,'Spouse of',0,NULL,NULL),
+ (41,21,1,'a_b',127,'Child of',76,'Parent of',1,NULL,NULL),
+ (42,21,1,'b_a',76,'Parent of',127,'Child of',1,NULL,NULL),
+ (43,22,1,'a_b',65,'Child of',76,'Parent of',1,NULL,NULL),
+ (44,22,1,'b_a',76,'Parent of',65,'Child of',1,NULL,NULL),
+ (45,23,1,'a_b',127,'Child of',126,'Parent of',1,NULL,NULL),
+ (46,23,1,'b_a',126,'Parent of',127,'Child of',1,NULL,NULL),
+ (47,24,1,'a_b',65,'Child of',126,'Parent of',1,NULL,NULL),
+ (48,24,1,'b_a',126,'Parent of',65,'Child of',1,NULL,NULL),
+ (49,25,4,'a_b',65,'Sibling of',127,'Sibling of',1,NULL,NULL),
+ (50,25,4,'b_a',127,'Sibling of',65,'Sibling of',1,NULL,NULL),
+ (51,26,8,'a_b',126,'Household Member of',96,'Household Member is',1,NULL,NULL),
+ (52,26,8,'b_a',96,'Household Member is',126,'Household Member of',1,NULL,NULL),
+ (53,27,8,'a_b',127,'Household Member of',96,'Household Member is',1,NULL,NULL),
+ (54,27,8,'b_a',96,'Household Member is',127,'Household Member of',1,NULL,NULL),
+ (55,28,8,'a_b',65,'Household Member of',96,'Household Member is',1,NULL,NULL),
+ (56,28,8,'b_a',96,'Household Member is',65,'Household Member of',1,NULL,NULL),
+ (57,29,7,'a_b',76,'Head of Household for',96,'Head of Household is',0,NULL,NULL),
+ (58,29,7,'b_a',96,'Head of Household is',76,'Head of Household for',0,NULL,NULL),
+ (59,30,2,'a_b',126,'Spouse of',76,'Spouse of',0,NULL,NULL),
+ (60,30,2,'b_a',76,'Spouse of',126,'Spouse of',0,NULL,NULL),
+ (61,31,1,'a_b',110,'Child of',51,'Parent of',1,NULL,NULL),
+ (62,31,1,'b_a',51,'Parent of',110,'Child of',1,NULL,NULL),
+ (63,32,1,'a_b',74,'Child of',51,'Parent of',1,NULL,NULL),
+ (64,32,1,'b_a',51,'Parent of',74,'Child of',1,NULL,NULL),
+ (65,33,1,'a_b',110,'Child of',115,'Parent of',1,NULL,NULL),
+ (66,33,1,'b_a',115,'Parent of',110,'Child of',1,NULL,NULL),
+ (67,34,1,'a_b',74,'Child of',115,'Parent of',1,NULL,NULL),
+ (68,34,1,'b_a',115,'Parent of',74,'Child of',1,NULL,NULL),
+ (69,35,4,'a_b',74,'Sibling of',110,'Sibling of',1,NULL,NULL),
+ (70,35,4,'b_a',110,'Sibling of',74,'Sibling of',1,NULL,NULL),
+ (71,36,8,'a_b',115,'Household Member of',184,'Household Member is',1,NULL,NULL),
+ (72,36,8,'b_a',184,'Household Member is',115,'Household Member of',1,NULL,NULL),
+ (73,37,8,'a_b',110,'Household Member of',184,'Household Member is',1,NULL,NULL),
+ (74,37,8,'b_a',184,'Household Member is',110,'Household Member of',1,NULL,NULL),
+ (75,38,8,'a_b',74,'Household Member of',184,'Household Member is',1,NULL,NULL),
+ (76,38,8,'b_a',184,'Household Member is',74,'Household Member of',1,NULL,NULL),
+ (77,39,7,'a_b',51,'Head of Household for',184,'Head of Household is',0,NULL,NULL),
+ (78,39,7,'b_a',184,'Head of Household is',51,'Head of Household for',0,NULL,NULL),
+ (79,40,2,'a_b',115,'Spouse of',51,'Spouse of',0,NULL,NULL),
+ (80,40,2,'b_a',51,'Spouse of',115,'Spouse of',0,NULL,NULL),
+ (81,41,1,'a_b',170,'Child of',71,'Parent of',1,NULL,NULL),
+ (82,41,1,'b_a',71,'Parent of',170,'Child of',1,NULL,NULL),
+ (83,42,1,'a_b',50,'Child of',71,'Parent of',1,NULL,NULL),
+ (84,42,1,'b_a',71,'Parent of',50,'Child of',1,NULL,NULL),
+ (85,43,1,'a_b',170,'Child of',143,'Parent of',1,NULL,NULL),
+ (86,43,1,'b_a',143,'Parent of',170,'Child of',1,NULL,NULL),
+ (87,44,1,'a_b',50,'Child of',143,'Parent of',1,NULL,NULL),
+ (88,44,1,'b_a',143,'Parent of',50,'Child of',1,NULL,NULL),
+ (89,45,4,'a_b',50,'Sibling of',170,'Sibling of',1,NULL,NULL),
+ (90,45,4,'b_a',170,'Sibling of',50,'Sibling of',1,NULL,NULL),
+ (91,46,8,'a_b',143,'Household Member of',192,'Household Member is',1,NULL,NULL),
+ (92,46,8,'b_a',192,'Household Member is',143,'Household Member of',1,NULL,NULL),
+ (93,47,8,'a_b',170,'Household Member of',192,'Household Member is',1,NULL,NULL),
+ (94,47,8,'b_a',192,'Household Member is',170,'Household Member of',1,NULL,NULL),
+ (95,48,8,'a_b',50,'Household Member of',192,'Household Member is',1,NULL,NULL),
+ (96,48,8,'b_a',192,'Household Member is',50,'Household Member of',1,NULL,NULL),
+ (97,49,7,'a_b',71,'Head of Household for',192,'Head of Household is',1,NULL,NULL),
+ (98,49,7,'b_a',192,'Head of Household is',71,'Head of Household for',1,NULL,NULL),
+ (99,50,2,'a_b',143,'Spouse of',71,'Spouse of',1,NULL,NULL),
+ (100,50,2,'b_a',71,'Spouse of',143,'Spouse of',1,NULL,NULL),
+ (101,51,1,'a_b',64,'Child of',97,'Parent of',1,NULL,NULL),
+ (102,51,1,'b_a',97,'Parent of',64,'Child of',1,NULL,NULL),
+ (103,52,1,'a_b',186,'Child of',97,'Parent of',1,NULL,NULL),
+ (104,52,1,'b_a',97,'Parent of',186,'Child of',1,NULL,NULL),
+ (105,53,1,'a_b',64,'Child of',60,'Parent of',1,NULL,NULL),
+ (106,53,1,'b_a',60,'Parent of',64,'Child of',1,NULL,NULL),
+ (107,54,1,'a_b',186,'Child of',60,'Parent of',1,NULL,NULL),
+ (108,54,1,'b_a',60,'Parent of',186,'Child of',1,NULL,NULL),
+ (109,55,4,'a_b',186,'Sibling of',64,'Sibling of',1,NULL,NULL),
+ (110,55,4,'b_a',64,'Sibling of',186,'Sibling of',1,NULL,NULL),
+ (111,56,8,'a_b',60,'Household Member of',193,'Household Member is',1,NULL,NULL),
+ (112,56,8,'b_a',193,'Household Member is',60,'Household Member of',1,NULL,NULL),
+ (113,57,8,'a_b',64,'Household Member of',193,'Household Member is',1,NULL,NULL),
+ (114,57,8,'b_a',193,'Household Member is',64,'Household Member of',1,NULL,NULL),
+ (115,58,8,'a_b',186,'Household Member of',193,'Household Member is',1,NULL,NULL),
+ (116,58,8,'b_a',193,'Household Member is',186,'Household Member of',1,NULL,NULL),
+ (117,59,7,'a_b',97,'Head of Household for',193,'Head of Household is',1,NULL,NULL),
+ (118,59,7,'b_a',193,'Head of Household is',97,'Head of Household for',1,NULL,NULL),
+ (119,60,2,'a_b',60,'Spouse of',97,'Spouse of',1,NULL,NULL),
+ (120,60,2,'b_a',97,'Spouse of',60,'Spouse of',1,NULL,NULL),
+ (121,61,1,'a_b',5,'Child of',150,'Parent of',1,NULL,NULL),
+ (122,61,1,'b_a',150,'Parent of',5,'Child of',1,NULL,NULL),
+ (123,62,1,'a_b',180,'Child of',150,'Parent of',1,NULL,NULL),
+ (124,62,1,'b_a',150,'Parent of',180,'Child of',1,NULL,NULL),
+ (125,63,1,'a_b',5,'Child of',185,'Parent of',1,NULL,NULL),
+ (126,63,1,'b_a',185,'Parent of',5,'Child of',1,NULL,NULL),
+ (127,64,1,'a_b',180,'Child of',185,'Parent of',1,NULL,NULL),
+ (128,64,1,'b_a',185,'Parent of',180,'Child of',1,NULL,NULL),
+ (129,65,4,'a_b',180,'Sibling of',5,'Sibling of',1,NULL,NULL),
+ (130,65,4,'b_a',5,'Sibling of',180,'Sibling of',1,NULL,NULL),
+ (131,66,8,'a_b',185,'Household Member of',189,'Household Member is',1,NULL,NULL),
+ (132,66,8,'b_a',189,'Household Member is',185,'Household Member of',1,NULL,NULL),
+ (133,67,8,'a_b',5,'Household Member of',189,'Household Member is',1,NULL,NULL),
+ (134,67,8,'b_a',189,'Household Member is',5,'Household Member of',1,NULL,NULL),
+ (135,68,8,'a_b',180,'Household Member of',189,'Household Member is',1,NULL,NULL),
+ (136,68,8,'b_a',189,'Household Member is',180,'Household Member of',1,NULL,NULL),
+ (137,69,7,'a_b',150,'Head of Household for',189,'Head of Household is',1,NULL,NULL),
+ (138,69,7,'b_a',189,'Head of Household is',150,'Head of Household for',1,NULL,NULL),
+ (139,70,2,'a_b',185,'Spouse of',150,'Spouse of',1,NULL,NULL),
+ (140,70,2,'b_a',150,'Spouse of',185,'Spouse of',1,NULL,NULL),
+ (141,71,1,'a_b',147,'Child of',201,'Parent of',1,NULL,NULL),
+ (142,71,1,'b_a',201,'Parent of',147,'Child of',1,NULL,NULL),
+ (143,72,1,'a_b',17,'Child of',201,'Parent of',1,NULL,NULL),
+ (144,72,1,'b_a',201,'Parent of',17,'Child of',1,NULL,NULL),
+ (145,73,1,'a_b',147,'Child of',113,'Parent of',1,NULL,NULL),
+ (146,73,1,'b_a',113,'Parent of',147,'Child of',1,NULL,NULL),
+ (147,74,1,'a_b',17,'Child of',113,'Parent of',1,NULL,NULL),
+ (148,74,1,'b_a',113,'Parent of',17,'Child of',1,NULL,NULL),
+ (149,75,4,'a_b',17,'Sibling of',147,'Sibling of',1,NULL,NULL),
+ (150,75,4,'b_a',147,'Sibling of',17,'Sibling of',1,NULL,NULL),
+ (151,76,8,'a_b',113,'Household Member of',33,'Household Member is',1,NULL,NULL),
+ (152,76,8,'b_a',33,'Household Member is',113,'Household Member of',1,NULL,NULL),
+ (153,77,8,'a_b',147,'Household Member of',33,'Household Member is',1,NULL,NULL),
+ (154,77,8,'b_a',33,'Household Member is',147,'Household Member of',1,NULL,NULL),
+ (155,78,8,'a_b',17,'Household Member of',33,'Household Member is',1,NULL,NULL),
+ (156,78,8,'b_a',33,'Household Member is',17,'Household Member of',1,NULL,NULL),
+ (157,79,7,'a_b',201,'Head of Household for',33,'Head of Household is',1,NULL,NULL),
+ (158,79,7,'b_a',33,'Head of Household is',201,'Head of Household for',1,NULL,NULL),
+ (159,80,2,'a_b',113,'Spouse of',201,'Spouse of',1,NULL,NULL),
+ (160,80,2,'b_a',201,'Spouse of',113,'Spouse of',1,NULL,NULL),
+ (161,81,1,'a_b',56,'Child of',9,'Parent of',1,NULL,NULL),
+ (162,81,1,'b_a',9,'Parent of',56,'Child of',1,NULL,NULL),
+ (163,82,1,'a_b',19,'Child of',9,'Parent of',1,NULL,NULL),
+ (164,82,1,'b_a',9,'Parent of',19,'Child of',1,NULL,NULL),
+ (165,83,1,'a_b',56,'Child of',119,'Parent of',1,NULL,NULL),
+ (166,83,1,'b_a',119,'Parent of',56,'Child of',1,NULL,NULL),
+ (167,84,1,'a_b',19,'Child of',119,'Parent of',1,NULL,NULL),
+ (168,84,1,'b_a',119,'Parent of',19,'Child of',1,NULL,NULL),
+ (169,85,4,'a_b',19,'Sibling of',56,'Sibling of',1,NULL,NULL),
+ (170,85,4,'b_a',56,'Sibling of',19,'Sibling of',1,NULL,NULL),
+ (171,86,8,'a_b',119,'Household Member of',66,'Household Member is',1,NULL,NULL),
+ (172,86,8,'b_a',66,'Household Member is',119,'Household Member of',1,NULL,NULL),
+ (173,87,8,'a_b',56,'Household Member of',66,'Household Member is',1,NULL,NULL),
+ (174,87,8,'b_a',66,'Household Member is',56,'Household Member of',1,NULL,NULL),
+ (175,88,8,'a_b',19,'Household Member of',66,'Household Member is',1,NULL,NULL),
+ (176,88,8,'b_a',66,'Household Member is',19,'Household Member of',1,NULL,NULL),
+ (177,89,7,'a_b',9,'Head of Household for',66,'Head of Household is',1,NULL,NULL),
+ (178,89,7,'b_a',66,'Head of Household is',9,'Head of Household for',1,NULL,NULL),
+ (179,90,2,'a_b',119,'Spouse of',9,'Spouse of',1,NULL,NULL),
+ (180,90,2,'b_a',9,'Spouse of',119,'Spouse of',1,NULL,NULL),
+ (181,91,1,'a_b',40,'Child of',178,'Parent of',1,NULL,NULL),
+ (182,91,1,'b_a',178,'Parent of',40,'Child of',1,NULL,NULL),
+ (183,92,1,'a_b',84,'Child of',178,'Parent of',1,NULL,NULL),
+ (184,92,1,'b_a',178,'Parent of',84,'Child of',1,NULL,NULL),
+ (185,93,1,'a_b',40,'Child of',52,'Parent of',1,NULL,NULL),
+ (186,93,1,'b_a',52,'Parent of',40,'Child of',1,NULL,NULL),
+ (187,94,1,'a_b',84,'Child of',52,'Parent of',1,NULL,NULL),
+ (188,94,1,'b_a',52,'Parent of',84,'Child of',1,NULL,NULL),
+ (189,95,4,'a_b',84,'Sibling of',40,'Sibling of',1,NULL,NULL),
+ (190,95,4,'b_a',40,'Sibling of',84,'Sibling of',1,NULL,NULL),
+ (191,96,8,'a_b',52,'Household Member of',158,'Household Member is',1,NULL,NULL),
+ (192,96,8,'b_a',158,'Household Member is',52,'Household Member of',1,NULL,NULL),
+ (193,97,8,'a_b',40,'Household Member of',158,'Household Member is',1,NULL,NULL),
+ (194,97,8,'b_a',158,'Household Member is',40,'Household Member of',1,NULL,NULL),
+ (195,98,8,'a_b',84,'Household Member of',158,'Household Member is',1,NULL,NULL),
+ (196,98,8,'b_a',158,'Household Member is',84,'Household Member of',1,NULL,NULL),
+ (197,99,7,'a_b',178,'Head of Household for',158,'Head of Household is',1,NULL,NULL),
+ (198,99,7,'b_a',158,'Head of Household is',178,'Head of Household for',1,NULL,NULL),
+ (199,100,2,'a_b',52,'Spouse of',178,'Spouse of',1,NULL,NULL),
+ (200,100,2,'b_a',178,'Spouse of',52,'Spouse of',1,NULL,NULL),
+ (201,101,1,'a_b',82,'Child of',117,'Parent of',1,NULL,NULL),
+ (202,101,1,'b_a',117,'Parent of',82,'Child of',1,NULL,NULL),
+ (203,102,1,'a_b',131,'Child of',117,'Parent of',1,NULL,NULL),
+ (204,102,1,'b_a',117,'Parent of',131,'Child of',1,NULL,NULL),
+ (205,103,1,'a_b',82,'Child of',140,'Parent of',1,NULL,NULL),
+ (206,103,1,'b_a',140,'Parent of',82,'Child of',1,NULL,NULL),
+ (207,104,1,'a_b',131,'Child of',140,'Parent of',1,NULL,NULL),
+ (208,104,1,'b_a',140,'Parent of',131,'Child of',1,NULL,NULL),
+ (209,105,4,'a_b',131,'Sibling of',82,'Sibling of',1,NULL,NULL),
+ (210,105,4,'b_a',82,'Sibling of',131,'Sibling of',1,NULL,NULL),
+ (211,106,8,'a_b',140,'Household Member of',77,'Household Member is',1,NULL,NULL),
+ (212,106,8,'b_a',77,'Household Member is',140,'Household Member of',1,NULL,NULL),
+ (213,107,8,'a_b',82,'Household Member of',77,'Household Member is',1,NULL,NULL),
+ (214,107,8,'b_a',77,'Household Member is',82,'Household Member of',1,NULL,NULL),
+ (215,108,8,'a_b',131,'Household Member of',77,'Household Member is',1,NULL,NULL),
+ (216,108,8,'b_a',77,'Household Member is',131,'Household Member of',1,NULL,NULL),
+ (217,109,7,'a_b',117,'Head of Household for',77,'Head of Household is',1,NULL,NULL),
+ (218,109,7,'b_a',77,'Head of Household is',117,'Head of Household for',1,NULL,NULL),
+ (219,110,2,'a_b',140,'Spouse of',117,'Spouse of',1,NULL,NULL),
+ (220,110,2,'b_a',117,'Spouse of',140,'Spouse of',1,NULL,NULL),
+ (221,111,1,'a_b',21,'Child of',89,'Parent of',1,NULL,NULL),
+ (222,111,1,'b_a',89,'Parent of',21,'Child of',1,NULL,NULL),
+ (223,112,1,'a_b',155,'Child of',89,'Parent of',1,NULL,NULL),
+ (224,112,1,'b_a',89,'Parent of',155,'Child of',1,NULL,NULL),
+ (225,113,1,'a_b',21,'Child of',181,'Parent of',1,NULL,NULL),
+ (226,113,1,'b_a',181,'Parent of',21,'Child of',1,NULL,NULL),
+ (227,114,1,'a_b',155,'Child of',181,'Parent of',1,NULL,NULL),
+ (228,114,1,'b_a',181,'Parent of',155,'Child of',1,NULL,NULL),
+ (229,115,4,'a_b',155,'Sibling of',21,'Sibling of',1,NULL,NULL),
+ (230,115,4,'b_a',21,'Sibling of',155,'Sibling of',1,NULL,NULL),
+ (231,116,8,'a_b',181,'Household Member of',34,'Household Member is',1,NULL,NULL),
+ (232,116,8,'b_a',34,'Household Member is',181,'Household Member of',1,NULL,NULL),
+ (233,117,8,'a_b',21,'Household Member of',34,'Household Member is',1,NULL,NULL),
+ (234,117,8,'b_a',34,'Household Member is',21,'Household Member of',1,NULL,NULL),
+ (235,118,8,'a_b',155,'Household Member of',34,'Household Member is',1,NULL,NULL),
+ (236,118,8,'b_a',34,'Household Member is',155,'Household Member of',1,NULL,NULL),
+ (237,119,7,'a_b',89,'Head of Household for',34,'Head of Household is',1,NULL,NULL),
+ (238,119,7,'b_a',34,'Head of Household is',89,'Head of Household for',1,NULL,NULL),
+ (239,120,2,'a_b',181,'Spouse of',89,'Spouse of',1,NULL,NULL),
+ (240,120,2,'b_a',89,'Spouse of',181,'Spouse of',1,NULL,NULL),
+ (241,121,1,'a_b',29,'Child of',164,'Parent of',1,NULL,NULL),
+ (242,121,1,'b_a',164,'Parent of',29,'Child of',1,NULL,NULL),
+ (243,122,1,'a_b',187,'Child of',164,'Parent of',1,NULL,NULL),
+ (244,122,1,'b_a',164,'Parent of',187,'Child of',1,NULL,NULL),
+ (245,123,1,'a_b',29,'Child of',11,'Parent of',1,NULL,NULL),
+ (246,123,1,'b_a',11,'Parent of',29,'Child of',1,NULL,NULL),
+ (247,124,1,'a_b',187,'Child of',11,'Parent of',1,NULL,NULL),
+ (248,124,1,'b_a',11,'Parent of',187,'Child of',1,NULL,NULL),
+ (249,125,4,'a_b',187,'Sibling of',29,'Sibling of',1,NULL,NULL),
+ (250,125,4,'b_a',29,'Sibling of',187,'Sibling of',1,NULL,NULL),
+ (251,126,8,'a_b',11,'Household Member of',20,'Household Member is',1,NULL,NULL),
+ (252,126,8,'b_a',20,'Household Member is',11,'Household Member of',1,NULL,NULL),
+ (253,127,8,'a_b',29,'Household Member of',20,'Household Member is',1,NULL,NULL),
+ (254,127,8,'b_a',20,'Household Member is',29,'Household Member of',1,NULL,NULL),
+ (255,128,8,'a_b',187,'Household Member of',20,'Household Member is',1,NULL,NULL),
+ (256,128,8,'b_a',20,'Household Member is',187,'Household Member of',1,NULL,NULL),
+ (257,129,7,'a_b',164,'Head of Household for',20,'Head of Household is',1,NULL,NULL),
+ (258,129,7,'b_a',20,'Head of Household is',164,'Head of Household for',1,NULL,NULL),
+ (259,130,2,'a_b',11,'Spouse of',164,'Spouse of',1,NULL,NULL),
+ (260,130,2,'b_a',164,'Spouse of',11,'Spouse of',1,NULL,NULL),
+ (261,131,1,'a_b',198,'Child of',176,'Parent of',1,NULL,NULL),
+ (262,131,1,'b_a',176,'Parent of',198,'Child of',1,NULL,NULL),
+ (263,132,1,'a_b',16,'Child of',176,'Parent of',1,NULL,NULL),
+ (264,132,1,'b_a',176,'Parent of',16,'Child of',1,NULL,NULL),
+ (265,133,1,'a_b',198,'Child of',112,'Parent of',1,NULL,NULL),
+ (266,133,1,'b_a',112,'Parent of',198,'Child of',1,NULL,NULL),
+ (267,134,1,'a_b',16,'Child of',112,'Parent of',1,NULL,NULL),
+ (268,134,1,'b_a',112,'Parent of',16,'Child of',1,NULL,NULL),
+ (269,135,4,'a_b',16,'Sibling of',198,'Sibling of',1,NULL,NULL),
+ (270,135,4,'b_a',198,'Sibling of',16,'Sibling of',1,NULL,NULL),
+ (271,136,8,'a_b',112,'Household Member of',148,'Household Member is',1,NULL,NULL),
+ (272,136,8,'b_a',148,'Household Member is',112,'Household Member of',1,NULL,NULL),
+ (273,137,8,'a_b',198,'Household Member of',148,'Household Member is',1,NULL,NULL),
+ (274,137,8,'b_a',148,'Household Member is',198,'Household Member of',1,NULL,NULL),
+ (275,138,8,'a_b',16,'Household Member of',148,'Household Member is',1,NULL,NULL),
+ (276,138,8,'b_a',148,'Household Member is',16,'Household Member of',1,NULL,NULL),
+ (277,139,7,'a_b',176,'Head of Household for',148,'Head of Household is',1,NULL,NULL),
+ (278,139,7,'b_a',148,'Head of Household is',176,'Head of Household for',1,NULL,NULL),
+ (279,140,2,'a_b',112,'Spouse of',176,'Spouse of',1,NULL,NULL),
+ (280,140,2,'b_a',176,'Spouse of',112,'Spouse of',1,NULL,NULL),
+ (281,141,1,'a_b',151,'Child of',196,'Parent of',1,NULL,NULL),
+ (282,141,1,'b_a',196,'Parent of',151,'Child of',1,NULL,NULL),
+ (283,142,1,'a_b',106,'Child of',196,'Parent of',1,NULL,NULL),
+ (284,142,1,'b_a',196,'Parent of',106,'Child of',1,NULL,NULL),
+ (285,143,1,'a_b',151,'Child of',153,'Parent of',1,NULL,NULL),
+ (286,143,1,'b_a',153,'Parent of',151,'Child of',1,NULL,NULL),
+ (287,144,1,'a_b',106,'Child of',153,'Parent of',1,NULL,NULL),
+ (288,144,1,'b_a',153,'Parent of',106,'Child of',1,NULL,NULL),
+ (289,145,4,'a_b',106,'Sibling of',151,'Sibling of',1,NULL,NULL),
+ (290,145,4,'b_a',151,'Sibling of',106,'Sibling of',1,NULL,NULL),
+ (291,146,8,'a_b',153,'Household Member of',79,'Household Member is',1,NULL,NULL),
+ (292,146,8,'b_a',79,'Household Member is',153,'Household Member of',1,NULL,NULL),
+ (293,147,8,'a_b',151,'Household Member of',79,'Household Member is',1,NULL,NULL),
+ (294,147,8,'b_a',79,'Household Member is',151,'Household Member of',1,NULL,NULL),
+ (295,148,8,'a_b',106,'Household Member of',79,'Household Member is',1,NULL,NULL),
+ (296,148,8,'b_a',79,'Household Member is',106,'Household Member of',1,NULL,NULL),
+ (297,149,7,'a_b',196,'Head of Household for',79,'Head of Household is',1,NULL,NULL),
+ (298,149,7,'b_a',79,'Head of Household is',196,'Head of Household for',1,NULL,NULL),
+ (299,150,2,'a_b',153,'Spouse of',196,'Spouse of',1,NULL,NULL),
+ (300,150,2,'b_a',196,'Spouse of',153,'Spouse of',1,NULL,NULL),
+ (301,151,1,'a_b',145,'Child of',45,'Parent of',1,NULL,NULL),
+ (302,151,1,'b_a',45,'Parent of',145,'Child of',1,NULL,NULL),
+ (303,152,1,'a_b',59,'Child of',45,'Parent of',1,NULL,NULL),
+ (304,152,1,'b_a',45,'Parent of',59,'Child of',1,NULL,NULL),
+ (305,153,1,'a_b',145,'Child of',137,'Parent of',1,NULL,NULL),
+ (306,153,1,'b_a',137,'Parent of',145,'Child of',1,NULL,NULL),
+ (307,154,1,'a_b',59,'Child of',137,'Parent of',1,NULL,NULL),
+ (308,154,1,'b_a',137,'Parent of',59,'Child of',1,NULL,NULL),
+ (309,155,4,'a_b',59,'Sibling of',145,'Sibling of',1,NULL,NULL),
+ (310,155,4,'b_a',145,'Sibling of',59,'Sibling of',1,NULL,NULL),
+ (311,156,8,'a_b',137,'Household Member of',162,'Household Member is',1,NULL,NULL),
+ (312,156,8,'b_a',162,'Household Member is',137,'Household Member of',1,NULL,NULL),
+ (313,157,8,'a_b',145,'Household Member of',162,'Household Member is',1,NULL,NULL),
+ (314,157,8,'b_a',162,'Household Member is',145,'Household Member of',1,NULL,NULL),
+ (315,158,8,'a_b',59,'Household Member of',162,'Household Member is',1,NULL,NULL),
+ (316,158,8,'b_a',162,'Household Member is',59,'Household Member of',1,NULL,NULL),
+ (317,159,7,'a_b',45,'Head of Household for',162,'Head of Household is',0,NULL,NULL),
+ (318,159,7,'b_a',162,'Head of Household is',45,'Head of Household for',0,NULL,NULL),
+ (319,160,2,'a_b',137,'Spouse of',45,'Spouse of',0,NULL,NULL),
+ (320,160,2,'b_a',45,'Spouse of',137,'Spouse of',0,NULL,NULL),
+ (321,161,1,'a_b',92,'Child of',183,'Parent of',1,NULL,NULL),
+ (322,161,1,'b_a',183,'Parent of',92,'Child of',1,NULL,NULL),
+ (323,162,1,'a_b',161,'Child of',183,'Parent of',1,NULL,NULL),
+ (324,162,1,'b_a',183,'Parent of',161,'Child of',1,NULL,NULL),
+ (325,163,1,'a_b',92,'Child of',35,'Parent of',1,NULL,NULL),
+ (326,163,1,'b_a',35,'Parent of',92,'Child of',1,NULL,NULL),
+ (327,164,1,'a_b',161,'Child of',35,'Parent of',1,NULL,NULL),
+ (328,164,1,'b_a',35,'Parent of',161,'Child of',1,NULL,NULL),
+ (329,165,4,'a_b',161,'Sibling of',92,'Sibling of',1,NULL,NULL),
+ (330,165,4,'b_a',92,'Sibling of',161,'Sibling of',1,NULL,NULL),
+ (331,166,8,'a_b',35,'Household Member of',123,'Household Member is',1,NULL,NULL),
+ (332,166,8,'b_a',123,'Household Member is',35,'Household Member of',1,NULL,NULL),
+ (333,167,8,'a_b',92,'Household Member of',123,'Household Member is',1,NULL,NULL),
+ (334,167,8,'b_a',123,'Household Member is',92,'Household Member of',1,NULL,NULL),
+ (335,168,8,'a_b',161,'Household Member of',123,'Household Member is',1,NULL,NULL),
+ (336,168,8,'b_a',123,'Household Member is',161,'Household Member of',1,NULL,NULL),
+ (337,169,7,'a_b',183,'Head of Household for',123,'Head of Household is',1,NULL,NULL),
+ (338,169,7,'b_a',123,'Head of Household is',183,'Head of Household for',1,NULL,NULL),
+ (339,170,2,'a_b',35,'Spouse of',183,'Spouse of',1,NULL,NULL),
+ (340,170,2,'b_a',183,'Spouse of',35,'Spouse of',1,NULL,NULL),
+ (341,171,1,'a_b',90,'Child of',160,'Parent of',1,NULL,NULL),
+ (342,171,1,'b_a',160,'Parent of',90,'Child of',1,NULL,NULL),
+ (343,172,1,'a_b',101,'Child of',160,'Parent of',1,NULL,NULL),
+ (344,172,1,'b_a',160,'Parent of',101,'Child of',1,NULL,NULL),
+ (345,173,1,'a_b',90,'Child of',168,'Parent of',1,NULL,NULL),
+ (346,173,1,'b_a',168,'Parent of',90,'Child of',1,NULL,NULL),
+ (347,174,1,'a_b',101,'Child of',168,'Parent of',1,NULL,NULL),
+ (348,174,1,'b_a',168,'Parent of',101,'Child of',1,NULL,NULL),
+ (349,175,4,'a_b',101,'Sibling of',90,'Sibling of',1,NULL,NULL),
+ (350,175,4,'b_a',90,'Sibling of',101,'Sibling of',1,NULL,NULL),
+ (351,176,8,'a_b',168,'Household Member of',37,'Household Member is',1,NULL,NULL),
+ (352,176,8,'b_a',37,'Household Member is',168,'Household Member of',1,NULL,NULL),
+ (353,177,8,'a_b',90,'Household Member of',37,'Household Member is',1,NULL,NULL),
+ (354,177,8,'b_a',37,'Household Member is',90,'Household Member of',1,NULL,NULL),
+ (355,178,8,'a_b',101,'Household Member of',37,'Household Member is',1,NULL,NULL),
+ (356,178,8,'b_a',37,'Household Member is',101,'Household Member of',1,NULL,NULL),
+ (357,179,7,'a_b',160,'Head of Household for',37,'Head of Household is',0,NULL,NULL),
+ (358,179,7,'b_a',37,'Head of Household is',160,'Head of Household for',0,NULL,NULL),
+ (359,180,2,'a_b',168,'Spouse of',160,'Spouse of',0,NULL,NULL),
+ (360,180,2,'b_a',160,'Spouse of',168,'Spouse of',0,NULL,NULL),
+ (361,181,1,'a_b',177,'Child of',46,'Parent of',1,NULL,NULL),
+ (362,181,1,'b_a',46,'Parent of',177,'Child of',1,NULL,NULL),
+ (363,182,1,'a_b',31,'Child of',46,'Parent of',1,NULL,NULL),
+ (364,182,1,'b_a',46,'Parent of',31,'Child of',1,NULL,NULL),
+ (365,183,1,'a_b',177,'Child of',22,'Parent of',1,NULL,NULL),
+ (366,183,1,'b_a',22,'Parent of',177,'Child of',1,NULL,NULL),
+ (367,184,1,'a_b',31,'Child of',22,'Parent of',1,NULL,NULL),
+ (368,184,1,'b_a',22,'Parent of',31,'Child of',1,NULL,NULL),
+ (369,185,4,'a_b',31,'Sibling of',177,'Sibling of',1,NULL,NULL),
+ (370,185,4,'b_a',177,'Sibling of',31,'Sibling of',1,NULL,NULL),
+ (371,186,8,'a_b',22,'Household Member of',91,'Household Member is',1,NULL,NULL),
+ (372,186,8,'b_a',91,'Household Member is',22,'Household Member of',1,NULL,NULL),
+ (373,187,8,'a_b',177,'Household Member of',91,'Household Member is',1,NULL,NULL),
+ (374,187,8,'b_a',91,'Household Member is',177,'Household Member of',1,NULL,NULL),
+ (375,188,8,'a_b',31,'Household Member of',91,'Household Member is',1,NULL,NULL),
+ (376,188,8,'b_a',91,'Household Member is',31,'Household Member of',1,NULL,NULL),
+ (377,189,7,'a_b',46,'Head of Household for',91,'Head of Household is',0,NULL,NULL),
+ (378,189,7,'b_a',91,'Head of Household is',46,'Head of Household for',0,NULL,NULL),
+ (379,190,2,'a_b',22,'Spouse of',46,'Spouse of',0,NULL,NULL),
+ (380,190,2,'b_a',46,'Spouse of',22,'Spouse of',0,NULL,NULL),
+ (381,191,1,'a_b',144,'Child of',93,'Parent of',1,NULL,NULL),
+ (382,191,1,'b_a',93,'Parent of',144,'Child of',1,NULL,NULL),
+ (383,192,1,'a_b',159,'Child of',93,'Parent of',1,NULL,NULL),
+ (384,192,1,'b_a',93,'Parent of',159,'Child of',1,NULL,NULL),
+ (385,193,1,'a_b',144,'Child of',197,'Parent of',1,NULL,NULL),
+ (386,193,1,'b_a',197,'Parent of',144,'Child of',1,NULL,NULL),
+ (387,194,1,'a_b',159,'Child of',197,'Parent of',1,NULL,NULL),
+ (388,194,1,'b_a',197,'Parent of',159,'Child of',1,NULL,NULL),
+ (389,195,4,'a_b',159,'Sibling of',144,'Sibling of',1,NULL,NULL),
+ (390,195,4,'b_a',144,'Sibling of',159,'Sibling of',1,NULL,NULL),
+ (391,196,8,'a_b',197,'Household Member of',174,'Household Member is',1,NULL,NULL),
+ (392,196,8,'b_a',174,'Household Member is',197,'Household Member of',1,NULL,NULL),
+ (393,197,8,'a_b',144,'Household Member of',174,'Household Member is',1,NULL,NULL),
+ (394,197,8,'b_a',174,'Household Member is',144,'Household Member of',1,NULL,NULL),
+ (395,198,8,'a_b',159,'Household Member of',174,'Household Member is',1,NULL,NULL),
+ (396,198,8,'b_a',174,'Household Member is',159,'Household Member of',1,NULL,NULL),
+ (397,199,7,'a_b',93,'Head of Household for',174,'Head of Household is',1,NULL,NULL),
+ (398,199,7,'b_a',174,'Head of Household is',93,'Head of Household for',1,NULL,NULL),
+ (399,200,2,'a_b',197,'Spouse of',93,'Spouse of',1,NULL,NULL),
+ (400,200,2,'b_a',93,'Spouse of',197,'Spouse of',1,NULL,NULL),
+ (401,201,5,'a_b',62,'Employee of',14,'Employer of',1,NULL,NULL),
+ (402,201,5,'b_a',14,'Employer of',62,'Employee of',1,NULL,NULL),
+ (403,202,5,'a_b',39,'Employee of',42,'Employer of',1,NULL,NULL),
+ (404,202,5,'b_a',42,'Employer of',39,'Employee of',1,NULL,NULL),
+ (405,203,5,'a_b',26,'Employee of',68,'Employer of',1,NULL,NULL),
+ (406,203,5,'b_a',68,'Employer of',26,'Employee of',1,NULL,NULL),
+ (407,204,5,'a_b',13,'Employee of',78,'Employer of',1,NULL,NULL),
+ (408,204,5,'b_a',78,'Employer of',13,'Employee of',1,NULL,NULL),
+ (409,205,5,'a_b',44,'Employee of',81,'Employer of',1,NULL,NULL),
+ (410,205,5,'b_a',81,'Employer of',44,'Employee of',1,NULL,NULL),
+ (411,206,5,'a_b',110,'Employee of',86,'Employer of',1,NULL,NULL),
+ (412,206,5,'b_a',86,'Employer of',110,'Employee of',1,NULL,NULL),
+ (413,207,5,'a_b',151,'Employee of',87,'Employer of',1,NULL,NULL),
+ (414,207,5,'b_a',87,'Employer of',151,'Employee of',1,NULL,NULL),
+ (415,208,5,'a_b',89,'Employee of',95,'Employer of',1,NULL,NULL),
+ (416,208,5,'b_a',95,'Employer of',89,'Employee of',1,NULL,NULL),
+ (417,209,5,'a_b',35,'Employee of',100,'Employer of',1,NULL,NULL),
+ (418,209,5,'b_a',100,'Employer of',35,'Employee of',1,NULL,NULL),
+ (419,210,5,'a_b',17,'Employee of',125,'Employer of',1,NULL,NULL),
+ (420,210,5,'b_a',125,'Employer of',17,'Employee of',1,NULL,NULL),
+ (421,211,5,'a_b',67,'Employee of',129,'Employer of',1,NULL,NULL),
+ (422,211,5,'b_a',129,'Employer of',67,'Employee of',1,NULL,NULL),
+ (423,212,5,'a_b',56,'Employee of',141,'Employer of',1,NULL,NULL),
+ (424,212,5,'b_a',141,'Employer of',56,'Employee of',1,NULL,NULL),
+ (425,213,5,'a_b',195,'Employee of',146,'Employer of',1,NULL,NULL),
+ (426,213,5,'b_a',146,'Employer of',195,'Employee of',1,NULL,NULL),
+ (427,214,5,'a_b',50,'Employee of',166,'Employer of',1,NULL,NULL),
+ (428,214,5,'b_a',166,'Employer of',50,'Employee of',1,NULL,NULL),
+ (429,215,5,'a_b',7,'Employee of',167,'Employer of',1,NULL,NULL),
+ (430,215,5,'b_a',167,'Employer of',7,'Employee of',1,NULL,NULL),
+ (431,216,5,'a_b',58,'Employee of',169,'Employer of',1,NULL,NULL),
+ (432,216,5,'b_a',169,'Employer of',58,'Employee of',1,NULL,NULL),
+ (433,217,5,'a_b',113,'Employee of',182,'Employer of',1,NULL,NULL),
+ (434,217,5,'b_a',182,'Employer of',113,'Employee of',1,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_relationship_cache` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -11877,89 +11890,89 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_subscription_history` WRITE;
 /*!40000 ALTER TABLE `civicrm_subscription_history` DISABLE KEYS */;
 INSERT INTO `civicrm_subscription_history` (`id`, `contact_id`, `group_id`, `date`, `method`, `status`, `tracking`) VALUES
- (1,121,2,'2020-11-18 01:06:09','Email','Added',NULL),
- (2,60,2,'2021-03-20 07:12:36','Email','Added',NULL),
- (3,65,2,'2020-10-05 11:10:54','Admin','Added',NULL),
- (4,39,2,'2021-03-08 10:49:20','Email','Added',NULL),
- (5,58,2,'2021-01-13 21:08:36','Admin','Added',NULL),
- (6,94,2,'2021-01-14 13:14:51','Admin','Added',NULL),
- (7,164,2,'2020-08-24 01:27:36','Email','Added',NULL),
- (8,81,2,'2021-03-17 07:21:16','Email','Added',NULL),
- (9,187,2,'2021-03-04 00:10:47','Email','Added',NULL),
- (10,195,2,'2020-10-25 02:01:03','Email','Added',NULL),
- (11,69,2,'2021-02-02 11:00:37','Admin','Added',NULL),
- (12,6,2,'2021-06-08 10:51:36','Admin','Added',NULL),
- (13,4,2,'2021-07-02 18:33:00','Email','Added',NULL),
- (14,173,2,'2021-03-16 00:43:35','Admin','Added',NULL),
- (15,159,2,'2020-08-15 02:46:59','Email','Added',NULL),
- (16,33,2,'2021-01-28 01:18:10','Email','Added',NULL),
- (17,185,2,'2020-08-13 19:56:27','Admin','Added',NULL),
- (18,19,2,'2020-08-27 20:46:44','Email','Added',NULL),
- (19,103,2,'2021-02-20 11:20:02','Email','Added',NULL),
- (20,10,2,'2021-04-05 01:54:11','Email','Added',NULL),
- (21,153,2,'2020-12-13 01:03:09','Admin','Added',NULL),
- (22,119,2,'2020-12-08 04:13:16','Email','Added',NULL),
- (23,137,2,'2021-03-28 20:21:40','Admin','Added',NULL),
- (24,52,2,'2021-06-15 09:10:39','Admin','Added',NULL),
- (25,30,2,'2021-05-07 07:55:07','Admin','Added',NULL),
- (26,165,2,'2021-06-17 23:10:46','Admin','Added',NULL),
- (27,162,2,'2020-09-22 13:47:16','Admin','Added',NULL),
- (28,131,2,'2021-03-23 15:24:02','Admin','Added',NULL),
- (29,171,2,'2020-10-20 14:38:33','Email','Added',NULL),
- (30,181,2,'2021-04-20 19:53:25','Email','Added',NULL),
- (31,27,2,'2020-09-19 04:43:41','Email','Added',NULL),
- (32,17,2,'2021-04-23 13:32:34','Admin','Added',NULL),
- (33,37,2,'2021-05-19 12:03:48','Email','Added',NULL),
- (34,149,2,'2020-12-31 18:28:15','Admin','Added',NULL),
- (35,199,2,'2021-04-26 03:53:18','Admin','Added',NULL),
- (36,115,2,'2021-05-03 06:30:49','Admin','Added',NULL),
- (37,99,2,'2020-10-29 04:03:40','Email','Added',NULL),
- (38,201,2,'2021-05-19 12:24:54','Email','Added',NULL),
- (39,166,2,'2021-05-19 19:09:02','Admin','Added',NULL),
- (40,138,2,'2021-06-19 15:12:00','Email','Added',NULL),
- (41,61,2,'2020-09-19 08:59:13','Email','Added',NULL),
- (42,56,2,'2020-07-28 22:28:32','Email','Added',NULL),
- (43,172,2,'2020-11-13 07:30:27','Email','Added',NULL),
- (44,157,2,'2021-04-10 01:30:38','Admin','Added',NULL),
- (45,71,2,'2020-11-15 19:54:33','Admin','Added',NULL),
- (46,32,2,'2021-06-12 08:50:15','Admin','Added',NULL),
- (47,21,2,'2020-09-22 02:21:03','Admin','Added',NULL),
- (48,25,2,'2021-02-17 23:14:19','Admin','Added',NULL),
- (49,49,2,'2020-12-25 03:59:16','Email','Added',NULL),
- (50,11,2,'2021-07-25 11:11:20','Email','Added',NULL),
- (51,78,2,'2021-04-29 14:12:17','Email','Added',NULL),
- (52,133,2,'2020-10-05 15:27:32','Admin','Added',NULL),
- (53,184,2,'2020-09-24 15:33:49','Email','Added',NULL),
- (54,198,2,'2021-01-01 19:00:56','Admin','Added',NULL),
- (55,54,2,'2020-08-02 13:42:45','Email','Added',NULL),
- (56,55,2,'2021-03-21 07:17:32','Admin','Added',NULL),
- (57,111,2,'2021-05-26 08:38:56','Admin','Added',NULL),
- (58,146,2,'2021-03-07 07:39:03','Email','Added',NULL),
- (59,35,2,'2020-12-27 06:57:05','Email','Added',NULL),
- (60,50,2,'2020-07-26 18:29:31','Email','Added',NULL),
- (61,170,3,'2021-05-09 03:35:20','Email','Added',NULL),
- (62,91,3,'2021-03-22 00:48:42','Admin','Added',NULL),
- (63,13,3,'2021-02-24 21:26:02','Email','Added',NULL),
- (64,134,3,'2020-12-10 13:38:39','Admin','Added',NULL),
- (65,112,3,'2021-07-08 19:33:44','Email','Added',NULL),
- (66,177,3,'2021-06-11 22:31:24','Email','Added',NULL),
- (67,114,3,'2021-06-26 05:37:35','Email','Added',NULL),
- (68,175,3,'2021-07-10 22:54:12','Email','Added',NULL),
- (69,182,3,'2021-02-20 05:07:50','Email','Added',NULL),
- (70,2,3,'2021-01-12 23:39:35','Admin','Added',NULL),
- (71,90,3,'2021-05-31 09:10:54','Admin','Added',NULL),
- (72,53,3,'2020-10-16 17:06:28','Admin','Added',NULL),
- (73,80,3,'2020-08-12 11:37:58','Admin','Added',NULL),
- (74,20,3,'2021-02-09 18:39:30','Admin','Added',NULL),
- (75,41,3,'2020-12-13 23:20:42','Admin','Added',NULL),
- (76,121,4,'2021-04-09 11:38:22','Email','Added',NULL),
- (77,81,4,'2021-05-03 22:36:49','Email','Added',NULL),
- (78,159,4,'2021-05-30 15:36:21','Email','Added',NULL),
- (79,119,4,'2021-03-07 18:48:41','Email','Added',NULL),
- (80,171,4,'2021-03-13 07:38:03','Admin','Added',NULL),
- (81,115,4,'2020-08-25 20:58:06','Admin','Added',NULL),
- (82,172,4,'2021-07-09 17:37:51','Email','Added',NULL),
- (83,11,4,'2021-04-03 13:48:03','Admin','Added',NULL);
+ (1,104,2,'2021-04-08 01:12:45','Admin','Added',NULL),
+ (2,111,2,'2021-07-12 11:42:15','Admin','Added',NULL),
+ (3,105,2,'2021-07-08 05:01:34','Email','Added',NULL),
+ (4,48,2,'2021-01-06 05:01:51','Email','Added',NULL),
+ (5,4,2,'2020-12-29 23:37:50','Admin','Added',NULL),
+ (6,188,2,'2021-08-03 20:20:00','Admin','Added',NULL),
+ (7,130,2,'2021-02-01 15:10:11','Email','Added',NULL),
+ (8,200,2,'2021-02-28 11:02:55','Email','Added',NULL),
+ (9,107,2,'2020-10-23 12:59:12','Email','Added',NULL),
+ (10,195,2,'2021-07-29 06:16:39','Admin','Added',NULL),
+ (11,156,2,'2020-11-27 23:11:11','Email','Added',NULL),
+ (12,157,2,'2020-12-07 04:26:56','Admin','Added',NULL),
+ (13,121,2,'2021-05-19 21:15:46','Admin','Added',NULL),
+ (14,28,2,'2021-01-01 07:18:44','Admin','Added',NULL),
+ (15,172,2,'2020-11-21 07:25:31','Email','Added',NULL),
+ (16,39,2,'2021-04-16 07:48:23','Email','Added',NULL),
+ (17,13,2,'2021-02-09 02:46:33','Admin','Added',NULL),
+ (18,190,2,'2021-02-14 02:18:15','Admin','Added',NULL),
+ (19,138,2,'2021-08-23 04:26:13','Email','Added',NULL),
+ (20,191,2,'2020-12-19 07:51:21','Email','Added',NULL),
+ (21,7,2,'2021-08-26 20:14:40','Email','Added',NULL),
+ (22,67,2,'2021-06-25 23:06:27','Admin','Added',NULL),
+ (23,30,2,'2020-11-24 03:35:46','Email','Added',NULL),
+ (24,109,2,'2021-05-16 09:12:14','Admin','Added',NULL),
+ (25,98,2,'2021-06-02 09:27:22','Email','Added',NULL),
+ (26,94,2,'2021-08-12 20:44:08','Email','Added',NULL),
+ (27,116,2,'2021-09-06 18:39:40','Email','Added',NULL),
+ (28,32,2,'2021-09-15 02:03:20','Email','Added',NULL),
+ (29,12,2,'2021-02-21 01:54:02','Email','Added',NULL),
+ (30,88,2,'2021-06-30 20:12:33','Email','Added',NULL),
+ (31,99,2,'2021-10-03 20:29:01','Admin','Added',NULL),
+ (32,3,2,'2021-09-07 16:44:23','Email','Added',NULL),
+ (33,73,2,'2021-09-07 11:39:42','Email','Added',NULL),
+ (34,36,2,'2021-02-21 07:01:18','Admin','Added',NULL),
+ (35,53,2,'2021-10-06 02:14:58','Admin','Added',NULL),
+ (36,83,2,'2020-11-13 01:21:37','Admin','Added',NULL),
+ (37,132,2,'2021-01-08 18:51:38','Admin','Added',NULL),
+ (38,171,2,'2020-10-25 04:27:13','Admin','Added',NULL),
+ (39,152,2,'2021-01-20 14:12:42','Email','Added',NULL),
+ (40,149,2,'2021-03-18 11:07:07','Email','Added',NULL),
+ (41,199,2,'2021-08-03 13:05:06','Admin','Added',NULL),
+ (42,165,2,'2020-11-19 15:01:24','Email','Added',NULL),
+ (43,25,2,'2021-08-27 23:04:01','Admin','Added',NULL),
+ (44,27,2,'2020-10-20 21:03:39','Email','Added',NULL),
+ (45,163,2,'2021-02-06 21:51:51','Admin','Added',NULL),
+ (46,8,2,'2021-06-26 13:14:11','Admin','Added',NULL),
+ (47,103,2,'2021-06-11 22:03:12','Email','Added',NULL),
+ (48,23,2,'2020-11-19 13:06:30','Admin','Added',NULL),
+ (49,69,2,'2020-12-02 23:40:29','Admin','Added',NULL),
+ (50,38,2,'2021-08-14 10:52:55','Email','Added',NULL),
+ (51,122,2,'2021-06-03 06:27:34','Admin','Added',NULL),
+ (52,55,2,'2021-09-16 23:01:13','Admin','Added',NULL),
+ (53,63,2,'2021-10-12 16:58:42','Admin','Added',NULL),
+ (54,72,2,'2021-01-19 10:31:59','Email','Added',NULL),
+ (55,136,2,'2021-01-17 07:56:47','Email','Added',NULL),
+ (56,142,2,'2021-01-10 16:12:26','Email','Added',NULL),
+ (57,18,2,'2021-07-07 02:44:45','Email','Added',NULL),
+ (58,44,2,'2021-02-20 05:59:51','Email','Added',NULL),
+ (59,179,2,'2020-12-16 12:03:28','Admin','Added',NULL),
+ (60,57,2,'2020-12-07 07:08:44','Admin','Added',NULL),
+ (61,114,3,'2020-12-26 20:06:55','Admin','Added',NULL),
+ (62,15,3,'2020-10-18 21:21:24','Admin','Added',NULL),
+ (63,128,3,'2021-05-06 08:17:43','Admin','Added',NULL),
+ (64,85,3,'2020-11-01 05:28:35','Admin','Added',NULL),
+ (65,139,3,'2020-10-30 12:33:46','Email','Added',NULL),
+ (66,194,3,'2021-07-08 02:06:21','Email','Added',NULL),
+ (67,43,3,'2021-03-22 01:50:45','Email','Added',NULL),
+ (68,26,3,'2021-08-04 17:48:55','Email','Added',NULL),
+ (69,47,3,'2021-03-10 23:26:48','Email','Added',NULL),
+ (70,61,3,'2020-11-30 18:48:44','Admin','Added',NULL),
+ (71,54,3,'2021-09-27 17:59:22','Email','Added',NULL),
+ (72,175,3,'2020-12-26 21:17:02','Admin','Added',NULL),
+ (73,70,3,'2020-12-12 09:58:11','Email','Added',NULL),
+ (74,24,3,'2021-05-08 22:05:16','Email','Added',NULL),
+ (75,49,3,'2021-01-17 00:49:29','Admin','Added',NULL),
+ (76,104,4,'2021-07-03 05:12:46','Email','Added',NULL),
+ (77,200,4,'2020-10-30 16:08:16','Email','Added',NULL),
+ (78,172,4,'2021-05-22 23:27:36','Email','Added',NULL),
+ (79,67,4,'2021-05-24 02:03:24','Admin','Added',NULL),
+ (80,12,4,'2021-02-25 12:47:30','Email','Added',NULL),
+ (81,83,4,'2021-08-19 05:30:12','Email','Added',NULL),
+ (82,25,4,'2021-06-12 10:44:40','Email','Added',NULL),
+ (83,38,4,'2021-06-04 22:03:09','Admin','Added',NULL);
 /*!40000 ALTER TABLE `civicrm_subscription_history` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -12176,23 +12189,21 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_website` WRITE;
 /*!40000 ALTER TABLE `civicrm_website` DISABLE KEYS */;
 INSERT INTO `civicrm_website` (`id`, `contact_id`, `url`, `website_type_id`) VALUES
- (1,179,'http://kaneohetrust.org',1),
- (2,167,'http://urbancenter.org',1),
- (3,154,'http://charlotteassociation.org',1),
- (4,88,'http://globalsystems.org',1),
- (5,70,'http://dowlentechnology.org',1),
- (6,191,'http://ruralmusic.org',1),
- (7,188,'http://jacksoneducation.org',1),
- (8,57,'http://cornettsvilleliteracy.org',1),
- (9,109,'http://ruralalliance.org',1),
- (10,34,'http://ruralsustainability.org',1),
- (11,152,'http://creativeassociation.org',1),
- (12,76,'http://secondpartners.org',1),
- (13,97,'http://sierrasystems.org',1),
- (14,125,'http://dawsonassociation.org',1),
- (15,31,'http://idahocollective.org',1),
- (16,120,'http://parrishadvocacyinitiative.org',1),
- (17,73,'http://dowlenculturetrust.org',1);
+ (1,167,'http://lincolncollective.org',1),
+ (2,95,'http://acpoetryassociation.org',1),
+ (3,42,'http://ruraltrust.org',1),
+ (4,169,'http://ssartsassociation.org',1),
+ (5,81,'http://globaltrust.org',1),
+ (6,134,'http://sierrafoodservices.org',1),
+ (7,141,'http://urbanempowerment.org',1),
+ (8,125,'http://lhtechnologycollective.org',1),
+ (9,68,'http://oklahomaartscollective.org',1),
+ (10,173,'http://mchealthnetwork.org',1),
+ (11,100,'http://hawaiicenter.org',1),
+ (12,14,'http://greenassociation.org',1),
+ (13,87,'http://boisepartners.org',1),
+ (14,129,'http://globalfellowship.org',1),
+ (15,182,'http://globaleducationsystems.org',1);
 /*!40000 ALTER TABLE `civicrm_website` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -12224,12 +12235,13 @@ UNLOCK TABLES;
 
 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
 /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
 
--- Dump completed on 2021-07-26 14:08:52
+-- Dump completed on 2021-10-13 21:23:56
 -- +--------------------------------------------------------------------+
 -- | Copyright CiviCRM LLC. All rights reserved.                        |
 -- |                                                                    |
diff --git a/civicrm/sql/civicrm_navigation.mysql b/civicrm/sql/civicrm_navigation.mysql
index 1fd598695d..e4cf1d39fc 100644
--- a/civicrm/sql/civicrm_navigation.mysql
+++ b/civicrm/sql/civicrm_navigation.mysql
@@ -34,7 +34,7 @@ INSERT INTO `civicrm_dashboard`
 -- event badge
 INSERT INTO civicrm_print_label (title, name, description, label_format_name, label_type_id, is_default, is_reserved, is_active, data)
 VALUES
-('Annual Conference Hanging Badge (Avery 5395)', 'Annual_Conference_Hanging_Badge', 'For our annual conference', 'Avery 5395', 1, 1, 1, 1, '{"title":"Annual Conference Hanging Badge (Avery 5395)","label_format_name":"Avery 5395","description":"For our annual conference","token":{"1":"{event.title}","2":"{contact.display_name}","3":"{contact.current_employer}","4":"{event.start_date}"},"font_name":{"1":"dejavusans","2":"dejavusans","3":"dejavusans","4":"dejavusans"},"font_size":{"1":"9","2":"20","3":"15","4":"9"},"font_style":{"1":"","2":"","3":"","4":""},"text_alignment":{"1":"L","2":"C","3":"C","4":"R"},"barcode_type":"barcode","barcode_alignment":"R","image_1":"","image_2":"","is_default":"1","is_active":"1","is_reserved":"1","_qf_default":"Layout:next","_qf_Layout_refresh":"Save and Preview"}');
+('Annual Conference Hanging Badge (Avery 5395)', 'Annual_Conference_Hanging_Badge', 'For our annual conference', 'Avery 5395', 1, 1, 1, 1, '{"title":"Annual Conference Hanging Badge (Avery 5395)","label_format_name":"Avery 5395","description":"For our annual conference","token":{"1":"{event.title}","2":"{contact.display_name}","3":"{contact.current_employer}","4":"{event.start_date|crmDate:\"%B %E%f\"}"},"font_name":{"1":"dejavusans","2":"dejavusans","3":"dejavusans","4":"dejavusans"},"font_size":{"1":"9","2":"20","3":"15","4":"9"},"font_style":{"1":"","2":"","3":"","4":""},"text_alignment":{"1":"L","2":"C","3":"C","4":"R"},"barcode_type":"barcode","barcode_alignment":"R","image_1":"","image_2":"","is_default":"1","is_active":"1","is_reserved":"1","_qf_default":"Layout:next","_qf_Layout_refresh":"Save and Preview"}');
 
 -- navigation
 
diff --git a/civicrm/templates/CRM/Activity/Form/Search/Common.tpl b/civicrm/templates/CRM/Activity/Form/Search/Common.tpl
index 4b26623da3..b8eeb9dda5 100644
--- a/civicrm/templates/CRM/Activity/Form/Search/Common.tpl
+++ b/civicrm/templates/CRM/Activity/Form/Search/Common.tpl
@@ -14,7 +14,7 @@
   </td>
 </tr>
 <tr>
-  {if $form.activity_type_id}
+  {if !empty($form.activity_type_id)}
     <td><label>{$form.activity_type_id.label}</label>
        <br />
        {$form.activity_type_id.html}
@@ -22,9 +22,9 @@
   {else}
     <td>&nbsp;</td>
   {/if}
-  {if $form.activity_survey_id || $buildEngagementLevel}
+  {if !empty($form.activity_survey_id) || $buildEngagementLevel}
     <td>
-      {if $form.activity_survey_id}
+      {if !empty($form.activity_survey_id)}
         <label>{$form.activity_survey_id.label}</label>
         <br/>
         {$form.activity_survey_id.html}
@@ -43,14 +43,14 @@
   <td>
     <table>
       <tr><td>
-        {if $form.parent_id}
+        {if !empty($form.parent_id)}
           <label>{ts}Has a Followup Activity?{/ts}</label>
           <br/>
           {$form.parent_id.html}
         {/if}
       </td></tr>
       <tr><td>
-      {if $form.followup_parent_id}
+      {if !empty($form.followup_parent_id)}
           <label>{ts}Is a Followup Activity?{/ts}</label>
           <br/>
           {$form.followup_parent_id.html}
@@ -60,7 +60,7 @@
   </td>
 </tr>
 
-{if $form.activity_tags}
+{if !empty($form.activity_tags)}
   <tr>
     <td><label>{$form.activity_tags.label}</label>
       <br/>
diff --git a/civicrm/templates/CRM/Activity/Form/Selector.tpl b/civicrm/templates/CRM/Activity/Form/Selector.tpl
index c8ac5d4ed1..cdd6fb7a1f 100644
--- a/civicrm/templates/CRM/Activity/Form/Selector.tpl
+++ b/civicrm/templates/CRM/Activity/Form/Selector.tpl
@@ -21,10 +21,12 @@
        {/if}
        {foreach from=$columnHeaders item=header}
           <th scope="col">
-          {if $header.sort}
+          {if isset($header.sort)}
             {assign var='key' value=$header.sort}
-            {$sort->_response.$key.link}
-          {else}
+            {if !empty($sort)}
+              {$sort->_response.$key.link}
+            {/if}
+          {elseif isset($header.name)}
             {$header.name}
           {/if}
           </th>
@@ -52,22 +54,20 @@
       {/if}
     </td>
 
-  <td>{$row.activity_subject}</td>
+  <td>{if isset($row.activity_subject)}{$row.activity_subject|purify}{/if}</td>
 
     <td>
     {if !$row.source_contact_id}
       <em>n/a</em>
-    {elseif $contactId NEQ $row.source_contact_id}
-      <a href="{crmURL p='civicrm/contact/view' q="reset=1&cid=`$row.source_contact_id`"}" title="{ts}View contact{/ts}">{$row.source_contact_name}</a>
     {else}
-      {$row.source_contact_name}
+      <a href="{crmURL p='civicrm/contact/view' q="reset=1&cid=`$row.source_contact_id`"}" title="{ts}View contact{/ts}">{$row.source_contact_name|purify}</a>
     {/if}
     </td>
 
     <td>
     {if $row.mailingId}
       <a href="{$row.mailingId}" title="{ts}View Mailing Report{/ts}">{$row.recipients}</a>
-    {elseif $row.recipients}
+    {elseif isset($row.recipients)}
       {$row.recipients}
     {elseif !$row.target_contact_name}
       <em>n/a</em>
@@ -102,7 +102,14 @@
 
     <td>{$row.activity_status}</td>
 
-    <td>{$row.action|replace:'xx':$row.id}</td>
+    <td>
+      {if (!empty($row.id))}
+        {$row.action|replace:'xx':$row.id}
+      {else}
+        {$row.action}
+      {/if}
+    </td>
+
   </tr>
   {/foreach}
 
diff --git a/civicrm/templates/CRM/Admin/Form/MessageTemplates.tpl b/civicrm/templates/CRM/Admin/Form/MessageTemplates.tpl
index ddff12a700..d00fb30478 100644
--- a/civicrm/templates/CRM/Admin/Form/MessageTemplates.tpl
+++ b/civicrm/templates/CRM/Admin/Form/MessageTemplates.tpl
@@ -118,7 +118,7 @@
         </div><!-- /.crm-accordion-body -->
       </div><!-- /.crm-accordion-wrapper -->
 
-      {if !$workflow_id}
+      {if !$isWorkflow}
         <table class="form-layout-compressed">
           <tr>
             <td class="label-left">{$form.is_active.label}</td>
diff --git a/civicrm/templates/CRM/Admin/Form/Navigation.tpl b/civicrm/templates/CRM/Admin/Form/Navigation.tpl
index 5885b230cb..3a37bbc79c 100644
--- a/civicrm/templates/CRM/Admin/Form/Navigation.tpl
+++ b/civicrm/templates/CRM/Admin/Form/Navigation.tpl
@@ -22,7 +22,7 @@
       <td class="label">{$form.icon.label} {help id="id-menu_icon" file="CRM/Admin/Form/Navigation.hlp"}</td>
       <td>{$form.icon.html} </td>
     </tr>
-    {if $form.parent_id.html}
+    {if !empty($form.parent_id.html)}
       <tr class="crm-navigation-form-block-parent_id">
         <td class="label">{$form.parent_id.label} {help id="id-parent" file="CRM/Admin/Form/Navigation.hlp"}</td>
         <td>{$form.parent_id.html}</td>
diff --git a/civicrm/templates/CRM/Admin/Form/PaymentProcessor.tpl b/civicrm/templates/CRM/Admin/Form/PaymentProcessor.tpl
index a18fde9943..28827b4409 100644
--- a/civicrm/templates/CRM/Admin/Form/PaymentProcessor.tpl
+++ b/civicrm/templates/CRM/Admin/Form/PaymentProcessor.tpl
@@ -58,37 +58,37 @@
         <tr class="crm-paymentProcessor-form-block-user_name">
             <td class="label">{$form.user_name.label}</td><td>{$form.user_name.html} {help id=$ppTypeName|cat:'-live-user-name' title=$form.user_name.label}</td>
         </tr>
-{if $form.password}
+{if !empty($form.password)}
         <tr class="crm-paymentProcessor-form-block-password">
             <td class="label">{$form.password.label}</td><td>{$form.password.html} {help id=$ppTypeName|cat:'-live-password' title=$form.password.label}</td>
         </tr>
 {/if}
-{if $form.signature}
+{if !empty($form.signature)}
         <tr class="crm-paymentProcessor-form-block-signature">
             <td class="label">{$form.signature.label}</td><td>{$form.signature.html} {help id=$ppTypeName|cat:'-live-signature' title=$form.signature.label}</td>
         </tr>
 {/if}
-{if $form.subject}
+{if !empty($form.subject)}
         <tr class="crm-paymentProcessor-form-block-subject">
             <td class="label">{$form.subject.label}</td><td>{$form.subject.html} {help id=$ppTypeName|cat:'-live-subject' title=$form.subject.label}</td>
         </tr>
 {/if}
-{if $form.url_site}
+{if !empty($form.url_site)}
         <tr class="crm-paymentProcessor-form-block-url_site">
             <td class="label">{$form.url_site.label}</td><td>{$form.url_site.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-live-url-site' title=$form.url_site.label}</td>
         </tr>
 {/if}
-{if $form.url_api}
+{if !empty($form.url_api)}
         <tr class="crm-paymentProcessor-form-block-url_api">
             <td class="label">{$form.url_api.label}</td><td>{$form.url_api.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-live-url-api' title=$form.url_api.label}</td>
         </tr>
 {/if}
-{if $form.url_recur}
+{if !empty($form.url_recur)}
         <tr class="crm-paymentProcessor-form-block-url_recur">
             <td class="label">{$form.url_recur.label}</td><td>{$form.url_recur.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-live-url-recur' title=$form.url_recur.label}</td>
         </tr>
 {/if}
-{if $form.url_button}
+{if !empty($form.url_button)}
         <tr class="crm-paymentProcessor-form-block-url_button">
             <td class="label">{$form.url_button.label}</td><td>{$form.url_button.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-live-url-button' title=$form.url_button.label}</td>
         </tr>
@@ -101,37 +101,37 @@
     <table class="form-layout-compressed">
         <tr class="crm-paymentProcessor-form-block-test_user_name">
             <td class="label">{$form.test_user_name.label}</td><td>{$form.test_user_name.html} {help id=$ppTypeName|cat:'-test-user-name' title=$form.test_user_name.label}</td></tr>
-{if $form.test_password}
+{if !empty($form.test_password)}
         <tr class="crm-paymentProcessor-form-block-test_password">
             <td class="label">{$form.test_password.label}</td><td>{$form.test_password.html} {help id=$ppTypeName|cat:'-test-password' title=$form.test_password.label}</td>
         </tr>
 {/if}
-{if $form.test_signature}
+{if !empty($form.test_signature)}
         <tr class="crm-paymentProcessor-form-block-test_signature">
             <td class="label">{$form.test_signature.label}</td><td>{$form.test_signature.html} {help id=$ppTypeName|cat:'-test-signature' title=$form.test_signature.label}</td>
         </tr>
 {/if}
-{if $form.test_subject}
+{if !empty($form.test_subject)}
         <tr class="crm-paymentProcessor-form-block-test_subject">
             <td class="label">{$form.test_subject.label}</td><td>{$form.test_subject.html} {help id=$ppTypeName|cat:'-test-subject' title=$form.test_subject.label}</td>
         </tr>
 {/if}
-{if $form.test_url_site}
+{if !empty($form.test_url_site)}
         <tr class="crm-paymentProcessor-form-block-test_url_site">
             <td class="label">{$form.test_url_site.label}</td><td>{$form.test_url_site.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-test-url-site' title=$form.test_url_site.label}</td>
         </tr>
 {/if}
-{if $form.test_url_api}
+{if !empty($form.test_url_api)}
         <tr class="crm-paymentProcessor-form-block-test_url_api">
             <td class="label">{$form.test_url_api.label}</td><td>{$form.test_url_api.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-test-url-api' title=$form.test_url_api.label}</td>
         </tr>
 {/if}
-{if $form.test_url_recur}
+{if !empty($form.test_url_recur)}
         <tr class="crm-paymentProcessor-form-block-test_url_recur">
             <td class="label">{$form.test_url_recur.label}</td><td>{$form.test_url_recur.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-test-url-recur' title=$form.test_url_recur.label}</td>
         </tr>
 {/if}
-{if $form.test_url_button}
+{if !empty($form.test_url_button)}
         <tr class="crm-paymentProcessor-form-block-test_url_button">
             <td class="label">{$form.test_url_button.label}</td><td>{$form.test_url_button.html|crmAddClass:huge} {help id=$ppTypeName|cat:'-test-url-button' title=$form.test_url_button.label}</td>
         </tr>
diff --git a/civicrm/templates/CRM/Admin/Form/Preferences/Display.tpl b/civicrm/templates/CRM/Admin/Form/Preferences/Display.tpl
index fa3cfc3629..0643d07a43 100644
--- a/civicrm/templates/CRM/Admin/Form/Preferences/Display.tpl
+++ b/civicrm/templates/CRM/Admin/Form/Preferences/Display.tpl
@@ -212,7 +212,7 @@
   </table>
   <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
 </div>
-{if $form.contact_edit_options.html}
+{if !empty($form.contact_edit_options.html)}
   {literal}
     <script type="text/javascript">
       CRM.$(function($) {
diff --git a/civicrm/templates/CRM/Admin/Form/PreferencesDate.tpl b/civicrm/templates/CRM/Admin/Form/PreferencesDate.tpl
index ff03844184..a31f0b7f79 100644
--- a/civicrm/templates/CRM/Admin/Form/PreferencesDate.tpl
+++ b/civicrm/templates/CRM/Admin/Form/PreferencesDate.tpl
@@ -20,7 +20,7 @@
             <tr class="crm-preferences-date-form-block-date_format">
                 <td class="label">{$form.date_format.label}</td><td>{$form.date_format.html}</td>
             </tr>
-            {if $form.time_format.label}
+            {if !empty($form.time_format.label)}
             <tr class="crm-preferences-date-form-block-time_format">
                 <td class="label">{$form.time_format.label}</td><td>{$form.time_format.html}</td>
             </tr>
diff --git a/civicrm/templates/CRM/Admin/Form/Setting/Localization.tpl b/civicrm/templates/CRM/Admin/Form/Setting/Localization.tpl
index de22fc47b2..ea82fd5f11 100644
--- a/civicrm/templates/CRM/Admin/Form/Setting/Localization.tpl
+++ b/civicrm/templates/CRM/Admin/Form/Setting/Localization.tpl
@@ -19,7 +19,7 @@
                 <td class="label">{$form.lcMessages.label}</td>
                 <td>{$form.lcMessages.html}</td>
             </tr>
-           {if $form.languageLimit}
+           {if !empty($form.languageLimit)}
              <tr class="crm-localization-form-block-languageLimit">
                  <td class="label">{$form.languageLimit.label}</td>
                  <td>{$form.languageLimit.html}<br />
@@ -37,7 +37,7 @@
                 <span class="description">{$settings_fields.inheritLocale.description}</span>
               </td>
             </tr>
-          {if !$form.languageLimit}
+          {if empty($form.languageLimit)}
             <tr class="crm-localization-form-block-uiLanguages">
                 <td class="label">{$form.uiLanguages.label}</td>
                 <td>{$form.uiLanguages.html}</td>
@@ -104,7 +104,7 @@
         </table>
     <h3>{ts}Multiple Languages Support{/ts}</h3>
       <table class="form-layout-compressed">
-        {if $form.makeSinglelingual}
+        {if !empty($form.makeSinglelingual)}
           <tr class="crm-localization-form-block-makeSinglelingual_description">
               <td></td>
               <td><span class="description">{ts 1="http://documentation.civicrm.org"}This is a multilingual installation. It contains certain schema differences compared to regular installations of CiviCRM. Please <a href="%1">refer to the documentation</a> for details.{/ts}</span></td>
diff --git a/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl b/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl
index 6b761b840e..bb7fc8892c 100644
--- a/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl
+++ b/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl
@@ -53,6 +53,24 @@
           <p class="description">{ts}When generating a letter (PDF/Word) via mail-merge, how should the letter be recorded?{/ts}</p>
         </td>
       </tr>
+      <tr class="crm-miscellaneous-form-block-dompdf_font_dir">
+        <td class="label">{$form.dompdf_font_dir.label}</td>
+        <td>{$form.dompdf_font_dir.html}<br />
+          <p class="description">{ts}Additional folder where DOMPDF will look for fonts.{/ts}</p>
+        </td>
+      </tr>
+      <tr class="crm-miscellaneous-form-block-dompdf_chroot">
+        <td class="label">{$form.dompdf_chroot.label}</td>
+        <td>{$form.dompdf_chroot.html}<br />
+          <p class="description">{ts}Folder to restrict where DOMPDF looks when loading local images. By default it is the DOMPDF folder itself for security reasons. It will search in subfolders.{/ts}</p>
+        </td>
+      </tr>
+      <tr class="crm-miscellaneous-form-block-dompdf_enable_remote">
+        <td class="label">{$form.dompdf_enable_remote.label}</td>
+        <td>{$form.dompdf_enable_remote.html}<br />
+          <p class="description">{ts}Enable the use of remote images. By default this is enabled, but if not using remote images you may wish to turn it off for security reasons.{/ts}</p>
+        </td>
+      </tr>
       <tr class="crm-miscellaneous-form-block-wkhtmltopdfPath">
         <td class="label">{$form.wkhtmltopdfPath.label}</td>
         <td>{$form.wkhtmltopdfPath.html}<br />
diff --git a/civicrm/templates/CRM/Admin/Form/Setting/UF.tpl b/civicrm/templates/CRM/Admin/Form/Setting/UF.tpl
index 79d3114175..0f9398cbd3 100644
--- a/civicrm/templates/CRM/Admin/Form/Setting/UF.tpl
+++ b/civicrm/templates/CRM/Admin/Form/Setting/UF.tpl
@@ -17,7 +17,7 @@
             <td class="label">{$form.userFrameworkUsersTableName.label}</td>
             <td>{$form.userFrameworkUsersTableName.html}</td>
         </tr>
-        {if $form.wpBasePage}
+        {if !empty($form.wpBasePage)}
          <tr class="crm-uf-form-block-wpBasePage">
             <td class="label">{$form.wpBasePage.label}</td>
             <td>{$config->userFrameworkBaseURL}{$form.wpBasePage.html}
diff --git a/civicrm/templates/CRM/Admin/Page/ExtensionDetails.tpl b/civicrm/templates/CRM/Admin/Page/ExtensionDetails.tpl
index c28c33f566..46413b0e39 100644
--- a/civicrm/templates/CRM/Admin/Page/ExtensionDetails.tpl
+++ b/civicrm/templates/CRM/Admin/Page/ExtensionDetails.tpl
@@ -60,7 +60,7 @@
         </td>
     </tr>
     <tr>
-      <td class="label">{ts}Local path{/ts}</td><td>{$extension.path|escape}</td>
+      <td class="label">{ts}Local path{/ts}</td><td>{if !empty($extension.path)}{$extension.path|escape}{/if}</td>
     </tr>
     {if !empty($extension.downloadUrl)}
     <tr>
diff --git a/civicrm/templates/CRM/Admin/Page/Extensions/AddNew.tpl b/civicrm/templates/CRM/Admin/Page/Extensions/AddNew.tpl
index 2cfa693a96..e3e2c02078 100644
--- a/civicrm/templates/CRM/Admin/Page/Extensions/AddNew.tpl
+++ b/civicrm/templates/CRM/Admin/Page/Extensions/AddNew.tpl
@@ -17,7 +17,7 @@ Depends: CRM/common/enableDisableApi.tpl and CRM/common/jsortable.tpl
       </thead>
       <tbody>
         {foreach from=$remoteExtensionRows key=extKey item=row}
-        {if $localExtensionRows[$extKey]}
+        {if !empty($localExtensionRows[$extKey])}
           {continue}
         {/if}
         <tr id="addnew-row_{$row.file}" class="crm-extensions crm-extensions_{$row.file}">
diff --git a/civicrm/templates/CRM/Admin/Page/Extensions/Main.tpl b/civicrm/templates/CRM/Admin/Page/Extensions/Main.tpl
index 9425b17600..8e2a65b155 100644
--- a/civicrm/templates/CRM/Admin/Page/Extensions/Main.tpl
+++ b/civicrm/templates/CRM/Admin/Page/Extensions/Main.tpl
@@ -28,7 +28,7 @@ Depends: CRM/common/enableDisableApi.tpl and CRM/common/jsortable.tpl
           </td>
           <td class="crm-extensions-status">{$row.statusLabel} </td>
           <td class="crm-extensions-version">{$row.version|escape}
-            {if ($row.develStage and $row.develStage != 'stable') or preg_match(";(alpha|beta|dev);", $row.version)}
+            {if (!empty($row.develStage) and $row.develStage != 'stable') or preg_match(";(alpha|beta|dev);", $row.version)}
               {icon icon="fa-flask crm-extensions-stage"}{ts}This is a pre-release version. For more details, see the expanded description.{/ts}{/icon}
             {else}
               {icon icon="fa-check-circle crm-extensions-stage"}{ts}This is a stable release version.{/ts}{/icon}
diff --git a/civicrm/templates/CRM/Campaign/Form/ResultOptions.tpl b/civicrm/templates/CRM/Campaign/Form/ResultOptions.tpl
index 32b4ae8c59..87dd610dbd 100644
--- a/civicrm/templates/CRM/Campaign/Form/ResultOptions.tpl
+++ b/civicrm/templates/CRM/Campaign/Form/ResultOptions.tpl
@@ -15,7 +15,7 @@
 </td>
 </tr>
 
-<tr id="option_group" {if !$form.option_group_id}class="hiddenElement"{/if}>
+<tr id="option_group" {if empty($form.option_group_id)}class="hiddenElement"{/if}>
   <td class="label">{$form.option_group_id.label}</td>
   <td class="html-adjust">{$form.option_group_id.html}</td>
 </tr>
diff --git a/civicrm/templates/CRM/Campaign/Form/addCampaignToComponent.tpl b/civicrm/templates/CRM/Campaign/Form/addCampaignToComponent.tpl
index 791817b462..d92963147b 100644
--- a/civicrm/templates/CRM/Campaign/Form/addCampaignToComponent.tpl
+++ b/civicrm/templates/CRM/Campaign/Form/addCampaignToComponent.tpl
@@ -6,7 +6,9 @@
   <tr class="{$campaignTrClass}">
     {assign var=elementName value=$campaignInfo.elementName}
     <td class="{$campaignTdClass}">
-      {$form.$elementName.label} {$form.$elementName.html}
+      {if isset($form.$elementName)}
+        {$form.$elementName.label} {$form.$elementName.html}
+      {/if}
     </td>
   </tr>
 
diff --git a/civicrm/templates/CRM/Case/Form/Activity.tpl b/civicrm/templates/CRM/Case/Form/Activity.tpl
index 7df7770d70..4e243b3415 100644
--- a/civicrm/templates/CRM/Case/Form/Activity.tpl
+++ b/civicrm/templates/CRM/Case/Form/Activity.tpl
@@ -233,7 +233,7 @@
         </td>
       </tr>
     {/if}
-    {if $form.tag.html}
+    {if !empty($form.tag.html)}
     <tr class="crm-case-activity-form-block-tag">
       <td class="label">{$form.tag.label}</td>
       <td class="view-value">
diff --git a/civicrm/templates/CRM/Case/Form/ActivityTab.tpl b/civicrm/templates/CRM/Case/Form/ActivityTab.tpl
index 32ee2e9409..36c5aa293b 100644
--- a/civicrm/templates/CRM/Case/Form/ActivityTab.tpl
+++ b/civicrm/templates/CRM/Case/Form/ActivityTab.tpl
@@ -45,7 +45,7 @@
             {$form.activity_type_filter_id.html}
           </td>
         </tr>
-        {if $form.activity_deleted}
+        {if !empty($form.activity_deleted)}
           <tr class="crm-case-caseview-form-block-activity_deleted">
             <td>
               {$form.activity_deleted.html}{$form.activity_deleted.label}
diff --git a/civicrm/templates/CRM/Case/Form/ActivityToCase.tpl b/civicrm/templates/CRM/Case/Form/ActivityToCase.tpl
index 8d9b695252..353d1d46d7 100644
--- a/civicrm/templates/CRM/Case/Form/ActivityToCase.tpl
+++ b/civicrm/templates/CRM/Case/Form/ActivityToCase.tpl
@@ -44,7 +44,7 @@
     }
 
     var dataUrl = {/literal}"{crmURL p='civicrm/case/addToCase' q='reset=1' h=0}"{literal};
-    dataUrl += '&activityId=' + activityID + '&caseId=' + currentCaseId + '&cid=' + {/literal}"{$contactID}"{literal} + '&fileOnCaseAction=' + action;
+    dataUrl += '&activityId=' + activityID + '&caseId=' + currentCaseId + '&cid=' + {/literal}"{if !empty($contactID)}{$contactID}{/if}"{literal} + '&fileOnCaseAction=' + action;
 
     function save() {
       if (!$("#file_on_case_unclosed_case_id").val()) {
diff --git a/civicrm/templates/CRM/Case/Form/Case.tpl b/civicrm/templates/CRM/Case/Form/Case.tpl
index 5812bcab0f..ef2bbef2a2 100644
--- a/civicrm/templates/CRM/Case/Form/Case.tpl
+++ b/civicrm/templates/CRM/Case/Form/Case.tpl
@@ -53,7 +53,7 @@
     </tr>
 {/if}
 
-{if $form.activity_details.html}
+{if !empty($form.activity_details.html)}
     <tr class="crm-case-form-block-activity_details">
         <td class="label">{$form.activity_details.label}{help id="id-details" activityTypeFile=$activityTypeFile file="CRM/Case/Form/Case.hlp"}</td>
         <td class="view-value">{$form.activity_details.html|crmStripAlternatives}</td>
@@ -68,7 +68,7 @@
     </tr>
 {/if}
 
-{if $form.activity_subject.html}
+{if !empty($form.activity_subject.html)}
     <tr class="crm-case-form-block-activity_subject">
        <td class="label">{$form.activity_subject.label}{help id="id-activity_subject" activityTypeFile=$activityTypeFile file="CRM/Case/Form/Case.hlp"}</td>
        <td>{$form.activity_subject.html|crmAddClass:huge}</td>
@@ -80,7 +80,7 @@
     {include file="CRM/Case/Form/Activity/$activityTypeFile.tpl"}
 {/if}
 
-{if $form.duration.html}
+{if !empty($form.duration.html)}
     <tr class="crm-case-form-block-duration">
       <td class="label">{$form.duration.label}</td>
       <td class="view-value">
diff --git a/civicrm/templates/CRM/Case/Form/CaseView.tpl b/civicrm/templates/CRM/Case/Form/CaseView.tpl
index 89c4672778..0c2422ba03 100644
--- a/civicrm/templates/CRM/Case/Form/CaseView.tpl
+++ b/civicrm/templates/CRM/Case/Form/CaseView.tpl
@@ -45,7 +45,7 @@
             {foreach from=$caseRoles.client item=client}
               <tr class="crm-case-caseview-display_name">
                 <td class="label-left bold" style="padding: 0px; border: none;">
-                  <a href="{crmURL p='civicrm/contact/view' q="action=view&reset=1&cid=`$client.contact_id`"}" title="{ts}View contact record{/ts}">{$client.display_name}</a>{if $client.email}{crmAPI var='email_type_id' entity='OptionValue' action='getsingle' return="value" name="Email" option_group_id="activity_type"}<span class="crm-case-caseview-email"><a class="crm-hover-button crm-popup" href="{crmURL p='civicrm/activity/email/add' q="reset=1&action=add&atype=`$email_type_id.value`&cid=`$client.contact_id`&caseid=`$caseId`"}" title="{ts 1=$client.email|escape}Email: %1{/ts}"><i class="crm-i fa-envelope" aria-hidden="true"></i></a></span>{/if}
+                  <a href="{crmURL p='civicrm/contact/view' q="action=view&reset=1&cid=`$client.contact_id`"}" title="{ts}View contact record{/ts}">{$client.display_name}</a>{if $client.email}{crmAPI var='email_type_id' entity='OptionValue' action='getsingle' return="value" name="Email" option_group_id="activity_type"}<span class="crm-case-caseview-email"><a class="crm-hover-button crm-popup" href="{crmURL p='civicrm/case/email/add' q="reset=1&action=add&atype=`$email_type_id.value`&cid=`$client.contact_id`&caseid=`$caseId`"}" title="{ts 1=$client.email|escape}Email: %1{/ts}"><i class="crm-i fa-envelope" aria-hidden="true"></i></a></span>{/if}
                 </td>
               </tr>
               {if $client.phone}
diff --git a/civicrm/templates/CRM/Case/Form/Search/Common.tpl b/civicrm/templates/CRM/Case/Form/Search/Common.tpl
index 84bf8a8a1d..dc9d0121f2 100644
--- a/civicrm/templates/CRM/Case/Form/Search/Common.tpl
+++ b/civicrm/templates/CRM/Case/Form/Search/Common.tpl
@@ -41,7 +41,7 @@
         <br />
         {$form.case_owner.html}
       {/if}
-      {if $form.case_deleted}
+      {if !empty($form.case_deleted)}
         <br />
         {$form.case_deleted.html}
         {$form.case_deleted.label}
diff --git a/civicrm/templates/CRM/Case/Form/Task/Email.tpl b/civicrm/templates/CRM/Case/Form/Task/Email.tpl
new file mode 100644
index 0000000000..b47a6c442a
--- /dev/null
+++ b/civicrm/templates/CRM/Case/Form/Task/Email.tpl
@@ -0,0 +1 @@
+{include file="CRM/Contact/Form/Task/Email.tpl"}
diff --git a/civicrm/templates/CRM/Contact/Form/Edit/Individual.tpl b/civicrm/templates/CRM/Contact/Form/Edit/Individual.tpl
index 5139e05ee1..ed18ebcd9e 100644
--- a/civicrm/templates/CRM/Contact/Form/Edit/Individual.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Edit/Individual.tpl
@@ -8,19 +8,9 @@
  +--------------------------------------------------------------------+
 *}
 {* tpl for building Individual related fields *}
-<script type="text/javascript">
-{literal}
-CRM.$(function($) {
-  if ($('#contact_sub_type *').length == 0) {//if they aren't any subtype we don't offer the option
-    $('#contact_sub_type').parent().hide();
-  }
-});
-</script>
-{/literal}
-
 <table class="form-layout-compressed">
   <tr>
-    {if $form.prefix_id}
+    {if !empty($form.prefix_id)}
     <td>
       {$form.prefix_id.label}<br/>
       {$form.prefix_id.html}
@@ -32,19 +22,19 @@ CRM.$(function($) {
       {$form.formal_title.html}
     </td>
     {/if}
-    {if $form.first_name}
+    {if !empty($form.first_name)}
     <td>
       {$form.first_name.label}<br />
       {$form.first_name.html}
     </td>
     {/if}
-    {if $form.middle_name}
+    {if !empty($form.middle_name)}
     <td>
       {$form.middle_name.label}<br />
       {$form.middle_name.html}
     </td>
     {/if}
-    {if $form.last_name}
+    {if !empty($form.last_name)}
     <td>
       {$form.last_name.label}<br />
       {$form.last_name.html}
@@ -71,9 +61,11 @@ CRM.$(function($) {
       {$form.nick_name.label}<br />
       {$form.nick_name.html}
     </td>
+    {if !empty($form.contact_sub_type)}
     <td>
       {$form.contact_sub_type.label}<br />
       {$form.contact_sub_type.html}
     </td>
+    {/if}
   </tr>
 </table>
diff --git a/civicrm/templates/CRM/Contact/Form/Inline/ContactName.tpl b/civicrm/templates/CRM/Contact/Form/Inline/ContactName.tpl
index 2a867ae852..379afb93b8 100644
--- a/civicrm/templates/CRM/Contact/Form/Inline/ContactName.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Inline/ContactName.tpl
@@ -14,37 +14,37 @@
     {include file="CRM/common/formButtons.tpl"}
   </div>
   {if $contactType eq 'Individual'}
-    {if $form.prefix_id}
+    {if !empty($form.prefix_id)}
       <div class="crm-inline-edit-field">
         {$form.prefix_id.label}<br/>
         {$form.prefix_id.html}
       </div>
     {/if}
-    {if $form.formal_title}
+    {if !empty($form.formal_title)}
       <div class="crm-inline-edit-field">
         {$form.formal_title.label}<br/>
         {$form.formal_title.html}
       </div>
     {/if}
-    {if $form.first_name}
+    {if !empty($form.first_name)}
       <div class="crm-inline-edit-field">
         {$form.first_name.label}<br />
         {$form.first_name.html}
       </div>
     {/if}
-    {if $form.middle_name}
+    {if !empty($form.middle_name)}
       <div class="crm-inline-edit-field">
         {$form.middle_name.label}<br />
         {$form.middle_name.html}
       </div>
     {/if}
-    {if $form.last_name}
+    {if !empty($form.last_name)}
       <div class="crm-inline-edit-field">
         {$form.last_name.label}<br />
         {$form.last_name.html}
       </div>
     {/if}
-    {if $form.suffix_id}
+    {if !empty($form.suffix_id)}
       <div class="crm-inline-edit-field">
         {$form.suffix_id.label}<br/>
         {$form.suffix_id.html}
diff --git a/civicrm/templates/CRM/Contact/Form/OnBehalfOf.tpl b/civicrm/templates/CRM/Contact/Form/OnBehalfOf.tpl
index 955b08bbea..ed4a96f847 100644
--- a/civicrm/templates/CRM/Contact/Form/OnBehalfOf.tpl
+++ b/civicrm/templates/CRM/Contact/Form/OnBehalfOf.tpl
@@ -182,7 +182,7 @@
 
 </fieldset>
 
-{if $form.is_for_organization}
+{if !empty($form.is_for_organization)}
     {include file="CRM/common/showHideByFieldValue.tpl"
          trigger_field_id    ="is_for_organization"
          trigger_value       ="true"
diff --git a/civicrm/templates/CRM/Contact/Form/Search/BasicCriteria.tpl b/civicrm/templates/CRM/Contact/Form/Search/BasicCriteria.tpl
index 8042da1785..2557db3713 100644
--- a/civicrm/templates/CRM/Contact/Form/Search/BasicCriteria.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Search/BasicCriteria.tpl
@@ -35,7 +35,7 @@
           <div class="clear"></div>
         </div>
 
-        {if $form.contact_type}
+        {if !empty($form.contact_type)}
           <div class="crm-section contact_type-section">
             <div class="label">
               {$form.contact_type.label}
@@ -47,7 +47,7 @@
           </div>
         {/if}
 
-        {if $form.group}
+        {if !empty($form.group)}
         <div class="crm-section group_selection-section">
           <div class="label">
             {if $context EQ 'smog'}
@@ -67,7 +67,7 @@
         </div>
         {/if}
 
-        {if $form.tag}
+        {if !empty($form.tag)}
             <div class="crm-section tag-section">
               <div class="label">
                 {$form.tag.label}
diff --git a/civicrm/templates/CRM/Contact/Form/Search/ContactSearchFields.tpl b/civicrm/templates/CRM/Contact/Form/Search/ContactSearchFields.tpl
index dded60f42c..2941f228ee 100644
--- a/civicrm/templates/CRM/Contact/Form/Search/ContactSearchFields.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Search/ContactSearchFields.tpl
@@ -7,7 +7,7 @@
   <td>{$form.buttons.html}</td>
 </tr>
 <tr>
-  {if $form.contact_tags}
+  {if !empty($form.contact_tags)}
     <td>
       <label>{$form.contact_tags.label}</label>
       <br>
@@ -17,7 +17,7 @@
     <td>&nbsp;</td>
   {/if}
 
-  {if $form.group}
+  {if !empty($form.group)}
     <td>
       <label>{$form.group.label}</label>
       <br>
@@ -34,7 +34,7 @@
     {$form.contact_type.html}
   </td>
   <td>
-    {if $form.deleted_contacts}
+    {if !empty($form.deleted_contacts)}
       {$form.deleted_contacts.html}&nbsp;&nbsp;{$form.deleted_contacts.label}
     {/if}
   </td>
diff --git a/civicrm/templates/CRM/Contact/Form/Search/Criteria/DisplaySettings.tpl b/civicrm/templates/CRM/Contact/Form/Search/Criteria/DisplaySettings.tpl
index 997957014f..7a969b8514 100644
--- a/civicrm/templates/CRM/Contact/Form/Search/Criteria/DisplaySettings.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Search/Criteria/DisplaySettings.tpl
@@ -2,11 +2,11 @@
   <table>
     <tr>
       <td>
-        {if $form.component_mode}
+        {if !empty($form.component_mode)}
           {$form.component_mode.label} {help id="id-display-results"}
           <br />
           {$form.component_mode.html}
-          {if $form.display_relationship_type}
+          {if !empty($form.display_relationship_type)}
             <div id="crm-display_relationship_type">{$form.display_relationship_type.html}</div>
           {/if}
         {else}
diff --git a/civicrm/templates/CRM/Contact/Form/Search/Criteria/Location.tpl b/civicrm/templates/CRM/Contact/Form/Search/Criteria/Location.tpl
index 251b781753..fcabbdc323 100644
--- a/civicrm/templates/CRM/Contact/Form/Search/Criteria/Location.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Search/Criteria/Location.tpl
@@ -72,13 +72,13 @@
           <div>{$form.location_type.label} {help id="location_type" title=$form.location_type.label}</div>
           {$form.location_type.html}
         </div>
-        {if $form.address_name.html}
+        {if !empty($form.address_name.html)}
           <div class="crm-field-wrapper">
             {$form.address_name.label}<br />
             {$form.address_name.html}
           </div>
         {/if}
-        {if $form.postal_code.html}
+        {if !empty($form.postal_code.html)}
           <div class="crm-field-wrapper">
             {$form.postal_code.label}
             <input type="checkbox" id="postal-code-range-toggle" value="1"/>
@@ -109,7 +109,7 @@
             {/literal}
           </script>
         {/if}
-        {if $form.prox_distance.html}
+        {if !empty($form.prox_distance.html)}
           <div class="crm-field-wrapper">
             {$form.prox_distance.label}<br />
             {$form.prox_distance.html}&nbsp;{$form.prox_distance_unit.html}
diff --git a/civicrm/templates/CRM/Contact/Form/Search/Criteria/SearchSettings.tpl b/civicrm/templates/CRM/Contact/Form/Search/Criteria/SearchSettings.tpl
index c835f8c263..15b93a640b 100644
--- a/civicrm/templates/CRM/Contact/Form/Search/Criteria/SearchSettings.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Search/Criteria/SearchSettings.tpl
@@ -3,7 +3,7 @@
     <tr>
       <td>{$form.operator.label} {help id="id-search-operator"}<br />{$form.operator.html}</td>
       <td>
-        {if $form.deleted_contacts}{$form.deleted_contacts.html} {$form.deleted_contacts.label}{/if}
+        {if !empty($form.deleted_contacts)}{$form.deleted_contacts.html} {$form.deleted_contacts.label}{/if}
       </td>
       <td class="adv-search-top-submit" colspan="2">
         <div class="crm-submit-buttons">
diff --git a/civicrm/templates/CRM/Contact/Form/Task.tpl b/civicrm/templates/CRM/Contact/Form/Task.tpl
index 63b55a5170..ec171e0810 100644
--- a/civicrm/templates/CRM/Contact/Form/Task.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Task.tpl
@@ -12,7 +12,7 @@
 {if !empty($searchtype) && $searchtype eq 'ts_sel'}
 <div id="popupContainer">
   <div class="crm-block crm-form-block crm-search-form-block">
-    <table id="selectedRecords-{$group.id}" class="display crm-copy-fields crm-sortable">
+    <table id="selectedRecords-{if !empty($group)}{$group.id}{/if}" class="display crm-copy-fields crm-sortable">
       <thead>
       <tr class="columnheader">
         <th class="contact_details">{ts}Name{/ts}</th>
diff --git a/civicrm/templates/CRM/Contact/Form/Task/AddToGroup.tpl b/civicrm/templates/CRM/Contact/Form/Task/AddToGroup.tpl
index 24902aabd8..d537da1c9d 100644
--- a/civicrm/templates/CRM/Contact/Form/Task/AddToGroup.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Task/AddToGroup.tpl
@@ -33,12 +33,15 @@
                 <tr class="crm-contact-task-addtogroup-form-block-description">
                    <td class="label">{$form.description.label}</td>
                    <td>{$form.description.html}</td></tr>
-                {if $form.group_type}
+                {if !empty($form.group_type)}
                 <tr class="crm-contact-task-addtogroup-form-block-group_type">
         <td class="label">{$form.group_type.label}</td>
                     <td>{$form.group_type.html}</td>
                 </tr>
                 {/if}
+                <tr>
+                  <td colspan=2>{include file="CRM/Custom/Form/CustomData.tpl"}</td>
+                </tr>
                 </table>
             </td>
         </tr>
diff --git a/civicrm/templates/CRM/Contact/Form/Task/Email.tpl b/civicrm/templates/CRM/Contact/Form/Task/Email.tpl
index 9e21ef1fae..c9b9b138a0 100644
--- a/civicrm/templates/CRM/Contact/Form/Task/Email.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Task/Email.tpl
@@ -26,14 +26,14 @@
          {$form.to.html} {help id="id-to_email" file="CRM/Contact/Form/Task/Email.hlp"}
        </td>
     </tr>
-    <tr class="crm-contactEmail-form-block-cc_id" {if !$form.cc_id.value}style="display:none;"{/if}>
+    <tr class="crm-contactEmail-form-block-cc_id" {if empty($form.cc_id.value)}style="display:none;"{/if}>
       <td class="label">{$form.cc_id.label}</td>
       <td>
         {$form.cc_id.html}
         <a class="crm-hover-button clear-cc-link" rel="cc_id" title="{ts}Clear{/ts}" href="#"><i class="crm-i fa-times" aria-hidden="true"></i></a>
       </td>
     </tr>
-    <tr class="crm-contactEmail-form-block-bcc_id" {if !$form.bcc_id.value}style="display:none;"{/if}>
+    <tr class="crm-contactEmail-form-block-bcc_id" {if empty($form.bcc_id.value)}style="display:none;"{/if}>
       <td class="label">{$form.bcc_id.label}</td>
       <td>
         {$form.bcc_id.html}
@@ -44,8 +44,8 @@
       <td></td>
       <td>
         <div>
-          <a href="#" rel="cc_id" class="add-cc-link crm-hover-button" {if $form.cc_id.value}style="display:none;"{/if}>{ts}Add CC{/ts}</a>&nbsp;&nbsp;
-          <a href="#" rel="bcc_id" class="add-cc-link crm-hover-button" {if $form.bcc_id.value}style="display:none;"{/if}>{ts}Add BCC{/ts}</a>
+          <a href="#" rel="cc_id" class="add-cc-link crm-hover-button" {if !empty($form.cc_id.value)}style="display:none;"{/if}>{ts}Add CC{/ts}</a>&nbsp;&nbsp;
+          <a href="#" rel="bcc_id" class="add-cc-link crm-hover-button" {if !empty($form.bcc_id.value)}style="display:none;"{/if}>{ts}Add BCC{/ts}</a>
         </div>
       </td>
     </tr>
diff --git a/civicrm/templates/CRM/Contact/Form/Task/PDFLetterCommon.tpl b/civicrm/templates/CRM/Contact/Form/Task/PDFLetterCommon.tpl
index 864fedeb6d..acdbc46ac9 100644
--- a/civicrm/templates/CRM/Contact/Form/Task/PDFLetterCommon.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Task/PDFLetterCommon.tpl
@@ -8,7 +8,7 @@
  +--------------------------------------------------------------------+
 *}
 {*common template for compose PDF letters*}
-{if $form.template.html}
+{if !empty($form.template.html)}
 <table class="form-layout-compressed">
     <tr>
       <td class="label-left">
@@ -23,7 +23,7 @@
       <td class="label-left">{$form.subject.label}</td>
       <td>{$form.subject.html}</td>
     </tr>
-    {if $form.campaign_id}
+    {if !empty($form.campaign_id)}
     <tr>
       <td class="label-left">{$form.campaign_id.label}</td>
       <td>{$form.campaign_id.html}</td>
diff --git a/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl b/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl
index 5bcd911eee..dbbd2477dd 100644
--- a/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl
@@ -34,7 +34,7 @@
       <td class="label">{$form.description.label}</td>
       <td>{$form.description.html}</td>
     </tr>
-    {if $form.group_type}
+    {if !empty($form.group_type)}
       <tr class="crm-contact-task-createsmartgroup-form-block-group_type">
         <td class="label">{$form.group_type.label}</td>
         <td>{$form.group_type.html}</td>
diff --git a/civicrm/templates/CRM/Contact/Import/Form/Preview.tpl b/civicrm/templates/CRM/Contact/Import/Form/Preview.tpl
index 15b30f1fbc..e899d3daf4 100644
--- a/civicrm/templates/CRM/Contact/Import/Form/Preview.tpl
+++ b/civicrm/templates/CRM/Contact/Import/Form/Preview.tpl
@@ -102,7 +102,7 @@
 
       {* Existing Group *}
 
-<div id="existing-groups" class="crm-accordion-wrapper crm-existing_group-accordion {if $form.groups} {else}collapsed{/if}">
+<div id="existing-groups" class="crm-accordion-wrapper crm-existing_group-accordion {if !empty($form.groups)} {else}collapsed{/if}">
  <div class="crm-accordion-header">
   {$form.groups.label}
  </div><!-- /.crm-accordion-header -->
diff --git a/civicrm/templates/CRM/Contact/Page/View/Summary.tpl b/civicrm/templates/CRM/Contact/Page/View/Summary.tpl
index 8eb9fa7130..992ef9e2db 100644
--- a/civicrm/templates/CRM/Contact/Page/View/Summary.tpl
+++ b/civicrm/templates/CRM/Contact/Page/View/Summary.tpl
@@ -112,7 +112,7 @@
         {foreach from=$allTabs item=tabValue}
           <li id="tab_{$tabValue.id}" class="crm-tab-button ui-corner-all{if isset($tabValue.count)} crm-count-{$tabValue.count}{/if}{if isset($tabValue.class)} {$tabValue.class}{/if}">
             <a href="{if !empty($tabValue.template)}#contact-{$tabValue.id}{else}{$tabValue.url}{/if}" title="{$tabValue.title|escape}">
-              <i class="{if $tabValue.icon}{$tabValue.icon}{else}crm-i fa-puzzle-piece{/if}" aria-hidden="true"></i>
+              <i class="{if !empty($tabValue.icon)}{$tabValue.icon}{else}crm-i fa-puzzle-piece{/if}" aria-hidden="true"></i>
               <span>{$tabValue.title}</span>
               {if empty($tabValue.hideCount)}<em>{if isset($tabValue.count)}{$tabValue.count}{/if}</em>{/if}
             </a>
diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution.tpl
index 627e28b309..ccf25e943b 100644
--- a/civicrm/templates/CRM/Contribute/Form/Contribution.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/Contribution.tpl
@@ -11,7 +11,7 @@
 
 {if $priceSetId}
   {include file="CRM/Price/Form/PriceSet.tpl" context="standalone" extends="Contribution"}
-{elseif $showAdditionalInfo and $formType }
+{elseif !empty($showAdditionalInfo) and !empty($formType)}
   {include file="CRM/Contribute/Form/AdditionalInfo/$formType.tpl"}
 {else}
   {include file="CRM/Contribute/Form/AdditionalInfo/Payment.tpl"}
@@ -58,7 +58,7 @@
       <div class="crm-submit-buttons">
         {include file="CRM/common/formButtons.tpl"}
       </div>
-      {if $isOnline}{assign var=valueStyle value=" class='view-value'"}{else}{assign var=valueStyle value=""}{/if}
+      {if !empty($isOnline)}{assign var=valueStyle value=" class='view-value'"}{else}{assign var=valueStyle value=""}{/if}
       <table class="form-layout-compressed">
         <tr class="crm-contribution-form-block-contact_id">
           <td class="label">{$form.contact_id.label}</td>
@@ -66,7 +66,7 @@
         </tr>
         <tr class="crm-contribution-form-block-contribution_type_id crm-contribution-form-block-financial_type_id">
           <td class="label">{$form.financial_type_id.label}</td><td{$valueStyle}>{$form.financial_type_id.html}&nbsp;
-            {if $is_test}
+            {if !empty($is_test)}
               {ts}(test){/ts}
             {/if} {help id="id-financial_type"}
           </td>
@@ -81,7 +81,7 @@
             <td class="label">{$form.total_amount.label}</td>
             <td {$valueStyle}>
               <span id='totalAmount'>{$form.currency.html|crmAddClass:eight}&nbsp;{$form.total_amount.html|crmAddClass:eight}</span>
-              {if $freezeFinancialType}
+              {if !empty($freezeFinancialType)}
                 {help id="id-total_amount"}
               {/if}
               {if !$payNow}
@@ -91,7 +91,7 @@
                   <div id="priceset" class="hiddenElement"></div>
                 {/if}
 
-                {if $ppID}{ts}<a class='action-item crm-hover-button' onclick='adjustPayment();'>adjust payment amount</a>{/ts}{help id="adjust-payment-amount"}{/if}
+                {if !empty($ppID)}{ts}<a class='action-item crm-hover-button' onclick='adjustPayment();'>adjust payment amount</a>{/ts}{help id="adjust-payment-amount"}{/if}
                 <div id="totalAmountBlock">
                   {if $hasPriceSets}<span class="description">{ts}Alternatively, you can use a price set.{/ts}</span>{/if}
                   <div id="totalTaxAmount" class="label"></div>
@@ -126,7 +126,7 @@
         {if $contributionMode && $processorSupportsFutureStartDate}
           <tr id='start_date' class="crm-contribution-form-block-receive_date">
             <td class="label">{ts}Start Date{/ts}</td>
-            <td {$valueStyle}>{if $hideCalender neq true}{$form.receive_date.html}{/if}<br />
+            <td {$valueStyle}>{$form.receive_date.html}<br />
               <span class="description">{ts}You can set a start date for recurring contributions and the first payment will be on that date. For a single post-dated contribution you must select recurring and choose one installment{/ts}</span>
             </td>
           </tr>
@@ -165,11 +165,7 @@
                   <tr id="cancelDate" class="crm-contribution-form-block-cancel_date">
                     <td class="label">{$form.cancel_date.label}</td>
                     <td>
-                      {if $hideCalendar neq true}
-                        {$form.cancel_date.html}
-                      {else}
-                        {$form.cancel_date.value|crmDate}
-                      {/if}
+                      {$form.cancel_date.html}
                     </td>
                   </tr>
                   <tr id="cancelDescription" class="crm-contribution-form-block-cancel_reason">
@@ -232,7 +228,7 @@
           </td>
         </tr>
         {/if}
-        {if $form.payment_processor_id}
+        {if !empty($form.payment_processor_id)}
           <tr class="crm-contribution-form-block-payment_processor_id"><td class="label nowrap">{$form.payment_processor_id.label}<span class="crm-marker"> * </span></td><td>{$form.payment_processor_id.html}</td></tr>
         {/if}
       </table>
diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl
index 2aba706f96..7ae9f08092 100644
--- a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl
@@ -135,7 +135,7 @@
       {/if}
       {/crmRegion}
 
-      {if $form.is_recur}
+      {if !empty($form.is_recur)}
         <div class="crm-public-form-item crm-section {$form.is_recur.name}-section">
           <div class="label">&nbsp;</div>
           <div class="content">
@@ -199,7 +199,7 @@
             <div class="crm-public-form-item crm-section honor_block_text-section">
               {$honor_block_text}
             </div>
-          {if $form.soft_credit_type_id.html}
+          {if !empty($form.soft_credit_type_id.html)}
             <div class="crm-public-form-item crm-section {$form.soft_credit_type_id.name}-section">
               <div class="content" >
                 {$form.soft_credit_type_id.html}
@@ -256,7 +256,7 @@
       {* end of ccid loop *}
     {/if}
 
-    {if $form.payment_processor_id.label}
+    {if !empty($form.payment_processor_id.label)}
       {* PP selection only works with JS enabled, so we hide it initially *}
       <fieldset class="crm-public-form-item crm-group payment_options-group" style="display:none;">
         <legend>{ts}Payment Options{/ts}</legend>
diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl
index 7731d4d3a2..73e8d98b03 100644
--- a/civicrm/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl
@@ -13,7 +13,7 @@
  * FIXME: This is way more complex than it needs to be
  * FIXME: Why are we not just using the dynamic form tpl to display this profile?
  *}
-{if $form.is_for_organization}
+{if !empty($form.is_for_organization)}
   <div class="crm-public-form-item crm-section {$form.is_for_organization.name}-section">
     <div class="label">&nbsp;</div>
     <div class="content">
@@ -28,7 +28,7 @@
   {if $onBehalfOfFields && $onBehalfOfFields|@count}
     <fieldset>
       <legend>{$fieldSetTitle}</legend>
-      {if $form.org_option}
+      {if !empty($form.org_option)}
         <div id='orgOptions' class="section crm-public-form-item crm-section">
           <div class="content">
             {$form.org_option.html}
diff --git a/civicrm/templates/CRM/Contribute/Form/ContributionPage/Amount.tpl b/civicrm/templates/CRM/Contribute/Form/ContributionPage/Amount.tpl
index 497e11799b..9dac6f4a23 100644
--- a/civicrm/templates/CRM/Contribute/Form/ContributionPage/Amount.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/ContributionPage/Amount.tpl
@@ -420,7 +420,7 @@
 
 </script>
 {/literal}
-{if $form.is_recur}
+{if !empty($form.is_recur)}
 {include file="CRM/common/showHideByFieldValue.tpl"
     trigger_field_id    ="is_recur"
     trigger_value       ="true"
@@ -430,7 +430,7 @@
     invert              = "false"
 }
 {/if}
-{if $form.adjust_recur_start_date}
+{if !empty($form.adjust_recur_start_date)}
 {include file="CRM/common/showHideByFieldValue.tpl"
     trigger_field_id    ="adjust_recur_start_date"
     trigger_value       ="true"
diff --git a/civicrm/templates/CRM/Contribute/Form/ContributionView.tpl b/civicrm/templates/CRM/Contribute/Form/ContributionView.tpl
index 377ea50554..751cb14386 100644
--- a/civicrm/templates/CRM/Contribute/Form/ContributionView.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/ContributionView.tpl
@@ -10,7 +10,7 @@
 <div class="crm-block crm-content-block crm-contribution-view-form-block">
 <div class="action-link">
   <div class="crm-submit-buttons">
-    {if (call_user_func(array('CRM_Core_Permission','check'), 'edit contributions') && call_user_func(array('CRM_Core_Permission', 'check'), "edit contributions of type $financial_type") && $canEdit) ||
+    {if (call_user_func(array('CRM_Core_Permission','check'), 'edit contributions') && call_user_func(array('CRM_Core_Permission', 'check'), "edit contributions of type $financial_type") && !empty($canEdit)) ||
     	(call_user_func(array('CRM_Core_Permission','check'), 'edit contributions') && $noACL)}
       {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=update&context=$context"}
       {if ( $context eq 'fulltext' || $context eq 'search' ) && $searchKey}
@@ -19,11 +19,11 @@
       <a class="button" href="{crmURL p='civicrm/contact/view/contribution' q=$urlParams}" accesskey="e"><span>
           <i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Edit{/ts}</span>
       </a>
-      {if $paymentButtonName}
+      {if !empty($paymentButtonName)}
         <a class="button" href='{crmURL p="civicrm/payment" q="action=add&reset=1&component=`$component`&id=`$id`&cid=`$contact_id`"}'><i class="crm-i fa-plus-circle" aria-hidden="true"></i> {ts}{$paymentButtonName}{/ts}</a>
       {/if}
     {/if}
-    {if (call_user_func(array('CRM_Core_Permission','check'), 'delete in CiviContribute') && call_user_func(array('CRM_Core_Permission', 'check'), "delete contributions of type $financial_type") && $canDelete)     || (call_user_func(array('CRM_Core_Permission','check'), 'delete in CiviContribute') && $noACL)}
+    {if (call_user_func(array('CRM_Core_Permission','check'), 'delete in CiviContribute') && call_user_func(array('CRM_Core_Permission', 'check'), "delete contributions of type $financial_type") && !empty($canDelete))     || (call_user_func(array('CRM_Core_Permission','check'), 'delete in CiviContribute') && $noACL)}
       {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context"}
       {if ( $context eq 'fulltext' || $context eq 'search' ) && $searchKey}
         {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context&key=$searchKey"}
@@ -32,23 +32,23 @@
           <i class="crm-i fa-trash" aria-hidden="true"></i> {ts}Delete{/ts}</span>
       </a>
     {/if}
-    {include file="CRM/common/formButtons.tpl" location="top"}
     {assign var='pdfUrlParams' value="reset=1&id=$id&cid=$contact_id"}
     {assign var='emailUrlParams' value="reset=1&id=$id&cid=$contact_id&select=email"}
     {if $invoicing && empty($is_template)}
       <div class="css_right">
         <a class="button no-popup" href="{crmURL p='civicrm/contribute/invoice' q=$pdfUrlParams}">
-          <i class="crm-i fa-print" aria-hidden="true"></i>
+          <i class="crm-i fa-download" aria-hidden="true"></i>
         {if $contribution_status != 'Refunded' && $contribution_status != 'Cancelled' }
-          {ts}Print Invoice{/ts}</a>
+          {ts}Download Invoice{/ts}</a>
         {else}
-          {ts}Print Invoice and Credit Note{/ts}</a>
+          {ts}Download Invoice and Credit Note{/ts}</a>
         {/if}
         <a class="button" href="{crmURL p='civicrm/contribute/invoice/email' q=$emailUrlParams}">
           <i class="crm-i fa-paper-plane" aria-hidden="true"></i>
           {ts}Email Invoice{/ts}</a>
       </div>
     {/if}
+    {include file="CRM/common/formButtons.tpl" location="top"}
   </div>
 </div>
 <table class="crm-info-panel">
diff --git a/civicrm/templates/CRM/Contribute/Form/Search/Common.tpl b/civicrm/templates/CRM/Contribute/Form/Search/Common.tpl
index 88bef92930..99aa39bee9 100644
--- a/civicrm/templates/CRM/Contribute/Form/Search/Common.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/Search/Common.tpl
@@ -58,12 +58,14 @@
 </tr>
 <tr>
   <td>
-    {$form.contribution_or_softcredits.label} <br />
-    {$form.contribution_or_softcredits.html}<br />
-    <div class="float-left" id="contribution_soft_credit_type_wrapper">
-      {$form.contribution_soft_credit_type_id.label} <br />
-      {$form.contribution_soft_credit_type_id.html|crmAddClass:twenty}
-    </div>
+    {if !empty($form.contribution_or_softcredits)}
+      {$form.contribution_or_softcredits.label} <br />
+      {$form.contribution_or_softcredits.html}<br />
+      <div class="float-left" id="contribution_soft_credit_type_wrapper">
+        {$form.contribution_soft_credit_type_id.label} <br />
+        {$form.contribution_soft_credit_type_id.html|crmAddClass:twenty}
+      </div>
+    {/if}
   </td>
   <td>
     {$form.invoice_number.label} <br />
diff --git a/civicrm/templates/CRM/Contribute/Form/Selector.tpl b/civicrm/templates/CRM/Contribute/Form/Selector.tpl
index dde319b318..5443e1f740 100644
--- a/civicrm/templates/CRM/Contribute/Form/Selector.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/Selector.tpl
@@ -22,10 +22,10 @@
       {/if}
       {foreach from=$columnHeaders item=header}
         <th scope="col">
-          {if $header.sort}
+          {if isset($header.sort)}
             {assign var='key' value=$header.sort}
             {$sort->_response.$key.link}
-          {else}
+          {elseif (!empty($header.name))}
             {$header.name}
           {/if}
         </th>
@@ -48,7 +48,7 @@
              <a class="nowrap bold crm-expand-row" title="{ts}view payments{/ts}" href="{crmURL p='civicrm/payment' q="view=transaction&component=contribution&action=browse&cid=`$row.contact_id`&id=`$row.contribution_id`&selector=1"}">
                &nbsp; {$row.total_amount|crmMoney:$row.currency}
             </a>
-          {if $row.amount_level }<br/>({$row.amount_level}){/if}
+          {if !empty($row.amount_level) }<br/>({$row.amount_level}){/if}
           {if $row.contribution_recur_id && $row.is_template}
             <br/>{ts}(Recurring Template){/ts}
           {elseif $row.contribution_recur_id }
@@ -56,10 +56,13 @@
           {/if}
         </td>
       {foreach from=$columnHeaders item=column}
-        {assign var='columnName' value=$column.field_name}
+          {assign var='columnName' value=''}
+          {if isset($column.field_name)}
+            {assign var='columnName' value=$column.field_name}
+          {/if}
         {if !$columnName}{* if field_name has not been set skip, this helps with not changing anything not specifically edited *}
         {elseif $columnName === 'total_amount'}{* rendered above as soft credit columns = confusing *}
-        {elseif $column.type === 'actions'}{* rendered below as soft credit column handling = not fixed *}
+        {elseif isset($column.type) && $column.type === 'actions'}{* rendered below as soft credit column handling = not fixed *}
         {elseif $columnName == 'contribution_status'}
           <td class="crm-contribution-status">
             {$row.contribution_status}<br/>
@@ -68,13 +71,13 @@
             {/if}
           </td>
         {else}
-          {if $column.type == 'date'}
+          {if isset($column.type) && $column.type == 'date'}
             <td class="crm-contribution-{$columnName}">
               {$row.$columnName|crmDate}
             </td>
           {else}
-          <td class="crm-{$columnName} crm-{$columnName}_{$row.columnName}">
-            {$row.$columnName}
+          <td class="crm-{$columnName} crm-{$columnName}_{if isset($row.columnName)}{$row.columnName}{/if}">
+            {if isset($row.$columnName)}{$row.$columnName}{/if}
           </td>
           {/if}
         {/if}
diff --git a/civicrm/templates/CRM/Contribute/Form/UpdateBilling.tpl b/civicrm/templates/CRM/Contribute/Form/UpdateBilling.tpl
index 72d13b28f6..e490a94cd3 100644
--- a/civicrm/templates/CRM/Contribute/Form/UpdateBilling.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/UpdateBilling.tpl
@@ -12,7 +12,7 @@
   {if $mode eq 'auto_renew'}
       {ts}Use this form to update the credit card and billing name and address used with the auto-renewal option for your {$membershipType} membership.{/ts}
   {else}
-    <strong>{ts 1=$amount|crmMoney 2=$frequency_interval 3=$frequency_unit}Recurring Contribution Details: %1 every %2 %3{/ts}
+    <strong>{ts 1=$amount|crmMoney 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring Contribution Details: %1 every %2 %3{/ts}
     {if $installments}
       {ts 1=$installments}for %1 installments{/ts}.
     {/if}</strong>
diff --git a/civicrm/templates/CRM/Contribute/Form/UpdateSubscription.tpl b/civicrm/templates/CRM/Contribute/Form/UpdateSubscription.tpl
index cda5b053fd..06f77a01b2 100644
--- a/civicrm/templates/CRM/Contribute/Form/UpdateSubscription.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/UpdateSubscription.tpl
@@ -22,7 +22,7 @@
   <table class="form-layout">
     <tr>
       <td class="label">{$form.amount.label}</td>
-      <td>{$form.currency.html|crmAddClass:eight}&nbsp;{$form.amount.html|crmAddClass:eight} ({ts}every{/ts} {$frequency_interval} {$frequency_unit})</td>
+      <td>{$form.currency.html|crmAddClass:eight}&nbsp;{$form.amount.html|crmAddClass:eight} ({ts}every{/ts} {$recur_frequency_interval} {$recur_frequency_unit})</td>
     </tr>
     <tr><td class="label">{$form.installments.label}</td><td>{$form.installments.html}<br />
           <span class="description">{ts}Total number of payments to be made. Set this to 0 if this is an open-ended commitment i.e. no set end date.{/ts}</span></td></tr>
diff --git a/civicrm/templates/CRM/Contribute/Page/ContributionRecur.tpl b/civicrm/templates/CRM/Contribute/Page/ContributionRecur.tpl
index 8ac8f2d129..7b2a6040fa 100644
--- a/civicrm/templates/CRM/Contribute/Page/ContributionRecur.tpl
+++ b/civicrm/templates/CRM/Contribute/Page/ContributionRecur.tpl
@@ -26,27 +26,27 @@
         <tr><td class="label">{ts}Amount{/ts}</td><td>{$recur.amount|crmMoney:$recur.currency}{if $is_test} ({ts}test{/ts}){/if}</td></tr>
       {/if}
       <tr><td class="label">{ts}Frequency{/ts}</td><td>every {$recur.frequency_interval} {$recur.frequency_unit}</td></tr>
-      <tr><td class="label">{ts}Installments{/ts}</td><td>{$recur.installments}</td></tr>
+      {if !empty($recur.installments)}<tr><td class="label">{ts}Installments{/ts}</td><td>{$recur.installments}</td></tr>{/if}
       <tr><td class="label">{ts}Status{/ts}</td><td>{$recur.contribution_status}</td></tr>
       <tr><td class="label">{ts}Start Date{/ts}</td><td>{$recur.start_date|crmDate}</td></tr>
       <tr><td class="label">{ts}Created Date{/ts}</td><td>{$recur.create_date|crmDate}</td></tr>
       {if $recur.modified_date}<tr><td class="label">{ts}Modified Date{/ts}</td><td>{$recur.modified_date|crmDate}</td></tr>{/if}
-      {if $recur.cancel_date}<tr><td class="label">{ts}Cancelled Date{/ts}</td><td>{$recur.cancel_date|crmDate}</td></tr>{/if}
-      {if $recur.cancel_reason}<tr><td class="label">{ts}Cancel Reason{/ts}</td><td>{$recur.cancel_reason}</td></tr>{/if}
-      {if $recur.end_date}<tr><td class="label">{ts}End Date{/ts}</td><td>{$recur.end_date|crmDate}</td></tr>{/if}
+      {if !empty($recur.cancel_date)}<tr><td class="label">{ts}Cancelled Date{/ts}</td><td>{$recur.cancel_date|crmDate}</td></tr>{/if}
+      {if !empty($recur.cancel_reason)}<tr><td class="label">{ts}Cancel Reason{/ts}</td><td>{$recur.cancel_reason}</td></tr>{/if}
+      {if !empty($recur.end_date)}<tr><td class="label">{ts}End Date{/ts}</td><td>{$recur.end_date|crmDate}</td></tr>{/if}
       {if $recur.processor_id}<tr><td class="label">{ts}Processor ID{/ts}</td><td>{$recur.processor_id}</td></tr>{/if}
-      <tr><td class="label">{ts}Transaction ID{/ts}</td><td>{$recur.trxn_id}</td></tr>
+      {if !empty($recur.trxn_id)}<tr><td class="label">{ts}Transaction ID{/ts}</td><td>{$recur.trxn_id}</td></tr>{/if}
       {if $recur.invoice_id}<tr><td class="label">{ts}Invoice ID{/ts}</td><td>{$recur.invoice_id}</td></tr>{/if}
       <tr><td class="label">{ts}Cycle Day{/ts}</td><td>{$recur.cycle_day}</td></tr>
-      {if $recur.contribution_status_id neq 3}<tr><td class="label">{ts}Next Contribution{/ts}</td><td>{$recur.next_sched_contribution_date|crmDate}</td></tr>{/if}
+      {if !empty($recur.next_sched_contribution_date) && $recur.contribution_status_id neq 3}<tr><td class="label">{ts}Next Contribution{/ts}</td><td>{$recur.next_sched_contribution_date|crmDate}</td></tr>{/if}
       <tr><td class="label">{ts}Failure Count{/ts}</td><td>{$recur.failure_count}</td></tr>
-      {if $recur.invoice_id}<tr><td class="label">{ts}Failure Retry Date{/ts}</td><td>{$recur.next_sched_contribution_date|crmDate}</td></tr>{/if}
+      {if !empty($recur.next_sched_contribution_date) && $recur.invoice_id}<tr><td class="label">{ts}Failure Retry Date{/ts}</td><td>{$recur.next_sched_contribution_date|crmDate}</td></tr>{/if}
       <tr><td class="label">{ts}Auto Renew?{/ts}</td><td>{if $recur.auto_renew}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}</td></tr>
       <tr><td class="label">{ts}Send receipt for each contribution?{/ts}</td><td>{if $recur.is_email_receipt}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}</td></tr>
       {if $recur.payment_processor}<tr><td class="label">{ts}Payment Processor{/ts}</td><td>{$recur.payment_processor}</td></tr>{/if}
       {if $recur.financial_type}<tr><td class="label">{ts}Financial Type{/ts}</td><td>{$recur.financial_type}</td></tr>{/if}
-      {if $recur.campaign}<tr><td class="label">{ts}Campaign{/ts}</td><td>{$recur.campaign}</td></tr>{/if}
-      {if $recur.membership_id}<tr>
+      {if !empty($recur.campaign)}<tr><td class="label">{ts}Campaign{/ts}</td><td>{$recur.campaign}</td></tr>{/if}
+      {if !empty($recur.membership_id)}<tr>
         <td class="label">{ts}Membership{/ts}</td>
         <td><a class="crm-hover-button action-item" href='{crmURL p="civicrm/contact/view/membership" q="action=view&reset=1&cid=`$contactId`&id=`$recur.membership_id`&context=membership&selectedChild=member"}'>{$recur.membership_name}</a></td>
         </tr>
diff --git a/civicrm/templates/CRM/Contribute/Page/ContributionTotals.tpl b/civicrm/templates/CRM/Contribute/Page/ContributionTotals.tpl
index fb98957a59..0a105df777 100644
--- a/civicrm/templates/CRM/Contribute/Page/ContributionTotals.tpl
+++ b/civicrm/templates/CRM/Contribute/Page/ContributionTotals.tpl
@@ -8,10 +8,10 @@
  +--------------------------------------------------------------------+
 *}
 {*Table displays contribution totals for a contact or search result-set *}
-{if $annual.count OR $contributionSummary.total.count OR $contributionSummary.cancel.count OR $contributionSummary.soft_credit.count}
+{if !empty($annual.count) OR $contributionSummary.total.count OR $contributionSummary.cancel.count OR $contributionSummary.soft_credit.count}
     <table class="form-layout-compressed">
 
-    {if $annual.count}
+    {if !empty($annual.count)}
         <tr>
             <th class="contriTotalLeft right">{ts}Current Year-to-Date{/ts} &ndash; {$annual.amount}</th>
             <th class="right"> &nbsp; {ts}# Completed Contributions{/ts} &ndash; {$annual.count}</th>
@@ -29,11 +29,11 @@
             <th class="right"> &nbsp; {ts}# Completed{/ts} &ndash; {$contributionSummary.total.count}</th>
             <th class="right contriTotalRight"> &nbsp; {ts}Avg{/ts} &ndash; {$contributionSummary.total.avg}</th>
           {/if}
-          {if $contributionSummary.cancel.amount}
+          {if isset($contributionSummary.cancel.amount)}
             <th class="disabled right contriTotalRight"> &nbsp; {ts}Cancelled/Refunded{/ts} &ndash; {$contributionSummary.cancel.amount}</th>
           {/if}
       </tr>
-      {if $contributionSummary.soft_credit.count}
+      {if isset($contributionSummary.soft_credit.count)}
         {include file="CRM/Contribute/Page/ContributionSoftTotals.tpl" softCreditTotals=$contributionSummary.soft_credit}
       {/if}
     {/if}
diff --git a/civicrm/templates/CRM/Contribute/Page/UserDashboard.tpl b/civicrm/templates/CRM/Contribute/Page/UserDashboard.tpl
index 70034d749b..e662f12044 100644
--- a/civicrm/templates/CRM/Contribute/Page/UserDashboard.tpl
+++ b/civicrm/templates/CRM/Contribute/Page/UserDashboard.tpl
@@ -49,11 +49,11 @@
                             {if call_user_func(array('CRM_Core_Permission','check'), 'view my invoices') OR call_user_func(array('CRM_Core_Permission','check'), 'access CiviContribute')}
                                 <a class="button no-popup nowrap"
                                    href="{crmURL p='civicrm/contribute/invoice' q=$urlParams}">
-                                    <i class="crm-i fa-print" aria-hidden="true"></i>
+                                    <i class="crm-i fa-download" aria-hidden="true"></i>
                                     {if empty($row.contribution_status_name) || (!empty($row.contribution_status_name) && $row.contribution_status_name != 'Refunded' && $row.contribution_status_name != 'Cancelled') }
-                                        <span>{ts}Print Invoice{/ts}</span>
+                                        <span>{ts}Download Invoice{/ts}</span>
                                     {else}
-                                        <span>{ts}Print Invoice and Credit Note{/ts}</span>
+                                        <span>{ts}Download Invoice and Credit Note{/ts}</span>
                                     {/if}
                                 </a>
                             {/if}
diff --git a/civicrm/templates/CRM/Contribute/Page/Widget.tpl b/civicrm/templates/CRM/Contribute/Page/Widget.tpl
index 125d07d340..5df46ee82f 100644
--- a/civicrm/templates/CRM/Contribute/Page/Widget.tpl
+++ b/civicrm/templates/CRM/Contribute/Page/Widget.tpl
@@ -136,7 +136,7 @@
     <div class="crm-amount-raised-wrapper">
         <span id="crm_cpid_{$cpageId}_amt_raised" class="crm-amount-raised"> -- placeholder -- </span>
     </div>
-    {if $form.url_logo.value}
+    {if !empty($form.url_logo.value)}
         <div class="crm-logo"><img src="{$form.url_logo.value}" alt={ts}Logo{/ts}></div>
     {/if}
     <div id="crm_cpid_{$cpageId}_donors" class="crm-donors"></div>
diff --git a/civicrm/templates/CRM/Custom/Form/CustomData.tpl b/civicrm/templates/CRM/Custom/Form/CustomData.tpl
index 1a624a31a8..1464225f44 100644
--- a/civicrm/templates/CRM/Custom/Form/CustomData.tpl
+++ b/civicrm/templates/CRM/Custom/Form/CustomData.tpl
@@ -23,8 +23,8 @@
         {include file="CRM/Custom/Form/Edit/CustomData.tpl" customDataEntity=''}
       </div>
     {else}
-     <div class="custom-group custom-group-{$cd_edit.name} crm-accordion-wrapper crm-custom-accordion {if $cd_edit.collapse_display and !$skipTitle}collapsed{/if}">
-      {if !$skipTitle}
+     <div class="custom-group custom-group-{$cd_edit.name} crm-accordion-wrapper crm-custom-accordion {if $cd_edit.collapse_display and empty($skipTitle)}collapsed{/if}">
+      {if empty($skipTitle)}
       <div class="crm-accordion-header">
         {$cd_edit.title}
        </div><!-- /.crm-accordion-header -->
diff --git a/civicrm/templates/CRM/Custom/Form/Field.tpl b/civicrm/templates/CRM/Custom/Form/Field.tpl
index 0bca2ed448..df8cd053a5 100644
--- a/civicrm/templates/CRM/Custom/Form/Field.tpl
+++ b/civicrm/templates/CRM/Custom/Form/Field.tpl
@@ -30,7 +30,7 @@
       <td class="label">{$form.serialize.label}</td>
       <td class="html-adjust">{$form.serialize.html}</td>
     </tr>
-    {if $form.in_selector}
+    {if !empty($form.in_selector)}
       <tr class='crm-custom-field-form-block-in_selector'>
         <td class='label'>{$form.in_selector.label}</td>
         <td class='html-adjust'>{$form.in_selector.html} {help id="id-in_selector"}</td>
diff --git a/civicrm/templates/CRM/Custom/Form/Optionfields.tpl b/civicrm/templates/CRM/Custom/Form/Optionfields.tpl
index 0b14545951..d46ce1fbb4 100644
--- a/civicrm/templates/CRM/Custom/Form/Optionfields.tpl
+++ b/civicrm/templates/CRM/Custom/Form/Optionfields.tpl
@@ -15,7 +15,7 @@
 </td>
 </tr>
 
-<tr id="option_group" {if !$form.option_group_id}class="hiddenElement"{/if}>
+<tr id="option_group" {if empty($form.option_group_id)}class="hiddenElement"{/if}>
   <td class="label">{$form.option_group_id.label}</td>
   <td class="html-adjust">{$form.option_group_id.html}</td>
 </tr>
@@ -86,7 +86,7 @@
     {* hide and display the appropriate blocks as directed by the php code *}
     on_load_init_blocks( showRows, hideBlocks, '' );
 
-{if $form.option_group_id}
+{if !empty($form.option_group_id)}
 {literal}
 function showOptionSelect( ) {
    if ( document.getElementsByName("option_type")[0].checked ) {
diff --git a/civicrm/templates/CRM/Custom/Form/Search.tpl b/civicrm/templates/CRM/Custom/Form/Search.tpl
index 3ac0bdb83b..8bf00efc5b 100644
--- a/civicrm/templates/CRM/Custom/Form/Search.tpl
+++ b/civicrm/templates/CRM/Custom/Form/Search.tpl
@@ -28,7 +28,7 @@
                     <td class="label">{$form.$element_name_from.label}</td><td>
                     {$form.$element_name_from.html|crmAddClass:six}
                     &nbsp;&nbsp;{$form.$element_name_to.label}&nbsp;&nbsp;{$form.$element_name_to.html|crmAddClass:six}
-                  {elseif $element.skip_calendar NEQ true }
+                  {elseif empty($element.skip_calendar)}
                     {include file="CRM/Core/DatePickerRangeCustomField.tpl" fieldName=$element_name hideRelativeLabel=0}<td>
                   {/if}
             {else}
diff --git a/civicrm/templates/CRM/Event/Form/EventFees.tpl b/civicrm/templates/CRM/Event/Form/EventFees.tpl
index e6c5ef4ab4..2274143108 100644
--- a/civicrm/templates/CRM/Event/Form/EventFees.tpl
+++ b/civicrm/templates/CRM/Event/Form/EventFees.tpl
@@ -227,7 +227,7 @@
 
      function fillTotalAmount( totalAmount ) {
           if ( !totalAmount ) {
-        var amountVal = {/literal}{if $form.amount.value}{$form.amount.value}{else}0{/if}{literal};
+        var amountVal = {/literal}{if !empty($form.amount.value)}{$form.amount.value}{else}0{/if}{literal};
         if ( amountVal > 0 ) {
                var eventFeeBlockValues = {/literal}{$eventFeeBlockValues}{literal};
           totalAmount = eval('eventFeeBlockValues.amount_id_'+ amountVal);
diff --git a/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl b/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl
index 8e1b0645c1..5bb6b6a706 100644
--- a/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl
+++ b/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl
@@ -15,13 +15,13 @@
     {include file="CRM/common/formButtons.tpl" location="top"}
   </div>
   <table class="form-layout-compressed">
-    {if $form.template_id}
+    {if !empty($form.template_id)}
       <tr class="crm-event-manage-eventinfo-form-block-template_id">
         <td class="label">{$form.template_id.label} {help id="id-select-template" isTemplate=$isTemplate}</td>
         <td>{$form.template_id.html}</td>
       </tr>
     {/if}
-    {if $form.template_title}
+    {if !empty($form.template_title)}
       <tr class="crm-event-manage-eventinfo-form-block-template_title">
         <td class="label">{$form.template_title.label} {help id="id-template-title"}{if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_event' field='template_title' id=$eventID}{/if}</td>
         <td>{$form.template_title.html}</td>
@@ -90,7 +90,7 @@
       <td>{$form.event_full_text.html}</td>
     </tr>
     <tr id="id-waitlist-text" class="crm-event-manage-eventinfo-form-block-waitlist_text">
-      {if $form.waitlist_text}
+      {if !empty($form.waitlist_text)}
         <td class="label">{$form.waitlist_text.label} {if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_event' field='waitlist_text' id=$eventID}{/if}<br />{help id="id-help-waitlist_text"}</td>
         <td>{$form.waitlist_text.html}</td>
       {/if}
diff --git a/civicrm/templates/CRM/Event/Form/ManageEvent/Registration.tpl b/civicrm/templates/CRM/Event/Form/ManageEvent/Registration.tpl
index 27c4cdb59b..c3db65bb90 100644
--- a/civicrm/templates/CRM/Event/Form/ManageEvent/Registration.tpl
+++ b/civicrm/templates/CRM/Event/Form/ManageEvent/Registration.tpl
@@ -80,13 +80,13 @@
     <td>{$form.dedupe_rule_group_id.html} {help id="id-dedupe_rule_group_id"}</td>
   </tr>
   <tr class="crm-event-manage-registration-form-block-requires_approval">
-    {if $form.requires_approval}
+    {if !empty($form.requires_approval)}
       <td scope="row" class="label" width="20%">{$form.requires_approval.label}</td>
       <td>{$form.requires_approval.html} {help id="id-requires_approval"}</td>
     {/if}
   </tr>
   <tr id="id-approval-text" class="crm-event-manage-registration-form-block-approval_req_text">
-    {if $form.approval_req_text}
+    {if !empty($form.approval_req_text)}
       <td scope="row" class="label"
           width="20%">{$form.approval_req_text.label} {if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_event' field='approval_req_text' id=$eventID}{/if}</td>
       <td>{$form.approval_req_text.html}</td>
@@ -379,7 +379,7 @@ target_element_type ="block"
 field_type          ="radio"
 invert              = 0
 }
-{if $form.requires_approval}
+{if !empty($form.requires_approval)}
 {include file="CRM/common/showHideByFieldValue.tpl"
     trigger_field_id    ="requires_approval"
     trigger_value       =""
diff --git a/civicrm/templates/CRM/Event/Form/Registration/Register.tpl b/civicrm/templates/CRM/Event/Form/Registration/Register.tpl
index a76a3c8dfe..512e94cbd2 100644
--- a/civicrm/templates/CRM/Event/Form/Registration/Register.tpl
+++ b/civicrm/templates/CRM/Event/Form/Registration/Register.tpl
@@ -56,7 +56,7 @@
       </div>
     {/if}
 
-    {if $form.additional_participants.html}
+    {if !empty($form.additional_participants.html)}
       <div class="crm-public-form-item crm-section additional_participants-section" id="noOfparticipants">
         <div class="label">{$form.additional_participants.label} <span class="crm-marker" title="{ts}This field is required.{/ts}">*</span></div>
         <div class="content">
@@ -122,7 +122,7 @@
       </fieldset>
     {/if}
 
-    {if $form.payment_processor_id.label}
+    {if !empty($form.payment_processor_id.label)}
       <fieldset class="crm-public-form-item crm-group payment_options-group" style="display:none;">
         <legend>{ts}Payment Options{/ts}</legend>
         <div class="crm-section payment_processor-section">
diff --git a/civicrm/templates/CRM/Event/Form/Selector.tpl b/civicrm/templates/CRM/Event/Form/Selector.tpl
index e0cdefac6e..3505dc446c 100644
--- a/civicrm/templates/CRM/Event/Form/Selector.tpl
+++ b/civicrm/templates/CRM/Event/Form/Selector.tpl
@@ -44,7 +44,7 @@
     {/if}
 
     <td class="crm-participant-event_title"><a href="{crmURL p='civicrm/event/info' q="id=`$row.event_id`&reset=1"}" title="{ts}View event info page{/ts}">{$row.event_title}</a>
-        {if $contactId}<br /><a href="{crmURL p='civicrm/event/search' q="reset=1&force=1&event=`$row.event_id`"}" title="{ts}List participants for this event (all statuses){/ts}">({ts}participants{/ts})</a>{/if}
+        {if !empty($contactId)}<br /><a href="{crmURL p='civicrm/event/search' q="reset=1&force=1&event=`$row.event_id`"}" title="{ts}List participants for this event (all statuses){/ts}">({ts}participants{/ts})</a>{/if}
     </td>
     {assign var="participant_id" value=$row.participant_id}
     {if $lineItems.$participant_id}
diff --git a/civicrm/templates/CRM/Event/Form/SelfSvcTransfer.tpl b/civicrm/templates/CRM/Event/Form/SelfSvcTransfer.tpl
index ba88106b02..8b501d4f7f 100644
--- a/civicrm/templates/CRM/Event/Form/SelfSvcTransfer.tpl
+++ b/civicrm/templates/CRM/Event/Form/SelfSvcTransfer.tpl
@@ -28,7 +28,7 @@
       <td class="crm-participant-participant_role">{$details.role}</td>
     </tr>
   </table>
-  {if $form.contact_id}
+  {if !empty($form.contact_id)}
     <div class="crm-public-form-item crm-section selfsvctransfer-section">
       <div class="crm-public-form-item crm-section selfsvctransfer-contact_id-section">
         <div class="label">{$form.contact_id.label}</div>
diff --git a/civicrm/templates/CRM/Event/Form/Task/AddToGroup.tpl b/civicrm/templates/CRM/Event/Form/Task/AddToGroup.tpl
index d7ea053fc3..e59db31228 100644
--- a/civicrm/templates/CRM/Event/Form/Task/AddToGroup.tpl
+++ b/civicrm/templates/CRM/Event/Form/Task/AddToGroup.tpl
@@ -33,7 +33,7 @@
                 <tr class="crm-contact-task-addtogroup-form-block-description">
                    <td class="label">{$form.description.label}</td>
                    <td>{$form.description.html}</td></tr>
-                {if $form.group_type}
+                {if !empty($form.group_type)}
                 <tr class="crm-contact-task-addtogroup-form-block-group_type">
         <td class="label">{$form.group_type.label}</td>
                     <td>{$form.group_type.html}</td>
diff --git a/civicrm/templates/CRM/Event/Page/DashBoard.tpl b/civicrm/templates/CRM/Event/Page/DashBoard.tpl
index d01250ee68..81091d6c59 100644
--- a/civicrm/templates/CRM/Event/Page/DashBoard.tpl
+++ b/civicrm/templates/CRM/Event/Page/DashBoard.tpl
@@ -96,7 +96,7 @@
                   <ul class="panel" id="panel_info_{$id}">
                     {foreach from=$eventSummary.tab key=k item=v}
                       {assign var="fld" value=$v.field}
-                      {if NOT $values.$fld}{assign var="status" value="disabled"}{else}{assign var="status" value="enabled"}{/if}
+                      {if empty($values.$fld)}{assign var="status" value="disabled"}{else}{assign var="status" value="enabled"}{/if}
                       {* Schedule Reminders requires a different query string. *}
                       {if $v.url EQ 'civicrm/event/manage/reminder'}
                         <li><a title="{$v.title|escape}" class="action-item crm-hover-button no-popup {$status}"
diff --git a/civicrm/templates/CRM/Event/Page/iCalLinks.tpl b/civicrm/templates/CRM/Event/Page/iCalLinks.tpl
index b122b06378..05a676c694 100644
--- a/civicrm/templates/CRM/Event/Page/iCalLinks.tpl
+++ b/civicrm/templates/CRM/Event/Page/iCalLinks.tpl
@@ -9,7 +9,7 @@
 *}
 {* Display icons / links for ical download and feed for EventInfo.tpl, ThankYou.tpl, DashBoard.tpl, and ManageEvent.tpl *}
   {foreach from=$iCal item="iCalItem"}
-  <a href="{$iCalItem.url}" title="{$iCalItem.text}"{if !$event} class="crm-event-feed-link"{/if}>
+  <a href="{$iCalItem.url}" title="{$iCalItem.text}"{if !empty($event)} class="crm-event-feed-link"{/if}>
     <span class="fa-stack" aria-hidden="true"><i class="crm-i fa-calendar-o fa-stack-2x"></i><i style="top: 15%;" class="crm-i {$iCalItem.icon} fa-stack-1x"></i></span>
     <span class="sr-only">{$iCalItem.text}</span>
   </a>
diff --git a/civicrm/templates/CRM/Export/Form/Select.tpl b/civicrm/templates/CRM/Export/Form/Select.tpl
index df984478d7..06a37cb30c 100644
--- a/civicrm/templates/CRM/Export/Form/Select.tpl
+++ b/civicrm/templates/CRM/Export/Form/Select.tpl
@@ -29,7 +29,7 @@
   </div>
 
   <div id="map" class="crm-section crm-export-mapping-section">
-      {if $form.mapping }
+      {if !empty($form.mapping)}
         <div class="label crm-label-export-mapping">
             {$form.mapping.label}
         </div>
diff --git a/civicrm/templates/CRM/Financial/Form/BatchTransaction.tpl b/civicrm/templates/CRM/Financial/Form/BatchTransaction.tpl
index fe4a63c707..456fdfe7a9 100644
--- a/civicrm/templates/CRM/Financial/Form/BatchTransaction.tpl
+++ b/civicrm/templates/CRM/Financial/Form/BatchTransaction.tpl
@@ -25,7 +25,7 @@
             </td>
           </tr>
           <tr>
-          {if $form.contact_tags}
+          {if !empty($form.contact_tags)}
             <td>
               <label>{ts}Contributor Tag(s){/ts}</label><br>
               {$form.contact_tags.html}
@@ -33,7 +33,7 @@
             {else}
             <td>&nbsp;</td>
           {/if}
-          {if $form.group}
+          {if !empty($form.group)}
             <td><label>{ts}Contributor Group(s){/ts}</label><br>
               {$form.group.html}
             </td>
@@ -242,7 +242,7 @@ function buildTransactionSelectorAssign(filterSearch) {
     });
   }
 });
-	
+
 }
 
 function buildTransactionSelectorRemove( ) {
diff --git a/civicrm/templates/CRM/Form/attachment.tpl b/civicrm/templates/CRM/Form/attachment.tpl
index 87b74efe47..86cade7e56 100644
--- a/civicrm/templates/CRM/Form/attachment.tpl
+++ b/civicrm/templates/CRM/Form/attachment.tpl
@@ -41,7 +41,7 @@
      {/if}
     <div id="attachments">
       <table class="form-layout-compressed">
-      {if $form.attachFile_1}
+      {if !empty($form.attachFile_1)}
         {if !empty($context) && $context EQ 'pcpCampaign'}
             <div class="description">{ts}You can upload a picture or image to include on your page. Your file should be in .jpg, .gif, or .png format. Recommended image size is 250 x 250 pixels. Images over 360 pixels wide will be automatically resized to fit.{/ts}</div>
         {/if}
diff --git a/civicrm/templates/CRM/Form/body.tpl b/civicrm/templates/CRM/Form/body.tpl
index ee60c49db6..a34e7a835c 100644
--- a/civicrm/templates/CRM/Form/body.tpl
+++ b/civicrm/templates/CRM/Form/body.tpl
@@ -7,11 +7,11 @@
  | and copyright information, see https://civicrm.org/licensing       |
  +--------------------------------------------------------------------+
 *}
-{if $form.javascript}
+{if !empty($form.javascript)}
   {$form.javascript}
 {/if}
 
-{if $form.hidden}
+{if !empty($form.hidden)}
   <div>{$form.hidden}</div>
 {/if}
 
diff --git a/civicrm/templates/CRM/Group/Form/Edit.tpl b/civicrm/templates/CRM/Group/Form/Edit.tpl
index d0fe28bf39..967498961e 100644
--- a/civicrm/templates/CRM/Group/Form/Edit.tpl
+++ b/civicrm/templates/CRM/Group/Form/Edit.tpl
@@ -45,7 +45,7 @@
       <td>{$form.frontend_description.html}</td>
     </tr>
 
-    {if $form.group_type}
+    {if !empty($form.group_type)}
       <tr class="crm-group-form-block-group_type">
         <td class="label">{$form.group_type.label}</td>
         <td>{$form.group_type.html} {help id="id-group-type" file="CRM/Group/Page/Group.hlp"}</td>
diff --git a/civicrm/templates/CRM/Mailing/Form/Optout.tpl b/civicrm/templates/CRM/Mailing/Form/Optout.tpl
index d862daaaf7..e5286a508a 100644
--- a/civicrm/templates/CRM/Mailing/Form/Optout.tpl
+++ b/civicrm/templates/CRM/Mailing/Form/Optout.tpl
@@ -9,25 +9,18 @@
 *}
 
 <div class="crm-block crm-form-block crm-miscellaneous-form-block">
+  <p>{ts}You are requesting to opt out this email address from all mailing lists:{/ts}</p>
+  <h3>{$email_masked}</h3>
 
-    <p>{ts}You are requesting to opt out this email address from all mailing lists:{/ts}</p>
-    <h3>{$email_masked}</h3>
-
-    <p>{ts}If this is not your email address, there is no need to do anything. You have <i><b>not</b></i> been added to any mailing lists. If this is your email address and you <i><b>wish to opt out</b></i> please enter your email address below for verification purposes:{/ts}</p>
-
-    <table class="form-layout">
-      <tbody>
-      <tr>
-        <td class="label">{$form.email_confirm.label}</td>
-        <td class="content">{$form.email_confirm.html}
-      </tr>
-      </tbody>
-    </table>
+  <p>
+      {ts}If this is not your email address, there is no need to do anything. You have <strong>not</strong> been added to any mailing lists.{/ts}
+      {ts}If this is your email address and you <strong>wish to opt out</strong> please click the <strong>Opt Out</strong> button to confirm.{/ts}
+  </p>
 
   <div class="crm-submit-buttons">
-    {include file="CRM/common/formButtons.tpl" location="bottom"}
+      {include file="CRM/common/formButtons.tpl" location="bottom"}
   </div>
 
-<br/>
+  <br/>
 </div>
 
diff --git a/civicrm/templates/CRM/Mailing/Form/Search.tpl b/civicrm/templates/CRM/Mailing/Form/Search.tpl
index 9649ea4b12..b8dd9a4cf6 100644
--- a/civicrm/templates/CRM/Mailing/Form/Search.tpl
+++ b/civicrm/templates/CRM/Mailing/Form/Search.tpl
@@ -26,7 +26,7 @@
           {$form.is_archived.html}
         </div>
       </td>
-      {if $form.mailing_status}
+      {if !empty($form.mailing_status)}
          <td width="100%"><label>{if $sms eq 1}{ts}SMS Status{/ts}{else}{ts}Mailing Status{/ts}{/if}</label><br />
            <div class="listing-box" style="height: auto">
              {foreach from=$form.mailing_status item="mailing_status_val"}
diff --git a/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl b/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl
index 6a1f97e792..8cf7506530 100644
--- a/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl
+++ b/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl
@@ -24,15 +24,10 @@
     <div class="crm-block crm-form-block crm-miscellaneous-form-block">
       <p>{ts}You are requesting to unsubscribe this email address:{/ts}</p>
       <h3>{$email_masked}</h3>
-      <p>{ts}If this is not your email address, there is no need to do anything. You have <i><b>not</b></i> been added to any mailing lists. If this is your email address and you <i><b>wish to unsubscribe</b></i> please enter your email address below for verification purposes:{/ts}</p>
-      <table class="form-layout">
-        <tbody>
-          <tr>
-            <td class="label">{$form.email_confirm.label}</td>
-            <td class="content">{$form.email_confirm.html}</td>
-          </tr>
-        </tbody>
-      </table>
+      <p>
+        {ts}If this is not your email address, there is no need to do anything. You have <strong>not</strong> been added to any mailing lists.{/ts}
+        {ts}If this is your email address and you <strong>wish to unsubscribe</strong> please click the <strong>Unsubscribe</strong> button to confirm.{/ts}
+      </p>
       <div class="crm-submit-buttons">
         {include file="CRM/common/formButtons.tpl" location="bottom"}
       </div>
diff --git a/civicrm/templates/CRM/Mailing/Page/Browse.tpl b/civicrm/templates/CRM/Mailing/Page/Browse.tpl
index 448cd77bdb..ad5a0b8d41 100644
--- a/civicrm/templates/CRM/Mailing/Page/Browse.tpl
+++ b/civicrm/templates/CRM/Mailing/Page/Browse.tpl
@@ -35,10 +35,10 @@
       <thead class="sticky">
       {foreach from=$columnHeaders item=header}
         <th>
-          {if $header.sort}
+          {if !empty($header.sort)}
             {assign var='key' value=$header.sort}
             {$sort->_response.$key.link}
-          {else}
+          {elseif !empty($header.name)}
             {$header.name}
           {/if}
         </th>
diff --git a/civicrm/templates/CRM/Member/Form/MembershipBlock.tpl b/civicrm/templates/CRM/Member/Form/MembershipBlock.tpl
index 0ff3a3ff04..7846736b1f 100644
--- a/civicrm/templates/CRM/Member/Form/MembershipBlock.tpl
+++ b/civicrm/templates/CRM/Member/Form/MembershipBlock.tpl
@@ -12,7 +12,7 @@
 <div class="help">
     {ts}Use this form to enable and configure a Membership Signup and Renewal section for this Online Contribution Page. If you're not using this page for membership signup, leave the <strong>Enabled</strong> box un-checked..{/ts} {docURL page="user/membership/setup"}
 </div>
-  {if $form.membership_type.html}
+  {if !empty($form.membership_type.html)}
   <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
     <table class="form-layout-compressed">
         <tr class="crm-member-membershipblock-form-block-member_is_active">
diff --git a/civicrm/templates/CRM/Member/Form/Search/Common.tpl b/civicrm/templates/CRM/Member/Form/Search/Common.tpl
index faf801b4af..87876b61ac 100644
--- a/civicrm/templates/CRM/Member/Form/Search/Common.tpl
+++ b/civicrm/templates/CRM/Member/Form/Search/Common.tpl
@@ -37,7 +37,7 @@
 </tr>
 <tr>
   <td>
-    {if $form.member_auto_renew}
+    {if !empty($form.member_auto_renew)}
       <label>{$form.member_auto_renew.label}</label>
       {help id="id-member_auto_renew" file="CRM/Member/Form/Search.hlp"}
       <br/>
diff --git a/civicrm/templates/CRM/PCP/Form/PCP.tpl b/civicrm/templates/CRM/PCP/Form/PCP.tpl
index 8aac87cb87..2df7a6719e 100644
--- a/civicrm/templates/CRM/PCP/Form/PCP.tpl
+++ b/civicrm/templates/CRM/PCP/Form/PCP.tpl
@@ -19,7 +19,7 @@
 
 <div id="pcpFields">
 {crmRegion name="pcp-form-pcp-fields"}
-  {if $form.target_entity_type}
+  {if !empty($form.target_entity_type)}
   <table class="form-layout">
     <tr  class="crm-contribution-contributionpage-pcp-form-block-target_entity_type">
         <td class="label">{$form.target_entity_type.label} <span class="crm-marker"> *</span></td>
diff --git a/civicrm/templates/CRM/Pledge/Form/Pledge.tpl b/civicrm/templates/CRM/Pledge/Form/Pledge.tpl
index 09ba2bca48..d49e3013be 100644
--- a/civicrm/templates/CRM/Pledge/Form/Pledge.tpl
+++ b/civicrm/templates/CRM/Pledge/Form/Pledge.tpl
@@ -81,7 +81,7 @@
           </tr>
 
         {if $email and $outBound_option != 2}
-            {if $form.is_acknowledge }
+            {if !empty($form.is_acknowledge)}
           <tr class="crm-pledge-form-block-is_acknowledge">
             <td class="label">{$form.is_acknowledge.label}</td>
             <td>{$form.is_acknowledge.html}<br />
diff --git a/civicrm/templates/CRM/Price/Form/Option.tpl b/civicrm/templates/CRM/Price/Form/Option.tpl
index 18b72acd55..ea6eb23c3b 100644
--- a/civicrm/templates/CRM/Price/Form/Option.tpl
+++ b/civicrm/templates/CRM/Price/Form/Option.tpl
@@ -63,14 +63,14 @@
         </td>
       </tr>
       {* fix for CRM-10241 *}
-      {if $form.count.html}
+      {if !empty($form.count.html)}
         <tr class="crm-price-option-form-block-count">
           <td class="label">{$form.count.label}</td>
           <td>{$form.count.html} {help id="id-participant-count" file="CRM/Price/Page/Field.hlp"}</td>
         </tr>
         {* 2 line fix for CRM-10241 *}
       {/if}
-      {if $form.max_value.html}
+      {if !empty($form.max_value.html)}
         <tr class="crm-price-option-form-block-max_value">
           <td class="label">{$form.max_value.label}</td>
           <td>{$form.max_value.html} {help id="id-participant-max" file="CRM/Price/Page/Field.hlp"}</td>
diff --git a/civicrm/templates/CRM/Price/Form/PriceSet.tpl b/civicrm/templates/CRM/Price/Form/PriceSet.tpl
index f2b56eb2b6..26520f58e2 100644
--- a/civicrm/templates/CRM/Price/Form/PriceSet.tpl
+++ b/civicrm/templates/CRM/Price/Form/PriceSet.tpl
@@ -29,7 +29,7 @@
         {* Skip 'Admin' visibility price fields WHEN this tpl is used in online registration unless user has administer CiviCRM permission. *}
         {if $element.visibility EQ 'public' || ($element.visibility EQ 'admin' && $adminFld EQ true) || $context eq 'standalone' || $context eq 'advanced' || $context eq 'search' || $context eq 'participant' || $context eq 'dashboard' || $action eq 1024}
             {if $element.help_pre}<span class="content description">{$element.help_pre}</span><br />{/if}
-            <div class="crm-section {$element.name}-section">
+            <div class="crm-section {$element.name}-section crm-price-field-id-{$field_id}">
             {if ($element.html_type eq 'CheckBox' || $element.html_type == 'Radio') && $element.options_per_line}
               {assign var="element_name" value="price_"|cat:$field_id}
               <div class="label">{$form.$element_name.label}</div>
diff --git a/civicrm/templates/CRM/Tag/Form/Edit.tpl b/civicrm/templates/CRM/Tag/Form/Edit.tpl
index fffeb0b46f..ed86047290 100644
--- a/civicrm/templates/CRM/Tag/Form/Edit.tpl
+++ b/civicrm/templates/CRM/Tag/Form/Edit.tpl
@@ -20,13 +20,13 @@
           <td class="label">{$form.description.label}</td>
           <td>{$form.description.html}</td>
        </tr>
-         {if $form.parent_id.html}
+         {if !empty($form.parent_id.html)}
        <tr class="crm-tag-form-block-parent_id">
          <td class="label">{$form.parent_id.label}</td>
          <td>{$form.parent_id.html}</td>
        </tr>
    {/if}
-      {if $form.used_for}
+      {if !empty($form.used_for)}
        <tr class="crm-tag-form-block-used_for">
           <td class="label">{$form.used_for.label}</td>
           <td>{$form.used_for.html} <br />
@@ -39,7 +39,7 @@
           </td>
         </tr>
       {/if}
-      {if $form.color.html}
+      {if !empty($form.color.html)}
         <tr class="crm-tag-form-block-color">
           <td class="label">{$form.color.label}</td>
           <td>{$form.color.html}</td>
diff --git a/civicrm/templates/CRM/common/CMSUser.tpl b/civicrm/templates/CRM/common/CMSUser.tpl
index 3bc57f2613..3b3a65864c 100644
--- a/civicrm/templates/CRM/common/CMSUser.tpl
+++ b/civicrm/templates/CRM/common/CMSUser.tpl
@@ -11,7 +11,7 @@
    <fieldset class="crm-group crm_user-group">
       <div class="messages help cms_user_help-section">
    {if !$isCMS}
-      {ts}If you would like to create an account on this site, check the box below and enter a Username{/ts}{if $form.cms_pass} {ts}and a password{/ts}.{/if}
+      {ts}If you would like to create an account on this site, check the box below and enter a Username{/ts}{if !empty($form.cms_pass)} {ts}and a password{/ts}.{/if}
    {else}
       {ts}Please enter a Username to create an account.{/ts}
    {/if}
@@ -32,7 +32,7 @@
              </div>
            </div>
 
-           {if $form.cms_pass}
+           {if !empty($form.cms_pass)}
            <div class="crm-section cms_pass-section">
              <div class="label">
                <label for="cms_pass">{$form.cms_pass.label}</label>
diff --git a/civicrm/templates/CRM/common/TabHeader.tpl b/civicrm/templates/CRM/common/TabHeader.tpl
index c969794196..1e9179975a 100644
--- a/civicrm/templates/CRM/common/TabHeader.tpl
+++ b/civicrm/templates/CRM/common/TabHeader.tpl
@@ -9,7 +9,7 @@
 *}
 {* enclose all tabs and its content in a block *}
 <div class="crm-block crm-content-block">
-  {if $tabHeader and count($tabHeader)}
+  {if !empty($tabHeader) and count($tabHeader)}
     <div id="mainTabContainer">
     <ul>
        {foreach from=$tabHeader key=tabName item=tabValue}
diff --git a/civicrm/templates/CRM/common/Tagset.tpl b/civicrm/templates/CRM/common/Tagset.tpl
index 4f79616305..bb862767fd 100644
--- a/civicrm/templates/CRM/common/Tagset.tpl
+++ b/civicrm/templates/CRM/common/Tagset.tpl
@@ -20,7 +20,7 @@
       {if empty($tagsetElementName) or $tagsetElementName eq $elemName}
         {assign var="parID" value=$tagset.parentID}
         {assign var="skipEntityAction" value=$tagset.skipEntityAction}
-        {if $tableLayout}
+        {if !empty($tableLayout)}
           <tr>
             <td class="label">
               {$form.$elemName.$parID.label}
diff --git a/civicrm/templates/CRM/common/civicrm.settings.php.template b/civicrm/templates/CRM/common/civicrm.settings.php.template
index 29c97b69c5..1747c0e72d 100644
--- a/civicrm/templates/CRM/common/civicrm.settings.php.template
+++ b/civicrm/templates/CRM/common/civicrm.settings.php.template
@@ -176,8 +176,6 @@ if (!defined('CIVICRM_LOGGING_DSN')) {
  *
  */
 
-global $civicrm_root;
-
 $civicrm_root = '%%crmRoot%%';
 if (!defined('CIVICRM_TEMPLATE_COMPILEDIR')) {
   define( 'CIVICRM_TEMPLATE_COMPILEDIR', '%%templateCompileDir%%');
diff --git a/civicrm/templates/CRM/common/displaySearchCriteria.tpl b/civicrm/templates/CRM/common/displaySearchCriteria.tpl
index cf5bfefb74..f6e587e47f 100644
--- a/civicrm/templates/CRM/common/displaySearchCriteria.tpl
+++ b/civicrm/templates/CRM/common/displaySearchCriteria.tpl
@@ -38,7 +38,7 @@
             <div class="qill">
             {$item|escape}
             {if !$smarty.foreach.criteria.last}
-                {if $operator}
+                {if !empty($operator)}
                   <span class="font-italic">...{$operator|escape}...</span>
                 {else}
                   <span class="font-italic">...{ts}AND{/ts}...</span>
diff --git a/civicrm/templates/CRM/common/fatal.tpl b/civicrm/templates/CRM/common/fatal.tpl
index 870180bb0a..4ee6936607 100644
--- a/civicrm/templates/CRM/common/fatal.tpl
+++ b/civicrm/templates/CRM/common/fatal.tpl
@@ -13,7 +13,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 
 <head>
-  <title>{$pageTitle|escape}</title>
+  <title>{if !empty($pageTitle)}{$pageTitle|escape}{/if}</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <base href="{$config->resourceBase}" />
   <style type="text/css" media="screen">
@@ -35,23 +35,23 @@
 <div class="messages status no-popup">  <i class="crm-i fa-exclamation-triangle crm-i-red" aria-hidden="true"></i>
  <span class="status-fatal">{ts}Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.{/ts}</span>
     <div class="crm-section crm-error-message">{$message|escape}</div>
-    {if $error.message && $message != $error.message}
+    {if !empty($error.message) && $message != $error.message}
         <hr style="solid 1px" />
         <div class="crm-section crm-error-message">{$error.message|escape}</div>
     {/if}
-    {if ($code OR $mysql_code OR $errorDetails) AND $config->debug}
+    {if (!empty($code) || !empty($mysql_code) || !empty($errorDetails)) AND $config->debug}
         <div class="crm-accordion-wrapper collapsed crm-fatal-error-details-block">
          <div class="crm-accordion-header" onclick="toggle(this);";>
           {ts}Error Details{/ts}
          </div><!-- /.crm-accordion-header -->
          <div class="crm-accordion-body">
-            {if $code}
+            {if !empty($code)}
                 <div class="crm-section">{ts}Error Code:{/ts} {$code|purify}</div>
             {/if}
-            {if $mysql_code}
+            {if !empty($mysql_code)}
                 <div class="crm-section">{ts}Database Error Code:{/ts} {$mysql_code|purify}</div>
             {/if}
-            {if $errorDetails}
+            {if !empty($errorDetails)}
                 <div class="crm-section">{ts}Additional Details:{/ts} {$errorDetails|purify}</div>
             {/if}
          </div><!-- /.crm-accordion-body -->
diff --git a/civicrm/templates/CRM/common/searchResultTasks.tpl b/civicrm/templates/CRM/common/searchResultTasks.tpl
index 55f08a54f6..be4b9e4a5d 100644
--- a/civicrm/templates/CRM/common/searchResultTasks.tpl
+++ b/civicrm/templates/CRM/common/searchResultTasks.tpl
@@ -13,8 +13,8 @@
   <table class="form-layout-compressed">
   <tr>
     <td class="font-size12pt" style="width: 40%;">
-    {if $savedSearch.name}{$savedSearch.name} ({ts}smart group{/ts}) - {/if}
-    {ts count=$pager->_totalItems plural='%count Results'}%count Result{/ts}{if $selectorLabel}&nbsp;-&nbsp;{$selectorLabel}{/if}
+    {if !empty($savedSearch.name)}{$savedSearch.name} ({ts}smart group{/ts}) - {/if}
+    {ts count=$pager->_totalItems plural='%count Results'}%count Result{/ts}{if !empty($selectorLabel)}&nbsp;-&nbsp;{$selectorLabel}{/if}
     {if $context == 'Event' && $participantCount && ( $pager->_totalItems ne $participantCount ) }
         <br />{ts}Actual participant count{/ts} : {$participantCount} {help id="id-actual_participant_count" file="CRM/Event/Form/Search/Results.hlp"} &nbsp;
     {/if}
diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php
index 933327f490..0e6b3a8761 100644
--- a/civicrm/vendor/autoload.php
+++ b/civicrm/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInit3b2ff727b31236c2243afdf02557ffe5::getLoader();
+return ComposerAutoloaderInit13e9b60dd93f8aaefb66b9a8626540e9::getLoader();
diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php
index 54dba0c20d..cc1d0749ec 100644
--- a/civicrm/vendor/composer/autoload_real.php
+++ b/civicrm/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit3b2ff727b31236c2243afdf02557ffe5
+class ComposerAutoloaderInit13e9b60dd93f8aaefb66b9a8626540e9
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit3b2ff727b31236c2243afdf02557ffe5
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit3b2ff727b31236c2243afdf02557ffe5', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInit13e9b60dd93f8aaefb66b9a8626540e9', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit3b2ff727b31236c2243afdf02557ffe5', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit13e9b60dd93f8aaefb66b9a8626540e9', 'loadClassLoader'));
 
         $includePaths = require __DIR__ . '/include_paths.php';
         $includePaths[] = get_include_path();
@@ -31,7 +31,7 @@ class ComposerAutoloaderInit3b2ff727b31236c2243afdf02557ffe5
         if ($useStaticLoader) {
             require_once __DIR__ . '/autoload_static.php';
 
-            call_user_func(\Composer\Autoload\ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5::getInitializer($loader));
+            call_user_func(\Composer\Autoload\ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9::getInitializer($loader));
         } else {
             $map = require __DIR__ . '/autoload_namespaces.php';
             foreach ($map as $namespace => $path) {
@@ -52,19 +52,19 @@ class ComposerAutoloaderInit3b2ff727b31236c2243afdf02557ffe5
         $loader->register(true);
 
         if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5::$files;
+            $includeFiles = Composer\Autoload\ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire3b2ff727b31236c2243afdf02557ffe5($fileIdentifier, $file);
+            composerRequire13e9b60dd93f8aaefb66b9a8626540e9($fileIdentifier, $file);
         }
 
         return $loader;
     }
 }
 
-function composerRequire3b2ff727b31236c2243afdf02557ffe5($fileIdentifier, $file)
+function composerRequire13e9b60dd93f8aaefb66b9a8626540e9($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         require $file;
diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php
index 4ca6642c2f..61aa8ba849 100644
--- a/civicrm/vendor/composer/autoload_static.php
+++ b/civicrm/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5
+class ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9
 {
     public static $files = array (
         '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
@@ -572,11 +572,11 @@ class ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5::$prefixDirsPsr4;
-            $loader->prefixesPsr0 = ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5::$prefixesPsr0;
-            $loader->fallbackDirsPsr0 = ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5::$fallbackDirsPsr0;
-            $loader->classMap = ComposerStaticInit3b2ff727b31236c2243afdf02557ffe5::$classMap;
+            $loader->prefixLengthsPsr4 = ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9::$prefixDirsPsr4;
+            $loader->prefixesPsr0 = ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9::$prefixesPsr0;
+            $loader->fallbackDirsPsr0 = ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9::$fallbackDirsPsr0;
+            $loader->classMap = ComposerStaticInit13e9b60dd93f8aaefb66b9a8626540e9::$classMap;
 
         }, null, ClassLoader::class);
     }
diff --git a/civicrm/xml/schema/Campaign/Survey.xml b/civicrm/xml/schema/Campaign/Survey.xml
index e57a3b1f4d..0433f898b5 100644
--- a/civicrm/xml/schema/Campaign/Survey.xml
+++ b/civicrm/xml/schema/Campaign/Survey.xml
@@ -214,6 +214,13 @@
     <default>NULL</default>
     <comment>Used to store option group id.</comment>
     <add>3.3</add>
+    <pseudoconstant>
+      <table>civicrm_option_group</table>
+      <keyColumn>id</keyColumn>
+      <labelColumn>title</labelColumn>
+      <nameColumn>name</nameColumn>
+      <condition>name LIKE "civicrm_survey_%"</condition>
+    </pseudoconstant>
   </field>
   <field>
     <name>bypass_confirm</name>
diff --git a/civicrm/xml/schema/Contribute/ContributionRecur.xml b/civicrm/xml/schema/Contribute/ContributionRecur.xml
index bc8e0eafe0..10ccc53592 100644
--- a/civicrm/xml/schema/Contribute/ContributionRecur.xml
+++ b/civicrm/xml/schema/Contribute/ContributionRecur.xml
@@ -143,8 +143,8 @@
   <field>
     <name>modified_date</name>
     <title>Modified Date</title>
-    <type>datetime</type>
-    <default>CURRENT_TIMESTAMP</default>
+    <type>timestamp</type>
+    <default>CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP</default>
     <comment>Last updated date for this record. mostly the last time a payment was received</comment>
     <add>1.6</add>
     <html>
diff --git a/civicrm/xml/schema/Core/MappingField.xml b/civicrm/xml/schema/Core/MappingField.xml
index 0f4114aacf..10cf1c4d54 100644
--- a/civicrm/xml/schema/Core/MappingField.xml
+++ b/civicrm/xml/schema/Core/MappingField.xml
@@ -38,6 +38,7 @@
     <table>civicrm_mapping</table>
     <key>id</key>
     <add>1.2</add>
+    <onDelete>CASCADE</onDelete>
   </foreignKey>
   <field>
     <name>name</name>
diff --git a/civicrm/xml/schema/Core/MessageTemplate.xml b/civicrm/xml/schema/Core/MessageTemplate.xml
index 16ee1f7c7e..c912a6abb0 100644
--- a/civicrm/xml/schema/Core/MessageTemplate.xml
+++ b/civicrm/xml/schema/Core/MessageTemplate.xml
@@ -96,6 +96,7 @@
     <name>is_reserved</name>
     <title>Message Template Is Reserved?</title>
     <type>boolean</type>
+    <default>0</default>
     <comment>is this the reserved message template which we ship for the workflow referenced by workflow_id?</comment>
     <add>3.1</add>
   </field>
diff --git a/civicrm/xml/schema/Event/Participant.xml b/civicrm/xml/schema/Event/Participant.xml
index e06493f302..7f0ce2367e 100644
--- a/civicrm/xml/schema/Event/Participant.xml
+++ b/civicrm/xml/schema/Event/Participant.xml
@@ -102,13 +102,14 @@
   <field>
     <name>role_id</name>
     <uniqueName>participant_role_id</uniqueName>
-    <title>Participant Role</title>
+    <title>Participant Role ID</title>
     <pseudoconstant>
       <optionGroupName>participant_role</optionGroupName>
     </pseudoconstant>
     <html>
       <type>Select</type>
       <multiple>1</multiple>
+      <label>Participant Role</label>
     </html>
     <serialize>SEPARATOR_TRIMMED</serialize>
     <headerPattern>/(participant.)?(role)$/i</headerPattern>
diff --git a/civicrm/xml/templates/civicrm_data.tpl b/civicrm/xml/templates/civicrm_data.tpl
index 4d91916da1..bff5c01a70 100644
--- a/civicrm/xml/templates/civicrm_data.tpl
+++ b/civicrm/xml/templates/civicrm_data.tpl
@@ -723,19 +723,19 @@ VALUES
 
 -- email greeting.
   (@option_group_id_emailGreeting, '{literal}Dear {contact.first_name}{/literal}',                                                 1, '{literal}Dear {contact.first_name}{/literal}',                                                 NULL,    1, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_emailGreeting, '{literal}Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}{/literal}', 2, '{literal}Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}{/literal}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_emailGreeting, '{literal}Dear {contact.individual_prefix} {contact.last_name}{/literal}',                      3, '{literal}Dear {contact.individual_prefix} {contact.last_name}{/literal}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_emailGreeting, '{literal}Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}{/literal}', 2, '{literal}Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}{/literal}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_emailGreeting, '{literal}Dear {contact.prefix_id:label} {contact.last_name}{/literal}',                      3, '{literal}Dear {contact.prefix_id:label} {contact.last_name}{/literal}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_emailGreeting, '{literal}Customized{/literal}',                                                                4, '{literal}Customized{/literal}',                                                                NULL, 0, 0, 4, NULL, 0, 1, 1, NULL, NULL, NULL),
   (@option_group_id_emailGreeting, '{literal}Dear {contact.household_name}{/literal}',                                             5, '{literal}Dear {contact.household_name}{/literal}',                                             NULL,    2, 1, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
 -- postal greeting.
   (@option_group_id_postalGreeting, '{literal}Dear {contact.first_name}{/literal}',                                                 1, '{literal}Dear {contact.first_name}{/literal}',                                                 NULL,    1, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_postalGreeting, '{literal}Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}{/literal}', 2, '{literal}Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}{/literal}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_postalGreeting, '{literal}Dear {contact.individual_prefix} {contact.last_name}{/literal}',                      3, '{literal}Dear {contact.individual_prefix} {contact.last_name}{/literal}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_postalGreeting, '{literal}Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}{/literal}', 2, '{literal}Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}{/literal}', NULL,    1, 0, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_postalGreeting, '{literal}Dear {contact.prefix_id:label} {contact.last_name}{/literal}',                      3, '{literal}Dear {contact.prefix_id:label} {contact.last_name}{/literal}',                      NULL,    1, 0, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_postalGreeting, '{literal}Customized{/literal}',                                                                4, '{literal}Customized{/literal}',                                                                NULL, 0, 0, 4, NULL, 0, 1, 1, NULL, NULL, NULL),
   (@option_group_id_postalGreeting, '{literal}Dear {contact.household_name}{/literal}',                                             5, '{literal}Dear {contact.household_name}{/literal}',                                             NULL,    2, 1, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
 
 -- addressee
-  (@option_group_id_addressee, '{literal}{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}{/literal}',          '1', '{literal}}{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}{/literal}',         NULL ,   '1', '1', '1', NULL , '0', '0', '1', NULL , NULL, NULL),
+  (@option_group_id_addressee, '{literal}{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}{/literal}',          '1', '{literal}{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}{/literal}',         NULL ,   '1', '1', '1', NULL , '0', '0', '1', NULL , NULL, NULL),
   (@option_group_id_addressee, '{literal}{contact.household_name}{/literal}',    '2', '{literal}{contact.household_name}{/literal}',    NULL ,   '2', '1', '2', NULL , '0', '0', '1', NULL , NULL, NULL),
   (@option_group_id_addressee, '{literal}{contact.organization_name}{/literal}', '3', '{literal}{contact.organization_name}{/literal}', NULL ,   '3', '1', '3', NULL , '0', '0', '1', NULL , NULL, NULL),
   (@option_group_id_addressee, '{literal}Customized{/literal}',                  '4', '{literal}Customized{/literal}',                  NULL ,    0 , '0', '4', NULL , '0', '1', '1', NULL , NULL, NULL),
@@ -1798,4 +1798,5 @@ INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_act
 INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'recaptcha', 'reCAPTCHA', 'reCAPTCHA', 'recaptcha', 1);
 INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'ckeditor4', 'CKEditor4', 'CKEditor4', 'ckeditor4', 1);
 INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'legacycustomsearches', 'Custom search framework', 'Custom search framework', 'legacycustomsearches', 1);
+INSERT IGNORE INTO civicrm_extension (type, full_name, name, label, file, is_active) VALUES ('module', 'org.civicrm.flexmailer', 'FlexMailer', 'FlexMailer', 'flexmailer', 1);
 
diff --git a/civicrm/xml/templates/civicrm_navigation.tpl b/civicrm/xml/templates/civicrm_navigation.tpl
index 5ca89798d3..e638f760a8 100644
--- a/civicrm/xml/templates/civicrm_navigation.tpl
+++ b/civicrm/xml/templates/civicrm_navigation.tpl
@@ -34,7 +34,7 @@ INSERT INTO `civicrm_dashboard`
 -- event badge
 INSERT INTO civicrm_print_label (title, name, description, label_format_name, label_type_id, is_default, is_reserved, is_active, data)
 VALUES
-('Annual Conference Hanging Badge (Avery 5395)', 'Annual_Conference_Hanging_Badge', 'For our annual conference', 'Avery 5395', 1, 1, 1, 1, '{literal}{"title":"Annual Conference Hanging Badge (Avery 5395)","label_format_name":"Avery 5395","description":"For our annual conference","token":{"1":"{event.title}","2":"{contact.display_name}","3":"{contact.current_employer}","4":"{event.start_date}"},"font_name":{"1":"dejavusans","2":"dejavusans","3":"dejavusans","4":"dejavusans"},"font_size":{"1":"9","2":"20","3":"15","4":"9"},"font_style":{"1":"","2":"","3":"","4":""},"text_alignment":{"1":"L","2":"C","3":"C","4":"R"},"barcode_type":"barcode","barcode_alignment":"R","image_1":"","image_2":"","is_default":"1","is_active":"1","is_reserved":"1","_qf_default":"Layout:next","_qf_Layout_refresh":"Save and Preview"}{/literal}');
+('Annual Conference Hanging Badge (Avery 5395)', 'Annual_Conference_Hanging_Badge', 'For our annual conference', 'Avery 5395', 1, 1, 1, 1, '{literal}{"title":"Annual Conference Hanging Badge (Avery 5395)","label_format_name":"Avery 5395","description":"For our annual conference","token":{"1":"{event.title}","2":"{contact.display_name}","3":"{contact.current_employer}","4":"{event.start_date|crmDate:\"%B %E%f\"}"},"font_name":{"1":"dejavusans","2":"dejavusans","3":"dejavusans","4":"dejavusans"},"font_size":{"1":"9","2":"20","3":"15","4":"9"},"font_style":{"1":"","2":"","3":"","4":""},"text_alignment":{"1":"L","2":"C","3":"C","4":"R"},"barcode_type":"barcode","barcode_alignment":"R","image_1":"","image_2":"","is_default":"1","is_active":"1","is_reserved":"1","_qf_default":"Layout:next","_qf_Layout_refresh":"Save and Preview"}{/literal}');
 
 -- navigation
 
diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml
index 07c3c97e61..99267b3757 100644
--- a/civicrm/xml/version.xml
+++ b/civicrm/xml/version.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="iso-8859-1" ?>
 <version>
-  <version_no>5.42.1</version_no>
+  <version_no>5.43.0</version_no>
 </version>
diff --git a/includes/admin-metaboxes/civicrm.metabox.contact.add.php b/includes/admin-metaboxes/civicrm.metabox.contact.add.php
index 2ca5a695af..ce802947d0 100644
--- a/includes/admin-metaboxes/civicrm.metabox.contact.add.php
+++ b/includes/admin-metaboxes/civicrm.metabox.contact.add.php
@@ -473,15 +473,27 @@ class CiviCRM_For_WordPress_Admin_Metabox_Contact_Add {
       wp_send_json($data);
     }
 
-    // Build params to create Contact.
-    $params = [
-      'version' => 3,
-      'contact_type' => 'Individual',
+    // Build params to check for an existing Contact.
+    $contact = [
       'first_name' => $data['first_name'],
       'last_name' => $data['last_name'],
       'email' => $data['email'],
     ];
 
+    // Bail if there is an existing Contact.
+    $existing_id = civi_wp()->admin->get_by_dedupe_unsupervised($contact);
+    if ($existing_id !== FALSE && $existing_id !== 0) {
+      $open = '<a href="' . $this->civi->admin->get_admin_link('civicrm/contact/view', 'reset=1&cid=' . $existing_id) . '">';
+      $data['notice'] = sprintf(__('There seems to be %1$san existing Contact%2$s with these details.', 'civicrm'), $open, '</a>');
+      wp_send_json($data);
+    }
+
+    // Build params to create Contact.
+    $params = [
+      'version' => 3,
+      'contact_type' => 'Individual',
+    ] + $contact;
+
     // Call the API.
     $result = civicrm_api('Contact', 'create', $params);
 
diff --git a/includes/civicrm.admin.php b/includes/civicrm.admin.php
index bb28e1955f..dde9a45392 100644
--- a/includes/civicrm.admin.php
+++ b/includes/civicrm.admin.php
@@ -863,4 +863,42 @@ class CiviCRM_For_WordPress_Admin {
 
   }
 
+  /**
+   * Gets a suggested CiviCRM Contact ID via the "Unsupervised" Dedupe Rule.
+   *
+   * @since 5.43
+   *
+   * @param array $contact The array of CiviCRM Contact data.
+   * @param string $contact_type The Contact Type.
+   * @return integer|bool $contact_id The suggested Contact ID, or false on failure.
+   */
+  public function get_by_dedupe_unsupervised($contact, $contact_type = 'Individual') {
+
+    if (empty($contact)) {
+      return FALSE;
+    }
+
+    if (!$this->civi->initialize()) {
+      return FALSE;
+    }
+
+    // Get the Dedupe params.
+    $dedupe_params = CRM_Dedupe_Finder::formatParams($contact, $contact_type);
+    $dedupe_params['check_permission'] = FALSE;
+
+    // Use Dedupe Rules to find possible Contact IDs.
+    $contact_ids = CRM_Dedupe_Finder::dupesByParams($dedupe_params, $contact_type, 'Unsupervised');
+
+    // Return the suggested Contact ID if present.
+    $contact_id = 0;
+    if (!empty($contact_ids)) {
+      $contact_ids = array_reverse($contact_ids);
+      $contact_id = (int) array_pop($contact_ids);
+    }
+
+    // --<
+    return $contact_id;
+
+  }
+
 }
-- 
GitLab