From 462f397064e33cac73e1f3e251f7e2c909a20e0a Mon Sep 17 00:00:00 2001 From: std-odoo Date: Wed, 3 Dec 2025 13:21:50 +0100 Subject: [PATCH 1/7] [IMP] gmail: improve the login flow Purpose ======= Because we cannot close the popup in which the user login like before, we now show the rainbow man when we have received the access token during the login flow. Task-4727609 --- gmail/package-lock.json | 17 -- gmail/src/const.ts | 1 + gmail/src/services/odoo_auth.ts | 64 +++----- gmail/src/services/pages.ts | 271 ++++++++++++++++++++++++++++++++ gmail/src/views/login.ts | 26 ++- 5 files changed, 314 insertions(+), 65 deletions(-) delete mode 100644 gmail/package-lock.json create mode 100644 gmail/src/services/pages.ts diff --git a/gmail/package-lock.json b/gmail/package-lock.json deleted file mode 100644 index 93b2c28c3..000000000 --- a/gmail/package-lock.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@types/google-apps-script": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/@types/google-apps-script/-/google-apps-script-1.0.31.tgz", - "integrity": "sha512-tgsJKk20fwFoh0Ml4Li3pqKQ5uu3Nr3XeRsee2+pkPGrJxDlA3qsHAA2q3/HRv5yi9U6QVvdGwJ16USnmA7wAA==" - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - } - } -} diff --git a/gmail/src/const.ts b/gmail/src/const.ts index a59c7976e..219a28535 100644 --- a/gmail/src/const.ts +++ b/gmail/src/const.ts @@ -23,6 +23,7 @@ export const ODOO_AUTH_URLS: Record = { LOGIN: "/web/login", AUTH_CODE: "/mail_plugin/auth", CODE_VALIDATION: "/mail_plugin/auth/access_token", + CHECK_VERSION: "/mail_plugin/auth/check_version", SCOPE: "outlook", FRIENDLY_NAME: "Gmail", }; diff --git a/gmail/src/services/odoo_auth.ts b/gmail/src/services/odoo_auth.ts index fd8bfda47..c4cc613b9 100644 --- a/gmail/src/services/odoo_auth.ts +++ b/gmail/src/services/odoo_auth.ts @@ -1,30 +1,6 @@ import { ODOO_AUTH_URLS } from "../const"; import { postJsonRpc, encodeQueryData } from "../utils/http"; - -const errorPage = ` - - - -
__ERROR_MESSAGE__
-`; +import { RAINBOW, ERROR_PAGE } from "./pages"; /** * Callback function called during the OAuth authentication process. @@ -33,7 +9,7 @@ const errorPage = ` * We generate a state token (for this function) * 2. The user is redirected to Odoo and enter his login / password * 3. Then the user is redirected to the Google App-Script - * 4. Thanks the the state token, the function "odooAuthCallback" is called with the auth code + * 4. Thanks the state token, the function "odooAuthCallback" is called with the auth code * 5. The auth code is exchanged for an access token with a RPC call */ function odooAuthCallback(callbackRequest: any) { @@ -43,7 +19,7 @@ function odooAuthCallback(callbackRequest: any) { if (success !== "1") { return HtmlService.createHtmlOutput( - errorPage.replace("__ERROR_MESSAGE__", "Odoo did not return successfully."), + ERROR_PAGE.replace("__ERROR_MESSAGE__", "Odoo did not return successfully."), ); } @@ -58,7 +34,7 @@ function odooAuthCallback(callbackRequest: any) { if (!response || !response.access_token || !response.access_token.length) { return HtmlService.createHtmlOutput( - errorPage.replace( + ERROR_PAGE.replace( "__ERROR_MESSAGE__", "The token exchange failed. Maybe your token has expired or your database can not be reached by the Google server." + "
Contact your administrator or our support.", @@ -70,14 +46,14 @@ function odooAuthCallback(callbackRequest: any) { userProperties.setProperty("ODOO_ACCESS_TOKEN", accessToken); - return HtmlService.createHtmlOutput("Success !"); + return HtmlService.createHtmlOutput(RAINBOW); } /** * Generate the URL to redirect the user for the authentication to the Odoo database. * * This URL contains a state and the Odoo database should resend it. - * The Google server use the state code to know which function to execute when the user + * The Google server uses the state code to know which function to execute when the user * is redirected on their server. */ export function getOdooAuthUrl() { @@ -93,7 +69,10 @@ export function getOdooAuthUrl() { throw new Error("Can not retrieve the script ID."); } - const stateToken = ScriptApp.newStateToken().withMethod(odooAuthCallback.name).withTimeout(3600).createToken(); + const stateToken = ScriptApp.newStateToken() + .withMethod(odooAuthCallback.name) + .withTimeout(3600) + .createToken(); const redirectToAddon = `https://script.google.com/macros/d/${scriptId}/usercallback`; const scope = ODOO_AUTH_URLS.SCOPE; @@ -132,33 +111,32 @@ export const resetAccessToken = () => { }; /** - * Make an HTTP request to "/mail_plugin/auth/access_token" (cors="*") on the Odoo - * database to verify that the server is reachable and that the mail plugin module is - * installed. + * Make an HTTP request to the Odoo database to verify that the server + * is reachable and that the mail plugin module is installed. * - * Returns True if the Odoo database is reachable and if the "mail_plugin" module - * is installed, false otherwise. + * Returns the version of the addin that is supported if it's reachable, null otherwise. */ -export const isOdooDatabaseReachable = (odooUrl: string): boolean => { +export const getSupportedAddinVersion = (odooUrl: string): number | null => { if (!odooUrl || !odooUrl.length) { - return false; + return null; } const response = postJsonRpc( - odooUrl + ODOO_AUTH_URLS.CODE_VALIDATION, - { auth_code: null }, + odooUrl + ODOO_AUTH_URLS.CHECK_VERSION, + {}, {}, { returnRawResponse: true }, ); if (!response) { - return false; + return null; } const responseCode = response.getResponseCode(); if (responseCode > 299 || responseCode < 200) { - return false; + return null; } - return true; + const textResponse = response.getContentText("UTF-8"); + return parseInt(JSON.parse(textResponse).result); }; diff --git a/gmail/src/services/pages.ts b/gmail/src/services/pages.ts new file mode 100644 index 000000000..4b5bdc3ba --- /dev/null +++ b/gmail/src/services/pages.ts @@ -0,0 +1,271 @@ +export const RAINBOW = ` + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
+
+
You're all set
You can now close this window and connect with Odoo!
+
+
+
+
+
+ +`; + +export const ERROR_PAGE = ` + + + +
__ERROR_MESSAGE__
+`; diff --git a/gmail/src/views/login.ts b/gmail/src/views/login.ts index 574432c08..7e9a7ab3c 100644 --- a/gmail/src/views/login.ts +++ b/gmail/src/views/login.ts @@ -2,28 +2,44 @@ import { formatUrl, repeat } from "../utils/format"; import { notify, createKeyValueWidget } from "./helpers"; import { State } from "../models/state"; import { IMAGES_LOGIN } from "./icons"; -import { isOdooDatabaseReachable } from "../services/odoo_auth"; +import { getSupportedAddinVersion } from "../services/odoo_auth"; import { _t, clearTranslationCache } from "../services/translation"; import { setOdooServerUrl } from "src/services/app_properties"; function onNextLogin(event) { - const validatedUrl = formatUrl(event.formInput.odooServerUrl); + let validatedUrl = formatUrl(event.formInput.odooServerUrl); if (!validatedUrl) { return notify("Invalid URL"); } + if (validatedUrl.endsWith("/odoo")) { + validatedUrl = validatedUrl.slice(0, -5); + } else if (validatedUrl.endsWith("/odoo/web")) { + validatedUrl = validatedUrl.slice(0, -9); + } else if (validatedUrl.endsWith("/web")) { + validatedUrl = validatedUrl.slice(0, -4); + } + if (!/^https:\/\/([^\/?]*\.)?odoo\.com(\/|$)/.test(validatedUrl)) { - return notify("The URL must be a subdomain of odoo.com"); + return notify( + "The URL must be a subdomain of odoo.com, see the documentation", + ); } clearTranslationCache(); setOdooServerUrl(validatedUrl); - if (!isOdooDatabaseReachable(validatedUrl)) { + const version = getSupportedAddinVersion(validatedUrl); + + if (!version) { + return notify("Could not connect to your database."); + } + + if (version !== 2) { return notify( - "Could not connect to your database. Make sure the module is installed in Odoo (Settings > General Settings > Integrations > Mail Plugins)", + "This addin version required Odoo 19.1 or a newer version, please install an older addin version.", ); } From 459cbf2e6115a1a39fe4d534efbdf964d98480ec Mon Sep 17 00:00:00 2001 From: std-odoo Date: Wed, 3 Dec 2025 13:28:11 +0100 Subject: [PATCH 2/7] [IMP] gmail: improve the email logging Purpose ======= Before the subject, email from, etc were added in the body of the email when we log it in a record. Now, those values are properly written in the fields of the `mail.message`, and so we need to send them to the Odoo endpoint. Parse all the contacts in the email TO, CC,... to prepare the following commit. Before, if we wait some time before logging the email on a record, an error could be raised because the token we received to get the information expired. To solve that issue, we parse and save then in the state when the addin is loaded. Task-4727609 --- gmail/src/models/email.ts | 132 +++++++++++++++++++++----------- gmail/src/models/state.ts | 12 +-- gmail/src/services/log_email.ts | 20 +++-- gmail/src/views/leads.ts | 14 ++-- gmail/src/views/tasks.ts | 9 ++- gmail/src/views/tickets.ts | 10 ++- 6 files changed, 126 insertions(+), 71 deletions(-) diff --git a/gmail/src/models/email.ts b/gmail/src/models/email.ts index f623e8e70..6161e6a4e 100644 --- a/gmail/src/models/email.ts +++ b/gmail/src/models/email.ts @@ -7,10 +7,16 @@ export class Email { accessToken: string; messageId: string; subject: string; + body: string; + timestamp: number; - contactEmail: string; - contactFullEmail: string; - contactName: string; + emailFrom: string; + contacts: EmailContact[]; + + // When asking for the attachments, a long moment after opening + // the addon, then the token to get the Gmail Message expired + // so we cache the result and ask it when loading the app + _attachmentsParsed: [string[][], ErrorMessage]; constructor(messageId: string = null, accessToken: string = null) { if (messageId) { @@ -21,51 +27,68 @@ export class Email { this.messageId = messageId; const message = GmailApp.getMessageById(this.messageId); this.subject = message.getSubject(); - - const fromHeaders = message.getFrom(); - const sent = fromHeaders.toLowerCase().indexOf(userEmail) >= 0; - this.contactFullEmail = sent ? message.getTo() : message.getFrom(); - [this.contactName, this.contactEmail] = this._emailSplitTuple(this.contactFullEmail); + this.body = message.getBody(); + this.timestamp = message.getDate().getTime(); + this.emailFrom = message.getFrom(); + + this._attachmentsParsed = this.getAttachments(); + + this.contacts = [ + ...this._emailSplitTuple(message.getTo(), userEmail), + ...this._emailSplitTuple(this.emailFrom, userEmail), + ...this._emailSplitTuple(message.getCc(), userEmail), + ...this._emailSplitTuple(message.getBcc(), userEmail), + ]; } } /** - * Ask the email body only if the user asked for it (e.g. asked to log the email). - */ - public get body() { - GmailApp.setCurrentMessageAccessToken(this.accessToken); - const message = GmailApp.getMessageById(this.messageId); - return message.getBody(); - } - - /** - * Parse a full FROM header and return the name part and the email part. + * Parse a full FROM header and return the name and email parts. * * E.G. - * "BOB" => ["BOB", "bob@example.com"] - * bob@example.com => ["bob@example.com", "bob@example.com"] + * "BOB" + * => [["BOB", "bob@example.com"]] * + * bob@example.com + * => [["bob@example.com", "bob@example.com"]] + * + * alice@example.com, bob@example.com + * => [ + * ["alice@example.com", "alice@example.com"], + * ["bob@example.com", "bob@example.com"] + * ] + * + * "Alice" , "BOB" + * => [ + * ["alice@example.com", "alice@example.com"], + * ["bob@example.com", "bob@example.com"] + * ] + * + * , + * => [ + * ["alice@example.com", "alice@example.com"], + * ["bob@example.com", "bob@example.com"] + * ] */ - _emailSplitTuple(fullEmail: string): [string, string] { - const match = fullEmail.match(/(.*)<(.*)>/); - fullEmail = fullEmail.replace("<", "").replace(">", ""); - - if (!match) { - return [fullEmail, fullEmail]; - } - - const [_, name, email] = match; - - if (!name || !email) { - return [fullEmail, fullEmail]; - } + _emailSplitTuple(fullEmail: string, userEmail: string): EmailContact[] { + const contacts = []; + const re = /(.*?)<(.*?)>/; + for (const part of fullEmail.split(",")) { + if (part.toLowerCase().indexOf(userEmail) >= 0 || !part.trim()?.length) { + // Skip the user's email + continue; + } - const cleanedName = name.replace(/\"/g, "").trim(); - if (!cleanedName || !cleanedName.length) { - return [fullEmail, fullEmail]; + const result = part.match(re); + if (!result) { + contacts.push(new EmailContact(part.trim(), part.trim(), part.trim())); + continue; + } + const email = result[2].trim(); + let name = result[1].replace(/\"/g, "").trim() || email; + contacts.push(new EmailContact(name, email, part.trim())); } - - return [cleanedName, email]; + return contacts; } /** @@ -73,15 +96,17 @@ export class Email { */ static fromJson(values: any): Email { const email = new Email(); - email.accessToken = values.accessToken; email.messageId = values.messageId; email.subject = values.subject; - - email.contactEmail = values.contactEmail; - email.contactFullEmail = values.contactFullEmail; - email.contactName = values.contactName; - + email.body = values.body; + email.timestamp = values.timestamp; + email.emailFrom = values.emailFrom; + email.contacts = values.contacts.map((c) => EmailContact.fromJson(c)); + email._attachmentsParsed = [ + values._attachmentsParsed[0], + ErrorMessage.fromJson(values._attachmentsParsed[1]), + ]; return email; } @@ -97,6 +122,9 @@ export class Email { * - Otherwise, the list of attachments base 64 encoded and an empty error message */ getAttachments(): [string[][], ErrorMessage] { + if (this._attachmentsParsed) { + return this._attachmentsParsed; + } GmailApp.setCurrentMessageAccessToken(this.accessToken); const message = GmailApp.getMessageById(this.messageId); const gmailAttachments = message.getAttachments(); @@ -124,3 +152,19 @@ export class Email { return [attachments, new ErrorMessage(null)]; } } + +export class EmailContact { + name: string; + email: string; + fullEmail: string; + + constructor(name: string, email: string, fullEmail: string) { + this.name = name; + this.email = email; + this.fullEmail = fullEmail; + } + + static fromJson(values: any): EmailContact { + return new EmailContact(values.name, values.email, values.fullEmail); + } +} diff --git a/gmail/src/models/state.ts b/gmail/src/models/state.ts index 1760dbaf5..db4ed0b59 100644 --- a/gmail/src/models/state.ts +++ b/gmail/src/models/state.ts @@ -162,13 +162,15 @@ export class State { */ static getLoggingState(messageId: string) { const cache = CacheService.getUserCache(); - const loggingStateStr = cache.get("ODOO_LOGGING_STATE_" + getOdooServerUrl() + "_" + messageId); + const loggingStateStr = cache.get( + "ODOO_LOGGING_STATE_" + getOdooServerUrl() + "_" + messageId, + ); const defaultValues: Record = { - partners: [], - leads: [], - tickets: [], - tasks: [], + "res.partner": [], + "crm.lead": [], + "helpdesk.ticket": [], + "project.task": [], }; if (!loggingStateStr || !loggingStateStr.length) { diff --git a/gmail/src/services/log_email.ts b/gmail/src/services/log_email.ts index 370070843..2bee39501 100644 --- a/gmail/src/services/log_email.ts +++ b/gmail/src/services/log_email.ts @@ -12,9 +12,6 @@ import { getAccessToken } from "./odoo_auth"; */ function _formatEmailBody(email: Email, error: ErrorMessage): string { let body = email.body; - - body = `${_t("From:")} ${escapeHtml(email.contactEmail)}

${body}`; - if (error.code === "attachments_size_exceeded") { body += `
${_t( "Attachments could not be logged in Odoo because their total size exceeded the allowed maximum.", @@ -27,9 +24,6 @@ function _formatEmailBody(email: Email, error: ErrorMessage): string { /class=\"gmail_chip gmail_drive_chip" style=\"/g, 'class="gmail_chip gmail_drive_chip" style=" min-height: 32px;', ); - - body += `

${_t("Logged from")} ${_t("Gmail Inbox")}`; - return body; } @@ -40,11 +34,21 @@ export function logEmail(recordId: number, recordModel: string, email: Email): E const odooAccessToken = getAccessToken(); const [attachments, error] = email.getAttachments(); const body = _formatEmailBody(email, error); - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.LOG_EMAIL; + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.LOG_EMAIL; const response = postJsonRpc( url, - { message: body, res_id: recordId, model: recordModel, attachments: attachments }, + { + body, + res_id: recordId, + model: recordModel, + attachments: attachments, + email_from: email.emailFrom, + subject: email.subject, + timestamp: email.timestamp, + application_name: _t("Odoo for Gmail"), + }, { Authorization: "Bearer " + odooAccessToken }, ); diff --git a/gmail/src/views/leads.ts b/gmail/src/views/leads.ts index dea362508..765ea3e7e 100644 --- a/gmail/src/views/leads.ts +++ b/gmail/src/views/leads.ts @@ -11,18 +11,20 @@ import { State } from "../models/state"; function onLogEmailOnLead(state: State, parameters: any) { const leadId = parameters.leadId; - if (State.checkLoggingState(state.email.messageId, "leads", leadId)) { - state.error = logEmail(leadId, "crm.lead", state.email); - if (!state.error.code) { - State.setLoggingState(state.email.messageId, "leads", leadId); + if (State.checkLoggingState(state.email.messageId, "crm.lead", leadId)) { + const error = logEmail(leadId, "crm.lead", state.email); + if (error.code) { + return notify(error.message); } + + State.setLoggingState(state.email.messageId, "crm.lead", leadId); return updateCard(buildView(state)); } - return notify(_t("Email already logged on the lead")); + return notify(_t("Email already logged on the opportunity")); } function onEmailAlreradyLoggedOnLead(state: State) { - return notify(_t("Email already logged on the lead")); + return notify(_t("Email already logged on the opportunity")); } function onCreateLead(state: State) { diff --git a/gmail/src/views/tasks.ts b/gmail/src/views/tasks.ts index 4acb78a86..ccb39711c 100644 --- a/gmail/src/views/tasks.ts +++ b/gmail/src/views/tasks.ts @@ -17,11 +17,12 @@ function onCreateTask(state: State) { function onLogEmailOnTask(state: State, parameters: any) { const taskId = parameters.taskId; - if (State.checkLoggingState(state.email.messageId, "tasks", taskId)) { - logEmail(taskId, "project.task", state.email); - if (!state.error.code) { - State.setLoggingState(state.email.messageId, "tasks", taskId); + if (State.checkLoggingState(state.email.messageId, "project.task", taskId)) { + const error = logEmail(taskId, "project.task", state.email); + if (error.code) { + return notify(error.message); } + State.setLoggingState(state.email.messageId, "project.task", taskId); return updateCard(buildView(state)); } return notify(_t("Email already logged on the task")); diff --git a/gmail/src/views/tickets.ts b/gmail/src/views/tickets.ts index 225cff886..a8e686164 100644 --- a/gmail/src/views/tickets.ts +++ b/gmail/src/views/tickets.ts @@ -28,11 +28,13 @@ function onCreateTicket(state: State) { function onLogEmailOnTicket(state: State, parameters: any) { const ticketId = parameters.ticketId; - if (State.checkLoggingState(state.email.messageId, "tickets", ticketId)) { - state.error = logEmail(ticketId, "helpdesk.ticket", state.email); - if (!state.error.code) { - State.setLoggingState(state.email.messageId, "tickets", ticketId); + if (State.checkLoggingState(state.email.messageId, "helpdesk.ticket", ticketId)) { + const error = logEmail(ticketId, "helpdesk.ticket", state.email); + if (error.code) { + return notify(error.message); } + + State.setLoggingState(state.email.messageId, "helpdesk.ticket", ticketId); return updateCard(buildView(state)); } return notify(_t("Email already logged on the ticket")); From 4dfbf050e508cb67b8071a9087ff1f2ef119a770 Mon Sep 17 00:00:00 2001 From: std-odoo Date: Wed, 3 Dec 2025 14:05:10 +0100 Subject: [PATCH 3/7] [IMP] gmail: remove the enrichment feature from the addon Purpose ======= Then enrichment feature of the addon made it slow and hard to use in practice, so we simplify it, and we keep only the core feature, which is logging the email on the records and viewing information about the contact. If a conversation contains many contacts, before it took the first one. We can now choose the contact we want to open. Allow searching any records, not only partners. We fixed some UI issues than were introduced by update of the Gmail API. Task-4727609 --- gmail/.prettierrc | 2 +- gmail/appsscript.json | 31 +++- gmail/package.json | 2 +- gmail/src/const.ts | 9 +- gmail/src/main.ts | 47 +++-- gmail/src/models/company.ts | 152 ---------------- gmail/src/models/error_message.ts | 22 +-- gmail/src/models/lead.ts | 51 +++--- gmail/src/models/partner.ts | 238 ++++++++++--------------- gmail/src/models/project.ts | 37 +++- gmail/src/models/state.ts | 48 +---- gmail/src/models/task.ts | 37 ++-- gmail/src/models/ticket.ts | 33 +++- gmail/src/services/odoo_redirection.ts | 5 + gmail/src/services/search_records.ts | 25 +++ gmail/src/services/translation.ts | 9 +- gmail/src/utils/format.ts | 30 ---- gmail/src/utils/http.ts | 45 +---- gmail/src/views/card_actions.ts | 36 ++-- gmail/src/views/company.ts | 231 ------------------------ gmail/src/views/create_task.ts | 140 ++++++++------- gmail/src/views/debug.ts | 20 ++- gmail/src/views/error.ts | 63 ------- gmail/src/views/helpers.ts | 30 +++- gmail/src/views/icons.ts | 92 ++-------- gmail/src/views/index.ts | 29 +-- gmail/src/views/leads.ts | 149 ++++++++-------- gmail/src/views/login.ts | 129 ++++++++------ gmail/src/views/partner.ts | 123 ++++--------- gmail/src/views/partner_actions.ts | 119 ++++++++----- gmail/src/views/search_partner.ts | 80 ++++++--- gmail/src/views/search_records.ts | 169 ++++++++++++++++++ gmail/src/views/tasks.ts | 113 +++++++----- gmail/src/views/tickets.ts | 127 +++++++------ 34 files changed, 1085 insertions(+), 1388 deletions(-) delete mode 100644 gmail/src/models/company.ts create mode 100644 gmail/src/services/odoo_redirection.ts create mode 100644 gmail/src/services/search_records.ts delete mode 100644 gmail/src/views/company.ts delete mode 100644 gmail/src/views/error.ts create mode 100644 gmail/src/views/search_records.ts diff --git a/gmail/.prettierrc b/gmail/.prettierrc index 7c8e25071..c219035ac 100644 --- a/gmail/.prettierrc +++ b/gmail/.prettierrc @@ -2,6 +2,6 @@ "semi": true, "trailingComma": "all", "singleQuote": false, - "printWidth": 120, + "printWidth": 100, "tabWidth": 4 } diff --git a/gmail/appsscript.json b/gmail/appsscript.json index 0f1164ef0..c8f59bed6 100644 --- a/gmail/appsscript.json +++ b/gmail/appsscript.json @@ -22,33 +22,52 @@ "https://*.odoo.com/mail_plugin/get_translations", "https://*.odoo.com/mail_plugin/partner/get", "https://*.odoo.com/mail_plugin/log_mail_content", - "https://*.odoo.com/mail_plugin/partner/search", + "https://*.odoo.com/mail_plugin/search_records/res.partner", + "https://*.odoo.com/mail_plugin/redirect_to_record/res.partner", "https://*.odoo.com/mail_plugin/partner/create", "https://*.odoo.com/mail_plugin/partner/enrich_and_create_company", "https://*.odoo.com/mail_plugin/partner/enrich_and_update_company", + "https://*.odoo.com/mail_plugin/search_records/crm.lead", + "https://*.odoo.com/mail_plugin/redirect_to_record/crm.lead", "https://*.odoo.com/mail_plugin/lead/create", + "https://*.odoo.com/mail_plugin/search_records/helpdesk.ticket", + "https://*.odoo.com/mail_plugin/redirect_to_record/helpdesk.ticket", "https://*.odoo.com/mail_plugin/ticket/create", - "https://*.odoo.com/mail_plugin/project/search", + "https://*.odoo.com/mail_plugin/search_records/project.task", + "https://*.odoo.com/mail_plugin/redirect_to_record/project.task", + "https://*.odoo.com/mail_plugin/search_records/project.project", + "https://*.odoo.com/mail_plugin/redirect_to_record/project.project", "https://*.odoo.com/mail_plugin/project/create", "https://*.odoo.com/mail_plugin/task/create", "https://*.odoo.com/web/login", "https://*.odoo.com/mail_plugin/auth", "https://*.odoo.com/mail_plugin/auth/access_token", + "https://*.odoo.com/mail_plugin/auth/check_version", + "https://odoo.com/mail_plugin/get_translations", "https://odoo.com/mail_plugin/partner/get", "https://odoo.com/mail_plugin/log_mail_content", - "https://odoo.com/mail_plugin/partner/search", + "https://odoo.com/mail_plugin/search_records/res.partner", + "https://odoo.com/mail_plugin/redirect_to_record/res.partner", "https://odoo.com/mail_plugin/partner/create", "https://odoo.com/mail_plugin/partner/enrich_and_create_company", "https://odoo.com/mail_plugin/partner/enrich_and_update_company", + "https://odoo.com/mail_plugin/search_records/crm.lead", + "https://odoo.com/mail_plugin/redirect_to_record/crm.lead", + "https://odoo.com/mail_plugin/search_records/helpdesk.ticket", + "https://odoo.com/mail_plugin/redirect_to_record/helpdesk.ticket", "https://odoo.com/mail_plugin/lead/create", "https://odoo.com/mail_plugin/ticket/create", - "https://odoo.com/mail_plugin/project/search", + "https://odoo.com/mail_plugin/search_records/project.task", + "https://odoo.com/mail_plugin/redirect_to_record/project.task", + "https://odoo.com/mail_plugin/search_records/project.project", + "https://odoo.com/mail_plugin/redirect_to_record/project.project", "https://odoo.com/mail_plugin/project/create", "https://odoo.com/mail_plugin/task/create", "https://odoo.com/web/login", "https://odoo.com/mail_plugin/auth", "https://odoo.com/mail_plugin/auth/access_token", - "https://iap-services.odoo.com/iap/mail_extension/enrich" - ] + "https://odoo.com/mail_plugin/auth/check_version" + ], + "runtimeVersion": "V8" } diff --git a/gmail/package.json b/gmail/package.json index abe3215ab..7dfefad83 100644 --- a/gmail/package.json +++ b/gmail/package.json @@ -2,7 +2,7 @@ "devDependencies": { "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-typescript": "^11.1.1", - "@types/google-apps-script": "^1.0.64", + "@types/google-apps-script": "^2.0.4", "prettier": "^2.2.1", "rollup": "^3.22.0", "tslib": "^2.5.3" diff --git a/gmail/src/const.ts b/gmail/src/const.ts index 219a28535..091b039c6 100644 --- a/gmail/src/const.ts +++ b/gmail/src/const.ts @@ -1,22 +1,19 @@ export const URLS: Record = { GET_TRANSLATIONS: "/mail_plugin/get_translations", LOG_EMAIL: "/mail_plugin/log_mail_content", + SEARCH_RECORDS: "/mail_plugin/search_records", // Partner GET_PARTNER: "/mail_plugin/partner/get", - SEARCH_PARTNER: "/mail_plugin/partner/search", + SEARCH_PARTNER: "/mail_plugin/search_records/res.partner", PARTNER_CREATE: "/mail_plugin/partner/create", - CREATE_COMPANY: "/mail_plugin/partner/enrich_and_create_company", - ENRICH_COMPANY: "/mail_plugin/partner/enrich_and_update_company", // CRM Lead CREATE_LEAD: "/mail_plugin/lead/create", // HELPDESK Ticket CREATE_TICKET: "/mail_plugin/ticket/create", // Project - SEARCH_PROJECT: "/mail_plugin/project/search", + SEARCH_PROJECT: "/mail_plugin/search_records/project.project", CREATE_PROJECT: "/mail_plugin/project/create", CREATE_TASK: "/mail_plugin/task/create", - // IAP - IAP_COMPANY_ENRICHMENT: "https://iap-services.odoo.com/iap/mail_extension/enrich", }; export const ODOO_AUTH_URLS: Record = { diff --git a/gmail/src/main.ts b/gmail/src/main.ts index 028699406..7751c0e14 100644 --- a/gmail/src/main.ts +++ b/gmail/src/main.ts @@ -3,6 +3,7 @@ import { Email } from "./models/email"; import { State } from "./models/state"; import { Partner } from "./models/partner"; import { _t } from "./services/translation"; +import { buildLoginMainView } from "./views/login"; /** * Entry point of the application, executed when an email is open. @@ -17,26 +18,36 @@ function onGmailMessageOpen(event) { GmailApp.setCurrentMessageAccessToken(event.messageMetadata.accessToken); const currentEmail = new Email(event.gmail.messageId, event.gmail.accessToken); - const [partner, odooUserCompanies, canCreatePartner, canCreateProject, error] = Partner.enrichPartner( - currentEmail.contactEmail, - currentEmail.contactName - ); + let state = null; + if (currentEmail.contacts.length > 1) { + // More than one contact, we will need to choose the right one + const [searchedPartners, error] = Partner.searchPartner( + currentEmail.contacts.map((c) => c.email), + ); + if (error.code) { + return buildLoginMainView(); + } + const existingPartnersEmails = searchedPartners.map((p) => p.email); - if (!partner) { - // Should at least use the FROM headers to generate the partner - throw new Error(_t("Error during enrichment")); - } + for (const contact of currentEmail.contacts) { + if (existingPartnersEmails.includes(contact.email)) { + continue; + } + searchedPartners.push(Partner.fromJson({ name: contact.name, email: contact.email })); + } + + state = new State(null, false, currentEmail, searchedPartners, null, false); + } else { + const [partner, canCreatePartner, canCreateProject, error] = Partner.getPartner( + currentEmail.contacts[0].name, + currentEmail.contacts[0].email, + ); + if (error.code) { + return buildLoginMainView(); + } - const state = new State( - partner, - canCreatePartner, - currentEmail, - odooUserCompanies, - null, - null, - canCreateProject, - error - ); + state = new State(partner, canCreatePartner, currentEmail, null, null, canCreateProject); + } return [buildView(state)]; } diff --git a/gmail/src/models/company.ts b/gmail/src/models/company.ts deleted file mode 100644 index ab0483ccd..000000000 --- a/gmail/src/models/company.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { formatUrl, isTrue, first } from "../utils/format"; - -export class Company { - id: number; - name: string; - email: string; - phone: string; - isEnriched: boolean; - - // Additional Information - address: string; - annualRevenue: string; - companyType: string; - description: string; - emails: string; - employees: number; - foundedYear: number; - image: string; - industry: string; - mobile: string; - phones: string; - tags: string; - timezone: string; - timezoneUrl: string; - twitterFollowers: number; - twitterBio: string; - website: string; - - // Social Medias - crunchbase: string; - facebook: string; - linkedin: string; - twitter: string; - - /** - * Parse the dictionary returned by IAP. - */ - static fromIapResponse(values: any): Company { - const company = new Company(); - - company.name = isTrue(values.name); - company.email = first(values.email); - company.phone = first(values.phone_numbers); - company.isEnriched = !!Object.keys(values).length; - - company.emails = isTrue(values.email) ? values.email.join("\n") : null; - company.phones = isTrue(values.phone_numbers) ? values.phone_numbers.join("\n") : null; - - company.image = isTrue(values.logo); - company.website = formatUrl(values.domain); - company.description = isTrue(values.description); - company.address = isTrue(values.location); - - // Social Medias - company.facebook = isTrue(values.facebook); - company.twitter = isTrue(values.twitter); - company.linkedin = isTrue(values.linkedin); - company.crunchbase = isTrue(values.crunchbase); - - // Additional Information - company.employees = values.employees || null; - company.annualRevenue = isTrue(values.estimated_annual_revenue); - company.industry = isTrue(values.industry); - company.twitterBio = isTrue(values.twitter_bio); - company.twitterFollowers = values.twitter_followers || null; - company.foundedYear = values.founded_year; - company.timezone = isTrue(values.timezone); - company.timezoneUrl = isTrue(values.timezone_url); - company.tags = isTrue(values.tag) ? values.tag.join(", ") : null; - company.companyType = isTrue(values.company_type); - - return company; - } - - /** - * Unserialize the company object (reverse JSON.stringify). - */ - static fromJson(values: any): Company { - const company = new Company(); - - company.id = values.id; - company.name = values.name; - company.email = values.email; - company.phone = values.phone; - - company.address = values.address; - company.annualRevenue = values.annualRevenue; - company.companyType = values.companyType; - company.description = values.description; - company.emails = values.emails; - company.employees = values.employees; - company.foundedYear = values.foundedYear; - company.image = values.image; - company.industry = values.industry; - company.mobile = values.mobile; - company.phones = values.phones; - company.tags = values.tags; - company.timezone = values.timezone; - company.timezoneUrl = values.timezoneUrl; - company.twitterBio = values.twitterBio; - company.twitterFollowers = values.twitterFollowers; - company.website = values.website; - - company.crunchbase = values.crunchbase; - company.facebook = values.facebook; - company.twitter = values.twitter; - company.linkedin = values.linkedin; - - return company; - } - - /** - * Parse the dictionary returned by an Odoo database. - */ - static fromOdooResponse(values: any): Company { - if (!values.id || values.id < 0) { - return null; - } - - const iapInfo = values.additionalInfo || {}; - - const company = this.fromIapResponse(iapInfo); - - // Overwrite IAP information with the Odoo client database information - company.id = values.id; - company.name = values.name; - company.email = values.email; - company.phone = values.phone; - - company.mobile = values.mobile; - company.website = values.website; - company.image = values.image ? "data:image/png;base64," + values.image : null; - - if (values.address) { - company.address = ""; - - if (isTrue(values.address.street)) { - company.address += values.address.street + ", "; - } - if (isTrue(values.address.zip)) { - company.address += values.address.zip + " "; - } - if (isTrue(values.address.city)) { - company.address += values.address.city + " "; - } - if (isTrue(values.address.country)) { - company.address += values.address.country; - } - } - return company; - } -} diff --git a/gmail/src/models/error_message.ts b/gmail/src/models/error_message.ts index 05153ec7b..5bad47967 100644 --- a/gmail/src/models/error_message.ts +++ b/gmail/src/models/error_message.ts @@ -7,14 +7,6 @@ import { _t } from "../services/translation"; const _ERROR_CODE_MESSAGES: Record = { odoo: null, // Message is contained in the additional information http_error_odoo: "Could not connect to database. Try to log out and in.", - insufficient_credit: "Not enough credits to enrich.", - company_created: null, - company_updated: null, - // IAP - http_error_iap: "Our IAP server is down, please come back later.", - exhausted_requests: - "Oops, looks like you have exhausted your free enrichment requests. Please log in to try again.", - missing_data: "No insights found for this address", unknown: "Something bad happened. Please, try again later.", // Attachment attachments_size_exceeded: @@ -30,12 +22,6 @@ export class ErrorMessage { message: string; information: string; - // False if the error means that we can not contact the Odoo database - // (e.g. HTTP error) - canContactOdooDatabase: boolean = true; - - canCreateCompany: boolean = true; - constructor(code: string = null, information: any = null) { if (code) { this.setError(code, information); @@ -53,11 +39,7 @@ export class ErrorMessage { this.code = code; this.information = information; - this.message = _t(_ERROR_CODE_MESSAGES[this.code]); - - if (code === "http_error_odoo") { - this.canContactOdooDatabase = false; - } + this.message = information || _t(_ERROR_CODE_MESSAGES[this.code]); } /** @@ -67,8 +49,6 @@ export class ErrorMessage { const error = new ErrorMessage(); error.code = values.code; error.message = values.message; - error.canContactOdooDatabase = values.canContactOdooDatabase; - error.canCreateCompany = values.canCreateCompany; error.information = values.information; return error; } diff --git a/gmail/src/models/lead.ts b/gmail/src/models/lead.ts index dce33c26c..6062a99ff 100644 --- a/gmail/src/models/lead.ts +++ b/gmail/src/models/lead.ts @@ -1,7 +1,9 @@ import { postJsonRpc } from "../utils/http"; -import { isTrue } from "../utils/format"; import { URLS } from "../const"; import { getAccessToken } from "src/services/odoo_auth"; +import { _t } from "../services/translation"; +import { Partner } from "./partner"; +import { Email } from "./email"; /** * Represent a "crm.lead" record. @@ -9,26 +11,39 @@ import { getAccessToken } from "src/services/odoo_auth"; export class Lead { id: number; name: string; - expectedRevenue: string; - probability: number; - recurringRevenue: string; - recurringPlan: string; + revenuesDescription: string; /** * Make a RPC call to the Odoo database to create a lead * and return the ID of the newly created record. */ - static createLead(partnerId: number, emailBody: string, emailSubject: string): number { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_LEAD; + static createLead(partner: Partner, email: Email): [Lead, Partner] | null { + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_LEAD; const accessToken = getAccessToken(); - + const [attachments, _] = email.getAttachments(); const response = postJsonRpc( url, - { email_body: emailBody, email_subject: emailSubject, partner_id: partnerId }, + { + email_body: email.body, + email_subject: email.subject, + partner_id: partner.id, + partner_email: partner.email, + partner_name: partner.name, + attachments, + }, { Authorization: "Bearer " + accessToken }, ); - return response ? response.lead_id || null : null; + if (!response?.id) { + return null; + } + if (!partner.id) { + partner.id = response.partner_id; + partner.image = response.partner_image; + partner.isWritable = true; + } + return [Lead.fromOdooResponse(response), partner]; } /** @@ -38,10 +53,7 @@ export class Lead { const lead = new Lead(); lead.id = values.id; lead.name = values.name; - lead.expectedRevenue = values.expectedRevenue; - lead.probability = values.probability; - lead.recurringRevenue = values.recurringRevenue; - lead.recurringPlan = values.recurringPlan; + lead.revenuesDescription = values.revenuesDescription; return lead; } @@ -50,16 +62,9 @@ export class Lead { */ static fromOdooResponse(values: any): Lead { const lead = new Lead(); - lead.id = values.lead_id; + lead.id = values.id; lead.name = values.name; - lead.expectedRevenue = values.expected_revenue; - lead.probability = values.probability; - - if (isTrue(values.recurring_revenue) && isTrue(values.recurring_plan)) { - lead.recurringRevenue = values.recurring_revenue; - lead.recurringPlan = values.recurring_plan; - } - + lead.revenuesDescription = values.revenues_description; return lead; } } diff --git a/gmail/src/models/partner.ts b/gmail/src/models/partner.ts index 0ac450ea7..17c626a03 100644 --- a/gmail/src/models/partner.ts +++ b/gmail/src/models/partner.ts @@ -1,12 +1,12 @@ -import { Company } from "./company"; import { Lead } from "./lead"; import { Task } from "./task"; import { Ticket } from "./ticket"; -import { postJsonRpc, postJsonRpcCached } from "../utils/http"; +import { postJsonRpc } from "../utils/http"; import { URLS } from "../const"; import { ErrorMessage } from "../models/error_message"; import { getAccessToken } from "src/services/odoo_auth"; import { getOdooServerUrl } from "src/services/app_properties"; +import { UI_ICONS } from "../views/icons"; /** * Represent the current partner and all the information about him. @@ -18,15 +18,28 @@ export class Partner { image: string; isCompany: boolean; + companyName: string; phone: string; mobile: string; - company: Company; leads: Lead[]; + leadCount: number; tickets: Ticket[]; + ticketCount: number; tasks: Task[]; + taskCount: number; - isWriteable: boolean; + isWritable: boolean; + + /** + * Return the image to show in the interface for the current partner. + */ + getImage() { + if (!this.id || this.id < 0 || !this.image) { + return UI_ICONS.person; + } + return this.image; + } /** * Unserialize the partner object (reverse JSON.stringify). @@ -40,19 +53,27 @@ export class Partner { partner.image = values.image; partner.isCompany = values.isCompany; + partner.companyName = values.companyName; partner.phone = values.phone; partner.mobile = values.mobile; - partner.company = values.company ? Company.fromJson(values.company) : null; - partner.isWriteable = values.isWriteable; + partner.leadCount = values.leadCount; + partner.ticketCount = values.ticketCount; + partner.taskCount = values.taskCount; - partner.leads = values.leads ? values.leads.map((leadValues: any) => Lead.fromJson(leadValues)) : null; + partner.isWritable = values.isWritable; + + partner.leads = values.leads + ? values.leads.map((leadValues: any) => Lead.fromJson(leadValues)) + : null; partner.tickets = values.tickets ? values.tickets.map((ticketValues: any) => Ticket.fromJson(ticketValues)) : null; - partner.tasks = values.tasks ? values.tasks.map((taskValues: any) => Task.fromJson(taskValues)) : null; + partner.tasks = values.tasks + ? values.tasks.map((taskValues: any) => Task.fromJson(taskValues)) + : null; return partner; } @@ -66,86 +87,43 @@ export class Partner { partner.name = values.name; partner.email = values.email; - partner.image = values.image ? "data:image/png;base64," + values.image : null; + partner.image = values.image; + partner.isCompany = values.is_company; partner.isCompany = values.is_company; + partner.companyName = values.company_name; + partner.phone = values.phone; partner.mobile = values.mobile; - - // Undefined should be considered as True for retro-compatibility - partner.isWriteable = values.can_write_on_partner !== false; - - if (values.company && values.company.id && values.company.id > 0) { - partner.company = Company.fromOdooResponse(values.company); - } + partner.isWritable = values.can_write_on_partner; return partner; } - /** - * Try to find information about the given email /name. - * - * If we are not logged to an Odoo database, enrich the email domain with IAP. - * Otherwise fetch the partner on the user database. - * - * See `getPartner` - */ - static enrichPartner(email: string, name: string): [Partner, number[], boolean, boolean, ErrorMessage] { - const odooServerUrl = getOdooServerUrl(); - const odooAccessToken = getAccessToken(); - - if (odooServerUrl && odooAccessToken) { - return this.getPartner(email, name); - } else { - const [partner, error] = this._enrichFromIap(email, name); - return [partner, null, false, false, error]; - } - } - - /** - * Extract the email domain and send a request to IAP - * to find information about the company. - */ - static _enrichFromIap(email: string, name: string): [Partner, ErrorMessage] { - const odooSharedSecret = PropertiesService.getScriptProperties().getProperty("ODOO_SHARED_SECRET"); - const userEmail = Session.getEffectiveUser().getEmail(); - - const senderDomain = email.split("@").pop(); - - const response = postJsonRpcCached(URLS.IAP_COMPANY_ENRICHMENT, { - email: userEmail, - domain: senderDomain, - secret: odooSharedSecret, - }); - - const error = new ErrorMessage(); - if (!response) { - error.setError("http_error_iap"); - } else if (response.error && response.error.length) { - error.setError(response.error); - } - - const partner = new Partner(); - partner.name = name; - partner.email = email; - - if (response && response.name) { - partner.company = Company.fromIapResponse(response); - } - - return [partner, error]; - } /** * Create a "res.partner" with the given values in the Odoo database. */ - static savePartner(partnerValues: any): number { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.PARTNER_CREATE; + static savePartner(partner: Partner): Partner | null { + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + + URLS.PARTNER_CREATE; const odooAccessToken = getAccessToken(); + const partnerValues = { + name: partner.name, + email: partner.email, + }; + const response = postJsonRpc(url, partnerValues, { Authorization: "Bearer " + odooAccessToken, }); - return response && response.id; + if (!response?.id) { + return null; + } + partner.id = response.id; + partner.image = response.image; + partner.isWritable = true; + return partner; } /** @@ -153,119 +131,101 @@ export class Partner { * * Return * - The Partner related to the given email address - * - The list of Odoo companies in which the current user belongs * - True if the current user can create partner in his Odoo database * - True if the current user can create projects in his Odoo database * - The error message if something bad happened */ static getPartner( - email: string, name: string, + email: string, partnerId: number = null, - ): [Partner, number[], boolean, boolean, ErrorMessage] { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.GET_PARTNER; + ): [Partner, boolean, boolean, ErrorMessage] { + const odooServerUrl = getOdooServerUrl(); const odooAccessToken = getAccessToken(); + if (!odooServerUrl || !odooAccessToken) { + const error = new ErrorMessage("http_error_odoo"); + const partner = Partner.fromJson({ name, email }); + return [partner, false, false, error]; + } + + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.GET_PARTNER; + const response = postJsonRpc( url, - { email: email, name: name, partner_id: partnerId }, + { email: email, partner_id: partnerId }, { Authorization: "Bearer " + odooAccessToken }, ); + if (response && response.error) { + const error = new ErrorMessage("odoo", response.error); + const partner = Partner.fromJson({ name, email }); + return [partner, false, false, error]; + } + if (!response || !response.partner) { const error = new ErrorMessage("http_error_odoo"); - const partner = Partner.fromJson({ name: name, email: email }); - return [partner, null, false, false, error]; + const partner = Partner.fromJson({ name, email }); + return [partner, false, false, error]; } const error = new ErrorMessage(); - - if (response.enrichment_info && response.enrichment_info.type) { - error.setError(response.enrichment_info.type, response.enrichment_info.info); - } else if (response.partner.enrichment_info && response.partner.enrichment_info.type) { - error.setError(response.partner.enrichment_info.type, response.partner.enrichment_info.info); - } - - const partner = Partner.fromOdooResponse(response.partner); + const partner = Partner.fromOdooResponse({ name, email, ...response.partner }); // Parse leads if (response.leads) { - partner.leads = response.leads.map((leadValues: any) => Lead.fromOdooResponse(leadValues)); + partner.leadCount = response.lead_count; + partner.leads = response.leads.map((leadValues: any) => + Lead.fromOdooResponse(leadValues), + ); } // Parse tickets if (response.tickets) { - partner.tickets = response.tickets.map((ticketValues: any) => Ticket.fromOdooResponse(ticketValues)); + partner.ticketCount = response.ticket_count; + partner.tickets = response.tickets.map((ticketValues: any) => + Ticket.fromOdooResponse(ticketValues), + ); } // Parse tasks if (response.tasks) { - partner.tasks = response.tasks.map((taskValues: any) => Task.fromOdooResponse(taskValues)); + partner.taskCount = response.task_count; + partner.tasks = response.tasks.map((taskValues: any) => + Task.fromOdooResponse(taskValues), + ); } const canCreateProject = response.can_create_project !== false; - const odooUserCompanies = response.user_companies || null; // undefined must be considered as true const canCreatePartner = response.can_create_partner !== false; - return [partner, odooUserCompanies, canCreatePartner, canCreateProject, error]; + return [partner, canCreatePartner, canCreateProject, error]; } /** * Perform a search on the Odoo database and return the list of matched partners. */ - static searchPartner(query: string): [Partner[], ErrorMessage] { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.SEARCH_PARTNER; + static searchPartner(query: string | string[]): [Partner[], ErrorMessage] { + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + + URLS.SEARCH_PARTNER; const odooAccessToken = getAccessToken(); - const response = postJsonRpc(url, { search_term: query }, { Authorization: "Bearer " + odooAccessToken }); + const response = postJsonRpc( + url, + { query }, + { Authorization: "Bearer " + odooAccessToken }, + ); - if (!response || !response.partners) { + if (!response?.length) { return [[], new ErrorMessage("http_error_odoo")]; } - return [response.partners.map((values: any) => Partner.fromOdooResponse(values)), new ErrorMessage()]; - } - - /** - * Create and enrich the company of the given partner. - */ - static createCompany(partnerId: number): [Company, ErrorMessage] { - return this._enrichOrCreateCompany(partnerId, URLS.CREATE_COMPANY); - } - - /** - * Enrich the existing company. - */ - static enrichCompany(companyId: number): [Company, ErrorMessage] { - return this._enrichOrCreateCompany(companyId, URLS.ENRICH_COMPANY); - } - - static _enrichOrCreateCompany(partnerId: number, endpoint: string): [Company, ErrorMessage] { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + endpoint; - const odooAccessToken = getAccessToken(); - - const response = postJsonRpc(url, { partner_id: partnerId }, { Authorization: "Bearer " + odooAccessToken }); - - if (!response) { - return [null, new ErrorMessage("http_error_odoo")]; - } - - if (response.error) { - return [null, new ErrorMessage("odoo", response.error)]; - } - - let error = new ErrorMessage(); - - if (response.enrichment_info && response.enrichment_info.type) { - error.setError(response.enrichment_info.type, response.enrichment_info.info); - } - - if (error.code) { - error.canCreateCompany = false; - } - - const company = response.company ? Company.fromOdooResponse(response.company) : null; - return [company, error]; + return [ + response[0].map((values: any) => Partner.fromOdooResponse(values)), + new ErrorMessage(), + ]; } } diff --git a/gmail/src/models/project.ts b/gmail/src/models/project.ts index 02202e00d..c8ec03433 100644 --- a/gmail/src/models/project.ts +++ b/gmail/src/models/project.ts @@ -10,6 +10,8 @@ export class Project { id: number; name: string; partnerName: string; + stageName: string; + companyName: string; /** * Unserialize the project object (reverse JSON.stringify). @@ -19,6 +21,8 @@ export class Project { project.id = values.id; project.name = values.name; project.partnerName = values.partnerName; + project.stageName = values.stageName; + project.companyName = values.companyName; return project; } @@ -27,9 +31,11 @@ export class Project { */ static fromOdooResponse(values: any): Project { const project = new Project(); - project.id = values.project_id; + project.id = values.id; project.name = values.name; project.partnerName = values.partner_name; + project.stageName = values.stage_name; + project.companyName = values.company_name; return project; } @@ -37,16 +43,25 @@ export class Project { * Make a RPC call to the Odoo database to search a project. */ static searchProject(query: string): [Project[], ErrorMessage] { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.SEARCH_PROJECT; + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + + URLS.SEARCH_PROJECT; const odooAccessToken = getAccessToken(); - const response = postJsonRpc(url, { search_term: query }, { Authorization: "Bearer " + odooAccessToken }); + const response = postJsonRpc( + url, + { query }, + { Authorization: "Bearer " + odooAccessToken }, + ); - if (!response) { + if (!response?.length) { return [[], new ErrorMessage("http_error_odoo")]; } - return [response.map((values: any) => Project.fromOdooResponse(values)), new ErrorMessage()]; + return [ + response[0].map((values: any) => Project.fromOdooResponse(values)), + new ErrorMessage(), + ]; } /** @@ -54,12 +69,18 @@ export class Project { * and return the newly created record. */ static createProject(name: string): Project { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_PROJECT; + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + + URLS.CREATE_PROJECT; const odooAccessToken = getAccessToken(); - const response = postJsonRpc(url, { name: name }, { Authorization: "Bearer " + odooAccessToken }); + const response = postJsonRpc( + url, + { name: name }, + { Authorization: "Bearer " + odooAccessToken }, + ); - const projectId = response ? response.project_id || null : null; + const projectId = response ? response.id || null : null; if (!projectId) { return null; } diff --git a/gmail/src/models/state.ts b/gmail/src/models/state.ts index db4ed0b59..d48cc639b 100644 --- a/gmail/src/models/state.ts +++ b/gmail/src/models/state.ts @@ -1,8 +1,6 @@ -import { isTrue } from "../utils/format"; import { Email } from "./email"; import { Partner } from "./partner"; import { Project } from "./project"; -import { Lead } from "./lead"; import { ErrorMessage } from "./error_message"; import { getAccessToken, getOdooAuthUrl } from "../services/odoo_auth"; import { getOdooServerUrl } from "src/services/app_properties"; @@ -10,7 +8,7 @@ import { getOdooServerUrl } from "src/services/app_properties"; /** * Object which contains all data for the application. * - * In App-Script, all event handler are function and not method. We can only pass string + * In App-Script, all event handlers are function and not method. We can only pass string * as arguments. So this object is serialized, then given to the event handler and then * unserialize to retrieve the original object. * @@ -24,36 +22,26 @@ export class State { canCreatePartner: boolean; // Opened email with headers email: Email; - // ID list of the Odoo user companies - odooUserCompanies: number[]; // Searched partners in the search view searchedPartners: Partner[]; // Searched projects in the search view searchedProjects: Project[]; canCreateProject: boolean; - // Current error message displayed on the card - error: ErrorMessage; - // Used in the company card - isCompanyDescriptionUnfolded: boolean; constructor( partner: Partner, canCreatePartner: boolean, email: Email, - odooUserCompanies: number[], partners: Partner[], searchedProjects: Project[], canCreateProject: boolean, - error: ErrorMessage, ) { this.partner = partner; this.canCreatePartner = canCreatePartner; this.email = email; - this.odooUserCompanies = odooUserCompanies; this.searchedPartners = partners; this.searchedProjects = searchedProjects; this.canCreateProject = canCreateProject; - this.error = error; } toJson(): string { @@ -77,7 +65,6 @@ export class State { const partner = Partner.fromJson(partnerValues); const email = Email.fromJson(emailValues); const error = ErrorMessage.fromJson(errorValues); - const odooUserCompanies = values.odooUserCompanies; const searchedPartners = partnersValues ? partnersValues.map((partnerValues: any) => Partner.fromJson(partnerValues)) : null; @@ -85,36 +72,16 @@ export class State { ? projectsValues.map((projectValues: any) => Project.fromJson(projectValues)) : null; - // "isCompanyDescriptionUnfolded" is not copied - // to re-fold the description if we go back / refresh - return new State( partner, canCreatePartner, email, - odooUserCompanies, searchedPartners, searchedProjects, canCreateProject, - error, ); } - /** - * Return the companies of the Odoo user as a GET parameter to add in a URL or an - * empty string if the information is missing. - * - * e.g. - * &cids=1,3,7 - */ - get odooCompaniesParameter(): string { - if (this.odooUserCompanies && this.odooUserCompanies.length) { - const cids = this.odooUserCompanies.sort().join(","); - return `&cids=${cids}`; - } - return ""; - } - /** * Cache / user properties management. * @@ -123,7 +90,7 @@ export class State { */ static get accessToken() { const accessToken = getAccessToken(); - return isTrue(accessToken); + return accessToken?.length && accessToken; } static get isLogged(): boolean { @@ -135,16 +102,7 @@ export class State { */ static get odooLoginUrl(): string { const loginUrl = getOdooAuthUrl(); - return isTrue(loginUrl); - } - /** - * Return the shared secret between the add-on and IAP - * (which is used to authenticate the add-on to IAP). - */ - static get odooSharedSecret(): string { - const scriptProperties = PropertiesService.getScriptProperties(); - const sharedSecret = scriptProperties.getProperty("ODOO_SHARED_SECRET"); - return isTrue(sharedSecret); + return loginUrl?.length && loginUrl; } /** diff --git a/gmail/src/models/task.ts b/gmail/src/models/task.ts index ba8b54530..3a124a36e 100644 --- a/gmail/src/models/task.ts +++ b/gmail/src/models/task.ts @@ -1,6 +1,8 @@ import { postJsonRpc } from "../utils/http"; import { URLS } from "../const"; import { getAccessToken } from "src/services/odoo_auth"; +import { Partner } from "./partner"; +import { Email } from "./email"; /** * Represent a "project.task" record. @@ -26,7 +28,7 @@ export class Task { */ static fromOdooResponse(values: any): Task { const task = new Task(); - task.id = values.task_id; + task.id = values.id; task.name = values.name; task.projectName = values.project_name; return task; @@ -36,25 +38,32 @@ export class Task { * Make a RPC call to the Odoo database to create a task * and return the ID of the newly created record. */ - static createTask(partnerId: number, projectId: number, emailBody: string, emailSubject: string): Task { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_TASK; + static createTask(partner: Partner, projectId: number, email: Email): [Task, Partner] | null { + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_TASK; const odooAccessToken = getAccessToken(); - + const [attachments, _] = email.getAttachments(); const response = postJsonRpc( url, - { email_subject: emailSubject, email_body: emailBody, project_id: projectId, partner_id: partnerId }, + { + email_body: email.body, + email_subject: email.subject, + partner_email: partner.email, + partner_id: partner.id, + partner_name: partner.name, + project_id: projectId, + attachments, + }, { Authorization: "Bearer " + odooAccessToken }, ); - - const taskId = response ? response.task_id || null : null; - - if (!taskId) { + if (!response?.id) { return null; } - - return Task.fromJson({ - id: taskId, - name: response.name, - }); + if (!partner.id) { + partner.id = response.partner_id; + partner.image = response.partner_image; + partner.isWritable = true; + } + return [Task.fromOdooResponse(response), partner]; } } diff --git a/gmail/src/models/ticket.ts b/gmail/src/models/ticket.ts index fec7f420f..c311cc629 100644 --- a/gmail/src/models/ticket.ts +++ b/gmail/src/models/ticket.ts @@ -1,6 +1,8 @@ import { postJsonRpc } from "../utils/http"; import { URLS } from "../const"; import { getAccessToken } from "src/services/odoo_auth"; +import { Partner } from "./partner"; +import { Email } from "./email"; /** * Represent a "helpdesk.ticket" record. @@ -8,22 +10,41 @@ import { getAccessToken } from "src/services/odoo_auth"; export class Ticket { id: number; name: string; + stageName: string; /** * Make a RPC call to the Odoo database to create a ticket * and return the ID of the newly created record. */ - static createTicket(partnerId: number, emailBody: string, emailSubject: string): number { - const url = PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_TICKET; + static createTicket(partner: Partner, email: Email): [Ticket, Partner] | null { + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + + URLS.CREATE_TICKET; const odooAccessToken = getAccessToken(); + const [attachments, _] = email.getAttachments(); const response = postJsonRpc( url, - { email_body: emailBody, email_subject: emailSubject, partner_id: partnerId }, + { + email_body: email.body, + email_subject: email.subject, + partner_email: partner.email, + partner_id: partner.id, + partner_name: partner.name, + attachments, + }, { Authorization: "Bearer " + odooAccessToken }, ); - return response ? response.ticket_id || null : null; + if (!response?.id) { + return null; + } + if (!partner.id) { + partner.id = response.partner_id; + partner.image = response.partner_image; + partner.isWritable = true; + } + return [Ticket.fromOdooResponse(response), partner]; } /** @@ -33,6 +54,7 @@ export class Ticket { const ticket = new Ticket(); ticket.id = values.id; ticket.name = values.name; + ticket.stageName = values.stageName; return ticket; } @@ -41,8 +63,9 @@ export class Ticket { */ static fromOdooResponse(values: any): Ticket { const ticket = new Ticket(); - ticket.id = values.ticket_id; + ticket.id = values.id; ticket.name = values.name; + ticket.stageName = values.stage_name; return ticket; } } diff --git a/gmail/src/services/odoo_redirection.ts b/gmail/src/services/odoo_redirection.ts new file mode 100644 index 000000000..4588e4ab7 --- /dev/null +++ b/gmail/src/services/odoo_redirection.ts @@ -0,0 +1,5 @@ +import { getOdooServerUrl } from "./app_properties"; + +export function getOdooRecordURL(model, record_id) { + return getOdooServerUrl() + `/mail_plugin/redirect_to_record/${model}/?record_id=${record_id}`; +} diff --git a/gmail/src/services/search_records.ts b/gmail/src/services/search_records.ts new file mode 100644 index 000000000..4ddf6746d --- /dev/null +++ b/gmail/src/services/search_records.ts @@ -0,0 +1,25 @@ +import { postJsonRpc } from "../utils/http"; +import { URLS } from "../const"; +import { ErrorMessage } from "../models/error_message"; +import { _t } from "../services/translation"; +import { getAccessToken } from "./odoo_auth"; + +/** + * Search records of the given model. + */ +export function searchRecords(recordModel: string, query: string): [any[], number, ErrorMessage] { + const odooAccessToken = getAccessToken(); + const url = + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + + URLS.SEARCH_RECORDS + + "/" + + recordModel; + + const response = postJsonRpc(url, { query }, { Authorization: "Bearer " + odooAccessToken }); + + if (!response?.length) { + return [[], 0, new ErrorMessage("unknown", response.error)]; + } + + return [response[0], response[1], new ErrorMessage(null)]; +} diff --git a/gmail/src/services/translation.ts b/gmail/src/services/translation.ts index 663096eba..ef6d07844 100644 --- a/gmail/src/services/translation.ts +++ b/gmail/src/services/translation.ts @@ -4,7 +4,7 @@ import { getAccessToken } from "./odoo_auth"; import { getOdooServerUrl } from "./app_properties"; /** - * Object which fetchs the translations on the Odoo database, puts them in cache. + * Object which fetch the translations on the Odoo database, puts them in cache. * * Done in a class and not in a simple function so we read only once the cache for all * translations. @@ -32,7 +32,7 @@ export class Translate { ); if (this.translations) { - // Put in the cacher for 6 hours (maximum cache life time) + // Put in the cache for 6 hours (maximum cache lifetime) cache.put(cacheKey, JSON.stringify(this.translations), 21600); } } @@ -69,7 +69,10 @@ export class Translate { .join("|"), "gi", ); - return translated.replace(re, (key) => parameters[key.substring(2, key.length - 2)] || ""); + return translated.replace( + re, + (key) => parameters[key.substring(2, key.length - 2)] || "", + ); } } } diff --git a/gmail/src/utils/format.ts b/gmail/src/utils/format.ts index 23f20089b..5ffc28289 100644 --- a/gmail/src/utils/format.ts +++ b/gmail/src/utils/format.ts @@ -13,36 +13,6 @@ export function formatUrl(url: string): string { return url.replace(/\/+$/, ""); } -/** - * Return the given string only if it's not null and not empty. - */ -export function isTrue(value: any): string { - if (value && value.length) { - return value; - } -} - -/** - * Return the first element of an array if the array is not null and not empty. - */ -export function first(value: any[]): any { - if (value && value.length) { - return value[0]; - } -} - -/** - * Repeat the given string "n" times. - */ -export function repeat(str: string, n: number) { - let result = ""; - while (n > 0) { - result += str; - n--; - } - return result; -} - /** * Truncate the given text to not exceed the given length. */ diff --git a/gmail/src/utils/http.ts b/gmail/src/utils/http.ts index 79a2a34da..b2640d806 100644 --- a/gmail/src/utils/http.ts +++ b/gmail/src/utils/http.ts @@ -4,6 +4,13 @@ import { State } from "../models/state"; * Make a JSON RPC call with the following parameters. */ export function postJsonRpc(url: string, data = {}, headers = {}, options: any = {}) { + for (const key in data) { + // don't send null values + if (data[key] === undefined || data[key] === null) { + data[key] = false; + } + } + // Make a valid "Odoo RPC" call data = { id: 0, @@ -40,46 +47,12 @@ export function postJsonRpc(url: string, data = {}, headers = {}, options: any = } return dictResponse.result; - } catch { + } catch (e) { + Logger.log(`HTTP Error: ${e}`); return; } } -/** - * Make a JSON RPC call with the following parameters. - * - * Try to first read the response from the cache, if not found, - * make the call and cache the response. - * - * The cache key is based on the URL and the JSON data - * - * Store the result for 6 hours by default (maximum cache duration) - * - * This cache may be needed to make to many HTTP call to an external service (e.g. IAP). - */ -export function postJsonRpcCached(url: string, data = {}, headers = {}, cacheTtl: number = 21600) { - const cache = CacheService.getUserCache(); - - // Max 250 characters, to hash the key to have a fixed length - const cacheKey = - "ODOO_HTTP_CACHE_" + - Utilities.base64Encode(Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, JSON.stringify([url, data]))); - - const cachedResponse = cache.get(cacheKey); - - if (cachedResponse) { - return JSON.parse(cachedResponse); - } - - const response = postJsonRpc(url, data, headers); - - if (response) { - cache.put(cacheKey, JSON.stringify(response), cacheTtl); - } - - return response; -} - /** * Take a dictionary and return the URL encoded parameters */ diff --git a/gmail/src/views/card_actions.ts b/gmail/src/views/card_actions.ts index d171a5787..d288d60bf 100644 --- a/gmail/src/views/card_actions.ts +++ b/gmail/src/views/card_actions.ts @@ -1,43 +1,29 @@ -import { buildDebugView } from "./debug"; -import { buildView } from "../views/index"; +import { onBuildDebugView } from "./debug"; import { State } from "../models/state"; -import { Partner } from "../models/partner"; import { resetAccessToken } from "../services/odoo_auth"; import { _t, clearTranslationCache } from "../services/translation"; import { actionCall } from "./helpers"; import { pushToRoot } from "./helpers"; +import { buildLoginMainView } from "../views/login"; -function onLogout(state: State) { +function onLogout() { resetAccessToken(); clearTranslationCache(); - - const [partner, odooUserCompanies, canCreatePartner, canCreateProject, error] = Partner.enrichPartner( - state.email.contactEmail, - state.email.contactName, - ); - const newState = new State( - partner, - canCreatePartner, - state.email, - odooUserCompanies, - null, - null, - canCreateProject, - error, - ); - return pushToRoot(buildView(newState)); + return pushToRoot(buildLoginMainView()); } -export function buildCardActionsView(state: State, card: Card) { - const canContactOdooDatabase = state.error.canContactOdooDatabase && State.isLogged; - +export function buildCardActionsView(card: Card) { if (State.isLogged) { card.addCardAction( - CardService.newCardAction().setText(_t("Logout")).setOnClickAction(actionCall(state, onLogout.name)), + CardService.newCardAction() + .setText(_t("Log out")) + .setOnClickAction(actionCall(undefined, onLogout.name)), ); } card.addCardAction( - CardService.newCardAction().setText(_t("Debug")).setOnClickAction(actionCall(state, buildDebugView.name)), + CardService.newCardAction() + .setText(_t("Debug")) + .setOnClickAction(actionCall(undefined, onBuildDebugView.name)), ); } diff --git a/gmail/src/views/company.ts b/gmail/src/views/company.ts deleted file mode 100644 index 9a13ef072..000000000 --- a/gmail/src/views/company.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { buildView } from "./index"; -import { actionCall, createKeyValueWidget, notify, updateCard } from "./helpers"; -import { SOCIAL_MEDIA_ICONS, UI_ICONS } from "./icons"; -import { URLS } from "../const"; -import { getOdooServerUrl } from "src/services/app_properties"; -import { ErrorMessage } from "../models/error_message"; -import { State } from "../models/state"; -import { Company } from "../models/company"; -import { Partner } from "../models/partner"; -import { _t } from "../services/translation"; - -/** - * Update the application state with the new company created / enriched. - * IT could be necessary to also update the contact if the contact is the company itself. - */ -function _setContactCompany(state: State, company: Company, error: ErrorMessage) { - if (company) { - state.partner.company = company; - if (state.partner.id === company.id) { - // The contact is the same partner as the company - // update his information - state.partner.isCompany = true; - state.partner.image = company.image; - state.partner.phone = company.phone; - state.partner.mobile = company.mobile; - } - } - state.error = error; - return updateCard(buildView(state)); -} - -function onCreateCompany(state: State) { - const [company, error] = Partner.createCompany(state.partner.id); - return _setContactCompany(state, company, error); -} - -function onEnrichCompany(state: State) { - const [company, error] = Partner.enrichCompany(state.partner.company.id); - return _setContactCompany(state, company, error); -} - -function onUnfoldCompanyDescription(state: State) { - state.isCompanyDescriptionUnfolded = true; - return updateCard(buildView(state)); -} - -export function buildCompanyView(state: State, card: Card) { - if (state.partner.company) { - const odooServerUrl = getOdooServerUrl(); - const cids = state.odooCompaniesParameter; - const company = state.partner.company; - - const companySection = CardService.newCardSection().setHeader("" + _t("Company Insights") + ""); - - if (!state.partner.id || state.partner.id !== company.id) { - const companyContent = [company.email, company.phone] - .filter((x) => x) - .map((x) => `${x}`); - - companySection.addWidget( - createKeyValueWidget( - null, - company.name + "
" + companyContent.join("
"), - company.image || UI_ICONS.no_company, - null, - null, - company.id ? odooServerUrl + `/web#id=${company.id}&model=res.partner&view_type=form${cids}` : null, - false, - company.email, - CardService.ImageCropType.CIRCLE, - ), - ); - } - - _addSocialButtons(companySection, company); - - if (company.description) { - const MAX_DESCRIPTION_LENGTH = 70; - if (company.description.length < MAX_DESCRIPTION_LENGTH || state.isCompanyDescriptionUnfolded) { - companySection.addWidget(createKeyValueWidget(_t("Description"), company.description)); - } else { - companySection.addWidget( - createKeyValueWidget( - _t("Description"), - company.description.substring(0, MAX_DESCRIPTION_LENGTH) + - "..." + - "
" + - "" + - _t("Read more") + - "", - null, - null, - null, - actionCall(state, onUnfoldCompanyDescription.name), - ), - ); - } - } - - if (company.address) { - companySection.addWidget( - createKeyValueWidget( - _t("Address"), - company.address, - UI_ICONS.location, - null, - null, - "https://www.google.com/maps/search/" + encodeURIComponent(company.address).replace("/", " "), - ), - ); - } - - if (company.phones) { - companySection.addWidget(createKeyValueWidget(_t("Phones"), company.phones, UI_ICONS.phone)); - } - - if (company.website) { - companySection.addWidget( - createKeyValueWidget(_t("Website"), company.website, UI_ICONS.website, null, null, company.website), - ); - } - - if (company.industry) { - companySection.addWidget(createKeyValueWidget(_t("Industry"), company.industry, UI_ICONS.industry)); - } - - if (company.employees) { - companySection.addWidget( - createKeyValueWidget(_t("Employees"), _t("%s employees", company.employees), UI_ICONS.people), - ); - } - - if (company.foundedYear) { - companySection.addWidget( - createKeyValueWidget(_t("Founded Year"), "" + company.foundedYear, UI_ICONS.foundation), - ); - } - - if (company.tags) { - companySection.addWidget(createKeyValueWidget(_t("Keywords"), company.tags, UI_ICONS.keywords)); - } - - if (company.companyType) { - companySection.addWidget( - createKeyValueWidget(_t("Company Type"), company.companyType, UI_ICONS.company_type), - ); - } - - if (company.annualRevenue) { - companySection.addWidget(createKeyValueWidget(_t("Annual Revenue"), company.annualRevenue, UI_ICONS.money)); - } - - card.addSection(companySection); - - if (!company.isEnriched) { - const enrichSection = CardService.newCardSection(); - enrichSection.addWidget(CardService.newTextParagraph().setText(_t("No insights for this company."))); - if (state.error.canCreateCompany && state.canCreatePartner) { - enrichSection.addWidget( - CardService.newTextButton() - .setText(_t("Enrich Company")) - .setOnClickAction(actionCall(state, onEnrichCompany.name)), - ); - } - card.addSection(enrichSection); - } - } else if (state.partner.id) { - const companySection = CardService.newCardSection().setHeader("" + _t("Company Insights") + ""); - companySection.addWidget(CardService.newTextParagraph().setText(_t("No company attached to this contact."))); - - if (state.error.canCreateCompany && state.canCreatePartner) { - companySection.addWidget( - CardService.newTextButton() - .setText(_t("Create a company")) - .setOnClickAction(actionCall(state, onCreateCompany.name)), - ); - } - card.addSection(companySection); - } -} - -function _addSocialButtons(section: CardSection, company: Company) { - const socialMediaButtons = CardService.newButtonSet(); - - const socialMedias = [ - { - name: "Facebook", - url: "https://facebook.com/", - icon: SOCIAL_MEDIA_ICONS.facebook, - key: "facebook", - }, - { - name: "Twitter", - url: "https://twitter.com/", - icon: SOCIAL_MEDIA_ICONS.twitter, - key: "twitter", - }, - { - name: "LinkedIn", - url: "https://linkedin.com/", - icon: SOCIAL_MEDIA_ICONS.linkedin, - key: "linkedin", - }, - { - name: "Github", - url: "https://github.com/", - icon: SOCIAL_MEDIA_ICONS.github, - key: "github", - }, - { - name: "Crunchbase", - url: "https://crunchbase.com/", - icon: SOCIAL_MEDIA_ICONS.crunchbase, - key: "crunchbase", - }, - ]; - - for (let media of socialMedias) { - const url = company[media.key]; - if (url && url.length) { - socialMediaButtons.addButton( - CardService.newImageButton() - .setAltText(media.name) - .setIconUrl(media.icon) - .setOpenLink(CardService.newOpenLink().setUrl(media.url + url)), - ); - } - } - - section.addWidget(socialMediaButtons); -} diff --git a/gmail/src/views/create_task.ts b/gmail/src/views/create_task.ts index af301468c..5c4cf04e5 100644 --- a/gmail/src/views/create_task.ts +++ b/gmail/src/views/create_task.ts @@ -2,34 +2,31 @@ import { buildView } from "../views/index"; import { updateCard, pushCard, pushToRoot } from "./helpers"; import { UI_ICONS } from "./icons"; import { createKeyValueWidget, actionCall, notify } from "./helpers"; -import { URLS } from "../const"; import { getOdooServerUrl } from "src/services/app_properties"; -import { ErrorMessage } from "../models/error_message"; import { Project } from "../models/project"; import { State } from "../models/state"; import { Task } from "../models/task"; -import { logEmail } from "../services/log_email"; import { _t } from "../services/translation"; +import { getOdooRecordURL } from "src/services/odoo_redirection"; function onSearchProjectClick(state: State, parameters: any, inputs: any) { - const inputQuery = inputs.search_project_query; - const query = (inputQuery && inputQuery.length && inputQuery[0]) || ""; + const query = inputs.search_project_query || ""; const [projects, error] = Project.searchProject(query); + if (error.code) { + return notify(error.message); + } - state.error = error; state.searchedProjects = projects; + return updateCard(buildCreateTaskView(state, query)); +} - const createTaskView = buildCreateTaskView(state, query, true); - - // If go back, show again the "Create Project" section, but do not show all old searches - return parameters.hideCreateProjectSection ? updateCard(createTaskView) : pushCard(createTaskView); +function onCreateProjectViewClick(state: State, parameters: any, inputs: any) { + return updateCard(buildCreateProjectView(state)); } function onCreateProjectClick(state: State, parameters: any, inputs: any) { - const inputQuery = inputs.new_project_name; - const projectName = (inputQuery && inputQuery.length && inputQuery[0]) || ""; - - if (!projectName || !projectName.length) { + const projectName = inputs.new_project_name || ""; + if (!projectName.length) { return notify(_t("The project name is required")); } @@ -43,37 +40,34 @@ function onCreateProjectClick(state: State, parameters: any, inputs: any) { function onSelectProject(state: State, parameters: any) { const project = Project.fromJson(parameters.project); - const task = Task.createTask(state.partner.id, project.id, state.email.body, state.email.subject); + const result = Task.createTask(state.partner, project.id, state.email); - if (!task) { + if (!result) { return notify(_t("Could not create the task")); } - task.projectName = project.name; + const [task, partner] = result; + state.partner = partner; state.partner.tasks.push(task); + state.partner.taskCount += 1; - const taskUrl = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - `/web#id=${task.id}&action=project_mail_plugin.project_task_action_form_edit&model=project.task&view_type=form`; - - // Open the URL to the Odoo task and update the card - return CardService.newActionResponseBuilder() - .setOpenLink(CardService.newOpenLink().setUrl(taskUrl)) - .setNavigation(pushToRoot(buildView(state))) - .build(); + const taskUrl = getOdooRecordURL("project.task", task.id); + return pushToRoot(buildView(state)); } -export function buildCreateTaskView(state: State, query: string = "", hideCreateProjectSection: boolean = false) { +export function buildCreateTaskView(state: State, query: string = "") { let noProject = false; if (!state.searchedProjects) { // Initiate the search - [state.searchedProjects, state.error] = Project.searchProject(""); + const [searchedProjects, error] = Project.searchProject(""); + if (error.code) { + return notify(error.message); + } + + state.searchedProjects = searchedProjects; noProject = !state.searchedProjects.length; } - const odooServerUrl = getOdooServerUrl(); - const partner = state.partner; - const tasks = partner.tasks; const projects = state.searchedProjects; const card = CardService.newCardBuilder(); @@ -88,32 +82,37 @@ export function buildCreateTaskView(state: State, query: string = "", hideCreate .setFieldName("search_project_query") .setTitle(_t("Search a Project")) .setValue(query || "") - .setOnChangeAction( - actionCall(state, onSearchProjectClick.name, { - hideCreateProjectSection: hideCreateProjectSection, - }), - ), + .setOnChangeAction(actionCall(state, onSearchProjectClick.name, {})), ); - projectSection.addWidget( + const actionButtonSet = CardService.newButtonSet(); + actionButtonSet.addButton( CardService.newTextButton() .setText(_t("Search")) - .setOnClickAction( - actionCall(state, onSearchProjectClick.name, { - hideCreateProjectSection: hideCreateProjectSection, - }), - ), + .setOnClickAction(actionCall(state, onSearchProjectClick.name, {})), ); + if (state.canCreateProject) { + actionButtonSet.addButton( + CardService.newTextButton() + .setText(_t("Create Project")) + .setBackgroundColor("#875a7b") + .setOnClickAction(actionCall(state, onCreateProjectViewClick.name, {})), + ); + } + projectSection.addWidget(actionButtonSet); if (!projects.length) { - projectSection.addWidget(CardService.newTextParagraph().setText(_t("No project found."))); + projectSection.addWidget( + CardService.newTextParagraph().setText(_t("No project found.")), + ); } for (let project of projects) { + const bottomLabel = [project.companyName, project.partnerName, project.stageName]; const projectCard = createKeyValueWidget( null, project.name, null, - project.partnerName, + bottomLabel.filter((l) => l).join(" - "), null, actionCall(state, onSelectProject.name, { project: project }), ); @@ -121,33 +120,22 @@ export function buildCreateTaskView(state: State, query: string = "", hideCreate projectSection.addWidget(projectCard); } card.addSection(projectSection); - } - - if (!hideCreateProjectSection && state.canCreateProject) { - const createProjectSection = CardService.newCardSection().setHeader( - "" + _t("Create a Task in a new Project") + "", - ); - - createProjectSection.addWidget( - CardService.newTextInput().setFieldName("new_project_name").setTitle(_t("Project Name")).setValue(""), - ); - - createProjectSection.addWidget( - CardService.newTextButton() - .setText(_t("Create Project & Task")) - .setOnClickAction(actionCall(state, onCreateProjectClick.name)), - ); - card.addSection(createProjectSection); - } else if (noProject) { + } else if (state.canCreateProject) { + return buildCreateProjectView(state); + } else { const noProjectSection = CardService.newCardSection(); noProjectSection.addWidget(CardService.newImage().setImageUrl(UI_ICONS.empty_folder)); - noProjectSection.addWidget(CardService.newTextParagraph().setText("" + _t("No project") + "")); + noProjectSection.addWidget( + CardService.newTextParagraph().setText("" + _t("No project") + ""), + ); noProjectSection.addWidget( CardService.newTextParagraph().setText( - _t("There are no project in your database. Please ask your project manager to create one."), + _t( + "There are no project in your database. Please ask your project manager to create one.", + ), ), ); @@ -156,3 +144,27 @@ export function buildCreateTaskView(state: State, query: string = "", hideCreate return card.build(); } + +export function buildCreateProjectView(state: State) { + const card = CardService.newCardBuilder(); + + const createProjectSection = CardService.newCardSection().setHeader( + "" + _t("Create a Task in a new Project") + "", + ); + + createProjectSection.addWidget( + CardService.newTextInput() + .setFieldName("new_project_name") + .setTitle(_t("Project Name")) + .setValue(""), + ); + + createProjectSection.addWidget( + CardService.newTextButton() + .setText(_t("Create Project & Task")) + .setOnClickAction(actionCall(state, onCreateProjectClick.name)), + ); + card.addSection(createProjectSection); + + return card.build(); +} diff --git a/gmail/src/views/debug.ts b/gmail/src/views/debug.ts index 4576952e8..d507c0ca9 100644 --- a/gmail/src/views/debug.ts +++ b/gmail/src/views/debug.ts @@ -3,26 +3,36 @@ import { _t, clearTranslationCache } from "../services/translation"; import { getAccessToken } from "src/services/odoo_auth"; import { getOdooServerUrl } from "src/services/app_properties"; -export function buildDebugView() { +export function onBuildDebugView() { const card = CardService.newCardBuilder(); const odooServerUrl = getOdooServerUrl(); const odooAccessToken = getAccessToken(); card.setHeader( - CardService.newCardHeader().setTitle(_t("Debug Zone")).setSubtitle(_t("Debug zone for development purpose.")), + CardService.newCardHeader() + .setTitle(_t("Debug Zone")) + .setSubtitle(_t("Debug zone for development purpose.")), ); - card.addSection(CardService.newCardSection().addWidget(createKeyValueWidget(_t("Odoo Server URL"), odooServerUrl))); + card.addSection( + CardService.newCardSection().addWidget( + createKeyValueWidget(_t("Odoo Server URL"), odooServerUrl), + ), + ); card.addSection( - CardService.newCardSection().addWidget(createKeyValueWidget(_t("Odoo Access Token"), odooAccessToken)), + CardService.newCardSection().addWidget( + createKeyValueWidget(_t("Odoo Access Token"), odooAccessToken), + ), ); card.addSection( CardService.newCardSection().addWidget( CardService.newTextButton() .setText(_t("Clear Translations Cache")) - .setOnClickAction(CardService.newAction().setFunctionName(clearTranslationCache.name)), + .setOnClickAction( + CardService.newAction().setFunctionName(clearTranslationCache.name), + ), ), ); diff --git a/gmail/src/views/error.ts b/gmail/src/views/error.ts deleted file mode 100644 index cc4af4baa..000000000 --- a/gmail/src/views/error.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { State } from "../models/state"; -import { createKeyValueWidget, actionCall } from "./helpers"; -import { buildView } from "./index"; -import { updateCard } from "./helpers"; -import { UI_ICONS } from "./icons"; -import { _t } from "../services/translation"; -import { buildLoginMainView } from "./login"; - -function onCloseError(state: State) { - state.error.code = null; - return updateCard(buildView(state)); -} - -function _addError(message: string, state: State, icon: string = null): CardSection { - const errorSection = CardService.newCardSection(); - - errorSection.addWidget( - createKeyValueWidget( - null, - message, - icon, - null, - CardService.newImageButton() - .setAltText(_t("Close")) - .setIconUrl(UI_ICONS.close) - .setOnClickAction(actionCall(state, onCloseError.name)), - ), - ); - return errorSection; -} - -export function buildErrorView(state: State, card: Card) { - const error = state.error; - - const ignoredErrors = ["company_created", "company_updated"]; - if (ignoredErrors.indexOf(error.code) >= 0) { - return; - } - - if (error.code === "http_error_odoo") { - const errorSection = _addError(error.message, state); - errorSection.addWidget( - CardService.newTextButton() - .setText(_t("Login")) - .setOnClickAction(CardService.newAction().setFunctionName(buildLoginMainView.name)), - ); - card.addSection(errorSection); - } else if (error.code === "insufficient_credit") { - const errorSection = _addError(error.message, state); - errorSection.addWidget( - CardService.newTextButton() - .setText(_t("Buy new credits")) - .setOpenLink(CardService.newOpenLink().setUrl(error.information)), - ); - card.addSection(errorSection); - } else if (error.code === "missing_data") { - card.addSection(_addError(error.message, state)); - } else { - let errors = [error.message, error.information].filter((x) => x); - const errorMessage = errors.join("\n"); - card.addSection(_addError(errorMessage, state)); - } -} diff --git a/gmail/src/views/helpers.ts b/gmail/src/views/helpers.ts index db715e840..b2e465c81 100644 --- a/gmail/src/views/helpers.ts +++ b/gmail/src/views/helpers.ts @@ -1,6 +1,7 @@ import { UI_ICONS } from "./icons"; import { State } from "../models/state"; import { escapeHtml } from "../utils/html"; +import { truncate } from "../utils/format"; /** * Remove all cards and push the new one @@ -26,7 +27,7 @@ export function pushCard(card: Card) { /** * Build a widget "Key / Value / Icon" * - * If the icon if not a valid URL, take the icon from: + * If the icon is not a valid URL, take the icon from: * https://github.com/webdog/octicons-png */ export function createKeyValueWidget( @@ -40,7 +41,7 @@ export function createKeyValueWidget( iconLabel: string = null, iconCropStyle: GoogleAppsScript.Card_Service.ImageCropType = CardService.ImageCropType.SQUARE, ) { - const widget = CardService.newDecoratedText().setText(content).setWrapText(true); + const widget = CardService.newDecoratedText().setText(content); if (label && label.length) { widget.setTopLabel(escapeHtml(label)); } @@ -62,7 +63,9 @@ export function createKeyValueWidget( if (icon && icon.length) { const isIconUrl = - icon.indexOf("http://") === 0 || icon.indexOf("https://") === 0 || icon.indexOf("data:image/") === 0; + icon.indexOf("http://") === 0 || + icon.indexOf("https://") === 0 || + icon.indexOf("data:image/") === 0; if (!isIconUrl) { throw new Error("Invalid icon URL"); } @@ -82,10 +85,17 @@ export function createKeyValueWidget( function _handleActionCall(event) { const functionName = event.parameters.functionName; - const state = State.fromJson(event.parameters.state); const parameters = JSON.parse(event.parameters.parameters); - const inputs = event.formInputs; - return eval(functionName)(state, parameters, inputs); + if (!/^on[A-Z][a-zA-Z]+(\$[0-9]+)?$/.test(functionName)) { + throw new Error("Invalid function name"); + } + // @ts-ignore + const toCall = this[functionName]; + if (event.parameters.state?.length) { + const state = State.fromJson(event.parameters.state); + return toCall(state, parameters, event.formInput); + } + return toCall(parameters, event.formInput); } /** @@ -95,12 +105,12 @@ function _handleActionCall(event) { * must be strings. Therefor we serialized the state and other arguments to clean the code * and to be able to access to it in the event handlers. */ -export function actionCall(state: State, functionName: string, parameters: any = {}) { +export function actionCall(state: State | null, functionName: string, parameters: any = {}) { return CardService.newAction() .setFunctionName(_handleActionCall.name) .setParameters({ functionName: functionName, - state: state.toJson(), + state: state ? state.toJson() : "", parameters: JSON.stringify(parameters), }); } @@ -112,5 +122,7 @@ export function notify(message: string) { } export function openUrl(url: string) { - return CardService.newActionResponseBuilder().setOpenLink(CardService.newOpenLink().setUrl(url)).build(); + return CardService.newActionResponseBuilder() + .setOpenLink(CardService.newOpenLink().setUrl(url)) + .build(); } diff --git a/gmail/src/views/icons.ts b/gmail/src/views/icons.ts index ef95aecf1..d45e6aab7 100644 --- a/gmail/src/views/icons.ts +++ b/gmail/src/views/icons.ts @@ -1,91 +1,23 @@ -// Icon come from https://www.iconfinder.com/ -// Store as PNG 64x64 - -export const SOCIAL_MEDIA_ICONS = { - facebook: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEkElEQVR4XuWav2sUQRTH305yEQXRKkQQBFE7CxGi5qIoWMRaNLmk8EdhLuQf0EZiaSsS9hS08xLif2CTEO9iFbC0tUiE6yxsctmRvTAwWWfnvTezu7cXUx3ZNzPvfeY7773ZuwD6/Dc507gWAUwFUo5LEV0IIjEWCTgRAAwHBN9azTrFLHUmp8HxIElwLtVkaUlM/Bh7BBA9D0Bcok4Vr5l0uC8AqA4n7WLnx+fen61E3VUJwYRpHlOQtvVcAOgb6KQAVwC3ZsOLe91oQwyJM65zJMe5ANDnKAzA1QeNUyNCbgsB52MHuDudBswGgHJUUQBpk1Am152uzoQfIYDH3J3HQA2EAm7MNS6LaP87gECBY4CSQAYCwGQt/CABnmDBYUdDVR6dYqkBxI5O3Xtz7Pfp4Q6AOEkBwLUpBAD3vOv2k7Pv7koZfeEGRrGPFdEmNkK2XEZZy9pJ2Zqiai18CQCv9AmwxGZzqC85AFOA7Xl1uvEZhLzvRdkyOHkEMF9NzVlevvXmrdbCbQC4wl5EQksK+TbYE+1KZ3dnfX2py56DMIBUlrhU9XWvP1zeGUI6v6SspYTX7ZX5FwCB15UjLf5MWmEqlGot/AMAxwmbcWAiodVamb+ZZfBql000SQqgOJ8GpDod7oMAQZmjF38ga+1PCytUe187EgDqbpucqdZCnoy7wbnW2vxP38Co460AfAJXDnABVHZ/VXwSnsln9b+0Z1RYTnZcAL63O66TpCPAnVS35wKIOzvemTnsHVe1pQCgl0Hf3p5S+nSbUgDQHcoLgA1MqsJd5JSUL+cIcC43PsdyoBTA3QQuGPYRwHbU56bHdV7ZRyA7W82FUdN4DKARgPV2x21sXKNijIsA1rea9TvJIVjwsX1mCujHzh9cHQAgguX2an1RBcQpo5kBYGxY5qYBwOLXZn3ZZeLCAeShFAHi9mbz2cZAAHBxEhsjuiOjm2tPO5hdWpJkjbNVgTx2F3MurgDfmgujtnOfTIZeL0QUgH4Ea4KRVgEwcOp54TmA6hjVTmoVgDrGqxPEGiGqE1kpiFoB0nqCgVeATwUoXSOkq8KmEP2ZqgC2tz42VbIVQJW4sjMdGVtwthcilNYWCzZZLXIDoJzl5oxSvQ+g7naWlycugCxU0bsRcS4QnFvXf6EAm1LKCIDdCapE4aKSogFw1ZxbErRVAZtiuDmAmqfS7A4B4NLT++k0dVAVoEpjXwH40jSNpwJQY48sAGrvnzcA09WYtPGuxwNTQNa/+SEFoxkVngQxJegKsL3I4AZKSoJZTarPgykguabpCLiqjxJP4QrAnMo7B5i6WMynf55zGiNdAUr+qmSa6JcOgK/8sCPgmgR9/dJ7mN5nnwmzvA2qn766tN1sKbt8NcZdBFMAJQlia/punvGMYztAXbQIABgg23NSFaAGqy+U9xshm08cf0kAfAgPrAI4pc4GiAuA+ysxzm6b/MxMAWltKxdAFn1A8o0P9r2hj8LRsVwAXAWgDiAGmSkgbR0uANtlyCVY7IgUAgC7AeqBZXEEOKAKAaA7hME48gCw3SkawF+GJ7pQyLDl9gAAAABJRU5ErkJggg==", - twitter: - "data:image/png;base64,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", - github: - "data:image/png;base64,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", - linkedin: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFb0lEQVR4Xu2bTYgcRRTH/6+ys6u7giSQg8SDiKySQDwsiDcRE5LYM+JJ8evkJ2IOkqBmJuKSbE82EDWQkyJ4UCLEg6AzmwjmpKewKmg8bIQIStBAZJFk1cmmq6RnMjvdPV2f3fOxG+e0S1e9eu9X//fqdQ1DiH6m527HstgNiCI43dV6JH7GOlaDCI7BL12Ijc/wD4WWM8x3nZpcN/y/9SnXnoag98Awnm6cLwHsefjeJ8nngwrGFILKvxaAMHiijwwNPpkGwXDu0A0jhLJviIVw5412kosroJFJVHf+bjR+6EKOO0So1A8DeM3KT8IhzHhlqzkDHKxOgUrtJ4A2t/1rFwVlgeL8RxwqbY3OGURBS2Nqq0rCvnoDDKN2G8Qb8Es3mc6xdcrUbh7j+gLA5dToFzTCvtpZMNoSOmmx6A/wvXvz2IFB2yDsn5uFEK/bARBV+MXKoJ3PY31C5YtNABYANiEzmFDGZRQwiWnvjzwcsLFholCTMdE1W0W/Un8CwHGjXBV4HFXvhI3jWcfaBmWzXqcVDiFw8T4Y3SIxcBkCz7kEn2cAMluua3QAhFGXT90GFuxGwItgmGyBYAuAqKFAx7LIXueg7rnNrtqMjQOwmZlh7KCClTVO1qGkBTBMQdkENBAF2DjY67HOAPIuRkYnkCUNE1WGb4Op7zHayb6nhiexq40hze4bJ+/ACPcA3A8R3EOgTYJjPRjGwBGAsX8AfgVgv4HoPAT/Foy+xsGHzwCkfE+TAnByNDrJEQD5Xsfj8smtoGuzAHYCzF6thF8BfIjl0XdxePtf6UXQ0VEkdiqqmObfWe1Wai8D4ijACrrN0KoVWITAK6h6Kc1eVkdl3lXqwsCx7tkh2P21ZyHog/ZDWzvS8STexkxxb7wVzgBAeRy62iWxGUJ8D7CxZM+ez6WLeAt+8UAHrqujihRoGne1y/EVGLb14lRo2uTgYOwB+Lu+CTewL0XQVsK6nM/+PJiHX7ovPCH6AiC7wz2wINg2VHedXpMAkopLVSDx45gpPbUmARjqZRHnljYOFYBe14ou+yKY0gKQOtWjVjgPCMY2CC8RVerC9HyNGdYAsLErOfIuNL+sJX6a+NUFMba+1co2Fm8FG70bgj0EEi8CCO80HT90VKsAqeUcFCDfKfoMjXXP4MiOJWVke7+cwOi1j0F41ImAoM8zAVBKzbURAs6jML4F0w/+axTUqyduxvjEWQB3Go2PDzqTCYCyW3MHsAe+905o2ziXy3N7QOKINQCOX3IFEHPAFYAIplB95DurYN6sTYHTvNWccLDApeEDEIgNmC0u6oKJqWP61AYsB3/q5nQ95/jbGEB7wZWFMxRBpbTPLY3g08cCq2BemC9g48WrximzYpwvGwPockgBIJcLESsCrm+ffHAvQ84NlgyMY81xVkDs7i7NqYhDJtI0Tq1hAZC8E+zyy3FHona77hlVaeG4nrMCegGgGbCuuEoguLbePQGweopgzldisVx3lWT0e4HEbqtqSVQBJjWn3WnmroCVxTUAbE4Bo4BcgTvf3kpy1RSA81vmjXQKWPVCw6KAFacdHdKeLtcX6EoLx/VyrwH9ApDWdxjViq7C6khOu1O9sutYA2RwUhWgPG7av/TQNSx9BBD6GxZz07vNKMNVlwLJzWkGn+Hr+KECYNIKS9Vp+fLVVoExgK6FhygFmsEoUk6d0jnmah6tsLa4OhZB2TRjBdjcCOl2RNng6JRlAcDkWGwCMBm4GgGoQHfuOK+ngDUE3U7lmFrxY0vyg8vEep0A1T/QXNMpkKaA5C3TDQcgCeV/ADb3AbE6MaAaIC1sFjUnngYWE2OLr2IAub0LKE+OHMBanUyOx/l/kP2VV1CLLcMAAAAASUVORK5CYII=", - crunchbase: - "data:image/jpeg;base64,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XS0YMPCT2KLsPLwCK1qRkb/OsgupoM3qNP8AVfoKUfATUe9AEBAcUyNZb3empejL+6+Xf90M3kaf6oy8tIotKOpe9F3/ACX/AP/aAAwDAQACAAMAAAAQ8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888897y8888888888888888888888oBS8888888888888888888888oBC8888888888888888888888oBC888888888888888/x73288oBC/wCecfPPPPPPPPPPQwQQQP8AygEMAEFBDbzzzzzzz+sECkwBDegEEUCU8FPzzzzzzzYEfzzw4JugEL/zy6oB7zzzzzyEHzzzzzzygEHzzzz0FbzzzzzyEH7zzzvLWgFLzzzycFTzzzzzykGPfziHPugENHzyIIdfzzzzzz+MGCJIEF+gEFMFGEEPzzzzzzzyw4gEEDTyoEEMEEpJ/wA888888888MOec88888tOet888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888//EACkRAQAAAggGAwEBAAAAAAAAAAEAERAhMUFRYcHRcYGRseHwIDChQHD/2gAIAQMBAT8Q/wAJJsnIvSM31idyVTt/n9Rg0d9p/P6jBo77T+f1GDR32n8CgTYYkzOVfj9hmaBvDMlcRtOJQCZV0+owaO+0geYnfpbC8ibgbpDlYORvFUkuFj0frv3XF7FassBZ5+FVY/nMgTklzw2o9Rg0M2kpKcMFmtIysh0TNvN4OpMfosugnDvkGBhQcEzHQviQvOHmD1Zcqnp5hEZMA3kkCKsVPHzHqMGmuIYAmGQJ7QIt3Mlv2ipIzuedCkmk+foZZieBZ+9qEBzusXYgJVFKgaluZudoznSJ1DJlzKz3OPUYNAQ1rIgZa3uL7ZSnOYxcQWZl0DKJ82pXxKn5rIwDeggl5PrX8/UYNATVxdNfiUztrNTWhFLl2Pmg4hqUBKW1Hl4l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", -}; - export const UI_ICONS = { - person: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wMTDw0eHfVFPgAACUJJREFUeNrtnWt3mkoUhl8IdxAh5Pb//1trolEDqOAgw/lwlp6mJ01iahRm3metrvZbZeZxs/eei4aUsgMhimByCAiFJoRCE0KhCaHQhEITQqEJodCEUGhCKDSh0IRQaEIoNCEUmhAKTSg0IRSaEApNCIUmhEITCk0IhSaEQhNCoQmh0IRCE0KhCaHQhFBoQig0odCEUGhCKDQhFJoQABaH4Hi6rkPTNKjrGlVVoa5rCCEgpUTXdYc/b2EYBgzDOPzbNE0YhgHbtmFZFmzbRhAE8H0fV1dXHOwjMfgbK8dRVRXKskRVVWiaBrvdDlLKk/4ftm3D8zx4nocoiuC6LkyTL1MKfSKklCjLEvP5HHVdn/3/9zwPNzc3iKKIYlPoryOEQFmWKIoCVVVd/PP4vo/RaITxeAzbtjlBFPq4iDybzSCE6N3ncxwHd3d3iOOYk0WhP47K8/kcy+Wy9581TVNkWQbHcThxFPr/nYv1eo3Hx8deRuX30pCHhwf4vs9JpNCvZZ5MJmiaZnCf37ZtPDw8IAxD7YtG7YWWUiLPc0ynU7RtO9jnsG0b9/f32ufV2veAqqoavMwA0DQNJpNJL7oxFPpC1HWNp6enwcu8p21b/PjxQ2uptRVaCIHJZHKRhZLvfq7ZbHby1UsK3fMiMM9zZSPZarXCcrnUUmothd5ut3h5eVH6GWezGdbrNYVWHSnlYNtzxz7nYrFQ/jm1Flr1VON3qqrSrkDUSujdboeiKLR6G+mWS2sl9Ha7Va6r8RGbzQZlWVJoVdMNVXrOxzx3URTaPLc2Qm+3W6xWK+jI/ogYhVYoSpVlqV103tM0jTYtPC2E3u122kbnPev1+o8Hdyn0wBBCaPPKfS/t0KEnrY3Quu5t2NO2LTabDYVWRWgdXrefidKqj4MWQuu2/PveOKj+plJeaCmltt0NHb/YWkRoCv3fODBCcxKVgjk0J1Cp9IspB6VWahyYcjAyKcP+Gl8KTQiFJoRCE0KhCdFKaN56T6FZ3RMK3VfYh9ZnHPgu1oj9z8hR6IFPIlMOphyExTGFJoRCnyEqsW33OgWj0AOHm5MYoVnZcywodB/puo5dDkZo5oyq1hMUmkJzLCg0I1Nfx4FdDqJcTUGhBz6BjNCM0ErljcyjmUNzIjkOFJoRmikHhWZkOus4sChUJDIRRmgKrRhXV1cUmpFJnXSDS98KRSbd6boOlmVRaBWwLEv7CG2aJmzbptDMHdUZA6YcCk2mDtHpo7cUUw4KrQyO4zBCq5Q/uq6rrcyGYcDzPD1qBV0mNAxDbfvRFFpBfN/XNko7jgPHcSi0amnHaDTSstsRRZEWBaFWQgNAGIbaTOyvBXEcx9p8kbUS2nEcbXLJX7/EOqVaWgltmiaiKNLqeXVLs7QSet/t0GVvh+M48H1fqzeSdn0sx3GQJAlrBgqtDmmaahGl4zjWrveupdCWZSmfS0dRpGXfXUuh98WhqsWSaZrIskzLlVFtzyYFQaDshiXf97UrBrUX2rIspGmq3HMZhqH024dCvzPxSZIot8dB5yV+rYUG1FwWTpJE673f2p/vj+NYmV6tbdtI01Tr42baC+04DsIwVObLqcs2UQr9Ts6pwkKL4ziI4xjazycIXNfFaDQa9DMEQaD1MTMK/UaUHmoxdXV1hfF4zCvPKPTrKD3U5fAkSZSpAyj0CaN0kiSDy6Udx8F4POYEUuj/43ne4LaWjsdj7TsbFPoPGIaBm5ubwRzT2kdn5s4U+t0CK03T3ktimibu7u4YnSn0x8Rx3PvdanEcs+9MoT8fpfsc/RzHUXKnIIX+RnzfR5ZlvdsXYZombm9vtbuOgUKfgCiKevVaNwwDaZpqvT2UQv8Ftm0jy7LeRMMgCAZRsFLoniKlPGzJ7INEQRDAMAxIKTk5f3qLSSk7DsN/AnddByEEqqrCdruFEAJN00AI0Yti1bZtuK57uNbMdV3Yts0UhEL/S9d1kFKiqirkeY7VaoW2bYczgYaBIAgwGo0QRZH2cmspdNu2hyhcVRU2mw2aphl+/mia8H0fnucd/rYsS6ucWyuhm6bBarVCURSo63pQkfgrcluWhTAMkSQJXNfVQmylhe66DrvdDkIIFEWBoiiUlvg9wjA8rICq/ANCygothEBZliiKAkIIbUX+Pd+2bfuV3KqJrZTQUkrsdjvkeY7FYkGJPyCOY6RpqpTYSggtpcRms0FZlliv171osQ0p1/69S0KhL5gj13WN+XyOsizRdWyp/w2O4+Dm5mbQ1/AOUui2bVFV1SFHZmpx2jw7CAKMx+PDhelD6msPSmgpJbbbLebzOVarFZeAvxnf95EkyaBOxQxCaCklhBDI8xzL5ZIinzlih2GINE0RBEHvDxH3XmghBJbLJcqyZLF34eIxiqLed0V6K3TbtsjzHLPZjDlyz0jTFFmW9XLfSO+Ebtv2sKq3Xq9pT487IuPxuHfXKPRK6KqqMJ1OKfLAxM6yrDeF48WF3hd8y+USeZ6z4Bsoo9EI19fX8DzvooXjRYVmwade4TgajZBlGVzXvUh+fXah9xvqy7LE8/MzRVZU7DRNDze6nlPsswrdti3KskSe59hsNlyq1iC/TpLkrL8scDah1+s1ptMpqqriTGso9rn2iHyr0Ps9F3meoyxLFnyas9+HHYbht6Ui3yL0r7vguOeCvBLOMOC6LrIsw2g0OnnEPqnQ3HNBjo3YaZoiDMOTtfpOJnTTNFgsFiiKQokT1OQ8mKaJMAxxfX19uEjnokJLKbFarTCdTtmCI19mfy93mqZ/tQf7y0J3XYftdnuIykwvyCnY3/r61Qspvyx0URSMyuTb0pAkSXB7e3t0bn200E3T4OXlBfP5nFGZfCtRFOH29vaoX1M4SmghBKbTKQ+kkrPhOA7u7u4QRdGnWnyfEnqfL08mE670kYsUjPf3959aafxUV7uua8pMLkbbtnh6esLLy8uHae6HQjdNg8fHR8pMLi71Pt39stBCCEZm0huklJjNZu+eaDLfy5uXyyVWqxVHkvQGIQR+/vz5x3bxH4XebDZYLpccQdI7mqbB8/Pzm7cBmO+lGuwzk75SFMWbqbD5VvK9v1OZkL7n0x8Kvf/JBkL6zqci9GKxQF3XHC0ySMzPWE/IYIUmhEITQqEJodCEUGhCoQmh0IRQaEJOyD/96qPJT5V/3AAAAABJRU5ErkJggg==", - phone: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFTUlEQVR4XuWaR6hlRRCGv4NxZBSMmBBzQt0oBkwoLlREEBEDCop5Y9yKggEEUQQFFYygOx1wIQOOGJDBBCYwLNSFmBFRcczOlX8853Hene7TVX26730PezPzblf8q7q7uk43AA0waf/V39P/12+x0fF286m/h2TNY072msa0Y9NMqXmLkrEyUvyh+QUA+lmgDIhF1OLIcqKJZkAKzdpOltAfC2rf9uQSsAgpCUYJxz32JAHwCPPS1nDWK3OuAHgBq0G/rAHojO82bW/0uxIgdcbvAjwKnAJsaojCT8D9wM3AegP9BhKv8V76oTpm0MYGVk/gVKsjPbqLG3iif6RmyKjOYlkCfxkjP23sk8BF1T0YqWCjQiggLxeAp4FzRtrnXhpefZYMWAds5RUMrAZOH+IrtY7HVK0WAL4FdsoA4E3gqAy+qiyhy1pK4QfAwRk79ZfA7inh8563ZMCLwEkZAIhlZQPrQidB6fTPBbIx1PqqAS7JVHA08IZlH7AAYqHp67LQWzLgJuC2FAARZdcA96V4vfMWx6wyFzJggOEsYFVsPmGM+M62GFPSKYu+/smRot8H+CRFFJn/GdgR+DOTvzqbZQmI5jtgh0xrTgBetewDIZramWEBQHY9C5xZC4BMuUXYrABcC9ybofEd4Ejg7wzembAkAWhT8ADgY6dFH7X1gyrJ7DHTJRBT1kAz+Q+A/Y2nQRHnLaiNBSiZAT0jVAuoJkgNAaXK8ZsUYen5HDA8ABwEfJgwem7O54LpAUA6dJwdF1G27JyXH14ALgCeCgDwOaC6/+vcSNTiSy0LLwCbAZ8FrrlqmqhiHLXj1wIhVYR59V4P3BNgegi4yiosFRmrnC6Nc5uvlsvQtC0rGvh0AmqX94dsOAJ422P8vGmDABiio0g/EKBLVn59HkMvojo+G+0BIecDv+kDiZw9JGDhLcCtOalpAH6ROi99CE3vJtiXoVveKwGh/wAnAmtzwlfCKY/eMQBIz4PAlQGFaogebjkVZu3wtK3JTTBh4NbAu8DeARBeA04GfvdEZNa0wQxwRuWYtkLcJGD8M8C5gJbFkhxjl0Dn1A3A3REPHwMu83wpniVSJTKg2/BVIp8fMV6t9StGZMLmgDbd9Q2sncAfpUBK7gEORVsCLwDHRnhWNXDhBH5zyBTpbg2smYBuoxq/AC8BLwNvAe8DepOQNUotgU759q1hofpANK8DarNbewW7tvL2S3j3PfAF8EMLkEB+Hng8tfRKAyA7d27rg1j36CvgvFSnGJDzinS0C2UI+R2pJk4NADoQ1kQqRc3rVJBxtwN6f7Aw2hNI9wyluNv5qRPsR2DbbpOKfaOs9Qhhu7adHmugyK73gMvbtdyBoAyS82rElhiDQa6VAZ3h2hgfAdRIiQ0F5uH2UZVolPYHlvC8lVEXAEPRJJLrgLuAULHUZeCvgDazPQo632V/VGTtDOgrVsWoWmGvmDUGMHOwGc6AbnbsIwaj8dsAdwJXlwQhobvuEsgJCXB8+5jysNgObQTUoj4NQEFlFoM6Gu0HlwJqoOjMzxoG29MAZGkux7Si7SncWPJRVQ+YpQNAIlpquethpfqNWiKlxtIBwOGRiiDVDuoljCmI9FlewMaPQcMaWsTspXc4HSKVun2B09oPrqoqPS9VngPOGARgpIFV2QNg66c9gUPbe4Zacaor9JJVwKwEtmiN0m1QjZjBm+dgP6BmtHNl5/IN1R2zjmJVfV7h0R2yNNJew2ZFP8u7wKx8culZBIA36l56WZbD0/doLP80OiWboi7klwrxhgyIoTqEdulIzAuQ//0e8C801gVQTIQNawAAAABJRU5ErkJggg==", - home: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEV0lEQVR4XuWZu5qMQRCG3wlWRIhEhCtA4AJYp8xu4hBwC04X4cElICFaMmcXIMAVINqElIhgPDXb/zw9vX93V/XfPQc6md2d6qqvvq6u/rp3hBsjYBz83Pe3zl4+/e/7/Pi2lp/7/FrmW2wlVrUxT+BW0DFsEwKWGbg1Uat91QrQBNeQrbGJxbLOnRJgnahJtqVNLbxVK6AWqJbEhb5nCFjFBErICk83tQ8rQVZ7NZBKhoJvFIKcI2gJdc/lcsuTIZXS051uVXuABrkLuDaGx8BlN+cpcA34o/FR06aXgMZVsA94BpwOEnkHXAR+1Uww52vex+AB4BVwLALsE3Ae+OF/33JB5rkFjgKvgSOZVfkKnAHks/mYFwHHgZeAVIBmSAVIJUhFqEeqUpJ3gRbl5gVcd3t+rzqTHUPpBdITpDfsGp3/odujWgVEgFwBHgFrxuQ7czkVrgNPCudnp+3SAdkZegM52++6y+Z0VsGKyTPFbeC+PrTesloFeCE7gXNDA8NAyANgKpg64N0jjiZWbCuZ5yZA73El3wkcs+/MhMGCqU/51gIpAuc5cMrq0FAF4lqa4gbw0xpncAUkgB50x1xM4NTA6vv4DJwLBVMqwdhWGdQDHCEicN4Ah2tnmfEnQuks8GVI3EEEACeAFzGBYyztkjyKBJMfSE1A2HVHsD7eudRMBE6trhwr40S3F8EkPeFtCYOlOuAq8HCAwDFjzVRTsWBSV4CHuFfgaDPqS6TSVpEiueM9sqggWQgwCRxV9DZGM4IpF0JLgAgcecG5lHO4JN+LYJI7xO8cHg0BxQInF1zzfay5KrbNe3ebnAgm9XW4A+UmJAWOAkQ2xxo+EkFEMMm7wveYTaoCkgKnFfAafgMf39wLU69gihEgAkdecPZnl7CxQQ1CnGS+AHwMRZCmB/SluOXER+P0Te5FlG2GCeauyyYCvNVYCQI09JkI8Bz+WwQU7LNiArpYBTFzC7prC+QmTI7HQiBFBBTG0uQhNmUEaL0Hdlsj2Mg1mGDOh9TDZiB4bgInjdiejWDTiGl6izXGoqQCLCvU2v8038FN0PAOUI2AyFZK+jdL4UxJlGyBagREznqL/3wFZBpW6xJV+/dwZgnoy2nwFjA0jxmAIZjgdzUBXvwsAX1YzQQ4oK0Btvaf3wK5HpC6C5Q0qfCYLbhrLO8x6AixlOhqV0CkelQEzGmL1d8CftkvaguE12FNg540wQKNXq1EI0fT1njnnx2Woaqw0KH5FHAOogQkyLQArEZwjsHqBCQCRgnoIc1EQK7Jpip8hgDDVjABdKQUVUBGMPl8W/zXb4K5Uovd1yOkqwgO5poJkPmlW0Du6odiSUeS2gbkTUAzkv4jknZ7rPc/uAI0STSxMWxTVfzSClA5r2lUO/EO28oQUJNM39dCCGi1mmFimvfBhRBQspqtSFsZAkpI08xZCAGtVjOVcCymiYBFANes4hAbEwFDAi3r3P+egL/+zwVTPgWxUAAAAABJRU5ErkJggg==", - people: - "data:image/png;base64,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", - project: - "data:image/png;base64,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", - work: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAD60lEQVR4Xu2bu4oUQRSGv8FLom8gvoCBl8xUQfGWeTdQH0FQBEVkDRQEQXwDDbzvZqIiamymKPgC4htoogsjNXYPPTVVXefUbWaWnWjZ/uuc/3x1urq2p3bAnH0GwDCDJ2kco6v20ZjqQrDHSeNICqsKQGKotMYFM1vOvpnJOWvZDAOqDpjXIlKAqABEJtoBHAR2A1uFMX4BX4B3wHfhmJFMu15MAMg8w5sGsDSEq8BGTRGtdgCrQ7gL3AL+SmNo6pjqAM3ggKHbwHWpaUGsG32aWN8jALGDewyZtv8KbHBpIvKtAru0t4MEfrY1wCrqEnBfYsCncUAyMR/knrBsAKxCHgIXrN/9BD4JoewFtlnaR8BF4fixLNRtpQAsA8ctsyvACWEB4/GdArzjQ0WG1g7n9ZSgQDYAHXMagELOyo2QOGoBAANYGVodlDhJ432DcwOhKNYl9XaAcKOS2kFi+3O5BgxgeZi2hsQBcLTUZuAKcKTZym4RRy4gbGdL8L7gd7OVfg3cA/70PW5918xjyATYWaAW8WMqQ+5vwFHgh29T5svxBjikNZBjYdLmFOg/AAdcL5t8a8A+4KOPmKAFSzxaBXX2Sg4Db22FD8A14I5LHFt8ivuUruqMNX9RLnkBWEnMtvN8K04xkFK4ZKzC2wvg9BQAT4DHwDmJgZBGYTAUKvX61E7SePPdAtkApLrOON65lV4H4CH8BDibkb73qWAutAtr4dtF1QFVAGgAZ4BTD4DErESjASTQlgUwg4IENf+XNN5UAJ4CZ8QZEoQVweUFUNF4At6JoXEAtIVq9bmqE8QZAXC9kJkY2wiq3QIC4yKJALyqA5659s0iJx2RwJQ2ZIpe1gFNhiwAUtxKxyog1+8AaRGldTGPQWcHdGm3PytmILrOTDlUHfAcONV17Fo9Z/FyJJoihAF0ipwCkJB4XoaGAXScBgFkasuacFQAzOujk7HuasJR5AoD6ARLAhALrvC4MICOgaoAXE+XAjAWA0CBwtuQfgCO++il4jBDQc+y0MJ1QNUBSQCEhmTV5VPpAdQspEKu+QKgLVirdzTOBIDuVn6ktRK4TmiomtFe2c3gGW+d+wFY1SUDUNFKFAu7Q/U+YLwVFgZPLKHKcPeXo57U5qvkm7Mu3uTPeOv0fz1ugTCHCczxmLX0GR2QCL4UbSo2uvfA/jVCQH1ExtS9HXhV+pBUBcDm1PqxmENSxps5Jne5OSa3B5jJMbmItcgck/vc3MbmmJzzny1M3HadqTAR85ViaiPU2tPS1upLYojxshAdEFOYFPRCAJAWE6NbBxCiVrL9QrlrXM/eAYsGrBdA7WJq5zMd9g+NYu1DLcGZ7wAAAABJRU5ErkJggg==", - money: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEgUlEQVR4XuWbv49NQRTHP5cWhQ67hRDR+Q+oET/KFQURJYmGkkRJIxHlhoLQ+RXU/AcqJESxfnQaWh7nvXv33XfvzJ0zM+e+u3Zvs9n3zsz5nu/5NTN3XsEGf4oNbj/rhAAxY5TkS2MC0oEkoTcYZEyAGtEicAM4VI54DVwGvoRnSCXZPW4IAhaAt8D2hrE/gAM6EsI0aSUMCVB75iGw5AH4CDilBR8nN5cIUJHwDdjhAf8d2BlnWJ60YQSogYTK9VwxzUFZKyo2GgGtyBiIAHUNqAS78lmV676cGIgAN5y+U0D6/QngMLC3LHBb1NXCLSiFMmLd4NM2cWImAd5I2AVcB84AmzMN9g33rBsqk0KBNpk2kwAntuPAfWBrT4bXp41YN6hrQBbsi8AtYFPWLGO/ND3oNCB73WAZAeL5J9OoyiqUWv7WDAGS8+9swj6KuIgUqHM61WEVAcvAOa3b8uXGBphsniIJcHpHWt3nHqt9ky9FG9RHUSQBTt9dAG53e7VYgdGVsn+LAWvmsSDgBXCkwyI55JB9voSs8aP3dNdySAGqqWjm/w/Avo5JZH8vxar2NBcr+YYojHCKWETAT6BreSv7+wHCXkfqHAmoA9KBS/VqzDgLAhQpUDxKPbb2G5NCYnufYEFAYhFMMSDGtzrZBgFJoBRtcHzcLcfebwA5E4x8knA5dLTnsYgA44VQ8QtGQtJH4BXwFFiJZEwtnkhAqy0uw6ivpfBv4B5wNS16Aku09tdJ4Sat7r3NZsgFeIxJ2u1p4LnavQrBxAhwzizb4ceTs4AkEhVw+QNcCi+9NVNNZCwJkPmMDkQ6DRASTlpFQiQBKs8eAx7o0kE1n4sNSYf9FjUhkgB1aElNkEPRsz1uk+UM4rwakUewLwIqddIipTbIbnFPeSxudVgq3WF3bovsmwCFg1ppIC9O5d7ATUBepXc9sgi7o1DiFSkJSM7FSN2VHp++mc/l/oDcI2iQMCPzEjgaCWJGvMcI0JAakimWYCT3CXyPbMSkGAYev56BCQgBH98V+Drt2K23PdINtnV8H1SQQUCd1ZAngzh8AjUCnCJDEpBslGLgaq0wSgG/yowIUNixKpIUIZ4iOKN3yCKYZFSDNeccEvYHp22wU49VG4zxpsg2QRWLMKru/fkuQMUqCckrFkJhJzlSIDyogcx37y9kQO37aJ0yVrkUds09/cyiBnTd+4s0shtsbbI+NkNJXhBMXff+IqJALTrkdtgJsgcCvM5YkwciyhRQe9gn2DgSS47YmfkNakCxAKPa5WcbYDWUUu3vAtemByCqzZSKcQMCxnqkE8j2VbaxgTYYJEg8LWn1CZCFzjP3nj84z1wJUCkrhWo7GqcRAafYeb9a0cSAt5ANXeCrEWDj5S7QHWz3ptxDwKo+q7RUOcuQgMqA5t8WjogIUNmQJTRXtkukG+UHE94USvjJTG/pmPtmKAlY5I+mknSo08KRAv0qLJHV1w3ykeL6ez+4hqgBau+0Be1J+M8I8HGXTsw6IKAyIdRd3eStAwIyMurf0L9kF/pBN2J/MgAAAABJRU5ErkJggg==", - interrogation: - "data:image/png;base64,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", - industry: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADwElEQVR4Xu2bLW8VURCGnyUhKIKuJXwmKFD9AyRNFQrTIAkoHAIFOCxBYkiobIJA9A/wD5oUAUGgCQrbJafde7PsPR8zc2bPbUlXtd2Zd955Z+bs2cPSAfeAj8AtgA7oww+jK/a30e3fwHPgfc6ugDGJaP9Vyz/YHy6St4flCLgG/ChhzCWEFVflVzDeAvZLAqTuq4hYg0T8PONWCeCYkwpqVgE8wRdYnpjRNa8igLkDKmKuVFuLpbXPtZdIAE1Aja2q7+VPOBWsSAANYjMBnAK5C5ATy4lzdN+jKdLY9lgA7UZkGswrsVIScyyqbh2gEUFjGxNlxb8C0CxAKWbpfqnaLUYpxDAJMGdyi8RDjHBN33GW+wAnEiYBaqpX4+u2BozEEwuQEtypEFFd1DElZCY2YgFqKidayBQBJHlKFd3qYD82Zwo+zU3FAuRaaFhgxB0gDtpADk8uYgEEed0HngK/gFfAT8dH2Q7wEPgOvJxFgArQC8AL4PVwOhe2qoc93IHjU6ea6xLwFng8AvlcwXWFS20HXAY+AA8iWV5dHLcZCW8Ae8DmBPvIiBcthEmAgcAN4BNwO1Hi68A3Y/lD0iH5IMLK1VyASMBtYBe4kknQKkBo93fAxRS2mwAdbPW6Q9GVeXcUIDbv0se5sdGGdwGhorl5jxHQdEBq3tsIIJCvNO9mATrY7GGvg43xhixXFGHBBGnJ3ga3O9jt8/NuFaA47+tcBDXzrhVAPO8L4HHVTR2QcEo9BovznntfH0in1oDqec8KoHyFjAmQnXeF+jEBks93Ba7/oeiof7PPdw1JYCqAad5brQG1855bA9TzXlq+l4VQViSGG0bgS2Y/X+KS26aGDviT2M8v/Sw5RH0sQMAz4ElmP68WYLRqP+rhTWo/bwZOfBBSgzf7bsubnLHY8U9pvMlp8SzJdB30nud4FhLaRD3t3fjWAsX8azElQrWIIeGxFpuQfFGAooGBugRTYiMJXcIRbYWrQCQsJzaleAbIpEvLWFW8S0RL91PBxX5iwyGS1r5KnQrns8KzIsW867kAie8GZlP8tAEnO2DdrdEqfqs4aym8JLljm6mhxHEtGc0QdPZcZw9QKYqKn8q4klgr9/8ip5okanxbFemfON6Eo3ieQTyxPBVf8Dqt/DxzzWKdC+B9Jlj92tms9ieBZl8D5szHo32jO0EP0mdld+khYpVeEgISGyuJObGtnNz8JMm5/8OIG3sjkCTpMXSw/wrcNMY7624HQYC7w3+fT32l6Z6ktkruBE4AD4Cdv6iQDeptbQw+AAAAAElFTkSuQmCC", - twitter: - "data:image/png;base64,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", - timezone: - "data:image/png;base64,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", - keywords: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFZElEQVR4XuWaW8xdQxTHf1sI0odGvKhLBA99cL+VFxUvhCASvNTlDQ+oy0s1rVtbIo3E9aFuDyQIEiFUkCB4EGmoaqWJCOKeCCEhVHBk7W/Oydn7zOxZa2bPOacxyZfvO99Zs9b6/2fNmpk1UzE3rQIGU/dGrM6ozQZwG6yRgPlwOjxiGv+aMkYCxk1rjA3lLbIheH3omNSdQcCMZk7PZueYAN+ID//XXzTMiIAggMOBI4EDgSXAfsBPwPfu52Pgqz6DoBABphE6FrgYuMCBj+H7CHgBeBaqnXlLZ0UhAmIY6u+XAnc54IEOISLr/8um4WlgLfCFyqJHaBYE7APcDVwF7Jnq+Fi/v4B7gTXA31Z9jgBTyFptjMlXS2Ag4bssQ0mo61vARcDPln1C4QhoEHsc8DJwUAHwQ5WfAWcD8nuc+OA2O0BA7xEhoLe4zJ6Bv2tpHKkV8Kf4I2Gy/zQI2Bd4BzgpA7m165vAWZqcUHgK1H4/BFxpRRCQlySnTZwboVoVWyYTCDBNj6MBWbf3yCBgF3AH8BKwA9jfJdHbgBM69MrqsBSqL8MkqPYBJsAtf6rNMDgnA/x3wJnAJx4dEgmy/F3dof9J4NIu+wkRoIZzKvCeWtovKBn91Q4dewHvA8cHZGSzJFvrnSEdJQm4B7g+g4B3geWK/ucDL3bI3QqsmwUBnwOHLRhOmkZC4I0KAg5wB6WQna3NXNH0pVQEHANsUzjfJbIK2KjQIbngj8jqcGjoFNkDAe3RrT9fBjwRd74zMp4CLonrqOf/h365kf5zgc0+mR4I8JqW0ZOTXk6TFUBOjL+Fwck3g1uA2yOGrgAeLUBAcATvA1bmoHd9H4lsoiTDfwDsPZlrGr4JSesLEBCEKOvvih4IEBUycjd4IkGWyMeU54v7geumScADUF0T24YaVgeZDm+7xCpZ/0TgNAPBsmv0ThNDDjAtZauBOw0OlhaV4svDBSNggpzLgcfTUZnI1pg5z9UiJmQNEaCxM5KRQ4okp3lpRwCyMZsaAWLoa+Dgcgyoo0ROkHIq9bbMCBg64XXmOVejK8eBTvMG4OZCBAQ9kJLUG8AinY9FpeTeQS5UWm1h0DIjwOu4gH8NWFwUVjCgG28Mngcu7PKjbwIc+GpxfA9QnB4pn8lO8dNpEWAc+SH3llch6sQnmB8Ero3R3FcEGMHH3Mr+XqpEp0O1KxaJfRCQAd40olpWvgFOBn7QdMglwAi+c9nU+BuTkTODFGHVxZgcAozgY77nRkO1BQZyxS4kqFsqAT2DV/vrE/zXHZnluPunX1OYXA8B0ZGYEfhxv0Z/S5nrJndhksSiNQJKgP8deAWQe4RDFCjkUCNl8GfcnYCiS1jEQkAJ8L+6S0xZtqRJgfMod4Uu74TkGuxHN69lbkty225H7Itq21Y4EXzndGqD9+Dq6h+dqiqeNBGQCL62/21gPf7HFU2HIx9x1gLWIrtQlOtiPge86JXSWGZ5XAtIK9eE2xUB8o7n9bRT3ciZHghQRXKykCPAy94mqKSYmPOMPYOA8vNfkHVFwCb3lC2R3RqAIyAtPBMNm7plEhAFlhEBJhzJwpkERO1mEBAjN/Z91LdaIJID6tecrg0NejcVZ8DAd4kpR1PVsVTnblsqh4T4RsiSA+RV9y9NsrKSZxofCb36mgItAhI8mVGXwgRYQnToiqVGmM9aBgENcP+nCPCOqicH+EbSEhH5o6vR4ImAkZMroFoeq6o6I/KAQR4qtdr8AfZ5qCFqN5PRE9+VA3YD0ONAtaCbcnNEQAhAGjDt6M0RAVqXU+TCJPZEQEoopgDpv0/XKtA6A/RvvKlRG+pWP9p6m5//A7jZIFJ7/vJkAAAAAElFTkSuQmCC", - company_type: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEqElEQVR4Xt1bS4pUMRQ9AYeCGxDbRQjiZyTuoGm6RQeOBBHFjQgiogMHgg66GxoX4EQEv7gJvxvQYYsleZVK5+V3Py/16lVn1P1ucu/Nyc39JCmD8doZAO8B/ANwEcCvSDRFb6CpATDr8bFfFC1lxGCyDZg9p8AmgFfRmG0Ae+5bjs4QEXbh6agEQKjLvPsOgF03cgswB9FqRHQcqKT4QZMHIJlgYwB48EUWwEONxzrpRU2QoivEluZz9L3BFjAnANwBZhcA2L9L7TSA8474KeMEKXrI9xAwH4DZUwB/5wTd4gkAKAp4AuC2YnlaDHkM4O4QRgIAimL+ADiZp4ag6VaImNxvAKfkADTdAlFglWtTGEEB5umDFlExOFGsn1moAaAmXIzxxBzqfBUAJDPMAWAzvp80FrFyVWVtpmgdbdwGzWHQYKdJDoAtYBHnJStbhSwMk7E50FhXNpp6MA8ALnsSqHUHwFwGcN+lvw8AfIygcfTua46+7gDEtYA4FRYCQFqUT5+4NlraRbO4xAQQ+AA/jEp1JfSMD+BNuKEH9QIJJzgWAMUwWVlg0yXQitZDe8UAGJOxQPacmElE1by4YdCeAt1zmj0EYAuisFF0oQ/gYVAAQLSfuBbA06jcywGQ6GZklWB/vHIL9LQcGYAEoQFzIH1A1RKuArgO4GZm0XL1/lALCM8LQl7PAbwE8EYjQIuenfxrdwqhkRuMEW23jKxuvD1pvgLgbdqhSTGUMLGo51Z+IBiS4YlOzwDcknCwfbUWYE9s7dF12PbdyS9Dh6Gr3mWRA+QfqbgiABgY1busEwB+tTeCet6eF/yI5kjRw+4VABbyeFYWWcDiX/KQh6FAsoRErm92gFlwcVK9GFFYQB6QMbeApNjJFVNMC5BtrwYAeGQpJ3hcAfCIKwHwAFIATdUChgLgx4e5/jptATYAss1ZverqbpaPWx7ACVu+DyMKcPj5TJDXOVhChgLJgm8A5oI7vBDkAVndhPLL82sQBdhboOLkOgWPgxPskplSpUdNkKIvIQqQ5wFFvyU0wY4PNUGKvgQAxNWgxAlJU2ESoNCyFFFgLVJhs+u2UMM8oOmBiMYCZNUZM1nQbMEsa2YUSFBspgBzwnG3ZvKZACRqahSg6n2KPgUn6HUIAKCqQXaxsw5RQANAXOx0/zMvT4sOTGOBNR8wSipMZII2DNZOhHo6tgZA7IoyCph9l86WmFEmTtGn6gNa1AJUpri8KDRmFBCbWWVAyy0g3v9Wr4ICcTGkmTNLn5YAaJQMAaDCoOdv3/nZNwCc9o54ZzglAFQ+gAKhYS1QFzWmDyi98MhpOBAA1jbq5A4AwGxGb3Mkx+L2HWD8RObS/B1hMVFaRRhc4JNclWmcIBXnqd8UNQZgbiUDLKB0PV00PyEAre8G875gCQCUnA55+UkB1NgC5uxGBIA88lopAGcBnCN+9BSugHVWix9ALb7bx8+PykGnuxMI3wl+PurbbRv7W4ACPeGqkN/jcQjgC4DvVvI1AC/qk+eGFW4/Kg0YhW5BuGE1/gbAZmkTaaOC+HVUaRNBuKdGQwBasWrFhwd3QVr8maMUpw9PqTF7/QeNcNKF4P/ZKwAAAABJRU5ErkJggg==", - email: - "data:image/png;base64,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", - odoo: - "data:image/png;base64,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", - foundation: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADyklEQVR4Xu2aWYoUQRCGvxbUM7ggqHgCPYgLLoj4LCiK3kNBUXwWEXGdi8wVXFE8g/NgS1ZXdVdnVVZE5NLVY9lPM12RsXz5R2ZWzsyY+Gc2Tv0u7Hyc0F7UkQCMVXsb/OLnLQEwniIKAOgt5jBwFTgPnAWO1Br4BewCO8A74LdeG3mgFQDQKeEa8BA4KhT3E3gAvNVDaCytMFb2JQEcAJ4Bt4wFuTF3gT/yOGvhXY8eAItD0fZ5RPFNhg7CHRmAsxDzGHRTSgFO9q/7I6sTvlKvC4oi1T47KQUANF9H7dVuwfus6Hlpgn/A7DTM9yTDlOeRChgkfhN4oZt930/H7w3gVUqB0thIAINuPwIXFhbx0qwjvAcuS0Xon3fzUQLQFNLYzL4BJzIddb8CJ/UF2i2VAEyOXc8eNI0IGs/2YO7WlGKfAQCaWffzqsZ4AGL8LP06X2MB0ELv7Bh1C2jHD9p9AU7pPMWBLtECH4CLuqRFK/d+4M4DxT4lALit62U446GZ6jy7vn6gipvlIXo9AKQg0vOqZz8BxxKn7TtwBsh4EIreBkOlBGE42b5JBHAJcGcK5UecmF4/JVqgCfQUuK3LvpP8E+CebmyaVeZtcC0Z9zrsClFCWI59XN8LKF6H04p3o0sqoMnOHWUfAceFdF3P39+E7Nt5bAKAi3eoPtO7K7FzrTdFdwu0C7MdmLvtM+OCp1NHRgBxi5CcZim/i8gZAciljGvRD3JCAPzOX1z2TBTACkYOAPMMFx893bGUrCLH+HVC4Vzs3KiLQ9Fr3kkKhtunAOJn3CdRA0hyOHkF+FBzAwmotPk6LZznPEkJDYi0jLrdKrRpWs451oCMCvCLqX5PzHEYUKLz3sNFSwFps1N7z5ijWV6GzWpl6rVAMoT9DiAKYuCNNQZmlhYwBVYugmqf/xWQrKGBv1Ea6apmTakAdVkD54BQKP+MEM675VxVnCbrDQHQpNLYqADkcVjgPyCNKrXUUeY+YEsU0Dfr3e9K0N0SAENKWIGYKADTZYN5cdxyBazXk6iAXjg1gOaZGWDgzsK2uGmtEwH0hpniy9DaLBdogWQVFb0TVNwHWAro2GZWadY1QGoBbSf23iu0j3EGRxbYwYOQzYmXXYEWMNRvNM0sryp6IQBJk5JzDRATKQTAOLVK8y1XQAW7RI5LPEbnQwcfJfJ0M2POwwEjnHUg5Ja8hCgi57DLljOxt0P//v6vAJDAB59PDYBGKdEwlQPbL1ppO2/dAn5RYxVZKm7Yr3ENUE5QZVaqGEsOsm3WFVUOt30WfwGGoL9B4+zGTQAAAABJRU5ErkJggg==", - location: - "data:image/png;base64,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", - search: - "data:image/png;base64,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", - website: - "data:image/png;base64,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", - no_result: - "data:image/png;base64,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", - save_in_odoo: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADGklEQVR4XuWa7VnDMAyElSVgL7ZgIrZgL1gCniYNzYcd3Ulnpy392cjS6dU5X+1gD/cZzOxHpvqS7Qk/OKSTAeBCy1PKrjc7GQBjvnyz62pTviQAtSgGSC0W1ZQGgBbKNKWusc9XcYC6cAZCaa1OX3ILqBuL5osDEQNghbDxW0DZ9bKrQF7I8ewV+cs5xA5ALdyuoWmm+J1iAgBXCEWjjfM1EgD8ZKT4NzP7uK55N7NPcr0knAAgqbdM8mVmL9cvvs2GV8a6mBp/aCQAPyEmbIxabNQx71WLtIYrhwTg5mMCNmeqYcAdoINEAtAVLpyqC1qk9YrDIQEwA/Zih5/NxDtpWUPtVLQIY3uxJrTonCE+8VDCEgCO3HWkYX+MoO5Zmj5+AIACSRS+CwB/Iho5gOBhsochpigKoJUL1lrFW4ASDTjAy+cd9weTAJAuDgDwG8hGJABkS++eWU/R0qjo0h0lp4zfJW6FI/DLjm0EABIo2ALpbRj9XQAtPPMtvqERAIjeEN3WbRxQa6xqY2jUlSACAAoclXPLtwAAF5nf5MwvM9CqizikFhKzKv1tZsSbpSl/5BzwZTa84M/uAT6hJWNDFwivzPIggL9XWUytHrFdACy2AG3TlhDILXCRMsxb4JRGiJNgO26RLaBS0wnA8XBBAFGHHK7rBGCyeu2kDQJQDX2VpyOAun7wRuhZAOydEHRA5M5wt4ZwQGQLYmuCACSOcABgDcSVxO8ErzU9gd7x7fsA5pehbdsRR045QAe4zUQGQWyBSHpsDQgAS3ZjCv1BofLjKFMrH9sAACzq0Rwg3wadAMwzLrvywAHyhrfWAADMGlpoSV8FYKvXAgEA6RpugkbnAGhiDQFA9efLIB7s4oQDxpqPeBWQwtr8SYp7lQWzdgIbbYFl1So04m9yUvArJB0AqGYVzXMMDwSwTNJuGtEWM+sAAM/VcOkxKgMwufb4Lo1Pzg8LcMAsg0/ON8Cs0OipANAkZ9o5K5ZwgELi/YHtDAC6P6iQbgPvRAAZGAo3TjnuBEC0oZorcLc8OAAGXBnKPwJQhvUL3euvQqZrBMEAAAAASUVORK5CYII=", - open_in_odoo: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFM0lEQVR4XuWbPaseRRTHf1t4xfiKCEpqIY2ilRZqp6gkJmCuoNgKKmjlF8gnsBRF7ASFqGBU0NakCKkUbbTQVkEURA1qsXL27u6dZ3Zmz5mX3b3Bre599rz9/+fM6840/M+f5mjil7DaVUKzEHAMuBe4E9g7iKo4wD+AK8CvYZQT+7cDDwA3FbAijH4HfOvamCPgBHAOOAPcUAm46/s34DRwSQH1CHABuM0GXk3O68Brg60YAS8AbwDX2ZxapSbBfQ3cr2h/Bdxn9WCUk4ruKiFEgIB/22ioVOx34FbFiMjcXOrI098HPgwRIGX/Tf3MR8P/CDirgJNAn65MwDPAByEC3gOeTXemtjvf5J/AF8CLwC+KvzuAt4DHgRt3ZZP9DupBAqS3l2D6Dm90Jb9JoBKwBH6Un5OAVNWeMlIFCXgQuBxAJyUqRis+2ZmbGYKbk9D24NVQfQK6gGRI+jigKmPvNZR5FbwIBCtAesbzAXXLZCmitsRsblI9TtlPwvgbuD4Q3BoEmDJRKqSBl+b7aQUCStpsKcao/ql+LO+n5ztykvmz0Hx2sKiYVOJSFTBHlIVEi0wH1AAeAS9PqB3mEqAFqL1PqYaorRTwNQhomrWWpjo9zSloZWY4U/Zj5gdzNStAD3FBiT7zzV4gIf/00+Wh7N0wtiQgVMZZzeSpfu7uZH60EwC/48MhYPw9tw9YML+j6QlBAfCjsAa+Rh8QXDKvwYT48MDvkDNX9n18nXxJE+gMBGaCWWWcSlpi5qPmZfvNW0XyJPC5aLjgIlPhTUYBB/yEbCfzpkT4+wmyFXf3sB9pIKBWEzB3iFrmY9PbWAkM+wmPAj8Cr7j7kCsSMNcCRnJkRSoLstA4L5lPBa82uxUJUMt1QfBx35UJcB2pgN3snIbmPLSVMm/3XUiA3dFMLWZmPuY7LaZCAtQmpglkgtfM2t8rBMTmAXYHM5La9FaG5U8O9M0jiOfO15va8Qjo2qEfc2AiZCFgthTlO+P3wC0BS9Lb70PTg19iW+2Q1MwmMKhlByffHuQbhP/04IfMW4guk8kkoMwp8DBw0bNSCD5accNE6DHgB+BVaC4Olb4wAbPN4F3g+Z4E+f4nf4c2MEvZzpkK7wSe2QeY4n4IOA58Cfxs0kgXKl0M1VoLpEdeSaNkOTyOQZViWdPMWMVtYBh1d4RGwQpfhqyzMKucS1juXCBrW9zaB+QAWaoKorF4e4Livz3Ke4KxmV82cal9wITJJUeBbFQJJ9VSCZjE5BCQWvKuvEXXIqP1C5P4axIQWiakTIdTARYUyKHqkgRoAW4C2A9qaQJyQOboaGRH33sEdL63GAWyx/EE5EFiewJ23q1JwBrZnvVh+TbYGagwE0xIlnrguhpxS/cBKaA3ka1FQLWMrM1CLQJqxL0WiTt+rAQ0+9BWPCdYg7AqNqwEyE5szYOSJcFrleK/t44CY0zBYfBaPiobY1vOBciWmP+cgeaCbIy6K73Ew9JzrGsZLKmOJF35mtzdC/AewSp3lnYImDsu/1J/omKjQ9MxQqNNQTL/BPAmINvi7nO1/+0vnwD5P/PCRFJWthZ+H3huCMLf7Fj4ykxu07DqqXL/9lcA5fpc9/gEyG/GS1OqMyXTpfpZhSTY3nE1QwQMJCxwbS4r6BmlIfzYpsxIsmT+ZR98rAIGhyegOQetc3GyNoAa9mZHo6vQyi0YuQA6lr2lAlyZY9DcA+1dhstIAUSblLp8aP2pvxzZ9faHz248sSZQIzURG5sQEsWzIAFHC2iMgf8APqqFUJemp7AAAAAASUVORK5CYII=", + person: "data:image/png;base64,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", + odoo: "data:image/png;base64,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", email_in_odoo: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAE20lEQVR4XuWaTagWVRjHf6MF6iJa5MWd6E6MdmK4FAraqSh+gkYkUgiCmNSmIEUXoiKCoiKR+LESFBdugkBoE0jQQkgIBBFRESMkimjiuXPGmTnvmZnnfLzvnes9cLncO8/H//mf55zzP8NkzPGRJalfouRA+TtJ0MkEiSdgFhZdp7adgFlemLZ/4jtAm0nsBkiqngAX+AEW5DMf5Zz4+YQWHernh87bWtcBAwXvXa3DQUrbAJwFFqcIOItiPAM+FQKezMHiy3l6qm9uveVkmiARnkRhhnnEaWZCQ8BtYKdZKpqYozaaLD6Ru+JVz5YA3wMfNEJbvlpoj4EdwA8+OGfQ9kPgEjDVJ75cBMipcBF42ypArjtHgK+Bf53Faen0YcYv5pvAt8BBR4rnwMfADfsuIIXZ/1sKXAHWOAL9BGwj48H0DTBm9BXX97yZexkZV8lZPQIp4w4524CH5t76yqRN4IrBG8A3wFdmi6vHfQF8AlyPqT+h7ybgAvCWFfM/0xGHal3bmLYuAspYa4HLgGwq9jgD7Af+mn5QRvObuRgeFgEngN2Otf4I2A786FjKqg6o+00B3wEfOdD+CmwG7sVUEuD7LnANWOnwvWXWu6g9e3h3QBlgHhn7yDkKyGZTH9IBe83mGbsz9HEh/bUbOEnGAmsf+gf4AjjVWOvNjmwhoDLquyCtMswvdyCVGdlDxh+tG2To8ij85GQ6D2x05L4PbAHu9jBYEGBwaPYAVzzZbOQCtdXx8HcD5Oe+qfR8/r4hXk4oe8iZ/znwZ2MvcJMdvATspBJ+F3AakM2oPkQnfAkcB2QnjhnzgAPAYWC+Fegl8JlRfNocyQgoE64wM/OeYyd2y2j9MnDL2SLzL2bz/U1bubELJKAb9ELgmJkNG89jMnaQe8voSs6OViibnGx2f3sWL+aBBOgyrW+V0RlHyDtkdBV/VM5W5Jdy9qYOjtNqrARIxn4ZDQ9aClgGXAWHnIU70xK8kLMxY+wECLgQGe0jZwdPQAlQI6OlwQs5a4+MR+ROOTtrCBDBMUVuyehqTUs7yo8cdfbokrN+BNhKsPb36N6ekUVfc0fhSYH7wMjotktT8f9CzmacIh8DkqSngP48LynpktFio5Wzfh3QtJ7IJtgFsE1GV3K27u1Pch85DgKaSfouQ30JNM9LGS03S5HK8gpLXmBWI33hZewZ7wANQW6bNKQMnIA0RXaRPHACwvtD61kRkLk/WZCD0DostLHHZJcWj7IDYpPG+guXKWKMzomSgDFNptdOXz+PXG8abYI0hInMq8VyvxLTBJoEQWWOFHia8vsVejcBvsXVo6QF64ukae/GErgEUhQWV06ct7oDxnMZSgU+Lk7hHdgBoamH1zmBBAyvkNApCSQgNN2Q/IpJTEhAaFeE+vWRqYubkIA+QJN6rit8wNfhtgL8CtPS/Rp2gLZ09TEYynyon6YAbex+VdrbARo4k7PRFq5B5IjlDp8yqQvYuONryDA2AuUp8I7aZ0Dg1ZjbDZ9IOeuAcxP/YjyWSI1/t418JT/9ufycHnEEaGYhlN6Y2FpdYV6KhkL094spyj9b06Mld1wHxIJK7W8X2fe34xvg1JCGGa9GTHcHzGTLxlCnwW1sJrMEFK0YU6+3r7oDulRcSd24vwz2rs7P4X9yK0qXsIoynwAAAABJRU5ErkJggg==", email_logged: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFcUlEQVR4XuWaX8hnQxjHP7MoXMgFb+62dSesK5FLRblDxK4tJJs/qS2h5QKtbV0IbURI/sSqLSIXbpTacqMQSVFqS9tmJZJEXkfPe+a855z5zZx5Zuac9z0/O/X29vud5+93nnnmO3N+hpN8mFHyFysV0PwfxejGGCkHYAmT7kIbBmDJE9PWT3kFaD2J3AxB1QPgC36GCaXMRzMnaTq5SefqpUWXLK2rgJkGn5ytR0FSux54ETh3DINLZONn4E4B4KeTMPlmnk7oi1svuTFFMFI8I5mZ5xanmQkNAB8Bt9qlorG5KKPxkmJ5yF777DzgDeCqnmlHVxvacWAX8HFKnJsoezXwJrASI18+AGRXeBU420lAjjsHgEeBf7zJaeFMQSbN5mnAPuAhj4tfgNuB992zgCTmfrcVeBu4wmPoU2AnhqNrJ8CSEUsu9rzvexuGQ1RcthCS4QgVO4Ef7bl1XSREcEXgVOAx4GHb4rp2fwXuAN4tyX9E3RuBV4CzHJv/2op4olO1vWkbAqCxdSXwFiBNxR0vAPcDf649aKylzVwJDmcCzwC7PWv9GHAL8IlnKasqoKu3ArwGXOOJ9mvgJuDbkkwydC8C3gEu9Oh+aNe7sD13JFdAY2ALhj1UPAlIs+kOqYD7bPMs7QwxLKS+dgPPYjjd6UN/Aw8CB3trvV+RAQBaodgB6VKL/PmeSGVG7sLwW7BB5i6PWk92ppeBGzy+vwduBj6PIFgDYOPQ9ACfPWk2coDa4Xn4gw3ks9hUJj6/3AIvO5Q7ZM+/F/i91wv8YGcvAdepmL8NeA6QZtQdwhP2Ak8D0olLxhbgAWA/cIpj6A/gHsv4tD5GA6BxeIGdme2eTuyn0fpl4KeztecvbfP9Tpu5lcsEYDjoM4Cn7Gy48RzHsIsqmUa3dHYxQ2ly0uz+SkxexDMB0Hm6LkijDQeoBmh0a3+RzrbgN3T2A104XqlJARCPcRoNRwMJbAMOgYfOwpE1Cl7T2ZIxOQASXA6NTqGzswegCVBDo6XAazrrDsMxKi+dXRoAhHCsUDk0ul3TUo7yJ1udO4bobBoALhPsfF7s7QZTfMxdDE8S3AOWRocOTfX3NZ01HKSaIBIntlwmWJvR7+eN2yEaLTJaOptWAQPSZQDkhRGi0S2d7dpNBzkpqtp830nsMJTkICDc0Gg5WQpVlissucBsx8SJN442owLyASwDZTvw1eJG41BDz/VXfsA5mmVJhjzKjfbr9npMrvnWx3JVQA6g9XW+JN9stY/bu861Ju4HYJpZyAs/b7dpfLnJy/erwCXANyHTdRMsBaFUvzyGUPJyiXN4Hk0wBlJ3P/LdNLr67edw8obDXXr1f1wC/uQNO6jamR+3ArowxmZV0wnybfSTr+3Imu+Vfd4ukB+UJuUhGfF8sW8Pd5SG13wg/sWvpzkM5YIg8e3DsNcei+Xa3TdUDc+nOD0PyK+cOnl4xAYulFledbkgZCc/vA1qOGPuvOr0hLp+4dwVuCAUJZ8GgC7osaXkTY+8mO1emDQgyLVbl+E1JCfY8HzcpmwJ5JZ3mp4PBB/QqwS2uliH9f1AYuyZLLU3DIJhlSq81c0fgFBF9L8PgTC4z8eQL1sCMevjP3dBKEo+3ATT1mibZq6eBqjWtrwaf97eJt8NvNdTT2SlU4YcS6t71AnLjhmhx5bf/JhOw/RLB0AMxsLnEsQJ4By1nfHAmQ0A1wIvbfgvxkvPHJqJUMjMYhbU1TeBYBkACoSzYy6xreMV65ei2TEmK5YklezMUQj4LquA0qDG1neTjH3e9JcgYwOgtdcBZrgCNrNktcmEecawBZvbxiwBRSmW5Jusq66AIXQb6Kb+ZXBydmkK/wF/5W94wdW8qQAAAABJRU5ErkJggg==", - reload: - "data:image/png;base64,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", - close: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADhElEQVR4Xu2bS24UMRCGf+cOcC82SEgjWLLhOGxYJoqExIZ7wR0yyN2ebne3H/V094LZZWJX/fVV+RknoPgJAO7lX5l96+mDbju2PPFDF1oXqbORAOiM2BEcr+NiADQoZfBOHgJ5wLIANMhiXwGAc4TOgdr7FgCQMG8Jtw+Ko3AQAI6ksW0rAM7NykgE/yvgSNt6vNbsXaPKHCvgGgFuE3zUJAHwAcCPZPgbgF+0MesG5COA72mZ/Arcf7f1bHVIAPwB8C45eQPwBcArbY02h3AD8AzgKen5C+A9LSHrzqLSvio2BxD7ZhA4rtVt98FHg5YASgInKLHkfmbUz4BwA8IzcH9k/qHhE31IdiugmaES/VGVYOpbMgc8yOyETNXhDSHzuQxRgc91eGsARBCG2ehOkC6+GgC6giqVMH0tyMqoISdaBrswCtkJb8A9LZGaGT/cgHu+1BUAd/XtBHSHANfgZD9BCE/Zhaq2EgzLvpwE7Rywt2op2MhW+2xjDcBqYmwEH14tr+wDbQtb3RTVBrcmewbzCX0Ie1SAZnVw2lvUgWQA6NQYczqnEjhtiRL6MXlWAKcSHIKnMRIA6FMtzCu1w0vcJ8RPZ52nBSNpJQAgcZPvE5aze/zy8RfYXId278AS6AigWCmlUs8FV4Jvr+XbZZFSoatLRwDVREQIL0AIs/BFcPzh83y7NO4jBMCjvAsnATj8Wc4JQFsrAYAqWMpWObWZ/Awd/9ExAYBZOZbGf2cSlMKn9zMAQHLWuskZuAwetRoA6FYIZZNDaEMC3RWzb+AEYBFLCGyRxGnLDnTuMLYCJAFJ+ghhrEgKBtTlpgmE0Jejb9gyKCr7WvacjsW5u1mv9RxAyB65Yi1tVZ0yAHTLTnkpSj47mG6WGACamfPMlqdtkyHgKjBhd/OhrQA3YYV6c/ElAGA625NnRK9KEACYpLSuuArn+e4EygHROlew7xIkAJQPJExg7CBEftNResgDicYTGZPg8vuBVmWU5gTvJzKTnsojqeMui1PXwrZ7CEMACJ/JCUNsdpsqjvlMbmtQMgcYRmI5ZGSyTgYgE709yOr+ucsQwPnZlOBsALhqQLa6DCtAwv/8PoMA2GbtiI1qf+ydoCK91IAULrLtFsHKOEEEMY0mfJ2DhoAuLPveK6gLAOhlrfd7HR7FKzGd4/N6b4EqK8A3O/wnfDU9dZ3/AFrlSVG2PjV3AAAAAElFTkSuQmCC", - check: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADiUlEQVR4XuWZP27VQBDGP+cCIFG9MhXnoOAeFJHSUVAHIQQ1BV2kFNyDIudIRZkKCS6A0b7Yz2t7d+fv7rMh7dudme8333jXTgfzXwegN0c5V4BQ/X/9d0YAJee0c1UGQLsCzm0/hgOsMFL7czGtueQ4GQDGoO2Lk8uR7xAAkAdP79jG7Mdt9VK2yzgCB7TqnHTUlutldRIApMV4mUAiSpJzrUfgAFsiyW77Wn7jKgGQSOAXK4laXjvl3AAAP1maSAUA5+hMkGDK+wLAOwCXAL4D+Ea9qQ0ATEk14J33HOs/ALgH8DIK/hnA+1Kyf2UEUuKD7t8AnjcGYHGTam9OvBXAdl5YCh0siQ/bvEZA8kbnPN7JcNmZj1ffAbgG8MdxBFQWrUGE6jxL/Hjm1CiwUky/zgveBjfT9XBHOAD98qgT2z7esKdjcGH7VWPYtlcCGFlpPoFTLqJ+h9PMN3sbXDLWQDvFcBKffiwpR4DsmNdDkCG+uwb64lFnPAabiV3WWRB/7Nsd0JPnPNUJpgOaQ2B0nr7kUOK3eg/IiD81QfW0z8HoGO/fIfMbAK8B/ADwBcBPDt3ymuT1Ojrnk65zFZ9xwCrxJwA3kZgHAK8APNohzCJUtH3+XYbzDPgF4NlCrDeEKpccToO0AEJsLwjOnZc9sDkAliMQge0egN4yDpH4FjOvuwleALgFcPWkfHUlZjghKc658xzDr9dwHBB2LSCMIMYrrtgJmxAvvQckIMyIMpxwXH8Aunugj7/exoHcjzrjVXi2vQDhaPMCBP+PGdNI6l+2uCMQU9A6wcH2sic856nAuQmm4kghOIjnyJGv0ThgzMKFENYzP2PFHdZ0W75nAKBOTEEI/5kJf8ub5Aix6QMv5Q+LA4Z43QXQR/cEtg0bis87wwHA8TTNQMgmNohfxpTbPm6REcAsOTUOCtvbxHG8aASwSkFBMHSeI0e+xhvAcG3uboH+av6xpXP5hleWKHdMBEC+uVBMcMJHAG+HNV8BfHj6R6VrHqLldC6FA+igciPmdtTKNcVVAPCTt4VIOwFQywnT1w3nZtQr2LnQ0+cdY1wPwR4x5DIajoBWoHYfD4YzAKpY6nde0Z6rnAF4lkbF8oGpBOCTfC2xVtw8TCUAqjs1fq8DZ0cAakCtdg+oU6w96tpFO3aAz0jsGEDKD3IolQHIC7LbnIowr6kygFDMFiFMkP4CPzr8QVK5g/EAAAAASUVORK5CYII=", - no_company: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAIAAACyr5FlAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAC0AAAAtAAUIIfWAABVF0lEQVR42u296ZJcx3YeulbmnmruGWjMIEACpEyGrSOFriIU4Sfwg/o+wHXYf/XDDlvSGRhHPOKIiQS60UPNtafMvD++vVdl7aoGSbAJEBYyeHCqa9w788u1vjUmO+fo/Xg/Ng31ti/g/fjtjvfgeD8uHO/B8X5cON6D4/24cLwHx/tx4XgPjvfjwvEeHO/HheM9ON6PC8d7cLwfF4734Hg/LhzvwfF+XDjeg+P9uHC8B8f7ceEI3tYPIxjsnGNm5upJY5y1tizLIAjCUK99xMo7XzmY6Ce97zcw7E9+51vYxvy2Qvb4WX+x/WecI2udc04ppRQ5h+cdkavfjAe8CS7vwXE54+2AQ35zfWnrl1z92DGzc0zklOL6Pc5a55xVwM778euMt6BWaoUifzoAFEKAGQ/YWjKmNMYwqyDQayBYSpH341cab1RyeICQB85aS2SJOAwrpOZ5vlhkRNTvd4GYPC+01kqxSBRmrvnKu6JB3r3x5sCxKiqIiKy1wjqdpclkenp6Nh5PRqPh0dFRmqYHBwe3bt06ODjY3dsiosUigwhRSr2HxBsYbxocjUU9Pjo9OjqazxYnpyfn5+eTySTPc2vtYrHIskxrzczb29v37t3769/9pytX9oxxzPyeZryZ8UvBAdkO3rBYLMIwjKIozwvnKAgCrdl7JxVFmabpaDQ6PT09OTmZTiej4WSxyIwxZVkYY4mImYuiMMY454wxeZ4bY7TW7Xayt7977969jz766Pr1aw2QWUtEBLuGiJjJGMPMYCp5nmuttdY//b4ufVhrfdoEfdq4JOfIOWpAHwuU53kYhvgGYwwR4bP4HtGwl0vPL0FyWGuxfkSklMKF4qWytLPZbDKZZFl2eno6nU6n0+l4PF4sFmVZOueYNLOimpZaa4moLEtjDOwRGfP5PMsXSRIPBoMbN27cu3fv5s2be7u7URwSUVEYZtaKrXNZlsVxJPNurS2KQmb2bQ2fdHtT57l5HAi2KwqjtdJ6ebVlaesN6LSuuLnMs7+CgOBl8bBLkBzwRuBPY0xRFKPRZDabjcdjaIr5fF4UBS7aesM5R6SZ2DlnLdDgiGCmVrgwxmBvaK2tNbPZbLFYEFG3242i6MaNG59++unt2zf6gx4RWUPEzphSKaW1Fqm2vkff/CiKgoh825uZnSOqPDqkFCv/Gh0VRVkURVnasiy7vVYURZhwCEW5QVkIY0wQXKb5eQmSYzqdKqXm8/n5+fnZ2dnp6el8vjDG5nlelqVSCrqmKArnHHawtTbP8yIviRSzcs7WrguHm8Qzxlhrja1fUKraT3mez+fz+XxeliaOo729/YcPH3zyySf7BzutpOUcYZazLIui6K2bM77MgLrEn0opwuIykSNjyJjSOTuZThfz/OjoxfPnz09PT+fz+WK++Ow/fnrz5rVr1671+318J+YW+00wt1E+vfZ4fXAAtt9///0f/vAHpdRsNoMuzPM8CEKtA3xzteCOmCt0W2uJWGsVBGFZWGOqt9WyhHzOIWJGa2ZmaJzl5BLleT6dTheLRRTF9+7d+0//6T/euHltMOi1262yLEUIv11kEBE0JiZNxJgpnTEmTbPxeHp2dnZ2djafz3/44YfFYpHneZZluFnFPE+nrVZ87dq1u3fv3rlzZ39/v9PpMLO1Ls+zIAiCIMCWC8PwssTkLwXHP/7jP/63//b/bW1tb21t7e7uaq1rukBlWWK9AXBcsbXWWOOsI3LklHPkHNfOciuSA+DwNIsTr5c4zchTanmej8djY0yv13348cN/+If/58qVK2EY+pf65mHhbw9YXpiB+Xw+HA7ni3Q8nM5mi/Pz89HofDabQ7haawX6oORlWRA7IlMURVEU7Vbr9p07t27dun///u7ubpIk+Fr83CUq0F+qouI4WSwyY87G48nJyWm73T48vGpKInZBEGqlHJExxhpjSktMzKxV4CqaQdYaa4mIrTUO8CDHTIHWtgKEAiaMKZ0lTLGxpiiKPM+10kora22v19va2lJKdbvdQb+/WKSQMVEUNejbGxsNB91kMpnNZsPh8PT0dDgczmazojB5VmJ/+goX4MBnIfmsjRbpXCnWQaCUns7nf/r88z/96fN+v394ePjw4cOHDx/u7e0CIg2z6Bfdws+RHOKxZnyQmf/X//w///W//r9RFCuliFmxUkpdvXql02lHURxFITMD/uBKZWmMKYhYKaWVLp01piTHthIblhwbY6yzipV11hpblEVZluSco0rRhGHYSlpxHPf6vTiK8yLHdChWnU6n02kHAbdayYMHD1qt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", + reload: "data:image/png;base64,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", + close: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADhElEQVR4Xu2bS24UMRCGf+cOcC82SEgjWLLhOGxYJoqExIZ7wR0yyN2ebne3H/V094LZZWJX/fVV+RknoPgJAO7lX5l96+mDbju2PPFDF1oXqbORAOiM2BEcr+NiADQoZfBOHgJ5wLIANMhiXwGAc4TOgdr7FgCQMG8Jtw+Ko3AQAI6ksW0rAM7NykgE/yvgSNt6vNbsXaPKHCvgGgFuE3zUJAHwAcCPZPgbgF+0MesG5COA72mZ/Arcf7f1bHVIAPwB8C45eQPwBcArbY02h3AD8AzgKen5C+A9LSHrzqLSvio2BxD7ZhA4rtVt98FHg5YASgInKLHkfmbUz4BwA8IzcH9k/qHhE31IdiugmaES/VGVYOpbMgc8yOyETNXhDSHzuQxRgc91eGsARBCG2ehOkC6+GgC6giqVMH0tyMqoISdaBrswCtkJb8A9LZGaGT/cgHu+1BUAd/XtBHSHANfgZD9BCE/Zhaq2EgzLvpwE7Rywt2op2MhW+2xjDcBqYmwEH14tr+wDbQtb3RTVBrcmewbzCX0Ie1SAZnVw2lvUgWQA6NQYczqnEjhtiRL6MXlWAKcSHIKnMRIA6FMtzCu1w0vcJ8RPZ52nBSNpJQAgcZPvE5aze/zy8RfYXId278AS6AigWCmlUs8FV4Jvr+XbZZFSoatLRwDVREQIL0AIs/BFcPzh83y7NO4jBMCjvAsnATj8Wc4JQFsrAYAqWMpWObWZ/Awd/9ExAYBZOZbGf2cSlMKn9zMAQHLWuskZuAwetRoA6FYIZZNDaEMC3RWzb+AEYBFLCGyRxGnLDnTuMLYCJAFJ+ghhrEgKBtTlpgmE0Jejb9gyKCr7WvacjsW5u1mv9RxAyB65Yi1tVZ0yAHTLTnkpSj47mG6WGACamfPMlqdtkyHgKjBhd/OhrQA3YYV6c/ElAGA625NnRK9KEACYpLSuuArn+e4EygHROlew7xIkAJQPJExg7CBEftNResgDicYTGZPg8vuBVmWU5gTvJzKTnsojqeMui1PXwrZ7CEMACJ/JCUNsdpsqjvlMbmtQMgcYRmI5ZGSyTgYgE709yOr+ucsQwPnZlOBsALhqQLa6DCtAwv/8PoMA2GbtiI1qf+ydoCK91IAULrLtFsHKOEEEMY0mfJ2DhoAuLPveK6gLAOhlrfd7HR7FKzGd4/N6b4EqK8A3O/wnfDU9dZ3/AFrlSVG2PjV3AAAAAElFTkSuQmCC", empty_folder: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjgwIiB2aWV3Qm94PSItNjAgLTYwIDIzMCAxOTAiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImVtcHR5X3N0YXRlX2ZvbGRlcl9uZXV0cmFsLWEiIGQ9Ik04LjE1MTMzODUzLDIuMDMyNjY0OTQgQzE1LjExODE2NDYsMi4wNzEwMzk0MiAyMC4yNDU3NTIyLDIuMDkwMjI2NjYgMjMuNTM0MTAxMywyLjA5MDIyNjY2IEMyOS4yODgwNzI3LDIuNjcyNDYzMjYgMzEuNjkzNDAyNyw3LjY5OTU5MzA3IDMzLjMxMTgxMTMsNy44MDI2NjE2OCBDMzQuMzMxOTc5Niw3Ljg2NzYzMTI3IDU1Ljk5MzE3NDcsNy44NzExNzAyMiA5OC4yOTUzOTY1LDcuODEzMjc4NTMgTDk4LjI5NTM5NjQsNy44MTMyNzM4MyBDMTAyLjUyMDI1Nyw3LjgwNzQ5MiAxMDYuMDIxMzE0LDExLjA4NzkzNTEgMTA2LjI5MDEzOCwxNS4zMDQyMzgyIEwxMDkuODcyNTA3LDcxLjQ5MDk2NzUgTDEwOS44NzI1MDcsNzEuNDkwOTY3NSBDMTEwLjE1MzYzOCw3NS45MDAyOTIzIDEwNi44MDcwNzUsNzkuNzAyNjU4IDEwMi4zOTc3NSw3OS45ODM3ODg5IEMxMDIuMjI4Mjg4LDc5Ljk5NDU5MzYgMTAyLjA1ODUyNCw4MCAxMDEuODg4NzE4LDgwIEwxMy41OTE0MTE2LDgwIEwxMy41OTE0MTE2LDgwIEM5LjQ0NjQ1MzIyLDgwIDUuOTg3OTU5NzQsNzYuODM0MDY2NiA1LjYyMjU1Nzk1LDcyLjcwNTI0NTggTDAuMTM4NDIwMjA0LDEwLjczNzc4MzYgTDAuMTM4NDI1OTAxLDEwLjczNzc4MzEgQy0wLjI1MTA3MDMwOCw2LjMzNjcwOTk0IDMuMDAwOTU1MzgsMi40NTMxODYxMiA3LjQwMjAyODU3LDIuMDYzNjg5OTEgQzcuNjUxMTc2MjIsMi4wNDE2NDAyOCA3LjkwMTIyMDg4LDIuMDMxMjg3MjUgOC4xNTEzMzg1MywyLjAzMjY2NDk0IFoiLz4KICAgIDwvZGVmcz4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMykiPgogICAgICAgIDxwYXRoIGZpbGw9IiNCM0JDQzciIGQ9Ik0yMC4xMDYxOTQ3LDUuMzE4ODg3NjFlLTE1IEwxMDUuMDA4NTUyLDEuNzcxOTc4MzZlLTE1IEwxMDUuMDA4NTUyLDAgQzEwOS40MjY4Myw3LjAzNjgxMzg0ZS0xNSAxMTMuMDA4NTUyLDMuNTgxNzIyIDExMy4wMDg1NTIsOCBDMTEzLjAwODU1Miw4LjExMTYyNjQ2IDExMy4wMDYyMTYsOC4yMjMyNDA3IDExMy4wMDE1NDUsOC4zMzQ3NjkzOSBMMTEwLjQwMTMwMiw3MC40MTg0NjE3IEwxMTAuNDAxMzAyLDcwLjQxODQ2MTcgQzExMC4xNzcwMDMsNzUuNzczODQ2NSAxMDUuNzcwMTQxLDgwIDEwMC40MTAwNjIsODAgTDIwLjEwNjE5NDcsODAgTDIwLjEwNjE5NDcsODAgQzE1LjY4NzkxNjcsODAgMTIuMTA2MTk0Nyw3Ni40MTgyNzggMTIuMTA2MTk0Nyw3MiBMMTIuMTA2MTk0Nyw4IEwxMi4xMDYxOTQ3LDggQzEyLjEwNjE5NDcsMy41ODE3MjIgMTUuNjg3OTE2Nyw3LjkxNzA1MTg2ZS0xNSAyMC4xMDYxOTQ3LDcuMTA1NDI3MzZlLTE1IFoiLz4KICAgICAgICA8dXNlIGZpbGw9IiNGRkYiIHhsaW5rOmhyZWY9IiNlbXB0eV9zdGF0ZV9mb2xkZXJfbmV1dHJhbC1hIi8+CiAgICAgICAgPHBhdGggc3Ryb2tlPSIjQTFBQ0JBIiBzdHJva2Utd2lkdGg9IjMiIGQ9Ik0yMy40NTU1NzU0LDMuNTkwMjIzMDUgQzIwLjE2MTAzMjcsMy41ODk5MjE1MiAxNS4wNTcyNjM0LDMuNTcwNzI2NzIgOC4xNDMwNzY0LDMuNTMyNjQyMTggQzcuOTM5ODU1ODQsMy41MzE1MjI4MSA3LjczNjY5NDU5LDMuNTM5OTM0NjUgNy41MzQyNjIxNiwzLjU1Nzg0OTk3IEMzLjk1ODM5MTE3LDMuODc0MzE1NTYgMS4zMTYxMTkyOCw3LjAyOTY3ODMgMS42MzI1ODAyNiwxMC42MDU1NTAxIEw3LjExNjcxOCw3Mi41NzMwMTIyIEM3LjQxMzYwNjk3LDc1LjkyNzY3OTEgMTAuMjIzNjMyOSw3OC41IDEzLjU5MTQxMTYsNzguNSBMMTAxLjg4ODcxOCw3OC41IEMxMDIuMDI2Njg2LDc4LjUgMTAyLjE2NDYxOCw3OC40OTU2MDczIDEwMi4zMDIzMDcsNzguNDg2ODI4NSBDMTA1Ljg4NDg4Myw3OC4yNTg0MDk3IDEwOC42MDM5NjUsNzUuMTY4OTg3NSAxMDguMzc1NTQ2LDcxLjU4NjQxMTEgTDEwNC43OTMxNzgsMTUuMzk5NjgxOCBDMTA0LjU3NDc1OCwxMS45NzM5MzQ3IDEwMS43MzAxNDksOS4zMDg1NzU1NyA5OC4yOTc0NDkyLDkuMzEzMjc3MTIgQzU1LjY2NTYzODIsOS4zNzE2MTk4NyAzNC4yOTIwNjI0LDkuMzY4MTI3OTEgMzMuMjE2NDc2Nyw5LjI5OTYyOTA1IEMzMi4zNjE2NzYxLDkuMjQ1MTkwOTQgMzEuNzM3NTY3MSw4LjgzMjc4NjYgMzAuODA3NjMzNCw3Ljk3MjI2MDQgQzMwLjY2OTI3OTMsNy44NDQyMzI1OSAzMC41MjY1MTI5LDcuNzA4MzkwMjYgMzAuMzI5ODk2MSw3LjUxODY3OTUgQzMwLjM2ODc1ODUsNy41NTYxNzY4OCAyOS45NTI1MzM3LDcuMTUzNjk0OSAyOS44MzU5MjMxLDcuMDQxODQwNSBDMjkuNDI1ODIyOSw2LjY0ODQ2Njc3IDI5LjEwMDMxMTgsNi4zNDkyOTU3MiAyOC43NjIyOTI2LDYuMDYwODIwOTQgQzI3LjA5NTE2NDgsNC42MzgwNDkgMjUuNDU2NjA2MiwzLjgwODMzNDUzIDIzLjQ1NTU3NTQsMy41OTAyMjMwNSBaIi8+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzEgMzApIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMy41IiBjeT0iMy41IiByPSIzLjUiIGZpbGw9IiNBMUFDQkEiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNDIuNSIgY3k9IjMuNSIgcj0iMy41IiBmaWxsPSIjQTFBQ0JBIi8+CiAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ExQUNCQSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xNSwxOSBMMzIsMTkiLz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=", + search: "data:image/png;base64,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", + no_record: + "PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9Ii0yMCAwIDEwNCA5MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4LjAzNjYgNDIuMjMyMkMyMC42MTUxIDM4LjY5NTkgMTguODY1IDI2Ljg3NTkgMjQuMTI3NiAxNS44MzE0QzI5LjM5MDIgNC43ODY4NyAzOS42NzI3IC0xLjI5OTc4IDQ3LjA5NDEgMi4yMzY0N0w1MS41ODMyIDMuOTU1MzVMMzMuMjQ4NCA0NC45NjE1TDI4LjAzNjYgNDIuMjMyMloiIGZpbGw9IiNGQkRCRDAiLz4KPHBhdGggZD0iTTkuNjQ5MDEgNjIuNDI3OEM5LjYwODcyIDYyLjQyNzggOS41NjgyMSA2Mi40MTQ0IDkuNTM0NSA2Mi4zODcyTDUuMjU1NiA1OC45MjM2QzUuMjE3MzEgNTguODkyNiA1LjE5MzIyIDU4Ljg0NzUgNS4xODg4NSA1OC43OTgzQzUuMTg0NCA1OC43NDkyIDUuMjAwMTIgNTguNzAwNiA1LjIzMjI2IDU4LjY2MzNDNS44MzAwMiA1Ny45NjkxIDE5Ljg3ODQgNDEuNjU5NyAyMC4yNjYgNDEuMzI4M0MyMC41Mjc4IDQxLjEwNDEgMjAuODIyNiA0MC45NzM4IDIxLjE0MjkgNDAuOTQwNUMyMS4xNTUgNDAuOTI2NyAyMS4xNjk0IDQwLjkxNDYgMjEuMTg1OCA0MC45MDVDMjEuMjE1MyA0MC44ODc0IDIxLjI0ODEgNDAuODc4OSAyMS4yODA3IDQwLjg3ODlDMjEuMjkzNSA0MC44Nzg5IDIxLjMwNjQgNDAuODgwMyAyMS4zMTkgNDAuODgyOUMyMS4zNzY2IDQwLjg5MDEgMjEuNDM0MyA0MC44OTYxIDIxLjQ5MjEgNDAuOTAyMUMyMS42MzQ3IDQwLjkxNzMgMjEuNzgyNCA0MC45MzI5IDIxLjkyOSA0MC45NjIyQzIyLjc3MzcgNDEuMTMxNCAyMy41MjY4IDQxLjU2MTkgMjQuMjMxNCA0Mi4yNzgyTDI0LjI3MDUgNDIuMzE4QzI0Ljc0OTggNDIuODA0MyAyNS4zNDYzIDQzLjQwOTcgMjUuMzQ2MyA0NC42MjAyQzI1LjM0NjMgNDQuNjM2NyAyNS4zNDQgNDQuNjUzMiAyNS4zMzk1IDQ0LjY2OTNDMjUuMjY3NCA0NC45MjczIDE1LjU2MzMgNTUuODY4IDkuNzg1MTUgNjIuMzY2NkM5Ljc0OTMzIDYyLjQwNyA5LjY5OTM1IDYyLjQyNzggOS42NDkwMSA2Mi40Mjc4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIxLjI4MjkgNDEuMDU5MUgyMS4yODQxSDIxLjI4MjlaTTIxLjI4MjkgNDEuMDU5MUwyMS4yODA0IDQxLjA2MTZDMjEuMjc5OSA0MS4wNjE1IDIxLjI3OTMgNDEuMDYxNCAyMS4yNzg4IDQxLjA2MTRMMjEuMjgyOSA0MS4wNTkxWk0yMS4yODA0IDQxLjA2MTZDMjEuNDg0OCA0MS4wODcyIDIxLjY5MTcgNDEuMTAwNCAyMS44OTMyIDQxLjE0MDhDMjIuNzY4OSA0MS4zMTYzIDIzLjQ4NjEgNDEuNzgwMyAyNC4xMDE1IDQyLjQwNTlDMjQuNTkwOSA0Mi45MDM0IDI1LjE2NDEgNDMuNDUzMiAyNS4xNjQxIDQ0LjYyMDJDMjUuMDkyNiA0NC44NzYyIDkuNjQ5MDQgNjIuMjQ1NyA5LjY0OTA0IDYyLjI0NTdMNS4zNzAwOSA1OC43ODJDNS4zNzAwOSA1OC43ODIgMjAuMDAyNyA0MS43OTMgMjAuMzg0MyA0MS40NjY1QzIwLjYyNDkgNDEuMjYwNiAyMC45MDQxIDQxLjEzNTEgMjEuMjI1MiA0MS4xMTYzQzIxLjI0MzYgNDEuMDk4IDIxLjI2MiA0MS4wNzk4IDIxLjI4MDQgNDEuMDYxNlpNMjEuMjg0IDQwLjY5NDhIMjEuMjgyOUMyMS4yMDY1IDQwLjY5NDggMjEuMTM1NSA0MC43MTg0IDIxLjA3NjkgNDAuNzU4NkMyMS4wNzM0IDQwLjc2MTEgMjEuMDY5OSA0MC43NjM1IDIxLjA2NjQgNDAuNzY2MUMyMC43MzEyIDQwLjgxMjIgMjAuNDIyNiA0MC45NTQ0IDIwLjE0NzQgNDEuMTg5OEMxOS43NjQzIDQxLjUxNzcgNy41NDA2MyA1NS43MDM4IDUuMDk0MTEgNTguNTQ0M0M1LjAyOTgyIDU4LjYxODkgNC45OTg1IDU4LjcxNjUgNS4wMDczMiA1OC44MTQ2QzUuMDE2MTUgNTguOTEyNyA1LjA2NDMzIDU5LjAwMzEgNS4xNDA5MiA1OS4wNjUxTDkuNDE5ODcgNjIuNTI4OEM5LjQ4NzE2IDYyLjU4MzMgOS41NjgyNCA2Mi42MSA5LjY0ODg4IDYyLjYxQzkuNzQ5NSA2Mi42MSA5Ljg0OTQ1IDYyLjU2ODQgOS45MjEyMiA2Mi40ODc3QzkuOTU5ODMgNjIuNDQ0MyAxMy44MjY3IDU4LjA5NSAxNy42NTI1IDUzLjc3MDNDMjUuNDQ3NiA0NC45NTg5IDI1LjQ3ODggNDQuODQ3MyAyNS41MTQ5IDQ0LjcxODJDMjUuNTIzOCA0NC42ODYzIDI1LjUyODMgNDQuNjUzNCAyNS41MjgzIDQ0LjYyMDJDMjUuNTI4MyA0My4zMzQ4IDI0LjkwMjggNDIuNzAwMSAyNC40MDAxIDQyLjE5TDI0LjM2MTIgNDIuMTUwNUMyMy42MzAyIDQxLjQwNzQgMjIuODQ2MyA0MC45NjAzIDIxLjk2NDggNDAuNzgzN0MyMS44MTAxIDQwLjc1MjcgMjEuNjU4NiA0MC43MzY2IDIxLjUxMiA0MC43MjExQzIxLjQ2NTkgNDAuNzE2MiAyMS40MTk3IDQwLjcxMTMgMjEuMzczNyA0MC43MDU5QzIxLjM0NSA0MC42OTg3IDIxLjMxNSA0MC42OTQ4IDIxLjI4NCA0MC42OTQ4WiIgZmlsbD0iIzM3NDg3NCIvPgo8cGF0aCBkPSJNMjQuOTYzOSA0NC4yMDU1QzI0Ljk1OTUgNDMuNDcwMiAyNC41OTA5IDQyLjkwMzQgMjQuMTAxNSA0Mi40MDU5QzIzLjQ4NjEgNDEuNzgwMyAyMi43NjkgNDEuMzE2MyAyMS44OTMyIDQxLjE0MDhDMjEuNjkxMiA0MS4xMDA0IDIxLjQ4MzggNDEuMDg3MiAyMS4yNzg4IDQxLjA2MTRDMjEuMjc4OCA0MS4wNjE0IDIxLjM1NDQgNDAuOTE1NiAyMS40MDY0IDQwLjg1NTRDMjIuMTU1NCAzOS45ODc2IDIyLjkwNzMgMzkuMTIyMyAyMy42NTg1IDM4LjI1NjRDMjMuOTI5NCAzOC4wNDMxIDI0LjIyMzUgMzcuOTA2MSAyNC41ODA0IDM3Ljg5NDJDMjUuMjM5OCAzNy44NzIyIDI1LjgwMjcgMzguMTA1MiAyNi4zMDIzIDM4LjUwOTRDMjYuNzUzNCAzOC44NzQ0IDI3LjE1MTQgMzkuMjkyOCAyNy40MDI1IDM5LjgyMzNDMjcuNzA0MyA0MC40NjEgMjcuNjg2NiA0MS4wODMxIDI3LjI1MDYgNDEuNjY1MkMyNy4yNTA2IDQxLjY2NTIgMjcuMTE2MSA0MS43NjU5IDI3LjA2MTYgNDEuODI3NEMyNi4zNjEgNDIuNjE4OCAyNS42NjI4IDQzLjQxMjQgMjQuOTYzOSA0NC4yMDU1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTM3LjQ3OTUgNDUuNjE4MkMzNS44MzA2IDQ1LjYxOCAzNC4yNzIxIDQ1LjI3MzYgMzIuODQ3MyA0NC41OTQ1QzI5LjIwMTUgNDIuODU3NSAyNi43ODE5IDM5LjEyMDQgMjYuMDM0NSAzNC4wNzIyQzI1LjI5MDkgMjkuMDUwMyAyNi4yOTE2IDIzLjMyNTEgMjguODUyMiAxNy45NTEyQzMzLjA0MzEgOS4xNTU5MSA0MC41MDg1IDMuMjQ2NzcgNDcuNDI5MiAzLjI0Njc3QzQ5LjA3NzcgMy4yNDY3NyA1MC42MzYyIDMuNTkwOTcgNTIuMDYxNCA0LjI3MDE5QzU5LjU2MTYgNy44NDM4NiA2MS4zNTM4IDE5Ljc5NjMgNTYuMDU2NSAzMC45MTM3QzUxLjg2NTggMzkuNzA4NiA0NC40MDA0IDQ1LjYxODIgMzcuNDgxIDQ1LjYxODJMMzcuNDc5NSA0NS42MTgyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQ3LjQyOTIgMy40Mjg5M0M0OS4wMTUzIDMuNDI4OTMgNTAuNTUzIDMuNzUzMiA1MS45ODMxIDQuNDM0NjJDNTkuNDA0NiA3Ljk3MDgyIDYxLjE1NDcgMTkuNzkwOSA1NS44OTIxIDMwLjgzNTRDNTEuNjQzNSAzOS43NTE4IDQ0LjEyNDcgNDUuNDM2IDM3LjQ3OTQgNDUuNDM2QzM1Ljg5MzMgNDUuNDM2IDM0LjM1NTYgNDUuMTExNyAzMi45MjU1IDQ0LjQzMDNDMjUuNTA0MSA0MC44OTQxIDIzLjc1NCAyOS4wNzQgMjkuMDE2NSAxOC4wMjk1QzMzLjI2NTEgOS4xMTMxMyA0MC43ODM5IDMuNDI4OTMgNDcuNDI5MiAzLjQyODkzWk00Ny40MjkyIDMuMDY0N0M0NC4wNDUzIDMuMDY0NyA0MC40NzM0IDQuNDU5NjIgMzcuMDk5NyA3LjA5ODY5QzMzLjY4MDcgOS43NzMxOCAzMC43NzE5IDEzLjQ5ODggMjguNjg3NyAxNy44NzI5QzI2LjExMTcgMjMuMjc5MSAyNS4xMDU0IDI5LjA0MTYgMjUuODU0MiAzNC4wOTg5QzI2LjYxMDkgMzkuMjA5MSAyOS4wNjY1IDQyLjk5NSAzMi43Njg5IDQ0Ljc1OTFDMzQuMjE4NyA0NS40NSAzNS44MDM2IDQ1LjgwMDMgMzcuNDc5NCA0NS44MDAzQzQwLjg2MzMgNDUuODAwMyA0NC40MzUyIDQ0LjQwNTMgNDcuODA4OSA0MS43NjYyQzUxLjIyNzkgMzkuMDkxOCA1NC4xMzY3IDM1LjM2NjEgNTYuMjIwOSAzMC45OTIxQzU4Ljc5NjkgMjUuNTg1OCA1OS44MDMyIDE5LjgyMzMgNTkuMDU0NCAxNC43NjZDNTguMjk3NyA5LjY1NTgzIDU1Ljg0MjEgNS44Njk5NSA1Mi4xMzk3IDQuMTA1ODRDNTAuNjg5OSAzLjQxNDk4IDQ5LjEwNSAzLjA2NDcgNDcuNDI5MiAzLjA2NDdaIiBmaWxsPSIjMzc0ODc0Ii8+CjxwYXRoIGQ9Ik01Mi43Mzk1IDI5LjMzMzNDNTYuNzY3NSAyMC44Nzk4IDU1LjQyOCAxMS44MzI4IDQ5Ljc0NzYgOS4xMjYxOEM0NC4wNjczIDYuNDE5NTUgMzYuMTk3MSAxMS4wNzgyIDMyLjE2OTEgMTkuNTMxN0MyOC4xNDEyIDI3Ljk4NTEgMjkuNDgwNyAzNy4wMzIxIDM1LjE2MTEgMzkuNzM4N0M0MC44NDE0IDQyLjQ0NTQgNDguNzExNiAzNy43ODY3IDUyLjczOTUgMjkuMzMzM1oiIGZpbGw9IiNGQkRCRDAiLz4KPHBhdGggZD0iTTQ5LjY4NDYgMjcuNDIwM0M1My4xMjQzIDIwLjIwMTQgNTIuNjQ2OSAxMi41NTMxIDQ4Ljg5NzUgOC43ODY1MkM0My4zMDUgNi44ODk3IDM2IDExLjQ5MTggMzIuMTY5MSAxOS41MzE2QzI4LjcyOTQgMjYuNzUwNSAyOS4yMDY4IDM0LjM5ODggMzIuOTU2MiAzOC4xNjU0QzM4LjU0ODcgNDAuMDYyMyA0NS44NTM3IDM1LjQ2MDEgNDkuNjg0NiAyNy40MjAzWiIgZmlsbD0iI0MxREJGNiIvPgo8cGF0aCBkPSJNMzUuODA1OCAyMC4xOTA5QzM1Ljc5OTMgMTkuNzM5OCAzNS45ODQyIDE5LjQ2MzggMzYuMTI0MSAxOS4xODQ0QzM2LjcxMTQgMTguMDExNiAzNy4zODc4IDE2Ljg5MjUgMzguMTkwOCAxNS44NTA5QzM5LjI5NzkgMTQuNDE0NiA0MC41NDM1IDEzLjEyNTEgNDIuMDU4NyAxMi4xMTI0QzQyLjM1OTIgMTEuOTExNiA0Mi42NDU2IDExLjY4NzggNDIuOTc3NyAxMS41Mzg1QzQzLjI4MzQgMTEuNDAxIDQzLjY0ODYgMTEuNTEzNSA0My43ODkgMTEuNzgyM0M0My45Mzk4IDEyLjA3MTQgNDMuODQ1OCAxMi40MDE5IDQzLjU1NTUgMTIuNTkxM0M0My40NDcyIDEyLjY2MTkgNDMuMzM0MyAxMi43MjUyIDQzLjIyMzcgMTIuNzkyMkM0MS45ODg0IDEzLjU0MiA0MC45NDI2IDE0LjUwODIgMzkuOTgzMiAxNS41ODIxQzM4LjkwMTIgMTYuNzkzMiAzOC4wMjgzIDE4LjE0MDEgMzcuMjkxOSAxOS41ODA4QzM3LjE3MDYgMTkuODE4MiAzNy4wNjY1IDIwLjA2NDUgMzYuOTYwMyAyMC4zMDkyQzM2Ljg0NDUgMjAuNTc2IDM2LjU1MjcgMjAuNzU3OSAzNi4zMDQ4IDIwLjcwOTlDMzYuMDA0NiAyMC42NTE4IDM1LjgwNTEgMjAuMzk4NCAzNS44MDU4IDIwLjE5MDlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOS42NDkxMSA2Mi4yNDU4QzEwLjI5NSA2MS40NDc5IDkuODYwNyA2MC4wMjU3IDguNjc5MTEgNTkuMDY5MkM3LjQ5NzUxIDU4LjExMjcgNi4wMTYwNCA1Ny45ODQyIDUuMzcwMTYgNTguNzgyMUM0LjcyNDI4IDU5LjU4IDUuMTU4NTYgNjEuMDAyMiA2LjM0MDE2IDYxLjk1ODdDNy41MjE3NSA2Mi45MTUxIDkuMDAzMjIgNjMuMDQzNyA5LjY0OTExIDYyLjI0NThaIiBmaWxsPSIjRkJEQkQwIi8+CjxwYXRoIGQ9Ik00Mi41NDA0IDEuMjMwNzVDNDQuMTI2NSAxLjIzMDc1IDQ1LjY2NDEgMS41NTUwNyA0Ny4wOTQyIDIuMjM2NDRMNTEuNDY5OCA0LjIwOTExQzUxLjY0MjEgNC4yNzk4IDUxLjgxMzYgNC4zNTM4MiA1MS45ODMxIDQuNDM0NTVDNTkuNDA0NSA3Ljk3MDgyIDYxLjE1NDYgMTkuNzkwOCA1NS44OTIxIDMwLjgzNTRDNTEuNjQzOSAzOS43NTA4IDQ0LjEyNTEgNDUuNDM0NiAzNy40ODA0IDQ1LjQzNDZDMzYuMDY1MSA0NS40MzQ2IDM0LjY4OTQgNDUuMTc2NyAzMy4zOTM0IDQ0LjYzNzNMMjguMDM2NyA0Mi4yMzIxQzI3LjcyMzggNDIuMDgzMSAyNy40MjQ5IDQxLjkxNDEgMjcuMTMyMyA0MS43MzYzQzI3LjEwNzYgNDEuNzY1OSAyNy4wODY1IDQxLjc5OTMgMjcuMDYxNiA0MS44Mjc1QzI2LjQwOTkgNDIuNTYzNiAyNS43NjA0IDQzLjMwMTcgMjUuMTEwNCA0NC4wMzk0QzI1LjE0NDcgNDQuMjE0OCAyNS4xNjQyIDQ0LjQwNzEgMjUuMTY0MiA0NC42MjAzQzI1LjA5MjYgNDQuODc2MyA5LjY0OTA5IDYyLjI0NTcgOS42NDkwOSA2Mi4yNDU3QzkuMzY0MjcgNjIuNTk3NSA4LjkxNyA2Mi43NjkyIDguNDA0NTkgNjIuNzY5MkM3Ljc1NDk5IDYyLjc2OTIgNy4wMDA3IDYyLjQ5MzMgNi4zNDAxNSA2MS45NTg2QzUuMTU4NTUgNjEuMDAyMiA0LjcyNDI3IDU5LjU4IDUuMzcwMTcgNTguNzgyQzUuMzcwMTcgNTguNzgyIDIwLjAwMjggNDEuNzkzIDIwLjM4NDMgNDEuNDY2NUMyMC42MjUgNDEuMjYwNiAyMC45MDQyIDQxLjEzNTEgMjEuMjI1MyA0MS4xMTYzQzIxLjI0MzcgNDEuMDk4IDIxLjI2MjEgNDEuMDc5OCAyMS4yODA1IDQxLjA2MTVDMjEuMjc5OSA0MS4wNjE1IDIxLjI3OTQgNDEuMDYxNCAyMS4yNzg5IDQxLjA2MTRDMjEuMjU5NCA0MC45NTQ5IDIxLjM1NDUgNDAuOTE1NiAyMS40MDY0IDQwLjg1NTNDMjIuMTQ3MiAzOS45OTcxIDIyLjg5MDkgMzkuMTQxMiAyMy42MzM5IDM4LjI4NDlDMjAuMTgxMiAzMi45NjIzIDIwLjE1MTIgMjQuMTc2NyAyNC4xMjc3IDE1LjgzMTNDMjguMzc2MiA2LjkxNDk2IDM1Ljg5NSAxLjIzMDc1IDQyLjU0MDQgMS4yMzA3NVpNNDIuNTQwNCAwLjMxNjQ2N0MzNS4zNDMyIDAuMzE2NDY3IDI3LjYxMiA2LjM5MzM2IDIzLjMwMjMgMTUuNDM4QzE5LjQyODcgMjMuNTY3NSAxOS4xMzkyIDMyLjM5OTYgMjIuNTA0MSAzOC4xOTE3QzIxLjkxNjIgMzguODY5MiAyMS4zMjgzIDM5LjU0NjcgMjAuNzQyMiA0MC4yMjU3QzIwLjcyMDEgNDAuMjQ1NyAyMC42OTkyIDQwLjI2NTkgMjAuNjc5NCA0MC4yODYyQzIwLjM1OTEgNDAuMzc3MyAyMC4wNjEyIDQwLjUzOTcgMTkuNzg5OSA0MC43NzE4QzE5LjQxMTkgNDEuMDk1MiAxMC4xNTkyIDUxLjgyMDggNC42NzczOSA1OC4xODU0QzQuNjcxMzMgNTguMTkyNCA0LjY2NTM0IDU4LjE5OTUgNC42NTk0OSA1OC4yMDY4QzQuMTU3MzkgNTguODI3MSA0LjAyNDY4IDU5LjY5MTMgNC4yOTU0IDYwLjU3NzlDNC41MzEzMSA2MS4zNTA0IDUuMDUzMTggNjIuMDkzMSA1Ljc2NDg5IDYyLjY2OTJDNi41NjEyMSA2My4zMTM4IDcuNTIzMzMgNjMuNjgzNSA4LjQwNDU0IDYzLjY4MzVDOS4yMDYwNyA2My42ODM1IDkuODkzOTYgNjMuMzg0IDEwLjM0NDYgNjIuODM5NEMxMC41ODg1IDYyLjU2NSAxNC4zNDU5IDU4LjMzODMgMTguMDY0NSA1NC4xMzQ4QzIwLjMxMjQgNTEuNTkzOSAyMi4xMDY2IDQ5LjU1ODMgMjMuMzk3NSA0OC4wODQ2QzI1Ljk2NDIgNDUuMTU0NCAyNS45NzAzIDQ1LjEzMjYgMjYuMDQ0NyA0NC44NjYzQzI2LjA2NzEgNDQuNzg2MiAyNi4wNzg0IDQ0LjcwMzQgMjYuMDc4NCA0NC42MjAzQzI2LjA3ODQgNDQuNTI0IDI2LjA3NTIgNDQuNDI4NiAyNi4wNjg4IDQ0LjMzNDZMMjYuMTA3OSA0NC4yOTAyQzI2LjUxNTcgNDMuODI3MiAyNi45MjM2IDQzLjM2NDIgMjcuMzMyMSA0Mi45MDE3QzI3LjQzNzcgNDIuOTU3MSAyNy41NDA5IDQzLjAwODggMjcuNjQzNSA0My4wNTc2QzI3LjY0OTcgNDMuMDYwNSAyNy42NTU5IDQzLjA2MzQgMjcuNjYyMSA0My4wNjYyTDMzLjAxODkgNDUuNDcxNEMzMy4wMjY2IDQ1LjQ3NDggMzMuMDM0MyA0NS40NzgxIDMzLjA0MjEgNDUuNDgxNEMzNC40MjUgNDYuMDU3IDM1LjkxODIgNDYuMzQ4OSAzNy40ODA0IDQ2LjM0ODlDNDQuNjc3MyA0Ni4zNDg5IDUyLjQwODEgNDAuMjcyNSA1Ni43MTc0IDMxLjIyODZDNTkuMzM5OSAyNS43MjQ4IDYwLjM2MzEgMTkuODQ5NyA1OS41OTg1IDE0LjY4NTRDNTguODE0MSA5LjM4ODIyIDU2LjI0OTMgNS40NTQ1NyA1Mi4zNzYzIDMuNjA5MTVDNTIuMjExMiAzLjUzMDUyIDUyLjAzNzcgMy40NTQxNCA1MS44MzE0IDMuMzY5MjRMNDcuNDc4NiAxLjQwNjg3QzQ1Ljk1NjcgMC42ODMzNyA0NC4yOTUyIDAuMzE2NDY3IDQyLjU0MDQgMC4zMTY0NjdaIiBmaWxsPSIjMzc0ODc0Ii8+CiAgIDx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiIHg9IjMyIiB5PSI3NSIgZm9udC1zaXplPSI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iQ2F2ZWF0IiBmb250LXN0eWxlPSJub3JtYWwiIGZvbnQtd2VpZ2h0PSI0MDAiIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDAsMCwwKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyI+Tm8gcmVjb3JkIGZvdW5kLjwvdGV4dD4KICAgPHRleHQgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeD0iMzIiIHk9Ijg1IiBmb250LXNpemU9IjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJDYXZlYXQiIGZvbnQtc3R5bGU9Im5vcm1hbCIgZm9udC13ZWlnaHQ9IjQwMCIgc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMCwwLDApOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IHdoaXRlLXNwYWNlOiBwcmU7Ij5UcnkgdXNpbmcgZGlmZmVyZW50IGtleXdvcmRzLjwvdGV4dD4KICAgPHN0eWxlPgpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0NhdmVhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIHNyYzogdXJsKGRhdGE6Zm9udC90dGY7YmFzZTY0LGQwOUdNZ0FCQUFBQUFMNmNBQkFBQUFBQnVrUUFBTDQzQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHb0VnRzRHRGJCeVhPQVpnUDFOVVFWUXVBSVVNRVFnS2hhdGtnK3NxQzRWQ0FBRTJBaVFEaW40RUlBV0RmZ2VPSXd3SFd5OVdVU09lZGdLLzJ3RWNmYlI0dTB0VXJ4bnU3bGFGNlVnT3BZS05xOHl3Y1dDQ2JiNUU4UCtmbEhUSUdNQWJBUGhmMHlxQ0JJSms3azZCck16Z0hkRkJ4MUdSeUVZNk9kd3gxeXdXeWJhcEhjTUs2dFhsQkpobmJBWjJ5bHVHZWtLRTVoSTNMWEZoR1lGOGZPdU4zbkVMRHhYNEp3R2hJSDY1Y3p3RDEyL2QvRy9TZFlyM0szbXptMTlTbGJyMEdPbVU0cFRNRk42c1IweHhIV0M3RGdpUm9obGtrWXVQeEQvdlgxU2QrM29BYnM4YWpnQkdJQ0lhRWY3d05MZC9kL2R1emRnYVJxMmdsYkdOMGJvbU9nU3BNa0RRUmlYRUtNb0tETkRHaW05a2ZZeitmbEhGcWJpSTR1LzgvOGNCNjl5WE5XbEFpVWJTQkJJVWFCVHNMT2lDTHVHS0xORWYrTDhaL0JvWkQwcUhRRTN5Vi9PbjYxaVRlZmI5V0xzUHZvZ3RZdHVZZVFsVnpRenhqblFLMGFVRkNpQWcvRWZtRmpLamRPcFZEUEdmY25zclY3aGFZQUtoSldFR2t2NGd1bEQzaEttY1dGWk9QZHg3M2oxY0tzWm5UUkQ3b3VTYjhwS255TFlkYzAyVVRBQVV3RDlVZEk4ZnVCNS9EajllWGprWk9SazVhZmxTRWltSnRNVHZOYlVTVXpHVk8rdU1uaTRMVVNtUS9xb0NHajFxelM0YUFBbk9VSHVpUk1xczk3d2JxR3l5MXJnbkdJTVJDSWtVcy9heHM4azFLVmFpWDlQUFdmcngzYVUwd2dKWUtGOVJpYjRuWmV5a3IrTTAyZ3FCK2I5cVdzV2YyU1BlM1A0U21ZRkZUVGtoMDRJcHVWYTUxLzA0VHVVODBSdWpWNjNaL09ib3EzMjFyNEFTU0FRbElVQUNHYXFSSlhXaGFybld0ZFZtUHFmK2YzWnJ0K25uWFAzTmJTcWFWTy9acW9FVzJzbU1ORmdNekJBa3NFR0FEYmIwbm1UTDZhMTkveDFwVURZR3h1Um5qaUs0d1JqdzBQYi9mMXF6dWZ2SUZyZnZoTlpDTDM3NEdXSDJvTEFJMnllWk9iTXZmMXUya2gxYUM2VjNEUTZocXNMTkxyWDRya3EzclNrd2pvUFFDT0dCU0U3ay93TjZNUHUwMUI0MDZWTlRteTArSUdnbUU1WHhQRFVscFg0anJ3c1VDajdFUEtGSUo2MmwrYmV6b3hTMFNZZEtxU2pJQlhXZUFCWkNENTZ2NWZ0SmRiWjFOMGE4dFdnSm0zM3JqTXlnMU9GZHovUy9hb2VrWkZHbkFFaDNqMERQUENjb0wwQU9pUnN1Z1o3Ly9kN1Y5M2FIbVlUNDhJdG1FaDQ1eTY2R3FMZVJ6TFM2UlhOSmI2Uy9oVVRLNHFHWjVrd21jYWhVazFEdzBvaUVTTVQvZnpQTjBtcGFVTVpGVURiS0pwUVVaTTRGa1RLRjd1UlY5LzBpdXQ2dkpydmZiMUxBTDJBRS9vSjB3Q3FPRHZnTDQzNWpQRWdaN3lQbmRyZUtJMU10MitDc2dYWjlwblNEM0VZYjVCc2wyb25tS0ZyamduQ1RlUE5vZWZpNE5ON2tqU2VvSVkxUWFYOVRHbTBXUTVsUXcxSUZZcnBBSjNhZzNlQ0EvT0R6Skw1OU02ZDFkUGtSRVZHN015dEhNampiSXhDVEdsYzF3Z2doVkczV0RPbjU4cXRkODBxUzN1ZDlxbXBGUkl3Ukk2SldheFpoR2hoakt4aVEyL3BmVEl0NElJaTNVK0R1aTJ6Mi8yUTcrY3FKdnMxaFVHcEpJMjNnUjA3N3VzL3RXUzIxaTRwSTRzMWZDSm9iWVdST0UvenBpZ0pGZDVCVHFvZ05RWmFtZmc2NWJNUWlqanlXTzN2d1lDOCtYS2FXNnpYeVpNM2NZZzdQTTU4WFdzSXJyZUllYTNpZGRZVWJiRzQwUVFtREpUM3BNQ2tNVEp3MEhFb1JBQ05KdjFkZ0tBZGgwRFhYRG9rQjlBTjNxNW9JNkNCQTE3VTNzbmtIN0ZVeEVmd05aQ29RZkUwSTFZQkQ4RTZFWEIxb3ZUQUZTQWdZRUJTUUVGOE9vVUtEazdKbWhsVkZTRXBydTZuYW10NEZmYVloZ3hlVFFQdXRMUCtodG9VRzNSdjcyNU1nN2NKNVFsc2ZtbXlIb00zOWo3NDUxV2s4Um1Ld3VqdzRvdjZ0MTlRLzZQQmJEWUFmNUN2d2lmcTlyUS9UNm8zT3YvS004Qmdld0YyNEV6Y2IxN1pxRDdWQ3VzdWx6MjVPclUwQmRhZ3dpb01iR29SN1Y4YkwyMWVNYkN5c2k5WDFpcVBtTDEyeWNnSmJXdFpsWnJQYTltZ2dHQ0IvdjF5K0lIOVZsLyt3VjN1eWUwRGUyYVdkM1hIaEVQWmdoNzBaeUkyNEdwZFducitZRnE2OHptbUpMOW1MVzZFMWFMTGJSamU4aUZWZTUyd2lNV3ZQeE5IT0VUTzZpb0VXTFRXOVpPZUJVNW51bXRyZTRSbU1RYWZ3MlhweUVqWFhqVDNkdVdVNDF4RFNwaVVUTkRnSVpLVlFOb3prN2tsdEgvbVVSbldMblZseVdnc3ZpMDU2T2RkMnZwdjBTcS9OM1hTUWoxNDJ4TFlGUWhiM0dzNTQ4T1FYMExyR0pjWjZGZG5DSjA1Nms0cFpIVG5iT0h5am1QTUlBQmtXVnRneEZsZmtlT09IbGlCQ2lTT0J0TTkwQk1EYzVkR3ZYUWdCenBUb1pHdHMxUDBOSVVFSlRraENFNVowS0JJa2VldmkveWY3dkJiNURIZy9lSE84dWoxalBhNTRkS2ttVk4vZEtjclJpdmtLaW55Wlc3dWJpMnRhcnhpN1k0emFaWTV6anRNRko2SERLdnZ6OWs1MnUreU10cWVsNHlSMUVpZUpVSHhCdkV1MFE3aExtQ1hVMjl5eEhyRk9zaVpacFZtTVdod1ZWQW5zekZmd3ovTDF2SEhjODl3R3puSFdEdVlLWmdkekhqT0w4WXhCTUoxbEdrZC9aWExGWkE4dGlkSkVWcEZwcEhGRU5lRWsvSUk5d0M1aFc3RWVyQU9iaDJWaENaZzNKc01FNkQzMEFyb0hYWWEyb2pWb0JocUYrcUpPS0ExNWd6eEN0aUx6a0FwNEtIUElKSDVUSVV4Q1lVeWZRUng4T0V2V3lJUkVhQ1JQMFRuL2FHb01Od3dxWHJoOHBES1hyb3l2T3ZYWUdxa0lrNTlGbW1hNktKMksvWUptaFVVc3VINXF5UTF0WGN2dVBIeHkvNU5uNno1ODIvVEgyQlYzSCt3bE12akxkTjhRU3BDN0ZVK3FtclJuQnNhZGZEcHhhTzR0b0V2UGNsRytJNDI1enRCcFZsMU0yNURYU2NDdjZWdkdEZGdyZlhYUUlYSklUTnRqeHpRMi9odXJuckdscVJIZHZ6MFh4V3A4NmJXbk16STI2eW9qODdDbHY2eDZ2NDMxcjdtS0dwKytBY05HZWxyZXA2MEswSWsrUDczTld2aGsrRHVsS1VOTFU4L3AwNGN6aGRNWjlUSXcrcnNiZU5xNndNUmNiVlhmL3BxbS91dUdldEQ2Wk1Lbll6L3pJK0FROG9rZWZqVXdIeDNOVXNVYjFnRTRsRldkL2V0bEx3dExHcHZkd05Oa1JEVnI2cCs1M0FBbFVKeGpYQlVZUVZUUWNBaUl5Q2lvb2QzL2szR0ZFU215bmpvYUxpMlpuU1drUzZnU1hvbVRtSFFuOHo3WmtwTmNVa3JLb2dwVm0zMDFGTS9qMjdWd01zTTVJOUdvTWVNM2s3dG9PZXQxTnVZMnMyMjcyY04rRG5DWVkzSWQzVjZQODRUbnZGWi9MdVFPc0lHcU9UTmV2T1B6eGpjS0JnVUxZdVl6WkVjWkdHeDM0azBVWXppV25qSENuR0tGSGNOekJDSWtJb2xVa1hVVVVibWEvWUNuQy9tYU1NUG51eVF5VVRHeC9qbitKcmd3U0w2UmtsVHZqaVFySjd1dXJtUnNaS1NoVDlzWDJ0T0pydlJrdmVsVGpOWHVVRGU1WkdnZWZvM0lZRDVheUdKdktjdlp5clY2MTZ2ZHViYmwzcHlkZWZjWWtjRmxkSlhyM2sxdXM3dnIvajVXdTZOM0w2N2V5djhCNWxZRE9UblhGelFJdlJUMUVpeWdoVEg5bWhWbnRuUUxSZFN6Uy9jdTlqM1NhSWxKSmVsdUdRYTNSTDNUSTlVYnA5TFNpNkFydW9JdUdhWmhCWGFqSkZaRWRlb2VvODZCeG85VDhhcDR3V0xLUlN5aFMxVlJuWWxlSTdWZTVoRy9xT3BrVmQ5UHJPUXJ2dGwvcVB3ZEF3anpwTnBNY0NjTDlCYml2eE1ENGhuZlpxYjFxdG53WnZ0ODZMM3p0Um1EUjFWVnZvUlppVm50MmpycU9odFVwN3A4ODJwRzVNN3U4OGdBV0o2WGxXd0t2cFl6RlQrbGtXTUxWcHUvNVBydWdOdkVyV2V3TTQ1Yy9Gd3UyVUM0dWZVVUh2UUp2S0RaOUdndEdzWnBkK0hLWUU2Nksvdm02TXA5ejJOMUlSUHN1c1k2eHJIUGpvR0ZsMnRkNnpxZWNseGpyVVZaTHk5cmpYRWM0OW9TYTRVenhiTUEwSnV1VlZ6RDFadWRCYWlPems4SUlDSWZ1ZG1PMzhuTW04M0xqSWg0a282bzZ3cTBna2U4WExPZFhGVEFKY21MeVdLaEN6d3RQTXl0TmFhSjFoWjAyNm5ja29HQkdNbmYyci9xWGc4VUZWTk5yTldiS2RwMElreS9GV3l0L2RxMVpQUzQrV1pxV0FaN3lyNHFRR2VPY2p4eDR0UmxyZVZuRjhNSGI1QTlIS1laaGdBOXJlY2V4Q0RQb2JvNUc4ejh4RjJsTEYyQjJ1SXd6c3d0ZTIxR3ZMajBLK1NGZUZoWjdtN2ozNDBwUHduVmNZVitQV2tsS0xsOHpLMnZ0Ym9tbVExLyttanhsZHFpSHBYMWFsMjErNE5qOU5YTkxnY1kvNWVRUlRCTjNBbFVvY1IzUGY5YVYyL0NrblhpRWtYMHhXUG4zR3VLVmhhVVU5Z3Ntb2h1SWp6eEpDRTZmVWtFUjNoVVRJanlvSEc2UThJZWxVK21Ub0VwdnU0SitQT0pjTTlkeFJOWUhhUmdqa0FsbzYrbngxY2pZRVFtTWFUR2dJeGVicmRPUlZVWVFESDhsZEpZSkdRWGlIT0pYbHBXaUl5dzEyUUVCZ2lFSHZDdmdVZFlpbjBGVEU1OHVpTmlIZksvWU8vVlpmWTZQdDRIRzdrZWJBWUhQaDZTRTdwRFRTNmtOSyszb2hPaklzbnA5UjFuVnZaWkZTczdXYlcrWUU5aVFaL1pLUklVMzVyME9TTjdhcm13blJOUFhTRkNDNmYwWjlPVGZVQkU5SmZzbk5NM3hRSjl6QnNkbTl2dDFrR1JlbHE0ZFFXY0tjYkJHUUdVallLbFhyTmx1dFhxVWJmWmtPaG5KRmo3UmhGOVBxMXc0V3NoMXRHTk43R0w5S1dVb1lsTmFaMXpxUklxR3FnU01SZFQ5cThueDdTQ0tNS3RTNGtsNTJwekcwMXVzZlR5Q1hJUUNSSU1iUzZjMWhySkFmZWdiNlJTUE84bElFRlh2VmNDUm9RSnJVcGh5OGVOcSs4TU1jOWxtdG9jN21OREl6b2VQeDFlU2NMYUoyamIxQjdibVdmdGluNXVqclRFQm9kSUVVMTFjbzYyT0tUNzlPeElGaTg0ejBSbXh6bDBSWGVwNkNtREFvcDR1djA4R3JyT1o1SHo3VVVJa0lxZU9DaWdlS2F2cUpZbGNkWmcxUFFCcHVwZENJZ2lHdDA5MTY2NDZWV3lnR1BWbnFaYmhSQ2szMzRLTXZMMnFNV3JFZFl3d2hCRExmY0tHY1dDMGdwTWY5ZE82cVBmd3Y4ZndnQzZjOWFrQlUxeG92MXhiRU9SK2x1aDhBNlBPMlBxcFc0V3ozMFJGQ1hPUVBQaGNRUzRFbmVoUXF0Y0tXS2xjQWovd2dpVDFReUl2aEdEbTFtVDBVYThTQVZhYk1GQnFMUm9BUkRzeVcyZVEvenNMNDlac3MyWFVodS9KTnhBZzZ0NnkxL2VWa1VVcUV2WncwU3ZpVmluZExsZ1RFVmpQRFlVU2xRODN3VzV0WjRHTlJVU0JBYTgwYkRRUGZuUXpyWGw4WVVOSWRreFBLNWlJc2t0RkJtSFZ5MlJ5Wi9GRCszRFkxQS93dVhXQnJaTTlIdHlDeGlKUkFUSmFOc3lUUVlZaVVRQUNRSWNBaGlKUklScEFKekFPLzNZRURTbWp0VzUzbEs2OElJcnlvaXFGNE50VWxrcWNQZVRSZGZQN2duR3JIaHFOcUFMVXZla0FpMDB1d0RoSWxFZDZiWXhoSzRzUG1PZWQzNm01bTZCWExuQ1doc0tCZ3R2M2VMNWg5cWF4VTVIVkhzakpEMUN1MzJKRFZqSjIrdm1ra0kxcHNzYnFwUlNHUHNyc0ZHSGkwYlVLTUpvZ3pIZ1NVK1ZqV0FFakFLNEhya0lrRlhCSlUrMGR4UXFwdHNZOU1CRkhNdmkxZ3NNUkNEOGNQWitLNnpUWHE3dUpOLzJGMjJ1cHBOVm5oWmE2ZnhnNnExSjk2Tk1YTTlTMzNoUFd5SlZybk5ONzNuRlZ0VWsxdlhZZmhQc3g2dThQRjRleDNWc1AvVGljVnpYMHlPNC9KVGplbms4OExqOXFCREhjWTE3czU4NHVvbW90SnFVcnNwZ2dNQ21yZjZBWDhHQ3NzZVV3ekYvd3JJSlNKckRhVW53cUtpRWdhb2Z2MkNRbWNkYnRXc1crTURGRE8yV1NpWEx6ckNld0Y2RDFWU0hrUFcwVFpHeVFvSWpUeWVTRWt2WU9mTVFIRmd2eWY4dHBpSnREc3RhdUM2VlZsS0M0WGFsZW44NHozSG9qNmZhci8wRlFkdldCZ0oyNlZ4STQ1NENSOEJCMnRhNjJGTnFzd0FvSWs2NFpBeVFIaU5SSzFBZ2pOTWN5alVNQTlYMkR2SEpmV3FQd0RtTDdHK0pJY2xjdk9LZlNLZ2dNR0FWZnNDQzkwa0JoRXVIQ0ZJM2FlYjdXbS9DRXgxYk1IbU95QXRCR0s5YWdiMlo3cDZuSngwSmhEZUhPb3pVT2QyeFBVRms5aVRQc29Ba3NTTWdXWXZVNFBKNjY3WlhRZ05LUy9OcjExNmMyUEJLVG9NYklBY2psMmlSMHNTRDdoQlNaa2pyYitVendTUHNZQm9LTGhjZXQvc0JTd2o5VWV6RW10YVJwVGJxN0xXUUMzRDdOamFoZ0VjWU03T201NmpqWm1WRW5TeGdjbG12bTB1VEZxcm1NcHRWbkQwTGJYT0xzaGg4S01ZMnBhMmtyU3cxd21rd1VIWXQySks4Z2tKY3l4Rk05UHBmaXBRQzNZeVU0eTNiWEhGZ3BWK2s5T2pnYVpWTnY5MnJXOWdkejZBb1Y5K0tsN0tIcm5nbGg5Z0ZGRk1oNS9WdXdPSjdsdXFRY05GV3M2dXRxeEFsTktuVWFwUlNLcVhiVG92UnZwQlNLcVZVU2ltbFVycnRIQm50QzZucS8yU1VTaW1sMUJXSVN2KzE0bmVieHRuYWlpNTFGVExoRmxGUmxtSTZpQ2dJM0pUQXh0SUtiQzNjYzFSendGdFYrSWRvZGpUc3NRaGJhYTFTOXEwRUw3alcxQTRUNktLbXBiMVN4cmlLQTFTdTFMZmpxUFo0bUE4N0F6Lzl4a2FXUFRqWU5HTUYwNDFCbW9KREptcHRnYlRJNVQwWUNSK2FtVTJibVgvVXRNejE2bmNPTEpLdVBlN2hyLzk1cWRaaGcxSmYwUWcwVGFwdDE1SldVOFBBZ0xTS3FBQ1RIdk9wd05UMFFrNGJOLzJlckROLzB1bEtpOERCN0ZYenoyTzUvM1R2UzRBelhzSnp3Z3dQaHQrNW9oNk12eDV6bnpFdDBtaVFVdzNwd2lXTjJOdERUV1IrSmIzV2JXWjZobUVZWUJpV21RNnlySVRMTUF5ejNaRTNtZ3dqc2dTNE1qSms3eTVzR0JuVFdCYytsM2RuTjIrWk5FTzdMV3drc25lc1ZDQWRKeFlkUG9vaWU2a2Zwb3pOV2V2dWpBci9aVWhydWF3STZXWlBGNDlrUU9TOEF5N3Zja2tTc25OWWpERzVKOEVXOUl3cDcyb2grRy9BbFlDSFgyUmhwb0hXOWNjMXBUVVhjVldJa0NtUGZsazQycTdQdEsrTWUwa2JDSE5pMWhlaFA4cDY4enlRbWMyV01qUzRNUGEwVDJXSzFtTmpLbHlTNUpSWFFMOVJzRlViaHhERXFTQXJLRC8wN0FYWmpCd0JleWlOUTRpL0FDbU40VDVDa2xManZtWkUwL0NXT1g3Zmo2bmMxSmkyaWI5cUtITGRod2ZNb2N1Z0M0V3A5elI0T1h0WjhSUGR5ODFDbEw0N2c4cVY2R1htY3piTitQWWVzOHhhaTRxaVVGTEI2NERrZGlFbFcrS3JvaXE4WmdSUEVIL1BKWHRxVW04emV4dy83ZG02eGx0ZlB1VG55TkNQdDMyVzY1Z2JycnQvN25NZVZIdHBmOVNLbDdIaU9HV05Rdzl5V0xrU3VReGhaY1pIak5xeHRCcjZxbDV5cUlUY2hKUnpQWGpNT29yY0QyTEdWZFFkYy81QXh5NXcyNDB4bW50WkJNZFAxOE1rWnY4dWpBMytMK0ozcUI4UWYzUmd6dXJ1emhpenZnVEkyM1REeVdWVFprRU82RnhuRlFPT0Y0eGJhbnd5STFiZVdJOHh3M01rSWpHdDhJQ0JLRWdTNjhvWGNQOEx0VDBhdE9LZ3BLTHRuSW96T0c0VDFFaTcrdWl2Wk9KaGNnK2l4UDRTVHZndVZFKzd1bDVJNi8zMTMxc3o0SHk2aEdwMXJETFo3d0x3clRPQTg3TnVlR21UTEZGL0E4cEx4ay8xZ1BFd0tKT3lDQkhSWStpbUl4T044SHBkbi9zNHZMQTRoeU0zVDU5b2kwL2xyZW5VV3FlYzF6c1pYU1h6cjZaUzE4NXd5T29jMlZ2bTdLRzdTUkhCMVZxOThDc0FiYzFxSnd6TkwyUDlrV0VFTmtZbEFZTGhsWlNRYnMvTStMSjg2Qlo2a0F6R3d4NDhJa1NMdE5WWUFlTXJCMWp6NkpPOHZRWU12TkN6RU8wMUFoejNLVFo5QUNJcEdDRFQzQ1QwTitqZmE2aGtpMkVCejNaNnhxakFjdXV2a05hVTBpRjFnKzhmMUg0OWNNM3BmVm8vK3NGRVB6OFVHcTlFNXJzTmVINnl0MUxqTDVmL1hPOEV6NmJTdXRabXJpYXBsbWdTbWZHSXF5Z0lGSDNhUVMxS1RPRGtWL2ZRK0g3TjljV3I3RmlKQWNKc3c1QmxFT2JlWXQvTDFFbWhjYWEyRkhBU1NsTUJucEFCSHN6Mnhwa1FZbm5zbUpTOVlGSGMyRDZZUGN1Znc1WlgyMUVTT21Pb0RHdzFuS0hncEZNTUxkR01UWWhDemsrVlE3dTZwMjRMWk9RSG9lMHJjS3lBdDlOa09saWgyU0xpRkdxbkVCZHRhSU5mSHdjQ0J3QjhiWEl6UlhOeGw4SDZEeTNrU04xbS83QU9DVnh3Sm1XQ3FhSVN2TlV3bnB3WGVGZ2xCdkRZejZmb24xU3VnWTdHeWs3eFJUdUNUNzgyRGU4c2VzWlJoYTVwWHExbXJSSndUaC9hZHZGbzBFVUluMWVtL2hLREV0dkdYci84SkZXcVFtU1BoeDNDRm1ESVVxd0Jla3c3VTNvTGNmbzI0RTdadWFhNWdMMUlkQWhRZ1dBcG1uVmQxRmdQWVpxYmZIVDFXU1dvL3h4RU9JNGZCQW8zb0xlK1ZsVVg0MnQ3bWhWVkhMWm1xNkpRcloxNG8rVGJQcTlDUisvWlVMZVlTbm04b1VUMEpjbFhmd1pSYnRITllUWC9GUlZwRThQUHJ1QVd4TXQzdVZPdnRWbjJHYjVVWTFKdnZZVE5pQVFnVGFsU2ZFNUpXb2tOV1JmUSs3MlFodEJocVZRQzRaeFRWd3MrYVdlSGJ1WkRCSDV6WGxsL0l0REpzdjloSzJhbHR5RXFLbTVkQ1FkejMvZ2Q4RHBXZTcxU0RkVG9pMGN6WHNIaUszcUxLbVJad3Q5cWRJTUpwd2pYM0thSU5PZXJFVVZhOUpEb1NnT1BTbGxTNW1VaFI0OHBCak14emxnbms3YlZlQmxNNEh2WUhQUExJaEhsYjdIRk5Kc3dKUHZTbDRMM0xDeGdVcHVoeDh0MVJiY1NqK2wyWGtoZWJiL1ppUitPNzdtalZrSFN5Z2V4K3kxTHlCcXJ4YWowaXgrZTcvVlhRZngzdU1kdXhWWEE1ZitDY1BuRjV4WG1ad0xoWjJsMk1SQ0EwUDF1ek9VUS95dnI4VmROV3pXSDhzZWVPY3VEM1ZLSC8wTVZYSkJ4SEZoaVFFQi90VEI4ck1uL3Y0dWlJL2k5UFgzdkQ5SDkvUHgzSURFQkZvcnZqZnUzZmhEc1YvY0wvLzBFOThaYm5uNHdLc2lDenY4ZHNvRUd4UmNpM0h3SVB5dFNGTHR5UGQ4Tk1UMlBOc09zQ1ZuUXpBTFk3am1qS29PZThyV2xodnhiVWM4b3hZbVhJRkdTWkNsU3BVbVhJVk9XYkRseTVjbFhvRkNSQ1lxVm1LalVLYWVkY2RZNTUvM2pnb3N1dWV5S3E2NjU3b2FiYnJudGpydnV1ZStCaHg0Tng4UjN5WmVmY2NaVDA5RFMwVE13OGhjZ1VKQmdJVUtGQ1JjaFVwUm9NV0p0c2RVMjJ3M2FZYWRkZGhzeWJJKzk5dG52Z0lNT09XekVFVWNkYzl3Skp5R1V0eVNoYnBqYVhEeDhzVG9EQzRsSU9CdGp1NUp4cS9mZ3VZNGdzZnk2bkZneWJVV3RwcHNMdDFrd3I4TXlLMUlDN3JYV1g1KzgvTEdrUkVieUpoR0lScUtjYUVra0VENFFiaEFPRVBvSU13aEZoQ0NDRXg2Q2UrSmluQWEvd0h2d0tGd1A1OEV5S0xQbDdiOVROWEdqb2Q5NjBNazIxMUZOSlpWM0NhTE4ySmdGQlc5Y3NjY3EwK1RCRUl3V0srVWtKQyt1aEI1QktidUdRV2N4ejJMNFJOd2VDSnAvekswMHJHUVZCSFZoZG1Gb1BkUUtRVW5IYktBaGZqRUVaV0ZtWWZCNGpKZ2dwMk1HMFNCN25IRXBUU1VHUmlnSC95L1RtZ1l3SjRwSmtkN1NRaDgxV0Z3UW9qZ3ZNTXNhQVdUYkdkVVlUVnRXQUlaN3U0MzhqTWZkb1k0WlN3ZXlFQ3o4VmlKUGFDdGVTenRKbG1yTXZsbzJtVnlGM0UxUXhqc0VXcjNpZ0xTa0l6MEZVRENGVWhpRlV4UmlHbm9oSWZ2WTY0Uk5xVmtRY25XNlRZVE5mYW5wQlltZ21TeXFzME9ZNHBOdzh4Njc0bm1GODg3bk1jbDVPN3FkdWhIZ05BazU2aHlZcVVPZ1VxbndUaVVFTFpZMnlRb3l3ZHhOK0lGUkVzYTRNZVRMT0RVVDZKa29pRWtpbUN5T0taS1lLbzFwY3RoRUVkT1ZhVk9uaVVFc1loT0h6TWlDck1pYWJFaE1VbkxJeTg0ekFuV0RTSUF3SWhCMS93ejNTN2t6SzVuVGVjdWN6dHNLQjg3SDh3NlhuQytoeTNrWGxqa3RRNFpURXdyVUJaQ3BJK0N0OEM0SXFxUmd4RElPdjJpUkNVcTNXbUhDMDdTNi9sT01qbmVlRXBGazlVaEZXcytiWmRscWU3akRMdjNwRDltbjBBRWpKanJxcEVxbm5WWG52QXNhWFhMTkZEZmMwZUtlRjJiTmhkR3p4YURkOWpzU2xwbk0wVHIwQXJiRzh3UW5uVStpeG5rakZqb3RoTmFwQm1ucU5MRFVSc2hVTXJ4UUNVQ0lKUngreXdDZ3pMM3lIRzY2anJqbW1VaTkwMXUyQkk0MnlERjJjNno5SE9jSXh6dkZDYzV4b291YzVEb251M3ZtVXp6MlF1cEVjS05EZ0RBaUVIV0h3THVKcEhJNmI1blRlY3Q3STQxYm5tQXNPOEs3WUVqMzRnMTdQRS9jNWhsUDk5aWU1aWtzMCtiSlprK0hRSzROczJrTDRVQ2RWUUpnZzhlSnN6TzVVWWZpRThBK1pldlhIOHNhYjFFR01BTE0vb3lOUEFEYUsvTUJYQVNRczhzQzlCVW5CWmVDMit2ZzA2R0g3MU5RaFFEdkRxc1R3NG4xa0pZRzI2VHhzTzdHWWRVQlZpUUVXVWIvMmJueU1zWGZoTGdsdWc1MHNqdmRPd1NER0FtVDlEbENnZEJhS0JiYUNSVkNiNkZldUZrRUY3UEUzTDhkbHQ2RlpMejE1RVZaQUd1ZDJVSXpvV1VSdWRCclBINUU2UHQvZmluTXY5V3QvNzlyNTdUbVlCR0w0Z0dmUHdIdzJmLy92K2YzZWZUaS84VC9LWTltUGJSNWFML0xzcXJmMHIwdmVjL2hyUTlWUTNuV2grM0JYL2IyaVpEQlkrNXpYRHFjL0tBc2ppQUZXZ2dWVDJYM1ZIeTM0Sjk2VGdSMi82ZEpOK0wvazBiRGM2OE9TUmlQN2RLMU1UbEtlVG51MmFKMmtnMzQ0bXQrK1Bnb2ZwKzltdmpsdTk5Um9nRUNGRVNDSXlLallXTmdZckZneHB3QW5aZzlLVnVPN0pKejRFNU9RY21iaTlXcWxLdFFvMUsxV2cyYVRURlZremxtbW1XMlNkcDE2OVJsaVVVcExMWkduMzRETmxwdUV5ZExNNDlaeEpIa0dUU2o2MFo1b1hmOUhqVWV5ODhIVnpyb0c0QWpmd0NvVjRDYTdqRGlBR2czbzZBOGZqNVZvYzM5MUEwais1TnlmYWRsRDI5aHNFUG9ndmFFY3lLdEZRdTZkU25hT29RcVBLSzMxWGpWaysyblhvMTdxR0RxVVh2dUllaUtOVHBZUmF2MG1HbzhqV2wwYU5NN1FkY1NTSWFXdDMyYXRvamtnaFZDN0haNFZ1VnJQNis3MGhzZEQ2VmhoZ1MxVGJXUGVCQXlwa09IZGlLcDBLMkFub0Z2OWJBZnNSWTI5bGZZeDRyaUZtMi9UNDJJVVYxWk9YcVIwNFN1QXFsajZJNnJ5VGRHbE10ekZWL1o4YzJxUFp5eTAxc0NOVXFyMkF3THJiVW94ZCt4ZWsxa1IwN1o1T3oxa3dKOXFvSjg4NTJySzdQbXoraWNXWmNobWV5UTZPODNzYlp4ZWx1Q01Tais4dlJZLzNSK2hIcXBwRHlqeWJpOFBMclpnK25La2pNbWhIcXdmRmptYm93V1BTdFh5cGI2MHJMOEp5VFlNNFZzZXdlbUd5T1pFY0V3ODZMNzV1NU4wY25TWTMyRVVTcnpRRmFLZ1cza3hzUllacG14QWswOWVSTGY1WEV1bHNrOE43YXR0eWJDMzJ1U2pVb2xEelR5RFdKOWpJRTFJWjBmYmNWVTB4dlk4Y2s2ZTVhV0ZXanVHMS9sWXBnWWxxQmFiZDFuTFdDdnRvNXZ0V0MxeEIveVk3cVplYmtiaXhOVGsrSnRLNk10TGJ3dDB1cFR3a0tTNjMvOXBvVFVCMDJlR0pLaUtqbmFIQ05LVFBsQ25BaktWZGVIc3hrMG1raHNOTjJmMTNDaE4xbzByZFVmYWRmZ0VLdWNpZVZkQVdFMlZtWm1GbTV1TXBtWmJiRFJTU0tyQVAwQ1RuUmVwcFhTeXRyYXltb1haYlBOemVlazYxUWFHSmEycnVuQkRIdUdmVmluUlJxZnNWRHJxSFB3MFkxek1KdXFkTFNpaDlzSjdLeFpiRGJiMG9KT3RXZUxMVmtzanBtY0UxbU5wblgwN09TY0NjbDFqVGtKamJTRVBVeDBuTm44eFdYZEJtUFIzTVZ5bVYxYVhYTnk4U0Z4ZUNYMkJpRE1RSmtNV0ZBM2Y3Sm50NWJsdGRwQ0t3SE1ZbVkvWHlFMU5OKzZoOFFRSXZhWExZa0JjTHpTdk5hbEora2QrNVRNaS8xOERHUjNIVzUrSG9YMWxhMWFFM0VXSmNXUWNqcVY5Z2ZCTytZZXpja3VjV2o1c05mbjBsU0JsNFhTaGRvOUxMaVlHTlpoeWhQTmJWK1hCT3JKUkVFUWhIUzM1VGsvZUwxUVF6VHZRcCtGbEgzUnMzNVNHRzJ4S0hIS0JCdkJKcHIrNTBuMi8wQTdwY1FtV0RRUXdxSVlnbVZwaVNUYSttS0VLS0pGbGNZM2k1S21OSHNzcmovMEZ1M3h3OE4xeUw0dWtNNXVubGNEWDVoVDdOUWlvaFFESmlTa3pzaGhrQ3I4ejQ3NjlTcUQ3Z01nWFg4Sk04OFFBQ1laSWZSNWtNem1LK3JPUkpYb1prS1dncVU5Q1FBVTVPT2piWlZiVkxFa1IzNDN5NU9WTk9oSzNLakx6Y3JpVzJVMzV3WG5xaDBoNFE2SmxsTVpCQXNJa3RHZUFSRUVtbUJ2YkI5M245QXlpQ29UcUNnQ2FFelBscGxrVVpBdmJJY1lFaS9YdFR1VHQ0OWN3YUw1ZUZHR1dEMTNqeHduS1hlbkEwUjFCWnJucVpyd2RzK1pBQnB2d01KY2pPYjdFbjhhNjY1b25mOFkxeEFUUnhkRW5YMmdqTGZjQi9kMm1DY2RCQ0J3OU5YTVdrRG1EQm9CTkR6bGVIRWVRQ0thaytiU1VJTzdLZjJVSEh5a2lDRGxvZWVObWoyejlnVjFaYmNjV01TQzExV2QzbS9mSDFxM3pKKzhDZUR3LzRyOHNEcGYrRjAwZDlGT2lDSkFLUnF3NUl1d2RXVFVVTFFMV1EwaHNSZjBTNms1ZVNuSmtVVmhGMnNmeFNaS1hzYVJhRXdNVHE2TUY0Q0l6bm9aaGZUbGNSbStqQUhGcHJEb01DVG1GN2RlZ1IvUnZJU3ROV1FDeW1vMnk5Und4RHhDcDlGODdtSWd6QjRHbXplSWJodlNyb0d1WHdFZ0VDU24yNEpGa1dJQTNxa1R3N1Axc3ZPVldNWkdCUHhXMnoyRWZPWEtYRTlTUy82UFVNMG15UDZTYWtkTW0vSDh4ajFtczRORmN0Rmo0WkxaVnlWOTdoSUsvL29ReGNRdVRCUmh6NTd0NTM1VlBxWnFxN3ZCVlZPVVFIUzNvWXowbnZWcnpYL3V5eHRqRW1wb005RUE2cTRZTFh0ZElSY1F2RE1XamlkdEdKNFFtMjJORDJqL3RpOVVTR2FmOW5RUGwxdUIzNTFFUzRiY2lEaE1kQWFiWmtqS3BRbS9LbHVpWEs3TE15WGl6SkNvM3Y5M3QzTjdCYkwxTkI4WWl2ZG1HZnF3bDhYeWxFUFNFTzNXZi9laFhrQ1pvVmcySDZIZnlwUCtzbWY0blAyQUZnRUh4SDc0OG9BQ0ZTZkJkdm8xSVhNTFBzc1FCTTlNTzdPa3duVlhwNW4rNlF2V0wyaThPTFZ2K0lJa251cjdzemRkNi9sY0NMeEkrcWNTSTlISURmWUxVeE9rdHQ5R29RYWcrMXNBeHRTQWZyd1J3VFAwSEExQjR0Wlh6cWtBalpDaHBwOFZDM0lTaU1NQTRhSlkycnNIRXEwVXk3WlpiVFRnWW84SjVwZG5tZm9jUHUzbHpzMWJUVlJGOXNZUmQ0ZElOK1dUMzl6ZkI4UDFqZG10NlY2dzJJY0ZteWU2K3RaSitRaVVuRFJ1SW9NZ2FhUSsycng3TFRDTEh3UEM2TTlIZUh6MXQ1Qk1BeC9qUVZ6KzU0d2lDSlNzZzNaYkp1c3dqaHU2TE5BVU1iMkwvdUxKcXVBTEtJQytzZ0RnbnpWcWVQSUFCWWFtVmJnYlJlMHBRMlcxMjUvdUtPUEJYVGRZNUlQOUFnQTFJbUpSUmQ0SUtPUjhhRktEcVNkNDE2ektkRDgvMkZaWElrS3NRZHRDTzYyaGhZeHhHMUtLQVkxTHgrWGNQY0pWYXluSlFXS2FNOXhrWTdyd2xSalhyWXB1TU9GTHRmR3g1NlA5UHV6WlBpU0U2aVlzL3lYb1oyV2E3K3lRRVhPM3RMMVNWQWNlMDlldTNUZDJPRnk5MWpIS2w4aGhpb2Q0ZWp4bWx3ZkFIODRZSnV4Wnoza0xxZlBubWZuTjAzT25CNVJPMmVTbXJ3ajNGOGJ0RmdTdjQ1dk03Nko5VVFZVytRczdVWi8rb0tXakYyM3ozaDdnOHBZT2t5M0Q1VnBiVGVmNUtMcTdzRTFaMmdEanhjVkViVnhTMlM1NnAwNGN4NW50cjZrckQ1Yys3bk1tcXNZUDIxYnZUUDRYUFZlZmlIL2JDREtLckNqdFVvK2VzNnoxcHNVYTZIL05QK2pCanpvTTd0ajJ0Q2lJLzNZbzNlK2wxeUVwaTExUjFyMEJUMWY1UUZncDNXTWFiNDlwWHhvcUxOM3lodVBRMXhUbTFrMVRJVDYwaFJGUGJ2ZmIvSDRaZW1SclkxenNKeGptei9WQVpDTWtKU1FRTFlGWU1ncEdiT2wrVGI1MmY3OWw5dWZZWGdqYmYzSFk2Z2lNaTRxM0ZtMnZ0WVVsQ0JVL0xJdysyK1lvSUxuMDBBdlVnbUE2cUVZalJPL2pVUnlzNkpmUGVoYWd3anRhaGxCWEphREMydThlaXRrTFFQNTJ1d1V2ZzFpU0JndnloM0krNzlJcFdseHJ0MDBFMldZd2Q3OTFQOVJMN2pDZWRuUzl1SUprWlZXZ0pWMS9FMlErbTZEcUVSSVIwNklFYXJqNUs2UisvUFUwdEo3VUtpK2lxcm1TL1VwZDd0cDNaUlN6Sy9nWXk5MFIvL2ZBWXozdm1oeWo5djN1SDFUVlVGN2VPVCtiZU1ieFArYTEyZEJ1NlMvRlJNYmlzakNXbXo4K1lybFVYSEIvNXNreE1TVk82UUhaV0l1bHBWNjZYaTZLMllCUlYxMUlZMlNJcXIwV2E4bGtZN0tzRlEwODVxL2JuOWI3OHZVM1Rldlh4L3R5ZXBiaDhaY3pVMGRTdkRrOG5TOVdQaGwrcC9NbE1mdGlLMHpTUDVRM1d1elJKRVRaRVY4OS9XSU5uOW56S28xekFrRXNXY3NEZmtub2hSY3Nyc3RWUVlOVlNWanUvc3d5bS81eXk4dEwwUnppUTdyU0kvU01jZHdlZTZGNklxZkVVVkJhUmtXUkozMFZoNjIweDRQaVYya3MxNUQ0Uy9uNnV5VUtreVppWk5CeHhyU1phRFIzOGFBRndJRlFpTU0zT3o3ME0zRHJDWUZyd2JpNnliN3RTZTN2VjRMSlRlMWtUWWRZTHgxbytaakcxR09BeVdOQmcxZVNwOTVzanRseGMzRDRZTzJhdnN3cnZUU0FZZWZZbmhkbTkxUXBqVjJvR0Jwbmk2SzhuRWFHMU12Q1laYXRsaWg2NzlETGJjRWdSeWtlUmpCQVhpejc3eTJyZ3BoUVVkamVzd041K1M3aUdGSGZiTUpENTFMazhFcm9qYmlGb0tGTlUzU1hhamVXTlBOYnViWXNUV3gzZFZLdWlmZ1FlMjlScEtuMWhtNzdWWlM5WDRhNzJmWEI0aGROTXBtZ042c0M4cjdhc0tDV1NMUkU4cmpsZncrcEgzaGl6NDNoemRlTU9IZVBrRGRMV2owV2prSXNyQTF0cnpnWkZTZXRuS3JLUkwrb0ZQWGJOakNLMjZjb1prL2FXTWZ6dXlQdGxZY0c3QndBckZvTzFwd04xOGZIaXdqSnVCRVc4WldMNytsZ3BIckFUS0lMWFU3bGFVc2kvblYrZU80NXAzWTZZOEdvc3pSZGVTMXlHWWZMck9JY3ROTWtkQk5TT2c1WHgxNllkOHVheFFMWjMvN3AvR2FsYzdZNDlHdmFzZit6RlZhWDMydDJ1aUs2b1V6RGtrMlgxZWN4ZXdiWVBQMlAyTU9GYUFsZFArUzN2bmVqQnJLY3IzcTI1N1U0dDc0RTBsWi93V2RQcnk1TDdWNHJPMzNsSmNnaGdiaGw2RWVIdXZ1NWNMbWY4d0szM2tEMUhaNVhQeG5nZWxIRDhHWDBDTnJyeERhaE1ybVZxZWZ4Vmdad2ZacUpDTGc3SUE2T1BoY2tSWC82UEJBdkFNRmYzamkvRnE3UWhKNmZLTGk2dzQ3Nmg1dlVGZFpMNFFDMmcwT0lnZlZrbXdMN1RMdWF0czQzQnFQWjNJSHA0YVBRZjUrN0lDekRXYWpMeHdkRUVJSnQ4UWthU3NGVW9SbUVpTkpzTC9wUHFGMnlwbVcyMnJVblFkcjJ0UlZXSUZscWFwUzh2SkplWUpHbzRNbTJXb2JZQWpOUktmUVFBSzNpYVhkNTVUR2JqVTVvZFhWWnpQMENwNGZFdnozcHdMbVNGQWxBWjlrZ1ZRWEZ6UEw3dXgwdDRoTVkraUROS1kzL3NSNUtxZzQ4UTdZRkFCbDVmaExiMTBqRVJoZ2lwQ1RMM29JdEVJVjhhTFZ4akNGVTMraFI0WGlxb2VuNXNjZFVUWDBNSnFrbVVCYmNtVFZ3MVhWU3JQcC9nVjRYRGdWSk5DWGFZbVk5UjhoQk1rVFl5eFJ4MVQ0bDV3Y2VoZkc5ZEpqbWVCSmRKSnZ2TCtwc2ZDY0h2dW8zOXp6a0pFbk5tcmp5SVd3ZzRGUE9Xc253Y0EwaFBlaHd3VlJhdEFxYlg1UjhFMFc2dThFeElLWXhicXBIc2RIU0JPMmx6T01Ga0lDMmcweXluT2ZvenhpbUh1ZDhrbjJjVW9BZEtaSkU4Uzc5UGJ3ZjhDMVFBS2hJWkc4cEFnbkdRWW5paWVYcWNWN3N3bTRwMDUwVlRuUEoyU3N5MVBlTHIyeE10UmVlNUdBOHJQUmpseldKVDVvd2l0RG5NTkYwNkppNGMvZkJZVHc5cnVmNzJJL0RIZFBWcnBwVENuMlY4THdqLytDSWZ0d0FhTVEzaDVoaWN0YlZ3SG1ZSEJMSHByRjR2VjJUcXhPK2M3SHhHd09nQUcyQXBGV2xDdkFYVTlZSzJwZGVTUVFWaldVWmNuRWU0bWlTS1IrUkdQS0JMQ3N2YWxLTDhmU09UUVpITEJrLzliZVFaRWNNOFBYSWE0QmRuOGxWUWY2Z29tcFlrM09LSVRGVFVpWUtKK1VjUHhGcXo0M1h6elBhd3Zqb1EyMWYxZHRoYUdoM1A3UU9rZ0ZZUk1BYmdjSU1BWXZmZTg5MjR1UU5pcEl3SWVDMDJ4WENnTk5ud0FBb1NNYnhXQ2J6ZC9JR05nM3J4Q1R0QUFBeVNhMHJaaG5TTWgxbVIrZUlPaGU3L2FQaGVzY3RqejZHeXVaZDYzVXFjck84Mkx4WUNmQlkzdGQ4WG41bTlRL09pNVhPaFRDUkFNWTVCbGl6SlliSllTK0xVaGRZcW0rRm5kUnJpbGtwZ2VUVGVhOEpXMVltNmFIcVlVV0RBbWlvRHFKZDloVyt2N3laVEZabU9vK3A3WTBQM1hhaW9iaUZKaW0wbkVPckdNQVgrSUFFVHBFL3BoMWdNWis3bm1tWUk3N2RtYkhONDYvRnVtNnBoTHlMYXFuL3JIenVBRFk3RU1CckVCUk1CcU8za3ZWaTdTTmZaazluWVF1WWdqYnM4cVl2NkxPeEJGVXZRd2JKYTVITmM0UlpCVjE5Q2tENXpzcllxRTJkbmNsa2ZIdXhUZThMR1BoT1ZUNFphUUJpMEg5ZTZ2TnpwQ1oya0pRMFQrNlJUM0YyU3pkL091WEpzTmVYazREcTJ3RURwTFlXdUNoUzYyNVBSZTUxS0R5YWxwR2ZvenNXMHFuWXJwWFMxeGVpeGZJV3ptem9hR0Z6dkNRNHZXYW93a0QxemhTRXRVVGpkWHI4MHo5MExidXdQN3dpMno1YWdJWXg4R0FTOUh3czJFSEp0bHFjNzFhRjdmcW5WZ3JHMlIvY3hRODZHVkhoeTdZZFpRQVRFS2dYU0FyR0RydG1JTVMvSHRPbUt0RFZmbk9lb05HNDZRY2JyQllsVXZIQWdoeUVRTnBmYStmaU5rQUFMT04yMlhCVG5BeTN1ck9WTVFnWFVrdDVIUnNrM2EzYmJKUW5tRTBHaW02MEJ5TDhhNFZ4cVczbXVQMFRqZGZYREVseEhTVFRsdlROTncrSlZWMTFqc3cwK09wd2NaNDFLTDBreWlVczg1eVkwUFFxN2V1VUtQVkI1Z3F6b2lRRHppM09mRTNZUmVTNXhZUWc3Y2R5a1JjKzVVUHk1TEF3cXFnMkthdGhEQnRkOUduQkVwbUJQSyt6bDNRMUpsV0xxREpqbk9xZ01LYmVSMjdWdkFId1BwU0lYbG9aVmd1RTNmSHNrc0lCMGFZQ0hhYWovUHBPNDRjeW1uZUhWYm1LeFIwQ2o0a2sydmZCdU5TVCsydmlDLzdneHZweDN4UjVrR0xtYVJlNnpzUW5GNU9CSk9hMWFqWjZiWE5XcXMzZERMR2ZNQWxoRFZIMFRmSXRHUjRrdmlJRUs1c0lUMmxuNyt3czNCeWJ2bkRsZkFyMHoyZ083Q2x6dkJUVGdtbWFIK3c1Q1NEdWZSRzNEWjc2a1FGUjJaSDh4VzVJL0hzOXk4NjlKaFJyaGRPNTVubFRvbkFxc0tkeDUySzluQVNVQ0ExeXlaVlduVFlSQTZtTExwTkxGazllVVN3US9XVDFRRExRUWw1VzdRMUF0S0VxVzBkTWdFWHVLbEZTUVJ1QW9TeXVxNnR6WUpRN0o1cGRKaDZXdEJ3REFuZTNpQWJtaE40SGJsNFpSSnFpK1R1NmZvckZaN25jRVR5M2RyU2pLRitjSldpaWtwNXNGdkhqeFRsQzNuV3BaMEJRKzR2bzd6ZHpHSzVsbnZibjJuc3dxYUgxSUtpQkZuRlJnTWxtQUJBNlZyM3lJaWxuV3ZtRHg3RUw0NDE4dVBZeThrQ0hBaEJ1bkZsTU56bk5DU1JQeVhYZThVdGRqbnBNTy9TTjc3VlhYM0g1ZUZnbHRXZHhYRmZvRGhjZnhHQ0g1ZWJwRE9tU0d6N01ha2ZHaTZLM2l1K0Q4c0VNOFpBR2tnN3V6VUZsS1c3R3JGSjFDcVQrZ0c1RWJnQnNnQnJocldFN2dtbll6c2hRSzBHYy9GNGxBYXFTSFBEcnMvaDFxcW9DUExuWjlQdkJDMzdyUWVBQTNFTkJzajBaZXN3emUxTEZZYUhDVVpXSThkTjk1cVdHQzVOWTlCWVNTaytJd1VVL0xCYmIrTmVJL0ZjakI4Z2xBM1dXUmN2MnI2dm93cVBkMnNaejAwZFQyTzFxMGdvbm11cjI4MWhBeFNsTTA0Y1huTVhpSTRYa2VnUURrYmRnV3Irc2hZMkJhRjZNMStGTHA0UTdLV3BvVzJHMzJHSkNtb1dWOUdrUVdtbjFoYzJrdUtKcS9VVStvNXF0U2xMTUhWQWU3QU8yS0U2d0YybUZMWDlFVTVaQlBsNmlITW1DU0JZQU1EMDFIUlVhVkR3Q3hGVkZSQ0NDdy8zM0hrOHlDejNTQmdFazA0R3FUZTRXaTVyTGFaYVlPQWdYc3dEZ2JabVFJMVh4cEQycENtOURSblJZWWtCaloyalorNjV3OVpyMW9EYUIvU3d3SE9MWlZKK0IxQllFcHJybkJMTXY2ODZFbEFsbDZZaktabHpwZW4wMjJTcTlMM2p3eDI2SHVsUWZGZEVnRUN6WTFaMlovL2FEYTdOZXVCSVJCRXI5Tk94SlVMTHd2T0szLzUyN1VIM1E4TWxlUU9tMmRhV2JFZjR3ZTdRNno5alpYWHVxS3pNbXp4MlE4d1Nhd1lpOUwzNjRtdStPMk1mWUZXTTNKVm9TWUtBVm1ta3ZwUVdzZUJnV2Uwc1ZudVdEQXpTTEI2dnQrS0s4S09wR3ltQkhpNUoxT2dvZ0VZS3Z1WlZYellnbTEyK0lIM0hpaHJBdzB6OS94VExGNFl2akhmTnljSzBVWWQxMFRKRVBSMEZYWXFjNmlOdkYvT2tZTlFHNXA1V001dFpycFY2U00xLzlzUGxHZmVGNmFZMThLVzNCY2h0ZzJaVjJnZXhpZEZTQkdtd1I1QlNsRkdEcHBjQi93S09STE9UWmtrUXhYMTZMNVZoY1BvWi90c0lwb2FCaFp6YmJHM09mcFdXc092YnhUcFBDY3ZFSjFlRlNXdTRQbEwzSE5pRmN5ayttWGQ3RnFqUXJiNkV1akJYa2hRMlc5djFOUDVKd1Z3bkluamwzVmNkVHhQK1g3VjhmYkNEV1UrQUZtdEFVOFUxeE02QlFxZHhKdkh6UHA4dkhoWEVwTVZwSVZDYTVUT090SSszZFJEVkRYNVFoZ2JpYU5oZ0wrMVVOMml4T1gvay9QME1JdzFMWi9TdzRjSkJlbTJBUmlMcERDZkNLcVQzMTVKMmJJM0dZbXp0YWRwNHpIV3FpTmRZQ20xemhXTG9IdHVKMW5vVzNrSncvbExWZnJ6T0l6QlBWWTVzODBENHRBc0lDYmxkNmU0S1FJSVUwVkN6TmNuVklkK0Z2TXA4Q3NKWTdFVnJ0SkFyWEw3OTRheDN2RnByUVRvSm5YSVdYQmtMU0wyS0tpYjB6RFNSdmNINTRPOVF4WFlOZlk2THlMN3lRUXVid0VNaThuTjdhWDhuTFB0WStxbU5FWUJSOTVYaC9vUEQzMmFuOVhqS1dJaU9IQjZSbDBrZk9EV1ZRVEdackVvK1FtVTBDKzRDclVpdkZBeU13U3hjZS9JNU5WaUpCNFRBandyclNJU1lqbkhjRUh4UlZtNFFzazFzQWRETitnT0txeDZSREhLK3pJdGVGSlUxWHdjcFlyeFZ0Nk9UQ2VNcXhxOFhHNnNBdUI1SmZCdm9pV3F4WFJXanJKYWFialc1MkhMWElMeUNkeGlBY1RpUytxNWlEVXR3UXFmTUQzVlJlQ1c3T3lIMXJ5Ulg4eE5XVFFHZHZNSVJWRWtvT0lpVWFqOWUyZnQ4a2w3dVd0OGVsUEx2cFlGcFMrRzVaUjhEd3B3Z3FFMnJOUGNlUkRuMWxGaVNRQTViSTlYb012a0RudURUeUJJSDFNbW9jSmhSWXM3ZWJ4SUU5d0xxaGxxRlJHS1VqakQrWkFndUhhRWdSNWlUTUlHRUprMDhDcjU4eXY3dDU2aElWL09tZTd3Mnc0V0FPV2lTTHcrRjBmc2grREtVUVhyQS9DTlRsSGdwVVIvVzBZTERpbGhBMGdLVEhIbDlab2tUQ1hsRTlXVVNkUDBhZlkyb2VQT3QyUjZvRzBKMnVBVUkrb0YzblNONEd5Y2taWmZLU0lQVVJaS29DRTBEb3BvMk9zRkxYS0dNQVhWdEV4c2xzdHI4S0J6RDhQaFdOSXZYQjlvbFpOY3Q5TUxkYjJCWjNydTZrZ0JEZ25YRXVDdUt1bmU1MTUwalg0eGJWdHZxRUZyV0RXeGlIb1NhRnZlZ0p0TlhZWWxLbVRqMlF3djFqMGJpT2Z2c3RFd3RrNnp4Z0p3V0xXTUFwemFGU3JHbVJESWRaVG03b0xtNHZ4QXRXbjVEcURRajNyMk9MQUNkazRoSldiTk9jTWFIOFF3T0VvVmZxT01OOU84dGJMZkVZUGk4WnRqVmZ5R1RFZjB5WFg4S0lZTlZYRndDMHF1U29qM1pHT28vbnh6eXVqTXY1NVJ3MGtCL3VrT0xxNEdRNlZCdFpyYjBKenA4M3RJTmw0bEsvRXY1bDNiWnhZYmgwbXR1TkhSVitqYlpQWVlMbWxyYnE2dUJFaEJsZGlIZ0pYL3JkS1RJdGNGeHdhdXhpVlpSWmduM09sR01nUzhzbjB6MCtVRFFvbGtJSkExSnVBSU5Td3hZRSt3S0lWTlZTeFZ6WkxnUktENUxUZEl5QzFvaVJ0UFpmRkpISS9WUjQxVjNjWnIxM3JjUUc5R3lLSWxSR3FodjVIWjJzSDRQQkdDdDVuWFdSWlNvQTF2UkZGS0g2bk11eU5NNmVzdkJQSHZ5eUpYUUpGSzM3VUo3QjNwb3FiVUxnbFc1T0w5VThSVzNoZWppYVNaTllMWnl1WE5zUXZkd3BPV3pNQ1dERG5KVi8zWm1CMHUwUjgyWHZ2anI0dTN3L092OWZ5VnBDMHc1TWg4QVdhRHRqQ2xjNWJ5aDdVeWc2UWpVTkdnWVJpbERRUG5pRXhsbExZYjd4RFB4UnV3UG5ka0RXQXFvR2pJR2dTU1lhR1F1ZzJDMCtGN2wwdHQzVVNUVjBTS1ZXWjJlOUJBc3UxRFU5WFFpbXRxOTZPUjhxdUFjb1dyNm9mTDZ0ODFFczExMC9WU0l4UTF6NUhJSVdxS0tOb29oYi9RZmw3VVhBNzhyOVg4Tk1tL1NWcEgyc1NGRzZkM015NlBTTlh4Nnp6Ly9iNjN0N1NSUVBLU2d6Y0pQNWhiU3oxYWNPbWU0R0xDTm94b3phQU9SaU5DZE1oM0todnlxMUVoUzhOZnVsbGRhaHk4TGFGUXNKdWlVdno5Tnc3aE4rbnhhK1RQKzRxK3UwbGRUanllc2R1bjl0OWpIWjRJL2pDQURXaWFyKzdSRVRUVzFJQWM1SGppaC9JcXdSVC9POEN0UjRIL0ZSeXljaTk1RmN2Rll0U1l6ZHI3WHNpazdCR1BDTlBLQkIxUlNhVWxNdDhRMjRqTnVvUWc1WEZGOG1idFY5c0VYWEE3c1RhZ3RndVFNRERPVy9pZ0s3SkNZdkVUSlppUGxhaWNlRy9QRVlqYzh5UEtTZjNNeXV2RGdFbDE5NDlmOHpNbVZvM0FJM1hlbldxbDlyWlpydkRXSDcyZCtHcW9QdHBaVGp4LzNkMkR0amJUK21yUzdkZGw2MWJuZVQ4MWwrc0ZPcWNRSFMvdDVOTlorbDlCVFBKTmZQOTB5bytReXhxSFJrc2xHZWRHVUI5Q2dsanMrU1ZBQlFkdDJFYVh6RHlySnNzMnpaNXAyQnBEQ2xqdFRJRm1CVWxGYmdSSjVFaUUzWml4aXJzL0k1ckhCVTB1ZW9lS3FNVWk5VTErY3F4NmkrYjh1UVNicDdCRnVreHlkbisxWUZnbWluYm1XQlFyUWNCc0ZqUVZwRE5GR2Q2NlRhUjZJdEpIUnBiWDUwUjhpVDJtV2NMbmNmdW5YKzdQWTN6OEI2WHVsNUxJOVlVSWZmTXhaendHV1E4UUZXazVaQWFodXFwSzN5R1dPMmlhcUpBaWFvVEo5dXFGRXVpOXFaREdGampEdDllYmdxTEtPT0JwM2l3YVEzSHV4dDBCWmpsSm9rbGwybjdqNmJxWDcrd1N2clZWQW1hdjNuRyt4SGo1SjlyRzlrNjRaZHhZMkpJZTVSMk5YN3lBbzNoZ0ZWb1dLRWsrZlZ2RllWUTYwWVcwd3l5bUE1c3BXc1pCdDZ4ZUlVTnErUnI5RVVUVVJWanRVdEFaOWdNK1dkS040Y3F5VkZuRjdMVmhwN2hCSTNLaWxOT1VCYWpla2FBelQydzBxc0ZEY1dCVmNZNHh2K1lBbUN2STJGait1RGVsbTZ5MUtMZkVHWXhzaC96NGNKckJWWnBFQnM1VHgvVWM4S3A3U0RhbklLZ3lNaUhLdVhjQ0tHcnhVWWNPSFc0NGtRbDYzU0tqVE1ITUhreGRmMlFXZys3eDh6NkVUWXJrbEZub2h1aWFBQ2NWdlV2V2FLUGFnSWE1bmtMQXArMllGRVhuN2ZqK3NoMlUyN1NkaFRVTk9EbnJQbEJodHJHeHNRelJXWDVReVhhRWFjcTBHVi9VQy9FK0ZVVVhDd3lrU3lGaVRLVzFEQXpWZFRGK3ZwY0hBZVJTRUJORDRTS2RGUXdYTHZreUM5ajVHc0hVNWR0K0Y3RExUN2RUejhVT3pDQ3laSG5pRUR6TXIyOGw0TWRrM2pzMVJtaUZmVVM5dktGUEIrUENuelZGR2YxWXFMdkFqelIyZW0xUEwva3V6Q0xqVDdBWlkraHhGM01vajdtV1JpaVNhSFBES01RZ2hpUEYyallCM3ZrRU9nSmlLcTBxUDlXQkNYeFU5TzQ1K1QyMTJDQjBNYTEvSEhRYnRsTTErbTk5dWV1cllFMC9zK3EwUlhYQUpXUmRhQXJsMDR3UVc5bzFsWXBqNjcxRmgwV0FRamUwaEdGdDNPa0tEQkdwRHFIcEpZeFBPcG0vdVJPMSs3RGZzUWFUMll5MzcrdWEzTXE5aDBtVm1VM2tldXcrVWk4LzdlWndEOVlHTktHRDlkbklSN2ZmUDdZcHpsL09UZ0UrT1FHYzRmWDBSNk1qcXE3S1JYM3M3MlNhdnpPbTNwVTR1aXIvOUpKamptdjVpeXVBamU1QkpnSG1FQk9lMFNoREYxQ1RtbFVoekdxdHNhVXBQYjNkeXhncWY0VnZxVEpscHFKcmNYQU8rTGhsZ3NhTHFzV3czLzRYWEY3ZllDclY2VjVrT0dJa3NQcWZHV28rMjdkUGlMdzd4bDBKYVRDZjIwclRiNWxmSHZZMEYrWjdXUWtEZTladllJWUI4NG5XTVFCb3U1WjlwaUNtVlJvLzhGYk84UXk4MUxxNVp5eXZMTU5yWnhJc2hGb2FHU0UremxaVS9xb3ZsaVhrYkxCZ1JCbU1XRzJ4Z05NMUNuMGJmSGkvTWRFejU0MlhWRGNkeVJwNUh3UE5PSURSY014VnI3Mkx0dmdLTkJtY0I2RUtxekpGbEVhdFhzeG0zT1dwZEtaalFrdjFhaWhJWHIrME9ha2NDUXRGZVlyd3dTK09nY3BSWHlCWXN0dGlpaExTZkVWY1BGZHI1UlZUc20wZEM5RlFjRkpCYUxXeWtSOEJlUWdSN1BGK2RCU29vNWM0cFY5S2g5NHZnaERPczg5aWtDRnVaM2k2TlltUjdDTHpuNGoxSDBuMERuNFd1S1RKQUpUQUQwTkpTWjFQYWhoVU90eGdLU2luRXJJZkIwMzJudHZ2VUtQcm81TiswUGExOTRUTUh1ZGFBdnJJL1hTK3dGb0Zlank1T0owQVpWZTFyZ1hRRnBGYVRjY3RIR05NcUtJbUFnM2R0dm1sVmhickRaTHIyVlFXOCtFbmQvNGRHRUJBS2ErSnZoelFWWFRhTVJZRi96NW1ta1k5eDljZy92ejRhSktsUlEyRVhsb3RDb3JwZTRUbTJyVE94aXo1RndRUkIvcWlJUkdZNGRYYXcxOUtDdXFzZXhDSHNLYURTVXRGUkk2TUpWS3RlY1htZVZYZitBYzA3M0NkQ1A1MXZpTmRybXlqZU9BRTVTbnFDUFltL1lBcXhLLy9xb1RKRzVURVlEUURVL1ZxZ0tGS1VQRnpjVmJjWVhSOUhudmJvdGJ2OWtnckZmaTlQVFBNdGx5aktzMGVsTmRrKzdoUGpNWk9BRjJDS1FCV1ZSV1RBUTg4dEVzdDBKWGJIZFBSY0ZucVRsT3M3cjIvMitVMkNuVmt0V3pZQWxnSCt5K0JiRkQ2VU5MT0pkSmdnTHZWdFJGNzY0a2Rob2toYzZTREFkRHp2MUNOQjlvREFSblFEdE5yY3lITElvbnlRNTUrYWpEWUdqVHFZSHRMQnFvRVJnRmRycnkxMy9nOS9lWWZzTFpYWHBXdWtrWS91SmNrRkhvY0ZndDdka3dVYUJNM21iYUM3Y2o2ekhLekpsaWxtRHk0TW9MT1h5dEtXNlBLVEFKNUV2cE4vZVpDS3VrMXVMb2M1VTZ4Z0pSdVgvMktUQlRwUmkzNmw5VTdHR1dIY1J6Q2JXa3dGTG5zTnFBWmhhdW5vT0V5ck9PUTQ1MjBMaHEybnBJZ3BxNDFZS3VDamR3WFNzV1doQkhkeTk5NHM1MjNWRHZSWlhpN0IwQmZhdlpYd1NkN2l0ZnhqbDdGUkRyZ1hSaFVqOGV3cXc0VmF0VlAxVFFETEExRWZWZkl6dElUYjBMcDB1cGFIS3dYN05TSkJ0K1dDWkNKT3JvZXhYUmNtaGxrQmp0eDRydGFnNTB6cTVWSis0WEZyRWdrRWRIdTFneFdzbVJyWUhMeXdmWU0wVlA0Umo1R3VBVC9CcTAwVFNnL2VTYWN1KzBtdGRQREh6OEZGaDRLMWpDczhHM3c2Wk9EUk5DaVJHeS9abDNEQkpEeFJtam96ZWJIQ2ZTZll4YlptSlVvUHAyTnpWekV1M0g1VDlOclZtMnZGOHdjSk5LTWFaeXVoTDF2ZWIzSG96RGR5OEZNVTF6bERHcUk2VHJkUkdib3dydUxXd3JsZi9VVWpPd215RjJhR2VZc2FVT2FKbEZidWNTZGtia2NJcXlYaVlFNXQvRVhINmMzMW9vS1IxQ3FEaUtHYVdXYkF6VHZlN0NuV1duZDd5ZWxBcFdRU01nU2kyVkxmenc1NUw4ZUJ0dlBTQXhtR3RUcFBjd0RvSzJsK1BpRmJNdnpWSVN4UFU3b0tJaEN3Rng5amxpd0RlL3hxa29FSTFlUVNaQ0pvSnNkckJTbE5MUnowU3hlOUwwUWd2dXZpRm5kSkttaVVRdHhibDIvWFFyNWpTZy9uaFFvUGtjTHJSTFFWZ0JjK1VFZ0diZ2FwcFVxekRnWjhMY0R5UFcwQ215L3M0OWlBOFlmTWFtUjVvc0ROYXMxT0d4VWo3cW9SOGtYTnZMR1hwQmNleVB3OExZR0FTWmtSUHo3bDZmZSt6cVRHWUZoWm9GU2VZeEdpVHQ3NUVvS1ZabUZGZDY4c3NPRGJKMWRRWEY4UUE3QU54eVE4T29DT01YN0tGM3JMWkxzQktFUVZoTFc3QnFUK09KWFBSVXRlRWpYT2cxdG9NNUlQeVVQTWRIMHY1UjJwbHIwQlgxckRQQkdQelZMcFdnOFVKdlR6M0t3dVVLcGlweDVsZnMyV1FBSVh3eWY3MnhWdzY0L0M0MUVxV0RPSi9NS3F0UVlCWDVydjI2TlBMVzlLdXhtMVQyZXdhZnNOQUZpaHRLaDBEUXlENjFORnNrc1B2N3ZNN1F3TkEvZ04rTGlMeG5IblNGWGlVN2hiQWVIZ09xVHBBcFNUaHlLUmNEN1djT0s3RVREUE9xcFZvazJTNW8zRUNsSWFHYklhM1MyMVZVc1Q2bVdhREd3T21UWTY0RTlOU1l3dzlGc1VXQlRTTTBGN3JQKy9YOTNFQ1k2NHVVUjRkYTNYa2lNU1VNUEVMUE1RNEU0alJ3MlpNNmJiTHBEeFBVbnZraSt0bjE3YzhFMkw4OE9CQ0diWmhFYm9sOGR4NnVhNU1vRSticTltZll3V0tTYU9yZmFKS2hNeVM3UUowMkRycHM3aGtUR09HQktXZExwYmVhaElCUUt5dU9uS3BkeEZlYzlKWGNrQXphVklJaTkrMHZqL1p3bjdiWVVmOXFQWnNreFozQzBxby9LV2hrMTZHSXNxMlVXT0w3NGJ6UVFobzRNS0ltRVFiQS9xRnh0YkI5VExLNXZLYUFyb2piQWJHTU5lNWFXdzhsTkdUY0FoL2NtR2h0MlFxMzlnRmFMdFljNUxYUmk2dkNjOEQwNm1RQy9JTU5YWVJxMXVvaVE5QjRIQWtoMHRGQ2xYVzAvWGExWnJhTElJMk9IY3hQOUNqUWVVY2NvUW56MHhKYUxwLy9leGZiUmhHajUzanQrdElYbE5IVlB2WVprZjhRY1VzVnJ2UGZiSTF6YW1xemhsMGFQTGdFelhxZ1IxcTNlYlQvcUFiVU1RSnFlc1FsenhmU0VrNUYrTmlvM3NlTzFjSVdCQmVwem5VWWFvdHZMSlpRb0ZwQjVIK3RCd1FLY3FxamN6SVhqcXVNK2craG8rRkUxMXlUdjJYeXUyd3c1SVU0ZldETTRBT2F0a3Z0RXUzTURtL1ZjY0xyS0FSL1RWT0VTc2U3ZlpOUmtHU25CcVNCSTZ2Njh4TVBVNEl2UVNJMDNuWFJtRlpVcVVDalNiRzlDZ3JGY29GSDBUNFJPa1N0ditDODB4ZzEyYnRDd293NWk4UEpvUmszMnVvN3FQcXhUZVRvWjY2QkJMQXJJekM5cFdNdzN0UTBtdDJ6OGYzRUZycStrQkJmYmFHZVlhbVlYMjFyVXFUQUpwWWF6UUEzc2U4U1dxcnZSTzBSWXNhdlVqQ1prS212TFBDU0JucU1ibThCS2h0dGJTQ0E0eEpyVXVEOFNWVUc3Q1YvUzBzaFRDUU5iTWRxSGoxbVZxRXhQRWFOdXVnb3Z2dE9rcGVjWDdJTGplcTVndWszSWpkUlVNY2k5ZGJFNWFMaFVtQkROMHk5QXhJcm02dVIzZDBuQVJHZHRsU1ZUa1JnUWc0a2pDV3hvV0k1cFNGV00rNXhFbXZoZ2hYR01OUFcxN1V1QlR0akVSeXZZRTR0bGQzdVBraDZuYmRnQmhwdW1HaHFQc0VQY2NwMTU3K1dsVGZITkRqWTIzME5WYzUyQWJ2VzZXZHhscTE5c1BTRS9qaHl4dStXZk5qUnhzQkdZclAxblF3V0E0NUxZbzRaMVhUVGFUWm9aMUcxRTRKQ1FkWUNhWUVmNk8yanoyRk1iWDI1QjRpM1NyQjBTSXBlb0c3YUhGcXViSGpya0oyTmhIblowblhwOVJGdXBXU0FyQkw4RERWZm9kcUphaWV5Q2YwQ2VSa1lDSWptSE95c0trY0N0ZVZ6Y1lhbHRyWEkrUk9JSWZKMURhSmxTMk5rV2FBUUtQS2xwYnFTdk9nWXJNakNCZVlwZjZ0QXNSb2xsZkFHcTFkbTJpYXlDck1KMUc4Z2JkMUxMOGR4WUNvMm9qSEl4U2ozN1ZxT3pFT3RhWTQxZFZoaXBjRHh0bHJ0UWJKTWk5cXpjQ1dxNUNobnVkQmxsbVdwWjJpSEJyb2VJT3BtbVRGWUt4RHdtb01wdmFZdElJUGpIY0craHYzT3UyRmFYTWpZVDZnWUdtQzFGOVkwSU1IQWlYMWpucTJoWWRpZGVRSWQvTkRReG9mQkszN3pxUnJlN1dqMHZqcmxrd05ST1ZKYURPZVlwdmdLL1ZUZWluYUNkMTlueDZXMHZKUzY4d3h2Mlk0bGNRYzBsZkxlREMrOWdpRzJCMk1UN1FLT0RPRWFrVWs1N2ZIRnlQMElMR2h0Ykw4UkhFbUV0RWluT3A3M1NrZUpVOS9ERHltVGJ0VG90c1FaTklqcmhZd3NMdDM2KzZkQ1JPVDJoelh6Rmx4clpybEhBeEFHc3pPck1xWTRzU1g4RTdIOTVuWW8vV0g4VU5peDBEWnlQUXQxYXNTblN5ZTBrVFB6Y2RhcFcwTEtNbHRTMG1MRkJ4ZlZ5WHlLdHl3N2FyZDUwZG1lL21hRldzdHhMUktlOXNha0lIb0lPbjkrWXprSnprS25wb1ZLV3pMdXNPbUc4Sld5a25qWEl2MGt2MmdqbEd0MFB3UFZ0UUQwZk1BM01ta1RyVUdrcGVrc01jYTU2SEZMcXNtNVdiVVgxSTF4dklUK3hjSmRzZ3FCYmMvNFBUZDZ6SjNWbFVsTysyTkh1NmNFaEtiT2hNcEZmRWVYU2I3TUc4NUFQSjNkL3Z5ZUFza2Znd2ZuU1hud2JSa2ZMWElDL0k3eW1FeGxyLzF1Qm1nRW0yRDNNS3pHcW8vMmQ5OVNMOE9zNFNhOEZ6M0FnZytUYUpiaFFVdlFHNVlHZno2eTVEdFBFK0FSeDBEYWZDMkRWQXd4K3gvZXBMTUZ5dGRwS3AyRnRpeDFRZzlMWXdmcmFRY3k5ZGxhRTBWckJlRDJpYkk3QUlNazlDb3lzUHdQeGpnM2FRbW5Sd0tMcVZnVVZ0cXQ0V1hpeW1tSTQrRUdsdjExczUyelZZVzZ6RXFLN1BkYks4cjRvSmJ4Rm5TYkNSdFNvcG00aG11cnJyclpDMUt1dVNPcnRtRXJ4MjIzdndQQ0RicTUxZ2QyQ1A4V0NxSnhTaCtlVm42MlhPTktYMHJSSHdnV2hsS0h5bVZ6OGpNQnpGSnlZeTNrbzd1WGQvZ0ZBTFJ5citNRUhlSVNnR2ppTzUwakFWNW1YalRBcDdHU25XdEpGZCtaL25BUFJzbUlGY1U3cmduTk9mcUhUM21aV3hSVjRWM3NIc3h3VitXb1dxeGlpYklBMTFKWnRQbHM3WnhmZjFYeHVhZnlxR0ovOTZBT0Q1VUZGZy9tUitSNDdQMTlaSkFhaHJ5QkZmTm9LcE1sVUpzWTNVRW12MktnNEZndWluNzMrKzdZRk90aG9UK0JlbmxKa2F6bTY3N2dCNTJhK2RUU0pNengrVVZIWVR5TU56N2Jvanhjc0J0YVYvcFZRaTZGZkZ3bUx3MUo4VjR2VmM5QmVkaFBabDRndnRPSHJvYjdHSDQ2a254cW9aVlVmeXJkM2Z2aG43aklIb2pXKzRlN0crUzBueVBSc3lEWnIzaWpQOG0xOWh2ZzYwNnVmSUNmaDlucUR1NnRrWEwrL1dLbHZ5bkxzbTd1ZExackZqRXBQQWMyUlFZZWNlSE9FWWk1U1V5cFBySmpWeU5lQW1tL092YlFZclFrd044QmpLc3BEM3VTeTBValFLZUtxcWtRbkF0ZUhzMTNDTEVacHZPRFlPTjNST2FSVUh0bzJuSlo1MS9oL09sdUp2eDFCS3JIYzMvNXkyWm5kODhKWS9iUzIzdzZNcnlFS3F2ZDgxL21obUR0cHE0bGJEVG5DSkNmL0tzVTFJMlJFWGFJbVQreDhnRlk1SEFha01hSE42VG9uRVV0SW0zRzFYZEx1Z2FseUIxWG9PSVVCVFpHb01LMkVmRGNZUnpxLzZvM0w3NS9LUHBrcURrcVFWdStmR0pJQnVZWGlhZHhjQWlhaHNqMWNZQ1JjVzhMVUdlSE9kOXNMU3dpb3NoNlNHRnNJeW1UbFo2cFBsamQxc2pIcU5rV2ZsWk9pdGZzVVRNTFA4ckEwdHJhOXNqNDRNdllTbVhacXZTbnM0THJvc0ZMNzUxKy9hM05MZVlXeFZQdTdIdXlkWVNOZHpENytXNy9DN0lKSTJTamlwOEZWaW44ZDd0NWtySk5GWW1kTFQyN2N2Z2hjMlFzQmFkdDhQdCtUdkxSMFByMWU0MCtzTDFid214MGdBdGx5am9NcjBRWFg2QVFGd1R5TGFGZ3U0bitkZ25GUW11aHdwc2VUc0NnbEZBeE40VkJkOGNnVzFBVUhQRjB1YnBmcnBtL21XaklMU0tOOXNPQWhacVl1WnZBSlpzMFZZNythcGRGZVk3MTNhRDhDaVJ1MXJWeDY3Rm1aUXpja0F3MkI2TTlXbC9RZFJ2Z1ZaQ1hhZ3gwVS8xeERSTDU5dVZQai9mR0MzK0ZxSThmQnREaXFTZFg1SW5MMEd1M2ZFelZTQXdwZy9WOXRvUzZSNW9SWkZmQ2VoQjdjdkRoQ3YzNkV1QTVxVlY0eWMxenQ0cUhRK2J4WVk3QXpGOXFhc1laaTQ3RnJ3T2p0a2lHZWh4S0ovOHlOd2pCMDdaandXdG9XQzZvOGJ4MmFvZ0E3VDhhQXlya0I4M3JGUnRGbnNqbENXdzJzaS8wODNrb2Z6NXdWNVlyUDFVTGEzeUt6VDk2OXd0NUxhR3VRMWtCQUNMaWJPTHNHTFN5dUE0bkE0TmlxOEpzYkRINlhhbkhWZnRjNWNUb0VtUUlLczlLRWl2WGFlQmExLzNxTG9lcFlQTFNVaEwrTWJub0dtbmhUUnFtN3c3MG52SGJwWWtnQXhxdXU2dmFyWGRMOCs1amtqd09pS2t0dzRkMU1LMGdsSTlrNC9pVXhXK3d5WFBxekVacDRJaksvUXZjcitqMkVWRk1selU1Y0k3Y090UU14eTEwdklqRmhJcThyV2RJVkZPbURQcWZJSExCMzQ0ZmxNWXZDNCtwTWw0Q0IrS21ZeEc4UTV6VFplNkc1RXVDeGxIZlQ1dUUzRkh1ZDNOeFlKaHdiWjlKWW9MNCtvL1dhYlQxemdveEQ5bzVOODYxTGNXMUhmZURlYWNvTWplRzJNSkF0N0xCWnArdWJjUzdibEc2RmxST0xpZk9aOWZxWWpTc3lIWFE2bk5ZL2FXZFlOVTVvcm9yelVxSG9xTGl4dkUwNi9HL0hGbUtneW1VNlY1enJINkM0V0E4ZndDQVNoQU5SRlN2S2E4OVJ0VVEyNWxXMmV0b2c3Tm5SaGV1OGw0Y3pxc0pyeFdXOTVKVXhadWNyTTU4ZnBxU1owSjYxMkZvR0grcUhRMXVGMEJnY1BrTHp1SHlKbU5ZSkhwVEoySG1CN0NQVFJQMXdJSStVMVk1MGNNSzVOeTcwTk5Sb0IrMUExeXgzdXZBSENIYnR2L0dQMkFTK2ZodWxHTC80enVIZ3FIRlhsVlNybUFLNkVtd1ZOZUlQOEFyUm4rTUpiaHRKZVBhZmFoOTROeHcrK05wL1lNbVc0L0F6M3ZQWUQweEJGbnZoamRSbWZqNnhvZTBRUWYvRUdUVW1kaVZHL3YyQnR5TE1zQW5qQ0ZWRHk0MWx4MmVQc09OVGdqVDRqWGwzUVBpWjNyb2Fra0h6N3hSbjRqNFpDemVyNi9ROHF3Y0Rzd2JlMFdQSnZjSi9McU9Kd1ZJbTZRRmVWZTdXeW4rMlh3KzI4SUwybERCL24zVUgydlJKWkErUzJ6RWV1YkF5T09VRjVNcjNkUFovQlVCS1ZibGcyRVhHV2w1ZW42V1RnRlBKM25jemR2RGVCcXIrWTRCZFZ3eEZhRldyeHZmZmxtN2F4c2xVM3hXNm42dExhTjdLNlFvOXJ2MVNwSnlld3EwZkZZUWpTMWV4aUYrQW50YmlBdFBkbFFNVVlsQnNWTUJtWm5OKzNiU1dVUWNEV1hpcS85aVgyUUdyVGZaNGNDTlRvR0NjMDYwTE9uRnNUNWt0anUzdDZ1b0hNbUhMRnRwRDE5R243TUxJVHhhVFF1TUxUWWt3UURENG5LS2FDZERobUt4bFdlaFgyQ0Jlb0VuLzhpY0pzSnVmMUhYVkxnRVpwS1NuZ3VTa1VWWnZ6MlIxalBHWkg2c1JLU3hBcTY0dTNUbXR6ckpiL2F6MGRsa202dW8rZmZZRHZtWGptdDNNWnl3c1p5ekUxaXo4UEQxd2Q1VXdEOXN6dlpsTHdlYWhmc0NBQTFsbkw5akRvbEVib2lJb09PVjFSWDdmWXpCL3h1THI1VllwcnhLTWtxdUYraHFkOWc3eTdHMCsrQlpmd0cweWZpdVdWZjU5R20wbk9rSmp1a0ZYM290Y0J1ei80THNsN3M5bG41M2V2eDVpQmxCcFp1ZW5RenlZVVAxc3I5L01BNFArK0xIcENCU20vQXVCc1A5dkl5TEl5Uk9tU3N2cUtncXhRTVlTRDVSTGd4WXZPd29KUzFwdWFKUlMzT1lDRzNWb3JZRkFnV2ZXbjlXaWEvOVNKcHJFVXYxMU1hMzQ2a2VCU1NkQmlOVmFJR2hmLytFdEJjaE9HeldHSjRYTkVpaXJpT0ltT2Zjc1FnL3RZelhibXlqdjYwRlhQSXducnZSNUYyVUw3K2VLa0x3dTI1V3UzMlJNcC9ha0NHMjVYb2RjcmxCU3Y3aU5JeTVhaXpBeDFNbWpONlRoUzFXZEhTWG42U0c5NGhNYm8rUk5OU1ZGS2MwSUVGZXZXUjF4aHg4ZzM2L1pvbFFBWS9vRy8yQ2thdmRmNFB0UFY0Y29NNHRlMFBrRTdRZ0JXWGZpdGFPWjJTbGxlRk5ISnVhVWxXbUFGeGFORG5nL0FwcmNBbkNuNGxCVVYxRWE0ZmdKMWhyMmxPQ21UL0dnU2l3VDRRb3kxWHd2RnFnVkFRVWVJdTBKNGJ1VG03czNWNWVHUndOVzJ0SmN0eW5LU3FKOUVhQ2hFVFZHQUZhU0ZRbUQ2blZqaVU4Q053RHlLV0lUdkRrOEtOTVhteDlkZ1drYXppOG9HSkZLTjBzWHdQcVd3d3E4YlJnTTBCWEptbGNuWk44SUkxdElNcEUxRDNRWEVkbS94Wm9QSWNXVDFKc2NUd0ZDbTNMemk0V3RIb2o2TEF6SzdtVkZybDZLNGRFSUNoNklIN3hRenE5ZXJWSWZMUWNsSW5rRlA1QkhUUEJqbzVBbERIT2gybGlIU3lqdUFmODArb01yVkJsdXV2am05d1REOUlaWnd6VmxjSXlxaitqSUNDR2hZakRwaEtOMFRMMk9vbWQveHNMWXcrMFJSS3NKcmxqQ1hmcUVFblYvbysvVWt5bHR4WGZMVFpiNHU5NTdmZVpyM2JRcXo3K3ZyczluSDNlZHdGUXpyaXJybUZ0bmh6NTk4OHJIN1ZWeWE5NlZ1M2VXZy9qMlZhQUdMN0czUkVmUDlWZWJ4dHhyK1VmeW0wbE1ySHdTKy9kN3Z5dTBNdDM3VkVsNFhyVysvNjN2dUtWd04vTnJjMkFMQ3I5cmVyWHBDM29OblJQWWU3TGJwTXZ4bWR6by8wNFlxK1YyNExFN3pFcU1UMDEwQ3Fvemdydng1bzM0eU43NzMxS25sNDJGWjI4cm5WOUxRYjF3TTZsbzNnUzdyMStLcURPRDRibkIrRmIraTNNVVVEN2RKenpXTHYwbDd3dUoxdEY3QmV2N3B4Ky82bTE4b1QrK1JzMnVqMy9PbEtUOW1LMCt3Nks1R25pMTAxNFIvUCtmL0JPSThvM2J2SlNIRmNKQVBGT1RsZTMrc2VZQUIxZ29IWWdNYi9vMEdmNHV3WmpmNzFxYml2RElZRW9uTmFWcFNLSGJLckZ3MmxGR0sxdktoMzVETS9Xc0k1em9pbm5vcUNNVWJwYXRwSjlIbkRYWXcrNlVKKy90YXZBTk0yL2plQW5waWc1Mkg1S3NXSXU5OWt2TjV0b2tWWTRHVzV5UktUaEVyWWMvY1k5UkRkZDhYUkRFblZIQjVVUW9vR3FnSmxRNnJJdEZoQzd4eDlPZGFESE1vRU5ZNkhtVCtTdmFhclN6cGN4Mkdwd0xCZEdxZkJ5ckNrbVRlY0VXQ0NDa1dhS3VZZDZhTVR5RkhOU2JSYnpoNm1wM2xBTHNUaFluUTlxamQ3ZGtyTFkySzFEVzVEWlJxRVNjdkZCVXNmVFovVTRBSUNmVzc3QXkvWGw4VEdLS3pGWWlqWWRMVFo3dDc0c0wxOVJORDhUbXo1ZFQ0cjBQd20vMFozK1kxczdHK2w1Y2MwMnBvRTlwRzFOejJaM1d5RHJYUUhyODRyb0MyZVovM3FyODJaK3Y1VG1OZnd5YW84Zkg2NnpITUVVQ0lCVzdkdmZyYUVURzc3ZlE1S3VucG51aUt0Mmt3QVBlenBrOFhySzhqYS9YQ1gzMWpsc3cyYkZDZTFJM1kwbmlhbjd4clg5LzdHWUd0T2toRitJSGNwM1NlVk1vdzVHU3BrbCt6dWIvekV5NitUSDVaV3IvZHNYYlhGcTRmVm41NUFqaTRlcWVpSXVxSDVzSlQ2dGJBM0JjNmYvUi9lbTI1TTNVTzRaWm50N1dsY0g0bWNtcncyQU1FV1pFTSt1Ukw4L0EyN3QyWm5aOXdEZG16WnRpZ1pFeUpPczBQUFg2eVg1WTNacmV3N2hjUE1wWkpQK05PanFRSWFSbldjYkwyMnRKR3AvakJmSlJJaHE4QjVwcytUN3JlU3U5Tm1CUlZoamt1WS96NStQV1lqUmhVS0tKTXF3OVVOR1VYanZtTGVBdXlLeTJpQTVscnprN1B2VzJOOGhZTWNDYUFKenFrd2xyQzhVdjlla0p1Ly93MWFPYXVxOXBETTJpRGlkM0lUZE5wcFByMDVxcFMzUFg1enkwdmllaDlrcDRkZUtyNnlUMzczbSs1VjlYM09pYitEb0V1TnNoU0hVTHNONmF4Rk5wV3haTkRXYWlVeEg4L2U1WEJYbWJ0c0F2UUtiSk9vRDlWOVlYd3NqajRHMGx4ZCtzbmhGM1NwZ2wwRTg5Q3RXdkFDSHNkM1dKNit3Zmx3Y2ZNOERyWjNhYXhXM0xZOTVhYnF3NXZwYmp3ZVc4R0duNUpmaW5QY2tuVUpHbVlEWGlNOWZ2UFEvTEtYV2g1cXZpNC9mcnFJbE5LVHQ0VXgvYzl4aDVYUHJlcmhNQmtxMEhjL1VMMmlxeTlXcHI0a3A1amZ0WVV4aFVIM0NRUTlFTEFwWm1ReGZ4dUxWdVd0MUYxNCtmaG5wNEZIQzVnTERRUVBwYkMyWVQrc1hkNVVnemtSZVZXYWRFcWhUeklHR1A2QU5naVRtVDZsa2hQNUxhWElxYUNXZG12MXlxQVo2SEszRUluRk9JRE9uWEg4WnJiL2x1Umd3QWFJNGprRmJUNTh3R2ZidDFPNjRlYmcyc3JicmNKdjlFZjBvR0U0bDBFYWJtMmRUTWRZM1BKbjZMQXNqQldOUU5qVjYvWVZUdlVFSG9jTWNzSWdCN0l5RlJrK0VzeHNhMndyT293Sk9pejhZcEVjc0xVNmYrcmo2cjF0UFdrU0tISjZtR0FRcFM0UG1VR04xVnlMK0tCWnZUQnZRRmtwUW9UNkVKZFFlZUsxWGZ0ZVo1UGJFcURSc0pTZWhFMUV5UWdXNnFZUkZtTWdqaXdYN05VcFkwN2JjWTNtNWw4bmlJL3VrZHRGSFJVNHdCVGk3VXhoODd3OUlveHdOeGxvVWJvTEh3d0ZIVk9CQUpQaStTRFVjaTVPMDZYT054YlBxSzhnckhNenVCcGl5dUs3c1BKdUFpa3JTOWRZSmMrblZscHpnVHZOR0FIWndiY3pmbDUwSWY0czNsTzVYUS9rTjNhbVlkTFhreXlWazdLYktmazJ6bmtIOXdERGVXdk9qbWZ2R0JiSFJMay9JN0RiOWc1WHpMeWpQRkp6dlplMU0vQUp0Zm4vUXkrNFllNmZMalROR1NhSHNmUExic1BEMHFzVTloZVAvc1A5U0FoM3RMc3plK2x3QmEzRHl3RjR4MkpCUEgrZG5NZWtQM2FQSHozSG5TM0UrRVRyZFNWdUF1UjJCbDRVaG1KWDlrVjBqYWJsdXoyUm5sSlIrN2VSRzE5TVlUM2h1NWpTb2xzOEFpODE1c2NkVmNJWDVkeVZmQ1lWN0xiL1c1T3ZCdU1JUWtYYWt0cGdmdG9QUGZyZmZQZkl4WHhZdDVnY2h1T3FpNnJlTkhPODg3dDI0Uk01dC85V1VWMDg1M0pmbU9ZUjZWMHRkODRFQ1U2ZnBuZVczOUlselZMaGdiYUIrdjhrVmRhMmN5UXhkQ1lKSXo5ZVBwU2NHY21kWU1vZGYrc0hmYTJ1ZXkvdzBYYWU3ZDh1Ry91VEwyaTNCNisrMkdvbFFxQzJQZCt3ZzMwR1hqVXRkYUNKWWR1ZU9CY0kzaXBsUGNjSFFNc0kwYkxxQ1hHM244bDV2L01hVDVOcjNNb2RZOWpiQXUrYlhPZEN1c3prSE5BTHplM3YvajlwMm5UTXJLRkZYOWplMm1pdi9TcDNEZWpmd21paS9iczB6WitOQjNvNVVFc3A5WGlaSThrR2orMlpheWFtc0Ftd2Q0VE03aVpNSTgvczh3dkRjOW9BWWV5ZWErR0hRb0h1T0cxcG5HbVVNaE1nWGlVRXJTY2R0UWFFQ2E3K0FSMVdPSE5zM0FOZzUrcndxbk84ZWZnaDRYd1BtamdJWlVGSiswREhrVTloS3B4OHBNWmgrcnk0Tm9ESTFwVnBkTXdzNzlma3JoYUlXTTZZVnZmMlNrSk0rYlkvMjVjbEZmNFRVK1F3OEgwMzcyNUVkSXNxazdmOGhENVVBTENPSnA0WjdrNjhxZ0ZvMkN3eFJ2bStiVVZNeTZmY0hGTVlxeDFjUnM2Sy9mdVhwTjJVcFliNHJLZjFwQlZsL0svUUloc0Y5N0p4UFZST0o2SWZMcU9VbmV3NWIzZXhsUUJ1RnoyaW1BVXJSRFVJc1BhYVBCR3lML3F1a3VoemoxeG1zcVlqaC8yVlo0ZzN2cmFCODU2YmJ2VkVEOHh5V3grNDRzTmcwUCsyeTZZbENBNW43STVCTXF2V3A2V0VUSk5lbWV6ZEhwQ21EYk1Nc3M5eG51Q1FmdWxCc2hwUHdPQVdhak4rQ1dLZlJWbzhVRTBFNU5mUlowK0dBZkIxMnFXZFc4Wk4yRGN4YndwQWY2VXZYN3dHczl1dkpuVmJ6d1hHUFoxYXg2WDNlcnJYWk12UHoxbjdDUjY3UXlYMzZBa05BTzY5TGxDQzZ4N1AzMjljdkNJZkt1a2gzMW1iSDN1V2taek9SakszOHRJMXQ5WU4rRERWUDdYbkRQZWFjRm1jbThxblBtcVc0akdwTUZEL3Vzbzk4ZzU3T3NDbUJHM0JzdWpCSDA2ZldIU3Z2blpKOVR6eU5UY1MvZkhrMnZacjRmZi9CWS9TeEtNdnYvenpaTnVjdEE3aDJmZ0g5ZGlWaHZSMXVwK0FQVkFSdTJHMnlNeWJVTnQzS05IRVlKTHVwUCsxUG1mMWE2RnNuaWpWcnBBZWRYc1Yzbk9LcUc2dWtBRWdKakFDWXAyd1Nkb1hnbysrR1JmcXNSKzJJWDVmTXdaMkhtVkVKcHB5MlRTQTd6dWxiVzYvdk9HMzBkczdmTGx6TXNuQXByaWhRNkhtSG1VTFlaWU0zeUluNkFoTElNQmdJNlB2SDQvdWhDNmRkVWsyU1ViSDhLSGwzNVJmMmxHWUo0eVRaSnV3K094MUZ3b2lNMFFzbENETVBaWmxPNHJMT1FsZ3dKUUFwcGwycWViL1lsOXUyWTVnb0FDWlNQeWpKN0R5RDQzeHlYK3g2QXYrNDhmdFFKVXVyeGVVNzVlcWczcnpBTUFEcHY2ck1MRFpYc1VWUjcyeHJCZURCdU8wa1NZRVpOcVhaMmEyWHQzMXpiNzF2N29YT1lrRFE3T1VJQloySFd0K2FHUUdMTHl6WlVyUWdnWGhYRFd6TkJSbloxUCs5THQ0MXl3emwwWFhiOUJ4ZFpWcVhMcCs2UWEzTXpEeDB4STB1SkVIL3ZleHE5MDFJdW9kYlFhelNSTTBjNFB2a21hNmFiSEt1ajFqYzEyZWpBbnE2RXNMb2ZEemRjOFdPUjdkdFJSaDEvRDhOTEM4YkxCSHR2QXIyVWI2S0JOOUt0RkhhbXNnM3JyOW1KUjFWYzlqWm45QmUzUTZjWXpDRHJoMU1iTThTU2lKSlZzVGhlYkxYcUhRZTdiS3JaREt2RG8rQkg1NkFqWGFNaEhZYU4zendOU0VOOFg1bUhXSWpXN25FNzJXZkZOdkd0QjlMSzl4aEVZODZUajcyS0h2YXlQcTN5NzU5TE56cTFQYVM3OFR1eGtaTVBDdUprc2p0alRkd3BmcHJ2Q0x1QnY3RlVORnhBY09TZ010ODVrbTM2NDhtZ0thbzBCVU0rSHpuZkVLTDVJSGI3endIY3RnODFZTWlCQ0lHNzBUb2ZKRlZ2clREUUFpUUdFZHNNRmpKL1JuT0FldGx2ai9Eb1hnOE8vSXJmWVFIZFFiUVVhN1VwVFhhQjYrL0ErWGh2V3Q1ZTZqZnZzVlZrbExVekQzTHNXSTBRcnVRNmJhdDVMWVJmTFppUnUzWldHS3IvMU9CV3Y5UDB4SnUzS3Rpd2tKZ0hsRkJ3TFFZMVJMRXRVVW9Ecy93WTFtYmlkZWJRQ0hyWXR3MGVYdUQzeHFTWSs2MDNzNHorOHY5NDZaNTUzejV1WmhwbG9aZkt3OUpqTFdPcExJMnR3cHpsbUlZUEUwcktuS1BxSXF1MFFiQTVxZkxEVGkvZ3AvSmJheDJ2Y3YrcDZkcHg1ZTR1alFCNDNnU2Z1ejVoc08zbGZMM0xJTVBCSURKT3dpOW5XTjVvL3oxWkNvVi9iay9wdTIrR0tORHlBb3NOcngzbTlOMC9XUFFqeEdWd3h4dFdkWndGWkhnQmhFZ0toN0VrNmE5RlNlYzBSdUtEVEVpNllHaVZORk9aZWNYdC94cTdqclM2clVneXVMSzRXVGdxOUJnRU1RZzNPeDNBeVFMajFsSFVNellMZ0ZKSjNRVlQ2QnBETC80QkJTeXYzeEVUejFrV25tOXpGQWhQaC9wYXNhQUppZ09KMWROcFhUV041OVlkWXIzQ0VITGQzMmVXQTgxM2lXQ0dja1lrMVBuTi9QK2VZYXRLLzBtZ1V3dUJvNHhqZDdyNEFDRDdMYW1ZYWpKazRzdXpjL3B3UW94WnB0RGRuei9HOVIyMldWdEFHaStjRmloeU8ySU9SWWZWc2p6SldCMTByT2tZWFpuaVhEQ0xobFcvOTJBYzBSWTRrb21OWXgyQlFES1lwWUtzQlNKY3hpZ00wK3RFR0NlaFhCbXFCMXRCVGhPZFR0UTE0MFhaYTlTd1IzblU4Q0tCdjVJRjhlWndVWUFqc2RnNVM1STR6R2VKUFEvNFZZTmkwYU9YTHk2R0JNWkt4U3AvTjI0T3pJdFBVc1ZJQXVWMXpmV0NFMGplS1VXYzVqaEF6VHRmVUEyN2dTQTFkN2x1NG4vNUhvYjh4amNyekhIVXJZVVF5d01mMEhwQ3NXWDl4am1acEZOVzZkYThlT2JsUHhYTUxUSElLVldhL3ZKakxKWTVmYW1lemJmeVl1Mm44cXhhQmZNMm4yanJWandzWVgvNi92SlhMUlpzcm5PWTNEMmZTb0VPSkpiZ1l6aXhwako4bGVORFJoMnFISmZHVjgwQlRYNkN3SDdabDc5L0pOVE5xWVliZUZSNy9XcWk4S0ZpUUxWZVBWeDBDRzM3STB2WGFxMDlpY0wyYWEyd0Q3MkxUZWxLT1BGK3o2ZlQ0NmNFS01xUmt5RVUxdEV2VWRPUUp4c2tCbk80bWZxV1lFcXdydWJzR0laSWczVUppdGV2dXlSa2NCUFlTdXBnNmVrbml0VUp1WGVhNktySm54d3pIS1JOL3hDbzBtSnRpWXBxUFNyTnlZYjV6a2J3WkpxcmkwZW5rVTJNb09Ic2RsaGphTzFRTUFmMlg2U0NPOCtMTUY3MzJzQmhvOXREVERCTlJvb3BkR0VzVDZ1TndrN3hqaTE2eEZkMFpXa2dxREgwNnVaWmxJd2E2NlpaNkp1NkpXaHVjUUFWbjVqN1cvUlJJcmdTSGdOTXhQUEFOYWpMSUh4NFFOUjNudWY4ZG81UUV1NmpkTTJUS2UvWFkxWnc2RzVXSkxwOXdlUHNVSit5b2l5NEJuVWlJanlIZnduNGVQbGtEMmdhTFl1a2tjbEdVZktRb0NrSFJwVzZFc3dDM1lXWGZSSWJkWW1PMTlSbmF1Z2l1VGFEbjdWWm8xdWx2Mzd3elJYNFZibnc0d0czYW5FNklYUnI5eGpkeVhyczhOVFhRWnJ6TTdJaFlNcnJTdDU2d3ljcmNFNE05TURjVEtHaFhBeTBXMk9pclYrTW1jOGh4UG5LMmU4a2p3c283cHlUSHprNHFQL2UrVUxvaHIyV2IwbnpMUXYvRFpqWWhyRTZMQTNIS0duR0F4WmJ6N0dyZTBnTXhZYVFRQ2dsNlJabUxzUks2ZVVpbndPa2tFSmE2MFNiSFNidzZMZHBDb1lVVENicmtzQi9yM0RrOW1xd05LdCs2SnpxbTEzdnpMdkp6aGlMY3M4Y2NJMDlURXFsVVpaVzNCOUJKbDlISWMza2hkdWUraTg2M2xMeGNJanhIOFF1Ymc3RmY0WjVuZnJncDNSZXhiVll0emQ2V245RjFLRzA4VHVPSlV0Qlg2NWZHQmtpV3ptQnB4akRmRkUxU04xMHB1a1ZBOEpoNDlaMmwrQW9YYkZLUjVaMk1JeXgvc1JvRHpDaUNwSGlkd205MUVLR016anZBMTczSFNTNUs0R2Y0dEZ0Rm8wWi9ReXhKQVAzWlVGbTFuc1JVTG1LSG1yODhFdDA0TzlUV1N1dmE1blYyczAxQTRBUk0vbG9pbWRhYmpaUWJiZDdXSG4yMzkrb0tlZVBTRmhiZG05Z2RybzduNlBYaGhmT0oycDJRYXJHQkVxc2xlMzFFeEhRY2JUcDcxa3M2TExoenVZVm5adVh2NFdsQUNtTVkwQ29qQWVkdmYyU1RHMVdWNkxaZU4vdkROcFRMZExqbVZETndxWXRVdUR6NG01YnZDcjhxWW9QMEZUbDUrMmRqRDhxNm9tS0E1VmpHelZyQURIWlBORzM2SENBTmpMUTBPY2E2elRVcFdXRjhBYzMyOE5MVDl4UThJSHJKQVB6TzFNTnpLbUVtVXhGdHJ2WERtTXQ2QThrMFdhZWgzSFhsVDFaSGVWeHZuUnA3KzdOSlA3NVMxRmFkWGFDYnVqUStjR0hEbTYvV3Rpayt1Q1p3N0J2ZURNWW9tdkNMenlydC8xSFpUSmVZbVBydVAxYnNmMEdFZk16ZWR2VmNML3JoeDRnQW52K2ZWbkorZUV3a0Q2OWFVblh3WmhvNFBFNUx0NjAxRkwrYmUrSDZoZXNIL1gzeE9wWjcyWXE2dFpRQ0lBNjJWWEdzVGJXVUJRRk5ycjMxKzJ0cTIvV0tVdEdidS96ZmxrVStOM1NnZ3lOQ0hTNWNlUlFRQlBpWnVoR3VsNFc1NXJCaFJ5dlkrVTk5UzBmYStkVm5acDZMQURXZVNGOVgwdDEvNStBSk1jbVE4Lzd5ejQxMWVZelVXYlFueFhDaTMxS3Q3TENyZTZTNUM1akVNTzhtWjZxZWNXbHE0ZG41VTdQWjE0NTE5eEwyMm43QTFWMFZIcGdGTXNhZ3pSeU56anFuTTQxM1RuM3FHN0hEQysrQkNPUXZjVlZ5U0JhQ3QzUHdzODBSeG1sMkNxS0MxWFVvSm8yd1c2MjI4ckJMWW9RMnpwNHNGOUVtZDVjUjF3WUhmQVVlUFlYR0tpaWZVYklqWEd2UXZwSUVmbkVaZG1lb25GcFpsbU9iNnk2aDRmczlLVHFUM2JGRUlRUENoa29CaXJVTXFnTVBSR2d0SnhOU3RHM2laQVBQU2VGaFE5MklibDRlUFo3bDZoZXQ0MDExelBYTVpvUlIyK2E3SVNGMWxKRVZnUzFSUHJDUEZtR0dSeEFuMm1GY2NWdmI2YU1ycGpjdk1mYjZrdjd0Ti90Zi80bWRHcjdhd2dlRGY1U2NMZHpBMkJkWFdMeFZwL3BxSC9iTy9WUTN4b294WThGRTVFdUtsL0c3aFNyVjFaa1F4Tk4wWS9NL0xzL2lCVko5K2MzYlY4THVZL25lU0lqZG5FeWVpa2FSeFgyQTluYWFyUEpxTFcrY1VMdDN3VUNhZFI4LzJJR3NtT3pMS0Q2eHowRVYwU1FOb1l2MS9KdHZIUjQ0V1YzTGlQUWx2azVZOUV6Ync4eGc1UktxckoxOVg0SGw2MlowMlpabXMxTnkyMUdhUmpqVlRrVUVOTnpQWVJGc0ZyeDN3STBIUDEzNmZ0OHgveVFSMTAyU0h2cGJudVJhTXdMbnl1NjRibFhtSE5OZ3lEaU42dlE3WmNLblIwNEhqQWN2ZG1oakFTNUFZNlYxODJWcjRsMWJZL2NJY2VrM3V1WGl3SEpuRmVsUTNSUjF4cm10SzZ3cFJWSUhXWXlFbFdydURpV21CV01VQkswVUtQVjlFQXR3NjhadnpVbk5CTEVJVytrQWZKZEVid2dJWDg4U3BsOGJkVzNkcmlBbFlmWnUxRkI1dExRaWtPUHRWR3ZLOUNDVDhzY2R5WkNNTkxUS2JuTHJEd2VpLzJWUGpQR2ZJZlhvWktPY1VzczBnVmpkTGZ6WnZsZWNPZldBTnN0Zy9VeVA3MVowL3ByNkl3TkRzcGk1NmxjWXVQK1Nldm1oeHc1aXZFUWNPendmMUVnMVBZYlY1S1RKM1prUklSL2wvc2ZrU3BVNFhEZGFLcnFWUmhqT2RvSkpTN2RXb3FKUm5QK24xWThvMWhJL1QxeDdic3RzeklDQXNxakloWXZkd3hkNFY1NXN6RmwzdmtTZmpscVQrbGRPQ2ttY1E3VnBIUndKZ2x5RWVBWGZDWUxjaFQwZW1pbGhXVnA1ajFHUnZEM0VRS2o4dTBWU0ZQUGd3NzM4Q1RqN1M3V253TlU0RzZDTi9tWWF0eVJLY0lYZTFRUFM4U2x1d2FZZW5ucm42ZnNhY0lNZVYwaUxQd21SSHU0SlFGbVludHlhVGVYUWNvVmtqWWZzZUo0Rm4yOUVkYmoyVkRDNFNCRUpJN0hHQUZkdGI2cTlNdkJua0IrS1lQODlxS1FPVUowMnlYcjJ6cWJkbmlOUk0vVUNTNkpEN2tSY1U5WStkWTFNamNybXk4SUE5aUFTZ3ZIYmRsM0ZRSXdqaWFqZ0hIZFZMdXByQjFZTXVsTEQrZ25FQm50MWNhYmg1Z0NwcUI0bjhJbWx4bnRobUhnSHNQNEJwOWpWNW9lb3Q1cldtYm1abGFaOVBoc2hWK20xSktlYWtyS21CMFBKR2t0SFRMUnFySm9KejZveENBRVJBSnhrdEgvbFZPMnpTWXFyWlk2ZFp4YnVnaVBoZWNUTkNmK2xTTmdrMzVoL3JKQ1RVQ0pYTGk0QWo0TlJMcExPbUJPQzhVVHgrdzVyN1BuY0NPR3VmS3oxMGFRL2xzNGxUTWJaWDlMZEY2eFk0Ynl1a01uRjZjS1FNZ1hDMTJnbThrdGk5YnNDZENWQkxwRGNNK1d2RGVVYXY0QkRCK0l6ZlJlZXo3NXZRWTdMYitUUkJOS3YzM2NVNGtBZWpqaDhValIxTGg0NHFLWHZNZTVUQWhTUzdlOTllUDR4MGllTk5vRHk1M20xMCtHZFVFZEJHWXNTSi9jYUVoRnovUXFka2lraHVTUDZVcTg5NjczcWR0VSs1TkZ4S0kzT0F5dGJoVmVjTFVoRExHSEFDaDNKTGpTeldhOEgyaWlRVGRNMDJSQjdVbE0veDhkdWc5cFhRekJxcyt6YUxCbHA4elF3NmtTbkZKcUVYVVRjVHN0bmpRWGRUc21mVEZ5Y3ljU1RsdEc4UmtSOE5reW9lQTFiUDUwR1BXWkltZFk1Q2NTZGk0Y2w2Sms2RnNpeGhaVXpHYUFRRUhWL0s5cDFncTlhWFZUM3RhS1pFOVZ3MWwzV2F4b0ExVUVheE5uRWZISW40SWRpeTJseVlXN0ZHQnNtWkdLTm5BR1lQa0U4VUpIQjBRTlhmcTNBTCtaekQxbUdvREFvZ2pBZXhCRUFNcmI4ZXgxWlVxM1Z0Rk96Ymxnc24zTUFocWFEdkRYY01jNHJsZ0dXb2xXN2d1RVpQWGhUeWZIclhsWnFHRVNweDJISDIxUVBmMTlnMzNGdnk3RTdMQXZ1TVUyTjJ6MkJFRUFOZks3TGwwR1MwelVHbU9XWlhoRy9zVWg0cldqWXozUDI5OXJrOGtGOFJSUWV6azhIeHNrOXZYQldPSkh2K2VNWjVVeU5EZlU0TWlCZ1FGM3NIUXVYSjdQQmpHKzNNcUNTV2dYTTgrdU5pT1FWdEV3WGNIUmQyMnp2TmFtS0RkdWhRSTVyZGJtdWRYOHdMbi9jQXZWMW03M0dHK3ZLT2F5VTFUY25jTUJzanhDanc3UXkxU1NXaGkrZ3pBRldyb3pBSjdIZXE3ZmEvT0RGczU4N3AwUUM2cEVNQzhPTTlsbVhVUndEdHYvSjhHVmswZEdvTzJLT3F4OFNYRi8weG82YjFhcnVjMXNYNUVmdytrandmWGpIbmhadm9vSWxLZjV4cHJQR0tXNTViT2lZYnNaelowckRLak1pYWloS05BVXg3MnM0dVlKc0h5ckdYNWZsK0l0NnpjOURqcG1xTEpKNS9LM2pTS2EyVTVka0ZIaXRYNUJnSWVNNFJJQjA4NHhqdFR3L3N3V0tNS0RFNWM1QzhYaEpHdlBQenh1Uk4xcnA4QnhESEkvU2FtTGpkRVJYWjVIRUNTU2FaZVIyUjdFZkZTOGJCejRpc1gxYVIwOXQwSGNpb0xSbkhnSGptQ3R2dy9QVDA0UkRUeFVtT1Q5bUE2S25XUWxXQUFwakVFeG5iSHhLdXZqeUltdG1IMW9XdFBRWVlkakQybjBWVEN4NXUxbzk1dnQvSUtOZE5GVTdjNzF3K3pkZTNWQUdTbkJmU0ZoV3ZobUJIdnRwdW5FQ3ZJQks1L3lWb2l6eW9nTnlNa3hYMlZuYTNVVHhPc2xnZE9na21aMlRzQllDbnBubWFxUlVnNGYrbGw3NDkrTkJBUFY0enBDb0c1UElKQzR6eUlCK04xM252dkZEUnBTOEFqWDkvM2t2KzQyTXYrSnRWbUJ2Z0xWY2RiZ0JRYXhxb3dzTndKZzdVR0tIS0xPQnRsc0hDOXlhTlYvTGVkRnZCNTU5a3pmdUhPUHB6NmlZSkRzQkp4bjFDWEpEc014TW5LZTBlblNueDAzdGhNajNSM3l1Unp2emF4RnpLcG9BVkNlYTRaUDZVUXRERkJTdFdoTTV6dFlZYVNnUXRPRzdjRkJ5ejFCOFBVODU3Tm1IeStlMVhUbW9FRkFlaXB5M0VacGlJalZRUmU2dlV3YTNBTHR6V3duQW4vZHZId21OalErOHQ3VnNXK0J6RjVqL0hoSWcwRlVwQ284MzJranhMRFBKVWhZL040dXRGRmF2QTh5bkdHNWV4aVBaNEV2U3JqWVF6bHdwRVR3SGJpY3hMdU42NkdwL3JHTDJOdEVxK2NURXA5dzR5K28vbmpHRyt3Y1RUaStqcHFzT05GaWFKNUpwNXgyUmtPVDdXaHpXN0Y4eTMrNlhmVVpWa2dWTis4ME1GSVVzemw5bDdCMDBCQVAzU3VhdVhTdThxci9RbnNNeUUwMkVhek1mMW5GTEdiczM1R204d2gzekhtN2RnaTQ1UXR4NERkY0hEbHM0UDZHV0E0R2ZPNitwMmRMSmVNaXRBWlp1cEQ3OXdvL1U4ZDBjeXRaYWtTYUFyd2kwWWZEczZ6K3ZFMGl6TWUxeU5PblVpNGUwS0xrd0RkM0M1VXlZdDJQSzlDdlhFdUpjZU1EVkVRRW9Vano4TU1RK0dwTTFtekJNQURxK3dqZ1k2ZDRJRFByeEhDRlVZL0p4c2d3SVpodnhGNFVBa1JrNGZPdnRFRXFIT1czTTBNRXcxbXVQclZDU3ZuVnROcDZDcEtyWWxuNHJwS2dGZ21uVmtxYnNKbFkwWTZWN3I2SThUSjNiWEN3d0pDK3lhcW0wNU5nNUMyemdkV0dTRzM5cENBalFWQ1hwVGsxVFV2bkU5VzhhUjdQZWVOMWNRSUxpL2hYTVJDeXpPVXlRQmRHbktoR09ZQ1pQVW1TdlpOK1l4REtCWlcyazh0R1h0aVh5N3JGNDNjZm1vUzM5RHRxOVBWQnZ2bEVtOU9IcUgyZjBxYU9GQlBGQ1JxeHczZmd1QUc4YkpMMVlNbUFZVVVhUGVMK2tvQi8rTVVaTGNMejVRSTRDZEpzbkttMkx0NlQxcDlORjMxekFBQnZ5RjBDaTNTVm5Dc3dRd0FKUFlBTGJsb1ZzcDUwaUpkZ3UyckpVVERoMXN5VEx4SnBPNmlwUHVKNlRBNnB1QzJLc2tkZnY2T1RkdkJ2SldFQnVnRXBSVmVFOTQ5bWdpWWRaVWhhS1ZPSjVVdjB4WVBKOTJuallsWEFKQSt3a1ovc1E4UHQ4NWFxV2xvVC8zK2p5cXpXTXdoVWVzWHovTERUV2FKekJZcXdHNnlNNk5nUklmVzhlWGJya0k2cm0zSmpjdWw1cDJUeWpnakxMOUpTK0l6SFpFWWpMYmxqLzIvdGZMT1NrYVczWUFJRTdXWlgyUGlyVDl4TFNLRVNYbW4zenRvL0V4TjJSOUhpU0thd2wyUkdUM0xYK3pwV3NveGNSb2JDLzY2YlBpV1BWYmJVTlJBTW5HdUpJNFJ6OTdUd1hLYWVxck8yTzUxdzFqbWhuTTlIOWhqZU9CcjI2dndEeDV5LzdRS0J1Y2QvQk5qak5qRWZZNE9sT1N0Kzl4MldFbUQ5b2RlRSs0L0xEVS81WjdyUkFFMnQzbnh1S1QwTmNRSE8vZXNja0VBQzZISWVxK0ZWMjBhcWUxRmhBc2lLSXRTL3JXU3hocVlmcWlWQ2F2cm1SWk9nNFJnTHkrQjBHUWx6dyttRWJiWjc1cDA1V3hNYzlmSUhyQUV5Z1dEa2luTFZKZCtQUG5FSiswd0crZ1dUQyszMjE4TTg2d2ZkVE9mL3lCYTNIYkxiTDlDbFR3MmJoTHhSVDlOcy9zZkFWVHlKY1RXNjBlOHlWU1NGUW9NQStGa2taazBiSmJSYVlkT0R3VGwzakNYVUZOOHlzbGdma3Fib2tDVENLUkN5cEY3YWNwMFREcXp3N3d6dUtEM0Vob1pSUVVXRTIwbitpWlVOTXVkUXo5dmRuR0NDNnhnMmthM2N4VUtXdFNYemx2dlcvZ0t5QlZXajFCSzYrODA5ZXd6cUJJSEZybmRNU1VvZDRwU0NaeTdRYjZmT0xDeVhTRFM1MUFDeEE4dlJyNjVock0wZ0R4cGdaYVNUWHU2cktOL0Fyd21RbWFqZExqWHFsSUZFNFVRN3E3MG9MTWhsUk16SVZpYjlYaXdQaW9hSWJ0V2hpKzBpRHdjZVlUT1R5VVNJRjhIcGRFd0JDUmR1bTNZZGFaalFqd2JJeHBjTDQ0LzdWWVExekJDUXlJZGVOVFErZm5GTXg2QTh1anZuREUxNG8vek9ac0tlbHFETDVVejZ0bTc5dTlSWFhGSnk4Qmd0M3FvdS9lMGlWUU1WUTZONjB4eE1ZL0l4OXM4UkM4RlpNMEljQnIxMmRXN3ErMndiMWZkT01yaVFGSVZHVVkyNHY0MGlKY0ZDOE9mNzA0Ym5TSXFESnpkMHkxK1R3NFpvcG9obW05cFluZ25XMTlCQVdBTXkycmJEU2lVSE85bTE4ZmtYUTZlMSt5YkI1OUdwQmtQL3I1ZjltdUMyRUFyUE5zdWdCcXBscHF6UFhtSm5ibXhRM2tYek01MWlhR1NxOUZvY1QxSG9RN1V4TG5QTXozcjMvcXZkTSt4M240ekVZZ3k2YnEzVWo3blZxc3BJZmIwbFdUUFJaZDNMbHF3eFVJNUZ2TWRyYjlJSktBZU9ZdU1lUjdLa0k5eUd0VnBGQ0FwNnM4WW9EbnhoL2V3OEJqZ0FncEVDUXBkRSt6WDlTK2Q5VlV3dVJhNVVrUDc3MCttWXRJSFU4Q1ExUzVtN01VNEVqTmtjSDJoYldlZVEyUHZaV0pWT3g2YkcxSWZELzlXWVhleFFHK3pyUS85Q1JreHVwSGFFN1ZQZ0RGYStZRHpQT1M3MXgzeTBVKzFZNXdmYXJURDN0alJTNzBCdGp0byt1R2FUSE1hWkpRSHc4bHV6UEd4c3VxWUtOdEtPcm9oRU9xSTh1OGxYS2d5TWlDV0x6Y1k0RU9FUUN3My9zYUFyQjUxQjFieDJvMHNkUGRmbHJLVjVoNlRWMWU1QnRZYzh0RGRWc05qUkRtSzFwSjZKMlM4K2RybXN6MG1LUFk1OGRWSG1HbDgrOEJVbTR6bUVtNDkvLy96RnJXM3RUaXZmL1A5RjdyYkZ0cnFyaEZxY25ZY0FGSEYvcUttenBxN1EvcElRclFWdDVzTU43Lzh0S2U2cTg3QUxDK2RJWEtZbjI5VnN0WWptTUVncHY1emRNZjUvZ2lSLytpQUlCUGRYVU9sUjZtUUpSeTZsYTZkSUxwMndCL1NpeldyRkM2TWhsbjFqNDFvaW5ZRjZXR3F4R0FZMG1CbFdQSkJZbFpybEt1YWJMNXNhYU03VkpIUitoNlZ4Uzk2aFI1NXQyVi93RTQ1c0gvb1pVUU5IZmdSV1Q5Q2svNnFHZGdHUVF1SGJCd0JXVytYTy9ydTNnVWdBVitvUlVRcjZQQXRaY1NxbkV6TWFHSTNOQmdtNjlFQ1RIVStNRmdYSFRzVXZQVkxIMHBDeWZSSGZGUUxKVEVwcnpHVFU2ZUR5M1lwdUVwTHJhOVdRYTRpbGwzeEROcDhxb2JIY3hjeS9DeFAzVEMyTE5MeGV6NG15Zm5EUlo0aS9Xa3p2c2Foc1czbVJUQzhvMGtkRWtsWDJPbUZ6S3NscU9jNzQ2MXVQWHFpYTlWaDBqTG1ES0luckVVUkdyZS9ZNThKdWxaMGppdHdzSEMwbW1xeWFPZnNkOE9Gb0FIaVNDL2FtSkk3VnpDMmFQRmJibW8yeGRpdnBVR0pQem9PejFlaVZDdXJ0OTMrMmNlQnJvMm43K0JnYzdpdWUxOHN5TDVrZnBKSjM5ZTJVNXF2T214bW43WEFlQ3VqczRubjZyT0hvcERsU1pZR0R2Y3VkSks0K0NYWkl4Uyt5UVF3T05qajU0MTcySm5aaFJkbHNHMXlsTUEyUHJjcE92eklnTGx6aWNESzlwNGF2TWlKMHNBTFNSTEZaOFdEdDdjSEFPTTVGYjY2VTIvTTBHQXQzRlBxMUJkZUdyN1NWQnN0V0d1V0dlMTljUURYK0s4eEY3SGwxZEFwMEJyR2RDUVpOWnlaTFR3UzdObDVlVnAxM2dzbWdFcE5lOTgvZS9xQVBacjlUcFhrbWJlTzkrTTRERGRqZVY5RXRIVGpvR2VGK0tyVHpONnFaZnVFdnBOQUt4SU5qdXhLYkwrSkRrU3R6MzYrblNRbzZjOHVURlljK1BJTW9ZcU1JOGlnVmI0RFk4WkhFdHpuV1hvN2hRVUVLeFVHN2xScllPQUpsRDIzWERBYTNDQUVpQkpPM0c4YWVBS2NpYnU4Q1VsWVE3KzBLOTIrbXIxTWo2OWRNNmkzMXF5N0RNRE1BM0xIRkhDcHZxbzQvOXNDTlJzd0dkUmFYb0M4TjM1TmErSGhRYk83cnpkRGNFVEUweVY1UkRFckp6TzBKTU43bmtyVHZpYlRLa3U3ai9WTTRhNHAxWitEcFNCMkFNYTc3TU1EVjhDb2h0aUVWSU1wbThOTVprc1R6U0ZRK3IyclFER084QjdZWDZiQThhODlGS2JmMjlnZXROc2RVd09CRUM4Y0cwc1I4bkVNQ3NPbXpobzhzMmtiOTM1MUF1ekcvWXhSTmZkWmROL2tTR05BNDVySUp2d1VZZkRhT2krWkl4dksyUnR1MzNLZS9nWUJyWktXZGN2bUVFcWV6SVpTSk9EeHdQMWdmdXYzMFMyMzFyM3lXamVkRG41dHY4LzVCcFAzQkNZOG4rWHN6OFdjZUpCREdRQVVCQXB6V1pXU0xKcWpqcjYwcFRSUGYwZ25nWGVMbjdZZUtqSU5YOG9KWmpxaXZSa1BLR1BYYnkxdlRBNllVcEl2QXdBdkxPZGVPVlpESWFacDFLblBMYjdZSldDdmh6clZPYzJDVndMUHY0a2xMdVQ2YzhOV3VrcDVicEZuMW1hY0huNzhBaWpYSW9iL256Qi9vMGZtN2RsWGdUN1pNdWI1SGYzYXVtR1hEVkRmMzZ5TU5ZMlNSVGFYVU1tVEduTk9LSlpHNWgzd0Myd05MVElWbTkzOStGTWhEbGQrbGdOMTJodlQ4ZkE5Tlp4TE1PcVhhd2UxeEtKUHppZXlkcTRYK3FyWmpqWFdlQm9YRkNqemJESnlDYTc5ZHdBWnZBV2s1eFk4TWlFTVlJSUkwaENvS25wZUJCbGg5WU1za1ZYdXJaWGxNMlo0V0RqOFJvbDV4QWtBeHRTS1NmZ05BUUNBWWk0YnVsZTFGSEF2OFlBelJpK01JTmtDVzl3b0ZaTUlLS1krRmJIczB3TmFiTWF4S0JZbXpmaCswZjJBUlZkY3ZMUmRaSENFdnBsMmhHc0hwZUxoRWN6eXg3dkxmZmd0WWowQzNtUHJQbGxIMkhrNTB0Um1YdzRGVEJQT0NVV2V2K2JCY2FHV1hnS3k1NG9tdFFKWEhWcDdKYjhad2o2Y0x4OTB1VFpFTjZ5Q1FsYnpGNG91OXh6bWZDb0lYdXV1V1NOM0NwKzE5cEp4RG1OM1ZiNlJ5NzE2VDJQSVBqZVpxNlo3Zm5RTVcyZUF5SG1uLzdKQVR6d1JZTGRGTzkzdWIvbzFzSVZwSXcvdzg3RXpXWFlSNUQ5ODNaOHZoaTh5R3U5d05HVW4zdzVCcEN6YkJzSlZlV3JOeDJ3N1hlUDNsc0I5cDJmN2IzYng3QkErYXk5Z3Yzdk1xOGo1bGIrRG5KaUozdkt0QlRQV1BjVnB6bXEwckZzdTRBai9JZFZJZlVBN2wwdytSazJNckc3d2RZc3lpWElOeXorNlBJQXUxUUpDQTRrU1kyT0V3RTJqdWYxYmRLQk81dkJGZXRuV2NzeVV4YUs2TWJqb0Qxajk1aE05d3g1QUcybThST0ppOHFhNmxOdkFnQ0E3enFmcVFDc0NwN1RnNE9CdFJqSUFmaU9iZWVlKzdNSml0WG1PVnRBaEpXSzF0akhIUHh5aEJ6RmVqS1NmN2hObWhoSy93cG1LZG8zTXNhSEVCSnRReXpZT0YxQjVwa0ZCSkw4WWlCa2NVT25HQUVJc1BBOWNGRDFpSlEydUdqczBhdTM4YUI0SGQ4S3BRRHdxSUZhS3dtdysyZjQ5Wks5TTFyZUc5ai9oOTcxR3U5Z1Rha3k3OFFtdi9vbU1ESlE2T0hKNitZWUo3TFJUQUJKRXNzVk1obFJSWEJHamJVU1VKdkFMWm5NTGg0VXo1aW9CR29jY0h3TGVyTWc1T05BaGZuTGhOWklZSzRXSnR5eGNQMFc0dkNMcUN1ZkNHeC92eEhnelZWMzErMHlqWlFCQlhDMTlralRqWTh4NDZaWlNVdW1SdkFvenNnWUYyakJtZjBVN01DQ1NRNFQ5ekU2QWxKb01lZi96dkdiUjVvSGtUM1drMTBIRkp1akt0dVAvcFBWZHRDTEd4cmlpREtobW1Uc2ozWjdjczd2OWFqL0NQSjVtOHY0SFoyQkVEZ3BkRDlkNU5GTlVUVzBROUxOL2w1emd0d01FRWdMSi9oZmZkUS9zTmo1SXlCY05waEtWM042bUxMN2UvUW1vYjVVa1FBUERMWSt5NDgxajdIMDIrdnZXeEhxUUJuWUJhNmJzS3JlcEZqanh2OEZqbVJRQURBdVIyVUFCRE9BY1RGOUxKUm5nMGhVamwvODZpUFZhbEpPN3dkQW8xNUlOMXVDd2tnUXdkZGxick95c3QxOTNndk56dWJNL3VERjNRNUVFSDBiTXNONDJtRzJhSDdPdHFCQkVJR0RjWXJGYndDV3YxakVmUFdNcVM4Q2NnS1o3Z1AwS09QVVVZNjFNY3NPZ0laWjYyNzQvVFB1S2dZYlNlVC9PYXZQV3djSS9BWFdWYXJtdXJ1ZzNpTXdOVmVJYmtQZGFwbFlaZ0FXN3ZyQTJuOHFHbG5CV3FPcXdJQmpKOFRjRlNtQmtoNWRVdHZoVU45aDc3OU5EZHZTQy9KTk1tNVlmNU1wamxGakQ3Z0h2d0ZndVB4eEhqdlZ4bnpST0F4RDliSVlock8vKzh3bFA4Ymt5OEpqVmg1Rm5tWEgzVmxTVlR4NGJPVFZHOHVuSmVkaFJCYnFBVmlkN01Dbko4YXR6THBZcFdVbnc2YWovKzRwZDdoSXhyRzYwbXVzcW1yT2pNTGh0eU9hQjlMMVdCcHY5NUtNNVhLR0w3OFJ1cTIvbWJ1RXEyY1lmU05SN2M0bEt5OGZWamlYNTlweEtYd2l1VEQwaURLbzY1Tk5BaS9jSHRrSWlvWFFDSEdVWkZXRG1oRHNNU3dZd2dWMjBsb3YxRVF6TGdJbGtBQUpVd0FBQk5sejdERmdiclRVVW9xTUZUU0FvSzJ6OXVaWElGZ1oyQUhBYnR2WW80VG5IeWNIdUVSblBVcDVUeVNpQUhIWnZqeUNXRzZiU0dNRUx5dEg0YzBDWHdFQnU1eEI3RVFBbFVpckd4MWhCenByb21MeThoN1RjaXVKTkJ4MGwxaTJRaW9meHp3SUNOM2NheGJFTjhBdVhSN0pvcWU3OVFESW9QTEtGNVNhMGpVdnkrTUJlSG5scTc4c3I0MTg4Q2hCQzlJNHMrTzRHbzlUM2hwSW1TMUJTbkhpenpseVVHVTFmNGZUR2E4bWhnZTJYY3lKdGk4N21EUVRpTU5qb0RYWFk5dVphRTgxR1lCZWh2eDRUdVArOWlBbnIwUkQ2Y1YzUjFvd2FHc0xUSjdic2JmcW94Vk5uNnlEUE1vbkV1dk5nbEU0RHVWOUc4UGRhdUxCQ1ZjUUVRSkN1S3dVZ21mODlxcWZ5UklITzc2dXNNaVRDdkVtejhBTUF1ajRzMnJHUndMcWNpVzZyL2tLdzYyWHNFWndURGlOejRHVVUyeVRMZ3B1eDZaL2YzcmJjWmE3a1pFQSt6K1RDYk9VYnNqdlhUZ29obDVuQWwrNmJ2VHl0VnBzekNFaGswK2ZYZzdlaTBmM3Z2cXJDYlF5WmRHSnhzbk1LTXZjU1BvRUQwalNWTThhN1FxdUdrWk1VTThDN29FQVZhaktQazJGcGFEdVFWaERDbmVDaXA3aXlkWHptNWxhcXBFdkZKbFlwKytMZVBKSitQRkIwTkZjWGFUVElhU3BUYUFYUkxORGJOMGxtWXBkbWt3bHA1eXUvcDVNeU9CaURnQXBHNk1lZU5yVC9heElCVWJ6OCtOTmF1b0FtM3AxemFsY1VPVElHSThHV0RQc3NXdzhkYUtvTUdmWjg5NmxRb0lHaG1NaFhoU0xrcVZ5MFBTOXlqMVZrZUVVdVlPcDlTbkVOeDBYOTBuZEZCdENEeXhsWmhwZllvVElsVkhUSFp3MDgyOEJ6UFRJeVBXY2RvRGZtSTBSbXdHWWJ1TExGZW1CNlhpU0x3Uk4wWkNnSk41ZDNrK1hMaXdMdEhIRUMvTW9iZlFFVmpZN2t4bDFsQldqOWt5WWpRZVlSKzhRRkhCU1NmNlIrVzdCNmlsT0VUVXJGNXlYYks2bkYvbnVOOTJrcEVRVFliREI4WkRIdEhtWEx3YWlNZkVETlVNV09xVzA1Mmd1UFVlK2F3ZlZOc1FSZ0pVbkprdzRBNkVseVh2SVFXSEQwTndKVnYyVmxKMDA0WFZsTVRweUlEWU1iaysyZDdQUjduV2EzV3BMQ292cURoalo2L012U2dLN2llQmczL3FqTzl5dVh4OFM1L2ptdWVZNEI3SHJ4UDhTQTBDUWxmbFVmUXdUUkN5aHVEMmhoTHFGZU4yTEFqR1RKNjZZTllDdjFpVzhCbGpRRjJ3eHpIMCsrU1BsZkl4NXdNQmhWYzBiUUxvNksrbkNldDNaZVJiR0MxdEtKT1VBdDRXdkZHSy9ha3Q3YW1FOFNlb3hwais0V2dGVFBTRFB4K2RmZUpMcGd5bFdkUGFMVHNLSFBtVitFTDlhdXJMT1ZmdmdsN2d5WTlpSHI1cmtIcWdNY2RST3hHdXphQ2k0aXNQYXlsSVp1cGZFdUFYTUN4WmE2KzBNQUYzRVpHMmU4K0NoVTE1eFNjN0I1Z3NBczV1MjgxbzVzUmNHOFFNMitWc1R0WFdRdE9aWWx4aXlMcUVBQUpXVFJCUGRRbDNFRW1lUWtGMHBsTHpJcWJWT3BSTVdudDhVRmRTR0FuOEQ4K0ZGSEtQM1VaZVFxVS9XMWtwamJyaTQwd0ZDTXRMOHFmRUUyQTlBTjBwTnZqcUFFd0t1cmFPQklvbkhIZ2hKQ3NPK1ErTGFud29ZQndtNC9ZRTdpMEpQL0NlK0wxeWlacDQ2ZHlMbzZlV3kyMVJLWXpzMmM3TDdDRlFteFJyOTgyUklLSEZyaTZYZUVCcmRuVUV5Y2ZVS1g5MzVET1J1Vi9MMnpjRWxpZUxzNytObU5LVVd6YitoN3Z0b2h0U3o3ODY3K3BHUmVrOU5yb3FJTC9HemN3NTcvL2ExT2pKclF1SFNmam5aZld4TG5CdlZmcGUvdXh4VlpKRi9WdWlYNXRYZ2VKMGJaZDBvNzhSQUJZRkU3K2p1RzVyN25DbmRKUUpYR0c3VFUrb2NNYndNeFRKbHdvMTZtVWw3aldlQUIrdnBScitVK3JlZEFFNGd1WjAxeTRuRjhQb0ppUzl2aWtBNXphSVp5bjhPWXBkODFWbmJ6MmVwbjd6MGwvS3JNbEwzUzFMNS9rc05NOStNdjF1OWVXbUVzSkxKNno4eG9MeWhXd0VKQXBTbGRPR1dYUU9YS01kSFR3dkhzTVBzd29zOWFyOWRuMGI2cktjQlBTRE1aaVRKZlVnd0E4ZDc5OW5qdGZMa1N4NXRSMnpEM3NTSmhGZS9yUG5lOEVaN3Y3SnhKNjM4cG44VWhJQWQ4T2M0Z1VKQUw0YURRdFpSbWs5TkhvY3owZXExV1c4eUVwZ2E3bkJTaWdSekRjdU9HTWFYelRVTGxzYit1L1pOR2RVbTFKT1dkRW9jSms2MVN1NklKZWx3STRFZmpYWHZMTG15N2MyTjNYbXN0WHVIcDBWWHV3U3VNZjhOZGxLUHZGcC9ucEF2Y1BBRGVqazdRZ0JUbnE4TzFQVHR6VFBFeFlEM1RKUXV5Sm4yYjhna3JHRWZRWHY1QkV2aDRQRERaaUpTTDZqYUZ0dlNIMlp0S0hvcSt6SkxJQXFKSE1KWmJ4M0QzSFo1VGhrM2xjRGEvdXg0M2dPVDRCekxrSUV1dDEvV1Jka1pLY3lBRFlBdGJ0SkMrR0VGUGY1Q0JBMkYwVzhmNXJzNWVHT1FNS0hNQmVHalppVzJkVDFrMWszWXBmSTAxOTZLZUZvZjRsbXpOMmt4bDMzNjNBTXZ1aVZKR0xGenN5bXhHR0JqVllHQmZhTE8wN0VZS050YzJJZENFZzRpSjN2dFVpQmcxaklVV3RWOHZrcDVXdFdubG1BcmRXeXZmQXdtWUhRVnQzTlROaUdPUS9Ld2hBZ0JKUXNaTGpRNU9IOW8zL2swOS9XejJTTHg1Vk5jdXhNZlpRN01IRnJpM1FGZTFBem5KZ1VobGIwczdrbmN6Vk1sYVJQSnVpTjdibzh6VklvNWlFQjJuaHc2MFdIRlBDOWpLRGRvNmgrekdKY29ENlhNajBFbVhqTXpyVDhpdnVMMWRQbEtkekRUUGVOSlRtMkNSQjkrcTlHMTk0Qjk0K3U0UDhrVE4vTkpNNGwwaW5McVowbVdLTzBSalBid0tBRXdOdHhualdYQTUzdC95b2VIWFFETWdCQ0JlUDR6Q3UxMnorSGlXbElJSTUxQnVnWVVOWkFXTlR6Vi91L29iNm9QaVVvUjNCLzJPeFFISnRyVTV2TTlTQUVZRnUxUSt0L2QxUmh0ZE9mUTZ0cng2enkyV0hoczl1WElZL3hudlE5ZnI2OWdZR1hwRmpCT05seTBlbG9kOTJsTEN0Y3N3T2RJckI3VTdUZ0hLSGgxRXNuMHBrbS9ybmZGcWZOWmUxaXhDNzNYUW1nV2FHcUU0dDRUK3Rwd2taNFFzM0xabUhHZEJIekhFUUxXOWlBNHQ2eHI5ZWJDTHhldW51M2hicHQ3RDVUQ0N0WmVhdEMzblExdFBsT2o5T1ZuWGNaczNEOTdyRGtwSHlyS0lDeWhNYXpqaDBXQmptbi9zOENCMzJ2YXk4cUhWeW1JK056TlYxYUg5SjhUZ3orTlU1M3dyZnNiUEd4OVBPejJpd3UvUDlyVENpZXFQSFlBbUdqOGNyMHg1TU5jUG1NWm1DWXRkSzhLamlPYUQ5MGVZY05VSWlsYmdZZEE2QStMQ3dRR3Z1NERUcXJGUy9HQjJ0cjQ3b0JKTk5lK2tnVmhxWS9IZ3lkTFVFaFVRQXFnL1BvbVNMWTBzd1oyanByeE55UW1DSWwwb2ZQaE1qRm56M3E5Z01mVGZONU9GcGFOK3NPUHd4T21LODR1SUdJbW9lRmwveTBjWnhWMjhXR1dHRksyZk0zc1JVeXBVZlliZzM3dXdOQTl3c1U2L2M5anpITi84N2ptMktxNUFHUVA1WmFzdHR4SEZ0TFlMaXdKdlB3NDl1Y3JOM0JpREdkaGk1L1dScXFBTkF6K0VIUzlIWTZmUmFwY3V6ai9BUnRQWDhEQnN4c3RTS1UzdC9HeE9BaEFiZHhjZnRhRjBnd2NoUFpWNmIxbXRWZnlJS2twamcrSm1DOVZvUVVRUWdUZ2pQN1kvVXF3bm03eWVyM2tpOUNlRHZSeU5rSEFkMytaV0RheXR6VTZKb2I1YjJHdzB4aDZTRjFMeDBpb1pVQit3OFhqM2d5WHlDR083UFdZa0lpbmxIbEFUNWZXemFvdXF0Q09iWjIveTRvVjR1THR0TkZ1VmxoNmdNWTkvT3hpK3ZsSDBtTC93elAvUG8yUWpUMzVhSjl4UDJHOGNlZWpKTmhPUC9KOGJiUmFUQ29HR2dVdlVzRHJucG1vYk4zcjVKRVlDOTdrTDAyTXNMcWY2QmliRjhieExDdDF5L0ZqRmhHRytPNXpSVkdqNndxemlRN2FYSGNldnNmUHpqSHN3YnZYM01qTUNZWC9yNkJiMWN6WUVpZWoyTy95VUdsUWVSYVpmTHN1cmdiSFo4a282eDhKVGd4a2pVM0lZblRTa2NoT01mQjlDTGNIS0xGQWRRUUpHbkgvWkNwdEx5a2ZqdUVZclJPdFlnL3VuMFdCeXZ5bEw5ZE55blEzWGRUQW1QWmtmYklWYmVHYldEakpvOTdCdWdLb2NmUy9aUXp1VEtZL1JtZzZpQU4zSlNENGs5STlhSGxReHNOSkZzV2hKQ3Y5MmU2emxNbGRGakVIM0UrWTc1Z1BMOVpoU2hFODRlck1qSHpOVE0rK25SVWEybzZZWkNMSXR5Wk9GWVNhQlR5RkhmOTNYYlo5YnhuTjE1aEhncTkzaDFmcGdrZ0o1a1VjZndiMi9CUFRaRGVEd2JEeW1SeTkrbFRWdDhxcTYvQ3o0ODdoYUFXRnNlbis5MUFZNHZqSjF2ekt1NlJHYmFPUEtxdU9yTFYvYi9vdnhkNkQ5ZDNuMjM1UUk1NVJJbkZlTnNIQzBVSjNZRlYxWnUzNmQ2WDc5bkdxa3Y3eitScFZaWFFyK3BwR1hBY2dEb2phMFJHUDY3RjZ4MC81MXlmcDJ5ZGlJS3JnTUFQMFlQYUNBSExjQ0VaVHZPVGljUXJZRFhHWHpzai9sQkFCUkNLRGRxMzJQQ011ak1PekdlcENqL0pvdnJsRW9NWXA3MXgydVVpNEVNUVNZUnpBdjUzRkNTTFM5VXB4cllvRjRRVkhranRUUy9KWll1Slk3bTVtOVhCVDEvVlJFSGJ0ODNjaGt3Y0QwdkUwZXh5VUgvN0hkMHlaZStqcXpjUk84MVZoSVVBQkZCSVR3bEFZUUZOZmY1OGp0MUllRmZjZzZyVHE0S3ZNbUo4N0toRmdHcnBrTzRadHk3SUZCa0RNZitlWmNidGE0SUc0NUVXM2QzYm43VE4wc0RNUmtoQUE1c2dqZzJsQzd5T0FrQUVDamp1YXVGK3F5VE5qR0tLNVhDVkFVbTgwU3lsL1lLajlqZHlVbitmbjVUY3lMdHRwcGFFN1ZRY1hXL0VBTVJIZ0tBS1NLNWV2Q1BVN2RVS0ZzYm04SUQ4YU93bnNJUFJta1J4UkE1RFRFMlhocXR3TkRabHpJWWtIMVJidFFyY2FYbERGaE9MbTFjYWRNMllLMzlXYnQ1VnBtcjY2M3ppK2ltSC8wNjZTUVJvaGxaY1hlQ2crN3J6Tmpvcno3TkQwb0ZjSEdoYTFDb0QvYmgvYTBvL25naWdnQ2xrcWorTlRjYnNMTVlxaEc3RGYvcitMeVN4VDdjeUFPTWt6YjZ2RWYxbVhlYnJ4MTFvdkxoQ29LNmVnRmxsRHlsdWNVWm1UYnYzeVhJY3pHT3ZodTdVaXFwbVRHUmp5elExbVJVUXE1anBvUElhMFQyUTcyZXFxY2Z1aHg5WmF4ZHpEd1MyZkMvblM4a29mbjhaV3hWVEdqMWpGbXUwMWU4RjJGOVBXalRiQ1BMa3RVYVNYVlNzTW43NzZ4NkF4OFp6QTBER2lFL3Azb2JFaldlR3Q4aHpSOEg3UjhOVEgweGljdFNRYTB6Q3JZNFlKSk15SkwraXEzSld2TTZVNUhmMWdVQ2diMnlKcjlkY2NiLzlyUndvQjhOaUVwcXdhTUFPRlJ4VFF2YkxUektxUWdPTWdEbElvd0VLeGZ6Mko1UE9JQk5xRy8xOVQrc1JuTzZrUmdOcUJZWUtNUUdKVVQ5MzNBSWl2ZmRWVWUxK2owZzU2Vy9hZmpPcjZwWHFkSFc5QlFPR2k3RnBkR0FnN1dUTnJneXZlZHR4UXRhb3I1OXlWeGxTSG9JZjIxWEhKclJqOE16SE1xMzNvM1RRQVpoRFg3SS9yZVZ0clp3ZytIOHh2OTlxVTQ2U2R0T1RtMDdxM2p5OSs1dU1FUUdnYmovTmxqbFRUQmprQSs2WFFuNCtGTzFPeTZWTk9nN2tXTVZIMkcyWWEvcldyK3kvWHNyRndiUHFiNm95bmJwYWo1YWI0a2xRQ0dGSlVUVmVBaUxLRk9adk8vVTNkcENqQXdLQ3ZpMEdaN2F1UTZJWm56bVFDVUxYcnlLT3NrY3JNVFNFc0dDTzZHa3NGZXl6TEYwb3hIQWN6VzlwRUxRNUNyYXZCUCtWK3VYbVh1M21LRXlEYWE3TFpySXNuZDBlY285RUtnQ25WKzBWazNQcC9aa2dEZXQzSVE2dXVFdmh1M21ZWlBFS3A4dnBSbGdSK0lSREdmQWFEVmtkanJmTHlVNGhReUxQS2dhaVRsOXNQUXBqZ2N1QnlZYWdvZEsxN2JlYkdPV1lIVlYzRzJwSWxyNmZ0VXNaYWV3RGRoOEl3OTRXWFRJZEN5aDFDZUgxUDFpMFJ4cHorY1MwczBHUWwwZkQ3cGM0b052SjRHdk1QMGNWWTBRSmlGVGpQNDBVUDEzZ01Lc2Facmx2c2tRN3c2YStYNUIvcDc4ODFwVGR1WldyZGRGL2MvdkdnZXZ0TkpwdThHTTF2cWludk9RV2dFZEp1ckwyVStQM016N1ZuSUNRbzRxLzFZR2F4TUVSaEZQMEhaTG1LbWhzd094TXVQUW15eWZDSjhYR3RuVFdCcU5CYThRSldpQkJQZjU0c3VLcmZlTUZZOE1sMnQ2bVgvOElKWFBYRzVRTFRwUHViSTU0V2RiUmNpRGcwL296TXRRalczVnZnYXNHVkVIa1dkOGR4bjFhL0gyTWloemc3SXpObVM5dHFvVzR5T0lhNmVHZ1J0bG1VWTRqNXBxNWNHcldta3NET0VUUENkMFovck5KVE9XRmI4KzJYYldIVERQN3VVaXJ4VVJZZXVzNE4yZTBNb0xLeWpRcS9pQ0xBTGlZeWwweFNiZWZmWlEyczhNNWFHdFYwclBubnZ3M0hLeDRoNUlucndPS2drY1FSa1NkM0NqZXN3U3BVR053bGpxU2lQeWNlVlJaL2ZXN0tmbXpOWmt3Y0N5akdrMHdqRENhZ0xaUVdFN0k2MFJMSEVDQjhvdDVadHBoYSs3R004NG16dDNSZFJERDJNVVBoZHVPWnh4UmN6UnNYSHdyMjd1ODVOM0NtL1FtSmVNWi9UbVZEUmd2cFF2VzhsdEtXaVJRUldQbHYxWjdvWjFuUDU1Q0pmOWtrRk9JUU85dmlXbDZlWVFMQXlZSG5rNTRoT0xtc3JCVEM0TTF3enU0NU9GYlVtK1o3L3RLckZWNmg1cng1U1g3RmlaVlIyQnlackRsTEUyNU80Tjk0V1hrbVorVk1zTXA2YmtPaGtEcGhZYVNESTRRYnhKRlBxK1pTVE8rdWRab3ZIVXNPNU1XTlBacEc1ZWkvbllLa0ZJVWlGdURQNy9CTHJNaksvODAxTzhOdzhtWUNjYlRCWTNGTnpkNWZPMGdtVWQ3aUJFUTM3Mi9qTEFrRUR4MWRTNFZ4RUNBUVhmWUdMTEorYkxRaGpyR1IzM2c1elBhUHo0KzNuYjFuWFEvRmJWelJBbmxHVlliNkNVb08rL0VJUmo2ZjhvVUY3TzdFajMxZXpqRkFiRkVOUnNEU3k0UkZQc2NYZStnanV4ZHBxQXNLWGI5elFqd2lZMnZMUDFmRW40eUMvYmdpQWhDWWpBOStTTmNhWE1FSm4ycXNqTmZkK3Z1WTJPV0NqK3d2UHR5b0kwM28yMjg2ci9adkZTamlkaStuV0plbGkxcTJIYmNJV1B4MHBrWDNxNjhGeGU3Y2JLUDZMcDg2U1RHbDBiYytLR2czYjBaUWJRMTZvN0I4Zk9ZV21OdXdnUDc2UHY3eFIvcis5aVZYWjF6OHJjL2NrTmppSklvbmVyY2UyQlNoUGFscXhkZ211VC9ucGE0UlMvcGFka3hpT1JWTXJPcGZrdDIzcEdySmlUOEtVRGwyMFhLcWFkbDRaczdxTmZ5Z21jY0Rmczg2ZlNPaDJCM3J2YW9VenB1S3d6SHVpb25GdmtsQlBtdDRlYzRGK1ZkT0ZrVUtJK2ZEMktDcDVPUkxZS3BVRWd4UkhJcGZUZSticjNWQ1FaOTQ4aVJ6WlNlUVBZc3UvYlRZMnp5MzVwcDg3WFBaWXEvV1M4NTNWd1VTalJJYkRHaUk0bHdBcy81YlI4NDdKekg0eEovVDhjb0JrR0c2SVRaaFQ5Y0VKc3RheUxUeFFFZ21ac1FyaEgzdk01eloxRUFjYTlEbW5TUEJBV0xIM0ZqdkNFODNLMXVNajhIekU5SjN6SGtveW5lZVpHc203RjNWU3dEd2htek9jdjdFMDVsZ0taVmllR1JxU28vY1VCOC81VVphbmM1dDNabks3S1hzNm9XUmZSSVR5cWpBd0pPT0U1RndweUNtaDZyb1BYbXJLc1NUQStDZzA1dXNYeWpjclZDb0FTaFRWSGVsVTZBZWtEUTFwaHZrZGJGZS9xb3ljTjVXMTdmaHUvOGNrdGdpM0Q3d1dieUhvdXhkUEZZRjNlUUJNVkdFUVVpRWNUREQxTTk1aGxQRlpZWEwvRDNRTTBweFZnYUg0bmp1TWVGWWN6YUZzdjR6K0x2dzFTejZYcEMvZGJoNVp6YTNnVXhZZUZHVkdFamtaU3I1RlVhZVJJWVI3UVMzbDJ5R3p5dkhUYTFvMFh4QmNEWHI2RERPUmlCSW1xOEFBd3FQMS9jOFRhNXdUdTRBMlE4L2RodEhSZXRtaDh6Q0NHWnl3STlmOFd1VnM0QlRidTdXSnpobHFMdm1hMS9wNEFGaVpaUCs0d1U1Mm9NYmo0L3RRS2lWL3JBMXVCQmI5bnJqaXRMdGRBKzZLYTBXWWFhd09NRmljZUxRdEZTN3JKMUh0QzFad1ZDNXpveDYyNmVLKzJxZjFnc05taytRSVRqUjlzN1FlSzFJdzQ2ai9WbVVsR0huQ1BzZmR0ZUtvdGY5Mk9sbk1NR09HcWg1L3I1RU9KYnJVMkk5eDJ3MzZMRVdYcjNPVkpTbWtRSnZ2anRteDVoNGlkTFBzdHJZM2FWemk4MzJwaElXdTV6L05VU2hKbmtzSkc5WmNRWVNtRGpXZEdzcHRQWHYyTk1CanBLYXo3eUtMS0ZtazA0UHZPc2Rid0dqdmRlWUJabXhFc2F3RHA3Z1VOMnorK1ZNWXZWODd3NFlCRUR3T0ZiUlJoS1ZxSjd6UVZUS3BKL0pBM2RXWFJ3R2o1Q3JnbmVIenltdGFBdU9iOEJkT2g5cFpUaUFxSlE5djdmNXlhL2wwNnVMbEtSUHE0Mys0eEhUd0NsQXh0amV5MnJuUjJDQ1l4Ymt5T2FqcU9qSVdYVW1RZWMyZTViM2Y5Wjg2ZEZCN3lJUWhtU1hiSmtRYkk0Rlc4Zk9PbmVKU0w4UkhFdlNjNE10ZGE5cHBJc1pLbkxOM0ZML3p4R1Fuc2ZRSTlSakY3MXVYK25BeVNDaXRwS0hleEU4bmFSUkRWWlNEOXY1TWRPM21JRXpOdDFsRzBYMG5CUlBNcFN3czd1eVdVcDdINGxxN1llR3FxSXRqZ3FQZzZxK09palBnbmxEOGppSS8rdWlCYkVLWHRSdmk1R1ZYU0FXdnlrb0ZyT3NBZkM2bm5DdFh5TTMvdVJ5SkU0eEhwaWRCSnh6aHA0a0RTUXZYWE55OGRJSnVVc1dNVTQ3RVVPZ21BaGhGRlVPS3lXNklwK1pzU1Rvc0UwWE9CbVdlaGlwMUU2bkdtdWlnZ0t3a3BKeWNnaEJGejBtd3Y5ektqNjBqNHlrTDlIMXhnZzE0Z1NYaE1pYUhSQ2xWNXc2RXdsaUNLTVgvZlZ6bmo0V25GdjlVQkN4VkV1RnZQRDc3UmoyMGFEZm5OaTJZRlJFTEN0c2ZJZVVmREJEN1FlSnoyTnVHSXVKZ1l6NjczMVY5Q2RoeU00WG5MYWNlTTlkOWtqSUlqc1ZFbzBncUFHMW8rU0I2TkhvcnpmV0RVTk1OVURKRmltQTA2Y1BmMkxhbEc2VkhKMnBGc1FMMHBhbHhsQ29mVVVkMnFNcjMwd3diSXoydW1XQkxlNW0yMFZreHpLc3FQa3FyOEZBdWU4anh3REx3dmluM3hLM0tQN3ozZ01SWXpTbTZKckVnRFphVnl1RzhjYVVwWkxVSUF5b0licHNHRFNaVzA0eEZ6NWI1cmpNYTRKU2tpSGF6dW10WWh6TkN5alJDdngxWmE3SHVwYVl1S1Fabk92NlhpZ2VKaTE0cHBBdEpJMktLdGM5aldqdmlPeC9CR09ZVFBZWlk1bjB5OGN5MENzYzNHOXdWbzZWR3NkcWhBbHJqejk5ZWZYMjFpbVR4WFhqRlBVUUVGUzVFOGRWTDQ1ZDUwc0NNUkMzZC9IL2dJTzhHb0hIbXpmVC9RS1BibXhSU0hJaEpBRG9QTk9kOEtUd2RaeUNsVmRvM2VzOWFEOWtsOFZOTllFR3NFaE84bE9VeTBhUEkwQmtTOTQvVGtiVFhham5oMjA0R0REeHZrZWRBMy90L28wMno4aUY5TXduelBvSkxNT3FMd1grRXZGYWpWMy84NTF1WTZjdUU5UDN5TE8xZGRycFZTc2IxQXNKVVMvdUNUclgydU9ibUdRYy9VWFh3MTNnaGV4UTRZcTI1enVLL1RYZ3Mva0o1aG4wMUhtUGIzamkvSW4vbkl3QzhTVE5zY3RxMmNZZEllakdzMG9EY29IS2J3T2s4MWVaQzk4NGVFVXIzSkFiZTY4Nzc4enM5N3RFK2o0Tmg2MUNkUGNwb0VYN3A5RW1pTTJ0VDFrOTlzeHZjS3Y2ODdHcTFkRStZa05YZGtBbndVaUJzVzZLdHg5djJOSzJFMExzWFc0dFU0ekV6ZHo1aTczc29KdHRYa3lIWHNHR2ZqN2svOHkvV0FmZDNzb2RrMGl5UC9IL0ZMb1U4c0VHZm1uQkJHdk9Cc2w3U0pCQjJPSUcyNkZLMExuYWxMSkc0NTVkeG1qZWRMckVyY1J4djlmem95M0NxT3pKRmx3Rk82ODFUeHI0bjByY3QxWTh6VTdmdXVpaFRIdzFwck5DNEcycm1EMWpYZGJhRmQvZDJMMWdSWGJtTDBqd2h1WVdVbnREMHR3U3pZSWUwV21mcGN0Zk1JQjRlNHpadHRsZ0J0VmsvajZMVElPYkphNyswelJwYzZPL2hBN3hHYktXWFlXcklxMGNaMlV6K3gxcmFxdnVudkZ3cXNpOGc5bVp5SEE0bnJoeDV1aW9XbGFwb1lTWitEZ0d4bUVwQk0yUi9GZmd3U0g3NDJ0TTg5NFZ1c2t2SDRjeDE4cU5idFYvK0IwdVZlem9mS05yZyt4RTVlNkdjdElsVURYdnY3bVRyQm1tdEFieDhCblpRdGE2RzRlNzA5UG9wclY1cUpvUkNiRko1cmd6aDJPSFlteVdOSXprN1JpT0tuaEJTanQyckgxY2ZOclNxVDRaNy9MRGZIc3dlWS94N2xxQTJMb3RVU3dBaDdsUzFvZTI2eFpvTWJuS0JlK2RIeERrNmZnREV1dXRjZGp4ZnRoK3RsblFDbCtabTQvOUR4SEZrUlFtZ1FzQit2c1JJYVNPdEMxOGtTcDB5NVNDeGVtQkIrOFhJYzA2TDU5eHRnSy9TTjhKTlc4UlVDT0RBd0FHdzJ3ejcwVGZHTVUxRENZcmFnU25UWW1ld2xDUGQxTm1OdEQ2WEV6eHdVR1UxSlM5M3BUS2F3REN2ZS9XdGoxT0xWUHU3ancrVWplaEtqMDFwQllxYThlTGxBcE9jTkoxaU5rbjB2T2dYSlZmRUt5dXgxdk83d3NaVjA5UWpSeVFZa2FJL2pJSjd0eDZkMDVQZFk1SjVGdHgyZmNMTkJZUjVDSUswUXRXOTJ3SmEvUnY0Vkczc2ZCK053WUtCZ2FjU3BhU3FCamJ6eUxWTW1EY2R1K0ZCY3N1TjVkMWRDU3N2SzdYWDcxaXFCVnVlbFcrZW5VL2R6S09SWG80bmJZUERyUVR3TDNaYnd1MGcwL1puWlZibWkzSnQxV0xzNm9CbkZDcFdJNEJITUMzNnpZMlZ6QTFHaEVLSGJiTWl1NmN4bXJZcFB1UjlpNHU3M0lnWnBORXZwaTlrRGZvQ1hKSXgzZGh0TnBBRkNLWXF4bGVwT2xzUUVDTk45MUN2UlgxUklrT0V2YWtRTzhVRzVYbkR3VUllRUtlcHIrS29hVDQzT0swTURacWx5b2w2NmRIY2MzRkNJcU1YMnFESUlqMFB1aVFyZVd4S0ZQdkZyWmZoUmFsOVV6OWxSZGVtMFRiV3JqbmllNm1Wd29KODkxVlJkVG9BUVhkQUFCNXp4amxnNVUvZkJ3OWZTcVhFQ2t6eGN4eFBHZjVta1YvbVdObnJZMWJQMTc5K29hRmg3UjcyTUp5UjFkeXpmVk8wT2tNM3lqeVhTMkY1a0hXT3FIQkkxOENDWUQweWR0a1FuQlJ0aHlrWlhvWXRQb1BpN25EUlJrV3p1T2U4anBiYWhpMC8rb3YwazErbG5xVEpiWU1sNWgzQ1BMd0gzQWFIL2syRktFRlptTkFqQndyVDdBL3ZUNUlVclVzd1NIZWcvbGZ6YXpDU1REc2o1My9JdGVQbnVWK1dYa0N4b1NJNHo4a1dHOXkrNkw4R09EeElPdlBRZ0toZ3hIQUNkck1LVmhmYjY2eDBNNmVQWUp4WjNVTE9jY0M0c3V6UGNnOWdzZ3kxMkw5SmFJc0Q5LzZ1dk1IZ0YyUjhvejI3RjRTUk16RHJ6bnk5VWRTR2liYXdpZTMzaVhzNjk0Mk9JeWorMXVteDRLZjE0bjNuZncweDR2ZVpsNjVOTk1nblYxZm83WmQrS3hjOXMyc1pBblQ4cVNvVXBTbnlZbVpsRTZnUU9KVFpFd0E5czdoRHlmOTRiOVRoOURYNnpSck10U05US0hBVXJILzdwZWtCRFAyMkdjalcrWEdJQ1FhWmtETmlVMFc3WjA0N0tXYmdrVzhRUHRvNG1JK2w1SG5WNVlhcTY5YzFGRVl0cHExQWRZZVhYeEFFM0hJVjdGdDQ2ellZNzdES1dzK0xmeW4xalRIdHpubjlhVTg5dHpuUHQyeDRMQ0pQTHNRcm11NEtURFpkZTNGc215a095eG03QlMrT3FGcVNnWWl5WC85ZUpDRWRNaWk0Skhvc3hhc01VY1lyVm9SZ0d4YlU1SkFzdjFLdUZYcUxkNUVZekZPSmRDWGVXV3dLVXdtZ2pTK0ZyY2l4NmFCZzI0d0x6NXFiRGF3Rlp2TTRHWUEvNlhyRGV4N05nN280b2RuMkYwSzJTUGQwTUZpMllqcHRENkpjTkpBdFFWZ01IY3kyT3ZKcjF2dmo2dGhWL0hpNks1bGQ2QzVMRVAwck1zWU9UWUxmNU9oUjRxN21JUlRKUkZ2QVNRRVYydUxnQ0pZUldvTFFjeGw2bko0M1RMNHh4RFlJQmRLak14OVhNM1EvVU5QUERkYjcvQzJqQWh2NTJNU3BadjJaV3F1cDQ0bHoyM3g1dGwrM3R3cW1XMC8yQVBPMlpRZE8xQzBQOWFjTksvRmJEYnhhc0lOa3haY3hwdE1vU1EySUFSRWJTUUozKzEvdW9iSzlxREVHQ3hWZWdlN04xenpkVmMya21rbW5jLzhwNUk5YTBkcmJJZkJkTXV5emdOdDI1am5ib1o5bVRha1VzMEhIRnRvYm9lUmdCU05aTE96MVU5SW9qaVp5SlZMWnZKd0JqQVIwQ1ZCMFpILzZyNW4xZHZuRXUvSGxIU3FCWDZGZm41akxNZVJoTy8rVlcvQVNSVXhCa3M3eEFPemU4TzFsTHJRYU85Ym5ubVUvdlNNZjFTRHJ3T1JWSHhER1FIdk9aeS8xU2JzK0h6Y215VWhDbXJLcjIxMHdRcThNd3Z5VFNCVTNuOTRIUFo0MG9sZVh1blZGYVBINGplSWdHd08wVzdXVGxiR1dwR2I0OGU4c1BxaXcyekY2SnpjR1dERGMrVHRKZHh2dmYxcTZwb0FDN3ZnSTh1R05LTkh6NnZkVVIxRlh5Nk5yRG1IM3RDekxrdzZhVW5MMXhLNkRQajRnTmJtSnB1SWxNTXl6Zk9US0Nodnd0RHBHNnNRNXBKL2doZWFxMjJTTTlVcEhrL0lYN3hZQlhBaHFPSUYzQWxUQnkzOW9DSThVbWh2ajJrOE1wc3N0NWZ2cXRpeENxZFRoell1bjd0NVZHa2wxZHlZbm5MVkVsNjVqNEZxNHVlTjMwK0E0SEJmRzJxN0xXazdYMENtMjRWN0hnZVJqTGo0MEYzQ3MyNnVpL1FzQXEzOXkzU1lVNVppUzgrRUEwbXUrZVo3eDJDZVRRbzYxclp1ZWhmY05UTXI2YlZubHhuYVFzbkVIN0hVL2hRYytrV1FaS3NkRExtZkpEdmM4WGRUZ0JxSDZJUytRSitCMlluVnc1cHlHT2c5c1FPRmMyaEVXWndzRjdGOEhWTFNrUnZLcEhwc3BmcjBDVXgxbHZicTlOK0VoRmpuZlpxMTVrQTJSU1ZZengxNXd5TXlacE4vK1NXYXN5K3lZOXZpdjVJYjMyQ1FzRFVMNis1YVpmVHpabGwvN3NtYjd1UUp2M3NReE9UYXNmcGhUbHRYOVdLWHlOTnlJcWl1MDZzTFBRVjJvT3VoeEcyYjNXOVUwYVBrd0RNZDVVczBJMW1zUURBaUM5SFB5SCtnbjZ4S0JLaEJTQ0MwczlkWmRkMVhmVGpuWTB2aG5DaWRrbDMraWtKYTBkN3Z5R1pQNWFrMlNyWWJaRW5NclgvaVBIWG10SllIa0pMa2JBd01PZ0YrZXByODNuOXhwWWhqQ1JnS2xNbEFHRWdrNENLRW9vdkZBUzdGUytTUHBZajc2RC9rWUo0NVZmOWwzTGdNNUwrelBaVG5ucnlHZGg2VFRHVXdrYXJLK3pGU0k4VlJSN0FBZkE3eC9LY2xNWGVwK3ZCdGdaTitkQys1MGJlUXlKazZSQ0h5S2lrclBKS281TGpsaXp4dEtWQkY5RkFZRkdoWEx3YlVHRnpJWEdwbmM0R3F5clA0dG1IcnlNMkdkQ29WOXhVdzh1VW5pTVMwcW13Y3A2dVNtSzBRSnRzYkgxN2dRNGtwMHo0aVVJVktObHdCYXJLb1kwK3VRcENjcGxqY0FEVDJ3MzVzemFwNWh3QVkyUmRPZmlvWTJOVjZkbVlpSTdTOVZJdjltVzdZNjJoMGxtR245dU54ZXp5dFE1eGlwaHpaV2xUNjZORFk2bmF3aXVmMjVvT3R0QkNLTGw5RHNWYTVQekRVTDFZYVB4RkFubFpyRXN0M1dkcDRqK2NVRTFjN3plRktZWm5ieXRpdVI3TzE3RDFVRGlpcm1KRDZmYURWd04wcTBXZWhBZk5Sckd6YU03SXFVOHdSQTk1ejI3NWpFQVRFL1ZkYkkwRGRCTnVacXBuVGt2ZmJnayttNW05MlVFMTNSUEZDcVRvcjhRYmQwZE1QVDE5cTZqMFp0NUFOeit5NTFVMDdPcE5QNzJxK0RBR0NhYmd2VVNUQWdHbEdLampza0VNRFZ5V3k3ZGU0NldPWW45d1dmQjNObWVxTGdxcGgvWm5mS3g4RXlxV0hBem5BbDFCZzFocDR6NjFpQVFEdGZJdkNYL29DTTMzS21SWVVNMExQUjRXdU5aVWNpVFRhRlFOcUNMME9YcW1JMUxUM2loUlJXWTRTUWpicEJJUm52S2RrN1pnNUF1RU5qenpmeVJZWnA0YUdyVFZXaG5tUk4rK1JBcG1lV1dBdDM1THNqZ3REeFpqSHB4ZEUvb2FJN1dmOHY1UWNWT0JnakgzWU9FS205dkZvTTFDUCtZdFAvRCt2WS8rbEVHSHp5SXpEazdrM2Q5L0MxdmsvQ1pMYnlrQWNORWdWZ0lBUkFrUXQzZk1QYzJnYWpXMzh0VktOekYrZ1JzQi8xcVJkdWp0WEpXSE13S0RLUFdaVlFRYWp6NllWQktDZGJxdzdaUWovK01zQ3hKYkxncVQ4NEh1M2V4VllCNGlzUHZMdnpJZnM4NTdBTmhlRDV6TmJucmRIZno4a2YwWm14RytlMURGM3Vsc093UHVxbTZOYzJMTFo1VmRsWUllVHhpc3FpRGdSdzY3MjdzZzhmU2ZUckZuK0kzUDc1OTVNdnIvRmJuQ1BPY2hObGR1bjJVUmJzSnFySk4rMVRXNDhWTmlzcHRPcHVHbkU1U1dYSjF1ZmR0VnRPVEk2SVRYODVKcUlJanBCRUdydWt0MyszQVBvTVpsdjRzTHdzVTdYNWJwQWdIVWJzRUlVWFBjalNlL1JUaENpL0xBb28wWmlHK1NPdVRVWUNvdUxFdUZzbmlxSkt5elA0eHMvclFEYmJESnVub3ZKaUpUU3dndXpueHRvOVZ0UWIrOWxFQmp0M3BQdmZzNjUydVBWU056MXZBckg4bUNTU1VyQzNFN2R1WExqYkNndmcraVd2VzZBRUgxa3NJZ1g5c3hwYUFSTTEvS09xMXRTVHp0Y21yN1FiOGJydEEySGt1LzZKOHpVZ2pkQlc0NnA4dmFMc1FPVFk3ZXU4OWMrUzJKdkdFMnlzQ0duT1B0ZkR6ZDlFR1ZkMXBJQ3lDUk9JL0FVcUlmclVZZ0RYd0xHSjdKTk5keUFGVmRkeTU4NVhyR2tyejhSeGlqdCtqUzQ2M25QWitjTTVqOS9uQUtkMHY3Y0p1Z3k0QWtvb1FUWkhmMTRSemJwWDUrNTZvTWsrVCtpdktMMnVrK2JReFZsTWlDREFTYkx6VUNldTZKM1Q2eVNJNGZtV0hBYmNMdS9nSi92NkpMdkVwcmtOLzJFU1pYVnpOeTNWZG9UM1RYejZiYU1wdlhWZWNLWTRkeFlWMHZGZElXOFJ1N3lLVkhJR09PQUVnbDhsc09weC8rcWZlUHRBVVM4WWhTVlY0WFFpK09ZRHE0a2FHUXFHTktBSWlrVDBjVnU2TWFsaUVGL3Z4NnN4RUNkbTlEdWVoeWJwenlHSEtYVDFsRms1ZHFvOW1ZQTR1WTBiZHZlWjE5MkJaU040M2doeG5Fa2t5MUhwRnMrYjlacGx4eXdSVVFnOG5uQTU4aHkrWEZFaEFDc1Ftb3JybkhzekdRUkdCcGhEd21Sb1lUQjNWK212ZHNEYk4xdGJBRjloMmI2Yk5JRmxFdnBYTHN2QW1RT3JsVVdzZHlKZmZzMFNQUmdmR1l1c3BLMkV4bFZ1clhFSWdoUGlzcTJWdUNTMzhHVmZkUEtteEJKaDdkcmQ1eWl1enB0ZUcxT1RjNFptbGRlWTdDZWFubi9tbThUc0RHNkNYNVZSVVUvc1ArMVdPeHJCbWIxZXVwOUFwVWFDMndjekc2NVVSYzM0c0ZOUkc5ODFEZDZGd2EyK3RINk1acjVGNzF5UzhCYkU5YVd2OUtaOTNncWg2dEhQcU5wQjcrWHdZblZPM1BmMG9meFhGYng3dFJpRGw2QjFvbEJGOC9jaVQwdlorUWlzblZCdGFMekVyUXlFdGhPV29JSnB0SjZCdXhMcnBnYi9LQ0p2VHZGSk4rbE1lcTlRb1FKM25ibjVGN2FOZmVaTzdHN1NTN2RuRVgzVG9QUGxZVlgzWVpnWlgvYUlvNWVsWWk3MUNQSExNRWVGY1E0b3BRWFhsMjZ6Zk9JaW4rcFNJSDJ4V1l5UW1rTUVIYTBITTJpc2hjVUs2TTVTaVE5aSt1RkFBeXdvWDNOZys1WW9OM1pJK1U2c2JCZS8xd3g4c1A1WGxnQ2drUzAyMTJaa1EwclVJaFJrS3o5SHEzRjVNcGlITDlPUkl4anZIZ2hISWNVSmM3ZWFCTWlNRVkvcWt4QzNQbWh3S3lVQ0ZYMG9FSGQxZUlmZHpnYTNlRFYySWIrY01pUzV0WTlXNG5pakZJSGtwOWRidU9paGdicm02VkI4Vm9LZjhtQlJ6cTB6TDloZDBzV0J0bDJ0dFlrYnZQMUFRbkNxdFl3TVVsTm1aSlJGbzAwRm1WSUdDRTFQRzRHUU4zc1RtckF1alA1MGMzR2MvRVBBMVN6K1BWS2dBYWRCdTRUV0RBbjZOeUNzUFVJVUJlSlVBZ0FDRVFxejFxSlJ4QVU1TWxCSVJKZ2JrSHkzSHRpUDRkN0p0SGIyVnNYQ0ZBSklGWW5iaG1kemFQeXA5emg2T3ZtMmE1TUh3b291amtRc0JCbEFmVDg5SjNFSmw0U0RxVDNJRUV0SVRBcXFHQWdzcSs1UndiVXRJdVFyMXEyNWFQL2NuV1RlOXRrNWRjMTB5V2Nrejg4RE9Jb2FBRHVLT2JlTEkvL2RjMHEzQk5CVUhyMGFuNUNmVEw1RWtmdk55OW1SUmpzT09yclpwR1FjSUZNN3BpR3FKbTVLV2JxakgydUhRaUFBSlg1QnhtU3ZKWVl5YTRMeStwWEhEWldSK1VUK2F1bjVpSHRJakxOMWozWHpqdFFZVVh1a0VpOFFLSjdBb3FzdVhlS282S3cxa2lka2FpY0hCVnlVc2lNWjF2b0NPNG9HMVdGRVp2aUNQempQZ1czeS9uYVpFMTM5OTUydXpucE5DSUE5ZWYzbWtka2VDSW8xODd3TWZlK3ZKWlFvOVJEZ011a2ppaU9BN21Rd1FScUJaeFhOUFVDRWJ4aFhwRWJ1ZlVBZU1rQXlOY3lsVFA0cTBjaWpDaXdieDlRTWlpM25yWFdKT0JBdUhoR0tvZTJuY3VpYUFNUVNJQmtyQ0NRQ1FoQUZ0b0dvdkpoQmNyMmd5WExqNDRNZStOOERBdUJjamFCT0I2aWsya0dXaWpWUDR2SWo3WGc3cDdCMTl1b0tFU2RTYkpKT2pYU0xuY3NDNURkRkh3TVRaelc0MkVpeHhDbmlHaEI5ZTFNUjRwNmJYY1ZXUG1kcEJHSCtrRVhrZEsrOEplOTF0c1RVUFdLMXpmT3JremV0dnhRQlhpRzJ6VzlFUjF2RnlEOEt5VkZUOTlkU1lFaWpLSlZFUXZ6bHE0b0NmQXVjU1BSRkhtOTA3bnVsUnQ0eWZFWWpGRW9Ib0VsaWwvbVVBOHphaHc0dm1HWHpjM2tHcUx2MFFkUzJNYWdRQnBiM0FBWFhMQTB1QlA0dGVYeU1nank4MnVZTkhUMWZ4MmlwRzlxY09MZHRSaG1IMDhFbk5jcC9aL0x0L2ZyM3phYjJaT0xzZVFMYWV3RnZ5Ty9YWXl5K1YxQ3gva2UyY2ROYnlaWGsxeXUzTGVGODBpa2FCMXN4S0VlMzdsZjRvd3lqWmZycnBSbzdKdFRWdzlBNjF4cG9vSHA0UXIvRzgrZlp3U3NtMG1ZTkU4WUpVcXdDbWZEcTJxMDUydkNMcUkzVDYzbHNuVzhFTGIvU2FxWjlTOHZBcVBmdEZ1MVZhRHIrNXlBWmlDSlFBZE1CT3lOSHhxeU15S1pNQ0lDSklOWU1FTHpreGE2NXlNVldDSG0xT3V1RFB3ODlQRUdEYVh5Q1hzeit5Ly9ubEVGNEZBbmFNL0xpeHZNUVVsN2drYm1QNDZnT3BKQ2NSazNNZ3Mwc3VQcHB0bFRFdWNGWEFEZ0VUUGlNWTZ4U0R0V1RNelBSZFJNZjB1MWUreHY0U2FXSXZqWXVsckhYWHVUVzNncjRoRnNnWGN1RC9mZitPVml1ZnFaSnFNM2FRZ3RLLzc3amxKcnRyc0xOTmZFeFcydlJzakc1NEpIMGFvNW1WR2dnUk1pZW43Z2lxeVdWOVR4VXZ2azhNTElYRUt5Y2VlTE1NRTBObTZTcEcwSitrZkEveEVkdXh2RExoZGpQOHB4Y0dBck9RZTgrMHVXcTJMaTRSZG9VeThSTlpWSnV3aTJmWGIrVHFHMitwVk0yVHdDdjllTk13SEQ0ckM2YmdRN2FJT05SWFc5SUtDd0FIR3k3RmpZbHpDeU9RSEZ0aWJGK1lSK1ExRjdyY3dKa0piME80WExNMXhUaERxQktnMVVFV3ZiRUthRm9hZ0I0VnpmbllKcm1yY1RJbzNJSTdCdFNoc0JyREUyU0UwcExLQzNJdkFSejZrRHZ5aU1OZG5XSzN6YWpwbVdpTm9PSDVEWlBUdGJjL25oR2crSEhFMXZwZ2ovWWlwQlpGL01XWm14Zmk1ajNDWjNIOGV6eWZaellBZWw5RkRWeE1Na1k3dWZNaGxqbjRTREJSc1d4TDNFKzhDOGlUMStWRHdXNkZBSTNBbkgvemtYNEt5SG1CUFBncVFOckIxclhpbXJSZzJFNWlXMkVTV1FBRHduYkowNnRmc1RaN2FIVHErc0pXSlI5WUh5SXFvejBHZmZMOWJMTXlGa1pNMVNUQVNBb2MwMkxUV2I3RUhIVDE2MFFLQ04xTFprSFE1a0tIM29JSWhvSXRadDEwNGxFcmVaV3IyVDRKZkpuNXhxeHBUYXhRMjZhQ0JIWm5Xc2ViM2d5WDI0WThla2gyTVNZT3JjTE9rNkNlczIySU15Ly9mOFlzWWxXZmg0OWZWNFl2NytxbzFPcWtrUW8zcEx5RUJST2IxdUl5bjRPaXRQYWNwK3RLak93MXZNaWpmVE1yaUFMRnJqa1ozQUJMVVRJYnM5QTZDUGRxdkJJc1B0WFVyeVdva0drL2ZJbDFrNHdKaFMzSDRneWtibEdVMjNzSDVJbjJ1ZElpNjh2Mlk5QUZsSG5rYjFJR0lHSnFzamtFM21LSFpOdy9wc2tSenNMR1V5TWQ2ZGptMUNNWTRhYUhEK0NnZzBPTlNGZHZoaElKWG5VV1V6N3hyWFVRU3cxbE9CY0hHOWFpa0htNEZERTUyVUNqQTJ3RXdJM016bTNvcnRjaG13bmpwVDQzUEhFWm5CTW1ockNZNSt5K2JNV08ra0c2dkxyTmJiWkhoUEprL1lNSG1NdjJmbmcvdzVzZEU4TWtEc2QzeHZXekN3REl0dGkrV1VTaTVTVUNkOUFxMHdnYjBoOFJFbnpnbjQxMG8xZEpTcUFpYyt5MzQrMm5vcTVOZVZSRHhweDNvNURsTEpVYTBVekF6MnI4ZDFVa3RMKzhiVlJDekRENnR2SWxJa0NzcUsxQ2llR1Z0Q2lxS0dsUmJ5QXl3RFp6ZWlMMXU3MjU2bCtvSEJ3WVRJNnJvU0FOUFFEQ1FFVTNOSjM0Z09oQUIvSUtOYktkcW12MWFFdjhpQkswZDdQaFBZSXcrK2NodGJrTHQwM2hneS9ydnJnN0o4UFMvSStKcmRSaDhCaTVDeWlEOXk4V04ya0VsOVNYa2ttRlBiTlNabzA5SzQvMkZrcG55dGhnakNjOC9lT0o1VnhhQllwdmcrdlQzWGVjWXcxdWtuUjZnSDdJcU0xQzVXODkyZGQwOWNqM1NkSTI3eER6SFlOZnJVUEMzTGVDOFhQMllsLzZrdlVkOWV6NWxyUC95RDFxMG9GNE4zdzNqa3VXK1NraEJGcmFlZEJ2THBFTHVYVVh0T3pNRm9ha0RCaVYrbmZFdS9jYnRSay8wOW1seGVrZitPbDk5VUVHQWRBUXNudUh0WVNLS2NLUmh3NHdDVFV4eWdTMk5zQWpTV2trUWM1NzVuZnd5aXBLR2hyQUNuZ3J0Y3Z5aDlrTm85QUI5OXZQUGRrd1U5TnFXbENaZGwyRnJsRUFCczc2c1BjaVA4WFJ3R0F3cHFpOHd5SEN4TW9UbGp5U3p0OXBQTG80RTd1ZFZrZU9PYlRNQlcyUm5XVGNQVUJjT0hkeDQ4aHhHYjJpT1BtNXA5REFSYXdERVo3WnNlZzBiQ3dXYWtpZmlwL01rc2dsQ0xETko3aUptZjAvU3VBMVRCZGZmZDRkL201Uk1jdTk3Tmw4Q1ZCRksyRnA4TFVUMHM2aGZySlFIV2FpZVlmaVcyRStUbEJZZ3BsaDNSaG9EcXBXTlEvS2VIaWVrcGxEZ0xDZ0JjMnJQSlNtdWwwVmtSMHlhK1A4RThndzJqUEMrWTg4eDFiWmhDV1lZYTFOdDFXQTV4TFkyK0tGcHZvVUhhdFd4Nk9PWVlpODBSSW5JY0pCZW1oNUxzeDc3MVJwUnNvMlNPRWlrTGNwL3RycDZSZTJRc3l0eXdxUFhvNCsyRDNUOVNTc29sVXFSVUdmamFib2VGRkJUV1JINWlSdWV4bVFEbHNaK3VST3YrOFUvSXhHRXNYeHIvOVdNNFVKbGRqZGwwR0IzSVhJcGR4V0l6L25LWkw2OXVXUGR2NzhkTzRad25UOTI0M3dwRDZKbm55ZlVKWUxDeERGY0IrMmdybmFVMmpZV0tsRkpiVEVMS0tycGpIKzRRS3c2T2dpaGJMSkxKaE5WWU8xWGNxcFYvVUpTclNuU3ZTakdVcXhSSFZhaGZTOE4wQVdRRExRd2NRWHlGZ1hhN3BqWG41TmcxZE1oYy83STdQaGE1RkpYQnpoNStWYnpQaWtHMUN1bmZodCs2TXlIa3BIS2c3a2JxNzNyU0V3d2M3eHhjYjZLc0dOeHhMeHIvM1R2WEtoT28rZjZySTJtY2lrTERmZEZzMU1QUlg1VENjVXVSa1VuOXJQWHJ6OWhHUDcwK3FnVkRyZzhpQ0YvRVpxUWNwQytHL1d6OTU2T21UTTJPVDUwMXF1alRNeDNac2RZWlhsMktHRVAvdWhSQWtJeWxPSllDT1JVU2w5KzVVWDZNdy9DOU9vQ3A1OThENEhmL0dzdGd5MGllUVUyZXRacG41dFB2K3ZFVzBjUThoUWNMY0h3WGtkbXo0Wjg2UHloamFMWlQyMlFseTRnRTczcFU1VzF0VnFQUGNmeWV3SHoyby9mdG1yS3ZhQ0ZvZWkrcGRrNDBsc3FvVmFlbmRlRFNqamU5U2huVW9xR0lnU1BRTFB1d1RnV2hHWlhBUll4ME9nSHhOaTA4eWZXNDRSQ20vdVR3UUxoMjcwYm1hbFBldktPNjAzZkZwbS9wdWJXS0EwRWJhT1o4cG1GQ1k5QVg2Zkp6eU04YW5CcWpuSGRRUEhyb1Vad3AyWE1EUzQvc0tUdm1HNWo4MlFrTytxb0R3U2lMSU1STXUxVVBpanJ6NC9HeE5vcU4xc3NxRnc1bUVxZUpRdHZPZVB2TThKWFVINWErTEh0aDVMRW0rV1d3MXlraVJqTGJhQWNtNXhKZDhtOGNhczZpVlNaNkJGdk1xdDcxSWtJTzRrS0NYY2Z1RHJZS0xSdGxySHRJYkRuODlVYU9JeWhURlNXTkNiNVNFRnhTZm9XeGZzZnY2czZ2d3puT3NvZ29SYjJlQktaVXZiVHhPYnR0dXRheUpjMHRtTGVtOHVwTnRmNFJHUHhlNUp3emVWNTd2YW5tMVZaZlAvMFlQb01idXVUdEdqZDhyQW0wTUVPb3VJa25MUi9jbjdWVXZNVTZ6TzdJWHh5a2IzVlFLdmZiSUZ4ek9jZzV6UXR6V2JSVzlTVWo1akwrUWRuM0FPSmVXNmp5K3lBbnlyN00yYTJiR1N0RFI2NmxtTU9TT1o1WC91M2tBdjFtK0dscjA4WUpZZ1FwOVVZaVB5Qk9vaWtUbHUwalMwSCtQMDBzV2JWYTRieDNwZ1dDeUJhUUlueXdERVkxY21lUzZlVW55bWwzT3JiVFRiaHQ2cE1aaUtQTzhZNzM5U3BiVEF3bXBicVNVdDVvVm9MNU0rNHg0czFZL0dSMjdISmZKMjFYMy8xcExuRGp5SjYxbEZNMWZ3OXFQQXBRdXFHNEdmNTdoNzk1NFdMWlF6Ym4wZ0VlZ2N2Zi9NZkhvb1N5TCtMczN4UEQ3cE12alBsUGxwQlBFdXNGUDB3WDdtb1lRRUhrNFJMTURpZThhN1E4YXpwaHJGZDBsb3daK2FSQU44VkdtK2luakVwWjkwZjFzOC9VWkM4YURCNnN2eWY5V1M2TkYxN3hFaElwOGVPUy9JbmZRczd0TmlPenAyZjh2ZTQxbGk3RUxMaEVHY2RodkQzMnloYmlnY3RINnkxamNZUWlINXRpR0RocXloc0tPRGJuYXRYQlB0ZUNUTDgyMnpWeHFRV2JJc3YxSkVRU1JLNnRqSHlLZUZ4ZTFHcTBRNlkwUGhheXpMd0k5bFhJRG5UMzgrZE4vekpLTm9HRjd0U3NvSXBYVXQzNGttcEIwN0FHejZwb3J0UnJ1ZTZvdy9sem9Vc3JyRm1CZzZ1dmZNaEFWSlhRTGVMWWNjV3BnMisrNXBCTnBsdGRYQS9neW9vTmxYOVFaTnhQMGpKb2F2VFZ6TmIzNWgzaFZJQ1J1K051ZndEejlpSGUrYS92dmM2NjFhVzJTQnd6TDMvM3BmYy9BYVlyU3N5c2VGSEtYOUFvMkhRODVNRkdOZnNmNSsxdVl6SmF5UkZnMTloOWhybFlsbGVzMkxuSUswQVZkTm9vM3d4NmU0OXZ3RE5XODdYWHI4L3NlMHQ2MHJsalhyOHJnUnd2UGZOK2drcTIrZlFOQUtiNGs2eUdsc1JaRmYvWHU1ZXR2V3JrVTVTQjB4UmFHNFMwUytMakJ3Z0xQTlk1MitkQ2JEd3hZSWFkTVFGZ002WXFPMzFMUWhhcWl6QTBPOU1iTXpsUlhlWTM4ZDkwMVNXMTU3Znh6bTJPU2c1dU0zRnBZVHNJT3BCNC9VVUpOYnZzYVArN1BxVmxaSVczTGtUcGszeHY3b3FQbTZuU3pFeHdVa0EweXJ3N0lJWHBHelJPN0wyWjFFdFVobTgvbUdGQ0pTODlxZ2EvL25lMG1IRWs0Y3JyWW1wTzJlbisxMnNVRnRneGIxTnhnRm1rMlh0eXYrdDNJdXZCNWZGTWVtQWVNTC9qSWdDWnlXb1E3OGJ1SHhlT0VCa1lqNFBLZWNEclVMUy9HNG96bEhiclgvNmRZSC9JejR6UXR0TmJ6T0lqRXFvd0FBVWFFV1BMdXdpQXlCajI5R1JjTEdZV21zVDQvYWVqelBqVzlpOEpPc3RtYmxVVUkyMFk3dm5TOFVlZ1hkUUJtK3E0ZWFXcU50b3NGZ3c3SCtwWHljaER6OFgxK05rNjNmcDZFUUVEZU9ZVk1OTGcyc1JETnRuYTlzd2hYdDBWNkhPaDJjemNWclJ6ZStTMGFxT1RHbWs0RHFkaGtKanI3UythWm9lckw2YVlDVmFrazZ4UXN3MnBOTWRZS2FtYklJbmNQcWk0MUlqVmRCRnBZN1lVcjZBZXdDNzkxWlMzaUVvaWJ3OHV6c3UxZkFlRVBWVlF4QTA3Nkw5dXFGMEZGM21LYXVleWVTWWVPWXFyL1VDWGgybXp1RTBwb0laQitSWEhEVjB5Y1VqSGRDSzQ3UzZlVU5SMWpaZ3ZuZ0RKcFJ0dzBwVUVmNDJRekdUeVo5TTFoOUpJck1qNGJjMkZ2WWVsNm5qWDFOd2g0eXZVaEdyb0tHS3JXVFF4OUplek9ZWnlRdGtrYjFNVGlpMG1yRm5ERERtWk44VHNrZHBOT21IY3VtK3o4dWRmOU1sOGE5ZDZNVmxIUHRXNDc0OVFjMU02QlFuMDJJeGwvaVVNYlJudzRxc1I5alFTUG5CdkorYnZpN29STURCQVpSQVNKcUxacWF3dGtieFVQcjlpdG5ldTkyU1FGbFlGVW9YK1pQNlBFWmFTMWRzQlFBUkFNNmRGRGNtaFVRdVovWXBubWdpQWozUlV0Qk5rUWhDeXdXNXRXTktVeWVhVWpNdU5wMDdlZldGSGx0NDJPSW5mdHJNTk1ZK2UwaVo5TmlYYTg1VmlyZHdrT3dnc211dExuQnNBaDJ4SFRrcGYzQVpSdERSREdCOEVHWXd0a1ZZcEwvNDFsRGFjRTFjTU5VUm04b2c3WjV0RDkvUXhPblJ5RnZMdjVnVllhZmJqcHBhaExYa1p3WldVVDg1aG1aakRMOTdSam1OdWMwTjdwb010ZDNiQzhjWCtVZkF5aUd5K2NwbEhLN2RHVHJTaHNoWk54Mk1kSGc2ODN1ZTFZcHpOdWFJNjJaN2c4TGFZa1dlVnM2bWZxU21RVlQ4KzU0U1hiRjhxZ2Zoa2RWT3lkOWtmbjRhenpzdXloWTQ3Q05neGNPOU0zZ1FNdHJIZlpxMlZyM1lJc0tBMHJGNERMdDhHVlFsYkpORm5yaSthT1pxd1YzeWZGUS8vVVQ0cytQL2QwSWtxOE9mQXAvMG1vU0syY0p2YXlXM0pwWkZUQ3hMNytHZTFQQWV0NUFXZ0RJcHZ1YkNwLzNLRkI2ek1SSXhUckRnaXJaWnBKNmNRZ2VvV1o3NUw2MzBhNWVMMlhyaUswN0VGa2c0eWRtMzRQNmZDL3FtZGY5WlFLZzZQdFY3NmV3d2s3Yy9iV3ZMcXdTZGRucEU3U3lOK2RIeVpJQ3dwYXQxVTRMbWgwZmovZDhMYzV5WlhPYnI0dnVPQWNpci9QUGlSMG1FZkRxcXVZait0cktWOFZpK1F0R2ZQeklqS1NjbVJtbmtKdHpyUXBET0J5Nzh6dW9vdzF1Ni93RllZK2FtaVA1Z3FUeFhUL3Vvci9wMVhnWEV1ajVZek03eHA4MksyUHMwRzZOd1F3TUJFRHF4QjBRT2dxRStnOEI0VU1RQWJFelMyQndDZytvdmZhQTh3RFJJNUhXQ2pmSVJQcGVRbW1nYjRXVVRlQzlnb0tQeHU3eEgzb05icUJnVUZvM1lnWW8vOWtjQW9ZYlNWaEkyQ3dqc29Ba05zRzdobEVma0hZS09nOE4rOFIvd092UHhGL2hwUUZpUnVmb0JOZ0JJWHhDWkJLUXN4cEFLbzl4NC9DMHpPSXU0M3dDWkFpWCtBSkRBRGlyc0Ftd0FsWG9Ra0lRQzBzYU9Wd0xoUUN0SGlvQ09MdUE2eENWQmlzRWtnRmZRR2lmdm92eUFKUXdDVU9NeGYwazhGTmdTSmUwZTBpZThCY3hkQU55Z3hkcmNvQUNTQk9KQ0tKQnRjNWRmb3g3WGRWd2dPR3pvcXg3MGNlUkxkNUlzQitjZFpmdEY3czV5V3RsdHpMdHhLYThGbTh5Uy9sdE9tK0x2cHZVQVZoK1ZhRzBUY3F5YTNOTEJXWERBV0oySGpIR1B2NDFKYUdxaUNyNVlqOTY3dlFWdEYzcFllOFlkWFM3OHJyWkNCaXRKSlNVTGxncXh3MUhCbm1qTlBvaUk0d1pYdTNuenJMbDBrZWhIUUNHaVRqM2xOK3BKMXZUUU90Q2JkRGJlc0JGL3dlWnVqQURYbml3QnJRMTdXdnF5bCtYNzVEQ1lwcndpd3dzckxTaTlySWM2V2pybmZNMnUrR2g4N2k3S1N6alIzaTBCclQxN1dtYXl0K2NYSm03bVVLTE9uVUxTTzVtVmR6YnF4dmhLNmkvL1hPNHA0U0UvLzRmUTN0SXN0OGkzRE81MTFDTWoybFZWY1FyTno5NG93MHBhOXpzckwvdG10Q0FBQkZMRHArNzJCNmFOOC95WmgyQ3VBZDk1OFB3SEFoeC9YVi9oN3pudHdDMjRFTUJBS0lNQS9NbDdjSCtWLzJXNWpxOE4zbkYwcXVUdXliMlFmTHZIQW9Cb0pSSFpMUlUrZU50TUtId2xUeEtSQkorZnljbW9vanQ5Q1l6R1NkKy90RS9VYjVVS1dYU0pldk1pcHVtT05xZ0EvQzVaN1lJanZrcFFlUS9xbWZPWmZ2UmRhT210OVR6VGdsZDQ0dEV2YVJnUHUvWEQzOFVSSEFYNTlNMzRBN05BVGpkT2FOS241WGRIVkowMVRpbXNoMitUZEsvc2d0STJxZDBuTVZGSzUvVW5kVXRrYjJYMlMzZ3ZCbmJXNEoxb3R3L08zYjhWb0lLRWZybzhDQXZvbWVBQnMweFB4MDBxYzFLS3VTT3FUaENuRnQ1QnA1TjBEK3lDNGpXcDJpVzRxdFkxSzc1YklXY2p2dVd3dnpPeXMxVDB4b3pjdThXdWRHdzBJKytIK0tNQ20zU0xMckJzbnBKM3F5cGJ6TEIzY2JCbWxWa2MzS0lCUUl0UTk2cnNrMWY3dHcvTG5iMndsZ3Q0ZGd1aTNtTWwyNXFnQ0hGNm1kTWdIVDUrVitCcElCcTZYVjRIOFlyLzJmQzRGcTZ4Q3ljTUl2dWh3TUtWNG5zVjJGeDkzNzhPOGRqbnRWRnE2Nm1hTHppQWppZGJucitta0Z2dVZPWDhkS3hGdmc0emxLT3VvYVdXcXFvRkg5U1pVb0xwWWtRV3JxRUpod2VZT0I1UEd2cUhJOFJIVk1tbnROS2xxZGMwV2swRkNFbGxsTTNiU1JQc2xPWC9tbFlpMFFmQmthanFxc2t5bE5lQlhMNmNDMmNVcUsxZ3RNcG0xcHcwSGk0dm4xZXZhY2RFWE9ac2ZqVlU5ZEU1bzUvTm56RnFhYlZuWTExRnpIdlNoRmdzd2hHWlVZemNhN1V1cFBjZlEwTmNjdVpVVE9sZzYveHk3R1d1eVgyeUNBd1haWkw4RjJKMU9paHhZdENqQnJ0QkVTTG55NzZMZ2FpeGtiWTczdHFtMkJuSDRJckxxRUtjczg0d3d3ek8vdTF5Z3MyZWJxZVIzeURSbXk4ejRtcUZ4eCszc3BSRjdaMVJnZ1NIN3VHcGJjTGdiMHlkZ1ZwNWdyUmxUeEFPWStVa2pVbEE2LzR4Y3Z3MjlPbDlXdDI1ZUZhUkxrR0hQSGRVaVkwckcxbHRkcyttTldsMW1YWmV0V2JoWWtJSkhjcnhra3hMOVliUUUvRk9RZ2NaR0JSNHp2aTNJTFhnSnIrSTZYSVBuT2g2U3pJUVdjTUk5K1ZhRElDOHpIRndlbTUwaFo3ZHI0aEF0QnFlMHJuUzlvYWJBSUQweUFLNzFvTllWUVhPbEs0cnVlRmVNWEVkWHlGSk5WNXhBaWhCNlU5MkZUb2tXSU9DVUF0UUl0NDUvUnhubTVTdFFWU2FXWGNhYmExUXBXOFhrdTJkbHFxcnFXSlZSbktPMGpmeFpjVGlqRURxWmF1U200aXBqUk1tVnIxcXhzZ3B4ZTFEUnYxMXFJaUg1SjZtc3VPMnVJYndtaDgrT3hGRnFxRHc3N3JaNjIzR3BVNnBNdlFxdFRURnJHVGZLSW1LYUpQZU9xSWk0eWtvVjFlWHNYS1Bhb3FiK3FOVEV3YTVSNVpibkt5Um0xYklVMlJkcFNiT1JvM1J0aXVYS002SnA1NnVyN1BPN3JoeWhDdlc2dThsVnNxdjNuZE9aVUhCS2xpMnliYldRTFRzNTdMM21JTmRwWjUzanlNbVJPblBCcm1pYnpMK0k5UE04K0JWSnlxQ0RwK0x3OVA0N2QzUDZXeUFXa2VyL1AwVGVmUGg2UzQwU1VtbkR0R3pIOWZ4Nm85bHFkN3E5L21BNEdrK21zL2xpdVZwdnRydjk0WGc2WDY2MysrUDVlbisrY1BRS1RWQ3N5RVFsZWhnWWxmTDNSb0N5dDUrVWMxc2MzMVNsUnExcWVJdEZubjdVK1VYMUdrM1NvTmRrbVVmN2dISHhWcHpaNGlXWW9rbXpxWUFZOGNqZnliK1lHZ3BIb3JGNElwbEtaN0s1ZktGWW9yZjhXRWF6MWU1MGUvM0JjRFNlVEdmenhYSzEzbXgzKzhQeGRMNWNiL2ZINjl1N2xhdll5QUZ0SUlDUEg0cDZmSDQ1OE9YN3gxZjkvZnR2U0NNVDR4MHpreFZUbTBEOUNKakUrdUFvckxGb3Bja3dqaG9WelU0N01KcVV5VGJZNkpERFRqQmtGQjJIWlVxbXBrbXIvNHVKcHV0Rzk2OVJld2lKMk9nMElMTm1wRXdqUVRiTERIUE5NVStMZEs5b2FsbnJwbS9HWm03V1ptL081bTdlMmpaL0M3WlFtd2R1bVUvbmp2dHUxNzZPcjBiUTFCVzVOYmxRYlV1ckNOVGxLMlVSNkNvR2k4TVRpQ1F5aFVxak01Z3NOb2ZMNHd1RUluR0pHam85QUFBQUFBREFFbHdmWHFYV2FIVjZnOUZrdGxodGRvZXJtN3VIcDVlM2o2OWYrZCtXQUFBQUFBQUFpYVlNakxDK3lNUExWZW1GZmxDTXRaUmczdEJWeE5kZUtGdXRseW5QVVRTWDV6NWZTVDcyWEVyV3FnSWExMm95N1ZaSjdhY2FUV05xVGJuSjlhWnI5SlRLSHFzTEswckxDbks3ZXBRTlkwUHU1Wk9EK2FmVmpXMnpoRnRDb0hBdElWaUVWUlBITFMzekpBLzN6SnFlcUNTTFhEV1IxOUxtT1JYbnBFYlhLR216M0s5ZkxhZFBUVFo3ODlNeU5XVXZlVEtNaWpUbDlMMDg3Y1BmZ0RDRDFoNVY1S3h1OTdKNy9tMDZWQnNBQUE9PSkgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Cjwvc3R5bGU+Cjwvc3ZnPgo=", + link: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTksMTQgTDE5LDE5IEMxOSwyMC4xMDQ1Njk1IDE4LjEwNDU2OTUsMjEgMTcsMjEgTDUsMjEgQzMuODk1NDMwNSwyMSAzLDIwLjEwNDU2OTUgMywxOSBMMyw3IEMzLDUuODk1NDMwNSAzLjg5NTQzMDUsNSA1LDUgTDEwLDUgTDEwLDcgTDUsNyBMNSwxOSBMMTcsMTkgTDE3LDE0IEwxOSwxNCBaIE0xOC45OTcxMDAxLDYuNDE0MjEzNTYgTDExLjcwNDIwNjgsMTMuNzA3MTA2OCBMMTAuMjg5OTkzMywxMi4yOTI4OTMyIEwxNy41ODI4ODY1LDUgTDEyLjk5NzEwMDEsNSBMMTIuOTk3MTAwMSwzIEwyMC45OTcxMDAxLDMgTDIwLjk5NzEwMDEsMTEgTDE4Ljk5NzEwMDEsMTEgTDE4Ljk5NzEwMDEsNi40MTQyMTM1NiBaIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", }; export const IMAGES_LOGIN = { - main_image: - "data:image/png;base64,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yWTkpptukj/84Q/y3HPPyTvvvCP9/f0yYcIEQQ24++67ywknnCAbb7xR0ZxtTz31lJE+H3vsMZkzZ46kUimZPHmyfOADH5CDDjpIjjzySGlsbKzojihWWTR3S83IE8mGHKBEctoq2+nyAWWw/ZkzZ8r++3/WgMx73/tew8AHQYf/Ncjtt98uRx11lGHsxcqBBx5o7DGNjYkBxjgIKMHOAdde+2s55phBD7VvfvObAhBks1mrqaHvxmIxueCCCwxY+IsNKD/+8Y8ll8vJ1772NfMZVLbbbjt5+OGHZY011ljtZ8b7+c9/Xh544IGi4+bd2267Vfbcc6/VngM8Pv3pT8u//vWvonUAaldccYUcf/zxqz0H+Jxyyiny61//umgdW265pZmrTTfdtLILzNVWAwqEA54doNRgqsPeRGmAErxgYbScrhcuXGiG+dJLL8kWW2wxMGSkEWwrMDUKJ/qDDz7Y2EOWLVsqs2Y9Jd/97ndl0aJF5nckHCQdLQAD/8444wy57LLLzNdIOZ/4BDYUkXg8Lg0NXpAf0sqxxx5r/o9dhxiSPffcU7q6umTevLly9933yCWXXCLJZNI8c88998hnPvOZIdNjAwoqtttuu0222WYbmTFjhmy99damrSeffFK+//3vy9y5c827jAcg9Jejjz5abrjhBvM1Eg0ABgC1trbK//73P/nFL35hGDgFiQWb1JQpU6xqcvK5zx008My+++4rJ510kmy00UZGSkLa+dOf/iQA38qVKwWgpG9Ijbb67PDDDzcSDoUxfOMb35APfehDxhX8tddeM3T71a9+ZUATJwvAa6211gr7snX9qwgFKgtEDlAqMilhraS0xXLdddfK9OkeIy5uQwmuz2ZYqJqUqVMfqhhUXZRzzjlHvve9761GrNdff92AEIweRrlkyZLVbDEw9EsvvdS8G+zlJUaFpI4CgM4ee+yxWlu/+c1vjLRE4Xees4sNKHyPOgk7kV+t9eabbxqgWb58uXndD6SolDbYYAMDhjDnF1980QcWvJWT4447fkByAKSQyLRQ95prrimovD760Y/K448/PgCedp+feeYZozakLcZ2/fXXD/x85513yQEHIEGK7LLLLgaAWlqwcw2NtL/88svltNNOM9+fcML/yZVXXlnWoi5tpdlVlv9GWR1yD48JBUIAKONxYYVrzIMSSoMcd9yxRb28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", - email: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAF60lEQVR4Xt2a6eumUxjHP7dhbJEtiiRLM/Z17KLIH0DJHsM09iVrhDH2teSFeGEXMiHxgmQn8o6SJSnJOmOP8cJ49H1+5/7NfT/P2e9z/5Y5L59zLd/re65zznVf56mY0aMCBr0ilIeI0T+QCBC9iAQI6DPwPm2PcuX2FZkBIfK7BtNVP4TPPd+BgOkDnR/uuGYCAWtGwLbNMfLbmhmoK2tGMqBU8KXshA6z7n4sW2DS6DzgVOBIYGdgE2CtkvuvjC0rCf8BvwKfAa8BjwNfTvirQ56oL2xnwNbA3cDxjvkCuLuvXCIIEfIUcCnw42rdaoyAw4FngS0SHXQ8R6aMkJ+AY4H3asDNDFDwrwDrdQu+q3ZNho2ULkRN2l0Jg6NrEmoClPYftVe+i7OuJPSur0zYU9uhJkD74wR7mdDvx0jvoQ53uTWGJ3TIa1anvU5L342QiLN0+ia6jxPXwThfSG8EronTSZUKbaPQfKq/ZPmlQqAT8RC/6rQDtcCLxeSVe0ezPwOb2QmIdZLM/ExRWKEIVzkqvH+BD4E5wP4zswoM8vi5WeAFUM21HIarXEv8C6C64BPjYlfgIeDAZhXVd7sqGJ5ToPoOBmcBLxmRnYA3gW1G8bsIuA24asT+HKgug8FSYN18cF00o7bkY8BFwG8jni4xJX7rZ5fFc4D7HXWBsuFRYEGXUHrQ/QGqxTB40WF7ocliMz0RuouAp4ETJyStImsDVwLXAXN7CCbV5JPABYC2rms8Axw3OunLKQV3C1Sr2nu9pbKHyYZ9UhEXkldJezbwvMeeFutas1hjYqFNpVvgdODTgIOrTTG1Tn5gIShjlrWi5wErPD53Mwu0n0vG43Vy6h9gCXAXoPLRNfY2zvSR0edQwOcCy9pOWqHo6r7C4PYe2Cm0v2+y4YvVjsfUlQFKN90gSr3SQ70KBa/Ud41dgEeAA2KcpxAgeytNqt8TyIZ9TTbsHgMiQkbV6vmADmfXULtOHZ8bUnoaqQTUzt8FdK2YPpsVk26H600qKiUjhhXOC4CKmkYrq2lqqKMvWq36wRFOWiK5BMjI34AOv3sDL5gqo1U3KDVThpqaFwL6bvet+sXATcD6KcZrWQcBSby8BZwBfOUBoINIqakUjckGlbCLge89NlXePgwclhN4Xd+YSJMCtvn7a6Iwqu6Dga+FdJBJ1fl20NXvMNCKKp1dQ2BV9NwKbOAPPhxXWCKJ3up1GCgbvvaoqel6M6BAm+8MLwOLgG89ujuYcvYIPz/xbbzCBAxh/QlcDjzgWOX6yNCBpUJmQ9OK9+114dT1d7uRb5i2hRAfVrykNRqv+qvAmcA3SUk0LrydWXW9UBUfHQkI4vkD0Gfog0HJlsAkLF1/dwIbpaV8fFjxkmkRjKaoZX97XW9rSNMDRq9jCgiYxK8Ghc4GXV1qw9k+tdV0WQSDO4CN8yOPD2tEMl6xDS5JT/WCrrk3GrXDjuYV+jRg+7R0T6WpjTUBeVM0QS0Vn1e+vN/yFpMDnl4IPXsPme86n8z2mIIDQQhYrONSdmL9ueTcOCwzIdCh+a5ga/2SfpIIyAmgJNgc/9YrNcqQkLuexqIMzHKh4dOYmoybz55AimbbcllTe+vQ6SPAF1DRYG0hvi0PeuvTI0gPo1QAKXZcstbfl+hXtZb0jNxoTqQ47IG3LJPJmHX2zZOWhpoRJ2f57V0pObBYRPoeWVgTsBXwMbBlrLZfrivoGlZ8aysRt5qtewHDQ7AeOgjVxclqLycCcL06p5tpaUQRr3b+UcAHdfXQNCESniuXCbZ4YkDGyGRxpf8QHAODYfA2AvSbtoMeQk+apf8LsjGjA0//GNeD6fKmgNkCVsZ1O5xiGhV61dk08lEjY2m6rLhVVwHrzxJ61tff5XXIWx9ummeAB3gXgLnbIIPHDJUAATmB5+hkIC+kEpkBXb1NFSnpfqaIAB+B6aDTlsNv30FA36DSQuhTOiMDcsjJ0YkNu5vtDAKaJUROqRoLOFYulii7XAIBpQCVstMt8Fr7f9KnSct+CAAdAAAAAElFTkSuQmCC", - crm: - "data:image/png;base64,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", - project: - "data:image/png;base64,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", - search: - "data:image/png;base64,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", - ticket: - "data:image/png;base64,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", + loginSVG: + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwODAiIGhlaWdodD0iMTA4MCIgdmlld0JveD0iMCAwIDEwODAgMTA4MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZT4KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdDYXZlYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBzcmM6IHVybChkYXRhOmZvbnQvdHRmO2Jhc2U2NCxkMDlHTWdBQkFBQUFBTDZjQUJBQUFBQUJ1a1FBQUw0M0FBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR29FZ0c0R0RiQnlYT0FaZ1AxTlVRVlF1QUlVTUVRZ0toYXRrZytzcUM0VkNBQUUyQWlRRGluNEVJQVdEZmdlT0l3d0hXeTlXVVNPZWRnSy8yd0VjZmJSNHUwdFVyeG51N2xhRjZVZ09wWUtOcTh5d2NXQ0NiYjVFOFArZmxIVElHTUFiQVBoZjB5cUNCSUprN2s2QnJNemdIZEZCeDFHUnlFWTZPZHd4MXl3V3liYXBIY01LNnRYbEJKaG5iQVoyeWx1R2VrS0U1aEkzTFhGaEdZRjhmT3VOM25FTER4WDRKd0doSUg2NWN6d0QxMi9kL0cvU2RZcjNLM216bTE5U2xicjBHT21VNHBUTUZONnNSMHh4SFdDN0RnaVJvaGxra1l1UHhEL3ZYMVNkKzNvQWJzOGFqZ0JHSUNJYUVmN3dOTGQvZC9kdXpkZ2FScTJnbGJHTjBib21PZ1NwTWtEUVJpWEVLTW9LRE5ER2ltOWtmWXorZmxIRnFiaUk0dS84LzhjQjY5eVhOV2xBaVViU0JCSVVhQlRzTE9pQ0x1R0tMTkVmK0w4Wi9Cb1pEMHFIUUUzeVYvT242MWlUZWZiOVdMc1B2b2d0WXR1WWVRbFZ6UXp4am5RSzBhVUZDaUFnL0VmbUZqS2pkT3BWRFBHZmNuc3JWN2hhWUFLaEpXRUdrdjRndWxEM2hLbWNXRlpPUGR4NzNqMWNLc1puVFJEN291U2I4cEtueUxZZGMwMlVUQUFVd0Q5VWRJOGZ1QjUvRGo5ZVhqa1pPUms1YWZsU0VpbUp0TVR2TmJVU1V6R1ZPK3VNbmk0TFVTbVEvcW9DR2oxcXpTNGFBQW5PVUh1aVJNcXM5N3dicUd5eTFyZ25HSU1SQ0lrVXMvYXhzOGsxS1ZhaVg5UFBXZnJ4M2FVMHdnSllLRjlSaWI0blpleWtyK00wMmdxQitiOXFXc1dmMlNQZTNQNFNtWUZGVFRraDA0SXB1VmE1MS8wNFR1VTgwUnVqVjYzWi9PYm9xMzIxcjRBU1NBUWxJVUFDR2FxUkpYV2hhcm5XdGRWbVBxZitmM1pydCtublhQM05iU3FhVk8vWnFvRVcyc21NTkZnTXpCQWtzRUdBRGJiMG5tVEw2YTE5L3gxcFVEWUd4dVJuamlLNHdSancwUGIvZjFxenVmdklGcmZ2aE5aQ0wzNzRHV0gyb0xBSTJ5ZVpPYk12ZjF1MmtoMWFDNlYzRFE2aHFzTE5Mclg0cmtxM3JTa3dqb1BRQ09HQlNFN2svd042TVB1MDFCNDA2Vk5UbXkwK0lHZ21FNVh4UERVbHBYNGpyd3NVQ2o3RVBLRklKNjJsK2Jlem94UzBTWWRLcVNqSUJYV2VBQlpDRDU2djVmdEpkYloxTjBhOHRXZ0ptMzNyak15ZzFPRmR6L1MvYW9la1pGR25BRWgzajBEUFBDY29MMEFPaVJzdWdaNy8vZDdWOTNhSG1ZVDQ4SXRtRWg0NXk2NkdxTGVSekxTNlJYTkpiNlMvaFVUSzRxR1o1a3dtY2FoVWsxRHcwb2lFU01UL2Z6UE4wbXBhVU1aRlVEYktKcFFVWk00RmtUS0Y3dVJWOS8waXV0NnZKcnZmYjFMQUwyQUUvb0owd0NxT0R2Z0w0MzVqUEVnWjd5UG5kcmVLSTFNdDIrQ3NnWFo5cG5TRDNFWWI1QnNsMm9ubUtGcmpnbkNUZVBOb2VmaTROTjdralNlb0lZMVFhWDlUR20wV1E1bFF3MUlGWXJwQUozYWczZUNBL09EekpMNTlNNmQxZFBrUkVWRzdNeXRITWpqYkl4Q1RHbGMxd2dnaFZHM1dET241OHF0ZDgwcVMzdWQ5cW1wRlJJd1JJNkpXYXhaaEdoaGpLeGlRMi9wZlRJdDRJSWkzVStEdWkyejIvMlE3K2NxSnZzMWhVR3BKSTIzZ1IwNzd1cy90V1MyMWk0cEk0czFmQ0pvYllXUk9FL3pwaWdKRmQ1QlRxb2dOUVphbWZnNjViTVFpamp5V08zdndZQzgrWEthVzZ6WHlaTTNjWWc3UE01OFhXc0lycmVJZWEzaWRkWVViYkc0MFFRbURKVDNwTUNrTVRKdzBIRW9SQUNOSnYxZGdLQWRoMERYWERva0I5QU4zcTVvSTZDQkExN1Uzc25rSDdGVXhFZndOWkNvUWZFMEkxWUJEOEU2RVhCMW92VEFGU0FnWUVCU1FFRjhPb1VLRGs3Sm1obFZGU0VwcnU2bmFtdDRGZmFZaGd4ZVRRUHV0TFAraHRvVUczUnY3MjVNZzdjSjVRbHNmbW15SG9NMzlqNzQ1MVdrOFJtS3d1anc0b3Y2dDE5US82UEJiRFlBZjVDdndpZnE5clEvVDZvM092L0tNOEJnZXdGMjRFemNiMTdacUQ3VkN1c3VsejI1T3JVMEJkYWd3aW9NYkdvUjdWOGJMMjFlTWJDeXNpOVgxaXFQbUwxMnljZ0piV3RabFpyUGE5bWdnR0NCL3YxeStJSDlWbC8rd1YzdXllMERlMmFXZDNYSGhFUFpnaDcwWnlJMjRHcGRXbnIrWUZxNjh6bW1KTDltTFc2RTFhTExiUmplOGlGVmU1MndpTVd2UHhOSE9FVE82aW9FV0xUVzlaT2VCVTVudW10cmU0Um1NUWFmdzJYcHlFalhYalQzZHVXVTQxeERTcGlVVE5EZ0laS1ZRTm96azdrbHRIL21VUm5XTG5WbHlXZ3N2aTA1Nk9kZDJ2cHYwU3EvTjNYU1FqMTQyeExZRlFoYjNHczU0OE9RWDBMckdKY1o2RmRuQ0owNTZrNHBaSFRuYk9IeWptUE1JQUJrV1Z0Z3hGbGZrZU9PSGxpQkNpU09CdE05MEJNRGM1ZEd2WFFnQnpwVG9aR3RzMVAwTklVRUpUa2hDRTVaMEtCSWtlZXZpL3lmN3ZCYjVESGcvZUhPOHVqMWpQYTU0ZEtrbVZOL2RLY3JSaXZrS2lueVpXN3ViaTJ0YXJ4aTdZNHphWlk1emp0TUZKNkhES3Z2ejlrNTJ1K3lNdHFlbDR5UjFFaWVKVUh4QnZFdTBRN2hMbUNYVTI5eXhIckZPc2laWnBWbU1XaHdWVkFuc3pGZnd6L0wxdkhIYzg5d0d6bkhXRHVZS1pnZHpIak9MOFl4Qk1KMWxHa2QvWlhMRlpBOHRpZEpFVnBGcHBIRkVOZUVrL0lJOXdDNWhXN0VlckFPYmgyVmhDWmczSnNNRTZEMzBBcm9IWFlhMm9qVm9CaHFGK3FKT0tBMTVnenhDdGlMemtBcDRLSFBJSkg1VElVeENZVXlmUVJ4OE9Fdld5SVJFYUNSUDBUbi9hR29NTnd3cVhyaDhwREtYcm95dk92WFlHcWtJazU5Rm1tYTZLSjJLL1lKbWhVVXN1SDVxeVExdFhjdnVQSHh5LzVObjZ6NTgyL1RIMkJWM0grd2xNdmpMZE44UVNwQzdGVStxbXJSbkJzYWRmRHB4YU80dG9FdlBjbEcrSTQyNXp0QnBWbDFNMjVEWFNjQ3Y2VnZHRGRncmZYWFFJWEpJVE50anh6UTIvaHVybnJHbHFSSGR2ejBYeFdwODZiV25NekkyNnlvajg3Q2x2Nng2djQzMXI3bUtHcCsrQWNOR2VscmVwNjBLMElrK1A3M05XdmhrK0R1bEtVTkxVOC9wMDRjemhkTVo5VEl3K3JzYmVOcTZ3TVJjYlZYZi9wcW0vdXVHZXRENlpNS25Zei96SStBUThva2VmalV3SHgzTlVzVWIxZ0U0bEZXZC9ldGxMd3RMR3B2ZHdOTmtSRFZyNnArNTNBQWxVSnhqWEJVWVFWVFFjQWlJeUNpb29kMy9rM0dGRVNteW5qb2FMaTJablNXa1M2Z1NYb21UbUhRbjh6N1prcE5jVWtyS29ncFZtMzAxRk0vajI3VndNc001STlHb01lTTNrN3RvT2V0MU51WTJzMjI3MmNOK0RuQ1lZM0lkM1Y2UDg0VG52RlovTHVRT3NJR3FPVE5ldk9QenhqY0tCZ1VMWXVZelpFY1pHR3gzNGswVVl6aVduakhDbkdLRkhjTnpCQ0lrSW9sVWtYVVVVYm1hL1lDbkMvbWFNTVBudXlReVVUR3gvam4rSnJnd1NMNlJrbFR2amlRcko3dXVybVJzWktTaFQ5c1gydE9KcnZSa3ZlbFRqTlh1VURlNVpHZ2VmbzNJWUQ1YXlHSnZLY3ZaeXJWNjE2dmR1YmJsM3B5ZGVmY1lrY0ZsZEpYcjNrMXVzN3ZyL2o1V3U2TjNMNjdleXY4QjVsWURPVG5YRnpRSXZSVDFFaXlnaFRIOW1oVm50blFMUmRTelMvY3U5ajNTYUlsSkplbHVHUWEzUkwzVEk5VWJwOUxTaTZBcnVvSXVHYVpoQlhhakpGWkVkZW9lbzg2QnhvOVQ4YXA0d1dMS1JTeWhTMVZSbllsZUk3VmU1aEcvcU9wa1ZkOVByT1FydnRsL3FQd2RBd2p6cE5wTWNDY0w5QmJpdnhNRDRobmZacWIxcXRud1p2dDg2TDN6dFJtRFIxVlZ2b1JaaVZudDJqcnFPaHRVcDdwODgycEc1TTd1ODhnQVdKNlhsV3dLdnBZekZUK2xrV01MVnB1LzVQcnVnTnZFcldld000NWMvRnd1MlVDNHVmVVVIdlFKdktEWjlHZ3RHc1pwZCtIS1lFNjZLL3ZtNk1wOXoyTjFJUlBzdXNZNnhySFBqb0dGbDJ0ZDZ6cWVjbHhqclVWWkx5OXJqWEVjNDlvU2E0VXp4Yk1BMEp1dVZWekQxWnVkQmFpT3prOElJQ0lmdWRtTzM4bk1tODNMakloNGtvNm82d3EwZ2tlOFhMT2RYRlRBSmNtTHlXS2hDend0UE15dE5hYUoxaFowMjZuY2tvR0JHTW5mMnIvcVhnOFVGVk5Ock5XYktkcDBJa3kvRld5dC9kcTFaUFM0K1dacVdBWjd5cjRxUUdlT2NqeHg0dFJscmVWbkY4TUhiNUE5SEtZWmhnQTlyZWNleENEUG9ibzVHOHo4eEYybExGMkIydUl3enN3dGUyMUd2TGowSytTRmVGaFo3bTdqMzQwcFB3blZjWVYrUFdrbEtMbDh6SzJ2dGJvbW1RMS8rbWp4bGRxaUhwWDFhbDIxKzROajlOWE5MZ2NZLzVlUVJUQk4zQWxVb2NSM1BmOWFWMi9Da25YaUVrWDB4V1BuM0d1S1ZoYVVVOWdzbW9odUlqenhKQ0U2ZlVrRVIzaFVUSWp5b0hHNlE4SWVsVSttVG9FcHZ1NEorUE9KY005ZHhSTllIYVJnamtBbG82K254MWNqWUVRbU1hVEdnSXhlYnJkT1JWVVlRREg4bGRKWUpHUVhpSE9KWGxwV2lJeXcxMlFFQmdpRUh2Q3ZnVWRZaW4wRlRFNTh1aU5pSGZLL1lPL1ZaZlk2UHQ0SEc3a2ViQVlIUGg2U0U3cERUUzZrTksrM29oT2pJc25wOVIxblZ2WlpGU3M3V2JXK1lFOWlRWi9aS1JJVTM1cjBPU043YXJtd25STlBYU0ZDQzZmMFo5T1RmVUJFOUpmc25OTTN4UUo5ekJzZG05dnQxa0dSZWxxNGRRV2NLY2JCR1FHVWpZS2xYck5sdXRYcVViZlprT2huSkZqN1JoRjlQcTF3NFdzaDF0R05ON0dMOUtXVW9ZbE5hWjF6cVJJcUdxZ1NNUmRUOXE4bng3U0NLTUt0UzRrbDUycHpHMDF1c2ZUeUNYSVFDUklNYlM2YzFockpBZmVnYjZSU1BPOGxJRUZYdlZjQ1JvUUpyVXBoeThlTnErOE1NYzlsbXRvYzdtTkRJem9lUHgxZVNjTGFKMmpiMUI3Ym1XZnRpbjV1anJURUJvZElFVTExY282Mk9LVDc5T3hJRmk4NHowUm14emwwUlhlcDZDbURBb3A0dXYwOEdyck9aNUh6N1VVSWtJcWVPQ2lnZUthdnFKWWxjZFpnMVBRQnB1cGRDSWdpR3QwOTE2NjQ2Vld5Z0dQVm5xWmJoUkNrMzM0S012TDJxTVdyRWRZd3doQkRMZmNLR2NXQzBncE1mOWRPNnFQZnd2OGZ3Z0M2Yzlha0JVMXhvdjF4YkVPUitsdWg4QTZQTzJQcXBXNFd6MzBSRkNYT1FQUGhjUVM0RW5laFFxdGNLV0tsY0FqL3dnaVQxUXlJdmhHRG0xbVQwVWE4U0FWYWJNRkJxTFJvQVJEc3lXMmVRL3pzTDQ5WnNzMlhVaHUvSk54QWc2dDZ5MS9lVmtVVXFFdlp3MFN2aVZpbmRMbGdURVZqUERZVVNsUTgzd1c1dFo0R05SVVNCQWE4MGJEUVBmblF6clhsOFlVTklka3hQSzVpSXNrdEZCbUhWeTJSeVovRkQrM0RZMUEvd3VYV0JyWk05SHR5Q3hpSlJBVEphTnN5VFFZWWlVUUFDUUljQWhpSlJJUnBBSnpBTy8zWUVEU21qdFc1M2xLNjhJSXJ5b2lxRjROdFVsa3FjUGVUUmRmUDdnbkdySGhxTnFBTFV2ZWtBaTAwdXdEaElsRWQ2Yll4aEs0c1BtT2VkMzZtNW02QlhMbkNXaHNLQmd0djNlTDVoOXFheFU1SFZIc2pKRDFDdTMySkRWakoyK3Zta2tJMXBzc2JxcFJTR1BzcnNGR0hpMGJVS01Kb2d6SGdTVStWaldBRWpBSzRIcmtJa0ZYQkpVKzBkeFFxcHRzWTlNQkZITXZpMWdzTVJDRDhjUForSzZ6VFhxN3VKTi8yRjIydXBwTlZuaFphNmZ4ZzZxMUo5Nk5NWE05UzMzaFBXeUpWcm5OTjczbkZWdFVrMXZYWWZoUHN4NnU4UEY0ZXgzVnNQL1RpY1Z6WDB5TzQvSlRqZW5rODhMajlxQkRIY1kxN3M1ODR1b21vdEpxVXJzcGdnTUNtcmY2QVg4R0Nzc2VVd3pGL3dySUpTSnJEYVVud3FLaUVnYW9mdjJDUW1jZGJ0V3NXK01ERkRPMldTaVhMenJDZXdGNkQxVlNIa1BXMFRaR3lRb0lqVHllU0VrdllPZk1RSEZndnlmOHRwaUp0RHN0YXVDNlZWbEtDNFhhbGVuODR6M0hvajZmYXIvMEZRZHZXQmdKMjZWeEk0NTRDUjhCQjJ0YTYyRk5xc3dBb0lrNjRaQXlRSGlOUksxQWdqTk1jeWpVTUE5WDJEdkhKZldxUHdEbUw3RytKSWNsY3ZPS2ZTS2dnTUdBVmZzQ0M5MGtCaEV1SENGSTNhZWI3V20vQ0V4MWJNSG1PeUF0QkdLOWFnYjJaN3A2bkp4MEpoRGVIT296VU9kMnhQVUZrOWlUUHNvQWtzU01nV1l2VTRQSjY2N1pYUWdOS1MvTnIxMTZjMlBCS1RvTWJJQWNqbDJpUjBzU0Q3aEJTWmtqcmIrVXp3U1BzWUJvS0xoY2V0L3NCU3dqOVVlekVtdGFScFRicTdMV1FDM0Q3TmphaGdFY1lNN09tNTZqalptVkVuU3hnY2xtdm0wdVRGcXJtTXB0Vm5EMExiWE9Mc2hoOEtNWTJwYTJrclN3MXdta3dVSFl0MkpLOGdrSmN5eEZNOVBwZmlwUUMzWXlVNHkzYlhIRmdwVitrOU9qZ2FaVk52OTJyVzlnZHo2QW9WOStLbDdLSHJuZ2xoOWdGRkZNaDUvVnV3T0o3bHVxUWNORldzNnV0cXhBbE5LblVhcFJTS3FYYlRvdlJ2cEJTS3FWVVNpbWxVcnJ0SEJudEM2bnEvMlNVU2ltbDFCV0lTdisxNG5lYnh0bmFpaTUxRlRMaEZsRlJsbUk2aUNnSTNKVEF4dElLYkMzY2MxUnp3RnRWK0lkb2RqVHNzUWhiYWExUzlxMEVMN2pXMUE0VDZLS21wYjFTeHJpS0ExU3UxTGZqcVBaNG1BODdBei85eGthV1BUallOR01GMDQxQm1vSkRKbXB0Z2JUSTVUMFlDUithbVUyYm1YL1V0TXoxNm5jT0xKS3VQZTdoci85NXFkWmhnMUpmMFFnMFRhcHQxNUpXVThQQWdMU0txQUNUSHZPcHdOVDBRazRiTi8yZXJETi8wdWxLaThEQjdGWHp6Mk81LzNUdlM0QXpYc0p6d2d3UGh0KzVvaDZNdng1em56RXQwbWlRVXczcHdpV04yTnREVFdSK0piM1diV1o2aG1FWVlCaVdtUTZ5cklUTE1BeXozWkUzbWd3anNnUzRNakprN3k1c0dCblRXQmMrbDNkbk4yK1pORU83TFd3a3NuZXNWQ0FkSnhZZFBvb2llNmtmcG96TldldnVqQXIvWlVocnVhd0k2V1pQRjQ5a1FPUzhBeTd2Y2trU3NuTllqREc1SjhFVzlJd3A3Mm9oK0cvQWxZQ0hYMlJocG9IVzljYzFwVFVYY1ZXSWtDbVBmbGs0MnE3UHRLK01lMGtiQ0hOaTFoZWhQOHA2OHp5UW1jMldNalM0TVBhMFQyV0sxbU5qS2x5UzVKUlhRTDlSc0ZVYmh4REVxU0FyS0QvMDdBWFpqQndCZXlpTlE0aS9BQ21ONFQ1Q2tsTGp2bVpFMC9DV09YN2ZqNm5jMUppMmliOXFLSExkaHdmTW9jdWdDNFdwOXpSNE9YdFo4UlBkeTgxQ2xMNDdnOHFWNkdYbWN6Yk4rUFllczh4YWk0cWlVRkxCNjREa2RpRWxXK0tyb2lxOFpnUlBFSC9QSlh0cVVtOHpleHcvN2RtNnhsdGZQdVRueU5DUHQzMlc2NWdicnJ0LzduTWVWSHRwZjlTS2w3SGlPR1dOUXc5eVdMa1N1UXhoWmNaSGpOcXh0QnI2cWw1eXFJVGNoSlJ6UFhqTU9vcmNEMkxHVmRRZGMvNUF4eTV3MjQweG1udFpCTWRQMThNa1p2OHVqQTMrTCtKM3FCOFFmM1JnenVydXpoaXp2Z1RJMjNURHlXVlRaa0VPNkZ4bkZRT09GNHhiYW53eUkxYmVXSTh4dzNNa0lqR3Q4SUNCS0VnUzY4b1hjUDhMdFQwYXRPS2dwS0x0bklvek9HNFQxRWk3K3VpdlpPSmhjZytpeFA0U1R2Z3VWRSs3dWw1STYvMzEzMXN6NEh5NmhHcDFyRExaN3dMd3JUT0E4N051ZUdtVExGRi9BOHBMeGsvMWdQRXdLSk95Q0JIUlkraW1JeE9OOEhwZG4vczR2TEE0aHlNM1Q1OW9pMC9scmVuVVdxZWMxenNaWFNYenI2WlMxODV3eU9vYzJWdm03S0c3U1JIQjFWcTk4Q3NBYmMxcUp3ek5MMlA5a1dFRU5rWWxBWUxobFpTUWJzL00rTEo4NkJaNmtBekd3eDQ4SWtTTHROVllBZU1yQjFqejZKTzh2UVlNdk5DekVPMDFBaHozS1RaOUFDSXBHQ0RUM0NUME4ramZhNmhraTJFQnozWjZ4cWpBY3V1dmtOYVUwaUYxZys4ZjFINDljTTNwZlZvLytzRkVQejhVR3E5RTVyc05lSDZ5dDFMakw1Zi9YTzhFejZiU3V0Wm1yaWFwbG1nU21mR0lxeWdJRkgzYVFTMUtUT0RrVi9mUStIN045Y1dyN0ZpSkFjSnN3NUJsRU9iZVl0L0wxRW1oY2FhMkZIQVNTbE1CbnBBQkhzejJ4cGtRWW5uc21KUzlZRkhjMkQ2WVBjdWZ3NVpYMjFFU09tT29ER3cxbktIZ3BGTU1MZEdNVFloQ3prK1ZRN3U2cDI0TFpPUUhvZTByY0t5QXQ5TmtPbGloMlNMaUZHcW5FQmR0YUlOZkh3Y0NCd0I4YlhJelJYTnhsOEg2RHkza1NOMW0vN0FPQ1Z4d0ptV0NxYUlTdk5Vd25wd1hlRmdsQnZEWXo2Zm9uMVN1Z1k3R3lrN3hSVHVDVDc4MkRlOHNlc1pSaGE1cFhxMW1yUkp3VGgvYWR2Rm8wRVVJbjFlbS9oS0RFdHZHWHIvOEpGV3FRbVNQaHgzQ0ZtRElVcXdCZWt3N1Uzb0xjZm8yNEU3WnVhYTVnTDFJZEFoUWdXQXBtblZkMUZnUFlacWJmSFQxV1NXby94eEVPSTRmQkFvM29MZStWbFVYNDJ0N21oVlZITFptcTZKUXJaMTRvK1RiUHE5Q1IrL1pVTGVZU25tOG9VVDBKY2xYZndaUmJ0SE5ZVFgvRlJWcEU4UFBydUFXeE10M3VWT3Z0Vm4yR2I1VVkxSnZ2WVROaUFRZ1RhbFNmRTVKV29rTldSZlErNzJRaHRCaHFWUUM0WnhUVndzK2FXZUhidVpEQkg1elhsbC9JdERKc3Y5aEsyYWx0eUVxS201ZENRZHozL2dkOERwV2U3MVNEZFRvaTBjelhzSGlLM3FMS21SWnd0OXFkSU1KcHdqWDNLYUlOT2VyRVVWYTlKRG9TZ09QU2xsUzVtVWhSNDhwQmpNeHpsZ25rN2JWZUJsTTRIdllIUFBMSWhIbGI3SEZOSnN3SlB2U2w0TDNMQ3hnVXB1aHg4dDFSYmNTaitsMlhraGViYi9aaVIrTzc3bWpWa0hTeWdleCt5MUx5QnFyeGFqMGl4K2U3L1ZYUWZ4M3VNZHV4VlhBNWYrQ2NQbkY1eFhtWndMaFoybDJNUkNBMFAxdXpPVVEveXZyOFZkTld6V0g4c2VlT2N1RDNWS0gvME1WWEpCeEhGaGlRRUIvdFRCOHJNbi92NHVpSS9pOVBYM3ZEOUg5L1B4M0lERUJGb3J2amZ1M2ZoRHNWL2NMLy8wRTk4WmJubjR3S3NpQ3p2OGRzb0VHeFJjaTNId0lQeXRTRkx0eVBkOE5NVDJQTnNPc0NWblF6QUxZN2ptaktvT2U4cldsaHZ4YlVjOG94WW1YSUZHU1pDbFNwVW1YSVZPV2JEbHk1Y2xYb0ZDUkNZcVZtS2pVS2FlZGNkWTU1LzNqZ29zdXVleUtxNjY1N29hYmJybnRqcnZ1dWUrQmh4NE54OFIzeVplZmNjWlQwOURTMFRNdzhoY2dVSkJnSVVLRkNSY2hVcFJvTVdKdHNkVTIydzNhWWFkZGRoc3liSSs5OXRudmdJTU9PV3pFRVVjZGM5d0pKeUdVdHlTaGJwamFYRHg4c1RvREM0bElPQnRqdTVKeHEvZmd1WTRnc2Z5Nm5GZ3liVVd0cHBzTHQxa3dyOE15SzFJQzdyWFdYNSs4L0xHa1JFYnlKaEdJUnFLY2FFa2tFRDRRYmhBT0VQb0lNd2hGaENDQ0V4NkNlK0ppbkFhL3dIdndLRndQNThFeUtMUGw3YjlUTlhHam9kOTYwTWsyMTFGTkpaVjNDYUxOMkpnRkJXOWNzY2NxMCtUQkVJd1dLK1VrSkMrdWhCNUJLYnVHUVdjeHoyTDRSTndlQ0pwL3pLMDByR1FWQkhWaGRtRm9QZFFLUVVuSGJLQWhmakVFWldGbVlmQjRqSmdncDJNRzBTQjduSEVwVFNVR1JpZ0gveS9UbWdZd0o0cEprZDdTUWg4MVdGd1Fvamd2TU1zYUFXVGJHZFVZVFZ0V0FJWjd1NDM4ak1mZG9ZNFpTd2V5RUN6OFZpSlBhQ3RlU3p0Smxtck12bG8ybVZ5RjNFMVF4anNFV3IzaWdMU2tJejBGVURDRlVoaUZVeFJpR25vaElmdlk2NFJOcVZrUWNuVzZUWVROZmFucEJZbWdtU3lxczBPWTRwTnc4eDY3NG5tRjg4N25NY2w1TzdxZHVoSGdOQWs1Nmh5WXFVT2dVcW53VGlVRUxaWTJ5UW95d2R4TitJRlJFc2E0TWVUTE9EVVQ2SmtvaUVraW1DeU9LWktZS28xcGN0aEVFZE9WYVZPbmlVRXNZaE9Iek1pQ3JNaWFiRWhNVW5MSXk4NHpBbldEU0lBd0loQjEvd3ozUzdreks1blRlY3VjenRzS0I4N0g4dzZYbkMraHkza1hsamt0UTRaVEV3clVCWkNwSStDdDhDNElxcVJneERJT3YyaVJDVXEzV21IQzA3UzYvbE9Nam5lZUVwRms5VWhGV3MrYlpkbHFlN2pETHYzcEQ5bW4wQUVqSmpycXBFcW5uVlhudkFzYVhYTE5GRGZjMGVLZUYyYk5oZEd6eGFEZDlqc1NscG5NMFRyMEFyYkc4d1FublUraXhua2pGam90aE5hcEJtbnFOTERVUnNoVU1yeFFDVUNJSlJ4K3l3Q2d6TDN5SEc2Nmpyam1tVWk5MDF1MkJJNDJ5REYyYzZ6OUhPY0l4enZGQ2M1eG9vdWM1RG9udTN2bVV6ejJRdXBFY0tORGdEQWlFSFdId0x1SnBISTZiNW5UZWN0N0k0MWJubUFzTzhLN1lFajM0ZzE3UEUvYzVobFA5OWllNWlrczArYkpaaytIUUs0TnMya0w0VUNkVlFKZ2c4ZUpzek81VVlmaUU4QStaZXZYSDhzYWIxRUdNQUxNL295TlBBRGFLL01CWEFTUXM4c0M5QlVuQlplQzIrdmcwNkdINzFOUWhRRHZEcXNUdzRuMWtKWUcyNlR4c083R1lkVUJWaVFFV1ViLzJibnlNc1hmaExnbHVnNTBzanZkT3dTREdBbVQ5RGxDZ2RCYUtCYmFDUlZDYjZGZXVGa0VGN1BFM0w4ZGx0NkZaTHoxNUVWWkFHdWQyVUl6b1dVUnVkQnJQSDVFNlB0L2Zpbk12OVd0Lzc5cjU3VG1ZQkdMNGdHZlB3SHcyZi8vditmM2VmVGkvOFQvS1k5bVBiUjVhTC9Mc3FyZjByMHZlYy9oclE5VlEzbldoKzNCWC9iMmlaREJZKzV6WERxYy9LQXNqaUFGV2dnVlQyWDNWSHkzNEo5NlRnUjIvNmRKTitML2swYkRjNjhPU1JpUDdkSzFNVGxLZVRudTJhSjJrZzM0NG10KytQZ29mcCs5bXZqbHU5OVJvZ0VDRkVTQ0l5S2pZV05nWXJGZ3hwd0FuWmc5S1Z1TzdKSno0RTVPUWNtYmk5V3FsS3RRbzFLMVdnMmFUVEZWa3psbW1tVzJTZHAxNjlSbGlVVXBMTFpHbjM0RE5scHVFeWRMTTQ5WnhKSGtHVFNqNjBaNW9YZjlIalVleTg4SFZ6cm9HNEFqZndDb1Y0Q2E3akRpQUdnM282QThmajVWb2MzOTFBMGorNU55ZmFkbEQyOWhzRVBvZ3ZhRWN5S3RGUXU2ZFNuYU9vUXFQS0szMVhqVmsrMm5YbzE3cUdEcVVYdnVJZWlLTlRwWVJhdjBtR284aldsMGFOTTdRZGNTU0lhV3QzMmF0b2prZ2hWQzdIWjRWdVZyUDYrNzBoc2RENlZoaGdTMVRiV1BlQkF5cGtPSGRpS3AwSzJBbm9GdjliQWZzUlkyOWxmWXg0cmlGbTIvVDQySVVWMVpPWHFSMDRTdUFxbGo2STZyeVRkR2xNdHpGVi9aOGMycVBaeXkwMXNDTlVxcjJBd0xyYlVveGQreGVrMWtSMDdaNU96MWt3Sjlxb0o4ODUycks3UG16K2ljV1pjaG1leVE2Tzgzc2JaeGVsdUNNU2orOHZSWS8zUitoSHFwcER5anliaThQTHJaZytuS2tqTW1oSHF3ZkZqbWJvd1dQU3RYeXBiNjByTDhKeVRZTTRWc2V3ZW1HeU9aRWNFdzg2TDc1dTVOMGNuU1kzMkVVU3J6UUZhS2dXM2t4c1JZWnBteEFrMDllUkxmNVhFdWxzazhON2F0dHliQzMydVNqVW9sRHpUeURXSjlqSUUxSVowZmJjVlUweHZZOGNrNmU1YVdGV2p1RzEvbFlwZ1lscUJhYmQxbkxXQ3Z0bzV2dFdDMXhCL3lZN3FaZWJrYml4TlRrK0p0SzZNdExid3QwdXBUd2tLUzYzLzlwb1RVQjAyZUdKS2lLam5hSENOS1RQbENuQWpLVmRlSHN4azBta2hzTk4yZjEzQ2hOMW8wcmRVZmFkZmdFS3VjaWVWZEFXRTJWbVptRm01dU1wbVpiYkRSU1NLckFQMENUblJlcHBYU3l0cmF5bW9YWmJQTnplZWs2MVFhR0phMnJ1bkJESHVHZlZpblJScWZzVkRycUhQdzBZMXpNSnVxZExTaWg5c0o3S3haYkRiYjBvSk90V2VMTFZrc2pwbWNFMW1OcG5YMDdPU2NDY2wxalRrSmpiU0VQVXgwbk5uOHhXWGRCbVBSM01WeW1WMWFYWE55OFNGeGVDWDJCaURNUUprTVdGQTNmN0pudDVibHRkcENLd0hNWW1ZL1h5RTFOTis2aDhRUUl2YVhMWWtCY0x6U3ZOYWxKK2tkKzVUTWkvMThER1IzSFc1K0hvWDFsYTFhRTNFV0pjV1FjanFWOWdmQk8rWWV6Y2t1Y1dqNXNOZm4wbFNCbDRYU2hkbzlMTGlZR05aaHloUE5iVitYQk9ySlJFRVFoSFMzNVRrL2VMMVFRelR2UXArRmxIM1JzMzVTR0cyeEtISEtCQnZCSnByKzUwbjIvMEE3cGNRbVdEUVF3cUlZZ21WcGlTVGErbUtFS0tKRmxjWTNpNUttTkhzc3JqLzBGdTN4dzhOMXlMNHVrTTV1bmxjRFg1aFQ3TlFpb2hRREppU2t6c2hoa0NyOHo0NzY5U3FEN2dNZ1hYOEpNODhRQUNZWklmUjVrTXptSytyT1JKWG9aa0tXZ3FVOUNRQVU1T09qYlpWYlZMRWtSMzQzeTVPVk5PaEszS2pMemNyaVcyVTM1d1hucWgwaDRRNkpsbE1aQkFzSWt0R2VBUkVFbW1CdmJCOTNuOUF5aUNvVHFDZ0NhRXpQbHBsa1VaQXZiSWNZRWkvWHRUdVR0NDljd2FMNWVGR0dXRDEzanh3bktYZW5BMFIxQlpybnFacndkcytaQUJwdndNSmNqT2I3RW44YTY2NW9uZjhZMXhBVFJ4ZEVuWDJnakxmY0IvZDJtQ2NkQkNCdzlOWE1Xa0RtREJvQk5EemxlSEVlUUNLYWsrYlNVSU83S2YyVUhIeWtpQ0Rsb2VlTm1qMno5Z1YxWmJjY1dNU0MxMVdkM20vZkgxcTN6Sis4Q2VEdy80cjhzRHBmK0YwMGQ5Rk9pQ0pBS1JxdzVJdXdkV1RVVUxRTFdRMGhzUmYwUzZrNWVTbkprVVZoRjJzZnhTWktYc2FSYUV3TVRxNk1GNENJem5vWmhmVGxjUm0rakFIRnByRG9NQ1RtRjdkZWdSL1J2SVN0TldRQ3ltbzJ5OVJ3eER4Q3A5Rjg3bUlnekI0R216ZUliaHZTcm9HdVh3RWdFQ1NuMjRKRmtXSUEzcWtUdzdQMXN2T1ZXTVpHQlB4VzJ6MkVmT1hLWEU5U1MvNlBVTTBteVA2U2FrZE1tL0g4eGoxbXM0TkZjdEZqNFpMWlZ5Vjk3aElLLy9vUXhjUXVUQlJoejU3dDUzNVZQcVpxcTd2QlZWT1VRSFMzb1l6MG52VnJ6WC91eXh0akVtcG9NOUVBNnE0WUxYdGRJUmNRdkRNV2ppZHRHSjRRbTIyTkQyai90aTlVU0dhZjluUVBsMXVCMzUxRVM0YmNpRGhNZEFhYlpraktwUW0vS2x1aVhLN0xNeVhpekpDbzN2OTN0M043QmJMMU5COFlpdmRtR2Zxd2w4WHlsRVBTRU8zV2YvZWhYa0Nab1ZnMkg2SGZ5cFArc21mNG5QMkFGZ0VIeEg3NDhvQUNGU2ZCZHZvMUlYTUxQc3NRQk05TU83T2t3blZYcDVuKzZRdldMMmk4T0xWditJSWtudXI3c3pkZDYvbGNDTHhJK3FjU0k5SElEZllMVXhPa3R0OUdvUWFnKzFzQXh0U0FmcndSd1RQMEhBMUI0dFpYenFrQWpaQ2hwcDhWQzNJU2lNTUE0YUpZMnJzSEVxMFV5N1paYlRUZ1lvOEo1cGRubWZvY1B1M2x6czFiVFZSRjlzWVJkNGRJTitXVDM5emZCOFAxamRtdDZWNncySWNGbXllNit0WkorUWlVbkRSdUlvTWdhYVErMnJ4N0xUQ0xId1BDNk05SGVIejF0NUJNQXgvalFWeis1NHdpQ0pTc2czWmJKdXN3amh1NkxOQVVNYjJML3VMSnF1QUxLSUMrc2dEZ256VnFlUElBQllhbVZiZ2JSZTBwUTJXMTI1L3VLT1BCWFRkWTVJUDlBZ0ExSW1KUlJkNElLT1I4YUZLRHFTZDQxNnpLZEQ4LzJGWlhJa0tzUWR0Q082MmhoWXh4RzFLS0FZMUx4K1hjUGNKVmF5bkpRV0thTTl4a1k3cndsUmpYcllwdU1PRkx0Zkd4NTZQOVB1elpQaVNFNmlZcy95WG9aMldhNyt5UUVYTzN0TDFTVkFjZTA5ZXUzVGQyT0Z5OTFqSEtsOGhoaW9kNGVqeG1sd2ZBSDg0WUp1eFp6M2tMcWZQbm1mbk4wM09uQjVSTzJlU21yd2ozRjhidEZnU3Y0NXZNNzZKOVVRWVcrUXM3VVovK29LV2pGMjN6M2g3ZzhwWU9reTNENVZwYlRlZjVLTHE3c0UxWjJnRGp4Y1ZFYlZ4UzJTNTZwMDRjeDVudHI2a3JENWMrN25NbXFzWVAyMWJ2VFA0WFBWZWZpSC9iQ0RLS3JDanRVbytlczZ6MXBzVWE2SC9OUCtqQmp6b003dGoydENpSS8zWW8zZStsMXlFcGkxMVIxcjBCVDFmNVFGZ3AzV01hYjQ5cFh4b3FMTjN5aHVQUTF4VG0xazFUSVQ2MGhSRlBidmZiL0g0WmVtUnJZMXpzSnhqbXovVkFaQ01rSlNRUUxZRllNZ3BHYk9sK1RiNTJmNzlsOXVmWVhnamJmM0hZNmdpTWk0cTNGbTJ2dFlVbENCVS9MSXcrMitZb0lMbjAwQXZVZ21BNnFFWWpSTy9qVVJ5czZKZlBlaGFnd2p0YWhsQlhKYURDMnU4ZWl0a0xRUDUydXdVdmcxaVNCZ3Z5aDNJKzc5SXBXbHhydDAwRTJXWXdkNzkxUDlSTDdqQ2VkblM5dUlKa1pWV2dKVjEvRTJRK202RHFFUklSMDZJRWFyajVLNlIrL1BVMHRKN1VLaStpcXJtUy9VcGQ3dHAzWlJTeksvZ1l5OTBSLy9mQVl6M3ZtaHlqOXYzdUgxVFZVRjdlT1QrYmVNYnhQK2ExMmRCdTZTL0ZSTWJpc2pDV216OCtZcmxVWEhCLzVza3hNU1ZPNlFIWldJdWxwVjY2WGk2SzJZQlJWMTFJWTJTSXFyMFdhOGxrWTdLc0ZRMDg1cS9ibjliNzh2VTNUZXZYeC90eWVwYmg4WmN6VTBkU3ZEazhuUzlXUGhsK3AvTWxNZnRpSzB6U1A1UTNXdXpSSkVUWkVWODkvV0lObjluektvMXpBa0VzV2NzRGZrbm9oUmNzcnN0VlFZTlZTVmp1L3N3eW0vNXl5OHRMMFJ6aVE3clNJL1NNY2R3ZWU2RjZJcWZFVVZCYVJrV1JKMzBWaDYyMHg0UGlWMmtzMTVENFMvbjZ1eVVLa3laaVpOQnh4clNaYURSMzhhQUZ3SUZRaU1NM096NzBNM0RyQ1lGcndiaTZ5Yjd0U2UzdlY0TEpUZTFrVFlkWUx4MW8rWmpHMUdPQXlXTkJnMWVTcDk1c2p0bHhjM0Q0WU8yYXZzd3J2VFNBWWVmWW5oZG05MVFwalYyb0dCcG5pNks4bkVhRzFNdkNZWmF0bGloNjc5RExiY0VnUnlrZVJqQkFYaXo3N3kycmdwaFFVZGplc3dONStTN2lHRkhmYk1KRDUxTGs4RXJvamJpRm9LRk5VM1NYYWplV05QTmJ1YllzVFd4M2RWS3VpZmdRZTI5UnBLbjFobTc3VlpTOVg0YTcyZlhCNGhkTk1wbWdONnNDOHI3YXNLQ1dTTFJFOHJqbGZ3K3BIM2hpejQzaHpkZU1PSGVQa0RkTFdqMFdqa0lzckExdHJ6Z1pGU2V0bktyS1JMK29GUFhiTmpDSzI2Y29aay9hV01menV5UHRsWWNHN0J3QXJGb08xcHdOMThmSGl3akp1QkVXOFpXTDcrbGdwSHJBVEtJTFhVN2xhVXNpL25WK2VPNDVwM1k2WThHb3N6UmRlUzF5R1lmTHJPSWN0Tk1rZEJOU09nNVh4MTZZZDh1YXhRTFozLzdwL0dhbGM3WTQ5R3Zhc2YrekZWYVgzMnQydWlLNm9VekRrazJYMWVjeGV3YllQUDJQMk1PRmFBbGRQK1Mzdm5lakJyS2NyM3EyNTdVNHQ3NEUwbFovd1dkUHJ5NUw3VjRyTzMzbEpjZ2hnYmhsNkVlSHV2dTVjTG1mOHdLMzNrRDFIWjVYUHhuZ2VsSEQ4R1gwQ05ycnhEYWhNcm1WcWVmeFZnWndmWnFKQ0xnN0lBNk9QaGNrUlgvNlBCQXZBTUZmM2ppL0ZxN1FoSjZmS0xpNnc0NzZoNXZVRmRaTDRRQzJnME9JZ2ZWa213TDdUTHVhdHM0M0JxUFozSUhwNGFQUWY1KzdJQ3pEV2FqTHh3ZEVFSUp0OFFrYVNzRlVvUm1FaU5Kc0wvcFBxRjJ5cG1XMjJyVW5RZHIydFJWV0lGbHFhcFM4dkpKZVlKR280TW0yV29iWUFqTlJLZlFRQUszaWFYZDU1VEdialU1b2RYVlp6UDBDcDRmRXZ6M3B3TG1TRkFsQVo5a2dWUVhGelBMN3V4MHQ0aE1ZK2lETktZMy9zUjVLcWc0OFE3WUZBQmw1ZmhMYjEwakVSaGdpcENUTDNvSXRFSVY4YUxWeGpDRlUzK2hSNFhpcW9lbjVzY2RVVFgwTUpxa21VQmJjbVRWdzFYVlNyUHAvZ1Y0WERnVkpOQ1hhWW1ZOVI4aEJNa1RZeXhSeDFUNGw1d2NlaGZHOWRKam1lQkpkSkp2dkwrcHNmQ2NIdnVvMzl6emtKRW5ObXJqeUlXd2c0RlBPV3Nud2NBMGhQZWh3d1ZSYXRBcWJYNVI4RTBXNnU4RXhJS1l4YnFwSHNkSFNCTzJsek9NRmtJQzJnMHl5bk9mb3p4aW1IdWQ4a24yY1VvQWRLWkpFOFM3OVBid2Y4QzFRQUtoSVpHOHBBZ25HUVluaWllWHFjVjdzd200cDA1MFZUblBKMlNzeTFQZUxyMnhNdFJlZTVHQThyUFJqbHpXSlQ1b3dpdERuTU5GMDZKaTRjL2ZCWVR3OXJ1ZjcySS9ESGRQVnJwcFRDbjJWOEx3ai8rQ0lmdHdBYU1RM2g1aGljdGJWd0htWUhCTEhwckY0dlYyVHF4TytjN0h4R3dPZ0FHMkFwRldsQ3ZBWFU5WUsycGRlU1FRVmpXVVpjbkVlNG1pU0tSK1JHUEtCTENzdmFsS0w4ZlNPVFFaSExCay85YmVRWkVjTThQWElhNEJkbjhsVlFmNmdvbXBZazNPS0lURlRVaVlLSitVY1B4RnF6NDNYenpQYXd2am9RMjFmMWR0aGFHaDNQN1FPa2dGWVJNQWJnY0lNQVl2ZmU4OTI0dVFOaXBJd0llQzAyeFhDZ05ObndBQW9TTWJ4V0NiemQvSUdOZzNyeENUdEFBQXlTYTByWmhuU01oMW1SK2VJT2hlNy9hUGhlc2N0ano2R3l1WmQ2M1VxY3JPODJMeFlDZkJZM3RkOFhuNW05US9PaTVYT2hUQ1JBTVk1QmxpekpZYkpZUytMVWhkWXFtK0ZuZFJyaWxrcGdlVFRlYThKVzFZbTZhSHFZVVdEQW1pb0RxSmQ5aFcrdjd5WlRGWm1PbytwN1kwUDNYYWlvYmlGSmltMG5FT3JHTUFYK0lBRVRwRS9waDFnTVorN25tbVlJNzdkbWJITjQ2L0Z1bTZwaEx5TGFxbi9ySHp1QURZN0VNQnJFQlJNQnFPM2t2Vmk3U05mWms5bllRdVlnamJzOHFZdjZMT3hCRlV2UXdiSmE1SE5jNFJaQlYxOUNrRDV6c3JZcUUyZG5jbGtmSHV4VGU4TEdQaE9WVDRaYVFCaTBIOWU2dk56cENaMmtKUTBUKzZSVDNGMlN6ZC9PdVhKc05lWGs0RHEyd0VEcExZV3VDaFM2MjVQUmU1MUtEeWFscEdmb3pzVzBxbllycFhTMXhlaXhmSVd6bXpvYUdGenZDUTR2V2Fvd2tEMXpoU0V0VVRqZFhyODB6OTBMYnV3UDd3aTJ6NWFnSVl4OEdBUzlId3MyRUhKdGxxYzcxYUY3ZnFuVmdyRzJSL2N4UTg2R1ZIaHk3WWRaUUFURUtnWFNBckdEcnRtSU1TL0h0T21LdERWZm5PZW9ORzQ2UWNickJZbFV2SEFnaHlFUU5wZmErZmlOa0FBTE9OMjJYQlRuQXkzdXJPVk1RZ1hVa3Q1SFJzazNhM2JiSlFubUUwR2ltNjBCeUw4YTRWeHFXM211UDBUamRmWERFbHhIU1RUbHZUTk53K0pWVjExanN3MCtPcHdjWjQxS0wwa3lpVXM4NXlZMFBRcTdldVVLUFZCNWdxem9pUUR6aTNPZkUzWVJlUzV4WVFnN2NkeWtSYys1VVB5NUxBd3FxZzJLYXRoREJ0ZDlHbkJFcG1CUEsremwzUTFKbFdMcURKam5PcWdNS2JlUjI3VnZBSHdQcFNJWGxvWlZndUUzZkhza3NJQjBhWUNIYWFqL1BwTzQ0Y3ltbmVIVmJtS3hSMENqNGtrMnZmQnVOU1QrMnZpQy83Z3h2cHgzeFI1a0dMbWFSZTZ6c1FuRjVPQkpPYTFhalo2YlhOV3FzM2RETEdmTUFsaERWSDBUZkl0R1I0a3ZpSUVLNXNJVDJsbjcrd3MzQnlidm5EbGZBcjB6MmdPN0NsenZCVFRnbW1hSCt3NUNTRHVmUkczRFo3NmtRRlIyWkg4eFc1SS9Iczl5ODY5SmhScmhkTzU1bmxUb25BcXNLZHg1Mks5bkFTVUNBMXl5WlZXblRZUkE2bUxMcE5MRms5ZVVTd1EvV1QxUURMUVFsNVc3UTFBdEtFcVcwZE1nRVh1S2xGU1FSdUFvU3l1cTZ0ellKUTdKNXBkSmg2V3RCd0RBbmUzaUFibWhONEhibDRaUkpxaStUdTZmb3JGWjduY0VUeTNkclNqS0YrY0pXaWlrcDVzRnZIanhUbEMzbldwWjBCUSs0dm83emR6R0s1bG52Ym4ybnN3cWFIMUlLaUJGbkZSZ01sbUFCQTZWcjN5SWlsbld2bUR4N0VMNDQxOHVQWXk4a0NIQWhCdW5GbE1Oem5OQ1NSUHlYWGU4VXRkam5wTU8vU043N1ZYWDNINWVGZ2x0V2R4WEZmb0RoY2Z4R0NINWVicERPbVNHejdNYWtmR2k2SzNpdStEOHNFTThaQUdrZzd1elVGbEtXN0dyRkoxQ3FUK2dHNUViZ0JzZ0JyaHJXRTdnbW5ZenNoUUswR2MvRjRsQWFxU0hQRHJzL2gxcXFvQ1BMblo5UHZCQzM3clFlQUEzRU5Cc2owWmVzd3plMUxGWWFIQ1VaV0k4ZE45NXFXR0M1Tlk5QllTU2srSXdVVS9MQmJiK05lSS9GY2pCOGdsQTNXV1JjdjJyNnZvd3FQZDJzWnowMGRUMk8xcTBnb25tdXIyODFoQXhTbE0wNGNYbk1YaUk0WGtlZ1FEa2JkZ1dyK3NoWTJCYUY2TTErRkxwNFE3S1dwb1cyRzMyR0pDbW9XVjlHa1FXbW4xaGMya3VLSnEvVVUrbzVxdFNsTE1IVkFlN0FPMktFNndGMm1GTFg5RVU1WkJQbDZpSE1tQ1NCWUFNRDAxSFJVYVZEd0N4RlZGUkNDQ3cvMzNIazh5Q3ozU0JnRWswNEdxVGU0V2k1ckxhWmFZT0FnWHN3RGdiWm1RSTFYeHBEMnBDbTlEUm5SWVlrQmpaMmpaKzY1dzlacjFvRGFCL1N3d0hPTFpWSitCMUJZRXBycm5CTE12Njg2RWxBbGw2WWpLWmx6cGVuMDIyU3E5TDNqd3gyNkh1bFFmRmRFZ0VDelkxWjJaLy9hRGE3TmV1QklSQkVyOU5PeEpVTEx3dk9LMy81MjdVSDNROE1sZVFPbTJkYVdiRWY0d2U3UTZ6OWpaWFh1cUt6TW16eDJROHdTYXdZaTlMMzY0bXUrTzJNZllGV00zSlZvU1lLQVZtbWt2cFFXc2VCZ1dlMHNWbnVXREF6U0xCNnZ0K0tLOEtPcEd5bUJIaTVKMU9nb2dFWUt2dVpWWHpZZ20xMitJSDNIaWhyQXcwejkveFRMRjRZdmpIZk55Y0swVVlkMTBUSkVQUjBGWFlxYzZpTnZGL09rWU5RRzVwNVdNNXRacnBWNlNNMS85c1BsR2ZlRjZhWTE4S1czQmNodGcyWlYyZ2V4aWRGU0JHbXdSNUJTbEZHRHBwY0Ivd0tPUkxPVFpra1F4WDE2TDVWaGNQb1ovdHNJcG9hQmhaemJiRzNPZnBXV3NPdmJ4VHBQQ2N2RUoxZUZTV3U0UGxMM0hOaUZjeWsrbVhkN0ZxalFyYjZFdWpCWGtoUTJXOXYxTlA1SndWd25JbmpsM1ZjZFR4UCtYN1Y4ZmJDRFdVK0FGbXRBVThVMXhNNkJRcWR4SnZIelBwOHZIaFhFcE1WcElWQ2E1VE9PdEkrM2RSRFZEWDVRaGdiaWFOaGdMKzFVTjJpeE9YL2svUDBNSXcxTFovU3c0Y0pCZW0yQVJpTHBEQ2ZDS3FUMzE1SjJiSTNHWW16dGFkcDR6SFdxaU5kWUNtMXpoV0xvSHR1SjFub1cza0p3L2xMVmZyek9JekJQVlk1czgwRDR0QXNJQ2JsZDZlNEtRSUlVMFZDek5jblZJZCtGdk1wOENzSlk3RVZydEpBclhMNzk0YXgzdkZwclFUb0puWElXWEJrTFNMMktLaWIwekRTUnZjSDU0TzlReFhZTmZZNkx5TDd5UVF1YndFTWk4bk43YVg4bkxQdFkrcW1ORVlCUjk1WGgvb1BEMzJhbjlYaktXSWlPSEI2Umwwa2ZPRFdWUVRHWnJFbytRbVUwQys0Q3JVaXZGQXlNd1N4Y2UvSTVOVmlKQjRUQWp3cnJTSVNZam5IY0VIeFJWbTRRc2sxc0FkRE4rZ09LcXg2UkRISyt6SXRlRkpVMVh3Y3BZcnhWdDZPVENlTXF4cThYRzZzQXVCNUpmQnZvaVdxeFhSV2pySmFhYmpXNTJITFhJTHlDZHhpQWNUaVMrcTVpRFV0d1FxZk1EM1ZSZUNXN095SDFyeVJYOHhOV1RRR2R2TUlSVkVrb09JaVVhajllMmZ0OGtsN3VXdDhlbFBMdnBZRnBTK0c1WlI4RHdwd2dxRTJyTlBjZVJEbjFsRmlTUUE1Ykk5WG9NdmtEbnVEVHlCSUgxTW1vY0poUllzN2VieElFOXdMcWhscUZSR0tVampEK1pBZ3VIYUVnUjVpVE1JR0VKazA4Q3I1OHl2N3Q1NmhJVi9PbWU3dzJ3NFdBT1dpU0x3K0YwZnNoK0RLVVFYckEvQ05UbEhncFVSL1cwWUxEaWxoQTBnS1RISGw5Wm9rVENYbEU5V1VTZFAwYWZZMm9lUE90MlI2b0cwSjJ1QVVJK29GM25TTjRHeWNrWlpmS1NJUFVSWktvQ0UwRG9wbzJPc0ZMWEtHTUFYVnRFeHNsc3RyOEtCekQ4UGhXTkl2WEI5b2xaTmN0OU1MZGIyQlozcnU2a2dCRGduWEV1Q3VLdW5lNTE1MGpYNHhiVnR2cUVGcldEV3hpSG9TYUZ2ZWdKdE5YWVlsS21UajJRd3YxajBiaU9mdnN0RXd0azZ6eGdKd1dMV01BcHphRlNyR21SRElkWlRtN29MbTR2eEF0V241RHFEUWozcjJPTEFDZGs0aEpXYk5PY01hSDhRd09Fb1ZmcU9NTjlPOHRiTGZFWVBpOFp0alZmeUdURWYweVhYOEtJWU5WWEZ3QzBxdVNvajNaR09vL254enl1ak12NTVSdzBrQi91a09McTRHUTZWQnRacmIwSnpwODN0SU5sNGxLL0V2NWwzYlp4WWJoMG10dU5IUlYramJaUFlZTG1scmJxNnVCRWhCbGRpSGdKWC9yZEtUSXRjRnh3YXV4aVZaUlpnbjNPbEdNZ1M4c24wejArVURRb2xrSUpBMUp1QUlOU3d4WUUrd0tJVk5WU3hWelpMZ1JLRDVMVGRJeUMxb2lSdFBaZkZKSEkvVlI0MVYzY1pyMTNyY1FHOUd5S0lsUkdxaHY1SFoyc0g0UEJHQ3Q1blhXUlpTb0ExdlJGRktINm5NdXlOTTZlc3ZCUEh2eXlKWFFKRkszN1VKN0IzcG9xYlVMZ2xXNU9MOVU4UlczaGVqaWFTWk5ZTFp5dVhOc1F2ZHdwT1d6TUNXRERuSlYvM1ptQjB1MFI4Mlh2dmpyNHUzdy9PdjlmeVZwQzB3NU1oOEFXYUR0akNsYzVieWg3VXlnNlFqVU5HZ1lSaWxEUVBuaUV4bGxMWWI3eERQeFJ1d1BuZGtEV0Fxb0dqSUdnU1NZYUdRdWcyQzArRjdsMHR0M1VTVFYwU0tWV1oyZTlCQXN1MURVOVhRaW10cTk2T1I4cXVBY29XcjZvZkw2dDgxRXMxMTAvVlNJeFExejVISUlXcUtLTm9vaGIvUWZsN1VYQTc4cjlYOE5NbS9TVnBIMnNTRkc2ZDNNeTZQU05YeDZ6ei8vYjYzdDdTUlFQS1NnemNKUDVoYlN6MWFjT21lNEdMQ05veG96YUFPUmlOQ2RNaDNLaHZ5cTFFaFM4TmZ1bGxkYWh5OExhRlFzSnVpVXZ6OU53N2hOK254YStUUCs0cSt1MGxkVGp5ZXNkdW45dDlqSFo0SS9qQ0FEV2lhcis3UkVUVFcxSUFjNUhqaWgvSXF3UlQvTzhDdFI0SC9GUnl5Y2k5NUZjdkZZdFNZemRyN1hzaWs3QkdQQ05QS0JCMVJTYVVsTXQ4UTI0ak51b1FnNVhGRjhtYnRWOXNFWFhBN3NUYWd0Z3VRTURET1cvaWdLN0pDWXZFVEpaaVBsYWljZUcvUEVZamM4eVBLU2YzTXl1dkRnRWwxOTQ5Zjh6TW1WbzNBSTNYZW5XcWw5clpacnZEV0g3MmQrR3FvUHRwWlRqeC8zZDJEdGpiVCttclM3ZGRsNjFibmVUODFsK3NGT3FjUUhTL3Q1Tk5aK2w5QlRQSk5mUDkweW8rUXl4cUhSa3NsR2VkR1VCOUNnbGpzK1NWQUJRZHQyRWFYekR5ckpzczJ6WjVwMkJwRENsanRUSUZtQlVsRmJnUko1RWlFM1ppeGlycy9JNXJIQlUwdWVvZUtxTVVpOVUxK2NxeDZpK2I4dVFTYnA3QkZ1a3h5ZG4rMVlGZ21pbmJtV0JRclFjQnNGalFWcERORkdkNjZUYVI2SXRKSFJwYlg1MFI4aVQybVdjTG5jZnVuWCs3UFkzejhCNlh1bDVMSTlZVUlmZk14Wnp3R1dROFFGV2s1WkFhaHVxcEszeUdXTzJpYXFKQWlhb1RKOXVxRkV1aTlxWkRHRmpqRHQ5ZWJncUxLT09CcDNpd2FRM0h1eHQwQlpqbEpva2xsMm43ajZicVg3K3dTdnJWVkFtYXYzbkcreEhqNUo5ckc5azY0WmR4WTJKSWU1UjJOWDd5QW8zaGdGVm9XS0VrK2ZWdkZZVlE2MFlXMHd5eW1BNXNwV3NaQnQ2eGVJVU5xK1JyOUVVVFVSVmp0VXRBWjlnTStXZEtONGNxeVZGbkY3TFZocDdoQkkzS2lsTk9VQmFqZWthQXpUMncwcXNGRGNXQlZjWTR4ditZQW1DdkkyRmordURlbG02eTFLTGZFR1l4c2gvejRjSnJCVlpwRUJzNVR4L1VjOEtwN1NEYW5JS2d5TWlIS3VYY0NLR3J4VVljT0hXNDRrUWw2M1NLalRNSE1Ia3hkZjJRV2crN3g4ejZFVFlya2xGbm9odWlhQUNjVnZVdldhS1BhZ0lhNW5rTEFwKzJZRkVYbjdmaitzaDJVMjdTZGhUVU5PRG5yUGxCaHRyR3hzUXpSV1g1UXlYYUVhY3EwR1YvVUMvRStGVVVYQ3d5a1N5RmlUS1cxREF6VmRURit2cGNIQWVSU0VCTkQ0U0tkRlF3WEx2a3lDOWo1R3NIVTVkdCtGN0RMVDdkVHo4VU96Q0N5WkhuaUVEek1yMjhsNE1kazNqczFSbWlGZlVTOXZLRlBCK1BDbnpWRkdmMVlxTHZBanpSMmVtMVBML2t1ekNMalQ3QVpZK2h4RjNNb2o3bVdSaWlTYUhQREtNUWdoaVBGMmpZQjN2a0VPZ0ppS3EwcVA5V0JDWHhVOU80NStUMjEyQ0IwTWExL0hIUWJ0bE0xK205OXVldXJZRTAvcytxMFJYWEFKV1JkYUFybDA0d1FXOW8xbFlwajY3MUZoMFdBUWplMGhHRnQzT2tLREJHcERxSHBKWXhQT3BtL3VSTzErN0Rmc1FhVDJZeTM3K3VhM01xOWgwbVZtVTNrZXV3K1VpOC83ZVp3RDlZR05LR0Q5ZG5JUjdmZlA3WXB6bC9PVGdFK09RR2M0ZlgwUjZNanFxN0tSWDNzNzJTYXZ6T20zcFU0dWlyLzlKSmpqbXY1aXl1QWplNUJKZ0htRUJPZTBTaERGMUNUbWxVaHpHcXRzYVVwUGIzZHl4Z3FmNFZ2cVRKbHBxSnJjWEFPK0xobGdzYUxxc1d3My80WFhGN2ZZQ3JWNlY1a09HSWtzUHFmR1dvKzI3ZFBpTHc3eGwwSmFUQ2YyMHJUYjVsZkh2WTBGK1o3V1FrRGU5WnZZSVlCODRuV01RQm91NVo5cGlDbVZSby84RmJPOFF5ODFMcTVaeXl2TE1Oclp4SXNoRm9hR1NFK3psWlUvcW92bGlYa2JMQmdSQm1NV0cyeGdOTTFDbjBiZkhpL01kRXo1NDJYVkRjZHlScDVId1BOT0lEUmNNeFZyNzJMdHZnS05CbWNCNkVLcXpKRmxFYXRYc3htM09XcGRLWmpRa3YxYWloSVhyKzBPYWtjQ1F0RmVZcnd3UytPZ2NwUlh5QllzdHRpaWhMU2ZFVmNQRmRyNVJWVHNtMGRDOUZRY0ZKQmFMV3lrUjhCZVFnUjdQRitkQlNvbzVjNHBWOUtoOTR2Z2hET3M4OWlrQ0Z1WjNpNk5ZbVI3Q0x6bjRqMUgwbjBEbjRXdUtUSkFKVEFEME5KU1oxUGFoaFVPdHhnS1NpbkVySWZCMDMybnR2dlVLUHJvNU4rMFBhMTk0VE1IdWRhQXZySS9YUyt3Rm9GZWp5NU9KMEFaVmUxcmdYUUZwRmFUY2N0SEdOTXFLSW1BZzNkdHZtbFZoYnJEWkxyMlZRVzgrRW5kLzRkR0VCQUthK0p2aHpRVlhUYU1SWUYvejVtbWtZOXg5Y2cvdno0YUpLbFJRMkVYbG90Q29ycGU0VG0yclRPeGl6NUZ3UVJCL3FpSVJHWTRkWGF3MTlLQ3Vxc2V4Q0hzS2FEU1V0RlJJNk1KVkt0ZWNYbWVWWGYrQWMwNzNDZENQNTF2aU5kcm15amVPQUU1U25xQ1BZbS9ZQXF4Sy8vcW9USkc1VEVZRFFEVS9WcWdLRktVUEZ6Y1ZiY1lYUjlIbnZib3RidjlrZ3JGZmk5UFRQTXRseWpLczBlbE5kays3aFBqTVpPQUYyQ0tRQldWUldUQVE4OHRFc3QwSlhiSGRQUmNGbnFUbE9zN3IyLzIrVTJDblZrdFd6WUFsZ0greStCYkZENlVOTE9KZEpnZ0x2VnRSRjc2NGtkaG9raGM2U0RBZER6djFDTkI5b0RBUm5RRHROcmN5SExJb255UTU1K2FqRFlHalRxWUh0TEJxb0VSZ0ZkcnJ5MTMvZzkvZVlmc0xaWFhwV3Vra1kvdUpja0ZIb2NGZ3Q3ZGt3VWFCTTNtYmFDN2NqNnpIS3pKbGlsbUR5NE1vTE9YeXRLVzZQS1RBSjVFdnBOL2VaQ0t1azF1TG9jNVU2eGdKUnVYLzJLVEJUcFJpMzZsOVU3R0dXSGNSekNiV2t3Rkxuc05xQVpoYXVub09FeXJPT1E0NTIwTGhxMm5wSWdwcTQxWUt1Q2pkd1hTc1dXaEJIZHk5OTRzNTIzVkR2UlpYaTdCMEJmYXZaWHdTZDdpdGZ4amw3RlJEcmdYUmhVajhld3F3NFZhdFZQMVRRRExBMUVmVmZJenRJVGIwTHAwdXBhSEt3WDdOU0pCdCtXQ1pDSk9yb2V4WFJjbWhsa0JqdHg0cnRhZzUwenE1VkorNFhGckVna0VkSHUxZ3hXc21ScllITHl3ZllNMFZQNFJqNUd1QVQvQnEwMFRTZy9lU2FjdSswbXRkUERIejhGRmg0SzFqQ3M4RzN3NlpPRFJOQ2lSR3kvWmwzREJKRHhSbWpvemViSENmU2ZZeGJabUpVb1BwMk56VnpFdTNINVQ5TnJWbTJ2Rjh3Y0pOS01hWnl1aEwxdmViM0hvekRkeThGTVUxemxER3FJNlRyZFJHYm93cnVMV3dybGYvVVVqT3dteUYyYUdlWXNhVU9hSmxGYnVjU2RrYmtjSXF5WGlZRTV0L0VYSDZjMzFvb0tSMUNxRGlLR2FXV2JBelR2ZTdDbldXbmQ3eWVsQXBXUVNNZ1NpMlZMZnp3NTVMOGVCdHZQU0F4bUd0VHBQY3dEb0sybCtQaUZiTXZ6VklTeFBVN29LSWhDd0Z4OWpsaXdEZS94cWtvRUkxZVFTWkNKb0pzZHJCU2xOTFJ6MFN4ZTlMMFFndnV2aUZuZEpLbWlVUXR4YmwyL1hRcjVqU2cvbmhRb1BrY0xyUkxRVmdCYytVRWdHYmdhcHBVcXpEZ1o4TGNEeVBXMENteS9zNDlpQThZZk1hbVI1b3NETmFzMU9HeFVqN3FvUjhrWE52TEdYcEJjZXlQdzhMWUdBU1prUlB6N2w2ZmUrenFUR1lGaFpvRlNlWXhHaVR0NzVFb0tWWm1GRmQ2OHNzT0RiSjFkUVhGOFFBN0FOeHlROE9vQ09NWDdLRjNyTFpMc0JLRVFWaExXN0JxVCtPSlhQUlV0ZUVqWE9nMXRvTTVJUHlVUE1kSDB2NVIycGxyMEJYMXJEUEJHUHpWTHBXZzhVSnZUejNLd3VVS3BpcHg1bGZzMldRQUlYd3lmNzJ4Vnc2NC9DNDFFcVdET0ovTUtxdFFZQlg1cnYyNk5QTFc5S3V4bTFUMmV3YWZzTkFGaWh0S2gwRFF5RDYxTkZza3NQdjd2TTdRd05BL2dOK0xpTHhuSG5TRlhpVTdoYkFlSGdPcVRwQXBTVGh5S1JjRDdXY09LN0VURFBPcXBWb2syUzVvM0VDbElhR2JJYTNTMjFWVXNUNm1XYURHd09tVFk2NEU5TlNZd3c5RnNVV0JUU00wRjdyUCsvWDkzRUNZNjR1VVI0ZGEzWGtpTVNVTVBFTFBNUTRFNGpSdzJaTTZiYkxwRHhQVW52a2krdG4xN2M4RTJMODhPQkNHYlpoRWJvbDhkeDZ1YTVNb0UrYnE5bWZZd1dLU2FPcmZhSktoTXlTN1FKMDJEcnBzN2hrVEdPR0JLV2RMcGJlYWhJQlFLeXVPbktwZHhGZWM5Slhja0F6YVZJSWk5KzB2ai9ad243YllVZjlxUFpza3haM0MwcW8vS1doazE2R0lzcTJVV09MNzRielFRaG80TUtJbUVRYkEvcUZ4dGJCOVRMSzV2S2FBcm9qYkFiR01OZTVhV3c4bE5HVGNBaC9jbUdodDJRcTM5Z0ZhTHRZYzVMWFJpNnZDYzhEMDZtUUMvSU1OWFlScTF1b2lROUI0SEFraDB0RkNsWFcwL1hhMVpyYUxJSTJPSGN4UDlDalFlVWNjb1FuejB4SmFMcC8vZXhmYlJoR2o1M2p0K3RJWGxOSFZQdllaa2Y4UWNVc1ZydlBmYkkxemFtcXpobDBhUExnRXpYcWdSMXEzZWJUL3FBYlVNUUpxZXNRbHp4ZlNFazVGK05pbzNzZU8xY0lXQkJlcHpuVVlhb3R2TEpaUW9GcEI1SCt0QndRS2NxcWpjeklYanF1TStnK2hvK0ZFMTF5VHYyWHl1Mnd3NUlVNGZXRE00QU9hdGt2dEV1M01EbS9WY2NMcktBUi9UVk9FU3NlN2ZaTlJrR1NuQnFTQkk2djY4eE1QVTRJdlFTSTAzblhSbUZaVXFVQ2pTYkc5Q2dyRmNvRkgwVDRST2tTdHYrQzgweGcxMmJ0Q3dvdzVpOFBKb1JrMzJ1bzdxUHF4VGVUb1o2NkJCTEFySXpDOXBXTXczdFEwbXQyejhmM0VGcnEra0JCZmJhR2VZYW1ZWDIxclVxVEFKcFlhelFBM3NlOFNXcXJ2Uk8wUllzYXZVakNaa0ttdkxQQ1NCbnFNYm04QktodHRiU0NBNHhKclV1RDhTVlVHN0NWL1Mwc2hUQ1FOYk1kcUhqMW1WcUV4UEVhTnV1Z292dnRPa3BlY1g3SUxqZXE1Z3VrM0lqZFJVTWNpOWRiRTVhTGhVbUJETjB5OUF4SXJtNnVSM2QwbkFSR2R0bFNWVGtSZ1FnNGtqQ1d4b1dJNXBTRldNKzV4RW12aGdoWEdNTlBXMTdVdUJUdGpFUnl2WUU0dGxkM3VQa2g2bmJkZ0JocHVtR2hxUHNFUGNjcDE1NytXbFRmSE5EalkyMzBOVmM1MkFidlc2V2R4bHExOXNQU0Uvamh5eHUrV2ZOalJ4c0JHWXJQMW5Rd1dBNDVMWW80WjFYVFRhVFpvWjFHMUU0SkNRZFlDYVlFZjZPMmp6MkZNYlgyNUI0aTNTckIwU0lwZW9HN2FIRnF1YkhqcmtKMk5oSG5aMG5YcDlSRnVwV1NBckJMOEREVmZvZHFKYWlleUNmMENlUmtZQ0lqbUhPeXNLa2NDdGVWemNZYWx0clhJK1JPSUlmSjFEYUpsUzJOa1dhQVFLUEtscGJxU3ZPZ1lyTWpDQmVZcGY2dEFzUm9sbGZBR3ExZG0yaWF5Q3JNSjFHOGdiZDFMTDhkeFlDbzJvakhJeFNqMzdWcU96RU90YVk0MWRWaGlwY0R4dGxydFFiSk1pOXF6Y0NXcTVDaG51ZEJsbG1XcFoyaUhCcm9lSU9wbW1URllLeER3bW9NcHZhWXRJSVBqSGNHK2h2M091MkZhWE1qWVQ2Z1lHbUMxRjlZMElNSEFpWDFqbnEyaFlkaWRlUUlkL05EUXhvZkJLMzd6cVJyZTdXajB2anJsa3dOUk9WSmFET2VZcHZnSy9WVGVpbmFDZDE5bng2VzB2SlM2OHd4djJZNGxjUWMwbGZMZURDKzlnaUcyQjJNVDdRS09ET0Vha1VrNTdmSEZ5UDBJTEdodGJMOFJIRW1FdEVpbk9wNzNTa2VKVTkvRER5bVRidFRvdHNRWk5JanJoWXdzTHQzNis2ZENST1QyaHpYekZseHJacmxIQXhBR3N6T3JNcVk0c1NYOEU3SDk1bllvL1dIOFVOaXgwRFp5UFF0MWFzU25TeWUwa1RQemNkYXBXMExLTWx0UzBtTEZCeGZWeVh5S3R5dzdhcmQ1MGRtZS9tYUZXc3R4TFJLZTlzYWtJSG9JT245K1l6a0p6a0tucG9WS1d6THVzT21HOEpXeWtualhJdjBrdjJnamxHdDBQd1BWdFFEMGZNQTNNbWtUclVHa3Bla3NNY2E1NkhGTHFzbTVXYlVYMUkxeHZJVCt4Y0pkc2dxQmJjLzRQVGQ2ekozVmxVbE8rMk5IdTZjRWhLYk9oTXBGZkVlWFNiN01HODVBUEozZC92eWVBc2tmZ3dmblNYbndiUmtmTFhJQy9JN3ltRXhsci8xdUJtZ0VtMkQzTUt6R3FvLzJkOTlTTDhPczRTYThGejNBZ2crVGFKYmhRVXZRRzVZR2Z6Nnk1RHRQRStBUngwRGFmQzJEVkF3eCt4L2VwTE1GeXRkcEtwMkZ0aXgxUWc5TFl3ZnJhUWN5OWRsYUUwVnJCZUQyaWJJN0FJTWs5Q295c1B3UHhqZzNhUW1uUndLTHFWZ1VWdHF0NFdYaXltbUk0K0VHbHYxMXM1MnpWWVc2ekVxSzdQZGJLOHI0b0pieEZuU2JDUnRTb3BtNGhtdXJycnJaQzFLdXVTT3J0bUVyeDIyM3Z3UENEYnE1MWdkMkNQOFdDcUp4U2grZVZuNjJYT05LWDByUkh3Z1dobEtIeW1WejhqTUJ6Rkp5WXkza283dVhkL2dGQUxSeXIrTUVIZUlTZ0dqaU81MGpBVjVtWGpUQXA3R1NuV3RKRmQrWi9uQVBSc21JRmNVN3Jnbk5PZnFIVDNtWld4UlY0VjNzSHN4d1YrV29XcXhpaWJJQTExSlp0UGxzN1p4ZmYxWHh1YWZ5cUdKLzk2QU9ENVVGRmcvbVIrUjQ3UDE5WkpBYWhyeUJGZk5vS3BNbFVKc1kzVUVtdjJLZzRGZ3VpbjczKys3WUZPdGhvVCtCZW5sSmthem02NzdnQjUyYStkVFNKTXp4K1VWSFlUeU1Oejdib2p4Y3NCdGFWL3BWUWk2RmZGd21MdzFKOFY0dlZjOUJlZGhQWmw0Z3Z0T0hyb2I3R0g0NmtueHFvWlZVZnlyZDNmdmhuN2pJSG9qVys0ZTdHK1MwbnlQUnN5RFpyM2lqUDhtMTlodmc2MDZ1ZklDZmg5bnFEdTZ0a1hMKy9XS2x2eW5Mc203dWRMWnJGakVwUEFjMlJRWWVjZUhPRVlpNVNVeXBQckpqVnlOZUFtbS9PdmJRWXJRa3dOOEJqS3NwRDN1U3kwVWpRS2VLcXFrUW5BdGVIczEzQ0xFWnB2T0RZT04zUk9hUlVIdG8ybkpaNTEvaC9PbHVKdngxQktySGMzLzV5MlpuZDg4SlkvYlMyM3c2TXJ5RUtxdmQ4MS9taG1EdHBxNGxiRFRuQ0pDZi9Lc1UxSTJSRVhhSW1UK3g4Z0ZZNUhBYWtNYUhONlRvbkVVdEltM0cxWGRMdWdhbHlCMVhvT0lVQlRaR29NSzJFZkRjWVJ6cS82bzNMNzUvS1Bwa3FEa3FRVnUrZkdKSUJ1WVhpYWR4Y0FpYWhzajFjWUNSY1c4TFVHZUhPZDlzTFN3aW9zaDZTR0ZzSXltVGxaNnBQbGpkMXNqSHFOa1dmbFpPaXRmc1VUTUxQOHJBMHRyYTlzajQ0TXZZU21YWnF2U25zNExyb3NGTDc1MSsvYTNOTGVZV3hWUHU3SHV5ZFlTTmR6RDcrVzcvQzdJSkkyU2ppcDhGVmluOGQ3dDVrckpORlltZExUMjdjdmdoYzJRc0JhZHQ4UHQrVHZMUjBQcjFlNDArc0wxYndteDBnQXRseWpvTXIwUVhYNkFRRndUeUxhRmd1NG4rZGduRlFtdWh3cHNlVHNDZ2xGQXhONFZCZDhjZ1cxQVVIUEYwdWJwZnJwbS9tV2pJTFNLTjlzT0FoWnFZdVp2QUpaczBWWTcrYXBkRmVZNzEzYUQ4Q2lSdTFyVng2N0ZtWlF6Y2tBdzJCNk05V2wvUWRSdmdWWkNYYWd4MFUvMXhEUkw1OXVWUGovZkdDMytGcUk4ZkJ0RGlxU2RYNUluTDBHdTNmRXpWU0F3cGcvVjl0b1M2UjVvUlpGZkNlaEI3Y3ZEaEN2MzZFdUE1cVZWNHljMXp0NHFIUStieFlZN0F6RjlxYXNZWmk0N0Zyd09qdGtpR2VoeEtKLzh5TndqQjA3Wmp3V3RvV0M2bzhieDJhb2dBN1Q4YUF5cmtCODNyRlJ0Rm5zamxDV3cyc2kvMDgza29mejV3VjVZclAxVUxhM3lLelQ5Njl3dDVMYUd1UTFrQkFDTGliT0xzR0xTeXVBNG5BNE5pcThKc2JESDZYYW5IVmZ0YzVjVG9FbVFJS3M5S0VpdlhhZUJhMS8zcUxvZXBZUExTVWhMK01ibm9HbW5oVFJxbTd3NzBudkhicFlrZ0F4cXV1NnZhclhkTDgrNWprandPaUtrdHc0ZDFNSzBnbEk5azQvaVV4Vyt3eVhQcXpFWnA0SWpLL1F2Y3IrajJFVkZNbHpVNWNJN2NPdFFNeHkxMHZJakZoSXE4cldkSVZGT21EUHFmSUhMQjM0NGZsTVl2QzQrcE1sNENCK0ttWXhHOFE1elRaZTZHNUV1Q3hsSGZUNXVFM0ZIdWQzTnhZSmh3Ylo5SllvTDQrby9XYWJUMXpnb3hEOW81Tjg2MUxjVzFIZmVEZWFjb01qZUcyTUpBdDdMQlpwK3ViY1M3YmxHNkZsUk9MaWZPWjlmcVlqU3N5SFhRNm5OWS9hV2RZTlU1b3JvcnpVcUhvcUxpeHZFMDYvRy9IRm1LZ3ltVTZWNXpySDZDNFdBOGZ3Q0FTaEFOUkZTdkthODlSdFVRMjVsVzJldG9nN05uUmhldThsNGN6cXNKcnhXVzk1SlV4WnVjck01OGZwcVNaMEo2MTJGb0dIK3FIUTF1RjBCZ2NQa0x6dUh5Sm1OWUpIcFRKMkhtQjdDUFRSUDF3SUkrVTFZNTBjTUs1Tnk3ME5OUm9CKzFBMXl4M3V2QUhDSGJ0di9HUDJBUytmaHVsR0wvNHp1SGdxSEZYbFZTcm1BSzZFbXdWTmVJUDhBclJuK01KYmh0SmVQYWZhaDk0Tnh3KytOcC9ZTW1XNC9BejN2UFlEMHhCRm52aGpkUm1majZ4b2UwUVFmL0VHVFVtZGlWRy92MkJ0eUxNc0FuakNGVkR5NDFseDJlUHNPTlRnalQ0alhsM1FQaVozcm9ha2tIejd4Um40ajRaQ3plcjYvUThxd2NEc3diZTBXUEp2Y0ovTHFPSndWSW02UUZlVmU3V3luKzJYdysyOElMMmxEQi9uM1VIMnZSSlpBK1MyekVldWJBeU9PVUY1TXIzZFBaL0JVQktWYmxnMkVYR1dsNWVuNldUZ0ZQSjNuY3pkdkRlQnFyK1k0QmRWd3hGYUZXcnh2ZmZsbTdheHNsVTN4VzZuNnRMYU43SzZRbzlydjFTcEp5ZXdxMGZGWVFqUzFleGlGK0FudGJpQXRQZGxRTVVZbEJzVk1CbVpuTiszYlNXVVFjRFdYaXEvOWlYMlFHclRmWjRjQ05Ub0dDYzA2MExPbkZzVDVrdGp1M3Q2dW9ITW1ITEZ0cEQxOUduN01MSVR4YVRRdU1MVFlrd1FERDRuS0thQ2REaG1LeGxXZWhYMkNCZW9Fbi84aWNKc0p1ZjFIWFZMZ0VacEtTbmd1U2tVVlp2ejJSMWpQR1pINnNSS1N4QXE2NHUzVG10enJKYi9hejBkbGttNnVvK2ZmWUR2bVhqbXQzTVp5d3NaeXpFMWl6OFBEMXdkNVV3RDlzenZabEx3ZWFoZnNDQUExbG5MOWpEb2xFYm9pSW9PT1YxUlg3Zll6Qi94dUxyNVZZcHJ4S01rcXVGK2hxZDlnN3k3RzArK0JaZndHMHlmaXVXVmY1OUdtMG5Pa0pqdWtGWDNvdGNCdXovNExzbDdzOWxuNTNldng1aUJsQnBadWVuUXp5WVVQMXNyOS9NQTRQKytMSHBDQlNtL0F1QnNQOXZJeUxJeVJPbVNzdnFLZ3F4UU1ZU0Q1UkxneFl2T3dvSlMxcHVhSlJTM09ZQ0czVm9yWUZBZ1dmV245V2lhLzlTSnByRVV2MTFNYTM0NmtlQlNTZEJpTlZhSUdoZi8rRXRCY2hPR3pXR0o0WE5FaWlyaU9JbU9mY3NRZy90WXpYYm15anY2MEZYUEl3bnJ2UjVGMlVMNytlS2tMd3UyNVd1MzJSTXAvYWtDRzI1WG9kY3JsQlN2N2lOSXk1YWl6QXgxTW1qTjZUaFMxV2RIU1huNlNHOTRoTWJvK1JOTlNWRktjMElFRmV2V1IxeGh4OGczNi9ab2xRQVkvb0cvMkNrYXZkZjRQdFBWNGNvTTR0ZTBQa0U3UWdCV1hmaXRhT1oyU2xsZUZOSEp1YVVsV21BRnhhTkRuZy9BcHJjQW5DbjRsQlVWMUVhNGZnSjFocjJsT0NtVC9HZ1Npd1Q0UW95MVh3dkZxZ1ZBUVVlSXUwSjRidVRtN3MzVjVlR1J3TlcydEpjdHluS1NxSjlFYUNoRVRWR0FGYVNGUW1ENm5WamlVOENOd0R5S1dJVHZEazhLTk1YbXg5ZGdXa2F6aThvR0pGS04wc1h3UHFXd3dxOGJSZ00wQlhKbWxjblpOOElJMXRJTXBFMUQzUVhFZG0veFpvUEljV1QxSnNjVHdGQ20zTHppNFd0SG9qNkxBeks3bVZGcmw2SzRkRUlDaDZJSDd4UXpxOWVyVklmTFFjbElua0ZQNUJIVFBCam81QWxESE9oMmxpSFN5anVBZjgwK29NclZCbHV1dmptOXdURDlJWlp3elZsY0l5cWoraklDQ0doWWpEcGhLTjBUTDJPb21kL3hzTFl3KzBSUktzSnJsakNYZnFFRW5WL28rL1VreWx0eFhmTFRaYjR1OTU3ZmVacjNiUXF6Nyt2cnM5bkgzZWR3RlF6cmlycm1GdG5oejU5ODhySDdWVnlhOTZWdTNlV2cvajJWYUFHTDdHM1JFZlA5VmVieHR4citVZnltMGxNckh3UysvZDd2eXUwTXQzN1ZFbDRYclcrLzYzdnVLVndOL05yYzJBTENyOXJlclhwQzNvTm5SUFllN0xicE12eG1kem8vMDRZcStWMjRMRTd6RXFNVDAxMENxb3pncnZ4NW8zNHlONzczMUtubDQyRloyOHJuVjlMUWIxd002bG8zZ1M3cjErS3FET0Q0Ym5CK0ZiK2kzTVVVRDdkSnp6V0x2MGw3d3VKMXRGN0JldjdweCsvNm0xOG9UKytSczJ1ajMvT2xLVDltSzArdzZLNUduaTEwMTRSL1ArZi9CT0k4bzNidkpTSEZjSkFQRk9UbGUzK3NlWUFCMWdvSFlnTWIvbzBHZjR1d1pqZjcxcWJpdkRJWUVvbk5hVnBTS0hiS3JGdzJsRkdLMXZLaDM1RE0vV3NJNXpvaW5ub3FDTVVicGF0cEo5SG5EWFl3KzZVSisvdGF2QU5NMi9qZUFucGlnNTJINUtzV0l1OTlrdk41dG9rVlk0R1c1eVJLVGhFclljL2NZOVJEZGQ4WFJERW5WSEI1VVFvb0dxZ0psUTZySXRGaEM3eHg5T2RhREhNb0VOWTZIbVQrU3ZhYXJTenBjeDJHcHdMQmRHcWZCeXJDa21UZWNFV0NDQ2tXYUt1WWQ2YU1UeUZITlNiUmJ6aDZtcDNsQUxzVGhZblE5cWpkN2RrckxZMksxRFc1RFpScUVTY3ZGQlVzZlRaL1U0QUlDZlc3N0F5L1hsOFRHS0t6RllpallkTFRaN3Q3NHNMMTlSTkQ4VG16NWRUNHIwUHdtLzBaMytZMXM3RytsNWNjMDJwb0U5cEcxTnoyWjNXeURyWFFIcjg0cm9DMmVaLzNxcjgyWit2NVRtTmZ3eWFvOGZINjZ6SE1FVUNJQlc3ZHZmcmFFVEc3N2ZRNUt1bnBudWlLdDJrd0FQZXpwazhYcks4amEvWENYMzFqbHN3MmJGQ2UxSTNZMG5pYW43eHJYOS83R1lHdE9raEYrSUhjcDNTZVZNb3c1R1Nwa2wrenViL3pFeTYrVEg1WldyL2RzWGJYRnE0ZlZuNTVBamk0ZXFlaUl1cUg1c0pUNnRiQTNCYzZmL1IvZW0yNU0zVU80WlpudDdXbGNING1jbXJ3MkFNRVdaRU0rdVJMOC9BMjd0MlpuWjl3RGRtelp0aWdaRXlKT3MwUFBYNnlYNVkzWnJldzdoY1BNcFpKUCtOT2pxUUlhUm5XY2JMMjJ0SkdwL2pCZkpSSWhxOEI1cHMrVDdyZVN1OU5tQlJWaGprdVkvejUrUFdZalJoVUtLSk1xdzlVTkdVWGp2bUxlQXV5S3kyaUE1bHJ6azdQdlcyTjhoWU1jQ2FBSnpxa3dsckM4VXY5ZWtKdS8vdzFhT2F1cTlwRE0yaURpZDNJVGROcHBQcjA1cXBTM1BYNXp5MHZpZWg5a3A0ZGVLcjZ5VDM3M20rNVY5WDNPaWIrRG9FdU5zaFNIVUxzTjZheEZOcFd4Wk5EV2FpVXhIOC9lNVhCWG1idHNBdlFLYkpPb0Q5VjlZWHdzamo0RzBseGQrc25oRjNTcGdsMEU4OUN0V3ZBQ0hzZDNXSjYrd2Zsd2NmTThEclozYWF4VzNMWTk1YWJxdzV2cGJqd2VXOEdHbjVKZmluUGNrblVKR21ZRFhpTTlmdlBRL0xLWFdoNXF2aTQvZnJxSWxOS1R0NFV4L2M5eGg1WFByZXJoTUJrcTBIYy9VTDJpcXk5V3ByNGtwNWpmdFlVeGhVSDNDUVE5RUxBcFptUXhmeHVMVnVXdDFGMTQrZmhucDRGSEM1Z0xEUVFQcGJDMllUK3NYZDVVZ3prUmVWV2FkRXFoVHpJR0dQNkFOZ2lUbVQ2bGtoUDVMYVhJcWFDV2RtdjF5cUFaNkhLM0VJbkZPSURPblhIOFpyYi9sdVJnd0FhSTRqa0ZiVDU4d0dmYnQxTzY0ZWJnMnNyYnJjSnY5RWYwb0dFNGwwRWFibTJkVE1kWTNQSm42TEFzakJXTlFOalY2L1lWVHZVRUhvY01jc0lnQjdJeUZSaytFc3hzYTJ3ck9vd0pPaXo4WXBFY3NMVTZmK3JqNnIxdFBXa1NLSEo2bUdBUXBTNFBtVUdOMVZ5TCtLQlp2VEJ2UUZrcFFvVDZFSmRRZWVLMVhmdGVaNVBiRXFEUnNKU2VoRTFFeVFnVzZxWVJGbU1naml3WDdOVXBZMDdiY1kzbTVsOG5pSS91a2R0RkhSVTR3QlRpN1V4aDg3dzlJb3h3Tnhsb1Vib0xId3dGSFZPQkFKUGkrU0RVY2k1TzA2WE9OeGJQcUs4Z3JITXp1QnBpeXVLN3NQSnVBaWtyUzlkWUpjK25WbHB6Z1R2TkdBSFp3YmN6Zmw1MElmNHMzbE81WFEva04zYW1ZZExYa3l5Vms3S2JLZmsyem5rSDl3RERlV3ZPam1mdkdCYkhSTGsvSTdEYjlnNVh6THlqUEZKenZaZTFNL0FKdGZuL1F5KzRZZTZmTGpUTkdTYUhzZlBMYnNQRDBxc1U5aGVQL3NQOVNBaDN0THN6ZStsd0JhM0R5d0Y0eDJKQlBIK2RuTWVrUDNhUEh6M0huUzNFK0VUcmRTVnVBdVIyQmw0VWhtSlg5a1YwamFibHV6MlJubEpSKzdlUkcxOU1ZVDNodTVqU29sczhBaTgxNXNjZFZjSVg1ZHlWZkNZVjdMYi9XNU92QnVNSVFrWGFrdHBnZnRvUFBmcmZmUGZJeFh4WXQ1Z2NodU9xaTZyZU5ITzg4N3QyNFJNNXQvOVdVVjA4NTNKZm1PWVI2VjB0ZDg0RUNVNmZwbmVXMzlJbHpWTGhnYmFCK3Y4a1ZkYTJjeVF4ZENZSkl6OWVQcFNjR2NtZFlNb2RmK3NIZmEydWV5L3cwWGFlN2Q4dUcvdVRMMmkzQjYrKzJHb2xRcUMyUGQrd2czMEdYalV0ZGFDSllkdWVPQmNJM2lwbFBjY0hRTXNJMGJMcUNYRzNuOGw1di9NYVQ1TnIzTW9kWTlqYkF1K2JYT2RDdXN6a0hOQUx6ZTN2L2o5cDJuVE1yS0ZGWDlqZTJtaXYvU3AzRGVqZndtaWkvYnMwelorTkIzbzVVRXNwOVhpWkk4a0dqKzJaYXlhbXNBbXdkNFRNN2laTUk4L3M4d3ZEYzlvQVlleWVhK0dIUW9IdU9HMXBuR21VTWhNZ1hpVUVyU2NkdFFhRUNhNytBUjFXT0hOczNBTmc1K3J3cW5POGVmZ2g0WHdQbWpnSVpVRkorMERIa1U5aEtweDhwTVpoK3J5NE5vREkxcFZwZE13czc5ZmtyaGFJV002WVZ2ZjJTa0pNK2JZLzI1Y2xGZjRUVStRdzhIMDM3MjVFZElzcWs3ZjhoRDVVQUxDT0pwNFo3azY4cWdGbzJDd3hSdm0rYlVWTXk2ZmNIRk1ZcXgxY1JzNksvZnVYcE4yVXBZYjRyS2YxcEJWbC9LL1FJaHNGOTdKeFBWUk9KNklmTHFPVW5ldzViM2V4bFFCdUZ6MmltQVVyUkRVSXNQYWFQQkd5TC9xdWt1aHpqMXhtc3FZamgvMlZaNGczdnJhQjg1NmJidlZFRDh4eVd4KzQ0c05nMFArMnk2WWxDQTVuN0k1Qk1xdldwNldFVEpOZW1lemRIcENtRGJNTXNzOXhudUNRZnVsQnNocFB3T0FXYWpOK0NXS2ZSVm84VUUwRTVOZlJaMCtHQWZCMTJxV2RXOFpOMkRjeGJ3cEFmNlV2WDd3R3M5dXZKblZiendYR1BaMWF4NlgzZXJyWFpNdlB6MW43Q1I2N1F5WDM2QWtOQU82OUxsQ0M2eDdQMzI5Y3ZDSWZLdWtoMzFtYkgzdVdrWnpPUmpLMzh0STF0OVlOK0REVlA3WG5EUGVhY0ZtY204cW5QbXFXNGpHcE1GRC91c285OGc1N09zQ21CRzNCc3VqQkgwNmZXSFN2dm5aSjlUenlOVGNTL2ZIazJ2WnI0ZmYvQlkvU3hLTXZ2L3p6Wk51Y3RBN2gyZmdIOWRpVmh2UjF1cCtBUFZBUnUyRzJ5TXliVU50M0tOSEVZSkx1cFArMVBtZjFhNkZzbmlqVnJwQWVkWHNWM25PS3FHNnVrQUVnSmpBQ1lwMndTZG9YZ28rK0dSZnFzUisySVg1Zk13WjJIbVZFSnBweTJUU0E3enVsYlc2L3ZPRzMwZHM3Zkxsek1zbkFwcmloUTZIbUhtVUxZWllNM3lJbjZBaExJTUJnSTZQdkg0L3VoQzZkZFVrMlNVYkg4S0hsMzVSZjJsR1lKNHlUWkp1dytPeDFGd29pTTBRc2xDRE1QWlpsTzRyTE9RbGd3SlFBcHBsMnFlYi9ZbDl1Mlk1Z29BQ1pTUHlqSjdEeUQ0M3h5WCt4NkF2KzQ4ZnRRSlV1cnhlVTc1ZXFnM3J6QU1BRHB2NnJNTERaWHNVVlI3MnhyQmVEQnVPMGtTWUVaTnFYWjJhMlh0MzF6YjcxdjdvWE9Za0RRN09VSUJaMkhXdCthR1FHTEx5elpVclFnZ1hoWERXek5CUm5aMVArOUx0NDF5d3psMFhYYjlCeGRaVnFYTHArNlFhM016RHgweEkwdUpFSC92ZXhxOTAxSXVvZGJRYXpTUk0wYzRQdmttYTZhYkhLdWoxamMxMmVqQW5xNkVzTG9mRHpkYzhXT1I3ZHRSUmgxL0Q4TkxDOGJMQkh0dkFyMlViNktCTjlLdEZIYW1zZzNycjltSlIxVmM5alpuOUJlM1E2Y1l6Q0RyaDFNYk04U1NpSkpWc1RoZWJMWHFIUWU3YktyWkRLdkRvK0JINTZBalhhTWhIWWFOM3p3TlNFTjhYNW1IV0lqVzduRTcyV2ZGTnZHdEI5TEs5eGhFWTg2VGo3MktIdmF5UHEzeTc1OUxOenExUGFTNzhUdXhrWk1QQ3VKa3NqdGpUZHdwZnBydkNMdUJ2N0ZVTkZ4QWNPU2dNdDg1a20zNjQ4bWdLYW8wQlVNK0h6bmZFS0w1SUhiN3p3SGN0ZzgxWU1pQkNJRzcwVG9mSkZWdnJURFFBaVFHRWRzTUZqSi9Sbk9BZXRsdmovRG9YZzhPL0lyZllRSGRRYlFVYTdVcFRYYUI2Ky9BK1hodld0NWU2amZ2c1ZWa2xMVXpEM0xzV0kwUXJ1UTZiYXQ1TFlSZkxaaVJ1M1pXR0tyLzFPQld2OVAweEp1M0t0aXdrSmdIbEZCd0xRWTFSTEV0VVVvRHMvd1kxbWJpZGViUUNIcll0dzBlWHVEM3hxU1krNjAzczR6Kzh2OTQ2WjU1M3o1dVpocGxvWmZLdzlKakxXT3BMSTJ0d3B6bG1JWVBFMHJLbktQcUlxdTBRYkE1cWZMRFRpL2dwL0piYXgydmN2K3A2ZHB4NWU0dWpRQjQzZ1NmdXo1aHNPM2xmTDNMSU1QQklESk93aTluV041by96MVpDb1YvYmsvcHUyK0dLTkR5QW9zTnJ4M205TjAvV1BRanhHVnd4eHRXZFp3RlpIZ0JoRWdLaDdFazZhOUZTZWMwUnVLRFRFaTZZR2lWTkZPWmVjWHQveHE3anJTNnJVZ3l1TEs0V1RncTlCZ0VNUWczT3gzQXlRTGoxbEhVTXpZTGdGSkozUVZUNkJwREwvNEJCU3l2M3hFVHoxa1dubTl6RkFoUGgvcGFzYUFKaWdPSjFkTnBYVFdONTlZZFlyM0NFSExkMzJlV0E4MTNpV0NHY2tZazFQbk4vUCtlWWF0Sy8wbWdVd3VCbzR4amQ3cjRBQ0Q3TGFtWWFqSms0c3V6Yy9wd1FveFpwdERkbnovRzlSMjJXVnRBR2krY0ZpaHlPMklPUllmVnNqekpXQjEwck9rWVhabmlYRENMaGxXLzkyQWMwUlk0a29tTll4MkJRREtZcFlLc0JTSmN4aWdNMCt0RUdDZWhYQm1xQjF0QlRoT2RUdFExNDBYWmE5U3dSM25VOENLQnY1SUY4ZVp3VVlBanNkZzVTNUk0ekdlSlBRLzRWWU5pMGFPWEx5NkdCTVpLeFNwL04yNE96SXRQVXNWSUF1VjF6ZldDRTBqZUtVV2M1amhBelR0ZlVBMjdnU0ExZDdsdTRuLzVIb2I4eGpjcnpISFVyWVVReXdNZjBIcENzV1g5eGptWnBGTlc2ZGE4ZU9ibFB4WE1MVEhJS1ZXYS92SmpMSlk1ZmFtZXpiZnlZdTJuOHF4YUJmTTJuMmpyVmp3c1lYLzYvdkpYTFJac3JuT1kzRDJmU29FT0pKYmdZeml4cGpKOGxlTkRSaDJxSEpmR1Y4MEJUWDZDd0g3Wmw3OS9KTlROcVlZYmVGUjcvV3FpOEtGaVFMVmVQVngwQ0czN0kwdlhhcTA5aWNMMmFhMndENzJMVGVsS09QRit6NmZUNDZjRUtNcVJreUVVMXRFdlVkT1FKeHNrQm5PNG1mcVdZRXF3cnVic0dJWklnM1VKaXRldnV5UmtjQlBZU3VwZzZla25pdFVKdVhlYTZLckpueHd6SEtSTi94Q28wbUp0aVlwcVBTck55WWI1emtid1pKcXJpMGVua1UyTW9PSHNkbGhqYU8xUU1BZjJYNlNDTzgrTE1GNzMyc0Jobzl0RFREQk5Sb29wZEdFc1Q2dU53azd4amkxNnhGZDBaV2tncURIMDZ1WlpsSXdhNjZaWjZKdTZKV2h1Y1FBVm41ajdXL1JSSXJnU0hnTk14UFBBTmFqTElIeDRRTlIzbnVmOGRvNVFFdTZqZE0yVEtlL1hZMVp3Nkc1V0pMcDl3ZVBzVUoreW9peTRCblVpSWp5SGZ3bjRlUGxrRDJnYUxZdWtrY2xHVWZLUW9Da0hScFc2RXN3QzNZV1hmUkliZFltTzE5Um5hdWdpdVRhRG43VlpvMXVsdjM3d3pSWDRWYm53NHdHM2FuRTZJWFJyOXhqZHlYcnM4TlRYUVpyek03SWhZTXJyU3Q1Nnd5Y3JjRTRNOU1EY1RLR2hYQXkwVzJPaXJWK01tYzhoeFBuSzJlOGtqd3NvN3B5VEh6azRxUC9lK1VMb2hyMldiMG56TFF2L0RaallockU2TEEzSEtHbkdBeFpiejdHcmUwZ014WWFRUUNnbDZSWm1Mc1JLNmVVaW53T2trRUphNjBTYkhTYnc2TGRwQ29ZVVRDYnJrc0IvcjNEazltcXdOS3QrNkp6cW0xM3Z6THZKemhpTGNzOGNjSTA5VEVxbFVaWlczQjlCSmw5SEljM2toZHVlK2k4NjNsTHhjSWp4SDhRdWJnN0ZmNFo1bmZyZ3AzUmV4YlZZdHpkNlduOUYxS0cwOFR1T0pVdEJYNjVmR0JraVd6bUJweGpEZkZFMVNOMTBwdWtWQThKaDQ5WjJsK0FvWGJGS1I1WjJNSXl4L3NSb0R6Q2lDcEhpZHdtOTFFS0dNemp2QTE3M0hTUzVLNEdmNHRGdEZvMFovUXl4SkFQM1pVRm0xbnNSVUxtS0htcjg4RXQwNE85VFdTdXZhNW5WMnMwMUE0QVJNL2xvaW1kYWJqWlFiYmQ3V0huMjM5K29LZWVQU0ZoYmRtOWdkcm83bjZQWGhoZk9KMnAyUWFyR0JFcXNsZTMxRXhIUWNiVHA3MWtzNkxMaHp1WVZuWnVYdjRXbEFDbU1ZMENvakFlZHZmMlNURzFXVjZMWmVOL3ZETnBUTGRMam1WRE53cVl0VXVEejRtNWJ2Q3I4cVlvUDBGVGw1KzJkakQ4cTZvbUtBNVZqR3pWckFESFpQTkczNkhDQU5qTFEwT2NhNnpUVXBXV0Y4QWMzMjhOTFQ5eFE4SUhySkFQek8xTU56S21FbVV4RnRydlhEbU10NkE4azBXYWVoM0hYbFQxWkhlVnh2blJwNys3TkpQNzVTMUZhZFhhQ2J1alErY0dIRG02L1d0aWsrdUNadzdCdmVETVlvbXZDTHp5cnQvMUhaVEplWW1QcnVQMWJzZjBHRWZNemVkdlZjTC9yaHg0Z0FuditmVm5KK2VFd2tENjlhVW5Yd1pobzRQRTVMdDYwMUZMK2JlK0g2aGVzSC9YM3hPcFo3MllxNnRaUUNJQTYyVlhHc1RiV1VCUUZOcnIzMSsydHEyL1dLVXRHYnUvemZsa1UrTjNTZ2d5TkNIUzVjZVJRUUJQaVp1aEd1bDRXNTVyQmhSeXZZK1U5OVMwZmErZFZuWnA2TEFEV2VTRjlYMHQxLzUrQUpNY21ROC83eXo0MTFlWXpVV2JRbnhYQ2kzMUt0N0xDcmU2UzVDNWpFTU84bVo2cWVjV2xxNGRuNVU3UFoxNDUxOXhMMjJuN0ExVjBWSHBnRk1zYWd6UnlOempxbk00MTNUbjNxRzdIREMrK0JDT1F2Y1ZWeVNCYUN0M1B3czgwUnhtbDJDcUtDMVhVb0pvMndXNjIyOHJCTFlvUTJ6cDRzRjlFbWQ1Y1Ixd1lIZkFVZVBZWEdLaWlmVWJJalhHdlF2cElFZm5FWmRtZW9uRnBabG1PYjZ5Nmg0ZnM5S1RxVDNiRkVJUVBDaGtvQmlyVU1xZ01QUkdndEp4TlN0RzNpWkFQUFNlRmhROTJJYmw0ZVBaN2w2aGV0NDAxMXpQWE1ab1JSMithN0lTRjFsSkVWZ1MxUlByQ1BGbUdHUnhBbjJtRmNjVnZiNmFNcnBqY3ZNZmI2a3Y3dE4vdGYvNG1kR3I3YXdnZURmNVNjTGR6QTJCZFhXTHhWcC9wcUgvYk8vVlEzeG9veFk4RkU1RXVLbC9HN2hTclYxWmtReE5OMFkvTS9Mcy9pQlZKOStjM2JWOEx1WS9uZVNJamRuRXllaWthUnhYMkE5bmFhclBKcUxXK2NVTHQzd1VDYWRSOC8ySUdzbU96TEtENnh6MEVWMFNRTm9ZdjEvSnR2SFI0NFdWM0xpUFFsdms1WTlFemJ3OHhnNVJLcXJKMTlYNEhsNjJaMDJaWm1zMU55MjFHYVJqalZUa1VFTk56UFlSRnNGcngzd0kwSFAxMzZmdDh4L3lRUjEwMlNIdnBibnVSYU13TG55dTY0YmxYbUhOTmd5RGlONnZRN1pjS25SMDRIakFjdmRtaGpBUzVBWTZWMTgyVnI0bDFiWS9jSWNlazN1dVhpd0hKbkZlbFEzUlIxeHJtdEs2d3BSVklIV1l5RWxXcnVEaVdtQldNVUJLMFVLUFY5RUF0dzY4WnZ6VW5OQkxFSVcra0FmSmRFYndnSVg4OFNwbDhiZFczZHJpQWxZZlp1MUZCNXRMUWlrT1B0Vkd2SzlDQ1Q4c2NkeVpDTU5MVEtibkxyRHdlaS8yVlBqUEdmSWZYb1pLT2NVc3MwZ1ZqZExmelp2bGVjT2ZXQU5zdGcvVXlQNzFaMC9wcjZJd05Ec3BpNTZsY1l1UCtTZXZtaHh3NWl2RVFjT3p3ZjFFZzFQWWJWNUtUSjNaa1JJUi9sL3Nma1NwVTRYRGRhS3JxVlJoak9kb0pKUzdkV29xSlJuUCtuMVk4bzFoSS9UMXg3YnN0c3pJQ0FzcWpJaFl2ZHd4ZDRWNTVzekZsM3ZrU2ZqbHFUK2xkT0NrbWNRN1ZwSFJ3SmdseUVlQVhmQ1lMY2hUMGVtaWxoV1ZwNWoxR1J2RDNFUUtqOHUwVlNGUFBndzczOENUajdTN1dud05VNEc2Q04vbVlhdHlSS2NJWGUxUVBTOFNsdXdhWWVubnJuNmZzYWNJTWVWMGlMUHdtUkh1NEpRRm1ZbnR5YVRlWFFjb1Zrallmc2VKNEZuMjlFZGJqMlZEQzRTQkVKSTdIR0FGZHRiNnE5TXZCbmtCK0tZUDg5cUtRT1VKMDJ5WHIyenFiZG5pTlJNL1VDUzZKRDdrUmNVOVkrZFkxTWpjcm15OElBOWlBU2d2SGJkbDNGUUl3amlhamdISGRWTHVwckIxWU11bExEK2duRUJudDFjYWJoNWdDcHFCNG44SW1seG50aG1IZ0hzUDRCcDlqVjVvZW90NXJXbWJtWmxhWjlQaHNoVittMUpLZWFrckttQjBQSkdrdEhUTFJxckpvSno2b3hDQUVSQUp4a3RIL2xWTzJ6U1lxclpZNmRaeGJ1Z2lQaGVjVE5DZitsU05nazM1aC9ySkNUVUNKWExpNEFqNE5STHBMT21CT0M4VVR4K3c1cjdQbmNDT0d1Zkt6MTBhUS9sczRsVE1iWlg5TGRGNnhZNGJ5dWtNbkY2Y0tRTWdYQzEyZ204a3RpOWJzQ2RDVkJMcERjTStXdkRlVWF2NEJEQitJemZSZWV6NzV2UVk3TGIrVFJCTkt2MzNjVTRrQWVqamg4VWpSMUxoNDRxS1h2TWU1VEFoU1M3ZTk5ZVA0eDBpZU5Ob0R5NTNtMTArR2RVRWRCR1lzU0ovY2FFaEZ6L1FxZGtpa2h1U1A2VXE4OTY3M3FkdFUrNU5GeEtJM09BeXRiaFZlY0xVaERMR0hBQ2gzSkxqU3pXYThIMmlpUVRkTTAyUkI3VWxNL3g4ZHVnOXBYUXpCcXMremFMQmxwOHpRdzZrU25GSnFFWFVUY1RzdG5qUVhkVHNtZlRGeWN5Y1NUbHRHOFJrUjhOa3lvZUExYlA1MEdQV1pJbWRZNUNjU2RpNGNsNkprNkZzaXhoWlV6R2FBUUVIVi9LOXAxZ3E5YVhWVDN0YUtaRTlWdzFsM1dheG9BMVVFYXhObkVmSEluNElkaXkybHlZVzdGR0JzbVpHS05uQUdZUGtFOFVKSEIwUU5YZnEzQUwrWnpEMW1Hb0RBb2dqQWV4QkVBTXJiOGV4MVpVcTNWdEZPemJsZ3NuM01BaHFhRHZEWGNNYzRybGdHV29sVzdndUVaUFhoVHlmSHJYbFpxR0VTcHgySEgyMVFQZjE5ZzMzRnZ5N0U3TEF2dU1VMk4yejJCRUVBTmZLN0xsMEdTMHpVR21PV1pYaEcvc1VoNHJXall6M1AyOTlyazhrRjhSUlFlems4SHhzazl2WEJXT0pIditlTVo1VXlORGZVNE1pQmdRRjNzSFF1WEo3UEJqRyszTXFDU1dnWE04K3VOaU9RVnRFd1hjSFJkMjJ6dk5hbUtEZHVoUUk1cmRibXVkWDh3TG4vY0F2VjFtNzNHRyt2S09heVUxVGNuY01Cc2p4Q2p3N1F5MVNTV2hpK2d6QUZXcm96QUo3SGVxN2ZhL09ERnM1ODdwMFFDNnBFTUM4T005bG1YVVJ3RHR2L0o4R1ZrMGRHb08yS09xeDhTWEYvMHhvNmIxYXJ1YzFzWDVFZncra2p3ZlhqSG5oWnZvb0lsS2Y1eHByUEdLVzU1Yk9pWWJzWnpaMHJES2pNaWFpaEtOQVV4NzJzNHVZSnNIeXJHWDVmbCtJdDZ6YzlEanBtcUxKSjUvSzNqU0thMlU1ZGtGSGl0WDVCZ0llTTRSSUIwODR4anRUdy9zd1dLTUtERTVjNUM4WGhKR3ZQUHp4dVJOMXJwOEJ4REhJL1NhbUxqZEVSWFo1SEVDU1NhWmVSMlI3RWZGUzhiQno0aXNYMWFSMDl0MEhjaW9MUm5IZ0hqbUN0dncvUFQwNFJEVHhVbU9UOW1BNktuV1FsV0FBcGpFRXhuYkh4S3V2anlJbXRtSDFvV3RQUVlZZGpEMm4wVlRDeDV1MW85NXZ0L0lLTmRORlU3Yzcxdyt6ZGUzVkFHU25CZlNGaFd2aG1CSHZ0cHVuRUN2SUJLNS95Vm9penlvZ055TWt4WDJWbmEzVVR4T3NsZ2RPZ2ttWjJUc0JZQ25wbm1hcVJVZzRmK2xsNzQ5K05CQVBWNHpwQ29HNVBJSkM0enlJQitOMTNudnZGRFJwUzhBalg5LzNrdis0Mk12K0p0Vm1CdmdMVmNkYmdCUWF4cW93c053Smc3VUdLSEtMT0J0bHNIQzl5YU5WL0xlZEZ2QjU1OWt6ZnVIT1BwejZpWUpEc0JKeG4xQ1hKRHNNeE1uS2UwZW5TbngwM3RoTWozUjN5dVJ6dnpheEZ6S3BvQVZDZWE0WlA2VVF0REZCU3RXaE01enRZWWFTZ1F0T0c3Y0ZCeXoxQjhQVTg1N05tSHkrZTFYVG1vRUZBZWlweTNFWnBpSWpWUVJlNnZVd2EzQUx0eld3bkFuL2R2SHdtTmpRKzh0N1ZzVytCekY1ai9IaElnMEZVcENvODMya2p4TERQSlVoWS9ONHV0RkZhdkE4eW5HRzVleGlQWjRFdlNyallRemx3cEVUd0hiaWN4THVONjZHcC9yR0wyTnRFcStjVEVwOXc0eStvL25qR0crd2NUVGkranBxc09ORmlhSjVKcDV4MlJrT1Q3V2h6VzdGOHkzKzZYZlVaVmtnVk4rODBNRklVc3psOWw3QjAwQkFQM1N1YXVYU3U4cXIvUW5zTXlFMDJFYXpNZjFuRkxHYnMzNUdtOHdoM3pIbTdkZ2k0NVF0eDREZGNIRGxzNFA2R1dBNEdmTzYrcDJkTEplTWl0QVpadXBENzl3by9VOGQwY3l0WmFrU2FBcndpMFlmRHM2eit2RTBpek1lMXlOT25VaTRlMEtMa3dEZDNDNVV5WXQyUEs5Q3ZYRXVKY2VNRFZFUUVvVWp6OE1NUStHcE0xbXpCTUFEcSt3amdZNmQ0SURQcnhIQ0ZVWS9KeHNnd0laaHZ4RjRVQWtSazRmT3Z0RUVxSE9XM00wTUV3MW11UHJWQ1N2blZ0TnA2Q3BLcllsbjRycEtnRmdtblZrcWJzSmxZMFk2VjdyNkk4VEozYlhDd3dKQyt5YXFtMDVOZzVDMnpnZFdHU0czOXBDQWpRVkNYcFRrMVRVdm5FOVc4YVI3UGVlTjFjUUlMaS9oWE1SQ3l6T1V5UUJkR25LaEdPWUNaUFVtU3ZaTitZeERLQlpXMms4dEdYdGlYeTdyRjQzY2Ztb1MzOUR0cTlQVkJ2dmxFbTlPSHFIMmYwcWFPRkJQRkNScXh3M2ZndUFHOGJKTDFZTW1BWVVVYVBlTCtrb0IvK01VWkxjTHo1UUk0Q2RKc25LbTJMdDZUMXA5TkYzMXpBQUJ2eUYwQ2kzU1ZuQ3N3UXdBSlBZQUxibG9Wc3A1MGlKZGd1MnJKVVREaDFzeVRMeEpwTzZpcFB1SjZUQTZwdUMyS3NrZGZ2Nk9UZHZCdkpXRUJ1Z0VwUlZlRTk0OW1naVlkWlVoYUtWT0o1VXYweFlQSjkybmpZbFhBSkErd2taL3NROFB0ODVhcVdsb1QvMytqeXF6V013aFVlc1h6L0xEVFdhSnpCWXF3RzZ5TTZOZ1JJZlc4ZVhicmtJNnJtM0pqY3VsNXAyVHlqZ2pMTDlKUytJekhaRVlqTGJsai8yL3RmTE9Ta2FXM1lBSUU3V1pYMlBpclQ5eExTS0VTWG1uM3p0by9FeE4yUjlIaVNLYXdsMlJHVDNMWCt6cFdzb3hjUm9iQy82NmJQaVdQVmJiVU5SQU1uR3VKSTRSejk3VHdYS2FlcXJPMk81MXcxam1obk05SDloamVPQnIyNnZ3RHg1eS83UUtCdWNkL0JOampOakVmWTRPbE9TdCs5eDJXRW1EOW9kZUUrNC9MRFUvNVo3clJBRTJ0M254dUtUME5jUUhPL2VzY2tFQUM2SEllcStGVjIwYXFlMUZoQXNpS0l0Uy9yV1N4aHFZZnFpVkNhdnJtUlpPZzRSZ0x5K0IwR1FsencrbUViYlo3NXAwNVd4TWM5ZklIckFFeWdXRGtpbkxWSmQrUFBuRUorMHdHK2dXVEMrMzIxOE04NndmZFRPZi95QmEzSGJMYkw5Q2xUdzJiaEx4UlQ5TnMvc2ZBVlR5SmNUVzYwZTh5VlNTRlFvTUErRmtrWmswYkpiUmFZZE9Ed1RsM2pDWFVGTjh5c2xnZmtxYm9rQ1RDS1JDeXBGN2FjcDBURHF6dzd3enVLRDNFaG9aUlFVV0UyMG4raVpVTk11ZFF6OXZkbkdDQzZ4ZzJrYTNjeFVLV3RTWHpsdnZXL2dLeUJWV2oxQks2KzgwOWV3enFCSUhGcm5kTVNVb2Q0cFNDWnk3UWI2Zk9MQ3lYU0RTNTFBQ3hBOHZScjY1aHJNMGdEeHBnWmFTVFh1NnJLTi9BcndtUW1hamRMalhxbElGRTRVUTdxNzBvTE1obFJNeklWaWI5WGl3UGlvYUlidFdoaSswaUR3Y2VZVE9UeVVTSUY4SHBkRXdCQ1JkdW0zWWRhWmpRandiSXhwY0w0NC83VllRMXpCQ1F5SWRlTlRRK2ZuRk14NkE4dWp2bkRFMTRvL3pPWnNLZWxxREw1VXo2dG03OXU5UlhYRkp5OEJndDNxb3UvZTBpVlFNVlE2TjYweHhNWS9JeDlzOFJDOEZaTTBJY0JyMTJkVzdxKzJ3YjFmZE9NcmlRRklWR1VZMjR2NDBpSmNGQzhPZjcwNGJuU0lxREp6ZDB5MStUdzRab3BvaG1tOXBZbmduVzE5QkFXQU15MnJiRFNpVUhPOW0xOGZrWFE2ZTEreWJCNTlHcEJrUC9yNWY5bXVDMkVBclBOc3VnQnFwbHBxelBYbUpuYm14UTNrWHpNNTFpYUdTcTlGb2NUMUhvUTdVeExuUE16M3IzL3F2ZE0reDNuNHpFWWd5NmJxM1VqN25WcXNwSWZiMGxXVFBSWmQzTGxxd3hVSTVGdk1kcmI5SUpLQWVPWXVNZVI3S2tJOXlHdFZwRkNBcDZzOFlvRG54aC9ldzhCamdBZ3BFQ1FwZEUrelg5UytkOVZVd3VSYTVVa1A3NzArbVl0SUhVOENRMVM1bTdNVTRFak5rY0gyaGJXZWVRMlB2WldKVk94NmJHMUlmRC85V1lYZXhRRyt6clEvOUNSa3h1cEhhRTdWUGdERmErWUR6UE9TNzF4M3kwVSsxWTV3ZmFyVEQzdGpSUzcwQnRqdG8rdUdhVEhNYVpKUUh3OGx1elBHeHN1cVlLTnRLT3JvaEVPcUk4dThsWEtneU1pQ1dMemNZNEVPRVFDdzMvc2FBckI1MUIxYngybzBzZFBkZmxyS1Y1aDZUVjFlNUJ0WWM4dERkVnNOalJEbUsxcEo2SjJTOCtkcm1zejBtS1BZNThkVkhtR2w4KzhCVW00em1FbTQ5Ly8vekZyVzN0VGl2Zi9QOUY3cmJGdHJxcmhGcWNuWWNBRkhGL3FLbXpwcTdRL3BJUXJRVnQ1c01ONy84dEtlNnE4N0FMQytkSVhLWW4yOVZzdFlqbU1FZ3B2NXpkTWY1L2dpUi8raUFJQlBkWFVPbFI2bVFKUnk2bGE2ZElMcDJ3Qi9TaXpXckZDNk1obG4xajQxb2luWUY2V0dxeEdBWTBtQmxXUEpCWWxacmxLdWFiTDVzYWFNN1ZKSFIraDZWeFM5NmhSNTV0MlYvd0U0NXNIL29aVVFOSGZnUldUOUNrLzZxR2RnR1FRdUhiQndCV1crWE8vcnUzZ1VnQVYrb1JVUXI2UEF0WmNTcW5Fek1hR0kzTkJnbTY5RUNUSFUrTUZnWEhUc1V2UFZMSDBwQ3lmUkhmRlFMSlRFcHJ6R1RVNmVEeTNZcHVFcExyYTlXUWE0aWxsM3hETnA4cW9iSGN4Y3kvQ3hQM1RDMkxOTHhlejRteWZuRFJaNGkvV2t6dnNhaHNXM21SVEM4bzBrZEVrbFgyT21GektzbHFPYzc0NjF1UFhxaWE5VmgwakxtREtJbnJFVVJHcmUvWTU4SnVsWjBqaXR3c0hDMG1tcXlhT2ZzZDhPRm9BSGlTQy9hbUpJN1Z6QzJhUEZiYm1vMnhkaXZwVUdKUHpvT3oxZWlWQ3VydDkzKzJjZUJybzJuNytCZ2M3aXVlMThzeUw1a2ZwSkozOWUyVTVxdk9teG1uN1hBZUN1anM0bm42ck9Ib3BEbFNaWUdEdmN1ZEpLNCtDWFpJeFMreVFRd09Oamo1NDE3MkpuWmhSZGxzRzF5bE1BMlByY3BPdnpJZ0xsemljREs5cDRhdk1pSjBzQUxTUkxGWjhXRHQ3Y0hBT001RmI2NlUyL00wR0F0M0ZQcTFCZGVHcjdTVkJzdFdHdVdHZTE5Y1FEWCtLOHhGN0hsMWRBcDBCckdkQ1FaTlp5WkxUd1M3Tmw1ZVZwMTNnc21nRXBOZTk4L2UvcUFQWnI5VHBYa21iZU85K000RERkamVWOUV0SFRqb0dlRitLclR6TjZxWmZ1RXZwTkFLeElOanV4S2JMK0pEa1N0ejM2K25TUW82Yzh1VEZZYytQSU1vWXFNSThpZ1ZiNERZOFpIRXR6bldYbzdoUVVFS3hVRzdsUnJZT0FKbEQyM1hEQWEzQ0FFaUJKTzNHOGFlQUtjaWJ1OENVbFlRNyswSzkyK21yMU1qNjlkTTZpMzFxeTdETURNQTNMSEZIQ3B2cW80LzlzQ05Sc3dHZFJhWG9DOE4zNU5hK0hoUWJPN3J6ZERjRVRFMHlWNVJERXJKek8wSk1ON25rclR2aWJUS2t1N2ovVk00YTRwMVorRHBTQjJBTWE3N01NRFY4Q29odGlFVklNcG04Tk1aa3NUelNGUStyMnJRREdPOEI3WVg2YkE4YTg5RktiZjI5Z2V0TnNkVXdPQkVDOGNHMHNSOG5FTUNzT216aG84czJrYjkzNTFBdXpHL1l4Uk5mZFpkTi9rU0dOQTQ1cklKdndVWWZEYU9pK1pJeHZLMlJ0dTMzS2UvZ1lCclpLV2Rjdm1FRXFleklaU0pPRHh3UDFnZnV2MzBTMjMxcjN5V2plZERuNXR2OC81QnBQM0JDWThuK1hzejhXY2VKQkRHUUFVQkFweldaV1NMSnFqanI2MHBUUlBmMGduZ1hlTG43WWVLaklOWDhvSlpqcWl2UmtQS0dQWGJ5MXZUQTZZVXBJdkF3QXZMT2RlT1ZaRElhWnAxS25QTGI3WUpXQ3ZoenJWT2MyQ1Z3TFB2NGtsTHVUNmM4Tld1a3A1YnBGbjFtYWNIbjc4QWlqWElvYi9uekIvbzBmbTdkbFhnVDdaTXViNUhmM2F1bUdYRFZEZjM2eU1OWTJTUlRhWFVNbVRHbk5PS0paRzVoM3dDMndOTFRJVm05MzkrRk1oRGxkK2xnTjEyaHZUOGZBOU5aeExNT3FYYXdlMXhLSlB6aWV5ZHE0WCtxclpqalhXZUJvWEZDanpiREp5Q2E3OWR3QVp2QVdrNXhZOE1pRU1ZSUlJMGhDb0tucGVCQmxoOVlNc2tWWHVyWlhsTTJaNFdEajhSb2w1eEFrQXh0U0tTZmdOQVFDQVlpNGJ1bGUxRkhBdjhZQXpSaStNSU5rQ1c5d29GWk1JS0tZK0ZiSHMwd05hYk1heEtCWW16ZmgrMGYyQVJWZGN2TFJkWkhDRXZwbDJoR3NIcGVMaEVjenl4N3ZMZmZndFlqMEMzbVByUGxsSDJIazUwdFJtWHc0RlRCUE9DVVdlditiQmNhR1dYZ0t5NTRvbXRRSlhIVnA3SmI4WndqNmNMeDkwdVRaRU42eUNRbGJ6RjRvdTl4em1mQ29JWHV1dVdTTjNDcCsxOXBKeERtTjNWYjZSeTcxNlQyUElQamVacTZaN2ZuUU1XMmVBeUhtbi83SkFUendSWUxkRk85M3ViL28xc0lWcEl3L3c4N0V6V1hZUjVEOTgzWjh2aGk4eUd1OXdOR1VuM3c1QnBDemJCc0pWZVdyTngydzdYZVAzbHNCOXAyZjdiM2J4N0JBK2F5OWd2M3ZNcThqNWxiK0RuSmlKM3ZLdEJUUFdQY1Zwem1xMHJGc3U0QWovSWRWSWZVQTdsMHcrUmsyTXJHN3dkWXN5aVhJTnl6KzZQSUF1MVFKQ0E0a1NZMk9Fd0UyanVmMWJkS0JPNXZCRmV0bldjc3lVeGFLNk1iam9EMWo5NWhNOXd4NUFHMm04Uk9KaThxYTZsTnZBZ0NBN3pxZnFRQ3NDcDdUZzRPQnRSaklBZmlPYmVlZSs3TUppdFhtT1Z0QWhKV0sxdGpISFB4eWhCekZlaktTZjdoTm1oaEsvd3BtS2RvM01zYUhFQkp0UXl6WU9GMUI1cGtGQkpMOFlpQmtjVU9uR0FFSXNQQTljRkQxaUpRMnVHanMwYXUzOGFCNEhkOEtwUUR3cUlGYUt3bXcrMmY0OVpLOU0xcmVHOWovaDk3MUd1OWdUYWt5NzhRbXYvb21NREpRNk9ISjYrWVlKN0xSVEFCSkVzc1ZNaGxSUlhCR2piVVNVSnZBTFpuTUxoNFV6NWlvQkdvY2NId0xlck1nNU9OQWhmbkxoTlpJWUs0V0p0eXhjUDBXNHZDTHFDdWZDR3gvdnhIZ3pWVjMxKzB5alpRQkJYQzE5a2pUalk4eDQ2WlpTVXVtUnZBb3pzZ1lGMmpCbWYwVTdNQ0NTUTRUOXpFNkFsSm9NZWYvenZHYlI1b0hrVDNXazEwSEZKdWpLdHVQL3BQVmR0Q0xHeHJpaURLaG1tVHNqM1o3Y3M3djlhai9DUEo1bTh2NEhaMkJFRGdwZEQ5ZDVORk5VVFcwUTlMTi9sNXpndHdNRUVnTEovaGZmZFEvc05qNUl5QmNOcGhLVjNONm1MTDdlL1Ftb2I1VWtRQVBETFkreTQ4MWo3SDAyK3Z2V3hIcVFCbllCYTZic0tyZXBGamp4djhGam1SUUFEQXVSMlVBQkRPQWNURjlMSlJuZzBoVWpsLzg2aVBWYWxKTzd3ZEFvMTVJTjF1Q3drZ1F3ZGRsYnJPeXN0MTkzZ3ZOenViTS91REYzUTVFRUgwYk1zTjQybUcyYUg3T3RxQkJFSUdEY1lyRmJ3Q1d2MWpFZlBXTXFTOENjZ0taN2dQMEtPUFVVWTYxTWNzT2dJWlo2Mjc0L1RQdUtnWWJTZVQvT2F2UFd3Y0kvQVhXVmFybXVydWczaU13TlZlSWJrUGRhcGxZWmdBVzd2ckEybjhxR2xuQldxT3F3SUJqSjhUY0ZTbUJraDVkVXR2aFVOOWg3NzlORGR2U0MvSk5NbTVZZjVNcGpsRmpEN2dIdndGZ3VQeHhIanZWeG56Uk9BeEQ5YklZaHJPLys4d2xQOGJreThKalZoNUZubVhIM1ZsU1ZUeDRiT1RWRzh1bkplZGhSQmJxQVZpZDdNQ25KOGF0ekxwWXBXVW53NmFqLys0cGQ3aEl4ckc2MG11c3Ftck9qTUxodHlPYUI5TDFXQnB2OTVLTTVYS0dMNzhSdXEyL21idUVxMmNZZlNOUjdjNGxLeThmVmppWDU5cHhLWHdpdVREMGlES282NU5OQWkvY0h0a0lpb1hRQ0hHVVpGV0RtaERzTVN3WXdnVjIwbG92MUVRekxnSWxrQUFKVXdBQUJObHo3REZnYnJUVVVvcU1GVFNBb0syejl1WlhJRmdaMkFIQWJ0dllvNFRuSHljSHVFUm5QVXA1VHlTaUFISFp2anlDV0c2YlNHTUVMeXRINGMwQ1h3RUJ1NXhCN0VRQWxVaXJHeDFoQnpwcm9tTHk4aDdUY2l1Sk5CeDBsMWkyUWlvZnh6d0lDTjNjYXhiRU44QXVYUjdKb3FlNzlRRElvUExLRjVTYTBqVXZ5K01CZUhubHE3OHNyNDE4OENoQkM5STRzK080R285VDNocEltUzFCU25IaXp6bHlVR1UxZjRmVEdhOG1oZ2UyWGN5SnRpODdtRFFUaU1Oam9EWFhZOXVaYUU4MUdZQmVodng0VHVQKzlpQW5yMFJENmNWM1Ixb3dhR3NMVEo3YnNiZnFveFZObjZ5RFBNb25FdXZOZ2xFNER1VjlHOFBkYXVMQkNWY1FFUUpDdUt3VWdtZjg5cXFmeVJJSE83NnVzTWlUQ3ZFbXo4QU1BdWo0czJyR1J3THFjaVc2ci9rS3c2MlhzRVp3VERpTno0R1VVMnlUTGdwdXg2Wi9mM3JiY1phN2taRUEreitUQ2JPVWJzanZYVGdvaGw1bkFsKzZidlR5dFZwc3pDRWhrMCtmWGc3ZWkwZjN2dnFyQ2JReVpkR0p4c25NS012Y1NQb0VEMGpTVk04YTdRcXVHa1pNVU04QzdvRUFWYWpLUGsyRnBhRHVRVmhEQ25lQ2lwN2l5ZFh6bTVsYXFwRXZGSmxZcCsrTGVQSkorUEZCME5GY1hhVFRJYVNwVGFBWFJMTkRiTjBsbVlwZG1rd2xwNXl1L3A1TXlPQmlEZ0FwRzZNZWVOclQvYXhJQlViejgrTk5hdW9BbTNwMXphbGNVT1RJR0k4R1dEUHNzV3c4ZGFLb01HZlo4OTZsUW9JR2htTWhYaFNMa3FWeTBQUzl5ajFWa2VFVXVZT3A5U25FTngwWDkwbmRGQnRDRHl4bFpocGZZb1RJbFZIVEhadzA4MjhCelBUSXlQV2Nkb0RmbUkwUm13R1lidUxMRmVtQjZYaVNMd1JOMFpDZ0pONWQzaytYTGl3THRISEVDL01vYmZRRVZqWTdreGwxbEJXajlreVlqUWVZUis4UUZIQlNTZjZSK1c3QjZpbE9FVFVyRjV5WGJLNm5GL251Tjkya3BFUVRZYkRCOFpESHRIbVhMd2FpTWZFRE5VTVdPcVcwNTJndVBVZSthd2ZWTnNRUmdKVW5Ka3c0QTZFbHlYdklRV0hEME53SlZ2MlZsSjAwNFhWbE1UcHlJRFlNYmsrMmQ3UFI3bldhM1dwTENvdnFEaGpaNi9NdlNnSzdpZUJnMy9xak85eXVYeDhTNS9qbXVlWTRCN0hyeFA4U0EwQ1FsZmxVZlF3VFJDeWh1RDJoaExxRmVOMkxBakdUSjY2WU5ZQ3YxaVc4QmxqUUYyd3h6SDArK1NQbGZJeDV3TUJoVmMwYlFMbzZLK25DZXQzWmVSYkdDMXRLSk9VQXQ0V3ZGR0svYWt0N2FtRThTZW94cGorNFdnRlRQU0RQeCtkZmVKTHBneWxXZFBhTFRzS0hQbVYrRUw5YXVyTE9WZnZnbDdneVk5aUhyNXJrSHFnTWNkUk94R3V6YUNpNGlzUGF5bEladXBmRXVBWE1DeFphNiswTUFGM0VaRzJlOCtDaFUxNXhTYzdCNWdzQXM1dTI4MW81c1JjRzhRTTIrVnNUdFhXUXRPWllseGl5THFFQUFKV1RSQlBkUWwzRUVtZVFrRjBwbEx6SXFiVk9wUk1XbnQ4VUZkU0dBbjhEOCtGRkhLUDNVWmVRcVUvVzFrcGpicmk0MHdGQ010TDhxZkVFMkE5QU4wcE52anFBRXdLdXJhT0JJb25ISGdoSkNzTytRK0xhbndvWUJ3bTQvWUU3aTBKUC9DZStMMXlpWnA0NmR5TG82ZVd5MjFSS1l6czJjN0w3Q0ZRbXhScjk4MlJJS0hGcmk2WGVFQnJkblVFeWNmVUtYOTM1RE9SdVYvTDJ6Y0VsaWVMczcrTm1OS1VXemIraDd2dG9odFN6Nzg2NytwR1JlazlOcm9xSUwvR3pjdzU3Ly9hMU9qSnJRdUhTZmpuWmZXeExuQnZWZnBlL3V4eFZaSkYvVnVpWDV0WGdlSjBiWmQwbzc4UkFCWUZFNytqdUc1cjduQ25kSlFKWEdHN1RVK29jTWJ3TXhUSmx3bzE2bVVsN2pXZUFCK3ZwUnIrVStyZWRBRTRndVowMXk0bkY4UG9KaVM5dmlrQTV6YUlaeW44T1lwZDgxVm5iejJlcG43ejBsL0tyTWxMM1MxTDUva3NOTTkrTXYxdTllV21Fc0pMSjZ6OHhvTHloV3dFSkFwU2xkT0dXWFFPWEtNZEhUd3ZIc01Qc3dvczlhcjlkbjBiNnJLY0JQU0RNWmlUSmZVZ3dBOGQ3OTluanRmTGtTeDV0UjJ6RDNzU0poRmUvclBuZThFWjd2N0p4SjYzOHBuOFVoSUFkOE9jNGdVSkFMNGFEUXRaUm1rOU5Ib2N6MGVxMVdXOHlFcGdhN25CU2lnUnpEY3VPR01hWHpUVUxsc2IrdS9aTkdkVW0xSk9XZEVvY0prNjFTdTZJSmVsd0k0RWZqWFh2TExteTdjMk4zWG1zdFh1SHAwVlh1d1N1TWY4TmRsS1B2RnAvbnBBdmNQQURlams3UWdCVG5xOE8xUFR0elRQRXhZRDNUSlF1eUpuMmI4Z2tyR0VmUVh2NUJFdmg0UEREWmlKU0w2amFGdHZTSDJadEtIb3ErekpMSUFxSkhNSlpieDNEM0haNVRoazNsY0RhL3V4NDNnT1Q0QnpMa0lFdXQxL1dSZGtaS2N5QURZQXRidEpDK0dFRlBmNUNCQTJGMFc4ZjVyczVlR09RTUtITUJlR2paaVcyZFQxazFrM1lwZkkwMTk2S2VGb2Y0bG16TjJreGwzMzYzQU12dWlWSkdMRnpzeW14R0dCalZZR0JmYUxPMDdFWUtOdGMySWRDRWc0aUozdnRVaUJnMWpJVVd0Vjh2a3A1V3RXbmxtQXJkV3l2ZkF3bVlIUVZ0M05UTmlHT1EvS3doQWdCSlFzWkxqUTVPSDlvMy9rMDkvV3oyU0x4NVZOY3V4TWZaUTdNSEZyaTNRRmUxQXpuSmdVaGxiMHM3a25jelZNbGFSUEp1aU43Ym84elZJbzVpRUIybmh3NjBXSEZQQzlqS0RkbzZoK3pHSmNvRDZYTWowRW1Yak16clQ4aXZ1TDFkUGxLZHpEVFBlTkpUbTJDUkI5K3E5RzE5NEI5NCt1NFA4a1ROL05KTTRsMGluTHFaMG1XS08wUmpQYndLQUV3TnR4bmpXWEE1M3QveW9lSFhRRE1nQkNCZVA0ekN1MTJ6K0hpV2xJSUk1MUJ1Z1lVTlpBV05UelYvdS9vYjZvUGlVb1IzQi8yT3hRSEp0clU1dk05U0FFWUZ1MVErdC9kMVJodGRPZlE2dHJ4Nnp5MldIaHM5dVhJWS94bnZROWZyNjlnWUdYcEZqQk9ObHkwZWxvZDkybExDdGNzd09kSXJCN1U3VGdIS0hoMUVzbjBwa20vcm5mRnFmTlplMWl4QzczWFFtZ1dhR3FFNHQ0VCt0cHdrWjRRczNMWm1IR2RCSHpIRVFMVzlpQTR0NnhyOWViQ0x4ZXVudTNoYnB0N0Q1VENDdFplYXRDM25RMXRQbE9qOU9WblhjWnMzRDk3ckRrcEh5cktJQ3loTWF6amgwV0JqbW4vczhDQjMydmF5OHFIVnltSStOek5WMWFIOUo4VGd6K05VNTN3cmZzYlBHeDlQT3oyaXd1L1A5clRDaWVxUEhZQW1HajhjcjB4NU1OY1BtTVptQ1l0ZEs4S2ppT2FEOTBlWWNOVUlpbGJnWWRBNkErTEN3UUd2dTREVHFyRlMvR0IydHI0N29CSk5OZStrZ1ZocVkvSGd5ZExVRWhVUUFxZy9Qb21TTFkwc3daMmpwcnhOeVFtQ0lsMG9mUGhNakZuejNxOWdNZlRmTjVPRnBhTitzT1B3eE9tSzg0dUlHSW1vZUZsL3kwY1p4VjI4V0dXR0ZLMmZNM3NSVXlwVWZZYmczN3V3TkE5d3NVNi9jOWp6SE4vODdqbTJLcTVBR1FQNVphc3R0eEhGdExZTGl3SnZQdzQ5dWNyTjNCaURHZGhpNS9XUnFxQU5BeitFSFM5SFk2ZlJhcGN1emovQVJ0UFg4REJzeHN0U0tVM3QvR3hPQWhBYmR4Y2Z0YUYwZ3djaFBaVjZiMW10VmZ5SUtrcGpnK0ptQzlWb1FVUVFnVGdqUDdZL1Vxd25tN3llcjNraTlDZUR2UnlOa0hBZDMrWldEYXl0elU2Sm9iNWIyR3cweGg2U0YxTHgwaW9aVUIrdzhYajNneVh5Q0dPN1BXWWtJaW5sSGxBVDVmV3phb3VxdENPYloyL3k0b1Y0dUx0dE5GdVZsaDZnTVk5L094aSt2bEgwbUwvd3pQL1BvMlFqVDM1YUo5eFAyRzhjZWVqSk5oT1AvSjhiYlJhVENvR0dnVXZVc0RybnBtb2JOM3I1SkVZQzk3a0wwMk1zTHFmNkJpYkY4YnhMQ3QxeS9GakZoR0crTzV6UlZHajZ3cXppUTdhWEhjZXZzZlB6akhzd2J2WDNNak1DWVgvcjZCYjFjellFaWVqMk8veVVHbFFlUmFaZkxzdXJnYkhaOGtvNng4SlRneGtqVTNJWW5UU2tjaE9NZkI5Q0xjSEtMRkFkUVFKR25IL1pDcHRMeWtmanVFWXJST3RZZy91bjBXQnl2eWxMOWROeW5RM1hkVEFtUFprZmJJVmJlR2JXRGpKbzk3QnVnS29jZlMvWlF6dVRLWS9SbWc2aUFOM0pTRDRrOUk5YUhsUXhzTkpGc1doSkN2OTJlNnpsTWxkRmpFSDNFK1k3NWdQTDlaaFNoRTg0ZXJNakh6TlRNKytuUlVhMm82WVpDTEl0eVpPRllTYUJUeUZIZjkzWGJaOWJ4bk4xNWhIZ3E5M2gxZnBna2dKNWtVY2Z3YjIvQlBUWkRlRHdiRHltUnk5K2xUVnQ4cXE2L0N6NDg3aGFBV0ZzZW4rOTFBWTR2akoxdnpLdTZSR2JhT1BLcXVPckxWL2Ivb3Z4ZDZEOWQzbjIzNVFJNTVSSW5GZU5zSEMwVUozWUZWMVp1MzZkNlg3OW5HcWt2N3orUnBWWlhRcitwcEdYQWNnRG9qYTBSR1A2N0Y2eDAvNTF5ZnAyeWRpSUtyZ01BUDBZUGFDQUhMY0NFWlR2T1RpY1FyWURYR1h6c2ovbEJBQlJDS0RkcTMyUENNdWpNT3pHZXBDai9Kb3ZybEVvTVlwNzF4MnVVaTRFTVFTWVJ6QXY1M0ZDU0xTOVVweHJZb0Y0UVZIa2p0VFMvSlpZdUpZN201bTlYQlQxL1ZSRUhidDgzY2hrd2NEMHZFMGV4eVVILzdIZDB5WmUranF6Y1JPODFWaElVQUJGQklUd2xBWVFGTmZmNThqdDFJZUZmY2c2clRxNEt2TW1KODdLaEZnR3Jwa080WnR5N0lGQmtETWYrZVpjYnRhNElHNDVFVzNkM2JuN1ROMHNETVJraEFBNXNnamcybEM3eU9Ba0FFQ2pqdWF1RitxeVROakdLSzVYQ1ZBVW04MFN5bC9ZS2o5amR5VW4rZm41VGN5THR0cHBhRTdWUWNYVy9FQU1SSGdLQUtTSzVldkNQVTdkVUtGc2JtOElEOGFPd25zSVBSbWtSeFJBNURURTJYaHF0d05EWmx6SVlrSDFSYnRRcmNhWGxERmhPTG0xY2FkTTJZSzM5V2J0NVZwbXI2NjN6aStpbUgvMDY2U1FSb2hsWmNYZUNnKzdyek5qb3J6N05EMG9GY0hHaGExQ29EL2JoL2Ewby9uZ2lnZ0Nsa3FqK05UY2JzTE1ZcWhHN0RmL3IrTHlTeFQ3Y3lBT01remI2dkVmMW1YZWJyeDExb3ZMaENvSzZlZ0ZsbER5bHVjVVptVGJ2M3lYSWN6R092aHU3VWlxcG1UR1JqeXpRMW1SVVFxNWpwb1BJYTBUMlE3MmVxcWNmdWh4OVpheGR6RHdTMmZDL25TOGtvZm44Wld4VlRHajFqRm11MDFlOEYyRjlQV2pUYkNQTGt0VWFTWFZTc01uNzc2eDZBeDhaekEwREdpRS9wM29iRWpXZUd0OGh6UjhIN1I4TlRIMHhpY3RTUWEwekNyWTRZSkpNeUpMK2lxM0pXdk02VTVIZjFnVUNnYjJ5SnI5ZGNjYi85clJ3b0I4TmlFcHF3YU1BT0ZSeFRRdmJMVHpLcVFnT01nRGxJb3dFS3hmejJKNVBPSUJOcUcvMTlUK3NSbk82a1JnTnFCWVlLTVFHSlVUOTMzQUlpdmZkVlVlMStqMGc1NlcvYWZqT3I2cFhxZEhXOUJRT0dpN0ZwZEdBZzdXVE5yZ3l2ZWR0eFF0YW9yNTl5VnhsU0hvSWYyMVhISnJSajhNekhNcTMzbzNUUUFaaERYN0kvcmVWdHJad2crSDh4djk5cVU0NlNkdE9UbTA3cTNqeTkrNXVNRVFHZ2JqL05samxUVEJqa0ErNlhRbjQrRk8xT3k2Vk5PZzdrV01WSDJHMllhL3JXcit5L1hzckZ3YlBxYjZveW5icGFqNWFiNGtsUUNHRkpVVFZlQWlMS0ZPWnZPL1UzZHBDakF3S0N2aTBHWjdhdVE2SVpuem1RQ1VMWHJ5S09za2NyTVRTRXNHQ082R2tzRmV5ekxGMG94SEFjelc5cEVMUTVDcmF2QlArVit1WG1YdTNtS0V5RGFhN0xacklzbmQwZWNvOUVLZ0NuViswVmszUHAvWmtnRGV0M0lRNnV1RXZodTNtWVpQRUtwOHZwUmxnUitJUkRHZkFhRFZrZGpyZkx5VTRoUXlMUEtnYWlUbDlzUFFwamdjdUJ5WWFnb2RLMTdiZWJHT1dZSFZWM0cycElscjZmdFVzWmFld0RkaDhJdzk0V1hUSWRDeWgxQ2VIMVAxaTBSeHB6K2NTMHMwR1FsMGZEN3BjNG9Odko0R3ZNUDBjVlkwUUppRlRqUDQwVVAxM2dNS3NhWnJsdnNrUTd3NmErWDVCL3A3ODgxcFRkdVpXcmRkRi9jL3ZHZ2V2dE5KcHU4R00xdnFpbnZPUVdnRWRKdXJMMlUrUDNNejdWbklDUW80cS8xWUdheE1FUmhGUDBIWkxtS21oc3dPeE11UFFteXlmQ0o4WEd0blRXQnFOQmE4UUpXaUJCUGY1NHN1S3JmZU1GWThNbDJ0Nm1YLzhJSlhQWEc1UUxUcFB1Ykk1NFdkYlJjaURnMC9vek10UWpXM1Z2Z2FzR1ZFSGtXZDhkeG4xYS9IMk1paHpnN0l6Tm1TOXRxb1c0eU9JYTZlR2dSdGxtVVk0ajVwcTVjR3JXbWtzRE9FVFBDZDBaL3JOSlRPV0ZiOCsyWGJXSFREUDd1VWlyeFVSWWV1czROMmUwTW9MS3lqUXEvaUNMQUxpWXlsMHhTYmVmZlpRMnM4TTVhR3RWMHJQbm52dzNIS3g0aDVJbnJ3T0tna2NRUmtTZDNDamVzd1NwVUdOd2xqcVNpUHljZVZSWi9mVzdLZm16Tlprd2NDeWpHazB3akRDYWdMWlFXRTdJNjBSTEhFQ0I4b3Q1WnRwaGErN0dNODRtenQzUmRSREQyTVVQaGR1T1p4eFJjelJzWEh3cjI3dTg1TjNDbS9RbUplTVovVG1WRFJndnBRdlc4bHRLV2lSUVJXUGx2MVo3b1oxblA1NUNKZjlra0ZPSVFPOXZpV2w2ZVlRTEF5WUhuazU0aE9MbXNyQlRDNE0xd3p1NDVPRmJVbStaNy90S3JGVjZoNXJ4NVNYN0ZpWlZSMkJ5WnJEbExFMjVPNE45NFdYa21aK1ZNc01wNmJrT2hrRHBoWWFTREk0UWJ4SkZQcStaU1RPK3VkWm92SFVzTzVNV05QWnBHNWVpL25ZS2tGSVVpRnVEUDcvQkxyTWpLLzgwMU84Tnc4bVlDY2JUQlkzRk56ZDVmTzBnbVVkN2lCRVEzNzIvakxBa0VEeDFkUzRWeEVDQVFYZllHTExKK2JMUWhqckdSMzNnNXpQYVB6NCszbmIxblhRL0ZiVnpSQW5sR1ZZYjZDVW9PKy9FSVJqNmY4b1VGN083RWozMWV6akZBYkZFTlJzRFN5NFJGUHNjWGUrZ2p1eGRwcUFzS1hiOXpRandpWTJ2TFAxZkVuNHlDL2JnaUFoQ1lqQTkrU05jYVhNRUpuMnFzak5mZCt2dVkyT1dDait3dlB0eW9JMDNvMjI4NnIvWnZGU2ppZGkrbldKZWxpMXEySGJjSVdQeDBwa1gzcTY4RnhlN2NiS1A2THA4NlNUR2wwYmMrS0dnM2IwWlFiUTE2bzdCOGZPWVdtTnV3Z1A3NlB2N3hSL3IrOWlWWFoxejhyYy9ja05qaUpJb25lcmNlMkJTaFBhbHF4ZGdtdVQvbnBhNFJTL3BhZGt4aU9SVk1yT3Bma3QyM3BHckppVDhLVURsMjBYS3FhZGw0WnM3cU5meWdtY2NEZnM4NmZTT2gyQjNydmFvVXpwdUt3ekh1aW9uRnZrbEJQbXQ0ZWM0RitWZE9Ga1VLSStmRDJLQ3A1T1JMWUtwVUVneFJISXBmVGUrYnIzVkNRWjk0OGlSelpTZVFQWXN1L2JUWTJ6eTM1cHA4N1hQWllxL1dTODUzVndVU2pSSWJER2lJNGx3QXMvNWJSODQ3SnpINHhKL1Q4Y29Ca0dHNklUWmhUOWNFSnN0YXlMVHhRRWdtWnNRcmhIM3ZNNXpaMUVBY2E5RG1uU1BCQVdMSDNGanZDRTgzSzF1TWo4SHpFOUozekhrb3luZWVaR3NtN0YzVlN3RHdobXpPY3Y3RTA1bGdLWlZpZUdScVNvL2NVQjgvNVVaYW5jNXQzWm5LN0tYczZvV1JmUklUeXFqQXdKT09FNUZ3cHlDbWg2cm9QWG1yS3NTVEErQ2cwNXVzWHlqY3JWQ29BU2hUVkhlbFU2QWVrRFExcGh2a2RiRmUvcW95Y041VzE3Zmh1Lzhja3RnaTNEN3dXYnlIb3V4ZFBGWUYzZVFCTVZHRVFVaUVjVEREMU05NWhsUEZaWVhML0QzUU0wcHhWZ2FING5qdU1lRlljemFGc3Y0eitMdncxU3o2WHBDL2RiaDVaemEzZ1V4WWVGR1ZHRWprWlNyNUZVYWVSSVlSN1FTM2wyeUd6eXZIVGExbzBYeEJjRFhyNkRET1JpQkltcThBQXdxUDEvYzhUYTV3VHU0QTJROC9kaHRIUmV0bWg4ekNDR1p5d0k5ZjhXdVZzNEJUYnU3V0p6aGxxTHZtYTEvcDRBRmlaWlArNHdVNTJvTWJqNC90UUtpVi9yQTF1QkJiOW5yaml0THRkQSs2S2EwV1lhYXdPTUZpY2VMUXRGUzdySjFIdEMxWndWQzV6b3g2MjZlSysycWYxZ3NObWsrUUlUalI5czdRZUsxSXc0NmovVm1VbEdIbkNQc2ZkdGVLb3RmOTJPbG5NTUdPR3FoNS9yNUVPSmJyVTJJOXgydzM2TEVXWHIzT1ZKU21rUUp2dmp0bXg1aDRpZExQc3RyWTNhVnppODMycGhJV3U1ei9OVVNoSm5rc0pHOVpjUVlTbURqV2RHc3B0UFh2Mk5NQmpwS2F6N3lLTEtGbWswNFB2T3NkYndHanZkZVlCWm14RXNhd0RwN2dVTjJ6KytWTVl2Vjg3dzRZQkVEd09GYlJSaEtWcUo3elFWVEtwSi9KQTNkV1hSd0dqNUNyZ25lSHp5bXRhQXVPYjhCZE9oOXBaVGlBcUpROXY3ZjV5YS9sMDZ1TGxLUlBxNDMrNHhIVHdDbEF4dGpleTJyblIyQ0NZeGJreU9hanFPaklXWFVtUWVjMmU1YjNmOVo4NmRGQjd5SVFobVNYYkprUWJJNEZXOGZPT25lSlNMOFJIRXZTYzRNdGRhOXBwSXNaS25MTjNGTC96eEdRbnNmUUk5UmpGNzF1WCtuQXlTQ2l0cEtIZXhFOG5hUlJEVlpTRDl2NU1kTzNtSUV6TnQxbEcwWDBuQlJQTXBTd3M3dXlXVXA3SDRscTdZZUdxcUl0amdxUGc2cStPaWpQZ25sRDhqaUkvK3VpQmJFS1h0UnZpNUdWWFNBV3Z5a29Gck9zQWZDNm5uQ3RYeU0zL3VSeUpFNHhIcGlkQkp4emhwNGtEU1F2WFhOeThkSUp1VXNXTVU0N0VVT2dtQWhoRkZVT0t5VzZJcCtac1NUb3NFMFhPQm1XZWhpcDFFNm5HbXVpZ2dLd2twSnljZ2hCRnowbXd2OXpLajYwajR5a0w5SDF4Z2cxNGdTWGhNaWFIUkNsVjV3NkV3bGlDS01YL2ZWem5qNFduRnY5VUJDeFZFdUZ2UEQ3N1JqMjBhRGZuTmkyWUZSRUxDdHNmSWVVZkRCRDdRZUp6Mk51R0l1SmdZejY3MzFWOUNkaHlNNFhuTGFjZU05ZDlraklJanNWRW8wZ3FBRzFvK1NCNk5Ib3J6ZldEVU5NTlVESkZpbUEwNmNQZjJMYWxHNlZISjJwRnNRTDBwYWx4bENvZlVVZDJxTXIzMHd3Ykl6MnVtV0JMZTVtMjBWa3h6S3NxUGtxcjhGQXVlOGp4d0RMd3ZpbjN4SzNLUDd6M2dNUll6U202SnJFZ0RaYVZ5dUc4Y2FVcFpMVUlBeW9JYnBzR0RTWlcwNHhGejViNXJqTWE0SlNraUhhenVtdFloek5DeWpSQ3Z4MVphN0h1cGFZdUtRWm5PdjZYaWdlSmkxNHBwQXRKSTJLS3RjOWpXanZpT3gvQkdPWVRQWVpZNW4weThjeTBDc2MzRzl3Vm82VkdzZHFoQWxyano5OWVmWDIxaW1UeFhYakZQVVFFRlM1RThkVkw0NWQ1MHNDTVJDM2QvSC9nSU84R29ISG16ZlQvUUtQYm14UlNISWhKQURvUE5PZDhLVHdkWnlDbFZkbzNlczlhRDlrbDhWTk5ZRUdzRWhPOGxPVXkwYVBJMEJrUzk0L1RrYlRYYWpuaDIwNEdERHh2a2VkQTMvdC9vMDJ6OGlGOU13bnpQb0pMTU9xTHdYK0V2RmFqVjMvODUxdVk2Y3VFOVAzeUxPMWRkcnBWU3NiMUFzSlVTL3VDVHJYMnVPYm1HUWMvVVhYdzEzZ2hleFE0WXEyNXp1Sy9UWGdzL2tKNWhuMDFIbVBiM2ppL0luL25Jd0M4U1ROc2N0cTJjWWRJZWpHczBvRGNvSEtid09rODFlWkM5ODRlRVVyM0pBYmU2ODc3OHpzOTd0RStqNE5oNjFDZFBjcG9FWDdwOUVtaU0ydFQxazk5c3h2Y0t2Njg3R3ExZEUrWWtOWGRrQW53VWlCc1c2S3R4OXYyTksyRTBMc1hXNHRVNHpFemR6NWk3M3NvSnR0WGt5SFhzR0dmajdrLzh5L1dBZmQzc29kazBpeVAvSC9GTG9VOHNFR2ZtbkJCR3ZPQnNsN1NKQkIyT0lHMjZGSzBMbmFsTEpHNDU1ZHhtamVkTHJFcmNSeHY5ZnpveTNDcU96SkZsd0ZPNjgxVHhyNG4wcmN0MVk4elU3ZnV1aWhUSHcxcHJOQzRHMnJtRDFqWGRiYUZkL2QyTDFnUlhibUwwandodVlXVW50RDB0d1N6WUllMFdtZnBjdGZNSUI0ZTR6WnR0bGdCdFZrL2o2TFRJT2JKYTcrMHpScGM2Ty9oQTd4R2JLV1hZV3JJcTBjWjJVeit4MXJhcXZ1bnZGd3FzaThnOW1aeUhBNG5yaHg1dWlvV2xhcG9ZU1orRGdHeG1FcEJNMlIvRmZnd1NINzQydE04OTRWdXNrdkg0Y3gxOHFOYnRWLytCMHVWZXpvZktOcmcreEU1ZTZHY3RJbFVEWHZ2N21UckJtbXRBYng4Qm5aUXRhNkc0ZTcwOVBvcHJWNXFKb1JDYkZKNXJnemgyT0hZbXlXTkl6azdSaU9LbmhCU2p0MnJIMWNmTnJTcVQ0WjcvTERmSHN3ZVkveDdscUEyTG90VVN3QWg3bFMxb2UyNnhab01ibktCZStkSHhEazZmZ0RFdXV0Y2RqeGZ0aCt0bG5RQ2wrWm00LzlEeEhGa1JRbWdRc0IrdnNSSWFTT3RDMThrU3AweTVTQ3hlbUJCKzhYSWMwNkw1OXh0Z0svU044Sk5XOFJVQ09EQXdBR3cyd3o3MFRmR01VMURDWXJhZ1NuVFltZXdsQ1BkMU5tTnRENlhFenh3VUdVMUpTOTNwVEthd0RDdmUvV3RqMU9MVlB1N2p3K1VqZWhLajAxcEJZcWE4ZUxsQXBPY05KMWlOa24wdk9nWEpWZkVLeXV4MXZPN3dzWlYwOVFqUnlRWWthSS9qSUo3dHg2ZDA1UGRZNUo1RnR4MmZjTE5CWVI1Q0lLMFF0Vzkyd0phL1J2NFZHM3NmQitOd1lLQmdhY1NwYVNxQmpienlMVk1tRGNkdStGQmNzdU41ZDFkQ1Nzdks3WFg3MWlxQlZ1ZWxXK2VuVS9kektPUlhvNG5iWVBEclFUd0wzWmJ3dTBnMC9ablpWYm1pM0p0MVdMczZvQm5GQ3BXSTRCSE1DMzZ6WTJWekExR2hFS0hiYk1pdTZjeG1yWXBQdVI5aTR1NzNJZ1pwTkV2cGk5a0Rmb0NYSkl4M2RodE5wQUZDS1lxeGxlcE9sc1FFQ05OOTFDdlJYMVJJa09FdmFrUU84VUc1WG5Ed1VJZUVLZXByK0tvYVQ0M09LME1EWnFseW9sNjZkSGNjM0ZDSXFNWDJxRElJajBQdWlRcmVXeEtGUHZGclpmaFJhbDlVejlsUmRlbTBUYldyam5pZTZtVndvSjg5MVZSZFRvQVFYZEFBQjV6eGpsZzVVL2ZCdzlmU3FYRUNrenhjeHhQR2Y1bWtWL21XTm5yWTFiUDE3OStvYUZoN1I3Mk1KeVIxZHl6ZlZPME9rTTN5anlYUzJGNWtIV09xSEJJMThDQ1lEMHlkdGtRbkJSdGh5a1pYb1l0UG9QaTduRFJSa1d6dU9lOGpwYmFoaTAvK292MGsxK2xucVRKYllNbDVoM0NQTHdIM0FhSC9rMkZLRUZabU5BakJ3clQ3QS92VDVJVXJVc3dTSGVnL2xmemF6Q1NURHNqNTMvSXRlUG51VitXWGtDeG9TSTR6OGtXRzl5KzZMOEdPRHhJT3ZQUWdLaGd4SEFDZHJNS1ZoZmI2NngwTTZlUFlKeFozVUxPY2NDNHN1elBjZzlnc2d5MTJMOUphSXNEOS82dXZNSGdGMlI4b3oyN0Y0U1JNekRyem55OVVkU0dpYmF3aWUzM2lYczY5NDJPSXlqKzF1bXg0S2YxNG4zbmZ3MHg0dmVabDY1Tk5NZ25WMWZvN1pkK0t4YzlzMnNaQW5UOHFTb1VwU255WW1abEU2Z1FPSlRaRXdBOXM3aER5Zjk0YjlUaDlEWDZ6UnJNdFNOVEtIQVVySC83cGVrQkRQMjJHY2pXK1hHSUNRYVprRE5pVTBXN1owNDdLV2Jna1c4UVB0bzRtSStsNUhuVjVZYXE2OWMxRkVZdHBxMUFkWWVYWHhBRTNISVY3RnQ0NnpZWTc3REtXcytMZnluMWpUSHR6bm45YVU4OXR6blB0Mng0TENKUExzUXJtdTRLVERaZGUzRnNteWtPeXhtN0JTK09xRnFTZ1lpeVgvOWVKQ0VkTWlpNEpIb3N4YXNNVWNZclZvUmdHeGJVNUpBc3YxS3VGWHFMZDVFWXpGT0pkQ1hlV1d3S1V3bWdqUytGcmNpeDZhQmcyNHdMejVxYkRhd0Zadk00R1lBLzZYckRleDdOZzdvNG9kbjJGMEsyU1BkME1GaTJZanB0RDZKY05KQXRRVmdNSGN5Mk92SnIxdnZqNnRoVi9IaTZLNWxkNkM1TEVQMHJNc1lPVFlMZjVPaFI0cTdtSVJUSlJGdkFTUUVWMnVMZ0NKWVJXb0xRY3hsNm5KNDNUTDR4eERZSUJkS2pNeDlYTTNRL1VOUFBEZGI3L0MyakFodjUyTVNwWnYyWldxdXA0NGx6MjN4NXRsKzN0d3FtVzAvMkFQTzJaUWRPMUMwUDlhY05LL0ZiRGJ4YXNJTmt4WmN4cHRNb1NRMklBUkViU1FKMysxL3VvYks5cURFR0N4VmVnZTdOMXp6ZFZjMmtta21uYy84cDVJOWEwZHJiSWZCZE11eXpnTnQyNWpuYm9aOW1UYWtVczBISEZ0b2JvZVJnQlNOWkxPejFVOUlvamlaeUpWTFp2SndCakFSMENWQjBaSC82cjVuMWR2bkV1L0hsSFNxQlg2RmZuNWpMTWVSaE8vK1ZXL0FTUlV4QmtzN3hBT3plOE8xbExyUWFPOWJubm1VL3ZTTWYxU0Ryd09SVkh4REdRSHZPWnkvMVNicytIemNteVVoQ21yS3IyMTB3UXE4TXd2eVRTQlUzbjk0SFBaNDBvbGVYdW5WRmFQSDRqZUlnR3dPMFc3V1RsYkdXcEdiNDhlOHNQcWl3MnpGNkp6Y0dXRERjK1R0SmR4dnZmMXE2cG9BQzd2Z0k4dUdOS05IejZ2ZFVSMUZYeTZOckRtSDN0Q3pMa3c2YVVuTDF4SzZEUGo0Z05ibUpwdUlsTU15emZPVEtDaHZ3dERwRzZzUTVwSi9naGVhcTIyU005VXBIay9JWDd4WUJYQWhxT0lGM0FsVEJ5MzlvQ0k4VW1odmoyazhNcHNzdDVmdnF0aXhDcWRUaHpZdW43dDVWR2tsMWR5WW5uTFZFbDY1ajRGcTR1ZU4zMCtBNEhCZkcycTdMV2s3WDBDbTI0VjdIZ2VSakxqNDBGM0NzMjZ1aS9Rc0FxMzl5M1NZVTVaaVM4K0VBMG11K2VaN3gyQ2VUUW82MXJadWVoZmNOVE1yNmJWbmx4bmFRc25FSDdIVS9oUWMra1dRWktzZERMbWZKRHZjOFhkVGdCcUg2SVMrUUorQjJZblZ3NXB5R09nOXNRT0ZjMmhFV1p3c0Y3RjhIVkxTa1J2S3BIcHNwZnIwQ1V4MWx2YnE5TitFaEZqbmZacTE1a0EyUlNWWXp4MTV3eU15WnBOLytTV2FzeSt5WTl2aXY1SWIzMkNRc0RVTDYrNWFaZlR6WmxsLzdzbWI3dVFKdjNzUXhPVGFzZnBoVGx0WDlXS1h5Tk55SXFpdTA2c0xQUVYyb091aHhHMmIzVzlVMGFQa3dETWQ1VXMwSTFtc1FEQWlDOUhQeUgrZ242eEtCS2hCU0NDMHM5ZFpkZDFYZlRqblkwdmhuQ2lka2wzK2lrSmEwZDd2eUdaUDVhazJTclliWkVuTXJYL2lQSFhtdEpZSGtKTGtiQXdNT2dGK2Vwcjgzbjl4cFloakNSZ0tsTWxBR0VnazRDS0Vvb3ZGQVM3RlMrU1BwWWo3NkQva1lKNDVWZjlsM0xnTTVMK3pQWlRubnJ5R2RoNlRUR1V3a2FySyt6RlNJOFZSUjdBQWZBN3gvS2NsTVhlcCt2QnRnWk4rZEMrNTBiZVF5Sms2UkNIeUtpa3JQSktvNUxqbGl6eHRLVkJGOUZBWUZHaFhMd2JVR0Z6SVhHcG5jNEdxeXJQNHRtSHJ5TTJHZENvVjl4VXc4dVVuaU1TMHFtd2NwNnVTbUswUUp0c2JIMTdnUTRrcDB6NGlVSVZLTmx3QmFyS29ZMCt1UXBDY3BsamNBRFQydzM1c3phcDVod0FZMlJkT2Zpb1kyTlY2ZG1ZaUk3UzlWSXY5bVc3WTYyaDBsbUduOXVOeGV6eXRRNXhpcGh6WldsVDY2TkRZNm5hd2l1ZjI1b090dEJDS0xsOURzVmE1UHpEVUwxWWFQeEZBbmxackVzdDNXZHA0aitjVUUxYzd6ZUZLWVpuYnl0aXVSN08xN0QxVURpaXJtSkQ2ZmFEVndOMHEwV2VoQWZOUnJHemFNN0lxVTh3UkE5NXoyNzVqRUFURS9WZGJJMERkQk51WnFwblRrdmZiZ2srbTVtOTJVRTEzUlBGQ3FUb3I4UWJkMGRNUFQxOXE2ajBadDVBTnoreTUxVTA3T3BOUDcycStEQUdDYWJndlVTVEFnR2xHS2pqc2tFTURWeVd5N2RlNDZXT1luOXdXZkIzTm1lcUxncXBoL1puZkt4OEV5cVdIQXpuQWwxQmcxaHA0ejYxaUFRRHRmSXZDWC9vQ00zM0ttUllVTTBMUFI0V3VOWlVjaVRUYUZRTnFDTDBPWHFtSTFMVDNpaFJSV1k0U1FqYnBCSVJudktkazdaZzVBdUVOanp6ZnlSWVpwNGFHclRWV2hubVJOKytSQXBtZVdXQXQzNUxzamd0RHhaakhweGRFL29hSTdXZjh2NVFjVk9CZ2pIM1lPRUttOXZGb00xQ1ArWXRQL0QrdlkvK2xFR0h6eUl6RGs3azNkOS9DMXZrL0NaTGJ5a0FjTkVnVmdJQVJBa1F0M2ZNUGMyZ2FqVzM4dFZLTnpGK2dSc0IvMXFSZHVqdFhKV0hNd0tES1BXWlZRUWFqejZZVkJLQ2RicXc3WlFqLytNc0N4SmJMZ3FUODRIdTNleFZZQjRpc1B2THZ6SWZzODU3QU5oZUQ1ek5ibnJkSGZ6OGtmMFpteEcrZTFERjN1bHNPd1B1cW02TmMyTExaNVZkbFlJZVR4aXNxaURnUnc2NzI3c2c4ZlNmVHJGbitJM1A3NTk1TXZyL0ZibkNQT2NoTmxkdW4yVVJic0pxckpOKzFUVzQ4Vk5pc3B0T3B1R25FNVNXWEoxdWZkdFZ0T1RJNklUWDg1SnFJSWpwQkVHcnVrdDMrM0FQb01abHY0c0x3c1U3WDVicEFnSFVic0VJVVhQY2pTZS9SVGhDaS9MQW9vMFppRytTT3VUVVlDb3VMRXVGc25pcUpLeXpQNHhzL3JRRGJiREp1bm92SmlKVFN3Z3V6bnh0bzlWdFFiKzlsRUJqdDNwUHZmczY1MnVQVlNOejF2QXJIOG1DU1NVckMzRTdkdVhMamJDZ3ZnK2lXdlc2QUVIMWtzSWdYOXN4cGFBUk0xL0tPcTF0U1R6dGNtcjdRYjhicnRBMkhrdS82Sjh6VWdqZEJXNDZwOHZhTHNRT1RZN2V1ODljK1MySnZHRTJ5c0NHbk9QdGZEemQ5RUdWZDFwSUN5Q1JPSS9BVXFJZnJVWWdEWHdMR0o3Sk5OZHlBRlZkZHk1ODVYckdrcno4UnhpanQralM0NjNuUForY001ajkvbkFLZDB2N2NKdWd5NEFrb29RVFpIZjE0UnpicFg1KzU2b01rK1QraXZLTDJ1aytiUXhWbE1pQ0RBU2JMelVDZXU2SjNUNnlTSTRmbVdIQWJjTHUvZ0ovdjZKTHZFcHJrTi8yRVNaWFZ6TnkzVmRvVDNUWHo2YmFNcHZYVmVjS1k0ZHhZVjB2RmRJVzhSdTd5S1ZISUdPT0FFZ2w4bHNPcHgvK3FmZVB0QVVTOFloU1ZWNFhRaStPWURxNGthR1FxR05LQUlpa1QwY1Z1Nk1hbGlFRi92eDZzeEVDZG05RHVlaHlicHp5R0hLWFQxbEZrNWRxbzltWUE0dVkwYmR2ZVoxOTJCWlNONDNnaHhuRWtreTFIcEZzK2I5WnBseHl3UlVRZzhubkE1OGh5K1hGRWhBQ3NRbW9ycm5Ic3pHUVJHQnBoRHdtUm9ZVEIzVittdmRzRGJOMXRiQUY5aDJiNmJOSUZsRXZwWExzdkFtUU9ybFVXc2R5SmZmczBTUFJnZkdZdXNwSzJFeGxWdXJYRUlnaFBpc3EyVnVDUzM4R1ZmZFBLbXhCSmg3ZHJkNXlpdXpwdGVHMU9UYzRabWxkZVk3Q2Vhbm4vbW04VHNERzZDWDVWUlVVL3NQKzFXT3hyQm1iMWV1cDlBcFVhQzJ3Y3pHNjVVUmMzNHNGTlJHOTgxRGQ2RndhMit0SDZNWnI1RjcxeVM4QmJFOWFXdjlLWjkzZ3FoNnRIUHFOcEI3K1h3WW5WTzNQZjBvZnhYRmJ4N3RSaURsNkIxb2xCRjgvY2lUMHZaK1Fpc25WQnRhTHpFclF5RXRoT1dvSUpwdEo2QnV4THJwZ2IvS0NKdlR2RkpOK2xNZXE5UW9RSjNuYm41RjdhTmZlWk83RzdTUzdkbkVYM1RvUFBsWVZYM1laZ1pYL2FJbzVlbFlpNzFDUEhMTUVlRmNRNG9wUVhYbDI2emZPSWluK3BTSUgyeFdZeVFta01FSGEwSE0yaXNoY1VLNk01U2lROWkrdUZBQXl3b1gzTmcrNVlvTjNaSStVNnNiQmUvMXd4OHNQNVhsZ0Nna1MwMjEyWmtRMHJVSWhSa0t6OUhxM0Y1TXBpSEw5T1JJeGp2SGdoSEljVUpjN2VhQk1pTUVZL3FreEMzUG1od0t5VUNGWDBvRUhkMWVJZmR6Z2EzZURWMkliK2NNaVM1dFk5VzRuaWpGSUhrcDlkYnVPaWhnYnJtNlZCOFZvS2Y4bUJSenEwekw5aGQwc1dCdGwydHRZa2J2UDFBUW5DcXRZd01VbE5tWkpSRm8wMEZtVklHQ0UxUEc0R1FOM3NUbXJBdWpQNTBjM0djL0VQQTFTeitQVktnQWFkQnU0VFdEQW42TnlDc1BVSVVCZUpVQWdBQ0VRcXoxcUpSeEFVNU1sQklSSmdia0h5M0h0aVA0ZDdKdEhiMlZzWENGQUpJRlluYmhtZHphUHlwOXpoNk92bTJhNU1Id29vdWprUXNCQmxBZlQ4OUozRUpsNFNEcVQzSUVFdElUQXFxR0Fnc3ErNVJ3YlV0SXVRcjFxMjVhUC9jbldUZTl0azVkYzEweVdja3o4OERPSW9hQUR1S09iZUxJLy9kYzBxM0JOQlVIcjBhbjVDZlRMNUVrZnZOeTltUlJqc09PcnJacEdRY0lGTTdwaUdxSm01S1dicWpIMnVIUWlBQUpYNUJ4bVN2SllZeWE0THkrcFhIRFpXUitVVCthdW41aUh0SWpMTjFqM1h6anRRWVVYdWtFaThRS0o3QW9xc3VYZUtvNkt3MWtpZGthaWNIQlZ5VXNpTVoxdm9DTzRvRzFXRkVadmlDUHpqUGdXM3kvbmFaRTEzOTk1MnV6bnBOQ0lBOWVmM21rZGtlQ0lvMTg3d01mZSt2SlpRbzlSRGdNdWtqaWlPQTdtUXdRUnFCWnhYTlBVQ0VieGhYcEVidWZVQWVNa0F5TmN5bFRQNHEwY2lqQ2l3Yng5UU1paTNuclhXSk9CQXVIaEdLb2UybmN1aWFBTVFTSUJrckNDUUNRaEFGdG9Hb3ZKaEJjcjJneVhMajQ0TWUrTjhEQXVCY2phQk9CNmlrMmtHV2lqVlA0dklqN1hnN3A3QjE5dW9LRVNkU2JKSk9qWFNMbmNzQzVEZEZId01UWnpXNDJFaXh4Q25pR2hCOWUxTVI0cDZiWGNWV1BtZHBCR0gra0VYa2RLKzhKZTkxdHNUVVBXSzF6Zk9ya3pldHZ4UUJYaUcyelc5RVIxdkZ5RDhLeVZGVDk5ZFNZRWlqS0pWRVF2emxxNG9DZkF1Y1NQUkZIbTkwN251bFJ0NHlmRVlqRkVvSG9FbGlsL21VQTh6YWh3NHZtR1h6YzNrR3FMdjBRZFMyTWFnUUJwYjNBQVhYTEEwdUJQNHRlWHlNZ2p5ODJ1WU5IVDFmeDJpcEc5cWNPTGR0UmhtSDA4RW5OY3AvWi9MdC9mcjN6YWIyWk9Mc2VRTGFld0Z2eU8vWFl5eStWMUN4L2tlMmNkTmJ5WlhrMXl1M0xlRjgwaWthQjFzeEtFZTM3bGY0b3d5alpmcnJwUm83SnRUVnc5QTYxeHBvb0hwNFFyL0c4K2Zad1NzbTBtWU5FOFlKVXF3Q21mRHEycTA1MnZDTHFJM1Q2M2xzblc4RUxiL1NhcVo5Uzh2QXFQZnRGdTFWYURyKzV5QVppQ0pRQWRNQk95Tkh4cXlNeUtaTUNJQ0pJTllNRUx6a3hhNjV5TVZXQ0htMU91dURQdzg5UEVHRGFYeUNYc3oreS8vbmxFRjRGQW5hTS9MaXh2TVFVbDdna2JtUDQ2Z09wSkNjUmszTWdzMHN1UHBwdGxURXVjRlhBRGdFVFBpTVk2eFNEdFdUTXpQUmRSTWYwdTFlK3h2NFNhV0l2all1bHJIWFh1VFczZ3I0aEZzZ1hjdUQvZmYrT1ZpdWZxWkpxTTNhUWd0Sy83N2psSnJ0cnNMTk5mRXhXMnZSc2pHNTRKSDBhbzVtVkdnZ1JNaWVuN2dpcXlXVjlUeFV2dms4TUxJWEVLeWNlZUxNTUUwTm02U3BHMEora2ZBL3hFZHV4dkRMaGRqUDhweGNHQXJPUWU4KzB1V3EyTGk0UmRvVXk4Uk5aVkp1d2kyZlhiK1RxRzIrcFZNMlR3Q3Y5ZU5Nd0hENHJDNmJnUTdhSU9OUlhXOUlLQ3dBSEd5N0ZqWWx6Q3lPUUhGdGliRitZUitRMUY3cmN3SmtKYjBPNFhMTTF4VGhEcUJLZzFVRVd2YkVLYUZvYWdCNFZ6Zm5ZSnJtcmNUSW8zSUk3QnRTaHNCckRFMlNFMHBMS0MzSXZBUno2a0R2eWlNTmRuV0szemFqcG1XaU5vT0g1RFpQVHRiYy9uaEdnK0hIRTF2cGdqL1lpcEJaRi9NV1pteGZpNWozQ1ozSDhlenlmWnpZQWVsOUZEVnhNTWtZN3VmTWhsam40U0RCUnNXeEwzRSs4QzhpVDErVkR3VzZGQUkzQW5IL3prWDRLeUhtQlBQZ3FRTnJCMXJYaW1yUmcyRTVpVzJFU1dRQUR3bmJKMDZ0ZnNUWjdhSFRxK3NKV0pSOVlIeUlxb3owR2ZmTDliTE15RmtaTTFTVEFTQW9jMDJMVFdiN0VISFQxNjBRS0NOMUxaa0hRNWtLSDNvSUlob0l0WnQxMDRsRXJlWldyMlQ0SmZKbjV4cXhwVGF4UTI2YUNCSFpuV3NlYjNneVgyNFk4ZWtoMk1TWU9yY0xPazZDZXMyMklNeS8vZjhZc1lsV2ZoNDlmVjRZdjcrcW8xT3Fra1FvM3BMeUVCUk9iMXVJeW40T2l0UGFjcCt0S2pPdzF2TWlqZlRNcmlBTEZyamtaM0FCTFVUSWJzOUE2Q1BkcXZCSXNQdFhVcnlXb2tHay9mSWwxazR3SmhTM0g0Z3lrYmxHVTIzc0g1SW4ydWRJaTY4djJZOUFGbEhua2IxSUdJR0pxc2prRTNtS0haTncvcHNrUnpzTEdVeU1kNmRqbTFDTVk0YWFIRCtDZ2cwT05TRmR2aGhJSlhuVVdVejd4clhVUVN3MWxPQmNIRzlhaWtIbTRGREU1MlVDakEyd0V3STNNem0zb3J0Y2htd25qcFQ0M1BIRVpuQk1taHJDWTUreStiTVdPK2tHNnZMck5iYlpIaFBKay9ZTUhtTXYyZm5nL3c1c2RFOE1rRHNkM3h2V3pDd0RJdHRpK1dVU2k1U1VDZDlBcTB3Z2IwaDhSRW56Z240MTBvMWRKU3FBaWMreTM0KzJub3E1TmVWUkR4cHgzbzVEbExKVWEwVXpBejJyOGQxVWt0TCs4YlZSQ3pERDZ0dklsSWtDc3FLMUNpZUdWdENpcUtHbFJieUF5d0RaemVpTDF1NzI1Nmwrb0hCd1lUSTZyb1NBTlBRRENRRVUzTkozNGdPaEFCL0lLTmJLZHFtdjFhRXY4aUJLMGQ3UGhQWUl3KytjaHRia0x0MDNoZ3kvcnZyZzdKOFBTL0krSnJkUmg4Qmk1Q3lpRDl5OFdOMmtFbDlTWGtrbUZQYk5TWm8wOUs0LzJGa3BueXRoZ2pDYzgvZU9KNVZ4YUJZcHZnK3ZUM1hlY1l3MXVrblI2Z0g3SXFNMUM1Vzg5MmRkMDljajNTZEkyN3hEekhZTmZyVVBDM0xlQzhYUDJZbC82a3ZVZDllejVsclAveUQxcTBvRjROM3czamt1VytTa2hCRnJhZWRCdkxwRUx1WFVYdE96TUZvYWtEQmlWK25mRXUvY2J0UmsvMDltbHhla2YrT2w5OVVFR0FkQVFzbnVIdFlTS0tjS1JodzR3Q1RVeHlnUzJOc0FqU1dra1FjNTc1bmZ3eWlwS0dockFDbmdydGN2eWg5a05vOUFCOTl2UFBka3dVOU5xV2xDWmRsMkZybEVBQnM3NnNQY2lQOFhSd0dBd3BxaTh3eUhDeE1vVGxqeVN6dDlwUExvNEU3dWRWa2VPT2JUTUJXMlJuV1RjUFVCY09IZHg0OGh4R2IyaU9QbTVwOURBUmF3REVaN1pzZWcwYkN3V2FraWZpcC9Na3NnbENMRE5KN2lKbWYwL1N1QTFUQmRmZmQ0ZC9tNVJNY3U5N05sOENWQkZLMkZwOExVVDBzNmhmckpRSFdhaWVZZmlXMkUrVGxCWWdwbGgzUmhvRHFwV05RL0tlSGlla3BsRGdMQ2dCYzJyUEpTbXVsMFZrUjB5YStQOEU4Z3cyalBDK1k4OHgxYlpoQ1dZWWExTnQxV0E1eExZMitLRnB2b1VIYXRXeDZPT1lZaTgwUkluSWNKQmVtaDVMc3g3NzFScFJzbzJTT0Vpa0xjcC90cnA2UmUyUXN5dHl3cVBYbzQrMkQzVDlTU3NvbFVxUlVHZmphYm9lRkZCVFdSSDVpUnVleG1RRGxzWit1Uk92KzhVL0l4R0VzWHhyLzlXTTRVSmxkamRsMEdCM0lYSXBkeFdJei9uS1pMNjl1V1Bkdjc4ZE80WnduVDkyNDN3cEQ2Sm5ueWZVSllMQ3hERmNCKzJncm5hVTJqWVdLbEZKYlRFTEtLcnBqSCs0UUt3Nk9naWhiTEpMSmhOVllPMVhjcXBWL1VKU3JTblN2U2pHVXF4UkhWYWhmUzhOMEFXUURMUXdjUVh5RmdYYTdwalhuNU5nMWRNaGMvN0k3UGhhNUZKWEJ6aDUrVmJ6UGlrRzFDdW5maHQrNk15SGtwSEtnN2ticTczclNFd3djN3h4Y2I2S3NHTnh4THhyLzNUdlhLaE9vK2Y2ckkybWNpa0xEZmRGczFNUFJYNVRDY1V1UmtVbjlyUFhyejloR1A3MCtxZ1ZEcmc4aUNGL0VacVFjcEMrRy9Xejk1Nk9tVE0yT1Q1MDFxdWpUTXgzWnNkWVpYbDJLR0VQL3VoUkFrSXlsT0pZQ09SVVNsOSs1VVg2TXcvQzlPb0NwNTk4RDRIZi9Hc3RneTBpZVFVMmV0WnBuNXRQdit2RVcwY1E4aFFjTGNId1hrZG16NFo4NlB5aGphTFpUMjJRbHk0Z0U3M3BVNVcxdFZxUFBjZnlld0h6Mm8vZnRtckt2YUNGb2VpK3BkazQwbHNxb1ZhZW5kZURTamplOVNoblVvcUdJZ1NQUUxQdXdUZ1doR1pYQVJZeDBPZ0h4TmkwOHlmVzQ0UkNtL3VUd1FMaDI3MGJtYWxQZXZLTzYwM2ZGcG0vcHViV0tBMEViYU9aOHBtRkNZOUFYNmZKenlNOGFuQnFqbkhkUVBIcm9VWndwMlhNRFM0L3NLVHZtRzVqODJRa08rcW9Ed1NpTElNUk11MVVQaWpyejQvR3hOb3FOMXNzcUZ3NW1FcWVKUXR2T2VQdk04SlhVSDVhK0xIdGg1TEVtK1dXdzF5a2lSakxiYUFjbTV4SmQ4bThjYXM2aVZTWjZCRnZNcXQ3MUlrSU80a0tDWGNmdURyWUtMUnRsckh0SWJEbjg5VWFPSXloVEZTV05DYjVTRUZ4U2ZvV3hmc2Z2NnM2dnd6bk9zb2dvUmIyZUJLWlV2YlR4T2J0dHV0YXlKYzB0bUxlbTh1cE50ZjRSR1B4ZTVKd3plVjU3dmFubTFWWmZQLzBZUG9NYnV1VHRHamQ4ckFtME1FT291SWtuTFIvY243VlV2TVU2ek83SVh4eWtiM1ZRS3ZmYklGeHpPY2c1elF0eldiUlc5U1VqNWpMK1FkbjNBT0plVzZqeSt5QW55cjdNMmEyYkdTdERSNjZsbU1PU09aNVgvdTNrQXYxbStHbHIwOFlKWWdRcDlVWWlQeUJPb2lrVGx1MGpTMEgrUDAwc1diVmE0YngzcGdXQ3lCYVFJbnl3REVZMWNtZVM2ZVVueW1sM09yYlRUYmh0NnBNWmlLUE84WTczOVNwYlRBd21wYnFTVXQ1b1ZvTDVNKzR4NHMxWS9HUjI3SEpmSjIxWDMvMXBMbkRqeUo2MWxGTTFmdzlxUEFwUXVxRzRHZjU3aDc5NTRXTFpRemJuMGdFZWdjdmYvTWZIb29TeUwrTHMzeFBEN3BNdmpQbFBscEJQRXVzRlAwd1g3bW9ZUUVIazRSTE1EaWU4YTdROGF6cGhyRmQwbG93WithUkFOOFZHbStpbmpFcFo5MGYxczgvVVpDOGFEQjZzdnlmOVdTNk5GMTd4RWhJcDhlT1MvSW5mUXM3dE5pT3pwMmY4dmU0MWxpN0VMTGhFR2NkaHZEMzJ5aGJpZ2N0SDZ5MWpjWVFpSDV0aUdEaHF5aHNLT0RibmF0WEJQdGVDVEw4MjJ6VnhxUVdiSXN2MUpFUVNSSzZ0akh5S2VGeGUxR3EwUTZZMFBoYXl6THdJOWxYSURuVDM4K2ROL3pKS05vR0Y3dFNzb0lwWFV0MzRrbXBCMDdBR3o2cG9ydFJydWU2b3cvbHpvVXNyckZtQmc2dXZmTWhBVkpYUUxlTFljY1dwZzIrKzVwQk5wbHRkWEEvZ3lvb05sWDlRWk54UDBqSm9hdlRWek5iMzVoM2hWSUNSdStOdWZ3RHo5aUhlK2EvdnZjNjYxYVcyU0J3ekwzLzNwZmMvQWFZclNzeXNlRkhLWDlBbzJIUTg1TUZHTmZzZjUrMXVZekpheVJGZzE5aDlocmxZbGxlczJMbklLMEFWZE5vbzN3eDZlNDl2d0ROVzg3WFhyOC9zZTB0NjBybGpYcjhyZ1J3dlBmTitna3EyK2ZRTkFLYjRrNnlHbHNSWkZmL1h1NWV0dldya1U1U0IweFJhRzRTMFMrTGpCd2dMUE5ZNTIrZENiRHd4WUlhZE1RRmdNNllxTzMxTFFoYXFpekEwTzlNYk16bFJYZVkzOGQ5MDFTVzE1N2Z4em0yT1NnNXVNM0ZwWVRzSU9wQjQvVVVKTmJ2c2FQKzdQcVZsWklXM0xrVHBrM3h2N29xUG02blN6RXh3VWtBMHlydzdJSVhwR3pSTzdMMloxRXRVaG04L21HRkNKUzg5cWdhLy9uZTBtSEVrNGNyclltcE8yZW4rMTJzVUZ0Z3hiMU54Z0ZtazJYdHl2K3QzSXV2QjVmRk1lbUFlTUwvaklnQ1p5V29RNzhidUh4ZU9FQmtZajRQS2VjRHJVTFMvRzRvemxIYnJYLzZkWUgvSXo0elF0dE5iek9JakVxb3dBQVVhRVdQTHV3aUF5QmoyOUdSY0xHWVdtc1Q0L2FlanpQalc5aThKT3N0bWJsVVVJMjBZN3ZuUzhVZWdYZFFCbStxNGVhV3FOdG9zRmd3N0grcFh5Y2hEejhYMStOazYzZnA2RVFFRGVPWVZNTkxnMnNSRE50bmE5c3doWHQwVjZIT2gyY3pjVnJSemUrUzBhcU9UR21rNERxZGhrSmpyN1MrYVpvZXJMNmFZQ1Zha2s2eFFzdzJwTk1kWUthbWJJSW5jUHFpNDFJalZkQkZwWTdZVXI2QWV3Qzc5MVpTM2lFb2lidzh1enN1MWZBZUVQVlZReEEwNzZMOXVxRjBGRjNtS2F1ZXllU1llT1lxci9VQ1hoMm16dUUwcG9JWkIrUlhIRFYweWNVakhkQ0s0N1M2ZVVOUjFqWmd2bmdESnBSdHcwcFVFZjQyUXpHVHlaOU0xaDlKSXJNajRiYzJGdlllbDZualgxTndoNHl2VWhHcm9LR0tyV1RReDlKZXpPWVp5UXRra2IxTVRpaTBtckZuREREbVpOOFRza2RwTk9tSGN1bSt6OHVkZjlNbDhhOWQ2TVZsSFB0VzQ3NDlRYzFNNkJRbjAySXhsL2lVTWJSbnc0cXNSOWpRU1BuQnZKK2J2aTdvUk1EQkFaUkFTSnFMWnFhd3RrYnhVUHI5aXRuZXU5MlNRRmxZRlVvWCtaUDZQRVphUzFkc0JRQVJBTTZkRkRjbWhVUXVaL1lwbm1naUFqM1JVdEJOa1FoQ3l3VzV0V05LVXllYVVqTXVOcDA3ZWZXRkhsdDQyT0luZnRyTU5NWStlMGlaOU5pWGE4NVZpcmR3a093Z3NtdXRMbkJzQWgyeEhUa3BmM0FaUnREUkRHQjhFR1l3dGtWWXBMLzQxbERhY0UxY01OVVJtOG9nN1o1dEQ5L1F4T25SeUZ2THY1Z1ZZYWZianBwYWhMWGtad1pXVVQ4NWhtWmpETDk3UmptTnVjME43cG9NdGQzYkM4Y1grVWZBeWlHeStjcGxISzdkR1RyU2hzaFpOeDJNZEhnNjgzdWUxWXB6TnVhSTYyWjdnOExhWWtXZVZzNm1mcVNtUVZUOCs1NFNYYkY4cWdmaGtkVk95ZDlrZm40YXp6c3V5aFk0N0NOZ3hjTzlNM2dRTXRySGZacTJWcjNZSXNLQTByRjRETHQ4R1ZRbGJKTkZucmkrYU9acXdWM3lmRlEvL1VUNHMrUC9kMElrcThPZkFwLzBtb1NLMmNKdmF5VzNKcFpGVEN4TDcrR2UxUEFldDVBV2dESXB2dWJDcC8zS0ZCNnpNUkl4VHJEZ2lyWlpwSjZjUWdlb1daNzVMNjMwYTVlTDJYcmlLMDdFRmtnNHlkbTM0UDZmQy9xbWRmOVpRS2c2UHRWNzZld3drN2MvYld2THF3U2RkbnBFN1N5TitkSHlaSUN3cGF0MVU0TG1oMGZqL2Q4TGM1eVpYT2JyNHZ1T0FjaXIvUFBpUjBtRWZEcXF1WWordHJLVjhWaStRdEdmUHpJaktTY21SbW5rSnR6clFwRE9CeTc4enVvb3cxdTYvd0ZZWSthbWlQNWdxVHhYVC91b3IvcDFYZ1hFdWo1WXpNN3hwODJLMlBzMEc2TndRd01CRURxeEIwUU9ncUUrZzhCNFVNUUFiRXpTMkJ3Q2crb3ZmYUE4d0RSSTVIV0NqZklSUHBlUW1tZ2I0V1VUZUM5Z29LUHh1N3hIM29OYnFCZ1VGbzNZZ1lvLzlrY0FvWWJTVmhJMkN3anNvQWtOc0c3aGxFZmtIWUtPZzhOKzhSL3dPdlB4Ri9ocFFGaVJ1Zm9CTmdCSVh4Q1pCS1FzeHBBS285eDQvQzB6T0l1NDN3Q1pBaVgrQUpEQURpcnNBbXdBbFhvUWtJUUMwc2FPVndMaFFDdEhpb0NPTHVBNnhDVkJpc0VrZ0ZmUUdpZnZvdnlBSlF3Q1VPTXhmMGs4Rk5nU0plMGUwaWU4QmN4ZEFOeWd4ZHJjb0FDU0JPSkNLSkJ0YzVkZm94N1hkVndnT0d6b3F4NzBjZVJMZDVJc0IrY2RaZnRGN3M1eVd0bHR6THR4S2E4Rm04eVMvbHRPbStMdnB2VUFWaCtWYUcwVGNxeWEzTkxCV1hEQVdKMkhqSEdQdjQxSmFHcWlDcjVZajk2N3ZRVnRGM3BZZThZZFhTNzhyclpDQml0SkpTVUxsZ3F4dzFIQm5tak5Qb2lJNHdaWHUzbnpyTGwwa2VoSFFDR2lUajNsTitwSjF2VFFPdENiZERiZXNCRi93ZVp1akFEWG5pd0JyUTE3V3ZxeWwrWDc1RENZcHJ3aXd3c3JMU2k5ckljNldqcm5mTTJ1K0doODdpN0tTempSM2kwQnJUMTdXbWF5dCtjWEptN21VS0xPblVMU081bVZkemJxeHZoSzZpLy9YTzRwNFNFLy80ZlEzdElzdDhpM0RPNTExQ01qMmxWVmNRck56OTRvdzBwYTl6c3JML3RtdENBQUJGTERwKzcyQjZhTjgveVpoMkN1QWQ5NThQd0hBaHgvWFYvaDd6bnR3QzI0RU1CQUtJTUEvTWw3Y0grVi8yVzVqcThOM25GMHF1VHV5YjJRZkx2SEFvQm9KUkhaTFJVK2VOdE1LSHdsVHhLUkJKK2Z5Y21vb2p0OUNZekdTZCsvdEUvVWI1VUtXWFNKZXZNaXB1bU9OcWdBL0M1WjdZSWp2a3BRZVEvcW1mT1pmdlJkYU9tdDlUelRnbGQ0NHRFdmFSZ1B1L1hEMzhVUkhBWDU5TTM0QTdOQVRqZE9hTktuNVhkSFZKMDFUaW1zaDIrVGRLL3NndEkycWQwbk1WRks1L1VuZFV0a2IyWDJTM2d2Qm5iVzRKMW90dy9PM2I4Vm9JS0Vmcm84Q0F2b21lQUJzMHhQeDAwcWMxS0t1U09xVGhDbkZ0NUJwNU4wRCt5QzRqV3AyaVc0cXRZMUs3NWJJV2NqdnVXd3Z6T3lzMVQweG96Y3U4V3VkR3cwSSsrSCtLTUNtM1NMTHJCc25wSjNxeXBiekxCM2NiQm1sVmtjM0tJQlFJdFE5NnJzazFmN3R3L0xuYjJ3bGd0NGRndWkzbU1sMjVxZ0NIRjZtZE1nSFQ1K1YrQnBJQnE2WFY0SDhZci8yZkM0RnE2eEN5Y01JdnVod01LVjRuc1YyRng5Mzc4Tzhkam50VkZxNjZtYUx6aUFqaWRibnIrbWtGdnVWT1g4ZEt4RnZnNHpsS091b2FXV3Fxb0ZIOVNaVW9McFlrUVdycUVKaHdlWU9CNVBHdnFISThSSFZNbW50TktscWRjMFdrMEZDRWxsbE0zYlNSUHNsT1gvbWxZaTBRZkJrYWpxcXNreWxOZUJYTDZjQzJjVXFLMWd0TXBtMXB3MEhpNHZuMWV2YWNkRVhPWnNmalZVOWRFNW81L05uekZxYWJWblkxMUZ6SHZTaEZnc3doR1pVWXpjYTdVdXBQY2ZRME5jY3VaVVRPbGc2L3h5N0dXdXlYMnlDQXdYWlpMOEYySjFPaWh4WXRDakJydEJFU0xueTc2TGdhaXhrYlk3M3RxbTJCbkg0SXJMcUVLY3M4NHd3d3pPL3UxeWdzMmVicWVSM3lEUm15OHo0bXFGeHgrM3NwUkY3WjFSZ2dTSDd1R3BiY0xnYjB5ZGdWcDVnclJsVHhBT1krVWtqVWxBNi80eGN2dzI5T2w5V3QyNWVGYVJMa0dIUEhkVWlZMHJHMWx0ZHMrbU5XbDFtWFpldFdiaFlrSUpIY3J4a2t4TDlZYlFFL0ZPUWdjWkdCUjR6dmkzSUxYZ0pyK0k2WElQbk9oNlN6SVFXY01JOStWYURJQzh6SEZ3ZW01MGhaN2RyNGhBdEJxZTByblM5b2FiQUlEMHlBSzcxb05ZVlFYT2xLNHJ1ZUZlTVhFZFh5RkpOVjV4QWloQjZVOTJGVG9rV0lPQ1VBdFFJdDQ1L1J4bm01U3RRVlNhV1hjYWJhMVFwVzhYa3UyZGxxcXJxV0pWUm5LTzBqZnhaY1RpakVEcVphdVNtNGlwalJNbVZyMXF4c2dweGUxRFJ2MTFxSWlINUo2bXN1TzJ1SWJ3bWg4K094RkZxcUR3NzdyWjYyM0dwVTZwTXZRcXRUVEZyR1RmS0ltS2FKUGVPcUlpNHlrb1YxZVhzWEtQYW9xYitxTlRFd2E1UjVaYm5LeVJtMWJJVTJSZHBTYk9SbzNSdGl1WEtNNkpwNTZ1cjdQTzdyaHloQ3ZXNnU4bFZzcXYzbmRPWlVIQktsaTJ5YmJXUUxUczU3TDNtSU5kcFo1M2p5TW1ST25QQnJtaWJ6TCtJOVBNOCtCVkp5cUNEcCtMdzlQNDdkM1A2V3lBV2tlci9QMFRlZlBoNlM0MFNVbW5EdEd6SDlmeDZvOWxxZDdxOS9tQTRHayttcy9saXVWcHZ0cnY5NFhnNlg2NjMrK1A1ZW4rK2NQUUtUVkNzeUVRbGVoZ1lsZkwzUm9DeXQ1K1VjMXNjMzFTbFJxMXFlSXRGbm43VStVWDFHazNTb05ka21VZjdnSEh4VnB6WjRpV1lva216cVlBWThjamZ5YitZR2dwSG9yRjRJcGxLWjdLNWZLRllvcmY4V0VhejFlNTBlLzNCY0RTZVRHZnp4WEsxM214Mys4UHhkTDVjYi9mSDY5dTdsYXZZeUFGdElJQ1BINHA2Zkg0NThPWDd4MWY5L2Z0dlNDTVQ0eDB6a3hWVG0wRDlDSmpFK3VBb3JMRm9wY2t3amhvVnpVNDdNSnFVeVRiWTZKRERUakJrRkIySFpVcW1wa21yLzR1SnB1dEc5NjlSZXdpSjJPZzBJTE5tcEV3alFUYkxESFBOTVUrTGRLOW9hbG5ycG0vR1ptN1dabS9PNW03ZTJqWi9DN1pRbXdkdW1VL25qdnR1MTc2T3IwYlExQlc1TmJsUWJVdXJDTlRsSzJVUjZDb0dpOE1UaUNReWhVcWpNNWdzTm9mTDR3dUVJbkdKR2pvOUFBQUFBQURBRWx3ZlhxWFdhSFY2ZzlGa3RsaHRkb2VybTd1SHA1ZTNqNjlmK2QrV0FBQUFBQUFBaWFZTWpMQyt5TVBMVmVtRmZsQ010WlJnM3RCVnhOZGVLRnV0bHluUFVUU1g1ejVmU1Q3MlhFcldxZ0lhMTJveTdWWko3YWNhVFdOcVRibko5YVpyOUpUS0hxc0xLMHJMQ25LN2VwUU5ZMFB1NVpPRCthZlZqVzJ6aEZ0Q29IQXRJVmlFVlJQSExTM3pKQS8zekpxZXFDU0xYRFdSMTlMbU9SWG5wRWJYS0dtejNLOWZMYWRQVFRaNzg5TXlOV1V2ZVRLTWlqVGw5TDA4N2NQZmdEQ0QxaDVWNUt4dTk3SjcvbTA2VkJzQUFBPT0pIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQo8L3N0eWxlPgo8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ0cmFuc3BhcmVudCI+PC9yZWN0Pgo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDU0MCA1NDApIiBpZD0iMmE3MGY4YTUtNjVkMC00MjdkLWIzMzItODNhOGNmODE4YTc5IiAgPgo8L2c+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgNTQwIDU0MCkiIGlkPSI0YTczY2YyMC0zMWEyLTRmZGEtOTZjNS01NjE5YTI1ODg0YzgiICA+CjxyZWN0IHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiBoaWRkZW47IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB4PSItNTQwIiB5PSItNTQwIiByeD0iMCIgcnk9IjAiIHdpZHRoPSIxMDgwIiBoZWlnaHQ9IjEwODAiIC8+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoNy45MSAwIDAgNy45MSA1NDAgNDkzLjY2KSIgID4KPGcgc3R5bGU9IiIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgID4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC0zLjc4IDE1LjIpIiBjbGlwLXBhdGg9InVybCgjQ0xJUFBBVEhfMzEpIiAgPgo8Y2xpcFBhdGggaWQ9IkNMSVBQQVRIXzMxIiA+CiAgICA8cmVjdCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDMuNzcgLTE1LjIpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1MSwyMTksMjA4KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0yOC4yMywgLTQ3LjIpIiBkPSJNIDMwLjczMzYgNjAuODY4OSBMIDE5LjUyMjMgNTQuMzUzNyBMIDI1LjcxNzUgMzMuNTI4MiBMIDM2LjkyODcgNDAuMDQzNCBMIDMwLjczMzYgNjAuODY4OSBaIiBzdHJva2UtbGluZWNhcD0icm91bmQiIC8+CjwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDQuNTMgLTQuNjYpIiBjbGlwLXBhdGg9InVybCgjQ0xJUFBBVEhfMzIpIiAgPgo8Y2xpcFBhdGggaWQ9IkNMSVBQQVRIXzMyIiA+CiAgICA8cmVjdCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC00LjUzIDQuNjYpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1MSwyMTksMjA4KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0zNi41MywgLTI3LjM0KSIgZD0iTSAzNy40NDEyIDMyLjA4MTcgTCAyNi4yMyAyNS41NjY1IEwgMzUuNjExIDIyLjU5MTEgTCA0Ni44MjIyIDI5LjEwNjMgTCAzNy40NDEyIDMyLjA4MTcgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAtMS40OCAtOS40OCkiIGNsaXAtcGF0aD0idXJsKCNDTElQUEFUSF8zMykiICA+CjxjbGlwUGF0aCBpZD0iQ0xJUFBBVEhfMzMiID4KICAgIDxyZWN0IHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMS40OCA5LjQ3KSIgaWQ9ImNsaXAwXzEwNV81MyIgeD0iLTMyIiB5PSItMzIiIHJ4PSIwIiByeT0iMCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiAvPgo8L2NsaXBQYXRoPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDE7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IHJnYigyNTEsMjE5LDIwOCk7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHRyYW5zZm9ybT0iIHRyYW5zbGF0ZSgtMzAuNTIsIC0yMi41MykiIGQ9Ik0gMjguMzg4OSA0Mi4xNTE0IEMgMjguMzQ5IDQyLjE1MTQgMjguMzA5MiA0Mi4xNDA5IDI4LjI3NCA0Mi4xMjA0IEwgMTcuMDYyOCAzNS42MDUyIEMgMTYuOTU5OSAzNS41NDU0IDE2LjkyMDIgMzUuNDE2NCAxNi45NzE3IDM1LjMwODggTCAzMi40NDg1IDMuMDMyMiBDIDMyLjQ3NTkgMi45NzQ4MiAzMi41MjY0IDIuOTMxMyAzMi41ODczIDIuOTEyNTYgQyAzMi42MDkyIDIuOTA1ODYgMzIuNjMyIDIuOTAyNTMgMzIuNjU0NSAyLjkwMjUzIEMgMzIuNjk0NSAyLjkwMjUzIDMyLjczNDIgMi45MTMwMiAzMi43Njk1IDIuOTMzNTQgTCA0My45ODA2IDkuNDQ4NzIgQyA0NC4wODM1IDkuNTA4NTQgNDQuMTIzMiA5LjYzNzU3IDQ0LjA3MTcgOS43NDUxNiBMIDI4LjU5NDkgNDIuMDIxNyBDIDI4LjU2NzQgNDIuMDc5MSAyOC41MTcgNDIuMTIyNiAyOC40NTYxIDQyLjE0MTQgQyAyOC40MzQyIDQyLjE0ODEgMjguNDExNCA0Mi4xNTE0IDI4LjM4ODkgNDIuMTUxNCBaIiBzdHJva2UtbGluZWNhcD0icm91bmQiIC8+CjwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDUuNjEgMy4yNSkiIGNsaXAtcGF0aD0idXJsKCNDTElQUEFUSF8zNCkiICA+CjxjbGlwUGF0aCBpZD0iQ0xJUFBBVEhfMzQiID4KICAgIDxyZWN0IHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgLTUuNjEgLTMuMjYpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0zNy42MSwgLTM1LjI2KSIgZD0iTSAzMC43MzM2IDYxLjA1MSBDIDMwLjcxMSA2MS4wNTEgMzAuNjg4MyA2MS4wNDY3IDMwLjY2NjIgNjEuMDM4IEMgMzAuNTc4NyA2MS4wMDMyIDMwLjUzMjMgNjAuOTA3MiAzMC41NTkgNjAuODE2OCBMIDM2LjY2NTkgNDAuMjg3NiBMIDI4LjQyOCA0Mi4xMDA4IEMgMjguNDE1MSA0Mi4xMDM3IDI4LjQwMTkgNDIuMTA1IDI4LjM4ODkgNDIuMTA1IEMgMjguMzM0IDQyLjEwNSAyOC4yODExIDQyLjA4IDI4LjI0NjMgNDIuMDM2IEMgMjguMjAzIDQxLjk4MTMgMjguMTk0NSA0MS45MDcgMjguMjI0NyA0MS44NDQxIEwgNDMuNzAxNCA5LjU2NzUxIEMgNDMuNzMyNyA5LjUwMjc4IDQzLjc5NzYgOS40NjQxNyA0My44NjU3IDkuNDY0MTcgQyA0My44ODc0IDkuNDY0MTcgNDMuOTA5MyA5LjQ2Nzk3IDQzLjkzMDUgOS40NzYwMSBDIDQ0LjAxODkgOS41MDk3MyA0NC4wNjY5IDkuNjA1NDggNDQuMDQwNyA5LjY5NjU0IEwgMzcuNzA5NyAzMS44MDU3IEwgNDYuNzY3MSAyOC45MzI3IEMgNDYuNzg1MiAyOC45MjcxIDQ2LjgwMzkgMjguOTI0MiA0Ni44MjIyIDI4LjkyNDIgQyA0Ni44NzQ3IDI4LjkyNDIgNDYuOTI1OCAyOC45NDcgNDYuOTYxMSAyOC45ODg1IEMgNDcuMDA4NCAyOS4wNDQzIDQ3LjAxNzcgMjkuMTIzMyA0Ni45ODQ3IDI5LjE4ODcgTCAzMC44OTYxIDYwLjk1MTIgQyAzMC44NjQyIDYxLjAxMzkgMzAuODAwMyA2MS4wNTEgMzAuNzMzNiA2MS4wNTEgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSA1LjYgMy4yNikiIGNsaXAtcGF0aD0idXJsKCNDTElQUEFUSF8zNSkiICA+CjxjbGlwUGF0aCBpZD0iQ0xJUFBBVEhfMzUiID4KICAgIDxyZWN0IHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgLTUuNjEgLTMuMjYpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDU1LDcyLDExNik7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHRyYW5zZm9ybT0iIHRyYW5zbGF0ZSgtMzcuNjEsIC0zNS4yNikiIGQ9Ik0gNDMuODY1OCA5LjY0NjMgTCA0My44NjcgOS42NDYzIEwgNDMuODY1OCA5LjY0NjMgWiBNIDQzLjg2NTggOS42NDYzIEwgMzcuNDQxMyAzMi4wODE3IEwgNDYuODIyMyAyOS4xMDYzIEwgMzAuNzMzNiA2MC44Njg5IEwgMzYuOTI4OCA0MC4wNDM0IEwgMjguMzg5IDQxLjkyMjkgTCA0My44NjU4IDkuNjQ2MyBaIE0gNDMuODY1OSA5LjI4MjAxIEMgNDMuODQ5NCA5LjI4MjAxIDQzLjgzMjkgOS4yODMxMyA0My44MTY3IDkuMjg1MzQgQyA0My43NTk5IDkuMjkzMDUgNDMuNzA3MyA5LjMxMzc1IDQzLjY2MiA5LjM0NDM4IEMgNDMuNjIzOCA5LjM3MDE3IDQzLjU5MDIgOS40MDMzMSA0My41NjM2IDkuNDQzMDMgQyA0My41NTIzIDkuNDU5NzIgNDMuNTQyNCA5LjQ3NzQ2IDQzLjUzNCA5LjQ5NTk5IEwgMjguMDYwNiA0MS43NjU0IEMgMjguMDAwNCA0MS44OTEgMjguMDE3IDQyLjA0IDI4LjEwMzYgNDIuMTQ5MSBDIDI4LjE3MzUgNDIuMjM3MyAyOC4yNzkyIDQyLjI4NzEgMjguMzg5IDQyLjI4NzEgQyAyOC40MTUgNDIuMjg3MSAyOC40NDEyIDQyLjI4NDMgMjguNDY3MyA0Mi4yNzg2IEwgMzYuNDAzNCA0MC41MzE5IEwgMzAuMzg0NSA2MC43NjUgQyAzMC4zMzA4IDYwLjk0NTYgMzAuNDIzNyA2MS4xMzc0IDMwLjU5ODkgNjEuMjA3MSBDIDMwLjY0MjkgNjEuMjI0NyAzMC42ODg1IDYxLjIzMzEgMzAuNzMzNSA2MS4yMzMxIEMgMzAuODY3MSA2MS4yMzMxIDMwLjk5NDggNjEuMTU5MiAzMS4wNTg1IDYxLjAzMzQgTCA0Ny4xNDcyIDI5LjI3MDggQyA0Ny4yMTM1IDI5LjEzOTkgNDcuMTk0OCAyOC45ODIxIDQ3LjA5OTggMjguODcwMyBDIDQ3LjAyOTQgMjguNzg3NSA0Ni45MjczIDI4Ljc0MiA0Ni44MjIyIDI4Ljc0MiBDIDQ2Ljc4NTUgMjguNzQyIDQ2Ljc0ODQgMjguNzQ3NiA0Ni43MTIyIDI4Ljc1OTEgTCAzNy45NzgzIDMxLjUyOTIgTCA0NC4yMTAzIDkuNzY2MjMgQyA0NC4yMjM1IDkuNzI4NjggNDQuMjMwNiA5LjY4ODI3IDQ0LjIzMDYgOS42NDYyNiBDIDQ0LjIzMDYgOS40NTE0OSA0NC4wNzgzIDkuMjkyNDUgNDMuODg2MSA5LjI4MjUzIEMgNDMuODc5MyA5LjI4MjE5IDQzLjg3MjYgOS4yODIwMSA0My44NjU5IDkuMjgyMDEgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIDApIiBjbGlwLXBhdGg9InVybCgjQ0xJUFBBVEhfMzYpIiAgPgo8Y2xpcFBhdGggaWQ9IkNMSVBQQVRIXzM2IiA+CiAgICA8cmVjdCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgMCkiIGlkPSJjbGlwMF8xMDVfNTMiIHg9Ii0zMiIgeT0iLTMyIiByeD0iMCIgcnk9IjAiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgLz4KPC9jbGlwUGF0aD4KPHBhdGggc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoNTUsNzIsMTE2KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0zMiwgLTMyKSIgZD0iTSAzMi42NTQ2IDMuMTMxMTEgTCA0My44NjU4IDkuNjQ2MjggTCAzOS41MTAxIDI0Ljg1NjkgTCA0Ni44MjIyIDI5LjEwNjMgTCAzMC43MzM1IDYwLjg2ODggTCAxOS41MjIzIDU0LjM1MzYgTCAyMy45ODIgMzkuMzYyIEwgMTcuMTc3NyAzNS40MDc3IEwgMzIuNjU0NiAzLjEzMTExIFogTSAzMi42NTQ1IDIuMjE2ODIgQyAzMi41NjQyIDIuMjE2ODIgMzIuNDczNiAyLjIzMDIxIDMyLjM4NTYgMi4yNTcyOCBDIDMyLjE0MTggMi4zMzIzNCAzMS45NDA1IDIuNTA1ODMgMzEuODMwMSAyLjczNTc5IEwgMTYuMzUzMyAzNS4wMTI0IEMgMTYuMTQ3MiAzNS40NDI0IDE2LjMwNjEgMzUuOTU4NiAxNi43MTg0IDM2LjE5ODIgTCAyMi45MDA2IDM5Ljc5MDkgTCAxOC42NDYgNTQuMDkyOSBDIDE4LjUyNTYgNTQuNDk3NiAxOC42OTggNTQuOTMyIDE5LjA2MyA1NS4xNDQyIEwgMzAuMjc0MiA2MS42NTkzIEMgMzAuNDE1IDYxLjc0MTEgMzAuNTczNyA2MS43ODMxIDMwLjczMzYgNjEuNzgzMSBDIDMwLjgyMDYgNjEuNzgzMSAzMC45MDggNjEuNzcwNyAzMC45OTMgNjEuNzQ1NSBDIDMxLjIzNDMgNjEuNjc0MSAzMS40MzU1IDYxLjUwNjQgMzEuNTQ5MiA2MS4yODE5IEwgNDcuNjM3OCAyOS41MTk0IEMgNDcuODU2OCAyOS4wODcyIDQ3LjcwMDUgMjguNTU5MyA0Ny4yODE2IDI4LjMxNTggTCA0MC41ODUxIDI0LjQyNDIgTCA0NC43NDQ4IDkuODk3OTQgQyA0NC44NiA5LjQ5NTQ5IDQ0LjY4NzIgOS4wNjYxMiA0NC4zMjUyIDguODU1NzUgTCAzMy4xMTQgMi4zNDA1NyBDIDMyLjk3MzEgMi4yNTg2OSAzMi44MTQzIDIuMjE2ODIgMzIuNjU0NSAyLjIxNjgyIFoiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgLz4KPC9nPgo8L2c+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS44NCAwIDAgMS44NCA1NDAgODk5LjAzKSI+CiAgICA8dGV4dCB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LWZhbWlseT0iQ2F2ZWF0IiBmb250LXNpemU9IjY1IiBmb250LXN0eWxlPSJub3JtYWwiIGZvbnQtd2VpZ2h0PSI3MDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDAsMCwwKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyIgPjx0c3Bhbj5UaGUgcG93ZXIgb2YgT2RvbzwvdHNwYW4+PHRzcGFuIHg9IjAiIHk9Ijc1Ij5pbiB5b3VyIGluYm94PC90c3Bhbj48L3RleHQ+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC41NSAwIDAgMC41NSAzNTMuNSAxMTUuNzEpIiAgPgo8ZyBzdHlsZT0iIiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICAgPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgNzguNSAwKSIgID4KPHBhdGggc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMTQzLDE0MywxNDMpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB0cmFuc2Zvcm09IiB0cmFuc2xhdGUoLTUzOCwgLTI0OCkiIGQ9Ik0gNjk1IDM0NiBDIDY1My41Nzg2NDM3NjI2OTA1IDM0NiA2MjAgMzEyLjQyMTM1NjIzNzMwOTUgNjIwIDI3MSBDIDYyMCAyMjkuNTc4NjQzNzYyNjkwNSA2NTMuNTc4NjQzNzYyNjkwNSAxOTYgNjk1IDE5NiBDIDczNi40MjEzNTYyMzczMDk1IDE5NiA3NzAgMjI5LjU3ODY0Mzc2MjY5MDUgNzcwIDI3MSBDIDc3MCAzMTIuNDIxMzU2MjM3MzA5NSA3MzYuNDIxMzU2MjM3MzA5NSAzNDYgNjk1IDM0NiBaIE0gNjk1IDMxNSBDIDcxOS4zMDA1Mjg5OTI1NTQ5IDMxNSA3MzkgMjk1LjMwMDUyODk5MjU1NDkgNzM5IDI3MSBDIDczOSAyNDYuNjk5NDcxMDA3NDQ1MDggNzE5LjMwMDUyODk5MjU1NDkgMjI3IDY5NSAyMjcgQyA2NzAuNjk5NDcxMDA3NDQ1MSAyMjcgNjUxIDI0Ni42OTk0NzEwMDc0NDUwOCA2NTEgMjcxIEMgNjUxIDI5NS4zMDA1Mjg5OTI1NTQ5IDY3MC42OTk0NzEwMDc0NDUxIDMxNSA2OTUgMzE1IFogTSA1MzggMzQ2IEMgNDk2LjU3ODY0Mzc2MjY5MDUgMzQ2IDQ2MyAzMTIuNDIxMzU2MjM3MzA5NSA0NjMgMjcxIEMgNDYzIDIyOS41Nzg2NDM3NjI2OTA1IDQ5Ni41Nzg2NDM3NjI2OTA1IDE5NiA1MzggMTk2IEMgNTc5LjQyMTM1NjIzNzMwOTUgMTk2IDYxMyAyMjkuNTc4NjQzNzYyNjkwNSA2MTMgMjcxIEMgNjEzIDMxMi40MjEzNTYyMzczMDk1IDU3OS40MjEzNTYyMzczMDk1IDM0NiA1MzggMzQ2IFogTSA1MzggMzE1IEMgNTYyLjMwMDUyODk5MjU1NDkgMzE1IDU4MiAyOTUuMzAwNTI4OTkyNTU0OSA1ODIgMjcxIEMgNTgyIDI0Ni42OTk0NzEwMDc0NDUwOCA1NjIuMzAwNTI4OTkyNTU0OSAyMjcgNTM4IDIyNyBDIDUxMy42OTk0NzEwMDc0NDUxIDIyNyA0OTQgMjQ2LjY5OTQ3MTAwNzQ0NTA4IDQ5NCAyNzEgQyA0OTQgMjk1LjMwMDUyODk5MjU1NDkgNTEzLjY5OTQ3MTAwNzQ0NTEgMzE1IDUzOCAzMTUgWiBNIDQ1NiAyNzAgQyA0NTYgMzExLjkgNDIyLjQgMzQ2IDM4MSAzNDYgQyAzMzkuNiAzNDYgMzA2IDMxMiAzMDYgMjcwLjEgQyAzMDYgMjI4LjIwMDAwMDAwMDAwMDA1IDMzNi41IDE5NiAzODEgMTk2IEMgMzk3LjQgMTk2IDQxMi42IDE5OS41IDQyNSAyMDguNiBMIDQyNSAxNjUuMSBDIDQyNSAxNTYuNzk5OTk5OTk5OTk5OTggNDMyLjMgMTUwIDQ0MC41IDE1MCBDIDQ0OC43IDE1MCA0NTYgMTU2LjggNDU2IDE2NS4xIFogTSAzODEgMzE1IEMgNDA1LjMwMDUyODk5MjU1NDkgMzE1IDQyNSAyOTUuMzAwNTI4OTkyNTU0OSA0MjUgMjcxIEMgNDI1IDI0Ni42OTk0NzEwMDc0NDUwOCA0MDUuMzAwNTI4OTkyNTU0OSAyMjcgMzgxIDIyNyBDIDM1Ni42OTk0NzEwMDc0NDUxIDIyNyAzMzcgMjQ2LjY5OTQ3MTAwNzQ0NTA4IDMzNyAyNzEgQyAzMzcgMjk1LjMwMDUyODk5MjU1NDkgMzU2LjY5OTQ3MTAwNzQ0NTEgMzE1IDM4MSAzMTUgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAtMjM1LjUgMjMpIiAgPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDE7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IHJnYigxMTMsNzUsMTAzKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0yMjQsIC0yNzEpIiBkPSJNIDIyNCAzNDYgQyAxODIuNTc4NjQzNzYyNjkwNSAzNDYgMTQ5IDMxMi40MjEzNTYyMzczMDk1IDE0OSAyNzEgQyAxNDkgMjI5LjU3ODY0Mzc2MjY5MDUgMTgyLjU3ODY0Mzc2MjY5MDUgMTk2IDIyNCAxOTYgQyAyNjUuNDIxMzU2MjM3MzA5NSAxOTYgMjk5IDIyOS41Nzg2NDM3NjI2OTA1IDI5OSAyNzEgQyAyOTkgMzEyLjQyMTM1NjIzNzMwOTUgMjY1LjQyMTM1NjIzNzMwOTUgMzQ2IDIyNCAzNDYgWiBNIDIyNCAzMTUgQyAyNDguMzAwNTI4OTkyNTU0OTIgMzE1IDI2OCAyOTUuMzAwNTI4OTkyNTU0OSAyNjggMjcxIEMgMjY4IDI0Ni42OTk0NzEwMDc0NDUwOCAyNDguMzAwNTI4OTkyNTU0OTIgMjI3IDIyNCAyMjcgQyAxOTkuNjk5NDcxMDA3NDQ1MDggMjI3IDE4MCAyNDYuNjk5NDcxMDA3NDQ1MDggMTgwIDI3MSBDIDE4MCAyOTUuMzAwNTI4OTkyNTU0OSAxOTkuNjk5NDcxMDA3NDQ1MDggMzE1IDIyNCAzMTUgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CjwvZz4KPC9nPgo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjg5IDAgMCAxLjg5IDgyMi4yNyAxMjcuOTEpIj4KICAgICAgICA8dGV4dCB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LWZhbWlseT0iQ2F2ZWF0IiBmb250LXNpemU9IjUwIiBmb250LXN0eWxlPSJub3JtYWwiIGZvbnQtd2VpZ2h0PSI3MDAiIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDAsMCwwKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyIgPjx0c3BhbiB4PSItMTI3Ljc0IiB5PSIxMi41NyIgPmZvciBHbWFpbDwvdHNwYW4+PC90ZXh0Pgo8L2c+Cjwvc3ZnPgo=", + buttonSVG: + "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMDAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwMCAxMjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cmVjdCBzdHlsZT0ic3Ryb2tlOiBfX1NUUk9LRV9fOyBzdHJva2Utd2lkdGg6IDU7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IF9fRklMTF9fOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiIHg9IjEwIiB5PSIxMCIgcng9IjE1IiByeT0iMTUiIHdpZHRoPSI5ODAiIGhlaWdodD0iMTAwIi8+Cjx0ZXh0IHg9IjUwJSIgeT0iNTAlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LWZhbWlseT0iR29vZ2xlIFNhbnMgVGV4dCxHb29nbGUgU2FucyxSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSI1MCIgZm9udC1zdHlsZT0ibm9ybWFsIiBmb250LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0ic3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDE7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IF9fQ09MT1JfXzsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyIgPl9fVEVYVF9fPC90ZXh0Pgo8L3N2Zz4=", }; diff --git a/gmail/src/views/index.ts b/gmail/src/views/index.ts index 8e7f0825b..5d1de426d 100644 --- a/gmail/src/views/index.ts +++ b/gmail/src/views/index.ts @@ -1,34 +1,15 @@ import { buildPartnerView } from "./partner"; -import { buildErrorView } from "./error"; -import { buildCompanyView } from "./company"; -import { buildLoginMainView } from "./login"; import { buildCardActionsView } from "./card_actions"; +import { buildSearchPartnerView } from "./search_partner"; import { State } from "../models/state"; -import { actionCall } from "./helpers"; import { _t } from "../services/translation"; export function buildView(state: State) { const card = CardService.newCardBuilder(); - - if (state.error.code) { - buildErrorView(state, card); - } - - buildPartnerView(state, card); - - buildCompanyView(state, card); - - buildCardActionsView(state, card); - - if (!State.isLogged) { - card.setFixedFooter( - CardService.newFixedFooter().setPrimaryButton( - CardService.newTextButton() - .setText(_t("Login")) - .setBackgroundColor("#00A09D") - .setOnClickAction(actionCall(state, buildLoginMainView.name)), - ), - ); + if (state.searchedPartners?.length) { + return buildSearchPartnerView(state, "", false, _t("In this conversation"), true, true); + } else { + buildPartnerView(state, card); } return card.build(); diff --git a/gmail/src/views/leads.ts b/gmail/src/views/leads.ts index 765ea3e7e..f7e5bdb21 100644 --- a/gmail/src/views/leads.ts +++ b/gmail/src/views/leads.ts @@ -1,12 +1,13 @@ import { buildView } from "../views/index"; -import { pushCard, updateCard, createKeyValueWidget, actionCall, notify, openUrl } from "./helpers"; -import { URLS } from "../const"; +import { updateCard, createKeyValueWidget, actionCall, notify, openUrl } from "./helpers"; import { getOdooServerUrl } from "src/services/app_properties"; +import { getOdooRecordURL } from "src/services/odoo_redirection"; import { UI_ICONS } from "./icons"; import { logEmail } from "../services/log_email"; import { _t } from "../services/translation"; import { Lead } from "../models/lead"; import { State } from "../models/state"; +import { buildSearchRecordView } from "../views/search_records"; function onLogEmailOnLead(state: State, parameters: any) { const leadId = parameters.leadId; @@ -28,94 +29,100 @@ function onEmailAlreradyLoggedOnLead(state: State) { } function onCreateLead(state: State) { - const leadId = Lead.createLead(state.partner.id, state.email.body, state.email.subject); - - if (!leadId) { - return notify(_t("Could not create the lead")); + const result = Lead.createLead(state.partner, state.email); + if (!result) { + return notify(_t("Could not create the opportunity")); } - const cids = state.odooCompaniesParameter; - const leadUrl = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - `/web#id=${leadId}&action=crm_mail_plugin.crm_lead_action_form_edit&model=crm.lead&view_type=form${cids}`; + const [lead, partner] = result; + state.partner = partner; + state.partner.leads.push(lead); + state.partner.leadCount += 1; + return updateCard(buildView(state)); +} - return openUrl(leadUrl); +function onSearchClick(state: State) { + return buildSearchRecordView( + state, + "crm.lead", + _t("Opportunities"), + _t("Log the email on the opportunity"), + _t("Email already logged on the opportunity"), + "revenuesDescription", + "", + true, + state.partner.leads, + ); } export function buildLeadsView(state: State, card: Card) { const odooServerUrl = getOdooServerUrl(); const partner = state.partner; - const leads = partner.leads; - - if (!leads) { + if (!partner.leads) { // CRM module is not installed // otherwise leads should be at least an empty array return; } + const leads = [...partner.leads].splice(0, 5); + const loggingState = State.getLoggingState(state.email.messageId); - const leadsSection = CardService.newCardSection().setHeader( - "" + _t("Opportunities (%s)", leads.length) + "", - ); - const cids = state.odooCompaniesParameter; + const leadsSection = CardService.newCardSection(); + + const searchButton = CardService.newImageButton() + .setAltText(_t("Search Opportunities")) + .setIconUrl(UI_ICONS.search) + .setOnClickAction(actionCall(state, onSearchClick.name)); + + const title = partner.leadCount + ? _t("Opportunities (%s)", partner.leadCount) + : _t("Opportunities"); + const widget = CardService.newDecoratedText().setText("" + title + ""); + widget.setButton(searchButton); + leadsSection.addWidget(widget); + + const createButton = CardService.newTextButton() + .setText(_t("New")) + .setOnClickAction(actionCall(state, onCreateLead.name)); + + leadsSection.addWidget(createButton); + + for (let lead of leads) { + let leadButton = null; + if (loggingState["crm.lead"].indexOf(lead.id) >= 0) { + leadButton = CardService.newImageButton() + .setAltText(_t("Email already logged on the opportunity")) + .setIconUrl(UI_ICONS.email_logged) + .setOnClickAction(actionCall(state, onEmailAlreradyLoggedOnLead.name)); + } else { + leadButton = CardService.newImageButton() + .setAltText(_t("Log the email on the opportunity")) + .setIconUrl(UI_ICONS.email_in_odoo) + .setOnClickAction( + actionCall(state, onLogEmailOnLead.name, { + leadId: lead.id, + }), + ); + } - if (state.partner.id) { leadsSection.addWidget( - CardService.newTextButton().setText(_t("Create")).setOnClickAction(actionCall(state, onCreateLead.name)), + createKeyValueWidget( + null, + lead.name, + null, + lead.revenuesDescription, + leadButton, + getOdooRecordURL("crm.lead", lead.id), + ), ); + } - for (let lead of leads) { - let leadRevenuesDescription; - if (lead.recurringRevenue) { - leadRevenuesDescription = _t( - "%(expected_revenue)s + %(recurring_revenue)s %(recurring_plan)s at %(probability)s%", - { - expected_revenue: lead.expectedRevenue, - probability: lead.probability, - recurring_revenue: lead.recurringRevenue, - recurring_plan: lead.recurringPlan, - }, - ); - } else { - leadRevenuesDescription = _t("%(expected_revenue)s at %(probability)s%", { - expected_revenue: lead.expectedRevenue, - probability: lead.probability, - }); - } - - let leadButton = null; - if (loggingState["leads"].indexOf(lead.id) >= 0) { - leadButton = CardService.newImageButton() - .setAltText(_t("Email already logged on the lead")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreradyLoggedOnLead.name)); - } else { - leadButton = CardService.newImageButton() - .setAltText(_t("Log the email on the lead")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, onLogEmailOnLead.name, { - leadId: lead.id, - }), - ); - } - - leadsSection.addWidget( - createKeyValueWidget( - null, - lead.name, - null, - leadRevenuesDescription, - leadButton, - odooServerUrl + `/web#id=${lead.id}&model=crm.lead&view_type=form${cids}`, - ), - ); - } - } else if (state.canCreatePartner) { - leadsSection.addWidget(CardService.newTextParagraph().setText(_t("Save Contact to create new Opportunities."))); - } else { + if (leads.length < partner.leadCount) { leadsSection.addWidget( - CardService.newTextParagraph().setText(_t("You can only create opportunities for existing customers.")), + CardService.newTextButton() + .setText(_t("Show all")) + .setTextButtonStyle(CardService.TextButtonStyle["BORDERLESS"]) + .setOnClickAction(actionCall(state, onSearchClick.name)), ); } diff --git a/gmail/src/views/login.ts b/gmail/src/views/login.ts index 7e9a7ab3c..85082c665 100644 --- a/gmail/src/views/login.ts +++ b/gmail/src/views/login.ts @@ -1,5 +1,5 @@ -import { formatUrl, repeat } from "../utils/format"; -import { notify, createKeyValueWidget } from "./helpers"; +import { formatUrl } from "../utils/format"; +import { notify } from "./helpers"; import { State } from "../models/state"; import { IMAGES_LOGIN } from "./icons"; import { getSupportedAddinVersion } from "../services/odoo_auth"; @@ -53,66 +53,81 @@ function onNextLogin(event) { .build(); } -export function buildLoginMainView() { +export function buildLoginMainView(error: string = null) { const card = CardService.newCardBuilder(); - // Trick to make large centered button - const invisibleChar = "⠀"; - - const faqUrl = "https://www.odoo.com/documentation/master/applications/productivity/mail_plugins.html"; - - card.addSection( - CardService.newCardSection() - .addWidget( - CardService.newImage().setAltText("Connect to your Odoo database").setImageUrl(IMAGES_LOGIN.main_image), - ) - .addWidget( - CardService.newTextInput() - .setFieldName("odooServerUrl") - .setTitle("Database URL") - .setHint("e.g. company.odoo.com") - .setValue(PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") || ""), - ) - .addWidget( - CardService.newTextButton() - .setText(repeat(invisibleChar, 12) + "Login" + repeat(invisibleChar, 12)) - .setTextButtonStyle(CardService.TextButtonStyle.FILLED) - .setBackgroundColor("#00A09D") - .setOnClickAction(CardService.newAction().setFunctionName(onNextLogin.name)), - ) - .addWidget(CardService.newTextParagraph().setText(repeat(invisibleChar, 13) + "OR")) - .addWidget( - CardService.newTextButton() - .setText(repeat(invisibleChar, 11) + " Sign Up" + repeat(invisibleChar, 11)) - .setOpenLink( - CardService.newOpenLink().setUrl( - "https://www.odoo.com/trial?selected_app=mail_plugin:crm:helpdesk:project", - ), + const loginButton = Utilities.base64Encode( + Utilities.newBlob(Utilities.base64Decode(IMAGES_LOGIN.buttonSVG)) + .getDataAsString() + .replace("__TEXT__", "Login") + .replace("__STROKE__", "#875a7b") + .replace("__FILL__", "#875a7b") + .replace("__COLOR__", "white"), + ); + + const signupButton = Utilities.base64Encode( + Utilities.newBlob(Utilities.base64Decode(IMAGES_LOGIN.buttonSVG)) + .getDataAsString() + .replace("__TEXT__", "Sign Up") + .replace("__STROKE__", "#e7e9ed") + .replace("__FILL__", "#e7e9ed") + .replace("__COLOR__", "#1e1e1e"), + ); + + const faqButton = Utilities.base64Encode( + Utilities.newBlob(Utilities.base64Decode(IMAGES_LOGIN.buttonSVG)) + .getDataAsString() + .replace("__TEXT__", "FAQ") + .replace("__STROKE__", "white") + .replace("__FILL__", "white") + .replace("__COLOR__", "#2f9e44"), + ); + + const section = CardService.newCardSection() + .addWidget( + CardService.newImage() + .setAltText("Connect to your Odoo database") + .setImageUrl(IMAGES_LOGIN.loginSVG), + ) + .addWidget( + CardService.newTextInput() + .setFieldName("odooServerUrl") + .setTitle("Connect to...") + .setHint("e.g. company.odoo.com") + .setValue( + PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") || "", + ) + .setOnChangeAction(CardService.newAction().setFunctionName(onNextLogin.name)), + ) + .addWidget( + CardService.newImage() + .setImageUrl("data:image/svg+xml;base64," + loginButton) + .setOnClickAction(CardService.newAction().setFunctionName(onNextLogin.name)), + ) + .addWidget( + CardService.newImage() + .setImageUrl("data:image/svg+xml;base64," + signupButton) + .setOpenLink( + CardService.newOpenLink().setUrl( + "https://www.odoo.com/trial?selected_app=mail_plugin:crm:helpdesk:project", ), - ) - .addWidget( - createKeyValueWidget(null, "Create leads from emails sent to your email address.", IMAGES_LOGIN.email), - ) - .addWidget( - createKeyValueWidget( - null, - "Create tickets from emails sent to your email address.", - IMAGES_LOGIN.ticket, ), - ) - .addWidget(createKeyValueWidget(null, "Centralize Prospects' emails into CRM.", IMAGES_LOGIN.crm)) - .addWidget( - createKeyValueWidget( - null, - "Generate Tasks from emails sent to your email address in any Odoo project.", - IMAGES_LOGIN.project, + ) + .addWidget( + CardService.newImage() + .setImageUrl("data:image/svg+xml;base64," + faqButton) + .setOpenLink( + CardService.newOpenLink().setUrl( + "https://www.odoo.com/documentation/master/applications/productivity/mail_plugins.html", + ), ), - ) - .addWidget(createKeyValueWidget(null, "Search and store insights on your contacts.", IMAGES_LOGIN.search)) - .addWidget( - CardService.newTextParagraph().setText(repeat(invisibleChar, 13) + `FAQ`), - ), - ); + ); + + if (error) { + section.addWidget(CardService.newTextParagraph().setText(error)); + } + + card.addSection(section); return card.build(); } diff --git a/gmail/src/views/partner.ts b/gmail/src/views/partner.ts index 3b0b3da71..435ebf5d8 100644 --- a/gmail/src/views/partner.ts +++ b/gmail/src/views/partner.ts @@ -1,113 +1,62 @@ -import { buildView } from "./index"; import { buildLeadsView } from "./leads"; import { buildTasksView } from "./tasks"; import { buildTicketsView } from "./tickets"; import { buildPartnerActionView } from "./partner_actions"; -import { updateCard } from "./helpers"; -import { UI_ICONS } from "./icons"; -import { createKeyValueWidget, actionCall, notify } from "./helpers"; -import { URLS } from "../const"; +import { actionCall, createKeyValueWidget, notify, updateCard } from "./helpers"; import { getOdooServerUrl } from "src/services/app_properties"; import { State } from "../models/state"; -import { Partner } from "../models/partner"; -import { ErrorMessage } from "../models/error_message"; -import { logEmail } from "../services/log_email"; import { _t } from "../services/translation"; -import { buildLoginMainView } from "./login"; +import { buildCardActionsView } from "./card_actions"; +import { Partner } from "src/models/partner"; +import { buildView } from "./index"; -function onLogEmail(state: State) { - const partnerId = state.partner.id; +export function onReloadPartner(state: State) { + const values = Partner.getPartner(state.partner.name, state.partner.email, state.partner.id); - if (!partnerId) { - throw new Error(_t("This contact does not exist in the Odoo database.")); - } + [state.partner, state.canCreatePartner, state.canCreateProject] = values; - if (State.checkLoggingState(state.email.messageId, "partners", partnerId)) { - state.error = logEmail(partnerId, "res.partner", state.email); - if (!state.error.code) { - State.setLoggingState(state.email.messageId, "partners", partnerId); - } - return updateCard(buildView(state)); + if (values[3].code) { + return notify(values[3].message); } - return notify(_t("Email already logged on the contact")); -} - -function onSavePartner(state: State) { - const partnerValues = { - name: state.partner.name, - email: state.partner.email, - company: state.partner.company && state.partner.company.id, - }; - const partnerId = Partner.savePartner(partnerValues); - if (partnerId) { - state.partner.id = partnerId; - state.searchedPartners = null; - state.error = new ErrorMessage(); - return updateCard(buildView(state)); - } else { - return notify(_t("Can not save the contact")); - } -} - -export function onEmailAlreadyLogged(state: State) { - return notify(_t("Email already logged on the contact")); + return updateCard(buildView(state)); } export function buildPartnerView(state: State, card: Card) { - const partner = state.partner; - const odooServerUrl = getOdooServerUrl(); - const canContactOdooDatabase = state.error.canContactOdooDatabase && State.isLogged; + card.addCardAction( + CardService.newCardAction() + .setText(_t("Refresh")) + .setOnClickAction(actionCall(state, onReloadPartner.name)), + ); - const loggingState = State.getLoggingState(state.email.messageId); - const isEmailLogged = partner.id && loggingState["partners"].indexOf(partner.id) >= 0; + buildCardActionsView(card); - const partnerSection = CardService.newCardSection().setHeader("" + _t("Contact") + ""); + const partner = state.partner; + const odooServerUrl = getOdooServerUrl(); - let partnerButton = null; - if (canContactOdooDatabase && !partner.id) { - partnerButton = state.canCreatePartner - ? CardService.newImageButton() - .setAltText(_t("Save in Odoo")) - .setIconUrl(UI_ICONS.save_in_odoo) - .setOnClickAction(actionCall(state, onSavePartner.name)) - : null; - } else if (canContactOdooDatabase && !isEmailLogged) { - partnerButton = partner.isWriteable - ? CardService.newImageButton() - .setAltText(_t("Log email")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction(actionCall(state, onLogEmail.name)) - : null; - } else if (canContactOdooDatabase && isEmailLogged) { - partnerButton = CardService.newImageButton() - .setAltText(_t("Email already logged on the contact")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreadyLogged.name)); - } else if (!State.isLogged) { - // button "Log the email" but it redirects to the login page - partnerButton = CardService.newImageButton() - .setAltText(_t("Log email")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction(actionCall(state, buildLoginMainView.name)); - } + const partnerSection = CardService.newCardSection().setHeader( + "" + _t("Contact Details") + "", + ); - const partnerContent = [partner.email, partner.phone] + let partnerContent = [ + partner.companyName && `🏢 ${partner.companyName}`, + partner.email && `✉️ ${partner.email}`, + partner.phone && `📞 ${partner.phone}`, + ] .filter((x) => x) - .map((x) => `${x}`); - const cids = state.odooCompaniesParameter; + .map((x) => `${x}`) + .join("
"); + if (!partner.id) { + partnerContent = _t("New Person"); + } const partnerCard = createKeyValueWidget( null, - partner.name + "
" + partnerContent.join("
"), - partner.image || (partner.isCompany ? UI_ICONS.no_company : UI_ICONS.person), + partner.name || partner.email || "", + partner.getImage(), + partnerContent.length ? partnerContent : null, + null, null, - partnerButton, - partner.id - ? odooServerUrl + `/web#id=${partner.id}&model=res.partner&view_type=form${cids}` - : canContactOdooDatabase - ? null - : actionCall(state, buildLoginMainView.name), false, partner.email, CardService.ImageCropType.CIRCLE, @@ -119,7 +68,7 @@ export function buildPartnerView(state: State, card: Card) { card.addSection(partnerSection); - if (canContactOdooDatabase) { + if (State.isLogged) { buildLeadsView(state, card); buildTicketsView(state, card); buildTasksView(state, card); diff --git a/gmail/src/views/partner_actions.ts b/gmail/src/views/partner_actions.ts index f284f4c1a..9b802c801 100644 --- a/gmail/src/views/partner_actions.ts +++ b/gmail/src/views/partner_actions.ts @@ -3,67 +3,100 @@ import { buildSearchPartnerView } from "./search_partner"; import { UI_ICONS } from "./icons"; import { State } from "../models/state"; import { Partner } from "../models/partner"; -import { actionCall } from "./helpers"; +import { actionCall, notify } from "./helpers"; import { updateCard } from "./helpers"; import { _t } from "../services/translation"; -import { buildLoginMainView } from "./login"; +import { logEmail } from "../services/log_email"; +import { getOdooRecordURL } from "src/services/odoo_redirection"; -function onSearchPartner(state: State) { - if (!state.searchedPartners) { - const [partners, error] = Partner.searchPartner(state.partner.email); - state.searchedPartners = partners; +function onLogEmail(state: State) { + const partnerId = state.partner.id; + + if (!partnerId) { + throw new Error(_t("This contact does not exist in the Odoo database.")); } - return buildSearchPartnerView(state, state.partner.email, true); + if (State.checkLoggingState(state.email.messageId, "res.partner", partnerId)) { + const error = logEmail(partnerId, "res.partner", state.email); + if (error.code) { + return notify(error.message); + } + State.setLoggingState(state.email.messageId, "res.partner", partnerId); + return updateCard(buildView(state)); + } + return notify(_t("Email already logged on the contact")); } -function onReloadPartner(state: State) { - [ - state.partner, - state.odooUserCompanies, - state.canCreatePartner, - state.canCreateProject, - state.error, - ] = Partner.getPartner(state.partner.email, state.partner.name, state.partner.id); +function onSavePartner(state: State) { + const partner = Partner.savePartner(state.partner); + if (partner) { + state.partner = partner; + state.partner.isWritable = true; + state.searchedPartners = null; + return updateCard(buildView(state)); + } + return notify(_t("Can not save the contact")); +} - return updateCard(buildView(state)); +export function onEmailAlreadyLoggedContact(state: State) { + return notify(_t("Email already logged on the contact")); } -export function buildPartnerActionView(state: State, partnerSection: CardSection) { - const isLogged = State.isLogged; - const canContactOdooDatabase = state.error.canContactOdooDatabase && isLogged; +function onSearchPartner(state: State) { + state.searchedPartners = []; + return buildSearchPartnerView(state, state.partner.email, true); +} - if (canContactOdooDatabase) { - const actionButtonSet = CardService.newButtonSet(); +export function buildPartnerActionView(state: State, partnerSection: CardSection) { + const actionButtonSet = CardService.newButtonSet(); - if (state.partner.id) { - actionButtonSet.addButton( - CardService.newImageButton() - .setAltText(_t("Refresh")) - .setIconUrl(UI_ICONS.reload) - .setOnClickAction(actionCall(state, onReloadPartner.name)), - ); - } + const loggingState = State.getLoggingState(state.email.messageId); + const isEmailLogged = + state.partner.id && loggingState["res.partner"].indexOf(state.partner.id) >= 0; + if (!state.partner.id && state.canCreatePartner) { + actionButtonSet.addButton( + CardService.newTextButton() + .setText(_t("Add to Odoo")) + .setBackgroundColor("#875a7b") + .setOnClickAction(actionCall(state, onSavePartner.name)), + ); + } + if (state.partner.id) { + actionButtonSet.addButton( + CardService.newTextButton() + .setText(_t("View in Odoo")) + .setBackgroundColor("#875a7b") + .setOpenLink( + CardService.newOpenLink().setUrl( + getOdooRecordURL("res.partner", state.partner.id), + ), + ), + ); + } + if (state.partner.id && !isEmailLogged && state.partner.isWritable) { actionButtonSet.addButton( CardService.newImageButton() - .setAltText(_t("Search contact")) - .setIconUrl(UI_ICONS.search) - .setOnClickAction(actionCall(state, onSearchPartner.name)), + .setAltText(_t("Log email")) + .setIconUrl(UI_ICONS.email_in_odoo) + .setOnClickAction(actionCall(state, onLogEmail.name)), ); - - partnerSection.addWidget(actionButtonSet); - } else if (!isLogged) { - // add button but it redirects to the login page - const actionButtonSet = CardService.newButtonSet(); - + } + if (state.partner.id && isEmailLogged) { actionButtonSet.addButton( CardService.newImageButton() - .setAltText(_t("Search contact")) - .setIconUrl(UI_ICONS.search) - .setOnClickAction(actionCall(state, buildLoginMainView.name)), + .setAltText(_t("Email already logged on the contact")) + .setIconUrl(UI_ICONS.email_logged) + .setOnClickAction(actionCall(state, onEmailAlreadyLoggedContact.name)), ); - - partnerSection.addWidget(actionButtonSet); } + + actionButtonSet.addButton( + CardService.newImageButton() + .setAltText(_t("Search contact")) + .setIconUrl(UI_ICONS.search) + .setOnClickAction(actionCall(state, onSearchPartner.name)), + ); + + partnerSection.addWidget(actionButtonSet); } diff --git a/gmail/src/views/search_partner.ts b/gmail/src/views/search_partner.ts index 38aa65855..5a29b4cc6 100644 --- a/gmail/src/views/search_partner.ts +++ b/gmail/src/views/search_partner.ts @@ -2,20 +2,25 @@ import { logEmail } from "../services/log_email"; import { _t } from "../services/translation"; import { Partner } from "../models/partner"; import { ErrorMessage } from "../models/error_message"; -import { createKeyValueWidget, actionCall, pushCard, updateCard, notify } from "./helpers"; +import { actionCall, pushCard, updateCard, notify } from "./helpers"; import { buildView } from "./index"; import { State } from "../models/state"; -import { SOCIAL_MEDIA_ICONS, UI_ICONS } from "./icons"; -import { onEmailAlreadyLogged } from "./partner"; +import { UI_ICONS } from "./icons"; +import { onEmailAlreadyLoggedContact } from "./partner_actions"; +import { buildCardActionsView } from "./card_actions"; function onSearchPartnerClick(state: State, parameters: any, inputs: any) { - const inputQuery = inputs.search_partner_query; - const query = (inputQuery && inputQuery.length && inputQuery[0]) || ""; - const [partners, error] = query && query.length ? Partner.searchPartner(query) : [[], new ErrorMessage()]; + const query = inputs.search_partner_query || ""; + const [partners, error] = + query && query.length ? Partner.searchPartner(query) : [[], new ErrorMessage()]; + if (error.code) { + return notify(error.message); + } state.searchedPartners = partners; - return updateCard(buildSearchPartnerView(state, query)); + const card = buildSearchPartnerView(state, query); + return parameters.fixCard ? pushCard(card) : updateCard(card); } function onLogEmailPartner(state: State, parameters: any) { const partnerId = parameters.partnerId; @@ -24,41 +29,52 @@ function onLogEmailPartner(state: State, parameters: any) { throw new Error(_t("This contact does not exist in the Odoo database.")); } - if (State.checkLoggingState(state.email.messageId, "partners", partnerId)) { - state.error = logEmail(partnerId, "res.partner", state.email); - if (!state.error.code) { - State.setLoggingState(state.email.messageId, "partners", partnerId); + if (State.checkLoggingState(state.email.messageId, "res.partner", partnerId)) { + const error = logEmail(partnerId, "res.partner", state.email); + if (error.code) { + return notify(error.message); } + State.setLoggingState(state.email.messageId, "res.partner", partnerId); return updateCard(buildSearchPartnerView(state, parameters.query)); } return notify(_t("Email already logged on the contact")); } function onOpenPartner(state: State, parameters: any) { - const partner = parameters.partner; - const [newPartner, odooUserCompanies, canCreatePartner, canCreateProject, error] = Partner.getPartner( - partner.email, + const partner = Partner.fromJson(parameters.partner); + const [newPartner, canCreatePartner, canCreateProject, error] = Partner.getPartner( partner.name, + partner.email, partner.id, ); + if (error.code) { + return notify(error.message); + } const newState = new State( newPartner, canCreatePartner, state.email, - odooUserCompanies, null, null, canCreateProject, - error, ); return pushCard(buildView(newState)); } -export function buildSearchPartnerView(state: State, query: string, initialSearch: boolean = false) { +export function buildSearchPartnerView( + state: State, + query: string, + initialSearch: boolean = false, + header: string = "", + noLogIcon: boolean = false, + fixCard: boolean = false, +) { const loggingState = State.getLoggingState(state.email.messageId); const card = CardService.newCardBuilder(); - let partners = (state.searchedPartners || []).filter((partner) => partner.id); + buildCardActionsView(card); + + let partners = state.searchedPartners || []; let searchValue = query; if (initialSearch && partners.length <= 1) { @@ -73,15 +89,19 @@ export function buildSearchPartnerView(state: State, query: string, initialSearc .setFieldName("search_partner_query") .setTitle(_t("Search contact")) .setValue(searchValue) - .setOnChangeAction(actionCall(state, onSearchPartnerClick.name)), + .setOnChangeAction(actionCall(state, onSearchPartnerClick.name, { fixCard })), ); searchSection.addWidget( CardService.newTextButton() .setText(_t("Search")) - .setOnClickAction(actionCall(state, onSearchPartnerClick.name)), + .setOnClickAction(actionCall(state, onSearchPartnerClick.name, { fixCard })), ); + if (header?.length) { + searchSection.addWidget(CardService.newTextParagraph().setText(`${header}`)); + } + for (let partner of partners) { const partnerCard = CardService.newDecoratedText() .setText(partner.name) @@ -89,13 +109,13 @@ export function buildSearchPartnerView(state: State, query: string, initialSearc .setOnClickAction(actionCall(state, onOpenPartner.name, { partner: partner })) .setStartIcon( CardService.newIconImage() - .setIconUrl(partner.image || (partner.isCompany ? UI_ICONS.no_company : UI_ICONS.person)) + .setIconUrl(partner.getImage()) .setImageCropType(CardService.ImageCropType.CIRCLE), ); - if (partner.isWriteable) { + if (partner.isWritable && !noLogIcon) { partnerCard.setButton( - loggingState["partners"].indexOf(partner.id) < 0 + loggingState["res.partner"].indexOf(partner.id) < 0 ? CardService.newImageButton() .setAltText(_t("Log email")) .setIconUrl(UI_ICONS.email_in_odoo) @@ -108,19 +128,27 @@ export function buildSearchPartnerView(state: State, query: string, initialSearc : CardService.newImageButton() .setAltText(_t("Email already logged on the contact")) .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreadyLogged.name)), + .setOnClickAction(actionCall(state, onEmailAlreadyLoggedContact.name)), ); } if (partner.email) { - partnerCard.setBottomLabel(partner.email); + partnerCard.setBottomLabel(partner.id ? partner.email : _t("New Person")); } searchSection.addWidget(partnerCard); } if ((!partners || !partners.length) && !initialSearch) { - searchSection.addWidget(CardService.newTextParagraph().setText(_t("No contact found."))); + const noRecord = Utilities.base64Encode( + Utilities.newBlob(Utilities.base64Decode(UI_ICONS.no_record)) + .getDataAsString() + .replace("No record found.", _t("No record found.")) + .replace("Try using different keywords.", _t("Try using different keywords.")), + ); + searchSection.addWidget( + CardService.newImage().setImageUrl("data:image/svg+xml;base64," + noRecord), + ); } card.addSection(searchSection); diff --git a/gmail/src/views/search_records.ts b/gmail/src/views/search_records.ts new file mode 100644 index 000000000..f95685bdf --- /dev/null +++ b/gmail/src/views/search_records.ts @@ -0,0 +1,169 @@ +import { logEmail } from "../services/log_email"; +import { _t } from "../services/translation"; +import { actionCall, updateCard, notify, openUrl } from "./helpers"; +import { State } from "../models/state"; +import { UI_ICONS } from "./icons"; +import { getOdooRecordURL } from "src/services/odoo_redirection"; +import { searchRecords } from "../services/search_records"; + +function onSearchRecordClick(state: State, parameters: any, inputs: any) { + const model = parameters.model; + const modelDescription = parameters.modelDescription; + const fieldInfo = parameters.fieldInfo; + const query = inputs.query || ""; + + const [records, totalCount, error] = searchRecords(model, query); + if (error.code) { + return notify(error.message); + } + return updateCard( + buildSearchRecordView( + state, + model, + modelDescription, + parameters.emailLogMessage, + parameters.emailAlreadyLoggedMessage, + fieldInfo, + query, + false, + records, + totalCount, + ), + ); +} + +function onLogEmailRecord(state: State, parameters: any) { + const model = parameters.model; + const modelDescription = parameters.modelDescription; + const fieldInfo = parameters.fieldInfo; + const recordId = parameters.recordId; + const records = parameters.records; + const totalCount = parameters.totalCount; + + if (State.checkLoggingState(state.email.messageId, model, recordId)) { + const error = logEmail(recordId, model, state.email); + if (error.code) { + return notify(error.message); + } + State.setLoggingState(state.email.messageId, model, recordId); + return updateCard( + buildSearchRecordView( + state, + model, + modelDescription, + parameters.emailLogMessage, + parameters.emailAlreadyLoggedMessage, + fieldInfo, + parameters.query, + false, + records, + totalCount, + ), + ); + } + return notify(_t("Email already logged")); +} + +function onOpenRecord(state: State, parameters: any) { + const model = parameters.model; + const recordId = parameters.recordId; + return openUrl(getOdooRecordURL(model, recordId)); +} + +function onEmailAlreadyLoggedOnRecord(parameters: any) { + return notify(parameters.emailAlreadyLoggedMessage); +} + +export function buildSearchRecordView( + state: State, + model: string, + modelDescription: string, + emailLogMessage: string, + emailAlreadyLoggedMessage: string, + fieldInfo: string = "", + query: string = "", + initialSearch: boolean = false, + records: any[] = [], + totalCount: number = 0, +) { + const loggingState = State.getLoggingState(state.email.messageId); + + const card = CardService.newCardBuilder(); + let searchValue = query; + + const baseArgs = { + model, + modelDescription, + fieldInfo, + records, + totalCount, + emailAlreadyLoggedMessage, + emailLogMessage, + }; + + const searchSection = CardService.newCardSection(); + + searchSection.addWidget( + CardService.newTextInput() + .setFieldName("query") + .setTitle(_t("Search %s", modelDescription)) + .setValue(searchValue) + .setOnChangeAction(actionCall(state, onSearchRecordClick.name, baseArgs)), + ); + + searchSection.addWidget( + CardService.newTextButton() + .setText(_t("Search")) + .setOnClickAction(actionCall(state, onSearchRecordClick.name, baseArgs)), + ); + + for (let record of records) { + const recordCard = CardService.newDecoratedText() + .setText(record.name) + .setWrapText(true) + .setOnClickAction(actionCall(state, onOpenRecord.name, { model, recordId: record.id })); + + if (fieldInfo?.length && record[fieldInfo]) { + recordCard.setBottomLabel(record[fieldInfo]); + } + + recordCard.setButton( + loggingState[model].indexOf(record.id) < 0 + ? CardService.newImageButton() + .setAltText(emailLogMessage) + .setIconUrl(UI_ICONS.email_in_odoo) + .setOnClickAction( + actionCall(state, onLogEmailRecord.name, { + ...baseArgs, + recordId: record.id, + query, + }), + ) + : CardService.newImageButton() + .setAltText(emailAlreadyLoggedMessage) + .setIconUrl(UI_ICONS.email_logged) + .setOnClickAction( + actionCall(null, onEmailAlreadyLoggedOnRecord.name, { + emailAlreadyLoggedMessage, + }), + ), + ); + + searchSection.addWidget(recordCard); + } + + if ((!records || !records.length) && !initialSearch) { + const noRecord = Utilities.base64Encode( + Utilities.newBlob(Utilities.base64Decode(UI_ICONS.no_record)) + .getDataAsString() + .replace("No record found.", _t("No record found.")) + .replace("Try using different keywords.", _t("Try using different keywords.")), + ); + searchSection.addWidget( + CardService.newImage().setImageUrl("data:image/svg+xml;base64," + noRecord), + ); + } + + card.addSection(searchSection); + return card.build(); +} diff --git a/gmail/src/views/tasks.ts b/gmail/src/views/tasks.ts index ccb39711c..3716b27da 100644 --- a/gmail/src/views/tasks.ts +++ b/gmail/src/views/tasks.ts @@ -1,17 +1,31 @@ import { buildView } from "../views/index"; import { buildCreateTaskView } from "../views/create_task"; -import { updateCard } from "./helpers"; +import { pushCard, updateCard } from "./helpers"; import { UI_ICONS } from "./icons"; import { createKeyValueWidget, actionCall, notify } from "./helpers"; -import { URLS } from "../const"; import { getOdooServerUrl } from "src/services/app_properties"; import { State } from "../models/state"; import { logEmail } from "../services/log_email"; import { _t } from "../services/translation"; -import { truncate } from "../utils/format"; +import { getOdooRecordURL } from "src/services/odoo_redirection"; +import { buildSearchRecordView } from "../views/search_records"; function onCreateTask(state: State) { - return buildCreateTaskView(state); + return pushCard(buildCreateTaskView(state)); +} + +function onSearchClick(state: State) { + return buildSearchRecordView( + state, + "project.task", + _t("Tasks"), + _t("Log the email on the task"), + _t("Email already logged on the task"), + "projectName", + "", + true, + state.partner.tasks, + ); } function onLogEmailOnTask(state: State, parameters: any) { @@ -35,55 +49,66 @@ function onEmailAlreradyLoggedOnTask() { export function buildTasksView(state: State, card: Card) { const odooServerUrl = getOdooServerUrl(); const partner = state.partner; - const tasks = partner.tasks; - - if (!tasks) { + if (!partner.tasks) { return; } + const tasks = [...partner.tasks].splice(0, 5); + const loggingState = State.getLoggingState(state.email.messageId); - const tasksSection = CardService.newCardSection().setHeader("" + _t("Tasks (%s)", tasks.length) + ""); - const cids = state.odooCompaniesParameter; + const tasksSection = CardService.newCardSection(); - if (state.partner.id) { - tasksSection.addWidget( - CardService.newTextButton().setText(_t("Create")).setOnClickAction(actionCall(state, onCreateTask.name)), - ); + const searchButton = CardService.newImageButton() + .setAltText(_t("Search Tasks")) + .setIconUrl(UI_ICONS.search) + .setOnClickAction(actionCall(state, onSearchClick.name)); - for (let task of tasks) { - let taskButton = null; - if (loggingState["tasks"].indexOf(task.id) >= 0) { - taskButton = CardService.newImageButton() - .setAltText(_t("Email already logged on the task")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreradyLoggedOnTask.name)); - } else { - taskButton = CardService.newImageButton() - .setAltText(_t("Log the email on the task")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, onLogEmailOnTask.name, { - taskId: task.id, - }), - ); - } + const title = partner.taskCount ? _t("Tasks (%s)", partner.taskCount) : _t("Tasks"); + const widget = CardService.newDecoratedText().setText("" + title + ""); + widget.setButton(searchButton); + tasksSection.addWidget(widget); - tasksSection.addWidget( - createKeyValueWidget( - task.projectName, - truncate(task.name, 35), - null, - null, - taskButton, - odooServerUrl + `/web#id=${task.id}&model=project.task&view_type=form${cids}`, - ), - ); + const createButton = CardService.newTextButton() + .setText(_t("New")) + .setOnClickAction(actionCall(state, onCreateTask.name)); + tasksSection.addWidget(createButton); + + for (let task of tasks) { + let taskButton = null; + if (loggingState["project.task"].indexOf(task.id) >= 0) { + taskButton = CardService.newImageButton() + .setAltText(_t("Email already logged on the task")) + .setIconUrl(UI_ICONS.email_logged) + .setOnClickAction(actionCall(state, onEmailAlreradyLoggedOnTask.name)); + } else { + taskButton = CardService.newImageButton() + .setAltText(_t("Log the email on the task")) + .setIconUrl(UI_ICONS.email_in_odoo) + .setOnClickAction( + actionCall(state, onLogEmailOnTask.name, { + taskId: task.id, + }), + ); } - } else if (state.canCreatePartner) { - tasksSection.addWidget(CardService.newTextParagraph().setText(_t("Save the contact to create new tasks."))); - } else { + + tasksSection.addWidget( + createKeyValueWidget( + null, + task.name, + null, + task.projectName, + taskButton, + getOdooRecordURL("project.task", task.id), + ), + ); + } + + if (tasks.length < partner.taskCount) { tasksSection.addWidget( - CardService.newTextParagraph().setText(_t("The Contact needs to exist to create Task.")), + CardService.newTextButton() + .setText(_t("Show all")) + .setTextButtonStyle(CardService.TextButtonStyle["BORDERLESS"]) + .setOnClickAction(actionCall(state, onSearchClick.name)), ); } diff --git a/gmail/src/views/tickets.ts b/gmail/src/views/tickets.ts index a8e686164..a5f25ff05 100644 --- a/gmail/src/views/tickets.ts +++ b/gmail/src/views/tickets.ts @@ -2,27 +2,40 @@ import { buildView } from "../views/index"; import { updateCard } from "./helpers"; import { UI_ICONS } from "./icons"; import { createKeyValueWidget, actionCall, notify, openUrl } from "./helpers"; -import { URLS } from "../const"; import { getOdooServerUrl } from "src/services/app_properties"; import { State } from "../models/state"; import { Ticket } from "../models/ticket"; import { logEmail } from "../services/log_email"; import { _t } from "../services/translation"; +import { getOdooRecordURL } from "src/services/odoo_redirection"; +import { buildSearchRecordView } from "../views/search_records"; function onCreateTicket(state: State) { - const ticketId = Ticket.createTicket(state.partner.id, state.email.body, state.email.subject); + const result = Ticket.createTicket(state.partner, state.email); - if (!ticketId) { + if (!result) { return notify(_t("Could not create the ticket")); } - const cids = state.odooCompaniesParameter; - - const ticketUrl = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - `/web#id=${ticketId}&action=helpdesk_mail_plugin.helpdesk_ticket_action_form_edit&model=helpdesk.ticket&view_type=form${cids}`; + const [ticket, partner] = result; + state.partner = partner; + state.partner.tickets.push(ticket); + state.partner.ticketCount += 1; + return updateCard(buildView(state)); +} - return openUrl(ticketUrl); +function onSearchClick(state: State) { + return buildSearchRecordView( + state, + "helpdesk.ticket", + _t("Tickets"), + _t("Log the email on the ticket"), + _t("Email already logged on the ticket"), + "", + "", + true, + state.partner.tickets, + ); } function onLogEmailOnTicket(state: State, parameters: any) { @@ -40,64 +53,76 @@ function onLogEmailOnTicket(state: State, parameters: any) { return notify(_t("Email already logged on the ticket")); } -function onEmailAlreradyLoggedOnTicket() { +function onEmailAlreadyLoggedOnTicket() { return notify(_t("Email already logged on the ticket")); } export function buildTicketsView(state: State, card: Card) { const odooServerUrl = getOdooServerUrl(); const partner = state.partner; - const tickets = partner.tickets; - - if (!tickets) { + if (!partner.tickets) { + // Helpdesk not installed + // (otherwise we would have an empty array) return; } + const tickets = [...partner.tickets].splice(0, 5); + const loggingState = State.getLoggingState(state.email.messageId); - const ticketsSection = CardService.newCardSection().setHeader("" + _t("Tickets (%s)", tickets.length) + ""); + const ticketsSection = CardService.newCardSection(); + + const searchButton = CardService.newImageButton() + .setAltText(_t("Search Tickets")) + .setIconUrl(UI_ICONS.search) + .setOnClickAction(actionCall(state, onSearchClick.name)); + + const title = partner.ticketCount ? _t("Tickets (%s)", partner.ticketCount) : _t("Tickets"); + const widget = CardService.newDecoratedText().setText("" + title + ""); + widget.setButton(searchButton); + ticketsSection.addWidget(widget); + + const createButton = CardService.newTextButton() + .setText(_t("New")) + .setOnClickAction(actionCall(state, onCreateTicket.name)); + ticketsSection.addWidget(createButton); + + for (let ticket of tickets) { + let ticketButton = null; + if (loggingState["helpdesk.ticket"].indexOf(ticket.id) >= 0) { + ticketButton = CardService.newImageButton() + .setAltText(_t("Email already logged on the ticket")) + .setIconUrl(UI_ICONS.email_logged) + .setOnClickAction(actionCall(state, onEmailAlreadyLoggedOnTicket.name)); + } else { + ticketButton = CardService.newImageButton() + .setAltText(_t("Log the email on the ticket")) + .setIconUrl(UI_ICONS.email_in_odoo) + .setOnClickAction( + actionCall(state, onLogEmailOnTicket.name, { + ticketId: ticket.id, + }), + ); + } - if (state.partner.id) { ticketsSection.addWidget( - CardService.newTextButton().setText(_t("Create")).setOnClickAction(actionCall(state, onCreateTicket.name)), + createKeyValueWidget( + null, + ticket.name, + null, + ticket.stageName, + ticketButton, + getOdooRecordURL("helpdesk.ticket", ticket.id), + ), ); + } - const cids = state.odooCompaniesParameter; - - for (let ticket of tickets) { - let ticketButton = null; - if (loggingState["tickets"].indexOf(ticket.id) >= 0) { - ticketButton = CardService.newImageButton() - .setAltText(_t("Email already logged on the ticket")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreradyLoggedOnTicket.name)); - } else { - ticketButton = CardService.newImageButton() - .setAltText(_t("Log the email on the ticket")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, "onLogEmailOnTicket", { - ticketId: ticket.id, - }), - ); - } - - ticketsSection.addWidget( - createKeyValueWidget( - null, - ticket.name, - null, - null, - ticketButton, - odooServerUrl + `/web#id=${ticket.id}&model=helpdesk.ticket&view_type=form${cids}`, - ), - ); - } - } else if (state.canCreatePartner) { - ticketsSection.addWidget(CardService.newTextParagraph().setText(_t("Save the contact to create new tickets."))); - } else { + if (tickets.length < partner.ticketCount) { ticketsSection.addWidget( - CardService.newTextParagraph().setText(_t("The Contact needs to exist to create Ticket.")), + CardService.newTextButton() + .setText(_t("Show all")) + .setTextButtonStyle(CardService.TextButtonStyle["BORDERLESS"]) + .setOnClickAction(actionCall(state, onSearchClick.name)), ); } From beefaeecb43013da598b36e691e37d04b8d035dc Mon Sep 17 00:00:00 2001 From: std-odoo Date: Mon, 15 Dec 2025 09:03:18 +0100 Subject: [PATCH 4/7] [IMP] gmail: move from appscript to HTTP addin Purpose ======= The current addin is slow, because of how appscript work (Google host a web server, with our app running, that server restart at each call, the language itself is synchronous...). In alternative way of creating addin, is to host the application ourselves. It's faster because we can keep the server alive, and we can make the HTTP calls in parallel (to the Gmail API and to the Odoo database). > https://developers.google.com/workspace/add-ons/guides/alternate-runtimes We choose to use node with express, because it's asynchronous, and we will make a lot of request (to the Odoo database, to the Gmail API, etc). Also, most of the code can be re-used (the core logic). The main changes compared to appscript are - we need to store the user settings ourselves (and we use psql for that) - so the translations and the email logging state is moved to the user (it's considered as "User Settings / Information"). - to build the view, our endpoints need to return JSON, so we created some helper classes similar to the one use by appscript (no official library exists for that at the moment, for typescript) The application has been kept as similar as the one using appscript as possible (the execution of action, with the state of the current page is sent in the response). Task-4727609 --- gmail/.clasp.json | 4 - gmail/.claspignore | 13 - gmail/.prettierignore | 2 + gmail/.prettierrc | 5 +- gmail/README.md | 95 ++----- gmail/appsscript.json | 73 ------ gmail/assets/img/odoo.png | Bin 2232 -> 0 bytes gmail/assets/img/odoo_full.png | Bin 9920 -> 0 bytes gmail/assets/img/readme.png | Bin 50518 -> 0 bytes gmail/deployment.json | 26 ++ gmail/iap_instruction.md | 13 - gmail/init_db.sql | 25 ++ gmail/package.json | 40 ++- gmail/rollup.config.js | 37 --- gmail/src/{const.ts => consts.ts} | 10 + gmail/src/global.d.ts | 6 - gmail/src/index.ts | 154 +++++++++++ gmail/src/main.ts | 53 ---- gmail/src/models/email.ts | 228 +++++++++++++---- gmail/src/models/error_message.ts | 26 +- gmail/src/models/lead.ts | 29 ++- gmail/src/models/partner.ts | 57 ++--- gmail/src/models/project.ts | 32 +-- gmail/src/models/state.ts | 105 +------- gmail/src/models/task.ts | 28 +- gmail/src/models/ticket.ts | 29 +-- gmail/src/models/user.ts | 174 +++++++++++++ gmail/src/services/app_properties.ts | 6 - gmail/src/services/log_email.ts | 36 +-- gmail/src/services/odoo_auth.ts | 138 +++------- gmail/src/services/odoo_redirection.ts | 6 +- gmail/src/services/search_records.ts | 26 +- gmail/src/services/translation.ts | 64 ++--- gmail/src/utils/actions.ts | 206 +++++++++++++++ gmail/src/utils/components.ts | 340 +++++++++++++++++++++++++ gmail/src/utils/db.ts | 17 ++ gmail/src/utils/format.ts | 10 - gmail/src/utils/html.ts | 9 - gmail/src/utils/http.ts | 37 +-- gmail/src/views/card_actions.ts | 38 +-- gmail/src/views/create_task.ts | 212 ++++++++------- gmail/src/views/debug.ts | 70 +++-- gmail/src/views/helpers.ts | 128 ---------- gmail/src/views/index.ts | 16 -- gmail/src/views/leads.ts | 196 ++++++++------ gmail/src/views/login.ts | 157 +++++------- gmail/src/views/partner.ts | 75 +++--- gmail/src/views/partner_actions.ts | 113 ++++---- gmail/src/views/search_partner.ts | 191 ++++++++------ gmail/src/views/search_records.ts | 245 ++++++++++-------- gmail/src/views/tasks.ts | 190 +++++++++----- gmail/src/views/tickets.ts | 192 ++++++++------ gmail/tsconfig.json | 18 +- 53 files changed, 2330 insertions(+), 1670 deletions(-) delete mode 100644 gmail/.clasp.json delete mode 100644 gmail/.claspignore create mode 100644 gmail/.prettierignore delete mode 100644 gmail/appsscript.json delete mode 100644 gmail/assets/img/odoo.png delete mode 100644 gmail/assets/img/odoo_full.png delete mode 100644 gmail/assets/img/readme.png create mode 100644 gmail/deployment.json delete mode 100644 gmail/iap_instruction.md create mode 100644 gmail/init_db.sql delete mode 100644 gmail/rollup.config.js rename gmail/src/{const.ts => consts.ts} (74%) delete mode 100644 gmail/src/global.d.ts create mode 100644 gmail/src/index.ts delete mode 100644 gmail/src/main.ts create mode 100644 gmail/src/models/user.ts delete mode 100644 gmail/src/services/app_properties.ts create mode 100644 gmail/src/utils/actions.ts create mode 100644 gmail/src/utils/components.ts create mode 100644 gmail/src/utils/db.ts delete mode 100644 gmail/src/utils/html.ts delete mode 100644 gmail/src/views/helpers.ts delete mode 100644 gmail/src/views/index.ts diff --git a/gmail/.clasp.json b/gmail/.clasp.json deleted file mode 100644 index fa7fcc7bd..000000000 --- a/gmail/.clasp.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "scriptId": "1wAzxJBkBYbIs_P2K76RpoBGovgjNNfSoRASf7660wgkxwYa89WZmh2gS", - "projectId": "odoo-gmail-304313" -} diff --git a/gmail/.claspignore b/gmail/.claspignore deleted file mode 100644 index 36f2a398f..000000000 --- a/gmail/.claspignore +++ /dev/null @@ -1,13 +0,0 @@ -.git -.git/* -node_modules -node_modules/** -node_modules/**/.*/** -node_modules/**/.* - -# ignore all files… -**/** - -# include appscript and build result -!appsscript.json -!build/*.js diff --git a/gmail/.prettierignore b/gmail/.prettierignore new file mode 100644 index 000000000..1eae0cf67 --- /dev/null +++ b/gmail/.prettierignore @@ -0,0 +1,2 @@ +dist/ +node_modules/ diff --git a/gmail/.prettierrc b/gmail/.prettierrc index c219035ac..e4a483fb7 100644 --- a/gmail/.prettierrc +++ b/gmail/.prettierrc @@ -3,5 +3,8 @@ "trailingComma": "all", "singleQuote": false, "printWidth": 100, - "tabWidth": 4 + "tabWidth": 4, + "plugins": [ + "prettier-plugin-organize-imports" + ] } diff --git a/gmail/README.md b/gmail/README.md index 36b4ad7f8..2e3d313fb 100644 --- a/gmail/README.md +++ b/gmail/README.md @@ -2,89 +2,28 @@ This addons allows you to find information about the sender of the emails you received and also to link your Gmail contacts to your Odoo partners, to create leads from Gmail,... -![Odoo Gmail Extension](./assets/img/readme.png) - # Development -## Requirements -First you need npm, -> apt-get install -y npm - -Install the dependencies -> npm install - -## Prettier -You should auto-format the code using the prettier configuration, -> `npx prettier --config .prettierrc 'src/**/*.ts' --write` - -## Compiling - -We use [rollup.js](https://github.com/rollup/rollup) to package all of the source files into a single one. -This is necessary as App Scripts do not support ES6 import/export statements yet. - -Once you have applied the necessary changes, run the following command: -> npx rollup -c - -This will simultaneously compile and package the typescript sourcecode inside `build/main.js` - -Now all you need to do is upload the script to your account and deploy it! - -## Uploading method 1: Manually copying the file -If you do not plan on updating this script regularly, perhaps you will prefer using Google's GUI. - -- Head to [the App Scripts manager](https://script.google.com/) and create a project -- Go to the project settings and enable appscript.json editing: `Show "appsscript.json" manifest file in editor` -- Copy the contents of your local `appscript.json` to the remote one in the project editor -- Create a file `main.gs` and remove the existing `Code.gs` if any. -- Copy the contents of your local `build/main.js` to the `main.gs` file in the project editor +Create the database and fill the credentials in `consts.ts` +> psql -U root -d postgres -f init_db.sql -## Uploading method 2: Using Clasp -You may want to use the Google's CLI tool [clasp](https://github.com/google/clasp) to manage, compile and update your app script. +Run ngrok to get a public URL redirecting to the local port 5000 +> ngrok http 5000 -First install -> npm install -g @google/clasp - -Login to your account to be able to push on your Gmail project, -> clasp login - -Note: the `--no-localhost` option we previously recommended was [deprecated by google](https://developers.google.com/identity/protocols/oauth2/resources/oob-migration) - -### If you already have a project -Update `.clasp.json` to use your own script id and project. -If you do not have a specific project, use `Default`. - -### If you do not have a project yet -Remove `.clasp.json` - -Create a project -> clasp create - -For the project type, select "api". - -### Push your project -Push the project -> clasp push - - -# Deployment -Finally, you can enable the add-on for your account. - -Head to [the App Scripts manager](https://script.google.com/). -- Select your project and click "Deploy". -- For testing on your account just select "Test deployments". "Google Workspace Add-on" should be automatically selected as the type. -- Click "Install" and the add-on should appear in the addons tab of Gmail. +Then run +> npm install +> npm run dev -You're done! +Go to this page: +https://console.cloud.google.com/apis/api/appsmarket-component.googleapis.com/googleapps_sdk_gsao -For final deployments you will need to create a Google Cloud Project with the GMail API and link it to this script. -Refer to Google's documentation for more information. +Then create an HTTP deployment using `deployment.json`, and update the URL in `onTriggerFunction` to contain your ngrok URL. -# Documentation -`GmailApp` object, -https://developers.google.com/apps-script/reference/gmail/gmail-app +Then click on "install", and the addin will be available in your Gmail account. -`URL fetch API` -https://developers.google.com/apps-script/reference/url-fetch +Before committing, run prettier +> npm run prettier -`Storage` -https://developers.google.com/apps-script/reference/cache -https://developers.google.com/apps-script/reference/properties +# Production +Update the `CLIENT_ID` and the public URL in `consts.ts`, then run +> npm run build +> node dist diff --git a/gmail/appsscript.json b/gmail/appsscript.json deleted file mode 100644 index c8f59bed6..000000000 --- a/gmail/appsscript.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "oauthScopes": [ - "https://www.googleapis.com/auth/userinfo.email", - "https://www.googleapis.com/auth/gmail.addons.execute", - "https://www.googleapis.com/auth/gmail.addons.current.message.readonly", - "https://www.googleapis.com/auth/script.external_request" - ], - "gmail": { - "name": "Odoo", - "logoUrl": "https://raw.githubusercontent.com/odoo/mail-client-extensions/master/outlook/assets/odoo.png", - "contextualTriggers": [ - { - "unconditional": {}, - "onTriggerFunction": "onGmailMessageOpen" - } - ], - "primaryColor": "#875A7B", - "secondaryColor": "#00A09D", - "openLinkUrlPrefixes": ["*"] - }, - "urlFetchWhitelist": [ - "https://*.odoo.com/mail_plugin/get_translations", - "https://*.odoo.com/mail_plugin/partner/get", - "https://*.odoo.com/mail_plugin/log_mail_content", - "https://*.odoo.com/mail_plugin/search_records/res.partner", - "https://*.odoo.com/mail_plugin/redirect_to_record/res.partner", - "https://*.odoo.com/mail_plugin/partner/create", - "https://*.odoo.com/mail_plugin/partner/enrich_and_create_company", - "https://*.odoo.com/mail_plugin/partner/enrich_and_update_company", - "https://*.odoo.com/mail_plugin/search_records/crm.lead", - "https://*.odoo.com/mail_plugin/redirect_to_record/crm.lead", - "https://*.odoo.com/mail_plugin/lead/create", - "https://*.odoo.com/mail_plugin/search_records/helpdesk.ticket", - "https://*.odoo.com/mail_plugin/redirect_to_record/helpdesk.ticket", - "https://*.odoo.com/mail_plugin/ticket/create", - "https://*.odoo.com/mail_plugin/search_records/project.task", - "https://*.odoo.com/mail_plugin/redirect_to_record/project.task", - "https://*.odoo.com/mail_plugin/search_records/project.project", - "https://*.odoo.com/mail_plugin/redirect_to_record/project.project", - "https://*.odoo.com/mail_plugin/project/create", - "https://*.odoo.com/mail_plugin/task/create", - "https://*.odoo.com/web/login", - "https://*.odoo.com/mail_plugin/auth", - "https://*.odoo.com/mail_plugin/auth/access_token", - "https://*.odoo.com/mail_plugin/auth/check_version", - - "https://odoo.com/mail_plugin/get_translations", - "https://odoo.com/mail_plugin/partner/get", - "https://odoo.com/mail_plugin/log_mail_content", - "https://odoo.com/mail_plugin/search_records/res.partner", - "https://odoo.com/mail_plugin/redirect_to_record/res.partner", - "https://odoo.com/mail_plugin/partner/create", - "https://odoo.com/mail_plugin/partner/enrich_and_create_company", - "https://odoo.com/mail_plugin/partner/enrich_and_update_company", - "https://odoo.com/mail_plugin/search_records/crm.lead", - "https://odoo.com/mail_plugin/redirect_to_record/crm.lead", - "https://odoo.com/mail_plugin/search_records/helpdesk.ticket", - "https://odoo.com/mail_plugin/redirect_to_record/helpdesk.ticket", - "https://odoo.com/mail_plugin/lead/create", - "https://odoo.com/mail_plugin/ticket/create", - "https://odoo.com/mail_plugin/search_records/project.task", - "https://odoo.com/mail_plugin/redirect_to_record/project.task", - "https://odoo.com/mail_plugin/search_records/project.project", - "https://odoo.com/mail_plugin/redirect_to_record/project.project", - "https://odoo.com/mail_plugin/project/create", - "https://odoo.com/mail_plugin/task/create", - "https://odoo.com/web/login", - "https://odoo.com/mail_plugin/auth", - "https://odoo.com/mail_plugin/auth/access_token", - "https://odoo.com/mail_plugin/auth/check_version" - ], - "runtimeVersion": "V8" -} diff --git a/gmail/assets/img/odoo.png b/gmail/assets/img/odoo.png deleted file mode 100644 index 3d83a91f99eda991f901d178f30b903a5ba9b7d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2232 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 z 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 diff --git a/gmail/deployment.json b/gmail/deployment.json new file mode 100644 index 000000000..8b9c1b0ef --- /dev/null +++ b/gmail/deployment.json @@ -0,0 +1,26 @@ +{ + "oauthScopes": [ + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/gmail.addons.execute", + "https://www.googleapis.com/auth/gmail.addons.current.message.readonly" + ], + "addOns": { + "common": { + "name": "Odoo", + "logoUrl": "https://raw.githubusercontent.com/odoo/mail-client-extensions/master/outlook/assets/odoo.png" + }, + "gmail": { + "primaryColor": "#875A7B", + "secondaryColor": "#00A09D", + "contextualTriggers": [ + { + "unconditional": {}, + "onTriggerFunction": "https://mister7f.xyz/on_open_email" + } + ] + }, + "httpOptions": { + "granularOauthPermissionSupport": "OPT_IN" + } + } +} diff --git a/gmail/iap_instruction.md b/gmail/iap_instruction.md deleted file mode 100644 index 30722153b..000000000 --- a/gmail/iap_instruction.md +++ /dev/null @@ -1,13 +0,0 @@ -# Shared secret between IAP and the add-on -Go to your Google project, -> clasp open - -Then File -> Project properties -> Script Properties - -And add a row, -> `ODOO_SHARED_SECRET` `` - -On the IAP side, add a system parameter -> `iap_mail_extension.shared_secret` `` - -This secret will allow the add-on to authenticate to IAP. diff --git a/gmail/init_db.sql b/gmail/init_db.sql new file mode 100644 index 000000000..10d2bb281 --- /dev/null +++ b/gmail/init_db.sql @@ -0,0 +1,25 @@ +CREATE DATABASE gmail_addin_db; + +\c gmail_addin_db; + +CREATE TABLE users_settings ( + id SERIAL PRIMARY KEY, + email TEXT UNIQUE NOT NULL, + odoo_url TEXT, + odoo_token TEXT, + login_token TEXT, + login_token_expire_at TIMESTAMP WITH TIME ZONE, + translations JSON, + translations_expire_at TIMESTAMP WITH TIME ZONE +); + +-- Remember that the user logged the email on the giver record +CREATE TABLE email_logs ( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + message_id TEXT NOT NULL, + res_id INTEGER NOT NULL, + res_model TEXT NOT NULL, + create_date TIMESTAMP WITH TIME ZONE DEFAULT NOW(), + FOREIGN KEY (user_id) REFERENCES users_settings(id) ON DELETE CASCADE +); diff --git a/gmail/package.json b/gmail/package.json index 7dfefad83..e1966f402 100644 --- a/gmail/package.json +++ b/gmail/package.json @@ -1,11 +1,35 @@ { - "devDependencies": { - "@rollup/plugin-node-resolve": "^15.0.2", - "@rollup/plugin-typescript": "^11.1.1", - "@types/google-apps-script": "^2.0.4", - "prettier": "^2.2.1", - "rollup": "^3.22.0", - "tslib": "^2.5.3" + "name": "gmail_http", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "dev": "concurrently \"tsx watch src/index.ts\" \"npm run typecheck\"", + "typecheck": "tsc --noEmit --watch", + "build": "rm -rf dist && tsc", + "start": "node dist/index.js", + "prettier": "prettier --write 'src/**/*.ts'" + }, + "author": "", + "license": "", + "description": "", + "dependencies": { + "dotenv": "^17.2.3", + "express": "^5.2.1", + "express-async-handler": "^1.2.0", + "google-auth-library": "^10.5.0", + "googleapis": "^167.0.0", + "mailparser": "^3.9.0", + "node-cron": "^4.2.1", + "pg": "^8.16.3" }, - "type": "module" + "devDependencies": { + "@types/express": "^5.0.6", + "@types/node": "^24.10.1", + "@types/pg": "^8.15.6", + "concurrently": "^9.2.1", + "prettier": "^3.7.4", + "prettier-plugin-organize-imports": "^4.3.0", + "tsx": "^4.21.0", + "typescript": "^5.9.3" + } } diff --git a/gmail/rollup.config.js b/gmail/rollup.config.js deleted file mode 100644 index c57394761..000000000 --- a/gmail/rollup.config.js +++ /dev/null @@ -1,37 +0,0 @@ -import typescript from "@rollup/plugin-typescript"; -import { nodeResolve } from "@rollup/plugin-node-resolve"; - -const extensions = [".ts"]; - -/** - * Prevent tree-shaking the entry-point - * by not shaking any module that isn't imported by anyone. - * @returns side-effects or nothing - */ -function preventEntrypointShakingPlugin() { - return { - name: "no-treeshaking", - resolveId(id, importer) { - if (!importer) { - return { id, moduleSideEffects: "no-treeshake" }; - } - return null; - }, - }; -} - -export default { - input: "./src/main.ts", - output: { - dir: "./build", - format: "esm", - sourcemap: true, - }, - plugins: [ - preventEntrypointShakingPlugin(), - nodeResolve({ - extensions, - }), - typescript(), - ], -}; diff --git a/gmail/src/const.ts b/gmail/src/consts.ts similarity index 74% rename from gmail/src/const.ts rename to gmail/src/consts.ts index 091b039c6..dc756ef98 100644 --- a/gmail/src/const.ts +++ b/gmail/src/consts.ts @@ -1,3 +1,13 @@ +export const HOST = "https://mister7f.xyz"; +export const CLIENT_ID = "36859136832-1fiif7tqkl57sck2e80349oetgbhrb3a.apps.googleusercontent.com"; + +// PSQL config +export const PSQL_USER = "root"; +export const PSQL_PASS = "root"; +export const PSQL_DB = "gmail_addin_db"; +export const PSQL_HOST = "localhost"; +export const PSQL_PORT = 5432; + export const URLS: Record = { GET_TRANSLATIONS: "/mail_plugin/get_translations", LOG_EMAIL: "/mail_plugin/log_mail_content", diff --git a/gmail/src/global.d.ts b/gmail/src/global.d.ts deleted file mode 100644 index 7be5c3cae..000000000 --- a/gmail/src/global.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare let global: any; -type Card = any; -type ActionEvent = any; -type CardSection = any; -type Button = any; -type GmailAttachment = any; diff --git a/gmail/src/index.ts b/gmail/src/index.ts new file mode 100644 index 000000000..a98e16792 --- /dev/null +++ b/gmail/src/index.ts @@ -0,0 +1,154 @@ +import express from "express"; +import asyncHandler from "express-async-handler"; +import { google } from "googleapis"; +import cron from "node-cron"; +import { Email } from "./models/email"; +import { Partner } from "./models/partner"; +import { State } from "./models/state"; +import { User } from "./models/user"; +import { odooAuthCallback } from "./services/odoo_auth"; +import { Translate } from "./services/translation"; +import { getEventHandler } from "./utils/actions"; +import pool from "./utils/db"; +import { getLoginMainView } from "./views/login"; +import { getPartnerView } from "./views/partner"; +import { getSearchPartnerView } from "./views/search_partner"; + +const gmail = google.gmail({ version: "v1" }); + +const app = express(); +app.use(express.json()); + +/** + * Once a day, clean the old email log table. + */ +cron.schedule("0 0 * * *", async () => { + console.log("Clean the email logging table..."); + await pool.query( + ` + DELETE FROM email_logs + WHERE create_date < NOW() - INTERVAL '1 month' + `, + ); +}); + +/** + * Endpoint called the first time the user open an email, or when reloading. + */ +app.post( + "/on_open_email", + asyncHandler(async (req, res) => { + const [user, headers] = await Promise.all([ + User.getUserFromGoogleToken(req.body), + Email.getEmailHeadersFromGoogleToken(req.body), + ]); + + if (!user.odooUrl?.length || !user.odooToken?.length) { + res.json((await getLoginMainView(user)).build()); + return; + } + + const email = await Email.getEmailFromHeaders(req.body, headers, user); + + if (email.contacts.length > 1) { + // More than one contact, we will need to choose the right one + const [_t, [searchedPartners, error]] = await Promise.all([ + Translate.getTranslations(user), + Partner.searchPartner( + user, + email.contacts.map((c) => c.email), + ), + ]); + + if (error.code) { + res.json((await getLoginMainView(user)).build()); + return; + } + const existingPartnersEmails = searchedPartners.map((p) => p.email); + for (const contact of email.contacts) { + if (existingPartnersEmails.includes(contact.email)) { + continue; + } + searchedPartners.push( + Partner.fromJson({ name: contact.name, email: contact.email }), + ); + } + + const state = new State(null, false, email, searchedPartners, null, false); + const searchPartnerView = await getSearchPartnerView( + state, + _t, + user, + "", + false, + _t("In this conversation"), + true, + true, + ); + res.json(searchPartnerView.build()); + return; + } + + // Only one partner, we can open the view immediately + const [_t, [partner, canCreatePartner, canCreateProject, error]] = await Promise.all([ + Translate.getTranslations(user), + Partner.getPartner(user, email.contacts[0].name, email.contacts[0].email), + ]); + + if (error.code) { + res.json((await getLoginMainView(user)).build()); + return; + } + + const state = new State(partner, canCreatePartner, email, null, null, canCreateProject); + + res.json(getPartnerView(state, _t, user).build()); + }), +); + +/** + * Callback called by the addin when it executes an action. + */ +app.post( + "/execute_action", + asyncHandler(async (req, res) => { + const user = await User.getUserFromGoogleToken(req.body); + + const _t = await Translate.getTranslations(user); + + const rawFormInputs = req.body.commonEventObject.formInputs || {}; + const formInputs = Object.fromEntries( + Object.entries(rawFormInputs).map(([key, value]) => [ + key, + value["stringInputs"]["value"][0], + ]), + ); + const parameters = req.body.commonEventObject.parameters; + const functionName = parameters.functionName; + const state = parameters.state && State.fromJson(parameters.state); + const args = JSON.parse(parameters.arguments || "{}"); + + if (state?.email) { + // Update the Gmail tokens + state.email.userOAuthToken = req.body.authorizationEventObject.userOAuthToken; + state.email.accessToken = req.body.gmail.accessToken; + } + + const result = await getEventHandler(functionName)(state, _t, user, args, formInputs); + res.json(result.build()); + }), +); + +app.get( + "/auth_callback", + asyncHandler(async (req, res) => { + res.send(await odooAuthCallback(req)); + }), +); + +const server = app.listen(5000, () => { + const address = server.address(); + if (typeof address === "object" && address?.port) { + console.log("Running on port", address.port); + } +}); diff --git a/gmail/src/main.ts b/gmail/src/main.ts deleted file mode 100644 index 7751c0e14..000000000 --- a/gmail/src/main.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { buildView } from "./views/index"; -import { Email } from "./models/email"; -import { State } from "./models/state"; -import { Partner } from "./models/partner"; -import { _t } from "./services/translation"; -import { buildLoginMainView } from "./views/login"; - -/** - * Entry point of the application, executed when an email is open. - * - * If the user is not connected to a Odoo database, we will contact IAP and enrich the - * domain of the op penned email. - * - * If the user is connected to a Odoo database, we will fetch the corresponding partner - * and other information like his leads, tickets, company... - */ -function onGmailMessageOpen(event) { - GmailApp.setCurrentMessageAccessToken(event.messageMetadata.accessToken); - const currentEmail = new Email(event.gmail.messageId, event.gmail.accessToken); - - let state = null; - if (currentEmail.contacts.length > 1) { - // More than one contact, we will need to choose the right one - const [searchedPartners, error] = Partner.searchPartner( - currentEmail.contacts.map((c) => c.email), - ); - if (error.code) { - return buildLoginMainView(); - } - const existingPartnersEmails = searchedPartners.map((p) => p.email); - - for (const contact of currentEmail.contacts) { - if (existingPartnersEmails.includes(contact.email)) { - continue; - } - searchedPartners.push(Partner.fromJson({ name: contact.name, email: contact.email })); - } - - state = new State(null, false, currentEmail, searchedPartners, null, false); - } else { - const [partner, canCreatePartner, canCreateProject, error] = Partner.getPartner( - currentEmail.contacts[0].name, - currentEmail.contacts[0].email, - ); - if (error.code) { - return buildLoginMainView(); - } - - state = new State(partner, canCreatePartner, currentEmail, null, null, canCreateProject); - } - - return [buildView(state)]; -} diff --git a/gmail/src/models/email.ts b/gmail/src/models/email.ts index 6161e6a4e..43f543421 100644 --- a/gmail/src/models/email.ts +++ b/gmail/src/models/email.ts @@ -1,45 +1,125 @@ +import { OAuth2Client } from "google-auth-library"; +import { google } from "googleapis"; +import { simpleParser } from "mailparser"; import { ErrorMessage } from "../models/error_message"; +import pool from "../utils/db"; +import { User } from "./user"; + +const gmail = google.gmail({ version: "v1" }); /** * Represent the current email open in the Gmail application. */ export class Email { + userOAuthToken: string; accessToken: string; messageId: string; subject: string; - body: string; - timestamp: number; emailFrom: string; contacts: EmailContact[]; - // When asking for the attachments, a long moment after opening - // the addon, then the token to get the Gmail Message expired - // so we cache the result and ask it when loading the app - _attachmentsParsed: [string[][], ErrorMessage]; + // Store on which record the current email has been logged + // >>> {"res.partner": [1, 2, 3]} + loggingState: Record; + + constructor( + userOAuthToken: string, + accessToken: string, + messageId: string, + subject: string, + emailFrom: string, + contacts: EmailContact[], + loggingState: Record, + ) { + this.userOAuthToken = userOAuthToken; + this.accessToken = accessToken; + this.messageId = messageId; + this.subject = subject; + this.emailFrom = emailFrom; + this.contacts = contacts; + this.loggingState = loggingState; + } + + /** + * Use the token we receive from Google to get the information about the opened email. + * + * Only get the headers of the email to not slow down the application + * (if we don't log the email, we only need the contacts that are in + * the email, we can delay the fetching of the email body and + * the attachments). + */ + static async getEmailHeadersFromGoogleToken(event: any): Promise> { + const messageId = event.gmail.messageId; + const auth = new OAuth2Client(); + auth.setCredentials({ access_token: event.authorizationEventObject.userOAuthToken }); + // @ts-ignore + const gmailResponse = await gmail.users.messages.get({ + id: messageId, + userId: "me", + format: "metadata", + auth, + headers: { "X-Goog-Gmail-Access-Token": event.gmail.accessToken }, + }); + // @ts-ignore + const rawHeaders = gmailResponse.data.payload.headers; + return Object.fromEntries(rawHeaders.map((h) => [h.name.toLowerCase(), h.value])); + } + + /** + * Once we got the headers and the user from the Gmail API, + * we can build the `Email` object. + */ + static async getEmailFromHeaders( + event: any, + headers: Record, + user: User, + ): Promise { + const userEmail = user.email.toLowerCase(); + const contacts = [ + ...this._emailSplitTuple(headers["to"] || "", userEmail), + ...this._emailSplitTuple(headers["from"] || "", userEmail), + ...this._emailSplitTuple(headers["cc"] || "", userEmail), + ...this._emailSplitTuple(headers["bcc"] || "", userEmail), + ]; - constructor(messageId: string = null, accessToken: string = null) { - if (messageId) { - const userEmail = Session.getEffectiveUser().getEmail().toLowerCase(); + return new Email( + event.authorizationEventObject.userOAuthToken, + event.gmail.accessToken, + event.gmail.messageId, + headers["subject"] || "", + headers["from"] || "", + contacts, + await this._getLoggingState(user, event.gmail.messageId), + ); + } - this.accessToken = accessToken; + /** + * Fetch the information in the email that require the full EML. + */ + async getBodyAndAttachments(): Promise<[string, number, [string[][], ErrorMessage]]> { + const auth = new OAuth2Client(); + auth.setCredentials({ access_token: this.userOAuthToken }); - this.messageId = messageId; - const message = GmailApp.getMessageById(this.messageId); - this.subject = message.getSubject(); - this.body = message.getBody(); - this.timestamp = message.getDate().getTime(); - this.emailFrom = message.getFrom(); + // @ts-ignore + const gmailResponse = await gmail.users.messages.get({ + id: this.messageId, + userId: "me", + format: "raw", + auth, + headers: { "X-Goog-Gmail-Access-Token": this.accessToken }, + }); - this._attachmentsParsed = this.getAttachments(); + // @ts-ignore + const messageEmlB64 = gmailResponse.data.raw; + const messageEml = atob(messageEmlB64.replaceAll("-", "+").replaceAll("_", "/")); - this.contacts = [ - ...this._emailSplitTuple(message.getTo(), userEmail), - ...this._emailSplitTuple(this.emailFrom, userEmail), - ...this._emailSplitTuple(message.getCc(), userEmail), - ...this._emailSplitTuple(message.getBcc(), userEmail), - ]; - } + const mail = await simpleParser(messageEml); + return [ + mail.html || mail.text || "", + mail.date.getTime(), + this._getAttachments(mail.attachments), + ]; } /** @@ -70,7 +150,7 @@ export class Email { * ["bob@example.com", "bob@example.com"] * ] */ - _emailSplitTuple(fullEmail: string, userEmail: string): EmailContact[] { + private static _emailSplitTuple(fullEmail: string, userEmail: string): EmailContact[] { const contacts = []; const re = /(.*?)<(.*?)>/; for (const part of fullEmail.split(",")) { @@ -95,19 +175,15 @@ export class Email { * Unserialize the email object (reverse JSON.stringify). */ static fromJson(values: any): Email { - const email = new Email(); - email.accessToken = values.accessToken; - email.messageId = values.messageId; - email.subject = values.subject; - email.body = values.body; - email.timestamp = values.timestamp; - email.emailFrom = values.emailFrom; - email.contacts = values.contacts.map((c) => EmailContact.fromJson(c)); - email._attachmentsParsed = [ - values._attachmentsParsed[0], - ErrorMessage.fromJson(values._attachmentsParsed[1]), - ]; - return email; + return new Email( + values.userOAuthToken, + values.accessToken, + values.messageId, + values.subject, + values.emailFrom, + values.contacts.map((c) => EmailContact.fromJson(c)), + values.loggingState, + ); } /** @@ -121,13 +197,7 @@ export class Email { * - If no attachment, return an empty array and an empty error message. * - Otherwise, the list of attachments base 64 encoded and an empty error message */ - getAttachments(): [string[][], ErrorMessage] { - if (this._attachmentsParsed) { - return this._attachmentsParsed; - } - GmailApp.setCurrentMessageAccessToken(this.accessToken); - const message = GmailApp.getMessageById(this.messageId); - const gmailAttachments = message.getAttachments(); + private _getAttachments(gmailAttachments): [string[][], ErrorMessage] { const attachments: string[][] = []; // The size limit of the POST request are 50 MB @@ -137,20 +207,80 @@ export class Email { let totalAttachmentsSize = 0; for (const gmailAttachment of gmailAttachments) { - const bytesSize = gmailAttachment.getSize(); + if (gmailAttachment.contentDisposition === "inline") { + // Outlook inline images + continue; + } + const bytesSize = gmailAttachment.content.length; totalAttachmentsSize += bytesSize; if (totalAttachmentsSize > MAXIMUM_ATTACHMENTS_SIZE) { return [null, new ErrorMessage("attachments_size_exceeded")]; } - - const name = gmailAttachment.getName(); - const content = Utilities.base64Encode(gmailAttachment.getBytes()); + const name = gmailAttachment.filename; + const content = gmailAttachment.content.toString("base64"); attachments.push([name, content]); } return [attachments, new ErrorMessage(null)]; } + + /** + * Save the fact that we logged the email on the record, in the cache. + * + * Returns: + * True if the record was not yet marked as "logged" + * False if we already logged the email on the record + */ + async setLoggingState(user: User, resModel: string, resId: number) { + this.loggingState[resModel].push(resId); + await pool.query( + ` + INSERT INTO email_logs (user_id, message_id, res_id, res_model) + VALUES ($1, $2, $3, $4) + `, + [user.id, this.messageId, resId, resModel], + ); + } + + /** + * Check if the email has not been logged on the record. + * + * Returns: + * True if the record was not yet marked as "logged" + * False if we already logged the email on the record + */ + checkLoggingState(resModel: string, resId: number): boolean { + return this.loggingState[resModel].includes(resId); + } + + /** + * Get the logging state for the current email + * (that way, we do only one query for all the records we will see), + */ + private static async _getLoggingState( + user: User, + messageId: string, + ): Promise> { + const result = await pool.query( + ` + SELECT res_model, res_id + FROM email_logs + WHERE user_id = $1 AND message_id = $2 + `, + [user.id, messageId], + ); + const ret: Record = { + "res.partner": [], + "crm.lead": [], + "helpdesk.ticket": [], + "project.task": [], + }; + for (const row of result.rows) { + ret[row.res_model].push(row.res_id); + } + return ret; + } } export class EmailContact { diff --git a/gmail/src/models/error_message.ts b/gmail/src/models/error_message.ts index 5bad47967..c5f5a747a 100644 --- a/gmail/src/models/error_message.ts +++ b/gmail/src/models/error_message.ts @@ -1,5 +1,3 @@ -import { _t } from "../services/translation"; - /** * Represent an error and translate its code to a message. */ @@ -19,27 +17,15 @@ const _ERROR_CODE_MESSAGES: Record = { */ export class ErrorMessage { code: string; - message: string; - information: string; + private message: string; constructor(code: string = null, information: any = null) { - if (code) { - this.setError(code, information); - } + this.code = code; + this.message = information || _ERROR_CODE_MESSAGES[code] || _ERROR_CODE_MESSAGES["unknown"]; } - /** - * Set the code error and find the appropriate message to display. - */ - setError(code: string, information: any = null) { - if (code === "no_data") { - code = "missing_data"; - information = null; - } - - this.code = code; - this.information = information; - this.message = information || _t(_ERROR_CODE_MESSAGES[this.code]); + toString(_t: Function): string { + return _t(this.message); } /** @@ -47,9 +33,7 @@ export class ErrorMessage { */ static fromJson(values: any) { const error = new ErrorMessage(); - error.code = values.code; error.message = values.message; - error.information = values.information; return error; } } diff --git a/gmail/src/models/lead.ts b/gmail/src/models/lead.ts index 6062a99ff..ac8b87af1 100644 --- a/gmail/src/models/lead.ts +++ b/gmail/src/models/lead.ts @@ -1,9 +1,8 @@ +import { URLS } from "../consts"; import { postJsonRpc } from "../utils/http"; -import { URLS } from "../const"; -import { getAccessToken } from "src/services/odoo_auth"; -import { _t } from "../services/translation"; -import { Partner } from "./partner"; import { Email } from "./email"; +import { Partner } from "./partner"; +import { User } from "./user"; /** * Represent a "crm.lead" record. @@ -17,22 +16,24 @@ export class Lead { * Make a RPC call to the Odoo database to create a lead * and return the ID of the newly created record. */ - static createLead(partner: Partner, email: Email): [Lead, Partner] | null { - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_LEAD; - const accessToken = getAccessToken(); - const [attachments, _] = email.getAttachments(); - const response = postJsonRpc( - url, + static async createLead( + user: User, + partner: Partner, + email: Email, + ): Promise<[Lead, Partner] | null> { + const [body, _, attachmentsParsed] = await email.getBodyAndAttachments(); + + const response = await postJsonRpc( + user.odooUrl + URLS.CREATE_LEAD, { - email_body: email.body, + email_body: body, email_subject: email.subject, partner_id: partner.id, partner_email: partner.email, partner_name: partner.name, - attachments, + attachments: attachmentsParsed[0], }, - { Authorization: "Bearer " + accessToken }, + { Authorization: "Bearer " + user.odooToken }, ); if (!response?.id) { diff --git a/gmail/src/models/partner.ts b/gmail/src/models/partner.ts index 17c626a03..dbd59d828 100644 --- a/gmail/src/models/partner.ts +++ b/gmail/src/models/partner.ts @@ -1,12 +1,11 @@ +import { URLS } from "../consts"; +import { ErrorMessage } from "../models/error_message"; +import { postJsonRpc } from "../utils/http"; +import { UI_ICONS } from "../views/icons"; import { Lead } from "./lead"; import { Task } from "./task"; import { Ticket } from "./ticket"; -import { postJsonRpc } from "../utils/http"; -import { URLS } from "../const"; -import { ErrorMessage } from "../models/error_message"; -import { getAccessToken } from "src/services/odoo_auth"; -import { getOdooServerUrl } from "src/services/app_properties"; -import { UI_ICONS } from "../views/icons"; +import { User } from "./user"; /** * Represent the current partner and all the information about him. @@ -102,19 +101,14 @@ export class Partner { /** * Create a "res.partner" with the given values in the Odoo database. */ - static savePartner(partner: Partner): Partner | null { - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - URLS.PARTNER_CREATE; - const odooAccessToken = getAccessToken(); - + static async savePartner(user: User, partner: Partner): Promise { const partnerValues = { name: partner.name, email: partner.email, }; - const response = postJsonRpc(url, partnerValues, { - Authorization: "Bearer " + odooAccessToken, + const response = await postJsonRpc(user.odooUrl + URLS.PARTNER_CREATE, partnerValues, { + Authorization: "Bearer " + user.odooToken, }); if (!response?.id) { @@ -135,27 +129,22 @@ export class Partner { * - True if the current user can create projects in his Odoo database * - The error message if something bad happened */ - static getPartner( + static async getPartner( + user: User, name: string, email: string, partnerId: number = null, - ): [Partner, boolean, boolean, ErrorMessage] { - const odooServerUrl = getOdooServerUrl(); - const odooAccessToken = getAccessToken(); - - if (!odooServerUrl || !odooAccessToken) { + ): Promise<[Partner, boolean, boolean, ErrorMessage]> { + if (!user.odooUrl || !user.odooToken) { const error = new ErrorMessage("http_error_odoo"); const partner = Partner.fromJson({ name, email }); return [partner, false, false, error]; } - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.GET_PARTNER; - - const response = postJsonRpc( - url, + const response = await postJsonRpc( + user.odooUrl + URLS.GET_PARTNER, { email: email, partner_id: partnerId }, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); if (response && response.error) { @@ -207,16 +196,14 @@ export class Partner { /** * Perform a search on the Odoo database and return the list of matched partners. */ - static searchPartner(query: string | string[]): [Partner[], ErrorMessage] { - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - URLS.SEARCH_PARTNER; - const odooAccessToken = getAccessToken(); - - const response = postJsonRpc( - url, + static async searchPartner( + user: User, + query: string | string[], + ): Promise<[Partner[], ErrorMessage]> { + const response = await postJsonRpc( + user.odooUrl + URLS.SEARCH_PARTNER, { query }, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); if (!response?.length) { diff --git a/gmail/src/models/project.ts b/gmail/src/models/project.ts index c8ec03433..835ca37d5 100644 --- a/gmail/src/models/project.ts +++ b/gmail/src/models/project.ts @@ -1,7 +1,7 @@ -import { postJsonRpc } from "../utils/http"; -import { URLS } from "../const"; +import { URLS } from "../consts"; import { ErrorMessage } from "../models/error_message"; -import { getAccessToken } from "src/services/odoo_auth"; +import { postJsonRpc } from "../utils/http"; +import { User } from "./user"; /** * Represent a "project.project" record. @@ -42,16 +42,11 @@ export class Project { /** * Make a RPC call to the Odoo database to search a project. */ - static searchProject(query: string): [Project[], ErrorMessage] { - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - URLS.SEARCH_PROJECT; - const odooAccessToken = getAccessToken(); - - const response = postJsonRpc( - url, + static async searchProject(user: User, query: string): Promise<[Project[], ErrorMessage]> { + const response = await postJsonRpc( + user.odooUrl + URLS.SEARCH_PROJECT, { query }, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); if (!response?.length) { @@ -68,16 +63,11 @@ export class Project { * Make a RPC call to the Odoo database to create a project * and return the newly created record. */ - static createProject(name: string): Project { - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - URLS.CREATE_PROJECT; - const odooAccessToken = getAccessToken(); - - const response = postJsonRpc( - url, + static async createProject(user: User, name: string): Promise { + const response = await postJsonRpc( + user.odooUrl + URLS.CREATE_PROJECT, { name: name }, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); const projectId = response ? response.id || null : null; diff --git a/gmail/src/models/state.ts b/gmail/src/models/state.ts index d48cc639b..d15a46b3d 100644 --- a/gmail/src/models/state.ts +++ b/gmail/src/models/state.ts @@ -1,21 +1,13 @@ import { Email } from "./email"; import { Partner } from "./partner"; import { Project } from "./project"; -import { ErrorMessage } from "./error_message"; -import { getAccessToken, getOdooAuthUrl } from "../services/odoo_auth"; -import { getOdooServerUrl } from "src/services/app_properties"; /** * Object which contains all data for the application. * - * In App-Script, all event handlers are function and not method. We can only pass string - * as arguments. So this object is serialized, then given to the event handler and then + * This object is serialized, then given to the event handler and then * unserialize to retrieve the original object. - * - * That's how we manage the state of the application without performing a big amount of - * read / write in the cache. */ - export class State { // Contact of the current card partner: Partner; @@ -57,14 +49,12 @@ export class State { const partnerValues = values.partner || {}; const canCreatePartner = values.canCreatePartner; const emailValues = values.email || {}; - const errorValues = values.error || {}; const partnersValues = values.searchedPartners; const projectsValues = values.searchedProjects; const canCreateProject = values.canCreateProject; const partner = Partner.fromJson(partnerValues); const email = Email.fromJson(emailValues); - const error = ErrorMessage.fromJson(errorValues); const searchedPartners = partnersValues ? partnersValues.map((partnerValues: any) => Partner.fromJson(partnerValues)) : null; @@ -81,97 +71,4 @@ export class State { canCreateProject, ); } - - /** - * Cache / user properties management. - * - * Introduced with static getter / setter because they are shared between all the - * application cards. - */ - static get accessToken() { - const accessToken = getAccessToken(); - return accessToken?.length && accessToken; - } - - static get isLogged(): boolean { - return !!this.accessToken; - } - - /** - * Return the URL require to login to the Odoo database. - */ - static get odooLoginUrl(): string { - const loginUrl = getOdooAuthUrl(); - return loginUrl?.length && loginUrl; - } - - /** - * Dictionary which inform us on which record we already logged the email. - * So the user can not log 2 times the same email on the same record. - * This is stored into the cache, so we don't need to modify the Odoo models. - * - * Note: the cache expire after 6 hours. - * - * Returns: - * { - * "partners": [3, 6], // email already logged on the partner 3 and 6 - * "leads": [7, 14], - * } - */ - static getLoggingState(messageId: string) { - const cache = CacheService.getUserCache(); - const loggingStateStr = cache.get( - "ODOO_LOGGING_STATE_" + getOdooServerUrl() + "_" + messageId, - ); - - const defaultValues: Record = { - "res.partner": [], - "crm.lead": [], - "helpdesk.ticket": [], - "project.task": [], - }; - - if (!loggingStateStr || !loggingStateStr.length) { - return defaultValues; - } - return { ...defaultValues, ...JSON.parse(loggingStateStr) }; - } - - /** - * Save the fact that we logged the email on the record, in the cache. - * - * Returns: - * True if the record was not yet marked as "logged" - * False if we already logged the email on the record - */ - static setLoggingState(messageId: string, res_model: string, res_id: number): boolean { - const loggingState = this.getLoggingState(messageId); - if (loggingState[res_model].indexOf(res_id) < 0) { - loggingState[res_model].push(res_id); - const cache = CacheService.getUserCache(); - - // The cache key depend on the current email open and on the Odoo database - const cacheKey = "ODOO_LOGGING_STATE_" + getOdooServerUrl() + "_" + messageId; - - cache.put( - cacheKey, - JSON.stringify(loggingState), - 21600, // 6 hours, maximum cache life time - ); - return true; - } - return false; - } - - /** - * Check if the email has not been logged on the record. - * - * Returns: - * True if the record was not yet marked as "logged" - * False if we already logged the email on the record - */ - static checkLoggingState(messageId: string, res_model: string, res_id: number): boolean { - const loggingState = this.getLoggingState(messageId); - return loggingState[res_model].indexOf(res_id) < 0; - } } diff --git a/gmail/src/models/task.ts b/gmail/src/models/task.ts index 3a124a36e..a83dd3bfc 100644 --- a/gmail/src/models/task.ts +++ b/gmail/src/models/task.ts @@ -1,8 +1,8 @@ +import { URLS } from "../consts"; import { postJsonRpc } from "../utils/http"; -import { URLS } from "../const"; -import { getAccessToken } from "src/services/odoo_auth"; -import { Partner } from "./partner"; import { Email } from "./email"; +import { Partner } from "./partner"; +import { User } from "./user"; /** * Represent a "project.task" record. @@ -38,23 +38,25 @@ export class Task { * Make a RPC call to the Odoo database to create a task * and return the ID of the newly created record. */ - static createTask(partner: Partner, projectId: number, email: Email): [Task, Partner] | null { - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.CREATE_TASK; - const odooAccessToken = getAccessToken(); - const [attachments, _] = email.getAttachments(); - const response = postJsonRpc( - url, + static async createTask( + user: User, + partner: Partner, + projectId: number, + email: Email, + ): Promise<[Task, Partner] | null> { + const [body, _, attachmentsParsed] = await email.getBodyAndAttachments(); + const response = await postJsonRpc( + user.odooUrl + URLS.CREATE_TASK, { - email_body: email.body, + email_body: body, email_subject: email.subject, partner_email: partner.email, partner_id: partner.id, partner_name: partner.name, project_id: projectId, - attachments, + attachments: attachmentsParsed[0], }, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); if (!response?.id) { return null; diff --git a/gmail/src/models/ticket.ts b/gmail/src/models/ticket.ts index c311cc629..e43948327 100644 --- a/gmail/src/models/ticket.ts +++ b/gmail/src/models/ticket.ts @@ -1,8 +1,8 @@ +import { URLS } from "../consts"; import { postJsonRpc } from "../utils/http"; -import { URLS } from "../const"; -import { getAccessToken } from "src/services/odoo_auth"; -import { Partner } from "./partner"; import { Email } from "./email"; +import { Partner } from "./partner"; +import { User } from "./user"; /** * Represent a "helpdesk.ticket" record. @@ -16,24 +16,23 @@ export class Ticket { * Make a RPC call to the Odoo database to create a ticket * and return the ID of the newly created record. */ - static createTicket(partner: Partner, email: Email): [Ticket, Partner] | null { - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - URLS.CREATE_TICKET; - const odooAccessToken = getAccessToken(); - const [attachments, _] = email.getAttachments(); - - const response = postJsonRpc( - url, + static async createTicket( + user: User, + partner: Partner, + email: Email, + ): Promise<[Ticket, Partner] | null> { + const [body, _, attachmentsParsed] = await email.getBodyAndAttachments(); + const response = await postJsonRpc( + user.odooUrl + URLS.CREATE_TICKET, { - email_body: email.body, + email_body: body, email_subject: email.subject, partner_email: partner.email, partner_id: partner.id, partner_name: partner.name, - attachments, + attachments: attachmentsParsed[0], }, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); if (!response?.id) { diff --git a/gmail/src/models/user.ts b/gmail/src/models/user.ts new file mode 100644 index 000000000..6ed855563 --- /dev/null +++ b/gmail/src/models/user.ts @@ -0,0 +1,174 @@ +import * as crypto from "crypto"; +import { OAuth2Client } from "google-auth-library"; +import { CLIENT_ID } from "../consts"; +import pool from "../utils/db"; + +export class User { + id?: number; + email: string; + odooUrl?: string; + odooToken?: string; + + // That token is used to authenticate the user when he's redirected + // to the callback URL, and can be used only once + loginToken?: string; + loginTokenExpireAt?: Date; + + // Store the translation for the current user, based on the language + // of his `res.users` on the Odoo side + translations?: any; + translationsExpireAt?: Date; + + constructor( + id: number, + email: string, + odooUrl?: string, + odooToken?: string, + loginToken?: string, + loginTokenExpireAt?: Date, + translations?: any, + translationsExpireAt?: Date, + ) { + this.id = id; + this.email = email; + this.odooUrl = odooUrl; + this.odooToken = odooToken; + this.loginToken = loginToken; + this.loginTokenExpireAt = loginTokenExpireAt; + this.translations = translations; + this.translationsExpireAt = translationsExpireAt; + } + + async save() { + await pool.query( + ` + INSERT INTO users_settings ( + email, + odoo_url, + odoo_token, + login_token, + login_token_expire_at, + translations, + translations_expire_at + ) + VALUES ($1, $2, $3, $4, $5, $6, $7) + ON CONFLICT (email) DO UPDATE + SET odoo_url = EXCLUDED.odoo_url, + odoo_token = EXCLUDED.odoo_token, + login_token = EXCLUDED.login_token, + login_token_expire_at = EXCLUDED.login_token_expire_at, + translations = EXCLUDED.translations, + translations_expire_at = EXCLUDED.translations_expire_at + `, + [ + this.email, + this.odooUrl, + this.odooToken, + this.loginToken, + this.loginTokenExpireAt, + this.translations, + this.translationsExpireAt, + ], + ); + } + + /** + * Generate the login token and set the expiration date in 1 hour. + */ + async generateLoginToken(): Promise { + const EXPIRATION_DURATION_MS = 60 * 60 * 1000; + this.loginTokenExpireAt = new Date(Date.now() + EXPIRATION_DURATION_MS); + this.loginToken = crypto.randomBytes(64).toString("hex"); + await this.save(); + return this.loginToken; + } + + /** + * Check the token we receive from Google, and get the user base on the email. + */ + static async getUserFromGoogleToken(event: any): Promise { + const oAuth2Client = new OAuth2Client(); + const decodedToken = await oAuth2Client.verifyIdToken({ + idToken: event.authorizationEventObject.userIdToken, + audience: CLIENT_ID, + }); + const payload = decodedToken.getPayload(); + if (!payload.email || !payload.email_verified) { + throw new Error("Failed to authenticate the user"); + } + return await User._getUserFromEmail(payload.email); + } + + /** + * Check the token we receive from the user's browser, and get the user. + * + * The login token can only be used once, and is reset after getting the user. + */ + static async getUserFromLoginToken(email: string, loginToken: string): Promise { + const user = await User._getUserFromEmail(email); + + // constant time comparison + if (!loginToken?.length || loginToken?.length !== user.loginToken?.length) { + throw new Error("Invalid login token"); + } + const compA = Buffer.from(loginToken); + const compB = Buffer.from(user.loginToken); + if (!crypto.timingSafeEqual(compA, compB)) { + throw new Error("Invalid login token"); + } + if (!user.loginTokenExpireAt || new Date() > user.loginTokenExpireAt) { + throw new Error("Login token expired"); + } + + user.loginToken = undefined; + user.loginTokenExpireAt = undefined; + await user.save(); + + return user; + } + + /** + * Check the login token, and if it's valid, then save the odoo token + * we received in the callback endpoint. + */ + async setOdooToken(odooToken: string) { + if (!odooToken?.length) { + throw new Error("Empty Odoo token"); + } + this.odooToken = odooToken; + await this.save(); + } + + private static async _getUserFromEmail(email: string): Promise { + const result = await pool.query( + ` + SELECT id, + email, + odoo_url, + odoo_token, + login_token, + login_token_expire_at, + translations, + translations_expire_at + FROM users_settings + WHERE email = $1 + `, + [email], + ); + if (result.rows.length === 0) { + return new User(null, email); + } + + const data = result.rows[0]; + return new User( + data.id, + email, + data.odoo_url, + data.odoo_token, + data.login_token, + data.login_token_expire_at, + data.translations, + data.translations_expire_at, + ); + } +} diff --git a/gmail/src/services/app_properties.ts b/gmail/src/services/app_properties.ts deleted file mode 100644 index b7c709b77..000000000 --- a/gmail/src/services/app_properties.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function getOdooServerUrl() { - return PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL"); -} -export function setOdooServerUrl(url: string) { - PropertiesService.getUserProperties().setProperty("ODOO_SERVER_URL", url); -} diff --git a/gmail/src/services/log_email.ts b/gmail/src/services/log_email.ts index 2bee39501..68608bc34 100644 --- a/gmail/src/services/log_email.ts +++ b/gmail/src/services/log_email.ts @@ -1,17 +1,14 @@ -import { postJsonRpc } from "../utils/http"; -import { escapeHtml } from "../utils/html"; -import { URLS } from "../const"; +import { URLS } from "../consts"; import { Email } from "../models/email"; import { ErrorMessage } from "../models/error_message"; -import { _t } from "../services/translation"; -import { getAccessToken } from "./odoo_auth"; +import { User } from "../models/user"; +import { postJsonRpc } from "../utils/http"; /** * Format the email body before sending it to Odoo. * Add error message at the end of the email, fix some CSS issues,... */ -function _formatEmailBody(email: Email, error: ErrorMessage): string { - let body = email.body; +function _formatEmailBody(_t: Function, body: string, error: ErrorMessage): string { if (error.code === "attachments_size_exceeded") { body += `
${_t( "Attachments could not be logged in Odoo because their total size exceeded the allowed maximum.", @@ -30,15 +27,18 @@ function _formatEmailBody(email: Email, error: ErrorMessage): string { /** * Log the given email body in the chatter of the given record. */ -export function logEmail(recordId: number, recordModel: string, email: Email): ErrorMessage { - const odooAccessToken = getAccessToken(); - const [attachments, error] = email.getAttachments(); - const body = _formatEmailBody(email, error); - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + URLS.LOG_EMAIL; +export async function logEmail( + _t: Function, + user: User, + recordId: number, + recordModel: string, + email: Email, +): Promise { + const [rawBody, timestamp, [attachments, error]] = await email.getBodyAndAttachments(); + const body = _formatEmailBody(_t, rawBody, error); - const response = postJsonRpc( - url, + const response = await postJsonRpc( + user.odooUrl + URLS.LOG_EMAIL, { body, res_id: recordId, @@ -46,14 +46,14 @@ export function logEmail(recordId: number, recordModel: string, email: Email): E attachments: attachments, email_from: email.emailFrom, subject: email.subject, - timestamp: email.timestamp, + timestamp: timestamp, application_name: _t("Odoo for Gmail"), }, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); if (!response) { - error.setError("unknown"); + return new ErrorMessage("unknown"); } return error; diff --git a/gmail/src/services/odoo_auth.ts b/gmail/src/services/odoo_auth.ts index c4cc613b9..9ab0b54f3 100644 --- a/gmail/src/services/odoo_auth.ts +++ b/gmail/src/services/odoo_auth.ts @@ -1,6 +1,7 @@ -import { ODOO_AUTH_URLS } from "../const"; -import { postJsonRpc, encodeQueryData } from "../utils/http"; -import { RAINBOW, ERROR_PAGE } from "./pages"; +import { HOST, ODOO_AUTH_URLS } from "../consts"; +import { User } from "../models/user"; +import { encodeQueryData, postJsonRpc } from "../utils/http"; +import { ERROR_PAGE, RAINBOW } from "./pages"; /** * Callback function called during the OAuth authentication process. @@ -12,41 +13,33 @@ import { RAINBOW, ERROR_PAGE } from "./pages"; * 4. Thanks the state token, the function "odooAuthCallback" is called with the auth code * 5. The auth code is exchanged for an access token with a RPC call */ -function odooAuthCallback(callbackRequest: any) { - Logger.log("Run authcallback"); - const success = callbackRequest.parameter.success; - const authCode = callbackRequest.parameter.auth_code; - +export async function odooAuthCallback(callbackRequest: any) { + const { success, auth_code: authCode, state } = callbackRequest.query; if (success !== "1") { - return HtmlService.createHtmlOutput( - ERROR_PAGE.replace("__ERROR_MESSAGE__", "Odoo did not return successfully."), - ); + return ERROR_PAGE.replace("__ERROR_MESSAGE__", "Odoo did not return successfully."); } - - Logger.log("Get access token from auth code..."); - - const userProperties = PropertiesService.getUserProperties(); - const odooUrl = userProperties.getProperty("ODOO_SERVER_URL"); - - const response = postJsonRpc(odooUrl + ODOO_AUTH_URLS.CODE_VALIDATION, { - auth_code: authCode, - }); - - if (!response || !response.access_token || !response.access_token.length) { - return HtmlService.createHtmlOutput( - ERROR_PAGE.replace( - "__ERROR_MESSAGE__", - "The token exchange failed. Maybe your token has expired or your database can not be reached by the Google server." + - "
Contact your administrator or our support.", - ), + const { email, loginToken } = JSON.parse(state); + let response = null; + let user = null; + try { + user = await User.getUserFromLoginToken(email, loginToken); + + console.log("Get access token from auth code..."); + response = await postJsonRpc(user.odooUrl + ODOO_AUTH_URLS.CODE_VALIDATION, { + auth_code: authCode, + }); + if (!response || !response.access_token || !response.access_token.length) { + throw new Error("Odoo exchange failed"); + } + } catch { + return ERROR_PAGE.replace( + "__ERROR_MESSAGE__", + "The token exchange failed. Maybe your token has expired or your database can not be reached by the Google server." + + "
Contact your administrator or our support.", ); } - - const accessToken = response.access_token; - - userProperties.setProperty("ODOO_ACCESS_TOKEN", accessToken); - - return HtmlService.createHtmlOutput(RAINBOW); + user.setOdooToken(response.access_token); + return RAINBOW; } /** @@ -56,87 +49,38 @@ function odooAuthCallback(callbackRequest: any) { * The Google server uses the state code to know which function to execute when the user * is redirected on their server. */ -export function getOdooAuthUrl() { - const userProperties = PropertiesService.getUserProperties(); - const odooUrl = userProperties.getProperty("ODOO_SERVER_URL"); - const scriptId = ScriptApp.getScriptId(); - +export async function getOdooAuthUrl(user: User): Promise { + const odooUrl = user.odooUrl; if (!odooUrl || !odooUrl.length) { throw new Error("Can not retrieve the Odoo database URL."); } - if (!scriptId || !scriptId.length) { - throw new Error("Can not retrieve the script ID."); - } - - const stateToken = ScriptApp.newStateToken() - .withMethod(odooAuthCallback.name) - .withTimeout(3600) - .createToken(); + const loginToken = await user.generateLoginToken(); - const redirectToAddon = `https://script.google.com/macros/d/${scriptId}/usercallback`; - const scope = ODOO_AUTH_URLS.SCOPE; + const redirectToAddon = `${HOST}/auth_callback`; - const url = + return ( odooUrl + ODOO_AUTH_URLS.AUTH_CODE + encodeQueryData({ redirect: redirectToAddon, friendlyname: "Gmail", - state: stateToken, - scope: scope, - }); - - return url; + state: JSON.stringify({ loginToken, email: user.email }), + scope: ODOO_AUTH_URLS.SCOPE, + }) + ); } -/** - * Return the access token saved in the user properties. - */ -export const getAccessToken = () => { - const userProperties = PropertiesService.getUserProperties(); - const accessToken = userProperties.getProperty("ODOO_ACCESS_TOKEN"); - if (!accessToken || !accessToken.length) { - return; - } - return accessToken; -}; - -/** - * Reset the access token saved in the user properties. - */ -export const resetAccessToken = () => { - const userProperties = PropertiesService.getUserProperties(); - userProperties.deleteProperty("ODOO_ACCESS_TOKEN"); -}; - /** * Make an HTTP request to the Odoo database to verify that the server * is reachable and that the mail plugin module is installed. * * Returns the version of the addin that is supported if it's reachable, null otherwise. */ -export const getSupportedAddinVersion = (odooUrl: string): number | null => { - if (!odooUrl || !odooUrl.length) { +export async function getSupportedAddinVersion(odooUrl: string): Promise { + if (!odooUrl?.length) { return null; } - - const response = postJsonRpc( - odooUrl + ODOO_AUTH_URLS.CHECK_VERSION, - {}, - {}, - { returnRawResponse: true }, - ); - if (!response) { - return null; - } - - const responseCode = response.getResponseCode(); - - if (responseCode > 299 || responseCode < 200) { - return null; - } - - const textResponse = response.getContentText("UTF-8"); - return parseInt(JSON.parse(textResponse).result); -}; + const response = await postJsonRpc(odooUrl + ODOO_AUTH_URLS.CHECK_VERSION); + return response ? parseInt(response) : null; +} diff --git a/gmail/src/services/odoo_redirection.ts b/gmail/src/services/odoo_redirection.ts index 4588e4ab7..1771fdfe0 100644 --- a/gmail/src/services/odoo_redirection.ts +++ b/gmail/src/services/odoo_redirection.ts @@ -1,5 +1,5 @@ -import { getOdooServerUrl } from "./app_properties"; +import { User } from "../models/user"; -export function getOdooRecordURL(model, record_id) { - return getOdooServerUrl() + `/mail_plugin/redirect_to_record/${model}/?record_id=${record_id}`; +export function getOdooRecordURL(user: User, model: string, record_id: number) { + return user.odooUrl + `/mail_plugin/redirect_to_record/${model}/?record_id=${record_id}`; } diff --git a/gmail/src/services/search_records.ts b/gmail/src/services/search_records.ts index 4ddf6746d..e01c86ab5 100644 --- a/gmail/src/services/search_records.ts +++ b/gmail/src/services/search_records.ts @@ -1,21 +1,21 @@ -import { postJsonRpc } from "../utils/http"; -import { URLS } from "../const"; +import { URLS } from "../consts"; import { ErrorMessage } from "../models/error_message"; -import { _t } from "../services/translation"; -import { getAccessToken } from "./odoo_auth"; +import { User } from "../models/user"; +import { postJsonRpc } from "../utils/http"; /** * Search records of the given model. */ -export function searchRecords(recordModel: string, query: string): [any[], number, ErrorMessage] { - const odooAccessToken = getAccessToken(); - const url = - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") + - URLS.SEARCH_RECORDS + - "/" + - recordModel; - - const response = postJsonRpc(url, { query }, { Authorization: "Bearer " + odooAccessToken }); +export async function searchRecords( + user: User, + recordModel: string, + query: string, +): Promise<[any[], number, ErrorMessage]> { + const response = await postJsonRpc( + user.odooUrl + URLS.SEARCH_RECORDS + "/" + recordModel, + { query }, + { Authorization: "Bearer " + user.odooToken }, + ); if (!response?.length) { return [[], 0, new ErrorMessage("unknown", response.error)]; diff --git a/gmail/src/services/translation.ts b/gmail/src/services/translation.ts index ef6d07844..d8d411f36 100644 --- a/gmail/src/services/translation.ts +++ b/gmail/src/services/translation.ts @@ -1,7 +1,6 @@ +import { URLS } from "../consts"; +import { User } from "../models/user"; import { postJsonRpc } from "../utils/http"; -import { URLS } from "../const"; -import { getAccessToken } from "./odoo_auth"; -import { getOdooServerUrl } from "./app_properties"; /** * Object which fetch the translations on the Odoo database, puts them in cache. @@ -12,32 +11,31 @@ import { getOdooServerUrl } from "./app_properties"; export class Translate { translations: Record; - constructor() { - const cache = CacheService.getUserCache(); - const cacheKey = "ODOO_TRANSLATIONS"; - - const translationsStr = cache.get(cacheKey); + constructor(translations?: Record) { + this.translations = translations || {}; + } - const odooServerUrl = getOdooServerUrl(); - const odooAccessToken = getAccessToken(); - if (translationsStr) { - this.translations = JSON.parse(translationsStr); - } else if (odooServerUrl && odooAccessToken) { - Logger.log("Download translations..."); + static async getTranslations(user: User): Promise { + if (!user.odooUrl) { + // The user is not logged yet + const translator = new Translate({}); + return translator._t.bind(translator); + } - this.translations = postJsonRpc( - odooServerUrl + URLS.GET_TRANSLATIONS, + if (!user.translationsExpireAt || new Date() > user.translationsExpireAt) { + user.translations = await postJsonRpc( + user.odooUrl + URLS.GET_TRANSLATIONS, {}, - { Authorization: "Bearer " + odooAccessToken }, + { Authorization: "Bearer " + user.odooToken }, ); - - if (this.translations) { - // Put in the cache for 6 hours (maximum cache lifetime) - cache.put(cacheKey, JSON.stringify(this.translations), 21600); - } + // Store the translation for 6 hours + const EXPIRATION_DURATION_MS = 6 * 60 * 60 * 1000; + user.translationsExpireAt = new Date(Date.now() + EXPIRATION_DURATION_MS); + await user.save(); + console.log("Translation fetched"); } - - this.translations = this.translations || {}; + const translator = new Translate(user.translations); + return translator._t.bind(translator); } /** @@ -47,11 +45,11 @@ export class Translate { * (e.g.: "Hello %(name)s") or simple string format (e.g.: "Hello %s"). */ _t(text: string, parameters: any = undefined): string { - let translated = this.translations[text]; + let translated = this.translations.hasOwnProperty(text) ? this.translations[text] : null; if (!translated) { if (this.translations && Object.keys(this.translations).length) { - Logger.log("Translation missing for: " + text); + console.log("Translation missing for: " + text); } translated = text; } @@ -76,17 +74,3 @@ export class Translate { } } } - -const translate = new Translate(); - -// Can be used as a function without reading each time the cache -export function _t(text: string, parameters: any = undefined): string { - return translate._t(text, parameters); -} - -export function clearTranslationCache() { - const cache = CacheService.getUserCache(); - const cacheKey = "ODOO_TRANSLATIONS"; - cache.remove(cacheKey); - translate.translations = {}; -} diff --git a/gmail/src/utils/actions.ts b/gmail/src/utils/actions.ts new file mode 100644 index 000000000..54a3b7580 --- /dev/null +++ b/gmail/src/utils/actions.ts @@ -0,0 +1,206 @@ +/** + * Build the JSON format to execute action (like updating a cart, showing a notification,...) + * + * https://developers.google.com/workspace/add-ons/guides/alternate-runtimes + */ +import { HOST } from "../consts"; +import { State } from "../models/state"; +import { User } from "../models/user"; +import { Card } from "./components"; + +/** + * Class used to respond to an event + * (like pushing a card, showing a notification, redirecting to an url...). + */ +export abstract class EventResponse { + abstract build(); +} + +export class Notify extends EventResponse { + message: string; + + constructor(message: string) { + super(); + this.message = message; + } + + build() { + return { renderActions: { action: { notification: { text: this.message } } } }; + } +} + +export class PushCard extends EventResponse { + card: Card; + + constructor(card: Card) { + super(); + this.card = card; + } + + build() { + return { action: { navigations: [{ pushCard: this.card.build() }] } }; + } +} +export class PushToRoot extends EventResponse { + card: Card; + + constructor(card: Card) { + super(); + this.card = card; + } + + build() { + return { action: { navigations: [{ popToRoot: true }, { pushCard: this.card.build() }] } }; + } +} + +export class PopCard extends EventResponse { + build() { + return { action: { navigations: [{ pop: true }] } }; + } +} + +export class PopOneCardAndUpdate extends EventResponse { + card: Card; + + constructor(card: Card) { + super(); + this.card = card; + } + + build() { + return { action: { navigations: [{ pop: true }, { updateCard: this.card.build() }] } }; + } +} + +export class UpdateCard extends EventResponse { + card: Card; + + constructor(card: Card) { + super(); + this.card = card; + } + + build() { + return { action: { navigations: [{ updateCard: this.card.build() }] } }; + } +} + +export class Redirect extends EventResponse { + openLink: OpenLink; + constructor(openLink: OpenLink) { + super(); + this.openLink = openLink; + } + + build() { + return { action: { link: this.openLink.build()["openLink"] } }; + } +} + +/** + * Create an action which will call the given function and pass the state in arguments. + */ +export class ActionCall { + state?: State; + funct: any; + parameters: any; + + constructor(state: State, funct: Function, parameters: any = {}) { + if (!eventHandlers[funct.name]) { + throw new Error(`Event handler not configured: ${funct.name}`); + } + this.state = state; + this.funct = funct; + this.parameters = parameters; + } + + build() { + return { + action: { + function: HOST + "/execute_action", + parameters: [ + { + key: "functionName", + value: this.funct.name, + }, + { + key: "state", + value: this.state && JSON.stringify(this.state), + }, + { + key: "arguments", + value: JSON.stringify(this.parameters), + }, + ], + }, + }; + } +} + +/** + * Define how the event handlers should be declared. + */ +type EventHandler = ( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +) => EventResponse | Promise; + +const eventHandlers = {}; +/** + * Register the function to be able to call it from its name. + */ +export function registerEventHandler(funct: EventHandler) { + if (!/^on[A-Z][a-zA-Z0-9]+$/.test(funct.name) || eventHandlers.hasOwnProperty(funct.name)) { + throw new Error(`Invalid function name: ${funct.name}`); + } + eventHandlers[funct.name] = funct; +} + +/** + * Get the event handler by the name of the function + * (everything is serialized when the addin call the event). + */ +export function getEventHandler(functionName: string): EventHandler { + if ( + !/^on[A-Z][a-zA-Z0-9]+$/.test(functionName) || + !eventHandlers.hasOwnProperty(functionName) + ) { + throw new Error(`Invalid function name: ${functionName}`); + } + return eventHandlers[functionName]; +} + +export enum OpenLinkOpenAs { + FULL_SIZE = "FULL_SIZE", + OVERLAY = "OVERLAY", +} + +export class OpenLink { + url: string; + openAs: OpenLinkOpenAs; + reloadOnClose: boolean; + + constructor( + url: string, + openAs: OpenLinkOpenAs = OpenLinkOpenAs.FULL_SIZE, + reloadOnClose: boolean = false, + ) { + this.url = url; + this.openAs = openAs; + this.reloadOnClose = reloadOnClose; + } + + build() { + return { + openLink: { + url: this.url, + openAs: this.openAs, + onClose: this.reloadOnClose ? "RELOAD" : "NOTHING", + }, + }; + } +} diff --git a/gmail/src/utils/components.ts b/gmail/src/utils/components.ts new file mode 100644 index 000000000..42ca07a89 --- /dev/null +++ b/gmail/src/utils/components.ts @@ -0,0 +1,340 @@ +import { ActionCall, OpenLink } from "./actions"; + +/** + * Build the JSON format of the components to construct the view. + * + * https://addons.gsuite.google.com/uikit/builder + * https://gw-card-builder.web.app/ + * + * https://developers.google.com/workspace/add-ons/guides/alternate-runtimes + */ +abstract class Component { + abstract build(); +} + +export class CardSection { + header: string; + widgets: Component[]; + + constructor(widgets?: Component[]) { + this.header = ""; + this.widgets = widgets || []; + } + + setHeader(header: string) { + this.header = header; + } + + addWidget(widget: Component) { + this.widgets.push(widget); + } + + build() { + const ret = { + widgets: this.widgets.map((w) => w.build()), + }; + if (this.header?.length) { + ret["header"] = this.header; + } + return ret; + } +} + +export class Card { + sections: CardSection[]; + actions: [string, ActionCall][]; // actions shown in the kebab menu + + constructor(sections?: CardSection[]) { + this.sections = sections || []; + this.actions = []; + } + + addSection(section: CardSection) { + this.sections.push(section); + } + + addAction(label: string, action: ActionCall) { + this.actions.push([label, action]); + } + + build() { + const ret = { + sections: this.sections.map((s) => s.build()), + }; + if (this.actions.length) { + ret["cardActions"] = this.actions.map(([label, action]) => ({ + actionLabel: label, + onClick: action.build(), + })); + } + return ret; + } +} + +export class TextParagraph extends Component { + text: string; + constructor(text: string) { + super(); + this.text = text; + } + build() { + return { + textParagraph: { + text: this.text, + }, + }; + } +} + +export class Button extends Component { + text: string; + onClick: ActionCall | OpenLink; + disabled: boolean; + icon?: string; + iconLabel?: string; + iconCropStyle: ImageCropType; + color?: string; + borderless: boolean; + + constructor( + text: string, + onClick: ActionCall | OpenLink, + color?: string, + disabled: boolean = false, + icon?: string, + iconLabel?: string, + iconCropStyle: ImageCropType = ImageCropType.CIRCLE, + borderless: boolean = false, + ) { + super(); + this.text = text; + this.onClick = onClick; + this.disabled = disabled; + this.icon = icon; + this.iconLabel = iconLabel; + this.iconCropStyle = iconCropStyle; + this.color = color; + this.borderless = borderless; + } + + build() { + const buttonValues = { + text: this.text, + onClick: this.onClick.build(), + disabled: this.disabled, + }; + if (this.icon) { + buttonValues["icon"] = { + iconUrl: this.icon, + altText: this.iconLabel, + imageType: this.iconCropStyle, + }; + } + if (this.color) { + // Gmail expect the color converted to RGB, each value + // is between 0 and 1 + buttonValues["color"] = { + red: parseInt(this.color.slice(1, 3), 16) / 256, + green: parseInt(this.color.slice(3, 5), 16) / 256, + blue: parseInt(this.color.slice(5, 7), 16) / 256, + }; + } + if (this.borderless) { + buttonValues["color"] = { + red: 1, + green: 1, + blue: 1, + alpha: 1, + }; + } + return { buttonList: { buttons: [buttonValues] } }; + } +} + +export class LinkButton extends Component { + text: string; + onClick: ActionCall | OpenLink; + + constructor(text: string, onClick: ActionCall | OpenLink) { + super(); + this.text = text; + this.onClick = onClick; + } + + build() { + return { + decoratedText: { + text: `${this.text}
`, + onClick: this.onClick.build(), + }, + }; + } +} + +/** + * Helper user to build icon button. + */ +export class IconButton extends Button { + constructor( + onClick: ActionCall | OpenLink, + icon?: string, + iconLabel?: string, + iconCropStyle: ImageCropType = ImageCropType.CIRCLE, + ) { + super(undefined, onClick, undefined, false, icon, iconLabel, iconCropStyle); + } +} + +/** + * Show many buttons in the same line. + */ +export class ButtonsList extends Component { + buttons: Button[]; + + constructor(buttons: Button[] = []) { + super(); + this.buttons = buttons; + } + + addButton(button: Button) { + this.buttons.push(button); + } + + build() { + return { + buttonList: { buttons: this.buttons.map((b) => b.build().buttonList.buttons[0]) }, + }; + } +} + +export enum ImageCropType { + SQUARE = "SQUARE", + CIRCLE = "CIRCLE", +} + +export class DecoratedText extends Component { + label: string; + content: string; + icon?: string; + bottomLabel?: string; + button?: Button; + onClick?: ActionCall | OpenLink; + wrap: boolean; + iconLabel?: string; + iconCropStyle: ImageCropType; + + constructor( + label: string, + content: string, + icon: string = undefined, + bottomLabel: string = undefined, + button: Button = undefined, + onClick: ActionCall | OpenLink = undefined, + wrap: boolean = true, + iconLabel: string = undefined, + iconCropStyle: ImageCropType = ImageCropType.CIRCLE, + ) { + super(); + this.label = label; + this.content = content; + this.bottomLabel = bottomLabel; + this.button = button; + this.onClick = onClick; + this.wrap = wrap; + this.icon = icon; + this.iconLabel = iconLabel; + this.iconCropStyle = iconCropStyle; + } + build() { + const ret = { + decoratedText: { + text: this.content, + wrapText: this.wrap, + }, + }; + if (this.button) { + ret.decoratedText["button"] = this.button.build().buttonList.buttons[0]; + } + if (this.icon) { + ret.decoratedText["icon"] = { + iconUrl: this.icon, + altText: this.iconLabel, + imageType: this.iconCropStyle, + }; + } + if (this.label) { + ret.decoratedText["topLabel"] = this.label; + } + if (this.bottomLabel) { + ret.decoratedText["bottomLabel"] = this.bottomLabel; + } + if (this.onClick) { + ret.decoratedText["onClick"] = this.onClick.build(); + } + return ret; + } +} + +export class Image extends Component { + url: string; + altText?: string; + onClick?: ActionCall | OpenLink; + + constructor(url: string, altText?: string, onClick?: ActionCall | OpenLink) { + super(); + this.url = url; + this.altText = altText; + this.onClick = onClick; + } + build() { + const ret = { image: { imageUrl: this.url } }; + if (this.altText) { + ret.image["altText"] = this.altText; + } + if (this.onClick) { + ret.image["onClick"] = this.onClick.build(); + } + return ret; + } +} + +export class TextInput extends Component { + name: string; + label: string; + onChange?: ActionCall; + placeholder?: string; + value?: string; + + constructor( + name: string, + label: string, + onChange?: ActionCall, + placeholder?: string, + value?: string, + ) { + super(); + this.name = name; + this.label = label; + this.onChange = onChange; + this.placeholder = placeholder; + this.value = value; + } + build() { + const ret = { + textInput: { + name: this.name, + label: this.label, + }, + }; + if (this.onChange) { + ret.textInput["onChangeAction"] = this.onChange.build()["action"]; + } + if (this.placeholder) { + ret.textInput["hintText"] = this.placeholder; + } + if (this.value) { + ret.textInput["value"] = this.value; + } + return ret; + } +} diff --git a/gmail/src/utils/db.ts b/gmail/src/utils/db.ts new file mode 100644 index 000000000..e5e6d8a6f --- /dev/null +++ b/gmail/src/utils/db.ts @@ -0,0 +1,17 @@ +import { Pool } from "pg"; +import { PSQL_DB, PSQL_HOST, PSQL_PASS, PSQL_PORT, PSQL_USER } from "../consts"; + +const pool = new Pool({ + user: PSQL_USER, + password: PSQL_PASS, + database: PSQL_DB, + host: PSQL_HOST, + port: PSQL_PORT, +}); + +pool.on("error", (err, client) => { + console.error("Could not connect to the database", err); + process.exit(-1); +}); + +export default pool; diff --git a/gmail/src/utils/format.ts b/gmail/src/utils/format.ts index 5ffc28289..bf4ff5154 100644 --- a/gmail/src/utils/format.ts +++ b/gmail/src/utils/format.ts @@ -12,13 +12,3 @@ export function formatUrl(url: string): string { // Remove trailing "/" return url.replace(/\/+$/, ""); } - -/** - * Truncate the given text to not exceed the given length. - */ -export function truncate(str: string, maxLength: number) { - if (str.length > maxLength) { - return str.substring(0, maxLength - 3) + "..."; - } - return str; -} diff --git a/gmail/src/utils/html.ts b/gmail/src/utils/html.ts deleted file mode 100644 index 22be56221..000000000 --- a/gmail/src/utils/html.ts +++ /dev/null @@ -1,9 +0,0 @@ -export function escapeHtml(unsafe: string): string { - unsafe = unsafe || ""; - return unsafe - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); -} diff --git a/gmail/src/utils/http.ts b/gmail/src/utils/http.ts index b2640d806..186fccefa 100644 --- a/gmail/src/utils/http.ts +++ b/gmail/src/utils/http.ts @@ -1,9 +1,7 @@ -import { State } from "../models/state"; - /** * Make a JSON RPC call with the following parameters. */ -export function postJsonRpc(url: string, data = {}, headers = {}, options: any = {}) { +export async function postJsonRpc(url: string, data = {}, headers = {}) { for (const key in data) { // don't send null values if (data[key] === undefined || data[key] === null) { @@ -19,36 +17,27 @@ export function postJsonRpc(url: string, data = {}, headers = {}, options: any = params: data, }; - const httpOptions = { - method: "post" as GoogleAppsScript.URL_Fetch.HttpMethod, - contentType: "application/json", - payload: JSON.stringify(data), - headers: headers, - }; - try { - const response = UrlFetchApp.fetch(url, httpOptions); - - if (options.returnRawResponse) { - return response; + const response = await fetch(url, { + method: "POST", + headers: { + ...headers, + "Content-Type": "application/json", + }, + body: JSON.stringify(data), + }); + if (!response.ok) { + throw new Error(`HTTP Error: ${response.status}`); } - const responseCode = response.getResponseCode(); - - if (responseCode > 299 || responseCode < 200) { - return; - } - - const textResponse = response.getContentText("UTF-8"); - const dictResponse = JSON.parse(textResponse); - + const dictResponse = await response.json(); if (!dictResponse.result) { return; } return dictResponse.result; } catch (e) { - Logger.log(`HTTP Error: ${e}`); + console.error(`HTTP Error: ${e}`); return; } } diff --git a/gmail/src/views/card_actions.ts b/gmail/src/views/card_actions.ts index d288d60bf..d8d462d36 100644 --- a/gmail/src/views/card_actions.ts +++ b/gmail/src/views/card_actions.ts @@ -1,29 +1,19 @@ -import { onBuildDebugView } from "./debug"; import { State } from "../models/state"; -import { resetAccessToken } from "../services/odoo_auth"; -import { _t, clearTranslationCache } from "../services/translation"; -import { actionCall } from "./helpers"; -import { pushToRoot } from "./helpers"; -import { buildLoginMainView } from "../views/login"; +import { User } from "../models/user"; +import { ActionCall, EventResponse, PushToRoot, registerEventHandler } from "../utils/actions"; +import { Card } from "../utils/components"; +import { getLoginMainView } from "../views/login"; +import { onOpenDebugView } from "./debug"; -function onLogout() { - resetAccessToken(); - clearTranslationCache(); - return pushToRoot(buildLoginMainView()); +async function onLogout(state: State, _t: Function, user: User): Promise { + user.odooUrl = undefined; + user.odooToken = undefined; + await user.save(); + return new PushToRoot(await getLoginMainView(user)); } +registerEventHandler(onLogout); -export function buildCardActionsView(card: Card) { - if (State.isLogged) { - card.addCardAction( - CardService.newCardAction() - .setText(_t("Log out")) - .setOnClickAction(actionCall(undefined, onLogout.name)), - ); - } - - card.addCardAction( - CardService.newCardAction() - .setText(_t("Debug")) - .setOnClickAction(actionCall(undefined, onBuildDebugView.name)), - ); +export function buildCardActionsView(card: Card, _t: Function) { + card.addAction(_t("Log out"), new ActionCall(undefined, onLogout)); + card.addAction(_t("Debug"), new ActionCall(undefined, onOpenDebugView)); } diff --git a/gmail/src/views/create_task.ts b/gmail/src/views/create_task.ts index 5c4cf04e5..986e0bcb6 100644 --- a/gmail/src/views/create_task.ts +++ b/gmail/src/views/create_task.ts @@ -1,49 +1,90 @@ -import { buildView } from "../views/index"; -import { updateCard, pushCard, pushToRoot } from "./helpers"; -import { UI_ICONS } from "./icons"; -import { createKeyValueWidget, actionCall, notify } from "./helpers"; -import { getOdooServerUrl } from "src/services/app_properties"; import { Project } from "../models/project"; import { State } from "../models/state"; import { Task } from "../models/task"; -import { _t } from "../services/translation"; -import { getOdooRecordURL } from "src/services/odoo_redirection"; - -function onSearchProjectClick(state: State, parameters: any, inputs: any) { - const query = inputs.search_project_query || ""; - const [projects, error] = Project.searchProject(query); +import { User } from "../models/user"; +import { + ActionCall, + EventResponse, + Notify, + PopOneCardAndUpdate, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { + Button, + ButtonsList, + Card, + CardSection, + DecoratedText, + Image, + TextInput, + TextParagraph, +} from "../utils/components"; +import { UI_ICONS } from "./icons"; +import { getPartnerView } from "./partner"; + +async function onSearchProjectClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const query = formInputs.search_project_query || ""; + const [projects, error] = await Project.searchProject(user, query); if (error.code) { - return notify(error.message); + return new Notify(error.toString(_t)); } state.searchedProjects = projects; - return updateCard(buildCreateTaskView(state, query)); + return new UpdateCard(getCreateTaskView(state, _t, user, query)); } - -function onCreateProjectViewClick(state: State, parameters: any, inputs: any) { - return updateCard(buildCreateProjectView(state)); +registerEventHandler(onSearchProjectClick); + +function onCreateProjectViewClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new UpdateCard(getCreateProjectView(state, _t)); } - -function onCreateProjectClick(state: State, parameters: any, inputs: any) { - const projectName = inputs.new_project_name || ""; +registerEventHandler(onCreateProjectViewClick); + +async function onCreateProjectClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const projectName = formInputs.new_project_name || ""; if (!projectName.length) { - return notify(_t("The project name is required")); + return new Notify(_t("The project name is required")); } - const project = Project.createProject(projectName); + const project = await Project.createProject(user, projectName); if (!project) { - return notify(_t("Could not create the project")); + return new Notify(_t("Could not create the project")); } - return onSelectProject(state, { project: project }); + return onSelectProject(state, _t, user, { project: project }, {}); } - -function onSelectProject(state: State, parameters: any) { - const project = Project.fromJson(parameters.project); - const result = Task.createTask(state.partner, project.id, state.email); +registerEventHandler(onCreateProjectClick); + +async function onSelectProject( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const project = Project.fromJson(args.project); + const result = await Task.createTask(user, state.partner, project.id, state.email); if (!result) { - return notify(_t("Could not create the task")); + return new Notify(_t("Could not create the task")); } const [task, partner] = result; @@ -51,88 +92,78 @@ function onSelectProject(state: State, parameters: any) { state.partner.tasks.push(task); state.partner.taskCount += 1; - const taskUrl = getOdooRecordURL("project.task", task.id); - return pushToRoot(buildView(state)); + return new PopOneCardAndUpdate(getPartnerView(state, _t, user)); } - -export function buildCreateTaskView(state: State, query: string = "") { - let noProject = false; - if (!state.searchedProjects) { - // Initiate the search - const [searchedProjects, error] = Project.searchProject(""); - if (error.code) { - return notify(error.message); - } - - state.searchedProjects = searchedProjects; - noProject = !state.searchedProjects.length; - } - +registerEventHandler(onSelectProject); + +export function getCreateTaskView( + state: State, + _t: Function, + user: User, + query: string = "", + noProject: boolean = false, +): Card { const projects = state.searchedProjects; - const card = CardService.newCardBuilder(); + const card = new Card(); if (!noProject) { - const projectSection = CardService.newCardSection().setHeader( - "" + _t("Create a Task in an existing Project") + "", - ); + const projectSection = new CardSection(); + projectSection.setHeader("" + _t("Create a Task in an existing Project") + ""); projectSection.addWidget( - CardService.newTextInput() - .setFieldName("search_project_query") - .setTitle(_t("Search a Project")) - .setValue(query || "") - .setOnChangeAction(actionCall(state, onSearchProjectClick.name, {})), + new TextInput( + "search_project_query", + _t("Search a Project"), + new ActionCall(state, onSearchProjectClick), + "", + query || "", + ), ); - const actionButtonSet = CardService.newButtonSet(); + const actionButtonSet = new ButtonsList(); actionButtonSet.addButton( - CardService.newTextButton() - .setText(_t("Search")) - .setOnClickAction(actionCall(state, onSearchProjectClick.name, {})), + new Button(_t("Search"), new ActionCall(state, onSearchProjectClick)), ); if (state.canCreateProject) { actionButtonSet.addButton( - CardService.newTextButton() - .setText(_t("Create Project")) - .setBackgroundColor("#875a7b") - .setOnClickAction(actionCall(state, onCreateProjectViewClick.name, {})), + new Button( + _t("Create Project"), + new ActionCall(state, onCreateProjectViewClick), + "#875a7b", + ), ); } projectSection.addWidget(actionButtonSet); if (!projects.length) { - projectSection.addWidget( - CardService.newTextParagraph().setText(_t("No project found.")), - ); + projectSection.addWidget(new TextParagraph(_t("No project found."))); } for (let project of projects) { const bottomLabel = [project.companyName, project.partnerName, project.stageName]; - const projectCard = createKeyValueWidget( - null, + const projectCard = new DecoratedText( + undefined, project.name, - null, + undefined, bottomLabel.filter((l) => l).join(" - "), - null, - actionCall(state, onSelectProject.name, { project: project }), + undefined, + new ActionCall(state, onSelectProject, { project: project }), ); projectSection.addWidget(projectCard); } card.addSection(projectSection); } else if (state.canCreateProject) { - return buildCreateProjectView(state); + return getCreateProjectView(state, _t); } else { - const noProjectSection = CardService.newCardSection(); + const noProjectSection = new CardSection(); - noProjectSection.addWidget(CardService.newImage().setImageUrl(UI_ICONS.empty_folder)); + noProjectSection.addWidget(new Image(UI_ICONS.empty_folder)); - noProjectSection.addWidget( - CardService.newTextParagraph().setText("" + _t("No project") + ""), - ); + noProjectSection.addWidget(new TextParagraph("" + _t("No project") + "")); noProjectSection.addWidget( - CardService.newTextParagraph().setText( + new TextParagraph( _t( "There are no project in your database. Please ask your project manager to create one.", ), @@ -142,29 +173,22 @@ export function buildCreateTaskView(state: State, query: string = "") { card.addSection(noProjectSection); } - return card.build(); + return card; } -export function buildCreateProjectView(state: State) { - const card = CardService.newCardBuilder(); +/** + * Card used to create a new project (and to create the task in that project). + */ +export function getCreateProjectView(state: State, _t: Function): Card { + const createProjectSection = new CardSection(); + const card = new Card([createProjectSection]); - const createProjectSection = CardService.newCardSection().setHeader( - "" + _t("Create a Task in a new Project") + "", - ); + createProjectSection.setHeader("" + _t("Create a Task in a new Project") + ""); - createProjectSection.addWidget( - CardService.newTextInput() - .setFieldName("new_project_name") - .setTitle(_t("Project Name")) - .setValue(""), - ); + createProjectSection.addWidget(new TextInput("new_project_name", _t("Project Name"))); createProjectSection.addWidget( - CardService.newTextButton() - .setText(_t("Create Project & Task")) - .setOnClickAction(actionCall(state, onCreateProjectClick.name)), + new Button(_t("Create Project & Task"), new ActionCall(state, onCreateProjectClick)), ); - card.addSection(createProjectSection); - - return card.build(); + return card; } diff --git a/gmail/src/views/debug.ts b/gmail/src/views/debug.ts index d507c0ca9..7a96fd84b 100644 --- a/gmail/src/views/debug.ts +++ b/gmail/src/views/debug.ts @@ -1,40 +1,36 @@ -import { createKeyValueWidget } from "./helpers"; -import { _t, clearTranslationCache } from "../services/translation"; -import { getAccessToken } from "src/services/odoo_auth"; -import { getOdooServerUrl } from "src/services/app_properties"; +import { State } from "../models/state"; +import { User } from "../models/user"; +import { + ActionCall, + EventResponse, + PopCard, + PushCard, + registerEventHandler, +} from "../utils/actions"; +import { Button, Card, CardSection, DecoratedText, TextParagraph } from "../utils/components"; -export function onBuildDebugView() { - const card = CardService.newCardBuilder(); - const odooServerUrl = getOdooServerUrl(); - const odooAccessToken = getAccessToken(); - - card.setHeader( - CardService.newCardHeader() - .setTitle(_t("Debug Zone")) - .setSubtitle(_t("Debug zone for development purpose.")), - ); - - card.addSection( - CardService.newCardSection().addWidget( - createKeyValueWidget(_t("Odoo Server URL"), odooServerUrl), - ), - ); - - card.addSection( - CardService.newCardSection().addWidget( - createKeyValueWidget(_t("Odoo Access Token"), odooAccessToken), - ), - ); - - card.addSection( - CardService.newCardSection().addWidget( - CardService.newTextButton() - .setText(_t("Clear Translations Cache")) - .setOnClickAction( - CardService.newAction().setFunctionName(clearTranslationCache.name), - ), - ), - ); +export async function onClearTranslationCache( + state: State, + _t: Function, + user: User, +): Promise { + user.translations = undefined; + user.translationsExpireAt = undefined; + await user.save(); + return new PopCard(); +} +registerEventHandler(onClearTranslationCache); - return card.build(); +export function onOpenDebugView(state: State, _t: Function, user: User): EventResponse { + const section = new CardSection([ + new TextParagraph(_t("Debug zone for development purpose.")), + new DecoratedText(_t("Odoo Server URL"), user.odooUrl), + new DecoratedText(_t("Odoo Access Token"), user.odooToken), + new DecoratedText(_t("Odoo Access Token"), user.odooToken), + new Button(_t("Clear Translations Cache"), new ActionCall(state, onClearTranslationCache)), + ]); + const card = new Card([section]); + section.setHeader(_t("Debug Zone")); + return new PushCard(card); } +registerEventHandler(onOpenDebugView); diff --git a/gmail/src/views/helpers.ts b/gmail/src/views/helpers.ts deleted file mode 100644 index b2e465c81..000000000 --- a/gmail/src/views/helpers.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { UI_ICONS } from "./icons"; -import { State } from "../models/state"; -import { escapeHtml } from "../utils/html"; -import { truncate } from "../utils/format"; - -/** - * Remove all cards and push the new one - */ -export function pushToRoot(card: Card) { - return CardService.newNavigation().popToRoot().updateCard(card); -} - -/** - * Remove the last card and push a new one. - */ -export function updateCard(card: Card) { - return CardService.newNavigation().updateCard(card); -} - -/** - * Push a new card on the stack. - */ -export function pushCard(card: Card) { - return CardService.newNavigation().pushCard(card); -} - -/** - * Build a widget "Key / Value / Icon" - * - * If the icon is not a valid URL, take the icon from: - * https://github.com/webdog/octicons-png - */ -export function createKeyValueWidget( - label: string, - content: string, - icon: string = null, - bottomLabel: string = null, - button: Button = null, - action: any = null, - wrap: boolean = true, - iconLabel: string = null, - iconCropStyle: GoogleAppsScript.Card_Service.ImageCropType = CardService.ImageCropType.SQUARE, -) { - const widget = CardService.newDecoratedText().setText(content); - if (label && label.length) { - widget.setTopLabel(escapeHtml(label)); - } - - if (bottomLabel) { - widget.setBottomLabel(bottomLabel); - } - - if (button) { - widget.setButton(button); - } - if (action) { - if (typeof action === "string") { - widget.setOpenLink(CardService.newOpenLink().setUrl(action)); - } else { - widget.setOnClickAction(action); - } - } - - if (icon && icon.length) { - const isIconUrl = - icon.indexOf("http://") === 0 || - icon.indexOf("https://") === 0 || - icon.indexOf("data:image/") === 0; - if (!isIconUrl) { - throw new Error("Invalid icon URL"); - } - - widget.setStartIcon( - CardService.newIconImage() - .setIconUrl(icon) - .setImageCropType(iconCropStyle) - .setAltText(escapeHtml(iconLabel || label)), - ); - } - - widget.setWrapText(wrap); - - return widget; -} - -function _handleActionCall(event) { - const functionName = event.parameters.functionName; - const parameters = JSON.parse(event.parameters.parameters); - if (!/^on[A-Z][a-zA-Z]+(\$[0-9]+)?$/.test(functionName)) { - throw new Error("Invalid function name"); - } - // @ts-ignore - const toCall = this[functionName]; - if (event.parameters.state?.length) { - const state = State.fromJson(event.parameters.state); - return toCall(state, parameters, event.formInput); - } - return toCall(parameters, event.formInput); -} - -/** - * Create an action which will call the given function and pass the state in arguments. - * - * This is necessary because event handlers can call only function and all arguments - * must be strings. Therefor we serialized the state and other arguments to clean the code - * and to be able to access to it in the event handlers. - */ -export function actionCall(state: State | null, functionName: string, parameters: any = {}) { - return CardService.newAction() - .setFunctionName(_handleActionCall.name) - .setParameters({ - functionName: functionName, - state: state ? state.toJson() : "", - parameters: JSON.stringify(parameters), - }); -} - -export function notify(message: string) { - return CardService.newActionResponseBuilder() - .setNotification(CardService.newNotification().setText(message)) - .build(); -} - -export function openUrl(url: string) { - return CardService.newActionResponseBuilder() - .setOpenLink(CardService.newOpenLink().setUrl(url)) - .build(); -} diff --git a/gmail/src/views/index.ts b/gmail/src/views/index.ts deleted file mode 100644 index 5d1de426d..000000000 --- a/gmail/src/views/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { buildPartnerView } from "./partner"; -import { buildCardActionsView } from "./card_actions"; -import { buildSearchPartnerView } from "./search_partner"; -import { State } from "../models/state"; -import { _t } from "../services/translation"; - -export function buildView(state: State) { - const card = CardService.newCardBuilder(); - if (state.searchedPartners?.length) { - return buildSearchPartnerView(state, "", false, _t("In this conversation"), true, true); - } else { - buildPartnerView(state, card); - } - - return card.build(); -} diff --git a/gmail/src/views/leads.ts b/gmail/src/views/leads.ts index f7e5bdb21..46f1be5c9 100644 --- a/gmail/src/views/leads.ts +++ b/gmail/src/views/leads.ts @@ -1,61 +1,103 @@ -import { buildView } from "../views/index"; -import { updateCard, createKeyValueWidget, actionCall, notify, openUrl } from "./helpers"; -import { getOdooServerUrl } from "src/services/app_properties"; -import { getOdooRecordURL } from "src/services/odoo_redirection"; -import { UI_ICONS } from "./icons"; -import { logEmail } from "../services/log_email"; -import { _t } from "../services/translation"; import { Lead } from "../models/lead"; import { State } from "../models/state"; -import { buildSearchRecordView } from "../views/search_records"; - -function onLogEmailOnLead(state: State, parameters: any) { - const leadId = parameters.leadId; - - if (State.checkLoggingState(state.email.messageId, "crm.lead", leadId)) { - const error = logEmail(leadId, "crm.lead", state.email); - if (error.code) { - return notify(error.message); - } - - State.setLoggingState(state.email.messageId, "crm.lead", leadId); - return updateCard(buildView(state)); +import { User } from "../models/user"; +import { logEmail } from "../services/log_email"; +import { getOdooRecordURL } from "../services/odoo_redirection"; +import { + ActionCall, + EventResponse, + Notify, + OpenLink, + PushCard, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { + Button, + Card, + CardSection, + DecoratedText, + IconButton, + LinkButton, +} from "../utils/components"; +import { UI_ICONS } from "./icons"; +import { getPartnerView } from "./partner"; +import { getSearchRecordView } from "./search_records"; + +async function onLogEmailOnLead( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const leadId = args.leadId; + + const error = await logEmail(_t, user, leadId, "crm.lead", state.email); + if (error.code) { + return new Notify(error.toString(_t)); } - return notify(_t("Email already logged on the opportunity")); -} -function onEmailAlreradyLoggedOnLead(state: State) { - return notify(_t("Email already logged on the opportunity")); + await state.email.setLoggingState(user, "crm.lead", leadId); + return new UpdateCard(getPartnerView(state, _t, user)); } - -function onCreateLead(state: State) { - const result = Lead.createLead(state.partner, state.email); +registerEventHandler(onLogEmailOnLead); + +function onEmailAlreradyLoggedOnLead( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new Notify(_t("Email already logged on the opportunity")); +} +registerEventHandler(onEmailAlreradyLoggedOnLead); + +async function onCreateLead( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const result = await Lead.createLead(user, state.partner, state.email); if (!result) { - return notify(_t("Could not create the opportunity")); + return new Notify(_t("Could not create the opportunity")); } const [lead, partner] = result; state.partner = partner; state.partner.leads.push(lead); state.partner.leadCount += 1; - return updateCard(buildView(state)); + return new UpdateCard(getPartnerView(state, _t, user)); } - -function onSearchClick(state: State) { - return buildSearchRecordView( - state, - "crm.lead", - _t("Opportunities"), - _t("Log the email on the opportunity"), - _t("Email already logged on the opportunity"), - "revenuesDescription", - "", - true, - state.partner.leads, +registerEventHandler(onCreateLead); + +function onSearchLeadsClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new PushCard( + getSearchRecordView( + state, + _t, + "crm.lead", + _t("Opportunities"), + _t("Log the email on the opportunity"), + _t("Email already logged on the opportunity"), + "revenuesDescription", + "", + true, + state.partner.leads, + ), ); } +registerEventHandler(onSearchLeadsClick); -export function buildLeadsView(state: State, card: Card) { - const odooServerUrl = getOdooServerUrl(); +export function buildLeadsView(state: State, _t: Function, user: User, card: Card) { const partner = state.partner; if (!partner.leads) { // CRM module is not installed @@ -65,67 +107,65 @@ export function buildLeadsView(state: State, card: Card) { const leads = [...partner.leads].splice(0, 5); - const loggingState = State.getLoggingState(state.email.messageId); + const leadsSection = new CardSection(); - const leadsSection = CardService.newCardSection(); - - const searchButton = CardService.newImageButton() - .setAltText(_t("Search Opportunities")) - .setIconUrl(UI_ICONS.search) - .setOnClickAction(actionCall(state, onSearchClick.name)); + const searchButton = new IconButton( + new ActionCall(state, onSearchLeadsClick), + UI_ICONS.search, + _t("Search Opportunities"), + ); const title = partner.leadCount ? _t("Opportunities (%s)", partner.leadCount) : _t("Opportunities"); - const widget = CardService.newDecoratedText().setText("" + title + ""); - widget.setButton(searchButton); - leadsSection.addWidget(widget); + const widget = new DecoratedText( + "", + "" + title + "", + undefined, + undefined, + searchButton, + ); - const createButton = CardService.newTextButton() - .setText(_t("New")) - .setOnClickAction(actionCall(state, onCreateLead.name)); + leadsSection.addWidget(widget); + const createButton = new Button(_t("New"), new ActionCall(state, onCreateLead)); leadsSection.addWidget(createButton); for (let lead of leads) { let leadButton = null; - if (loggingState["crm.lead"].indexOf(lead.id) >= 0) { - leadButton = CardService.newImageButton() - .setAltText(_t("Email already logged on the opportunity")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreradyLoggedOnLead.name)); + if (state.email.checkLoggingState("crm.lead", lead.id)) { + leadButton = new IconButton( + new ActionCall(state, onEmailAlreradyLoggedOnLead), + UI_ICONS.email_logged, + _t("Email already logged on the opportunity"), + ); } else { - leadButton = CardService.newImageButton() - .setAltText(_t("Log the email on the opportunity")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, onLogEmailOnLead.name, { - leadId: lead.id, - }), - ); + leadButton = new IconButton( + new ActionCall(state, onLogEmailOnLead, { + leadId: lead.id, + }), + UI_ICONS.email_in_odoo, + _t("Log the email on the opportunity"), + ); } leadsSection.addWidget( - createKeyValueWidget( - null, + new DecoratedText( + "", lead.name, - null, + undefined, lead.revenuesDescription, leadButton, - getOdooRecordURL("crm.lead", lead.id), + new OpenLink(getOdooRecordURL(user, "crm.lead", lead.id)), ), ); } if (leads.length < partner.leadCount) { leadsSection.addWidget( - CardService.newTextButton() - .setText(_t("Show all")) - .setTextButtonStyle(CardService.TextButtonStyle["BORDERLESS"]) - .setOnClickAction(actionCall(state, onSearchClick.name)), + new LinkButton(_t("Show all"), new ActionCall(state, onSearchLeadsClick)), ); } card.addSection(leadsSection); - return card; } diff --git a/gmail/src/views/login.ts b/gmail/src/views/login.ts index 85082c665..0ac040f98 100644 --- a/gmail/src/views/login.ts +++ b/gmail/src/views/login.ts @@ -1,16 +1,32 @@ -import { formatUrl } from "../utils/format"; -import { notify } from "./helpers"; import { State } from "../models/state"; +import { User } from "../models/user"; +import { getOdooAuthUrl, getSupportedAddinVersion } from "../services/odoo_auth"; +import { + ActionCall, + EventResponse, + Notify, + OpenLink, + OpenLinkOpenAs, + Redirect, + registerEventHandler, +} from "../utils/actions"; +import { Card, CardSection, Image, TextInput } from "../utils/components"; +import { formatUrl } from "../utils/format"; import { IMAGES_LOGIN } from "./icons"; -import { getSupportedAddinVersion } from "../services/odoo_auth"; -import { _t, clearTranslationCache } from "../services/translation"; -import { setOdooServerUrl } from "src/services/app_properties"; - -function onNextLogin(event) { - let validatedUrl = formatUrl(event.formInput.odooServerUrl); +/** + * Initiate the authentication process, and redirect to the Odoo database. + */ +async function onNextLogin( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + let validatedUrl = formatUrl(formInputs.odooServerUrl); if (!validatedUrl) { - return notify("Invalid URL"); + return new Notify("Invalid URL"); } if (validatedUrl.endsWith("/odoo")) { @@ -21,113 +37,78 @@ function onNextLogin(event) { validatedUrl = validatedUrl.slice(0, -4); } - if (!/^https:\/\/([^\/?]*\.)?odoo\.com(\/|$)/.test(validatedUrl)) { - return notify( - "The URL must be a subdomain of odoo.com, see the
documentation", - ); - } - - clearTranslationCache(); - - setOdooServerUrl(validatedUrl); - - const version = getSupportedAddinVersion(validatedUrl); + user.odooUrl = formInputs.odooServerUrl; + await user.save(); + const version = await getSupportedAddinVersion(validatedUrl); if (!version) { - return notify("Could not connect to your database."); + return new Notify("Could not connect to your database."); } if (version !== 2) { - return notify( + return new Notify( "This addin version required Odoo 19.1 or a newer version, please install an older addin version.", ); } - - return CardService.newActionResponseBuilder() - .setOpenLink( - CardService.newOpenLink() - .setUrl(State.odooLoginUrl) - .setOpenAs(CardService.OpenAs.OVERLAY) - .setOnClose(CardService.OnClose.RELOAD), - ) - .build(); + const odooLoginUrl = await getOdooAuthUrl(user); + return new Redirect(new OpenLink(odooLoginUrl, OpenLinkOpenAs.OVERLAY, true)); } +registerEventHandler(onNextLogin); -export function buildLoginMainView(error: string = null) { - const card = CardService.newCardBuilder(); - - const loginButton = Utilities.base64Encode( - Utilities.newBlob(Utilities.base64Decode(IMAGES_LOGIN.buttonSVG)) - .getDataAsString() +export async function getLoginMainView(user: User) { + const loginButton = btoa( + atob(IMAGES_LOGIN.buttonSVG) .replace("__TEXT__", "Login") .replace("__STROKE__", "#875a7b") .replace("__FILL__", "#875a7b") .replace("__COLOR__", "white"), ); - const signupButton = Utilities.base64Encode( - Utilities.newBlob(Utilities.base64Decode(IMAGES_LOGIN.buttonSVG)) - .getDataAsString() + const signupButton = btoa( + atob(IMAGES_LOGIN.buttonSVG) .replace("__TEXT__", "Sign Up") .replace("__STROKE__", "#e7e9ed") .replace("__FILL__", "#e7e9ed") .replace("__COLOR__", "#1e1e1e"), ); - const faqButton = Utilities.base64Encode( - Utilities.newBlob(Utilities.base64Decode(IMAGES_LOGIN.buttonSVG)) - .getDataAsString() + const faqButton = btoa( + atob(IMAGES_LOGIN.buttonSVG) .replace("__TEXT__", "FAQ") .replace("__STROKE__", "white") .replace("__FILL__", "white") .replace("__COLOR__", "#2f9e44"), ); - const section = CardService.newCardSection() - .addWidget( - CardService.newImage() - .setAltText("Connect to your Odoo database") - .setImageUrl(IMAGES_LOGIN.loginSVG), - ) - .addWidget( - CardService.newTextInput() - .setFieldName("odooServerUrl") - .setTitle("Connect to...") - .setHint("e.g. company.odoo.com") - .setValue( - PropertiesService.getUserProperties().getProperty("ODOO_SERVER_URL") || "", - ) - .setOnChangeAction(CardService.newAction().setFunctionName(onNextLogin.name)), - ) - .addWidget( - CardService.newImage() - .setImageUrl("data:image/svg+xml;base64," + loginButton) - .setOnClickAction(CardService.newAction().setFunctionName(onNextLogin.name)), - ) - .addWidget( - CardService.newImage() - .setImageUrl("data:image/svg+xml;base64," + signupButton) - .setOpenLink( - CardService.newOpenLink().setUrl( - "https://www.odoo.com/trial?selected_app=mail_plugin:crm:helpdesk:project", - ), + return new Card([ + new CardSection([ + new Image(IMAGES_LOGIN.loginSVG, "Connect to your Odoo database"), + new TextInput( + "odooServerUrl", + "Connect to...", + new ActionCall(undefined, onNextLogin), + "e.g. company.odoo.com", + user.odooUrl, + ), + new Image( + "data:image/svg+xml;base64," + loginButton, + "Login", + new ActionCall(undefined, onNextLogin), + ), + new Image( + "data:image/svg+xml;base64," + signupButton, + "Sign Up", + new OpenLink( + "https://www.odoo.com/trial?selected_app=mail_plugin:crm:helpdesk:project", ), - ) - .addWidget( - CardService.newImage() - .setImageUrl("data:image/svg+xml;base64," + faqButton) - .setOpenLink( - CardService.newOpenLink().setUrl( - "https://www.odoo.com/documentation/master/applications/productivity/mail_plugins.html", - ), + ), + new Image( + "data:image/svg+xml;base64," + faqButton, + "FAQ", + new OpenLink( + "https://www.odoo.com/documentation/master/applications/productivity/mail_plugins.html", ), - ); - - if (error) { - section.addWidget(CardService.newTextParagraph().setText(error)); - } - - card.addSection(section); - - return card.build(); + ), + ]), + ]); } diff --git a/gmail/src/views/partner.ts b/gmail/src/views/partner.ts index 435ebf5d8..7c60ccaaf 100644 --- a/gmail/src/views/partner.ts +++ b/gmail/src/views/partner.ts @@ -1,42 +1,50 @@ +import { Partner } from "../models/partner"; +import { State } from "../models/state"; +import { User } from "../models/user"; +import { + ActionCall, + EventResponse, + Notify, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { Card, CardSection, DecoratedText } from "../utils/components"; +import { buildCardActionsView } from "./card_actions"; import { buildLeadsView } from "./leads"; +import { getPartnerActionButtons } from "./partner_actions"; import { buildTasksView } from "./tasks"; import { buildTicketsView } from "./tickets"; -import { buildPartnerActionView } from "./partner_actions"; -import { actionCall, createKeyValueWidget, notify, updateCard } from "./helpers"; -import { getOdooServerUrl } from "src/services/app_properties"; -import { State } from "../models/state"; -import { _t } from "../services/translation"; -import { buildCardActionsView } from "./card_actions"; -import { Partner } from "src/models/partner"; -import { buildView } from "./index"; -export function onReloadPartner(state: State) { - const values = Partner.getPartner(state.partner.name, state.partner.email, state.partner.id); +export async function onReloadPartner( + state: State, + _t: Function, + user: User, +): Promise { + const values = await Partner.getPartner( + user, + state.partner.name, + state.partner.email, + state.partner.id, + ); [state.partner, state.canCreatePartner, state.canCreateProject] = values; if (values[3].code) { - return notify(values[3].message); + return new Notify(values[3].toString(_t)); } - - return updateCard(buildView(state)); + return new UpdateCard(getPartnerView(state, _t, user)); } +registerEventHandler(onReloadPartner); -export function buildPartnerView(state: State, card: Card) { - card.addCardAction( - CardService.newCardAction() - .setText(_t("Refresh")) - .setOnClickAction(actionCall(state, onReloadPartner.name)), - ); - - buildCardActionsView(card); +export function getPartnerView(state: State, _t: Function, user: User): Card { + const section = new CardSection(); + const card = new Card([section]); + buildCardActionsView(card, _t); + card.addAction(_t("Refresh"), new ActionCall(state, onReloadPartner)); const partner = state.partner; - const odooServerUrl = getOdooServerUrl(); - const partnerSection = CardService.newCardSection().setHeader( - "" + _t("Contact Details") + "", - ); + section.setHeader("" + _t("Contact Details") + ""); let partnerContent = [ partner.companyName && `🏢 ${partner.companyName}`, @@ -50,7 +58,7 @@ export function buildPartnerView(state: State, card: Card) { partnerContent = _t("New Person"); } - const partnerCard = createKeyValueWidget( + const partnerCard = new DecoratedText( null, partner.name || partner.email || "", partner.getImage(), @@ -59,20 +67,15 @@ export function buildPartnerView(state: State, card: Card) { null, false, partner.email, - CardService.ImageCropType.CIRCLE, ); - partnerSection.addWidget(partnerCard); + section.addWidget(partnerCard); - buildPartnerActionView(state, partnerSection); + section.addWidget(getPartnerActionButtons(state, _t, user)); - card.addSection(partnerSection); - - if (State.isLogged) { - buildLeadsView(state, card); - buildTicketsView(state, card); - buildTasksView(state, card); - } + buildLeadsView(state, _t, user, card); + buildTicketsView(state, _t, user, card); + buildTasksView(state, _t, user, card); return card; } diff --git a/gmail/src/views/partner_actions.ts b/gmail/src/views/partner_actions.ts index 9b802c801..1ec550826 100644 --- a/gmail/src/views/partner_actions.ts +++ b/gmail/src/views/partner_actions.ts @@ -1,102 +1,107 @@ -import { buildView } from "../views/index"; -import { buildSearchPartnerView } from "./search_partner"; -import { UI_ICONS } from "./icons"; -import { State } from "../models/state"; import { Partner } from "../models/partner"; -import { actionCall, notify } from "./helpers"; -import { updateCard } from "./helpers"; -import { _t } from "../services/translation"; +import { State } from "../models/state"; +import { User } from "../models/user"; import { logEmail } from "../services/log_email"; -import { getOdooRecordURL } from "src/services/odoo_redirection"; +import { getOdooRecordURL } from "../services/odoo_redirection"; +import { + ActionCall, + EventResponse, + Notify, + OpenLink, + PushCard, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { Button, ButtonsList, IconButton } from "../utils/components"; +import { UI_ICONS } from "./icons"; +import { getPartnerView } from "./partner"; +import { getSearchPartnerView } from "./search_partner"; -function onLogEmail(state: State) { +async function onLogEmail(state: State, _t: Function, user: User): Promise { const partnerId = state.partner.id; if (!partnerId) { throw new Error(_t("This contact does not exist in the Odoo database.")); } - if (State.checkLoggingState(state.email.messageId, "res.partner", partnerId)) { - const error = logEmail(partnerId, "res.partner", state.email); - if (error.code) { - return notify(error.message); - } - State.setLoggingState(state.email.messageId, "res.partner", partnerId); - return updateCard(buildView(state)); + const error = await logEmail(_t, user, partnerId, "res.partner", state.email); + if (error.code) { + return new Notify(error.toString(_t)); } - return notify(_t("Email already logged on the contact")); + state.email.setLoggingState(user, "res.partner", partnerId); + return new UpdateCard(getPartnerView(state, _t, user)); } +registerEventHandler(onLogEmail); -function onSavePartner(state: State) { - const partner = Partner.savePartner(state.partner); +async function onSavePartner(state: State, _t: Function, user: User): Promise { + const partner = await Partner.savePartner(user, state.partner); if (partner) { state.partner = partner; state.partner.isWritable = true; state.searchedPartners = null; - return updateCard(buildView(state)); + return new UpdateCard(getPartnerView(state, _t, user)); } - return notify(_t("Can not save the contact")); + return new Notify(_t("Can not save the contact")); } +registerEventHandler(onSavePartner); -export function onEmailAlreadyLoggedContact(state: State) { - return notify(_t("Email already logged on the contact")); +export function onEmailAlreadyLoggedContact(state: State, _t: Function, user: User): EventResponse { + return new Notify(_t("Email already logged on the contact")); } +registerEventHandler(onEmailAlreadyLoggedContact); -function onSearchPartner(state: State) { +async function onSearchPartner(state: State, _t: Function, user: User): Promise { state.searchedPartners = []; - return buildSearchPartnerView(state, state.partner.email, true); + return new PushCard(await getSearchPartnerView(state, _t, user, state.partner.email, true)); } +registerEventHandler(onSearchPartner); -export function buildPartnerActionView(state: State, partnerSection: CardSection) { - const actionButtonSet = CardService.newButtonSet(); +export function getPartnerActionButtons(state: State, _t: Function, user: User): ButtonsList { + const actionButtonSet = new ButtonsList(); - const loggingState = State.getLoggingState(state.email.messageId); const isEmailLogged = - state.partner.id && loggingState["res.partner"].indexOf(state.partner.id) >= 0; + state.partner.id && state.email.checkLoggingState("res.partner", state.partner.id); if (!state.partner.id && state.canCreatePartner) { actionButtonSet.addButton( - CardService.newTextButton() - .setText(_t("Add to Odoo")) - .setBackgroundColor("#875a7b") - .setOnClickAction(actionCall(state, onSavePartner.name)), + new Button(_t("Add to Odoo"), new ActionCall(state, onSavePartner), "#875a7b"), ); } if (state.partner.id) { actionButtonSet.addButton( - CardService.newTextButton() - .setText(_t("View in Odoo")) - .setBackgroundColor("#875a7b") - .setOpenLink( - CardService.newOpenLink().setUrl( - getOdooRecordURL("res.partner", state.partner.id), - ), - ), + new Button( + _t("View in Odoo"), + new OpenLink(getOdooRecordURL(user, "res.partner", state.partner.id)), + "#875a7b", + ), ); } if (state.partner.id && !isEmailLogged && state.partner.isWritable) { actionButtonSet.addButton( - CardService.newImageButton() - .setAltText(_t("Log email")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction(actionCall(state, onLogEmail.name)), + new IconButton( + new ActionCall(state, onLogEmail), + UI_ICONS.email_in_odoo, + _t("Log email"), + ), ); } if (state.partner.id && isEmailLogged) { actionButtonSet.addButton( - CardService.newImageButton() - .setAltText(_t("Email already logged on the contact")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreadyLoggedContact.name)), + new IconButton( + new ActionCall(state, onEmailAlreadyLoggedContact), + UI_ICONS.email_logged, + _t("Email already logged on the contact"), + ), ); } actionButtonSet.addButton( - CardService.newImageButton() - .setAltText(_t("Search contact")) - .setIconUrl(UI_ICONS.search) - .setOnClickAction(actionCall(state, onSearchPartner.name)), + new IconButton( + new ActionCall(state, onSearchPartner), + UI_ICONS.search, + _t("Search contact"), + ), ); - partnerSection.addWidget(actionButtonSet); + return actionButtonSet; } diff --git a/gmail/src/views/search_partner.ts b/gmail/src/views/search_partner.ts index 5a29b4cc6..cad280b68 100644 --- a/gmail/src/views/search_partner.ts +++ b/gmail/src/views/search_partner.ts @@ -1,54 +1,90 @@ -import { logEmail } from "../services/log_email"; -import { _t } from "../services/translation"; -import { Partner } from "../models/partner"; import { ErrorMessage } from "../models/error_message"; -import { actionCall, pushCard, updateCard, notify } from "./helpers"; -import { buildView } from "./index"; +import { Partner } from "../models/partner"; import { State } from "../models/state"; +import { User } from "../models/user"; +import { logEmail } from "../services/log_email"; +import { + ActionCall, + EventResponse, + Notify, + PushCard, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { + Button, + Card, + CardSection, + DecoratedText, + IconButton, + Image, + TextInput, + TextParagraph, +} from "../utils/components"; +import { buildCardActionsView } from "./card_actions"; import { UI_ICONS } from "./icons"; +import { getPartnerView } from "./partner"; import { onEmailAlreadyLoggedContact } from "./partner_actions"; -import { buildCardActionsView } from "./card_actions"; -function onSearchPartnerClick(state: State, parameters: any, inputs: any) { - const query = inputs.search_partner_query || ""; +async function onSearchPartnerClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const query = formInputs.search_partner_query || ""; const [partners, error] = - query && query.length ? Partner.searchPartner(query) : [[], new ErrorMessage()]; + query && query.length ? await Partner.searchPartner(user, query) : [[], new ErrorMessage()]; if (error.code) { - return notify(error.message); + return new Notify(error.toString(_t)); } state.searchedPartners = partners; - const card = buildSearchPartnerView(state, query); - return parameters.fixCard ? pushCard(card) : updateCard(card); + const card = await getSearchPartnerView(state, _t, user, query); + return args.fixCard ? new PushCard(card) : new UpdateCard(card); } -function onLogEmailPartner(state: State, parameters: any) { - const partnerId = parameters.partnerId; +registerEventHandler(onSearchPartnerClick); + +async function onLogEmailPartner( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const partnerId = args.partnerId; if (!partnerId) { throw new Error(_t("This contact does not exist in the Odoo database.")); } - if (State.checkLoggingState(state.email.messageId, "res.partner", partnerId)) { - const error = logEmail(partnerId, "res.partner", state.email); - if (error.code) { - return notify(error.message); - } - State.setLoggingState(state.email.messageId, "res.partner", partnerId); - return updateCard(buildSearchPartnerView(state, parameters.query)); + const error = await logEmail(_t, user, partnerId, "res.partner", state.email); + if (error.code) { + return new Notify(error.toString(_t)); } - return notify(_t("Email already logged on the contact")); + await state.email.setLoggingState(user, "res.partner", partnerId); + return new UpdateCard(await getSearchPartnerView(state, _t, user, args.query)); } +registerEventHandler(onLogEmailPartner); -function onOpenPartner(state: State, parameters: any) { - const partner = Partner.fromJson(parameters.partner); - const [newPartner, canCreatePartner, canCreateProject, error] = Partner.getPartner( +async function onOpenPartner( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const partner = Partner.fromJson(args.partner); + const [newPartner, canCreatePartner, canCreateProject, error] = await Partner.getPartner( + user, partner.name, partner.email, partner.id, ); if (error.code) { - return notify(error.message); + return new Notify(error.toString(_t)); } const newState = new State( newPartner, @@ -58,21 +94,24 @@ function onOpenPartner(state: State, parameters: any) { null, canCreateProject, ); - return pushCard(buildView(newState)); + return new PushCard(getPartnerView(newState, _t, user)); } +registerEventHandler(onOpenPartner); -export function buildSearchPartnerView( +export async function getSearchPartnerView( state: State, + _t: Function, + user: User, query: string, initialSearch: boolean = false, header: string = "", noLogIcon: boolean = false, fixCard: boolean = false, -) { - const loggingState = State.getLoggingState(state.email.messageId); +): Promise { + const searchSection = new CardSection(); + const card = new Card([searchSection]); - const card = CardService.newCardBuilder(); - buildCardActionsView(card); + buildCardActionsView(card, _t); let partners = state.searchedPartners || []; let searchValue = query; @@ -82,75 +121,69 @@ export function buildSearchPartnerView( searchValue = ""; } - const searchSection = CardService.newCardSection(); - searchSection.addWidget( - CardService.newTextInput() - .setFieldName("search_partner_query") - .setTitle(_t("Search contact")) - .setValue(searchValue) - .setOnChangeAction(actionCall(state, onSearchPartnerClick.name, { fixCard })), + new TextInput( + "search_partner_query", + _t("Search contact"), + new ActionCall(state, onSearchPartnerClick, { fixCard }), + "", + searchValue, + ), ); searchSection.addWidget( - CardService.newTextButton() - .setText(_t("Search")) - .setOnClickAction(actionCall(state, onSearchPartnerClick.name, { fixCard })), + new Button(_t("Search"), new ActionCall(state, onSearchPartnerClick, { fixCard })), ); if (header?.length) { - searchSection.addWidget(CardService.newTextParagraph().setText(`${header}`)); + searchSection.addWidget(new TextParagraph(`${header}`)); } for (let partner of partners) { - const partnerCard = CardService.newDecoratedText() - .setText(partner.name) - .setWrapText(true) - .setOnClickAction(actionCall(state, onOpenPartner.name, { partner: partner })) - .setStartIcon( - CardService.newIconImage() - .setIconUrl(partner.getImage()) - .setImageCropType(CardService.ImageCropType.CIRCLE), - ); + let button; + let bottomLabel; - if (partner.isWritable && !noLogIcon) { - partnerCard.setButton( - loggingState["res.partner"].indexOf(partner.id) < 0 - ? CardService.newImageButton() - .setAltText(_t("Log email")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, onLogEmailPartner.name, { - partnerId: partner.id, - query: query, - }), - ) - : CardService.newImageButton() - .setAltText(_t("Email already logged on the contact")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreadyLoggedContact.name)), - ); + if (partner.email) { + bottomLabel = partner.id ? partner.email : _t("New Person"); } - if (partner.email) { - partnerCard.setBottomLabel(partner.id ? partner.email : _t("New Person")); + if (partner.isWritable && !noLogIcon) { + button = !state.email.checkLoggingState("res.partner", partner.id) + ? new IconButton( + new ActionCall(state, onLogEmailPartner, { + partnerId: partner.id, + query: query, + }), + UI_ICONS.email_in_odoo, + _t("Log email"), + ) + : new IconButton( + new ActionCall(state, onEmailAlreadyLoggedContact), + UI_ICONS.email_logged, + _t("Email already logged on the contact"), + ); } + const partnerCard = new DecoratedText( + undefined, + partner.name, + partner.getImage(), + bottomLabel, + button, + new ActionCall(state, onOpenPartner, { partner }), + true, + ); searchSection.addWidget(partnerCard); } if ((!partners || !partners.length) && !initialSearch) { - const noRecord = Utilities.base64Encode( - Utilities.newBlob(Utilities.base64Decode(UI_ICONS.no_record)) - .getDataAsString() + const noRecord = btoa( + atob(UI_ICONS.no_record) .replace("No record found.", _t("No record found.")) .replace("Try using different keywords.", _t("Try using different keywords.")), ); - searchSection.addWidget( - CardService.newImage().setImageUrl("data:image/svg+xml;base64," + noRecord), - ); + searchSection.addWidget(new Image("data:image/svg+xml;base64," + noRecord)); } - card.addSection(searchSection); - return card.build(); + return card; } diff --git a/gmail/src/views/search_records.ts b/gmail/src/views/search_records.ts index f95685bdf..96806903e 100644 --- a/gmail/src/views/search_records.ts +++ b/gmail/src/views/search_records.ts @@ -1,28 +1,52 @@ -import { logEmail } from "../services/log_email"; -import { _t } from "../services/translation"; -import { actionCall, updateCard, notify, openUrl } from "./helpers"; import { State } from "../models/state"; -import { UI_ICONS } from "./icons"; -import { getOdooRecordURL } from "src/services/odoo_redirection"; +import { User } from "../models/user"; +import { logEmail } from "../services/log_email"; +import { getOdooRecordURL } from "../services/odoo_redirection"; import { searchRecords } from "../services/search_records"; +import { + ActionCall, + EventResponse, + Notify, + OpenLink, + Redirect, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { + Button, + Card, + CardSection, + DecoratedText, + IconButton, + Image, + TextInput, +} from "../utils/components"; +import { UI_ICONS } from "./icons"; -function onSearchRecordClick(state: State, parameters: any, inputs: any) { - const model = parameters.model; - const modelDescription = parameters.modelDescription; - const fieldInfo = parameters.fieldInfo; - const query = inputs.query || ""; - - const [records, totalCount, error] = searchRecords(model, query); +async function onSearchRecordClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const model = args.model; + const modelDescription = args.modelDescription; + const fieldInfo = args.fieldInfo; + const query = formInputs.query || ""; + + const [records, totalCount, error] = await searchRecords(user, model, query); if (error.code) { - return notify(error.message); + return new Notify(error.toString(_t)); } - return updateCard( - buildSearchRecordView( + return new UpdateCard( + getSearchRecordView( state, + _t, model, modelDescription, - parameters.emailLogMessage, - parameters.emailAlreadyLoggedMessage, + args.emailLogMessage, + args.emailAlreadyLoggedMessage, fieldInfo, query, false, @@ -31,51 +55,72 @@ function onSearchRecordClick(state: State, parameters: any, inputs: any) { ), ); } +registerEventHandler(onSearchRecordClick); -function onLogEmailRecord(state: State, parameters: any) { - const model = parameters.model; - const modelDescription = parameters.modelDescription; - const fieldInfo = parameters.fieldInfo; - const recordId = parameters.recordId; - const records = parameters.records; - const totalCount = parameters.totalCount; - - if (State.checkLoggingState(state.email.messageId, model, recordId)) { - const error = logEmail(recordId, model, state.email); - if (error.code) { - return notify(error.message); - } - State.setLoggingState(state.email.messageId, model, recordId); - return updateCard( - buildSearchRecordView( - state, - model, - modelDescription, - parameters.emailLogMessage, - parameters.emailAlreadyLoggedMessage, - fieldInfo, - parameters.query, - false, - records, - totalCount, - ), - ); +async function onLogEmailRecord( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const model = args.model; + const modelDescription = args.modelDescription; + const fieldInfo = args.fieldInfo; + const recordId = args.recordId; + const records = args.records; + const totalCount = args.totalCount; + + const error = await logEmail(_t, user, recordId, model, state.email); + if (error.code) { + return new Notify(error.toString(_t)); } - return notify(_t("Email already logged")); + state.email.setLoggingState(user, model, recordId); + return new UpdateCard( + getSearchRecordView( + state, + _t, + model, + modelDescription, + args.emailLogMessage, + args.emailAlreadyLoggedMessage, + fieldInfo, + args.query, + false, + records, + totalCount, + ), + ); } +registerEventHandler(onLogEmailRecord); -function onOpenRecord(state: State, parameters: any) { - const model = parameters.model; - const recordId = parameters.recordId; - return openUrl(getOdooRecordURL(model, recordId)); +function onOpenRecord( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + const model = args.model; + const recordId = args.recordId; + return new Redirect(new OpenLink(getOdooRecordURL(user, model, recordId))); } +registerEventHandler(onOpenRecord); -function onEmailAlreadyLoggedOnRecord(parameters: any) { - return notify(parameters.emailAlreadyLoggedMessage); +function onEmailAlreadyLoggedOnRecord( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new Notify(args.emailAlreadyLoggedMessage); } +registerEventHandler(onEmailAlreadyLoggedOnRecord); -export function buildSearchRecordView( +export function getSearchRecordView( state: State, + _t: Function, model: string, modelDescription: string, emailLogMessage: string, @@ -85,10 +130,9 @@ export function buildSearchRecordView( initialSearch: boolean = false, records: any[] = [], totalCount: number = 0, -) { - const loggingState = State.getLoggingState(state.email.messageId); - - const card = CardService.newCardBuilder(); +): Card { + const searchSection = new CardSection(); + const card = new Card([searchSection]); let searchValue = query; const baseArgs = { @@ -101,69 +145,62 @@ export function buildSearchRecordView( emailLogMessage, }; - const searchSection = CardService.newCardSection(); - searchSection.addWidget( - CardService.newTextInput() - .setFieldName("query") - .setTitle(_t("Search %s", modelDescription)) - .setValue(searchValue) - .setOnChangeAction(actionCall(state, onSearchRecordClick.name, baseArgs)), + new TextInput( + "query", + _t("Search %s", modelDescription), + new ActionCall(state, onSearchRecordClick, baseArgs), + "", + searchValue, + ), ); searchSection.addWidget( - CardService.newTextButton() - .setText(_t("Search")) - .setOnClickAction(actionCall(state, onSearchRecordClick.name, baseArgs)), + new Button(_t("Search"), new ActionCall(state, onSearchRecordClick, baseArgs)), ); for (let record of records) { - const recordCard = CardService.newDecoratedText() - .setText(record.name) - .setWrapText(true) - .setOnClickAction(actionCall(state, onOpenRecord.name, { model, recordId: record.id })); - - if (fieldInfo?.length && record[fieldInfo]) { - recordCard.setBottomLabel(record[fieldInfo]); - } - - recordCard.setButton( - loggingState[model].indexOf(record.id) < 0 - ? CardService.newImageButton() - .setAltText(emailLogMessage) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, onLogEmailRecord.name, { - ...baseArgs, - recordId: record.id, - query, - }), - ) - : CardService.newImageButton() - .setAltText(emailAlreadyLoggedMessage) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction( - actionCall(null, onEmailAlreadyLoggedOnRecord.name, { - emailAlreadyLoggedMessage, - }), - ), + const bottomLabel = fieldInfo?.length && record[fieldInfo] ? record[fieldInfo] : undefined; + + const button = !state.email.checkLoggingState(model, record.id) + ? new IconButton( + new ActionCall(state, onLogEmailRecord, { + ...baseArgs, + recordId: record.id, + query, + }), + UI_ICONS.email_in_odoo, + emailLogMessage, + ) + : new IconButton( + new ActionCall(state, onEmailAlreadyLoggedOnRecord, { + emailAlreadyLoggedMessage, + }), + UI_ICONS.email_logged, + emailAlreadyLoggedMessage, + ); + + const recordCard = new DecoratedText( + "", + record.name, + undefined, + undefined, + button, + new ActionCall(state, onOpenRecord, { model, recordId: record.id }), + true, ); searchSection.addWidget(recordCard); } if ((!records || !records.length) && !initialSearch) { - const noRecord = Utilities.base64Encode( - Utilities.newBlob(Utilities.base64Decode(UI_ICONS.no_record)) - .getDataAsString() + const noRecord = btoa( + atob(UI_ICONS.no_record) .replace("No record found.", _t("No record found.")) .replace("Try using different keywords.", _t("Try using different keywords.")), ); - searchSection.addWidget( - CardService.newImage().setImageUrl("data:image/svg+xml;base64," + noRecord), - ); + searchSection.addWidget(new Image("data:image/svg+xml;base64," + noRecord)); } - card.addSection(searchSection); - return card.build(); + return card; } diff --git a/gmail/src/views/tasks.ts b/gmail/src/views/tasks.ts index 3716b27da..2771c0636 100644 --- a/gmail/src/views/tasks.ts +++ b/gmail/src/views/tasks.ts @@ -1,53 +1,106 @@ -import { buildView } from "../views/index"; -import { buildCreateTaskView } from "../views/create_task"; -import { pushCard, updateCard } from "./helpers"; -import { UI_ICONS } from "./icons"; -import { createKeyValueWidget, actionCall, notify } from "./helpers"; -import { getOdooServerUrl } from "src/services/app_properties"; +import { Project } from "../models/project"; import { State } from "../models/state"; +import { User } from "../models/user"; import { logEmail } from "../services/log_email"; -import { _t } from "../services/translation"; -import { getOdooRecordURL } from "src/services/odoo_redirection"; -import { buildSearchRecordView } from "../views/search_records"; +import { getOdooRecordURL } from "../services/odoo_redirection"; +import { + ActionCall, + EventResponse, + Notify, + OpenLink, + PushCard, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { + Button, + Card, + CardSection, + DecoratedText, + IconButton, + LinkButton, +} from "../utils/components"; +import { getCreateTaskView } from "./create_task"; +import { UI_ICONS } from "./icons"; +import { getPartnerView } from "./partner"; +import { getSearchRecordView } from "./search_records"; + +async function onCreateTask( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + let noProject = false; + if (!state.searchedProjects) { + // Initiate the search + const [searchedProjects, error] = await Project.searchProject(user, ""); + if (error.code) { + return new Notify(error.toString(_t)); + } -function onCreateTask(state: State) { - return pushCard(buildCreateTaskView(state)); + state.searchedProjects = searchedProjects; + noProject = !state.searchedProjects.length; + } + return new PushCard(getCreateTaskView(state, _t, user, "", noProject)); } +registerEventHandler(onCreateTask); -function onSearchClick(state: State) { - return buildSearchRecordView( - state, - "project.task", - _t("Tasks"), - _t("Log the email on the task"), - _t("Email already logged on the task"), - "projectName", - "", - true, - state.partner.tasks, +function onSearchTasksClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new PushCard( + getSearchRecordView( + state, + _t, + "project.task", + _t("Tasks"), + _t("Log the email on the task"), + _t("Email already logged on the task"), + "projectName", + "", + true, + state.partner.tasks, + ), ); } +registerEventHandler(onSearchTasksClick); -function onLogEmailOnTask(state: State, parameters: any) { - const taskId = parameters.taskId; +async function onLogEmailOnTask( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const taskId = args.taskId; - if (State.checkLoggingState(state.email.messageId, "project.task", taskId)) { - const error = logEmail(taskId, "project.task", state.email); - if (error.code) { - return notify(error.message); - } - State.setLoggingState(state.email.messageId, "project.task", taskId); - return updateCard(buildView(state)); + const error = await logEmail(_t, user, taskId, "project.task", state.email); + if (error.code) { + return new Notify(error.toString(_t)); } - return notify(_t("Email already logged on the task")); + state.email.setLoggingState(user, "project.task", taskId); + return new UpdateCard(getPartnerView(state, _t, user)); } +registerEventHandler(onLogEmailOnTask); -function onEmailAlreradyLoggedOnTask() { - return notify(_t("Email already logged on the task")); +function onEmailAlreadyLoggedOnTask( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new Notify(_t("Email already logged on the task")); } +registerEventHandler(onEmailAlreadyLoggedOnTask); -export function buildTasksView(state: State, card: Card) { - const odooServerUrl = getOdooServerUrl(); +export function buildTasksView(state: State, _t: Function, user: User, card: Card) { const partner = state.partner; if (!partner.tasks) { return; @@ -55,63 +108,62 @@ export function buildTasksView(state: State, card: Card) { const tasks = [...partner.tasks].splice(0, 5); - const loggingState = State.getLoggingState(state.email.messageId); - const tasksSection = CardService.newCardSection(); + const tasksSection = new CardSection(); - const searchButton = CardService.newImageButton() - .setAltText(_t("Search Tasks")) - .setIconUrl(UI_ICONS.search) - .setOnClickAction(actionCall(state, onSearchClick.name)); + const searchButton = new IconButton( + new ActionCall(state, onSearchTasksClick), + UI_ICONS.search, + _t("Search Tasks"), + ); const title = partner.taskCount ? _t("Tasks (%s)", partner.taskCount) : _t("Tasks"); - const widget = CardService.newDecoratedText().setText("" + title + ""); - widget.setButton(searchButton); + const widget = new DecoratedText( + "", + "" + title + "", + undefined, + undefined, + searchButton, + ); tasksSection.addWidget(widget); - const createButton = CardService.newTextButton() - .setText(_t("New")) - .setOnClickAction(actionCall(state, onCreateTask.name)); + const createButton = new Button(_t("New"), new ActionCall(state, onCreateTask)); tasksSection.addWidget(createButton); for (let task of tasks) { let taskButton = null; - if (loggingState["project.task"].indexOf(task.id) >= 0) { - taskButton = CardService.newImageButton() - .setAltText(_t("Email already logged on the task")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreradyLoggedOnTask.name)); + if (state.email.checkLoggingState("project.task", task.id)) { + taskButton = new IconButton( + new ActionCall(state, onEmailAlreadyLoggedOnTask), + UI_ICONS.email_logged, + _t("Email already logged on the task"), + ); } else { - taskButton = CardService.newImageButton() - .setAltText(_t("Log the email on the task")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, onLogEmailOnTask.name, { - taskId: task.id, - }), - ); + taskButton = new IconButton( + new ActionCall(state, onLogEmailOnTask, { + taskId: task.id, + }), + UI_ICONS.email_in_odoo, + _t("Log the email on the task"), + ); } tasksSection.addWidget( - createKeyValueWidget( - null, + new DecoratedText( + "", task.name, - null, + undefined, task.projectName, taskButton, - getOdooRecordURL("project.task", task.id), + new OpenLink(getOdooRecordURL(user, "project.task", task.id)), ), ); } if (tasks.length < partner.taskCount) { tasksSection.addWidget( - CardService.newTextButton() - .setText(_t("Show all")) - .setTextButtonStyle(CardService.TextButtonStyle["BORDERLESS"]) - .setOnClickAction(actionCall(state, onSearchClick.name)), + new LinkButton(_t("Show all"), new ActionCall(state, onSearchTasksClick)), ); } card.addSection(tasksSection); - return card; } diff --git a/gmail/src/views/tickets.ts b/gmail/src/views/tickets.ts index a5f25ff05..143aa7ef5 100644 --- a/gmail/src/views/tickets.ts +++ b/gmail/src/views/tickets.ts @@ -1,64 +1,104 @@ -import { buildView } from "../views/index"; -import { updateCard } from "./helpers"; -import { UI_ICONS } from "./icons"; -import { createKeyValueWidget, actionCall, notify, openUrl } from "./helpers"; -import { getOdooServerUrl } from "src/services/app_properties"; import { State } from "../models/state"; import { Ticket } from "../models/ticket"; +import { User } from "../models/user"; import { logEmail } from "../services/log_email"; -import { _t } from "../services/translation"; -import { getOdooRecordURL } from "src/services/odoo_redirection"; -import { buildSearchRecordView } from "../views/search_records"; - -function onCreateTicket(state: State) { - const result = Ticket.createTicket(state.partner, state.email); +import { getOdooRecordURL } from "../services/odoo_redirection"; +import { + ActionCall, + EventResponse, + Notify, + OpenLink, + PushCard, + registerEventHandler, + UpdateCard, +} from "../utils/actions"; +import { + Button, + Card, + CardSection, + DecoratedText, + IconButton, + LinkButton, +} from "../utils/components"; +import { UI_ICONS } from "./icons"; +import { getPartnerView } from "./partner"; +import { getSearchRecordView } from "./search_records"; + +async function onCreateTicket( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const result = await Ticket.createTicket(user, state.partner, state.email); if (!result) { - return notify(_t("Could not create the ticket")); + return new Notify(_t("Could not create the ticket")); } const [ticket, partner] = result; state.partner = partner; state.partner.tickets.push(ticket); state.partner.ticketCount += 1; - return updateCard(buildView(state)); + return new UpdateCard(getPartnerView(state, _t, user)); } - -function onSearchClick(state: State) { - return buildSearchRecordView( - state, - "helpdesk.ticket", - _t("Tickets"), - _t("Log the email on the ticket"), - _t("Email already logged on the ticket"), - "", - "", - true, - state.partner.tickets, +registerEventHandler(onCreateTicket); + +function onSearchTicketsClick( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new PushCard( + getSearchRecordView( + state, + _t, + "helpdesk.ticket", + _t("Tickets"), + _t("Log the email on the ticket"), + _t("Email already logged on the ticket"), + "", + "", + true, + state.partner.tickets, + ), ); } - -function onLogEmailOnTicket(state: State, parameters: any) { - const ticketId = parameters.ticketId; - - if (State.checkLoggingState(state.email.messageId, "helpdesk.ticket", ticketId)) { - const error = logEmail(ticketId, "helpdesk.ticket", state.email); - if (error.code) { - return notify(error.message); - } - - State.setLoggingState(state.email.messageId, "helpdesk.ticket", ticketId); - return updateCard(buildView(state)); +registerEventHandler(onSearchTicketsClick); + +async function onLogEmailOnTicket( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): Promise { + const ticketId = args.ticketId; + const error = await logEmail(_t, user, ticketId, "helpdesk.ticket", state.email); + if (error.code) { + return new Notify(error.toString(_t)); } - return notify(_t("Email already logged on the ticket")); -} -function onEmailAlreadyLoggedOnTicket() { - return notify(_t("Email already logged on the ticket")); + state.email.setLoggingState(user, "helpdesk.ticket", ticketId); + return new UpdateCard(getPartnerView(state, _t, user)); +} +registerEventHandler(onLogEmailOnTicket); + +function onEmailAlreadyLoggedOnTicket( + state: State, + _t: Function, + user: User, + args: Record, + formInputs: Record, +): EventResponse { + return new Notify(_t("Email already logged on the ticket")); } +registerEventHandler(onEmailAlreadyLoggedOnTicket); -export function buildTicketsView(state: State, card: Card) { - const odooServerUrl = getOdooServerUrl(); +export function buildTicketsView(state: State, _t: Function, user: User, card: Card) { const partner = state.partner; if (!partner.tickets) { // Helpdesk not installed @@ -68,64 +108,62 @@ export function buildTicketsView(state: State, card: Card) { const tickets = [...partner.tickets].splice(0, 5); - const loggingState = State.getLoggingState(state.email.messageId); + const ticketsSection = new CardSection(); - const ticketsSection = CardService.newCardSection(); - - const searchButton = CardService.newImageButton() - .setAltText(_t("Search Tickets")) - .setIconUrl(UI_ICONS.search) - .setOnClickAction(actionCall(state, onSearchClick.name)); + const searchButton = new IconButton( + new ActionCall(state, onSearchTicketsClick), + UI_ICONS.search, + _t("Search Tickets"), + ); const title = partner.ticketCount ? _t("Tickets (%s)", partner.ticketCount) : _t("Tickets"); - const widget = CardService.newDecoratedText().setText("" + title + ""); - widget.setButton(searchButton); + const widget = new DecoratedText( + "", + "" + title + "", + undefined, + undefined, + searchButton, + ); ticketsSection.addWidget(widget); - const createButton = CardService.newTextButton() - .setText(_t("New")) - .setOnClickAction(actionCall(state, onCreateTicket.name)); + const createButton = new Button(_t("New"), new ActionCall(state, onCreateTicket)); ticketsSection.addWidget(createButton); for (let ticket of tickets) { let ticketButton = null; - if (loggingState["helpdesk.ticket"].indexOf(ticket.id) >= 0) { - ticketButton = CardService.newImageButton() - .setAltText(_t("Email already logged on the ticket")) - .setIconUrl(UI_ICONS.email_logged) - .setOnClickAction(actionCall(state, onEmailAlreadyLoggedOnTicket.name)); + if (state.email.checkLoggingState("helpdesk.ticket", ticket.id)) { + ticketButton = new IconButton( + new ActionCall(state, onEmailAlreadyLoggedOnTicket), + UI_ICONS.email_logged, + _t("Email already logged on the ticket"), + ); } else { - ticketButton = CardService.newImageButton() - .setAltText(_t("Log the email on the ticket")) - .setIconUrl(UI_ICONS.email_in_odoo) - .setOnClickAction( - actionCall(state, onLogEmailOnTicket.name, { - ticketId: ticket.id, - }), - ); + ticketButton = new IconButton( + new ActionCall(state, onLogEmailOnTicket, { + ticketId: ticket.id, + }), + UI_ICONS.email_in_odoo, + _t("Log the email on the ticket"), + ); } ticketsSection.addWidget( - createKeyValueWidget( - null, + new DecoratedText( + "", ticket.name, - null, + undefined, ticket.stageName, ticketButton, - getOdooRecordURL("helpdesk.ticket", ticket.id), + new OpenLink(getOdooRecordURL(user, "helpdesk.ticket", ticket.id)), ), ); } if (tickets.length < partner.ticketCount) { ticketsSection.addWidget( - CardService.newTextButton() - .setText(_t("Show all")) - .setTextButtonStyle(CardService.TextButtonStyle["BORDERLESS"]) - .setOnClickAction(actionCall(state, onSearchClick.name)), + new LinkButton(_t("Show all"), new ActionCall(state, onSearchTicketsClick)), ); } card.addSection(ticketsSection); - return card; } diff --git a/gmail/tsconfig.json b/gmail/tsconfig.json index 63e4e22fc..624a162db 100644 --- a/gmail/tsconfig.json +++ b/gmail/tsconfig.json @@ -1,12 +1,14 @@ { "compilerOptions": { - "outDir": "./build", - "baseUrl": ".", - "strictNullChecks": false, - "noImplicitThis": true, - "noEmitOnError": true, - "target": "ES5", - "lib": ["dom", "es6", "scripthost", "es2017"] + "target": "ES2020", + "module": "commonjs", + "strict": false, + "noImplicitAny": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "noEmitOnError": false, + "outDir": "dist" }, - "include": ["src/*", "src/**/*"] + "include": ["src"] } From c2bad723e0a771aee241e904051660c2faf6c18c Mon Sep 17 00:00:00 2001 From: std-odoo Date: Wed, 17 Dec 2025 12:53:43 +0100 Subject: [PATCH 5/7] [IMP] gmail: prevent state modification with JWT Purpose ======= Now that all users will share the same process on the server, we want to prevent the state from being modified by using JWT token. Task-4727609 --- gmail/package.json | 10 ++++++---- gmail/src/index.ts | 17 ++++++++++++++--- gmail/src/models/state.ts | 4 +--- gmail/src/utils/actions.ts | 23 +++++++++++++---------- 4 files changed, 34 insertions(+), 20 deletions(-) diff --git a/gmail/package.json b/gmail/package.json index e1966f402..7be392438 100644 --- a/gmail/package.json +++ b/gmail/package.json @@ -3,11 +3,12 @@ "version": "1.0.0", "main": "index.js", "scripts": { - "dev": "concurrently \"tsx watch src/index.ts\" \"npm run typecheck\"", + "dev": "npm run gen-secret && concurrently \"tsx watch src/index.ts\" \"npm run typecheck\"", "typecheck": "tsc --noEmit --watch", - "build": "rm -rf dist && tsc", - "start": "node dist/index.js", - "prettier": "prettier --write 'src/**/*.ts'" + "build": "rm -rf dist && tsc && npm run gen-secret && mv .env dist/.env", + "start": "cd dist && node index.js", + "prettier": "prettier --write 'src/**/*.ts'", + "gen-secret": "echo APP_SECRET=$(node -e \"console.log(require('crypto').randomBytes(32).toString('hex'))\") > .env" }, "author": "", "license": "", @@ -18,6 +19,7 @@ "express-async-handler": "^1.2.0", "google-auth-library": "^10.5.0", "googleapis": "^167.0.0", + "jsonwebtoken": "^9.0.3", "mailparser": "^3.9.0", "node-cron": "^4.2.1", "pg": "^8.16.3" diff --git a/gmail/src/index.ts b/gmail/src/index.ts index a98e16792..7845dd0cf 100644 --- a/gmail/src/index.ts +++ b/gmail/src/index.ts @@ -1,6 +1,7 @@ import express from "express"; import asyncHandler from "express-async-handler"; import { google } from "googleapis"; +import jwt from "jsonwebtoken"; import cron from "node-cron"; import { Email } from "./models/email"; import { Partner } from "./models/partner"; @@ -19,6 +20,12 @@ const gmail = google.gmail({ version: "v1" }); const app = express(); app.use(express.json()); +// Load the application secret from `.env` +require("dotenv").config({ quiet: true }); +if (!process.env.APP_SECRET?.length) { + throw new Error("Application secret not configured"); +} + /** * Once a day, clean the old email log table. */ @@ -124,9 +131,13 @@ app.post( ]), ); const parameters = req.body.commonEventObject.parameters; - const functionName = parameters.functionName; - const state = parameters.state && State.fromJson(parameters.state); - const args = JSON.parse(parameters.arguments || "{}"); + const decoded = jwt.verify(parameters.token, process.env.APP_SECRET, { + algorithms: ["HS256"], + }); + + const functionName = decoded.functionName; + const state = decoded.state && State.fromJson(decoded.state); + const args = decoded.arguments || {}; if (state?.email) { // Update the Gmail tokens diff --git a/gmail/src/models/state.ts b/gmail/src/models/state.ts index d15a46b3d..0b2b42e82 100644 --- a/gmail/src/models/state.ts +++ b/gmail/src/models/state.ts @@ -43,9 +43,7 @@ export class State { /** * Unserialize the state object (reverse JSON.stringify). */ - static fromJson(json: string): State { - const values = JSON.parse(json); - + static fromJson(values: any): State { const partnerValues = values.partner || {}; const canCreatePartner = values.canCreatePartner; const emailValues = values.email || {}; diff --git a/gmail/src/utils/actions.ts b/gmail/src/utils/actions.ts index 54a3b7580..dbe30b075 100644 --- a/gmail/src/utils/actions.ts +++ b/gmail/src/utils/actions.ts @@ -3,6 +3,7 @@ * * https://developers.google.com/workspace/add-ons/guides/alternate-runtimes */ +import jwt from "jsonwebtoken"; import { HOST } from "../consts"; import { State } from "../models/state"; import { User } from "../models/user"; @@ -116,21 +117,23 @@ export class ActionCall { } build() { + const payload = { + state: this.state, + arguments: this.parameters, + functionName: this.funct.name, + }; + const token = jwt.sign(payload, process.env.APP_SECRET, { + algorithm: "HS256", + expiresIn: "48h", + }); + return { action: { function: HOST + "/execute_action", parameters: [ { - key: "functionName", - value: this.funct.name, - }, - { - key: "state", - value: this.state && JSON.stringify(this.state), - }, - { - key: "arguments", - value: JSON.stringify(this.parameters), + key: "token", + value: token, }, ], }, From 5e6829798edc4f8e5ab7fa88e9ebd2560a93cf1a Mon Sep 17 00:00:00 2001 From: std-odoo Date: Fri, 19 Dec 2025 09:42:22 +0100 Subject: [PATCH 6/7] [IMP] gmail: serve image file instead of encoding in base 64 Purpose ======= When we used appscript, we didn't have a web server to store the image (and to do the processing to translate text inside the SVG), and so we base 64 encoded them. Now that we moved the HTTP addin, we have a web server, and we can serve the files (and translate them on the fly), so that the images are cached by the browser, and we don't download them each time we view a new card. When Gmail shows images, it doesn't add our URL in the dom, instead it fetches the image, and store it in `googleusercontent.com`. But, it won't fetch the images if they come from a ngrok domain name, so now, we need a "real" domain name for development. Task-4727609 --- gmail/README.md | 6 +- gmail/package.json | 1 + gmail/src/assets/Caveat.ttf | Bin 0 -> 234240 bytes gmail/src/assets/GoogleSans.ttf | Bin 0 -> 119984 bytes gmail/src/assets/button.svg | 6 ++ gmail/src/assets/close.png | Bin 0 -> 957 bytes gmail/src/assets/email_in_odoo.png | Bin 0 -> 1300 bytes gmail/src/assets/email_logged.png | Bin 0 -> 1450 bytes gmail/src/assets/empty_folder.svg | 15 +++++ gmail/src/assets/link.svg | 1 + gmail/src/assets/login_header.svg | 66 +++++++++++++++++++ gmail/src/assets/odoo.png | Bin 0 -> 2208 bytes gmail/src/assets/person.png | Bin 0 -> 2871 bytes gmail/src/assets/reload.png | Bin 0 -> 2044 bytes gmail/src/assets/search.png | Bin 0 -> 1772 bytes gmail/src/assets/search_no_result.svg | 15 +++++ gmail/src/index.ts | 88 ++++++++++++++++++++++++++ gmail/src/models/partner.ts | 3 +- gmail/src/utils/components.ts | 14 ++++ gmail/src/utils/format.ts | 9 +++ gmail/src/utils/svg.ts | 33 ++++++++++ gmail/src/views/create_task.ts | 3 +- gmail/src/views/icons.ts | 23 ------- gmail/src/views/leads.ts | 7 +- gmail/src/views/login.ts | 33 ++-------- gmail/src/views/partner_actions.ts | 7 +- gmail/src/views/search_partner.ts | 14 ++-- gmail/src/views/search_records.ts | 14 ++-- gmail/src/views/tasks.ts | 7 +- gmail/src/views/tickets.ts | 7 +- 30 files changed, 280 insertions(+), 92 deletions(-) create mode 100644 gmail/src/assets/Caveat.ttf create mode 100644 gmail/src/assets/GoogleSans.ttf create mode 100644 gmail/src/assets/button.svg create mode 100644 gmail/src/assets/close.png create mode 100644 gmail/src/assets/email_in_odoo.png create mode 100644 gmail/src/assets/email_logged.png create mode 100644 gmail/src/assets/empty_folder.svg create mode 100644 gmail/src/assets/link.svg create mode 100644 gmail/src/assets/login_header.svg create mode 100644 gmail/src/assets/odoo.png create mode 100644 gmail/src/assets/person.png create mode 100644 gmail/src/assets/reload.png create mode 100644 gmail/src/assets/search.png create mode 100644 gmail/src/assets/search_no_result.svg create mode 100644 gmail/src/utils/svg.ts delete mode 100644 gmail/src/views/icons.ts diff --git a/gmail/README.md b/gmail/README.md index 2e3d313fb..76d57f560 100644 --- a/gmail/README.md +++ b/gmail/README.md @@ -6,8 +6,10 @@ and also to link your Gmail contacts to your Odoo partners, to create leads from Create the database and fill the credentials in `consts.ts` > psql -U root -d postgres -f init_db.sql -Run ngrok to get a public URL redirecting to the local port 5000 -> ngrok http 5000 +To serve the addin, you need a public HTTPS connection to your application. +You cannot use nrgok, because Gmail store all images we use in the addin, +and it won't fetch them if they come from a free ngrok domain name. +So the simplest is to use a VPS (and to do a reverse SSH proxy to develop locally). Then run > npm install diff --git a/gmail/package.json b/gmail/package.json index 7be392438..849828cb1 100644 --- a/gmail/package.json +++ b/gmail/package.json @@ -14,6 +14,7 @@ "license": "", "description": "", "dependencies": { + "@resvg/resvg-js": "^2.6.2", "dotenv": "^17.2.3", "express": "^5.2.1", "express-async-handler": "^1.2.0", diff --git a/gmail/src/assets/Caveat.ttf b/gmail/src/assets/Caveat.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8c97eaf4f5e26b3012f9a5dd82d08ef03cf14314 GIT binary patch literal 234240 zcmeFa33ye--9J7vXS@5Bo7`;N-0Xpbu!RJ|77$qivMb<*fQSVbis*}#x*%G$h`3uy zEwvV{RU3DVsA!|sEm9S|RciItD%ERSt&QtT{-5v6IrrWmTIu^d?el-0AD3Cq%$zwh z^WDEQ=Y(;_SOk&I5)Y6<9@JWZQKRkk>287bdvu4g+{O8w3GbW}m zHos@`+#@Gk_~i{xGIn$uW5tipoI7afvbNKYVC+mC_n)xz)Wxe(8=n-oJ`vr$z4WX# ziQ+56RZQCuMg5MGRxLmE@WiIGaQz%({!^DPK4TTiL%8-KbuB;T?2{JVx&La$&Yi-< z3vZviZ1IVKXKs6)X)`b$)_gJwtYh>CagF|2)yb!>S^K*m$A;nh62`nQpK|)r#oEue ztYg~I$KpD9>f*Jl^rgXnGVP=$v`?J2_|#>W{&Lc1xSq$DIbqf5XRNvJgnRzMv{P8dk=A%eT4X9t~1Up9!H$um58hP0K^S^2;yOU0^-Sh4&r(IRK%zA zGZ3H2&qKVEV?_Kn{0YR*^5+o0z;`2liNAvQPyA1a-{JcZf51OL{CEB#;*WU`;?MYJ zj0^k_>jGmCrmzr4MHF#N6e7M-T#5Jrv4?5m@8UzIVa__PA7Vm0EV>XsA)Z8wzl*=4 zhStWz+SxNqOq?`*9t)hZc+F`njy1x+-d^0z5KOe;hmD_?U;D8B|BNht7N)!~60Ac{fMrx}#21LD_|-I<6cPAU&ooLg~w<>ysXs$Q(QxpqKZL*0#a zfA7D&en&%hL$cwGfv$lUH=fv-8WbJ0e((*0?;aW&_TKQO;m0>OvYY&^kM@i%9Njp&ZS?V@&mVo+=$)hA z82#y(v13jdvwFc*pJ6e7`JiUGi}kfIc*EtRGxx7&K!z8oJJUpKya{H*aujX!q$it(#h3yb!qSy^unYeZ;5 z7y;~Oe-9X$u0==NMoXJY0t5LQV zPgOJN#!R{~lcYV9ls%I)y8~@I5bi_!2axuiK{sZQVvnM37w&%y>Ej4bB0Ph(FCgtZ ziyq7(Y0sjYy^c|W7P*BGMxa?$AXFpNBhXCF0f!sPbo3NOj}Dw@CQ}eF=N#DdU`A=o zs0Xk~+ptMtMt=Zol7LHE!h&X@V37hWdL#@UMY;xarTEgK~TqiNh z-y?kuDMruIy~*FQsx^KJbq`2+8OUlu`5A01Ne1g%K7y+%bA0f5tq*|n_5!PZPmm&Qj!j%X_t+%3|U*Uea&M51^-0nhpFGfI=y9@cp z5FW?9zrpnrY_z0QTK8wr_E}(N5_PYk&0eHw-1iZ}C%qpkyvFGLShv2o9R-%8c@x4! z)MND|1!piuuCa%o-<#s=(dI&g4G0&b-A07V5jNra3Z$EnUWN2Jge_>l71uvOxE1+d zqU<&Va3W6hTZvW6#X7Z0Cu6j$QLbpF$EF$L0!az4TTw^+>|UgVg$iCh_Npj4A)0s% zPb5lK*!5LPrrDi_utv>}1tr9j=n*)2z@5PC8K)wU{yAbY1-J=M*(9dHie*$F+!g2N- z%72ft*AQL@#P?z?BxNB5?E~7x#Xwz1{h*dG@?}UXkX9oQpN3pf)CK4`{5k`1l%3xD zu3Q_3Z`OOqHG@zO5vf)v&%$=6^l&qQ8PND|bM0(GQ89Vt*p zH>e{C%1D7S()?<)y$09U;`%yVgX;MW$o~lG7L;#Ao+#!tP;uCB(#P!R_R@E!xSj%QLI)c;Pn#tdnc%i zC~LdqJ-4C$c3j_y_S6$m81bC@QMLouN<#HOLM5Rsq@XQyNshUzw?ooSmt5^6G={X) z7-+SXv?4B=gw~LR){p`>?F1A$K%raN`xv=eePAl`iZ3}hK^g^k5>|T>WXhX3if??C12`Ih z8i|9M&~5N^;vb4eJitaJFVi+1D5_MlPU#d1!-yJbj*1%VX?_TfY+D0LRdTHkI7>W| zOG%lg z2wxnb1LQ1;D zvsk;Vrlj~1WR@*`4us9oHa}9ZnTWNY2N;}&R7s(sfJGfU7O;4i<)L@t0mLnd4-7;~ z9Fs6;5}w+QbQa2IqkIAKD-Z~y6s0&=<&69#z^#Wtc0>PGR0H`fbrRyTia$8K!GUF3 z>L$c_l?6fkKxwRmiLWALVXI_B8f6DcE|ORZh9s$?5{`W(6>(qEWI=%lur2`49>B8) z@azE>?vXmmrKnRd?crCT4RPWtQAc{pHGs8(Z4WqakA&@wNVg&U9QP^C+rxi}`v}gz zLOF3@z#AO5hqYprqtXT#h?P}ZA66J;a&@u7ml0P$dL;t!9i`oooQn35^~7x-LYs%t z&m*XN41w_E3BXm!u&BftlKtHXucDqLEa?HSqfJ)QlE(Kg3=>TcaIB9&24xngU zX?&#Z<;wpkCy9F+sN!_YR`IqEX=NpDb!Vh7Sv@pkiB}j6(L8b6%aA87OEbL{G<`cp zcrQ4QgC`D$qFIs-OEY^OZM%_@m8oP#4`c=8ggwK(kWXpIi;sG*!mPI2v+9tuQhe0r zS{QW$>YETI_I6-qmq4@W0PT0!5_>yl)`^*Ig~aXx*Y4)$K$e`3`t=AG;(7zhFGkpi z>&p=~AzXp-&A1Pe12~hkC3q(!cn2hS7bJKRIMfXZ-USK16?n8Ac$9(!?*blmfLCk< z9(90MbU+7A1CKg^MB=3ME@8ox(>~4g6ux0~c)sVhJJU=dV$F*1yr9Y}w z1{TYeCVg=S+B^hZa3|W+>XOb#_|t_t;;cl8dw?gep#D{aB+7n|ve%J+AGl$H+LSd$ z`eGasigX~7P;tnExReE1D{Lr-H3R-L6qcAH50oV~6+Gzaj1J=P9!Dk+zab4@@*F%} z>5ar|XeMdk4Cx@G-KTPJ1|AB`hBSR;XZEnCkf#}SBPE=931JVei6Zs_@6x#cBZN-? z2MeJdG~0l*31K2&Kr&%6(iun>AP}}^WkD)OgG&PsQc@mVf%b}bkd2c9?;s7%v2#dk zBbcWE^Aup72Fz1Ab`SB6G+>?v??|y~tP*kPgIkNzI>d|}YI1l7abn^VBugFwEFT8! z96qrJ?UU#kuvDBBa3Po~{XZ9;b<&eD5AY>RTFDP3%j>25Q2HZT(#l6O3*2Njo(j%j z>;3OaUk%9%tcR5EMCVH5rjdD|ALe>3i1(AH2%ZXz`gM%-6Rew~_k}T1Wt}+MhX-(S ztdpdK&uLhRv;59a{2U+?PiB5yB_n z3Kl{=u%iKK6T(DrgGopyBg{Zhwgt_&8=R^eoGJ-UMHt!%PSpiY)s@4kx`Cmcz|bz6 zQ+0t;bpb=WfT3OBQfXjmH@H+cxKt8cDg`dp2`<$IjP16$R2MKd35@Lo#&&^Ak*(1M zjO_x(cG&)5luMuREka_g9fe0hy)1Xt}E`>A1Yn0bc zJxzJ;$l{?Vk>^@bs^j-nJ~EPiPoX~R`&CbV6;G2q33W72@}4e{wieA(J&{&c`Oit) zy%(Vq<9D7!@>R`AS-k{PT1ADa$}cPRGPF~eYWrru-7Ew@LKp$s6t6(2Mo^e*`)6=H z2_d8PA`j>Tb8R0a(lZgxK_Jcd0)+Jlj`n*I@)slg0O1mZOA#(Zz}%qWIG#Ib#mGZz z%V@<{BYzFTwFo5PK&4VkRz8Xz{$pHkMIcLvwB?^7kjDHogqsk4j&L)=FA%mP+=2jz zWjuhtLLSs^Yd<~Eexyf`--Q%fHME}|Hbn9k*u~O+Nn zbv8#>R5Q=cG6l|= z2IrJE0?V_pSo!}Ir8=5U55v6W=t;9tc43-5jr_|93Wpr;ImwY8CNNKBDMqEgk+duF zfsw62D}*(bcEw%DOX^2TIs*9->CPt+NNXY+;$?(A2+|TmYRbFST2f2GWO`ONYm>B3 zT!-j_D9_=2S#AwI6XitPPa!4FLR#6&=!N>vdZLv^revSe#sarw2B_bL~ z0TOBU1p0Uq<;3@Xi~Q3_pF{dQ?r|i~ZnXU!%3ehJ64IAZr+jotU?2JDwt_EqN}Wpi zo5+^|?8b z6IqM9z#;7?cHxO6-5lRln%#wVj+F1jz3R!`fC2HKZi)TRpv|)gw9YRf^c_K0pAjfe zH1Q^)j5MS|8vH4DFUGM`$m>X6=QKEd7q~o81=%UI599DE@>}KFC`1vCf1?{5+p$p` z&oXgl@+^~0n(Nz0v7!w3U5goHS47D}#f6nOh~(izn0;2uP_o|P1~KfI3ECA^K0<|As%O%k6bGZVRUDF_`U*l8v%1*;j5`HN1s0)(^f(8Xh<}}o zKpJRPqafcYK{y4zM!22zfD?Z8^@0<=b<24=@?YV6(xy7Xd%}Qpj(*o8DePs;DvN`( zU!G#eV5Hr)ua0~v%7;RuRJ=p!b!udewwbcE%26#rO6-yx`8AZk4%*%ezsmc_r;+~%ewI(*hfvl@C-AU?H^Cy92>h6YbTT+2Sts*w zy#RUTOWAH)D4ozk2sf_+Zf*r`ZnZ6x?cms3!LhdkH_4aM39j7%u1&s_4t_Pb@inMZ zzLZXA8lBKIw!=zEa^*|8ivI-dZbbWSs8ha_?ZDaX&?ZRMZU^`7gf`IuZGvp;Twh8T zw24k=6Wz><)yB$Vm5K8Z|GF2ccrb)a~&vVBMkP&|YD z8>G+V`Zq{xB>x6!jl?(T6o%v9APq5T^9|a+r5&miV3YNCXZ;)G8&&>|YthGb2sdDD z`|eKV`Z;pv<-mgMCP+Bc5l<%@TVb)%DIAGK zu&I!cjN(p$O(R+pOi1P`%653S;w4I3A$ZUU7=lAmK4B;BRaER~Uh2dPX)i=GWT83h zPt>a{GlD^<^qLU`ufa&VG89bwhDM|`gEV{)%6l>eWwX$OvW8R85Ylqjlys@=h_jv) zMe!ZB$DKx=s~r$eB0GdQfTJ1Yp5;kFGjL``nnBvu47zL{MK&mD1;iPWwpKv=inxU1 zzes{-kq^Vs3KW-3;y%SS2m`yoG02}mQj7cSvDj1)LU3Rp?|ri7VYkZ$D9 zaJ;U`937AR86@GzpOFHmNZS4k+B;40yAbY1J@NW-K$OmLq;epsB*<*65YaqILPu}8 z6}X_Zp)7<5--)x_hv4|bNHP-5tCKvPHgE0*1jy&DG$q0@!YT5`lDIzWQ|bRiL0OGcS>C%*rns51k;%iac7sVGZMXL(l@(r!6;QjL zG<&jcXzkY`uPDaR2o;Uf>>N(w=nUDDJV|@ql~ziat}Jxrk90J_D7d2x4R-kmgHz=)tsK$IC)CfCG`F)JX{<&mfTQL?c!*rLSg8Yq7x|HCa3GtKv!7 zQ4>$g>QhQ8s&iH+qwNaR5tKF~C<-B;D&d{dtA2%gT2Gn*SviDrGz;QqikGEeJ&C^KArr?K3gReQ>gfv%vnDp29VaUs% zH1{jeFV+wI&ar7pJ4*3uajk4x(&p3Pc|G8HY4~B%;Ct$X6`dFPDayAYJ-8o+b|jRx z4_*L%NL~uHBLU0;PfWq?B_D5^!^*LFVh=kU7?F~=It#0-psUXK&{;K-s}2H4Gv5Vd6a7twHEZwhfv;x4pKQUYUFPDxXB>gaN;#U=!W zCCXEGE3VNe#!KEcf+~5|((-IE(Y52LPfD6@$Mpi#o{W^_N!Eiwr$EVrkp$#vq#bgO zx8YjRb9Y9DIJVOLXs_s)osb)3H_>S!ve7#-9NDo{lpa4LNv?v8J(wvm6?(08RI=a%5 z6fAN**Ca=t#?w3T288laD6fXX1GT50l^rC72;*@=6RGm7k3dez0VJG(tE?M3KTejX;?Iu6QPi%^A*H2Hb1&LtDPQ@;8-T4%pwz4tLsU=J zC0Q`USDn)xWWf;sBnnU`c0f(g70L6_lSAQ(FW!PO*!iFgWu@GSv73_q2oGonT|tNF zERDBSlniueB`dZ2(h5m&(z(>$P!@V5#nsN1!ZdZVPOV?=2|L0-l6{UI@6e6oQz7k< zFjDCr&VGZ^;T6=$TFKH1$--Q(9?=TPL)z`=l$g2~*J{nxeuUz-YR>_fC}kY2_n8Ri z<9a>9284?d)OwS=QhNq!tsRc4_62B9U>ky3Z^enQ!nTZ&K7PCdl&c>RKWxM-nh>TS zKMR3qm^ji(1jky+r7)5|N~?A3yR_71l_pDiIN5s&J83tr6YU*JRGiuI+z<^B_fa=p08ig#hfJFw!)gQe_II`z?IuQr_o zqW$%)SnW>m7di>l34HGczIS4U=_Js0*rOfLCdeM`#0t~?dbhp0w7*XFD4hZ#&4Nw= zZNH-hSo&vfPb=j4q6F_8-rm!M9R)jbTX%@syXocwH2U#KN z#D_X%FbpkIHs!!l!kxKy5qG1trn?>cg|so^8HCCIiXTh{7S2FWJeYLb>>gv5Cnzlh z&&B#UJeV+!_%P|IJy;L5Ur4-RJ3=mhfIcDj1c@h)!)%mir5IPl8%SC;A`pKVfe}wa zUhxU?|EM!XYmu%)xD0K6h!lDscsuPElO^Kt3bLn2OC!yN_yx&VXU~Or26>{CPC!}= zX)rsHl3t)}$|Nw8-pV08trOOX^5ON>V95H#sdL=(9D>80cOy?0ieq~bA9)plv=_xo zXjdWyx^VnuG~*F?!Yl-uC2>I|n`vf*6{H~~Guk70xbDTuDQ_d~64Cy9QjV1TKEK61 z-I)1ql=t;&DT(KJv~u^laHCh z9!}n@B-Wiyd6U&5bstVE!w3dj~4N4@@UZ+l5S9fbNb)0{!+F_ z%Q>M#ZviB8e5`baj67PjYe^g=2@cZDl}Ah2Bw7AU9K`WxCBZ?G;2?CSjCL)FALpLX zNrGy+Az5?Z1|VLXlDwF7zNGDi$oiCKV+BCVIr!w*?8IdpUlCb%C5|(62y|jo-mUtg*^u3A&xmU1 zY_EZLuBkoQl^@#k?7`c|@8fC))?yy+qV+fp>!)Cp#;BZCIt_WXHndW-Hq@5Z&A@7^ zHxa3{N!8%3Cn549XGdcD;JbirzDz(Wn)s)pg#;Sc5#(N*KzX zs5aZ1^M;nkUU#%-zDzr(7aE=OZpQ+QO}*C<%&eBekdH7UdY2;y`gTj4p2+m6o~_;s zp|uTjSh*Z0w)qQ4K_MJ6fWL$k`|Ui5{GWRNz~4drK7`MDdxStR5!}opqDYG{W^c}2 zN!*phU1|Of?%szM23k_<7y`A%o9(?vA>IQ#a^acuydFHS$G$Tu@3NmE+jZev2i;iz zzHQMv%09r;K1TSgw@dKeZj3J}G&~8M1>;N!H%1UeUOl}Iv!EG*)7rC3XJ$rsIWt3R zX2_8P{uq7KzCQ{KfW+n41Imn;=J^+JIP5v#&3uo1x`8`zz8!bQMHFQ*F^?4Hk&^2SNt;={Xm2_*hA_sEmXLcE&!$yTP@{RJF|QQXU#`7` z7{{HW_Y17Z7jh;J)bh|vw}L#==nW%FKP_XVl!~h?J1a9 z*_Y8v60?&Sjl3EU_2i5v+mpgG`W^%3#dN+OZGwPf7~wpehcYn}x-*HIZVBlyRuQ8I zrtb$uP>i!w{2!Pv<%n8{-+l^AIu8<0IBSI`luByCdV)_;d&~^?5Z;3>r7WPi()vbm zrOTN+^c#kxp)r1edq2QR{S6q3uVMfyak`&MY1J`Xhw4GY;Gq9N>8EmRNzCOl;1u$J6~Qd>F)Hk&FdiKoorJSvJ~jj25Mg*Ll_AI3JcOeW zPC%gVa^$9zr$B9-ywhd?zWM+@fVVMtZ!N{FMhhdZm2tIl4 z!I=9Bnz-uBg0*3F?9bu#70^99JS;H&tFvUD9kOQx6b^)lT=FNr@8Ukjx^kSwP5tVG78GA^PRd=x#1VhPpv2&()kSu$9bydbfF-p}D; zge=)DOFort@@2`>vNj;|4^y81nezNW4c}T}AIsV{S$l`P_qTK}e^$2HB;zhwa*G_# zSQ(d#>A3eE+5RJ0d#W7sm9qaevgBe}@&noCQCYH1mi$t-IY;(0SC(8TOD+<}pwA}R zex+<5k+mQi#>2;l*FanHu}yf}PxqaVfUla!bfe5`zV9KWJk?RSDko2EH!|Tn4PgyF znKO%V-%$w1A}m2T`GAzlC{Pr22>Rq2eRcM@4n5cE zYqIbCRyp4!-*jJ_T!a654r{Q$H^(0Rq32HY9dFoU1)*?%yH z`L0(Z&dnizNv71!`L6M;@NJT#KJ?r+-xk%M?+|mo+kJQYw#%pfM{`(#9hnudbJ?+= zw#)a3J){3iZny6lyO(d9+v|J9zT+EmzLamDqTm014r}$-%u0US+{c+a4msy%zR%U& z-!|vVu6<@r{XV~GuXC$E5@`1qBE-K+0sgA5Vzz&HkO1!3)fKbM*Lx&L0yzX9{OOs>_}=KR;8 z&1R>6*>z_wFfK9Jol!)IsdJh>ul~$|GoZBD))ce+%Er<{^#T!FXFD` z|0U;t8$G;%@ZNtmmsy7#jL42a&gkzLRnPx9_a%A|vX^g}3%CLSYLDO7=ZaAqMMwnx z6FI_-%;2KqJk;oD4<;vb6`^`^{rkb8im}rJm*Q+vY}O?l`pESll;J-uo?b zhhnAmDl6w(*lOZ=X;J0aUc8Vj8!=Xvf7O!vovf7>JIl4_zG9PUld_f>c3H@tTPkg- zf5>vb?1#&ze8m`(*pQ@`;~PUW-#+ZnOYV^QuiC5|W$k&gHrHCcS(cBNsAtAY*0k{zTq2U*09HTdhz_V4OaDT>f`O{&Feh^{e7;X z9Bn7bc5~2n0RpAR+j&aqngV@?*2z;lRp*5#sTuD>Pk>Kq27FCN!`E~YI|coI4Q|7G zR)X4m(GPKzm@Q-S0mMbCj7K0Y70rkfVv;Nwk2ord5eMKe=J@8CjyDpbc+0E|XLK9! z4*LkqVG6$4G7Be-7qFA@hQdmGyJ#&=EnJ2#w`|6jTdrrfvR|^>@a>k{@qXo;-&%?ZoSMX|HkMG_# z@rm$QP3AN3#oGn^G<@-P4Ze4K4!(B#2!E76j_=(*g|FRq)3<%N%G|vUHl39?yejOjbjggMULcM zITn0v7vuORhldtp(D8H&Po^*H(sLg`uj;vB*=ro7`G8miI78nP4$AKd*8x&T0%G(% z;hFM#!ixZ}OOd1R34b3DyM?Wn-xL0kT+dtO_k@2fzbCwl)AxjvSk(b+ul$~HN`6mx zpZuQir}RBxuG9B~Ilghl&qG^$A6I?R7c20jJ<5kLO8VBXA;0qLN2!os0H)H%;UR*r z2*JbF0}FG%`>Vc}OW*ya?%TtqL|+2-Fh3|U z%3{FWe(*k3%369deH+*dDhy+l@>wBH6~^%`fW(lkwk|Qpu+>-cK>t zmo7eI8TZIIB;$e;Px;PrUMk}X8P}b(dht@;DB~s>x1z~n-X`NoGMpZdsBWdt^y&jPEU@zuZ{$oEy`3n>kkez}PEG za$|xpamZ}!m-*aSVM=an$~I0s23%+Z+sLkAp93p>JjzRX4R7Sld@Q)Z41N@R(?v zNt`Cm66cDG#U^o`xKV5ucZ&PPBXVWAd$3wd_Y`0uW&%D-V;d}1iS^^AhuB`4nLuZJwsaVXn1PoExNZm}~47Z<-(3HJ_^* zE26Hg20JC$i#x1ORqDaM0bP4;w$tbA^kbEJOYL-`ot|Q+*VyS!JAGTFKB7?c=WDW4 z+9#oFd*nXsL&)oM?et$%TDbT4cum5-)*OzcKW!TK4YgZ+UaX{nzGaP?DQi$wc!vH>N;4+ zco5%l2hBKN5U;{}x`X+B*po3KOJr>%?ANHU`zxf0gMcumXV% zc4;0;^}r+Y2S^4^v&*Bhe0zX?8&H0fU7n9}Be2Q-jYZ8^yQVc(b%z)JsL?fZ&Q#{++rLCsc`01}w5Dk(-A5qKv6=pm@G5?S_Q zpbKU9+hwIF)8s5~Lg`I*X+K$dYv5M7QXB2kI7;=vRq_X{4xD9|V@D6=-;+O3OMtXH zf=dGBMqr8kn}nK4c1^jgnG#UHR@5}uH5I5a1C5zq1a&0+slQ5D7YR5&9c$8K*Ws@x z04oAAsMe}v0Pg?NZc~jmBG?+Bb$ZV(tC3|jLG%@P#V)HwnHG#3fKhc+8u$`FP(a{z zyKR4z>R4y`fszr_(+9}%?g0I6NBOySc|FRF!2R~`B-ET_*EGnQtpWA>9%`oBH3Ly& z2G(bOLs2)>u4|NaCk33}MAQ}7b%RjHg9S3EQK=HFDdww6h`)nI>nMi&6NS5-8n`AJN{ucH1VD>VZ!A16K>&XqOL{U`{^e3zi>z4{P`@R(XP$k}2-KK?qcT6jp;o(Yq^xTVIKKwe#qGLQ)InniHU~#z z6`Cbpjk3!cgW!?DM!Sp$6VRl1u$XL6a4-Y_UkknDdVT}{5yq?kC!glO z4o^GK4twTbTVi|*|1rn;ZD>?}WW7VC6oIxP$(3 z39Q{`5#Nnb3Ru0*Bfb}wtbq0V0(yN2Ht=p-Jpj8_z!rWH@q@5$1?KiL;)h`83fRW4 zAbuG3u7Hi4MEof1UV+)ahWIhqzZf58vjtNB0{&yf>-kp17xJGV-oS4}d=dXC;*0q< z#6RFaLwpIp3Gt=)KAHgb-HiB${1=Ef$}=OE^IK?qz{gurb_KrUDu9=_A-5&!u+P|a zi2ZLq#Qsk>#Qp~#V*l*W`qy_KTL1dCL+pRmA@<*PX#Kn2Va3391>p@gpSdK5&uq%! zGuPzu8T}(>fJ5B~u5>Hmte(R4`Jj+XfallX`o#n4A3vb}?gQ#?I-vfl1M1fwP`~w!d$^_SXaI-#DPY`+)jK z4yeDgPdzswKcFK4tcZU{JO2tk5ss*t5O(Eo3W-l-BN9GgCkj7J zt|3`2O;{DeAxq+rOX84Q;t>9}6MjC4J${KjL5V#fi8o=1H+d3oNMij8m_#dGBv-mr zu5`Iv=^AjyCs;jr&x0iH*H9nsz~K{>t~ZR6&l z?7{sT*o9|}{ZBm$YoXSl601-RFMBQ4hVbX#8+Y*`P;V}8B<^?U`R{qBLA$ooRLYOX-x>HjuBpoYhrg1k{7Lfqu!VCDhh4|M(6wFr;ic7{ z;iD1^*pGjFvsi+Je1o(DCIjB!A^#r34j6nKcwQ9J>{DF3f#KAK{yC|-`np&XOT@|I zMDYW0v-qX>j`*%vEshb_iW9_{Vi~+J2Z54UBvy#6;z#1g*bBM!-&sF#x;Pd)BKL_? z#2fz(yv3=a1G_NfeRac66T|AvXUDM%*dJJm{gJ)J_Q5akH})x(<_q?}JdYRgd>+HT z<#0ZVxA2kh3oPV|_%ZxAaku!j*dVSDzrxPWZG5h{L)?!2oL9wOu?0JXCt_`Xianm6 zVDIMV*(H>E2xEWYZDP4tDt?AmmxyhM*NU^nVzC}FGlad?<@_+QMw}tOkKLm4#QEX| zKyxj-M$8r$itmYYNLq_~#Bt&Ru}=H~JhBo9QVs7}EB5%uvhi#oI|k2OgdN)R*o8bI zUKfADxrC(ngGh|5;`dB9ccaZs?0j(A3grB35IYyUTUWqVe~!P;|A{^77O@cf zPEWz_^#@JYT$)b{YGJKT8?NotgL=MRtPj$M>#h1C{mQsMUL8L?eoTC6{M7hG@vGwx z#vhJ9AOCawAMwu;(L`|~o~TIFBnBs16B84w5@#naP5dlzb7Fhqmx!ie){&`9jA&F8%WZUW3^-ImRyj9(K4tx5xM-#+ZbQ z)YLq3j5TtMOb_V=dWk+*Z`McYoAEbHtKt*mN5_}MPl=x&zbd{XzBB$z{O$Nh@lO+Z ziNZu_A|b~(QjT#=;(Uzp=Q(5Cks0IM@?&zwcp}C~d(FJ}pK_dR|2{_ka`|unU-sYL z3$BdO+y8p+?Y*b>r@dG2C;B{uf2rlvI5jGDW@>!O|JJMcJ^a?&jJ=h9>pkTE^cMW; zZ|#2T#<#9}YvWt&%`e~F@aC0oZhCXUo8+&he?V*eyOHgL1j0Wpq$RWpZ2;wQbrJ<_ zm9|z}r%Gh$S=u$)joNmtTT5zh>UH`6>@+rFMThE5Sk*Rtf<6&DkJI%T`Ye48SlJx? zsO;S;r?+QI^a++YuFLIj!oya(3$$PnS1~=`+?Aq2D7<*5O0K5Ka?%uW1-78vlIAe;*RVTK82me z+u5mnDm#PEWM}f(Y%5>N*6>;EC;UYAJ$@8)_9NM)_^Z_y^CjSHN3%=#DbU(aU_an1 z+2#DZ>}vi$*zdmq@3(E?=dvI1?}IXa%9pWi>}UKWaK@kW<**ILv76a1_{nS#cfoRb z7rPPfv1NQbES)!@v;PU_KfYxBIcH;d0h_>!*|B^C?20k$bUuxJmmk5-=f|>(_+qx5 ze}~<|SAZA)-sZ$_fh+$}JSaMGmgO<=xOi0Tfc~~iJR}~GXM56o7k@i*qUSBVoAwuQ zX1u?~{{X-9!(&zk3d0q)F*aJ>1d4&gW!TE7=DJ+6G*-#=%>0FWM$3GPL>P!(%G(|+7DCYmm zzrZ=80Dp{sggu=e*1|*3a)+>0d^$Ue&td2A`Roe(4e^b972CvDvmfIxiPy4T)_}i5 z-o^`Iowc&{(0i`sXS3`0_cBs&9pvpjkhGVIABxR5Ke18D){mh#k>v^tmKnW|?SDhN zLfZxX#X0TM+SU^AdEG9<)C7ZWdnL#DT& zo|p4-LvxEfw6gLz|Ly;N#-9?_{`LSL`@b!GYJh)l|NVgpf&Gu~e?w1=+uy{W`{EM- zW{iKqEoj5X zcJYq3F3tt}qcNTfR|TAbOlSs}0>d``^pdvzqz7Jj@Rm4VHlG=WSj2G9Z05qY;Ph$j zQ%ALqXlZOHE;L=y`dCfP@TTS#{Dvb#sk~@ujtwn{734=PlYVA?G?s6fl@&F$Xg^L^ z6(;>hxoKKa)3PGCYuM0OLBTNG-%^26)2uYj*x_DxINuDn@=z@3sVMRlR=382d4t@# zh0|}Q*8|UsFHkH10nPA7FAKYiJz9b3=KZ7jPt=8`ge+6DxX9<4SvMrllc!rvM!D&6 zd8+ID<)`Bnc#kVqTrg%pe%*u_WxTS$ij}qdO9u{Hb#6CuAk%&v@M^m%=azVj_rtr>?z;rv(VOZRR`1+D_4AH{*gyaZ5!86-!h~qjwC{{h;Et# z8>*Y~T)wELkLA9g-z;00@3p{wy)O63-?cO?;0;GzW;j0_s~;39H?6Sg@@b{Ka@2tG zM9-j@e~@A7E};i`KyL|D73xR$qVWL<*I;iXP*qYnvNkM?e66BjTv4;z<?0EG^WHp`Ju2ToLk{hGl{Hbz!-MnGZ&ahGMzpj^;-^E@8MeOSlb7 zbC<@1ORFua89%7d3go*rpF5;+-J8%o;aJ4On|03fOs!A^+(j-e;#=HbH)cgj>suxm zpifB)l8=Nz8=Ckt_G5`g+It@m!^Mrz*3M!p+q`E@5Zr+D;R2K~STcMA?B9@#9_&EV z2GG7{<22l?FJii0uLEH#n9~T~GvI=qOSMd23gMvc;nNqk`Iav`YToc+bpz^5pkRT- zv>ZerbOQvE^PD9n>%?@+t_|3d0_(rxu8b!0ZIBT zV+Dy-XWJg0BARCr~-$ia|ta#1NS{v>kkFO?vNF(uW9Jt5{nnr zd%bmK9=A8*2F_QSLbxmq&o69`HxBW8xyuLy1FleXRDGaW-(Nenb$FsCTolVo3|vy`4uwtb9TzbJl|G-Pc|4Q)kDgIitS3CJBkL#l ztZ1IQ5JKG01LeV}H&!L2JfZbGO43S{Xhi(^b0nZ4Dqo{bgq%_3?|!Dr&+awk`pa@i zsMn6z0SU(;;dV$7<=lI=l*{VgeK~!O)TUOVQquwL)99` zq3*UrEfLyxX z;;qA*0N5I$4GL0mGFwcu){084igYiul@V^MC7_vf2N<(dtYWdaK;J}O(HQjr1uQ0M z4FDdj`a`K{J>`m)`h7t?67cwZrBN$d*cKc-#wGGfie23B4R*Wh`{yrq84WdHWt!jX zce%N4YP#DM1*3IU`z^n>#1yfR<#k(z>8TW${`7%)o=ACNVPfh?k7nxNm>$y{3eN1+ z@^DT@*CLCmJtc-~d~~Tx_v9Hxc|qL>`n*Cf@RipYhE-f@T0z~vv}#b*n7Nf7^{?Azp=FgfjsIj~Z>r>CZdFcsghkyq*WfQCcI8vn# zf)PzE=#=zsCO5$G*TG$dWz$5OV`3*#SzYfQD4BT8`0un z;$NZ*U;Pc>(!V9bh->Gz=q|4}Pt&+-h;7?r2jSB2Dk+t-XbMLWb(LG8Qfv+s<-3PzKRq)5HYV+hn zUt0iPL<(OV3SR=sAy|-pE*$Sr1r1W-VEHhHNQi*~>Ru&!hN35(00(I*TPy|B@f8_M`x|-4wODPi&Axfbj*-|qEVun-)ToCt(Dv48o%K}@wBhw`N9}*{~xZ)M)FJ%^%YFhHQoat)(!#v( zDR|-5;ilhJSYh-p(0x{Ir4A1SL_vQjh^FC&v%(E+ta)Zhz*SUCJ_L7x0hsY{px83? zyy3CpBB%qUg?DmE-#T}0-9klBjZBBmMlLg9X~J3u zh0XHd^}Tap<$FEe6WuNW`LM_|gr+sX{8w%S?1&%yE^0@&FwKG&-s|n z;e;qzz3Rjz^N%`m?wna|V@8c^ZW=ncuC}VOEbb#7V0-P9f(c4*sU?G-bcv=)N$Hgp zWc`CZ#K0S*wkhct6yH3wWoQfOol&cn%n<2UklKoJ|AARZZ5NzC*?m%NB~>P0_I$Zz z24QZSuKKVA<`2SPPa28657=Ys=Pyt$I+yyaqrhG6@8(ivrU$!5ku07gzX- z^@!%tU52mn)CxW7f*#9xAe7JD@I|}972IUk!Lv%BhqnOyL~{jA4Aby%7mvr>NBCL| zojeHzZbP?R;1JwnC3Zw2F+Bj|h2wkIFN#_4x6NbMDD=be3%uyZ&2t(0frn8iW6v=P zHO*SYEUP|)c9maktubgXOEWi-0O+4-1r`HAusqv0={k7RLH4UzGl2`<`r7hXV{LJR z%T)?vvPBt;0Jv>N#6^CAqoM;3u+K`S7O7nv7AR_`cl+s_2i)1RoG-ij+>w z_YW+Jh6@{Ay4U1+um?QR0>dARRQn@Mfzd^-sAd-Ri}ov@S2{2+8jlvZEq|bYYdNg$ zrr0s1Ee&P)fwARhT{!&Avc^e1%cq<0Fo%4Wr_>4tJsLE<(72NC9M^9_L3O;k)}tTZ zFt1-!2*c~b=Y2xK#)5F|jKnl=QIL4cxq!p*k`Fh6r+^OwI!^gTk`Jr$cfhut@(U!t zRpt9K?F+Qk;9m!p>65{?h>Jje3wZI#6VA28n8E-8J=iyu!i%M!jz?&yU8d^b zI5_9*wP#K|Y;;TiTID#XBws!NP1KD4(yuRbbU|gZj^us}5SR7_K%d_PrvbQu#E=3K z-UMv&;6TKaxQDyYCg^-1P7P@j=!$x484f(LDl3)3a6W(-g!2lt4JX;!{2 z!lo71{JO`TXLzcD1$xXf0-9@W-eO-thj5Au0nPfYYmp;#h$0^8eFCLs>^?H(fafM=d3eU zpR!`f;)M(5A31Eu;DJ$}E5DxQM{D8D{x>kD2L9%+LD?LuS7KTp+_j88$VwP()zsQ- zOrf)Q7q+YRt?@}56nDe@93wZ-Vnu_&3=ZeHcuBs4x3G?3D{s1IWe83)2d(*+WT+kz zdO=)#4Nf;WW-S-K#_G6(*_9D}tb@zZa@|#D@Ve40q7$!@JW2AoCh#aB_EjnVH>Y>5 zeCBG}B5wq_u_Y3LB6 zxpy*yZZy9BMqp~eF-IRY_lRj^<_sEG-@mx9G92=f2i&qMAPXg`-5j;6}U zg_`lX5=xP5gnN}Tlr^nPtyv4_IlOnZ_snqTm1<)4aE~i!gvx|bU=DJ778>wE1fU9d zr&We4-T48lB<8Csf?c5(gvU=d3^?(3{_IppU93Qtry?R%>7 zcka(Er+rUVzOPSv+V`Y#+V|X^(?9Kds`h`mFSnnmnezAUb;{d;dl#s3vR7*UXk+Ie zGxmxa8`&$W&-eR`jrL5{81~?7c6N@mXR6wNkZIr4=UH!6ylOw|)dQYId!FjvztQ+{ zuIu-`6LC(b11B~IwKbTeU$!@JZ3-Oza2w+i9>xrEBg1C)udS?2=!B0MQ7YYlz&c`U z5Vtk}*Ltzftrv(9-jK)7jWDlGOfl+Qu5i4((63uzmoMNl3f&@XX{59mMpI~KexAo` zx+7j!cx>xA`PkCciv#}?9TalSs44MH(L9E(8G4?}1?jE_p|b^s%|32w+@Ck3U+G|1 z)EHH04)C~&(HYEZ-%ty1kZbmtT z_|p%T+wFrl#1s+uKeTdu+FbYgupt0I!wmCS?ux@JibtMPTH}F!US)WTg_s%i6?paH zyy8Y5EGC#&LGBrNL~C0-R;*!2X3(-=>y0h0ZL5h?<+<|W+UV&`Q);lyeXR)9kQvaM`K*dX`k?rw8K$LEj*Q=!-wIQb5stO&3qYPxO3?rb%!LcET&0J-KD_@C4cwv4m zc3_#R6SWt3BZ!a z`3P4i5Gsj`vkr2g4dkmleIwX>puW-^@;G3tn>ZP@jcE zMZA3z7i{vhj!J+mq<~|4y&C}>brK>EOqjeK@Z%Bi7^5oid8d>?PDmpeeA#{W|16ka zQ>B4QbtP66H8z3hhy=lL)sG~mA~y{%z~h=w9NA4d5T>@(LWrE z`@>N`SaSp$sqjB(pNfOtXz9iM0aUNQ zOjI8`zc^Uxf^8iyh?oUFVZyx?#HNBSa9Yk~g^T*%zhlS(pXLo})n;8HGJK>jSY24| zE!K_Jyu$pvKuu}UDC4B%9@FLa>nG1%xiVI+6#)wp#baEdyvU%!Ddj^Zw)^tD`ITgR z`h#9y#NSw8%=}<5HUM1(g*Do^>u=~^*xz(DR+gMTqI6zG7-qV=WOl4HO0QOe_YUd3 z7bjTv;CR-Ud7h?NeGu)K(W3NEeA@*b-n4^oWs51*`z#S{{{x0e~|4kJhzA zrC^pV)S(s<@sikUB)zxP0Lp}262WB65I7fuu8sMJ=RFWTtmB4XGDHIHq7DwCzO5MSL$3Mtt z6224Cb|rkJc_4HleU_`N_9mdy*Q(#p;vP70NoBrN!EIgv zhk>&CS^&&i`d`~rGaTPVl!l*KqlA6dsWuF1IQhh5F_Vx6x}L-q#V{1&Af_!gg<1Ke z@Y%r{CQ(It)=;FSqqF&F(jb$?qu;Vhk=1Ebuqgg@dh zJ^qN2jm12qhfFIZf?ijFZceb=TA-g5J>I3^WMFw{P+8C$G=ocq-Wsa&7HEZTPm!y< z3n;Z|EP03EyFp#*_^`>4+8Q z=a&y`8rax2VZfmB@!@JWc1@0$?SqmXIqm%V3bzNa_HbH5TC3wEtuCOo6Mwe-+El(l z`ny&6JG8WR`}3vErONl^w4W~b7pa`=b-Y(-xBs5pUsUb?LOyO;K25@?0v4~_?;iCg zv^P3k{AR{hmT;73nbo}#ymp^ka>hn%#Cg^-xxc8!u!nz`DZgCqFRFfs9Z~z!d*K=f zo;YK8Yb<%_X$;ask488~-1{Kjx4DNM&X(g{?6qzE#zGAm2`9g{bX*AZdvAhJ$|80(vkv&~dh;RU(a2u`x@E;9b^(Q%jE8fyD8?_a}eioAsYLbK&PL@(=~h z$QuB5+o$~T+L&GJbqQs|6DAzGuI3JZ{t=BeVrI)o$%~Q&wN@TwHd!lt-IcrVGDHt$ z^7WrY#?eD}?ffHf>_3$IXzr)9+cR5JZ)=AC9WC87j?w&JzE0r$Q(py}m_$gH5V=fEpKQm%X;gl5tQ-9m%kFWV8AGpBFA@7e?^ui zY5c99{NBIz(XamC3r{`y@Iz-#ojkF!1iGWrm14oT8jY^aP$_!|SIj9kQ#3R}{}+gI zmx7fnIVUs77-o43rS8=#61%>IX#k%&jss*JVHyUa_}8}nTiDvJdo3vw>#H-hYxlLh zAV1~S=d1YYQwJJH9ZcxgKKc&AAENw@U>H1O8k%_n;K;F{ZT@N*)l{P9AMc zP1zL9ZUWzjQ86xzj%j9R`D0HXdIkiJ7f$+)7#KZw-_AdwKK|`6G`y7i;C7+MJ)XaQ zm=r!sRCPIt``=@r4MEqdXjX$@9-%^z#ph$0jJ^DuW0a%+j)69i_u>rsdKkHfWi*3e)#VXy7L1Oq|%L zQCk8i>}#NaLMVG+Vkrt?m=ON^u+18i#vZupVNPt4%26HU$sh+aQ;cqXwL_DBa{}u(PBhWYSN=Hwr_*+)U~_^Sc?huVnbW+sS?R-S^CW&ph$i z?YC{L&&|$EcPCtxk{fQYthY#pswoA$LYiD9(U}!8s7$!5Y-xK*Ro9H;YzdArYU}5)@k<>%g5Np?suFS6qe$+U=@eMDgWd?;|N;RthQ=D zu2ldUk*{^TAh3&Djm`(6w65zlJ1qECq&Lav z?oTG0%?2oZt=}tbCDr})ieF32ulsb6*|sNkzD7T;e`{`=dAw))u4lHP3X#2YAHV-@ zVtKoZ{idl=x5&;hQ8@);F>Oht>2xB#A|~MtmZWMkQ3%C3{o;-HUA=Pl^!}|uFRhjw zDG0Mpa6+UhAah`F5!iN6U{5)|PF(TJo%!QK@55&2Y$ur)9%Gv=Ww6P5ZT{E;I3~%@3Zax=x|w z4}3ug)$-z?lzeBTnN!LB6J)sGq?PG?$$ZzwOKDFR+6_A&m75*Ux_<4M?>^LSHraM` z)H}$Ma9HQ&a!|eNYbO?NUy$`RxAO%!6}~NZk`;E>7kXt$kP!RGsv<*8IGfX6mA+Kf zHZprbVq_Hnfe*<}%8}P@jxeMH=+cD~#||EtTWClJ(AX6fJvHLtiE-Ntf3j&2$!B5~ zbya#8mr4Z-q<+UL>(UyO&5I<$91>ldP(cKR*Y;Hpv?}Z(aD3vK5m^j$TE4M#&wAR7 z_0D0-4+^C93n9t4^QEARD77xa@SYR&0qYktME zG=1&d+O-=1%re2m6|C4zI)EUCLi6;JuIL8cB#g89)0xDPdxgGkALi?7oU6f z;p^v4AKzYGUYKh&YSnIp8OqXoLlhc5+q$&3V`kRG(yWOjs~2*v?HI7XJ&}CIZqiMIEDRz(e-pC6~2lkrqM0@E#(KIWq zr2R&3jcRJQwFiwa-NUr)pW9Hdg4w)JArm`s|brsWhO zzZy{)&?(W9Dz^b8(_!x&pR9Hcy}vSPOXe{&>JN5CGlqV~3QLazs*_Zs7KCxLwpyfD zQ}oy8=#z(Y2y69?+y1@e#I*DKG%4u_K&WA2y>f5hx^Ute->j@EZ)uXz6`Mw?g(1fC z49vaumT^1*8MZyRb%fwuZFmgic4TF=>)9w|Ab;l_S8h9Xa{FkpJQRI~l@l$K`4{v@ zi%rYA*)@B_va89CSR_1*&HjR;mZQPTe%h6|d3kA2`;Wvhzpt z)x^@bDLLw7bUoKFrrPD02I&XqC-VNBcPc*C7?eu7Ru8LBPL!&aIfzSNOyblkP`=e; z$w7)l`7s!3Y=`L~JQ^*VR*C(%a-Sa0&2t*_AuJN5=a|0B_z*o6bggLSE;R8SXKWy< zw;ptj^DCOY2S%JB`^a16j8{WC>q*e$0__QrB-6OYH{274aDWI+CR*NlG3RlG_dM6h zWv_4W5CDmI(70892vdp0#X&ZjV~uvjxw5J_z=3cN!U9vjDId!bKP3I zLNjvQ8PY(1tJGP=S|J};ZaOhXj_=PSeR0in!@y-Owc%T&kgi>aXck?hmAtQ57?pke zyvU=ngCAD*@ppw_3}5Om@0?XSqz_M{vUe-LHMV!ZHMVzxum5HGt3H=|B$trvXV^IP z|L{Y-30*~iDu!UivP{RxR^?_?5-HJSDqOxX3}yut8mi^Z3TI`jM5!9@WDN`1&*QIX zk{@=@BvNAqkdE{hM}h9_uf;ejG?%ss<1M!^KQMiZ zE@%aoj&sDxnDUktm$SNC6Tw`EIj(mp%X_ZExYUi%mRP|AlUNE z%>%YYPwO+QD}SpVl?-Th>>wOgrjI^?t|lzc(><@Jqgc~|GTs%NJB5xht7 zNB%f_-q~@%@@2>WJ!y8ChwQju`Lg4`_m=VE>&kJd4gB^kOS3jH` z7tG%J+x(Zk_Y%xr_FjK*%V+qMstshv|KlykzfSqj*=P7?+P}HwGYFP18~=Zf$KSQn zf6Hh1?a5yp%hWIK)hDvQSNKn|Yya?;_xc8v56+JNC;7Y3r$4{*3-A~IF#LN5w!JC( zLCp&^eF25=`k^BlS;n5ps&-BSpgG-R2qBI99bUr2q&jT66`eeL2 zQjwCZqgX7^LKX7;(%?x|&b|@4Xxt2F~c7Hr5VKwja&CxE)@Y2gWn#k!2R& zRvgVTf0IIq7)B0)nB6qFU`W&{$voY9YP%*EsG~@)G|8yT3~)VEYCihaPd)MA{pZdu zFLqi|sbPL33f|QwICsj+lSiAm6PyumPuvBW2c~PRJa&;FW3?g3gfXAW1I9qBeDa#b-^o4ROC2i*(C75SG~OVfFBx-ITiqP%dfyxrzy(j=UPwmP%;5*!1h)wZ8m;XX1rksTh^&mE;3|`{0`thHEeU zq;cDV9lJBrh8CBs)VG&wt4ovpOOH;kkq;Rjn11n>9@yv7)?Eq)e|OHQ7^&_5Tz7U! zbi_C9{EG3k(oLUY&e2Wp+Of%IYsPC=R}H5Nba zgOSy3c5`6kTPC{$m|d9pD7e$NzlT&~TH@vqAPFAoZG*`5 zi1$+D!jI;@`r(J>=O#LJMee0?K1$e>L^>;(H!JpV6Db{xMC3=Aw4y!6Zu8hX#sOXt ziIp-VFI11p%E=WJFO?{>1Ox+th$GU~G?m4{B}eo%{aYtfqk77zt=fdrR!~dAHgyS4 ztLsLm;#Y>%rA}3Ee~#oP{vwVtb`$}1iW7r&qUD|H8M2O{@Pg^QT%v6z&iA|$%oOBP zrCk?jf?G(JTbt`4NO((sZDMjgEi`Vkk|jh>cUO+h)u-VXvKRbJl*9)18KG-tLE%-L|X=r&X#gcehW} zt(t5=h`fD?I`dzL$L(Tn>8D47E=@lfsx9E0K!|gSp^g4mQa;q|Ub^=ShYoD4iRY4Y zZu%PNnDK8!Cp=zsjXX!Z6_TFW@0sqvM2I?3S}1$acscrC*R+yReYiD!Jf;til4^;+ z0pO-fGG8ckieNm8#cEX`pe0=Cps3k&Oa}F-YT?xMO5UJaV-iN_k9c;`C_g$_JQM5X z!QfbYjEX~$c8D+FMsg~h+VLbl+FVY0Ym?LS`R%#BVXyXov!$ogwc>3{n-J<@Vu~QX zWKDl*=V!@(+|L^QEByU1i9tK5(4ZQoc<;QddCs#^e(%?By-wDAcKr8$?bhS6=Ck8} z@Qb$|mpX2C{6EQf9{7=+--H$LJHZ71rOa6SJtlW|95Oh@6Gy$7Gl(xwv-@BZ}an2XYVGfA6)s&YwAb^4QVY>4Y+k0Eln# zKg9uHW+lh%5RZyGpp1{KAZ!FHYR|xAHYmxO>(vSy#~h%}9eXrX_UZn1;4MG-_~zF1 zRbL;i_v6vAWeW7v4t=Mcy4~Z=R{P+gfXsnjdjGyxj~-rg`h$)!QJXH;&lerqO~{=& ztBv-J<&zD+AEaU3TYuvIrS;isQ8YevM!(HtH?hq0 z+x+PG_%!#BJ{&47gvJxv&#U7rjQ^vXn7Z6)_EMJntn5tFx3h<}(QKM< z?9(55>FG~B`}KESooIIj8c()$B({o|s5u@zCTv%$q0*}9UTs|n37G{R@JJr;uBu}m zxGKZpt&cW_C`Xk~Whzt$vP?*&x+U4%Y_dgp@=ttq3beZ%Xj*r)dJtAVkV3>8J~@+x zmSwd2=jy$))H+?q&!f7u^++$8WJ{u;;RKH#x>{_wbC>po;)EIXW_VlpVqScL<97xo4QFtZlOEX2`HPE*>2Yxdd<_v)}Fgq@F=#of>JGs zbnei}+fZ3i@7TAm2x>m|k^53Kz1gac-q+AhQA==EPxjq@v$%;NlZXgsP)UMBQZoHAi?Wh-XF5yCh>cUVcfQ&KZFb*7k<;++nyTMj zh@+@bStP9)`966K7$fLyvMZYIImH5$bfHn?L~{3VWh1Xw>_R;^f2A^5%oTu$k?}D8Tm@3=Q7YfirdHxySwW-dA&COE9vu(?LWaHF#oLZi@ z>SQvV&P3YuwpjC~oeHfEit3e}FTuC}UAY4w0uOH=NKkYfC|pYlDNA^VG_Z%?&0eCnlK@ z&!~N(0p=W;{mjn4(EqCbO;o&|`vTB9)+N!twC42$aX?&vv!xQaH}Jv~8grf=zFlG@ zY2M?h12rLlkUpQcj};dCV&4SzEY5cz1&&>4O zR?dD9>eSp*B^@?c5S)LR3P<4ofEET0aLE}p5DGpSYv!Ey8td-DCuu66c|1o=(1P*}Zg{Z!kh2=gdMq0Lej+$lS|y#awKjS1%d`bIrDEN>wOv#`45!} zg7sC@60h}Du1Pns+8YWnm8O|4?_;zFBc;(PdIIo4@1x!o4^Wk>S5u|QSVW@Zm7P~6 zK=KQ!Pqv@sF0-#`HDwqn1k8AU^erxJ?YJv($Z~dzeNF4od5qo;L0nNkrN0q>5$3OM zCBJ0S%#aw#!}Z9h=Lc=gY^GQ1AnzJp4AcbH5lX7~E1H{lG(Y*s1w}LJ|9;{))dILS zGauR$2G!YOv*1~&VU)nKVd-@4Em~CBa#>KFtFCBZoUN*s6*>pWQDJ? zVErUxuoJZQfYpQu2VO+%0R7fnjSH2wQj8bB^G8WCHufs*&3ZfT0N4^I1iw&*SvEbn zRv@%PLPMp|$AK0HV;Rg|p3Gs?@X2pw61vGv z^xsW5v?7E<3mM_ihV)q|3EFkJzaqvVXE?~3@3?p@H^@XL7C+e2`h}%Z<5-ekYQ)9* zqDL#UPJ4?5D$) ziNvdg()4Y;%VA4x+M?y|+4(_sXZSn0*R_ptzVXr=HuFU$m$^ioaIE(7jklhnimgs< zmv22fzF;@s$aG2m8X^qKMsbmA>Ivzue3>E^9t-|O9BoVoQwk{U5pU4`zQNq3iZu!OX6XDuK z*rXduBUc8Wc?o~gD3evwCQBOh@D%`?r6@!f0BAyS8N=zvCTjqX^13x|c&T$gx}X{n z4b=T0S@@?yT@*lFWb|6)bxQclmAS;OQib&k=NcN|0`!J0NRo*ym&p_Gq!`#ZiKmYct&@A8r z^xWGn-@Qf({A;vA0H4LClM^PpyZ4TJ*TOt>^PRIx>1FuSu97AM?5yi%(5CSR6&qQ5 z_}ufKCiGq!VdG}vwq8TOE4$gzTsEQyaPcDObM~+-AAl}i?3P1 z`9ZPoRbr=9sVyepg3Y9G{Ip_-@tiybWw+ERduF?KB8ogCnwnlbQo*tEW?`fZhz*nT zg}L;46x~}me_jg#y=4?Jb)s9cc7%J5qKE+~l2OE@i^+Ar7M#6)a0EnxBm>nw3=VX9 zCY&a}wsS=Las6+wcaFauE`z*$?8a5_r@I)l2`NutJYH2b4zv(nmM9MO$d?r7k5pG~ z4r5M)c;lVJM9JJ7CKZ!+y_;l_TDxy5Zy)gC%d2`7*bz#M_ zNW^D zEhG}~iqrr*$DP9UlCN9oYSzA06`#m!Vk3H1<=;%pDTing(-WA)R}p;L z6(_K4Fpg({29U@%Oa89N-86Ntxdt+FwWNNwE{F;aJPQin>%n7GPft7coV*UFoxajs;urzq&U$P?us1iMe zOp#JDXd}XG93SFvT49!)UfZG9^UyN66>1H(iSrhE`R<&1Y(~R{*}rlpt_!;7(#}7i zC-28Vo`1)-e+a(`@>N_4xV}X@}&d&>Zx>#nxwBrL;mrS^~|hbEXYtOE5Zyb^^iHy z;^vBK7zgg)*40o(r=mePlj#CUOi2WvWx9|a`A2(^?oZO-*)mQ{mfB%p`JoHG(efM$ zEeSvm-zkphH1HRJcwzsYC7Rp9AaNbLY$S!GMst62>gxGnfl@>Wk7cz!`^Hm_RgGf( zxL#`b$BUz=Q7(6^6Px7;(`_fKr5UGXje5}N()vG-eR=0g+K=f! zntLdB=NHc{4atE>Ag}VjWVe|(;bR5ur;}=8`lNTanfVQ>qmoRd!YSv7-xvc>Ieh5B zYj<6}GCv2we%3X{v?vTkhTbC+%=(h?vxD2;Z>s8@tay>|Rcs^S0+Rnc-TzWTt91ex@XFmM$i_gBl z8@M_Bhkk(1K`LsO>xOkgI*^5=8TgAd81lpy6(5qKD-_RPo#$ONw)8U$Ts3`O)MJ@v zFFXvI6e}}4#Y?h8e(XoT{%a2%sDlm5@+K&^EMK*`F_aZ@bB$mwH#0yuGc!{8Kv_T8 zYtI*>_fK*xV;&u~Qq&ijM43WfG}&hnqTC)Uo4|dl=;@?BIVI`A~H!ED?woxwOd1@8T$RwJaEDq2 zt*8S#r$a`AOA*D_E`}Ds$A|>K}-xg#s4xiqMEo%VsNTbe^UZlBXIXunSnl*uStrNaIL zw2g)}ds{J2UzybPv@EYvER_ zz3PNvbp|)0k&y2;i|(QCir^B7!_xAhLfjHhx9m8^o2QP!xK|_q=bKv755mXw)B0<< z7jl=j3mug5jeDjLO#S?REl10=bncbW)&kKHl9t!-`f~F^(h~ENfe2+wTYm`&di>El zZg136)siptvjT;ZzpRD0bqSRNp+h{lxkwiR3 zg00$ANoQd>760t($UaKTjjnA%WW4Gb2W$D50C0Wn`YgSH`!(?rj$qi#?B6E{J*^ zLDx5qmP}6zTS@f63qta~pDZ{7>4h}?5SCeJdfeEp6iVdAjb2IdKHGMeOzJb$E`aPZ z@l;IzAGY%DJ3MdFcJH|>Zl^|vh7@9$r}19kIx>tIDV~MSorlXMr|_}VZqlu@KI(~o zOH^ojG|=a}PI)$eaHbzm+u_1e*nrmvPKV#skD%Y5&uwn6o#Vzj#danV&zlK=-3G0V z+a$9%~Dv7 zt>cG!=X&`(ZN%o}piwy7W4}L;GEVipR5RIaCc;J4Lj%@*!z=qZK=n$Xhc?K9hU+%1 zWGyT>l_RO;+Y9yieF4rb8~>R?MbPriS}E-G%%;Ea_)4Q?m_2%gJb$=ZJznyy3hTKH zvA8>59`?#nn@UiyG`i3U=+qoGO4z#GqhLGt>0g(-kb9H;xC+lSYCx78OA^j?tv*8wv({?XUDJaXZetQ! zgIa#j&lei)rNxNys_;KTrr}HsHFn=&eHm_ON1(haG373&fA3ta9ff6WqBT=X)8*dU zckbIN-CnCM7eSNUcOq;ViYMBKxiBDeTkf~aNq=rLu9BF|S4zTIV+<#Kv+A}g`PIfG z?r}5m$cVw@9!|{%PDQ8hkNx@rVC#P6Qc{U~bI2siCV29W*;6x9x5wQTyj1vOcK(fi z3NEt8bKjhMWxM#zhc+cEMTrdM7Wh)|ylLA5AO7NvEqaR5&D$cmf1 zd$Drvo&uy<>?-JZX7PUtXvf6_ds>C8yDz)*ff3}rx=wsxYB)8q`rt4M4jm+|UoMp$ zFAnxEHj6N9@n35-aF=@l6yc`kwCt)(3RcD z5CkS1k4k1&naW*BSl^ISA}PBs6+dNmTE5aIFXZszQuR5d>^E{VK%{sjoWv7H&mfjr zE|#MR;TvJKs!>JpymBoc7Fw;2(_VB@9d31KM}QT4s^x}TuLTDsC*^g6xa_xK1Dp*@ zVTq&!+dwjFUSo1Qsnx7-f2zX`>T78+xxHQ7YA$$7VSaMLZQE@>ipk+nG6{Rd2>zOG zebJtCnjNr?G!~ITYaMQux4=9gRdj`q<|ddp=}C$m3I^Ew-bAuks#R~JO=Htatn-!P zY^l1*9u*#Q|7|8LV-Ypz@(dDNS?M~>vqgX^nv)1%35rwwvs52%yr7}*X;Sqi*`jg5hWW)RU3 z+2Q}HOg|$e(yFHXEDjyNP_M%S6HgtvpvSJyuA9h*I1q~hYY9oIVXbh>3W-9cJ+3i#@JT+PF2tD}R8X2kAv zj-;=I(jY+cP&Sg_aF5kS*dm(K6Wg39FT40~`7>li^YEN?PMJzKyon8Y0UPpQuCv`_ z48_B(nAVxhZPzTlocasphuH1p=rUPFe(@1guav z5zOj?yN1*q!|=|_$F3ax=|iKs^dnWG=t#bG`H}VeS10TeEU;zxlvF#CwRI2R#|;OD*-7ZTbp<+WL9XmV=n)XFN7z|-{=t(uY{nT| ziSDvbBb8@wtK@H7+F%k5zdJKxUyE7Doc*#x2MB`^cr&W_{?_Oouig#VOx3kZclLv} zwbeJ*WXCK!3H`$_rcH{;iBp&@7!_m6G3OG!nFPf~;Dz*&LMPm&Z>&n5!>Hy>I(s1a zo$~svXws}k%*prc{E{(E|HOxLe=keld8g~CB-=Hh8`;m$j|wzHa(g}e9>Ok({}sN$ zwxugV!cKtEySZ7>b2B+|T6l8eQ&ApQd?F;VCCiJ8{FVzKHIOc3TaZ7JUL!&E<*z{9 zRgtw1=f3KZhc90`acukO`szey4q_bAxgs{%yo;+e8kYhk=YW)m%Z*|~mShMJ!o3}E zI4S34gqTB7VhEW!D&GX7$UpJeMS5gu@W9yl z$>vGa0~cdrPac?{r6FzjU2;%vyjLnwDQbOnB7G!_)EXhf}kDB)`AYK2veixMMhT`ERWk zCNG!0kjIRS+`IF0`d#?KZ{|L`U4H4=NA^#$Aw6c16lB2KK9?23B^@uGGhUDC{LQ91 zi(CvlC8AXhj_+7 z?!*UHuFpC`pd>*FgP6OKTKLLXso7)(GdanmAp4rl{+@d-f`L_>P=X*KwH(NVA=@cA zRf5G=5s`uRf8zj4t^qC|*)G-6%ArM0n5~A%?L*XWUL@ots~DApk-ccf2O<7;;!88FC`jB&zHmc1bZIm<74dZ3P%yS z{k-4Q=`V9DUeQ>bU?*-;(J?u#O2ufI&jF|jOQn2+t;)?>%o{um{lA^G6Vta*GAS5k z-}{MjC4yBb_UH5c(bn=3g$mtWPf9RbwWn8)KxS(tW_N9Pz`4>Ixzu!#lYh4JOZvy? zjrkY|aeoOjxesM3X=2}`;Wkc$VtRJN?kWcE8Ce}%z|35R=;?LO$i zBP9rhRKVDxQEk3I^dm2?>2<5uu*1BW2Lg^`gX__9qq1ZfBjHfiEdjmmW9KU-&zLv6 zjyqvlRm-AG(JZ<%j%Asjx9j?$_9Xs_G=_;`iwsDPbig3iRg&ROB#N8Y*w90CYhY<#- zVb*oR9mArh|0}#9CZO=_(@#EegFTt|uXS2H9aS?Dsn~S}b|r)F63~b@H5ydDtlTwa z7fQ$1Pftx9fyyJr@8~|?%6ml|kXkudIagtgTE{mgA8guCgb?AxY?BxG9<(<^1R%cA zGq_qH+CugSaj{1ab_->_UNp;P6pL=ZMm~-t8vSrqp_rPs>&}dG%a?b)lN`YJ;p4uV z`?2lfCD_IvU&OJyuN_dtkPukee(4B!1M)}G>b#BiBpcf)G6mU(V^_@!)?*<0AM2om z;$6qH9p3f~{4|tV+~;o{4QbKa@9hY!ck<9f554-(tHSzn2XW45rQY-1+MFrQv6Kgy z^DPo(qoK0POdyBV^3Mvks0K-jjuph_mYh?+Ft6E*o$og`Q>6-ag@ERSs!#|pK-m(R zbfq8Ui)2x>zfVkBbZOny?RtKCG&?dYQD;yL1H0lD^q%RJNsgFhNwiQ!kaiAu!YLiF zkq@m8wYV_1ZV2rg!BOaaTWK+E7KH>r&)fBmHBI9q0gfF6-otp^#m1%1#d&xIg1oiT zICsdWr7~!l#iLGPKAlc1#^;WP>J?P%{s$@B5iMdiS>O zziMh%=&D5U%JcJ|nxuyzI2m6*R>V4$gK|vTMb^Jg{qdLd)9fMoM(%TTXh%Qry-#05 z($<-w-P+?M`)LzaNfDm~Oy(cxY9~t}3slx9Q_T0QE~I{!ljD`0Wx|yz*u5~zdoYCzzGfC-?A|FTkUf&Op;JgCM5Jf;>(=H_u0RB`+OnPg*NOFpXL{Yy@)K7I-zYyp9#0+s1Pa62` zEw@l>>V=Y#IO!Bj{h`OMU~$m};8BelYcu#gN_Kdl2j6WCf&_sE5p?R?kmI#nx`zVo=)3bsF?M|7=Rrk%*?5R4bG4m#Th zwJk`)NxhnmH7rzU8BFeQ>(gz$lpw|NLM^J6W=q9oc6uQaWT#95>&=AR|D0u1z__tX ze3&2Vb+}8*bg|R>JJI_2EUt!g7uos|BIyr*;aE>H8e=t6rxqneD5+*;eHB1@c0&uP zWI+Qz9)ROO3J!adomPb~b*UVA4WB|+ySoU_t)@#2E4+61_R-}fm}z%01|!Od?_{RM z84&e9)$kA1Y%7*i@J#C!`9Lc)VgE zJ>P!|t!q*7z`Bz`W0}r=!&x=s#<8_`lD#^EMtNT&Ez#c`lP9?&%K3^ z)es6->c1iFY_yZjL8&(_&enZ!(S2I~Yq_JjkK}Ir^oJ>a$itUs+r3%Xz`HkI5!QwA zB<$8cCf+uLalMm1ivwnMSbKJ0)J=cj46%?U zn#g?=-B#u7^ZP1Gz7~_QOrP7b`k`~bvjq3Tpf`79p^Qko_Z_t(yFs?eFp1eynD~=c zIVt2DntdF47Vzq!zP|-26c3RyS6J`(Fco$hA8EO5zaJh6D)$y1ga@AUc_RqgKp^$z zAlfMEtzu_>W8bMyx5*KBBO~#M4i3T|qb*H1Fj%@)TT9#4urb}N3|4yevd8v}9__tB zaKKX35@o)bD3`mv7to9e5BvMMvMO+xaG8*f!}e=}{8%okirhXDkGzs)@*N zw$S9@TDpP4M{{f1f*^HBJnCd?ST)r2@%r95S`8!_{r)GfKX}jG=guBIyt&>7;HzA7 zye;xMnTLMU@&f))t$xfL(=D^4Tr4c5F3T&061FOoH)K2@o0`w`tKh-vD8V+Q~F9MVpNb7JB}n zikoMPz;4nySShCgR9dFrU0B+e7Ak{06)u>1!?bg??^KQS(Tb4-g~fJSh-s*%4v7y= zkF@Dj7nUX``546WuyPdWvn1Y=Dsx<^^j;jbNCe~~cw9p)G_dtTUKUF3ft~-R-_Spq zds)A_9o~cb7Y?UL0eS=(cbo?=OZ!!Fop3rk>|`B!If8KsVluTaDuXJ4%A%7g|4 z84DM3p2wFcT8tz$Ee`kIooIn!x0m<2ku=hLnL7#AZtqTiuFoXJk(2W2N#{$%r&B_< zUwN-v(vtIKK9!X2PJHF}ilW!v?S7s-DsfuRz2jE2{IGwSbRo&3d*y9&z;k}D8*bl4 zS%)y6rKXZ!B((67q@Jk$+&}AmNp(oJW8#A^3R3RQt5}flA}3*in~c zx$m2&H`iLAW5{>?hW;#=`ImG1w>O`Cf~tXb{$lr>i7%!MynNQ#ams z$L%MNZ>+b+^g?)}!*!-X7^->pL!PPplh;UDtc(XrofQ2>2qTGzEERDx%4GbwsHetc z-O^(CRNRw+0LFf+qy2as5e7mxOy!f5YCDYBSI8^)y)(6_R5oH-=;lwkD zzU>!r69Jv%E6x4Kn~yb5b%3CT)#mBGeKl$c?K@N}rL*pVg=y*z<>kd_+Ag?3OyS=`U2D>^=2Jx}Hqw zrD4-NTxv8ZWfV~e#6*@`=7z;4ZNSruZ$8JvR&(*U^uMS744%r&_V5Y92JQTP2X*c2 zOXSwha2||rW~=mC4DIbMF*;J~zQi%mS1s*ff{z2ZJYO?Xh_XC}cKOf?AQFfiy_^p>r;7xM&_)&-dToLXphc%{hd*l4Sy){tLrEPb&7xP;17U72 zG|Zq&64|TJ4xP-BAc7F|Y^m_Q7e_ex9^AR;7{}dMxbt{2*TVigaDoQ$)?B=A%W^MH z%zyI!kyCf`xIfLjVb?B~8-d$2l9K{|rRgKD&#jzTyni$xYpp{#c>Cfo%A2IQ)O zbm?!j3^osv`N;45UtlU;!#nu*nc^&-Vi7%h|Gm@H>4A6%+tT*UWA6AE^#kREV7MGQ z?XW~NoIos2D~V}5A;s?b3#1C*$bXQg$wk$~DQX#vIkNovyI&?3pdGI5UFi6in%isH zB?Q$#@to(mlms05d-n~20k97-u##)EjmX=%{w4Hk^&=m8_8IsfA3upw-M_goUv6xx zZG@G;u-Zl{R6uEpARsVR7A)V`&r=;BPp~nv88r?xMYD=-MFDJyTZ2S7O0lw>(V&?G z$yf4>0wX6QOd)B0xTa$;z*$wST04 z4{_l?9TVbPF=i;|h37x+4} zzO=V{`s`aqDQ7CXWVfH_mMd_J<(3GPHa;sU&asPf%dHWn%H4PFhkKy( zF=$CTaZ&bag&%EvY8RNLy~cwEkp;r|Q(u4k<&!5S`%?8$91A>4d93m+tJjTxQ8_?D zj<+axd6=@$)QfdCm{c}-G#U~~3S&c>-A&z2ew6B;EY9o-zRH!^*Hp{`U*zO<()@TW z5J1z~2TGLE9pxYB7_BDQ-iSgip^9Y=>#}L1iM{i6-(`tmww)x3d{29`GYHye5&-O0 zP$k9dYCqH^oeQclGVE$T57SwV9xmNsvzNq!TBa3L7V1WKqB8$LJN8*+g>oad+PXU` z1~oubHOrZ8N2Q8BYDU{$tvGUrQB|vg^Rn;X4_Dt*TwF7&Mz!Jll=CCIa(-zhT6fD~ z<;qk_siIRMd+2;$$|nH@6T|ODK%{ysMEE$PLmJXba*x^qV!U?)1#LtYW< zocr+3ztVmZdvQnZJ5`zR3;T)Azyo9viu}f?^UdAEyN$3FOauM0+N-D@O-;H0&9kTm z{0ECVV_VCPO6ua>uaL5niLoMu^}4zh?G1?G*)yk30+l&jDky9wlb$6GGs(f(wH4@f zoK03TLNzE6Wjy}J+z+$ZbPNAr6aCF%RRY53(RZ++yX(|Q%oR?auNI2J2-Apd4-5-n zw+i{$h@E^02Q&&vB{p4&;~x3Bj@zCr6li((>IYtER1Z*#i<;+8TCLK`r(P_=J`J}} zI0ZwEGzvYv!H$&*xdA5X|EH|YaB~b?6Oms4PP5jC~{PEAf^3~_hW>8~c&yZ&%sc_-e zRh$AFLpV*Tx2tEu7xhAWjaW;BA?m=*g_4~Y&o+D5YGWqW>o_J+D5TxxM%qmh@9L$} zwU|!aU}YNx6ALm;eiqLd8@oGFtTDf+3*>ZFO8IKWZaIf_riWjQQb|s=ISTe0>4Xmlb zUTxS!W`d~6UkM7)@Ys_<98+g36dkYbd*oEBX7NnuY)yKXdMizjQd7au4xLUno#Glq zM0MGGu(!NinynPuw%(1)*!e=f&0=q|BYZ7?`=P24S$>_SXS7frPE3yuR9`DYTjVy( zutFJ=$jjyr?wsK?#8lV-EtZO-@E09KE5t35Fq#$G}%AWrT?(3&hPI`i9~ z2>SasDtY)vX)X~x@JIR=^}j-&UvWGCk!Od7+Ryu?E^G}q6a69#%(=)EZqusTbW`TJ zngZ&%#cZkxXUJ|&KilgklQfxV8`0xm<~@m2ibNv0qv0r%Q6;e=kDt#Me7N+@pjV%y zL6Yt5ZDEi!%MoRH>^z*46!0q0Nl@Y~(}>63>CjB+Wzc?jn2{Y(uoX|H3P6W^p{vaY zULjwqy&pop9hx!HmO#<0BbNjY8p1!Z-B9&mX@U6)6!TM#= zv!~x6$jX>^w2NoYo_+J|n=d?f`sCq5v(u8y%}Vbmg3P()D@<)tAd!rNs6sKf>K|57 zIE|S+wQO040-RA6lr@+w?yR5h)?ys23`dU$VLE21gD#Mri;I5 zIrTw42@#{&-xwB(4a1E{8{!IG+4-OKtMFUioqH-rXTc1FP9~@Dr0|Uea70u^i56d% zZ?dZzA4I8i^WwE@*Pgoe)T8gad}(cUZuV@(#4r@slbK}J+6^6Z(8cW$die~H*P z=8|M8(~vnrw``=PX6Ie@(Rx|!qXk73cnF8xqbF!sf5(1WMqFxcy!SR*ojThIIY0aM zU9>i{U9_rgwr7I9!I?jI#O=K6c3Nyw0NDM#_RzY1v0E=Y+Jo=dLQBs*x${~58}#qa zUCMnX_skbQy@nx|Vu{42lNnEk^j$Fr#tou}-CBux%g*!tyy+Tdy7mp0|*DT%oQ=HxV@~l zN%@h%Dl5W`)FM+3iwqmzPL)%#e1b8qo*DADJn$DVEn6RxVz+|%R77D5=G{Km~bnA}k+JdFEdMDd3m_zfUEf0F|v;Y;> zRwfoAH%{wUzqvb4KHe{|21&M*2kQqw#p&b-zod`!zrD_3zxe3G$buAIB({-GfOpFTk2jjd>l$-oN`Jw-4U`s?-N7O!@%Mhu zH+=o`&pz?^#q&oGXX;piTSPEcnN(55S-vrw(~Z>)rCe1ySfph``iVr67&-Qolzt`x z64Z+*S;0ps(Wv6;feBYIH!dJDlJmmfhfJUc2K=v7J0nKylbA`^SkB}EWQlt*L`AB} zQ}{Eaxp0mw;g2_HyyUOOOM;uJRg22BXu!%sx(o{AwNk#)8g`EsakiFLJntlxJj2oL zW%kyyD}9aNRnsfQ-i71XP&hG3_JE0n+C=c(fmRE@k4?xrK-|baAHuWp8WWX%F<~C< zQsfVNC< zC8H_Nv&W)IKf)ciZ>-IY24E*Z#;8d~uV-aArW1&RBRga$6TK<3sW6hm(by7iW>dav ztZkdVZoyL^B^cwe8c?QJrK8iT{8P%MvWDPj=ZgCtfmn&$4=hbJX`t3aHqJ_Fm1@~s znPEzKUUoDPndR!NbX*<$19 zYMW*O9Y%1l)RoYr>p6rSy!AZ~3ceAnoYko|l6ZbgIBdbuT5bL5_{K z*zN-(%QWHRXZ6%4ND9rXcAa_E5~3P_Fu^2XElOPPeGMR}3|KXT-(}+#JpY!#q}F&J zUBRr-6CkY>(~20LIk`PqdqGTd-3Q+LIssa(KuCvyGGTSDo2kT*tfB| zOkqj(R>k9&6qfAfi>gtYL_|Z$hkR3J1EEr(p~`%UK2ZOw>aE0N*pzIWb+m`P@EDZS zATGskyK#~Rt1-(ltikUd)_ON$_!$Df(5x2g$rNpdEkB1Hp(9=wF90$+moJf3^( zz`hz>PPoakz~DyUNlDbK=&RVzTWLf7aQWNq6~$yAKaCHtqU4FO;`oyBA8e{+#W1DTQ(v;tzGTf zrP%T2xk&A=kozY)|5^WbdJwjA_3bKoM@mNG(0KPUOWIzB7UT>Uuy zo;ej&8kE!(gnJT>%PW&zK7stK{lBIcvx$+DfQ^POo9sV96zPXBaW*!isL$gtwYe2G zlJL}*CtG;I;%i6^Ljl$w6;EnBTYCc^V-|_HT|2BnJ074fAQ`U zYm%iyP6UJdb@A#;|^y!d=b49CX`U*>#O)D&`}MvLCh;)xWAP^T5f#}>hn4has)s>}}B1APcF zn%9bFmr8jG)58{JEi12Y?n6%pKCE<>U(O${Ob}c6w%rPoC|)dpe{#~rvRx|P);l{< zZkrx8=g8}oz0XXhm6ZnyK<`NfppUV41$~j8r*!S&W_#WV*81RcOozPR@%?B$(l!7w zyY^`aI(*2~yIy5(=>rvVa8>={;nw8L)z(&x?EHWRFTG)zAD>DVKJ-0Bf*P|PrWDP^ zHvCI)0?!izoXuVRX=u~144K#8;2g$V04@qeCyHzrB27)>Z70FcWtxtuICJ{&!Qo^! z6%qjQfW^4V6INeF9J}R7i!&#WT0L1=q{52McUfhua=rkRLd`*Bsb7Rg&JY|bq+XM> z$L52u=-K_iEz^fR{RX%+(jHzgdT3jRlgezfk)`WLLu|uY_wPeY;#a8`n^kkB(RmrT zDO5?tqW!{P@z~^nFF+9m=(!Lrz4;6glkE*0JnWYXA)J6B&t39PpV2>@`=Ivnwhw$5 zxeRf>7$lf*+=g>-yKFUM#$S zi-9;)!g+b=&vHxZ1P|gzGg0rnsf2QWp`Ua6+@Iwm?)}v{n(2Mof#q+OdPe(&=imR- z!`JV*8&J^YOBeQSF3nB$oAp|nl!Xr%2~rDEq)CYj7C}tGZfXJVWQ?$5QEy~%09smx zh~D0PDS<-ZlwYTWuA1V{>r=p z5AA|UCmWkz(PfMWr(JHaxyi$S^_T#GQ1nGNpy85L&c~1h9Q%_b9);AUs>=_RKx z8T-86A%kd{!Z`1-NKCf4VtDAmLO?Q?ReWczq5YBeiQGCB%&Xhp!A5}_svdDEGS{Tz z1$6_clFh~tb^v(eh(6srB{BT&Y1yVbU@w-Hndxdp6t1AP#_1Tb(`$R)O-k)TIX9VE zR?2rIbHPulyoqTa&(M>RrBBqMT(HgKNxe~GTWxl&t6H773aQP(Ig*4Z#%GUK3X{o1 z;qGD8uX@RSQ(j)5jlgE;Fw&@^>bh1fUf^@I^1`U=k(Ki$A4qI=dpU8`o6v6zj<@K z_DA~B@o_`{d)hbb-bedmy}393OK-W)mA&Kt@|NTORlmGhlAn_-!qpYqD#RuKh$)ZGDpcjeNFad)NLOc5vVQ8!zfR-xm=L<=VC-L3FdU~O>bU^N=jaQ{+ahb`o0J5yL{>N$;J8J#BA4xs$x<^HbwJ@ zXroI+9VsfDRC3D5_HYEuX1FmHbn!RdV|DB)AlAot^rm38ltolIF~`|kAr&!_TiV|g zl1%<|t)Kc~T()JCBQ_T!Z1j6ceNbPBW1&XO)(W+;x38*XG*cjz<5p9*PBy=kPLz)h zTZYw7k4~mW^4Xkwyr~V!hbrVT0D#53H&E z{QePHT|Lvf+4tBtHC0`a|A@-`AHVba`~FxAG=-lO%Es177z?r34`7|s_HSZ-(P@Gz zq{hqEpuRGKPH$m7bZ8!kD@LvWTP0H?SBm%A2zwZW-~$O2xt>vL^h<$N%XKNM$t`Eg z)k-rD-L0c_OZD5E=^iwV`HY~FIPiy7X6B*zv%|(xJ3odvlfr9YfM$Bm8Qo$+Ta%4+ z^MbkeLM89PO9Ob{uo_K!eg9qi_lDJMQ&RS2-71GcrPDC;W_rHT*rae$+363_fcS^C zAEX!DCnugyhPOi+26aRCmDsjf1$RJNMj3+SMgam7dq}^DgaBF9HxW2e`2x;s65_=m zPcROP(>vL&MAE*&J@ilhmj94g{&UrZYJZ^yyrj8+b2y5jNSKqT^+<}{S*Zc^{cE+B~by!=J|I;rVOV|4({s^;7Zn&vIF0`K9ek+7Ggp z)9at>T^s+5(pT~L=XO2k!+L9H{2y-1gY?vc#1DP_ZK+NAeErZfhp6LK#Wi9Urv(J9B(e@6Xj# zL|AzaTe70!-R;;JJC@%jAeQ8qGDzgJtmH^xskk9oc@|x}S?ZU^-J|tl$2Mo%3mdgs zO=`_tC+tR0R)!Q4*Dr!iBG~J`zn5OFT3VKFS&gVM?;26gt~JLCIjhoXHjSu|Da<_5 zJLUsETJ9XbvZs>Q+BQ34>HoOUd(&KyDUyWIo~)VuQ8j>VDy&{yRqbP$>qkb51S=~HKaK(JP$bDSjBuB@YOQ)5^#+iHdcRljZ zOJ8ze-`2*;Qc#p47U?QKMpLON5beU3Oqw`j{FJkxoU?fUrCEni32g@BP6jAZ>y)Z-)>l=GSXgM@Za#24~NTi+M zyF_h_Qe@|7Q))TSe<5FL=~mRZuoVQw@`2W#k({Xq!T!CMI7UAu4WX)n|db&BI_+n zsSNBJnku3hWeLUOX8rzJjE6kr{|l4O3rz%?#Svt_k;zd|MuV4_5cz7QFxzt4Ggpqn zE4xee8`bWMZHVWTC15J6fVq}=`4>vw{Wp-tBPyo;|tx9d6YR`$7E7yJB{o#*_zvd`o3pWpSIA5ro#zW#@Qp8VbISE}`!{@t%& z$WGtS+jOz#=+xJ}e{4cFvd;aH?4IYpG zvW!QD+>|P7Z`QsqwGWf%tgWb+Rk<>25@Xh+0KrDB-N)KZ&$pS0XwR z;mrV4G$<#?ZP>&%yH*j}{C36;vr&lXJUVPIW70Y_gKp7@0-_Nzj>NEtgO1y!W@8n1 z&)z)SHRpPCI}A!=QmXV=Ar$L5{Z3_H9x_`KQ?@XR9mJU+DNo0nwA*+6cC9vu=4UQ! zWw#oTdjfQ8K|8GMqRZRw*S-i&Edl=uZdcFc_!h!P)Ck)^!M4?e&01Qb3{CSy(1m?5sRQZBGa7kFal3^3 z-Y9sT**r*m*E6-buv4}+q^U>^dIL6)X+7>1k)1WaoVmS}>ose8v((7cP96-I{o`dS zV?5vSD#tYq=ruF}X%K+AbvO-~R1M#t1$ zIJ=cAVneL8Z35$A(x)?9U07URUQV-9rO~t$h>?Zb@!EF8XROa;wZz{%sXl{d)pYVXMzl((2=x3IL7&xI>RhdLO`F6d@GU2v&*ARb?pQq5f5vzz5|#evhN zbW2F)xC%28Z>QLjeJ0wowb_AMul=K^r8#nBR^TSS~c&m6eqYtGGqC8#{-~`py#f`e>4qN4BzeP{a{+M%)+&snnepJ7d>T5QBQ(FJb zr=`a+(SoGMvAq5VB5&n&KG&6oqEfpPzU9k z(oR#lvd-QSPeRsh7N=F!I;8psjFrQOsjttj*GMnfsIF^z|I?toNd z61@8Hmr=KK>B8ZIOACY1I7@33O)P%CMEA*wquWk$dZg#~ce>^`Sn;3ESB4TYp9;hHrC+yzOi5kN1e) zOV;@hrN=b}|GlYA?JM}<52W5Xp>?RC9UBvHlOVXn5h2JhNQ2o@l#OpdFx;T^jbU?4 zAs{E*Ett$jDa~HoHIjobMZy?5@3=Oe-^{rEob*DBwA9^qUAcVj%!%XsHuvrc%c%#n z2c$RkR-DX<q2R$h(X;wUS{Faw>Uvuc(;Kd-EyELml!VESssfO;8M_`714xW? z*SqPqnqSFo+BOzyuQ%7I?Mt@~-+W(XvCt{|Ui)tE{;o-XTVuRX&d%gkvak{pVYXeT zSZ#vm>gBpnOxg(QLLuxF!frJk?L9XG*}giL({<@wI zzW&_zm*dyV$?MoNvaafN&ihyP%X)*gO$AzueNe%&n4Qd6a(tyHE4z*?FMo;zkvM?V zxomBWhT}Pt=vXjXLzBlj)Y$!!lZd-OI7SMDB$2zb1hPug!}`x@Z%^+5xWkGb`K%)1 z@6|Y-*`S@FTP!HabUtr_MS{kZg7Td98-1-u_ZQ8oQgKr9Bj@=y)G06U^mJqP5!?Ws zCdYUptx6+G58Y-M_wM8~r9P*vVxyI$u0j!X3B~*h8TwFV8NR{WeBkT6r{!<(29TjL zr>_pT;isFV69JI{HQ*tN-Xz8F7e`;WKpzV1DI=~tgm-ox`d@8M29*IUHKP44}& z+?&$3KgQph<8KvUJqN{da24z^alm8+4N7QH4qyvnwD5|4u~GpsO1Nzy5S=XwTZskP zi*nG>Rb`}ZndkjuF=NQOT1S9`-6P&g{GbMB0r zU(MyJmf?aA#$_YNgVj+cPlPQFcZpHS%;vTK0%2V-TXeHUSoXhqqF!7mlp)BA%t|qM zs5}4aD4MrwUY^=SK*rfD3HIEB!x9{snO-YbSu7oPmCUTY;UWzy-Dw~=3TWnpZkeFVP9z4uW$cJ zye~MWz{Bb9^*^N^hQ-MP`NrqfjR%NJigh8iQ#}S@bO`)Ju*pJXuc-LU`zcW}&1DnC z(|_R@UeNDQud9huMR~=C9}*hk(osSH1L9;EE*T) z59Mc!(z)eBduA4I_fTmaw|Lj)?-N3yle<~bX(fTlNr+jVSI8_HX49z`ty&Xh2Hwc4 zTiX1(8D=Tx0cGq2X8nR&fSw+CbAJ1(T9>}oXYFkLcT)c~m5;ScK3+WfO_JUDpS6#q zZcp8N;bVd=bgvwh-c=ND2}A4jHx^YmT4g{H3qdd*#?l3pPVAdju3cjbifMvvKSLkd>nyhmOnChL~uA=7Ru1XwT z_yyF3x7dXMWa0px8@9AnxKeuT^Ce~L$e6VL$1`C(B4h-z=s#?qQu7!;Bd!0=}Dc?TUAFO3uu#{=Su z(PWUgwax2ZQYa632!{lOA(@ceA^Jov%rzTTAqGo{x|3Z^DfaaX!ZA>8EJ-i5>*Z7= z!HKW2spPW8K;C5vVhx&Ou^w?R!C$a;2FGlY&uQF!nN_@kSpa?W*KK0&T!0ob%q{GEo;we-^Cfa<>{kx5?E0Q9)RIch(AIR==Vnv zaEj%NetZ}{*Ir8+@`?9CKRz+}Z%*BO_#gmqITXWDywyn(#<56NLyp5(l(ERSc%EhQ z)$FRdjxo%l*vm4>Dn421#}lsoNAYBO1TFF^Rv%J4sZJI7$J|i_E53yUr135G>|7_0_`uHf*C%$pj897* zF&Y2a)nxqk6}1NHy6ALXw__=3PvxjuClw=z|JEPw3dZ zozTb?$7yfq=4l#4BhzlqVlN*BHcbssFsPG7q`3pxd{^qCqgq>d_Yg-^djZq%nu65_ z8zaDYqjVw6jDMnpX`mg@~h(Y`m(Gwr{w;W zulrFmO1v!ETPlopDs||<>K;ap8#SRE5SWEXEKZXgo;cdZ z1Sjr&BB>H#B?*A*vV}kG(XWuuvSbEzdgUw>tD^{&7>J!fI=| z>iGHInxAn8ErQn^FsYErY(>GQS1DVBXlMd^>|$?FhCJ$>duEE&wrQ1X=QioA6l}`p zm(TfGbv7iK!r72qcXIvTD!)6v{w(I^^!mq@-yL6nZrAt^D8E~-<9BNh?2P|s%I}WH ze?EE6eZ*E|e*0Q{{VUuxef|$AUpv13gNM8)1F3r_#Um`j)tk-_a92Ze`eLbw1sN^#HKx6#(;z`hcKzB~=ZatxD_PRxVx`!iJi~tI+@`&BtZBnvZqD~MV1{G4WK)i0UN)&x?jR@VN(3NIm#-gPQ zWZN`V-zPqJOn-v1h;Qd@Njp*$!Z*HAjJ5CJ@5-k>HvPL__iY2PSh^seAW2PJ_W>qH zzrizr6HZea6!ZzX<@HmbD$~NZzWH@ezUq~N*|_D(nN!2wcub$8T8u43->8JVlBK96 z_PVGcWvFm?I6cWPn2`#Gp;X#+@;6d8;Zzh~2QG|HPMrBqtJ`;y2==;BR~uY#E1u{$1p;J&N3A33zN&}~b|C`!DlYc_{6 zKA7Fa{s>tjWn(CHDHaCUa{=t|Pg!a86ELV4obol0#PA@H^@(+XmN3SyLmn9^F1d(YiLrH&R% zU!vEG-Iy;})El*2+RvqHR^wkBsm)U?0h1_1j9H^lX=s(rgC9fzY)y!%TlkKG_K$!-^OfKh*P8wtnV4n zRz@?=FRIRla$+%;u>0T6y>w}?9usE{AOrjZIx*hH1hQwtd^>vWYYo8}69n(Y3+K-* z%&&l#2^Uhz#{1^x8$6U!Q7>G^t--DU2oqz6*RKk$gf{Fge1oYc5_kRD(aQJcI6jhZ zbSjswEsKA5pk4eXru@dMmmdCE5 zeXOJdO&p<%G1Uwk(^^!hfKyj=hQd4wRve1vk;xFy1(z2veEK8kJ&}5T3o66hufw7WSPJtWQOHpeLh^V z^0(U6Bm4HWy2PG<%JkaNm7G}#w)VB;?7uu!(msg}K9(92UD$~MOlzZ*MMNHKa%5$B z*r%6gCE>7*hw_%=Fo`A4nSpgx>81 zJ2VTS2N8hKI2S5zHMei8=?1nB39=A7%|W=7?k|;VKih&a#C2$~xQM^0m5u`p5ej#h z27o1#K*^-L!%nVaAB6ZaQy>y3c8Gk|&nx=`u_yKkPWSZsv&vtLuYWedsqWuCr{<=w z$#sJm@IT!d|4C&l$Jc*bdstn67@Jt;G9FL9G4WsJ@BW^$apUoy(jMY@TI$j5ztaAJ z_774Ird~ZMi%(gjC=0F_C}Pf^$9$!ci-ZW8{AoU=;xaM8%{?liW2JzXscI+q|KgWH zn%*%Tm9p?D^AFs&v9`D{GbqkbFCs3^x+IJv)=YQ^s4SGA{b+0B+D4YOl}*e>RemCy zcf_t$8(ku%aPhIGgLSpAfR07*$AJVn599asDdsKCg!`!9r6+sfwyK6*?39~#)r-Y~ zo3Bx`shOamJV-Iw|AdRvO(S!e-c05OSznpyCVh>z{RA{Q4*Khj#9N?nU=Ms@8Y<{I3jN5OZY@ zEN;)E^xu>EhpG3)UEC{=Ts;Lvpk@pS2mZjj-}w~iNa1bWeO=$Vj@c^aV*`bqkX?#v z6MHq{!mK3ep`A*oWE8vqxgHb7UO6tpR~1~2k1JXF>}0hP%5-GAPvs=90GlIpX)$pQqJ`vnzpv0q1Jx=s!f_K zN9#xGvNf|=SZFOB-K5Ssx2M2cvqxGw1ezBXAFV9gbN&4BFz8oEw&LSaO#5K9)CM=u zQ~8i5sYduoeIfOTb}WXsc!#Oh%)?%GFCSGl+Vp}IUq~FI1&qZMKuc^Z3?{+An8qF0 zjF2f2@RHg(j{E)8XD%!LR*_rt+(Pp9o4iA|@$3!m;OYDsJ7r=c?fwe_%~^@ZOZj~Y z@woGskSBKtB?};)>u;m0uX;~AcUXdGQlEyfy0AYX9K;&i`Af>HsXY9k3INc~@W8&! z_0ce@2u??&DEpkvc+_CK^K(s|0<|@h4JtxZ9VE84n6(LJON?QWta1#J{}7?_YP_%M zjK*ce=tp{F$;gxiUW5Lt^q0xEg-6uoAMgS?wgcNF=o^S@EGO^vJZpeD>~;HT5I&%k zfIT+ydb!%KwSCf@aHgfb=79qR&zUJOK}Nf}Uf7sD;A%N56Ja3bGF2yCD^TcT=P8OZ z=@xF6Va2x7IzoXkFu*M8w92jYmD>ui+1hy!)Ev7)wJ>9dOg)n9ufBF0GS$|N))t$W0kTuIfrQmb=+l?mmegl|8CnM^b$SOGWhM6Wf2SeOP-n z*4(Qmxy4qIkRGy5;U^`ubFIK$*>j{(Rk0mejzqGmn7WvE%CLS1&s5;x(yr_5YhE;9 zBK`QO6U`RLpJ-t?hAUnzl2U=OOcUWFP*+*o*sbMCBAucw#8R^Ac)XIb5|IWK2jW&PB9kaZQ$mQ_w=evu9`6S|-VgHL|60Wk&%fEpqY8fLAFAt*ZO`ieNk7i#lvp*_wNI++^1S}e z^Njd;%*)HRPw#raf)!kULC-<)Od($e# z*ty)4^qqXga*gv57jh)>kRuh#xL@p1b8h;kZ-s#YryHzeW{CNWr6m3(ahJhQwc!0HC<4|HL>D<6 zD06TzylB1|!Mp~oiR0yRuuC}2ad1$|VHijruWFa_)rMJKsZ{bEQv--|GFUpk7!3EM zty(ldxe&uCcJ1`~2sZ5K@a)pS59ytiD-^5M+p9r#HnS{vn)Nl`35*)9BFZ^qXJlO11w?z-!O1B|bK9u;zJykPv|>tB%TEbBhb z*-zka-IRLoBzwFC8B?5lm2CR1p0?-;G0Nh4={TM%aRRUjSmCN~F03Nvo30meT3SS*GS1%JwwiWg25mq6O0UK0(Yd}w7^ ztKE@Acvx$yz0|?tJ2e&B>#cM#Te*TSOwS0bTkKZtT*sP=CN8WicE*LaIy1;R(Anw4 zAuS^pQj@Sgt``bU=BPOE{VJS6+#fJ6!mfEC7ks>&N1{=^(DBw}=Bg0GJIXLdEKFBb92k*e7QC>6^tB z0aeSf4AJuHKUtVqu0`4ht5CK?e%Jsu+1P65gWf??gLu!#bOM@8Ee8FuSEt)AnQ#`0 z(q3JItlFg?uuerLglH5FN>h04fnu-}&89bci~AatD_xqHwn}yZs#|CmO8l zJ-+_juInFG`a8b<`Db^JmopY$|H7{8pHO-tzW!yo&e^M{D%ww?CoZMdCVQ#?E~F0o zAOUVd&tki=SOnleq?i;;C}Zs0+2e=L^;Q&3q7*&HdPJrf+e&h5a!thKrV3pMXQEOj zgLwT|LiI&~ygEFp^jW=hUj;Jh%wRMV-qLQ^duyJRuc6=0-31(#krbx zj&Gw2SqCCZH!Q*BC`#!wrOj}%OY!E{9gI+X;W!X5Y0fOptqQfml?tiuxiga^%Zsz4 zVZTyRErL~%yAp_M)srJ7_JdktdaTFJ6Thm1I*t#m?1nAE4fs;5zVfjCmrOoH5`t6A z8k^@@;0dS#gDeT(4(h@?>61Y>ZQ^ZYzvx%%kyPdA&=rFTIv=!jq?~WeO)3 zDn^v`vy_yGjCyS;Ksk>8u{>=F^L|Fxx<+0rtMUCj%6T~^N2BEydE0YT5L`A8< zc=|qR&lf}P1gj0ljNBvKpWoa~qT-0G-1sJrFOP2rC5Ql~2|9xKm(;~mr&6g?cbvL<=_2=^sP&iHSuA*B1We@Cmf+qw z1cUfjrK#fc6uUr2jpT620gAtvF)=3qj;M2p02I5OFOHFRD?GZ?0#G7cTs+ov$w`}G zR6N#g6GMkq8IhK;!g{OhW!$Wr0gTt6zJeG}K=<a+%zE4g?cAK3n?_6F_U#C&eSy7n$ob6cl}*j^3D2B%0!5f|Z8LFC$RCQ8Z9wNdyn z3x-4t6%!JKxAzmDj|&;*UOXIDUsACTUw@lWbybgoSU7si(VH({I&+HmaQMLfxy7*~ z)giK{6FJ6yRq7))?#9z#jmSC4bt-J6a-Ps1Yv}>ocfg(3P+b6YA_8+C+P83WP_C7# z#Q+wX+!#D#Wd@*3g`{#h>qjK2sg~npW~+KP1Kt;uMaEnzU#L~dSzEb0#F-giBiAw6 zv*$H0Ex4{-t^{_vJhK)!KC!yZQM~{Oiw^@15oMtO%nWhK=?e1sez#kM(ZSeTs-UR7 zfXSEK(XVRHQOA8H^~#CAOdYpQNh)|mq|ccc%F<@OQDgLQm*f%cf=%aW2`-SArLPI}xb_}x|f7t^ya%m&zE6+&VcTKf)HMWefU z%AyIgnZ^~!;`>xQL;}x6CQOJ8{e4#}@PDfi8&S{Hz=Gd|CjaM6oW94e9Ld68%`Gt>(rM_y`dFoKxx2 zF%SVz5Ti72=IQ=joGmoFnVb~_w3a88A>}v(4NLU+bm}4HU9)TEZ_t_OpeGfJ5Xg=C z?bUJDg$q?1#cP|{%|=Me!-DAsr_VSmy=E(@wsjcC5f-pQ`h62x zPa4tLRXQt@&^Bg{m1O_E6TSO?>+d5Df`uee829uBdbWWPBgAUc-?(>LJ5xicvQx2@ zl#OIS>PPffg>YkE5u)BHCj@JTCA2e+6;_en<_kxVF-FN0o zb96qVJ|mtYlo`{~#zwGpJT@j|M+UIlr6Z>hK7+g>&2L}`PrQ3OI1yT+Os8q(TCG7gs^+ynFXo`ybiG_qZIQop65Npve7Q6!j@Y}DDtClad>aE(o z!BS{ecNNNIyIFjie0`L+H$uorUR*NAn%tk7(@v64IGS2{y2Bxu*37xQrn)#vXTFIF zjbrd?Pu}&+;X{pD9J}8w+_uv3G|HwGZ8WVXyf%}G?%F9se0erUt32T&M#Jb06fW&7 z*^g*+CW^LhH1D9l2;~BV5tJyf^`OJ`I6N$vYnKa=|Er1*D_>)F(sub!Z< z5IRax{z-cIkZ5vbE{8h>b!H0cOgau^#jAs$KW)Fs5ez15hJ++jEM-=e<6Pq}mf+>V zZ~hss`_%5|h}b;#4ezEiE+{7O#!#y8K3?<;yt&4Qf9eO`{kFF}`NZSj^@_(HdFYla zlcR?Z%?u*SsqyK=^pdSD#x3SUyjBu6OAI%z%AQxIN35;*T{?zs@dE!0E0l|Jzg&!^ zb|l#aDJ7M(!}JoC4UgtqQfMTKa1+$-)K*FUqC9D9eQM&M8{S~0570V71XmFSKwmT( zEwBcZmllmmHgMa>J19n^Hi+*I95Qa!NSCUWVb;fgKs3Wb;Z{7<2SOZn`MoZ6>V`36 z6U-~(>|1)qZ=&O9XkuhuQiXL5sp%1oqob<6>g1#Sl$KG4z5-|U_fx!Ncvi2But(eY zImD`nVbar9vly1zep;ty-G`>3=x4OK?&hM4p~REf#0|Gt4y$Ith53eV%=9N%&*?z( z3x)D9Tke#IB0f5k9cUD#ITo;t-kyxTkjqymt#(x%zNb<-Ra10F>i&t}75R9an4*1tlaVTodLWj3R)CtMVw)}BXxChWHh9VL=q0MB_r!I zT@0mQ6l#GrNGjxr~twe=eXTO8epxJtv z1V!4xhIvhDp#2l=$UXt0 z7yFsdcX0c%_K&pJQG5DC>cNTE#qPPpIrG6V%SIHqa+e8;B_}qvgu^hLj3n5YOc#9H zYPznq!id4k7>KziUVZ-TfqkQ)va3U7SBqd!U*Z_4f5{JVypz2sT_wSHN!&LXs%+}S zn-{qzrsi01-}0sYOWT2ZTKpj8Rw3gav^=3rqbC(*j0~h56$YSPa%dGHpjzOkm^nCk z_E>^Qu2*O~73_Vpa$w}ryw!9`&LD0qADN{G)?2SQ#P!9pnp=U|D*r1j$ob8d;~sFb zwJhY0IU~|3=w7MUJIEdE185IP6wlE`(4ZeQYMUORRmjc;>E50Swf3}vbZG$qvDCb? z$FFS}TK{k^Difk6b*K5QN_AgZ`myM#S8dm{-v!e=A$E1=#F<4PYUjzV;PlHng@k|; zi6JXQ;u9lFoc$&@6VAF8n%w;|D|GWsCypICyfCL~4uSqDIWD45CK35ZRF7F6vwsr< zmepbbM!VFCT0~hRQ=J5{9@L7;qnJ(YcUALMpk_w;gsW5ZNu(-o7NBO-D14wZT(z7( zFf8rKq(?4IC30c0cw~_wmE80H(Wh!RYH1NXB!pkOx!K83dysfyP%7(1!+v|iteh#8 z={9wA3}V_W1^LxXrtgkUY&KWhMSAcq2fa*%z9ux?)^hHD?6fL`(ph(*;bWso?0cvqeB)Hi$45nnA_hy>vl>Dsi@0d?bmuTsMxv*e{Px zN0CCgegH2R<~z8>P!*t3^sXC{GM3=<{?xwN`O%{A!%Co53^P=$N`XxkGx;xdG_D;C zS&{X4(O9{`hlsg`>1tWe*Gun@9A4(lhJ@t&2 zPNc5%kRXMQK9dwW;)G8snZDg=c4-RH-Wda=BZ1@Z9`*GflFZlf)Uo!iDNEX zQN(T%t&&SBT*cDw?B1!>qN3Xjz(pUtpNxbJTeV*=_jIS$2urmyt=zyya_Tvt%edhb z&E-y(=~rUw`D}SqtEj3`rC2Qb zbGBK}E!A4mlLV>-xaMr~=Fd(fF)7GXRrW7)DEmeSd`YDU0n#^f##8!zn37VkNRjA$ zaK|mHmSwUFLGg)}cOjz+2h=)Oo;>@Sb$r$K^V&xVx}HFW>|=68hR6~Y0fp?cCL|mcH$*9m#6T>( zSx_Ua=QN@v2-+LoB%X|a{nMUoVBEy%i(P+1+Nt05Onr9TGNtPvGK5nQ+vf^?!jWLk zmC5HNWht>HUQ>r;D*VOPi_e61mOk_7!LU$Yq`|pu3|0a^Z)E)0$o591QahYC{XBqX zGJA!rMmsTD4N@-|LCN6dn~P4VK=o9+oGZ+~;f@|SV!QO(Ylzr8I%is7MU4 zCuOFJ(BzAKqtLm^$59`L&!;xlCqTVI079PuD#S!hJB6{8FBrb=R*64R0ElU6IbCqu zCwfjTTgwFx-MhJ$z-jrw(rmj4fVgnbDwVC071YUQ5H`*1H=X=T=kp=Ce%|Aowzu_T z+D~9E{nW(0b+WN0w9PwaDSb%M>nbdT?iTopsAh>ysT7HIKSx{&J>o2U2f4_HCMAMp z8iUa|>=<>^VVwUPjv!bdX+arh#3-~ke(&S2y6>LL7q>RMZ3RjiZEVC-l4h@nz@%p> z6Q_uAb{|g$5y)hA)i#PO*AGx?=i?wQo-OWHTWVEgF4GE;^2wv z@yy!l+*l$sLv~H_o|s z6%e@Rj&r_IqT+e694)wxSE#S<$@#R4q6&w_aO&C2X152;P1?Fz>2fA)Ql>cAIN5or zLU*xXMO+TcEs7Dc5v=mfKKyWG9P5YnFKu|ju0;uqoMARLk2(|YX92zk~TcZ`N z@xuoT2ABo1TF?;{aYD-Z&fZEb18;QRn&lL%+fGD+n}p$h$RvDHXK>*_MQj(0gQv1K zX)jpIFsod1fr6U}kBH7KLNX~5O z=OVWNMH@sMb=;WrmC(I&vAs4+RK;PF-b^2+cWG~wKHN`pUdW}#fcp;Sih;O!vn)(v zF-wR-m66A&2{A&jZWyRZ6I2;3lJ7=?C;bGgUz);r*q#(;AOMsCfDT-JbC>I4yhv6YB6MHad3^7O2=`n|A@T!p9>gI5s zvWkjTaAtd+lclr>FRL=5ZQV?9ahCF_GSR@-3wmRyObD?R=xX_pn{a18T%n=aivqEZZTV#0j#POLp-C zV2r*D*7YP2_-7}%10`Kg-%b=uRYSx!Blcq|E!mD(tuS4<8<^oj9%0C=#ezo+@L9~o z8xB@V2p^N?MJlv}77`nC=4*|={^2~Aft)TqooK6_H$fOdI^3uSYvS_&3A=Lnx=_1N!`a}7Icr|D28(Lz|ds^x&D3)EjwREY3u6h!f~oH|O~8T;Bxa;-v% zLM^jYI<;wPtu{&2nb$s)cfqRo^$}G;SUfOBq(_acQxAwG!>dOHhJ%cCossX9oQmn# z#m%FBJ6J9i5wE$ccULe6WKG{hPW1Eoj}W)NntJf*O;$@zQVfITToI*^R6UUyiBAI@ z!&K0A&|;G=3w@(8aYRe#@9^@kV3Y5k8!sp-wd+DDQp*Gp3F)&)18KWx9t($2wIi>@+ye(^O+(1J;ZA2tGU-{Sao)75oex zg@SysIecjY{3~d-B3)#$t z-b=@;2j)8Ip%CRb&S>cD%Wm!4+-!GNbaUX{eyEtO0@u*yTaC3c;M06@X@n4YBiPFy z)LwM^VK#@~vW(K(@PVSKPoY_t(xu1T3<)-5BN#LScR$^QKv; zp03e302*})#8@b=kPSra}*9_Gk$Jtz;9o3?)RGfE}r;cII)Jb8( zNKMpKNDKS~FEKv(N%|_57*gHLZj~<)^~pYsHMUGFxHVflM1+nMsxeF2%AYwp?CP+# zHJo%8o8RnqYUOgNS1iu;tWK$03CLMxom!?xe^jGnl?{57TZ24Z;O#(z09S_{+okdO z`zm>eHFa}y|LP28DV&y`jYg(_v7ImN?d_f2>RU86&+1<7c;#v@-!y#JJvu5ox6Uos za;*iUv3Fc9)5%%M`a9uxdOciA7gG18=%qt*C6Jz`zQooANiEVfC1Re0qeuox{|bHI zG?0SLFJvva5La(IfA+}X&GmV_7G#e?0E)FJQ##rru*b%WRx4q=L-{RC$QltRVPoqap z)^d@&WLk)fI@Z|lbV{{Tqgv4*F-HrAansVPnHgFqR)=ts>IL*+jvjoOd@0;3Rt{w2 zmC#?NIjViw&J`Ux&(drsC{SdJ`w%(aDt9s00MsUdU?Hb&ow#?=K%5N#h%AOSW??8C2YA3P&T1s&?-+EcDcPK|oM%pNL{^ zjyHLlb&XF=dz!)o(X4o9-iY6SnrAHeQ>o(hDn1>Y+yQogcCU^%Ik&6;%WHSC-N zdNefb`mkaLltbelh|$3}mRVwA0ZmLqiW1F`YU@lkY#4SgGCSnW=;fT&qV~+@!0hNW zNzz~C=380N@|G-4IWzBe&hFn& z-ww))th@!`VpO{6?4g_wtcIQ{)VuJrR8gfVW`1#H&oY`w%Yi-8Qzy3%YVX(H0#n#4 zQx8vatp*?SBGuSCojBTn#E89*Eu&g-G_DOmb8Gk%({X9ktpDHx zcV1oHJ01-O%ZiyrG9E029GMVfMOm55zG&BJM$VQqCWGQWZ;_0Oj~@v;6||A#$GT$T z@WnrDbrN?Dow@|H=3f`9dujbn)G^~{T6RENdB5ZsbqeA!FAIGq1o73)dzRL#b{?kI zJ(mZ|AQ65l=E;ro$pO)V#4%^)H~rD-if4L;Jy=UqP@XQ-?cX7mM%!zmH)UM2{CFn+ z+9stH*trlHLA)GzkO((An`ncqU5GmE4!g*s#TaDa5(jeYdfAHlA8u%m%nsH_a%)DuACWx%6@1|0 zG{DXsgyq=wk6w(30<-DC9~HcSG*G2h^2+H}r`j;?J5`5lF3P4KYCct4-P?YnS!8SH zi|FWRUw*aehCi@a%37rpCv{^Sgr(wAvTG@`ZHJx7KeRC6(qA8$YI_PQO&1ghe-QwOu3E3){tzC>^im%psW8jt`g+R z(p?jdRV(P{j2si6&U=kac{NX`agsFUGT-Gc$t_yco`<^|}Ma3E~m1TK_=qvBsRe&=LB| z`Fe0b>X(s2m#DA(sQy8u$7@sMU0;67>3!g}9w=djUaL(-24bP2-gRi-70K^4h*X2x z)#>Z(6EaD=2Z_b+yykmO99vm}wJ=&R(b8C&IKrb5TUg|cG_GLIlq9;Q(B;q&kzk1W zvSBTdiH!#&SbrsoFiqn@apnYLAOW$DN9uZrd!{{<4+}=ooU!_DiAGHhrBRu~hG!JU zw4>VqxlX_AnxI{TyvL;NGY1jse}a3}BSkzbVjLX^2*{0kMhUubQ_mm6*w-Ju-JvIw zzSTMI8Ra}?enu~($4=iXKJGb{p!Gp-CbM?;++g$|2-qBb)FU4Ny;aCK^s6l74hWTb zX$X~?Hz=GDqEXm^J^I|krGPpzz)xBgDph{tOg>G#%CwrnX5>_)RQSU7e+6H4YwA?$ zKpfn^2Bk`Z`YMnop=kw{y!JAIyc5U!T?yociNM-aJiI$Tms*O=E#j_nYUS9j?O~Fc zPBt|x27F6hUJ{aj5Qn(RMukOBohHU0iDP%U|B$bs4SMLgCs28Y)xg~PdBML{Mh&U@vK=I z*#5abL>PwM(Va5BJtuR#w*)(i>9+9E5o&Wr7cjGMh`SSsWy0gB-^ z6kR1cvXai+vM(rG*}CEMZf>TX;^aahmroZv{!7Ni8MCqn-f*{AYR{aB^8NXK<`fl# z>Dfv#pIhh^9Wn%%A56k)Qj7GpenaXAK2^@gu9%;xk@%G}FOeI{k}>QBrDmFdQFgMX zakwVO2uPzD{*D*C_VsQQ8}rCvn$It_o79NJp%o=qnLLq~a-P-Kj(^W-t|;Lk)ZU{p zmdVssNe_P1r^2Sz1wBPD!_1a4A;v@6IiAmcl4Fqy%?AuSR0wS@=!Ax&71a@b3vuoQ+grV z?rFcE{UZJBJVv>&ettgzNZCMdm%t&}T8(B>V5BW+Eh}cKW!`l9y@o@j1dY<4d~`rvd{54e4Q+tR5vZA%uD&{W1jb|@f>`YDICb;{Sqf)MTGh?; z=?V=r&H|~Ivxi=Gm<_4H)AdmulV881>EOEZSqp=z^=7AXN39Z>PQABWhWfdnKiA0m z|6tubFxR^6?9oh~7GngbTjdP4f#-8p?Cy!82@Yz2I@ZnehhK5b(!Oh4slgIK;>V8q z*^wwvof?>VuwL&0>2+`F+~o8E5->o8oI1>XIL4%L5khEAg3yG{i1BfgQ01$uw$cB-A0T3Z2~zRDqq7`VOlb~gRSrq?@MK70rqzN6tUHGA4!#h}yzMnkz}t~fIe_xe85 z%yxS?RbW592PW;O;!5I`e#T&WsU((vG40ce)-qEKU74z5y@u_M9cAHMyP2mNxX0FFs(SM`Fg4?6vB!9GRB8*^T~epJi_fxKNq+#KM^#X*$NFUrpV9V5>i)KCm)?V}ln&?;0kY65N|x zi07laawp?hBH?mdVmTWU(ivPAQjEo2SlLjX0EKQp9NCuOV(ZODm(1lQvihZVwzzlf zm(l!b2vu|)vsbvvFc~P>%oLXWe$UBu2F(H4Yj_AcTD9hpT}=a6cD#(UA6K%rN~?OU zSj{7#h<6yXK^Z!K%nqUh>8w<2(oit$g~bd+M!9-H$EHV)XDlcSRKE0$+n?4xsXv_h zzSJ+penkENVH55A6ORYFnL5*$@HrBOL zA~2-qDK+VcT>#iz6U{TS<8_-#;dqbk*f6q1(}Pg-&YIe}vHK#=)aQ*T|k?=cNEKe5Q0z|6YM3>ENWA*7uYqhgp z1KxW$V^RLPVY|hCAdk4%&|`b)P1G~|JutoNsk6__lIT*P8p#|^!^+|vDOXcL9RZ?p zuB4R--+)OX_3x8|cGF!SU)$U3MpC9EnWbIIP^Mq`Fmg@)Q(98ZG_T04ivsunt$V_m zAn(Amm4j1{P-SU-)t704Ey9MVm?AsZE*z;hp&mLtoQdwdH7I7Nz$(|TaCS0uAQ_&V z%~z^;*LWC|?1sI1DHvRGi;_ou3jE=ZgFif-I{eImx*Q-ZLP0JAPnOSwJ*{B^#fdxM z$y~*mRv-|HI6l5bmSJxC;o`VovcF^p*;2i2Z>W!{Xz19RQ^P=FzhW5dG6VU@pK8)I zSEI2FpNR&9lIg_afH0^~n~;^}Jm4m2XbUfs*M^}9%W}yM>-kQ}^RJA%cULJ<=CE63 zidk(BIe~{&n#pAHwX2v$w3RUF`jDk|#-NXUaC6u04%6jy4XPME>`$Z``U&m((AKw2 zg1ZkcF3g2RD!JK~=jqKtj6vpwoP$9;0d3Db#4znCquUFwOPSi8cS!wvRZVrOr;WYYQ_~D2D}PEDp*} z9nrM}G7hi6l@jF2?g7B&2fY;q&%)!~g4`&MO(i@#G@pq$ZW}7X0Ngvy(lF%_%G;LT za6arb$5mELtyy|-p{U)v5M%=aBXCS*or>k!5dq|eoo}0NSsV9i&Y;vRw<$2uN_bP0 zbMy<@98ODMIBWA%$5!3kgDZQg`-v?}0fTLfE9qXpMiENW_Cu}aXBMjEY;$foY+@`x zA1if$^?=ZsYt*gGzPU1=n0b2rc2)Z+?RAKmtx5jSVvmkph^IR=LHP&@_BHXk+KG_fQd{Vfc^vl5Lt+2`~;hH>)q({)dIU zrZ*u%&FaUaVy%UdLK{b9mkkyVC{M=VK-#Q+V`IULKrB$ZACLht8hWkej51CYhmKf` z_a`|p;pysrw-Xi3Cl3a#VNWwL)XPhk7Rot_4x9|30>>&vMH-i6_H=UL(%tC0VG$=(A8-1F(8ugch z5Nt1f*y9toF%pqHiftn`Ju3Q1EJWWyk1~-;ZeKlip*dbzcl?l+fbG0lZC%b)`t|(d zRy!cJSw7b#cB|LTbH^Iki{6)>>t{MzP*nUO z;)A?j|7Gg%-&4uOpqGfXnBlJJ;w&L-G93+Y(1nFc}6y@ba@i^Z2V?@$$204j)`!Eh@h+ z27JmMO5%GvDdyPqjgKMQ=($__hb{sdy%cBu6h(qpt|Ft*?8(jQv_0dE=Y7^9K9+u1W0^pZLUQ zKJf?7JbnEJcW~7I|Fpr$S|QXWw-*cYuU!`Zx8o#efAWIr{O`G8b^hP#19RsKnFD_8 zhRgwUf!KaOe6AwH|843ow6#f3PSk%CDW3TfQvA=6;!_dMiNb11?4T|Bzhcy71h{y; zK(}cT|0a;BPeF*Sa2VIi^%(iT?;G6y;#&pm8W(!Rr}5kT^OKEl@R#L{Lj_AF_&O~^ zD5mo7|F7TwH^1_+-MU7Yu>ZCl#o>3HTuJ?H(pCT$zOz)%^FQ^sQr|uD&1Rr5!fup- z()N7=eQBgFW1n?6+fSz64L88MCgIYE(D_gP=nua9QQ{5y`6pgU6xK@gBSt7LnHZrs zUeaqjA^%A73-cF&6TYt&I0ix1sF+vvnuGdyKJ!x5dg0m(U93b zQvDXpF5l35L{F^^LWx!lRIEUGEbZ@nJ6ff-HydO!wUY{G|Rz_S}s}UjJOA zwEyvEKJa7H4Hxrv{eQ6GV*KjY+;88x4E~$gh~#~>x$wn15$c8SD0%(@%jY}Tqjr~S z|F6A8zf&2>mJu2FLH6!1r~dI|pyb~JY|9InHb3`wf0Quf&l3gyC?!1U^!a~GQBSgs z_Yzvf#e4!L6x+(u5fLIgJN+i)9;_*bYFS3&QxK6V^oq1=OjhL{g;W2gZ@Oy|ec;F5 z^RBnN`TM^2iN{~@vWFkK^QwqRG4O#%{7s3;7$gwO*hIP#TH1*eh`S5qg}tmod!fpF zGERw6B{$`rtW&x=is1-fL&kn5JJvU;jx24R>U_)9t6owCYnGxbFWTvU0~^&@qA@Kf zV!lDF@u!iq49V4pX{w%U*|khV@-r?SPRLL^w+-@EH|4RDlc?*?^*xB~&Z@ zd-UVrz3B_2EVRsKF$_!Y5U3HTZYOe_`nnXL=JY!^Gfh9*Uo2+mP;jCH1-EuGOH2@z zqT8)|(q-}(@arGV7u<1YF$}x&=^R~QGkK2=JP+ zEy_%H|Cv_1O!{?gC0gv|!a4<>{YUCfPV(1qXYbwqeZ8*#JfB-?8qCxisK@<5{pr+$ zAn)FhdROX)DLpz%{@_%R0{jj@vnlJz0&_*PFp+)IeorDKT~Wu43%n6sZ(NwVcTEv~ zD_?UoQNV_(QM~SsyC&uDe)Y>9x&Pjm+;!(2S8uy~Y0nb<=b_L;v5L%5n>3b4h$4yg z%AST6g%^~hQsLf#ih_=at&wQtyZQ&;kyk46w;Bl`0g1*7Q?V9V;Yg$%PvN8_;6Bz& zpdSA(XYT&D`*2_86tDIw3b?%<-neNHcGXN$B%nWiG1Ogxc0-!)pVgN~zU=k@x zA|;BnWt)_>R)m_5`2YSN*jj#!HuaBsh9}K7e{9=}T>F4$bgZiF-w0b>Kcs@kE_ahD zY>(xopivrviS=U*a&tq2^$S=ft!VsXK8XGv`AABhs1NlI4 zj&LAQq800=-L%6i^`ud5b%UV(Nvjiz%)&$i+>IkI*zw;z?cFnfbv|9qni!;6f85>} z_$HiFeg!Z~=*n8TxcdwGLH*CNRwVbR6C3#F`j6<}4Nv8xg|A=w+LXN|^_N()=YZy} zFOY1OrdhX->9b>Gre$!a0FRHP_*D@AfE4~DY(w#@2dXoXc=E%15RQq4zExE*!q>{H z+armPQxQ!D8@$gesM$M)ie1RacjouR{)-=Z_~!L{udG7$*>Id1D~h%gYQB{&8<9rI zx1}rrzGkb5A*?L|vs2c>{z~FEd4U||upC#bD5omjq_qDtky!X1-KptT9YDeCS1Nw5 zmAci~%bLYQ_CPA@bPqI+(+qqPh!AO0AfhLUPA-6;Bjqo)*Qed%XA`UL)6UKAIJ#4O z>uLRcv0pMW$YChZArpzE?Sjm+v$?GU-yb{|XN$Chq{f>Pmw3L|86?%U_Hk!6QmOFxAwT>ZNBIpdzX=W=zkRi_V*S(r&V|AH-Rubb)C%UC01RXD42Qi5Tb<1uQ9Q6^!G*? zfK(DKKsZiS1NASlw2VTbD=inhsvCIwZG-p6aarNkHw_lN{OI99((ZqRa(`I2K{cU z;jzrdc`67vvS_B<5}@8|Dn&=52@8!Rt(;MUM2stbamcHeMGwt1k}NXvyc2t>Ea@%L zNXmLp<~TN60+eY}I;pH9VQRC>xVaKfx|3@uP5)bUV|fH?AJ8ZV`7tabah?+@d6vs5 zGPUJ6jgHS9b;~_FsoHuy3yjPJPw3xO-KiWpvcTe_DYO*=^G^U^SU0S*HxHz=z<6Nd zWJ!gMn0OWHjUW$vZaemRO*3sTK3XYhCqJ;=`)96GD*vZ{e5>g%y>MD;T2nX+T{G&s zJ8M(|vW;b1VBOeSs%<@7OPmsXyE~0bm??pEvUB#6Z*&%&DK)H`O>=M7GAs!sWXeJN ztv`6Ex;lRks})QQ@q#zLFyDCiW(!@qX8zsX!b(}6J9OZ!?-BX+?C!tNzn3~;y#O1? z-fPIChVmMD_OC>o?H@n4fBg64I5K8o_kTD3vi{Y=uSw5Q5m(vI{<+V6?8C1=cQAo- z;zwD@Lcx6JK|Mb>(`gj?Xd0`(P-siKGS_3WFz@WZ_xAI*>pTRewSOH;F8Gzd@$^%t zcexvJ%C9$kYu(>A^mBR`(UMe}A2_sf z`j|yadDEnvhSa-lfP4iH3LlA|P%%l_E`3_G!#9DHwA4s37V6!Uc~&yI`b{B7->PNA!Qe|T7Xr(?bfSaG_;QOsF6th zde&=}>c&=*dR5vl(`~`RTpK%?S25>YEqSQe@vp>Z4C8q-snCwnpjseJzHTqU;H*dO z(s|JJPL*eXDVNb3$6X6Hs&?d5pcexjP@H_cbvmJss@D#pWjnl3w&&VL3WWGyPwp5z3>GM+@N6Oi{E{c zg0n^7^W7Tke`2Lw`dV`53GolCM;{99q5`~JX}qEY!9j_qGd8WwfNJu^~7fp$49oN{K&W6L=+BtO*Xv9f-U9T%=Wi1g`pW1Nv59>HuV$EV$9j;9~5uJ9R zT&AHqU?;Nyk&)+OidhTBaJ5$w;&A#D+uDJY631egX4SS2jethm(X{O?whj#416i$Z zkYO1HE63V{;;`1rs$Qt@23q09?oaD~r2loeK@abQmxs7Jz?(`6-n7h00_mmU5+l(i zwxDodO1?wI^7H4rRn0J8A&Drb4@mcqHtGBY0^vA`bIo`-ZApV}~{ewSP zE|;9YJ6bRvJMby##m4jen*K+|8GMgl=cyU`AL!sX_m88))$!Xp{Oa!C)Bn8w!{~a7 zU>T=gi|?X}V)uL(t+2lP5Ajoff@lVH?B}p6p27@KEiQXXSO8)&74QS=LK0h;L>rQoCG0x5bfzW$yk z9zU~laC32fJSr98wOvwW&+NH;Dpi*}u^MM{F34zQF^bb78+jHrVn2$iRVBNK10aAZ zGV4?wTS7~-?-6=>ousQl+xswWOLvk4`y)H+46Tekf1FcTNy;0ZUroT<-qY#&kz(q(1O%kDbjrq#e$S?b+99v@CE*xvzDHlFUAH>=i4y)%g( z^$*s8UBm3*y-=MWS9_mX+CE%bq&}DRGTi;2jV?8&Iu+IVI{Rt;e_}uDpsD5cdv;P5KZS$2GvT4XuR#Otbpx2tpm34ImNT|!ENdf5}vf_@=_B~n&NXaO`bNt^u489XLa+y=GZ^Pe)sOzo7} z80FYA$5s$YbsaZ)I)%H6tm0}q88zsSt|ejP7=1>5=8ET5%%ld$n8HQqC8$!O56`A1 zmJ}2wB{$JEOqPgJoRY+U-Jqybd>UwHj^DFo6zdbm>||P*&txz^gdCHaG*fPcrOppc zUwm$Bj7uNU27qZd>(a`@Xe6OI3FCJcD~pwA;eQ+x?E+y5vc2f_uQrzSbG@NCs?|Z}rixcWqU_>sU}ORaT?OPnnZPc7Id9SN{@o@=i5JAKLxf`Vsvnc@5~4 z^M8qW=9~Hlc>O+}zFzo?yT74-QvW6Dbe^N1RdDJ2##~o8K_s9oLYmH;IvZ6}8q3{Vz40TrNRLtD?WR2o&0|TW;5>m-|!iaF~vVOVkKcQlaa2m8?k&;@{Dj8}XH( zR`Q|-0Vkr!8ftDB#in00sZ$3lSTs&kdf1>A!iK%?tvB>Pga2jP;C^?qi~j2H$g%iR zT%QhCFnwv2Vcnfsi`C&7yX-y$nS5;hOedP!W;xP}HR#@ByK-UL_3v|<@2(f^u;vHt z%y%1I>x1pozR(qg{G{ke=0iPyCDVV41ITpkugSmctsm2WOaCWy$9lE!Lxm6Qqzjr| z`1JE=!YlAWt0=R0{(Y%RA&$h|sDT04NwCX#5Z~W;l2zpxG!~vpybqEnYEon@8#)yx%Jg%y;_kl5pI>t0DDU$t^6tzh+N)O!Cw%WHHj-%k(yOb zi4(O?j5gb7vQ5RVa;6dkV9vRL+-Xbs|7wK@*r3Xda=$BIA&gKa*&$gfQx+7r;eWog zQI-8?TUT2r9BXa9d8lVEMqY8r>q*aG7lmC4p*+srR!E4w6AJAVMwv}DBV2Y4>A^wZuS=jeI4S_=x(Yp zi3~qfhnA}wFO)A#YV{)@Uhj;m5P8B>u{d#3j0Bx1Lug$VA!x)gMBMXpQMumjRLhnA z{4l6nB`CPf@xy`sbuZlxjNe{!pVM6bL}&QOa$2g7i|dpt5JDu3a^JD)c@Za6%+8e? z#UQ8^543-=-53^QxV>3N+q-{X|DyiAY}OxO{b=m-zk;9tn}sI}r*@8?#O8bS$|5DD z$YT1d!S{nMCVq$-mePNf%E24go|IVgy|*5}dHwj&)#YYGgtC}ms+LHeyn6g>Qk%9X zx$c#DlqGQr$55CwST5?2Y*S?%bFI2c_$TPegGx{d|qx;=H3OEY^n@=|F-+r%1kSm{Qi6G9C-UxQcmX(8ARdj4gAJyB;=QU-{;=@o+ocz zzHt8BJ$Du7piqJ-Littv$ak;!TYLgh+S6QwsP&;_3fp_D#-5*fRBD;1?5j#RAxk!e z7%E>)`2`9B%krBoD0S;R5nn~@%zQBwPmvLLaFeO_pJ>ZbFT?xPUkne9toFDXEKS>O z5aP~i5+=pi??W3E(4)g$(AmEY36oo zM5+-M2=EUSBtgVNH!h=x1(paMBd#8~8`6$m7@NOp`KeptF=9al(xN}X`zJ@!xBag2&fb$fC1 zXR#4lv0*2|Y0Rg=KcwkA`O?DU*gSj)aTW70$P&Yl6!vTwuEhSBOU&6fULt?|f5DyQ zqx@IiSw7?%&JHxNs90qvISzj9f94O8n5SGuyA8rX`zKqac$DbL}s?aBHS1)ZW}93sYkMj(hLjTJ7Sz3dx?T zSZE%knTnn7{G-5aZeTEZz09AJC}CFXQ4R+c5mg>`e?hDI8)01tVC>;$1ri~OE7>hX z#$PHWv^bbt|75 z9^IU*L7L@3!YjB1+7^4X{_1M|wc-4@f?_KYHP!!*<=(|+=SqiYtn72cqGNdTXloGE zUO)8J1+8oaL45N!maD<}zIU(b)Zirm9)p&Vm7&Z&_VxAMw(*Mo$--B)U&{A&_4WJp zg8fn4ZldwuaruH_pO-ctvz@bl*8Ik^vPt&Oe$%xQ4A?*WP1nlK*+2UY*M930`nfxH zeVcfIc=qx_fMO+FUf z(YOCLlTgODdGDR^w;IUaR)3@ZIO&zH^or!ao%G9J`uLmAJ^R$Ht&Ia~3ywfH&{%X& zLfy>>X>;u+T5KwgtzzJqI2-oVk=kvwN0h;(&We_F)DRTv>`GGd`*0@NvY709@iF{t z#_^6al%I@KyE@;VvQyUG|&LDBN=wm>5Fz}Ym6^vEq zl)GkJ`J7klV^uFUR$9JA=)(xnvRZYCWgbR7mT})r=WHUHK>aFNt=&HbZ(OzoLA6=! zYL!yW=`^s%X?x3djrA~H4a)ZhUYZ55Yt<{3U1Vc8<&dKFUZB13!(nuoOuyAlJMJVZ zy?3q+bXPZ%ATC!Px1T`A1^5d-Ok}!N%Ah7|*4D4hb)M9YK39i@Q>S}zcsXr;AZs|) zNxwq3*a|xq#UK5{-aUWYPCHv+S9@Mve+jLw|$lMTqT zDe)^_YKpG?^zMViO1@C|!NR}I_hj-a`+FMzhko&;%b)^gn=zHc+Qn^D-i5v6vVy;9 z_|7+tWEthRZu5Si-AuE9u{KMP&3@fim-Gn{M4XIK1}B?Fr?Ooi;L+!t@_+JOz>R&| z8_0T&-uIoaz5Cda>7++f1Du9@ZS5~a7LYRAWW7x%tX=0Izs^GJ`AU{4X4<2s@M5xfx!txz3`85TSk)@eSFXB3{a{yYv)J`tv*Z3oLN66uL|Uy7 z1b1;9u*4i2h*&Tk#3OROVI9aJ@)evnflkvK7sV|0u~#~t>Y7I!^BJJa*HXK z*rhaBORQF?9mjUemb=9pR!Em-x`2?Z_4P>eA{-KuV6itb6N5G(Z#L(yetx~N1Ed0W z!?9(wSgKA;<6UeTE!r@zmLSvvgamE{&gc>-8CVSnU1+WsWRZp#Pc~H&Zu&`^U6f!})U9v=+>E>tM?sMd@7gUEnHcQ7qw| zmv;Y+_6K0x4iU$z?UWz7|H8_s+j3Ntm{@LKLpqrIwG44mX{4utPBH>sPdsySb^0p(8X(qkX?+=4|KjxA zXC1PBgCdfmRH{|!D}4AkCRUV`%c~3SW^3chpw!Y2q21F{*?7I*?zL!)tN|G_?yuKQ zR;)_-bVy@up;7pm-TzmAQvWp3&{qpTotJ1A>5-`)YnDmcKYR};Xoct6JLc>iW1otZ zIK_~bNR(vz^5QSF9I+WgdtT}v3lOExk|CSaRuUr=_&;(6bdOx&U|!l%Go~oKDeipx zRdhAKe*OBZ*I#|+>8GB&_uA6J{B$^|Ro4A{_Hy@Y&pT)8W^m*QlRDkA{cOD@SCn&E}OYye;Zvn;j}SGuFj)g7dE+U}})o2=r1N{1q`#6nXifV5+Z%O}jWa zd`j>ZdYZ0!-ci~VKy=@PDGnO7I41EMRZ@HXP&^Tv->%6Tvxx>a;(unH5P=_=$Llx?9qH|W}} zn$OLHrTDJEt#pcqA8+`=y{w&X*ei>}6GdAubs%sT$l2)-qJz^1Cqqd<8pPrX#wvN@ z4J!6uD_q@)UVVO!KlCsG9!0<=CVhoDCblxu`MI!_bO`H5V9VWPBjAUn=hhMh0Fui4@{FLCEnx@$%bH+*_ zat7>!Oq7}&=8*~h2Ub|#To7iWW}~$bjac(=8zH2EG{Fwta`kNE@oue|g{Lld*0uNg zamCZUS7=zJ_pE@Bc1TP4NGn#4c@7LmxVdk=)2$q=v`!@*BdNvP^R!Ew!)z~lE!_+k zdPn-!(UTWWJ<&Uz!rKD30PCKXuLMnGK0en-j&3-l`@@iHv|}0MK-c4z z-S?W&*jPF6eU@G*CCb?uowtC;plt=6M|i8 z`_wfm{FZ6RDF&nh8xeXGqs$@v+@u{22jai1`MDDH8twR#&Rd((04m1we8V^Q(fWu=TkLu-Q zJU{I%4Gu2YdeO^P2=nP?O0q<&RCVYv+c0k6Ug=YB6}mJnI}o^o!PsuohMmwp9G)%> zVC@Pp?>O!TRHz|h3Ect48h`^^!Eub5Y_YV&Mr*p!AoUKrVRbZs9+Q3U)3`aJ${-p> zc$Sf#IxAa))NdZAb*7NoIY9-W&QZFoz+9|p?`W2YG@DLVX-1V%J)3LOF4k!DU_Pn> zi(YyWD6wr{FoH{vAvKpnjkbBZMbDfUYTunA6c?^!#ifO@(>Luvkkgt`Ne#bjW^2{T zH1y5IIaoU=-8TTXxd=RR)&U=5y1z2z^wzclXyo-Tq49uNVH!rLT#r)c7mk`zgb7f8p~uwC`bI z*MSU|v1Bdw(6>H^sU*B^a`A$c{CET}eUJr)_aG{bOAF69($~_xMYNOEya#<0cWZU; z0xV7jv+|Kj?t@$|mzW-H07-XnhuKvGMfO@T&n{pnJQqMxfG}cSyWemH`=$I-Kk=0x z`Q#^VT&J?~QmcD7TMe9sViLW*;wK|pG#esVmanW-waC$VEK^Q0QUO~dhY$&6-cyISe!;C!Tss7>qh;X&*wurUJ#u#o1+q%Q?s+^QRL^c^m zRkV{mRFe%7mWnj1?A8{GW2f!`%4orx4@scVC>=OHy%JVvqcrL*G%9H=0h*6(i^8=t zDjVt58k8lSO-syb;!OSKq;J7a#~RthtPy4)kdgE-2FQZ_0%xo=D#3Uxb-NX~0bMBA zVF9y^Wgo&5Qku@j@xbcwn@M*R;RrI_=0c_A8FjyJ_~(jUbNxi)ts{fe%>{UdOqyk5 zSA&1-<5X%SxV6MT(CoLHaWvV9Qm21zc|2chXCydD?b+7kq`7#c(W5&D_AmiXx=%O( zf0y~Y!2`QZy8sBvsuP4iQ6=Ii%IQnXph``==HKTh#;jex=%Lxt61+s&n%G? z3Ddl5>(tnf=y>OP?Vp~f|G?(F&HHU*G|XWg zSr;F{5Wmpc>8tYy5$7@z>CPc`K4hktmazdPCqTafP!)RK5VIp;ko{lTVdCcHN=fpB zK<@6i2IG>-9SA(w%R+T`$6!IJ&+iQu?8e?Gaxu~hg7>*&{LbXgp+tQUJm{xyy0LhO zl{epf`K4!`x^&^(*^|eQ9$sE-R0JQa5I+2E>PwtL`9=)@K%a_|!ob|xuBqhU<{gR$ zPZ1R*HV|VlUpdFt*{es99OFTV4AohI0q6Fs8ZNdj`$z4jZMAzwdcB0_U;+Af^^sFO zH&?5Ld{wcH_%%pmq|buwe%3@+Ci^g`xChF+X4FJ}Q^2nZoByBnoyM#x{>Luu-y z#|dC|!-bTSI0WckFDB>g^$*Z&1v`+&)&0Sw{wFM5tD%0ic;LxyLZnV3 z)i-c)6|J_Oq&+Yv+Ufqd?#|nuS%GtskZ(CPAi2T(ARy>P*09*_I+bEJNBUaRJM2nO z?gVDa^gx)$ZbrxhN_MlhtmpOJ|4n~X|0t{Uuv*XRwINtvUbCWp@5lLPcX#)9cJJ1H zN&jiaot5K-zq9)<_21F|Ug3*{9~Okin;%9vuP*X=^oy*C^P3v?Kz(5Q=z{Z5_O8)3 z=pAzAbQgki337?2IGPUk5{igWrgncm#7a`@vS3P8y=k zW4kk=t6=ODlQdg(Yjbt?g}D>XB@zJyk`w3bhZ+l6?cP#gZ1>HD5R=}r68+Qhf}XId zL7E0l+CgWY*$%54-X~W!*Gl)XP)MQBKOuwhk*Hn>q@}ON8Gff^(SzWvD@;4{eq;Ba z8Y|?D-e369!oQmNyV!`N@j>Rmb+NU z6lJ{TN?Dd$K1_5pgSvXYdesUQ17WJxv9b~{pp~7QpTjb+x7igEW|iLA)3Mx&8|F*+ z(AFeRXb#1HQ>&gIWMOXTTD?eAjee0;P1_9W&>tt3-Yt#*AkbGJX}0}Vkdy#{y5JrT zw))3{Aj%A{Q*{ z-IJm9RL2g$j+3GD)p@z3?n{@F%ek?>c;_SuG|GL6?hoStGf^tW{-= zN)jF2xUD}C8x6s&HQW|-l7Svq%%1Q{iW2d)P%lcknw=#Mxom`KL@#$hhKN6#n>CIv7>;hC_w0o?j{gWT51fAR~(jy8H<{A(#m!gvo-xI&DNGsuGnmgQgxIQhX6^Rd# zXE5l(N>&`@^sBoS{a@nS{0)(0Vi~0$c?ECri=RN~{~4{|i6Fau$juMUJefm?7op=| zMNm@gy;1ORJaP^`m$oiBk2=12{z5vk8-3M$SKep!+h5EoL)?GERg&r@Xq>+r27|nt zJ9{^T8Db6c5F8vge;-$(0JX1vz92qD>XI_o^i}wGjk+w)^*NJNtv(}EYEyPEuo@s8D z1~n*&yJzZNiajgVm(i1oC?e(^TFW{*mdNa<0oJ*V4c=I+?b?8nTtn`%G>fuOl8Heb|CbcoAI*YMph}J z?G2t3*1Yd@0!mlQ{b%c7OaGaZq3J;v(g&`3(;2TGd|+#xj%B0`um(m=f4y$OWg9x# zCre>Ou=0hryIyja;xa+(*5&Pr<;0Z^AKe7VQM3aR*m_JQ09}pQt9S`mhS*sU<=|C- zXQU$%tI!5xf~Usz3!Ce&Of66=Qgy7m;8@DN+A3w2)n4^Vtu%kIv+_JBBy7U_=)?L4 z+IJ%<|1mmWD?ABkdrp5HoqufS@FVwMpNxk^2XFl1Nd)BcVE9F-0wzT0NiR@XVG+^=WE(2YD;HreG@&R3t`4BY*6LpI zXjKaugCG%s)6!bwM3CJkpq|Y0%=s}GZWJG4%DBR$4LKlDV+nqZK1sOzAPyjIaMl;o-uIg?H@~?>%?-@gort zLU7hEVo*VDEG)Yruch{94=^LZu-nJFDpo1cY8ovu*8=bD2n&G_No#M)WzzqBC(sH{ zKUH{GdstAtTQ>VwO%swqB@EQFp8c5pQ{6M)nU+1lBEZf)t%XOnwIv&!wJ;mvI2pgq ztSL2l)2|P@w2skBAuPjw(RaFZ{L~w1=`hu7UDGYu11ffl<6GmE0mcZkXSZqgUX0q< z%F>h=TZ-155ME{wCzd4f%}ltPHi^m%my6?LWgme1y^NA89|Y{bAuQVQ8VEPVeI? z>K9LK>U1#p#!r2C`@q`L5-epN)U%_Qls=HiU}Q!bUHVgbWv-#G+gtCWKiJ+ z(Xem-rRRp_W!pK3I)I&iWnp;tJ&S(i5gcNORrdS$de$3h6#)+_2Rp=RIqoM_7C7@=(-K5f6ErW2u_C z1_!zD^UhCHwy1zXC$5M{RV7;4PduKo*of#0Qh7LPjKdoJ zECP&f%H2To%UTj#qWI2xy&qZcK zZNlyy;xn&LCRa->s5r3h6imsC%V$$a~s&SIp%agcrl&#{( zLG{gBu}JhA7t)KE{OMt-M>Nv4Db)P9g~X1CHFzz+XidBZzv#|27EAQsDOQtcz3M?h zpH%7fP^9n=-gzqv!+JzhLbpoD9jgQ~X_|8^J5f>hH>=q_08^P_jO4+o5Ja9iM z{4A8^1hZdWfuToQ`(O)!E@c%N(l(ol3HVk46biEP8K%y+_g>pNxG-%u#GY2-iKk3lk%x=afnQziCuLAGZSp;m$z!Hw2{J^~R*mnfOqNQU z=TpS*%E(b};7JMkZ|Zm4hA>0kLyt+;TCMu9@<=6Y>Fyj=D}auzFzSXhaf|!isOb!v zYeSE!6=&(HPR~?WFUW#ur?4J;VC`xD(Ox(=cbsN-K(GABt|n4g`UaMoVFqsJ1c0uP zGNR?Q+atF4-eIphJla2=B$pfbP(btpka@7-V8nEs!NEq52E(eCI!$jAhf<`60HhqyN74)b1b6V(fn;F?OzzF+VB$U&ie1fA;zP5cGXr`wTkiy*uII zgZ*YDFqwMU;*!{{?CnniPTX5u`y68^*(zuVxP!FIm~Hd@^PFOr6W5%bzkR8gO4qNQ zJh8GgHx?#>jD0DBS(brpLiyU-&iA|=%?p&3&3o$5=x&Wu<{`$<;e2Mx&*AW|Gghi?&rt;@2Fvl!Wn;SBHw?P zyL|DkGn*S?=8x6$6CN+vR|F6+RkDnSwapn(JtRc)45Tb-(L&f%Ja!BT*1T$LA`4fh zWVQ_?;>8G2cn;Hu6>@Mw#}gu2G83dmwRctNE{LxvD{G%FI70cjG_rURBVAB0ZnIVzp8zz@I>J^c4`-(?ot&H z3nT)p!yBtz6p_h(kXYk@(G~$B)o4zVXzwJqt*i`wK+2=ozC=8Y2sJ9Q2L@wxzCq+p zCEaG@_lAmnxj$605Hgl`xZ~FO(48)!OEX^#GLF2>-Y7Ld+`#0)`|iDV?w&)N^OJfX zmA8cPDRWJBrm}%2hniy^)qY~#sPx(-SAH_Txt}L;PL+AGHi#w30@+giS{#Kt-rSM} zlgml%2ZI>+?K+L0HNra3ujv-0ET&l_;N`mRj$vn=5c8BcFVZ3-=olg;%s^oNH0cP_ z8m9I^=uHNoH?vp^(oBlfUnpX1M(;KaGHyO?TUzHGFqJ?O>^P|}2`iA{1>h(>zub1s z@QT;>d!yjLo~V>4U{yjaRf*AQ=dz53lj7)UXdtk# zB;aYtRzaQ9>A0oU@58$$`T%oG+T^SjrZjD_;oggZ!Vp)2nuR{d20e7@j`ju(aXU@g zoj7BA6OfAScOAD9)yHsijUK@#2gGPZU8_~~N2f{=Ar-c8Xr~Wkt%2KF>Uwl@B&~yo zsBD1IZcqD)M(wh8w|f0t!P7p2Ue^o%TD^Xr{;`|*)w=fMe}Ep^{mtD&+LyIY^7_4U zUcLTHxS2zFjqLn=?Fj#xy`sKcxUzHcZbCDk{q#A422=K_agl0$ z?ZSE72)}Q`w2i1eo5{l=KtXK zm^Hux;9cc3^lMdSo10=h>JPPhC(KDFE%mFO1)&atm0%eCwLk$fG2x0cG3pNGj*-v0 za$5?nq?0qPMR5EGsM+1n)-Qx(T4OpoOj>)b*tvL6HraCH-?i@8ylKv zy5Hzmk5)>6X+fO$m1=8Mis#77HHqhWQzyrGAgR9pensF;#Ue$JMOOgrByr>K@rE;kXOvTl^! zsjg)~@WnB8P+jC`eUuM{Y9Q4}#JM$>EnTsAru4q1k$a12(!z$9g8w20(hO|3H}JId z_*%VI^r{JX_}EzpFfS+Xgs78nX3@m9hlDk1!Gv%o!cL`Ev7UsaBK<~vvp9sK4@q5w z+RY3l%{Xy;5wATtx6<*q@txejvY1#va*RdP# zLFetD+U2>63EyF!*puRnn}!NsiXEwPb8RT}@?wSALslbhpCmVTO|09NM7zRVNPVf$%f?X zcgg^efg8mZrO5%!j0YNYgi*VaI8+NnSTi_QV4f1AGcYO;`_Ntc0L^jZD2hPZntEz= z-P)+Ku^fXdFIpX%1Zq}Gdo`x8t(6>`CsjM4eWPtgXucL;R|YKjF&W^K@T&@qzo!pIw~P6(@_7rR5+)i4=->q4b{zI|9U*y9ZO57v>6e zC%R0gR;EF|YselMoMR&p60g9k{=3D2Vo|1)x$O= zF&(}1Y+wz7Y$ci$J0(I9MjvVxpj*TrA=hdaHz-HbI<=$Jjf>ZV158N!xaW54coKk71i4TX6EX-VSko@2;-+_U?J z_Gh)n@eRJRlT2ZW)fez%u;vL(<++;?vJKrp{*Kv#vxAz*SJ`I-D^NVDcuTo;;tdSH zai}E~UT+_{Gk*IZ6J$DJFRQ@V+c(6_j~{yQ#`UXLc22G?9kMYtYfSL=w%Ua3Kjsc2 zGv8S23UMH_&bRD5$@Hq7r~0C*-}W_^+OqjjB_8e3=V%gaz(=-N5+)T_+oDPd6O+Vi zkeC%m_b7t0igp~B>9~U-MylOy6U_)5QZzv6Y||-K{Isn5L1-Q_%Gq}nt4@4OtH!k? z>_fPvfA=&IR71ViX!N}`0(6eYx}_M!*8?&}o%Fs&MC;)=^ir>tdCBp!)M$x7{FsmT z!(J(ApVhuZJ=BARM|YBor%$%vDkgpuq29@`2|9_25To!WQzRQmO;{d9LiHf=5RCh~ z>-I^^`3LU5e(kO^gZ`?r6xjs1amVvvi)^Xa`5u$#1-87}RD0okwSO?vMaA>r_tB1+ zf~)#Sq$RO^mL*ASqp0(6$n@AD#TiTN3B#oF@t%`F;ImHTH|Z9tn@gdV8CgtvBf|m= zLaHo|k~23T2!?do!a~r#$To?6JgW%aTeMZA+beN3!dLQb$mnR#Xq1X^xplqeHSOq9 z6jrQX78W_nJkms9vVYCxnr$X9p)dg`3ZCz+-T$CH%JbbWTq-Q>%-2g1&X-o$>>+~? zOze_92%*H+SC+AfV8|i`Nf?KZs1}nX61NdBN|faFF__1>W2#oBM2u7>X~Rstm6cvv%SaFfHyV_WfcLZO zlPbM1LwEb94!;cO84JiG9~pWe_pLZ~TBW2JQc|$OY*wJo)HRl0U}9Cn(>}LuY-~ z7u~E0U;_YPQPK%gA_cd_x6t(GKE2L!+#7WJJmH?Jmpk*TE0$B2P$dtiQs%+P(?J4P zW^!2`qAaP2c=T1}LkOT&9wjHx+{&9#laOD#ZSEPXvn|g$-3xx_B4PUvi=npAu2-sy zQQ4^VVw`)*6%JPVG3ataIDS&!P8M|2n=7ph8Y$HfRe4@Q^OWi3hF{f=1W65`QA00c zJlgTtXHI}-5-^L&)PGk{a-TVEY29MAOz@}H534C$&r4z4Ww#SzGAW1bR1b_ikHeF> z1<*wR)WPT4f#r1EHFx`Xa>T1a8xR)HN9za5wFO|A)+iZ!W$4h$gUWnyqULOV_uuP9 z^y*7ISzAr5XPA7yBc>CMTTWBY*!)MGwdE*{*<+N!Bz<8CvMC1AWp32c|vL%$R59d%=;(W z_s|L8y@h9Y;)8=$2~GUoy8t7INv+7?_fu2E4Z$8NXuetpD$CgZR;N`BH>Zixz5LP> zk3IC@g>%peObEFy;jUo(^5j)Sj@crdi@}CRs4@+x_;Qt*t0~RRw9Guse7utaj%)$`ssO(R8|QXlWtN*;tiKF>)2Oa*KcB3LA*GR?+ofLfE?TW zaVMHIHxRy+Vq>tGK=)J*qH`2Z8`i`xQ8i8M7YL1JO|Qj7uEb8DqQeC}--KD9+Gx*T zg7iZyEX;G*`?~K&$^;)X>^>qJgsN8u$Ys}^c-x7I4Lra5$J$S5KY^OR%2w10H~H;T z$m^F2pWaC?v+QtBjkQ{0FhesVjxH;A1dAlVnkSkB+L2>EzTJpfxZoQv$5fMU^kSnI zq}9q!`0~4+ymjBrxzSWii7nZrOxO%Or35zN0L1ic19Mtt67a-iTF#ZHOrU&=A0?CR z$T_|_$fOFkgo_9|<=b2AbsH~t>Wsch7K4zy8yB5)8?=+;83D{|SR_TSX7dyy*aA;*+lYT2mgz%!@`tGxxGE#0`NZj`@Y57 zVIr9NGq?X-6pO@}SUD-(-7XcUjozqqpxY1NQO;)aTWkR~G0vUHYt(`gNCk29+Qy9_Z4xacp-wVn3pULl1ua z)@hoVYu*CQ_L7X62$IY~S}x4xc8%GmJ`6z`E<~kL2)@yYC~bV74`)Jj?D9&ZUhLuW zLMmT}%mL900ak@jHlgJd=0}TG9_R&(2!NbHYPX^1(lB{-D81Y=&BWQ?PZct)qf1PQ zWc2Lye1O>Tg&)Cwqa;xWRs-1+`8hrw{ecY7KdeF4q4aC$IF~>1@t0qE z>ejh?&YV7SXwZlCKvHs(LlS0^IzjmsnVTzUnJnApm6{OtY5tuX$htf9t#HitbTSf_2vyd zqyDhSX6_jY^vO7FVDo&TI~BD+&v(l9gR~WUA=i0iQj39+q={oCa~>JLNVup2_eIRQ z_Ixb4)R>jvQ>cP%*5JLph~Nz50?aN5c6zuNR{caTX%KAmJCRj3olzPP7%)z*EriD) zXJh_tCyQ&(MdPW{twgY|vLNeZVO6?Le|b!ThLOfv3O#J}$^^-_bi- zeDQezVOgb4pCJltDd&Mx0CF36M4{nuYgFjicatr|bQPWd5Nqd<_6hJtUo8Boo%X~0 z2_JvQGgq&in+~ucOyhJ9L*KagfTqu2o0J@|X~pYTNWeV5Ae})p?Y83h69y^War?Zi zv$x+#)rv=-`Sg3hwVXV@$L|R6NJ;lRVm4D4%(K$@(;T5oZ8o0QRINBhU{@SM9ppMi z0-#$Yj9Dn#PFZ@XiOVocTZmmylUl2qEGSl6Enje;lqR#agmWgbrJ3&95|dKzfY%lJ zU_HeX#o)p_uhr|liPQp6tY9F;0q~9J=4SZ12Q(W-T)RS^Q!|<{ou_(iRx2I|GrF)5 z)V@M_l@$-8w3_wCWjihtSJImg#c>%PQ6plErU9GD#&v+?Kqa(6;?S~y)d`pTB9S## zD2t?-6ruE^)dHkprW4plxDMtqKuLblZcH@0MoWQmVh0Vko_153g52d>XW$XGKynk) zsJYQ1IAAiC6kP9QwKxNC=+n2O)`-CxSfSmRHcJhgdgtM&S07h|hDBsh;Vx{#Pia4f z?s=_nX6Mu^4-&n6Vh15-o;U;|MQ}}2!%E{&WR6yN0~i9{f{wycvDtUiEbP7;SFaq| z-dGpoaLn_rD&j>o2Quf#brB?Yn2V#SOn3gJj0eQPh6KNv=$WY?bI#G~7M8u-k+22h zYZE0N_9j#@jcBJ^R#+9&+={8srDhnDpY08k8x}K&b*F29$p?ZoC|66h0PolbaE5(6 zSZNmr4h$U>E7O;4D{xzackd4A=!9CxBK^sVk+E~V4cH{C$T#9&$37v*YCH9i0FRwj zu_oB2krkv+j6(Cq;-Yf1oI?4NM%Xc;WRmqIs~RTD2EgAsu>b@W87aF|bw=&5F)rF) zIv<7Q781_$wqlPQAkX^M-J15x`ezECFWkR#;{`7)+ZL5b%Ewze8(-go(PKr zEufN33Y`U8l+RIK#=%6&B=riHKlH{2-uIoazw4#z_pU5;+qv-13Gnx)fnU^~lUb_n z?-(@;c}1*J--3Nn^C*+UrkgS+GGX}+lq0h*anZ!z=R6KTbrzGAxt{rKat3L;XI4@% zsr_`O7wrLMgKiw^V~7yazztI}!@lSA59tB&vGA zC27#603JOF2sf~K{1|~epArVX@4D> zCA<34;yYShpg2WJt<%i3o6;61vume{l`SuRq0&7@EI)CcO9Q%20k-d~JwZ8VXUAFM zmRS6O100hgC0qqPo?oCKE`Tc&@{w*C|Its; zXNeGIC!ak;=H8sZmZUQOY9CGx5~1ab7pw>8C{d22@A}<7wIS$8qdNuL-ZMa=6t)FUn-r>R8%L`klPgQi%`cC7>6XS|$+{ z25vz^J_IYFzjSc-{8D++pdJq>S#8Dc;=b2{S~CCQX|bjC!siMV?T__JVI4;CPhI-j z1mo6w=-i1u*04q}WcE9ZXGB2cWRJ&W@R(E=6S`3u&okph^l#xa>Z^jTo$QZbiLj9v z$$t8#fmA;oI8Z1Yc*lWvJoD6*OJ`2=C#+RhJ(pZ6OaG4Tz@islW;)`DiciBb6%EAG zWTo@c9_3RbKiOskz1R)vX>*f2{Fsju51M=M&Hm7$gGqa!2Nw=BmpXB`v;d)oG{&jA zR0Esf%QUl9OpYa$xJ2eXBL4uG2<*xP5Cq)<+;*B0xrUvLFi=LV5^%ptJ8Ior^2(<^ zv{=KiNo%M%qvJJ$?0LEZYy;Rg=a4wVVmde#N862<%C}y$oV62ys1t{B>ZNo_tlbK> z!>vX;0p|%)O3AIiu>1dLzpt;LSM0yKLNmf8Q@Qu~Cl~Pmn+uMMo6cIj&^7MQ<@88jm2A$_Ujg^|Bt{mJRBlr0fbB~wNP znQfawj9}Wg#N#vVYdGr?r<)@k!y+wE@%|?b7CgW=kAuC3Al>Y?*vPiH@0Azd`OMQ# z-Ma6_l}pEu9yz>yXmQ@7ZSfY14bgx?l^K|Q=hLzGk_E{ikT-MfWy+A?_kd*_vO1=x>eT}ttqnF@EBh{}P}neP#kpzh zX2iTLzjtyq4ZTbcr+(P4KH`UunI9U$6k=#m4MQIhPh+UC-7FeC5;e8O>N~t#E^lkM{+IO1`tj#ACNOEz~tOm{ln*;QMLwm8{fVYd-DT?}WKcKo`=Y z2KNrwIjcmXZL!zP*YfujQtglM*X}Dk`*Tp!D4?&*8Xld2@FkCpxWJHjUMA1FC4Z%A zicY3&c3$Qd#KvqG=Jx(5+-3I5eTAFbTT7GHVC=XxCW)EBAyPr{JOrk;2#L+vBq@rR z(Xf)U6<|lJDXggpQXUp_r>10fgl+WqPEdjBR;uyJ6WF<>tFTP?2{8F+WB$aU#D#aL z11#4$#iOy!dka~s(ci98P%Ucg=c${>^aI$Q5A67l zpwhI9>&j;lAOMLlOljIrA^dT0RCm%=7&1N0i0Ay>1z-C;eUaz<8+j_&KZv-v1pX1(l~a9k#M(Qu zbH{0+0+qtQMIk)E-}$iE|8@>Wvh$@a4QV7*;M^kAu&QVlLarDyl4P*#5{W~|E?|Qw zqx6ok|1~$3;N%mJ4JV7)>RiKhTkMxZlf8J7Op)3*sMe9FR=$yCjyNBx^kp`WXjsuY zBIaZ!r%Yz7Pj747neLH6Uj@k_AqZRx5EYHm{8P|&vBa%$u}%0Fk3x6*##Xg+ZZg-R zIS984Dj;gsXbVk@m<%R6B*y9-f}?Sw(Ypy!b>PB+=uUdyx!%^WxSe=lxZ}RqL9{_} zk_W3jst`%{`>1($gxx3*IslFalTGQn8<#Jwc;yCEu_pv@{hft682K{T&<_=E?f54N z3O#}Dme{|DD#fl!BH1MKpQnxu6=qx&XgoHOf*;;Ki3Ri^Ng^3y2)rhI@tybI+&V3;Y_mrk(FA;}rz*gDe&LBo%qQ>4A!_??M(05x?h z1RmmzZm+jzC%=Q*Zq?d9rNlUqt>lH!Q&?stXwkUnUdZl+-4sZMF5Tdv&7r8_QU%Wp z?j0yrv=uT^Znu^OCD3TmQphsYAMLN1Q4_DRk*yzNw=1uh+{i7309)$TF}^+&CN6%Z;dVh}EM7 z8}16-e2g^cUGA`LK^?OO==CWP2)xzt#*#~;fV^kmU)lZF+8^p0UJuc;b7xhbY1^XZvJx{hipk zQVl%%MwV!A7HnXmQEn0%rE+m54= zi_Zk1;~b^eZUeM1b?LZ1o?)fUARZ1rKjJC`8s&rl@p%$>*G^(~+wChAVu4;r!67Ia zs{U|cDA9FIY-itR_9*}WryUqKsl>PG{0kTa1P>Fnu||-_X$QU*!v;-7SK$q~jf(m@ zHMg(PmG=jBYL77wRDtOqzUSCs$Fe2hMv(vkH?jUCRwgJm(3mCykm-|v*@}P(W#?V` z+K55jw+|BBAyQHUs?AXGP$&$NyX2deEkBJa+ZcMGO0`%B+fN z!(Eq;M-iB! z_85t4&!*m1Y;j_x@FnX4mzSS1=qCuBP?{26ZU?yNz-~ysCh4@>zQ2~O>*$f7;ZwB* zudt&XL@D6ZM^m@749E;HM^KFB(#ZasaIor2m=)l~d&{E}P=ur4*iCMfecw)_+pz(T zfZw8b28}?0_x5OlQKbxfR2sfEl9G?ejgbp+r_&zKnI`q#Q!sia<@7~pl46}EYGD7V zu`Q+-=1alSVOS2?*0l98v>$}4Kc(C>P0}zuk|h~+Iw)Rv5Z?N^Zn3e9AX)%s381c8 zsv7O2zLKUn2IYU<{l5s+ouEGV(ZZpfjT_hQhCWTZNXh#-q%|r*XomL1EPE9>d*R%P zW5a$;s;Zbu6LlrqlvYN{LXmx`qG)20$n2_J$&*&!5<|&jEzF%__7jOL(=t!$V7agn)P0hR`r(cPq+P~cVildy#&abO(gql1Ae=dz`HeZMp^4jy#$ELCbv~j zTKH339hJ&fGv&iDUuG$2y}B`!nuo*FtW{s#abP$&QS6P9@@LL%%@;|VgI-+JwAa?= z8VRX(gtBWyDvQSc^Gi!i4I4u*ys-PXh(&(6uuR76^v=mL8{)3fM-gpbMKSjQSsxB3z8TvMO1zPc+Iu5Uy96VVSV8$cYc`{+9L;?avqP zDRg&Q1a7gd4|Y;RJ1@crNm6(nmSa$B(hyN81huqI8GKmz;*;;|`R$EU04cX^bp2Kh zF)}lec#1NV??0BRKK{e`;?pIdo$3iZBRFP2p(?c5#UKH3Io7hYxone#$7vu>PYe#5 z)v?*+Siq%P&or(qZfr*&B8dWFU==Zt69R%17Q!r)L?v8%8es-u=ZS?W(VS{$VZB_p z`7m1HGB}72Av&Kg{LP(Y1vvdBWd%KrItJk6BW~fnK~riZL5LFL;|l?tt2Mq93z*0f zXEb5V^qDdt5?pjRyDC~G4T?<^r&*#Fg8~XIirZ}hbS@vv`~SIn4*)su^3MP5ectJP zc6N8R%yw;Gb&X_MvbwP?%Qm*l4B-~;8r7{!jp%@2orcfYn2Fe)9K96c(QU~-3HH*bkCIvhvni;upP%~a~ z6Wbg49%eHGQq83Ir%6?>xBP2;=YW9&izgwB1_AhD`)HL(D(vk6u33EL2_H!7@THJB$Q9BLlp<8kfy*3A=RZCh~$85>#0idBxb5tNGH z+gREwYP^SfEOeAnb~vDGEF$_~AfODUZ5ilmWmc3Vqw$R6FK%MbkDVeV0&RpZLB0#wppk7Vo-GG z-izUk2RYv`tXTrgL_#ghLFqHl^qstjL~CLoD3Z@qps9sx10^w%u4k7fsGaA<8IrfI z{<{8N{YSLhBv<=J3~iRdL5%923z@7wwGNaWEy|;z9lPabD)SawgVSojx=uP+DZ?SG zL3E8GXooT^YZ3`$Ss5+dzoOOS(pwTtSvdeI>`~_$LSxT}F8&2xWRPEpcoC`sEeC=l zgU4|93o|NCT#OgvKdaupB@(a+roAf~JXebDU`?H^8Q=sVElEg0HdwPT1U$~*1t`iSh|XN_ zGxSbU8ZDe;wz6Z>QRDKQn?mWT1W|$a0*=V58{?VM)@EOkZ^F}4nOZ!6X@hu)ip5M# zIuAI0RCG5jttH?G!RD-o_mmhcHuvhOeA9yJeMk3>I!%!g0lmzQ{>CH?~x ze-vai03B-wzVDonZdeekqaCAR+|Ab>KYVD*%Jk$6XxW4!Mbs}b25KCHYL!TnY;)E< zKPxNk6{!$VzD#&zzofNs+%j{($jNCXIgk{#Sy6h+&eB5LDYjei3Dg59IXOrv#=>Qx z`Z6aF+HUK&k+A0t1fI1Iz&TP=DGFig!@$X~Xe%`DNN=UP6lv(ZFe)y(7+lnujq|2Q zcMr!HqE@8Lj*JU31lPPka^q<2b+S}Q^YlQvRpfxNKZfs5$4cs{5)C60ISmE^B4=vbV`&x zB5J84p{4WGB8(A&=|e6@4aU$!&--Ql?fR425wZr~tW9*!7&_y_-A2YEiyGPsQcCpQFSuJgBu`mx6E<4j(T|OrqCm>c<`x04WB4Tz+O!8~SDl?9qndPN#uLROD$;I_ zq$#=+)vYV2l)+YqQB`hklU`})3xjEp0hgE~cPTwy$vw1vU>UbPHCC=059#{$F$%A+ z3h11RrifjG>@hP~^7idYk1@1QX`d%A?t3qieYie)d(rJfy?)UQ#Lr&>15wxhqxKv6 ze>Q&L+3mw&;Q?rSYV|)i`%vF^VFu!FT(E(tQ;q)*`mX??_5Tz55SQGgw+}!5jP_xi zxj*|_}uKnZ(L0K@GBSHKK#1&%laRK{rQ~j z!z9j%IJzYEp}u^|K&+N7nt}LVE|Gz#YaiFXs{aS$eHYz6T!s)YfqnS<7tuca>cz4T zKg1Y*)_CZ#Z-IUIAGKf9f6sX0|5^L+_b$18h|$@#4~^%YzkTRrFP?q)=h_qcZyF!%+K2dR z*V%`F;+&g-NLA0JGZ6LJi)SHzLM%i~`e(NgDarMo-9j|9nWz3$Kdk+xvJc|8yyA zzfG$d;#$9n?RTP+J}owwpi7kqzo;_TZ9;M?JZNs0q|zROqEyVRZ3erBuWOM*Ax%Ov z7d3Kt>&3JT|L&q%hPw8=RY!lm_Pf}H^PNp=aYJztst(cu7y^CkI)iCh+pWW=VumtQ zmo#Sh@k?S7e&Z6Ege>^6)vUft`yFh;FDC6vgL%RvN#KzBfm2aL5^hBZjUao-OV9+YT}E2E4KxL3FpPTw8$)oa%)hdnXYVd-`)u<=n0vZqW;kEZ#G3Ad-wVur5yN zU$QvmwHMJ2{o9LWhc=nF1?^{*9eS*DxEH4c$n;#plqx_e;%#Guk|jbV>9^AYrI_nd zMJUg1fm)Zw044jgJ~l*h;OP-ciBTSZ>W}p~?SEo}zP6J&Jw};mg+r16M6nL#9KAv? z7M*6_P8vxfEJQ+#pLrBzWyc9+lW|JSrdt7`*`!TN3yzK9O~iKYTW!AHdYH1{_dQu+H;S4ew8}Izc;?A?Ajfjt?TXDHCr?Z7Hfx38MH_A z!y9eT0HE(nX@lxpE}9Xl4_yKy6sD|e|6O0u{|5=!mlJ;{Xb+`z^I{J@(L|F9IYgz$ z9uXGe_r5)J{inn@l@YuM;m|uS%sSNxe*t*D1|D-5~DmrGV~~ zO)LX?No`{NnoD97>pL%vRjg~jrmyIKYWxe<<);$v`wTX*lmw43(n(3_no+DM`mE@yv2gO%+QIa@m3-UVPdiB%{8-O$=HR5PwR>#OfKINj;EhhRgM&I6{UwRV z{_{n&gY}h*V+afD*M5ol`nvH4$`<~7r_i&7*XQgWdP3OJBx=doQg@RoZJj|)(st46 zd%SA=X--+o_D#%aC6;HN?bwZ(!Q#W%XnV_2{Px=3zj_X~H%O+>B|G@+wztu`G{*PS zrUxUx{)xr(J7yJA7|+S+w)Z)k(~#aqTNmG*_7Ns7stIY@+*)>i^d) zbZu$+rk-v~cP(b)sAv-`wXVS|1OA<1F#q3+U@$*(w(u!~+4$7A(_$tJK{|dx{~I&z z+RQKOWKOr46Kn=);da)%Vbs6^+&Cx7%R1Bgu&97fdlK9-T(i7o<}an?tslL3rng=? zXVd$f0?PX87gv9l3W+aaD-L%C`>55`5BBRC?S(1BmLl^>qRnDS?yc8M3U{4uaF?0{ zDJ)YzQnH&<1yYpstQBBODS|3QPZ);%Atoqqs1lQEh(4s<+Luz^{0^^#T zbg)q=Y0fwLTbY|cu=VoWDJ3KC-S9>ycfA$ZKq+uCwO?5M2Xj#62LBuF@3oiwv~$Pa z&OM)|wjO)g{B7#B&4YK|PBp2mU-4IOH9YdxEmcY;rMaMe01rZ$j_pwL>Ip=S0w=(N zv_0npe;n^56-SPD?9cz~zyHbCzxLIy{N}HI_Gf?Qr+@NeSl9t56F==}doM!Lv6>C3 z7&&b=*wQVF6p$^I9M9ORf9lsLx$tTxm<&?HFMXD+zWu`70r$5`ruY0EB<4dg0MI&6 zO#RQH6AFv?53+IHbhYVk+fG46eo4?I%zS$OWuZq$nEEps#upssz0l0<->VO7$_4SA zmrJp9WJu+PZ;jlf$`No{{`5lCNp%3bUN)b9HD zy1ApfKK?-ac&Gk3N-AY-{MH9?!@X5dZq^n^q7V~ekR<|}raX!QWK%`wz=HtPOyNdN z+C4>hVB?_zZ)m7cL~@GoZjkHNUk!9AA{SJR0J$VpBkGC*YP#hqZsv z=R3_4Alm!`*kLcFl<4c9m>RY`?F*pY+6UkBE<*rR#Dd&RK#rEq0rCTj9}E?V$Z0g= zmV5)%$YSac805i8EeKdfK!XVS)TFZh#Z|EM^yhmtw{XStb^2v|S%QMzvT*vzTA+a- z>fe3pAx^u9wBp-x##tu%v`IPonP<>KG<*&c>OtEDvp%>nfE`tD# zYf+F7=nis$q6~@otTOc2*--?Z3qwfs$X_?F>&nT$(ymi_ zB9NAstajw2MZqxo3th*knU#j9;-$8XV}J3DFaO5pKlc+Kd;j-!h1qwIvPkFD-kM~& zN|;Di>BRy`xKQbK^g^WDk6aSR^0!ya5LR)y~0qg|%GU;CGy{qzb#E#E^E zCw(7~B;WjB|CVxo>tKJMK_6ji^r;?xL~}LWrG=hnc>>3Q-X~BdV3ax1vIk{e!5xSi z2;#)vz5n!&fAj~x@#{bTb3gu(z3<=q{zo4EuKSK03J@2vB-Uv0T=_T25NF7k3uEAC zqNJ=n)Fr7B(^fBl!nZwF{(UxKp#Rh*SuXws*+PH#T$uRNpvwHiC0RN)eurN+pVyTa zU(^1NbWO=AM%s0(JSz}Y?_lM8>D4M@{+>bFJyw0L%ftGPaDV>oIYVlJw{<2Wmww=E zD%Cl<4s!R}X?~E)uTMvUTgg*}y3IZ}fDBUgI zaQmcY+Y{o#nDp=>tbj@g9GdwE=K@;mKg_AX(x_9xAzC{XhOptx>vv}b)>Hcj?eDZN zXrI?w+Nd_J?bhnrh*r}EwU8HUOln=bH%ZWydxto(~FT>xYH z*KZ{!2`)yK$j$#x%iOOh9wN2sPvTr3)^}>!x4hnb_#!N$?+i`#zg_BViDMVAv~>Gh zxVA2FjsG|P-(7UN_VfBX0U7*TdKi$TaLcd&Md}X%S_Cybq~~$D3&@~CGS%=N0&9GIC%FH0iM#eB*CMb zF%|@|j{bve1D#Yg`B+Gz_G_X0pFepx}W$NQ>IY)ZbYyq{GUHG1o5A_RgSDd~_4tv_RUV zo*hUwItpZo{+oF_leTK2=&oAYR}Yk5wYzI4Dp zT6ua{I0Xh2Rq11^@6%sud|B&grB1%HX=)6tau+lL0gy` zilD};(GuI4NIPxDWWb7!0MU1mv_N5j$Nz~JhU9BwXTF$Nc^V>})^mEnUe!X275a3f9 z03S~W6~maw6mmX?no-uFlcv1e+o&!2ODax^2~M`;c(8dxQ{?uzK`)u*QD}hhN>Dh=_I9?N(0rX zL7SG~5y_<+Z+iVF+ii8*F2#1?UX^3{U4~PO-6-AXn5~$ehJWA4Soz7oih^{iJ(5*D zLa*hzv3`q|LHFyEHXy33K>=~9o&v^0rLoe08OP z^1@^JSKa{N~a=2y42U()6&p~HV0i0eCc$MJfB+H@{9gXOv4zlHNb5n z$H-dawDvZ$!7-4=feM~Yl|~A-Gab9-v0#p6C%)P%wQ1w1MyDsnXB$vEfbYhwW$958H+>)9Z)L?S9D?7|`AqHM-ag`^X7PyZm({p?Jx$fIa9Jy z8G4YGNR9xj)^EX$yaVfp;ls_oTB{Lfm*Uv<^E8Q&?2hJ#Q*=(sxao9yXw<7TX!PQy zr-7^`y~S?kZXK_9)<@P4nXF?5Vzm#?`rk2+hqbLw9u#Cr85`+=BWp`2P2r##n}pC9 zn{}HWy8g+-he{(R1eQ}snmxi|fty5e=r%3Dvn>5}Lnhx=mX+0VYJ`B7O%P_Cwlnlw z#X?@aZa%Q{fBJMIl0VDv=^t4?{r~!X&o~%Xv#&bT9YwFOVH6pc!>cbbeu^CX9|Jq{ z9m&c|)08f3FdTa~Az4k@*Y&n|-7Vc7cJmqf?L=YpD1yf@AIru@mdb8KOf4H~*%PsTE~ksk-}Y>$lhQBu=C|R=AFulao_YeA z^sVX=aqkJTdK_x;32p5O?xwGfTmw6tOJIGkyFzDYMo&elN7F!=K9>s+&%eIY`ot3- z{?L#7(D%Oc9dCcjcfax#FMrvKAAG?*ci&aXj@7D_&0CiWUY}&u3hpl5v7sBa$XwV- zNwMLz?P|%btyi#8jV_b!Zd-v$1>sl`s1W68OZv3kXe!AP?`FBlnidpgQDN5aK*5nm zaaK5B?cspJUdJztpGv288HH-ll&(h2p&BtY*-{&5jhlEeGC3zS268{*+oOc;lke81 zO@%aFnw(N2-cPbESnnh?LWi4so72aKuB5YM26mD$Y3E%?RsFHs%0oxjZ44*UbKLEV z<_Dr0_jaZqqOFr$NdG|Sdj#1E`z*S!8D>tmX*{Ghz36+3wUng~G|J7sRCM>E(U*JO ziTKo}!aGP=1WleIXtR(pQov%<;?kr;6QR0OyH5PJ4~n_0$WqJA$H8R(){x z_nuDOc)UAbfH_*h@v?THkGiclc(ME(fhOi-brVRS##zQq639vw}j zjS%a~!oqxU0WDf79}=sfX^%0aj$AKi{xWSckKuGS+X$?JUn-$e*j^O34(I6UZN~M0 z-jCp*N1KKUHOt7PX>QY(ZwJn3vox0)Sc)B#;!W%2&lgH@7}|xLn_r0N9mF-fQhRK6 znBFwb(ip(eo|7XB+khydlsmjP=Titz7HlcX*XLh4SeQ!Z4vfWV^XE5+BSR~$w&}O< zO=Qt++Sbm>PV$_TRw+VAnJOyL!6MN?5*tu+MJVO7&%5&S%f?2tx8-jujkw4ns>K+_ z^|ENFwFLHavec82-f1v$EKezCXWYOyPlk_A3~0B(1$ub`anGhwFYmYotT_(+yi!s` zLjBBHhAVx(W3K}2JAnD=U__bPUih<)AmZA?Yvx6(v8C zmghQrQ%i_7j0K1o?c!&KsGV zO2x?_Q?xVm7E9@SrUrJ*ZP`7X%0L~q*)navS*>Ji^_hj%!01vTqLRcYdvwR17$40B z)A_m+;|}uZ=aO<|4v((BQ~$8>`*f3-?2Ii=PfqleaL5Q1u@m`)5e3UNggf1@-M3@g zmK9;QvT&AHN+mHNWx)6*EgzHsOFks{@ym?1d}rW$qFw2`B@zC~*d|7&vOZh2}56l<_k(72Q*fR3pAn`rRkJcsb%36Ip1^baZem#QCzl7ZzP4^ z$d%SUaO4#I8SukpTm*7w{DD|}N;u{u9v9c@1GX_#ucQWtbJ>7#vC^5mpDtEPV^=ll zoRY0%(loI10`$u9m_8o`D;S>I$sC*Rjuah0ExIS<>1^$IZdmV|9N6#gGmKJGt7rr7J#H79EemQc6 z%Xj|Y5wC0&vKD=W47w=e#B&|LDE^(yKGVKEQ`wWsSLxYUa&vV%V}@xH?J!f1x8xg6 zniL>96&hX|J>GVGU_Dm9y!v+iYsR1A|GT9VA4Z9I!F83CW8+!wO1>(O!&pBC8{$b% z@W(W6!UJs_sdpOGTUbnvIsoOH{RqA8ZhCV*{^l$8UAB8^c8;c%rO9#&X8`}>6&-EU zRec#>GkvjGD{WQ<|7g{wrbK;V1qtU^8XX zOu2rf@4Y7-K#2kYqF=UsAV*8okv^JeMV=G1$xX5FNb6SM7wCXy&;gLeSjGb^Rp!{S1KZDm@?+NPv6XeEXjeTJ4cD@6&MJkitKL-3wV5Oa)pw#C z?Z5DA`m`1D;%gl8p)IeEKMrTng2-2prKjpQ{JL&vudi1)&gRU2<8C9^x zs(JV7YmJ8S6qS41I>BYzH;>k7OD!gntU2YE6xW%-8tYkNN}(~tXSVP13S%xlGklMV zY4v7FsRzl5SnDH+nIkKyr)jFcMKo=aw}qL}iI`dV-+NLyn#vl3qe1choKf(sa*z$f zm~Km%RKxL0PR__>3a(wG6D|Gsa#0;+!8Qtws1&zsCe3=q_Q~VKV&yk7%Zic>WR40H@s(W6SJw9r_xW?`d8nKU;pdq z14EsG(N-f*two|Qboq=7%8|n}Q~OLpDJ5~emP!b?5;Q6Q;41P*2wDBe7UBI2lmuHA zS70_0S6P;qFER)W49*7mz%UHJfZ@lUlh0&Kzt4(eFPEZUGbG~cdRET_kdH-wbzYsO zWC%!@FgsI(WLJoz+qHEq?H&U=}I&J5i0F^tND)sgG6_ZAhW-+wJ3kye&FQszn zY(OtAGR$b#Lj$u$qfp3A49-8YwD^&VzOubOB;#?P_6g%S6^|8dv~y0n)AA|3Y50`i zhPV4bS8wXm;{#pAY4NMOKhaa19B-ZCr0%Q#{&T#q;>e%wEET)IIH1t>RWpV zszSR;BLzLlyMLRXLEoi+PXBr1R;{XSQhM_+J-)iJiZivIs#a-F^b}{pi%PJri*!NS zG86h00BU;0LE3%MP@GsqTVz!_&_72of-d4yak(#wX(ktJQjrK5=2xR$-K&2=+XOcC zl^y@4ZPOtDOv0$fU{q;ZhY>M?%VO}V{_RD!@PH@Q?LfIl-JP4&wFCQSPtKjJmbFd# zCI|L4B3&B>K$x9IU5@xH9%U$bwx)E#eW&z(w!m1s~h+BC^qH`)>; zlCcgBUNJvgs}MTzF3CM*n?9H_J~Bm%8sHB(oONRm&4h%C%RLp*SWWayWR;mr%}Y>YwJR&-#Y4 z1{$m1ug_?&(OTN&+DvD1%VfLcVGE%isabdwF9me}(9n>k4P8D&OIVI<<+8$2$~`aI z;)-+1o)eu@iTVwWwx>U2qU*lO=DJa3DPm9jZEst*OFWeIQ@if!`qVH4)7=ns$#QB# z#f>hvQ@gXp^}B^O4ec}f=k@<&{HS{OkxpyN(r_tmb1~pny>ZgCwa}``t*l< z^|X;#H`(jyKxHAE8YKM-XS^tJ=Vu~>jk^_(`Z#njspz25sX_v#kO1$kKgMndfXSCt zdk&NT@l#KB`piDt^l`s0=)a(EH-1=FSf`(5sGbAg%i4qRIBN9?KRky~|MjOIQvDa6 zW!!{e#dN%Z)M|M2QL+RoIT6>yv-~|Iu|1@W==8eS6Er(YB!q`t%$oFW! z_o>T3PVbp-vl@C9X8j|QOZ|p`q-heZpyRuFy7;6P$5V%-)x4pfO!3Uq1pgCSU(q7W z(FibxXFXqGr>vb$Y5CdC)Fh=K*6v>S1RKsHB0Tuk$KUwa!>@kTD_-`}`|o?<3vkt3 zzi0RI!qnL4NTXINrkPYhB_sId!cP;;QW;Yy46e#gOVs?f>q=+`O-;VHM@4nx`inH@zaP)VYH366GKfbGZ>Y8R}MN3-S9Q>c$Uh>Hu0HwzF(F|s_AFb zRu&%^Esw!0@hheB07+u)&NicG zL+DojGM;u<^PQM^NKDqi!#*FcE+6~&vwcVYaH$IQt2lL)L>#WNT#A6;jp_`xq;mQD~ zUknC9A4K@X7bFdXnbH$u6!^+>O967|_v7ovxP}~J=*-uV@ zOdCH+pe##%oy=TMbDuA(Pvzxu*#HC}IaH<9El5xmB~)efEb#`0=bLffuM_>omlx6T zmX@uiG2K_jfKK&gD+aC9XWS^VV}FiFzCVyo8}_JEu;adP!8c2BoX_W*GqSjxApZPt z==H_r0oS0lFgtTGJcK_J*|@M zaG>zQN+oT$lhwsyIk(@)28Gtb{xY#8-*v-ncj6ZytuB7*YX{s$v9hmf1!2k52PIL6 zVt4~=8x}ajePs1D#$(1`lNb6??UzM^dEUM~OoD#!i%-1%kyk$S;unni(gT^rnM6Q@ zeI5J$_g}tO;ytIPBw2QDt1XdKfnyTSnwkJIGR|B~y?GHo#=1#ruPv~|4bG`JM`Vgh zGWn%)@2erRImE&h^~$Lpt%G?5|IEqVP$RYWT%^ZMNh#^WsO)uR1zcaFor zE9EnRb=p!K94M-3#zj}_Pd=tyC)Hh=v*YC(Zf=nOIhxEjnXF;N!dXea{^k`1U4PB+ z>a}~=%`wmPGj0E7yGIO9{j+6Om!jU+{N;t<_K6~4`Csi4Nv^M4D5}-1d(|~UvFqvb z;>0Amp6i!w-d}-9Kr5wbJ+&p)xd!i z9ZI|{OL|dR+A%VQKKRB*A9>B5-TloxSUn;ST$LYN#_y)=av?ZKhZbMT%g`QGe<1@{ zecKWK!2hKMel3gl4Zb3Z>hiM7Nn`<#>D=8el*o1!j9F2FpbQ6sLQDKEO85&gQ053> zOd^#=6FQgN4432han#B9pw()S++GQOt>}N`F&x9?O3EFhSvEb-{d}$^(a+i6B>+bFxBb*b6H#CfCZ4;|4RQcFQZ0oZ%5z6UQMQ+nnjvgHpC(iKkn#I&hYk$)L_m zl1JhNX*+UhnpCyYB$v@T+#)k>rBMoWE=r2B?S!@++J?)!NnTTCTQwg<5lP?Gq3KqR z@bB1m#nV>cY0L1m2eF>tsdYL#Uia!(yyQSkLv!=Hw=BxD9emN9x0%QuM9-rdkBa*m z!d#c6bMofhyH=KGNSf^`6;6A!t>QVT3PlMdsCiD(Mb^t1G3A892ouehVNV>UW>r|v zirT|YMP87GA|b*_>zSP67M&F#iDC)1$Au)3O?atDIr&*!GSY1l(kt2WRHjid8e+2g zh8 zjWwy1G2m)Jz2uba0>M6J^T$(|rrt2h4GHLWDqWZ^q{exCK=d9DdYmT_g8EOqEbLFW zQu%b{efdGtb;$y&ryu0dDyjNeTzI;+dv!+tL*xD0OSHw#-1Ml}S_dDv_ny0;Xjq3( zAnK`Myg_+Npo|Iq@KskHJu)>p*q;PlnW!akxOW{+q8+F)P6k@3h@@OG8N`$D%Cnn4 zGBvUdp(1~}?caNG>qI$`W4f`WB1g0QNo$p3?}^i-;@fp5!1BUak1OR=E_8QRO7%iE zl}_2#fM?oi0?P6MM;SM`r)7U7%#yZW zO&9#nPRhuKe#!DC zO*n<+4j=+75^jmTTd|w^&rwhdW4TwRFDl@6X6#2+|JhhF-lVD#a>wh(*R ze;N8WxeAA#h{WsK-E8+ZuWjiacs<#&K1c4>qEHJXqyzb4w(mS5>1n#-+Roi^$_PUM zt28ZrQcI_&RK`27Ro&Kud~)3xgf1&npP})kS#}365PRPo9p_Vf2U= zY3T?x>x`E>hqsc1+^4^k2LE~N)L=dB^(5oym=>o)f-8?`VJaP_9@bK1oJJ3y_HgHZ zMM>4YzEgYj4UfF$)vtQx%O85lbtjG;-IlLxDh=kQ7BZ5fE2b4vR>WMQle>vRNYxsJf}}6b0kH(UE8>JMr)DS$`4k&aH;k|vaZsjxNl4L5*pd{{i{EtnDFt?jlAq>*j<=`Bl zTduWoVV{S=5r!;F)|*6qM)*NYf(jW<* zqZ=oX{t&j0&eqxSnxYf2Cw$z31I;e&Z`%cK^M%-FnMS*PX~t_toq3#gU>~SmM2K z+iKNxy&JMV+HF(?R+8wG7(;6kZ3U%88B4O0pV9W3BC_JHUsx)=W#d{yl|h?TC$N&` zT+u}2pDZroU+N)9;A5q2ic{M+S(P~D->wwasX1Kn;_~o7aoQvdNyeUIIu$*1(xy$*H%W50jq0We zr$#Q6J3nJYX=l5U$pEODNr#0#KU1&7k(aV4UemS8>c2N8jdyA9(chKiOr!@PjU@~% zq;kw2V$1?4tmR>mSTanxlpQ-_c< z;-gE8k4~@o%opS(xd!^(-KRhCx_1__H2k)=yy=avdHB^`hvAJkTzBn} zL;Lpb*fu}Y9vN!YDx+E4(psX<;onmwm&xkj_j*CJ?u#rOJc3C?QWC_e=s?U!<*Mk3 zERrFPNDNDr#gVu&R+eOEiyetsi9c%nch;#|P1uj6GC#(oPW@^W#<5`(;-Fc@Y(#0x zmY&!39v;d2-H*md=8%y!jbX2yuC*#{19LBSssoM6;M|CnbL~pT$wyJD*ce(Y)$9GP zolZ4Idk(|KWl>ma^uFaUuS^~pO=ZR#dOnW zpc48F68a2>Tx+}qSa%-Q9gF5s;Ndj)1e&6F3ta8k2Y%o^?|#t(FMPq>cb&ZX^2-+H z8+9LJPhs*X8W1Kl$%!_yvRo>c;m3)W zQf3#0NX~OziEQ(YyTDXAWL8*ooUl`sfCd*Yb$tntSXuvjpzbh>$peeya34P4z``9| zDp-DQEb12nEi%(-CWLH2s|bsA!s*;lK1X!lD@1aiLalVLJdM7gdmNvw4^0(|B!b~( zEL&6QaDQvxW{>nCy)?(k#aHB5^UhG#gDFl0H7agluilbQs zI%(TDZGA5`3aOMc7|jg&eKDpU{s_-;BHs-*kGoV?!%#^xr&N3M^Mfc0?+DZ7rgH?- z5I;}kWZ(ifQ~8*RJzP=|j(|C8uJK=Buo!7KsQW>~O{=*{Ma{)M#WdFY%Ia?#HyGcC z&Ho;kZ(dpq<;*;u4Xk1r!W;il7{UA9s^tr_%WEFs3eT&-Gn;AlaU^V zV98jPO3zsRzZCS>@j-@mXnE9U_qaqb;G21dON!76 zC0tZw-i6U%7@^15l_;AYh!(?i({+Q%a5vOA*(hdH*-Sbr=X1jdOe0K97KW!%?HrkU zeZ@HKXPP7_dV5RF@{&RFwpS(VQI(y^)Eu41>U9W1Y?K+^0(Uke}B!tf1}Vh>-kt-BT6 zEFL%g9zL1=&6;oeM^SGB&Rl-RGc}K8L)-&*s+^7h_isYf`{c?#hg*t8_J-Hrednzw zue^&iD6*Xy&fr%u?&&6k5b=U?YWWYwGGHtB#JD^Rj+Mm;nuMjcrw2 zX3zV0Nq zsxo|ISD8AIFzC^oTy`lOWJ zWL^+Ed=o}O9hmD#NWCkIm@(r+>D1BJ=H6WEjqS+aU57B5E81o?pGlEa-&b-oR@t^Q z`PeJF0i`0Im+!}2shb7UiCrmXHPUmXZCOL~_u=_M| zmEgKHDJv%aLK24NGa{IGK_;)|@npeK!j@zz0R%n%T zOWFKr?186;Ho_aPqZ^=Z&Qz2gcTG`-W;o$=vLaxzK@&$OI$akR8tc;C(mKNHIt{y4 z*C$DoD8=~Wx^zahlQCheQ;_{>zqC^+$lif@YGl0AXwY)T(>=wzam1!e-B!P=dV7U> z^#-&Y4}HnXoFY)aR&Quo}>gQqRgiYMA-B-%{Zv;i_JKNX3WjU z{l3!a;8>!>+H)WgzqMvB5!#1I8>AW?{@gR7s15WL| zy?Y5wb+4ET#DgfP7w3DA&Nj_MoAWespQt)BtQW0+NS1H!87(7qZSNVe7x-$Zo)hD5 zdCQ}ZzW;r1dGA}^`}Xg7^zla@fAbq(`^fz-y!Dp7mu-gFCdS9w*;+QA2P8-ceF#;F ze=th*MLEO8@Kf~cxT0ybVV!aaoA9x%*Y_95QQ-jLqryOiXD&;GdI9Sa2V7Zg5}OpQ zO^BIjQ*yUbdDvYcidb&r8)VZ8(dn|B%#X9u7EA$-MoCLH881MwZ`p9TFv##RFYL~z zWQ-&r^rE;hjXS*7o-7P`dhCW(!<{V_3K_@mA8)$NVm@Q@DN`d-jJT0vC5bed#`{tx zfNw4&&w}u=3o1Y+dg@mi15ll*k5I-Eywxyoaw!5vf8G=BMbDrC6X_H9ymb9_ zAwZtc?ZBArr0CCuOV1&xrQ%T3TTKm`#$}7GmZ|T&b2O^yMqe=fgOI&)p_|V~w^RC^ zvG>KqE75Oo;)5TSOI5GlYqTA+>3D;g*(Rn=+Rls>GsWrSHbQ_b$)sb8i1N zwP=%`1~iIvoF6P1__U2YMWY!b9eU)wYxe3tt^SSisPQ^bRDW3e7$~B@VssMQv+*X7 zP+p}IyazY+;~7*9_g6lBaA}i`yIdUdLcQH%Frv&(YdD_HWsJDeTj^;&=T6kWHp@OT=|p&mK|naAdAPi;o(>n2RJDVX zlgV&JaWiBT+dv+Ued(7z_U}IYV?XqPAN;rPf8Sdlf8A?e{?Z2@z+SuMhU>3Ae(dOx z!;{%YHed9rYkWf@&Ko!f9wZfoR-&`(XC#`fbSwA*j6|(}rwv<4oCE9J2fNH3FOfyx zwcOwha1*!-YMA(;xM7*S{8M=_Y(&fBqKH~j6Ku+0+e5ZWeS~2xEI72%kpu||Jc!#$ z_{)j~j~S9J#-rc~4VV@laXjp}0>b8gO4UOA#*yKs$$vv}(*ds&_`Q-@CiFEq5vKa^ z7J#uAtBz^=0gf8wuwXzN;Ku zMkj3d)Ld=r*xiP{K+W^ct)Vr#H9MU*Zbtbc%x&1YsQlEwv?^nLFrtLd*ma|pDjFDm zaGKq3M$Z)ZKM(?^T_Pifiz8v6CKp=!3hkXVj^yXbxf!=CRZHloxzc)G*5S^ zEbH^RIDWbyWbKj)fZO&g&%!za&VZ6(lI7&7j*6$heD6KC-+JxwBZm(i*mwDk?b|l* zpRa6*MD7Z`s-=*4A)wE;+h!@9a#xJD+v*VPlu_kHQ<9N&wYElNRUkaqzOPRuAZ#N$v$`_{icfWje_ zW6_(JWutOfZX$+r1gZ0@H<*`ck*rsKa zP$XxTV6)U6R;l56oZ7E79FOFBA|Ak5sb5?V{_|#fQ%)!S&I@QRnP%64o$oG(&9DH*rMO_InYMe}Dli}y}S zN(GA~1R&@s){g63&fOBTQ71s+iZcZxj(Q zrxK?`VIzUgJSkQFi83K74ZN5p$I| z%2h^f1mAEXgA&USS)^=4aagJ(I#GP*`&GUN?^!IQjk5j`oQQPA8^|1R4#uc3RD;(t zyB8XHKcLO!?2g$+KAi@8bA0RJS9Ny>yPd-TfvVH0`%WEj>Lg%0Ozpnar=azZgK;{e z?bW`k6O)5YGMQm6O8B4~Uy$5ZURSJioPeZuqiW$+>?JvLT4&o2T*is+QMN-hWVTeg zZ1>j9rJ2&?=6rkH6ApG(+*B2k>Uvc+%yj9jhwIa4;;g>6TVuU}CI-(uPCwQ<4UqM{ zJx;N{Ao|BnKZ^GyF7ra|jr#BCS7~L&j!eu9QV5@?ZBQSC^Tecg6Rs&67AE6ho%F~Y zv8`j33Wd@$mC4~&t;(r|(pc8_%9FWM^xb=DF{*~vjYe;~Z2o=X~!2hsfOc{Hw3pOdzVfGTCm2At_lbClQLL#!7;bDhI2z4nPrD2z8iB zixxd_y-Xx@DS9D48#t>nBFoFTaM2+3KaNUaHY{72gfsRpI#z!q=`cp6TiV{*Hr{NF zkbmW6a>b14v{OCSTiKKXKLdx?*4~!kD~FC_i+XNAU5);ig+`{BX-guA^6Q!UM9$Vj z6AxW)i?Oiz@+=5sdZ{olT}`F8_vn`7VXB3|xlqAK{DCg%n9J{?I)i5eFvzADiMjqB z7Wp6QZ=nIkz$eElhKBbJtk_SnPk7wV@b{tXKiO;ug7XT>!3@AXi59@$_9#+EA}o>{ zka)C9z4B!ld&g;i#vyc+!5HPv^*VXhgHz>}?F|_5=E>Z| z7=BJ`QnJU$5=q%niTtxT9~V~|VJ)B;8iht-6pu7#nt(q9eFZ;LC3T$jMi%sf{-5-B zYjfJllM~zzMKJM0qCBEK%KMxhL;18+3Te4TMRz*zsT{vV*9gW5Yf zp(3GuGIZUsZpdO`FikQo&}Wp3+Bk_)$|1c0r~Y~E7%BHK@O?{+ONza$n}|r5mI4Mk zb<`PGV(7E;^YaJi_wU-ixFDqIF!<+7n${^9vT@+``_7MMpZe#sjrw<;7bU;&tRpV8 zd7qX;=lGa5s~ymOC{c~`g*;kw6D4Da;o3}F8?re&veh_kD_WUkGY+!U#rr1e)}0Kj zWWn8yOVxKzdiXgcW13#r(l6k+_ACd|V0Ug#)8-D$?ccR?#}*!IcDP*`9<4-z?G39F z$0WL$`h#5QYSxJYdWI%$ty4|c>E+7{uU9z*O6yK?VwKjdlGi||dd$Ce13Ru+2i9NUvlgaLDe${8ND9-=mW!Kp`zN|m0?Ioz2aLsL?F~j#f4#P% z-LCxu{EyKQZYeBf8y`i*BX`<&u--*UhjXC6NZPP(kcvmyq!aiK@}JCu6WGf(BTcem zZx!r0;}Y~4pgQImF9q05aw$z+>4KhvHB{HM=ihMc@vEM7@Qe zO*u#F_ixJUS+j@(#fyk=)ehzZ>Yv=~z$TsKHhfCrVhy95Aj z%C=l$*SLv%lB{w0xXz=gd?qwHD>1V}6zeanF{x|xH zHl!VRve`gh^r!+sfe?LwiS1RcB6BERt#?Xt9wn`(?YREQ&Dm>I=YU~`ZKaK-Dk5{u zyTHgMViMDMBt8zfPbHKW)$-@{f1bLbgV2rAH8D70w|A790c0_w|C)3Ka91rZ2 z+|YwZbfX(>tuPE2W{7zd9Z8!Ycfz2oSK>zEvo6Xwb;TDFiy1R#Oju)n-FB1$1#!mu z@vqpoZA*iaWND|M_?>XR-cX3+G%4kiZK41!FB5L*Qa?I&nLZwB!WqoPC5DNCY6%Uv zTT2WMQ=GW@4Xef@!De zken5k(_{DUR(6i9-M;#x#uLW%bV0jUdo7*ke@?rm1IIwiLi;q0H$8@L+r&DSo-$av zCdoO3vMI*IxUgV=V(Ew>MRv;TUZ-iF{mc_T^|}wg?nB@IzDFK@=*3)hq*jq;yE#Td z#%Oej*wuWSUtPW-{3cN+WoQg#`OAo^%r$kC2poPmQ2v)fI~jXXM%6#{Ym~X*tNO`t zuvA=1HWM3gQNx(d@&0n7GtT{|$S2N(`;9oNWW2WGLNk{_>Xb4Q`GH!lk^PYiXsP>W zB~sU1f*z$-k;rYWz4WZNyZQ7}^v#Z6t2k5x<5mX`a4H{9hS`i|rTk|9!p>S>nkd#& z4_r`VT*Dq|WHM!1PUM!S)0rrqcxv$+?)swB&mvv|&6zi^qq$$x{#g4z+TEQyPSM>@ ze(X(;SwzOyQ63R7p**~b0iiL=QyPwalDai=^&!8Hd_)NFoB!*t{^F1R;A_AAkzf1B zuYU3Kr<0;!N1P)me7i|;VDy|;jI5+HD0cX48^7boSjRi}EDP(iXHfdY8C$+{Y5%z_ zkK!5YMPL0QaUa9@63A2F-SnY_=m+~jKUZQ4B}5_2T(0e{*G%jrM~Na~nHyPX?o1Xc zIW{V|sQBh6LJOv9s!r6Pc_C{v$=3%F%kW8D95yI7-<-UebS8IiYhcc-`q^LfiQZ>)dQkzxUDHdELV5{&0OK?1e51dWxe0dS<+n>= zFwuH%baK~Qb7h6Od2aot#20>6N9Z~Bn=**0J!*Vf|KIpd-lg5ux&2YybSKGDpmUb@ zvX@F&;~;)s@=QG`5Lisay@>0BNA z>A9u(zT+*w)!ba%k;R)+JXXrgg+|dx1%=J2e&Q{GQ^;jT`l1Ti*HtO@Ls5nV^rq(& zeY=%+jQRP((ELd4&g#{~%u91yb^#6G0ZP(%UK@Zg+e48kg;A6ruNhI%_g=HuHy)1U zYgZL1BXJt3;_hujr4iz~X0R=^L+LCgGh%VV$gRDT{od~94H|67THrKTNiQK%%DcjaQ- zsb))+x^^jmDOT=Wne7s(J))i}`sk@cT?h(PER8)PC`J`Rg@o!=EVG>uBUYf)!N}%! zX0lrWMb9S^!rhqv}O-QPcf74ujQ)T{OVRitgI&kk^s;`w=Zlbc$Nz-4>#?#$)CT(XSKkA!NFf-9iwfb7+VCY1N$|iencF}f0 zCuc5g{jWh9KZ(hHv~vhCX}{o(6UVPUdYB^WNm8oz?IZ>Och>~T5FZba&YW^LXfu>s zV(E~Ob~3RL?|2KBoH3fVR)jN{^mV){`vIrA6fuaf-@5DRp@`gU`oP z-#A(hW`is}nPAMJo(C5jGW=ETu)0L7)G5;=;;M8{NqMz zIFl5eQfhf$NFDU32vlPZLjnXHHI`a!3sSb2|q& zr>4F4-H(6w8y|i6RrlU=;`p8pPqwSSPi)nm7bM|~YF^-*%oFRC-d`-a#As#dmL#VV z%ae`^AuNg!YP$S1aU*GGqscFcSV6f?Gi?tyfMMVccE z1<#$!uN2$MwVkA3;Sm6Fr#?BEE9zTUK(9c@(@TAz#ROHb!f6^%r@fnm%`*ekb5gZ~ zpG;4sQWYy^~ZTEN}F`{pVz0Nk&BwiaiW=zCKztWh(KBau$11dpr@H1|>Mi`or}>W+Q!6aVfb zKk(jnJpP(j-?DFUGNjo7eliqWJkF{Z#-e+CkC4`g?G`jbL%&kfUiZj)dJ*ucZ!NtD zA+9Jg?DY=e8@K>)l~R%4;s+t`sYJ#L8X^^1i5fB5o*fm?HX$>i$wU`u&vGBuLc8p%U?u^EJ>>W{Yeg?c#oJ0C z99aR?xJ0$c&+?3-c^UaJ64&`SA?k|pY3<)=U(=3vuKKl~eeyxvJg?k4TuYO+ZybCH zI3x!I&5UYh*P>|Ic9R|@K;amaGxGoh*>r)e(jWTjmw)*`eC`*1{f6jIBKz6gFQ;IL z5I-9vhgw+Af(b?mJOfD)PkC2}hLVe!9%9dw7i8-x)dzY8H)Wc#RnSuq_?bFa3usG2 zAboi%U5t#UUd+59^o-baz*(a0ahe)Bsy8xv7A*#dGYVWq0i{4N?O7wKb~YXwDfhSi zwx>4`eL!pB)iyp|FUD64EcF-M0Xv?peN4L4`B zqk0qo=T$%A!Jfw#UXiCGY|hCShN#@P24@=-Jf@HO05zpRY{D;|GUIYCntMB!rpZyt z0S@kl=T!$ngDM*jgbQ}t+<_O^$+HdF|)qltMEv<_0cC+G_)3RNhzcQS}KKKJ{C&Go`N3Eu5PT6N=dy zjj?8-JU3db=^rgt^XYjfvpJhBW{7<3+BP`ZXiP0O7n&1eJ69UBsBHJHzC`~leOo)) z;-@@3BNDC=tsOWXzCFsb|9{PW3wTt;`S&}so0HwmCfQs_0tsZp0tsXjHk-`_jF3B* z1PI|`f(TiXC5eP2=E6l#siGjFwTgFC+ES%f>jscgM2kul6&3wsixw3vRjSxpMQf`i z-*0BlZkC&W?ejg)_a)D7XU@!fX5N{3&pY=Sd0h#r8hlB*L;Y`t4NXaok(YI#nw1SW zNNMPmo%uM#7)J^vim_=hF1{0G!FM1J{DNi`4!6t8JB?FuXot8~Gv-Gjmv5%HAZ89o zmMzLSI>``zv$|3HU z-UCbyh&5JdaO+8q4u^w3sA&7}i{oo)Z^HcsMGO zU`~lk+@rb50X8ZE_pYS0ot1Ed^-h^J2ApLWIb6f~4v__H-XM$7Si+Jm=cZXpJ{_%c z$oBJ`aLm+&q@B^-{U`WEypv|p12W~tRFtnsxmbXhDvm)2lLfpMdRVMC6w7640h&Hg zv0`twkO>?-gU*2>!!}96Hc3e<)+S!2NU=5{9oM8m0spU*m?DauIlUBfs~3%T=eV*4 zCk--*?XM7vbfE_Wk|JzE_6M>rRM5^^RdtrsLGXm0Tq5|x zu~y9JJB!oeizzBH>N>)iMY5h=D^7Wfo`dtS^h2w@`+arFQ%74<<09{6^JmYhttpw1 z7L$*5TTE8SDNmyN9uyq88B$cd=*EjWT3123AQgn;02(nPFZ&L1=qFUJ&R(t;Dp+dm zAFqH=U4~YRR8iq2;}en-vG6>~6t4|lHb@sT6EBD!YPOnidY~nCNS<>r>PV^R76)W5 zVO7k~fXu~?&J*(Xgp#+g0W~%ll?C3zcrfZ5 zNet7*)`bVuMcOC~L5OBkL;pvH-($~W3$3F~w3BdZOtKiCor4r`{)&rPvi8WeVCiE!H=CFkp4bw;Fuo?Ht{>}H@d&kauwy)o` z{`Mc=+`6vyhO1Uhyf_Mj>o})VG-p)vDnDdjUP7YW8I1>$b}k08`(<$R}TN$J-+ zsTxIAENVmGsB~=K8I>n?5{X@bvH}%NbTN9Qg2CH*EqZ1(3gJNeDbS4sad3DTOV1!Q zSEumsnOP~>hDfwOvE9^)u>X25^}Li4{tJKn{AB7aQenCM&dAY9Mgl1gy@%cvzL=Z;B^9*l7~Y_2w^L=PTn$@qI$>9RBT>!mE1 zmb`HYvl$1r-f5-bIG=lHc>DsB+Q&CG6=xi3(Tm*MY#E^&1P!I0;WMVjT^X!;lP9Y%EqBU^FSmK0F=w7bcC5O&{j4J9CEGAI7*p+W*+ID7Fr2 z790kMsR^wA5fZhArLre^HjShqvSk#liy7+~F#U3_vXm0H49AB6`*n;nYWWPbmXaQRFvR@zuJY=sysxHxRf=a{qM!_K2 z>_?YDZx9M)C%tiSs-9WMIox~+TInUa6QU-ShN?r;W#=Uyap}$&^~4thorr;KXhLyz zvkYDg&g3A&@jk4Z0KMq z>FA)Mmtam|;|GeoO?jreKk-ISic*b3}|e3>%0r9J6i+ zHzZk^W-}LEHEb}Jlwc!zxqV!+&7>t-qFvT73pOS}nMM!RTH2g(+``cNN=u2wz9x*$ z#7D;(M_PwQSrTjsDYn68+-YYu4jO7}%D{mR)^t1S0+A^qD{&VzW)5&b9TpG8&&x>= zm9|B*Xo-;?Toh`Ii9;4fnFitTYOLhLv7I;t8)|BJ91hRK$$prVu$klHV+W13nbFA8 zQcTp}-+w3DO+KECb&p3+KPWz7xP8DLr3ri}+};VgZDTtqiqC}GyFs^4*%P#qSHta( zLAQ-?yOocJ+j~K`cX7YbrQ8d*<3YEp5$`3u5N>}8y4}V0P&dzq+gm}m+Yw$juY}u? zpxX;>OUwiReBihDrBYAksu zH|~_w_b*CUArrFOb_Pj({S!kS4g>lsLeHX~GD?2DNCCQ;@?*s_p7IKclkG81Yh;uK z+XP09PaEUnMpRKydJUn5LWvGKUOR`R>5e@g$!{v)`$Z@S=D zHcoedmr2P_h&APM7nEqP$_01Vp~E1#4AcTh2u3wSuK&x(2wZ=s$up&)D@DGmexzKT z`ll=@c#2Se3tSir?Yk|LQaw>UR`4;+cx@S1*%X{$qHFc*Tk?M4$(o=E-Ze?s60m! zx(Y*v4NGuY*(+#rS}^_(r45}Ofg4G%teUZD>)&JTx&S0<#(5meDDM{RimO6na2?!&uS1 zOH{ucTNwa)eytF15i zGDZq8&kUB59T^E?tVOjGRmTluW1_KqRCOm$OB|Z|Jc0)}9+hdBpC`>b2Vr&+NW=+8WDB8>Bi$w~NH_rZP z^cHl~X!1xNMyICW9-zs(o<}B$)yK3D3XRhYj)Nym;WV0$7PI9dSHxwHL7v2nmt3+S zoeFR&0S+V(Z91Vs@3T6_#zdMi!=Du$A8w2>CSqriGc5%tnhHTn9kL@zi#Fqg*=Ve? zwZ`Fa;Al(au!O`YjQJ*E=+$Z&oT{%aevj>DyHQ`K1oCZg;Co=#p}?spW3(-hZ?U3+ zQL}Xe9WB9hI zT1R8otPqL5;GG~p{PaL;v>-oMz2u7LjL(2 zso%oQ5m&UHis)tYDtKiff;FDqe>vIo(AiYL3| zR4l3nqoVAw_yugHXK<{TRuX<5CRr6CkCpu3q)AI;Of-(C+M5!VYLk&;H%MG`q8MgE zux7S{b)x-{K#4Lgv~~%780x`RJbj=!(0ma^g7UylHE0c13!RR!{@6G}yy)>K4-yCb z?LePu$WTWln%r7gZlNg*yKFd}guXb%FQyo*_)n0rpwoybhTF5nU3MZJu}ULB?xaG} za~k;{;_?L))Z|DL=DQOIr-b8pKobTc`4mjqhX-83*}i0B`1CMibWC_sLK3cc($q7K zlUC12^Z#qzOga6R(Yt6*q|#8C8^|kce#LS_nemB(#3o4jp^C3me3E)kNep|4B9PxE z^ma|^9QUxqqSypX`G&`&h9!#$dJEQ%C2menN}HQDEGlYu7O!Aa;e@t+`P<4|*U<18>7C5b~+ zaeGfV&L|P52idWZE-KZkC1SqR8j%!l!_Z2UY0R*2_84w)=QtA2jKeN9?3}BZmgu4W8gh!Lm!U{e*9foiG#@OzpWdyPNG7oy!5 zN2*mO>-h85?|(R_em6w$L+7dA*;f7(zd^RK?v%T=0+smxH+4Iy>OlzIx%K*y3)JiU zsqd)Qp>GfHRcJ#GrNI}h)4#huN9W=~^*KNAUG+J8h`+?IL7P5B#C?H!F)(!m$vL-9 zWcx2vDe{9CtQ0xh#*ZV-lVqJZwD^4WVfvVKSs#A?x{z(xD?ZH>BkRIwbNH3g$%2lT zUOi$c^UJfVz6;ca@AD&kBKlA9lq5G7ou?i=FLUgZbL&8U;{0{s>--sBi2hgtMHio0 z|A}0e-T5=>K0f3;bsvA`e03kYgTKh{H_ViEUsUlK^`8EfhSYGPbs_ZDKrP5Ne~(I! zAO7DeJ;qk?fAgEsr%R$y#g5oO+v|LNk+_T)(Wj9&2OI&%&4}7H(h}2pXw_jWL7Lu~0{|SPWcqL_}k`DB{Jq)5H9?^thoEEF>1k zi@m(EZ>tsqB&A~A;@M0|t}yy5wbuYo;p2y4tTozb!xE;j2s4Iil5;U-V#fYFoI4ns z=rQ5$pWn{IHd9QAaV-ifFC(o+TY}37+EhJ9q9nBu_D7wd_^ zj7dT!%ViFB*@V;MCm8m9gA)rx`(r`>5_+WnCDfhg(JcwGjh%32dmr8K;pvNU?gE2~OHc8`zvP$pKO-MM$1lLXqMRQJgN?=uV5!Pf_5pV44q#=#&Py@&bv8y|9QeNg zdxI9R&uKMq_1WMastpCZm9qH98m3H*(wOFTk8b}q8{AsUXpea?B%Al%qz z)cpg{0a~AqZsh44c7)~u)$C(xMp`p3h!5#Hb~Zl8J1@~T;K#tPfLl=>tA7CI1Zh8} zr;*m1fm_ail?vF`bo6}S7L4hi1F%Wlc77~8kGmUgc{&;}ep1J-B!|RGH#LO1=8$c zUDSC2w4UQW2l-lsvfhuf>!rE;7HX09IpC!V-$ZCwRhYvGqifCvhDQt8oc`B-R?3+>M#b{4lk8O&2ouX#s zTQh$E^e;n(58}J7gt-8x0VdO4S-1TM->;~vj)CS4;6;4D{{uZ9QWqJ;WVK> z(SdJY)&DH_9GH2;RpQ){0chmT0;i)8ld-hI<3e2 z=Kpd^WDxey;9M}jn z0`gx^O%Hc$-20AqofKn5@jm;(sE2H<~yzW^ev z!@yU-E5LKWzXABMFnXr{8H1gk(s7G!J{n^F0`@nM_PuEH{tEeWGjKaS554w0rSV#- zp*N@!zzvdA4YwM$4ENP7qe1j3`KcG}!so%?RMa0&gWsu0|5V80RD6F^`(KB-2}nhK z)CT`H$by2GP2@MwD(H}1a9;)N!UZQOz;5982={Sd9}r8T?e{FoUzNc$m{$V@%z--K zS=6zw;3UCkDG8X5x~%}_HS+l++85uTZSgFnvuFGN4RfL7LGbZ3%0`(>U^W1^0D_N+ zz!X5x6yhAQt6(k`GQsPp(a?$0e~_mlpRhi7A-=OpwvD#pT%hamy*((vH=$gUu`YTl z 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 + + + +__TEXT__ + diff --git a/gmail/src/assets/close.png b/gmail/src/assets/close.png new file mode 100644 index 0000000000000000000000000000000000000000..e259397e0e945a70e70d98711667e04c72008091 GIT binary patch literal 957 zcmV;u148_XP)o^E%yAN6$ig4tzaSN-)>`57mm z_z3{+*<4TJGMOWLl;^Xsk4y)=#1DA9IxYI05m9N@J=2AdBCy&G{|CK0f2La z&Vkzd766biZwa>#ilcB40FI=wZ7TrI&B{mw|101~+j_j#>|LYE94p`&0d5m~)Fc7$ z0l<%B_#1#A+<&+AY;{Ng`~mPTIe7!{1;8t9jW&mH1Mm#sDe3tO z;5{uN>&~LmzA82c5c_5jIIh)g_rXVlmHRU1gJjm>XOx58HA@jKmQGw5OcxwPe5Qf?4PLM9X8UVV2DwQyOEy&8K zAtzb}yD$pb32(qXEs>fTKiq(OzSI=}clGTAbcX=f;AB5R2v6CCssOX(a$4ag*;8ma}{O^6?kg zT!(h=z!K;PpjauTQqKiff^V~ui%MNtzFt!3D0ZIA@VXR0B2Gr%I353v>qi@(U zC@T9}_MDEzxw~1f^&CLR9=T#IZB?Bz0CdYvc_~UhJD6^k7yz1?^URi~ZIdD3DllPp z^P#N(H(`Z(bMYkrU^?5AXGE_`5CE8@w63@c=lSjg$^p?jSFrCABmk5TBurrJAVhxC zQF_P&iN+Hdli>3EfmUUd<^=C2GLxRlBdOyqi&NLawtEOe00^JS2}5jln<|d^Om1sX zG6xt&VmV}FvQ7pd6TLmi>i)UQ5WxA_l;CUtxN1PQx(q8o!vFj}g8ps$o#XR*Z-FW+z&AVm fCww(Mb)EkJTIESmwmvm?00000NkvXXu0mjf{vM~R literal 0 HcmV?d00001 diff --git a/gmail/src/assets/email_in_odoo.png b/gmail/src/assets/email_in_odoo.png new file mode 100644 index 0000000000000000000000000000000000000000..2dbc2edbf8d0d3c0f01da4155a2c4cdeaf679115 GIT binary patch literal 1300 zcmV+v1?&2WP)IoCOxA2sn#kJOe%z0-nsl;>&q@s&8(+2ZD6NaDw>$1HkvFxk-Oqm&z1n+10OU(TfSOokAWS)4?Z|&(Dp;%5-`;#zFY*z zsc;c^+bTe=J4b-8fq$LFY3cM~#xLfZz_-9bM~dgb$G{EyE+B>3|62-N0oFJI{RC_y z*Y~`cdl?y5$yq%DDdP?~+kl7W-ulX<9jueo#j9o4FVs76B)K-Hx^X z2-pt%=vd0C4ygN00p9^1Ine$JYzFSdR1)C(E^rN4>F~W}*1M=Zdw6$18DJh6`^Y&8 z$YxU?(gAzT<{7&)^l>5mwHr7|#sX^}`Um&|IMrC|&5mp#pfc*aAgwaYFLxl78QDX| zAFUf?=<+E1o&Ssn<9|Mx4r-1%EFDdDg z(PE>Ovwj`Ww4TT&*afgnMptsS?(I)z;HUi}-@Q&JNK;YGw+YO&cIqQIP6aQj7mPn0%w~c%y zKmED;~U`AkcJtr zMof1H%w)^PP^ZCdY$me=6s;IjueYzd1G-dPN!_@=4EC7q2&UtZCwa$L`eR`sx2ZHZj{<` zqYz0^YD?Q@C6Yv5N6&layyu+x&765==A8FEKRfmI_WPaZ?{}Vg<~wtKhLe1lQSuin z70~=2#puQuDF8jBI=M;b>ZL`O zEUl}6nFgPntw%vpyB>HEICl(#OJw6`;7$SHr;{-GW}Z&yi(4^$HN;HsW!M^_u#abOqlaY~$*P5F7~|ddmDyBR9v;=|g`54*~~!YrS8Q0RUQ|*a7KMi~RYXNM%Ou z!th(LLFO)xT2FSSmw_8RzP|@<20o7~!!V~raPXp44OU4%90boCHieu;x;2z8P zv_3`ypmBJCotf>PPVA@A`eop!v$f|hZS(z3o4J+C1YkJmGk~Y;Y`F0p$FPeknMSvC zb}>U~a?#+p|i6Gpb1bzqou%WI_nO@F)A;eT^ay{aI8={G`d~W zQjYQ`Tb(-Ks~uKCu-a#cVMp!IdW zB;RbckK4P>wI=QdV47LT3qNnSX?(fK%lE6mCBQc!({&Rp1))^GJcdy6a*187SISl23Ao1hy%Ve&O5|xF8fIp9X*~=&_~bO^>{o?OvEPAjq{_m*F)e zC)n_O+@@>^$$x{Xk;unJl$841!^mD!kRrAAnFr^uG^*Fu2dh zkS|*TG3(<$cR?shKHLP;)@Yk%uAT;{*0#JFf8O3E-wnLiQ%_{2Q-&N%t9#T5%Z?eL z$Clsxm`=m=O9wy<#=_?k#0lUWwVm<6nGFEf0xxa&FUCvH9GZzx$jo9E)YUhEU>N`k zgtKEVv9043>zAV0F(xaPB$e#UQ3&`htANs=#@2U}jD6npmmp&UptaWlX1D@2vt+f& zgn7oW1)JN(ECEF+mgJkPtFC|{bQ|cV{$+4-c4-R#0e|Ihc)``YsQ>@~07*qoM6N<$ Ef~AM7b^rhX literal 0 HcmV?d00001 diff --git a/gmail/src/assets/empty_folder.svg b/gmail/src/assets/empty_folder.svg new file mode 100644 index 000000000..70e6eeac1 --- /dev/null +++ b/gmail/src/assets/empty_folder.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gmail/src/assets/link.svg b/gmail/src/assets/link.svg new file mode 100644 index 000000000..f812e4839 --- /dev/null +++ b/gmail/src/assets/link.svg @@ -0,0 +1 @@ + diff --git a/gmail/src/assets/login_header.svg b/gmail/src/assets/login_header.svg new file mode 100644 index 000000000..cc4a4101f --- /dev/null +++ b/gmail/src/assets/login_header.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The power of Odooin your inbox + + + + + + + + + + + + + for Gmail + + diff --git a/gmail/src/assets/odoo.png b/gmail/src/assets/odoo.png new file mode 100644 index 0000000000000000000000000000000000000000..1fa68c20479ad7015dbee5ee85a675fc27384c04 GIT binary patch literal 2208 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 + + + + + + + + + + + + No record found. + Try using different keywords. + diff --git a/gmail/src/index.ts b/gmail/src/index.ts index 7845dd0cf..8869516ed 100644 --- a/gmail/src/index.ts +++ b/gmail/src/index.ts @@ -1,8 +1,10 @@ import express from "express"; import asyncHandler from "express-async-handler"; +import fs from "fs/promises"; import { google } from "googleapis"; import jwt from "jsonwebtoken"; import cron from "node-cron"; +import path from "path"; import { Email } from "./models/email"; import { Partner } from "./models/partner"; import { State } from "./models/state"; @@ -11,6 +13,8 @@ import { odooAuthCallback } from "./services/odoo_auth"; import { Translate } from "./services/translation"; import { getEventHandler } from "./utils/actions"; import pool from "./utils/db"; +import { htmlEscape } from "./utils/format"; +import { svgToPngResponse } from "./utils/svg"; import { getLoginMainView } from "./views/login"; import { getPartnerView } from "./views/partner"; import { getSearchPartnerView } from "./views/search_partner"; @@ -157,6 +161,90 @@ app.get( }), ); +/** + * Serve the SVG files as PNG, because Google won't fetch SVG. + */ +app.use("/assets", async (req, res, next) => { + if (!req.path.endsWith(".svg.png")) { + return next(); + } + + const filename = req.path.slice(1, -4); + + // Prevent directory traversal + if (!/^[a-z0-9_-]+\.svg$/.test(filename)) { + res.sendStatus(404); + return; + } + const base = path.join(__dirname, "assets"); + const fullPath = path.resolve(path.join(base, filename)); + if (!fullPath.startsWith(`${base}/`)) { + res.sendStatus(404); + return; + } + + try { + svgToPngResponse(await fs.readFile(fullPath), res); + } catch (err) { + res.sendStatus(404); + } +}); + +/** + * For some views, we want button that takes the full width of the card, + * this is not possible with standard button widget, and so we use SVG + * file with a link. + */ +app.use("/render_button/:backgroundColor/:textColor/:label", async (req, res, next) => { + const { backgroundColor, textColor, label } = req.params; + if (!/^[0-9a-z]$/.test(backgroundColor) || !/^[0-9a-z]$/.test(textColor)) { + res.sendStatus(404); + return; + } + + const svg = await fs.readFile(path.join(__dirname, "assets/button.svg")); + const svgText = svg + .toString() + .replace("__TEXT__", htmlEscape(label)) + .replace("__STROKE__", `#${backgroundColor}`) + .replace("__FILL__", `#${backgroundColor}`) + .replace("__COLOR__", `#${textColor}`); + try { + svgToPngResponse(Buffer.from(svgText), res); + } catch (err) { + res.sendStatus(404); + } +}); + +/** + * For some views, we want button that takes the full width of the card, + * this is not possible with standard button widget, and so we use SVG + * file with a link. + */ +app.use("/render_search_no_result/:title/:subtitle", async (req, res, next) => { + const { title, subtitle } = req.params; + + const svg = await fs.readFile(path.join(__dirname, "assets/search_no_result.svg")); + const svgText = svg + .toString() + .replace("No record found.", htmlEscape(title)) + .replace("Try using different keywords.", htmlEscape(subtitle)); + try { + svgToPngResponse(Buffer.from(svgText), res); + } catch (err) { + res.sendStatus(404); + } +}); + +app.use( + "/assets", + express.static(path.join(__dirname, "assets"), { + fallthrough: false, + immutable: true, + maxAge: "1y", + }), +); + const server = app.listen(5000, () => { const address = server.address(); if (typeof address === "object" && address?.port) { diff --git a/gmail/src/models/partner.ts b/gmail/src/models/partner.ts index dbd59d828..97a3494ea 100644 --- a/gmail/src/models/partner.ts +++ b/gmail/src/models/partner.ts @@ -1,7 +1,6 @@ import { URLS } from "../consts"; import { ErrorMessage } from "../models/error_message"; import { postJsonRpc } from "../utils/http"; -import { UI_ICONS } from "../views/icons"; import { Lead } from "./lead"; import { Task } from "./task"; import { Ticket } from "./ticket"; @@ -35,7 +34,7 @@ export class Partner { */ getImage() { if (!this.id || this.id < 0 || !this.image) { - return UI_ICONS.person; + return "/assets/person.png"; } return this.image; } diff --git a/gmail/src/utils/components.ts b/gmail/src/utils/components.ts index 42ca07a89..59c4c73f1 100644 --- a/gmail/src/utils/components.ts +++ b/gmail/src/utils/components.ts @@ -1,3 +1,4 @@ +import { HOST } from "../consts"; import { ActionCall, OpenLink } from "./actions"; /** @@ -107,6 +108,10 @@ export class Button extends Component { borderless: boolean = false, ) { super(); + if (icon?.length && icon.startsWith("/")) { + // Relative URL + icon = `${HOST}${icon}`; + } this.text = text; this.onClick = onClick; this.disabled = disabled; @@ -235,6 +240,11 @@ export class DecoratedText extends Component { iconCropStyle: ImageCropType = ImageCropType.CIRCLE, ) { super(); + if (icon?.length && icon.startsWith("/")) { + // Relative URL + icon = `${HOST}${icon}`; + } + this.label = label; this.content = content; this.bottomLabel = bottomLabel; @@ -282,6 +292,10 @@ export class Image extends Component { constructor(url: string, altText?: string, onClick?: ActionCall | OpenLink) { super(); + if (url.startsWith("/")) { + // Relative URL + url = `${HOST}${url}`; + } this.url = url; this.altText = altText; this.onClick = onClick; diff --git a/gmail/src/utils/format.ts b/gmail/src/utils/format.ts index bf4ff5154..1b617cdc5 100644 --- a/gmail/src/utils/format.ts +++ b/gmail/src/utils/format.ts @@ -12,3 +12,12 @@ export function formatUrl(url: string): string { // Remove trailing "/" return url.replace(/\/+$/, ""); } + +export function htmlEscape(content: string): string { + return content + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); +} diff --git a/gmail/src/utils/svg.ts b/gmail/src/utils/svg.ts new file mode 100644 index 000000000..397c7825d --- /dev/null +++ b/gmail/src/utils/svg.ts @@ -0,0 +1,33 @@ +import { Resvg } from "@resvg/resvg-js"; +import { Response } from "express"; +import path from "path"; + +/** + * On the 19 December 2025, Google doesn't cache SVG files + * (it doesn't even fetch the route if it ends with `.svg`) + * Because we need to translate the text in some images, + * we dynamically convert the SVG to PNG. + * + * In practice, this route is called once, and then Google caches the PNG. + */ +export function svgToPngResponse(svgContent: NonSharedBuffer, res: Response) { + const fontFiles = [ + path.join(__dirname, "../assets", "GoogleSans.ttf"), + // Manuscript font used by some images + path.join(__dirname, "../assets", "Caveat.ttf"), + ]; + + const resvg = new Resvg(svgContent, { + fitTo: { mode: "width", value: 320 }, + font: { + fontFiles: fontFiles, + loadSystemFonts: false, + // Font used by Gmail + defaultFontFamily: "Google Sans", + }, + }); + + res.set("Content-Type", "image/png"); + res.set("Cache-Control", "public, immutable, max-age=31536000"); + res.send(resvg.render().asPng()); +} diff --git a/gmail/src/views/create_task.ts b/gmail/src/views/create_task.ts index 986e0bcb6..71635373c 100644 --- a/gmail/src/views/create_task.ts +++ b/gmail/src/views/create_task.ts @@ -20,7 +20,6 @@ import { TextInput, TextParagraph, } from "../utils/components"; -import { UI_ICONS } from "./icons"; import { getPartnerView } from "./partner"; async function onSearchProjectClick( @@ -158,7 +157,7 @@ export function getCreateTaskView( } else { const noProjectSection = new CardSection(); - noProjectSection.addWidget(new Image(UI_ICONS.empty_folder)); + noProjectSection.addWidget(new Image("/assets/empty_folder.svg.png")); noProjectSection.addWidget(new TextParagraph("" + _t("No project") + "")); diff --git a/gmail/src/views/icons.ts b/gmail/src/views/icons.ts deleted file mode 100644 index d45e6aab7..000000000 --- a/gmail/src/views/icons.ts +++ /dev/null @@ -1,23 +0,0 @@ -export const UI_ICONS = { - person: "data:image/png;base64,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", - odoo: "data:image/png;base64,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", - email_in_odoo: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAE20lEQVR4XuWaTagWVRjHf6MF6iJa5MWd6E6MdmK4FAraqSh+gkYkUgiCmNSmIEUXoiKCoiKR+LESFBdugkBoE0jQQkgIBBFRESMkimjiuXPGmTnvmZnnfLzvnes9cLncO8/H//mf55zzP8NkzPGRJalfouRA+TtJ0MkEiSdgFhZdp7adgFlemLZ/4jtAm0nsBkiqngAX+AEW5DMf5Zz4+YQWHernh87bWtcBAwXvXa3DQUrbAJwFFqcIOItiPAM+FQKezMHiy3l6qm9uveVkmiARnkRhhnnEaWZCQ8BtYKdZKpqYozaaLD6Ru+JVz5YA3wMfNEJbvlpoj4EdwA8+OGfQ9kPgEjDVJ75cBMipcBF42ypArjtHgK+Bf53Faen0YcYv5pvAt8BBR4rnwMfADfsuIIXZ/1sKXAHWOAL9BGwj48H0DTBm9BXX97yZexkZV8lZPQIp4w4524CH5t76yqRN4IrBG8A3wFdmi6vHfQF8AlyPqT+h7ybgAvCWFfM/0xGHal3bmLYuAspYa4HLgGwq9jgD7Af+mn5QRvObuRgeFgEngN2Otf4I2A786FjKqg6o+00B3wEfOdD+CmwG7sVUEuD7LnANWOnwvWXWu6g9e3h3QBlgHhn7yDkKyGZTH9IBe83mGbsz9HEh/bUbOEnGAmsf+gf4AjjVWOvNjmwhoDLquyCtMswvdyCVGdlDxh+tG2To8ij85GQ6D2x05L4PbAHu9jBYEGBwaPYAVzzZbOQCtdXx8HcD5Oe+qfR8/r4hXk4oe8iZ/znwZ2MvcJMdvATspBJ+F3AakM2oPkQnfAkcB2QnjhnzgAPAYWC+Fegl8JlRfNocyQgoE64wM/OeYyd2y2j9MnDL2SLzL2bz/U1bubELJKAb9ELgmJkNG89jMnaQe8voSs6OViibnGx2f3sWL+aBBOgyrW+V0RlHyDtkdBV/VM5W5Jdy9qYOjtNqrARIxn4ZDQ9aClgGXAWHnIU70xK8kLMxY+wECLgQGe0jZwdPQAlQI6OlwQs5a4+MR+ROOTtrCBDBMUVuyehqTUs7yo8cdfbokrN+BNhKsPb36N6ekUVfc0fhSYH7wMjotktT8f9CzmacIh8DkqSngP48LynpktFio5Wzfh3QtJ7IJtgFsE1GV3K27u1Pch85DgKaSfouQ30JNM9LGS03S5HK8gpLXmBWI33hZewZ7wANQW6bNKQMnIA0RXaRPHACwvtD61kRkLk/WZCD0DostLHHZJcWj7IDYpPG+guXKWKMzomSgDFNptdOXz+PXG8abYI0hInMq8VyvxLTBJoEQWWOFHia8vsVejcBvsXVo6QF64ukae/GErgEUhQWV06ct7oDxnMZSgU+Lk7hHdgBoamH1zmBBAyvkNApCSQgNN2Q/IpJTEhAaFeE+vWRqYubkIA+QJN6rit8wNfhtgL8CtPS/Rp2gLZ09TEYynyon6YAbex+VdrbARo4k7PRFq5B5IjlDp8yqQvYuONryDA2AuUp8I7aZ0Dg1ZjbDZ9IOeuAcxP/YjyWSI1/t418JT/9ufycHnEEaGYhlN6Y2FpdYV6KhkL094spyj9b06Mld1wHxIJK7W8X2fe34xvg1JCGGa9GTHcHzGTLxlCnwW1sJrMEFK0YU6+3r7oDulRcSd24vwz2rs7P4X9yK0qXsIoynwAAAABJRU5ErkJggg==", - email_logged: - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFcUlEQVR4XuWaX8hnQxjHP7MoXMgFb+62dSesK5FLRblDxK4tJJs/qS2h5QKtbV0IbURI/sSqLSIXbpTacqMQSVFqS9tmJZJEXkfPe+a855z5zZx5Zuac9z0/O/X29vud5+93nnnmO3N+hpN8mFHyFysV0PwfxejGGCkHYAmT7kIbBmDJE9PWT3kFaD2J3AxB1QPgC36GCaXMRzMnaTq5SefqpUWXLK2rgJkGn5ytR0FSux54ETh3DINLZONn4E4B4KeTMPlmnk7oi1svuTFFMFI8I5mZ5xanmQkNAB8Bt9qlorG5KKPxkmJ5yF777DzgDeCqnmlHVxvacWAX8HFKnJsoezXwJrASI18+AGRXeBU420lAjjsHgEeBf7zJaeFMQSbN5mnAPuAhj4tfgNuB992zgCTmfrcVeBu4wmPoU2AnhqNrJ8CSEUsu9rzvexuGQ1RcthCS4QgVO4Ef7bl1XSREcEXgVOAx4GHb4rp2fwXuAN4tyX9E3RuBV4CzHJv/2op4olO1vWkbAqCxdSXwFiBNxR0vAPcDf649aKylzVwJDmcCzwC7PWv9GHAL8IlnKasqoKu3ArwGXOOJ9mvgJuDbkkwydC8C3gEu9Oh+aNe7sD13JFdAY2ALhj1UPAlIs+kOqYD7bPMs7QwxLKS+dgPPYjjd6UN/Aw8CB3trvV+RAQBaodgB6VKL/PmeSGVG7sLwW7BB5i6PWk92ppeBGzy+vwduBj6PIFgDYOPQ9ACfPWk2coDa4Xn4gw3ks9hUJj6/3AIvO5Q7ZM+/F/i91wv8YGcvAdepmL8NeA6QZtQdwhP2Ak8D0olLxhbgAWA/cIpj6A/gHsv4tD5GA6BxeIGdme2eTuyn0fpl4KeztecvbfP9Tpu5lcsEYDjoM4Cn7Gy48RzHsIsqmUa3dHYxQ2ly0uz+SkxexDMB0Hm6LkijDQeoBmh0a3+RzrbgN3T2A104XqlJARCPcRoNRwMJbAMOgYfOwpE1Cl7T2ZIxOQASXA6NTqGzswegCVBDo6XAazrrDsMxKi+dXRoAhHCsUDk0ul3TUo7yJ1udO4bobBoALhPsfF7s7QZTfMxdDE8S3AOWRocOTfX3NZ01HKSaIBIntlwmWJvR7+eN2yEaLTJaOptWAQPSZQDkhRGi0S2d7dpNBzkpqtp830nsMJTkICDc0Gg5WQpVlissucBsx8SJN442owLyASwDZTvw1eJG41BDz/VXfsA5mmVJhjzKjfbr9npMrvnWx3JVQA6g9XW+JN9stY/bu861Ju4HYJpZyAs/b7dpfLnJy/erwCXANyHTdRMsBaFUvzyGUPJyiXN4Hk0wBlJ3P/LdNLr67edw8obDXXr1f1wC/uQNO6jamR+3ArowxmZV0wnybfSTr+3Imu+Vfd4ukB+UJuUhGfF8sW8Pd5SG13wg/sWvpzkM5YIg8e3DsNcei+Xa3TdUDc+nOD0PyK+cOnl4xAYulFledbkgZCc/vA1qOGPuvOr0hLp+4dwVuCAUJZ8GgC7osaXkTY+8mO1emDQgyLVbl+E1JCfY8HzcpmwJ5JZ3mp4PBB/QqwS2uliH9f1AYuyZLLU3DIJhlSq81c0fgFBF9L8PgTC4z8eQL1sCMevjP3dBKEo+3ATT1mibZq6eBqjWtrwaf97eJt8NvNdTT2SlU4YcS6t71AnLjhmhx5bf/JhOw/RLB0AMxsLnEsQJ4By1nfHAmQ0A1wIvbfgvxkvPHJqJUMjMYhbU1TeBYBkACoSzYy6xreMV65ei2TEmK5YklezMUQj4LquA0qDG1neTjH3e9JcgYwOgtdcBZrgCNrNktcmEecawBZvbxiwBRSmW5Jusq66AIXQb6Kb+ZXBydmkK/wF/5W94wdW8qQAAAABJRU5ErkJggg==", - reload: "data:image/png;base64,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", - close: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADhElEQVR4Xu2bS24UMRCGf+cOcC82SEgjWLLhOGxYJoqExIZ7wR0yyN2ebne3H/V094LZZWJX/fVV+RknoPgJAO7lX5l96+mDbju2PPFDF1oXqbORAOiM2BEcr+NiADQoZfBOHgJ5wLIANMhiXwGAc4TOgdr7FgCQMG8Jtw+Ko3AQAI6ksW0rAM7NykgE/yvgSNt6vNbsXaPKHCvgGgFuE3zUJAHwAcCPZPgbgF+0MesG5COA72mZ/Arcf7f1bHVIAPwB8C45eQPwBcArbY02h3AD8AzgKen5C+A9LSHrzqLSvio2BxD7ZhA4rtVt98FHg5YASgInKLHkfmbUz4BwA8IzcH9k/qHhE31IdiugmaES/VGVYOpbMgc8yOyETNXhDSHzuQxRgc91eGsARBCG2ehOkC6+GgC6giqVMH0tyMqoISdaBrswCtkJb8A9LZGaGT/cgHu+1BUAd/XtBHSHANfgZD9BCE/Zhaq2EgzLvpwE7Rywt2op2MhW+2xjDcBqYmwEH14tr+wDbQtb3RTVBrcmewbzCX0Ie1SAZnVw2lvUgWQA6NQYczqnEjhtiRL6MXlWAKcSHIKnMRIA6FMtzCu1w0vcJ8RPZ52nBSNpJQAgcZPvE5aze/zy8RfYXId278AS6AigWCmlUs8FV4Jvr+XbZZFSoatLRwDVREQIL0AIs/BFcPzh83y7NO4jBMCjvAsnATj8Wc4JQFsrAYAqWMpWObWZ/Awd/9ExAYBZOZbGf2cSlMKn9zMAQHLWuskZuAwetRoA6FYIZZNDaEMC3RWzb+AEYBFLCGyRxGnLDnTuMLYCJAFJ+ghhrEgKBtTlpgmE0Jejb9gyKCr7WvacjsW5u1mv9RxAyB65Yi1tVZ0yAHTLTnkpSj47mG6WGACamfPMlqdtkyHgKjBhd/OhrQA3YYV6c/ElAGA625NnRK9KEACYpLSuuArn+e4EygHROlew7xIkAJQPJExg7CBEftNResgDicYTGZPg8vuBVmWU5gTvJzKTnsojqeMui1PXwrZ7CEMACJ/JCUNsdpsqjvlMbmtQMgcYRmI5ZGSyTgYgE709yOr+ucsQwPnZlOBsALhqQLa6DCtAwv/8PoMA2GbtiI1qf+ydoCK91IAULrLtFsHKOEEEMY0mfJ2DhoAuLPveK6gLAOhlrfd7HR7FKzGd4/N6b4EqK8A3O/wnfDU9dZ3/AFrlSVG2PjV3AAAAAElFTkSuQmCC", - empty_folder: - "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjgwIiB2aWV3Qm94PSItNjAgLTYwIDIzMCAxOTAiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImVtcHR5X3N0YXRlX2ZvbGRlcl9uZXV0cmFsLWEiIGQ9Ik04LjE1MTMzODUzLDIuMDMyNjY0OTQgQzE1LjExODE2NDYsMi4wNzEwMzk0MiAyMC4yNDU3NTIyLDIuMDkwMjI2NjYgMjMuNTM0MTAxMywyLjA5MDIyNjY2IEMyOS4yODgwNzI3LDIuNjcyNDYzMjYgMzEuNjkzNDAyNyw3LjY5OTU5MzA3IDMzLjMxMTgxMTMsNy44MDI2NjE2OCBDMzQuMzMxOTc5Niw3Ljg2NzYzMTI3IDU1Ljk5MzE3NDcsNy44NzExNzAyMiA5OC4yOTUzOTY1LDcuODEzMjc4NTMgTDk4LjI5NTM5NjQsNy44MTMyNzM4MyBDMTAyLjUyMDI1Nyw3LjgwNzQ5MiAxMDYuMDIxMzE0LDExLjA4NzkzNTEgMTA2LjI5MDEzOCwxNS4zMDQyMzgyIEwxMDkuODcyNTA3LDcxLjQ5MDk2NzUgTDEwOS44NzI1MDcsNzEuNDkwOTY3NSBDMTEwLjE1MzYzOCw3NS45MDAyOTIzIDEwNi44MDcwNzUsNzkuNzAyNjU4IDEwMi4zOTc3NSw3OS45ODM3ODg5IEMxMDIuMjI4Mjg4LDc5Ljk5NDU5MzYgMTAyLjA1ODUyNCw4MCAxMDEuODg4NzE4LDgwIEwxMy41OTE0MTE2LDgwIEwxMy41OTE0MTE2LDgwIEM5LjQ0NjQ1MzIyLDgwIDUuOTg3OTU5NzQsNzYuODM0MDY2NiA1LjYyMjU1Nzk1LDcyLjcwNTI0NTggTDAuMTM4NDIwMjA0LDEwLjczNzc4MzYgTDAuMTM4NDI1OTAxLDEwLjczNzc4MzEgQy0wLjI1MTA3MDMwOCw2LjMzNjcwOTk0IDMuMDAwOTU1MzgsMi40NTMxODYxMiA3LjQwMjAyODU3LDIuMDYzNjg5OTEgQzcuNjUxMTc2MjIsMi4wNDE2NDAyOCA3LjkwMTIyMDg4LDIuMDMxMjg3MjUgOC4xNTEzMzg1MywyLjAzMjY2NDk0IFoiLz4KICAgIDwvZGVmcz4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMykiPgogICAgICAgIDxwYXRoIGZpbGw9IiNCM0JDQzciIGQ9Ik0yMC4xMDYxOTQ3LDUuMzE4ODg3NjFlLTE1IEwxMDUuMDA4NTUyLDEuNzcxOTc4MzZlLTE1IEwxMDUuMDA4NTUyLDAgQzEwOS40MjY4Myw3LjAzNjgxMzg0ZS0xNSAxMTMuMDA4NTUyLDMuNTgxNzIyIDExMy4wMDg1NTIsOCBDMTEzLjAwODU1Miw4LjExMTYyNjQ2IDExMy4wMDYyMTYsOC4yMjMyNDA3IDExMy4wMDE1NDUsOC4zMzQ3NjkzOSBMMTEwLjQwMTMwMiw3MC40MTg0NjE3IEwxMTAuNDAxMzAyLDcwLjQxODQ2MTcgQzExMC4xNzcwMDMsNzUuNzczODQ2NSAxMDUuNzcwMTQxLDgwIDEwMC40MTAwNjIsODAgTDIwLjEwNjE5NDcsODAgTDIwLjEwNjE5NDcsODAgQzE1LjY4NzkxNjcsODAgMTIuMTA2MTk0Nyw3Ni40MTgyNzggMTIuMTA2MTk0Nyw3MiBMMTIuMTA2MTk0Nyw4IEwxMi4xMDYxOTQ3LDggQzEyLjEwNjE5NDcsMy41ODE3MjIgMTUuNjg3OTE2Nyw3LjkxNzA1MTg2ZS0xNSAyMC4xMDYxOTQ3LDcuMTA1NDI3MzZlLTE1IFoiLz4KICAgICAgICA8dXNlIGZpbGw9IiNGRkYiIHhsaW5rOmhyZWY9IiNlbXB0eV9zdGF0ZV9mb2xkZXJfbmV1dHJhbC1hIi8+CiAgICAgICAgPHBhdGggc3Ryb2tlPSIjQTFBQ0JBIiBzdHJva2Utd2lkdGg9IjMiIGQ9Ik0yMy40NTU1NzU0LDMuNTkwMjIzMDUgQzIwLjE2MTAzMjcsMy41ODk5MjE1MiAxNS4wNTcyNjM0LDMuNTcwNzI2NzIgOC4xNDMwNzY0LDMuNTMyNjQyMTggQzcuOTM5ODU1ODQsMy41MzE1MjI4MSA3LjczNjY5NDU5LDMuNTM5OTM0NjUgNy41MzQyNjIxNiwzLjU1Nzg0OTk3IEMzLjk1ODM5MTE3LDMuODc0MzE1NTYgMS4zMTYxMTkyOCw3LjAyOTY3ODMgMS42MzI1ODAyNiwxMC42MDU1NTAxIEw3LjExNjcxOCw3Mi41NzMwMTIyIEM3LjQxMzYwNjk3LDc1LjkyNzY3OTEgMTAuMjIzNjMyOSw3OC41IDEzLjU5MTQxMTYsNzguNSBMMTAxLjg4ODcxOCw3OC41IEMxMDIuMDI2Njg2LDc4LjUgMTAyLjE2NDYxOCw3OC40OTU2MDczIDEwMi4zMDIzMDcsNzguNDg2ODI4NSBDMTA1Ljg4NDg4Myw3OC4yNTg0MDk3IDEwOC42MDM5NjUsNzUuMTY4OTg3NSAxMDguMzc1NTQ2LDcxLjU4NjQxMTEgTDEwNC43OTMxNzgsMTUuMzk5NjgxOCBDMTA0LjU3NDc1OCwxMS45NzM5MzQ3IDEwMS43MzAxNDksOS4zMDg1NzU1NyA5OC4yOTc0NDkyLDkuMzEzMjc3MTIgQzU1LjY2NTYzODIsOS4zNzE2MTk4NyAzNC4yOTIwNjI0LDkuMzY4MTI3OTEgMzMuMjE2NDc2Nyw5LjI5OTYyOTA1IEMzMi4zNjE2NzYxLDkuMjQ1MTkwOTQgMzEuNzM3NTY3MSw4LjgzMjc4NjYgMzAuODA3NjMzNCw3Ljk3MjI2MDQgQzMwLjY2OTI3OTMsNy44NDQyMzI1OSAzMC41MjY1MTI5LDcuNzA4MzkwMjYgMzAuMzI5ODk2MSw3LjUxODY3OTUgQzMwLjM2ODc1ODUsNy41NTYxNzY4OCAyOS45NTI1MzM3LDcuMTUzNjk0OSAyOS44MzU5MjMxLDcuMDQxODQwNSBDMjkuNDI1ODIyOSw2LjY0ODQ2Njc3IDI5LjEwMDMxMTgsNi4zNDkyOTU3MiAyOC43NjIyOTI2LDYuMDYwODIwOTQgQzI3LjA5NTE2NDgsNC42MzgwNDkgMjUuNDU2NjA2MiwzLjgwODMzNDUzIDIzLjQ1NTU3NTQsMy41OTAyMjMwNSBaIi8+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzEgMzApIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMy41IiBjeT0iMy41IiByPSIzLjUiIGZpbGw9IiNBMUFDQkEiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNDIuNSIgY3k9IjMuNSIgcj0iMy41IiBmaWxsPSIjQTFBQ0JBIi8+CiAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ExQUNCQSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xNSwxOSBMMzIsMTkiLz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=", - search: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAGs0lEQVR4XtWaaeinUxTHP08YM7axpDCWJGTfUnjhja2xZjchyV6WvGBeUJiQrUGWiRpkaxgiW5QSozC2LGEUmiKE7Gt49P3/7vP/3ef+n+Xc57m/34zzaub/O/cs33vuueec+2SMjTIgN2iz8jWJsssQZw+yK+qhZKRLewIQ2vb/AyQBAE1OxwASw5suKIwAWI1LBUbhoFVvV0AyjAB0VRCzbpTO1steCQCwOm7ls4I+kFcDQGplVqNS8tl8SBwBk0p3BvYH9gK2BWZBtjYI8Pxn4AtgGfAq8DzwTkrXY2T1AGAKwnLwTOA0YLsYI4CPgIWQ3eEAGmBlKpwiNZXkpkmCqwLnA5cC68WaE/D/AFwJ3Az83VOWaXnfHKDwXgTsatJWyVS50+8CJwAfdpdbt9LX1y8CDgMeBNaqUPUX8CzwHPAG8CnwvYvpdYEtgd2BA4BDgDUqZPwKnAQ8nh6EoUQvAqLOnAy7B1ilIoTnQ7YA8m/LamoboXWAM4C5wIaBvH+A052uhDgMfTUkwXLIQK6df2yq89kiyM8DPMejbJ4JXOcSqb9QIBwzqkgwAFByYhvgzSDsZaCS4O1R7paYS9E3B7gLmO6x6DjsOcwJUdFaYVZUBEyuV7gvdWe3+KOcl8GL7c6bjN8PeCoAQYlxj/bbwSR/0tyYCLgAuClw9FzgNrvzUZzHuxvGX3QRcEOUlBbmBgBKSCrTLwfW9+Q9DMjIDmTeJR2rczwFqhO2AH7qoLRyiRWAC4H5Xlb/EfKtgW9SGVIjR9WlSuaNvd91WyhZJiHrEXgf2MHTeDlwRRIL2oXomN3isX3s+ov2lQYOCwA7AUpABanI2XQMu1/oU5H0JaB6oSAVUW8P/mM9TtV8FgCC8J/IzqoFxkn3Aid7Ci8Grk9hgCUHPAQc5ylTsXNrCuURMk4E7vf4VR4fGbG+gnUQEZYIUK+u/r6gfYBX+imPXq2mSy1zQWqSto+WUgNDmxyVtht4TBsBX7ctSvz7NOBPT+YvgG6I3mSJACmWAQWpRPWN6W3EVAGVCUtOr+l41VmpMrU8NTXaZwFAWX81T8rqgP42bvIBkG7ZFDk0mQqsA2BKx+c7911QAQZHoO4aapQZC154BP4AZsQKqeK3RMB7wI7e4r3dMDOFfqsMdaGqCAvSgGUr6+ImPgsAjwBHe0JG2QDV2JrNgVzTp4KeBg4dFwDqwPza+wngiO7KrZVbSYOmT6d4f7kMmNfdhuFKSwTsBtlbXsLVDTALUG5ooU7OejIn1uusqxTWxKigZLWIBQDV28sg1zksam+NwK+y1+FtQDX+fjawwOP4HNh8cAX2BXggIaAqodlcyK/xGDXhVTtsiIJezuveV/JTxBWkLlTdqNcIdQfCGAET4bccspneUXjAja17ediyWA8kmjcWpNmgRuod5xC1dUCdGaUFGkT4UaBFZwF3jgiBo4BHy7KzeZArARqi1sZjjQBJU+WlHtwfjKgSO3YEI+t93cOKX+yoGdIc4PeUgMcAIL0qiJZCNsM7CgJBiWphs2Hmc6qa476KSk8d6IGASuJkFAuAFGs2oPfAcK3uag1PNLjsQkp4VwdnPpSzBDg4JQiBE+Zd0o5rYhv2Emqdr3V5wTq5VZifClwCbGJALikIXSKgsFGvt3cHjxfFb78BT7rH0deBzwBlcGE2HfLicfQgV1X68z4DBlSAYN68kvw+AEjQLoBGZprYtJFa6H9rAAvXfuJelPV6XEdLIJsNuQO2TX31730BkFTNB3RFalBZDCy6WTPI8DcOqsyJXl9Pboc3g8DsYXRVcTZHRgoACq0am6lo0XnezIW7dWijWl8Pohq2fuW5oTlATxDGBsCkIv1DzYo+ktLsQMdD7wj6lEakB1U5+QHwmvtI6mX396ottIDwkrsdoo9DFt9QhIiak4+yveZ4MjJ2ljcyEAxHwOyg271YfnO6CEDw9Uz+OzoSjN2g1cgUzjfKSB4JHgApjA+B6iqzNwgvuo+vanLCUH7XSrAlJLo6bo20iXeKttuhBQTp6veZnNnaETFaQHjGRUKtCWEtPyJbRya2CQQVVfoG8YUm7YZbwF8eG9qx/F2AyqZBHh4HPZzoCV8fYjdSJABt4lIlwWg5fiRoaq2xvb5SbSUDAOPYxVY7LQwCQXNKzSX0cGL6eqQGgM7VnsXQCp4YkOt4Y2QMTYhIgt0UdERkbMsMRyC1LSsXkJEArFzGp9iaSADqVHbNGSse0EQApNiLPvWGLeNXWRnRDVbt1orfwXI+jx0zVD6OdkezPg5SApVSFvwHwpBtVPL13tcAAAAASUVORK5CYII=", - no_record: - "PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9Ii0yMCAwIDEwNCA5MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4LjAzNjYgNDIuMjMyMkMyMC42MTUxIDM4LjY5NTkgMTguODY1IDI2Ljg3NTkgMjQuMTI3NiAxNS44MzE0QzI5LjM5MDIgNC43ODY4NyAzOS42NzI3IC0xLjI5OTc4IDQ3LjA5NDEgMi4yMzY0N0w1MS41ODMyIDMuOTU1MzVMMzMuMjQ4NCA0NC45NjE1TDI4LjAzNjYgNDIuMjMyMloiIGZpbGw9IiNGQkRCRDAiLz4KPHBhdGggZD0iTTkuNjQ5MDEgNjIuNDI3OEM5LjYwODcyIDYyLjQyNzggOS41NjgyMSA2Mi40MTQ0IDkuNTM0NSA2Mi4zODcyTDUuMjU1NiA1OC45MjM2QzUuMjE3MzEgNTguODkyNiA1LjE5MzIyIDU4Ljg0NzUgNS4xODg4NSA1OC43OTgzQzUuMTg0NCA1OC43NDkyIDUuMjAwMTIgNTguNzAwNiA1LjIzMjI2IDU4LjY2MzNDNS44MzAwMiA1Ny45NjkxIDE5Ljg3ODQgNDEuNjU5NyAyMC4yNjYgNDEuMzI4M0MyMC41Mjc4IDQxLjEwNDEgMjAuODIyNiA0MC45NzM4IDIxLjE0MjkgNDAuOTQwNUMyMS4xNTUgNDAuOTI2NyAyMS4xNjk0IDQwLjkxNDYgMjEuMTg1OCA0MC45MDVDMjEuMjE1MyA0MC44ODc0IDIxLjI0ODEgNDAuODc4OSAyMS4yODA3IDQwLjg3ODlDMjEuMjkzNSA0MC44Nzg5IDIxLjMwNjQgNDAuODgwMyAyMS4zMTkgNDAuODgyOUMyMS4zNzY2IDQwLjg5MDEgMjEuNDM0MyA0MC44OTYxIDIxLjQ5MjEgNDAuOTAyMUMyMS42MzQ3IDQwLjkxNzMgMjEuNzgyNCA0MC45MzI5IDIxLjkyOSA0MC45NjIyQzIyLjc3MzcgNDEuMTMxNCAyMy41MjY4IDQxLjU2MTkgMjQuMjMxNCA0Mi4yNzgyTDI0LjI3MDUgNDIuMzE4QzI0Ljc0OTggNDIuODA0MyAyNS4zNDYzIDQzLjQwOTcgMjUuMzQ2MyA0NC42MjAyQzI1LjM0NjMgNDQuNjM2NyAyNS4zNDQgNDQuNjUzMiAyNS4zMzk1IDQ0LjY2OTNDMjUuMjY3NCA0NC45MjczIDE1LjU2MzMgNTUuODY4IDkuNzg1MTUgNjIuMzY2NkM5Ljc0OTMzIDYyLjQwNyA5LjY5OTM1IDYyLjQyNzggOS42NDkwMSA2Mi40Mjc4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIxLjI4MjkgNDEuMDU5MUgyMS4yODQxSDIxLjI4MjlaTTIxLjI4MjkgNDEuMDU5MUwyMS4yODA0IDQxLjA2MTZDMjEuMjc5OSA0MS4wNjE1IDIxLjI3OTMgNDEuMDYxNCAyMS4yNzg4IDQxLjA2MTRMMjEuMjgyOSA0MS4wNTkxWk0yMS4yODA0IDQxLjA2MTZDMjEuNDg0OCA0MS4wODcyIDIxLjY5MTcgNDEuMTAwNCAyMS44OTMyIDQxLjE0MDhDMjIuNzY4OSA0MS4zMTYzIDIzLjQ4NjEgNDEuNzgwMyAyNC4xMDE1IDQyLjQwNTlDMjQuNTkwOSA0Mi45MDM0IDI1LjE2NDEgNDMuNDUzMiAyNS4xNjQxIDQ0LjYyMDJDMjUuMDkyNiA0NC44NzYyIDkuNjQ5MDQgNjIuMjQ1NyA5LjY0OTA0IDYyLjI0NTdMNS4zNzAwOSA1OC43ODJDNS4zNzAwOSA1OC43ODIgMjAuMDAyNyA0MS43OTMgMjAuMzg0MyA0MS40NjY1QzIwLjYyNDkgNDEuMjYwNiAyMC45MDQxIDQxLjEzNTEgMjEuMjI1MiA0MS4xMTYzQzIxLjI0MzYgNDEuMDk4IDIxLjI2MiA0MS4wNzk4IDIxLjI4MDQgNDEuMDYxNlpNMjEuMjg0IDQwLjY5NDhIMjEuMjgyOUMyMS4yMDY1IDQwLjY5NDggMjEuMTM1NSA0MC43MTg0IDIxLjA3NjkgNDAuNzU4NkMyMS4wNzM0IDQwLjc2MTEgMjEuMDY5OSA0MC43NjM1IDIxLjA2NjQgNDAuNzY2MUMyMC43MzEyIDQwLjgxMjIgMjAuNDIyNiA0MC45NTQ0IDIwLjE0NzQgNDEuMTg5OEMxOS43NjQzIDQxLjUxNzcgNy41NDA2MyA1NS43MDM4IDUuMDk0MTEgNTguNTQ0M0M1LjAyOTgyIDU4LjYxODkgNC45OTg1IDU4LjcxNjUgNS4wMDczMiA1OC44MTQ2QzUuMDE2MTUgNTguOTEyNyA1LjA2NDMzIDU5LjAwMzEgNS4xNDA5MiA1OS4wNjUxTDkuNDE5ODcgNjIuNTI4OEM5LjQ4NzE2IDYyLjU4MzMgOS41NjgyNCA2Mi42MSA5LjY0ODg4IDYyLjYxQzkuNzQ5NSA2Mi42MSA5Ljg0OTQ1IDYyLjU2ODQgOS45MjEyMiA2Mi40ODc3QzkuOTU5ODMgNjIuNDQ0MyAxMy44MjY3IDU4LjA5NSAxNy42NTI1IDUzLjc3MDNDMjUuNDQ3NiA0NC45NTg5IDI1LjQ3ODggNDQuODQ3MyAyNS41MTQ5IDQ0LjcxODJDMjUuNTIzOCA0NC42ODYzIDI1LjUyODMgNDQuNjUzNCAyNS41MjgzIDQ0LjYyMDJDMjUuNTI4MyA0My4zMzQ4IDI0LjkwMjggNDIuNzAwMSAyNC40MDAxIDQyLjE5TDI0LjM2MTIgNDIuMTUwNUMyMy42MzAyIDQxLjQwNzQgMjIuODQ2MyA0MC45NjAzIDIxLjk2NDggNDAuNzgzN0MyMS44MTAxIDQwLjc1MjcgMjEuNjU4NiA0MC43MzY2IDIxLjUxMiA0MC43MjExQzIxLjQ2NTkgNDAuNzE2MiAyMS40MTk3IDQwLjcxMTMgMjEuMzczNyA0MC43MDU5QzIxLjM0NSA0MC42OTg3IDIxLjMxNSA0MC42OTQ4IDIxLjI4NCA0MC42OTQ4WiIgZmlsbD0iIzM3NDg3NCIvPgo8cGF0aCBkPSJNMjQuOTYzOSA0NC4yMDU1QzI0Ljk1OTUgNDMuNDcwMiAyNC41OTA5IDQyLjkwMzQgMjQuMTAxNSA0Mi40MDU5QzIzLjQ4NjEgNDEuNzgwMyAyMi43NjkgNDEuMzE2MyAyMS44OTMyIDQxLjE0MDhDMjEuNjkxMiA0MS4xMDA0IDIxLjQ4MzggNDEuMDg3MiAyMS4yNzg4IDQxLjA2MTRDMjEuMjc4OCA0MS4wNjE0IDIxLjM1NDQgNDAuOTE1NiAyMS40MDY0IDQwLjg1NTRDMjIuMTU1NCAzOS45ODc2IDIyLjkwNzMgMzkuMTIyMyAyMy42NTg1IDM4LjI1NjRDMjMuOTI5NCAzOC4wNDMxIDI0LjIyMzUgMzcuOTA2MSAyNC41ODA0IDM3Ljg5NDJDMjUuMjM5OCAzNy44NzIyIDI1LjgwMjcgMzguMTA1MiAyNi4zMDIzIDM4LjUwOTRDMjYuNzUzNCAzOC44NzQ0IDI3LjE1MTQgMzkuMjkyOCAyNy40MDI1IDM5LjgyMzNDMjcuNzA0MyA0MC40NjEgMjcuNjg2NiA0MS4wODMxIDI3LjI1MDYgNDEuNjY1MkMyNy4yNTA2IDQxLjY2NTIgMjcuMTE2MSA0MS43NjU5IDI3LjA2MTYgNDEuODI3NEMyNi4zNjEgNDIuNjE4OCAyNS42NjI4IDQzLjQxMjQgMjQuOTYzOSA0NC4yMDU1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTM3LjQ3OTUgNDUuNjE4MkMzNS44MzA2IDQ1LjYxOCAzNC4yNzIxIDQ1LjI3MzYgMzIuODQ3MyA0NC41OTQ1QzI5LjIwMTUgNDIuODU3NSAyNi43ODE5IDM5LjEyMDQgMjYuMDM0NSAzNC4wNzIyQzI1LjI5MDkgMjkuMDUwMyAyNi4yOTE2IDIzLjMyNTEgMjguODUyMiAxNy45NTEyQzMzLjA0MzEgOS4xNTU5MSA0MC41MDg1IDMuMjQ2NzcgNDcuNDI5MiAzLjI0Njc3QzQ5LjA3NzcgMy4yNDY3NyA1MC42MzYyIDMuNTkwOTcgNTIuMDYxNCA0LjI3MDE5QzU5LjU2MTYgNy44NDM4NiA2MS4zNTM4IDE5Ljc5NjMgNTYuMDU2NSAzMC45MTM3QzUxLjg2NTggMzkuNzA4NiA0NC40MDA0IDQ1LjYxODIgMzcuNDgxIDQ1LjYxODJMMzcuNDc5NSA0NS42MTgyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQ3LjQyOTIgMy40Mjg5M0M0OS4wMTUzIDMuNDI4OTMgNTAuNTUzIDMuNzUzMiA1MS45ODMxIDQuNDM0NjJDNTkuNDA0NiA3Ljk3MDgyIDYxLjE1NDcgMTkuNzkwOSA1NS44OTIxIDMwLjgzNTRDNTEuNjQzNSAzOS43NTE4IDQ0LjEyNDcgNDUuNDM2IDM3LjQ3OTQgNDUuNDM2QzM1Ljg5MzMgNDUuNDM2IDM0LjM1NTYgNDUuMTExNyAzMi45MjU1IDQ0LjQzMDNDMjUuNTA0MSA0MC44OTQxIDIzLjc1NCAyOS4wNzQgMjkuMDE2NSAxOC4wMjk1QzMzLjI2NTEgOS4xMTMxMyA0MC43ODM5IDMuNDI4OTMgNDcuNDI5MiAzLjQyODkzWk00Ny40MjkyIDMuMDY0N0M0NC4wNDUzIDMuMDY0NyA0MC40NzM0IDQuNDU5NjIgMzcuMDk5NyA3LjA5ODY5QzMzLjY4MDcgOS43NzMxOCAzMC43NzE5IDEzLjQ5ODggMjguNjg3NyAxNy44NzI5QzI2LjExMTcgMjMuMjc5MSAyNS4xMDU0IDI5LjA0MTYgMjUuODU0MiAzNC4wOTg5QzI2LjYxMDkgMzkuMjA5MSAyOS4wNjY1IDQyLjk5NSAzMi43Njg5IDQ0Ljc1OTFDMzQuMjE4NyA0NS40NSAzNS44MDM2IDQ1LjgwMDMgMzcuNDc5NCA0NS44MDAzQzQwLjg2MzMgNDUuODAwMyA0NC40MzUyIDQ0LjQwNTMgNDcuODA4OSA0MS43NjYyQzUxLjIyNzkgMzkuMDkxOCA1NC4xMzY3IDM1LjM2NjEgNTYuMjIwOSAzMC45OTIxQzU4Ljc5NjkgMjUuNTg1OCA1OS44MDMyIDE5LjgyMzMgNTkuMDU0NCAxNC43NjZDNTguMjk3NyA5LjY1NTgzIDU1Ljg0MjEgNS44Njk5NSA1Mi4xMzk3IDQuMTA1ODRDNTAuNjg5OSAzLjQxNDk4IDQ5LjEwNSAzLjA2NDcgNDcuNDI5MiAzLjA2NDdaIiBmaWxsPSIjMzc0ODc0Ii8+CjxwYXRoIGQ9Ik01Mi43Mzk1IDI5LjMzMzNDNTYuNzY3NSAyMC44Nzk4IDU1LjQyOCAxMS44MzI4IDQ5Ljc0NzYgOS4xMjYxOEM0NC4wNjczIDYuNDE5NTUgMzYuMTk3MSAxMS4wNzgyIDMyLjE2OTEgMTkuNTMxN0MyOC4xNDEyIDI3Ljk4NTEgMjkuNDgwNyAzNy4wMzIxIDM1LjE2MTEgMzkuNzM4N0M0MC44NDE0IDQyLjQ0NTQgNDguNzExNiAzNy43ODY3IDUyLjczOTUgMjkuMzMzM1oiIGZpbGw9IiNGQkRCRDAiLz4KPHBhdGggZD0iTTQ5LjY4NDYgMjcuNDIwM0M1My4xMjQzIDIwLjIwMTQgNTIuNjQ2OSAxMi41NTMxIDQ4Ljg5NzUgOC43ODY1MkM0My4zMDUgNi44ODk3IDM2IDExLjQ5MTggMzIuMTY5MSAxOS41MzE2QzI4LjcyOTQgMjYuNzUwNSAyOS4yMDY4IDM0LjM5ODggMzIuOTU2MiAzOC4xNjU0QzM4LjU0ODcgNDAuMDYyMyA0NS44NTM3IDM1LjQ2MDEgNDkuNjg0NiAyNy40MjAzWiIgZmlsbD0iI0MxREJGNiIvPgo8cGF0aCBkPSJNMzUuODA1OCAyMC4xOTA5QzM1Ljc5OTMgMTkuNzM5OCAzNS45ODQyIDE5LjQ2MzggMzYuMTI0MSAxOS4xODQ0QzM2LjcxMTQgMTguMDExNiAzNy4zODc4IDE2Ljg5MjUgMzguMTkwOCAxNS44NTA5QzM5LjI5NzkgMTQuNDE0NiA0MC41NDM1IDEzLjEyNTEgNDIuMDU4NyAxMi4xMTI0QzQyLjM1OTIgMTEuOTExNiA0Mi42NDU2IDExLjY4NzggNDIuOTc3NyAxMS41Mzg1QzQzLjI4MzQgMTEuNDAxIDQzLjY0ODYgMTEuNTEzNSA0My43ODkgMTEuNzgyM0M0My45Mzk4IDEyLjA3MTQgNDMuODQ1OCAxMi40MDE5IDQzLjU1NTUgMTIuNTkxM0M0My40NDcyIDEyLjY2MTkgNDMuMzM0MyAxMi43MjUyIDQzLjIyMzcgMTIuNzkyMkM0MS45ODg0IDEzLjU0MiA0MC45NDI2IDE0LjUwODIgMzkuOTgzMiAxNS41ODIxQzM4LjkwMTIgMTYuNzkzMiAzOC4wMjgzIDE4LjE0MDEgMzcuMjkxOSAxOS41ODA4QzM3LjE3MDYgMTkuODE4MiAzNy4wNjY1IDIwLjA2NDUgMzYuOTYwMyAyMC4zMDkyQzM2Ljg0NDUgMjAuNTc2IDM2LjU1MjcgMjAuNzU3OSAzNi4zMDQ4IDIwLjcwOTlDMzYuMDA0NiAyMC42NTE4IDM1LjgwNTEgMjAuMzk4NCAzNS44MDU4IDIwLjE5MDlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOS42NDkxMSA2Mi4yNDU4QzEwLjI5NSA2MS40NDc5IDkuODYwNyA2MC4wMjU3IDguNjc5MTEgNTkuMDY5MkM3LjQ5NzUxIDU4LjExMjcgNi4wMTYwNCA1Ny45ODQyIDUuMzcwMTYgNTguNzgyMUM0LjcyNDI4IDU5LjU4IDUuMTU4NTYgNjEuMDAyMiA2LjM0MDE2IDYxLjk1ODdDNy41MjE3NSA2Mi45MTUxIDkuMDAzMjIgNjMuMDQzNyA5LjY0OTExIDYyLjI0NThaIiBmaWxsPSIjRkJEQkQwIi8+CjxwYXRoIGQ9Ik00Mi41NDA0IDEuMjMwNzVDNDQuMTI2NSAxLjIzMDc1IDQ1LjY2NDEgMS41NTUwNyA0Ny4wOTQyIDIuMjM2NDRMNTEuNDY5OCA0LjIwOTExQzUxLjY0MjEgNC4yNzk4IDUxLjgxMzYgNC4zNTM4MiA1MS45ODMxIDQuNDM0NTVDNTkuNDA0NSA3Ljk3MDgyIDYxLjE1NDYgMTkuNzkwOCA1NS44OTIxIDMwLjgzNTRDNTEuNjQzOSAzOS43NTA4IDQ0LjEyNTEgNDUuNDM0NiAzNy40ODA0IDQ1LjQzNDZDMzYuMDY1MSA0NS40MzQ2IDM0LjY4OTQgNDUuMTc2NyAzMy4zOTM0IDQ0LjYzNzNMMjguMDM2NyA0Mi4yMzIxQzI3LjcyMzggNDIuMDgzMSAyNy40MjQ5IDQxLjkxNDEgMjcuMTMyMyA0MS43MzYzQzI3LjEwNzYgNDEuNzY1OSAyNy4wODY1IDQxLjc5OTMgMjcuMDYxNiA0MS44Mjc1QzI2LjQwOTkgNDIuNTYzNiAyNS43NjA0IDQzLjMwMTcgMjUuMTEwNCA0NC4wMzk0QzI1LjE0NDcgNDQuMjE0OCAyNS4xNjQyIDQ0LjQwNzEgMjUuMTY0MiA0NC42MjAzQzI1LjA5MjYgNDQuODc2MyA5LjY0OTA5IDYyLjI0NTcgOS42NDkwOSA2Mi4yNDU3QzkuMzY0MjcgNjIuNTk3NSA4LjkxNyA2Mi43NjkyIDguNDA0NTkgNjIuNzY5MkM3Ljc1NDk5IDYyLjc2OTIgNy4wMDA3IDYyLjQ5MzMgNi4zNDAxNSA2MS45NTg2QzUuMTU4NTUgNjEuMDAyMiA0LjcyNDI3IDU5LjU4IDUuMzcwMTcgNTguNzgyQzUuMzcwMTcgNTguNzgyIDIwLjAwMjggNDEuNzkzIDIwLjM4NDMgNDEuNDY2NUMyMC42MjUgNDEuMjYwNiAyMC45MDQyIDQxLjEzNTEgMjEuMjI1MyA0MS4xMTYzQzIxLjI0MzcgNDEuMDk4IDIxLjI2MjEgNDEuMDc5OCAyMS4yODA1IDQxLjA2MTVDMjEuMjc5OSA0MS4wNjE1IDIxLjI3OTQgNDEuMDYxNCAyMS4yNzg5IDQxLjA2MTRDMjEuMjU5NCA0MC45NTQ5IDIxLjM1NDUgNDAuOTE1NiAyMS40MDY0IDQwLjg1NTNDMjIuMTQ3MiAzOS45OTcxIDIyLjg5MDkgMzkuMTQxMiAyMy42MzM5IDM4LjI4NDlDMjAuMTgxMiAzMi45NjIzIDIwLjE1MTIgMjQuMTc2NyAyNC4xMjc3IDE1LjgzMTNDMjguMzc2MiA2LjkxNDk2IDM1Ljg5NSAxLjIzMDc1IDQyLjU0MDQgMS4yMzA3NVpNNDIuNTQwNCAwLjMxNjQ2N0MzNS4zNDMyIDAuMzE2NDY3IDI3LjYxMiA2LjM5MzM2IDIzLjMwMjMgMTUuNDM4QzE5LjQyODcgMjMuNTY3NSAxOS4xMzkyIDMyLjM5OTYgMjIuNTA0MSAzOC4xOTE3QzIxLjkxNjIgMzguODY5MiAyMS4zMjgzIDM5LjU0NjcgMjAuNzQyMiA0MC4yMjU3QzIwLjcyMDEgNDAuMjQ1NyAyMC42OTkyIDQwLjI2NTkgMjAuNjc5NCA0MC4yODYyQzIwLjM1OTEgNDAuMzc3MyAyMC4wNjEyIDQwLjUzOTcgMTkuNzg5OSA0MC43NzE4QzE5LjQxMTkgNDEuMDk1MiAxMC4xNTkyIDUxLjgyMDggNC42NzczOSA1OC4xODU0QzQuNjcxMzMgNTguMTkyNCA0LjY2NTM0IDU4LjE5OTUgNC42NTk0OSA1OC4yMDY4QzQuMTU3MzkgNTguODI3MSA0LjAyNDY4IDU5LjY5MTMgNC4yOTU0IDYwLjU3NzlDNC41MzEzMSA2MS4zNTA0IDUuMDUzMTggNjIuMDkzMSA1Ljc2NDg5IDYyLjY2OTJDNi41NjEyMSA2My4zMTM4IDcuNTIzMzMgNjMuNjgzNSA4LjQwNDU0IDYzLjY4MzVDOS4yMDYwNyA2My42ODM1IDkuODkzOTYgNjMuMzg0IDEwLjM0NDYgNjIuODM5NEMxMC41ODg1IDYyLjU2NSAxNC4zNDU5IDU4LjMzODMgMTguMDY0NSA1NC4xMzQ4QzIwLjMxMjQgNTEuNTkzOSAyMi4xMDY2IDQ5LjU1ODMgMjMuMzk3NSA0OC4wODQ2QzI1Ljk2NDIgNDUuMTU0NCAyNS45NzAzIDQ1LjEzMjYgMjYuMDQ0NyA0NC44NjYzQzI2LjA2NzEgNDQuNzg2MiAyNi4wNzg0IDQ0LjcwMzQgMjYuMDc4NCA0NC42MjAzQzI2LjA3ODQgNDQuNTI0IDI2LjA3NTIgNDQuNDI4NiAyNi4wNjg4IDQ0LjMzNDZMMjYuMTA3OSA0NC4yOTAyQzI2LjUxNTcgNDMuODI3MiAyNi45MjM2IDQzLjM2NDIgMjcuMzMyMSA0Mi45MDE3QzI3LjQzNzcgNDIuOTU3MSAyNy41NDA5IDQzLjAwODggMjcuNjQzNSA0My4wNTc2QzI3LjY0OTcgNDMuMDYwNSAyNy42NTU5IDQzLjA2MzQgMjcuNjYyMSA0My4wNjYyTDMzLjAxODkgNDUuNDcxNEMzMy4wMjY2IDQ1LjQ3NDggMzMuMDM0MyA0NS40NzgxIDMzLjA0MjEgNDUuNDgxNEMzNC40MjUgNDYuMDU3IDM1LjkxODIgNDYuMzQ4OSAzNy40ODA0IDQ2LjM0ODlDNDQuNjc3MyA0Ni4zNDg5IDUyLjQwODEgNDAuMjcyNSA1Ni43MTc0IDMxLjIyODZDNTkuMzM5OSAyNS43MjQ4IDYwLjM2MzEgMTkuODQ5NyA1OS41OTg1IDE0LjY4NTRDNTguODE0MSA5LjM4ODIyIDU2LjI0OTMgNS40NTQ1NyA1Mi4zNzYzIDMuNjA5MTVDNTIuMjExMiAzLjUzMDUyIDUyLjAzNzcgMy40NTQxNCA1MS44MzE0IDMuMzY5MjRMNDcuNDc4NiAxLjQwNjg3QzQ1Ljk1NjcgMC42ODMzNyA0NC4yOTUyIDAuMzE2NDY3IDQyLjU0MDQgMC4zMTY0NjdaIiBmaWxsPSIjMzc0ODc0Ii8+CiAgIDx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiIHg9IjMyIiB5PSI3NSIgZm9udC1zaXplPSI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iQ2F2ZWF0IiBmb250LXN0eWxlPSJub3JtYWwiIGZvbnQtd2VpZ2h0PSI0MDAiIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDAsMCwwKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyI+Tm8gcmVjb3JkIGZvdW5kLjwvdGV4dD4KICAgPHRleHQgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeD0iMzIiIHk9Ijg1IiBmb250LXNpemU9IjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJDYXZlYXQiIGZvbnQtc3R5bGU9Im5vcm1hbCIgZm9udC13ZWlnaHQ9IjQwMCIgc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMCwwLDApOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IHdoaXRlLXNwYWNlOiBwcmU7Ij5UcnkgdXNpbmcgZGlmZmVyZW50IGtleXdvcmRzLjwvdGV4dD4KICAgPHN0eWxlPgpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0NhdmVhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIHNyYzogdXJsKGRhdGE6Zm9udC90dGY7YmFzZTY0LGQwOUdNZ0FCQUFBQUFMNmNBQkFBQUFBQnVrUUFBTDQzQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHb0VnRzRHRGJCeVhPQVpnUDFOVVFWUXVBSVVNRVFnS2hhdGtnK3NxQzRWQ0FBRTJBaVFEaW40RUlBV0RmZ2VPSXd3SFd5OVdVU09lZGdLLzJ3RWNmYlI0dTB0VXJ4bnU3bGFGNlVnT3BZS05xOHl3Y1dDQ2JiNUU4UCtmbEhUSUdNQWJBUGhmMHlxQ0JJSms3azZCck16Z0hkRkJ4MUdSeUVZNk9kd3gxeXdXeWJhcEhjTUs2dFhsQkpobmJBWjJ5bHVHZWtLRTVoSTNMWEZoR1lGOGZPdU4zbkVMRHhYNEp3R2hJSDY1Y3p3RDEyL2QvRy9TZFlyM0szbXptMTlTbGJyMEdPbVU0cFRNRk42c1IweHhIV0M3RGdpUm9obGtrWXVQeEQvdlgxU2QrM29BYnM4YWpnQkdJQ0lhRWY3d05MZC9kL2R1emRnYVJxMmdsYkdOMGJvbU9nU3BNa0RRUmlYRUtNb0tETkRHaW05a2ZZeitmbEhGcWJpSTR1LzgvOGNCNjl5WE5XbEFpVWJTQkJJVWFCVHNMT2lDTHVHS0xORWYrTDhaL0JvWkQwcUhRRTN5Vi9PbjYxaVRlZmI5V0xzUHZvZ3RZdHVZZVFsVnpRenhqblFLMGFVRkNpQWcvRWZtRmpLamRPcFZEUEdmY25zclY3aGFZQUtoSldFR2t2NGd1bEQzaEttY1dGWk9QZHg3M2oxY0tzWm5UUkQ3b3VTYjhwS255TFlkYzAyVVRBQVV3RDlVZEk4ZnVCNS9EajllWGprWk9SazVhZmxTRWltSnRNVHZOYlVTVXpHVk8rdU1uaTRMVVNtUS9xb0NHajFxelM0YUFBbk9VSHVpUk1xczk3d2JxR3l5MXJnbkdJTVJDSWtVcy9heHM4azFLVmFpWDlQUFdmcngzYVUwd2dKWUtGOVJpYjRuWmV5a3IrTTAyZ3FCK2I5cVdzV2YyU1BlM1A0U21ZRkZUVGtoMDRJcHVWYTUxLzA0VHVVODBSdWpWNjNaL09ib3EzMjFyNEFTU0FRbElVQUNHYXFSSlhXaGFybld0ZFZtUHFmK2YzWnJ0K25uWFAzTmJTcWFWTy9acW9FVzJzbU1ORmdNekJBa3NFR0FEYmIwbm1UTDZhMTkveDFwVURZR3h1Um5qaUs0d1JqdzBQYi9mMXF6dWZ2SUZyZnZoTlpDTDM3NEdXSDJvTEFJMnllWk9iTXZmMXUya2gxYUM2VjNEUTZocXNMTkxyWDRya3EzclNrd2pvUFFDT0dCU0U3ay93TjZNUHUwMUI0MDZWTlRteTArSUdnbUU1WHhQRFVscFg0anJ3c1VDajdFUEtGSUo2MmwrYmV6b3hTMFNZZEtxU2pJQlhXZUFCWkNENTZ2NWZ0SmRiWjFOMGE4dFdnSm0zM3JqTXlnMU9GZHovUy9hb2VrWkZHbkFFaDNqMERQUENjb0wwQU9pUnN1Z1o3Ly9kN1Y5M2FIbVlUNDhJdG1FaDQ1eTY2R3FMZVJ6TFM2UlhOSmI2Uy9oVVRLNHFHWjVrd21jYWhVazFEdzBvaUVTTVQvZnpQTjBtcGFVTVpGVURiS0pwUVVaTTRGa1RLRjd1UlY5LzBpdXQ2dkpydmZiMUxBTDJBRS9vSjB3Q3FPRHZnTDQzNWpQRWdaN3lQbmRyZUtJMU10MitDc2dYWjlwblNEM0VZYjVCc2wyb25tS0ZyamduQ1RlUE5vZWZpNE5ON2tqU2VvSVkxUWFYOVRHbTBXUTVsUXcxSUZZcnBBSjNhZzNlQ0EvT0R6Skw1OU02ZDFkUGtSRVZHN015dEhNampiSXhDVEdsYzF3Z2doVkczV0RPbjU4cXRkODBxUzN1ZDlxbXBGUkl3Ukk2SldheFpoR2hoakt4aVEyL3BmVEl0NElJaTNVK0R1aTJ6Mi8yUTcrY3FKdnMxaFVHcEpJMjNnUjA3N3VzL3RXUzIxaTRwSTRzMWZDSm9iWVdST0UvenBpZ0pGZDVCVHFvZ05RWmFtZmc2NWJNUWlqanlXTzN2d1lDOCtYS2FXNnpYeVpNM2NZZzdQTTU4WFdzSXJyZUllYTNpZGRZVWJiRzQwUVFtREpUM3BNQ2tNVEp3MEhFb1JBQ05KdjFkZ0tBZGgwRFhYRG9rQjlBTjNxNW9JNkNCQTE3VTNzbmtIN0ZVeEVmd05aQ29RZkUwSTFZQkQ4RTZFWEIxb3ZUQUZTQWdZRUJTUUVGOE9vVUtEazdKbWhsVkZTRXBydTZuYW10NEZmYVloZ3hlVFFQdXRMUCtodG9VRzNSdjcyNU1nN2NKNVFsc2ZtbXlIb00zOWo3NDUxV2s4Um1Ld3VqdzRvdjZ0MTlRLzZQQmJEWUFmNUN2d2lmcTlyUS9UNm8zT3YvS004Qmdld0YyNEV6Y2IxN1pxRDdWQ3VzdWx6MjVPclUwQmRhZ3dpb01iR29SN1Y4YkwyMWVNYkN5c2k5WDFpcVBtTDEyeWNnSmJXdFpsWnJQYTltZ2dHQ0IvdjF5K0lIOVZsLyt3VjN1eWUwRGUyYVdkM1hIaEVQWmdoNzBaeUkyNEdwZFducitZRnE2OHptbUpMOW1MVzZFMWFMTGJSamU4aUZWZTUyd2lNV3ZQeE5IT0VUTzZpb0VXTFRXOVpPZUJVNW51bXRyZTRSbU1RYWZ3MlhweUVqWFhqVDNkdVdVNDF4RFNwaVVUTkRnSVpLVlFOb3prN2tsdEgvbVVSbldMblZseVdnc3ZpMDU2T2RkMnZwdjBTcS9OM1hTUWoxNDJ4TFlGUWhiM0dzNTQ4T1FYMExyR0pjWjZGZG5DSjA1Nms0cFpIVG5iT0h5am1QTUlBQmtXVnRneEZsZmtlT09IbGlCQ2lTT0J0TTkwQk1EYzVkR3ZYUWdCenBUb1pHdHMxUDBOSVVFSlRraENFNVowS0JJa2VldmkveWY3dkJiNURIZy9lSE84dWoxalBhNTRkS2ttVk4vZEtjclJpdmtLaW55Wlc3dWJpMnRhcnhpN1k0emFaWTV6anRNRko2SERLdnZ6OWs1MnUreU10cWVsNHlSMUVpZUpVSHhCdkV1MFE3aExtQ1hVMjl5eEhyRk9zaVpacFZtTVdod1ZWQW5zekZmd3ovTDF2SEhjODl3R3puSFdEdVlLWmdkekhqT0w4WXhCTUoxbEdrZC9aWExGWkE4dGlkSkVWcEZwcEhGRU5lRWsvSUk5d0M1aFc3RWVyQU9iaDJWaENaZzNKc01FNkQzMEFyb0hYWWEyb2pWb0JocUYrcUpPS0ExNWd6eEN0aUx6a0FwNEtIUElKSDVUSVV4Q1lVeWZRUng4T0V2V3lJUkVhQ1JQMFRuL2FHb01Od3dxWHJoOHBES1hyb3l2T3ZYWUdxa0lrNTlGbW1hNktKMksvWUptaFVVc3VINXF5UTF0WGN2dVBIeHkvNU5uNno1ODIvVEgyQlYzSCt3bE12akxkTjhRU3BDN0ZVK3FtclJuQnNhZGZEcHhhTzR0b0V2UGNsRytJNDI1enRCcFZsMU0yNURYU2NDdjZWdkdEZGdyZlhYUUlYSklUTnRqeHpRMi9odXJuckdscVJIZHZ6MFh4V3A4NmJXbk16STI2eW9qODdDbHY2eDZ2NDMxcjdtS0dwKytBY05HZWxyZXA2MEswSWsrUDczTld2aGsrRHVsS1VOTFU4L3AwNGN6aGRNWjlUSXcrcnNiZU5xNndNUmNiVlhmL3BxbS91dUdldEQ2Wk1Lbll6L3pJK0FROG9rZWZqVXdIeDNOVXNVYjFnRTRsRldkL2V0bEx3dExHcHZkd05Oa1JEVnI2cCs1M0FBbFVKeGpYQlVZUVZUUWNBaUl5Q2lvb2QzL2szR0ZFU215bmpvYUxpMlpuU1drUzZnU1hvbVRtSFFuOHo3WmtwTmNVa3JLb2dwVm0zMDFGTS9qMjdWd01zTTVJOUdvTWVNM2s3dG9PZXQxTnVZMnMyMjcyY04rRG5DWVkzSWQzVjZQODRUbnZGWi9MdVFPc0lHcU9UTmV2T1B6eGpjS0JnVUxZdVl6WkVjWkdHeDM0azBVWXppV25qSENuR0tGSGNOekJDSWtJb2xVa1hVVVVibWEvWUNuQy9tYU1NUG51eVF5VVRHeC9qbitKcmd3U0w2UmtsVHZqaVFySjd1dXJtUnNaS1NoVDlzWDJ0T0pydlJrdmVsVGpOWHVVRGU1WkdnZWZvM0lZRDVheUdKdktjdlp5clY2MTZ2ZHViYmwzcHlkZWZjWWtjRmxkSlhyM2sxdXM3dnIvajVXdTZOM0w2N2V5djhCNWxZRE9UblhGelFJdlJUMUVpeWdoVEg5bWhWbnRuUUxSZFN6Uy9jdTlqM1NhSWxKSmVsdUdRYTNSTDNUSTlVYnA5TFNpNkFydW9JdUdhWmhCWGFqSkZaRWRlb2VvODZCeG85VDhhcDR3V0xLUlN5aFMxVlJuWWxlSTdWZTVoRy9xT3BrVmQ5UHJPUXJ2dGwvcVB3ZEF3anpwTnBNY0NjTDlCYml2eE1ENGhuZlpxYjFxdG53WnZ0ODZMM3p0Um1EUjFWVnZvUlppVm50MmpycU9odFVwN3A4ODJwRzVNN3U4OGdBV0o2WGxXd0t2cFl6RlQrbGtXTUxWcHUvNVBydWdOdkVyV2V3TTQ1Yy9Gd3UyVUM0dWZVVUh2UUp2S0RaOUdndEdzWnBkK0hLWUU2Nksvdm02TXA5ejJOMUlSUHN1c1k2eHJIUGpvR0ZsMnRkNnpxZWNseGpyVVZaTHk5cmpYRWM0OW9TYTRVenhiTUEwSnV1VlZ6RDFadWRCYWlPems4SUlDSWZ1ZG1PMzhuTW04M0xqSWg0a282bzZ3cTBna2U4WExPZFhGVEFKY21MeVdLaEN6d3RQTXl0TmFhSjFoWjAyNm5ja29HQkdNbmYyci9xWGc4VUZWTk5yTldiS2RwMElreS9GV3l0L2RxMVpQUzQrV1pxV0FaN3lyNHFRR2VPY2p4eDR0UmxyZVZuRjhNSGI1QTlIS1laaGdBOXJlY2V4Q0RQb2JvNUc4ejh4RjJsTEYyQjJ1SXd6c3d0ZTIxR3ZMajBLK1NGZUZoWjdtN2ozNDBwUHduVmNZVitQV2tsS0xsOHpLMnZ0Ym9tbVExLyttanhsZHFpSHBYMWFsMjErNE5qOU5YTkxnY1kvNWVRUlRCTjNBbFVvY1IzUGY5YVYyL0NrblhpRWtYMHhXUG4zR3VLVmhhVVU5Z3Ntb2h1SWp6eEpDRTZmVWtFUjNoVVRJanlvSEc2UThJZWxVK21Ub0VwdnU0SitQT0pjTTlkeFJOWUhhUmdqa0FsbzYrbngxY2pZRVFtTWFUR2dJeGVicmRPUlZVWVFESDhsZEpZSkdRWGlIT0pYbHBXaUl5dzEyUUVCZ2lFSHZDdmdVZFlpbjBGVEU1OHVpTmlIZksvWU8vVlpmWTZQdDRIRzdrZWJBWUhQaDZTRTdwRFRTNmtOSyszb2hPaklzbnA5UjFuVnZaWkZTczdXYlcrWUU5aVFaL1pLUklVMzVyME9TTjdhcm13blJOUFhTRkNDNmYwWjlPVGZVQkU5SmZzbk5NM3hRSjl6QnNkbTl2dDFrR1JlbHE0ZFFXY0tjYkJHUUdVallLbFhyTmx1dFhxVWJmWmtPaG5KRmo3UmhGOVBxMXc0V3NoMXRHTk43R0w5S1dVb1lsTmFaMXpxUklxR3FnU01SZFQ5cThueDdTQ0tNS3RTNGtsNTJwekcwMXVzZlR5Q1hJUUNSSU1iUzZjMWhySkFmZWdiNlJTUE84bElFRlh2VmNDUm9RSnJVcGh5OGVOcSs4TU1jOWxtdG9jN21OREl6b2VQeDFlU2NMYUoyamIxQjdibVdmdGluNXVqclRFQm9kSUVVMTFjbzYyT0tUNzlPeElGaTg0ejBSbXh6bDBSWGVwNkNtREFvcDR1djA4R3JyT1o1SHo3VVVJa0lxZU9DaWdlS2F2cUpZbGNkWmcxUFFCcHVwZENJZ2lHdDA5MTY2NDZWV3lnR1BWbnFaYmhSQ2szMzRLTXZMMnFNV3JFZFl3d2hCRExmY0tHY1dDMGdwTWY5ZE82cVBmd3Y4ZndnQzZjOWFrQlUxeG92MXhiRU9SK2x1aDhBNlBPMlBxcFc0V3ozMFJGQ1hPUVBQaGNRUzRFbmVoUXF0Y0tXS2xjQWovd2dpVDFReUl2aEdEbTFtVDBVYThTQVZhYk1GQnFMUm9BUkRzeVcyZVEvenNMNDlac3MyWFVodS9KTnhBZzZ0NnkxL2VWa1VVcUV2WncwU3ZpVmluZExsZ1RFVmpQRFlVU2xRODN3VzV0WjRHTlJVU0JBYTgwYkRRUGZuUXpyWGw4WVVOSWRreFBLNWlJc2t0RkJtSFZ5MlJ5Wi9GRCszRFkxQS93dVhXQnJaTTlIdHlDeGlKUkFUSmFOc3lUUVlZaVVRQUNRSWNBaGlKUklScEFKekFPLzNZRURTbWp0VzUzbEs2OElJcnlvaXFGNE50VWxrcWNQZVRSZGZQN2duR3JIaHFOcUFMVXZla0FpMDB1d0RoSWxFZDZiWXhoSzRzUG1PZWQzNm01bTZCWExuQ1doc0tCZ3R2M2VMNWg5cWF4VTVIVkhzakpEMUN1MzJKRFZqSjIrdm1ra0kxcHNzYnFwUlNHUHNyc0ZHSGkwYlVLTUpvZ3pIZ1NVK1ZqV0FFakFLNEhya0lrRlhCSlUrMGR4UXFwdHNZOU1CRkhNdmkxZ3NNUkNEOGNQWitLNnpUWHE3dUpOLzJGMjJ1cHBOVm5oWmE2ZnhnNnExSjk2Tk1YTTlTMzNoUFd5SlZybk5ONzNuRlZ0VWsxdlhZZmhQc3g2dThQRjRleDNWc1AvVGljVnpYMHlPNC9KVGplbms4OExqOXFCREhjWTE3czU4NHVvbW90SnFVcnNwZ2dNQ21yZjZBWDhHQ3NzZVV3ekYvd3JJSlNKckRhVW53cUtpRWdhb2Z2MkNRbWNkYnRXc1crTURGRE8yV1NpWEx6ckNld0Y2RDFWU0hrUFcwVFpHeVFvSWpUeWVTRWt2WU9mTVFIRmd2eWY4dHBpSnREc3RhdUM2VlZsS0M0WGFsZW44NHozSG9qNmZhci8wRlFkdldCZ0oyNlZ4STQ1NENSOEJCMnRhNjJGTnFzd0FvSWs2NFpBeVFIaU5SSzFBZ2pOTWN5alVNQTlYMkR2SEpmV3FQd0RtTDdHK0pJY2xjdk9LZlNLZ2dNR0FWZnNDQzkwa0JoRXVIQ0ZJM2FlYjdXbS9DRXgxYk1IbU95QXRCR0s5YWdiMlo3cDZuSngwSmhEZUhPb3pVT2QyeFBVRms5aVRQc29Ba3NTTWdXWXZVNFBKNjY3WlhRZ05LUy9OcjExNmMyUEJLVG9NYklBY2psMmlSMHNTRDdoQlNaa2pyYitVendTUHNZQm9LTGhjZXQvc0JTd2o5VWV6RW10YVJwVGJxN0xXUUMzRDdOamFoZ0VjWU03T201NmpqWm1WRW5TeGdjbG12bTB1VEZxcm1NcHRWbkQwTGJYT0xzaGg4S01ZMnBhMmtyU3cxd21rd1VIWXQySks4Z2tKY3l4Rk05UHBmaXBRQzNZeVU0eTNiWEhGZ3BWK2s5T2pnYVpWTnY5MnJXOWdkejZBb1Y5K0tsN0tIcm5nbGg5Z0ZGRk1oNS9WdXdPSjdsdXFRY05GV3M2dXRxeEFsTktuVWFwUlNLcVhiVG92UnZwQlNLcVZVU2ltbFVycnRIQm50QzZucS8yU1VTaW1sMUJXSVN2KzE0bmVieHRuYWlpNTFGVExoRmxGUmxtSTZpQ2dJM0pUQXh0SUtiQzNjYzFSendGdFYrSWRvZGpUc3NRaGJhYTFTOXEwRUw3alcxQTRUNktLbXBiMVN4cmlLQTFTdTFMZmpxUFo0bUE4N0F6Lzl4a2FXUFRqWU5HTUYwNDFCbW9KREptcHRnYlRJNVQwWUNSK2FtVTJibVgvVXRNejE2bmNPTEpLdVBlN2hyLzk1cWRaaGcxSmYwUWcwVGFwdDE1SldVOFBBZ0xTS3FBQ1RIdk9wd05UMFFrNGJOLzJlckROLzB1bEtpOERCN0ZYenoyTzUvM1R2UzRBelhzSnp3Z3dQaHQrNW9oNk12eDV6bnpFdDBtaVFVdzNwd2lXTjJOdERUV1IrSmIzV2JXWjZobUVZWUJpV21RNnlySVRMTUF5ejNaRTNtZ3dqc2dTNE1qSms3eTVzR0JuVFdCYytsM2RuTjIrWk5FTzdMV3drc25lc1ZDQWRKeFlkUG9vaWU2a2Zwb3pOV2V2dWpBci9aVWhydWF3STZXWlBGNDlrUU9TOEF5N3Zja2tTc25OWWpERzVKOEVXOUl3cDcyb2grRy9BbFlDSFgyUmhwb0hXOWNjMXBUVVhjVldJa0NtUGZsazQycTdQdEsrTWUwa2JDSE5pMWhlaFA4cDY4enlRbWMyV01qUzRNUGEwVDJXSzFtTmpLbHlTNUpSWFFMOVJzRlViaHhERXFTQXJLRC8wN0FYWmpCd0JleWlOUTRpL0FDbU40VDVDa2xManZtWkUwL0NXT1g3Zmo2bmMxSmkyaWI5cUtITGRod2ZNb2N1Z0M0V3A5elI0T1h0WjhSUGR5ODFDbEw0N2c4cVY2R1htY3piTitQWWVzOHhhaTRxaVVGTEI2NERrZGlFbFcrS3JvaXE4WmdSUEVIL1BKWHRxVW04emV4dy83ZG02eGx0ZlB1VG55TkNQdDMyVzY1Z2JycnQvN25NZVZIdHBmOVNLbDdIaU9HV05Rdzl5V0xrU3VReGhaY1pIak5xeHRCcjZxbDV5cUlUY2hKUnpQWGpNT29yY0QyTEdWZFFkYy81QXh5NXcyNDB4bW50WkJNZFAxOE1rWnY4dWpBMytMK0ozcUI4UWYzUmd6dXJ1emhpenZnVEkyM1REeVdWVFprRU82RnhuRlFPT0Y0eGJhbnd5STFiZVdJOHh3M01rSWpHdDhJQ0JLRWdTNjhvWGNQOEx0VDBhdE9LZ3BLTHRuSW96T0c0VDFFaTcrdWl2Wk9KaGNnK2l4UDRTVHZndVZFKzd1bDVJNi8zMTMxc3o0SHk2aEdwMXJETFo3d0x3clRPQTg3TnVlR21UTEZGL0E4cEx4ay8xZ1BFd0tKT3lDQkhSWStpbUl4T044SHBkbi9zNHZMQTRoeU0zVDU5b2kwL2xyZW5VV3FlYzF6c1pYU1h6cjZaUzE4NXd5T29jMlZ2bTdLRzdTUkhCMVZxOThDc0FiYzFxSnd6TkwyUDlrV0VFTmtZbEFZTGhsWlNRYnMvTStMSjg2Qlo2a0F6R3d4NDhJa1NMdE5WWUFlTXJCMWp6NkpPOHZRWU12TkN6RU8wMUFoejNLVFo5QUNJcEdDRFQzQ1QwTitqZmE2aGtpMkVCejNaNnhxakFjdXV2a05hVTBpRjFnKzhmMUg0OWNNM3BmVm8vK3NGRVB6OFVHcTlFNXJzTmVINnl0MUxqTDVmL1hPOEV6NmJTdXRabXJpYXBsbWdTbWZHSXF5Z0lGSDNhUVMxS1RPRGtWL2ZRK0g3TjljV3I3RmlKQWNKc3c1QmxFT2JlWXQvTDFFbWhjYWEyRkhBU1NsTUJucEFCSHN6Mnhwa1FZbm5zbUpTOVlGSGMyRDZZUGN1Znc1WlgyMUVTT21Pb0RHdzFuS0hncEZNTUxkR01UWWhDemsrVlE3dTZwMjRMWk9RSG9lMHJjS3lBdDlOa09saWgyU0xpRkdxbkVCZHRhSU5mSHdjQ0J3QjhiWEl6UlhOeGw4SDZEeTNrU04xbS83QU9DVnh3Sm1XQ3FhSVN2TlV3bnB3WGVGZ2xCdkRZejZmb24xU3VnWTdHeWs3eFJUdUNUNzgyRGU4c2VzWlJoYTVwWHExbXJSSndUaC9hZHZGbzBFVUluMWVtL2hLREV0dkdYci84SkZXcVFtU1BoeDNDRm1ESVVxd0Jla3c3VTNvTGNmbzI0RTdadWFhNWdMMUlkQWhRZ1dBcG1uVmQxRmdQWVpxYmZIVDFXU1dvL3h4RU9JNGZCQW8zb0xlK1ZsVVg0MnQ3bWhWVkhMWm1xNkpRcloxNG8rVGJQcTlDUisvWlVMZVlTbm04b1VUMEpjbFhmd1pSYnRITllUWC9GUlZwRThQUHJ1QVd4TXQzdVZPdnRWbjJHYjVVWTFKdnZZVE5pQVFnVGFsU2ZFNUpXb2tOV1JmUSs3MlFodEJocVZRQzRaeFRWd3MrYVdlSGJ1WkRCSDV6WGxsL0l0REpzdjloSzJhbHR5RXFLbTVkQ1FkejMvZ2Q4RHBXZTcxU0RkVG9pMGN6WHNIaUszcUxLbVJad3Q5cWRJTUpwd2pYM0thSU5PZXJFVVZhOUpEb1NnT1BTbGxTNW1VaFI0OHBCak14emxnbms3YlZlQmxNNEh2WUhQUExJaEhsYjdIRk5Kc3dKUHZTbDRMM0xDeGdVcHVoeDh0MVJiY1NqK2wyWGtoZWJiL1ppUitPNzdtalZrSFN5Z2V4K3kxTHlCcXJ4YWowaXgrZTcvVlhRZngzdU1kdXhWWEE1ZitDY1BuRjV4WG1ad0xoWjJsMk1SQ0EwUDF1ek9VUS95dnI4VmROV3pXSDhzZWVPY3VEM1ZLSC8wTVZYSkJ4SEZoaVFFQi90VEI4ck1uL3Y0dWlJL2k5UFgzdkQ5SDkvUHgzSURFQkZvcnZqZnUzZmhEc1YvY0wvLzBFOThaYm5uNHdLc2lDenY4ZHNvRUd4UmNpM0h3SVB5dFNGTHR5UGQ4Tk1UMlBOc09zQ1ZuUXpBTFk3am1qS29PZThyV2xodnhiVWM4b3hZbVhJRkdTWkNsU3BVbVhJVk9XYkRseTVjbFhvRkNSQ1lxVm1LalVLYWVkY2RZNTUvM2pnb3N1dWV5S3E2NjU3b2FiYnJudGpydnV1ZStCaHg0Tng4UjN5WmVmY2NaVDA5RFMwVE13OGhjZ1VKQmdJVUtGQ1JjaFVwUm9NV0p0c2RVMjJ3M2FZYWRkZGhzeWJJKzk5dG52Z0lNT09XekVFVWNkYzl3Skp5R1V0eVNoYnBqYVhEeDhzVG9EQzRsSU9CdGp1NUp4cS9mZ3VZNGdzZnk2bkZneWJVV3RwcHNMdDFrd3I4TXlLMUlDN3JYV1g1KzgvTEdrUkVieUpoR0lScUtjYUVra0VENFFiaEFPRVBvSU13aEZoQ0NDRXg2Q2UrSmluQWEvd0h2d0tGd1A1OEV5S0xQbDdiOVROWEdqb2Q5NjBNazIxMUZOSlpWM0NhTE4ySmdGQlc5Y3NjY3EwK1RCRUl3V0srVWtKQyt1aEI1QktidUdRV2N4ejJMNFJOd2VDSnAvekswMHJHUVZCSFZoZG1Gb1BkUUtRVW5IYktBaGZqRUVaV0ZtWWZCNGpKZ2dwMk1HMFNCN25IRXBUU1VHUmlnSC95L1RtZ1l3SjRwSmtkN1NRaDgxV0Z3UW9qZ3ZNTXNhQVdUYkdkVVlUVnRXQUlaN3U0MzhqTWZkb1k0WlN3ZXlFQ3o4VmlKUGFDdGVTenRKbG1yTXZsbzJtVnlGM0UxUXhqc0VXcjNpZ0xTa0l6MEZVRENGVWhpRlV4UmlHbm9oSWZ2WTY0Uk5xVmtRY25XNlRZVE5mYW5wQlltZ21TeXFzME9ZNHBOdzh4Njc0bm1GODg3bk1jbDVPN3FkdWhIZ05BazU2aHlZcVVPZ1VxbndUaVVFTFpZMnlRb3l3ZHhOK0lGUkVzYTRNZVRMT0RVVDZKa29pRWtpbUN5T0taS1lLbzFwY3RoRUVkT1ZhVk9uaVVFc1loT0h6TWlDck1pYWJFaE1VbkxJeTg0ekFuV0RTSUF3SWhCMS93ejNTN2t6SzVuVGVjdWN6dHNLQjg3SDh3NlhuQytoeTNrWGxqa3RRNFpURXdyVUJaQ3BJK0N0OEM0SXFxUmd4RElPdjJpUkNVcTNXbUhDMDdTNi9sT01qbmVlRXBGazlVaEZXcytiWmRscWU3akRMdjNwRDltbjBBRWpKanJxcEVxbm5WWG52QXNhWFhMTkZEZmMwZUtlRjJiTmhkR3p4YURkOWpzU2xwbk0wVHIwQXJiRzh3UW5uVStpeG5rakZqb3RoTmFwQm1ucU5MRFVSc2hVTXJ4UUNVQ0lKUngreXdDZ3pMM3lIRzY2anJqbW1VaTkwMXUyQkk0MnlERjJjNno5SE9jSXh6dkZDYzV4b291YzVEb251M3ZtVXp6MlF1cEVjS05EZ0RBaUVIV0h3THVKcEhJNmI1blRlY3Q3STQxYm5tQXNPOEs3WUVqMzRnMTdQRS9jNWhsUDk5aWU1aWtzMCtiSlprK0hRSzROczJrTDRVQ2RWUUpnZzhlSnN6TzVVWWZpRThBK1pldlhIOHNhYjFFR01BTE0vb3lOUEFEYUsvTUJYQVNRczhzQzlCVW5CWmVDMit2ZzA2R0g3MU5RaFFEdkRxc1R3NG4xa0pZRzI2VHhzTzdHWWRVQlZpUUVXVWIvMmJueU1zWGZoTGdsdWc1MHNqdmRPd1NER0FtVDlEbENnZEJhS0JiYUNSVkNiNkZldUZrRUY3UEUzTDhkbHQ2RlpMejE1RVZaQUd1ZDJVSXpvV1VSdWRCclBINUU2UHQvZmluTXY5V3QvNzlyNTdUbVlCR0w0Z0dmUHdIdzJmLy92K2YzZWZUaS84VC9LWTltUGJSNWFML0xzcXJmMHIwdmVjL2hyUTlWUTNuV2grM0JYL2IyaVpEQlkrNXpYRHFjL0tBc2ppQUZXZ2dWVDJYM1ZIeTM0Sjk2VGdSMi82ZEpOK0wvazBiRGM2OE9TUmlQN2RLMU1UbEtlVG51MmFKMmtnMzQ0bXQrK1Bnb2ZwKzltdmpsdTk5Um9nRUNGRVNDSXlLallXTmdZckZneHB3QW5aZzlLVnVPN0pKejRFNU9RY21iaTlXcWxLdFFvMUsxV2cyYVRURlZremxtbW1XMlNkcDE2OVJsaVVVcExMWkduMzRETmxwdUV5ZExNNDlaeEpIa0dUU2o2MFo1b1hmOUhqVWV5ODhIVnpyb0c0QWpmd0NvVjRDYTdqRGlBR2czbzZBOGZqNVZvYzM5MUEwais1TnlmYWRsRDI5aHNFUG9ndmFFY3lLdEZRdTZkU25hT29RcVBLSzMxWGpWaysyblhvMTdxR0RxVVh2dUllaUtOVHBZUmF2MG1HbzhqV2wwYU5NN1FkY1NTSWFXdDMyYXRvamtnaFZDN0haNFZ1VnJQNis3MGhzZEQ2VmhoZ1MxVGJXUGVCQXlwa09IZGlLcDBLMkFub0Z2OWJBZnNSWTI5bGZZeDRyaUZtMi9UNDJJVVYxWk9YcVIwNFN1QXFsajZJNnJ5VGRHbE10ekZWL1o4YzJxUFp5eTAxc0NOVXFyMkF3THJiVW94ZCt4ZWsxa1IwN1o1T3oxa3dKOXFvSjg4NTJySzdQbXoraWNXWmNobWV5UTZPODNzYlp4ZWx1Q01Tais4dlJZLzNSK2hIcXBwRHlqeWJpOFBMclpnK25La2pNbWhIcXdmRmptYm93V1BTdFh5cGI2MHJMOEp5VFlNNFZzZXdlbUd5T1pFY0V3ODZMNzV1NU4wY25TWTMyRVVTcnpRRmFLZ1cza3hzUllacG14QWswOWVSTGY1WEV1bHNrOE43YXR0eWJDMzJ1U2pVb2xEelR5RFdKOWpJRTFJWjBmYmNWVTB4dlk4Y2s2ZTVhV0ZXanVHMS9sWXBnWWxxQmFiZDFuTFdDdnRvNXZ0V0MxeEIveVk3cVplYmtiaXhOVGsrSnRLNk10TGJ3dDB1cFR3a0tTNjMvOXBvVFVCMDJlR0pLaUtqbmFIQ05LVFBsQ25BaktWZGVIc3hrMG1raHNOTjJmMTNDaE4xbzByZFVmYWRmZ0VLdWNpZVZkQVdFMlZtWm1GbTV1TXBtWmJiRFJTU0tyQVAwQ1RuUmVwcFhTeXRyYXltb1haYlBOemVlazYxUWFHSmEycnVuQkRIdUdmVmluUlJxZnNWRHJxSFB3MFkxek1KdXFkTFNpaDlzSjdLeFpiRGJiMG9KT3RXZUxMVmtzanBtY0UxbU5wblgwN09TY0NjbDFqVGtKamJTRVBVeDBuTm44eFdYZEJtUFIzTVZ5bVYxYVhYTnk4U0Z4ZUNYMkJpRE1RSmtNV0ZBM2Y3Sm50NWJsdGRwQ0t3SE1ZbVkvWHlFMU5OKzZoOFFRSXZhWExZa0JjTHpTdk5hbEora2QrNVRNaS8xOERHUjNIVzUrSG9YMWxhMWFFM0VXSmNXUWNqcVY5Z2ZCTytZZXpja3VjV2o1c05mbjBsU0JsNFhTaGRvOUxMaVlHTlpoeWhQTmJWK1hCT3JKUkVFUWhIUzM1VGsvZUwxUVF6VHZRcCtGbEgzUnMzNVNHRzJ4S0hIS0JCdkJKcHIrNTBuMi8wQTdwY1FtV0RRUXdxSVlnbVZwaVNUYSttS0VLS0pGbGNZM2k1S21OSHNzcmovMEZ1M3h3OE4xeUw0dWtNNXVubGNEWDVoVDdOUWlvaFFESmlTa3pzaGhrQ3I4ejQ3NjlTcUQ3Z01nWFg4Sk04OFFBQ1laSWZSNWtNem1LK3JPUkpYb1prS1dncVU5Q1FBVTVPT2piWlZiVkxFa1IzNDN5NU9WTk9oSzNLakx6Y3JpVzJVMzV3WG5xaDBoNFE2SmxsTVpCQXNJa3RHZUFSRUVtbUJ2YkI5M245QXlpQ29UcUNnQ2FFelBscGxrVVpBdmJJY1lFaS9YdFR1VHQ0OWN3YUw1ZUZHR1dEMTNqeHduS1hlbkEwUjFCWnJucVpyd2RzK1pBQnB2d01KY2pPYjdFbjhhNjY1b25mOFkxeEFUUnhkRW5YMmdqTGZjQi9kMm1DY2RCQ0J3OU5YTVdrRG1EQm9CTkR6bGVIRWVRQ0thaytiU1VJTzdLZjJVSEh5a2lDRGxvZWVObWoyejlnVjFaYmNjV01TQzExV2QzbS9mSDFxM3pKKzhDZUR3LzRyOHNEcGYrRjAwZDlGT2lDSkFLUnF3NUl1d2RXVFVVTFFMV1EwaHNSZjBTNms1ZVNuSmtVVmhGMnNmeFNaS1hzYVJhRXdNVHE2TUY0Q0l6bm9aaGZUbGNSbStqQUhGcHJEb01DVG1GN2RlZ1IvUnZJU3ROV1FDeW1vMnk5Und4RHhDcDlGODdtSWd6QjRHbXplSWJodlNyb0d1WHdFZ0VDU24yNEpGa1dJQTNxa1R3N1Axc3ZPVldNWkdCUHhXMnoyRWZPWEtYRTlTUy82UFVNMG15UDZTYWtkTW0vSDh4ajFtczRORmN0Rmo0WkxaVnlWOTdoSUsvL29ReGNRdVRCUmh6NTd0NTM1VlBxWnFxN3ZCVlZPVVFIUzNvWXowbnZWcnpYL3V5eHRqRW1wb005RUE2cTRZTFh0ZElSY1F2RE1XamlkdEdKNFFtMjJORDJqL3RpOVVTR2FmOW5RUGwxdUIzNTFFUzRiY2lEaE1kQWFiWmtqS3BRbS9LbHVpWEs3TE15WGl6SkNvM3Y5M3QzTjdCYkwxTkI4WWl2ZG1HZnF3bDhYeWxFUFNFTzNXZi9laFhrQ1pvVmcySDZIZnlwUCtzbWY0blAyQUZnRUh4SDc0OG9BQ0ZTZkJkdm8xSVhNTFBzc1FCTTlNTzdPa3duVlhwNW4rNlF2V0wyaThPTFZ2K0lJa251cjdzemRkNi9sY0NMeEkrcWNTSTlISURmWUxVeE9rdHQ5R29RYWcrMXNBeHRTQWZyd1J3VFAwSEExQjR0Wlh6cWtBalpDaHBwOFZDM0lTaU1NQTRhSlkycnNIRXEwVXk3WlpiVFRnWW84SjVwZG5tZm9jUHUzbHpzMWJUVlJGOXNZUmQ0ZElOK1dUMzl6ZkI4UDFqZG10NlY2dzJJY0ZteWU2K3RaSitRaVVuRFJ1SW9NZ2FhUSsycng3TFRDTEh3UEM2TTlIZUh6MXQ1Qk1BeC9qUVZ6KzU0d2lDSlNzZzNaYkp1c3dqaHU2TE5BVU1iMkwvdUxKcXVBTEtJQytzZ0RnbnpWcWVQSUFCWWFtVmJnYlJlMHBRMlcxMjUvdUtPUEJYVGRZNUlQOUFnQTFJbUpSUmQ0SUtPUjhhRktEcVNkNDE2ektkRDgvMkZaWElrS3NRZHRDTzYyaGhZeHhHMUtLQVkxTHgrWGNQY0pWYXluSlFXS2FNOXhrWTdyd2xSalhyWXB1TU9GTHRmR3g1NlA5UHV6WlBpU0U2aVlzL3lYb1oyV2E3K3lRRVhPM3RMMVNWQWNlMDlldTNUZDJPRnk5MWpIS2w4aGhpb2Q0ZWp4bWx3ZkFIODRZSnV4Wnoza0xxZlBubWZuTjAzT25CNVJPMmVTbXJ3ajNGOGJ0RmdTdjQ1dk03Nko5VVFZVytRczdVWi8rb0tXakYyM3ozaDdnOHBZT2t5M0Q1VnBiVGVmNUtMcTdzRTFaMmdEanhjVkViVnhTMlM1NnAwNGN4NW50cjZrckQ1Yys3bk1tcXNZUDIxYnZUUDRYUFZlZmlIL2JDREtLckNqdFVvK2VzNnoxcHNVYTZIL05QK2pCanpvTTd0ajJ0Q2lJLzNZbzNlK2wxeUVwaTExUjFyMEJUMWY1UUZncDNXTWFiNDlwWHhvcUxOM3lodVBRMXhUbTFrMVRJVDYwaFJGUGJ2ZmIvSDRaZW1SclkxenNKeGptei9WQVpDTWtKU1FRTFlGWU1ncEdiT2wrVGI1MmY3OWw5dWZZWGdqYmYzSFk2Z2lNaTRxM0ZtMnZ0WVVsQ0JVL0xJdysyK1lvSUxuMDBBdlVnbUE2cUVZalJPL2pVUnlzNkpmUGVoYWd3anRhaGxCWEphREMydThlaXRrTFFQNTJ1d1V2ZzFpU0JndnloM0krNzlJcFdseHJ0MDBFMldZd2Q3OTFQOVJMN2pDZWRuUzl1SUprWlZXZ0pWMS9FMlErbTZEcUVSSVIwNklFYXJqNUs2UisvUFUwdEo3VUtpK2lxcm1TL1VwZDd0cDNaUlN6Sy9nWXk5MFIvL2ZBWXozdm1oeWo5djN1SDFUVlVGN2VPVCtiZU1ieFArYTEyZEJ1NlMvRlJNYmlzakNXbXo4K1lybFVYSEIvNXNreE1TVk82UUhaV0l1bHBWNjZYaTZLMllCUlYxMUlZMlNJcXIwV2E4bGtZN0tzRlEwODVxL2JuOWI3OHZVM1Rldlh4L3R5ZXBiaDhaY3pVMGRTdkRrOG5TOVdQaGwrcC9NbE1mdGlLMHpTUDVRM1d1elJKRVRaRVY4OS9XSU5uOW56S28xekFrRXNXY3NEZmtub2hSY3Nyc3RWUVlOVlNWanUvc3d5bS81eXk4dEwwUnppUTdyU0kvU01jZHdlZTZGNklxZkVVVkJhUmtXUkozMFZoNjIweDRQaVYya3MxNUQ0Uy9uNnV5VUtreVppWk5CeHhyU1phRFIzOGFBRndJRlFpTU0zT3o3ME0zRHJDWUZyd2JpNnliN3RTZTN2VjRMSlRlMWtUWWRZTHgxbytaakcxR09BeVdOQmcxZVNwOTVzanRseGMzRDRZTzJhdnN3cnZUU0FZZWZZbmhkbTkxUXBqVjJvR0Jwbmk2SzhuRWFHMU12Q1laYXRsaWg2NzlETGJjRWdSeWtlUmpCQVhpejc3eTJyZ3BoUVVkamVzd041K1M3aUdGSGZiTUpENTFMazhFcm9qYmlGb0tGTlUzU1hhamVXTlBOYnViWXNUV3gzZFZLdWlmZ1FlMjlScEtuMWhtNzdWWlM5WDRhNzJmWEI0aGROTXBtZ042c0M4cjdhc0tDV1NMUkU4cmpsZncrcEgzaGl6NDNoemRlTU9IZVBrRGRMV2owV2prSXNyQTF0cnpnWkZTZXRuS3JLUkwrb0ZQWGJOakNLMjZjb1prL2FXTWZ6dXlQdGxZY0c3QndBckZvTzFwd04xOGZIaXdqSnVCRVc4WldMNytsZ3BIckFUS0lMWFU3bGFVc2kvblYrZU80NXAzWTZZOEdvc3pSZGVTMXlHWWZMck9JY3ROTWtkQk5TT2c1WHgxNllkOHVheFFMWjMvN3AvR2FsYzdZNDlHdmFzZit6RlZhWDMydDJ1aUs2b1V6RGtrMlgxZWN4ZXdiWVBQMlAyTU9GYUFsZFArUzN2bmVqQnJLY3IzcTI1N1U0dDc0RTBsWi93V2RQcnk1TDdWNHJPMzNsSmNnaGdiaGw2RWVIdXZ1NWNMbWY4d0szM2tEMUhaNVhQeG5nZWxIRDhHWDBDTnJyeERhaE1ybVZxZWZ4Vmdad2ZacUpDTGc3SUE2T1BoY2tSWC82UEJBdkFNRmYzamkvRnE3UWhKNmZLTGk2dzQ3Nmg1dlVGZFpMNFFDMmcwT0lnZlZrbXdMN1RMdWF0czQzQnFQWjNJSHA0YVBRZjUrN0lDekRXYWpMeHdkRUVJSnQ4UWthU3NGVW9SbUVpTkpzTC9wUHFGMnlwbVcyMnJVblFkcjJ0UlZXSUZscWFwUzh2SkplWUpHbzRNbTJXb2JZQWpOUktmUVFBSzNpYVhkNTVUR2JqVTVvZFhWWnpQMENwNGZFdnozcHdMbVNGQWxBWjlrZ1ZRWEZ6UEw3dXgwdDRoTVkraUROS1kzL3NSNUtxZzQ4UTdZRkFCbDVmaExiMTBqRVJoZ2lwQ1RMM29JdEVJVjhhTFZ4akNGVTMraFI0WGlxb2VuNXNjZFVUWDBNSnFrbVVCYmNtVFZ3MVhWU3JQcC9nVjRYRGdWSk5DWGFZbVk5UjhoQk1rVFl5eFJ4MVQ0bDV3Y2VoZkc5ZEpqbWVCSmRKSnZ2TCtwc2ZDY0h2dW8zOXp6a0pFbk5tcmp5SVd3ZzRGUE9Xc253Y0EwaFBlaHd3VlJhdEFxYlg1UjhFMFc2dThFeElLWXhicXBIc2RIU0JPMmx6T01Ga0lDMmcweXluT2ZvenhpbUh1ZDhrbjJjVW9BZEtaSkU4Uzc5UGJ3ZjhDMVFBS2hJWkc4cEFnbkdRWW5paWVYcWNWN3N3bTRwMDUwVlRuUEoyU3N5MVBlTHIyeE10UmVlNUdBOHJQUmpseldKVDVvd2l0RG5NTkYwNkppNGMvZkJZVHc5cnVmNzJJL0RIZFBWcnBwVENuMlY4THdqLytDSWZ0d0FhTVEzaDVoaWN0YlZ3SG1ZSEJMSHByRjR2VjJUcXhPK2M3SHhHd09nQUcyQXBGV2xDdkFYVTlZSzJwZGVTUVFWaldVWmNuRWU0bWlTS1IrUkdQS0JMQ3N2YWxLTDhmU09UUVpITEJrLzliZVFaRWNNOFBYSWE0QmRuOGxWUWY2Z29tcFlrM09LSVRGVFVpWUtKK1VjUHhGcXo0M1h6elBhd3Zqb1EyMWYxZHRoYUdoM1A3UU9rZ0ZZUk1BYmdjSU1BWXZmZTg5MjR1UU5pcEl3SWVDMDJ4WENnTk5ud0FBb1NNYnhXQ2J6ZC9JR05nM3J4Q1R0QUFBeVNhMHJaaG5TTWgxbVIrZUlPaGU3L2FQaGVzY3RqejZHeXVaZDYzVXFjck84Mkx4WUNmQlkzdGQ4WG41bTlRL09pNVhPaFRDUkFNWTVCbGl6SlliSllTK0xVaGRZcW0rRm5kUnJpbGtwZ2VUVGVhOEpXMVltNmFIcVlVV0RBbWlvRHFKZDloVyt2N3laVEZabU9vK3A3WTBQM1hhaW9iaUZKaW0wbkVPckdNQVgrSUFFVHBFL3BoMWdNWis3bm1tWUk3N2RtYkhONDYvRnVtNnBoTHlMYXFuL3JIenVBRFk3RU1CckVCUk1CcU8za3ZWaTdTTmZaazluWVF1WWdqYnM4cVl2NkxPeEJGVXZRd2JKYTVITmM0UlpCVjE5Q2tENXpzcllxRTJkbmNsa2ZIdXhUZThMR1BoT1ZUNFphUUJpMEg5ZTZ2TnpwQ1oya0pRMFQrNlJUM0YyU3pkL091WEpzTmVYazREcTJ3RURwTFlXdUNoUzYyNVBSZTUxS0R5YWxwR2ZvenNXMHFuWXJwWFMxeGVpeGZJV3ptem9hR0Z6dkNRNHZXYW93a0QxemhTRXRVVGpkWHI4MHo5MExidXdQN3dpMno1YWdJWXg4R0FTOUh3czJFSEp0bHFjNzFhRjdmcW5WZ3JHMlIvY3hRODZHVkhoeTdZZFpRQVRFS2dYU0FyR0RydG1JTVMvSHRPbUt0RFZmbk9lb05HNDZRY2JyQllsVXZIQWdoeUVRTnBmYStmaU5rQUFMT04yMlhCVG5BeTN1ck9WTVFnWFVrdDVIUnNrM2EzYmJKUW5tRTBHaW02MEJ5TDhhNFZ4cVczbXVQMFRqZGZYREVseEhTVFRsdlROTncrSlZWMTFqc3cwK09wd2NaNDFLTDBreWlVczg1eVkwUFFxN2V1VUtQVkI1Z3F6b2lRRHppM09mRTNZUmVTNXhZUWc3Y2R5a1JjKzVVUHk1TEF3cXFnMkthdGhEQnRkOUduQkVwbUJQSyt6bDNRMUpsV0xxREpqbk9xZ01LYmVSMjdWdkFId1BwU0lYbG9aVmd1RTNmSHNrc0lCMGFZQ0hhYWovUHBPNDRjeW1uZUhWYm1LeFIwQ2o0a2sydmZCdU5TVCsydmlDLzdneHZweDN4UjVrR0xtYVJlNnpzUW5GNU9CSk9hMWFqWjZiWE5XcXMzZERMR2ZNQWxoRFZIMFRmSXRHUjRrdmlJRUs1c0lUMmxuNyt3czNCeWJ2bkRsZkFyMHoyZ083Q2x6dkJUVGdtbWFIK3c1Q1NEdWZSRzNEWjc2a1FGUjJaSDh4VzVJL0hzOXk4NjlKaFJyaGRPNTVubFRvbkFxc0tkeDUySzluQVNVQ0ExeXlaVlduVFlSQTZtTExwTkxGazllVVN3US9XVDFRRExRUWw1VzdRMUF0S0VxVzBkTWdFWHVLbEZTUVJ1QW9TeXVxNnR6WUpRN0o1cGRKaDZXdEJ3REFuZTNpQWJtaE40SGJsNFpSSnFpK1R1NmZvckZaN25jRVR5M2RyU2pLRitjSldpaWtwNXNGdkhqeFRsQzNuV3BaMEJRKzR2bzd6ZHpHSzVsbnZibjJuc3dxYUgxSUtpQkZuRlJnTWxtQUJBNlZyM3lJaWxuV3ZtRHg3RUw0NDE4dVBZeThrQ0hBaEJ1bkZsTU56bk5DU1JQeVhYZThVdGRqbnBNTy9TTjc3VlhYM0g1ZUZnbHRXZHhYRmZvRGhjZnhHQ0g1ZWJwRE9tU0d6N01ha2ZHaTZLM2l1K0Q4c0VNOFpBR2tnN3V6VUZsS1c3R3JGSjFDcVQrZ0c1RWJnQnNnQnJocldFN2dtbll6c2hRSzBHYy9GNGxBYXFTSFBEcnMvaDFxcW9DUExuWjlQdkJDMzdyUWVBQTNFTkJzajBaZXN3emUxTEZZYUhDVVpXSThkTjk1cVdHQzVOWTlCWVNTaytJd1VVL0xCYmIrTmVJL0ZjakI4Z2xBM1dXUmN2MnI2dm93cVBkMnNaejAwZFQyTzFxMGdvbm11cjI4MWhBeFNsTTA0Y1huTVhpSTRYa2VnUURrYmRnV3Irc2hZMkJhRjZNMStGTHA0UTdLV3BvVzJHMzJHSkNtb1dWOUdrUVdtbjFoYzJrdUtKcS9VVStvNXF0U2xMTUhWQWU3QU8yS0U2d0YybUZMWDlFVTVaQlBsNmlITW1DU0JZQU1EMDFIUlVhVkR3Q3hGVkZSQ0NDdy8zM0hrOHlDejNTQmdFazA0R3FUZTRXaTVyTGFaYVlPQWdYc3dEZ2JabVFJMVh4cEQycENtOURSblJZWWtCaloyalorNjV3OVpyMW9EYUIvU3d3SE9MWlZKK0IxQllFcHJybkJMTXY2ODZFbEFsbDZZaktabHpwZW4wMjJTcTlMM2p3eDI2SHVsUWZGZEVnRUN6WTFaMlovL2FEYTdOZXVCSVJCRXI5Tk94SlVMTHd2T0szLzUyN1VIM1E4TWxlUU9tMmRhV2JFZjR3ZTdRNno5alpYWHVxS3pNbXp4MlE4d1Nhd1lpOUwzNjRtdStPMk1mWUZXTTNKVm9TWUtBVm1ta3ZwUVdzZUJnV2Uwc1ZudVdEQXpTTEI2dnQrS0s4S09wR3ltQkhpNUoxT2dvZ0VZS3Z1WlZYellnbTEyK0lIM0hpaHJBdzB6OS94VExGNFl2akhmTnljSzBVWWQxMFRKRVBSMEZYWXFjNmlOdkYvT2tZTlFHNXA1V001dFpycFY2U00xLzlzUGxHZmVGNmFZMThLVzNCY2h0ZzJaVjJnZXhpZEZTQkdtd1I1QlNsRkdEcHBjQi93S09STE9UWmtrUXhYMTZMNVZoY1BvWi90c0lwb2FCaFp6YmJHM09mcFdXc092YnhUcFBDY3ZFSjFlRlNXdTRQbEwzSE5pRmN5ayttWGQ3RnFqUXJiNkV1akJYa2hRMlc5djFOUDVKd1Z3bkluamwzVmNkVHhQK1g3VjhmYkNEV1UrQUZtdEFVOFUxeE02QlFxZHhKdkh6UHA4dkhoWEVwTVZwSVZDYTVUT090SSszZFJEVkRYNVFoZ2JpYU5oZ0wrMVVOMml4T1gvay9QME1JdzFMWi9TdzRjSkJlbTJBUmlMcERDZkNLcVQzMTVKMmJJM0dZbXp0YWRwNHpIV3FpTmRZQ20xemhXTG9IdHVKMW5vVzNrSncvbExWZnJ6T0l6QlBWWTVzODBENHRBc0lDYmxkNmU0S1FJSVUwVkN6TmNuVklkK0Z2TXA4Q3NKWTdFVnJ0SkFyWEw3OTRheDN2RnByUVRvSm5YSVdYQmtMU0wyS0tpYjB6RFNSdmNINTRPOVF4WFlOZlk2THlMN3lRUXVid0VNaThuTjdhWDhuTFB0WStxbU5FWUJSOTVYaC9vUEQzMmFuOVhqS1dJaU9IQjZSbDBrZk9EV1ZRVEdackVvK1FtVTBDKzRDclVpdkZBeU13U3hjZS9JNU5WaUpCNFRBandyclNJU1lqbkhjRUh4UlZtNFFzazFzQWRETitnT0txeDZSREhLK3pJdGVGSlUxWHdjcFlyeFZ0Nk9UQ2VNcXhxOFhHNnNBdUI1SmZCdm9pV3F4WFJXanJKYWFialc1MkhMWElMeUNkeGlBY1RpUytxNWlEVXR3UXFmTUQzVlJlQ1c3T3lIMXJ5Ulg4eE5XVFFHZHZNSVJWRWtvT0lpVWFqOWUyZnQ4a2w3dVd0OGVsUEx2cFlGcFMrRzVaUjhEd3B3Z3FFMnJOUGNlUkRuMWxGaVNRQTViSTlYb012a0RudURUeUJJSDFNbW9jSmhSWXM3ZWJ4SUU5d0xxaGxxRlJHS1VqakQrWkFndUhhRWdSNWlUTUlHRUprMDhDcjU4eXY3dDU2aElWL09tZTd3Mnc0V0FPV2lTTHcrRjBmc2grREtVUVhyQS9DTlRsSGdwVVIvVzBZTERpbGhBMGdLVEhIbDlab2tUQ1hsRTlXVVNkUDBhZlkyb2VQT3QyUjZvRzBKMnVBVUkrb0YzblNONEd5Y2taWmZLU0lQVVJaS29DRTBEb3BvMk9zRkxYS0dNQVhWdEV4c2xzdHI4S0J6RDhQaFdOSXZYQjlvbFpOY3Q5TUxkYjJCWjNydTZrZ0JEZ25YRXVDdUt1bmU1MTUwalg0eGJWdHZxRUZyV0RXeGlIb1NhRnZlZ0p0TlhZWWxLbVRqMlF3djFqMGJpT2Z2c3RFd3RrNnp4Z0p3V0xXTUFwemFGU3JHbVJESWRaVG03b0xtNHZ4QXRXbjVEcURRajNyMk9MQUNkazRoSldiTk9jTWFIOFF3T0VvVmZxT01OOU84dGJMZkVZUGk4WnRqVmZ5R1RFZjB5WFg4S0lZTlZYRndDMHF1U29qM1pHT28vbnh6eXVqTXY1NVJ3MGtCL3VrT0xxNEdRNlZCdFpyYjBKenA4M3RJTmw0bEsvRXY1bDNiWnhZYmgwbXR1TkhSVitqYlpQWVlMbWxyYnE2dUJFaEJsZGlIZ0pYL3JkS1RJdGNGeHdhdXhpVlpSWmduM09sR01nUzhzbjB6MCtVRFFvbGtJSkExSnVBSU5Td3hZRSt3S0lWTlZTeFZ6WkxnUktENUxUZEl5QzFvaVJ0UFpmRkpISS9WUjQxVjNjWnIxM3JjUUc5R3lLSWxSR3FodjVIWjJzSDRQQkdDdDVuWFdSWlNvQTF2UkZGS0g2bk11eU5NNmVzdkJQSHZ5eUpYUUpGSzM3VUo3QjNwb3FiVUxnbFc1T0w5VThSVzNoZWppYVNaTllMWnl1WE5zUXZkd3BPV3pNQ1dERG5KVi8zWm1CMHUwUjgyWHZ2anI0dTN3L092OWZ5VnBDMHc1TWg4QVdhRHRqQ2xjNWJ5aDdVeWc2UWpVTkdnWVJpbERRUG5pRXhsbExZYjd4RFB4UnV3UG5ka0RXQXFvR2pJR2dTU1lhR1F1ZzJDMCtGN2wwdHQzVVNUVjBTS1ZXWjJlOUJBc3UxRFU5WFFpbXRxOTZPUjhxdUFjb1dyNm9mTDZ0ODFFczExMC9WU0l4UTF6NUhJSVdxS0tOb29oYi9RZmw3VVhBNzhyOVg4Tk1tL1NWcEgyc1NGRzZkM015NlBTTlh4Nnp6Ly9iNjN0N1NSUVBLU2d6Y0pQNWhiU3oxYWNPbWU0R0xDTm94b3phQU9SaU5DZE1oM0todnlxMUVoUzhOZnVsbGRhaHk4TGFGUXNKdWlVdno5Tnc3aE4rbnhhK1RQKzRxK3UwbGRUanllc2R1bjl0OWpIWjRJL2pDQURXaWFyKzdSRVRUVzFJQWM1SGppaC9JcXdSVC9POEN0UjRIL0ZSeXljaTk1RmN2Rll0U1l6ZHI3WHNpazdCR1BDTlBLQkIxUlNhVWxNdDhRMjRqTnVvUWc1WEZGOG1idFY5c0VYWEE3c1RhZ3RndVFNRERPVy9pZ0s3SkNZdkVUSlppUGxhaWNlRy9QRVlqYzh5UEtTZjNNeXV2RGdFbDE5NDlmOHpNbVZvM0FJM1hlbldxbDlyWlpydkRXSDcyZCtHcW9QdHBaVGp4LzNkMkR0amJUK21yUzdkZGw2MWJuZVQ4MWwrc0ZPcWNRSFMvdDVOTlorbDlCVFBKTmZQOTB5bytReXhxSFJrc2xHZWRHVUI5Q2dsanMrU1ZBQlFkdDJFYVh6RHlySnNzMnpaNXAyQnBEQ2xqdFRJRm1CVWxGYmdSSjVFaUUzWml4aXJzL0k1ckhCVTB1ZW9lS3FNVWk5VTErY3F4NmkrYjh1UVNicDdCRnVreHlkbisxWUZnbWluYm1XQlFyUWNCc0ZqUVZwRE5GR2Q2NlRhUjZJdEpIUnBiWDUwUjhpVDJtV2NMbmNmdW5YKzdQWTN6OEI2WHVsNUxJOVlVSWZmTXhaendHV1E4UUZXazVaQWFodXFwSzN5R1dPMmlhcUpBaWFvVEo5dXFGRXVpOXFaREdGampEdDllYmdxTEtPT0JwM2l3YVEzSHV4dDBCWmpsSm9rbGwybjdqNmJxWDcrd1N2clZWQW1hdjNuRyt4SGo1SjlyRzlrNjRaZHhZMkpJZTVSMk5YN3lBbzNoZ0ZWb1dLRWsrZlZ2RllWUTYwWVcwd3l5bUE1c3BXc1pCdDZ4ZUlVTnErUnI5RVVUVVJWanRVdEFaOWdNK1dkS040Y3F5VkZuRjdMVmhwN2hCSTNLaWxOT1VCYWpla2FBelQydzBxc0ZEY1dCVmNZNHh2K1lBbUN2STJGait1RGVsbTZ5MUtMZkVHWXhzaC96NGNKckJWWnBFQnM1VHgvVWM4S3A3U0RhbklLZ3lNaUhLdVhjQ0tHcnhVWWNPSFc0NGtRbDYzU0tqVE1ITUhreGRmMlFXZys3eDh6NkVUWXJrbEZub2h1aWFBQ2NWdlV2V2FLUGFnSWE1bmtMQXArMllGRVhuN2ZqK3NoMlUyN1NkaFRVTk9EbnJQbEJodHJHeHNRelJXWDVReVhhRWFjcTBHVi9VQy9FK0ZVVVhDd3lrU3lGaVRLVzFEQXpWZFRGK3ZwY0hBZVJTRUJORDRTS2RGUXdYTHZreUM5ajVHc0hVNWR0K0Y3RExUN2RUejhVT3pDQ3laSG5pRUR6TXIyOGw0TWRrM2pzMVJtaUZmVVM5dktGUEIrUENuelZGR2YxWXFMdkFqelIyZW0xUEwva3V6Q0xqVDdBWlkraHhGM01vajdtV1JpaVNhSFBES01RZ2hpUEYyallCM3ZrRU9nSmlLcTBxUDlXQkNYeFU5TzQ1K1QyMTJDQjBNYTEvSEhRYnRsTTErbTk5dWV1cllFMC9zK3EwUlhYQUpXUmRhQXJsMDR3UVc5bzFsWXBqNjcxRmgwV0FRamUwaEdGdDNPa0tEQkdwRHFIcEpZeFBPcG0vdVJPMSs3RGZzUWFUMll5MzcrdWEzTXE5aDBtVm1VM2tldXcrVWk4LzdlWndEOVlHTktHRDlkbklSN2ZmUDdZcHpsL09UZ0UrT1FHYzRmWDBSNk1qcXE3S1JYM3M3MlNhdnpPbTNwVTR1aXIvOUpKamptdjVpeXVBamU1QkpnSG1FQk9lMFNoREYxQ1RtbFVoekdxdHNhVXBQYjNkeXhncWY0VnZxVEpscHFKcmNYQU8rTGhsZ3NhTHFzV3czLzRYWEY3ZllDclY2VjVrT0dJa3NQcWZHV28rMjdkUGlMdzd4bDBKYVRDZjIwclRiNWxmSHZZMEYrWjdXUWtEZTladllJWUI4NG5XTVFCb3U1WjlwaUNtVlJvLzhGYk84UXk4MUxxNVp5eXZMTU5yWnhJc2hGb2FHU0UremxaVS9xb3ZsaVhrYkxCZ1JCbU1XRzJ4Z05NMUNuMGJmSGkvTWRFejU0MlhWRGNkeVJwNUh3UE5PSURSY014VnI3Mkx0dmdLTkJtY0I2RUtxekpGbEVhdFhzeG0zT1dwZEtaalFrdjFhaWhJWHIrME9ha2NDUXRGZVlyd3dTK09nY3BSWHlCWXN0dGlpaExTZkVWY1BGZHI1UlZUc20wZEM5RlFjRkpCYUxXeWtSOEJlUWdSN1BGK2RCU29vNWM0cFY5S2g5NHZnaERPczg5aWtDRnVaM2k2TlltUjdDTHpuNGoxSDBuMERuNFd1S1RKQUpUQUQwTkpTWjFQYWhoVU90eGdLU2luRXJJZkIwMzJudHZ2VUtQcm81TiswUGExOTRUTUh1ZGFBdnJJL1hTK3dGb0Zlank1T0owQVpWZTFyZ1hRRnBGYVRjY3RIR05NcUtJbUFnM2R0dm1sVmhickRaTHIyVlFXOCtFbmQvNGRHRUJBS2ErSnZoelFWWFRhTVJZRi96NW1ta1k5eDljZy92ejRhSktsUlEyRVhsb3RDb3JwZTRUbTJyVE94aXo1RndRUkIvcWlJUkdZNGRYYXcxOUtDdXFzZXhDSHNLYURTVXRGUkk2TUpWS3RlY1htZVZYZitBYzA3M0NkQ1A1MXZpTmRybXlqZU9BRTVTbnFDUFltL1lBcXhLLy9xb1RKRzVURVlEUURVL1ZxZ0tGS1VQRnpjVmJjWVhSOUhudmJvdGJ2OWtnckZmaTlQVFBNdGx5aktzMGVsTmRrKzdoUGpNWk9BRjJDS1FCV1ZSV1RBUTg4dEVzdDBKWGJIZFBSY0ZucVRsT3M3cjIvMitVMkNuVmt0V3pZQWxnSCt5K0JiRkQ2VU5MT0pkSmdnTHZWdFJGNzY0a2Rob2toYzZTREFkRHp2MUNOQjlvREFSblFEdE5yY3lITElvbnlRNTUrYWpEWUdqVHFZSHRMQnFvRVJnRmRycnkxMy9nOS9lWWZzTFpYWHBXdWtrWS91SmNrRkhvY0ZndDdka3dVYUJNM21iYUM3Y2o2ekhLekpsaWxtRHk0TW9MT1h5dEtXNlBLVEFKNUV2cE4vZVpDS3VrMXVMb2M1VTZ4Z0pSdVgvMktUQlRwUmkzNmw5VTdHR1dIY1J6Q2JXa3dGTG5zTnFBWmhhdW5vT0V5ck9PUTQ1MjBMaHEybnBJZ3BxNDFZS3VDamR3WFNzV1doQkhkeTk5NHM1MjNWRHZSWlhpN0IwQmZhdlpYd1NkN2l0ZnhqbDdGUkRyZ1hSaFVqOGV3cXc0VmF0VlAxVFFETEExRWZWZkl6dElUYjBMcDB1cGFIS3dYN05TSkJ0K1dDWkNKT3JvZXhYUmNtaGxrQmp0eDRydGFnNTB6cTVWSis0WEZyRWdrRWRIdTFneFdzbVJyWUhMeXdmWU0wVlA0Umo1R3VBVC9CcTAwVFNnL2VTYWN1KzBtdGRQREh6OEZGaDRLMWpDczhHM3c2Wk9EUk5DaVJHeS9abDNEQkpEeFJtam96ZWJIQ2ZTZll4YlptSlVvUHAyTnpWekV1M0g1VDlOclZtMnZGOHdjSk5LTWFaeXVoTDF2ZWIzSG96RGR5OEZNVTF6bERHcUk2VHJkUkdib3dydUxXd3JsZi9VVWpPd215RjJhR2VZc2FVT2FKbEZidWNTZGtia2NJcXlYaVlFNXQvRVhINmMzMW9vS1IxQ3FEaUtHYVdXYkF6VHZlN0NuV1duZDd5ZWxBcFdRU01nU2kyVkxmenc1NUw4ZUJ0dlBTQXhtR3RUcFBjd0RvSzJsK1BpRmJNdnpWSVN4UFU3b0tJaEN3Rng5amxpd0RlL3hxa29FSTFlUVNaQ0pvSnNkckJTbE5MUnowU3hlOUwwUWd2dXZpRm5kSkttaVVRdHhibDIvWFFyNWpTZy9uaFFvUGtjTHJSTFFWZ0JjK1VFZ0diZ2FwcFVxekRnWjhMY0R5UFcwQ215L3M0OWlBOFlmTWFtUjVvc0ROYXMxT0d4VWo3cW9SOGtYTnZMR1hwQmNleVB3OExZR0FTWmtSUHo3bDZmZSt6cVRHWUZoWm9GU2VZeEdpVHQ3NUVvS1ZabUZGZDY4c3NPRGJKMWRRWEY4UUE3QU54eVE4T29DT01YN0tGM3JMWkxzQktFUVZoTFc3QnFUK09KWFBSVXRlRWpYT2cxdG9NNUlQeVVQTWRIMHY1UjJwbHIwQlgxckRQQkdQelZMcFdnOFVKdlR6M0t3dVVLcGlweDVsZnMyV1FBSVh3eWY3MnhWdzY0L0M0MUVxV0RPSi9NS3F0UVlCWDVydjI2TlBMVzlLdXhtMVQyZXdhZnNOQUZpaHRLaDBEUXlENjFORnNrc1B2N3ZNN1F3TkEvZ04rTGlMeG5IblNGWGlVN2hiQWVIZ09xVHBBcFNUaHlLUmNEN1djT0s3RVREUE9xcFZvazJTNW8zRUNsSWFHYklhM1MyMVZVc1Q2bVdhREd3T21UWTY0RTlOU1l3dzlGc1VXQlRTTTBGN3JQKy9YOTNFQ1k2NHVVUjRkYTNYa2lNU1VNUEVMUE1RNEU0alJ3MlpNNmJiTHBEeFBVbnZraSt0bjE3YzhFMkw4OE9CQ0diWmhFYm9sOGR4NnVhNU1vRSticTltZll3V0tTYU9yZmFKS2hNeVM3UUowMkRycHM3aGtUR09HQktXZExwYmVhaElCUUt5dU9uS3BkeEZlYzlKWGNrQXphVklJaTkrMHZqL1p3bjdiWVVmOXFQWnNreFozQzBxby9LV2hrMTZHSXNxMlVXT0w3NGJ6UVFobzRNS0ltRVFiQS9xRnh0YkI5VExLNXZLYUFyb2piQWJHTU5lNWFXdzhsTkdUY0FoL2NtR2h0MlFxMzlnRmFMdFljNUxYUmk2dkNjOEQwNm1RQy9JTU5YWVJxMXVvaVE5QjRIQWtoMHRGQ2xYVzAvWGExWnJhTElJMk9IY3hQOUNqUWVVY2NvUW56MHhKYUxwLy9leGZiUmhHajUzanQrdElYbE5IVlB2WVprZjhRY1VzVnJ2UGZiSTF6YW1xemhsMGFQTGdFelhxZ1IxcTNlYlQvcUFiVU1RSnFlc1FsenhmU0VrNUYrTmlvM3NlTzFjSVdCQmVwem5VWWFvdHZMSlpRb0ZwQjVIK3RCd1FLY3FxamN6SVhqcXVNK2craG8rRkUxMXlUdjJYeXUyd3c1SVU0ZldETTRBT2F0a3Z0RXUzTURtL1ZjY0xyS0FSL1RWT0VTc2U3ZlpOUmtHU25CcVNCSTZ2Njh4TVBVNEl2UVNJMDNuWFJtRlpVcVVDalNiRzlDZ3JGY29GSDBUNFJPa1N0ditDODB4ZzEyYnRDd293NWk4UEpvUmszMnVvN3FQcXhUZVRvWjY2QkJMQXJJekM5cFdNdzN0UTBtdDJ6OGYzRUZycStrQkJmYmFHZVlhbVlYMjFyVXFUQUpwWWF6UUEzc2U4U1dxcnZSTzBSWXNhdlVqQ1prS212TFBDU0JucU1ibThCS2h0dGJTQ0E0eEpyVXVEOFNWVUc3Q1YvUzBzaFRDUU5iTWRxSGoxbVZxRXhQRWFOdXVnb3Z2dE9rcGVjWDdJTGplcTVndWszSWpkUlVNY2k5ZGJFNWFMaFVtQkROMHk5QXhJcm02dVIzZDBuQVJHZHRsU1ZUa1JnUWc0a2pDV3hvV0k1cFNGV00rNXhFbXZoZ2hYR01OUFcxN1V1QlR0akVSeXZZRTR0bGQzdVBraDZuYmRnQmhwdW1HaHFQc0VQY2NwMTU3K1dsVGZITkRqWTIzME5WYzUyQWJ2VzZXZHhscTE5c1BTRS9qaHl4dStXZk5qUnhzQkdZclAxblF3V0E0NUxZbzRaMVhUVGFUWm9aMUcxRTRKQ1FkWUNhWUVmNk8yanoyRk1iWDI1QjRpM1NyQjBTSXBlb0c3YUhGcXViSGpya0oyTmhIblowblhwOVJGdXBXU0FyQkw4RERWZm9kcUphaWV5Q2YwQ2VSa1lDSWptSE95c0trY0N0ZVZ6Y1lhbHRyWEkrUk9JSWZKMURhSmxTMk5rV2FBUUtQS2xwYnFTdk9nWXJNakNCZVlwZjZ0QXNSb2xsZkFHcTFkbTJpYXlDck1KMUc4Z2JkMUxMOGR4WUNvMm9qSEl4U2ozN1ZxT3pFT3RhWTQxZFZoaXBjRHh0bHJ0UWJKTWk5cXpjQ1dxNUNobnVkQmxsbVdwWjJpSEJyb2VJT3BtbVRGWUt4RHdtb01wdmFZdElJUGpIY0craHYzT3UyRmFYTWpZVDZnWUdtQzFGOVkwSU1IQWlYMWpucTJoWWRpZGVRSWQvTkRReG9mQkszN3pxUnJlN1dqMHZqcmxrd05ST1ZKYURPZVlwdmdLL1ZUZWluYUNkMTlueDZXMHZKUzY4d3h2Mlk0bGNRYzBsZkxlREMrOWdpRzJCMk1UN1FLT0RPRWFrVWs1N2ZIRnlQMElMR2h0Ykw4UkhFbUV0RWluT3A3M1NrZUpVOS9ERHltVGJ0VG90c1FaTklqcmhZd3NMdDM2KzZkQ1JPVDJoelh6Rmx4clpybEhBeEFHc3pPck1xWTRzU1g4RTdIOTVuWW8vV0g4VU5peDBEWnlQUXQxYXNTblN5ZTBrVFB6Y2RhcFcwTEtNbHRTMG1MRkJ4ZlZ5WHlLdHl3N2FyZDUwZG1lL21hRldzdHhMUktlOXNha0lIb0lPbjkrWXprSnprS25wb1ZLV3pMdXNPbUc4Sld5a25qWEl2MGt2MmdqbEd0MFB3UFZ0UUQwZk1BM01ta1RyVUdrcGVrc01jYTU2SEZMcXNtNVdiVVgxSTF4dklUK3hjSmRzZ3FCYmMvNFBUZDZ6SjNWbFVsTysyTkh1NmNFaEtiT2hNcEZmRWVYU2I3TUc4NUFQSjNkL3Z5ZUFza2Znd2ZuU1hud2JSa2ZMWElDL0k3eW1FeGxyLzF1Qm1nRW0yRDNNS3pHcW8vMmQ5OVNMOE9zNFNhOEZ6M0FnZytUYUpiaFFVdlFHNVlHZno2eTVEdFBFK0FSeDBEYWZDMkRWQXd4K3gvZXBMTUZ5dGRwS3AyRnRpeDFRZzlMWXdmcmFRY3k5ZGxhRTBWckJlRDJpYkk3QUlNazlDb3lzUHdQeGpnM2FRbW5Sd0tMcVZnVVZ0cXQ0V1hpeW1tSTQrRUdsdjExczUyelZZVzZ6RXFLN1BkYks4cjRvSmJ4Rm5TYkNSdFNvcG00aG11cnJyclpDMUt1dVNPcnRtRXJ4MjIzdndQQ0RicTUxZ2QyQ1A4V0NxSnhTaCtlVm42MlhPTktYMHJSSHdnV2hsS0h5bVZ6OGpNQnpGSnlZeTNrbzd1WGQvZ0ZBTFJ5citNRUhlSVNnR2ppTzUwakFWNW1YalRBcDdHU25XdEpGZCtaL25BUFJzbUlGY1U3cmduTk9mcUhUM21aV3hSVjRWM3NIc3h3VitXb1dxeGlpYklBMTFKWnRQbHM3WnhmZjFYeHVhZnlxR0ovOTZBT0Q1VUZGZy9tUitSNDdQMTlaSkFhaHJ5QkZmTm9LcE1sVUpzWTNVRW12MktnNEZndWluNzMrKzdZRk90aG9UK0JlbmxKa2F6bTY3N2dCNTJhK2RUU0pNengrVVZIWVR5TU56N2Jvanhjc0J0YVYvcFZRaTZGZkZ3bUx3MUo4VjR2VmM5QmVkaFBabDRndnRPSHJvYjdHSDQ2a254cW9aVlVmeXJkM2Z2aG43aklIb2pXKzRlN0crUzBueVBSc3lEWnIzaWpQOG0xOWh2ZzYwNnVmSUNmaDlucUR1NnRrWEwrL1dLbHZ5bkxzbTd1ZExackZqRXBQQWMyUlFZZWNlSE9FWWk1U1V5cFBySmpWeU5lQW1tL092YlFZclFrd044QmpLc3BEM3VTeTBValFLZUtxcWtRbkF0ZUhzMTNDTEVacHZPRFlPTjNST2FSVUh0bzJuSlo1MS9oL09sdUp2eDFCS3JIYzMvNXkyWm5kODhKWS9iUzIzdzZNcnlFS3F2ZDgxL21obUR0cHE0bGJEVG5DSkNmL0tzVTFJMlJFWGFJbVQreDhnRlk1SEFha01hSE42VG9uRVV0SW0zRzFYZEx1Z2FseUIxWG9PSVVCVFpHb01LMkVmRGNZUnpxLzZvM0w3NS9LUHBrcURrcVFWdStmR0pJQnVZWGlhZHhjQWlhaHNqMWNZQ1JjVzhMVUdlSE9kOXNMU3dpb3NoNlNHRnNJeW1UbFo2cFBsamQxc2pIcU5rV2ZsWk9pdGZzVVRNTFA4ckEwdHJhOXNqNDRNdllTbVhacXZTbnM0THJvc0ZMNzUxKy9hM05MZVlXeFZQdTdIdXlkWVNOZHpENytXNy9DN0lKSTJTamlwOEZWaW44ZDd0NWtySk5GWW1kTFQyN2N2Z2hjMlFzQmFkdDhQdCtUdkxSMFByMWU0MCtzTDFid214MGdBdGx5am9NcjBRWFg2QVFGd1R5TGFGZ3U0bitkZ25GUW11aHdwc2VUc0NnbEZBeE40VkJkOGNnVzFBVUhQRjB1YnBmcnBtL21XaklMU0tOOXNPQWhacVl1WnZBSlpzMFZZNythcGRGZVk3MTNhRDhDaVJ1MXJWeDY3Rm1aUXpja0F3MkI2TTlXbC9RZFJ2Z1ZaQ1hhZ3gwVS8xeERSTDU5dVZQai9mR0MzK0ZxSThmQnREaXFTZFg1SW5MMEd1M2ZFelZTQXdwZy9WOXRvUzZSNW9SWkZmQ2VoQjdjdkRoQ3YzNkV1QTVxVlY0eWMxenQ0cUhRK2J4WVk3QXpGOXFhc1laaTQ3RnJ3T2p0a2lHZWh4S0ovOHlOd2pCMDdaandXdG9XQzZvOGJ4MmFvZ0E3VDhhQXlya0I4M3JGUnRGbnNqbENXdzJzaS8wODNrb2Z6NXdWNVlyUDFVTGEzeUt6VDk2OXd0NUxhR3VRMWtCQUNMaWJPTHNHTFN5dUE0bkE0TmlxOEpzYkRINlhhbkhWZnRjNWNUb0VtUUlLczlLRWl2WGFlQmExLzNxTG9lcFlQTFNVaEwrTWJub0dtbmhUUnFtN3c3MG52SGJwWWtnQXhxdXU2dmFyWGRMOCs1amtqd09pS2t0dzRkMU1LMGdsSTlrNC9pVXhXK3d5WFBxekVacDRJaksvUXZjcitqMkVWRk1selU1Y0k3Y090UU14eTEwdklqRmhJcThyV2RJVkZPbURQcWZJSExCMzQ0ZmxNWXZDNCtwTWw0Q0IrS21ZeEc4UTV6VFplNkc1RXVDeGxIZlQ1dUUzRkh1ZDNOeFlKaHdiWjlKWW9MNCtvL1dhYlQxemdveEQ5bzVOODYxTGNXMUhmZURlYWNvTWplRzJNSkF0N0xCWnArdWJjUzdibEc2RmxST0xpZk9aOWZxWWpTc3lIWFE2bk5ZL2FXZFlOVTVvcm9yelVxSG9xTGl4dkUwNi9HL0hGbUtneW1VNlY1enJINkM0V0E4ZndDQVNoQU5SRlN2S2E4OVJ0VVEyNWxXMmV0b2c3Tm5SaGV1OGw0Y3pxc0pyeFdXOTVKVXhadWNyTTU4ZnBxU1owSjYxMkZvR0grcUhRMXVGMEJnY1BrTHp1SHlKbU5ZSkhwVEoySG1CN0NQVFJQMXdJSStVMVk1MGNNSzVOeTcwTk5Sb0IrMUExeXgzdXZBSENIYnR2L0dQMkFTK2ZodWxHTC80enVIZ3FIRlhsVlNybUFLNkVtd1ZOZUlQOEFyUm4rTUpiaHRKZVBhZmFoOTROeHcrK05wL1lNbVc0L0F6M3ZQWUQweEJGbnZoamRSbWZqNnhvZTBRUWYvRUdUVW1kaVZHL3YyQnR5TE1zQW5qQ0ZWRHk0MWx4MmVQc09OVGdqVDRqWGwzUVBpWjNyb2Fra0h6N3hSbjRqNFpDemVyNi9ROHF3Y0Rzd2JlMFdQSnZjSi9McU9Kd1ZJbTZRRmVWZTdXeW4rMlh3KzI4SUwybERCL24zVUgydlJKWkErUzJ6RWV1YkF5T09VRjVNcjNkUFovQlVCS1ZibGcyRVhHV2w1ZW42V1RnRlBKM25jemR2RGVCcXIrWTRCZFZ3eEZhRldyeHZmZmxtN2F4c2xVM3hXNm42dExhTjdLNlFvOXJ2MVNwSnlld3EwZkZZUWpTMWV4aUYrQW50YmlBdFBkbFFNVVlsQnNWTUJtWm5OKzNiU1dVUWNEV1hpcS85aVgyUUdyVGZaNGNDTlRvR0NjMDYwTE9uRnNUNWt0anUzdDZ1b0hNbUhMRnRwRDE5R243TUxJVHhhVFF1TUxUWWt3UURENG5LS2FDZERobUt4bFdlaFgyQ0Jlb0VuLzhpY0pzSnVmMUhYVkxnRVpwS1NuZ3VTa1VWWnZ6MlIxalBHWkg2c1JLU3hBcTY0dTNUbXR6ckpiL2F6MGRsa202dW8rZmZZRHZtWGptdDNNWnl3c1p5ekUxaXo4UEQxd2Q1VXdEOXN6dlpsTHdlYWhmc0NBQTFsbkw5akRvbEVib2lJb09PVjFSWDdmWXpCL3h1THI1VllwcnhLTWtxdUYraHFkOWc3eTdHMCsrQlpmd0cweWZpdVdWZjU5R20wbk9rSmp1a0ZYM290Y0J1ei80THNsN3M5bG41M2V2eDVpQmxCcFp1ZW5RenlZVVAxc3I5L01BNFArK0xIcENCU20vQXVCc1A5dkl5TEl5Uk9tU3N2cUtncXhRTVlTRDVSTGd4WXZPd29KUzFwdWFKUlMzT1lDRzNWb3JZRkFnV2ZXbjlXaWEvOVNKcHJFVXYxMU1hMzQ2a2VCU1NkQmlOVmFJR2hmLytFdEJjaE9HeldHSjRYTkVpaXJpT0ltT2Zjc1FnL3RZelhibXlqdjYwRlhQSXducnZSNUYyVUw3K2VLa0x3dTI1V3UzMlJNcC9ha0NHMjVYb2RjcmxCU3Y3aU5JeTVhaXpBeDFNbWpONlRoUzFXZEhTWG42U0c5NGhNYm8rUk5OU1ZGS2MwSUVGZXZXUjF4aHg4ZzM2L1pvbFFBWS9vRy8yQ2thdmRmNFB0UFY0Y29NNHRlMFBrRTdRZ0JXWGZpdGFPWjJTbGxlRk5ISnVhVWxXbUFGeGFORG5nL0FwcmNBbkNuNGxCVVYxRWE0ZmdKMWhyMmxPQ21UL0dnU2l3VDRRb3kxWHd2RnFnVkFRVWVJdTBKNGJ1VG03czNWNWVHUndOVzJ0SmN0eW5LU3FKOUVhQ2hFVFZHQUZhU0ZRbUQ2blZqaVU4Q053RHlLV0lUdkRrOEtOTVhteDlkZ1drYXppOG9HSkZLTjBzWHdQcVd3d3E4YlJnTTBCWEptbGNuWk44SUkxdElNcEUxRDNRWEVkbS94Wm9QSWNXVDFKc2NUd0ZDbTNMemk0V3RIb2o2TEF6SzdtVkZybDZLNGRFSUNoNklIN3hRenE5ZXJWSWZMUWNsSW5rRlA1QkhUUEJqbzVBbERIT2gybGlIU3lqdUFmODArb01yVkJsdXV2am05d1REOUlaWnd6VmxjSXlxaitqSUNDR2hZakRwaEtOMFRMMk9vbWQveHNMWXcrMFJSS3NKcmxqQ1hmcUVFblYvbysvVWt5bHR4WGZMVFpiNHU5NTdmZVpyM2JRcXo3K3ZyczluSDNlZHdGUXpyaXJybUZ0bmh6NTk4OHJIN1ZWeWE5NlZ1M2VXZy9qMlZhQUdMN0czUkVmUDlWZWJ4dHhyK1VmeW0wbE1ySHdTKy9kN3Z5dTBNdDM3VkVsNFhyVysvNjN2dUtWd04vTnJjMkFMQ3I5cmVyWHBDM29OblJQWWU3TGJwTXZ4bWR6by8wNFlxK1YyNExFN3pFcU1UMDEwQ3Fvemdydng1bzM0eU43NzMxS25sNDJGWjI4cm5WOUxRYjF3TTZsbzNnUzdyMStLcURPRDRibkIrRmIraTNNVVVEN2RKenpXTHYwbDd3dUoxdEY3QmV2N3B4Ky82bTE4b1QrK1JzMnVqMy9PbEtUOW1LMCt3Nks1R25pMTAxNFIvUCtmL0JPSThvM2J2SlNIRmNKQVBGT1RsZTMrc2VZQUIxZ29IWWdNYi9vMEdmNHV3WmpmNzFxYml2RElZRW9uTmFWcFNLSGJLckZ3MmxGR0sxdktoMzVETS9Xc0k1em9pbm5vcUNNVWJwYXRwSjlIbkRYWXcrNlVKKy90YXZBTk0yL2plQW5waWc1Mkg1S3NXSXU5OWt2TjV0b2tWWTRHVzV5UktUaEVyWWMvY1k5UkRkZDhYUkRFblZIQjVVUW9vR3FnSmxRNnJJdEZoQzd4eDlPZGFESE1vRU5ZNkhtVCtTdmFhclN6cGN4Mkdwd0xCZEdxZkJ5ckNrbVRlY0VXQ0NDa1dhS3VZZDZhTVR5RkhOU2JSYnpoNm1wM2xBTHNUaFluUTlxamQ3ZGtyTFkySzFEVzVEWlJxRVNjdkZCVXNmVFovVTRBSUNmVzc3QXkvWGw4VEdLS3pGWWlqWWRMVFo3dDc0c0wxOVJORDhUbXo1ZFQ0cjBQd20vMFozK1kxczdHK2w1Y2MwMnBvRTlwRzFOejJaM1d5RHJYUUhyODRyb0MyZVovM3FyODJaK3Y1VG1OZnd5YW84Zkg2NnpITUVVQ0lCVzdkdmZyYUVURzc3ZlE1S3VucG51aUt0Mmt3QVBlenBrOFhySzhqYS9YQ1gzMWpsc3cyYkZDZTFJM1kwbmlhbjd4clg5LzdHWUd0T2toRitJSGNwM1NlVk1vdzVHU3BrbCt6dWIvekV5NitUSDVaV3IvZHNYYlhGcTRmVm41NUFqaTRlcWVpSXVxSDVzSlQ2dGJBM0JjNmYvUi9lbTI1TTNVTzRaWm50N1dsY0g0bWNtcncyQU1FV1pFTSt1Ukw4L0EyN3QyWm5aOXdEZG16WnRpZ1pFeUpPczBQUFg2eVg1WTNacmV3N2hjUE1wWkpQK05PanFRSWFSbldjYkwyMnRKR3AvakJmSlJJaHE4QjVwcytUN3JlU3U5Tm1CUlZoamt1WS96NStQV1lqUmhVS0tKTXF3OVVOR1VYanZtTGVBdXlLeTJpQTVscnprN1B2VzJOOGhZTWNDYUFKenFrd2xyQzhVdjlla0p1Ly93MWFPYXVxOXBETTJpRGlkM0lUZE5wcFByMDVxcFMzUFg1enkwdmllaDlrcDRkZUtyNnlUMzczbSs1VjlYM09pYitEb0V1TnNoU0hVTHNONmF4Rk5wV3haTkRXYWlVeEg4L2U1WEJYbWJ0c0F2UUtiSk9vRDlWOVlYd3NqajRHMGx4ZCtzbmhGM1NwZ2wwRTg5Q3RXdkFDSHNkM1dKNit3Zmx3Y2ZNOERyWjNhYXhXM0xZOTVhYnF3NXZwYmp3ZVc4R0duNUpmaW5QY2tuVUpHbVlEWGlNOWZ2UFEvTEtYV2g1cXZpNC9mcnFJbE5LVHQ0VXgvYzl4aDVYUHJlcmhNQmtxMEhjL1VMMmlxeTlXcHI0a3A1amZ0WVV4aFVIM0NRUTlFTEFwWm1ReGZ4dUxWdVd0MUYxNCtmaG5wNEZIQzVnTERRUVBwYkMyWVQrc1hkNVVnemtSZVZXYWRFcWhUeklHR1A2QU5naVRtVDZsa2hQNUxhWElxYUNXZG12MXlxQVo2SEszRUluRk9JRE9uWEg4WnJiL2x1Umd3QWFJNGprRmJUNTh3R2ZidDFPNjRlYmcyc3JicmNKdjlFZjBvR0U0bDBFYWJtMmRUTWRZM1BKbjZMQXNqQldOUU5qVjYvWVZUdlVFSG9jTWNzSWdCN0l5RlJrK0VzeHNhMndyT293Sk9pejhZcEVjc0xVNmYrcmo2cjF0UFdrU0tISjZtR0FRcFM0UG1VR04xVnlMK0tCWnZUQnZRRmtwUW9UNkVKZFFlZUsxWGZ0ZVo1UGJFcURSc0pTZWhFMUV5UWdXNnFZUkZtTWdqaXdYN05VcFkwN2JjWTNtNWw4bmlJL3VrZHRGSFJVNHdCVGk3VXhoODd3OUlveHdOeGxvVWJvTEh3d0ZIVk9CQUpQaStTRFVjaTVPMDZYT054YlBxSzhnckhNenVCcGl5dUs3c1BKdUFpa3JTOWRZSmMrblZscHpnVHZOR0FIWndiY3pmbDUwSWY0czNsTzVYUS9rTjNhbVlkTFhreXlWazdLYktmazJ6bmtIOXdERGVXdk9qbWZ2R0JiSFJMay9JN0RiOWc1WHpMeWpQRkp6dlplMU0vQUp0Zm4vUXkrNFllNmZMalROR1NhSHNmUExic1BEMHFzVTloZVAvc1A5U0FoM3RMc3plK2x3QmEzRHl3RjR4MkpCUEgrZG5NZWtQM2FQSHozSG5TM0UrRVRyZFNWdUF1UjJCbDRVaG1KWDlrVjBqYWJsdXoyUm5sSlIrN2VSRzE5TVlUM2h1NWpTb2xzOEFpODE1c2NkVmNJWDVkeVZmQ1lWN0xiL1c1T3ZCdU1JUWtYYWt0cGdmdG9QUGZyZmZQZkl4WHhZdDVnY2h1T3FpNnJlTkhPODg3dDI0Uk01dC85V1VWMDg1M0pmbU9ZUjZWMHRkODRFQ1U2ZnBuZVczOUlselZMaGdiYUIrdjhrVmRhMmN5UXhkQ1lKSXo5ZVBwU2NHY21kWU1vZGYrc0hmYTJ1ZXkvdzBYYWU3ZDh1Ry91VEwyaTNCNisrMkdvbFFxQzJQZCt3ZzMwR1hqVXRkYUNKWWR1ZU9CY0kzaXBsUGNjSFFNc0kwYkxxQ1hHM244bDV2L01hVDVOcjNNb2RZOWpiQXUrYlhPZEN1c3prSE5BTHplM3YvajlwMm5UTXJLRkZYOWplMm1pdi9TcDNEZWpmd21paS9iczB6WitOQjNvNVVFc3A5WGlaSThrR2orMlpheWFtc0Ftd2Q0VE03aVpNSTgvczh3dkRjOW9BWWV5ZWErR0hRb0h1T0cxcG5HbVVNaE1nWGlVRXJTY2R0UWFFQ2E3K0FSMVdPSE5zM0FOZzUrcndxbk84ZWZnaDRYd1BtamdJWlVGSiswREhrVTloS3B4OHBNWmgrcnk0Tm9ESTFwVnBkTXdzNzlma3JoYUlXTTZZVnZmMlNrSk0rYlkvMjVjbEZmNFRVK1F3OEgwMzcyNUVkSXNxazdmOGhENVVBTENPSnA0WjdrNjhxZ0ZvMkN3eFJ2bStiVVZNeTZmY0hGTVlxeDFjUnM2Sy9mdVhwTjJVcFliNHJLZjFwQlZsL0svUUloc0Y5N0p4UFZST0o2SWZMcU9VbmV3NWIzZXhsUUJ1RnoyaW1BVXJSRFVJc1BhYVBCR3lML3F1a3VoemoxeG1zcVlqaC8yVlo0ZzN2cmFCODU2YmJ2VkVEOHh5V3grNDRzTmcwUCsyeTZZbENBNW43STVCTXF2V3A2V0VUSk5lbWV6ZEhwQ21EYk1Nc3M5eG51Q1FmdWxCc2hwUHdPQVdhak4rQ1dLZlJWbzhVRTBFNU5mUlowK0dBZkIxMnFXZFc4Wk4yRGN4YndwQWY2VXZYN3dHczl1dkpuVmJ6d1hHUFoxYXg2WDNlcnJYWk12UHoxbjdDUjY3UXlYMzZBa05BTzY5TGxDQzZ4N1AzMjljdkNJZkt1a2gzMW1iSDN1V2taek9SakszOHRJMXQ5WU4rRERWUDdYbkRQZWFjRm1jbThxblBtcVc0akdwTUZEL3Vzbzk4ZzU3T3NDbUJHM0JzdWpCSDA2ZldIU3Z2blpKOVR6eU5UY1MvZkhrMnZacjRmZi9CWS9TeEtNdnYvenpaTnVjdEE3aDJmZ0g5ZGlWaHZSMXVwK0FQVkFSdTJHMnlNeWJVTnQzS05IRVlKTHVwUCsxUG1mMWE2RnNuaWpWcnBBZWRYc1Yzbk9LcUc2dWtBRWdKakFDWXAyd1Nkb1hnbysrR1JmcXNSKzJJWDVmTXdaMkhtVkVKcHB5MlRTQTd6dWxiVzYvdk9HMzBkczdmTGx6TXNuQXByaWhRNkhtSG1VTFlaWU0zeUluNkFoTElNQmdJNlB2SDQvdWhDNmRkVWsyU1ViSDhLSGwzNVJmMmxHWUo0eVRaSnV3K094MUZ3b2lNMFFzbENETVBaWmxPNHJMT1FsZ3dKUUFwcGwycWViL1lsOXUyWTVnb0FDWlNQeWpKN0R5RDQzeHlYK3g2QXYrNDhmdFFKVXVyeGVVNzVlcWczcnpBTUFEcHY2ck1MRFpYc1VWUjcyeHJCZURCdU8wa1NZRVpOcVhaMmEyWHQzMXpiNzF2N29YT1lrRFE3T1VJQloySFd0K2FHUUdMTHl6WlVyUWdnWGhYRFd6TkJSbloxUCs5THQ0MXl3emwwWFhiOUJ4ZFpWcVhMcCs2UWEzTXpEeDB4STB1SkVIL3ZleHE5MDFJdW9kYlFhelNSTTBjNFB2a21hNmFiSEt1ajFqYzEyZWpBbnE2RXNMb2ZEemRjOFdPUjdkdFJSaDEvRDhOTEM4YkxCSHR2QXIyVWI2S0JOOUt0RkhhbXNnM3JyOW1KUjFWYzlqWm45QmUzUTZjWXpDRHJoMU1iTThTU2lKSlZzVGhlYkxYcUhRZTdiS3JaREt2RG8rQkg1NkFqWGFNaEhZYU4zendOU0VOOFg1bUhXSWpXN25FNzJXZkZOdkd0QjlMSzl4aEVZODZUajcyS0h2YXlQcTN5NzU5TE56cTFQYVM3OFR1eGtaTVBDdUprc2p0alRkd3BmcHJ2Q0x1QnY3RlVORnhBY09TZ010ODVrbTM2NDhtZ0thbzBCVU0rSHpuZkVLTDVJSGI3endIY3RnODFZTWlCQ0lHNzBUb2ZKRlZ2clREUUFpUUdFZHNNRmpKL1JuT0FldGx2ai9Eb1hnOE8vSXJmWVFIZFFiUVVhN1VwVFhhQjYrL0ErWGh2V3Q1ZTZqZnZzVlZrbExVekQzTHNXSTBRcnVRNmJhdDVMWVJmTFppUnUzWldHS3IvMU9CV3Y5UDB4SnUzS3Rpd2tKZ0hsRkJ3TFFZMVJMRXRVVW9Ecy93WTFtYmlkZWJRQ0hyWXR3MGVYdUQzeHFTWSs2MDNzNHorOHY5NDZaNTUzejV1WmhwbG9aZkt3OUpqTFdPcExJMnR3cHpsbUlZUEUwcktuS1BxSXF1MFFiQTVxZkxEVGkvZ3AvSmJheDJ2Y3YrcDZkcHg1ZTR1alFCNDNnU2Z1ejVoc08zbGZMM0xJTVBCSURKT3dpOW5XTjVvL3oxWkNvVi9iay9wdTIrR0tORHlBb3NOcngzbTlOMC9XUFFqeEdWd3h4dFdkWndGWkhnQmhFZ0toN0VrNmE5RlNlYzBSdUtEVEVpNllHaVZORk9aZWNYdC94cTdqclM2clVneXVMSzRXVGdxOUJnRU1RZzNPeDNBeVFMajFsSFVNellMZ0ZKSjNRVlQ2QnBETC80QkJTeXYzeEVUejFrV25tOXpGQWhQaC9wYXNhQUppZ09KMWROcFhUV041OVlkWXIzQ0VITGQzMmVXQTgxM2lXQ0dja1lrMVBuTi9QK2VZYXRLLzBtZ1V3dUJvNHhqZDdyNEFDRDdMYW1ZYWpKazRzdXpjL3B3UW94WnB0RGRuei9HOVIyMldWdEFHaStjRmloeU8ySU9SWWZWc2p6SldCMTByT2tZWFpuaVhEQ0xobFcvOTJBYzBSWTRrb21OWXgyQlFES1lwWUtzQlNKY3hpZ00wK3RFR0NlaFhCbXFCMXRCVGhPZFR0UTE0MFhaYTlTd1IzblU4Q0tCdjVJRjhlWndVWUFqc2RnNVM1STR6R2VKUFEvNFZZTmkwYU9YTHk2R0JNWkt4U3AvTjI0T3pJdFBVc1ZJQXVWMXpmV0NFMGplS1VXYzVqaEF6VHRmVUEyN2dTQTFkN2x1NG4vNUhvYjh4amNyekhIVXJZVVF5d01mMEhwQ3NXWDl4am1acEZOVzZkYThlT2JsUHhYTUxUSElLVldhL3ZKakxKWTVmYW1lemJmeVl1Mm44cXhhQmZNMm4yanJWandzWVgvNi92SlhMUlpzcm5PWTNEMmZTb0VPSkpiZ1l6aXhwako4bGVORFJoMnFISmZHVjgwQlRYNkN3SDdabDc5L0pOVE5xWVliZUZSNy9XcWk4S0ZpUUxWZVBWeDBDRzM3STB2WGFxMDlpY0wyYWEyd0Q3MkxUZWxLT1BGK3o2ZlQ0NmNFS01xUmt5RVUxdEV2VWRPUUp4c2tCbk80bWZxV1lFcXdydWJzR0laSWczVUppdGV2dXlSa2NCUFlTdXBnNmVrbml0VUp1WGVhNktySm54d3pIS1JOL3hDbzBtSnRpWXBxUFNyTnlZYjV6a2J3WkpxcmkwZW5rVTJNb09Ic2RsaGphTzFRTUFmMlg2U0NPOCtMTUY3MzJzQmhvOXREVERCTlJvb3BkR0VzVDZ1TndrN3hqaTE2eEZkMFpXa2dxREgwNnVaWmxJd2E2NlpaNkp1NkpXaHVjUUFWbjVqN1cvUlJJcmdTSGdOTXhQUEFOYWpMSUh4NFFOUjNudWY4ZG81UUV1NmpkTTJUS2UvWFkxWnc2RzVXSkxwOXdlUHNVSit5b2l5NEJuVWlJanlIZnduNGVQbGtEMmdhTFl1a2tjbEdVZktRb0NrSFJwVzZFc3dDM1lXWGZSSWJkWW1PMTlSbmF1Z2l1VGFEbjdWWm8xdWx2Mzd3elJYNFZibnc0d0czYW5FNklYUnI5eGpkeVhyczhOVFhRWnJ6TTdJaFlNcnJTdDU2d3ljcmNFNE05TURjVEtHaFhBeTBXMk9pclYrTW1jOGh4UG5LMmU4a2p3c283cHlUSHprNHFQL2UrVUxvaHIyV2IwbnpMUXYvRFpqWWhyRTZMQTNIS0duR0F4WmJ6N0dyZTBnTXhZYVFRQ2dsNlJabUxzUks2ZVVpbndPa2tFSmE2MFNiSFNidzZMZHBDb1lVVENicmtzQi9yM0RrOW1xd05LdCs2SnpxbTEzdnpMdkp6aGlMY3M4Y2NJMDlURXFsVVpaVzNCOUJKbDlISWMza2hkdWUraTg2M2xMeGNJanhIOFF1Ymc3RmY0WjVuZnJncDNSZXhiVll0emQ2V245RjFLRzA4VHVPSlV0Qlg2NWZHQmtpV3ptQnB4akRmRkUxU04xMHB1a1ZBOEpoNDlaMmwrQW9YYkZLUjVaMk1JeXgvc1JvRHpDaUNwSGlkd205MUVLR016anZBMTczSFNTNUs0R2Y0dEZ0Rm8wWi9ReXhKQVAzWlVGbTFuc1JVTG1LSG1yODhFdDA0TzlUV1N1dmE1blYyczAxQTRBUk0vbG9pbWRhYmpaUWJiZDdXSG4yMzkrb0tlZVBTRmhiZG05Z2RybzduNlBYaGhmT0oycDJRYXJHQkVxc2xlMzFFeEhRY2JUcDcxa3M2TExoenVZVm5adVh2NFdsQUNtTVkwQ29qQWVkdmYyU1RHMVdWNkxaZU4vdkROcFRMZExqbVZETndxWXRVdUR6NG01YnZDcjhxWW9QMEZUbDUrMmRqRDhxNm9tS0E1VmpHelZyQURIWlBORzM2SENBTmpMUTBPY2E2elRVcFdXRjhBYzMyOE5MVDl4UThJSHJKQVB6TzFNTnpLbUVtVXhGdHJ2WERtTXQ2QThrMFdhZWgzSFhsVDFaSGVWeHZuUnA3KzdOSlA3NVMxRmFkWGFDYnVqUStjR0hEbTYvV3Rpayt1Q1p3N0J2ZURNWW9tdkNMenlydC8xSFpUSmVZbVBydVAxYnNmMEdFZk16ZWR2VmNML3JoeDRnQW52K2ZWbkorZUV3a0Q2OWFVblh3WmhvNFBFNUx0NjAxRkwrYmUrSDZoZXNIL1gzeE9wWjcyWXE2dFpRQ0lBNjJWWEdzVGJXVUJRRk5ycjMxKzJ0cTIvV0tVdEdidS96ZmxrVStOM1NnZ3lOQ0hTNWNlUlFRQlBpWnVoR3VsNFc1NXJCaFJ5dlkrVTk5UzBmYStkVm5acDZMQURXZVNGOVgwdDEvNStBSk1jbVE4Lzd5ejQxMWVZelVXYlFueFhDaTMxS3Q3TENyZTZTNUM1akVNTzhtWjZxZWNXbHE0ZG41VTdQWjE0NTE5eEwyMm43QTFWMFZIcGdGTXNhZ3pSeU56anFuTTQxM1RuM3FHN0hEQysrQkNPUXZjVlZ5U0JhQ3QzUHdzODBSeG1sMkNxS0MxWFVvSm8yd1c2MjI4ckJMWW9RMnpwNHNGOUVtZDVjUjF3WUhmQVVlUFlYR0tpaWZVYklqWEd2UXZwSUVmbkVaZG1lb25GcFpsbU9iNnk2aDRmczlLVHFUM2JGRUlRUENoa29CaXJVTXFnTVBSR2d0SnhOU3RHM2laQVBQU2VGaFE5MklibDRlUFo3bDZoZXQ0MDExelBYTVpvUlIyK2E3SVNGMWxKRVZnUzFSUHJDUEZtR0dSeEFuMm1GY2NWdmI2YU1ycGpjdk1mYjZrdjd0Ti90Zi80bWRHcjdhd2dlRGY1U2NMZHpBMkJkWFdMeFZwL3BxSC9iTy9WUTN4b294WThGRTVFdUtsL0c3aFNyVjFaa1F4Tk4wWS9NL0xzL2lCVko5K2MzYlY4THVZL25lU0lqZG5FeWVpa2FSeFgyQTluYWFyUEpxTFcrY1VMdDN3VUNhZFI4LzJJR3NtT3pMS0Q2eHowRVYwU1FOb1l2MS9KdHZIUjQ0V1YzTGlQUWx2azVZOUV6Ync4eGc1UktxckoxOVg0SGw2MlowMlpabXMxTnkyMUdhUmpqVlRrVUVOTnpQWVJGc0ZyeDN3STBIUDEzNmZ0OHgveVFSMTAyU0h2cGJudVJhTXdMbnl1NjRibFhtSE5OZ3lEaU42dlE3WmNLblIwNEhqQWN2ZG1oakFTNUFZNlYxODJWcjRsMWJZL2NJY2VrM3V1WGl3SEpuRmVsUTNSUjF4cm10SzZ3cFJWSUhXWXlFbFdydURpV21CV01VQkswVUtQVjlFQXR3NjhadnpVbk5CTEVJVytrQWZKZEVid2dJWDg4U3BsOGJkVzNkcmlBbFlmWnUxRkI1dExRaWtPUHRWR3ZLOUNDVDhzY2R5WkNNTkxUS2JuTHJEd2VpLzJWUGpQR2ZJZlhvWktPY1VzczBnVmpkTGZ6WnZsZWNPZldBTnN0Zy9VeVA3MVowL3ByNkl3TkRzcGk1NmxjWXVQK1Nldm1oeHc1aXZFUWNPendmMUVnMVBZYlY1S1RKM1prUklSL2wvc2ZrU3BVNFhEZGFLcnFWUmhqT2RvSkpTN2RXb3FKUm5QK24xWThvMWhJL1QxeDdic3RzeklDQXNxakloWXZkd3hkNFY1NXN6RmwzdmtTZmpscVQrbGRPQ2ttY1E3VnBIUndKZ2x5RWVBWGZDWUxjaFQwZW1pbGhXVnA1ajFHUnZEM0VRS2o4dTBWU0ZQUGd3NzM4Q1RqN1M3V253TlU0RzZDTi9tWWF0eVJLY0lYZTFRUFM4U2x1d2FZZW5ucm42ZnNhY0lNZVYwaUxQd21SSHU0SlFGbVludHlhVGVYUWNvVmtqWWZzZUo0Rm4yOUVkYmoyVkRDNFNCRUpJN0hHQUZkdGI2cTlNdkJua0IrS1lQODlxS1FPVUowMnlYcjJ6cWJkbmlOUk0vVUNTNkpEN2tSY1U5WStkWTFNamNybXk4SUE5aUFTZ3ZIYmRsM0ZRSXdqaWFqZ0hIZFZMdXByQjFZTXVsTEQrZ25FQm50MWNhYmg1Z0NwcUI0bjhJbWx4bnRobUhnSHNQNEJwOWpWNW9lb3Q1cldtYm1abGFaOVBoc2hWK20xSktlYWtyS21CMFBKR2t0SFRMUnFySm9KejZveENBRVJBSnhrdEgvbFZPMnpTWXFyWlk2ZFp4YnVnaVBoZWNUTkNmK2xTTmdrMzVoL3JKQ1RVQ0pYTGk0QWo0TlJMcExPbUJPQzhVVHgrdzVyN1BuY0NPR3VmS3oxMGFRL2xzNGxUTWJaWDlMZEY2eFk0Ynl1a01uRjZjS1FNZ1hDMTJnbThrdGk5YnNDZENWQkxwRGNNK1d2RGVVYXY0QkRCK0l6ZlJlZXo3NXZRWTdMYitUUkJOS3YzM2NVNGtBZWpqaDhValIxTGg0NHFLWHZNZTVUQWhTUzdlOTllUDR4MGllTk5vRHk1M20xMCtHZFVFZEJHWXNTSi9jYUVoRnovUXFka2lraHVTUDZVcTg5NjczcWR0VSs1TkZ4S0kzT0F5dGJoVmVjTFVoRExHSEFDaDNKTGpTeldhOEgyaWlRVGRNMDJSQjdVbE0veDhkdWc5cFhRekJxcyt6YUxCbHA4elF3NmtTbkZKcUVYVVRjVHN0bmpRWGRUc21mVEZ5Y3ljU1RsdEc4UmtSOE5reW9lQTFiUDUwR1BXWkltZFk1Q2NTZGk0Y2w2Sms2RnNpeGhaVXpHYUFRRUhWL0s5cDFncTlhWFZUM3RhS1pFOVZ3MWwzV2F4b0ExVUVheE5uRWZISW40SWRpeTJseVlXN0ZHQnNtWkdLTm5BR1lQa0U4VUpIQjBRTlhmcTNBTCtaekQxbUdvREFvZ2pBZXhCRUFNcmI4ZXgxWlVxM1Z0Rk96Ymxnc24zTUFocWFEdkRYY01jNHJsZ0dXb2xXN2d1RVpQWGhUeWZIclhsWnFHRVNweDJISDIxUVBmMTlnMzNGdnk3RTdMQXZ1TVUyTjJ6MkJFRUFOZks3TGwwR1MwelVHbU9XWlhoRy9zVWg0cldqWXozUDI5OXJrOGtGOFJSUWV6azhIeHNrOXZYQldPSkh2K2VNWjVVeU5EZlU0TWlCZ1FGM3NIUXVYSjdQQmpHKzNNcUNTV2dYTTgrdU5pT1FWdEV3WGNIUmQyMnp2TmFtS0RkdWhRSTVyZGJtdWRYOHdMbi9jQXZWMW03M0dHK3ZLT2F5VTFUY25jTUJzanhDanc3UXkxU1NXaGkrZ3pBRldyb3pBSjdIZXE3ZmEvT0RGczU4N3AwUUM2cEVNQzhPTTlsbVhVUndEdHYvSjhHVmswZEdvTzJLT3F4OFNYRi8weG82YjFhcnVjMXNYNUVmdytrandmWGpIbmhadm9vSWxLZjV4cHJQR0tXNTViT2lZYnNaelowckRLak1pYWloS05BVXg3MnM0dVlKc0h5ckdYNWZsK0l0NnpjOURqcG1xTEpKNS9LM2pTS2EyVTVka0ZIaXRYNUJnSWVNNFJJQjA4NHhqdFR3L3N3V0tNS0RFNWM1QzhYaEpHdlBQenh1Uk4xcnA4QnhESEkvU2FtTGpkRVJYWjVIRUNTU2FaZVIyUjdFZkZTOGJCejRpc1gxYVIwOXQwSGNpb0xSbkhnSGptQ3R2dy9QVDA0UkRUeFVtT1Q5bUE2S25XUWxXQUFwakVFeG5iSHhLdXZqeUltdG1IMW9XdFBRWVlkakQybjBWVEN4NXUxbzk1dnQvSUtOZE5GVTdjNzF3K3pkZTNWQUdTbkJmU0ZoV3ZobUJIdnRwdW5FQ3ZJQks1L3lWb2l6eW9nTnlNa3hYMlZuYTNVVHhPc2xnZE9na21aMlRzQllDbnBubWFxUlVnNGYrbGw3NDkrTkJBUFY0enBDb0c1UElKQzR6eUlCK04xM252dkZEUnBTOEFqWDkvM2t2KzQyTXYrSnRWbUJ2Z0xWY2RiZ0JRYXhxb3dzTndKZzdVR0tIS0xPQnRsc0hDOXlhTlYvTGVkRnZCNTU5a3pmdUhPUHB6NmlZSkRzQkp4bjFDWEpEc014TW5LZTBlblNueDAzdGhNajNSM3l1Unp2emF4RnpLcG9BVkNlYTRaUDZVUXRERkJTdFdoTTV6dFlZYVNnUXRPRzdjRkJ5ejFCOFBVODU3Tm1IeStlMVhUbW9FRkFlaXB5M0VacGlJalZRUmU2dlV3YTNBTHR6V3duQW4vZHZId21OalErOHQ3VnNXK0J6RjVqL0hoSWcwRlVwQ284MzJranhMRFBKVWhZL040dXRGRmF2QTh5bkdHNWV4aVBaNEV2U3JqWVF6bHdwRVR3SGJpY3hMdU42NkdwL3JHTDJOdEVxK2NURXA5dzR5K28vbmpHRyt3Y1RUaStqcHFzT05GaWFKNUpwNXgyUmtPVDdXaHpXN0Y4eTMrNlhmVVpWa2dWTis4ME1GSVVzemw5bDdCMDBCQVAzU3VhdVhTdThxci9RbnNNeUUwMkVhek1mMW5GTEdiczM1R204d2gzekhtN2RnaTQ1UXR4NERkY0hEbHM0UDZHV0E0R2ZPNitwMmRMSmVNaXRBWlp1cEQ3OXdvL1U4ZDBjeXRaYWtTYUFyd2kwWWZEczZ6K3ZFMGl6TWUxeU5PblVpNGUwS0xrd0RkM0M1VXlZdDJQSzlDdlhFdUpjZU1EVkVRRW9Vano4TU1RK0dwTTFtekJNQURxK3dqZ1k2ZDRJRFByeEhDRlVZL0p4c2d3SVpodnhGNFVBa1JrNGZPdnRFRXFIT1czTTBNRXcxbXVQclZDU3ZuVnROcDZDcEtyWWxuNHJwS2dGZ21uVmtxYnNKbFkwWTZWN3I2SThUSjNiWEN3d0pDK3lhcW0wNU5nNUMyemdkV0dTRzM5cENBalFWQ1hwVGsxVFV2bkU5VzhhUjdQZWVOMWNRSUxpL2hYTVJDeXpPVXlRQmRHbktoR09ZQ1pQVW1TdlpOK1l4REtCWlcyazh0R1h0aVh5N3JGNDNjZm1vUzM5RHRxOVBWQnZ2bEVtOU9IcUgyZjBxYU9GQlBGQ1JxeHczZmd1QUc4YkpMMVlNbUFZVVVhUGVMK2tvQi8rTVVaTGNMejVRSTRDZEpzbkttMkx0NlQxcDlORjMxekFBQnZ5RjBDaTNTVm5Dc3dRd0FKUFlBTGJsb1ZzcDUwaUpkZ3UyckpVVERoMXN5VEx4SnBPNmlwUHVKNlRBNnB1QzJLc2tkZnY2T1RkdkJ2SldFQnVnRXBSVmVFOTQ5bWdpWWRaVWhhS1ZPSjVVdjB4WVBKOTJuallsWEFKQSt3a1ovc1E4UHQ4NWFxV2xvVC8zK2p5cXpXTXdoVWVzWHovTERUV2FKekJZcXdHNnlNNk5nUklmVzhlWGJya0k2cm0zSmpjdWw1cDJUeWpnakxMOUpTK0l6SFpFWWpMYmxqLzIvdGZMT1NrYVczWUFJRTdXWlgyUGlyVDl4TFNLRVNYbW4zenRvL0V4TjJSOUhpU0thd2wyUkdUM0xYK3pwV3NveGNSb2JDLzY2YlBpV1BWYmJVTlJBTW5HdUpJNFJ6OTdUd1hLYWVxck8yTzUxdzFqbWhuTTlIOWhqZU9CcjI2dndEeDV5LzdRS0J1Y2QvQk5qak5qRWZZNE9sT1N0Kzl4MldFbUQ5b2RlRSs0L0xEVS81WjdyUkFFMnQzbnh1S1QwTmNRSE8vZXNja0VBQzZISWVxK0ZWMjBhcWUxRmhBc2lLSXRTL3JXU3hocVlmcWlWQ2F2cm1SWk9nNFJnTHkrQjBHUWx6dyttRWJiWjc1cDA1V3hNYzlmSUhyQUV5Z1dEa2luTFZKZCtQUG5FSiswd0crZ1dUQyszMjE4TTg2d2ZkVE9mL3lCYTNIYkxiTDlDbFR3MmJoTHhSVDlOcy9zZkFWVHlKY1RXNjBlOHlWU1NGUW9NQStGa2taazBiSmJSYVlkT0R3VGwzakNYVUZOOHlzbGdma3Fib2tDVENLUkN5cEY3YWNwMFREcXp3N3d6dUtEM0Vob1pSUVVXRTIwbitpWlVOTXVkUXo5dmRuR0NDNnhnMmthM2N4VUtXdFNYemx2dlcvZ0t5QlZXajFCSzYrODA5ZXd6cUJJSEZybmRNU1VvZDRwU0NaeTdRYjZmT0xDeVhTRFM1MUFDeEE4dlJyNjVock0wZ0R4cGdaYVNUWHU2cktOL0Fyd21RbWFqZExqWHFsSUZFNFVRN3E3MG9MTWhsUk16SVZpYjlYaXdQaW9hSWJ0V2hpKzBpRHdjZVlUT1R5VVNJRjhIcGRFd0JDUmR1bTNZZGFaalFqd2JJeHBjTDQ0LzdWWVExekJDUXlJZGVOVFErZm5GTXg2QTh1anZuREUxNG8vek9ac0tlbHFETDVVejZ0bTc5dTlSWFhGSnk4Qmd0M3FvdS9lMGlWUU1WUTZONjB4eE1ZL0l4OXM4UkM4RlpNMEljQnIxMmRXN3ErMndiMWZkT01yaVFGSVZHVVkyNHY0MGlKY0ZDOE9mNzA0Ym5TSXFESnpkMHkxK1R3NFpvcG9obW05cFluZ25XMTlCQVdBTXkycmJEU2lVSE85bTE4ZmtYUTZlMSt5YkI1OUdwQmtQL3I1ZjltdUMyRUFyUE5zdWdCcXBscHF6UFhtSm5ibXhRM2tYek01MWlhR1NxOUZvY1QxSG9RN1V4TG5QTXozcjMvcXZkTSt4M240ekVZZ3k2YnEzVWo3blZxc3BJZmIwbFdUUFJaZDNMbHF3eFVJNUZ2TWRyYjlJSktBZU9ZdU1lUjdLa0k5eUd0VnBGQ0FwNnM4WW9EbnhoL2V3OEJqZ0FncEVDUXBkRSt6WDlTK2Q5VlV3dVJhNVVrUDc3MCttWXRJSFU4Q1ExUzVtN01VNEVqTmtjSDJoYldlZVEyUHZaV0pWT3g2YkcxSWZELzlXWVhleFFHK3pyUS85Q1JreHVwSGFFN1ZQZ0RGYStZRHpQT1M3MXgzeTBVKzFZNXdmYXJURDN0alJTNzBCdGp0byt1R2FUSE1hWkpRSHc4bHV6UEd4c3VxWUtOdEtPcm9oRU9xSTh1OGxYS2d5TWlDV0x6Y1k0RU9FUUN3My9zYUFyQjUxQjFieDJvMHNkUGRmbHJLVjVoNlRWMWU1QnRZYzh0RGRWc05qUkRtSzFwSjZKMlM4K2RybXN6MG1LUFk1OGRWSG1HbDgrOEJVbTR6bUVtNDkvLy96RnJXM3RUaXZmL1A5RjdyYkZ0cnFyaEZxY25ZY0FGSEYvcUttenBxN1EvcElRclFWdDVzTU43Lzh0S2U2cTg3QUxDK2RJWEtZbjI5VnN0WWptTUVncHY1emRNZjUvZ2lSLytpQUlCUGRYVU9sUjZtUUpSeTZsYTZkSUxwMndCL1NpeldyRkM2TWhsbjFqNDFvaW5ZRjZXR3F4R0FZMG1CbFdQSkJZbFpybEt1YWJMNXNhYU03VkpIUitoNlZ4Uzk2aFI1NXQyVi93RTQ1c0gvb1pVUU5IZmdSV1Q5Q2svNnFHZGdHUVF1SGJCd0JXVytYTy9ydTNnVWdBVitvUlVRcjZQQXRaY1NxbkV6TWFHSTNOQmdtNjlFQ1RIVStNRmdYSFRzVXZQVkxIMHBDeWZSSGZGUUxKVEVwcnpHVFU2ZUR5M1lwdUVwTHJhOVdRYTRpbGwzeEROcDhxb2JIY3hjeS9DeFAzVEMyTE5MeGV6NG15Zm5EUlo0aS9Xa3p2c2Foc1czbVJUQzhvMGtkRWtsWDJPbUZ6S3NscU9jNzQ2MXVQWHFpYTlWaDBqTG1ES0luckVVUkdyZS9ZNThKdWxaMGppdHdzSEMwbW1xeWFPZnNkOE9Gb0FIaVNDL2FtSkk3VnpDMmFQRmJibW8yeGRpdnBVR0pQem9PejFlaVZDdXJ0OTMrMmNlQnJvMm43K0JnYzdpdWUxOHN5TDVrZnBKSjM5ZTJVNXF2T214bW43WEFlQ3VqczRubjZyT0hvcERsU1pZR0R2Y3VkSks0K0NYWkl4Uyt5UVF3T05qajU0MTcySm5aaFJkbHNHMXlsTUEyUHJjcE92eklnTGx6aWNESzlwNGF2TWlKMHNBTFNSTEZaOFdEdDdjSEFPTTVGYjY2VTIvTTBHQXQzRlBxMUJkZUdyN1NWQnN0V0d1V0dlMTljUURYK0s4eEY3SGwxZEFwMEJyR2RDUVpOWnlaTFR3UzdObDVlVnAxM2dzbWdFcE5lOTgvZS9xQVBacjlUcFhrbWJlTzkrTTRERGRqZVY5RXRIVGpvR2VGK0tyVHpONnFaZnVFdnBOQUt4SU5qdXhLYkwrSkRrU3R6MzYrblNRbzZjOHVURlljK1BJTW9ZcU1JOGlnVmI0RFk4WkhFdHpuV1hvN2hRVUVLeFVHN2xScllPQUpsRDIzWERBYTNDQUVpQkpPM0c4YWVBS2NpYnU4Q1VsWVE3KzBLOTIrbXIxTWo2OWRNNmkzMXF5N0RNRE1BM0xIRkhDcHZxbzQvOXNDTlJzd0dkUmFYb0M4TjM1TmErSGhRYk83cnpkRGNFVEUweVY1UkRFckp6TzBKTU43bmtyVHZpYlRLa3U3ai9WTTRhNHAxWitEcFNCMkFNYTc3TU1EVjhDb2h0aUVWSU1wbThOTVprc1R6U0ZRK3IyclFER084QjdZWDZiQThhODlGS2JmMjlnZXROc2RVd09CRUM4Y0cwc1I4bkVNQ3NPbXpobzhzMmtiOTM1MUF1ekcvWXhSTmZkWmROL2tTR05BNDVySUp2d1VZZkRhT2krWkl4dksyUnR1MzNLZS9nWUJyWktXZGN2bUVFcWV6SVpTSk9EeHdQMWdmdXYzMFMyMzFyM3lXamVkRG41dHY4LzVCcFAzQkNZOG4rWHN6OFdjZUpCREdRQVVCQXB6V1pXU0xKcWpqcjYwcFRSUGYwZ25nWGVMbjdZZUtqSU5YOG9KWmpxaXZSa1BLR1BYYnkxdlRBNllVcEl2QXdBdkxPZGVPVlpESWFacDFLblBMYjdZSldDdmh6clZPYzJDVndMUHY0a2xMdVQ2YzhOV3VrcDVicEZuMW1hY0huNzhBaWpYSW9iL256Qi9vMGZtN2RsWGdUN1pNdWI1SGYzYXVtR1hEVkRmMzZ5TU5ZMlNSVGFYVU1tVEduTk9LSlpHNWgzd0Myd05MVElWbTkzOStGTWhEbGQrbGdOMTJodlQ4ZkE5Tlp4TE1PcVhhd2UxeEtKUHppZXlkcTRYK3FyWmpqWFdlQm9YRkNqemJESnlDYTc5ZHdBWnZBV2s1eFk4TWlFTVlJSUkwaENvS25wZUJCbGg5WU1za1ZYdXJaWGxNMlo0V0RqOFJvbDV4QWtBeHRTS1NmZ05BUUNBWWk0YnVsZTFGSEF2OFlBelJpK01JTmtDVzl3b0ZaTUlLS1krRmJIczB3TmFiTWF4S0JZbXpmaCswZjJBUlZkY3ZMUmRaSENFdnBsMmhHc0hwZUxoRWN6eXg3dkxmZmd0WWowQzNtUHJQbGxIMkhrNTB0Um1YdzRGVEJQT0NVV2V2K2JCY2FHV1hnS3k1NG9tdFFKWEhWcDdKYjhad2o2Y0x4OTB1VFpFTjZ5Q1FsYnpGNG91OXh6bWZDb0lYdXV1V1NOM0NwKzE5cEp4RG1OM1ZiNlJ5NzE2VDJQSVBqZVpxNlo3Zm5RTVcyZUF5SG1uLzdKQVR6d1JZTGRGTzkzdWIvbzFzSVZwSXcvdzg3RXpXWFlSNUQ5ODNaOHZoaTh5R3U5d05HVW4zdzVCcEN6YkJzSlZlV3JOeDJ3N1hlUDNsc0I5cDJmN2IzYng3QkErYXk5Z3Yzdk1xOGo1bGIrRG5KaUozdkt0QlRQV1BjVnB6bXEwckZzdTRBai9JZFZJZlVBN2wwdytSazJNckc3d2RZc3lpWElOeXorNlBJQXUxUUpDQTRrU1kyT0V3RTJqdWYxYmRLQk81dkJGZXRuV2NzeVV4YUs2TWJqb0Qxajk1aE05d3g1QUcybThST0ppOHFhNmxOdkFnQ0E3enFmcVFDc0NwN1RnNE9CdFJqSUFmaU9iZWVlKzdNSml0WG1PVnRBaEpXSzF0akhIUHh5aEJ6RmVqS1NmN2hObWhoSy93cG1LZG8zTXNhSEVCSnRReXpZT0YxQjVwa0ZCSkw4WWlCa2NVT25HQUVJc1BBOWNGRDFpSlEydUdqczBhdTM4YUI0SGQ4S3BRRHdxSUZhS3dtdysyZjQ5Wks5TTFyZUc5ai9oOTcxR3U5Z1Rha3k3OFFtdi9vbU1ESlE2T0hKNitZWUo3TFJUQUJKRXNzVk1obFJSWEJHamJVU1VKdkFMWm5NTGg0VXo1aW9CR29jY0h3TGVyTWc1T05BaGZuTGhOWklZSzRXSnR5eGNQMFc0dkNMcUN1ZkNHeC92eEhnelZWMzErMHlqWlFCQlhDMTlralRqWTh4NDZaWlNVdW1SdkFvenNnWUYyakJtZjBVN01DQ1NRNFQ5ekU2QWxKb01lZi96dkdiUjVvSGtUM1drMTBIRkp1akt0dVAvcFBWZHRDTEd4cmlpREtobW1Uc2ozWjdjczd2OWFqL0NQSjVtOHY0SFoyQkVEZ3BkRDlkNU5GTlVUVzBROUxOL2w1emd0d01FRWdMSi9oZmZkUS9zTmo1SXlCY05waEtWM042bUxMN2UvUW1vYjVVa1FBUERMWSt5NDgxajdIMDIrdnZXeEhxUUJuWUJhNmJzS3JlcEZqanh2OEZqbVJRQURBdVIyVUFCRE9BY1RGOUxKUm5nMGhVamwvODZpUFZhbEpPN3dkQW8xNUlOMXVDd2tnUXdkZGxick95c3QxOTNndk56dWJNL3VERjNRNUVFSDBiTXNONDJtRzJhSDdPdHFCQkVJR0RjWXJGYndDV3YxakVmUFdNcVM4Q2NnS1o3Z1AwS09QVVVZNjFNY3NPZ0laWjYyNzQvVFB1S2dZYlNlVC9PYXZQV3djSS9BWFdWYXJtdXJ1ZzNpTXdOVmVJYmtQZGFwbFlaZ0FXN3ZyQTJuOHFHbG5CV3FPcXdJQmpKOFRjRlNtQmtoNWRVdHZoVU45aDc3OU5EZHZTQy9KTk1tNVlmNU1wamxGakQ3Z0h2d0ZndVB4eEhqdlZ4bnpST0F4RDliSVlock8vKzh3bFA4Ymt5OEpqVmg1Rm5tWEgzVmxTVlR4NGJPVFZHOHVuSmVkaFJCYnFBVmlkN01Dbko4YXR6THBZcFdVbnc2YWovKzRwZDdoSXhyRzYwbXVzcW1yT2pNTGh0eU9hQjlMMVdCcHY5NUtNNVhLR0w3OFJ1cTIvbWJ1RXEyY1lmU05SN2M0bEt5OGZWamlYNTlweEtYd2l1VEQwaURLbzY1Tk5BaS9jSHRrSWlvWFFDSEdVWkZXRG1oRHNNU3dZd2dWMjBsb3YxRVF6TGdJbGtBQUpVd0FBQk5sejdERmdiclRVVW9xTUZUU0FvSzJ6OXVaWElGZ1oyQUhBYnR2WW80VG5IeWNIdUVSblBVcDVUeVNpQUhIWnZqeUNXRzZiU0dNRUx5dEg0YzBDWHdFQnU1eEI3RVFBbFVpckd4MWhCenByb21MeThoN1RjaXVKTkJ4MGwxaTJRaW9meHp3SUNOM2NheGJFTjhBdVhSN0pvcWU3OVFESW9QTEtGNVNhMGpVdnkrTUJlSG5scTc4c3I0MTg4Q2hCQzlJNHMrTzRHbzlUM2hwSW1TMUJTbkhpenpseVVHVTFmNGZUR2E4bWhnZTJYY3lKdGk4N21EUVRpTU5qb0RYWFk5dVphRTgxR1lCZWh2eDRUdVArOWlBbnIwUkQ2Y1YzUjFvd2FHc0xUSjdic2JmcW94Vk5uNnlEUE1vbkV1dk5nbEU0RHVWOUc4UGRhdUxCQ1ZjUUVRSkN1S3dVZ21mODlxcWZ5UklITzc2dXNNaVRDdkVtejhBTUF1ajRzMnJHUndMcWNpVzZyL2tLdzYyWHNFWndURGlOejRHVVUyeVRMZ3B1eDZaL2YzcmJjWmE3a1pFQSt6K1RDYk9VYnNqdlhUZ29obDVuQWwrNmJ2VHl0VnBzekNFaGswK2ZYZzdlaTBmM3Z2cXJDYlF5WmRHSnhzbk1LTXZjU1BvRUQwalNWTThhN1FxdUdrWk1VTThDN29FQVZhaktQazJGcGFEdVFWaERDbmVDaXA3aXlkWHptNWxhcXBFdkZKbFlwKytMZVBKSitQRkIwTkZjWGFUVElhU3BUYUFYUkxORGJOMGxtWXBkbWt3bHA1eXUvcDVNeU9CaURnQXBHNk1lZU5yVC9heElCVWJ6OCtOTmF1b0FtM3AxemFsY1VPVElHSThHV0RQc3NXdzhkYUtvTUdmWjg5NmxRb0lHaG1NaFhoU0xrcVZ5MFBTOXlqMVZrZUVVdVlPcDlTbkVOeDBYOTBuZEZCdENEeXhsWmhwZllvVElsVkhUSFp3MDgyOEJ6UFRJeVBXY2RvRGZtSTBSbXdHWWJ1TExGZW1CNlhpU0x3Uk4wWkNnSk41ZDNrK1hMaXdMdEhIRUMvTW9iZlFFVmpZN2t4bDFsQldqOWt5WWpRZVlSKzhRRkhCU1NmNlIrVzdCNmlsT0VUVXJGNXlYYks2bkYvbnVOOTJrcEVRVFliREI4WkRIdEhtWEx3YWlNZkVETlVNV09xVzA1Mmd1UFVlK2F3ZlZOc1FSZ0pVbkprdzRBNkVseVh2SVFXSEQwTndKVnYyVmxKMDA0WFZsTVRweUlEWU1iaysyZDdQUjduV2EzV3BMQ292cURoalo2L012U2dLN2llQmczL3FqTzl5dVh4OFM1L2ptdWVZNEI3SHJ4UDhTQTBDUWxmbFVmUXdUUkN5aHVEMmhoTHFGZU4yTEFqR1RKNjZZTllDdjFpVzhCbGpRRjJ3eHpIMCsrU1BsZkl4NXdNQmhWYzBiUUxvNksrbkNldDNaZVJiR0MxdEtKT1VBdDRXdkZHSy9ha3Q3YW1FOFNlb3hwais0V2dGVFBTRFB4K2RmZUpMcGd5bFdkUGFMVHNLSFBtVitFTDlhdXJMT1ZmdmdsN2d5WTlpSHI1cmtIcWdNY2RST3hHdXphQ2k0aXNQYXlsSVp1cGZFdUFYTUN4WmE2KzBNQUYzRVpHMmU4K0NoVTE1eFNjN0I1Z3NBczV1MjgxbzVzUmNHOFFNMitWc1R0WFdRdE9aWWx4aXlMcUVBQUpXVFJCUGRRbDNFRW1lUWtGMHBsTHpJcWJWT3BSTVdudDhVRmRTR0FuOEQ4K0ZGSEtQM1VaZVFxVS9XMWtwamJyaTQwd0ZDTXRMOHFmRUUyQTlBTjBwTnZqcUFFd0t1cmFPQklvbkhIZ2hKQ3NPK1ErTGFud29ZQndtNC9ZRTdpMEpQL0NlK0wxeWlacDQ2ZHlMbzZlV3kyMVJLWXpzMmM3TDdDRlFteFJyOTgyUklLSEZyaTZYZUVCcmRuVUV5Y2ZVS1g5MzVET1J1Vi9MMnpjRWxpZUxzNytObU5LVVd6YitoN3Z0b2h0U3o3ODY3K3BHUmVrOU5yb3FJTC9HemN3NTcvL2ExT2pKclF1SFNmam5aZld4TG5CdlZmcGUvdXh4VlpKRi9WdWlYNXRYZ2VKMGJaZDBvNzhSQUJZRkU3K2p1RzVyN25DbmRKUUpYR0c3VFUrb2NNYndNeFRKbHdvMTZtVWw3aldlQUIrdnBScitVK3JlZEFFNGd1WjAxeTRuRjhQb0ppUzl2aWtBNXphSVp5bjhPWXBkODFWbmJ6MmVwbjd6MGwvS3JNbEwzUzFMNS9rc05NOStNdjF1OWVXbUVzSkxKNno4eG9MeWhXd0VKQXBTbGRPR1dYUU9YS01kSFR3dkhzTVBzd29zOWFyOWRuMGI2cktjQlBTRE1aaVRKZlVnd0E4ZDc5OW5qdGZMa1N4NXRSMnpEM3NTSmhGZS9yUG5lOEVaN3Y3SnhKNjM4cG44VWhJQWQ4T2M0Z1VKQUw0YURRdFpSbWs5TkhvY3owZXExV1c4eUVwZ2E3bkJTaWdSekRjdU9HTWFYelRVTGxzYit1L1pOR2RVbTFKT1dkRW9jSms2MVN1NklKZWx3STRFZmpYWHZMTG15N2MyTjNYbXN0WHVIcDBWWHV3U3VNZjhOZGxLUHZGcC9ucEF2Y1BBRGVqazdRZ0JUbnE4TzFQVHR6VFBFeFlEM1RKUXV5Sm4yYjhna3JHRWZRWHY1QkV2aDRQRERaaUpTTDZqYUZ0dlNIMlp0S0hvcSt6SkxJQXFKSE1KWmJ4M0QzSFo1VGhrM2xjRGEvdXg0M2dPVDRCekxrSUV1dDEvV1Jka1pLY3lBRFlBdGJ0SkMrR0VGUGY1Q0JBMkYwVzhmNXJzNWVHT1FNS0hNQmVHalppVzJkVDFrMWszWXBmSTAxOTZLZUZvZjRsbXpOMmt4bDMzNjNBTXZ1aVZKR0xGenN5bXhHR0JqVllHQmZhTE8wN0VZS050YzJJZENFZzRpSjN2dFVpQmcxaklVV3RWOHZrcDVXdFdubG1BcmRXeXZmQXdtWUhRVnQzTlROaUdPUS9Ld2hBZ0JKUXNaTGpRNU9IOW8zL2swOS9XejJTTHg1Vk5jdXhNZlpRN01IRnJpM1FGZTFBem5KZ1VobGIwczdrbmN6Vk1sYVJQSnVpTjdibzh6VklvNWlFQjJuaHc2MFdIRlBDOWpLRGRvNmgrekdKY29ENlhNajBFbVhqTXpyVDhpdnVMMWRQbEtkekRUUGVOSlRtMkNSQjkrcTlHMTk0Qjk0K3U0UDhrVE4vTkpNNGwwaW5McVowbVdLTzBSalBid0tBRXdOdHhualdYQTUzdC95b2VIWFFETWdCQ0JlUDR6Q3UxMnorSGlXbElJSTUxQnVnWVVOWkFXTlR6Vi91L29iNm9QaVVvUjNCLzJPeFFISnRyVTV2TTlTQUVZRnUxUSt0L2QxUmh0ZE9mUTZ0cng2enkyV0hoczl1WElZL3hudlE5ZnI2OWdZR1hwRmpCT05seTBlbG9kOTJsTEN0Y3N3T2RJckI3VTdUZ0hLSGgxRXNuMHBrbS9ybmZGcWZOWmUxaXhDNzNYUW1nV2FHcUU0dDRUK3Rwd2taNFFzM0xabUhHZEJIekhFUUxXOWlBNHQ2eHI5ZWJDTHhldW51M2hicHQ3RDVUQ0N0WmVhdEMzblExdFBsT2o5T1ZuWGNaczNEOTdyRGtwSHlyS0lDeWhNYXpqaDBXQmptbi9zOENCMzJ2YXk4cUhWeW1JK056TlYxYUg5SjhUZ3orTlU1M3dyZnNiUEd4OVBPejJpd3UvUDlyVENpZXFQSFlBbUdqOGNyMHg1TU5jUG1NWm1DWXRkSzhLamlPYUQ5MGVZY05VSWlsYmdZZEE2QStMQ3dRR3Z1NERUcXJGUy9HQjJ0cjQ3b0JKTk5lK2tnVmhxWS9IZ3lkTFVFaFVRQXFnL1BvbVNMWTBzd1oyanByeE55UW1DSWwwb2ZQaE1qRm56M3E5Z01mVGZONU9GcGFOK3NPUHd4T21LODR1SUdJbW9lRmwveTBjWnhWMjhXR1dHRksyZk0zc1JVeXBVZlliZzM3dXdOQTl3c1U2L2M5anpITi84N2ptMktxNUFHUVA1WmFzdHR4SEZ0TFlMaXdKdlB3NDl1Y3JOM0JpREdkaGk1L1dScXFBTkF6K0VIUzlIWTZmUmFwY3V6ai9BUnRQWDhEQnN4c3RTS1UzdC9HeE9BaEFiZHhjZnRhRjBnd2NoUFpWNmIxbXRWZnlJS2twamcrSm1DOVZvUVVRUWdUZ2pQN1kvVXF3bm03eWVyM2tpOUNlRHZSeU5rSEFkMytaV0RheXR6VTZKb2I1YjJHdzB4aDZTRjFMeDBpb1pVQit3OFhqM2d5WHlDR083UFdZa0lpbmxIbEFUNWZXemFvdXF0Q09iWjIveTRvVjR1THR0TkZ1VmxoNmdNWTkvT3hpK3ZsSDBtTC93elAvUG8yUWpUMzVhSjl4UDJHOGNlZWpKTmhPUC9KOGJiUmFUQ29HR2dVdlVzRHJucG1vYk4zcjVKRVlDOTdrTDAyTXNMcWY2QmliRjhieExDdDF5L0ZqRmhHRytPNXpSVkdqNndxemlRN2FYSGNldnNmUHpqSHN3YnZYM01qTUNZWC9yNkJiMWN6WUVpZWoyTy95VUdsUWVSYVpmTHN1cmdiSFo4a282eDhKVGd4a2pVM0lZblRTa2NoT01mQjlDTGNIS0xGQWRRUUpHbkgvWkNwdEx5a2ZqdUVZclJPdFlnL3VuMFdCeXZ5bEw5ZE55blEzWGRUQW1QWmtmYklWYmVHYldEakpvOTdCdWdLb2NmUy9aUXp1VEtZL1JtZzZpQU4zSlNENGs5STlhSGxReHNOSkZzV2hKQ3Y5MmU2emxNbGRGakVIM0UrWTc1Z1BMOVpoU2hFODRlck1qSHpOVE0rK25SVWEybzZZWkNMSXR5Wk9GWVNhQlR5RkhmOTNYYlo5YnhuTjE1aEhncTkzaDFmcGdrZ0o1a1VjZndiMi9CUFRaRGVEd2JEeW1SeTkrbFRWdDhxcTYvQ3o0ODdoYUFXRnNlbis5MUFZNHZqSjF2ekt1NlJHYmFPUEtxdU9yTFYvYi9vdnhkNkQ5ZDNuMjM1UUk1NVJJbkZlTnNIQzBVSjNZRlYxWnUzNmQ2WDc5bkdxa3Y3eitScFZaWFFyK3BwR1hBY2dEb2phMFJHUDY3RjZ4MC81MXlmcDJ5ZGlJS3JnTUFQMFlQYUNBSExjQ0VaVHZPVGljUXJZRFhHWHpzai9sQkFCUkNLRGRxMzJQQ011ak1PekdlcENqL0pvdnJsRW9NWXA3MXgydVVpNEVNUVNZUnpBdjUzRkNTTFM5VXB4cllvRjRRVkhranRUUy9KWll1Slk3bTVtOVhCVDEvVlJFSGJ0ODNjaGt3Y0QwdkUwZXh5VUgvN0hkMHlaZStqcXpjUk84MVZoSVVBQkZCSVR3bEFZUUZOZmY1OGp0MUllRmZjZzZyVHE0S3ZNbUo4N0toRmdHcnBrTzRadHk3SUZCa0RNZitlWmNidGE0SUc0NUVXM2QzYm43VE4wc0RNUmtoQUE1c2dqZzJsQzd5T0FrQUVDamp1YXVGK3F5VE5qR0tLNVhDVkFVbTgwU3lsL1lLajlqZHlVbitmbjVUY3lMdHRwcGFFN1ZRY1hXL0VBTVJIZ0tBS1NLNWV2Q1BVN2RVS0ZzYm04SUQ4YU93bnNJUFJta1J4UkE1RFRFMlhocXR3TkRabHpJWWtIMVJidFFyY2FYbERGaE9MbTFjYWRNMllLMzlXYnQ1VnBtcjY2M3ppK2ltSC8wNjZTUVJvaGxaY1hlQ2crN3J6Tmpvcno3TkQwb0ZjSEdoYTFDb0QvYmgvYTBvL25naWdnQ2xrcWorTlRjYnNMTVlxaEc3RGYvcitMeVN4VDdjeUFPTWt6YjZ2RWYxbVhlYnJ4MTFvdkxoQ29LNmVnRmxsRHlsdWNVWm1UYnYzeVhJY3pHT3ZodTdVaXFwbVRHUmp5elExbVJVUXE1anBvUElhMFQyUTcyZXFxY2Z1aHg5WmF4ZHpEd1MyZkMvblM4a29mbjhaV3hWVEdqMWpGbXUwMWU4RjJGOVBXalRiQ1BMa3RVYVNYVlNzTW43NzZ4NkF4OFp6QTBER2lFL3Azb2JFaldlR3Q4aHpSOEg3UjhOVEgweGljdFNRYTB6Q3JZNFlKSk15SkwraXEzSld2TTZVNUhmMWdVQ2diMnlKcjlkY2NiLzlyUndvQjhOaUVwcXdhTUFPRlJ4VFF2YkxUektxUWdPTWdEbElvd0VLeGZ6Mko1UE9JQk5xRy8xOVQrc1JuTzZrUmdOcUJZWUtNUUdKVVQ5MzNBSWl2ZmRWVWUxK2owZzU2Vy9hZmpPcjZwWHFkSFc5QlFPR2k3RnBkR0FnN1dUTnJneXZlZHR4UXRhb3I1OXlWeGxTSG9JZjIxWEhKclJqOE16SE1xMzNvM1RRQVpoRFg3SS9yZVZ0clp3ZytIOHh2OTlxVTQ2U2R0T1RtMDdxM2p5OSs1dU1FUUdnYmovTmxqbFRUQmprQSs2WFFuNCtGTzFPeTZWTk9nN2tXTVZIMkcyWWEvcldyK3kvWHNyRndiUHFiNm95bmJwYWo1YWI0a2xRQ0dGSlVUVmVBaUxLRk9adk8vVTNkcENqQXdLQ3ZpMEdaN2F1UTZJWm56bVFDVUxYcnlLT3NrY3JNVFNFc0dDTzZHa3NGZXl6TEYwb3hIQWN6VzlwRUxRNUNyYXZCUCtWK3VYbVh1M21LRXlEYWE3TFpySXNuZDBlY285RUtnQ25WKzBWazNQcC9aa2dEZXQzSVE2dXVFdmh1M21ZWlBFS3A4dnBSbGdSK0lSREdmQWFEVmtkanJmTHlVNGhReUxQS2dhaVRsOXNQUXBqZ2N1QnlZYWdvZEsxN2JlYkdPV1lIVlYzRzJwSWxyNmZ0VXNaYWV3RGRoOEl3OTRXWFRJZEN5aDFDZUgxUDFpMFJ4cHorY1MwczBHUWwwZkQ3cGM0b052SjRHdk1QMGNWWTBRSmlGVGpQNDBVUDEzZ01Lc2Facmx2c2tRN3c2YStYNUIvcDc4ODFwVGR1WldyZGRGL2MvdkdnZXZ0TkpwdThHTTF2cWludk9RV2dFZEp1ckwyVStQM016N1ZuSUNRbzRxLzFZR2F4TUVSaEZQMEhaTG1LbWhzd094TXVQUW15eWZDSjhYR3RuVFdCcU5CYThRSldpQkJQZjU0c3VLcmZlTUZZOE1sMnQ2bVgvOElKWFBYRzVRTFRwUHViSTU0V2RiUmNpRGcwL296TXRRalczVnZnYXNHVkVIa1dkOGR4bjFhL0gyTWloemc3SXpObVM5dHFvVzR5T0lhNmVHZ1J0bG1VWTRqNXBxNWNHcldta3NET0VUUENkMFovck5KVE9XRmI4KzJYYldIVERQN3VVaXJ4VVJZZXVzNE4yZTBNb0xLeWpRcS9pQ0xBTGlZeWwweFNiZWZmWlEyczhNNWFHdFYwclBubnZ3M0hLeDRoNUlucndPS2drY1FSa1NkM0NqZXN3U3BVR053bGpxU2lQeWNlVlJaL2ZXN0tmbXpOWmt3Y0N5akdrMHdqRENhZ0xaUVdFN0k2MFJMSEVDQjhvdDVadHBoYSs3R004NG16dDNSZFJERDJNVVBoZHVPWnh4UmN6UnNYSHdyMjd1ODVOM0NtL1FtSmVNWi9UbVZEUmd2cFF2VzhsdEtXaVJRUldQbHYxWjdvWjFuUDU1Q0pmOWtrRk9JUU85dmlXbDZlWVFMQXlZSG5rNTRoT0xtc3JCVEM0TTF3enU0NU9GYlVtK1o3L3RLckZWNmg1cng1U1g3RmlaVlIyQnlackRsTEUyNU80Tjk0V1hrbVorVk1zTXA2YmtPaGtEcGhZYVNESTRRYnhKRlBxK1pTVE8rdWRab3ZIVXNPNU1XTlBacEc1ZWkvbllLa0ZJVWlGdURQNy9CTHJNaksvODAxTzhOdzhtWUNjYlRCWTNGTnpkNWZPMGdtVWQ3aUJFUTM3Mi9qTEFrRUR4MWRTNFZ4RUNBUVhmWUdMTEorYkxRaGpyR1IzM2c1elBhUHo0KzNuYjFuWFEvRmJWelJBbmxHVlliNkNVb08rL0VJUmo2ZjhvVUY3TzdFajMxZXpqRkFiRkVOUnNEU3k0UkZQc2NYZStnanV4ZHBxQXNLWGI5elFqd2lZMnZMUDFmRW40eUMvYmdpQWhDWWpBOStTTmNhWE1FSm4ycXNqTmZkK3Z1WTJPV0NqK3d2UHR5b0kwM28yMjg2ci9adkZTamlkaStuV0plbGkxcTJIYmNJV1B4MHBrWDNxNjhGeGU3Y2JLUDZMcDg2U1RHbDBiYytLR2czYjBaUWJRMTZvN0I4Zk9ZV21OdXdnUDc2UHY3eFIvcis5aVZYWjF6OHJjL2NrTmppSklvbmVyY2UyQlNoUGFscXhkZ211VC9ucGE0UlMvcGFka3hpT1JWTXJPcGZrdDIzcEdySmlUOEtVRGwyMFhLcWFkbDRaczdxTmZ5Z21jY0Rmczg2ZlNPaDJCM3J2YW9VenB1S3d6SHVpb25GdmtsQlBtdDRlYzRGK1ZkT0ZrVUtJK2ZEMktDcDVPUkxZS3BVRWd4UkhJcGZUZSticjNWQ1FaOTQ4aVJ6WlNlUVBZc3UvYlRZMnp5MzVwcDg3WFBaWXEvV1M4NTNWd1VTalJJYkRHaUk0bHdBcy81YlI4NDdKekg0eEovVDhjb0JrR0c2SVRaaFQ5Y0VKc3RheUxUeFFFZ21ac1FyaEgzdk01eloxRUFjYTlEbW5TUEJBV0xIM0ZqdkNFODNLMXVNajhIekU5SjN6SGtveW5lZVpHc203RjNWU3dEd2htek9jdjdFMDVsZ0taVmllR1JxU28vY1VCOC81VVphbmM1dDNabks3S1hzNm9XUmZSSVR5cWpBd0pPT0U1RndweUNtaDZyb1BYbXJLc1NUQStDZzA1dXNYeWpjclZDb0FTaFRWSGVsVTZBZWtEUTFwaHZrZGJGZS9xb3ljTjVXMTdmaHUvOGNrdGdpM0Q3d1dieUhvdXhkUEZZRjNlUUJNVkdFUVVpRWNUREQxTTk1aGxQRlpZWEwvRDNRTTBweFZnYUg0bmp1TWVGWWN6YUZzdjR6K0x2dzFTejZYcEMvZGJoNVp6YTNnVXhZZUZHVkdFamtaU3I1RlVhZVJJWVI3UVMzbDJ5R3p5dkhUYTFvMFh4QmNEWHI2RERPUmlCSW1xOEFBd3FQMS9jOFRhNXdUdTRBMlE4L2RodEhSZXRtaDh6Q0NHWnl3STlmOFd1VnM0QlRidTdXSnpobHFMdm1hMS9wNEFGaVpaUCs0d1U1Mm9NYmo0L3RRS2lWL3JBMXVCQmI5bnJqaXRMdGRBKzZLYTBXWWFhd09NRmljZUxRdEZTN3JKMUh0QzFad1ZDNXpveDYyNmVLKzJxZjFnc05taytRSVRqUjlzN1FlSzFJdzQ2ai9WbVVsR0huQ1BzZmR0ZUtvdGY5Mk9sbk1NR09HcWg1L3I1RU9KYnJVMkk5eDJ3MzZMRVdYcjNPVkpTbWtRSnZ2anRteDVoNGlkTFBzdHJZM2FWemk4MzJwaElXdTV6L05VU2hKbmtzSkc5WmNRWVNtRGpXZEdzcHRQWHYyTk1CanBLYXo3eUtMS0ZtazA0UHZPc2Rid0dqdmRlWUJabXhFc2F3RHA3Z1VOMnorK1ZNWXZWODd3NFlCRUR3T0ZiUlJoS1ZxSjd6UVZUS3BKL0pBM2RXWFJ3R2o1Q3JnbmVIenltdGFBdU9iOEJkT2g5cFpUaUFxSlE5djdmNXlhL2wwNnVMbEtSUHE0Mys0eEhUd0NsQXh0amV5MnJuUjJDQ1l4Ymt5T2FqcU9qSVdYVW1RZWMyZTViM2Y5Wjg2ZEZCN3lJUWhtU1hiSmtRYkk0Rlc4Zk9PbmVKU0w4UkhFdlNjNE10ZGE5cHBJc1pLbkxOM0ZML3p4R1Fuc2ZRSTlSakY3MXVYK25BeVNDaXRwS0hleEU4bmFSUkRWWlNEOXY1TWRPM21JRXpOdDFsRzBYMG5CUlBNcFN3czd1eVdVcDdINGxxN1llR3FxSXRqZ3FQZzZxK09palBnbmxEOGppSS8rdWlCYkVLWHRSdmk1R1ZYU0FXdnlrb0ZyT3NBZkM2bm5DdFh5TTMvdVJ5SkU0eEhwaWRCSnh6aHA0a0RTUXZYWE55OGRJSnVVc1dNVTQ3RVVPZ21BaGhGRlVPS3lXNklwK1pzU1Rvc0UwWE9CbVdlaGlwMUU2bkdtdWlnZ0t3a3BKeWNnaEJGejBtd3Y5ektqNjBqNHlrTDlIMXhnZzE0Z1NYaE1pYUhSQ2xWNXc2RXdsaUNLTVgvZlZ6bmo0V25GdjlVQkN4VkV1RnZQRDc3UmoyMGFEZm5OaTJZRlJFTEN0c2ZJZVVmREJEN1FlSnoyTnVHSXVKZ1l6NjczMVY5Q2RoeU00WG5MYWNlTTlkOWtqSUlqc1ZFbzBncUFHMW8rU0I2TkhvcnpmV0RVTk1OVURKRmltQTA2Y1BmMkxhbEc2VkhKMnBGc1FMMHBhbHhsQ29mVVVkMnFNcjMwd3diSXoydW1XQkxlNW0yMFZreHpLc3FQa3FyOEZBdWU4anh3REx3dmluM3hLM0tQN3ozZ01SWXpTbTZKckVnRFphVnl1RzhjYVVwWkxVSUF5b0licHNHRFNaVzA0eEZ6NWI1cmpNYTRKU2tpSGF6dW10WWh6TkN5alJDdngxWmE3SHVwYVl1S1Fabk92NlhpZ2VKaTE0cHBBdEpJMktLdGM5aldqdmlPeC9CR09ZVFBZWlk1bjB5OGN5MENzYzNHOXdWbzZWR3NkcWhBbHJqejk5ZWZYMjFpbVR4WFhqRlBVUUVGUzVFOGRWTDQ1ZDUwc0NNUkMzZC9IL2dJTzhHb0hIbXpmVC9RS1BibXhSU0hJaEpBRG9QTk9kOEtUd2RaeUNsVmRvM2VzOWFEOWtsOFZOTllFR3NFaE84bE9VeTBhUEkwQmtTOTQvVGtiVFhham5oMjA0R0REeHZrZWRBMy90L28wMno4aUY5TXduelBvSkxNT3FMd1grRXZGYWpWMy84NTF1WTZjdUU5UDN5TE8xZGRycFZTc2IxQXNKVVMvdUNUclgydU9ibUdRYy9VWFh3MTNnaGV4UTRZcTI1enVLL1RYZ3Mva0o1aG4wMUhtUGIzamkvSW4vbkl3QzhTVE5zY3RxMmNZZEllakdzMG9EY29IS2J3T2s4MWVaQzk4NGVFVXIzSkFiZTY4Nzc4enM5N3RFK2o0Tmg2MUNkUGNwb0VYN3A5RW1pTTJ0VDFrOTlzeHZjS3Y2ODdHcTFkRStZa05YZGtBbndVaUJzVzZLdHg5djJOSzJFMExzWFc0dFU0ekV6ZHo1aTczc29KdHRYa3lIWHNHR2ZqN2svOHkvV0FmZDNzb2RrMGl5UC9IL0ZMb1U4c0VHZm1uQkJHdk9Cc2w3U0pCQjJPSUcyNkZLMExuYWxMSkc0NTVkeG1qZWRMckVyY1J4djlmem95M0NxT3pKRmx3Rk82ODFUeHI0bjByY3QxWTh6VTdmdXVpaFRIdzFwck5DNEcycm1EMWpYZGJhRmQvZDJMMWdSWGJtTDBqd2h1WVdVbnREMHR3U3pZSWUwV21mcGN0Zk1JQjRlNHpadHRsZ0J0VmsvajZMVElPYkphNyswelJwYzZPL2hBN3hHYktXWFlXcklxMGNaMlV6K3gxcmFxdnVudkZ3cXNpOGc5bVp5SEE0bnJoeDV1aW9XbGFwb1lTWitEZ0d4bUVwQk0yUi9GZmd3U0g3NDJ0TTg5NFZ1c2t2SDRjeDE4cU5idFYvK0IwdVZlem9mS05yZyt4RTVlNkdjdElsVURYdnY3bVRyQm1tdEFieDhCblpRdGE2RzRlNzA5UG9wclY1cUpvUkNiRko1cmd6aDJPSFlteVdOSXprN1JpT0tuaEJTanQyckgxY2ZOclNxVDRaNy9MRGZIc3dlWS94N2xxQTJMb3RVU3dBaDdsUzFvZTI2eFpvTWJuS0JlK2RIeERrNmZnREV1dXRjZGp4ZnRoK3RsblFDbCtabTQvOUR4SEZrUlFtZ1FzQit2c1JJYVNPdEMxOGtTcDB5NVNDeGVtQkIrOFhJYzA2TDU5eHRnSy9TTjhKTlc4UlVDT0RBd0FHdzJ3ejcwVGZHTVUxRENZcmFnU25UWW1ld2xDUGQxTm1OdEQ2WEV6eHdVR1UxSlM5M3BUS2F3REN2ZS9XdGoxT0xWUHU3ancrVWplaEtqMDFwQllxYThlTGxBcE9jTkoxaU5rbjB2T2dYSlZmRUt5dXgxdk83d3NaVjA5UWpSeVFZa2FJL2pJSjd0eDZkMDVQZFk1SjVGdHgyZmNMTkJZUjVDSUswUXRXOTJ3SmEvUnY0Vkczc2ZCK053WUtCZ2FjU3BhU3FCamJ6eUxWTW1EY2R1K0ZCY3N1TjVkMWRDU3N2SzdYWDcxaXFCVnVlbFcrZW5VL2R6S09SWG80bmJZUERyUVR3TDNaYnd1MGcwL1puWlZibWkzSnQxV0xzNm9CbkZDcFdJNEJITUMzNnpZMlZ6QTFHaEVLSGJiTWl1NmN4bXJZcFB1UjlpNHU3M0lnWnBORXZwaTlrRGZvQ1hKSXgzZGh0TnBBRkNLWXF4bGVwT2xzUUVDTk45MUN2UlgxUklrT0V2YWtRTzhVRzVYbkR3VUllRUtlcHIrS29hVDQzT0swTURacWx5b2w2NmRIY2MzRkNJcU1YMnFESUlqMFB1aVFyZVd4S0ZQdkZyWmZoUmFsOVV6OWxSZGVtMFRiV3JqbmllNm1Wd29KODkxVlJkVG9BUVhkQUFCNXp4amxnNVUvZkJ3OWZTcVhFQ2t6eGN4eFBHZjVta1YvbVdObnJZMWJQMTc5K29hRmg3UjcyTUp5UjFkeXpmVk8wT2tNM3lqeVhTMkY1a0hXT3FIQkkxOENDWUQweWR0a1FuQlJ0aHlrWlhvWXRQb1BpN25EUlJrV3p1T2U4anBiYWhpMC8rb3YwazErbG5xVEpiWU1sNWgzQ1BMd0gzQWFIL2syRktFRlptTkFqQndyVDdBL3ZUNUlVclVzd1NIZWcvbGZ6YXpDU1REc2o1My9JdGVQbnVWK1dYa0N4b1NJNHo4a1dHOXkrNkw4R09EeElPdlBRZ0toZ3hIQUNkck1LVmhmYjY2eDBNNmVQWUp4WjNVTE9jY0M0c3V6UGNnOWdzZ3kxMkw5SmFJc0Q5LzZ1dk1IZ0YyUjhvejI3RjRTUk16RHJ6bnk5VWRTR2liYXdpZTMzaVhzNjk0Mk9JeWorMXVteDRLZjE0bjNuZncweDR2ZVpsNjVOTk1nblYxZm83WmQrS3hjOXMyc1pBblQ4cVNvVXBTbnlZbVpsRTZnUU9KVFpFd0E5czdoRHlmOTRiOVRoOURYNnpSck10U05US0hBVXJILzdwZWtCRFAyMkdjalcrWEdJQ1FhWmtETmlVMFc3WjA0N0tXYmdrVzhRUHRvNG1JK2w1SG5WNVlhcTY5YzFGRVl0cHExQWRZZVhYeEFFM0hJVjdGdDQ2ellZNzdES1dzK0xmeW4xalRIdHpubjlhVTg5dHpuUHQyeDRMQ0pQTHNRcm11NEtURFpkZTNGc215a095eG03QlMrT3FGcVNnWWl5WC85ZUpDRWRNaWk0Skhvc3hhc01VY1lyVm9SZ0d4YlU1SkFzdjFLdUZYcUxkNUVZekZPSmRDWGVXV3dLVXdtZ2pTK0ZyY2l4NmFCZzI0d0x6NXFiRGF3Rlp2TTRHWUEvNlhyRGV4N05nN280b2RuMkYwSzJTUGQwTUZpMllqcHRENkpjTkpBdFFWZ01IY3kyT3ZKcjF2dmo2dGhWL0hpNks1bGQ2QzVMRVAwck1zWU9UWUxmNU9oUjRxN21JUlRKUkZ2QVNRRVYydUxnQ0pZUldvTFFjeGw2bko0M1RMNHh4RFlJQmRLak14OVhNM1EvVU5QUERkYjcvQzJqQWh2NTJNU3BadjJaV3F1cDQ0bHoyM3g1dGwrM3R3cW1XMC8yQVBPMlpRZE8xQzBQOWFjTksvRmJEYnhhc0lOa3haY3hwdE1vU1EySUFSRWJTUUozKzEvdW9iSzlxREVHQ3hWZWdlN04xenpkVmMya21rbW5jLzhwNUk5YTBkcmJJZkJkTXV5emdOdDI1am5ib1o5bVRha1VzMEhIRnRvYm9lUmdCU05aTE96MVU5SW9qaVp5SlZMWnZKd0JqQVIwQ1ZCMFpILzZyNW4xZHZuRXUvSGxIU3FCWDZGZm41akxNZVJoTy8rVlcvQVNSVXhCa3M3eEFPemU4TzFsTHJRYU85Ym5ubVUvdlNNZjFTRHJ3T1JWSHhER1FIdk9aeS8xU2JzK0h6Y215VWhDbXJLcjIxMHdRcThNd3Z5VFNCVTNuOTRIUFo0MG9sZVh1blZGYVBINGplSWdHd08wVzdXVGxiR1dwR2I0OGU4c1BxaXcyekY2SnpjR1dERGMrVHRKZHh2dmYxcTZwb0FDN3ZnSTh1R05LTkh6NnZkVVIxRlh5Nk5yRG1IM3RDekxrdzZhVW5MMXhLNkRQajRnTmJtSnB1SWxNTXl6Zk9US0Nodnd0RHBHNnNRNXBKL2doZWFxMjJTTTlVcEhrL0lYN3hZQlhBaHFPSUYzQWxUQnkzOW9DSThVbWh2ajJrOE1wc3N0NWZ2cXRpeENxZFRoell1bjd0NVZHa2wxZHlZbm5MVkVsNjVqNEZxNHVlTjMwK0E0SEJmRzJxN0xXazdYMENtMjRWN0hnZVJqTGo0MEYzQ3MyNnVpL1FzQXEzOXkzU1lVNVppUzgrRUEwbXUrZVo3eDJDZVRRbzYxclp1ZWhmY05UTXI2YlZubHhuYVFzbkVIN0hVL2hRYytrV1FaS3NkRExtZkpEdmM4WGRUZ0JxSDZJUytRSitCMlluVnc1cHlHT2c5c1FPRmMyaEVXWndzRjdGOEhWTFNrUnZLcEhwc3BmcjBDVXgxbHZicTlOK0VoRmpuZlpxMTVrQTJSU1ZZengxNXd5TXlacE4vK1NXYXN5K3lZOXZpdjVJYjMyQ1FzRFVMNis1YVpmVHpabGwvN3NtYjd1UUp2M3NReE9UYXNmcGhUbHRYOVdLWHlOTnlJcWl1MDZzTFBRVjJvT3VoeEcyYjNXOVUwYVBrd0RNZDVVczBJMW1zUURBaUM5SFB5SCtnbjZ4S0JLaEJTQ0MwczlkWmRkMVhmVGpuWTB2aG5DaWRrbDMraWtKYTBkN3Z5R1pQNWFrMlNyWWJaRW5NclgvaVBIWG10SllIa0pMa2JBd01PZ0YrZXByODNuOXhwWWhqQ1JnS2xNbEFHRWdrNENLRW9vdkZBUzdGUytTUHBZajc2RC9rWUo0NVZmOWwzTGdNNUwrelBaVG5ucnlHZGg2VFRHVXdrYXJLK3pGU0k4VlJSN0FBZkE3eC9LY2xNWGVwK3ZCdGdaTitkQys1MGJlUXlKazZSQ0h5S2lrclBKS281TGpsaXp4dEtWQkY5RkFZRkdoWEx3YlVHRnpJWEdwbmM0R3F5clA0dG1IcnlNMkdkQ29WOXhVdzh1VW5pTVMwcW13Y3A2dVNtSzBRSnRzYkgxN2dRNGtwMHo0aVVJVktObHdCYXJLb1kwK3VRcENjcGxqY0FEVDJ3MzVzemFwNWh3QVkyUmRPZmlvWTJOVjZkbVlpSTdTOVZJdjltVzdZNjJoMGxtR245dU54ZXp5dFE1eGlwaHpaV2xUNjZORFk2bmF3aXVmMjVvT3R0QkNLTGw5RHNWYTVQekRVTDFZYVB4RkFubFpyRXN0M1dkcDRqK2NVRTFjN3plRktZWm5ieXRpdVI3TzE3RDFVRGlpcm1KRDZmYURWd04wcTBXZWhBZk5Sckd6YU03SXFVOHdSQTk1ejI3NWpFQVRFL1ZkYkkwRGRCTnVacXBuVGt2ZmJnayttNW05MlVFMTNSUEZDcVRvcjhRYmQwZE1QVDE5cTZqMFp0NUFOeit5NTFVMDdPcE5QNzJxK0RBR0NhYmd2VVNUQWdHbEdLampza0VNRFZ5V3k3ZGU0NldPWW45d1dmQjNObWVxTGdxcGgvWm5mS3g4RXlxV0hBem5BbDFCZzFocDR6NjFpQVFEdGZJdkNYL29DTTMzS21SWVVNMExQUjRXdU5aVWNpVFRhRlFOcUNMME9YcW1JMUxUM2loUlJXWTRTUWpicEJJUm52S2RrN1pnNUF1RU5qenpmeVJZWnA0YUdyVFZXaG5tUk4rK1JBcG1lV1dBdDM1THNqZ3REeFpqSHB4ZEUvb2FJN1dmOHY1UWNWT0JnakgzWU9FS205dkZvTTFDUCtZdFAvRCt2WS8rbEVHSHp5SXpEazdrM2Q5L0MxdmsvQ1pMYnlrQWNORWdWZ0lBUkFrUXQzZk1QYzJnYWpXMzh0VktOekYrZ1JzQi8xcVJkdWp0WEpXSE13S0RLUFdaVlFRYWp6NllWQktDZGJxdzdaUWovK01zQ3hKYkxncVQ4NEh1M2V4VllCNGlzUHZMdnpJZnM4NTdBTmhlRDV6TmJucmRIZno4a2YwWm14RytlMURGM3Vsc093UHVxbTZOYzJMTFo1VmRsWUllVHhpc3FpRGdSdzY3MjdzZzhmU2ZUckZuK0kzUDc1OTVNdnIvRmJuQ1BPY2hObGR1bjJVUmJzSnFySk4rMVRXNDhWTmlzcHRPcHVHbkU1U1dYSjF1ZmR0VnRPVEk2SVRYODVKcUlJanBCRUdydWt0MyszQVBvTVpsdjRzTHdzVTdYNWJwQWdIVWJzRUlVWFBjalNlL1JUaENpL0xBb28wWmlHK1NPdVRVWUNvdUxFdUZzbmlxSkt5elA0eHMvclFEYmJESnVub3ZKaUpUU3dndXpueHRvOVZ0UWIrOWxFQmp0M3BQdmZzNjUydVBWU056MXZBckg4bUNTU1VyQzNFN2R1WExqYkNndmcraVd2VzZBRUgxa3NJZ1g5c3hwYUFSTTEvS09xMXRTVHp0Y21yN1FiOGJydEEySGt1LzZKOHpVZ2pkQlc0NnA4dmFMc1FPVFk3ZXU4OWMrUzJKdkdFMnlzQ0duT1B0ZkR6ZDlFR1ZkMXBJQ3lDUk9JL0FVcUlmclVZZ0RYd0xHSjdKTk5keUFGVmRkeTU4NVhyR2tyejhSeGlqdCtqUzQ2M25QWitjTTVqOS9uQUtkMHY3Y0p1Z3k0QWtvb1FUWkhmMTRSemJwWDUrNTZvTWsrVCtpdktMMnVrK2JReFZsTWlDREFTYkx6VUNldTZKM1Q2eVNJNGZtV0hBYmNMdS9nSi92NkpMdkVwcmtOLzJFU1pYVnpOeTNWZG9UM1RYejZiYU1wdlhWZWNLWTRkeFlWMHZGZElXOFJ1N3lLVkhJR09PQUVnbDhsc09weC8rcWZlUHRBVVM4WWhTVlY0WFFpK09ZRHE0a2FHUXFHTktBSWlrVDBjVnU2TWFsaUVGL3Z4NnN4RUNkbTlEdWVoeWJwenlHSEtYVDFsRms1ZHFvOW1ZQTR1WTBiZHZlWjE5MkJaU040M2doeG5Fa2t5MUhwRnMrYjlacGx4eXdSVVFnOG5uQTU4aHkrWEZFaEFDc1Ftb3JybkhzekdRUkdCcGhEd21Sb1lUQjNWK212ZHNEYk4xdGJBRjloMmI2Yk5JRmxFdnBYTHN2QW1RT3JsVVdzZHlKZmZzMFNQUmdmR1l1c3BLMkV4bFZ1clhFSWdoUGlzcTJWdUNTMzhHVmZkUEtteEJKaDdkcmQ1eWl1enB0ZUcxT1RjNFptbGRlWTdDZWFubi9tbThUc0RHNkNYNVZSVVUvc1ArMVdPeHJCbWIxZXVwOUFwVWFDMndjekc2NVVSYzM0c0ZOUkc5ODFEZDZGd2EyK3RINk1acjVGNzF5UzhCYkU5YVd2OUtaOTNncWg2dEhQcU5wQjcrWHdZblZPM1BmMG9meFhGYng3dFJpRGw2QjFvbEJGOC9jaVQwdlorUWlzblZCdGFMekVyUXlFdGhPV29JSnB0SjZCdXhMcnBnYi9LQ0p2VHZGSk4rbE1lcTlRb1FKM25ibjVGN2FOZmVaTzdHN1NTN2RuRVgzVG9QUGxZVlgzWVpnWlgvYUlvNWVsWWk3MUNQSExNRWVGY1E0b3BRWFhsMjZ6Zk9JaW4rcFNJSDJ4V1l5UW1rTUVIYTBITTJpc2hjVUs2TTVTaVE5aSt1RkFBeXdvWDNOZys1WW9OM1pJK1U2c2JCZS8xd3g4c1A1WGxnQ2drUzAyMTJaa1EwclVJaFJrS3o5SHEzRjVNcGlITDlPUkl4anZIZ2hISWNVSmM3ZWFCTWlNRVkvcWt4QzNQbWh3S3lVQ0ZYMG9FSGQxZUlmZHpnYTNlRFYySWIrY01pUzV0WTlXNG5pakZJSGtwOWRidU9paGdicm02VkI4Vm9LZjhtQlJ6cTB6TDloZDBzV0J0bDJ0dFlrYnZQMUFRbkNxdFl3TVVsTm1aSlJGbzAwRm1WSUdDRTFQRzRHUU4zc1RtckF1alA1MGMzR2MvRVBBMVN6K1BWS2dBYWRCdTRUV0RBbjZOeUNzUFVJVUJlSlVBZ0FDRVFxejFxSlJ4QVU1TWxCSVJKZ2JrSHkzSHRpUDRkN0p0SGIyVnNYQ0ZBSklGWW5iaG1kemFQeXA5emg2T3ZtMmE1TUh3b291amtRc0JCbEFmVDg5SjNFSmw0U0RxVDNJRUV0SVRBcXFHQWdzcSs1UndiVXRJdVFyMXEyNWFQL2NuV1RlOXRrNWRjMTB5V2Nrejg4RE9Jb2FBRHVLT2JlTEkvL2RjMHEzQk5CVUhyMGFuNUNmVEw1RWtmdk55OW1SUmpzT09yclpwR1FjSUZNN3BpR3FKbTVLV2JxakgydUhRaUFBSlg1QnhtU3ZKWVl5YTRMeStwWEhEWldSK1VUK2F1bjVpSHRJakxOMWozWHpqdFFZVVh1a0VpOFFLSjdBb3FzdVhlS282S3cxa2lka2FpY0hCVnlVc2lNWjF2b0NPNG9HMVdGRVp2aUNQempQZ1czeS9uYVpFMTM5OTUydXpucE5DSUE5ZWYzbWtka2VDSW8xODd3TWZlK3ZKWlFvOVJEZ011a2ppaU9BN21Rd1FScUJaeFhOUFVDRWJ4aFhwRWJ1ZlVBZU1rQXlOY3lsVFA0cTBjaWpDaXdieDlRTWlpM25yWFdKT0JBdUhoR0tvZTJuY3VpYUFNUVNJQmtyQ0NRQ1FoQUZ0b0dvdkpoQmNyMmd5WExqNDRNZStOOERBdUJjamFCT0I2aWsya0dXaWpWUDR2SWo3WGc3cDdCMTl1b0tFU2RTYkpKT2pYU0xuY3NDNURkRkh3TVRaelc0MkVpeHhDbmlHaEI5ZTFNUjRwNmJYY1ZXUG1kcEJHSCtrRVhrZEsrOEplOTF0c1RVUFdLMXpmT3JremV0dnhRQlhpRzJ6VzlFUjF2RnlEOEt5VkZUOTlkU1lFaWpLSlZFUXZ6bHE0b0NmQXVjU1BSRkhtOTA3bnVsUnQ0eWZFWWpGRW9Ib0VsaWwvbVVBOHphaHc0dm1HWHpjM2tHcUx2MFFkUzJNYWdRQnBiM0FBWFhMQTB1QlA0dGVYeU1nank4MnVZTkhUMWZ4MmlwRzlxY09MZHRSaG1IMDhFbk5jcC9aL0x0L2ZyM3phYjJaT0xzZVFMYWV3RnZ5Ty9YWXl5K1YxQ3gva2UyY2ROYnlaWGsxeXUzTGVGODBpa2FCMXN4S0VlMzdsZjRvd3lqWmZycnBSbzdKdFRWdzlBNjF4cG9vSHA0UXIvRzgrZlp3U3NtMG1ZTkU4WUpVcXdDbWZEcTJxMDUydkNMcUkzVDYzbHNuVzhFTGIvU2FxWjlTOHZBcVBmdEZ1MVZhRHIrNXlBWmlDSlFBZE1CT3lOSHhxeU15S1pNQ0lDSklOWU1FTHpreGE2NXlNVldDSG0xT3V1RFB3ODlQRUdEYVh5Q1hzeit5Ly9ubEVGNEZBbmFNL0xpeHZNUVVsN2drYm1QNDZnT3BKQ2NSazNNZ3Mwc3VQcHB0bFRFdWNGWEFEZ0VUUGlNWTZ4U0R0V1RNelBSZFJNZjB1MWUreHY0U2FXSXZqWXVsckhYWHVUVzNncjRoRnNnWGN1RC9mZitPVml1ZnFaSnFNM2FRZ3RLLzc3amxKcnRyc0xOTmZFeFcydlJzakc1NEpIMGFvNW1WR2dnUk1pZW43Z2lxeVdWOVR4VXZ2azhNTElYRUt5Y2VlTE1NRTBObTZTcEcwSitrZkEveEVkdXh2RExoZGpQOHB4Y0dBck9RZTgrMHVXcTJMaTRSZG9VeThSTlpWSnV3aTJmWGIrVHFHMitwVk0yVHdDdjllTk13SEQ0ckM2YmdRN2FJT05SWFc5SUtDd0FIR3k3RmpZbHpDeU9RSEZ0aWJGK1lSK1ExRjdyY3dKa0piME80WExNMXhUaERxQktnMVVFV3ZiRUthRm9hZ0I0VnpmbllKcm1yY1RJbzNJSTdCdFNoc0JyREUyU0UwcExLQzNJdkFSejZrRHZ5aU1OZG5XSzN6YWpwbVdpTm9PSDVEWlBUdGJjL25oR2crSEhFMXZwZ2ovWWlwQlpGL01XWm14Zmk1ajNDWjNIOGV6eWZaellBZWw5RkRWeE1Na1k3dWZNaGxqbjRTREJSc1d4TDNFKzhDOGlUMStWRHdXNkZBSTNBbkgvemtYNEt5SG1CUFBncVFOckIxclhpbXJSZzJFNWlXMkVTV1FBRHduYkowNnRmc1RaN2FIVHErc0pXSlI5WUh5SXFvejBHZmZMOWJMTXlGa1pNMVNUQVNBb2MwMkxUV2I3RUhIVDE2MFFLQ04xTFprSFE1a0tIM29JSWhvSXRadDEwNGxFcmVaV3IyVDRKZkpuNXhxeHBUYXhRMjZhQ0JIWm5Xc2ViM2d5WDI0WThla2gyTVNZT3JjTE9rNkNlczIySU15Ly9mOFlzWWxXZmg0OWZWNFl2NytxbzFPcWtrUW8zcEx5RUJST2IxdUl5bjRPaXRQYWNwK3RLak93MXZNaWpmVE1yaUFMRnJqa1ozQUJMVVRJYnM5QTZDUGRxdkJJc1B0WFVyeVdva0drL2ZJbDFrNHdKaFMzSDRneWtibEdVMjNzSDVJbjJ1ZElpNjh2Mlk5QUZsSG5rYjFJR0lHSnFzamtFM21LSFpOdy9wc2tSenNMR1V5TWQ2ZGptMUNNWTRhYUhEK0NnZzBPTlNGZHZoaElKWG5VV1V6N3hyWFVRU3cxbE9CY0hHOWFpa0htNEZERTUyVUNqQTJ3RXdJM016bTNvcnRjaG13bmpwVDQzUEhFWm5CTW1ockNZNSt5K2JNV08ra0c2dkxyTmJiWkhoUEprL1lNSG1NdjJmbmcvdzVzZEU4TWtEc2QzeHZXekN3REl0dGkrV1VTaTVTVUNkOUFxMHdnYjBoOFJFbnpnbjQxMG8xZEpTcUFpYyt5MzQrMm5vcTVOZVZSRHhweDNvNURsTEpVYTBVekF6MnI4ZDFVa3RMKzhiVlJDekRENnR2SWxJa0NzcUsxQ2llR1Z0Q2lxS0dsUmJ5QXl3RFp6ZWlMMXU3MjU2bCtvSEJ3WVRJNnJvU0FOUFFEQ1FFVTNOSjM0Z09oQUIvSUtOYktkcW12MWFFdjhpQkswZDdQaFBZSXcrK2NodGJrTHQwM2hneS9ydnJnN0o4UFMvSStKcmRSaDhCaTVDeWlEOXk4V04ya0VsOVNYa2ttRlBiTlNabzA5SzQvMkZrcG55dGhnakNjOC9lT0o1VnhhQllwdmcrdlQzWGVjWXcxdWtuUjZnSDdJcU0xQzVXODkyZGQwOWNqM1NkSTI3eER6SFlOZnJVUEMzTGVDOFhQMllsLzZrdlVkOWV6NWxyUC95RDFxMG9GNE4zdzNqa3VXK1NraEJGcmFlZEJ2THBFTHVYVVh0T3pNRm9ha0RCaVYrbmZFdS9jYnRSay8wOW1seGVrZitPbDk5VUVHQWRBUXNudUh0WVNLS2NLUmh3NHdDVFV4eWdTMk5zQWpTV2trUWM1NzVuZnd5aXBLR2hyQUNuZ3J0Y3Z5aDlrTm85QUI5OXZQUGRrd1U5TnFXbENaZGwyRnJsRUFCczc2c1BjaVA4WFJ3R0F3cHFpOHd5SEN4TW9UbGp5U3p0OXBQTG80RTd1ZFZrZU9PYlRNQlcyUm5XVGNQVUJjT0hkeDQ4aHhHYjJpT1BtNXA5REFSYXdERVo3WnNlZzBiQ3dXYWtpZmlwL01rc2dsQ0xETko3aUptZjAvU3VBMVRCZGZmZDRkL201Uk1jdTk3Tmw4Q1ZCRksyRnA4TFVUMHM2aGZySlFIV2FpZVlmaVcyRStUbEJZZ3BsaDNSaG9EcXBXTlEvS2VIaWVrcGxEZ0xDZ0JjMnJQSlNtdWwwVmtSMHlhK1A4RThndzJqUEMrWTg4eDFiWmhDV1lZYTFOdDFXQTV4TFkyK0tGcHZvVUhhdFd4Nk9PWVlpODBSSW5JY0pCZW1oNUxzeDc3MVJwUnNvMlNPRWlrTGNwL3RycDZSZTJRc3l0eXdxUFhvNCsyRDNUOVNTc29sVXFSVUdmamFib2VGRkJUV1JINWlSdWV4bVFEbHNaK3VST3YrOFUvSXhHRXNYeHIvOVdNNFVKbGRqZGwwR0IzSVhJcGR4V0l6L25LWkw2OXVXUGR2NzhkTzRad25UOTI0M3dwRDZKbm55ZlVKWUxDeERGY0IrMmdybmFVMmpZV0tsRkpiVEVMS0tycGpIKzRRS3c2T2dpaGJMSkxKaE5WWU8xWGNxcFYvVUpTclNuU3ZTakdVcXhSSFZhaGZTOE4wQVdRRExRd2NRWHlGZ1hhN3BqWG41TmcxZE1oYy83STdQaGE1RkpYQnpoNStWYnpQaWtHMUN1bmZodCs2TXlIa3BIS2c3a2JxNzNyU0V3d2M3eHhjYjZLc0dOeHhMeHIvM1R2WEtoT28rZjZySTJtY2lrTERmZEZzMU1QUlg1VENjVXVSa1VuOXJQWHJ6OWhHUDcwK3FnVkRyZzhpQ0YvRVpxUWNwQytHL1d6OTU2T21UTTJPVDUwMXF1alRNeDNac2RZWlhsMktHRVAvdWhSQWtJeWxPSllDT1JVU2w5KzVVWDZNdy9DOU9vQ3A1OThENEhmL0dzdGd5MGllUVUyZXRacG41dFB2K3ZFVzBjUThoUWNMY0h3WGtkbXo0Wjg2UHloamFMWlQyMlFseTRnRTczcFU1VzF0VnFQUGNmeWV3SHoyby9mdG1yS3ZhQ0ZvZWkrcGRrNDBsc3FvVmFlbmRlRFNqamU5U2huVW9xR0lnU1BRTFB1d1RnV2hHWlhBUll4ME9nSHhOaTA4eWZXNDRSQ20vdVR3UUxoMjcwYm1hbFBldktPNjAzZkZwbS9wdWJXS0EwRWJhT1o4cG1GQ1k5QVg2Zkp6eU04YW5CcWpuSGRRUEhyb1Vad3AyWE1EUzQvc0tUdm1HNWo4MlFrTytxb0R3U2lMSU1STXUxVVBpanJ6NC9HeE5vcU4xc3NxRnc1bUVxZUpRdHZPZVB2TThKWFVINWErTEh0aDVMRW0rV1d3MXlraVJqTGJhQWNtNXhKZDhtOGNhczZpVlNaNkJGdk1xdDcxSWtJTzRrS0NYY2Z1RHJZS0xSdGxySHRJYkRuODlVYU9JeWhURlNXTkNiNVNFRnhTZm9XeGZzZnY2czZ2d3puT3NvZ29SYjJlQktaVXZiVHhPYnR0dXRheUpjMHRtTGVtOHVwTnRmNFJHUHhlNUp3emVWNTd2YW5tMVZaZlAvMFlQb01idXVUdEdqZDhyQW0wTUVPb3VJa25MUi9jbjdWVXZNVTZ6TzdJWHh5a2IzVlFLdmZiSUZ4ek9jZzV6UXR6V2JSVzlTVWo1akwrUWRuM0FPSmVXNmp5K3lBbnlyN00yYTJiR1N0RFI2NmxtTU9TT1o1WC91M2tBdjFtK0dscjA4WUpZZ1FwOVVZaVB5Qk9vaWtUbHUwalMwSCtQMDBzV2JWYTRieDNwZ1dDeUJhUUlueXdERVkxY21lUzZlVW55bWwzT3JiVFRiaHQ2cE1aaUtQTzhZNzM5U3BiVEF3bXBicVNVdDVvVm9MNU0rNHg0czFZL0dSMjdISmZKMjFYMy8xcExuRGp5SjYxbEZNMWZ3OXFQQXBRdXFHNEdmNTdoNzk1NFdMWlF6Ym4wZ0VlZ2N2Zi9NZkhvb1N5TCtMczN4UEQ3cE12alBsUGxwQlBFdXNGUDB3WDdtb1lRRUhrNFJMTURpZThhN1E4YXpwaHJGZDBsb3daK2FSQU44VkdtK2luakVwWjkwZjFzOC9VWkM4YURCNnN2eWY5V1M2TkYxN3hFaElwOGVPUy9JbmZRczd0TmlPenAyZjh2ZTQxbGk3RUxMaEVHY2RodkQzMnloYmlnY3RINnkxamNZUWlINXRpR0RocXloc0tPRGJuYXRYQlB0ZUNUTDgyMnpWeHFRV2JJc3YxSkVRU1JLNnRqSHlLZUZ4ZTFHcTBRNlkwUGhheXpMd0k5bFhJRG5UMzgrZE4vekpLTm9HRjd0U3NvSXBYVXQzNGttcEIwN0FHejZwb3J0UnJ1ZTZvdy9sem9Vc3JyRm1CZzZ1dmZNaEFWSlhRTGVMWWNjV3BnMisrNXBCTnBsdGRYQS9neW9vTmxYOVFaTnhQMGpKb2F2VFZ6TmIzNWgzaFZJQ1J1K051ZndEejlpSGUrYS92dmM2NjFhVzJTQnd6TDMvM3BmYy9BYVlyU3N5c2VGSEtYOUFvMkhRODVNRkdOZnNmNSsxdVl6SmF5UkZnMTloOWhybFlsbGVzMkxuSUswQVZkTm9vM3d4NmU0OXZ3RE5XODdYWHI4L3NlMHQ2MHJsalhyOHJnUnd2UGZOK2drcTIrZlFOQUtiNGs2eUdsc1JaRmYvWHU1ZXR2V3JrVTVTQjB4UmFHNFMwUytMakJ3Z0xQTlk1MitkQ2JEd3hZSWFkTVFGZ002WXFPMzFMUWhhcWl6QTBPOU1iTXpsUlhlWTM4ZDkwMVNXMTU3Znh6bTJPU2c1dU0zRnBZVHNJT3BCNC9VVUpOYnZzYVArN1BxVmxaSVczTGtUcGszeHY3b3FQbTZuU3pFeHdVa0EweXJ3N0lJWHBHelJPN0wyWjFFdFVobTgvbUdGQ0pTODlxZ2EvL25lMG1IRWs0Y3JyWW1wTzJlbisxMnNVRnRneGIxTnhnRm1rMlh0eXYrdDNJdXZCNWZGTWVtQWVNTC9qSWdDWnlXb1E3OGJ1SHhlT0VCa1lqNFBLZWNEclVMUy9HNG96bEhiclgvNmRZSC9JejR6UXR0TmJ6T0lqRXFvd0FBVWFFV1BMdXdpQXlCajI5R1JjTEdZV21zVDQvYWVqelBqVzlpOEpPc3RtYmxVVUkyMFk3dm5TOFVlZ1hkUUJtK3E0ZWFXcU50b3NGZ3c3SCtwWHljaER6OFgxK05rNjNmcDZFUUVEZU9ZVk1OTGcyc1JETnRuYTlzd2hYdDBWNkhPaDJjemNWclJ6ZStTMGFxT1RHbWs0RHFkaGtKanI3UythWm9lckw2YVlDVmFrazZ4UXN3MnBOTWRZS2FtYklJbmNQcWk0MUlqVmRCRnBZN1lVcjZBZXdDNzkxWlMzaUVvaWJ3OHV6c3UxZkFlRVBWVlF4QTA3Nkw5dXFGMEZGM21LYXVleWVTWWVPWXFyL1VDWGgybXp1RTBwb0laQitSWEhEVjB5Y1VqSGRDSzQ3UzZlVU5SMWpaZ3ZuZ0RKcFJ0dzBwVUVmNDJRekdUeVo5TTFoOUpJck1qNGJjMkZ2WWVsNm5qWDFOd2g0eXZVaEdyb0tHS3JXVFF4OUplek9ZWnlRdGtrYjFNVGlpMG1yRm5ERERtWk44VHNrZHBOT21IY3VtK3o4dWRmOU1sOGE5ZDZNVmxIUHRXNDc0OVFjMU02QlFuMDJJeGwvaVVNYlJudzRxc1I5alFTUG5CdkorYnZpN29STURCQVpSQVNKcUxacWF3dGtieFVQcjlpdG5ldTkyU1FGbFlGVW9YK1pQNlBFWmFTMWRzQlFBUkFNNmRGRGNtaFVRdVovWXBubWdpQWozUlV0Qk5rUWhDeXdXNXRXTktVeWVhVWpNdU5wMDdlZldGSGx0NDJPSW5mdHJNTk1ZK2UwaVo5TmlYYTg1VmlyZHdrT3dnc211dExuQnNBaDJ4SFRrcGYzQVpSdERSREdCOEVHWXd0a1ZZcEwvNDFsRGFjRTFjTU5VUm04b2c3WjV0RDkvUXhPblJ5RnZMdjVnVllhZmJqcHBhaExYa1p3WldVVDg1aG1aakRMOTdSam1OdWMwTjdwb010ZDNiQzhjWCtVZkF5aUd5K2NwbEhLN2RHVHJTaHNoWk54Mk1kSGc2ODN1ZTFZcHpOdWFJNjJaN2c4TGFZa1dlVnM2bWZxU21RVlQ4KzU0U1hiRjhxZ2Zoa2RWT3lkOWtmbjRhenpzdXloWTQ3Q05neGNPOU0zZ1FNdHJIZlpxMlZyM1lJc0tBMHJGNERMdDhHVlFsYkpORm5yaSthT1pxd1YzeWZGUS8vVVQ0cytQL2QwSWtxOE9mQXAvMG1vU0syY0p2YXlXM0pwWkZUQ3hMNytHZTFQQWV0NUFXZ0RJcHZ1YkNwLzNLRkI2ek1SSXhUckRnaXJaWnBKNmNRZ2VvV1o3NUw2MzBhNWVMMlhyaUswN0VGa2c0eWRtMzRQNmZDL3FtZGY5WlFLZzZQdFY3NmV3d2s3Yy9iV3ZMcXdTZGRucEU3U3lOK2RIeVpJQ3dwYXQxVTRMbWgwZmovZDhMYzV5WlhPYnI0dnVPQWNpci9QUGlSMG1FZkRxcXVZait0cktWOFZpK1F0R2ZQeklqS1NjbVJtbmtKdHpyUXBET0J5Nzh6dW9vdzF1Ni93RllZK2FtaVA1Z3FUeFhUL3Vvci9wMVhnWEV1ajVZek03eHA4MksyUHMwRzZOd1F3TUJFRHF4QjBRT2dxRStnOEI0VU1RQWJFelMyQndDZytvdmZhQTh3RFJJNUhXQ2pmSVJQcGVRbW1nYjRXVVRlQzlnb0tQeHU3eEgzb05icUJnVUZvM1lnWW8vOWtjQW9ZYlNWaEkyQ3dqc29Ba05zRzdobEVma0hZS09nOE4rOFIvd092UHhGL2hwUUZpUnVmb0JOZ0JJWHhDWkJLUXN4cEFLbzl4NC9DMHpPSXU0M3dDWkFpWCtBSkRBRGlyc0Ftd0FsWG9Ra0lRQzBzYU9Wd0xoUUN0SGlvQ09MdUE2eENWQmlzRWtnRmZRR2lmdm92eUFKUXdDVU9NeGYwazhGTmdTSmUwZTBpZThCY3hkQU55Z3hkcmNvQUNTQk9KQ0tKQnRjNWRmb3g3WGRWd2dPR3pvcXg3MGNlUkxkNUlzQitjZFpmdEY3czV5V3RsdHpMdHhLYThGbTh5Uy9sdE9tK0x2cHZVQVZoK1ZhRzBUY3F5YTNOTEJXWERBV0oySGpIR1B2NDFKYUdxaUNyNVlqOTY3dlFWdEYzcFllOFlkWFM3OHJyWkNCaXRKSlNVTGxncXh3MUhCbm1qTlBvaUk0d1pYdTNuenJMbDBrZWhIUUNHaVRqM2xOK3BKMXZUUU90Q2JkRGJlc0JGL3dlWnVqQURYbml3QnJRMTdXdnF5bCtYNzVEQ1lwcndpd3dzckxTaTlySWM2V2pybmZNMnUrR2g4N2k3S1N6alIzaTBCclQxN1dtYXl0K2NYSm03bVVLTE9uVUxTTzVtVmR6YnF4dmhLNmkvL1hPNHA0U0UvLzRmUTN0SXN0OGkzRE81MTFDTWoybFZWY1FyTno5NG93MHBhOXpzckwvdG10Q0FBQkZMRHArNzJCNmFOOC95WmgyQ3VBZDk1OFB3SEFoeC9YVi9oN3pudHdDMjRFTUJBS0lNQS9NbDdjSCtWLzJXNWpxOE4zbkYwcXVUdXliMlFmTHZIQW9Cb0pSSFpMUlUrZU50TUtId2xUeEtSQkorZnljbW9vanQ5Q1l6R1NkKy90RS9VYjVVS1dYU0pldk1pcHVtT05xZ0EvQzVaN1lJanZrcFFlUS9xbWZPWmZ2UmRhT210OVR6VGdsZDQ0dEV2YVJnUHUvWEQzOFVSSEFYNTlNMzRBN05BVGpkT2FOS241WGRIVkowMVRpbXNoMitUZEsvc2d0STJxZDBuTVZGSzUvVW5kVXRrYjJYMlMzZ3ZCbmJXNEoxb3R3L08zYjhWb0lLRWZybzhDQXZvbWVBQnMweFB4MDBxYzFLS3VTT3FUaENuRnQ1QnA1TjBEK3lDNGpXcDJpVzRxdFkxSzc1YklXY2p2dVd3dnpPeXMxVDB4b3pjdThXdWRHdzBJKytIK0tNQ20zU0xMckJzbnBKM3F5cGJ6TEIzY2JCbWxWa2MzS0lCUUl0UTk2cnNrMWY3dHcvTG5iMndsZ3Q0ZGd1aTNtTWwyNXFnQ0hGNm1kTWdIVDUrVitCcElCcTZYVjRIOFlyLzJmQzRGcTZ4Q3ljTUl2dWh3TUtWNG5zVjJGeDkzNzhPOGRqbnRWRnE2Nm1hTHppQWppZGJucitta0Z2dVZPWDhkS3hGdmc0emxLT3VvYVdXcXFvRkg5U1pVb0xwWWtRV3JxRUpod2VZT0I1UEd2cUhJOFJIVk1tbnROS2xxZGMwV2swRkNFbGxsTTNiU1JQc2xPWC9tbFlpMFFmQmthanFxc2t5bE5lQlhMNmNDMmNVcUsxZ3RNcG0xcHcwSGk0dm4xZXZhY2RFWE9ac2ZqVlU5ZEU1bzUvTm56RnFhYlZuWTExRnpIdlNoRmdzd2hHWlVZemNhN1V1cFBjZlEwTmNjdVpVVE9sZzYveHk3R1d1eVgyeUNBd1haWkw4RjJKMU9paHhZdENqQnJ0QkVTTG55NzZMZ2FpeGtiWTczdHFtMkJuSDRJckxxRUtjczg0d3d3ek8vdTF5Z3MyZWJxZVIzeURSbXk4ejRtcUZ4eCszc3BSRjdaMVJnZ1NIN3VHcGJjTGdiMHlkZ1ZwNWdyUmxUeEFPWStVa2pVbEE2LzR4Y3Z3MjlPbDlXdDI1ZUZhUkxrR0hQSGRVaVkwckcxbHRkcyttTldsMW1YWmV0V2JoWWtJSkhjcnhra3hMOVliUUUvRk9RZ2NaR0JSNHp2aTNJTFhnSnIrSTZYSVBuT2g2U3pJUVdjTUk5K1ZhRElDOHpIRndlbTUwaFo3ZHI0aEF0QnFlMHJuUzlvYWJBSUQweUFLNzFvTllWUVhPbEs0cnVlRmVNWEVkWHlGSk5WNXhBaWhCNlU5MkZUb2tXSU9DVUF0UUl0NDUvUnhubTVTdFFWU2FXWGNhYmExUXBXOFhrdTJkbHFxcnFXSlZSbktPMGpmeFpjVGlqRURxWmF1U200aXBqUk1tVnIxcXhzZ3B4ZTFEUnYxMXFJaUg1SjZtc3VPMnVJYndtaDgrT3hGRnFxRHc3N3JaNjIzR3BVNnBNdlFxdFRURnJHVGZLSW1LYUpQZU9xSWk0eWtvVjFlWHNYS1Bhb3FiK3FOVEV3YTVSNVpibkt5Um0xYklVMlJkcFNiT1JvM1J0aXVYS002SnA1NnVyN1BPN3JoeWhDdlc2dThsVnNxdjNuZE9aVUhCS2xpMnliYldRTFRzNTdMM21JTmRwWjUzanlNbVJPblBCcm1pYnpMK0k5UE04K0JWSnlxQ0RwK0x3OVA0N2QzUDZXeUFXa2VyL1AwVGVmUGg2UzQwU1VtbkR0R3pIOWZ4Nm85bHFkN3E5L21BNEdrK21zL2xpdVZwdnRydjk0WGc2WDY2MysrUDVlbisrY1BRS1RWQ3N5RVFsZWhnWWxmTDNSb0N5dDUrVWMxc2MzMVNsUnExcWVJdEZubjdVK1VYMUdrM1NvTmRrbVVmN2dISHhWcHpaNGlXWW9rbXpxWUFZOGNqZnliK1lHZ3BIb3JGNElwbEtaN0s1ZktGWW9yZjhXRWF6MWU1MGUvM0JjRFNlVEdmenhYSzEzbXgzKzhQeGRMNWNiL2ZINjl1N2xhdll5QUZ0SUlDUEg0cDZmSDQ1OE9YN3gxZjkvZnR2U0NNVDR4MHpreFZUbTBEOUNKakUrdUFvckxGb3Bja3dqaG9WelU0N01KcVV5VGJZNkpERFRqQmtGQjJIWlVxbXBrbXIvNHVKcHV0Rzk2OVJld2lKMk9nMElMTm1wRXdqUVRiTERIUE5NVStMZEs5b2FsbnJwbS9HWm03V1ptL081bTdlMmpaL0M3WlFtd2R1bVUvbmp2dHUxNzZPcjBiUTFCVzVOYmxRYlV1ckNOVGxLMlVSNkNvR2k4TVRpQ1F5aFVxak01Z3NOb2ZMNHd1RUluR0pHam85QUFBQUFBREFFbHdmWHFYV2FIVjZnOUZrdGxodGRvZXJtN3VIcDVlM2o2OWYrZCtXQUFBQUFBQUFpYVlNakxDK3lNUExWZW1GZmxDTXRaUmczdEJWeE5kZUtGdXRseW5QVVRTWDV6NWZTVDcyWEVyV3FnSWExMm95N1ZaSjdhY2FUV05xVGJuSjlhWnI5SlRLSHFzTEswckxDbks3ZXBRTlkwUHU1Wk9EK2FmVmpXMnpoRnRDb0hBdElWaUVWUlBITFMzekpBLzN6SnFlcUNTTFhEV1IxOUxtT1JYbnBFYlhLR216M0s5ZkxhZFBUVFo3ODlNeU5XVXZlVEtNaWpUbDlMMDg3Y1BmZ0RDRDFoNVY1S3h1OTdKNy9tMDZWQnNBQUE9PSkgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Cjwvc3R5bGU+Cjwvc3ZnPgo=", - link: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTksMTQgTDE5LDE5IEMxOSwyMC4xMDQ1Njk1IDE4LjEwNDU2OTUsMjEgMTcsMjEgTDUsMjEgQzMuODk1NDMwNSwyMSAzLDIwLjEwNDU2OTUgMywxOSBMMyw3IEMzLDUuODk1NDMwNSAzLjg5NTQzMDUsNSA1LDUgTDEwLDUgTDEwLDcgTDUsNyBMNSwxOSBMMTcsMTkgTDE3LDE0IEwxOSwxNCBaIE0xOC45OTcxMDAxLDYuNDE0MjEzNTYgTDExLjcwNDIwNjgsMTMuNzA3MTA2OCBMMTAuMjg5OTkzMywxMi4yOTI4OTMyIEwxNy41ODI4ODY1LDUgTDEyLjk5NzEwMDEsNSBMMTIuOTk3MTAwMSwzIEwyMC45OTcxMDAxLDMgTDIwLjk5NzEwMDEsMTEgTDE4Ljk5NzEwMDEsMTEgTDE4Ljk5NzEwMDEsNi40MTQyMTM1NiBaIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", -}; - -export const IMAGES_LOGIN = { - loginSVG: - "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwODAiIGhlaWdodD0iMTA4MCIgdmlld0JveD0iMCAwIDEwODAgMTA4MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZT4KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdDYXZlYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBzcmM6IHVybChkYXRhOmZvbnQvdHRmO2Jhc2U2NCxkMDlHTWdBQkFBQUFBTDZjQUJBQUFBQUJ1a1FBQUw0M0FBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR29FZ0c0R0RiQnlYT0FaZ1AxTlVRVlF1QUlVTUVRZ0toYXRrZytzcUM0VkNBQUUyQWlRRGluNEVJQVdEZmdlT0l3d0hXeTlXVVNPZWRnSy8yd0VjZmJSNHUwdFVyeG51N2xhRjZVZ09wWUtOcTh5d2NXQ0NiYjVFOFArZmxIVElHTUFiQVBoZjB5cUNCSUprN2s2QnJNemdIZEZCeDFHUnlFWTZPZHd4MXl3V3liYXBIY01LNnRYbEJKaG5iQVoyeWx1R2VrS0U1aEkzTFhGaEdZRjhmT3VOM25FTER4WDRKd0doSUg2NWN6d0QxMi9kL0cvU2RZcjNLM216bTE5U2xicjBHT21VNHBUTUZONnNSMHh4SFdDN0RnaVJvaGxra1l1UHhEL3ZYMVNkKzNvQWJzOGFqZ0JHSUNJYUVmN3dOTGQvZC9kdXpkZ2FScTJnbGJHTjBib21PZ1NwTWtEUVJpWEVLTW9LRE5ER2ltOWtmWXorZmxIRnFiaUk0dS84LzhjQjY5eVhOV2xBaVViU0JCSVVhQlRzTE9pQ0x1R0tMTkVmK0w4Wi9Cb1pEMHFIUUUzeVYvT242MWlUZWZiOVdMc1B2b2d0WXR1WWVRbFZ6UXp4am5RSzBhVUZDaUFnL0VmbUZqS2pkT3BWRFBHZmNuc3JWN2hhWUFLaEpXRUdrdjRndWxEM2hLbWNXRlpPUGR4NzNqMWNLc1puVFJEN291U2I4cEtueUxZZGMwMlVUQUFVd0Q5VWRJOGZ1QjUvRGo5ZVhqa1pPUms1YWZsU0VpbUp0TVR2TmJVU1V6R1ZPK3VNbmk0TFVTbVEvcW9DR2oxcXpTNGFBQW5PVUh1aVJNcXM5N3dicUd5eTFyZ25HSU1SQ0lrVXMvYXhzOGsxS1ZhaVg5UFBXZnJ4M2FVMHdnSllLRjlSaWI0blpleWtyK00wMmdxQitiOXFXc1dmMlNQZTNQNFNtWUZGVFRraDA0SXB1VmE1MS8wNFR1VTgwUnVqVjYzWi9PYm9xMzIxcjRBU1NBUWxJVUFDR2FxUkpYV2hhcm5XdGRWbVBxZitmM1pydCtublhQM05iU3FhVk8vWnFvRVcyc21NTkZnTXpCQWtzRUdBRGJiMG5tVEw2YTE5L3gxcFVEWUd4dVJuamlLNHdSancwUGIvZjFxenVmdklGcmZ2aE5aQ0wzNzRHV0gyb0xBSTJ5ZVpPYk12ZjF1MmtoMWFDNlYzRFE2aHFzTE5Mclg0cmtxM3JTa3dqb1BRQ09HQlNFN2svd042TVB1MDFCNDA2Vk5UbXkwK0lHZ21FNVh4UERVbHBYNGpyd3NVQ2o3RVBLRklKNjJsK2Jlem94UzBTWWRLcVNqSUJYV2VBQlpDRDU2djVmdEpkYloxTjBhOHRXZ0ptMzNyak15ZzFPRmR6L1MvYW9la1pGR25BRWgzajBEUFBDY29MMEFPaVJzdWdaNy8vZDdWOTNhSG1ZVDQ4SXRtRWg0NXk2NkdxTGVSekxTNlJYTkpiNlMvaFVUSzRxR1o1a3dtY2FoVWsxRHcwb2lFU01UL2Z6UE4wbXBhVU1aRlVEYktKcFFVWk00RmtUS0Y3dVJWOS8waXV0NnZKcnZmYjFMQUwyQUUvb0owd0NxT0R2Z0w0MzVqUEVnWjd5UG5kcmVLSTFNdDIrQ3NnWFo5cG5TRDNFWWI1QnNsMm9ubUtGcmpnbkNUZVBOb2VmaTROTjdralNlb0lZMVFhWDlUR20wV1E1bFF3MUlGWXJwQUozYWczZUNBL09EekpMNTlNNmQxZFBrUkVWRzdNeXRITWpqYkl4Q1RHbGMxd2dnaFZHM1dET241OHF0ZDgwcVMzdWQ5cW1wRlJJd1JJNkpXYXhaaEdoaGpLeGlRMi9wZlRJdDRJSWkzVStEdWkyejIvMlE3K2NxSnZzMWhVR3BKSTIzZ1IwNzd1cy90V1MyMWk0cEk0czFmQ0pvYllXUk9FL3pwaWdKRmQ1QlRxb2dOUVphbWZnNjViTVFpamp5V08zdndZQzgrWEthVzZ6WHlaTTNjWWc3UE01OFhXc0lycmVJZWEzaWRkWVViYkc0MFFRbURKVDNwTUNrTVRKdzBIRW9SQUNOSnYxZGdLQWRoMERYWERva0I5QU4zcTVvSTZDQkExN1Uzc25rSDdGVXhFZndOWkNvUWZFMEkxWUJEOEU2RVhCMW92VEFGU0FnWUVCU1FFRjhPb1VLRGs3Sm1obFZGU0VwcnU2bmFtdDRGZmFZaGd4ZVRRUHV0TFAraHRvVUczUnY3MjVNZzdjSjVRbHNmbW15SG9NMzlqNzQ1MVdrOFJtS3d1anc0b3Y2dDE5US82UEJiRFlBZjVDdndpZnE5clEvVDZvM092L0tNOEJnZXdGMjRFemNiMTdacUQ3VkN1c3VsejI1T3JVMEJkYWd3aW9NYkdvUjdWOGJMMjFlTWJDeXNpOVgxaXFQbUwxMnljZ0piV3RabFpyUGE5bWdnR0NCL3YxeStJSDlWbC8rd1YzdXllMERlMmFXZDNYSGhFUFpnaDcwWnlJMjRHcGRXbnIrWUZxNjh6bW1KTDltTFc2RTFhTExiUmplOGlGVmU1MndpTVd2UHhOSE9FVE82aW9FV0xUVzlaT2VCVTVudW10cmU0Um1NUWFmdzJYcHlFalhYalQzZHVXVTQxeERTcGlVVE5EZ0laS1ZRTm96azdrbHRIL21VUm5XTG5WbHlXZ3N2aTA1Nk9kZDJ2cHYwU3EvTjNYU1FqMTQyeExZRlFoYjNHczU0OE9RWDBMckdKY1o2RmRuQ0owNTZrNHBaSFRuYk9IeWptUE1JQUJrV1Z0Z3hGbGZrZU9PSGxpQkNpU09CdE05MEJNRGM1ZEd2WFFnQnpwVG9aR3RzMVAwTklVRUpUa2hDRTVaMEtCSWtlZXZpL3lmN3ZCYjVESGcvZUhPOHVqMWpQYTU0ZEtrbVZOL2RLY3JSaXZrS2lueVpXN3ViaTJ0YXJ4aTdZNHphWlk1emp0TUZKNkhES3Z2ejlrNTJ1K3lNdHFlbDR5UjFFaWVKVUh4QnZFdTBRN2hMbUNYVTI5eXhIckZPc2laWnBWbU1XaHdWVkFuc3pGZnd6L0wxdkhIYzg5d0d6bkhXRHVZS1pnZHpIak9MOFl4Qk1KMWxHa2QvWlhMRlpBOHRpZEpFVnBGcHBIRkVOZUVrL0lJOXdDNWhXN0VlckFPYmgyVmhDWmczSnNNRTZEMzBBcm9IWFlhMm9qVm9CaHFGK3FKT0tBMTVnenhDdGlMemtBcDRLSFBJSkg1VElVeENZVXlmUVJ4OE9Fdld5SVJFYUNSUDBUbi9hR29NTnd3cVhyaDhwREtYcm95dk92WFlHcWtJazU5Rm1tYTZLSjJLL1lKbWhVVXN1SDVxeVExdFhjdnVQSHh5LzVObjZ6NTgyL1RIMkJWM0grd2xNdmpMZE44UVNwQzdGVStxbXJSbkJzYWRmRHB4YU80dG9FdlBjbEcrSTQyNXp0QnBWbDFNMjVEWFNjQ3Y2VnZHRGRncmZYWFFJWEpJVE50anh6UTIvaHVybnJHbHFSSGR2ejBYeFdwODZiV25NekkyNnlvajg3Q2x2Nng2djQzMXI3bUtHcCsrQWNOR2VscmVwNjBLMElrK1A3M05XdmhrK0R1bEtVTkxVOC9wMDRjemhkTVo5VEl3K3JzYmVOcTZ3TVJjYlZYZi9wcW0vdXVHZXRENlpNS25Zei96SStBUThva2VmalV3SHgzTlVzVWIxZ0U0bEZXZC9ldGxMd3RMR3B2ZHdOTmtSRFZyNnArNTNBQWxVSnhqWEJVWVFWVFFjQWlJeUNpb29kMy9rM0dGRVNteW5qb2FMaTJablNXa1M2Z1NYb21UbUhRbjh6N1prcE5jVWtyS29ncFZtMzAxRk0vajI3VndNc001STlHb01lTTNrN3RvT2V0MU51WTJzMjI3MmNOK0RuQ1lZM0lkM1Y2UDg0VG52RlovTHVRT3NJR3FPVE5ldk9QenhqY0tCZ1VMWXVZelpFY1pHR3gzNGswVVl6aVduakhDbkdLRkhjTnpCQ0lrSW9sVWtYVVVVYm1hL1lDbkMvbWFNTVBudXlReVVUR3gvam4rSnJnd1NMNlJrbFR2amlRcko3dXVybVJzWktTaFQ5c1gydE9KcnZSa3ZlbFRqTlh1VURlNVpHZ2VmbzNJWUQ1YXlHSnZLY3ZaeXJWNjE2dmR1YmJsM3B5ZGVmY1lrY0ZsZEpYcjNrMXVzN3ZyL2o1V3U2TjNMNjdleXY4QjVsWURPVG5YRnpRSXZSVDFFaXlnaFRIOW1oVm50blFMUmRTelMvY3U5ajNTYUlsSkplbHVHUWEzUkwzVEk5VWJwOUxTaTZBcnVvSXVHYVpoQlhhakpGWkVkZW9lbzg2QnhvOVQ4YXA0d1dMS1JTeWhTMVZSbllsZUk3VmU1aEcvcU9wa1ZkOVByT1FydnRsL3FQd2RBd2p6cE5wTWNDY0w5QmJpdnhNRDRobmZacWIxcXRud1p2dDg2TDN6dFJtRFIxVlZ2b1JaaVZudDJqcnFPaHRVcDdwODgycEc1TTd1ODhnQVdKNlhsV3dLdnBZekZUK2xrV01MVnB1LzVQcnVnTnZFcldld000NWMvRnd1MlVDNHVmVVVIdlFKdktEWjlHZ3RHc1pwZCtIS1lFNjZLL3ZtNk1wOXoyTjFJUlBzdXNZNnhySFBqb0dGbDJ0ZDZ6cWVjbHhqclVWWkx5OXJqWEVjNDlvU2E0VXp4Yk1BMEp1dVZWekQxWnVkQmFpT3prOElJQ0lmdWRtTzM4bk1tODNMakloNGtvNm82d3EwZ2tlOFhMT2RYRlRBSmNtTHlXS2hDend0UE15dE5hYUoxaFowMjZuY2tvR0JHTW5mMnIvcVhnOFVGVk5Ock5XYktkcDBJa3kvRld5dC9kcTFaUFM0K1dacVdBWjd5cjRxUUdlT2NqeHg0dFJscmVWbkY4TUhiNUE5SEtZWmhnQTlyZWNleENEUG9ibzVHOHo4eEYybExGMkIydUl3enN3dGUyMUd2TGowSytTRmVGaFo3bTdqMzQwcFB3blZjWVYrUFdrbEtMbDh6SzJ2dGJvbW1RMS8rbWp4bGRxaUhwWDFhbDIxKzROajlOWE5MZ2NZLzVlUVJUQk4zQWxVb2NSM1BmOWFWMi9Da25YaUVrWDB4V1BuM0d1S1ZoYVVVOWdzbW9odUlqenhKQ0U2ZlVrRVIzaFVUSWp5b0hHNlE4SWVsVSttVG9FcHZ1NEorUE9KY005ZHhSTllIYVJnamtBbG82K254MWNqWUVRbU1hVEdnSXhlYnJkT1JWVVlRREg4bGRKWUpHUVhpSE9KWGxwV2lJeXcxMlFFQmdpRUh2Q3ZnVWRZaW4wRlRFNTh1aU5pSGZLL1lPL1ZaZlk2UHQ0SEc3a2ViQVlIUGg2U0U3cERUUzZrTksrM29oT2pJc25wOVIxblZ2WlpGU3M3V2JXK1lFOWlRWi9aS1JJVTM1cjBPU043YXJtd25STlBYU0ZDQzZmMFo5T1RmVUJFOUpmc25OTTN4UUo5ekJzZG05dnQxa0dSZWxxNGRRV2NLY2JCR1FHVWpZS2xYck5sdXRYcVViZlprT2huSkZqN1JoRjlQcTF3NFdzaDF0R05ON0dMOUtXVW9ZbE5hWjF6cVJJcUdxZ1NNUmRUOXE4bng3U0NLTUt0UzRrbDUycHpHMDF1c2ZUeUNYSVFDUklNYlM2YzFockpBZmVnYjZSU1BPOGxJRUZYdlZjQ1JvUUpyVXBoeThlTnErOE1NYzlsbXRvYzdtTkRJem9lUHgxZVNjTGFKMmpiMUI3Ym1XZnRpbjV1anJURUJvZElFVTExY282Mk9LVDc5T3hJRmk4NHowUm14emwwUlhlcDZDbURBb3A0dXYwOEdyck9aNUh6N1VVSWtJcWVPQ2lnZUthdnFKWWxjZFpnMVBRQnB1cGRDSWdpR3QwOTE2NjQ2Vld5Z0dQVm5xWmJoUkNrMzM0S012TDJxTVdyRWRZd3doQkRMZmNLR2NXQzBncE1mOWRPNnFQZnd2OGZ3Z0M2Yzlha0JVMXhvdjF4YkVPUitsdWg4QTZQTzJQcXBXNFd6MzBSRkNYT1FQUGhjUVM0RW5laFFxdGNLV0tsY0FqL3dnaVQxUXlJdmhHRG0xbVQwVWE4U0FWYWJNRkJxTFJvQVJEc3lXMmVRL3pzTDQ5WnNzMlhVaHUvSk54QWc2dDZ5MS9lVmtVVXFFdlp3MFN2aVZpbmRMbGdURVZqUERZVVNsUTgzd1c1dFo0R05SVVNCQWE4MGJEUVBmblF6clhsOFlVTklka3hQSzVpSXNrdEZCbUhWeTJSeVovRkQrM0RZMUEvd3VYV0JyWk05SHR5Q3hpSlJBVEphTnN5VFFZWWlVUUFDUUljQWhpSlJJUnBBSnpBTy8zWUVEU21qdFc1M2xLNjhJSXJ5b2lxRjROdFVsa3FjUGVUUmRmUDdnbkdySGhxTnFBTFV2ZWtBaTAwdXdEaElsRWQ2Yll4aEs0c1BtT2VkMzZtNW02QlhMbkNXaHNLQmd0djNlTDVoOXFheFU1SFZIc2pKRDFDdTMySkRWakoyK3Zta2tJMXBzc2JxcFJTR1BzcnNGR0hpMGJVS01Kb2d6SGdTVStWaldBRWpBSzRIcmtJa0ZYQkpVKzBkeFFxcHRzWTlNQkZITXZpMWdzTVJDRDhjUForSzZ6VFhxN3VKTi8yRjIydXBwTlZuaFphNmZ4ZzZxMUo5Nk5NWE05UzMzaFBXeUpWcm5OTjczbkZWdFVrMXZYWWZoUHN4NnU4UEY0ZXgzVnNQL1RpY1Z6WDB5TzQvSlRqZW5rODhMajlxQkRIY1kxN3M1ODR1b21vdEpxVXJzcGdnTUNtcmY2QVg4R0Nzc2VVd3pGL3dySUpTSnJEYVVud3FLaUVnYW9mdjJDUW1jZGJ0V3NXK01ERkRPMldTaVhMenJDZXdGNkQxVlNIa1BXMFRaR3lRb0lqVHllU0VrdllPZk1RSEZndnlmOHRwaUp0RHN0YXVDNlZWbEtDNFhhbGVuODR6M0hvajZmYXIvMEZRZHZXQmdKMjZWeEk0NTRDUjhCQjJ0YTYyRk5xc3dBb0lrNjRaQXlRSGlOUksxQWdqTk1jeWpVTUE5WDJEdkhKZldxUHdEbUw3RytKSWNsY3ZPS2ZTS2dnTUdBVmZzQ0M5MGtCaEV1SENGSTNhZWI3V20vQ0V4MWJNSG1PeUF0QkdLOWFnYjJaN3A2bkp4MEpoRGVIT296VU9kMnhQVUZrOWlUUHNvQWtzU01nV1l2VTRQSjY2N1pYUWdOS1MvTnIxMTZjMlBCS1RvTWJJQWNqbDJpUjBzU0Q3aEJTWmtqcmIrVXp3U1BzWUJvS0xoY2V0L3NCU3dqOVVlekVtdGFScFRicTdMV1FDM0Q3TmphaGdFY1lNN09tNTZqalptVkVuU3hnY2xtdm0wdVRGcXJtTXB0Vm5EMExiWE9Mc2hoOEtNWTJwYTJrclN3MXdta3dVSFl0MkpLOGdrSmN5eEZNOVBwZmlwUUMzWXlVNHkzYlhIRmdwVitrOU9qZ2FaVk52OTJyVzlnZHo2QW9WOStLbDdLSHJuZ2xoOWdGRkZNaDUvVnV3T0o3bHVxUWNORldzNnV0cXhBbE5LblVhcFJTS3FYYlRvdlJ2cEJTS3FWVVNpbWxVcnJ0SEJudEM2bnEvMlNVU2ltbDFCV0lTdisxNG5lYnh0bmFpaTUxRlRMaEZsRlJsbUk2aUNnSTNKVEF4dElLYkMzY2MxUnp3RnRWK0lkb2RqVHNzUWhiYWExUzlxMEVMN2pXMUE0VDZLS21wYjFTeHJpS0ExU3UxTGZqcVBaNG1BODdBei85eGthV1BUallOR01GMDQxQm1vSkRKbXB0Z2JUSTVUMFlDUithbVUyYm1YL1V0TXoxNm5jT0xKS3VQZTdoci85NXFkWmhnMUpmMFFnMFRhcHQxNUpXVThQQWdMU0txQUNUSHZPcHdOVDBRazRiTi8yZXJETi8wdWxLaThEQjdGWHp6Mk81LzNUdlM0QXpYc0p6d2d3UGh0KzVvaDZNdng1em56RXQwbWlRVXczcHdpV04yTnREVFdSK0piM1diV1o2aG1FWVlCaVdtUTZ5cklUTE1BeXozWkUzbWd3anNnUzRNakprN3k1c0dCblRXQmMrbDNkbk4yK1pORU83TFd3a3NuZXNWQ0FkSnhZZFBvb2llNmtmcG96TldldnVqQXIvWlVocnVhd0k2V1pQRjQ5a1FPUzhBeTd2Y2trU3NuTllqREc1SjhFVzlJd3A3Mm9oK0cvQWxZQ0hYMlJocG9IVzljYzFwVFVYY1ZXSWtDbVBmbGs0MnE3UHRLK01lMGtiQ0hOaTFoZWhQOHA2OHp5UW1jMldNalM0TVBhMFQyV0sxbU5qS2x5UzVKUlhRTDlSc0ZVYmh4REVxU0FyS0QvMDdBWFpqQndCZXlpTlE0aS9BQ21ONFQ1Q2tsTGp2bVpFMC9DV09YN2ZqNm5jMUppMmliOXFLSExkaHdmTW9jdWdDNFdwOXpSNE9YdFo4UlBkeTgxQ2xMNDdnOHFWNkdYbWN6Yk4rUFllczh4YWk0cWlVRkxCNjREa2RpRWxXK0tyb2lxOFpnUlBFSC9QSlh0cVVtOHpleHcvN2RtNnhsdGZQdVRueU5DUHQzMlc2NWdicnJ0LzduTWVWSHRwZjlTS2w3SGlPR1dOUXc5eVdMa1N1UXhoWmNaSGpOcXh0QnI2cWw1eXFJVGNoSlJ6UFhqTU9vcmNEMkxHVmRRZGMvNUF4eTV3MjQweG1udFpCTWRQMThNa1p2OHVqQTMrTCtKM3FCOFFmM1JnenVydXpoaXp2Z1RJMjNURHlXVlRaa0VPNkZ4bkZRT09GNHhiYW53eUkxYmVXSTh4dzNNa0lqR3Q4SUNCS0VnUzY4b1hjUDhMdFQwYXRPS2dwS0x0bklvek9HNFQxRWk3K3VpdlpPSmhjZytpeFA0U1R2Z3VWRSs3dWw1STYvMzEzMXN6NEh5NmhHcDFyRExaN3dMd3JUT0E4N051ZUdtVExGRi9BOHBMeGsvMWdQRXdLSk95Q0JIUlkraW1JeE9OOEhwZG4vczR2TEE0aHlNM1Q1OW9pMC9scmVuVVdxZWMxenNaWFNYenI2WlMxODV3eU9vYzJWdm03S0c3U1JIQjFWcTk4Q3NBYmMxcUp3ek5MMlA5a1dFRU5rWWxBWUxobFpTUWJzL00rTEo4NkJaNmtBekd3eDQ4SWtTTHROVllBZU1yQjFqejZKTzh2UVlNdk5DekVPMDFBaHozS1RaOUFDSXBHQ0RUM0NUME4ramZhNmhraTJFQnozWjZ4cWpBY3V1dmtOYVUwaUYxZys4ZjFINDljTTNwZlZvLytzRkVQejhVR3E5RTVyc05lSDZ5dDFMakw1Zi9YTzhFejZiU3V0Wm1yaWFwbG1nU21mR0lxeWdJRkgzYVFTMUtUT0RrVi9mUStIN045Y1dyN0ZpSkFjSnN3NUJsRU9iZVl0L0wxRW1oY2FhMkZIQVNTbE1CbnBBQkhzejJ4cGtRWW5uc21KUzlZRkhjMkQ2WVBjdWZ3NVpYMjFFU09tT29ER3cxbktIZ3BGTU1MZEdNVFloQ3prK1ZRN3U2cDI0TFpPUUhvZTByY0t5QXQ5TmtPbGloMlNMaUZHcW5FQmR0YUlOZkh3Y0NCd0I4YlhJelJYTnhsOEg2RHkza1NOMW0vN0FPQ1Z4d0ptV0NxYUlTdk5Vd25wd1hlRmdsQnZEWXo2Zm9uMVN1Z1k3R3lrN3hSVHVDVDc4MkRlOHNlc1pSaGE1cFhxMW1yUkp3VGgvYWR2Rm8wRVVJbjFlbS9oS0RFdHZHWHIvOEpGV3FRbVNQaHgzQ0ZtRElVcXdCZWt3N1Uzb0xjZm8yNEU3WnVhYTVnTDFJZEFoUWdXQXBtblZkMUZnUFlacWJmSFQxV1NXby94eEVPSTRmQkFvM29MZStWbFVYNDJ0N21oVlZITFptcTZKUXJaMTRvK1RiUHE5Q1IrL1pVTGVZU25tOG9VVDBKY2xYZndaUmJ0SE5ZVFgvRlJWcEU4UFBydUFXeE10M3VWT3Z0Vm4yR2I1VVkxSnZ2WVROaUFRZ1RhbFNmRTVKV29rTldSZlErNzJRaHRCaHFWUUM0WnhUVndzK2FXZUhidVpEQkg1elhsbC9JdERKc3Y5aEsyYWx0eUVxS201ZENRZHozL2dkOERwV2U3MVNEZFRvaTBjelhzSGlLM3FMS21SWnd0OXFkSU1KcHdqWDNLYUlOT2VyRVVWYTlKRG9TZ09QU2xsUzVtVWhSNDhwQmpNeHpsZ25rN2JWZUJsTTRIdllIUFBMSWhIbGI3SEZOSnN3SlB2U2w0TDNMQ3hnVXB1aHg4dDFSYmNTaitsMlhraGViYi9aaVIrTzc3bWpWa0hTeWdleCt5MUx5QnFyeGFqMGl4K2U3L1ZYUWZ4M3VNZHV4VlhBNWYrQ2NQbkY1eFhtWndMaFoybDJNUkNBMFAxdXpPVVEveXZyOFZkTld6V0g4c2VlT2N1RDNWS0gvME1WWEpCeEhGaGlRRUIvdFRCOHJNbi92NHVpSS9pOVBYM3ZEOUg5L1B4M0lERUJGb3J2amZ1M2ZoRHNWL2NMLy8wRTk4WmJubjR3S3NpQ3p2OGRzb0VHeFJjaTNId0lQeXRTRkx0eVBkOE5NVDJQTnNPc0NWblF6QUxZN2ptaktvT2U4cldsaHZ4YlVjOG94WW1YSUZHU1pDbFNwVW1YSVZPV2JEbHk1Y2xYb0ZDUkNZcVZtS2pVS2FlZGNkWTU1LzNqZ29zdXVleUtxNjY1N29hYmJybnRqcnZ1dWUrQmh4NE54OFIzeVplZmNjWlQwOURTMFRNdzhoY2dVSkJnSVVLRkNSY2hVcFJvTVdKdHNkVTIydzNhWWFkZGRoc3liSSs5OXRudmdJTU9PV3pFRVVjZGM5d0pKeUdVdHlTaGJwamFYRHg4c1RvREM0bElPQnRqdTVKeHEvZmd1WTRnc2Z5Nm5GZ3liVVd0cHBzTHQxa3dyOE15SzFJQzdyWFdYNSs4L0xHa1JFYnlKaEdJUnFLY2FFa2tFRDRRYmhBT0VQb0lNd2hGaENDQ0V4NkNlK0ppbkFhL3dIdndLRndQNThFeUtMUGw3YjlUTlhHam9kOTYwTWsyMTFGTkpaVjNDYUxOMkpnRkJXOWNzY2NxMCtUQkVJd1dLK1VrSkMrdWhCNUJLYnVHUVdjeHoyTDRSTndlQ0pwL3pLMDByR1FWQkhWaGRtRm9QZFFLUVVuSGJLQWhmakVFWldGbVlmQjRqSmdncDJNRzBTQjduSEVwVFNVR1JpZ0gveS9UbWdZd0o0cEprZDdTUWg4MVdGd1Fvamd2TU1zYUFXVGJHZFVZVFZ0V0FJWjd1NDM4ak1mZG9ZNFpTd2V5RUN6OFZpSlBhQ3RlU3p0Smxtck12bG8ybVZ5RjNFMVF4anNFV3IzaWdMU2tJejBGVURDRlVoaUZVeFJpR25vaElmdlk2NFJOcVZrUWNuVzZUWVROZmFucEJZbWdtU3lxczBPWTRwTnc4eDY3NG5tRjg4N25NY2w1TzdxZHVoSGdOQWs1Nmh5WXFVT2dVcW53VGlVRUxaWTJ5UW95d2R4TitJRlJFc2E0TWVUTE9EVVQ2SmtvaUVraW1DeU9LWktZS28xcGN0aEVFZE9WYVZPbmlVRXNZaE9Iek1pQ3JNaWFiRWhNVW5MSXk4NHpBbldEU0lBd0loQjEvd3ozUzdreks1blRlY3VjenRzS0I4N0g4dzZYbkMraHkza1hsamt0UTRaVEV3clVCWkNwSStDdDhDNElxcVJneERJT3YyaVJDVXEzV21IQzA3UzYvbE9Nam5lZUVwRms5VWhGV3MrYlpkbHFlN2pETHYzcEQ5bW4wQUVqSmpycXBFcW5uVlhudkFzYVhYTE5GRGZjMGVLZUYyYk5oZEd6eGFEZDlqc1NscG5NMFRyMEFyYkc4d1FublUraXhua2pGam90aE5hcEJtbnFOTERVUnNoVU1yeFFDVUNJSlJ4K3l3Q2d6TDN5SEc2Nmpyam1tVWk5MDF1MkJJNDJ5REYyYzZ6OUhPY0l4enZGQ2M1eG9vdWM1RG9udTN2bVV6ejJRdXBFY0tORGdEQWlFSFdId0x1SnBISTZiNW5UZWN0N0k0MWJubUFzTzhLN1lFajM0ZzE3UEUvYzVobFA5OWllNWlrczArYkpaaytIUUs0TnMya0w0VUNkVlFKZ2c4ZUpzek81VVlmaUU4QStaZXZYSDhzYWIxRUdNQUxNL295TlBBRGFLL01CWEFTUXM4c0M5QlVuQlplQzIrdmcwNkdINzFOUWhRRHZEcXNUdzRuMWtKWUcyNlR4c083R1lkVUJWaVFFV1ViLzJibnlNc1hmaExnbHVnNTBzanZkT3dTREdBbVQ5RGxDZ2RCYUtCYmFDUlZDYjZGZXVGa0VGN1BFM0w4ZGx0NkZaTHoxNUVWWkFHdWQyVUl6b1dVUnVkQnJQSDVFNlB0L2Zpbk12OVd0Lzc5cjU3VG1ZQkdMNGdHZlB3SHcyZi8vditmM2VmVGkvOFQvS1k5bVBiUjVhTC9Mc3FyZjByMHZlYy9oclE5VlEzbldoKzNCWC9iMmlaREJZKzV6WERxYy9LQXNqaUFGV2dnVlQyWDNWSHkzNEo5NlRnUjIvNmRKTitML2swYkRjNjhPU1JpUDdkSzFNVGxLZVRudTJhSjJrZzM0NG10KytQZ29mcCs5bXZqbHU5OVJvZ0VDRkVTQ0l5S2pZV05nWXJGZ3hwd0FuWmc5S1Z1TzdKSno0RTVPUWNtYmk5V3FsS3RRbzFLMVdnMmFUVEZWa3psbW1tVzJTZHAxNjlSbGlVVXBMTFpHbjM0RE5scHVFeWRMTTQ5WnhKSGtHVFNqNjBaNW9YZjlIalVleTg4SFZ6cm9HNEFqZndDb1Y0Q2E3akRpQUdnM282QThmajVWb2MzOTFBMGorNU55ZmFkbEQyOWhzRVBvZ3ZhRWN5S3RGUXU2ZFNuYU9vUXFQS0szMVhqVmsrMm5YbzE3cUdEcVVYdnVJZWlLTlRwWVJhdjBtR284aldsMGFOTTdRZGNTU0lhV3QzMmF0b2prZ2hWQzdIWjRWdVZyUDYrNzBoc2RENlZoaGdTMVRiV1BlQkF5cGtPSGRpS3AwSzJBbm9GdjliQWZzUlkyOWxmWXg0cmlGbTIvVDQySVVWMVpPWHFSMDRTdUFxbGo2STZyeVRkR2xNdHpGVi9aOGMycVBaeXkwMXNDTlVxcjJBd0xyYlVveGQreGVrMWtSMDdaNU96MWt3Sjlxb0o4ODUycks3UG16K2ljV1pjaG1leVE2Tzgzc2JaeGVsdUNNU2orOHZSWS8zUitoSHFwcER5anliaThQTHJaZytuS2tqTW1oSHF3ZkZqbWJvd1dQU3RYeXBiNjByTDhKeVRZTTRWc2V3ZW1HeU9aRWNFdzg2TDc1dTVOMGNuU1kzMkVVU3J6UUZhS2dXM2t4c1JZWnBteEFrMDllUkxmNVhFdWxzazhON2F0dHliQzMydVNqVW9sRHpUeURXSjlqSUUxSVowZmJjVlUweHZZOGNrNmU1YVdGV2p1RzEvbFlwZ1lscUJhYmQxbkxXQ3Z0bzV2dFdDMXhCL3lZN3FaZWJrYml4TlRrK0p0SzZNdExid3QwdXBUd2tLUzYzLzlwb1RVQjAyZUdKS2lLam5hSENOS1RQbENuQWpLVmRlSHN4azBta2hzTk4yZjEzQ2hOMW8wcmRVZmFkZmdFS3VjaWVWZEFXRTJWbVptRm01dU1wbVpiYkRSU1NLckFQMENUblJlcHBYU3l0cmF5bW9YWmJQTnplZWs2MVFhR0phMnJ1bkJESHVHZlZpblJScWZzVkRycUhQdzBZMXpNSnVxZExTaWg5c0o3S3haYkRiYjBvSk90V2VMTFZrc2pwbWNFMW1OcG5YMDdPU2NDY2wxalRrSmpiU0VQVXgwbk5uOHhXWGRCbVBSM01WeW1WMWFYWE55OFNGeGVDWDJCaURNUUprTVdGQTNmN0pudDVibHRkcENLd0hNWW1ZL1h5RTFOTis2aDhRUUl2YVhMWWtCY0x6U3ZOYWxKK2tkKzVUTWkvMThER1IzSFc1K0hvWDFsYTFhRTNFV0pjV1FjanFWOWdmQk8rWWV6Y2t1Y1dqNXNOZm4wbFNCbDRYU2hkbzlMTGlZR05aaHloUE5iVitYQk9ySlJFRVFoSFMzNVRrL2VMMVFRelR2UXArRmxIM1JzMzVTR0cyeEtISEtCQnZCSnByKzUwbjIvMEE3cGNRbVdEUVF3cUlZZ21WcGlTVGErbUtFS0tKRmxjWTNpNUttTkhzc3JqLzBGdTN4dzhOMXlMNHVrTTV1bmxjRFg1aFQ3TlFpb2hRREppU2t6c2hoa0NyOHo0NzY5U3FEN2dNZ1hYOEpNODhRQUNZWklmUjVrTXptSytyT1JKWG9aa0tXZ3FVOUNRQVU1T09qYlpWYlZMRWtSMzQzeTVPVk5PaEszS2pMemNyaVcyVTM1d1hucWgwaDRRNkpsbE1aQkFzSWt0R2VBUkVFbW1CdmJCOTNuOUF5aUNvVHFDZ0NhRXpQbHBsa1VaQXZiSWNZRWkvWHRUdVR0NDljd2FMNWVGR0dXRDEzanh3bktYZW5BMFIxQlpybnFacndkcytaQUJwdndNSmNqT2I3RW44YTY2NW9uZjhZMXhBVFJ4ZEVuWDJnakxmY0IvZDJtQ2NkQkNCdzlOWE1Xa0RtREJvQk5EemxlSEVlUUNLYWsrYlNVSU83S2YyVUhIeWtpQ0Rsb2VlTm1qMno5Z1YxWmJjY1dNU0MxMVdkM20vZkgxcTN6Sis4Q2VEdy80cjhzRHBmK0YwMGQ5Rk9pQ0pBS1JxdzVJdXdkV1RVVUxRTFdRMGhzUmYwUzZrNWVTbkprVVZoRjJzZnhTWktYc2FSYUV3TVRxNk1GNENJem5vWmhmVGxjUm0rakFIRnByRG9NQ1RtRjdkZWdSL1J2SVN0TldRQ3ltbzJ5OVJ3eER4Q3A5Rjg3bUlnekI0R216ZUliaHZTcm9HdVh3RWdFQ1NuMjRKRmtXSUEzcWtUdzdQMXN2T1ZXTVpHQlB4VzJ6MkVmT1hLWEU5U1MvNlBVTTBteVA2U2FrZE1tL0g4eGoxbXM0TkZjdEZqNFpMWlZ5Vjk3aElLLy9vUXhjUXVUQlJoejU3dDUzNVZQcVpxcTd2QlZWT1VRSFMzb1l6MG52VnJ6WC91eXh0akVtcG9NOUVBNnE0WUxYdGRJUmNRdkRNV2ppZHRHSjRRbTIyTkQyai90aTlVU0dhZjluUVBsMXVCMzUxRVM0YmNpRGhNZEFhYlpraktwUW0vS2x1aVhLN0xNeVhpekpDbzN2OTN0M043QmJMMU5COFlpdmRtR2Zxd2w4WHlsRVBTRU8zV2YvZWhYa0Nab1ZnMkg2SGZ5cFArc21mNG5QMkFGZ0VIeEg3NDhvQUNGU2ZCZHZvMUlYTUxQc3NRQk05TU83T2t3blZYcDVuKzZRdldMMmk4T0xWditJSWtudXI3c3pkZDYvbGNDTHhJK3FjU0k5SElEZllMVXhPa3R0OUdvUWFnKzFzQXh0U0FmcndSd1RQMEhBMUI0dFpYenFrQWpaQ2hwcDhWQzNJU2lNTUE0YUpZMnJzSEVxMFV5N1paYlRUZ1lvOEo1cGRubWZvY1B1M2x6czFiVFZSRjlzWVJkNGRJTitXVDM5emZCOFAxamRtdDZWNncySWNGbXllNit0WkorUWlVbkRSdUlvTWdhYVErMnJ4N0xUQ0xId1BDNk05SGVIejF0NUJNQXgvalFWeis1NHdpQ0pTc2czWmJKdXN3amh1NkxOQVVNYjJML3VMSnF1QUxLSUMrc2dEZ256VnFlUElBQllhbVZiZ2JSZTBwUTJXMTI1L3VLT1BCWFRkWTVJUDlBZ0ExSW1KUlJkNElLT1I4YUZLRHFTZDQxNnpLZEQ4LzJGWlhJa0tzUWR0Q082MmhoWXh4RzFLS0FZMUx4K1hjUGNKVmF5bkpRV0thTTl4a1k3cndsUmpYcllwdU1PRkx0Zkd4NTZQOVB1elpQaVNFNmlZcy95WG9aMldhNyt5UUVYTzN0TDFTVkFjZTA5ZXUzVGQyT0Z5OTFqSEtsOGhoaW9kNGVqeG1sd2ZBSDg0WUp1eFp6M2tMcWZQbm1mbk4wM09uQjVSTzJlU21yd2ozRjhidEZnU3Y0NXZNNzZKOVVRWVcrUXM3VVovK29LV2pGMjN6M2g3ZzhwWU9reTNENVZwYlRlZjVLTHE3c0UxWjJnRGp4Y1ZFYlZ4UzJTNTZwMDRjeDVudHI2a3JENWMrN25NbXFzWVAyMWJ2VFA0WFBWZWZpSC9iQ0RLS3JDanRVbytlczZ6MXBzVWE2SC9OUCtqQmp6b003dGoydENpSS8zWW8zZStsMXlFcGkxMVIxcjBCVDFmNVFGZ3AzV01hYjQ5cFh4b3FMTjN5aHVQUTF4VG0xazFUSVQ2MGhSRlBidmZiL0g0WmVtUnJZMXpzSnhqbXovVkFaQ01rSlNRUUxZRllNZ3BHYk9sK1RiNTJmNzlsOXVmWVhnamJmM0hZNmdpTWk0cTNGbTJ2dFlVbENCVS9MSXcrMitZb0lMbjAwQXZVZ21BNnFFWWpSTy9qVVJ5czZKZlBlaGFnd2p0YWhsQlhKYURDMnU4ZWl0a0xRUDUydXdVdmcxaVNCZ3Z5aDNJKzc5SXBXbHhydDAwRTJXWXdkNzkxUDlSTDdqQ2VkblM5dUlKa1pWV2dKVjEvRTJRK202RHFFUklSMDZJRWFyajVLNlIrL1BVMHRKN1VLaStpcXJtUy9VcGQ3dHAzWlJTeksvZ1l5OTBSLy9mQVl6M3ZtaHlqOXYzdUgxVFZVRjdlT1QrYmVNYnhQK2ExMmRCdTZTL0ZSTWJpc2pDV216OCtZcmxVWEhCLzVza3hNU1ZPNlFIWldJdWxwVjY2WGk2SzJZQlJWMTFJWTJTSXFyMFdhOGxrWTdLc0ZRMDg1cS9ibjliNzh2VTNUZXZYeC90eWVwYmg4WmN6VTBkU3ZEazhuUzlXUGhsK3AvTWxNZnRpSzB6U1A1UTNXdXpSSkVUWkVWODkvV0lObjluektvMXpBa0VzV2NzRGZrbm9oUmNzcnN0VlFZTlZTVmp1L3N3eW0vNXl5OHRMMFJ6aVE3clNJL1NNY2R3ZWU2RjZJcWZFVVZCYVJrV1JKMzBWaDYyMHg0UGlWMmtzMTVENFMvbjZ1eVVLa3laaVpOQnh4clNaYURSMzhhQUZ3SUZRaU1NM096NzBNM0RyQ1lGcndiaTZ5Yjd0U2UzdlY0TEpUZTFrVFlkWUx4MW8rWmpHMUdPQXlXTkJnMWVTcDk1c2p0bHhjM0Q0WU8yYXZzd3J2VFNBWWVmWW5oZG05MVFwalYyb0dCcG5pNks4bkVhRzFNdkNZWmF0bGloNjc5RExiY0VnUnlrZVJqQkFYaXo3N3kycmdwaFFVZGplc3dONStTN2lHRkhmYk1KRDUxTGs4RXJvamJpRm9LRk5VM1NYYWplV05QTmJ1YllzVFd4M2RWS3VpZmdRZTI5UnBLbjFobTc3VlpTOVg0YTcyZlhCNGhkTk1wbWdONnNDOHI3YXNLQ1dTTFJFOHJqbGZ3K3BIM2hpejQzaHpkZU1PSGVQa0RkTFdqMFdqa0lzckExdHJ6Z1pGU2V0bktyS1JMK29GUFhiTmpDSzI2Y29aay9hV01menV5UHRsWWNHN0J3QXJGb08xcHdOMThmSGl3akp1QkVXOFpXTDcrbGdwSHJBVEtJTFhVN2xhVXNpL25WK2VPNDVwM1k2WThHb3N6UmRlUzF5R1lmTHJPSWN0Tk1rZEJOU09nNVh4MTZZZDh1YXhRTFozLzdwL0dhbGM3WTQ5R3Zhc2YrekZWYVgzMnQydWlLNm9VekRrazJYMWVjeGV3YllQUDJQMk1PRmFBbGRQK1Mzdm5lakJyS2NyM3EyNTdVNHQ3NEUwbFovd1dkUHJ5NUw3VjRyTzMzbEpjZ2hnYmhsNkVlSHV2dTVjTG1mOHdLMzNrRDFIWjVYUHhuZ2VsSEQ4R1gwQ05ycnhEYWhNcm1WcWVmeFZnWndmWnFKQ0xnN0lBNk9QaGNrUlgvNlBCQXZBTUZmM2ppL0ZxN1FoSjZmS0xpNnc0NzZoNXZVRmRaTDRRQzJnME9JZ2ZWa213TDdUTHVhdHM0M0JxUFozSUhwNGFQUWY1KzdJQ3pEV2FqTHh3ZEVFSUp0OFFrYVNzRlVvUm1FaU5Kc0wvcFBxRjJ5cG1XMjJyVW5RZHIydFJWV0lGbHFhcFM4dkpKZVlKR280TW0yV29iWUFqTlJLZlFRQUszaWFYZDU1VEdialU1b2RYVlp6UDBDcDRmRXZ6M3B3TG1TRkFsQVo5a2dWUVhGelBMN3V4MHQ0aE1ZK2lETktZMy9zUjVLcWc0OFE3WUZBQmw1ZmhMYjEwakVSaGdpcENUTDNvSXRFSVY4YUxWeGpDRlUzK2hSNFhpcW9lbjVzY2RVVFgwTUpxa21VQmJjbVRWdzFYVlNyUHAvZ1Y0WERnVkpOQ1hhWW1ZOVI4aEJNa1RZeXhSeDFUNGw1d2NlaGZHOWRKam1lQkpkSkp2dkwrcHNmQ2NIdnVvMzl6emtKRW5ObXJqeUlXd2c0RlBPV3Nud2NBMGhQZWh3d1ZSYXRBcWJYNVI4RTBXNnU4RXhJS1l4YnFwSHNkSFNCTzJsek9NRmtJQzJnMHl5bk9mb3p4aW1IdWQ4a24yY1VvQWRLWkpFOFM3OVBid2Y4QzFRQUtoSVpHOHBBZ25HUVluaWllWHFjVjdzd200cDA1MFZUblBKMlNzeTFQZUxyMnhNdFJlZTVHQThyUFJqbHpXSlQ1b3dpdERuTU5GMDZKaTRjL2ZCWVR3OXJ1ZjcySS9ESGRQVnJwcFRDbjJWOEx3ai8rQ0lmdHdBYU1RM2g1aGljdGJWd0htWUhCTEhwckY0dlYyVHF4TytjN0h4R3dPZ0FHMkFwRldsQ3ZBWFU5WUsycGRlU1FRVmpXVVpjbkVlNG1pU0tSK1JHUEtCTENzdmFsS0w4ZlNPVFFaSExCay85YmVRWkVjTThQWElhNEJkbjhsVlFmNmdvbXBZazNPS0lURlRVaVlLSitVY1B4RnF6NDNYenpQYXd2am9RMjFmMWR0aGFHaDNQN1FPa2dGWVJNQWJnY0lNQVl2ZmU4OTI0dVFOaXBJd0llQzAyeFhDZ05ObndBQW9TTWJ4V0NiemQvSUdOZzNyeENUdEFBQXlTYTByWmhuU01oMW1SK2VJT2hlNy9hUGhlc2N0ano2R3l1WmQ2M1VxY3JPODJMeFlDZkJZM3RkOFhuNW05US9PaTVYT2hUQ1JBTVk1QmxpekpZYkpZUytMVWhkWXFtK0ZuZFJyaWxrcGdlVFRlYThKVzFZbTZhSHFZVVdEQW1pb0RxSmQ5aFcrdjd5WlRGWm1PbytwN1kwUDNYYWlvYmlGSmltMG5FT3JHTUFYK0lBRVRwRS9waDFnTVorN25tbVlJNzdkbWJITjQ2L0Z1bTZwaEx5TGFxbi9ySHp1QURZN0VNQnJFQlJNQnFPM2t2Vmk3U05mWms5bllRdVlnamJzOHFZdjZMT3hCRlV2UXdiSmE1SE5jNFJaQlYxOUNrRDV6c3JZcUUyZG5jbGtmSHV4VGU4TEdQaE9WVDRaYVFCaTBIOWU2dk56cENaMmtKUTBUKzZSVDNGMlN6ZC9PdVhKc05lWGs0RHEyd0VEcExZV3VDaFM2MjVQUmU1MUtEeWFscEdmb3pzVzBxbllycFhTMXhlaXhmSVd6bXpvYUdGenZDUTR2V2Fvd2tEMXpoU0V0VVRqZFhyODB6OTBMYnV3UDd3aTJ6NWFnSVl4OEdBUzlId3MyRUhKdGxxYzcxYUY3ZnFuVmdyRzJSL2N4UTg2R1ZIaHk3WWRaUUFURUtnWFNBckdEcnRtSU1TL0h0T21LdERWZm5PZW9ORzQ2UWNickJZbFV2SEFnaHlFUU5wZmErZmlOa0FBTE9OMjJYQlRuQXkzdXJPVk1RZ1hVa3Q1SFJzazNhM2JiSlFubUUwR2ltNjBCeUw4YTRWeHFXM211UDBUamRmWERFbHhIU1RUbHZUTk53K0pWVjExanN3MCtPcHdjWjQxS0wwa3lpVXM4NXlZMFBRcTdldVVLUFZCNWdxem9pUUR6aTNPZkUzWVJlUzV4WVFnN2NkeWtSYys1VVB5NUxBd3FxZzJLYXRoREJ0ZDlHbkJFcG1CUEsremwzUTFKbFdMcURKam5PcWdNS2JlUjI3VnZBSHdQcFNJWGxvWlZndUUzZkhza3NJQjBhWUNIYWFqL1BwTzQ0Y3ltbmVIVmJtS3hSMENqNGtrMnZmQnVOU1QrMnZpQy83Z3h2cHgzeFI1a0dMbWFSZTZ6c1FuRjVPQkpPYTFhalo2YlhOV3FzM2RETEdmTUFsaERWSDBUZkl0R1I0a3ZpSUVLNXNJVDJsbjcrd3MzQnlidm5EbGZBcjB6MmdPN0NsenZCVFRnbW1hSCt3NUNTRHVmUkczRFo3NmtRRlIyWkg4eFc1SS9Iczl5ODY5SmhScmhkTzU1bmxUb25BcXNLZHg1Mks5bkFTVUNBMXl5WlZXblRZUkE2bUxMcE5MRms5ZVVTd1EvV1QxUURMUVFsNVc3UTFBdEtFcVcwZE1nRVh1S2xGU1FSdUFvU3l1cTZ0ellKUTdKNXBkSmg2V3RCd0RBbmUzaUFibWhONEhibDRaUkpxaStUdTZmb3JGWjduY0VUeTNkclNqS0YrY0pXaWlrcDVzRnZIanhUbEMzbldwWjBCUSs0dm83emR6R0s1bG52Ym4ybnN3cWFIMUlLaUJGbkZSZ01sbUFCQTZWcjN5SWlsbld2bUR4N0VMNDQxOHVQWXk4a0NIQWhCdW5GbE1Oem5OQ1NSUHlYWGU4VXRkam5wTU8vU043N1ZYWDNINWVGZ2x0V2R4WEZmb0RoY2Z4R0NINWVicERPbVNHejdNYWtmR2k2SzNpdStEOHNFTThaQUdrZzd1elVGbEtXN0dyRkoxQ3FUK2dHNUViZ0JzZ0JyaHJXRTdnbW5ZenNoUUswR2MvRjRsQWFxU0hQRHJzL2gxcXFvQ1BMblo5UHZCQzM3clFlQUEzRU5Cc2owWmVzd3plMUxGWWFIQ1VaV0k4ZE45NXFXR0M1Tlk5QllTU2srSXdVVS9MQmJiK05lSS9GY2pCOGdsQTNXV1JjdjJyNnZvd3FQZDJzWnowMGRUMk8xcTBnb25tdXIyODFoQXhTbE0wNGNYbk1YaUk0WGtlZ1FEa2JkZ1dyK3NoWTJCYUY2TTErRkxwNFE3S1dwb1cyRzMyR0pDbW9XVjlHa1FXbW4xaGMya3VLSnEvVVUrbzVxdFNsTE1IVkFlN0FPMktFNndGMm1GTFg5RVU1WkJQbDZpSE1tQ1NCWUFNRDAxSFJVYVZEd0N4RlZGUkNDQ3cvMzNIazh5Q3ozU0JnRWswNEdxVGU0V2k1ckxhWmFZT0FnWHN3RGdiWm1RSTFYeHBEMnBDbTlEUm5SWVlrQmpaMmpaKzY1dzlacjFvRGFCL1N3d0hPTFpWSitCMUJZRXBycm5CTE12Njg2RWxBbGw2WWpLWmx6cGVuMDIyU3E5TDNqd3gyNkh1bFFmRmRFZ0VDelkxWjJaLy9hRGE3TmV1QklSQkVyOU5PeEpVTEx3dk9LMy81MjdVSDNROE1sZVFPbTJkYVdiRWY0d2U3UTZ6OWpaWFh1cUt6TW16eDJROHdTYXdZaTlMMzY0bXUrTzJNZllGV00zSlZvU1lLQVZtbWt2cFFXc2VCZ1dlMHNWbnVXREF6U0xCNnZ0K0tLOEtPcEd5bUJIaTVKMU9nb2dFWUt2dVpWWHpZZ20xMitJSDNIaWhyQXcwejkveFRMRjRZdmpIZk55Y0swVVlkMTBUSkVQUjBGWFlxYzZpTnZGL09rWU5RRzVwNVdNNXRacnBWNlNNMS85c1BsR2ZlRjZhWTE4S1czQmNodGcyWlYyZ2V4aWRGU0JHbXdSNUJTbEZHRHBwY0Ivd0tPUkxPVFpra1F4WDE2TDVWaGNQb1ovdHNJcG9hQmhaemJiRzNPZnBXV3NPdmJ4VHBQQ2N2RUoxZUZTV3U0UGxMM0hOaUZjeWsrbVhkN0ZxalFyYjZFdWpCWGtoUTJXOXYxTlA1SndWd25JbmpsM1ZjZFR4UCtYN1Y4ZmJDRFdVK0FGbXRBVThVMXhNNkJRcWR4SnZIelBwOHZIaFhFcE1WcElWQ2E1VE9PdEkrM2RSRFZEWDVRaGdiaWFOaGdMKzFVTjJpeE9YL2svUDBNSXcxTFovU3c0Y0pCZW0yQVJpTHBEQ2ZDS3FUMzE1SjJiSTNHWW16dGFkcDR6SFdxaU5kWUNtMXpoV0xvSHR1SjFub1cza0p3L2xMVmZyek9JekJQVlk1czgwRDR0QXNJQ2JsZDZlNEtRSUlVMFZDek5jblZJZCtGdk1wOENzSlk3RVZydEpBclhMNzk0YXgzdkZwclFUb0puWElXWEJrTFNMMktLaWIwekRTUnZjSDU0TzlReFhZTmZZNkx5TDd5UVF1YndFTWk4bk43YVg4bkxQdFkrcW1ORVlCUjk1WGgvb1BEMzJhbjlYaktXSWlPSEI2Umwwa2ZPRFdWUVRHWnJFbytRbVUwQys0Q3JVaXZGQXlNd1N4Y2UvSTVOVmlKQjRUQWp3cnJTSVNZam5IY0VIeFJWbTRRc2sxc0FkRE4rZ09LcXg2UkRISyt6SXRlRkpVMVh3Y3BZcnhWdDZPVENlTXF4cThYRzZzQXVCNUpmQnZvaVdxeFhSV2pySmFhYmpXNTJITFhJTHlDZHhpQWNUaVMrcTVpRFV0d1FxZk1EM1ZSZUNXN095SDFyeVJYOHhOV1RRR2R2TUlSVkVrb09JaVVhajllMmZ0OGtsN3VXdDhlbFBMdnBZRnBTK0c1WlI4RHdwd2dxRTJyTlBjZVJEbjFsRmlTUUE1Ykk5WG9NdmtEbnVEVHlCSUgxTW1vY0poUllzN2VieElFOXdMcWhscUZSR0tVampEK1pBZ3VIYUVnUjVpVE1JR0VKazA4Q3I1OHl2N3Q1NmhJVi9PbWU3dzJ3NFdBT1dpU0x3K0YwZnNoK0RLVVFYckEvQ05UbEhncFVSL1cwWUxEaWxoQTBnS1RISGw5Wm9rVENYbEU5V1VTZFAwYWZZMm9lUE90MlI2b0cwSjJ1QVVJK29GM25TTjRHeWNrWlpmS1NJUFVSWktvQ0UwRG9wbzJPc0ZMWEtHTUFYVnRFeHNsc3RyOEtCekQ4UGhXTkl2WEI5b2xaTmN0OU1MZGIyQlozcnU2a2dCRGduWEV1Q3VLdW5lNTE1MGpYNHhiVnR2cUVGcldEV3hpSG9TYUZ2ZWdKdE5YWVlsS21UajJRd3YxajBiaU9mdnN0RXd0azZ6eGdKd1dMV01BcHphRlNyR21SRElkWlRtN29MbTR2eEF0V241RHFEUWozcjJPTEFDZGs0aEpXYk5PY01hSDhRd09Fb1ZmcU9NTjlPOHRiTGZFWVBpOFp0alZmeUdURWYweVhYOEtJWU5WWEZ3QzBxdVNvajNaR09vL254enl1ak12NTVSdzBrQi91a09McTRHUTZWQnRacmIwSnpwODN0SU5sNGxLL0V2NWwzYlp4WWJoMG10dU5IUlYramJaUFlZTG1scmJxNnVCRWhCbGRpSGdKWC9yZEtUSXRjRnh3YXV4aVZaUlpnbjNPbEdNZ1M4c24wejArVURRb2xrSUpBMUp1QUlOU3d4WUUrd0tJVk5WU3hWelpMZ1JLRDVMVGRJeUMxb2lSdFBaZkZKSEkvVlI0MVYzY1pyMTNyY1FHOUd5S0lsUkdxaHY1SFoyc0g0UEJHQ3Q1blhXUlpTb0ExdlJGRktINm5NdXlOTTZlc3ZCUEh2eXlKWFFKRkszN1VKN0IzcG9xYlVMZ2xXNU9MOVU4UlczaGVqaWFTWk5ZTFp5dVhOc1F2ZHdwT1d6TUNXRERuSlYvM1ptQjB1MFI4Mlh2dmpyNHUzdy9PdjlmeVZwQzB3NU1oOEFXYUR0akNsYzVieWg3VXlnNlFqVU5HZ1lSaWxEUVBuaUV4bGxMWWI3eERQeFJ1d1BuZGtEV0Fxb0dqSUdnU1NZYUdRdWcyQzArRjdsMHR0M1VTVFYwU0tWV1oyZTlCQXN1MURVOVhRaW10cTk2T1I4cXVBY29XcjZvZkw2dDgxRXMxMTAvVlNJeFExejVISUlXcUtLTm9vaGIvUWZsN1VYQTc4cjlYOE5NbS9TVnBIMnNTRkc2ZDNNeTZQU05YeDZ6ei8vYjYzdDdTUlFQS1NnemNKUDVoYlN6MWFjT21lNEdMQ05veG96YUFPUmlOQ2RNaDNLaHZ5cTFFaFM4TmZ1bGxkYWh5OExhRlFzSnVpVXZ6OU53N2hOK254YStUUCs0cSt1MGxkVGp5ZXNkdW45dDlqSFo0SS9qQ0FEV2lhcis3UkVUVFcxSUFjNUhqaWgvSXF3UlQvTzhDdFI0SC9GUnl5Y2k5NUZjdkZZdFNZemRyN1hzaWs3QkdQQ05QS0JCMVJTYVVsTXQ4UTI0ak51b1FnNVhGRjhtYnRWOXNFWFhBN3NUYWd0Z3VRTURET1cvaWdLN0pDWXZFVEpaaVBsYWljZUcvUEVZamM4eVBLU2YzTXl1dkRnRWwxOTQ5Zjh6TW1WbzNBSTNYZW5XcWw5clpacnZEV0g3MmQrR3FvUHRwWlRqeC8zZDJEdGpiVCttclM3ZGRsNjFibmVUODFsK3NGT3FjUUhTL3Q1Tk5aK2w5QlRQSk5mUDkweW8rUXl4cUhSa3NsR2VkR1VCOUNnbGpzK1NWQUJRZHQyRWFYekR5ckpzczJ6WjVwMkJwRENsanRUSUZtQlVsRmJnUko1RWlFM1ppeGlycy9JNXJIQlUwdWVvZUtxTVVpOVUxK2NxeDZpK2I4dVFTYnA3QkZ1a3h5ZG4rMVlGZ21pbmJtV0JRclFjQnNGalFWcERORkdkNjZUYVI2SXRKSFJwYlg1MFI4aVQybVdjTG5jZnVuWCs3UFkzejhCNlh1bDVMSTlZVUlmZk14Wnp3R1dROFFGV2s1WkFhaHVxcEszeUdXTzJpYXFKQWlhb1RKOXVxRkV1aTlxWkRHRmpqRHQ5ZWJncUxLT09CcDNpd2FRM0h1eHQwQlpqbEpva2xsMm43ajZicVg3K3dTdnJWVkFtYXYzbkcreEhqNUo5ckc5azY0WmR4WTJKSWU1UjJOWDd5QW8zaGdGVm9XS0VrK2ZWdkZZVlE2MFlXMHd5eW1BNXNwV3NaQnQ2eGVJVU5xK1JyOUVVVFVSVmp0VXRBWjlnTStXZEtONGNxeVZGbkY3TFZocDdoQkkzS2lsTk9VQmFqZWthQXpUMncwcXNGRGNXQlZjWTR4ditZQW1DdkkyRmordURlbG02eTFLTGZFR1l4c2gvejRjSnJCVlpwRUJzNVR4L1VjOEtwN1NEYW5JS2d5TWlIS3VYY0NLR3J4VVljT0hXNDRrUWw2M1NLalRNSE1Ia3hkZjJRV2crN3g4ejZFVFlya2xGbm9odWlhQUNjVnZVdldhS1BhZ0lhNW5rTEFwKzJZRkVYbjdmaitzaDJVMjdTZGhUVU5PRG5yUGxCaHRyR3hzUXpSV1g1UXlYYUVhY3EwR1YvVUMvRStGVVVYQ3d5a1N5RmlUS1cxREF6VmRURit2cGNIQWVSU0VCTkQ0U0tkRlF3WEx2a3lDOWo1R3NIVTVkdCtGN0RMVDdkVHo4VU96Q0N5WkhuaUVEek1yMjhsNE1kazNqczFSbWlGZlVTOXZLRlBCK1BDbnpWRkdmMVlxTHZBanpSMmVtMVBML2t1ekNMalQ3QVpZK2h4RjNNb2o3bVdSaWlTYUhQREtNUWdoaVBGMmpZQjN2a0VPZ0ppS3EwcVA5V0JDWHhVOU80NStUMjEyQ0IwTWExL0hIUWJ0bE0xK205OXVldXJZRTAvcytxMFJYWEFKV1JkYUFybDA0d1FXOW8xbFlwajY3MUZoMFdBUWplMGhHRnQzT2tLREJHcERxSHBKWXhQT3BtL3VSTzErN0Rmc1FhVDJZeTM3K3VhM01xOWgwbVZtVTNrZXV3K1VpOC83ZVp3RDlZR05LR0Q5ZG5JUjdmZlA3WXB6bC9PVGdFK09RR2M0ZlgwUjZNanFxN0tSWDNzNzJTYXZ6T20zcFU0dWlyLzlKSmpqbXY1aXl1QWplNUJKZ0htRUJPZTBTaERGMUNUbWxVaHpHcXRzYVVwUGIzZHl4Z3FmNFZ2cVRKbHBxSnJjWEFPK0xobGdzYUxxc1d3My80WFhGN2ZZQ3JWNlY1a09HSWtzUHFmR1dvKzI3ZFBpTHc3eGwwSmFUQ2YyMHJUYjVsZkh2WTBGK1o3V1FrRGU5WnZZSVlCODRuV01RQm91NVo5cGlDbVZSby84RmJPOFF5ODFMcTVaeXl2TE1Oclp4SXNoRm9hR1NFK3psWlUvcW92bGlYa2JMQmdSQm1NV0cyeGdOTTFDbjBiZkhpL01kRXo1NDJYVkRjZHlScDVId1BOT0lEUmNNeFZyNzJMdHZnS05CbWNCNkVLcXpKRmxFYXRYc3htM09XcGRLWmpRa3YxYWloSVhyKzBPYWtjQ1F0RmVZcnd3UytPZ2NwUlh5QllzdHRpaWhMU2ZFVmNQRmRyNVJWVHNtMGRDOUZRY0ZKQmFMV3lrUjhCZVFnUjdQRitkQlNvbzVjNHBWOUtoOTR2Z2hET3M4OWlrQ0Z1WjNpNk5ZbVI3Q0x6bjRqMUgwbjBEbjRXdUtUSkFKVEFEME5KU1oxUGFoaFVPdHhnS1NpbkVySWZCMDMybnR2dlVLUHJvNU4rMFBhMTk0VE1IdWRhQXZySS9YUyt3Rm9GZWp5NU9KMEFaVmUxcmdYUUZwRmFUY2N0SEdOTXFLSW1BZzNkdHZtbFZoYnJEWkxyMlZRVzgrRW5kLzRkR0VCQUthK0p2aHpRVlhUYU1SWUYvejVtbWtZOXg5Y2cvdno0YUpLbFJRMkVYbG90Q29ycGU0VG0yclRPeGl6NUZ3UVJCL3FpSVJHWTRkWGF3MTlLQ3Vxc2V4Q0hzS2FEU1V0RlJJNk1KVkt0ZWNYbWVWWGYrQWMwNzNDZENQNTF2aU5kcm15amVPQUU1U25xQ1BZbS9ZQXF4Sy8vcW9USkc1VEVZRFFEVS9WcWdLRktVUEZ6Y1ZiY1lYUjlIbnZib3RidjlrZ3JGZmk5UFRQTXRseWpLczBlbE5kays3aFBqTVpPQUYyQ0tRQldWUldUQVE4OHRFc3QwSlhiSGRQUmNGbnFUbE9zN3IyLzIrVTJDblZrdFd6WUFsZ0greStCYkZENlVOTE9KZEpnZ0x2VnRSRjc2NGtkaG9raGM2U0RBZER6djFDTkI5b0RBUm5RRHROcmN5SExJb255UTU1K2FqRFlHalRxWUh0TEJxb0VSZ0ZkcnJ5MTMvZzkvZVlmc0xaWFhwV3Vra1kvdUpja0ZIb2NGZ3Q3ZGt3VWFCTTNtYmFDN2NqNnpIS3pKbGlsbUR5NE1vTE9YeXRLVzZQS1RBSjVFdnBOL2VaQ0t1azF1TG9jNVU2eGdKUnVYLzJLVEJUcFJpMzZsOVU3R0dXSGNSekNiV2t3Rkxuc05xQVpoYXVub09FeXJPT1E0NTIwTGhxMm5wSWdwcTQxWUt1Q2pkd1hTc1dXaEJIZHk5OTRzNTIzVkR2UlpYaTdCMEJmYXZaWHdTZDdpdGZ4amw3RlJEcmdYUmhVajhld3F3NFZhdFZQMVRRRExBMUVmVmZJenRJVGIwTHAwdXBhSEt3WDdOU0pCdCtXQ1pDSk9yb2V4WFJjbWhsa0JqdHg0cnRhZzUwenE1VkorNFhGckVna0VkSHUxZ3hXc21ScllITHl3ZllNMFZQNFJqNUd1QVQvQnEwMFRTZy9lU2FjdSswbXRkUERIejhGRmg0SzFqQ3M4RzN3NlpPRFJOQ2lSR3kvWmwzREJKRHhSbWpvemViSENmU2ZZeGJabUpVb1BwMk56VnpFdTNINVQ5TnJWbTJ2Rjh3Y0pOS01hWnl1aEwxdmViM0hvekRkeThGTVUxemxER3FJNlRyZFJHYm93cnVMV3dybGYvVVVqT3dteUYyYUdlWXNhVU9hSmxGYnVjU2RrYmtjSXF5WGlZRTV0L0VYSDZjMzFvb0tSMUNxRGlLR2FXV2JBelR2ZTdDbldXbmQ3eWVsQXBXUVNNZ1NpMlZMZnp3NTVMOGVCdHZQU0F4bUd0VHBQY3dEb0sybCtQaUZiTXZ6VklTeFBVN29LSWhDd0Z4OWpsaXdEZS94cWtvRUkxZVFTWkNKb0pzZHJCU2xOTFJ6MFN4ZTlMMFFndnV2aUZuZEpLbWlVUXR4YmwyL1hRcjVqU2cvbmhRb1BrY0xyUkxRVmdCYytVRWdHYmdhcHBVcXpEZ1o4TGNEeVBXMENteS9zNDlpQThZZk1hbVI1b3NETmFzMU9HeFVqN3FvUjhrWE52TEdYcEJjZXlQdzhMWUdBU1prUlB6N2w2ZmUrenFUR1lGaFpvRlNlWXhHaVR0NzVFb0tWWm1GRmQ2OHNzT0RiSjFkUVhGOFFBN0FOeHlROE9vQ09NWDdLRjNyTFpMc0JLRVFWaExXN0JxVCtPSlhQUlV0ZUVqWE9nMXRvTTVJUHlVUE1kSDB2NVIycGxyMEJYMXJEUEJHUHpWTHBXZzhVSnZUejNLd3VVS3BpcHg1bGZzMldRQUlYd3lmNzJ4Vnc2NC9DNDFFcVdET0ovTUtxdFFZQlg1cnYyNk5QTFc5S3V4bTFUMmV3YWZzTkFGaWh0S2gwRFF5RDYxTkZza3NQdjd2TTdRd05BL2dOK0xpTHhuSG5TRlhpVTdoYkFlSGdPcVRwQXBTVGh5S1JjRDdXY09LN0VURFBPcXBWb2syUzVvM0VDbElhR2JJYTNTMjFWVXNUNm1XYURHd09tVFk2NEU5TlNZd3c5RnNVV0JUU00wRjdyUCsvWDkzRUNZNjR1VVI0ZGEzWGtpTVNVTVBFTFBNUTRFNGpSdzJaTTZiYkxwRHhQVW52a2krdG4xN2M4RTJMODhPQkNHYlpoRWJvbDhkeDZ1YTVNb0UrYnE5bWZZd1dLU2FPcmZhSktoTXlTN1FKMDJEcnBzN2hrVEdPR0JLV2RMcGJlYWhJQlFLeXVPbktwZHhGZWM5Slhja0F6YVZJSWk5KzB2ai9ad243YllVZjlxUFpza3haM0MwcW8vS1doazE2R0lzcTJVV09MNzRielFRaG80TUtJbUVRYkEvcUZ4dGJCOVRMSzV2S2FBcm9qYkFiR01OZTVhV3c4bE5HVGNBaC9jbUdodDJRcTM5Z0ZhTHRZYzVMWFJpNnZDYzhEMDZtUUMvSU1OWFlScTF1b2lROUI0SEFraDB0RkNsWFcwL1hhMVpyYUxJSTJPSGN4UDlDalFlVWNjb1FuejB4SmFMcC8vZXhmYlJoR2o1M2p0K3RJWGxOSFZQdllaa2Y4UWNVc1ZydlBmYkkxemFtcXpobDBhUExnRXpYcWdSMXEzZWJUL3FBYlVNUUpxZXNRbHp4ZlNFazVGK05pbzNzZU8xY0lXQkJlcHpuVVlhb3R2TEpaUW9GcEI1SCt0QndRS2NxcWpjeklYanF1TStnK2hvK0ZFMTF5VHYyWHl1Mnd3NUlVNGZXRE00QU9hdGt2dEV1M01EbS9WY2NMcktBUi9UVk9FU3NlN2ZaTlJrR1NuQnFTQkk2djY4eE1QVTRJdlFTSTAzblhSbUZaVXFVQ2pTYkc5Q2dyRmNvRkgwVDRST2tTdHYrQzgweGcxMmJ0Q3dvdzVpOFBKb1JrMzJ1bzdxUHF4VGVUb1o2NkJCTEFySXpDOXBXTXczdFEwbXQyejhmM0VGcnEra0JCZmJhR2VZYW1ZWDIxclVxVEFKcFlhelFBM3NlOFNXcXJ2Uk8wUllzYXZVakNaa0ttdkxQQ1NCbnFNYm04QktodHRiU0NBNHhKclV1RDhTVlVHN0NWL1Mwc2hUQ1FOYk1kcUhqMW1WcUV4UEVhTnV1Z292dnRPa3BlY1g3SUxqZXE1Z3VrM0lqZFJVTWNpOWRiRTVhTGhVbUJETjB5OUF4SXJtNnVSM2QwbkFSR2R0bFNWVGtSZ1FnNGtqQ1d4b1dJNXBTRldNKzV4RW12aGdoWEdNTlBXMTdVdUJUdGpFUnl2WUU0dGxkM3VQa2g2bmJkZ0JocHVtR2hxUHNFUGNjcDE1NytXbFRmSE5EalkyMzBOVmM1MkFidlc2V2R4bHExOXNQU0Uvamh5eHUrV2ZOalJ4c0JHWXJQMW5Rd1dBNDVMWW80WjFYVFRhVFpvWjFHMUU0SkNRZFlDYVlFZjZPMmp6MkZNYlgyNUI0aTNTckIwU0lwZW9HN2FIRnF1YkhqcmtKMk5oSG5aMG5YcDlSRnVwV1NBckJMOEREVmZvZHFKYWlleUNmMENlUmtZQ0lqbUhPeXNLa2NDdGVWemNZYWx0clhJK1JPSUlmSjFEYUpsUzJOa1dhQVFLUEtscGJxU3ZPZ1lyTWpDQmVZcGY2dEFzUm9sbGZBR3ExZG0yaWF5Q3JNSjFHOGdiZDFMTDhkeFlDbzJvakhJeFNqMzdWcU96RU90YVk0MWRWaGlwY0R4dGxydFFiSk1pOXF6Y0NXcTVDaG51ZEJsbG1XcFoyaUhCcm9lSU9wbW1URllLeER3bW9NcHZhWXRJSVBqSGNHK2h2M091MkZhWE1qWVQ2Z1lHbUMxRjlZMElNSEFpWDFqbnEyaFlkaWRlUUlkL05EUXhvZkJLMzd6cVJyZTdXajB2anJsa3dOUk9WSmFET2VZcHZnSy9WVGVpbmFDZDE5bng2VzB2SlM2OHd4djJZNGxjUWMwbGZMZURDKzlnaUcyQjJNVDdRS09ET0Vha1VrNTdmSEZ5UDBJTEdodGJMOFJIRW1FdEVpbk9wNzNTa2VKVTkvRER5bVRidFRvdHNRWk5JanJoWXdzTHQzNis2ZENST1QyaHpYekZseHJacmxIQXhBR3N6T3JNcVk0c1NYOEU3SDk1bllvL1dIOFVOaXgwRFp5UFF0MWFzU25TeWUwa1RQemNkYXBXMExLTWx0UzBtTEZCeGZWeVh5S3R5dzdhcmQ1MGRtZS9tYUZXc3R4TFJLZTlzYWtJSG9JT245K1l6a0p6a0tucG9WS1d6THVzT21HOEpXeWtualhJdjBrdjJnamxHdDBQd1BWdFFEMGZNQTNNbWtUclVHa3Bla3NNY2E1NkhGTHFzbTVXYlVYMUkxeHZJVCt4Y0pkc2dxQmJjLzRQVGQ2ekozVmxVbE8rMk5IdTZjRWhLYk9oTXBGZkVlWFNiN01HODVBUEozZC92eWVBc2tmZ3dmblNYbndiUmtmTFhJQy9JN3ltRXhsci8xdUJtZ0VtMkQzTUt6R3FvLzJkOTlTTDhPczRTYThGejNBZ2crVGFKYmhRVXZRRzVZR2Z6Nnk1RHRQRStBUngwRGFmQzJEVkF3eCt4L2VwTE1GeXRkcEtwMkZ0aXgxUWc5TFl3ZnJhUWN5OWRsYUUwVnJCZUQyaWJJN0FJTWs5Q295c1B3UHhqZzNhUW1uUndLTHFWZ1VWdHF0NFdYaXltbUk0K0VHbHYxMXM1MnpWWVc2ekVxSzdQZGJLOHI0b0pieEZuU2JDUnRTb3BtNGhtdXJycnJaQzFLdXVTT3J0bUVyeDIyM3Z3UENEYnE1MWdkMkNQOFdDcUp4U2grZVZuNjJYT05LWDByUkh3Z1dobEtIeW1WejhqTUJ6Rkp5WXkza283dVhkL2dGQUxSeXIrTUVIZUlTZ0dqaU81MGpBVjVtWGpUQXA3R1NuV3RKRmQrWi9uQVBSc21JRmNVN3Jnbk5PZnFIVDNtWld4UlY0VjNzSHN4d1YrV29XcXhpaWJJQTExSlp0UGxzN1p4ZmYxWHh1YWZ5cUdKLzk2QU9ENVVGRmcvbVIrUjQ3UDE5WkpBYWhyeUJGZk5vS3BNbFVKc1kzVUVtdjJLZzRGZ3VpbjczKys3WUZPdGhvVCtCZW5sSmthem02NzdnQjUyYStkVFNKTXp4K1VWSFlUeU1Oejdib2p4Y3NCdGFWL3BWUWk2RmZGd21MdzFKOFY0dlZjOUJlZGhQWmw0Z3Z0T0hyb2I3R0g0NmtueHFvWlZVZnlyZDNmdmhuN2pJSG9qVys0ZTdHK1MwbnlQUnN5RFpyM2lqUDhtMTlodmc2MDZ1ZklDZmg5bnFEdTZ0a1hMKy9XS2x2eW5Mc203dWRMWnJGakVwUEFjMlJRWWVjZUhPRVlpNVNVeXBQckpqVnlOZUFtbS9PdmJRWXJRa3dOOEJqS3NwRDN1U3kwVWpRS2VLcXFrUW5BdGVIczEzQ0xFWnB2T0RZT04zUk9hUlVIdG8ybkpaNTEvaC9PbHVKdngxQktySGMzLzV5MlpuZDg4SlkvYlMyM3c2TXJ5RUtxdmQ4MS9taG1EdHBxNGxiRFRuQ0pDZi9Lc1UxSTJSRVhhSW1UK3g4Z0ZZNUhBYWtNYUhONlRvbkVVdEltM0cxWGRMdWdhbHlCMVhvT0lVQlRaR29NSzJFZkRjWVJ6cS82bzNMNzUvS1Bwa3FEa3FRVnUrZkdKSUJ1WVhpYWR4Y0FpYWhzajFjWUNSY1c4TFVHZUhPZDlzTFN3aW9zaDZTR0ZzSXltVGxaNnBQbGpkMXNqSHFOa1dmbFpPaXRmc1VUTUxQOHJBMHRyYTlzajQ0TXZZU21YWnF2U25zNExyb3NGTDc1MSsvYTNOTGVZV3hWUHU3SHV5ZFlTTmR6RDcrVzcvQzdJSkkyU2ppcDhGVmluOGQ3dDVrckpORlltZExUMjdjdmdoYzJRc0JhZHQ4UHQrVHZMUjBQcjFlNDArc0wxYndteDBnQXRseWpvTXIwUVhYNkFRRndUeUxhRmd1NG4rZGduRlFtdWh3cHNlVHNDZ2xGQXhONFZCZDhjZ1cxQVVIUEYwdWJwZnJwbS9tV2pJTFNLTjlzT0FoWnFZdVp2QUpaczBWWTcrYXBkRmVZNzEzYUQ4Q2lSdTFyVng2N0ZtWlF6Y2tBdzJCNk05V2wvUWRSdmdWWkNYYWd4MFUvMXhEUkw1OXVWUGovZkdDMytGcUk4ZkJ0RGlxU2RYNUluTDBHdTNmRXpWU0F3cGcvVjl0b1M2UjVvUlpGZkNlaEI3Y3ZEaEN2MzZFdUE1cVZWNHljMXp0NHFIUStieFlZN0F6RjlxYXNZWmk0N0Zyd09qdGtpR2VoeEtKLzh5TndqQjA3Wmp3V3RvV0M2bzhieDJhb2dBN1Q4YUF5cmtCODNyRlJ0Rm5zamxDV3cyc2kvMDgza29mejV3VjVZclAxVUxhM3lLelQ5Njl3dDVMYUd1UTFrQkFDTGliT0xzR0xTeXVBNG5BNE5pcThKc2JESDZYYW5IVmZ0YzVjVG9FbVFJS3M5S0VpdlhhZUJhMS8zcUxvZXBZUExTVWhMK01ibm9HbW5oVFJxbTd3NzBudkhicFlrZ0F4cXV1NnZhclhkTDgrNWprandPaUtrdHc0ZDFNSzBnbEk5azQvaVV4Vyt3eVhQcXpFWnA0SWpLL1F2Y3IrajJFVkZNbHpVNWNJN2NPdFFNeHkxMHZJakZoSXE4cldkSVZGT21EUHFmSUhMQjM0NGZsTVl2QzQrcE1sNENCK0ttWXhHOFE1elRaZTZHNUV1Q3hsSGZUNXVFM0ZIdWQzTnhZSmh3Ylo5SllvTDQrby9XYWJUMXpnb3hEOW81Tjg2MUxjVzFIZmVEZWFjb01qZUcyTUpBdDdMQlpwK3ViY1M3YmxHNkZsUk9MaWZPWjlmcVlqU3N5SFhRNm5OWS9hV2RZTlU1b3JvcnpVcUhvcUxpeHZFMDYvRy9IRm1LZ3ltVTZWNXpySDZDNFdBOGZ3Q0FTaEFOUkZTdkthODlSdFVRMjVsVzJldG9nN05uUmhldThsNGN6cXNKcnhXVzk1SlV4WnVjck01OGZwcVNaMEo2MTJGb0dIK3FIUTF1RjBCZ2NQa0x6dUh5Sm1OWUpIcFRKMkhtQjdDUFRSUDF3SUkrVTFZNTBjTUs1Tnk3ME5OUm9CKzFBMXl4M3V2QUhDSGJ0di9HUDJBUytmaHVsR0wvNHp1SGdxSEZYbFZTcm1BSzZFbXdWTmVJUDhBclJuK01KYmh0SmVQYWZhaDk0Tnh3KytOcC9ZTW1XNC9BejN2UFlEMHhCRm52aGpkUm1majZ4b2UwUVFmL0VHVFVtZGlWRy92MkJ0eUxNc0FuakNGVkR5NDFseDJlUHNPTlRnalQ0alhsM1FQaVozcm9ha2tIejd4Um40ajRaQ3plcjYvUThxd2NEc3diZTBXUEp2Y0ovTHFPSndWSW02UUZlVmU3V3luKzJYdysyOElMMmxEQi9uM1VIMnZSSlpBK1MyekVldWJBeU9PVUY1TXIzZFBaL0JVQktWYmxnMkVYR1dsNWVuNldUZ0ZQSjNuY3pkdkRlQnFyK1k0QmRWd3hGYUZXcnh2ZmZsbTdheHNsVTN4VzZuNnRMYU43SzZRbzlydjFTcEp5ZXdxMGZGWVFqUzFleGlGK0FudGJpQXRQZGxRTVVZbEJzVk1CbVpuTiszYlNXVVFjRFdYaXEvOWlYMlFHclRmWjRjQ05Ub0dDYzA2MExPbkZzVDVrdGp1M3Q2dW9ITW1ITEZ0cEQxOUduN01MSVR4YVRRdU1MVFlrd1FERDRuS0thQ2REaG1LeGxXZWhYMkNCZW9Fbi84aWNKc0p1ZjFIWFZMZ0VacEtTbmd1U2tVVlp2ejJSMWpQR1pINnNSS1N4QXE2NHUzVG10enJKYi9hejBkbGttNnVvK2ZmWUR2bVhqbXQzTVp5d3NaeXpFMWl6OFBEMXdkNVV3RDlzenZabEx3ZWFoZnNDQUExbG5MOWpEb2xFYm9pSW9PT1YxUlg3Zll6Qi94dUxyNVZZcHJ4S01rcXVGK2hxZDlnN3k3RzArK0JaZndHMHlmaXVXVmY1OUdtMG5Pa0pqdWtGWDNvdGNCdXovNExzbDdzOWxuNTNldng1aUJsQnBadWVuUXp5WVVQMXNyOS9NQTRQKytMSHBDQlNtL0F1QnNQOXZJeUxJeVJPbVNzdnFLZ3F4UU1ZU0Q1UkxneFl2T3dvSlMxcHVhSlJTM09ZQ0czVm9yWUZBZ1dmV245V2lhLzlTSnByRVV2MTFNYTM0NmtlQlNTZEJpTlZhSUdoZi8rRXRCY2hPR3pXR0o0WE5FaWlyaU9JbU9mY3NRZy90WXpYYm15anY2MEZYUEl3bnJ2UjVGMlVMNytlS2tMd3UyNVd1MzJSTXAvYWtDRzI1WG9kY3JsQlN2N2lOSXk1YWl6QXgxTW1qTjZUaFMxV2RIU1huNlNHOTRoTWJvK1JOTlNWRktjMElFRmV2V1IxeGh4OGczNi9ab2xRQVkvb0cvMkNrYXZkZjRQdFBWNGNvTTR0ZTBQa0U3UWdCV1hmaXRhT1oyU2xsZUZOSEp1YVVsV21BRnhhTkRuZy9BcHJjQW5DbjRsQlVWMUVhNGZnSjFocjJsT0NtVC9HZ1Npd1Q0UW95MVh3dkZxZ1ZBUVVlSXUwSjRidVRtN3MzVjVlR1J3TlcydEpjdHluS1NxSjlFYUNoRVRWR0FGYVNGUW1ENm5WamlVOENOd0R5S1dJVHZEazhLTk1YbXg5ZGdXa2F6aThvR0pGS04wc1h3UHFXd3dxOGJSZ00wQlhKbWxjblpOOElJMXRJTXBFMUQzUVhFZG0veFpvUEljV1QxSnNjVHdGQ20zTHppNFd0SG9qNkxBeks3bVZGcmw2SzRkRUlDaDZJSDd4UXpxOWVyVklmTFFjbElua0ZQNUJIVFBCam81QWxESE9oMmxpSFN5anVBZjgwK29NclZCbHV1dmptOXdURDlJWlp3elZsY0l5cWoraklDQ0doWWpEcGhLTjBUTDJPb21kL3hzTFl3KzBSUktzSnJsakNYZnFFRW5WL28rL1VreWx0eFhmTFRaYjR1OTU3ZmVacjNiUXF6Nyt2cnM5bkgzZWR3RlF6cmlycm1GdG5oejU5ODhySDdWVnlhOTZWdTNlV2cvajJWYUFHTDdHM1JFZlA5VmVieHR4citVZnltMGxNckh3UysvZDd2eXUwTXQzN1ZFbDRYclcrLzYzdnVLVndOL05yYzJBTENyOXJlclhwQzNvTm5SUFllN0xicE12eG1kem8vMDRZcStWMjRMRTd6RXFNVDAxMENxb3pncnZ4NW8zNHlONzczMUtubDQyRloyOHJuVjlMUWIxd002bG8zZ1M3cjErS3FET0Q0Ym5CK0ZiK2kzTVVVRDdkSnp6V0x2MGw3d3VKMXRGN0JldjdweCsvNm0xOG9UKytSczJ1ajMvT2xLVDltSzArdzZLNUduaTEwMTRSL1ArZi9CT0k4bzNidkpTSEZjSkFQRk9UbGUzK3NlWUFCMWdvSFlnTWIvbzBHZjR1d1pqZjcxcWJpdkRJWUVvbk5hVnBTS0hiS3JGdzJsRkdLMXZLaDM1RE0vV3NJNXpvaW5ub3FDTVVicGF0cEo5SG5EWFl3KzZVSisvdGF2QU5NMi9qZUFucGlnNTJINUtzV0l1OTlrdk41dG9rVlk0R1c1eVJLVGhFclljL2NZOVJEZGQ4WFJERW5WSEI1VVFvb0dxZ0psUTZySXRGaEM3eHg5T2RhREhNb0VOWTZIbVQrU3ZhYXJTenBjeDJHcHdMQmRHcWZCeXJDa21UZWNFV0NDQ2tXYUt1WWQ2YU1UeUZITlNiUmJ6aDZtcDNsQUxzVGhZblE5cWpkN2RrckxZMksxRFc1RFpScUVTY3ZGQlVzZlRaL1U0QUlDZlc3N0F5L1hsOFRHS0t6RllpallkTFRaN3Q3NHNMMTlSTkQ4VG16NWRUNHIwUHdtLzBaMytZMXM3RytsNWNjMDJwb0U5cEcxTnoyWjNXeURyWFFIcjg0cm9DMmVaLzNxcjgyWit2NVRtTmZ3eWFvOGZINjZ6SE1FVUNJQlc3ZHZmcmFFVEc3N2ZRNUt1bnBudWlLdDJrd0FQZXpwazhYcks4amEvWENYMzFqbHN3MmJGQ2UxSTNZMG5pYW43eHJYOS83R1lHdE9raEYrSUhjcDNTZVZNb3c1R1Nwa2wrenViL3pFeTYrVEg1WldyL2RzWGJYRnE0ZlZuNTVBamk0ZXFlaUl1cUg1c0pUNnRiQTNCYzZmL1IvZW0yNU0zVU80WlpudDdXbGNING1jbXJ3MkFNRVdaRU0rdVJMOC9BMjd0MlpuWjl3RGRtelp0aWdaRXlKT3MwUFBYNnlYNVkzWnJldzdoY1BNcFpKUCtOT2pxUUlhUm5XY2JMMjJ0SkdwL2pCZkpSSWhxOEI1cHMrVDdyZVN1OU5tQlJWaGprdVkvejUrUFdZalJoVUtLSk1xdzlVTkdVWGp2bUxlQXV5S3kyaUE1bHJ6azdQdlcyTjhoWU1jQ2FBSnpxa3dsckM4VXY5ZWtKdS8vdzFhT2F1cTlwRE0yaURpZDNJVGROcHBQcjA1cXBTM1BYNXp5MHZpZWg5a3A0ZGVLcjZ5VDM3M20rNVY5WDNPaWIrRG9FdU5zaFNIVUxzTjZheEZOcFd4Wk5EV2FpVXhIOC9lNVhCWG1idHNBdlFLYkpPb0Q5VjlZWHdzamo0RzBseGQrc25oRjNTcGdsMEU4OUN0V3ZBQ0hzZDNXSjYrd2Zsd2NmTThEclozYWF4VzNMWTk1YWJxdzV2cGJqd2VXOEdHbjVKZmluUGNrblVKR21ZRFhpTTlmdlBRL0xLWFdoNXF2aTQvZnJxSWxOS1R0NFV4L2M5eGg1WFByZXJoTUJrcTBIYy9VTDJpcXk5V3ByNGtwNWpmdFlVeGhVSDNDUVE5RUxBcFptUXhmeHVMVnVXdDFGMTQrZmhucDRGSEM1Z0xEUVFQcGJDMllUK3NYZDVVZ3prUmVWV2FkRXFoVHpJR0dQNkFOZ2lUbVQ2bGtoUDVMYVhJcWFDV2RtdjF5cUFaNkhLM0VJbkZPSURPblhIOFpyYi9sdVJnd0FhSTRqa0ZiVDU4d0dmYnQxTzY0ZWJnMnNyYnJjSnY5RWYwb0dFNGwwRWFibTJkVE1kWTNQSm42TEFzakJXTlFOalY2L1lWVHZVRUhvY01jc0lnQjdJeUZSaytFc3hzYTJ3ck9vd0pPaXo4WXBFY3NMVTZmK3JqNnIxdFBXa1NLSEo2bUdBUXBTNFBtVUdOMVZ5TCtLQlp2VEJ2UUZrcFFvVDZFSmRRZWVLMVhmdGVaNVBiRXFEUnNKU2VoRTFFeVFnVzZxWVJGbU1naml3WDdOVXBZMDdiY1kzbTVsOG5pSS91a2R0RkhSVTR3QlRpN1V4aDg3dzlJb3h3Tnhsb1Vib0xId3dGSFZPQkFKUGkrU0RVY2k1TzA2WE9OeGJQcUs4Z3JITXp1QnBpeXVLN3NQSnVBaWtyUzlkWUpjK25WbHB6Z1R2TkdBSFp3YmN6Zmw1MElmNHMzbE81WFEva04zYW1ZZExYa3l5Vms3S2JLZmsyem5rSDl3RERlV3ZPam1mdkdCYkhSTGsvSTdEYjlnNVh6THlqUEZKenZaZTFNL0FKdGZuL1F5KzRZZTZmTGpUTkdTYUhzZlBMYnNQRDBxc1U5aGVQL3NQOVNBaDN0THN6ZStsd0JhM0R5d0Y0eDJKQlBIK2RuTWVrUDNhUEh6M0huUzNFK0VUcmRTVnVBdVIyQmw0VWhtSlg5a1YwamFibHV6MlJubEpSKzdlUkcxOU1ZVDNodTVqU29sczhBaTgxNXNjZFZjSVg1ZHlWZkNZVjdMYi9XNU92QnVNSVFrWGFrdHBnZnRvUFBmcmZmUGZJeFh4WXQ1Z2NodU9xaTZyZU5ITzg4N3QyNFJNNXQvOVdVVjA4NTNKZm1PWVI2VjB0ZDg0RUNVNmZwbmVXMzlJbHpWTGhnYmFCK3Y4a1ZkYTJjeVF4ZENZSkl6OWVQcFNjR2NtZFlNb2RmK3NIZmEydWV5L3cwWGFlN2Q4dUcvdVRMMmkzQjYrKzJHb2xRcUMyUGQrd2czMEdYalV0ZGFDSllkdWVPQmNJM2lwbFBjY0hRTXNJMGJMcUNYRzNuOGw1di9NYVQ1TnIzTW9kWTlqYkF1K2JYT2RDdXN6a0hOQUx6ZTN2L2o5cDJuVE1yS0ZGWDlqZTJtaXYvU3AzRGVqZndtaWkvYnMwelorTkIzbzVVRXNwOVhpWkk4a0dqKzJaYXlhbXNBbXdkNFRNN2laTUk4L3M4d3ZEYzlvQVlleWVhK0dIUW9IdU9HMXBuR21VTWhNZ1hpVUVyU2NkdFFhRUNhNytBUjFXT0hOczNBTmc1K3J3cW5POGVmZ2g0WHdQbWpnSVpVRkorMERIa1U5aEtweDhwTVpoK3J5NE5vREkxcFZwZE13czc5ZmtyaGFJV002WVZ2ZjJTa0pNK2JZLzI1Y2xGZjRUVStRdzhIMDM3MjVFZElzcWs3ZjhoRDVVQUxDT0pwNFo3azY4cWdGbzJDd3hSdm0rYlVWTXk2ZmNIRk1ZcXgxY1JzNksvZnVYcE4yVXBZYjRyS2YxcEJWbC9LL1FJaHNGOTdKeFBWUk9KNklmTHFPVW5ldzViM2V4bFFCdUZ6MmltQVVyUkRVSXNQYWFQQkd5TC9xdWt1aHpqMXhtc3FZamgvMlZaNGczdnJhQjg1NmJidlZFRDh4eVd4KzQ0c05nMFArMnk2WWxDQTVuN0k1Qk1xdldwNldFVEpOZW1lemRIcENtRGJNTXNzOXhudUNRZnVsQnNocFB3T0FXYWpOK0NXS2ZSVm84VUUwRTVOZlJaMCtHQWZCMTJxV2RXOFpOMkRjeGJ3cEFmNlV2WDd3R3M5dXZKblZiendYR1BaMWF4NlgzZXJyWFpNdlB6MW43Q1I2N1F5WDM2QWtOQU82OUxsQ0M2eDdQMzI5Y3ZDSWZLdWtoMzFtYkgzdVdrWnpPUmpLMzh0STF0OVlOK0REVlA3WG5EUGVhY0ZtY204cW5QbXFXNGpHcE1GRC91c285OGc1N09zQ21CRzNCc3VqQkgwNmZXSFN2dm5aSjlUenlOVGNTL2ZIazJ2WnI0ZmYvQlkvU3hLTXZ2L3p6Wk51Y3RBN2gyZmdIOWRpVmh2UjF1cCtBUFZBUnUyRzJ5TXliVU50M0tOSEVZSkx1cFArMVBtZjFhNkZzbmlqVnJwQWVkWHNWM25PS3FHNnVrQUVnSmpBQ1lwMndTZG9YZ28rK0dSZnFzUisySVg1Zk13WjJIbVZFSnBweTJUU0E3enVsYlc2L3ZPRzMwZHM3Zkxsek1zbkFwcmloUTZIbUhtVUxZWllNM3lJbjZBaExJTUJnSTZQdkg0L3VoQzZkZFVrMlNVYkg4S0hsMzVSZjJsR1lKNHlUWkp1dytPeDFGd29pTTBRc2xDRE1QWlpsTzRyTE9RbGd3SlFBcHBsMnFlYi9ZbDl1Mlk1Z29BQ1pTUHlqSjdEeUQ0M3h5WCt4NkF2KzQ4ZnRRSlV1cnhlVTc1ZXFnM3J6QU1BRHB2NnJNTERaWHNVVlI3MnhyQmVEQnVPMGtTWUVaTnFYWjJhMlh0MzF6YjcxdjdvWE9Za0RRN09VSUJaMkhXdCthR1FHTEx5elpVclFnZ1hoWERXek5CUm5aMVArOUx0NDF5d3psMFhYYjlCeGRaVnFYTHArNlFhM016RHgweEkwdUpFSC92ZXhxOTAxSXVvZGJRYXpTUk0wYzRQdmttYTZhYkhLdWoxamMxMmVqQW5xNkVzTG9mRHpkYzhXT1I3ZHRSUmgxL0Q4TkxDOGJMQkh0dkFyMlViNktCTjlLdEZIYW1zZzNycjltSlIxVmM5alpuOUJlM1E2Y1l6Q0RyaDFNYk04U1NpSkpWc1RoZWJMWHFIUWU3YktyWkRLdkRvK0JINTZBalhhTWhIWWFOM3p3TlNFTjhYNW1IV0lqVzduRTcyV2ZGTnZHdEI5TEs5eGhFWTg2VGo3MktIdmF5UHEzeTc1OUxOenExUGFTNzhUdXhrWk1QQ3VKa3NqdGpUZHdwZnBydkNMdUJ2N0ZVTkZ4QWNPU2dNdDg1a20zNjQ4bWdLYW8wQlVNK0h6bmZFS0w1SUhiN3p3SGN0ZzgxWU1pQkNJRzcwVG9mSkZWdnJURFFBaVFHRWRzTUZqSi9Sbk9BZXRsdmovRG9YZzhPL0lyZllRSGRRYlFVYTdVcFRYYUI2Ky9BK1hodld0NWU2amZ2c1ZWa2xMVXpEM0xzV0kwUXJ1UTZiYXQ1TFlSZkxaaVJ1M1pXR0tyLzFPQld2OVAweEp1M0t0aXdrSmdIbEZCd0xRWTFSTEV0VVVvRHMvd1kxbWJpZGViUUNIcll0dzBlWHVEM3hxU1krNjAzczR6Kzh2OTQ2WjU1M3o1dVpocGxvWmZLdzlKakxXT3BMSTJ0d3B6bG1JWVBFMHJLbktQcUlxdTBRYkE1cWZMRFRpL2dwL0piYXgydmN2K3A2ZHB4NWU0dWpRQjQzZ1NmdXo1aHNPM2xmTDNMSU1QQklESk93aTluV041by96MVpDb1YvYmsvcHUyK0dLTkR5QW9zTnJ4M205TjAvV1BRanhHVnd4eHRXZFp3RlpIZ0JoRWdLaDdFazZhOUZTZWMwUnVLRFRFaTZZR2lWTkZPWmVjWHQveHE3anJTNnJVZ3l1TEs0V1RncTlCZ0VNUWczT3gzQXlRTGoxbEhVTXpZTGdGSkozUVZUNkJwREwvNEJCU3l2M3hFVHoxa1dubTl6RkFoUGgvcGFzYUFKaWdPSjFkTnBYVFdONTlZZFlyM0NFSExkMzJlV0E4MTNpV0NHY2tZazFQbk4vUCtlWWF0Sy8wbWdVd3VCbzR4amQ3cjRBQ0Q3TGFtWWFqSms0c3V6Yy9wd1FveFpwdERkbnovRzlSMjJXVnRBR2krY0ZpaHlPMklPUllmVnNqekpXQjEwck9rWVhabmlYRENMaGxXLzkyQWMwUlk0a29tTll4MkJRREtZcFlLc0JTSmN4aWdNMCt0RUdDZWhYQm1xQjF0QlRoT2RUdFExNDBYWmE5U3dSM25VOENLQnY1SUY4ZVp3VVlBanNkZzVTNUk0ekdlSlBRLzRWWU5pMGFPWEx5NkdCTVpLeFNwL04yNE96SXRQVXNWSUF1VjF6ZldDRTBqZUtVV2M1amhBelR0ZlVBMjdnU0ExZDdsdTRuLzVIb2I4eGpjcnpISFVyWVVReXdNZjBIcENzV1g5eGptWnBGTlc2ZGE4ZU9ibFB4WE1MVEhJS1ZXYS92SmpMSlk1ZmFtZXpiZnlZdTJuOHF4YUJmTTJuMmpyVmp3c1lYLzYvdkpYTFJac3JuT1kzRDJmU29FT0pKYmdZeml4cGpKOGxlTkRSaDJxSEpmR1Y4MEJUWDZDd0g3Wmw3OS9KTlROcVlZYmVGUjcvV3FpOEtGaVFMVmVQVngwQ0czN0kwdlhhcTA5aWNMMmFhMndENzJMVGVsS09QRit6NmZUNDZjRUtNcVJreUVVMXRFdlVkT1FKeHNrQm5PNG1mcVdZRXF3cnVic0dJWklnM1VKaXRldnV5UmtjQlBZU3VwZzZla25pdFVKdVhlYTZLckpueHd6SEtSTi94Q28wbUp0aVlwcVBTck55WWI1emtid1pKcXJpMGVua1UyTW9PSHNkbGhqYU8xUU1BZjJYNlNDTzgrTE1GNzMyc0Jobzl0RFREQk5Sb29wZEdFc1Q2dU53azd4amkxNnhGZDBaV2tncURIMDZ1WlpsSXdhNjZaWjZKdTZKV2h1Y1FBVm41ajdXL1JSSXJnU0hnTk14UFBBTmFqTElIeDRRTlIzbnVmOGRvNVFFdTZqZE0yVEtlL1hZMVp3Nkc1V0pMcDl3ZVBzVUoreW9peTRCblVpSWp5SGZ3bjRlUGxrRDJnYUxZdWtrY2xHVWZLUW9Da0hScFc2RXN3QzNZV1hmUkliZFltTzE5Um5hdWdpdVRhRG43VlpvMXVsdjM3d3pSWDRWYm53NHdHM2FuRTZJWFJyOXhqZHlYcnM4TlRYUVpyek03SWhZTXJyU3Q1Nnd5Y3JjRTRNOU1EY1RLR2hYQXkwVzJPaXJWK01tYzhoeFBuSzJlOGtqd3NvN3B5VEh6azRxUC9lK1VMb2hyMldiMG56TFF2L0RaallockU2TEEzSEtHbkdBeFpiejdHcmUwZ014WWFRUUNnbDZSWm1Mc1JLNmVVaW53T2trRUphNjBTYkhTYnc2TGRwQ29ZVVRDYnJrc0IvcjNEazltcXdOS3QrNkp6cW0xM3Z6THZKemhpTGNzOGNjSTA5VEVxbFVaWlczQjlCSmw5SEljM2toZHVlK2k4NjNsTHhjSWp4SDhRdWJnN0ZmNFo1bmZyZ3AzUmV4YlZZdHpkNlduOUYxS0cwOFR1T0pVdEJYNjVmR0JraVd6bUJweGpEZkZFMVNOMTBwdWtWQThKaDQ5WjJsK0FvWGJGS1I1WjJNSXl4L3NSb0R6Q2lDcEhpZHdtOTFFS0dNemp2QTE3M0hTUzVLNEdmNHRGdEZvMFovUXl4SkFQM1pVRm0xbnNSVUxtS0htcjg4RXQwNE85VFdTdXZhNW5WMnMwMUE0QVJNL2xvaW1kYWJqWlFiYmQ3V0huMjM5K29LZWVQU0ZoYmRtOWdkcm83bjZQWGhoZk9KMnAyUWFyR0JFcXNsZTMxRXhIUWNiVHA3MWtzNkxMaHp1WVZuWnVYdjRXbEFDbU1ZMENvakFlZHZmMlNURzFXVjZMWmVOL3ZETnBUTGRMam1WRE53cVl0VXVEejRtNWJ2Q3I4cVlvUDBGVGw1KzJkakQ4cTZvbUtBNVZqR3pWckFESFpQTkczNkhDQU5qTFEwT2NhNnpUVXBXV0Y4QWMzMjhOTFQ5eFE4SUhySkFQek8xTU56S21FbVV4RnRydlhEbU10NkE4azBXYWVoM0hYbFQxWkhlVnh2blJwNys3TkpQNzVTMUZhZFhhQ2J1alErY0dIRG02L1d0aWsrdUNadzdCdmVETVlvbXZDTHp5cnQvMUhaVEplWW1QcnVQMWJzZjBHRWZNemVkdlZjTC9yaHg0Z0FuditmVm5KK2VFd2tENjlhVW5Yd1pobzRQRTVMdDYwMUZMK2JlK0g2aGVzSC9YM3hPcFo3MllxNnRaUUNJQTYyVlhHc1RiV1VCUUZOcnIzMSsydHEyL1dLVXRHYnUvemZsa1UrTjNTZ2d5TkNIUzVjZVJRUUJQaVp1aEd1bDRXNTVyQmhSeXZZK1U5OVMwZmErZFZuWnA2TEFEV2VTRjlYMHQxLzUrQUpNY21ROC83eXo0MTFlWXpVV2JRbnhYQ2kzMUt0N0xDcmU2UzVDNWpFTU84bVo2cWVjV2xxNGRuNVU3UFoxNDUxOXhMMjJuN0ExVjBWSHBnRk1zYWd6UnlOempxbk00MTNUbjNxRzdIREMrK0JDT1F2Y1ZWeVNCYUN0M1B3czgwUnhtbDJDcUtDMVhVb0pvMndXNjIyOHJCTFlvUTJ6cDRzRjlFbWQ1Y1Ixd1lIZkFVZVBZWEdLaWlmVWJJalhHdlF2cElFZm5FWmRtZW9uRnBabG1PYjZ5Nmg0ZnM5S1RxVDNiRkVJUVBDaGtvQmlyVU1xZ01QUkdndEp4TlN0RzNpWkFQUFNlRmhROTJJYmw0ZVBaN2w2aGV0NDAxMXpQWE1ab1JSMithN0lTRjFsSkVWZ1MxUlByQ1BGbUdHUnhBbjJtRmNjVnZiNmFNcnBqY3ZNZmI2a3Y3dE4vdGYvNG1kR3I3YXdnZURmNVNjTGR6QTJCZFhXTHhWcC9wcUgvYk8vVlEzeG9veFk4RkU1RXVLbC9HN2hTclYxWmtReE5OMFkvTS9Mcy9pQlZKOStjM2JWOEx1WS9uZVNJamRuRXllaWthUnhYMkE5bmFhclBKcUxXK2NVTHQzd1VDYWRSOC8ySUdzbU96TEtENnh6MEVWMFNRTm9ZdjEvSnR2SFI0NFdWM0xpUFFsdms1WTlFemJ3OHhnNVJLcXJKMTlYNEhsNjJaMDJaWm1zMU55MjFHYVJqalZUa1VFTk56UFlSRnNGcngzd0kwSFAxMzZmdDh4L3lRUjEwMlNIdnBibnVSYU13TG55dTY0YmxYbUhOTmd5RGlONnZRN1pjS25SMDRIakFjdmRtaGpBUzVBWTZWMTgyVnI0bDFiWS9jSWNlazN1dVhpd0hKbkZlbFEzUlIxeHJtdEs2d3BSVklIV1l5RWxXcnVEaVdtQldNVUJLMFVLUFY5RUF0dzY4WnZ6VW5OQkxFSVcra0FmSmRFYndnSVg4OFNwbDhiZFczZHJpQWxZZlp1MUZCNXRMUWlrT1B0Vkd2SzlDQ1Q4c2NkeVpDTU5MVEtibkxyRHdlaS8yVlBqUEdmSWZYb1pLT2NVc3MwZ1ZqZExmelp2bGVjT2ZXQU5zdGcvVXlQNzFaMC9wcjZJd05Ec3BpNTZsY1l1UCtTZXZtaHh3NWl2RVFjT3p3ZjFFZzFQWWJWNUtUSjNaa1JJUi9sL3Nma1NwVTRYRGRhS3JxVlJoak9kb0pKUzdkV29xSlJuUCtuMVk4bzFoSS9UMXg3YnN0c3pJQ0FzcWpJaFl2ZHd4ZDRWNTVzekZsM3ZrU2ZqbHFUK2xkT0NrbWNRN1ZwSFJ3SmdseUVlQVhmQ1lMY2hUMGVtaWxoV1ZwNWoxR1J2RDNFUUtqOHUwVlNGUFBndzczOENUajdTN1dud05VNEc2Q04vbVlhdHlSS2NJWGUxUVBTOFNsdXdhWWVubnJuNmZzYWNJTWVWMGlMUHdtUkh1NEpRRm1ZbnR5YVRlWFFjb1Zrallmc2VKNEZuMjlFZGJqMlZEQzRTQkVKSTdIR0FGZHRiNnE5TXZCbmtCK0tZUDg5cUtRT1VKMDJ5WHIyenFiZG5pTlJNL1VDUzZKRDdrUmNVOVkrZFkxTWpjcm15OElBOWlBU2d2SGJkbDNGUUl3amlhamdISGRWTHVwckIxWU11bExEK2duRUJudDFjYWJoNWdDcHFCNG44SW1seG50aG1IZ0hzUDRCcDlqVjVvZW90NXJXbWJtWmxhWjlQaHNoVittMUpLZWFrckttQjBQSkdrdEhUTFJxckpvSno2b3hDQUVSQUp4a3RIL2xWTzJ6U1lxclpZNmRaeGJ1Z2lQaGVjVE5DZitsU05nazM1aC9ySkNUVUNKWExpNEFqNE5STHBMT21CT0M4VVR4K3c1cjdQbmNDT0d1Zkt6MTBhUS9sczRsVE1iWlg5TGRGNnhZNGJ5dWtNbkY2Y0tRTWdYQzEyZ204a3RpOWJzQ2RDVkJMcERjTStXdkRlVWF2NEJEQitJemZSZWV6NzV2UVk3TGIrVFJCTkt2MzNjVTRrQWVqamg4VWpSMUxoNDRxS1h2TWU1VEFoU1M3ZTk5ZVA0eDBpZU5Ob0R5NTNtMTArR2RVRWRCR1lzU0ovY2FFaEZ6L1FxZGtpa2h1U1A2VXE4OTY3M3FkdFUrNU5GeEtJM09BeXRiaFZlY0xVaERMR0hBQ2gzSkxqU3pXYThIMmlpUVRkTTAyUkI3VWxNL3g4ZHVnOXBYUXpCcXMremFMQmxwOHpRdzZrU25GSnFFWFVUY1RzdG5qUVhkVHNtZlRGeWN5Y1NUbHRHOFJrUjhOa3lvZUExYlA1MEdQV1pJbWRZNUNjU2RpNGNsNkprNkZzaXhoWlV6R2FBUUVIVi9LOXAxZ3E5YVhWVDN0YUtaRTlWdzFsM1dheG9BMVVFYXhObkVmSEluNElkaXkybHlZVzdGR0JzbVpHS05uQUdZUGtFOFVKSEIwUU5YZnEzQUwrWnpEMW1Hb0RBb2dqQWV4QkVBTXJiOGV4MVpVcTNWdEZPemJsZ3NuM01BaHFhRHZEWGNNYzRybGdHV29sVzdndUVaUFhoVHlmSHJYbFpxR0VTcHgySEgyMVFQZjE5ZzMzRnZ5N0U3TEF2dU1VMk4yejJCRUVBTmZLN0xsMEdTMHpVR21PV1pYaEcvc1VoNHJXall6M1AyOTlyazhrRjhSUlFlems4SHhzazl2WEJXT0pIditlTVo1VXlORGZVNE1pQmdRRjNzSFF1WEo3UEJqRyszTXFDU1dnWE04K3VOaU9RVnRFd1hjSFJkMjJ6dk5hbUtEZHVoUUk1cmRibXVkWDh3TG4vY0F2VjFtNzNHRyt2S09heVUxVGNuY01Cc2p4Q2p3N1F5MVNTV2hpK2d6QUZXcm96QUo3SGVxN2ZhL09ERnM1ODdwMFFDNnBFTUM4T005bG1YVVJ3RHR2L0o4R1ZrMGRHb08yS09xeDhTWEYvMHhvNmIxYXJ1YzFzWDVFZncra2p3ZlhqSG5oWnZvb0lsS2Y1eHByUEdLVzU1Yk9pWWJzWnpaMHJES2pNaWFpaEtOQVV4NzJzNHVZSnNIeXJHWDVmbCtJdDZ6YzlEanBtcUxKSjUvSzNqU0thMlU1ZGtGSGl0WDVCZ0llTTRSSUIwODR4anRUdy9zd1dLTUtERTVjNUM4WGhKR3ZQUHp4dVJOMXJwOEJ4REhJL1NhbUxqZEVSWFo1SEVDU1NhWmVSMlI3RWZGUzhiQno0aXNYMWFSMDl0MEhjaW9MUm5IZ0hqbUN0dncvUFQwNFJEVHhVbU9UOW1BNktuV1FsV0FBcGpFRXhuYkh4S3V2anlJbXRtSDFvV3RQUVlZZGpEMm4wVlRDeDV1MW85NXZ0L0lLTmRORlU3Yzcxdyt6ZGUzVkFHU25CZlNGaFd2aG1CSHZ0cHVuRUN2SUJLNS95Vm9penlvZ055TWt4WDJWbmEzVVR4T3NsZ2RPZ2ttWjJUc0JZQ25wbm1hcVJVZzRmK2xsNzQ5K05CQVBWNHpwQ29HNVBJSkM0enlJQitOMTNudnZGRFJwUzhBalg5LzNrdis0Mk12K0p0Vm1CdmdMVmNkYmdCUWF4cW93c053Smc3VUdLSEtMT0J0bHNIQzl5YU5WL0xlZEZ2QjU1OWt6ZnVIT1BwejZpWUpEc0JKeG4xQ1hKRHNNeE1uS2UwZW5TbngwM3RoTWozUjN5dVJ6dnpheEZ6S3BvQVZDZWE0WlA2VVF0REZCU3RXaE01enRZWWFTZ1F0T0c3Y0ZCeXoxQjhQVTg1N05tSHkrZTFYVG1vRUZBZWlweTNFWnBpSWpWUVJlNnZVd2EzQUx0eld3bkFuL2R2SHdtTmpRKzh0N1ZzVytCekY1ai9IaElnMEZVcENvODMya2p4TERQSlVoWS9ONHV0RkZhdkE4eW5HRzVleGlQWjRFdlNyallRemx3cEVUd0hiaWN4THVONjZHcC9yR0wyTnRFcStjVEVwOXc0eStvL25qR0crd2NUVGkranBxc09ORmlhSjVKcDV4MlJrT1Q3V2h6VzdGOHkzKzZYZlVaVmtnVk4rODBNRklVc3psOWw3QjAwQkFQM1N1YXVYU3U4cXIvUW5zTXlFMDJFYXpNZjFuRkxHYnMzNUdtOHdoM3pIbTdkZ2k0NVF0eDREZGNIRGxzNFA2R1dBNEdmTzYrcDJkTEplTWl0QVpadXBENzl3by9VOGQwY3l0WmFrU2FBcndpMFlmRHM2eit2RTBpek1lMXlOT25VaTRlMEtMa3dEZDNDNVV5WXQyUEs5Q3ZYRXVKY2VNRFZFUUVvVWp6OE1NUStHcE0xbXpCTUFEcSt3amdZNmQ0SURQcnhIQ0ZVWS9KeHNnd0laaHZ4RjRVQWtSazRmT3Z0RUVxSE9XM00wTUV3MW11UHJWQ1N2blZ0TnA2Q3BLcllsbjRycEtnRmdtblZrcWJzSmxZMFk2VjdyNkk4VEozYlhDd3dKQyt5YXFtMDVOZzVDMnpnZFdHU0czOXBDQWpRVkNYcFRrMVRVdm5FOVc4YVI3UGVlTjFjUUlMaS9oWE1SQ3l6T1V5UUJkR25LaEdPWUNaUFVtU3ZaTitZeERLQlpXMms4dEdYdGlYeTdyRjQzY2Ztb1MzOUR0cTlQVkJ2dmxFbTlPSHFIMmYwcWFPRkJQRkNScXh3M2ZndUFHOGJKTDFZTW1BWVVVYVBlTCtrb0IvK01VWkxjTHo1UUk0Q2RKc25LbTJMdDZUMXA5TkYzMXpBQUJ2eUYwQ2kzU1ZuQ3N3UXdBSlBZQUxibG9Wc3A1MGlKZGd1MnJKVVREaDFzeVRMeEpwTzZpcFB1SjZUQTZwdUMyS3NrZGZ2Nk9UZHZCdkpXRUJ1Z0VwUlZlRTk0OW1naVlkWlVoYUtWT0o1VXYweFlQSjkybmpZbFhBSkErd2taL3NROFB0ODVhcVdsb1QvMytqeXF6V013aFVlc1h6L0xEVFdhSnpCWXF3RzZ5TTZOZ1JJZlc4ZVhicmtJNnJtM0pqY3VsNXAyVHlqZ2pMTDlKUytJekhaRVlqTGJsai8yL3RmTE9Ta2FXM1lBSUU3V1pYMlBpclQ5eExTS0VTWG1uM3p0by9FeE4yUjlIaVNLYXdsMlJHVDNMWCt6cFdzb3hjUm9iQy82NmJQaVdQVmJiVU5SQU1uR3VKSTRSejk3VHdYS2FlcXJPMk81MXcxam1obk05SDloamVPQnIyNnZ3RHg1eS83UUtCdWNkL0JOampOakVmWTRPbE9TdCs5eDJXRW1EOW9kZUUrNC9MRFUvNVo3clJBRTJ0M254dUtUME5jUUhPL2VzY2tFQUM2SEllcStGVjIwYXFlMUZoQXNpS0l0Uy9yV1N4aHFZZnFpVkNhdnJtUlpPZzRSZ0x5K0IwR1FsencrbUViYlo3NXAwNVd4TWM5ZklIckFFeWdXRGtpbkxWSmQrUFBuRUorMHdHK2dXVEMrMzIxOE04NndmZFRPZi95QmEzSGJMYkw5Q2xUdzJiaEx4UlQ5TnMvc2ZBVlR5SmNUVzYwZTh5VlNTRlFvTUErRmtrWmswYkpiUmFZZE9Ed1RsM2pDWFVGTjh5c2xnZmtxYm9rQ1RDS1JDeXBGN2FjcDBURHF6dzd3enVLRDNFaG9aUlFVV0UyMG4raVpVTk11ZFF6OXZkbkdDQzZ4ZzJrYTNjeFVLV3RTWHpsdnZXL2dLeUJWV2oxQks2KzgwOWV3enFCSUhGcm5kTVNVb2Q0cFNDWnk3UWI2Zk9MQ3lYU0RTNTFBQ3hBOHZScjY1aHJNMGdEeHBnWmFTVFh1NnJLTi9BcndtUW1hamRMalhxbElGRTRVUTdxNzBvTE1obFJNeklWaWI5WGl3UGlvYUlidFdoaSswaUR3Y2VZVE9UeVVTSUY4SHBkRXdCQ1JkdW0zWWRhWmpRandiSXhwY0w0NC83VllRMXpCQ1F5SWRlTlRRK2ZuRk14NkE4dWp2bkRFMTRvL3pPWnNLZWxxREw1VXo2dG03OXU5UlhYRkp5OEJndDNxb3UvZTBpVlFNVlE2TjYweHhNWS9JeDlzOFJDOEZaTTBJY0JyMTJkVzdxKzJ3YjFmZE9NcmlRRklWR1VZMjR2NDBpSmNGQzhPZjcwNGJuU0lxREp6ZDB5MStUdzRab3BvaG1tOXBZbmduVzE5QkFXQU15MnJiRFNpVUhPOW0xOGZrWFE2ZTEreWJCNTlHcEJrUC9yNWY5bXVDMkVBclBOc3VnQnFwbHBxelBYbUpuYm14UTNrWHpNNTFpYUdTcTlGb2NUMUhvUTdVeExuUE16M3IzL3F2ZE0reDNuNHpFWWd5NmJxM1VqN25WcXNwSWZiMGxXVFBSWmQzTGxxd3hVSTVGdk1kcmI5SUpLQWVPWXVNZVI3S2tJOXlHdFZwRkNBcDZzOFlvRG54aC9ldzhCamdBZ3BFQ1FwZEUrelg5UytkOVZVd3VSYTVVa1A3NzArbVl0SUhVOENRMVM1bTdNVTRFak5rY0gyaGJXZWVRMlB2WldKVk94NmJHMUlmRC85V1lYZXhRRyt6clEvOUNSa3h1cEhhRTdWUGdERmErWUR6UE9TNzF4M3kwVSsxWTV3ZmFyVEQzdGpSUzcwQnRqdG8rdUdhVEhNYVpKUUh3OGx1elBHeHN1cVlLTnRLT3JvaEVPcUk4dThsWEtneU1pQ1dMemNZNEVPRVFDdzMvc2FBckI1MUIxYngybzBzZFBkZmxyS1Y1aDZUVjFlNUJ0WWM4dERkVnNOalJEbUsxcEo2SjJTOCtkcm1zejBtS1BZNThkVkhtR2w4KzhCVW00em1FbTQ5Ly8vekZyVzN0VGl2Zi9QOUY3cmJGdHJxcmhGcWNuWWNBRkhGL3FLbXpwcTdRL3BJUXJRVnQ1c01ONy84dEtlNnE4N0FMQytkSVhLWW4yOVZzdFlqbU1FZ3B2NXpkTWY1L2dpUi8raUFJQlBkWFVPbFI2bVFKUnk2bGE2ZElMcDJ3Qi9TaXpXckZDNk1obG4xajQxb2luWUY2V0dxeEdBWTBtQmxXUEpCWWxacmxLdWFiTDVzYWFNN1ZKSFIraDZWeFM5NmhSNTV0MlYvd0U0NXNIL29aVVFOSGZnUldUOUNrLzZxR2RnR1FRdUhiQndCV1crWE8vcnUzZ1VnQVYrb1JVUXI2UEF0WmNTcW5Fek1hR0kzTkJnbTY5RUNUSFUrTUZnWEhUc1V2UFZMSDBwQ3lmUkhmRlFMSlRFcHJ6R1RVNmVEeTNZcHVFcExyYTlXUWE0aWxsM3hETnA4cW9iSGN4Y3kvQ3hQM1RDMkxOTHhlejRteWZuRFJaNGkvV2t6dnNhaHNXM21SVEM4bzBrZEVrbFgyT21GektzbHFPYzc0NjF1UFhxaWE5VmgwakxtREtJbnJFVVJHcmUvWTU4SnVsWjBqaXR3c0hDMG1tcXlhT2ZzZDhPRm9BSGlTQy9hbUpJN1Z6QzJhUEZiYm1vMnhkaXZwVUdKUHpvT3oxZWlWQ3VydDkzKzJjZUJybzJuNytCZ2M3aXVlMThzeUw1a2ZwSkozOWUyVTVxdk9teG1uN1hBZUN1anM0bm42ck9Ib3BEbFNaWUdEdmN1ZEpLNCtDWFpJeFMreVFRd09Oamo1NDE3MkpuWmhSZGxzRzF5bE1BMlByY3BPdnpJZ0xsemljREs5cDRhdk1pSjBzQUxTUkxGWjhXRHQ3Y0hBT001RmI2NlUyL00wR0F0M0ZQcTFCZGVHcjdTVkJzdFdHdVdHZTE5Y1FEWCtLOHhGN0hsMWRBcDBCckdkQ1FaTlp5WkxUd1M3Tmw1ZVZwMTNnc21nRXBOZTk4L2UvcUFQWnI5VHBYa21iZU85K000RERkamVWOUV0SFRqb0dlRitLclR6TjZxWmZ1RXZwTkFLeElOanV4S2JMK0pEa1N0ejM2K25TUW82Yzh1VEZZYytQSU1vWXFNSThpZ1ZiNERZOFpIRXR6bldYbzdoUVVFS3hVRzdsUnJZT0FKbEQyM1hEQWEzQ0FFaUJKTzNHOGFlQUtjaWJ1OENVbFlRNyswSzkyK21yMU1qNjlkTTZpMzFxeTdETURNQTNMSEZIQ3B2cW80LzlzQ05Sc3dHZFJhWG9DOE4zNU5hK0hoUWJPN3J6ZERjRVRFMHlWNVJERXJKek8wSk1ON25rclR2aWJUS2t1N2ovVk00YTRwMVorRHBTQjJBTWE3N01NRFY4Q29odGlFVklNcG04Tk1aa3NUelNGUStyMnJRREdPOEI3WVg2YkE4YTg5RktiZjI5Z2V0TnNkVXdPQkVDOGNHMHNSOG5FTUNzT216aG84czJrYjkzNTFBdXpHL1l4Uk5mZFpkTi9rU0dOQTQ1cklKdndVWWZEYU9pK1pJeHZLMlJ0dTMzS2UvZ1lCclpLV2Rjdm1FRXFleklaU0pPRHh3UDFnZnV2MzBTMjMxcjN5V2plZERuNXR2OC81QnBQM0JDWThuK1hzejhXY2VKQkRHUUFVQkFweldaV1NMSnFqanI2MHBUUlBmMGduZ1hlTG43WWVLaklOWDhvSlpqcWl2UmtQS0dQWGJ5MXZUQTZZVXBJdkF3QXZMT2RlT1ZaRElhWnAxS25QTGI3WUpXQ3ZoenJWT2MyQ1Z3TFB2NGtsTHVUNmM4Tld1a3A1YnBGbjFtYWNIbjc4QWlqWElvYi9uekIvbzBmbTdkbFhnVDdaTXViNUhmM2F1bUdYRFZEZjM2eU1OWTJTUlRhWFVNbVRHbk5PS0paRzVoM3dDMndOTFRJVm05MzkrRk1oRGxkK2xnTjEyaHZUOGZBOU5aeExNT3FYYXdlMXhLSlB6aWV5ZHE0WCtxclpqalhXZUJvWEZDanpiREp5Q2E3OWR3QVp2QVdrNXhZOE1pRU1ZSUlJMGhDb0tucGVCQmxoOVlNc2tWWHVyWlhsTTJaNFdEajhSb2w1eEFrQXh0U0tTZmdOQVFDQVlpNGJ1bGUxRkhBdjhZQXpSaStNSU5rQ1c5d29GWk1JS0tZK0ZiSHMwd05hYk1heEtCWW16ZmgrMGYyQVJWZGN2TFJkWkhDRXZwbDJoR3NIcGVMaEVjenl4N3ZMZmZndFlqMEMzbVByUGxsSDJIazUwdFJtWHc0RlRCUE9DVVdlditiQmNhR1dYZ0t5NTRvbXRRSlhIVnA3SmI4WndqNmNMeDkwdVRaRU42eUNRbGJ6RjRvdTl4em1mQ29JWHV1dVdTTjNDcCsxOXBKeERtTjNWYjZSeTcxNlQyUElQamVacTZaN2ZuUU1XMmVBeUhtbi83SkFUendSWUxkRk85M3ViL28xc0lWcEl3L3c4N0V6V1hZUjVEOTgzWjh2aGk4eUd1OXdOR1VuM3c1QnBDemJCc0pWZVdyTngydzdYZVAzbHNCOXAyZjdiM2J4N0JBK2F5OWd2M3ZNcThqNWxiK0RuSmlKM3ZLdEJUUFdQY1Zwem1xMHJGc3U0QWovSWRWSWZVQTdsMHcrUmsyTXJHN3dkWXN5aVhJTnl6KzZQSUF1MVFKQ0E0a1NZMk9Fd0UyanVmMWJkS0JPNXZCRmV0bldjc3lVeGFLNk1iam9EMWo5NWhNOXd4NUFHMm04Uk9KaThxYTZsTnZBZ0NBN3pxZnFRQ3NDcDdUZzRPQnRSaklBZmlPYmVlZSs3TUppdFhtT1Z0QWhKV0sxdGpISFB4eWhCekZlaktTZjdoTm1oaEsvd3BtS2RvM01zYUhFQkp0UXl6WU9GMUI1cGtGQkpMOFlpQmtjVU9uR0FFSXNQQTljRkQxaUpRMnVHanMwYXUzOGFCNEhkOEtwUUR3cUlGYUt3bXcrMmY0OVpLOU0xcmVHOWovaDk3MUd1OWdUYWt5NzhRbXYvb21NREpRNk9ISjYrWVlKN0xSVEFCSkVzc1ZNaGxSUlhCR2piVVNVSnZBTFpuTUxoNFV6NWlvQkdvY2NId0xlck1nNU9OQWhmbkxoTlpJWUs0V0p0eXhjUDBXNHZDTHFDdWZDR3gvdnhIZ3pWVjMxKzB5alpRQkJYQzE5a2pUalk4eDQ2WlpTVXVtUnZBb3pzZ1lGMmpCbWYwVTdNQ0NTUTRUOXpFNkFsSm9NZWYvenZHYlI1b0hrVDNXazEwSEZKdWpLdHVQL3BQVmR0Q0xHeHJpaURLaG1tVHNqM1o3Y3M3djlhai9DUEo1bTh2NEhaMkJFRGdwZEQ5ZDVORk5VVFcwUTlMTi9sNXpndHdNRUVnTEovaGZmZFEvc05qNUl5QmNOcGhLVjNONm1MTDdlL1Ftb2I1VWtRQVBETFkreTQ4MWo3SDAyK3Z2V3hIcVFCbllCYTZic0tyZXBGamp4djhGam1SUUFEQXVSMlVBQkRPQWNURjlMSlJuZzBoVWpsLzg2aVBWYWxKTzd3ZEFvMTVJTjF1Q3drZ1F3ZGRsYnJPeXN0MTkzZ3ZOenViTS91REYzUTVFRUgwYk1zTjQybUcyYUg3T3RxQkJFSUdEY1lyRmJ3Q1d2MWpFZlBXTXFTOENjZ0taN2dQMEtPUFVVWTYxTWNzT2dJWlo2Mjc0L1RQdUtnWWJTZVQvT2F2UFd3Y0kvQVhXVmFybXVydWczaU13TlZlSWJrUGRhcGxZWmdBVzd2ckEybjhxR2xuQldxT3F3SUJqSjhUY0ZTbUJraDVkVXR2aFVOOWg3NzlORGR2U0MvSk5NbTVZZjVNcGpsRmpEN2dIdndGZ3VQeHhIanZWeG56Uk9BeEQ5YklZaHJPLys4d2xQOGJreThKalZoNUZubVhIM1ZsU1ZUeDRiT1RWRzh1bkplZGhSQmJxQVZpZDdNQ25KOGF0ekxwWXBXVW53NmFqLys0cGQ3aEl4ckc2MG11c3Ftck9qTUxodHlPYUI5TDFXQnB2OTVLTTVYS0dMNzhSdXEyL21idUVxMmNZZlNOUjdjNGxLeThmVmppWDU5cHhLWHdpdVREMGlES282NU5OQWkvY0h0a0lpb1hRQ0hHVVpGV0RtaERzTVN3WXdnVjIwbG92MUVRekxnSWxrQUFKVXdBQUJObHo3REZnYnJUVVVvcU1GVFNBb0syejl1WlhJRmdaMkFIQWJ0dllvNFRuSHljSHVFUm5QVXA1VHlTaUFISFp2anlDV0c2YlNHTUVMeXRINGMwQ1h3RUJ1NXhCN0VRQWxVaXJHeDFoQnpwcm9tTHk4aDdUY2l1Sk5CeDBsMWkyUWlvZnh6d0lDTjNjYXhiRU44QXVYUjdKb3FlNzlRRElvUExLRjVTYTBqVXZ5K01CZUhubHE3OHNyNDE4OENoQkM5STRzK080R285VDNocEltUzFCU25IaXp6bHlVR1UxZjRmVEdhOG1oZ2UyWGN5SnRpODdtRFFUaU1Oam9EWFhZOXVaYUU4MUdZQmVodng0VHVQKzlpQW5yMFJENmNWM1Ixb3dhR3NMVEo3YnNiZnFveFZObjZ5RFBNb25FdXZOZ2xFNER1VjlHOFBkYXVMQkNWY1FFUUpDdUt3VWdtZjg5cXFmeVJJSE83NnVzTWlUQ3ZFbXo4QU1BdWo0czJyR1J3THFjaVc2ci9rS3c2MlhzRVp3VERpTno0R1VVMnlUTGdwdXg2Wi9mM3JiY1phN2taRUEreitUQ2JPVWJzanZYVGdvaGw1bkFsKzZidlR5dFZwc3pDRWhrMCtmWGc3ZWkwZjN2dnFyQ2JReVpkR0p4c25NS012Y1NQb0VEMGpTVk04YTdRcXVHa1pNVU04QzdvRUFWYWpLUGsyRnBhRHVRVmhEQ25lQ2lwN2l5ZFh6bTVsYXFwRXZGSmxZcCsrTGVQSkorUEZCME5GY1hhVFRJYVNwVGFBWFJMTkRiTjBsbVlwZG1rd2xwNXl1L3A1TXlPQmlEZ0FwRzZNZWVOclQvYXhJQlViejgrTk5hdW9BbTNwMXphbGNVT1RJR0k4R1dEUHNzV3c4ZGFLb01HZlo4OTZsUW9JR2htTWhYaFNMa3FWeTBQUzl5ajFWa2VFVXVZT3A5U25FTngwWDkwbmRGQnRDRHl4bFpocGZZb1RJbFZIVEhadzA4MjhCelBUSXlQV2Nkb0RmbUkwUm13R1lidUxMRmVtQjZYaVNMd1JOMFpDZ0pONWQzaytYTGl3THRISEVDL01vYmZRRVZqWTdreGwxbEJXajlreVlqUWVZUis4UUZIQlNTZjZSK1c3QjZpbE9FVFVyRjV5WGJLNm5GL251Tjkya3BFUVRZYkRCOFpESHRIbVhMd2FpTWZFRE5VTVdPcVcwNTJndVBVZSthd2ZWTnNRUmdKVW5Ka3c0QTZFbHlYdklRV0hEME53SlZ2MlZsSjAwNFhWbE1UcHlJRFlNYmsrMmQ3UFI3bldhM1dwTENvdnFEaGpaNi9NdlNnSzdpZUJnMy9xak85eXVYeDhTNS9qbXVlWTRCN0hyeFA4U0EwQ1FsZmxVZlF3VFJDeWh1RDJoaExxRmVOMkxBakdUSjY2WU5ZQ3YxaVc4QmxqUUYyd3h6SDArK1NQbGZJeDV3TUJoVmMwYlFMbzZLK25DZXQzWmVSYkdDMXRLSk9VQXQ0V3ZGR0svYWt0N2FtRThTZW94cGorNFdnRlRQU0RQeCtkZmVKTHBneWxXZFBhTFRzS0hQbVYrRUw5YXVyTE9WZnZnbDdneVk5aUhyNXJrSHFnTWNkUk94R3V6YUNpNGlzUGF5bEladXBmRXVBWE1DeFphNiswTUFGM0VaRzJlOCtDaFUxNXhTYzdCNWdzQXM1dTI4MW81c1JjRzhRTTIrVnNUdFhXUXRPWllseGl5THFFQUFKV1RSQlBkUWwzRUVtZVFrRjBwbEx6SXFiVk9wUk1XbnQ4VUZkU0dBbjhEOCtGRkhLUDNVWmVRcVUvVzFrcGpicmk0MHdGQ010TDhxZkVFMkE5QU4wcE52anFBRXdLdXJhT0JJb25ISGdoSkNzTytRK0xhbndvWUJ3bTQvWUU3aTBKUC9DZStMMXlpWnA0NmR5TG82ZVd5MjFSS1l6czJjN0w3Q0ZRbXhScjk4MlJJS0hGcmk2WGVFQnJkblVFeWNmVUtYOTM1RE9SdVYvTDJ6Y0VsaWVMczcrTm1OS1VXemIraDd2dG9odFN6Nzg2NytwR1JlazlOcm9xSUwvR3pjdzU3Ly9hMU9qSnJRdUhTZmpuWmZXeExuQnZWZnBlL3V4eFZaSkYvVnVpWDV0WGdlSjBiWmQwbzc4UkFCWUZFNytqdUc1cjduQ25kSlFKWEdHN1RVK29jTWJ3TXhUSmx3bzE2bVVsN2pXZUFCK3ZwUnIrVStyZWRBRTRndVowMXk0bkY4UG9KaVM5dmlrQTV6YUlaeW44T1lwZDgxVm5iejJlcG43ejBsL0tyTWxMM1MxTDUva3NOTTkrTXYxdTllV21Fc0pMSjZ6OHhvTHloV3dFSkFwU2xkT0dXWFFPWEtNZEhUd3ZIc01Qc3dvczlhcjlkbjBiNnJLY0JQU0RNWmlUSmZVZ3dBOGQ3OTluanRmTGtTeDV0UjJ6RDNzU0poRmUvclBuZThFWjd2N0p4SjYzOHBuOFVoSUFkOE9jNGdVSkFMNGFEUXRaUm1rOU5Ib2N6MGVxMVdXOHlFcGdhN25CU2lnUnpEY3VPR01hWHpUVUxsc2IrdS9aTkdkVW0xSk9XZEVvY0prNjFTdTZJSmVsd0k0RWZqWFh2TExteTdjMk4zWG1zdFh1SHAwVlh1d1N1TWY4TmRsS1B2RnAvbnBBdmNQQURlams3UWdCVG5xOE8xUFR0elRQRXhZRDNUSlF1eUpuMmI4Z2tyR0VmUVh2NUJFdmg0UEREWmlKU0w2amFGdHZTSDJadEtIb3ErekpMSUFxSkhNSlpieDNEM0haNVRoazNsY0RhL3V4NDNnT1Q0QnpMa0lFdXQxL1dSZGtaS2N5QURZQXRidEpDK0dFRlBmNUNCQTJGMFc4ZjVyczVlR09RTUtITUJlR2paaVcyZFQxazFrM1lwZkkwMTk2S2VGb2Y0bG16TjJreGwzMzYzQU12dWlWSkdMRnpzeW14R0dCalZZR0JmYUxPMDdFWUtOdGMySWRDRWc0aUozdnRVaUJnMWpJVVd0Vjh2a3A1V3RXbmxtQXJkV3l2ZkF3bVlIUVZ0M05UTmlHT1EvS3doQWdCSlFzWkxqUTVPSDlvMy9rMDkvV3oyU0x4NVZOY3V4TWZaUTdNSEZyaTNRRmUxQXpuSmdVaGxiMHM3a25jelZNbGFSUEp1aU43Ym84elZJbzVpRUIybmh3NjBXSEZQQzlqS0RkbzZoK3pHSmNvRDZYTWowRW1Yak16clQ4aXZ1TDFkUGxLZHpEVFBlTkpUbTJDUkI5K3E5RzE5NEI5NCt1NFA4a1ROL05KTTRsMGluTHFaMG1XS08wUmpQYndLQUV3TnR4bmpXWEE1M3QveW9lSFhRRE1nQkNCZVA0ekN1MTJ6K0hpV2xJSUk1MUJ1Z1lVTlpBV05UelYvdS9vYjZvUGlVb1IzQi8yT3hRSEp0clU1dk05U0FFWUZ1MVErdC9kMVJodGRPZlE2dHJ4Nnp5MldIaHM5dVhJWS94bnZROWZyNjlnWUdYcEZqQk9ObHkwZWxvZDkybExDdGNzd09kSXJCN1U3VGdIS0hoMUVzbjBwa20vcm5mRnFmTlplMWl4QzczWFFtZ1dhR3FFNHQ0VCt0cHdrWjRRczNMWm1IR2RCSHpIRVFMVzlpQTR0NnhyOWViQ0x4ZXVudTNoYnB0N0Q1VENDdFplYXRDM25RMXRQbE9qOU9WblhjWnMzRDk3ckRrcEh5cktJQ3loTWF6amgwV0JqbW4vczhDQjMydmF5OHFIVnltSStOek5WMWFIOUo4VGd6K05VNTN3cmZzYlBHeDlQT3oyaXd1L1A5clRDaWVxUEhZQW1HajhjcjB4NU1OY1BtTVptQ1l0ZEs4S2ppT2FEOTBlWWNOVUlpbGJnWWRBNkErTEN3UUd2dTREVHFyRlMvR0IydHI0N29CSk5OZStrZ1ZocVkvSGd5ZExVRWhVUUFxZy9Qb21TTFkwc3daMmpwcnhOeVFtQ0lsMG9mUGhNakZuejNxOWdNZlRmTjVPRnBhTitzT1B3eE9tSzg0dUlHSW1vZUZsL3kwY1p4VjI4V0dXR0ZLMmZNM3NSVXlwVWZZYmczN3V3TkE5d3NVNi9jOWp6SE4vODdqbTJLcTVBR1FQNVphc3R0eEhGdExZTGl3SnZQdzQ5dWNyTjNCaURHZGhpNS9XUnFxQU5BeitFSFM5SFk2ZlJhcGN1emovQVJ0UFg4REJzeHN0U0tVM3QvR3hPQWhBYmR4Y2Z0YUYwZ3djaFBaVjZiMW10VmZ5SUtrcGpnK0ptQzlWb1FVUVFnVGdqUDdZL1Vxd25tN3llcjNraTlDZUR2UnlOa0hBZDMrWldEYXl0elU2Sm9iNWIyR3cweGg2U0YxTHgwaW9aVUIrdzhYajNneVh5Q0dPN1BXWWtJaW5sSGxBVDVmV3phb3VxdENPYloyL3k0b1Y0dUx0dE5GdVZsaDZnTVk5L094aSt2bEgwbUwvd3pQL1BvMlFqVDM1YUo5eFAyRzhjZWVqSk5oT1AvSjhiYlJhVENvR0dnVXZVc0RybnBtb2JOM3I1SkVZQzk3a0wwMk1zTHFmNkJpYkY4YnhMQ3QxeS9GakZoR0crTzV6UlZHajZ3cXppUTdhWEhjZXZzZlB6akhzd2J2WDNNak1DWVgvcjZCYjFjellFaWVqMk8veVVHbFFlUmFaZkxzdXJnYkhaOGtvNng4SlRneGtqVTNJWW5UU2tjaE9NZkI5Q0xjSEtMRkFkUVFKR25IL1pDcHRMeWtmanVFWXJST3RZZy91bjBXQnl2eWxMOWROeW5RM1hkVEFtUFprZmJJVmJlR2JXRGpKbzk3QnVnS29jZlMvWlF6dVRLWS9SbWc2aUFOM0pTRDRrOUk5YUhsUXhzTkpGc1doSkN2OTJlNnpsTWxkRmpFSDNFK1k3NWdQTDlaaFNoRTg0ZXJNakh6TlRNKytuUlVhMm82WVpDTEl0eVpPRllTYUJUeUZIZjkzWGJaOWJ4bk4xNWhIZ3E5M2gxZnBna2dKNWtVY2Z3YjIvQlBUWkRlRHdiRHltUnk5K2xUVnQ4cXE2L0N6NDg3aGFBV0ZzZW4rOTFBWTR2akoxdnpLdTZSR2JhT1BLcXVPckxWL2Ivb3Z4ZDZEOWQzbjIzNVFJNTVSSW5GZU5zSEMwVUozWUZWMVp1MzZkNlg3OW5HcWt2N3orUnBWWlhRcitwcEdYQWNnRG9qYTBSR1A2N0Y2eDAvNTF5ZnAyeWRpSUtyZ01BUDBZUGFDQUhMY0NFWlR2T1RpY1FyWURYR1h6c2ovbEJBQlJDS0RkcTMyUENNdWpNT3pHZXBDai9Kb3ZybEVvTVlwNzF4MnVVaTRFTVFTWVJ6QXY1M0ZDU0xTOVVweHJZb0Y0UVZIa2p0VFMvSlpZdUpZN201bTlYQlQxL1ZSRUhidDgzY2hrd2NEMHZFMGV4eVVILzdIZDB5WmUranF6Y1JPODFWaElVQUJGQklUd2xBWVFGTmZmNThqdDFJZUZmY2c2clRxNEt2TW1KODdLaEZnR3Jwa080WnR5N0lGQmtETWYrZVpjYnRhNElHNDVFVzNkM2JuN1ROMHNETVJraEFBNXNnamcybEM3eU9Ba0FFQ2pqdWF1RitxeVROakdLSzVYQ1ZBVW04MFN5bC9ZS2o5amR5VW4rZm41VGN5THR0cHBhRTdWUWNYVy9FQU1SSGdLQUtTSzVldkNQVTdkVUtGc2JtOElEOGFPd25zSVBSbWtSeFJBNURURTJYaHF0d05EWmx6SVlrSDFSYnRRcmNhWGxERmhPTG0xY2FkTTJZSzM5V2J0NVZwbXI2NjN6aStpbUgvMDY2U1FSb2hsWmNYZUNnKzdyek5qb3J6N05EMG9GY0hHaGExQ29EL2JoL2Ewby9uZ2lnZ0Nsa3FqK05UY2JzTE1ZcWhHN0RmL3IrTHlTeFQ3Y3lBT01remI2dkVmMW1YZWJyeDExb3ZMaENvSzZlZ0ZsbER5bHVjVVptVGJ2M3lYSWN6R092aHU3VWlxcG1UR1JqeXpRMW1SVVFxNWpwb1BJYTBUMlE3MmVxcWNmdWh4OVpheGR6RHdTMmZDL25TOGtvZm44Wld4VlRHajFqRm11MDFlOEYyRjlQV2pUYkNQTGt0VWFTWFZTc01uNzc2eDZBeDhaekEwREdpRS9wM29iRWpXZUd0OGh6UjhIN1I4TlRIMHhpY3RTUWEwekNyWTRZSkpNeUpMK2lxM0pXdk02VTVIZjFnVUNnYjJ5SnI5ZGNjYi85clJ3b0I4TmlFcHF3YU1BT0ZSeFRRdmJMVHpLcVFnT01nRGxJb3dFS3hmejJKNVBPSUJOcUcvMTlUK3NSbk82a1JnTnFCWVlLTVFHSlVUOTMzQUlpdmZkVlVlMStqMGc1NlcvYWZqT3I2cFhxZEhXOUJRT0dpN0ZwZEdBZzdXVE5yZ3l2ZWR0eFF0YW9yNTl5VnhsU0hvSWYyMVhISnJSajhNekhNcTMzbzNUUUFaaERYN0kvcmVWdHJad2crSDh4djk5cVU0NlNkdE9UbTA3cTNqeTkrNXVNRVFHZ2JqL05samxUVEJqa0ErNlhRbjQrRk8xT3k2Vk5PZzdrV01WSDJHMllhL3JXcit5L1hzckZ3YlBxYjZveW5icGFqNWFiNGtsUUNHRkpVVFZlQWlMS0ZPWnZPL1UzZHBDakF3S0N2aTBHWjdhdVE2SVpuem1RQ1VMWHJ5S09za2NyTVRTRXNHQ082R2tzRmV5ekxGMG94SEFjelc5cEVMUTVDcmF2QlArVit1WG1YdTNtS0V5RGFhN0xacklzbmQwZWNvOUVLZ0NuViswVmszUHAvWmtnRGV0M0lRNnV1RXZodTNtWVpQRUtwOHZwUmxnUitJUkRHZkFhRFZrZGpyZkx5VTRoUXlMUEtnYWlUbDlzUFFwamdjdUJ5WWFnb2RLMTdiZWJHT1dZSFZWM0cycElscjZmdFVzWmFld0RkaDhJdzk0V1hUSWRDeWgxQ2VIMVAxaTBSeHB6K2NTMHMwR1FsMGZEN3BjNG9Odko0R3ZNUDBjVlkwUUppRlRqUDQwVVAxM2dNS3NhWnJsdnNrUTd3NmErWDVCL3A3ODgxcFRkdVpXcmRkRi9jL3ZHZ2V2dE5KcHU4R00xdnFpbnZPUVdnRWRKdXJMMlUrUDNNejdWbklDUW80cS8xWUdheE1FUmhGUDBIWkxtS21oc3dPeE11UFFteXlmQ0o4WEd0blRXQnFOQmE4UUpXaUJCUGY1NHN1S3JmZU1GWThNbDJ0Nm1YLzhJSlhQWEc1UUxUcFB1Ykk1NFdkYlJjaURnMC9vek10UWpXM1Z2Z2FzR1ZFSGtXZDhkeG4xYS9IMk1paHpnN0l6Tm1TOXRxb1c0eU9JYTZlR2dSdGxtVVk0ajVwcTVjR3JXbWtzRE9FVFBDZDBaL3JOSlRPV0ZiOCsyWGJXSFREUDd1VWlyeFVSWWV1czROMmUwTW9MS3lqUXEvaUNMQUxpWXlsMHhTYmVmZlpRMnM4TTVhR3RWMHJQbm52dzNIS3g0aDVJbnJ3T0tna2NRUmtTZDNDamVzd1NwVUdOd2xqcVNpUHljZVZSWi9mVzdLZm16Tlprd2NDeWpHazB3akRDYWdMWlFXRTdJNjBSTEhFQ0I4b3Q1WnRwaGErN0dNODRtenQzUmRSREQyTVVQaGR1T1p4eFJjelJzWEh3cjI3dTg1TjNDbS9RbUplTVovVG1WRFJndnBRdlc4bHRLV2lSUVJXUGx2MVo3b1oxblA1NUNKZjlra0ZPSVFPOXZpV2w2ZVlRTEF5WUhuazU0aE9MbXNyQlRDNE0xd3p1NDVPRmJVbStaNy90S3JGVjZoNXJ4NVNYN0ZpWlZSMkJ5WnJEbExFMjVPNE45NFdYa21aK1ZNc01wNmJrT2hrRHBoWWFTREk0UWJ4SkZQcStaU1RPK3VkWm92SFVzTzVNV05QWnBHNWVpL25ZS2tGSVVpRnVEUDcvQkxyTWpLLzgwMU84Tnc4bVlDY2JUQlkzRk56ZDVmTzBnbVVkN2lCRVEzNzIvakxBa0VEeDFkUzRWeEVDQVFYZllHTExKK2JMUWhqckdSMzNnNXpQYVB6NCszbmIxblhRL0ZiVnpSQW5sR1ZZYjZDVW9PKy9FSVJqNmY4b1VGN083RWozMWV6akZBYkZFTlJzRFN5NFJGUHNjWGUrZ2p1eGRwcUFzS1hiOXpRandpWTJ2TFAxZkVuNHlDL2JnaUFoQ1lqQTkrU05jYVhNRUpuMnFzak5mZCt2dVkyT1dDait3dlB0eW9JMDNvMjI4NnIvWnZGU2ppZGkrbldKZWxpMXEySGJjSVdQeDBwa1gzcTY4RnhlN2NiS1A2THA4NlNUR2wwYmMrS0dnM2IwWlFiUTE2bzdCOGZPWVdtTnV3Z1A3NlB2N3hSL3IrOWlWWFoxejhyYy9ja05qaUpJb25lcmNlMkJTaFBhbHF4ZGdtdVQvbnBhNFJTL3BhZGt4aU9SVk1yT3Bma3QyM3BHckppVDhLVURsMjBYS3FhZGw0WnM3cU5meWdtY2NEZnM4NmZTT2gyQjNydmFvVXpwdUt3ekh1aW9uRnZrbEJQbXQ0ZWM0RitWZE9Ga1VLSStmRDJLQ3A1T1JMWUtwVUVneFJISXBmVGUrYnIzVkNRWjk0OGlSelpTZVFQWXN1L2JUWTJ6eTM1cHA4N1hQWllxL1dTODUzVndVU2pSSWJER2lJNGx3QXMvNWJSODQ3SnpINHhKL1Q4Y29Ca0dHNklUWmhUOWNFSnN0YXlMVHhRRWdtWnNRcmhIM3ZNNXpaMUVBY2E5RG1uU1BCQVdMSDNGanZDRTgzSzF1TWo4SHpFOUozekhrb3luZWVaR3NtN0YzVlN3RHdobXpPY3Y3RTA1bGdLWlZpZUdScVNvL2NVQjgvNVVaYW5jNXQzWm5LN0tYczZvV1JmUklUeXFqQXdKT09FNUZ3cHlDbWg2cm9QWG1yS3NTVEErQ2cwNXVzWHlqY3JWQ29BU2hUVkhlbFU2QWVrRFExcGh2a2RiRmUvcW95Y041VzE3Zmh1Lzhja3RnaTNEN3dXYnlIb3V4ZFBGWUYzZVFCTVZHRVFVaUVjVEREMU05NWhsUEZaWVhML0QzUU0wcHhWZ2FING5qdU1lRlljemFGc3Y0eitMdncxU3o2WHBDL2RiaDVaemEzZ1V4WWVGR1ZHRWprWlNyNUZVYWVSSVlSN1FTM2wyeUd6eXZIVGExbzBYeEJjRFhyNkRET1JpQkltcThBQXdxUDEvYzhUYTV3VHU0QTJROC9kaHRIUmV0bWg4ekNDR1p5d0k5ZjhXdVZzNEJUYnU3V0p6aGxxTHZtYTEvcDRBRmlaWlArNHdVNTJvTWJqNC90UUtpVi9yQTF1QkJiOW5yaml0THRkQSs2S2EwV1lhYXdPTUZpY2VMUXRGUzdySjFIdEMxWndWQzV6b3g2MjZlSysycWYxZ3NObWsrUUlUalI5czdRZUsxSXc0NmovVm1VbEdIbkNQc2ZkdGVLb3RmOTJPbG5NTUdPR3FoNS9yNUVPSmJyVTJJOXgydzM2TEVXWHIzT1ZKU21rUUp2dmp0bXg1aDRpZExQc3RyWTNhVnppODMycGhJV3U1ei9OVVNoSm5rc0pHOVpjUVlTbURqV2RHc3B0UFh2Mk5NQmpwS2F6N3lLTEtGbWswNFB2T3NkYndHanZkZVlCWm14RXNhd0RwN2dVTjJ6KytWTVl2Vjg3dzRZQkVEd09GYlJSaEtWcUo3elFWVEtwSi9KQTNkV1hSd0dqNUNyZ25lSHp5bXRhQXVPYjhCZE9oOXBaVGlBcUpROXY3ZjV5YS9sMDZ1TGxLUlBxNDMrNHhIVHdDbEF4dGpleTJyblIyQ0NZeGJreU9hanFPaklXWFVtUWVjMmU1YjNmOVo4NmRGQjd5SVFobVNYYkprUWJJNEZXOGZPT25lSlNMOFJIRXZTYzRNdGRhOXBwSXNaS25MTjNGTC96eEdRbnNmUUk5UmpGNzF1WCtuQXlTQ2l0cEtIZXhFOG5hUlJEVlpTRDl2NU1kTzNtSUV6TnQxbEcwWDBuQlJQTXBTd3M3dXlXVXA3SDRscTdZZUdxcUl0amdxUGc2cStPaWpQZ25sRDhqaUkvK3VpQmJFS1h0UnZpNUdWWFNBV3Z5a29Gck9zQWZDNm5uQ3RYeU0zL3VSeUpFNHhIcGlkQkp4emhwNGtEU1F2WFhOeThkSUp1VXNXTVU0N0VVT2dtQWhoRkZVT0t5VzZJcCtac1NUb3NFMFhPQm1XZWhpcDFFNm5HbXVpZ2dLd2twSnljZ2hCRnowbXd2OXpLajYwajR5a0w5SDF4Z2cxNGdTWGhNaWFIUkNsVjV3NkV3bGlDS01YL2ZWem5qNFduRnY5VUJDeFZFdUZ2UEQ3N1JqMjBhRGZuTmkyWUZSRUxDdHNmSWVVZkRCRDdRZUp6Mk51R0l1SmdZejY3MzFWOUNkaHlNNFhuTGFjZU05ZDlraklJanNWRW8wZ3FBRzFvK1NCNk5Ib3J6ZldEVU5NTlVESkZpbUEwNmNQZjJMYWxHNlZISjJwRnNRTDBwYWx4bENvZlVVZDJxTXIzMHd3Ykl6MnVtV0JMZTVtMjBWa3h6S3NxUGtxcjhGQXVlOGp4d0RMd3ZpbjN4SzNLUDd6M2dNUll6U202SnJFZ0RaYVZ5dUc4Y2FVcFpMVUlBeW9JYnBzR0RTWlcwNHhGejViNXJqTWE0SlNraUhhenVtdFloek5DeWpSQ3Z4MVphN0h1cGFZdUtRWm5PdjZYaWdlSmkxNHBwQXRKSTJLS3RjOWpXanZpT3gvQkdPWVRQWVpZNW4weThjeTBDc2MzRzl3Vm82VkdzZHFoQWxyano5OWVmWDIxaW1UeFhYakZQVVFFRlM1RThkVkw0NWQ1MHNDTVJDM2QvSC9nSU84R29ISG16ZlQvUUtQYm14UlNISWhKQURvUE5PZDhLVHdkWnlDbFZkbzNlczlhRDlrbDhWTk5ZRUdzRWhPOGxPVXkwYVBJMEJrUzk0L1RrYlRYYWpuaDIwNEdERHh2a2VkQTMvdC9vMDJ6OGlGOU13bnpQb0pMTU9xTHdYK0V2RmFqVjMvODUxdVk2Y3VFOVAzeUxPMWRkcnBWU3NiMUFzSlVTL3VDVHJYMnVPYm1HUWMvVVhYdzEzZ2hleFE0WXEyNXp1Sy9UWGdzL2tKNWhuMDFIbVBiM2ppL0luL25Jd0M4U1ROc2N0cTJjWWRJZWpHczBvRGNvSEtid09rODFlWkM5ODRlRVVyM0pBYmU2ODc3OHpzOTd0RStqNE5oNjFDZFBjcG9FWDdwOUVtaU0ydFQxazk5c3h2Y0t2Njg3R3ExZEUrWWtOWGRrQW53VWlCc1c2S3R4OXYyTksyRTBMc1hXNHRVNHpFemR6NWk3M3NvSnR0WGt5SFhzR0dmajdrLzh5L1dBZmQzc29kazBpeVAvSC9GTG9VOHNFR2ZtbkJCR3ZPQnNsN1NKQkIyT0lHMjZGSzBMbmFsTEpHNDU1ZHhtamVkTHJFcmNSeHY5ZnpveTNDcU96SkZsd0ZPNjgxVHhyNG4wcmN0MVk4elU3ZnV1aWhUSHcxcHJOQzRHMnJtRDFqWGRiYUZkL2QyTDFnUlhibUwwandodVlXVW50RDB0d1N6WUllMFdtZnBjdGZNSUI0ZTR6WnR0bGdCdFZrL2o2TFRJT2JKYTcrMHpScGM2Ty9oQTd4R2JLV1hZV3JJcTBjWjJVeit4MXJhcXZ1bnZGd3FzaThnOW1aeUhBNG5yaHg1dWlvV2xhcG9ZU1orRGdHeG1FcEJNMlIvRmZnd1NINzQydE04OTRWdXNrdkg0Y3gxOHFOYnRWLytCMHVWZXpvZktOcmcreEU1ZTZHY3RJbFVEWHZ2N21UckJtbXRBYng4Qm5aUXRhNkc0ZTcwOVBvcHJWNXFKb1JDYkZKNXJnemgyT0hZbXlXTkl6azdSaU9LbmhCU2p0MnJIMWNmTnJTcVQ0WjcvTERmSHN3ZVkveDdscUEyTG90VVN3QWg3bFMxb2UyNnhab01ibktCZStkSHhEazZmZ0RFdXV0Y2RqeGZ0aCt0bG5RQ2wrWm00LzlEeEhGa1JRbWdRc0IrdnNSSWFTT3RDMThrU3AweTVTQ3hlbUJCKzhYSWMwNkw1OXh0Z0svU044Sk5XOFJVQ09EQXdBR3cyd3o3MFRmR01VMURDWXJhZ1NuVFltZXdsQ1BkMU5tTnRENlhFenh3VUdVMUpTOTNwVEthd0RDdmUvV3RqMU9MVlB1N2p3K1VqZWhLajAxcEJZcWE4ZUxsQXBPY05KMWlOa24wdk9nWEpWZkVLeXV4MXZPN3dzWlYwOVFqUnlRWWthSS9qSUo3dHg2ZDA1UGRZNUo1RnR4MmZjTE5CWVI1Q0lLMFF0Vzkyd0phL1J2NFZHM3NmQitOd1lLQmdhY1NwYVNxQmpienlMVk1tRGNkdStGQmNzdU41ZDFkQ1Nzdks3WFg3MWlxQlZ1ZWxXK2VuVS9kektPUlhvNG5iWVBEclFUd0wzWmJ3dTBnMC9ablpWYm1pM0p0MVdMczZvQm5GQ3BXSTRCSE1DMzZ6WTJWekExR2hFS0hiYk1pdTZjeG1yWXBQdVI5aTR1NzNJZ1pwTkV2cGk5a0Rmb0NYSkl4M2RodE5wQUZDS1lxeGxlcE9sc1FFQ05OOTFDdlJYMVJJa09FdmFrUU84VUc1WG5Ed1VJZUVLZXByK0tvYVQ0M09LME1EWnFseW9sNjZkSGNjM0ZDSXFNWDJxRElJajBQdWlRcmVXeEtGUHZGclpmaFJhbDlVejlsUmRlbTBUYldyam5pZTZtVndvSjg5MVZSZFRvQVFYZEFBQjV6eGpsZzVVL2ZCdzlmU3FYRUNrenhjeHhQR2Y1bWtWL21XTm5yWTFiUDE3OStvYUZoN1I3Mk1KeVIxZHl6ZlZPME9rTTN5anlYUzJGNWtIV09xSEJJMThDQ1lEMHlkdGtRbkJSdGh5a1pYb1l0UG9QaTduRFJSa1d6dU9lOGpwYmFoaTAvK292MGsxK2xucVRKYllNbDVoM0NQTHdIM0FhSC9rMkZLRUZabU5BakJ3clQ3QS92VDVJVXJVc3dTSGVnL2xmemF6Q1NURHNqNTMvSXRlUG51VitXWGtDeG9TSTR6OGtXRzl5KzZMOEdPRHhJT3ZQUWdLaGd4SEFDZHJNS1ZoZmI2NngwTTZlUFlKeFozVUxPY2NDNHN1elBjZzlnc2d5MTJMOUphSXNEOS82dXZNSGdGMlI4b3oyN0Y0U1JNekRyem55OVVkU0dpYmF3aWUzM2lYczY5NDJPSXlqKzF1bXg0S2YxNG4zbmZ3MHg0dmVabDY1Tk5NZ25WMWZvN1pkK0t4YzlzMnNaQW5UOHFTb1VwU255WW1abEU2Z1FPSlRaRXdBOXM3aER5Zjk0YjlUaDlEWDZ6UnJNdFNOVEtIQVVySC83cGVrQkRQMjJHY2pXK1hHSUNRYVprRE5pVTBXN1owNDdLV2Jna1c4UVB0bzRtSStsNUhuVjVZYXE2OWMxRkVZdHBxMUFkWWVYWHhBRTNISVY3RnQ0NnpZWTc3REtXcytMZnluMWpUSHR6bm45YVU4OXR6blB0Mng0TENKUExzUXJtdTRLVERaZGUzRnNteWtPeXhtN0JTK09xRnFTZ1lpeVgvOWVKQ0VkTWlpNEpIb3N4YXNNVWNZclZvUmdHeGJVNUpBc3YxS3VGWHFMZDVFWXpGT0pkQ1hlV1d3S1V3bWdqUytGcmNpeDZhQmcyNHdMejVxYkRhd0Zadk00R1lBLzZYckRleDdOZzdvNG9kbjJGMEsyU1BkME1GaTJZanB0RDZKY05KQXRRVmdNSGN5Mk92SnIxdnZqNnRoVi9IaTZLNWxkNkM1TEVQMHJNc1lPVFlMZjVPaFI0cTdtSVJUSlJGdkFTUUVWMnVMZ0NKWVJXb0xRY3hsNm5KNDNUTDR4eERZSUJkS2pNeDlYTTNRL1VOUFBEZGI3L0MyakFodjUyTVNwWnYyWldxdXA0NGx6MjN4NXRsKzN0d3FtVzAvMkFQTzJaUWRPMUMwUDlhY05LL0ZiRGJ4YXNJTmt4WmN4cHRNb1NRMklBUkViU1FKMysxL3VvYks5cURFR0N4VmVnZTdOMXp6ZFZjMmtta21uYy84cDVJOWEwZHJiSWZCZE11eXpnTnQyNWpuYm9aOW1UYWtVczBISEZ0b2JvZVJnQlNOWkxPejFVOUlvamlaeUpWTFp2SndCakFSMENWQjBaSC82cjVuMWR2bkV1L0hsSFNxQlg2RmZuNWpMTWVSaE8vK1ZXL0FTUlV4QmtzN3hBT3plOE8xbExyUWFPOWJubm1VL3ZTTWYxU0Ryd09SVkh4REdRSHZPWnkvMVNicytIemNteVVoQ21yS3IyMTB3UXE4TXd2eVRTQlUzbjk0SFBaNDBvbGVYdW5WRmFQSDRqZUlnR3dPMFc3V1RsYkdXcEdiNDhlOHNQcWl3MnpGNkp6Y0dXRERjK1R0SmR4dnZmMXE2cG9BQzd2Z0k4dUdOS05IejZ2ZFVSMUZYeTZOckRtSDN0Q3pMa3c2YVVuTDF4SzZEUGo0Z05ibUpwdUlsTU15emZPVEtDaHZ3dERwRzZzUTVwSi9naGVhcTIyU005VXBIay9JWDd4WUJYQWhxT0lGM0FsVEJ5MzlvQ0k4VW1odmoyazhNcHNzdDVmdnF0aXhDcWRUaHpZdW43dDVWR2tsMWR5WW5uTFZFbDY1ajRGcTR1ZU4zMCtBNEhCZkcycTdMV2s3WDBDbTI0VjdIZ2VSakxqNDBGM0NzMjZ1aS9Rc0FxMzl5M1NZVTVaaVM4K0VBMG11K2VaN3gyQ2VUUW82MXJadWVoZmNOVE1yNmJWbmx4bmFRc25FSDdIVS9oUWMra1dRWktzZERMbWZKRHZjOFhkVGdCcUg2SVMrUUorQjJZblZ3NXB5R09nOXNRT0ZjMmhFV1p3c0Y3RjhIVkxTa1J2S3BIcHNwZnIwQ1V4MWx2YnE5TitFaEZqbmZacTE1a0EyUlNWWXp4MTV3eU15WnBOLytTV2FzeSt5WTl2aXY1SWIzMkNRc0RVTDYrNWFaZlR6WmxsLzdzbWI3dVFKdjNzUXhPVGFzZnBoVGx0WDlXS1h5Tk55SXFpdTA2c0xQUVYyb091aHhHMmIzVzlVMGFQa3dETWQ1VXMwSTFtc1FEQWlDOUhQeUgrZ242eEtCS2hCU0NDMHM5ZFpkZDFYZlRqblkwdmhuQ2lka2wzK2lrSmEwZDd2eUdaUDVhazJTclliWkVuTXJYL2lQSFhtdEpZSGtKTGtiQXdNT2dGK2Vwcjgzbjl4cFloakNSZ0tsTWxBR0VnazRDS0Vvb3ZGQVM3RlMrU1BwWWo3NkQva1lKNDVWZjlsM0xnTTVMK3pQWlRubnJ5R2RoNlRUR1V3a2FySyt6RlNJOFZSUjdBQWZBN3gvS2NsTVhlcCt2QnRnWk4rZEMrNTBiZVF5Sms2UkNIeUtpa3JQSktvNUxqbGl6eHRLVkJGOUZBWUZHaFhMd2JVR0Z6SVhHcG5jNEdxeXJQNHRtSHJ5TTJHZENvVjl4VXc4dVVuaU1TMHFtd2NwNnVTbUswUUp0c2JIMTdnUTRrcDB6NGlVSVZLTmx3QmFyS29ZMCt1UXBDY3BsamNBRFQydzM1c3phcDVod0FZMlJkT2Zpb1kyTlY2ZG1ZaUk3UzlWSXY5bVc3WTYyaDBsbUduOXVOeGV6eXRRNXhpcGh6WldsVDY2TkRZNm5hd2l1ZjI1b090dEJDS0xsOURzVmE1UHpEVUwxWWFQeEZBbmxackVzdDNXZHA0aitjVUUxYzd6ZUZLWVpuYnl0aXVSN08xN0QxVURpaXJtSkQ2ZmFEVndOMHEwV2VoQWZOUnJHemFNN0lxVTh3UkE5NXoyNzVqRUFURS9WZGJJMERkQk51WnFwblRrdmZiZ2srbTVtOTJVRTEzUlBGQ3FUb3I4UWJkMGRNUFQxOXE2ajBadDVBTnoreTUxVTA3T3BOUDcycStEQUdDYWJndlVTVEFnR2xHS2pqc2tFTURWeVd5N2RlNDZXT1luOXdXZkIzTm1lcUxncXBoL1puZkt4OEV5cVdIQXpuQWwxQmcxaHA0ejYxaUFRRHRmSXZDWC9vQ00zM0ttUllVTTBMUFI0V3VOWlVjaVRUYUZRTnFDTDBPWHFtSTFMVDNpaFJSV1k0U1FqYnBCSVJudktkazdaZzVBdUVOanp6ZnlSWVpwNGFHclRWV2hubVJOKytSQXBtZVdXQXQzNUxzamd0RHhaakhweGRFL29hSTdXZjh2NVFjVk9CZ2pIM1lPRUttOXZGb00xQ1ArWXRQL0QrdlkvK2xFR0h6eUl6RGs3azNkOS9DMXZrL0NaTGJ5a0FjTkVnVmdJQVJBa1F0M2ZNUGMyZ2FqVzM4dFZLTnpGK2dSc0IvMXFSZHVqdFhKV0hNd0tES1BXWlZRUWFqejZZVkJLQ2RicXc3WlFqLytNc0N4SmJMZ3FUODRIdTNleFZZQjRpc1B2THZ6SWZzODU3QU5oZUQ1ek5ibnJkSGZ6OGtmMFpteEcrZTFERjN1bHNPd1B1cW02TmMyTExaNVZkbFlJZVR4aXNxaURnUnc2NzI3c2c4ZlNmVHJGbitJM1A3NTk1TXZyL0ZibkNQT2NoTmxkdW4yVVJic0pxckpOKzFUVzQ4Vk5pc3B0T3B1R25FNVNXWEoxdWZkdFZ0T1RJNklUWDg1SnFJSWpwQkVHcnVrdDMrM0FQb01abHY0c0x3c1U3WDVicEFnSFVic0VJVVhQY2pTZS9SVGhDaS9MQW9vMFppRytTT3VUVVlDb3VMRXVGc25pcUpLeXpQNHhzL3JRRGJiREp1bm92SmlKVFN3Z3V6bnh0bzlWdFFiKzlsRUJqdDNwUHZmczY1MnVQVlNOejF2QXJIOG1DU1NVckMzRTdkdVhMamJDZ3ZnK2lXdlc2QUVIMWtzSWdYOXN4cGFBUk0xL0tPcTF0U1R6dGNtcjdRYjhicnRBMkhrdS82Sjh6VWdqZEJXNDZwOHZhTHNRT1RZN2V1ODljK1MySnZHRTJ5c0NHbk9QdGZEemQ5RUdWZDFwSUN5Q1JPSS9BVXFJZnJVWWdEWHdMR0o3Sk5OZHlBRlZkZHk1ODVYckdrcno4UnhpanQralM0NjNuUForY001ajkvbkFLZDB2N2NKdWd5NEFrb29RVFpIZjE0UnpicFg1KzU2b01rK1QraXZLTDJ1aytiUXhWbE1pQ0RBU2JMelVDZXU2SjNUNnlTSTRmbVdIQWJjTHUvZ0ovdjZKTHZFcHJrTi8yRVNaWFZ6TnkzVmRvVDNUWHo2YmFNcHZYVmVjS1k0ZHhZVjB2RmRJVzhSdTd5S1ZISUdPT0FFZ2w4bHNPcHgvK3FmZVB0QVVTOFloU1ZWNFhRaStPWURxNGthR1FxR05LQUlpa1QwY1Z1Nk1hbGlFRi92eDZzeEVDZG05RHVlaHlicHp5R0hLWFQxbEZrNWRxbzltWUE0dVkwYmR2ZVoxOTJCWlNONDNnaHhuRWtreTFIcEZzK2I5WnBseHl3UlVRZzhubkE1OGh5K1hGRWhBQ3NRbW9ycm5Ic3pHUVJHQnBoRHdtUm9ZVEIzVittdmRzRGJOMXRiQUY5aDJiNmJOSUZsRXZwWExzdkFtUU9ybFVXc2R5SmZmczBTUFJnZkdZdXNwSzJFeGxWdXJYRUlnaFBpc3EyVnVDUzM4R1ZmZFBLbXhCSmg3ZHJkNXlpdXpwdGVHMU9UYzRabWxkZVk3Q2Vhbm4vbW04VHNERzZDWDVWUlVVL3NQKzFXT3hyQm1iMWV1cDlBcFVhQzJ3Y3pHNjVVUmMzNHNGTlJHOTgxRGQ2RndhMit0SDZNWnI1RjcxeVM4QmJFOWFXdjlLWjkzZ3FoNnRIUHFOcEI3K1h3WW5WTzNQZjBvZnhYRmJ4N3RSaURsNkIxb2xCRjgvY2lUMHZaK1Fpc25WQnRhTHpFclF5RXRoT1dvSUpwdEo2QnV4THJwZ2IvS0NKdlR2RkpOK2xNZXE5UW9RSjNuYm41RjdhTmZlWk83RzdTUzdkbkVYM1RvUFBsWVZYM1laZ1pYL2FJbzVlbFlpNzFDUEhMTUVlRmNRNG9wUVhYbDI2emZPSWluK3BTSUgyeFdZeVFta01FSGEwSE0yaXNoY1VLNk01U2lROWkrdUZBQXl3b1gzTmcrNVlvTjNaSStVNnNiQmUvMXd4OHNQNVhsZ0Nna1MwMjEyWmtRMHJVSWhSa0t6OUhxM0Y1TXBpSEw5T1JJeGp2SGdoSEljVUpjN2VhQk1pTUVZL3FreEMzUG1od0t5VUNGWDBvRUhkMWVJZmR6Z2EzZURWMkliK2NNaVM1dFk5VzRuaWpGSUhrcDlkYnVPaWhnYnJtNlZCOFZvS2Y4bUJSenEwekw5aGQwc1dCdGwydHRZa2J2UDFBUW5DcXRZd01VbE5tWkpSRm8wMEZtVklHQ0UxUEc0R1FOM3NUbXJBdWpQNTBjM0djL0VQQTFTeitQVktnQWFkQnU0VFdEQW42TnlDc1BVSVVCZUpVQWdBQ0VRcXoxcUpSeEFVNU1sQklSSmdia0h5M0h0aVA0ZDdKdEhiMlZzWENGQUpJRlluYmhtZHphUHlwOXpoNk92bTJhNU1Id29vdWprUXNCQmxBZlQ4OUozRUpsNFNEcVQzSUVFdElUQXFxR0Fnc3ErNVJ3YlV0SXVRcjFxMjVhUC9jbldUZTl0azVkYzEweVdja3o4OERPSW9hQUR1S09iZUxJLy9kYzBxM0JOQlVIcjBhbjVDZlRMNUVrZnZOeTltUlJqc09PcnJacEdRY0lGTTdwaUdxSm01S1dicWpIMnVIUWlBQUpYNUJ4bVN2SllZeWE0THkrcFhIRFpXUitVVCthdW41aUh0SWpMTjFqM1h6anRRWVVYdWtFaThRS0o3QW9xc3VYZUtvNkt3MWtpZGthaWNIQlZ5VXNpTVoxdm9DTzRvRzFXRkVadmlDUHpqUGdXM3kvbmFaRTEzOTk1MnV6bnBOQ0lBOWVmM21rZGtlQ0lvMTg3d01mZSt2SlpRbzlSRGdNdWtqaWlPQTdtUXdRUnFCWnhYTlBVQ0VieGhYcEVidWZVQWVNa0F5TmN5bFRQNHEwY2lqQ2l3Yng5UU1paTNuclhXSk9CQXVIaEdLb2UybmN1aWFBTVFTSUJrckNDUUNRaEFGdG9Hb3ZKaEJjcjJneVhMajQ0TWUrTjhEQXVCY2phQk9CNmlrMmtHV2lqVlA0dklqN1hnN3A3QjE5dW9LRVNkU2JKSk9qWFNMbmNzQzVEZEZId01UWnpXNDJFaXh4Q25pR2hCOWUxTVI0cDZiWGNWV1BtZHBCR0gra0VYa2RLKzhKZTkxdHNUVVBXSzF6Zk9ya3pldHZ4UUJYaUcyelc5RVIxdkZ5RDhLeVZGVDk5ZFNZRWlqS0pWRVF2emxxNG9DZkF1Y1NQUkZIbTkwN251bFJ0NHlmRVlqRkVvSG9FbGlsL21VQTh6YWh3NHZtR1h6YzNrR3FMdjBRZFMyTWFnUUJwYjNBQVhYTEEwdUJQNHRlWHlNZ2p5ODJ1WU5IVDFmeDJpcEc5cWNPTGR0UmhtSDA4RW5OY3AvWi9MdC9mcjN6YWIyWk9Mc2VRTGFld0Z2eU8vWFl5eStWMUN4L2tlMmNkTmJ5WlhrMXl1M0xlRjgwaWthQjFzeEtFZTM3bGY0b3d5alpmcnJwUm83SnRUVnc5QTYxeHBvb0hwNFFyL0c4K2Zad1NzbTBtWU5FOFlKVXF3Q21mRHEycTA1MnZDTHFJM1Q2M2xzblc4RUxiL1NhcVo5Uzh2QXFQZnRGdTFWYURyKzV5QVppQ0pRQWRNQk95Tkh4cXlNeUtaTUNJQ0pJTllNRUx6a3hhNjV5TVZXQ0htMU91dURQdzg5UEVHRGFYeUNYc3oreS8vbmxFRjRGQW5hTS9MaXh2TVFVbDdna2JtUDQ2Z09wSkNjUmszTWdzMHN1UHBwdGxURXVjRlhBRGdFVFBpTVk2eFNEdFdUTXpQUmRSTWYwdTFlK3h2NFNhV0l2all1bHJIWFh1VFczZ3I0aEZzZ1hjdUQvZmYrT1ZpdWZxWkpxTTNhUWd0Sy83N2psSnJ0cnNMTk5mRXhXMnZSc2pHNTRKSDBhbzVtVkdnZ1JNaWVuN2dpcXlXVjlUeFV2dms4TUxJWEVLeWNlZUxNTUUwTm02U3BHMEora2ZBL3hFZHV4dkRMaGRqUDhweGNHQXJPUWU4KzB1V3EyTGk0UmRvVXk4Uk5aVkp1d2kyZlhiK1RxRzIrcFZNMlR3Q3Y5ZU5Nd0hENHJDNmJnUTdhSU9OUlhXOUlLQ3dBSEd5N0ZqWWx6Q3lPUUhGdGliRitZUitRMUY3cmN3SmtKYjBPNFhMTTF4VGhEcUJLZzFVRVd2YkVLYUZvYWdCNFZ6Zm5ZSnJtcmNUSW8zSUk3QnRTaHNCckRFMlNFMHBMS0MzSXZBUno2a0R2eWlNTmRuV0szemFqcG1XaU5vT0g1RFpQVHRiYy9uaEdnK0hIRTF2cGdqL1lpcEJaRi9NV1pteGZpNWozQ1ozSDhlenlmWnpZQWVsOUZEVnhNTWtZN3VmTWhsam40U0RCUnNXeEwzRSs4QzhpVDErVkR3VzZGQUkzQW5IL3prWDRLeUhtQlBQZ3FRTnJCMXJYaW1yUmcyRTVpVzJFU1dRQUR3bmJKMDZ0ZnNUWjdhSFRxK3NKV0pSOVlIeUlxb3owR2ZmTDliTE15RmtaTTFTVEFTQW9jMDJMVFdiN0VISFQxNjBRS0NOMUxaa0hRNWtLSDNvSUlob0l0WnQxMDRsRXJlWldyMlQ0SmZKbjV4cXhwVGF4UTI2YUNCSFpuV3NlYjNneVgyNFk4ZWtoMk1TWU9yY0xPazZDZXMyMklNeS8vZjhZc1lsV2ZoNDlmVjRZdjcrcW8xT3Fra1FvM3BMeUVCUk9iMXVJeW40T2l0UGFjcCt0S2pPdzF2TWlqZlRNcmlBTEZyamtaM0FCTFVUSWJzOUE2Q1BkcXZCSXNQdFhVcnlXb2tHay9mSWwxazR3SmhTM0g0Z3lrYmxHVTIzc0g1SW4ydWRJaTY4djJZOUFGbEhua2IxSUdJR0pxc2prRTNtS0haTncvcHNrUnpzTEdVeU1kNmRqbTFDTVk0YWFIRCtDZ2cwT05TRmR2aGhJSlhuVVdVejd4clhVUVN3MWxPQmNIRzlhaWtIbTRGREU1MlVDakEyd0V3STNNem0zb3J0Y2htd25qcFQ0M1BIRVpuQk1taHJDWTUreStiTVdPK2tHNnZMck5iYlpIaFBKay9ZTUhtTXYyZm5nL3c1c2RFOE1rRHNkM3h2V3pDd0RJdHRpK1dVU2k1U1VDZDlBcTB3Z2IwaDhSRW56Z240MTBvMWRKU3FBaWMreTM0KzJub3E1TmVWUkR4cHgzbzVEbExKVWEwVXpBejJyOGQxVWt0TCs4YlZSQ3pERDZ0dklsSWtDc3FLMUNpZUdWdENpcUtHbFJieUF5d0RaemVpTDF1NzI1Nmwrb0hCd1lUSTZyb1NBTlBRRENRRVUzTkozNGdPaEFCL0lLTmJLZHFtdjFhRXY4aUJLMGQ3UGhQWUl3KytjaHRia0x0MDNoZ3kvcnZyZzdKOFBTL0krSnJkUmg4Qmk1Q3lpRDl5OFdOMmtFbDlTWGtrbUZQYk5TWm8wOUs0LzJGa3BueXRoZ2pDYzgvZU9KNVZ4YUJZcHZnK3ZUM1hlY1l3MXVrblI2Z0g3SXFNMUM1Vzg5MmRkMDljajNTZEkyN3hEekhZTmZyVVBDM0xlQzhYUDJZbC82a3ZVZDllejVsclAveUQxcTBvRjROM3czamt1VytTa2hCRnJhZWRCdkxwRUx1WFVYdE96TUZvYWtEQmlWK25mRXUvY2J0UmsvMDltbHhla2YrT2w5OVVFR0FkQVFzbnVIdFlTS0tjS1JodzR3Q1RVeHlnUzJOc0FqU1dra1FjNTc1bmZ3eWlwS0dockFDbmdydGN2eWg5a05vOUFCOTl2UFBka3dVOU5xV2xDWmRsMkZybEVBQnM3NnNQY2lQOFhSd0dBd3BxaTh3eUhDeE1vVGxqeVN6dDlwUExvNEU3dWRWa2VPT2JUTUJXMlJuV1RjUFVCY09IZHg0OGh4R2IyaU9QbTVwOURBUmF3REVaN1pzZWcwYkN3V2FraWZpcC9Na3NnbENMRE5KN2lKbWYwL1N1QTFUQmRmZmQ0ZC9tNVJNY3U5N05sOENWQkZLMkZwOExVVDBzNmhmckpRSFdhaWVZZmlXMkUrVGxCWWdwbGgzUmhvRHFwV05RL0tlSGlla3BsRGdMQ2dCYzJyUEpTbXVsMFZrUjB5YStQOEU4Z3cyalBDK1k4OHgxYlpoQ1dZWWExTnQxV0E1eExZMitLRnB2b1VIYXRXeDZPT1lZaTgwUkluSWNKQmVtaDVMc3g3NzFScFJzbzJTT0Vpa0xjcC90cnA2UmUyUXN5dHl3cVBYbzQrMkQzVDlTU3NvbFVxUlVHZmphYm9lRkZCVFdSSDVpUnVleG1RRGxzWit1Uk92KzhVL0l4R0VzWHhyLzlXTTRVSmxkamRsMEdCM0lYSXBkeFdJei9uS1pMNjl1V1Bkdjc4ZE80WnduVDkyNDN3cEQ2Sm5ueWZVSllMQ3hERmNCKzJncm5hVTJqWVdLbEZKYlRFTEtLcnBqSCs0UUt3Nk9naWhiTEpMSmhOVllPMVhjcXBWL1VKU3JTblN2U2pHVXF4UkhWYWhmUzhOMEFXUURMUXdjUVh5RmdYYTdwalhuNU5nMWRNaGMvN0k3UGhhNUZKWEJ6aDUrVmJ6UGlrRzFDdW5maHQrNk15SGtwSEtnN2ticTczclNFd3djN3h4Y2I2S3NHTnh4THhyLzNUdlhLaE9vK2Y2ckkybWNpa0xEZmRGczFNUFJYNVRDY1V1UmtVbjlyUFhyejloR1A3MCtxZ1ZEcmc4aUNGL0VacVFjcEMrRy9Xejk1Nk9tVE0yT1Q1MDFxdWpUTXgzWnNkWVpYbDJLR0VQL3VoUkFrSXlsT0pZQ09SVVNsOSs1VVg2TXcvQzlPb0NwNTk4RDRIZi9Hc3RneTBpZVFVMmV0WnBuNXRQdit2RVcwY1E4aFFjTGNId1hrZG16NFo4NlB5aGphTFpUMjJRbHk0Z0U3M3BVNVcxdFZxUFBjZnlld0h6Mm8vZnRtckt2YUNGb2VpK3BkazQwbHNxb1ZhZW5kZURTamplOVNoblVvcUdJZ1NQUUxQdXdUZ1doR1pYQVJZeDBPZ0h4TmkwOHlmVzQ0UkNtL3VUd1FMaDI3MGJtYWxQZXZLTzYwM2ZGcG0vcHViV0tBMEViYU9aOHBtRkNZOUFYNmZKenlNOGFuQnFqbkhkUVBIcm9VWndwMlhNRFM0L3NLVHZtRzVqODJRa08rcW9Ed1NpTElNUk11MVVQaWpyejQvR3hOb3FOMXNzcUZ3NW1FcWVKUXR2T2VQdk04SlhVSDVhK0xIdGg1TEVtK1dXdzF5a2lSakxiYUFjbTV4SmQ4bThjYXM2aVZTWjZCRnZNcXQ3MUlrSU80a0tDWGNmdURyWUtMUnRsckh0SWJEbjg5VWFPSXloVEZTV05DYjVTRUZ4U2ZvV3hmc2Z2NnM2dnd6bk9zb2dvUmIyZUJLWlV2YlR4T2J0dHV0YXlKYzB0bUxlbTh1cE50ZjRSR1B4ZTVKd3plVjU3dmFubTFWWmZQLzBZUG9NYnV1VHRHamQ4ckFtME1FT291SWtuTFIvY243VlV2TVU2ek83SVh4eWtiM1ZRS3ZmYklGeHpPY2c1elF0eldiUlc5U1VqNWpMK1FkbjNBT0plVzZqeSt5QW55cjdNMmEyYkdTdERSNjZsbU1PU09aNVgvdTNrQXYxbStHbHIwOFlKWWdRcDlVWWlQeUJPb2lrVGx1MGpTMEgrUDAwc1diVmE0YngzcGdXQ3lCYVFJbnl3REVZMWNtZVM2ZVVueW1sM09yYlRUYmh0NnBNWmlLUE84WTczOVNwYlRBd21wYnFTVXQ1b1ZvTDVNKzR4NHMxWS9HUjI3SEpmSjIxWDMvMXBMbkRqeUo2MWxGTTFmdzlxUEFwUXVxRzRHZjU3aDc5NTRXTFpRemJuMGdFZWdjdmYvTWZIb29TeUwrTHMzeFBEN3BNdmpQbFBscEJQRXVzRlAwd1g3bW9ZUUVIazRSTE1EaWU4YTdROGF6cGhyRmQwbG93WithUkFOOFZHbStpbmpFcFo5MGYxczgvVVpDOGFEQjZzdnlmOVdTNk5GMTd4RWhJcDhlT1MvSW5mUXM3dE5pT3pwMmY4dmU0MWxpN0VMTGhFR2NkaHZEMzJ5aGJpZ2N0SDZ5MWpjWVFpSDV0aUdEaHF5aHNLT0RibmF0WEJQdGVDVEw4MjJ6VnhxUVdiSXN2MUpFUVNSSzZ0akh5S2VGeGUxR3EwUTZZMFBoYXl6THdJOWxYSURuVDM4K2ROL3pKS05vR0Y3dFNzb0lwWFV0MzRrbXBCMDdBR3o2cG9ydFJydWU2b3cvbHpvVXNyckZtQmc2dXZmTWhBVkpYUUxlTFljY1dwZzIrKzVwQk5wbHRkWEEvZ3lvb05sWDlRWk54UDBqSm9hdlRWek5iMzVoM2hWSUNSdStOdWZ3RHo5aUhlK2EvdnZjNjYxYVcyU0J3ekwzLzNwZmMvQWFZclNzeXNlRkhLWDlBbzJIUTg1TUZHTmZzZjUrMXVZekpheVJGZzE5aDlocmxZbGxlczJMbklLMEFWZE5vbzN3eDZlNDl2d0ROVzg3WFhyOC9zZTB0NjBybGpYcjhyZ1J3dlBmTitna3EyK2ZRTkFLYjRrNnlHbHNSWkZmL1h1NWV0dldya1U1U0IweFJhRzRTMFMrTGpCd2dMUE5ZNTIrZENiRHd4WUlhZE1RRmdNNllxTzMxTFFoYXFpekEwTzlNYk16bFJYZVkzOGQ5MDFTVzE1N2Z4em0yT1NnNXVNM0ZwWVRzSU9wQjQvVVVKTmJ2c2FQKzdQcVZsWklXM0xrVHBrM3h2N29xUG02blN6RXh3VWtBMHlydzdJSVhwR3pSTzdMMloxRXRVaG04L21HRkNKUzg5cWdhLy9uZTBtSEVrNGNyclltcE8yZW4rMTJzVUZ0Z3hiMU54Z0ZtazJYdHl2K3QzSXV2QjVmRk1lbUFlTUwvaklnQ1p5V29RNzhidUh4ZU9FQmtZajRQS2VjRHJVTFMvRzRvemxIYnJYLzZkWUgvSXo0elF0dE5iek9JakVxb3dBQVVhRVdQTHV3aUF5QmoyOUdSY0xHWVdtc1Q0L2FlanpQalc5aThKT3N0bWJsVVVJMjBZN3ZuUzhVZWdYZFFCbStxNGVhV3FOdG9zRmd3N0grcFh5Y2hEejhYMStOazYzZnA2RVFFRGVPWVZNTkxnMnNSRE50bmE5c3doWHQwVjZIT2gyY3pjVnJSemUrUzBhcU9UR21rNERxZGhrSmpyN1MrYVpvZXJMNmFZQ1Zha2s2eFFzdzJwTk1kWUthbWJJSW5jUHFpNDFJalZkQkZwWTdZVXI2QWV3Qzc5MVpTM2lFb2lidzh1enN1MWZBZUVQVlZReEEwNzZMOXVxRjBGRjNtS2F1ZXllU1llT1lxci9VQ1hoMm16dUUwcG9JWkIrUlhIRFYweWNVakhkQ0s0N1M2ZVVOUjFqWmd2bmdESnBSdHcwcFVFZjQyUXpHVHlaOU0xaDlKSXJNajRiYzJGdlllbDZualgxTndoNHl2VWhHcm9LR0tyV1RReDlKZXpPWVp5UXRra2IxTVRpaTBtckZuREREbVpOOFRza2RwTk9tSGN1bSt6OHVkZjlNbDhhOWQ2TVZsSFB0VzQ3NDlRYzFNNkJRbjAySXhsL2lVTWJSbnc0cXNSOWpRU1BuQnZKK2J2aTdvUk1EQkFaUkFTSnFMWnFhd3RrYnhVUHI5aXRuZXU5MlNRRmxZRlVvWCtaUDZQRVphUzFkc0JRQVJBTTZkRkRjbWhVUXVaL1lwbm1naUFqM1JVdEJOa1FoQ3l3VzV0V05LVXllYVVqTXVOcDA3ZWZXRkhsdDQyT0luZnRyTU5NWStlMGlaOU5pWGE4NVZpcmR3a093Z3NtdXRMbkJzQWgyeEhUa3BmM0FaUnREUkRHQjhFR1l3dGtWWXBMLzQxbERhY0UxY01OVVJtOG9nN1o1dEQ5L1F4T25SeUZ2THY1Z1ZZYWZianBwYWhMWGtad1pXVVQ4NWhtWmpETDk3UmptTnVjME43cG9NdGQzYkM4Y1grVWZBeWlHeStjcGxISzdkR1RyU2hzaFpOeDJNZEhnNjgzdWUxWXB6TnVhSTYyWjdnOExhWWtXZVZzNm1mcVNtUVZUOCs1NFNYYkY4cWdmaGtkVk95ZDlrZm40YXp6c3V5aFk0N0NOZ3hjTzlNM2dRTXRySGZacTJWcjNZSXNLQTByRjRETHQ4R1ZRbGJKTkZucmkrYU9acXdWM3lmRlEvL1VUNHMrUC9kMElrcThPZkFwLzBtb1NLMmNKdmF5VzNKcFpGVEN4TDcrR2UxUEFldDVBV2dESXB2dWJDcC8zS0ZCNnpNUkl4VHJEZ2lyWlpwSjZjUWdlb1daNzVMNjMwYTVlTDJYcmlLMDdFRmtnNHlkbTM0UDZmQy9xbWRmOVpRS2c2UHRWNzZld3drN2MvYld2THF3U2RkbnBFN1N5TitkSHlaSUN3cGF0MVU0TG1oMGZqL2Q4TGM1eVpYT2JyNHZ1T0FjaXIvUFBpUjBtRWZEcXF1WWordHJLVjhWaStRdEdmUHpJaktTY21SbW5rSnR6clFwRE9CeTc4enVvb3cxdTYvd0ZZWSthbWlQNWdxVHhYVC91b3IvcDFYZ1hFdWo1WXpNN3hwODJLMlBzMEc2TndRd01CRURxeEIwUU9ncUUrZzhCNFVNUUFiRXpTMkJ3Q2crb3ZmYUE4d0RSSTVIV0NqZklSUHBlUW1tZ2I0V1VUZUM5Z29LUHh1N3hIM29OYnFCZ1VGbzNZZ1lvLzlrY0FvWWJTVmhJMkN3anNvQWtOc0c3aGxFZmtIWUtPZzhOKzhSL3dPdlB4Ri9ocFFGaVJ1Zm9CTmdCSVh4Q1pCS1FzeHBBS285eDQvQzB6T0l1NDN3Q1pBaVgrQUpEQURpcnNBbXdBbFhvUWtJUUMwc2FPVndMaFFDdEhpb0NPTHVBNnhDVkJpc0VrZ0ZmUUdpZnZvdnlBSlF3Q1VPTXhmMGs4Rk5nU0plMGUwaWU4QmN4ZEFOeWd4ZHJjb0FDU0JPSkNLSkJ0YzVkZm94N1hkVndnT0d6b3F4NzBjZVJMZDVJc0IrY2RaZnRGN3M1eVd0bHR6THR4S2E4Rm04eVMvbHRPbStMdnB2VUFWaCtWYUcwVGNxeWEzTkxCV1hEQVdKMkhqSEdQdjQxSmFHcWlDcjVZajk2N3ZRVnRGM3BZZThZZFhTNzhyclpDQml0SkpTVUxsZ3F4dzFIQm5tak5Qb2lJNHdaWHUzbnpyTGwwa2VoSFFDR2lUajNsTitwSjF2VFFPdENiZERiZXNCRi93ZVp1akFEWG5pd0JyUTE3V3ZxeWwrWDc1RENZcHJ3aXd3c3JMU2k5ckljNldqcm5mTTJ1K0doODdpN0tTempSM2kwQnJUMTdXbWF5dCtjWEptN21VS0xPblVMU081bVZkemJxeHZoSzZpLy9YTzRwNFNFLy80ZlEzdElzdDhpM0RPNTExQ01qMmxWVmNRck56OTRvdzBwYTl6c3JML3RtdENBQUJGTERwKzcyQjZhTjgveVpoMkN1QWQ5NThQd0hBaHgvWFYvaDd6bnR3QzI0RU1CQUtJTUEvTWw3Y0grVi8yVzVqcThOM25GMHF1VHV5YjJRZkx2SEFvQm9KUkhaTFJVK2VOdE1LSHdsVHhLUkJKK2Z5Y21vb2p0OUNZekdTZCsvdEUvVWI1VUtXWFNKZXZNaXB1bU9OcWdBL0M1WjdZSWp2a3BRZVEvcW1mT1pmdlJkYU9tdDlUelRnbGQ0NHRFdmFSZ1B1L1hEMzhVUkhBWDU5TTM0QTdOQVRqZE9hTktuNVhkSFZKMDFUaW1zaDIrVGRLL3NndEkycWQwbk1WRks1L1VuZFV0a2IyWDJTM2d2Qm5iVzRKMW90dy9PM2I4Vm9JS0Vmcm84Q0F2b21lQUJzMHhQeDAwcWMxS0t1U09xVGhDbkZ0NUJwNU4wRCt5QzRqV3AyaVc0cXRZMUs3NWJJV2NqdnVXd3Z6T3lzMVQweG96Y3U4V3VkR3cwSSsrSCtLTUNtM1NMTHJCc25wSjNxeXBiekxCM2NiQm1sVmtjM0tJQlFJdFE5NnJzazFmN3R3L0xuYjJ3bGd0NGRndWkzbU1sMjVxZ0NIRjZtZE1nSFQ1K1YrQnBJQnE2WFY0SDhZci8yZkM0RnE2eEN5Y01JdnVod01LVjRuc1YyRng5Mzc4Tzhkam50VkZxNjZtYUx6aUFqaWRibnIrbWtGdnVWT1g4ZEt4RnZnNHpsS091b2FXV3Fxb0ZIOVNaVW9McFlrUVdycUVKaHdlWU9CNVBHdnFISThSSFZNbW50TktscWRjMFdrMEZDRWxsbE0zYlNSUHNsT1gvbWxZaTBRZkJrYWpxcXNreWxOZUJYTDZjQzJjVXFLMWd0TXBtMXB3MEhpNHZuMWV2YWNkRVhPWnNmalZVOWRFNW81L05uekZxYWJWblkxMUZ6SHZTaEZnc3doR1pVWXpjYTdVdXBQY2ZRME5jY3VaVVRPbGc2L3h5N0dXdXlYMnlDQXdYWlpMOEYySjFPaWh4WXRDakJydEJFU0xueTc2TGdhaXhrYlk3M3RxbTJCbkg0SXJMcUVLY3M4NHd3d3pPL3UxeWdzMmVicWVSM3lEUm15OHo0bXFGeHgrM3NwUkY3WjFSZ2dTSDd1R3BiY0xnYjB5ZGdWcDVnclJsVHhBT1krVWtqVWxBNi80eGN2dzI5T2w5V3QyNWVGYVJMa0dIUEhkVWlZMHJHMWx0ZHMrbU5XbDFtWFpldFdiaFlrSUpIY3J4a2t4TDlZYlFFL0ZPUWdjWkdCUjR6dmkzSUxYZ0pyK0k2WElQbk9oNlN6SVFXY01JOStWYURJQzh6SEZ3ZW01MGhaN2RyNGhBdEJxZTByblM5b2FiQUlEMHlBSzcxb05ZVlFYT2xLNHJ1ZUZlTVhFZFh5RkpOVjV4QWloQjZVOTJGVG9rV0lPQ1VBdFFJdDQ1L1J4bm01U3RRVlNhV1hjYWJhMVFwVzhYa3UyZGxxcXJxV0pWUm5LTzBqZnhaY1RpakVEcVphdVNtNGlwalJNbVZyMXF4c2dweGUxRFJ2MTFxSWlINUo2bXN1TzJ1SWJ3bWg4K094RkZxcUR3NzdyWjYyM0dwVTZwTXZRcXRUVEZyR1RmS0ltS2FKUGVPcUlpNHlrb1YxZVhzWEtQYW9xYitxTlRFd2E1UjVaYm5LeVJtMWJJVTJSZHBTYk9SbzNSdGl1WEtNNkpwNTZ1cjdQTzdyaHloQ3ZXNnU4bFZzcXYzbmRPWlVIQktsaTJ5YmJXUUxUczU3TDNtSU5kcFo1M2p5TW1ST25QQnJtaWJ6TCtJOVBNOCtCVkp5cUNEcCtMdzlQNDdkM1A2V3lBV2tlci9QMFRlZlBoNlM0MFNVbW5EdEd6SDlmeDZvOWxxZDdxOS9tQTRHayttcy9saXVWcHZ0cnY5NFhnNlg2NjMrK1A1ZW4rK2NQUUtUVkNzeUVRbGVoZ1lsZkwzUm9DeXQ1K1VjMXNjMzFTbFJxMXFlSXRGbm43VStVWDFHazNTb05ka21VZjdnSEh4VnB6WjRpV1lva216cVlBWThjamZ5YitZR2dwSG9yRjRJcGxLWjdLNWZLRllvcmY4V0VhejFlNTBlLzNCY0RTZVRHZnp4WEsxM214Mys4UHhkTDVjYi9mSDY5dTdsYXZZeUFGdElJQ1BINHA2Zkg0NThPWDd4MWY5L2Z0dlNDTVQ0eDB6a3hWVG0wRDlDSmpFK3VBb3JMRm9wY2t3amhvVnpVNDdNSnFVeVRiWTZKRERUakJrRkIySFpVcW1wa21yLzR1SnB1dEc5NjlSZXdpSjJPZzBJTE5tcEV3alFUYkxESFBOTVUrTGRLOW9hbG5ycG0vR1ptN1dabS9PNW03ZTJqWi9DN1pRbXdkdW1VL25qdnR1MTc2T3IwYlExQlc1TmJsUWJVdXJDTlRsSzJVUjZDb0dpOE1UaUNReWhVcWpNNWdzTm9mTDR3dUVJbkdKR2pvOUFBQUFBQURBRWx3ZlhxWFdhSFY2ZzlGa3RsaHRkb2VybTd1SHA1ZTNqNjlmK2QrV0FBQUFBQUFBaWFZTWpMQyt5TVBMVmVtRmZsQ010WlJnM3RCVnhOZGVLRnV0bHluUFVUU1g1ejVmU1Q3MlhFcldxZ0lhMTJveTdWWko3YWNhVFdOcVRibko5YVpyOUpUS0hxc0xLMHJMQ25LN2VwUU5ZMFB1NVpPRCthZlZqVzJ6aEZ0Q29IQXRJVmlFVlJQSExTM3pKQS8zekpxZXFDU0xYRFdSMTlMbU9SWG5wRWJYS0dtejNLOWZMYWRQVFRaNzg5TXlOV1V2ZVRLTWlqVGw5TDA4N2NQZmdEQ0QxaDVWNUt4dTk3SjcvbTA2VkJzQUFBPT0pIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQo8L3N0eWxlPgo8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ0cmFuc3BhcmVudCI+PC9yZWN0Pgo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDU0MCA1NDApIiBpZD0iMmE3MGY4YTUtNjVkMC00MjdkLWIzMzItODNhOGNmODE4YTc5IiAgPgo8L2c+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgNTQwIDU0MCkiIGlkPSI0YTczY2YyMC0zMWEyLTRmZGEtOTZjNS01NjE5YTI1ODg0YzgiICA+CjxyZWN0IHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiBoaWRkZW47IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB4PSItNTQwIiB5PSItNTQwIiByeD0iMCIgcnk9IjAiIHdpZHRoPSIxMDgwIiBoZWlnaHQ9IjEwODAiIC8+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoNy45MSAwIDAgNy45MSA1NDAgNDkzLjY2KSIgID4KPGcgc3R5bGU9IiIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgID4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC0zLjc4IDE1LjIpIiBjbGlwLXBhdGg9InVybCgjQ0xJUFBBVEhfMzEpIiAgPgo8Y2xpcFBhdGggaWQ9IkNMSVBQQVRIXzMxIiA+CiAgICA8cmVjdCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDMuNzcgLTE1LjIpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1MSwyMTksMjA4KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0yOC4yMywgLTQ3LjIpIiBkPSJNIDMwLjczMzYgNjAuODY4OSBMIDE5LjUyMjMgNTQuMzUzNyBMIDI1LjcxNzUgMzMuNTI4MiBMIDM2LjkyODcgNDAuMDQzNCBMIDMwLjczMzYgNjAuODY4OSBaIiBzdHJva2UtbGluZWNhcD0icm91bmQiIC8+CjwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDQuNTMgLTQuNjYpIiBjbGlwLXBhdGg9InVybCgjQ0xJUFBBVEhfMzIpIiAgPgo8Y2xpcFBhdGggaWQ9IkNMSVBQQVRIXzMyIiA+CiAgICA8cmVjdCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC00LjUzIDQuNjYpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1MSwyMTksMjA4KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0zNi41MywgLTI3LjM0KSIgZD0iTSAzNy40NDEyIDMyLjA4MTcgTCAyNi4yMyAyNS41NjY1IEwgMzUuNjExIDIyLjU5MTEgTCA0Ni44MjIyIDI5LjEwNjMgTCAzNy40NDEyIDMyLjA4MTcgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAtMS40OCAtOS40OCkiIGNsaXAtcGF0aD0idXJsKCNDTElQUEFUSF8zMykiICA+CjxjbGlwUGF0aCBpZD0iQ0xJUFBBVEhfMzMiID4KICAgIDxyZWN0IHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMS40OCA5LjQ3KSIgaWQ9ImNsaXAwXzEwNV81MyIgeD0iLTMyIiB5PSItMzIiIHJ4PSIwIiByeT0iMCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiAvPgo8L2NsaXBQYXRoPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDE7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IHJnYigyNTEsMjE5LDIwOCk7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHRyYW5zZm9ybT0iIHRyYW5zbGF0ZSgtMzAuNTIsIC0yMi41MykiIGQ9Ik0gMjguMzg4OSA0Mi4xNTE0IEMgMjguMzQ5IDQyLjE1MTQgMjguMzA5MiA0Mi4xNDA5IDI4LjI3NCA0Mi4xMjA0IEwgMTcuMDYyOCAzNS42MDUyIEMgMTYuOTU5OSAzNS41NDU0IDE2LjkyMDIgMzUuNDE2NCAxNi45NzE3IDM1LjMwODggTCAzMi40NDg1IDMuMDMyMiBDIDMyLjQ3NTkgMi45NzQ4MiAzMi41MjY0IDIuOTMxMyAzMi41ODczIDIuOTEyNTYgQyAzMi42MDkyIDIuOTA1ODYgMzIuNjMyIDIuOTAyNTMgMzIuNjU0NSAyLjkwMjUzIEMgMzIuNjk0NSAyLjkwMjUzIDMyLjczNDIgMi45MTMwMiAzMi43Njk1IDIuOTMzNTQgTCA0My45ODA2IDkuNDQ4NzIgQyA0NC4wODM1IDkuNTA4NTQgNDQuMTIzMiA5LjYzNzU3IDQ0LjA3MTcgOS43NDUxNiBMIDI4LjU5NDkgNDIuMDIxNyBDIDI4LjU2NzQgNDIuMDc5MSAyOC41MTcgNDIuMTIyNiAyOC40NTYxIDQyLjE0MTQgQyAyOC40MzQyIDQyLjE0ODEgMjguNDExNCA0Mi4xNTE0IDI4LjM4ODkgNDIuMTUxNCBaIiBzdHJva2UtbGluZWNhcD0icm91bmQiIC8+CjwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDUuNjEgMy4yNSkiIGNsaXAtcGF0aD0idXJsKCNDTElQUEFUSF8zNCkiICA+CjxjbGlwUGF0aCBpZD0iQ0xJUFBBVEhfMzQiID4KICAgIDxyZWN0IHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgLTUuNjEgLTMuMjYpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0zNy42MSwgLTM1LjI2KSIgZD0iTSAzMC43MzM2IDYxLjA1MSBDIDMwLjcxMSA2MS4wNTEgMzAuNjg4MyA2MS4wNDY3IDMwLjY2NjIgNjEuMDM4IEMgMzAuNTc4NyA2MS4wMDMyIDMwLjUzMjMgNjAuOTA3MiAzMC41NTkgNjAuODE2OCBMIDM2LjY2NTkgNDAuMjg3NiBMIDI4LjQyOCA0Mi4xMDA4IEMgMjguNDE1MSA0Mi4xMDM3IDI4LjQwMTkgNDIuMTA1IDI4LjM4ODkgNDIuMTA1IEMgMjguMzM0IDQyLjEwNSAyOC4yODExIDQyLjA4IDI4LjI0NjMgNDIuMDM2IEMgMjguMjAzIDQxLjk4MTMgMjguMTk0NSA0MS45MDcgMjguMjI0NyA0MS44NDQxIEwgNDMuNzAxNCA5LjU2NzUxIEMgNDMuNzMyNyA5LjUwMjc4IDQzLjc5NzYgOS40NjQxNyA0My44NjU3IDkuNDY0MTcgQyA0My44ODc0IDkuNDY0MTcgNDMuOTA5MyA5LjQ2Nzk3IDQzLjkzMDUgOS40NzYwMSBDIDQ0LjAxODkgOS41MDk3MyA0NC4wNjY5IDkuNjA1NDggNDQuMDQwNyA5LjY5NjU0IEwgMzcuNzA5NyAzMS44MDU3IEwgNDYuNzY3MSAyOC45MzI3IEMgNDYuNzg1MiAyOC45MjcxIDQ2LjgwMzkgMjguOTI0MiA0Ni44MjIyIDI4LjkyNDIgQyA0Ni44NzQ3IDI4LjkyNDIgNDYuOTI1OCAyOC45NDcgNDYuOTYxMSAyOC45ODg1IEMgNDcuMDA4NCAyOS4wNDQzIDQ3LjAxNzcgMjkuMTIzMyA0Ni45ODQ3IDI5LjE4ODcgTCAzMC44OTYxIDYwLjk1MTIgQyAzMC44NjQyIDYxLjAxMzkgMzAuODAwMyA2MS4wNTEgMzAuNzMzNiA2MS4wNTEgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSA1LjYgMy4yNikiIGNsaXAtcGF0aD0idXJsKCNDTElQUEFUSF8zNSkiICA+CjxjbGlwUGF0aCBpZD0iQ0xJUFBBVEhfMzUiID4KICAgIDxyZWN0IHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgLTUuNjEgLTMuMjYpIiBpZD0iY2xpcDBfMTA1XzUzIiB4PSItMzIiIHk9Ii0zMiIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIC8+CjwvY2xpcFBhdGg+CjxwYXRoIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDU1LDcyLDExNik7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHRyYW5zZm9ybT0iIHRyYW5zbGF0ZSgtMzcuNjEsIC0zNS4yNikiIGQ9Ik0gNDMuODY1OCA5LjY0NjMgTCA0My44NjcgOS42NDYzIEwgNDMuODY1OCA5LjY0NjMgWiBNIDQzLjg2NTggOS42NDYzIEwgMzcuNDQxMyAzMi4wODE3IEwgNDYuODIyMyAyOS4xMDYzIEwgMzAuNzMzNiA2MC44Njg5IEwgMzYuOTI4OCA0MC4wNDM0IEwgMjguMzg5IDQxLjkyMjkgTCA0My44NjU4IDkuNjQ2MyBaIE0gNDMuODY1OSA5LjI4MjAxIEMgNDMuODQ5NCA5LjI4MjAxIDQzLjgzMjkgOS4yODMxMyA0My44MTY3IDkuMjg1MzQgQyA0My43NTk5IDkuMjkzMDUgNDMuNzA3MyA5LjMxMzc1IDQzLjY2MiA5LjM0NDM4IEMgNDMuNjIzOCA5LjM3MDE3IDQzLjU5MDIgOS40MDMzMSA0My41NjM2IDkuNDQzMDMgQyA0My41NTIzIDkuNDU5NzIgNDMuNTQyNCA5LjQ3NzQ2IDQzLjUzNCA5LjQ5NTk5IEwgMjguMDYwNiA0MS43NjU0IEMgMjguMDAwNCA0MS44OTEgMjguMDE3IDQyLjA0IDI4LjEwMzYgNDIuMTQ5MSBDIDI4LjE3MzUgNDIuMjM3MyAyOC4yNzkyIDQyLjI4NzEgMjguMzg5IDQyLjI4NzEgQyAyOC40MTUgNDIuMjg3MSAyOC40NDEyIDQyLjI4NDMgMjguNDY3MyA0Mi4yNzg2IEwgMzYuNDAzNCA0MC41MzE5IEwgMzAuMzg0NSA2MC43NjUgQyAzMC4zMzA4IDYwLjk0NTYgMzAuNDIzNyA2MS4xMzc0IDMwLjU5ODkgNjEuMjA3MSBDIDMwLjY0MjkgNjEuMjI0NyAzMC42ODg1IDYxLjIzMzEgMzAuNzMzNSA2MS4yMzMxIEMgMzAuODY3MSA2MS4yMzMxIDMwLjk5NDggNjEuMTU5MiAzMS4wNTg1IDYxLjAzMzQgTCA0Ny4xNDcyIDI5LjI3MDggQyA0Ny4yMTM1IDI5LjEzOTkgNDcuMTk0OCAyOC45ODIxIDQ3LjA5OTggMjguODcwMyBDIDQ3LjAyOTQgMjguNzg3NSA0Ni45MjczIDI4Ljc0MiA0Ni44MjIyIDI4Ljc0MiBDIDQ2Ljc4NTUgMjguNzQyIDQ2Ljc0ODQgMjguNzQ3NiA0Ni43MTIyIDI4Ljc1OTEgTCAzNy45NzgzIDMxLjUyOTIgTCA0NC4yMTAzIDkuNzY2MjMgQyA0NC4yMjM1IDkuNzI4NjggNDQuMjMwNiA5LjY4ODI3IDQ0LjIzMDYgOS42NDYyNiBDIDQ0LjIzMDYgOS40NTE0OSA0NC4wNzgzIDkuMjkyNDUgNDMuODg2MSA5LjI4MjUzIEMgNDMuODc5MyA5LjI4MjE5IDQzLjg3MjYgOS4yODIwMSA0My44NjU5IDkuMjgyMDEgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIDApIiBjbGlwLXBhdGg9InVybCgjQ0xJUFBBVEhfMzYpIiAgPgo8Y2xpcFBhdGggaWQ9IkNMSVBQQVRIXzM2IiA+CiAgICA8cmVjdCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgMCkiIGlkPSJjbGlwMF8xMDVfNTMiIHg9Ii0zMiIgeT0iLTMyIiByeD0iMCIgcnk9IjAiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgLz4KPC9jbGlwUGF0aD4KPHBhdGggc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoNTUsNzIsMTE2KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0zMiwgLTMyKSIgZD0iTSAzMi42NTQ2IDMuMTMxMTEgTCA0My44NjU4IDkuNjQ2MjggTCAzOS41MTAxIDI0Ljg1NjkgTCA0Ni44MjIyIDI5LjEwNjMgTCAzMC43MzM1IDYwLjg2ODggTCAxOS41MjIzIDU0LjM1MzYgTCAyMy45ODIgMzkuMzYyIEwgMTcuMTc3NyAzNS40MDc3IEwgMzIuNjU0NiAzLjEzMTExIFogTSAzMi42NTQ1IDIuMjE2ODIgQyAzMi41NjQyIDIuMjE2ODIgMzIuNDczNiAyLjIzMDIxIDMyLjM4NTYgMi4yNTcyOCBDIDMyLjE0MTggMi4zMzIzNCAzMS45NDA1IDIuNTA1ODMgMzEuODMwMSAyLjczNTc5IEwgMTYuMzUzMyAzNS4wMTI0IEMgMTYuMTQ3MiAzNS40NDI0IDE2LjMwNjEgMzUuOTU4NiAxNi43MTg0IDM2LjE5ODIgTCAyMi45MDA2IDM5Ljc5MDkgTCAxOC42NDYgNTQuMDkyOSBDIDE4LjUyNTYgNTQuNDk3NiAxOC42OTggNTQuOTMyIDE5LjA2MyA1NS4xNDQyIEwgMzAuMjc0MiA2MS42NTkzIEMgMzAuNDE1IDYxLjc0MTEgMzAuNTczNyA2MS43ODMxIDMwLjczMzYgNjEuNzgzMSBDIDMwLjgyMDYgNjEuNzgzMSAzMC45MDggNjEuNzcwNyAzMC45OTMgNjEuNzQ1NSBDIDMxLjIzNDMgNjEuNjc0MSAzMS40MzU1IDYxLjUwNjQgMzEuNTQ5MiA2MS4yODE5IEwgNDcuNjM3OCAyOS41MTk0IEMgNDcuODU2OCAyOS4wODcyIDQ3LjcwMDUgMjguNTU5MyA0Ny4yODE2IDI4LjMxNTggTCA0MC41ODUxIDI0LjQyNDIgTCA0NC43NDQ4IDkuODk3OTQgQyA0NC44NiA5LjQ5NTQ5IDQ0LjY4NzIgOS4wNjYxMiA0NC4zMjUyIDguODU1NzUgTCAzMy4xMTQgMi4zNDA1NyBDIDMyLjk3MzEgMi4yNTg2OSAzMi44MTQzIDIuMjE2ODIgMzIuNjU0NSAyLjIxNjgyIFoiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgLz4KPC9nPgo8L2c+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS44NCAwIDAgMS44NCA1NDAgODk5LjAzKSI+CiAgICA8dGV4dCB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LWZhbWlseT0iQ2F2ZWF0IiBmb250LXNpemU9IjY1IiBmb250LXN0eWxlPSJub3JtYWwiIGZvbnQtd2VpZ2h0PSI3MDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDAsMCwwKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyIgPjx0c3Bhbj5UaGUgcG93ZXIgb2YgT2RvbzwvdHNwYW4+PHRzcGFuIHg9IjAiIHk9Ijc1Ij5pbiB5b3VyIGluYm94PC90c3Bhbj48L3RleHQ+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC41NSAwIDAgMC41NSAzNTMuNSAxMTUuNzEpIiAgPgo8ZyBzdHlsZT0iIiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICAgPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgNzguNSAwKSIgID4KPHBhdGggc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMTQzLDE0MywxNDMpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB0cmFuc2Zvcm09IiB0cmFuc2xhdGUoLTUzOCwgLTI0OCkiIGQ9Ik0gNjk1IDM0NiBDIDY1My41Nzg2NDM3NjI2OTA1IDM0NiA2MjAgMzEyLjQyMTM1NjIzNzMwOTUgNjIwIDI3MSBDIDYyMCAyMjkuNTc4NjQzNzYyNjkwNSA2NTMuNTc4NjQzNzYyNjkwNSAxOTYgNjk1IDE5NiBDIDczNi40MjEzNTYyMzczMDk1IDE5NiA3NzAgMjI5LjU3ODY0Mzc2MjY5MDUgNzcwIDI3MSBDIDc3MCAzMTIuNDIxMzU2MjM3MzA5NSA3MzYuNDIxMzU2MjM3MzA5NSAzNDYgNjk1IDM0NiBaIE0gNjk1IDMxNSBDIDcxOS4zMDA1Mjg5OTI1NTQ5IDMxNSA3MzkgMjk1LjMwMDUyODk5MjU1NDkgNzM5IDI3MSBDIDczOSAyNDYuNjk5NDcxMDA3NDQ1MDggNzE5LjMwMDUyODk5MjU1NDkgMjI3IDY5NSAyMjcgQyA2NzAuNjk5NDcxMDA3NDQ1MSAyMjcgNjUxIDI0Ni42OTk0NzEwMDc0NDUwOCA2NTEgMjcxIEMgNjUxIDI5NS4zMDA1Mjg5OTI1NTQ5IDY3MC42OTk0NzEwMDc0NDUxIDMxNSA2OTUgMzE1IFogTSA1MzggMzQ2IEMgNDk2LjU3ODY0Mzc2MjY5MDUgMzQ2IDQ2MyAzMTIuNDIxMzU2MjM3MzA5NSA0NjMgMjcxIEMgNDYzIDIyOS41Nzg2NDM3NjI2OTA1IDQ5Ni41Nzg2NDM3NjI2OTA1IDE5NiA1MzggMTk2IEMgNTc5LjQyMTM1NjIzNzMwOTUgMTk2IDYxMyAyMjkuNTc4NjQzNzYyNjkwNSA2MTMgMjcxIEMgNjEzIDMxMi40MjEzNTYyMzczMDk1IDU3OS40MjEzNTYyMzczMDk1IDM0NiA1MzggMzQ2IFogTSA1MzggMzE1IEMgNTYyLjMwMDUyODk5MjU1NDkgMzE1IDU4MiAyOTUuMzAwNTI4OTkyNTU0OSA1ODIgMjcxIEMgNTgyIDI0Ni42OTk0NzEwMDc0NDUwOCA1NjIuMzAwNTI4OTkyNTU0OSAyMjcgNTM4IDIyNyBDIDUxMy42OTk0NzEwMDc0NDUxIDIyNyA0OTQgMjQ2LjY5OTQ3MTAwNzQ0NTA4IDQ5NCAyNzEgQyA0OTQgMjk1LjMwMDUyODk5MjU1NDkgNTEzLjY5OTQ3MTAwNzQ0NTEgMzE1IDUzOCAzMTUgWiBNIDQ1NiAyNzAgQyA0NTYgMzExLjkgNDIyLjQgMzQ2IDM4MSAzNDYgQyAzMzkuNiAzNDYgMzA2IDMxMiAzMDYgMjcwLjEgQyAzMDYgMjI4LjIwMDAwMDAwMDAwMDA1IDMzNi41IDE5NiAzODEgMTk2IEMgMzk3LjQgMTk2IDQxMi42IDE5OS41IDQyNSAyMDguNiBMIDQyNSAxNjUuMSBDIDQyNSAxNTYuNzk5OTk5OTk5OTk5OTggNDMyLjMgMTUwIDQ0MC41IDE1MCBDIDQ0OC43IDE1MCA0NTYgMTU2LjggNDU2IDE2NS4xIFogTSAzODEgMzE1IEMgNDA1LjMwMDUyODk5MjU1NDkgMzE1IDQyNSAyOTUuMzAwNTI4OTkyNTU0OSA0MjUgMjcxIEMgNDI1IDI0Ni42OTk0NzEwMDc0NDUwOCA0MDUuMzAwNTI4OTkyNTU0OSAyMjcgMzgxIDIyNyBDIDM1Ni42OTk0NzEwMDc0NDUxIDIyNyAzMzcgMjQ2LjY5OTQ3MTAwNzQ0NTA4IDMzNyAyNzEgQyAzMzcgMjk1LjMwMDUyODk5MjU1NDkgMzU2LjY5OTQ3MTAwNzQ0NTEgMzE1IDM4MSAzMTUgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAtMjM1LjUgMjMpIiAgPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDE7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IHJnYigxMTMsNzUsMTAzKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgdHJhbnNmb3JtPSIgdHJhbnNsYXRlKC0yMjQsIC0yNzEpIiBkPSJNIDIyNCAzNDYgQyAxODIuNTc4NjQzNzYyNjkwNSAzNDYgMTQ5IDMxMi40MjEzNTYyMzczMDk1IDE0OSAyNzEgQyAxNDkgMjI5LjU3ODY0Mzc2MjY5MDUgMTgyLjU3ODY0Mzc2MjY5MDUgMTk2IDIyNCAxOTYgQyAyNjUuNDIxMzU2MjM3MzA5NSAxOTYgMjk5IDIyOS41Nzg2NDM3NjI2OTA1IDI5OSAyNzEgQyAyOTkgMzEyLjQyMTM1NjIzNzMwOTUgMjY1LjQyMTM1NjIzNzMwOTUgMzQ2IDIyNCAzNDYgWiBNIDIyNCAzMTUgQyAyNDguMzAwNTI4OTkyNTU0OTIgMzE1IDI2OCAyOTUuMzAwNTI4OTkyNTU0OSAyNjggMjcxIEMgMjY4IDI0Ni42OTk0NzEwMDc0NDUwOCAyNDguMzAwNTI4OTkyNTU0OTIgMjI3IDIyNCAyMjcgQyAxOTkuNjk5NDcxMDA3NDQ1MDggMjI3IDE4MCAyNDYuNjk5NDcxMDA3NDQ1MDggMTgwIDI3MSBDIDE4MCAyOTUuMzAwNTI4OTkyNTU0OSAxOTkuNjk5NDcxMDA3NDQ1MDggMzE1IDIyNCAzMTUgWiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CjwvZz4KPC9nPgo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjg5IDAgMCAxLjg5IDgyMi4yNyAxMjcuOTEpIj4KICAgICAgICA8dGV4dCB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LWZhbWlseT0iQ2F2ZWF0IiBmb250LXNpemU9IjUwIiBmb250LXN0eWxlPSJub3JtYWwiIGZvbnQtd2VpZ2h0PSI3MDAiIHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDAsMCwwKTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyIgPjx0c3BhbiB4PSItMTI3Ljc0IiB5PSIxMi41NyIgPmZvciBHbWFpbDwvdHNwYW4+PC90ZXh0Pgo8L2c+Cjwvc3ZnPgo=", - buttonSVG: - "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMDAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwMCAxMjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cmVjdCBzdHlsZT0ic3Ryb2tlOiBfX1NUUk9LRV9fOyBzdHJva2Utd2lkdGg6IDU7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IF9fRklMTF9fOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiIHg9IjEwIiB5PSIxMCIgcng9IjE1IiByeT0iMTUiIHdpZHRoPSI5ODAiIGhlaWdodD0iMTAwIi8+Cjx0ZXh0IHg9IjUwJSIgeT0iNTAlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LWZhbWlseT0iR29vZ2xlIFNhbnMgVGV4dCxHb29nbGUgU2FucyxSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSI1MCIgZm9udC1zdHlsZT0ibm9ybWFsIiBmb250LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0ic3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDE7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IF9fQ09MT1JfXzsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB3aGl0ZS1zcGFjZTogcHJlOyIgPl9fVEVYVF9fPC90ZXh0Pgo8L3N2Zz4=", -}; diff --git a/gmail/src/views/leads.ts b/gmail/src/views/leads.ts index 46f1be5c9..0ea63c901 100644 --- a/gmail/src/views/leads.ts +++ b/gmail/src/views/leads.ts @@ -20,7 +20,6 @@ import { IconButton, LinkButton, } from "../utils/components"; -import { UI_ICONS } from "./icons"; import { getPartnerView } from "./partner"; import { getSearchRecordView } from "./search_records"; @@ -111,7 +110,7 @@ export function buildLeadsView(state: State, _t: Function, user: User, card: Car const searchButton = new IconButton( new ActionCall(state, onSearchLeadsClick), - UI_ICONS.search, + "/assets/search.png", _t("Search Opportunities"), ); @@ -136,7 +135,7 @@ export function buildLeadsView(state: State, _t: Function, user: User, card: Car if (state.email.checkLoggingState("crm.lead", lead.id)) { leadButton = new IconButton( new ActionCall(state, onEmailAlreradyLoggedOnLead), - UI_ICONS.email_logged, + "/assets/email_logged.png", _t("Email already logged on the opportunity"), ); } else { @@ -144,7 +143,7 @@ export function buildLeadsView(state: State, _t: Function, user: User, card: Car new ActionCall(state, onLogEmailOnLead, { leadId: lead.id, }), - UI_ICONS.email_in_odoo, + "/assets/email_in_odoo.png", _t("Log the email on the opportunity"), ); } diff --git a/gmail/src/views/login.ts b/gmail/src/views/login.ts index 0ac040f98..fdcc40ca7 100644 --- a/gmail/src/views/login.ts +++ b/gmail/src/views/login.ts @@ -12,7 +12,6 @@ import { } from "../utils/actions"; import { Card, CardSection, Image, TextInput } from "../utils/components"; import { formatUrl } from "../utils/format"; -import { IMAGES_LOGIN } from "./icons"; /** * Initiate the authentication process, and redirect to the Odoo database. @@ -56,33 +55,9 @@ async function onNextLogin( registerEventHandler(onNextLogin); export async function getLoginMainView(user: User) { - const loginButton = btoa( - atob(IMAGES_LOGIN.buttonSVG) - .replace("__TEXT__", "Login") - .replace("__STROKE__", "#875a7b") - .replace("__FILL__", "#875a7b") - .replace("__COLOR__", "white"), - ); - - const signupButton = btoa( - atob(IMAGES_LOGIN.buttonSVG) - .replace("__TEXT__", "Sign Up") - .replace("__STROKE__", "#e7e9ed") - .replace("__FILL__", "#e7e9ed") - .replace("__COLOR__", "#1e1e1e"), - ); - - const faqButton = btoa( - atob(IMAGES_LOGIN.buttonSVG) - .replace("__TEXT__", "FAQ") - .replace("__STROKE__", "white") - .replace("__FILL__", "white") - .replace("__COLOR__", "#2f9e44"), - ); - return new Card([ new CardSection([ - new Image(IMAGES_LOGIN.loginSVG, "Connect to your Odoo database"), + new Image("/assets/login_header.svg.png", "Connect to your Odoo database"), new TextInput( "odooServerUrl", "Connect to...", @@ -91,19 +66,19 @@ export async function getLoginMainView(user: User) { user.odooUrl, ), new Image( - "data:image/svg+xml;base64," + loginButton, + "/render_button/875a7b/ffffff/Login", "Login", new ActionCall(undefined, onNextLogin), ), new Image( - "data:image/svg+xml;base64," + signupButton, + "/render_button/e7e9ed/1e1e1e/Sign%20Up", "Sign Up", new OpenLink( "https://www.odoo.com/trial?selected_app=mail_plugin:crm:helpdesk:project", ), ), new Image( - "data:image/svg+xml;base64," + faqButton, + "/render_button/ffffff/2f9e44/FAQ", "FAQ", new OpenLink( "https://www.odoo.com/documentation/master/applications/productivity/mail_plugins.html", diff --git a/gmail/src/views/partner_actions.ts b/gmail/src/views/partner_actions.ts index 1ec550826..6144d422d 100644 --- a/gmail/src/views/partner_actions.ts +++ b/gmail/src/views/partner_actions.ts @@ -13,7 +13,6 @@ import { UpdateCard, } from "../utils/actions"; import { Button, ButtonsList, IconButton } from "../utils/components"; -import { UI_ICONS } from "./icons"; import { getPartnerView } from "./partner"; import { getSearchPartnerView } from "./search_partner"; @@ -80,7 +79,7 @@ export function getPartnerActionButtons(state: State, _t: Function, user: User): actionButtonSet.addButton( new IconButton( new ActionCall(state, onLogEmail), - UI_ICONS.email_in_odoo, + "/assets/email_in_odoo.png", _t("Log email"), ), ); @@ -89,7 +88,7 @@ export function getPartnerActionButtons(state: State, _t: Function, user: User): actionButtonSet.addButton( new IconButton( new ActionCall(state, onEmailAlreadyLoggedContact), - UI_ICONS.email_logged, + "/assets/email_logged.png", _t("Email already logged on the contact"), ), ); @@ -98,7 +97,7 @@ export function getPartnerActionButtons(state: State, _t: Function, user: User): actionButtonSet.addButton( new IconButton( new ActionCall(state, onSearchPartner), - UI_ICONS.search, + "/assets/search.png", _t("Search contact"), ), ); diff --git a/gmail/src/views/search_partner.ts b/gmail/src/views/search_partner.ts index cad280b68..7a4db33e1 100644 --- a/gmail/src/views/search_partner.ts +++ b/gmail/src/views/search_partner.ts @@ -22,7 +22,6 @@ import { TextParagraph, } from "../utils/components"; import { buildCardActionsView } from "./card_actions"; -import { UI_ICONS } from "./icons"; import { getPartnerView } from "./partner"; import { onEmailAlreadyLoggedContact } from "./partner_actions"; @@ -154,12 +153,12 @@ export async function getSearchPartnerView( partnerId: partner.id, query: query, }), - UI_ICONS.email_in_odoo, + "/assets/email_in_odoo.png", _t("Log email"), ) : new IconButton( new ActionCall(state, onEmailAlreadyLoggedContact), - UI_ICONS.email_logged, + "/assets/email_logged.png", _t("Email already logged on the contact"), ); } @@ -177,12 +176,9 @@ export async function getSearchPartnerView( } if ((!partners || !partners.length) && !initialSearch) { - const noRecord = btoa( - atob(UI_ICONS.no_record) - .replace("No record found.", _t("No record found.")) - .replace("Try using different keywords.", _t("Try using different keywords.")), - ); - searchSection.addWidget(new Image("data:image/svg+xml;base64," + noRecord)); + const title = encodeURIComponent(_t("No record found.")); + const subTitle = encodeURIComponent(_t("Try using different keywords.")); + searchSection.addWidget(new Image(`/render_search_no_result/${title}/${subTitle}`)); } return card; diff --git a/gmail/src/views/search_records.ts b/gmail/src/views/search_records.ts index 96806903e..73f09c4ec 100644 --- a/gmail/src/views/search_records.ts +++ b/gmail/src/views/search_records.ts @@ -21,7 +21,6 @@ import { Image, TextInput, } from "../utils/components"; -import { UI_ICONS } from "./icons"; async function onSearchRecordClick( state: State, @@ -169,14 +168,14 @@ export function getSearchRecordView( recordId: record.id, query, }), - UI_ICONS.email_in_odoo, + "/assets/email_in_odoo.png", emailLogMessage, ) : new IconButton( new ActionCall(state, onEmailAlreadyLoggedOnRecord, { emailAlreadyLoggedMessage, }), - UI_ICONS.email_logged, + "/assets/email_logged.png", emailAlreadyLoggedMessage, ); @@ -194,12 +193,9 @@ export function getSearchRecordView( } if ((!records || !records.length) && !initialSearch) { - const noRecord = btoa( - atob(UI_ICONS.no_record) - .replace("No record found.", _t("No record found.")) - .replace("Try using different keywords.", _t("Try using different keywords.")), - ); - searchSection.addWidget(new Image("data:image/svg+xml;base64," + noRecord)); + const title = encodeURIComponent(_t("No record found.")); + const subTitle = encodeURIComponent(_t("Try using different keywords.")); + searchSection.addWidget(new Image(`/render_search_no_result/${title}/${subTitle}`)); } return card; diff --git a/gmail/src/views/tasks.ts b/gmail/src/views/tasks.ts index 2771c0636..89ff114a8 100644 --- a/gmail/src/views/tasks.ts +++ b/gmail/src/views/tasks.ts @@ -21,7 +21,6 @@ import { LinkButton, } from "../utils/components"; import { getCreateTaskView } from "./create_task"; -import { UI_ICONS } from "./icons"; import { getPartnerView } from "./partner"; import { getSearchRecordView } from "./search_records"; @@ -112,7 +111,7 @@ export function buildTasksView(state: State, _t: Function, user: User, card: Car const searchButton = new IconButton( new ActionCall(state, onSearchTasksClick), - UI_ICONS.search, + "/assets/search.png", _t("Search Tasks"), ); @@ -134,7 +133,7 @@ export function buildTasksView(state: State, _t: Function, user: User, card: Car if (state.email.checkLoggingState("project.task", task.id)) { taskButton = new IconButton( new ActionCall(state, onEmailAlreadyLoggedOnTask), - UI_ICONS.email_logged, + "/assets/email_logged.png", _t("Email already logged on the task"), ); } else { @@ -142,7 +141,7 @@ export function buildTasksView(state: State, _t: Function, user: User, card: Car new ActionCall(state, onLogEmailOnTask, { taskId: task.id, }), - UI_ICONS.email_in_odoo, + "/assets/email_in_odoo.png", _t("Log the email on the task"), ); } diff --git a/gmail/src/views/tickets.ts b/gmail/src/views/tickets.ts index 143aa7ef5..8fea2d41d 100644 --- a/gmail/src/views/tickets.ts +++ b/gmail/src/views/tickets.ts @@ -20,7 +20,6 @@ import { IconButton, LinkButton, } from "../utils/components"; -import { UI_ICONS } from "./icons"; import { getPartnerView } from "./partner"; import { getSearchRecordView } from "./search_records"; @@ -112,7 +111,7 @@ export function buildTicketsView(state: State, _t: Function, user: User, card: C const searchButton = new IconButton( new ActionCall(state, onSearchTicketsClick), - UI_ICONS.search, + "/assets/search.png", _t("Search Tickets"), ); @@ -134,7 +133,7 @@ export function buildTicketsView(state: State, _t: Function, user: User, card: C if (state.email.checkLoggingState("helpdesk.ticket", ticket.id)) { ticketButton = new IconButton( new ActionCall(state, onEmailAlreadyLoggedOnTicket), - UI_ICONS.email_logged, + "/assets/email_logged.png", _t("Email already logged on the ticket"), ); } else { @@ -142,7 +141,7 @@ export function buildTicketsView(state: State, _t: Function, user: User, card: C new ActionCall(state, onLogEmailOnTicket, { ticketId: ticket.id, }), - UI_ICONS.email_in_odoo, + "/assets/email_in_odoo.png", _t("Log the email on the ticket"), ); } From dd03979ff0d155ee435e283a4786e2f548d897e2 Mon Sep 17 00:00:00 2001 From: std-odoo Date: Fri, 19 Dec 2025 10:17:24 +0100 Subject: [PATCH 7/7] [IMP] gmail: commit `package-lock.json` --- gmail/package-lock.json | 2832 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 2832 insertions(+) create mode 100644 gmail/package-lock.json diff --git a/gmail/package-lock.json b/gmail/package-lock.json new file mode 100644 index 000000000..5436d5f4b --- /dev/null +++ b/gmail/package-lock.json @@ -0,0 +1,2832 @@ +{ + "name": "gmail_http", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "gmail_http", + "version": "1.0.0", + "dependencies": { + "@resvg/resvg-js": "^2.6.2", + "dotenv": "^17.2.3", + "express": "^5.2.1", + "express-async-handler": "^1.2.0", + "google-auth-library": "^10.5.0", + "googleapis": "^167.0.0", + "jsonwebtoken": "^9.0.3", + "mailparser": "^3.9.0", + "node-cron": "^4.2.1", + "pg": "^8.16.3" + }, + "devDependencies": { + "@types/express": "^5.0.6", + "@types/node": "^24.10.1", + "@types/pg": "^8.15.6", + "concurrently": "^9.2.1", + "prettier": "^3.7.4", + "prettier-plugin-organize-imports": "^4.3.0", + "tsx": "^4.21.0", + "typescript": "^5.9.3" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@resvg/resvg-js": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.2.tgz", + "integrity": "sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==", + "license": "MPL-2.0", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@resvg/resvg-js-android-arm-eabi": "2.6.2", + "@resvg/resvg-js-android-arm64": "2.6.2", + "@resvg/resvg-js-darwin-arm64": "2.6.2", + "@resvg/resvg-js-darwin-x64": "2.6.2", + "@resvg/resvg-js-linux-arm-gnueabihf": "2.6.2", + "@resvg/resvg-js-linux-arm64-gnu": "2.6.2", + "@resvg/resvg-js-linux-arm64-musl": "2.6.2", + "@resvg/resvg-js-linux-x64-gnu": "2.6.2", + "@resvg/resvg-js-linux-x64-musl": "2.6.2", + "@resvg/resvg-js-win32-arm64-msvc": "2.6.2", + "@resvg/resvg-js-win32-ia32-msvc": "2.6.2", + "@resvg/resvg-js-win32-x64-msvc": "2.6.2" + } + }, + "node_modules/@resvg/resvg-js-linux-x64-gnu": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.6.2.tgz", + "integrity": "sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@selderee/plugin-htmlparser2": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz", + "integrity": "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "selderee": "^0.11.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz", + "integrity": "sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/pg": { + "version": "8.15.6", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.15.6.tgz", + "integrity": "sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*" + } + }, + "node_modules/@zone-eu/mailsplit": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/@zone-eu/mailsplit/-/mailsplit-5.4.8.tgz", + "integrity": "sha512-eEyACj4JZ7sjzRvy26QhLgKEMWwQbsw1+QZnlLX+/gihcNH07lVPOcnwf5U6UAL7gkc//J3jVd76o/WS+taUiA==", + "license": "(MIT OR EUPL-1.1+)", + "dependencies": { + "libbase64": "1.3.0", + "libmime": "5.3.7", + "libqp": "2.1.1" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/body-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.1.tgz", + "integrity": "sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/content-disposition": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding-japanese": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.2.0.tgz", + "integrity": "sha512-EuJWwlHPZ1LbADuKTClvHtwbaFn4rOD+dRAbWysqEOXRc2Uui0hJInNJrsdH0c+OhJA4nrCBdSkW4DD5YxAo6A==", + "license": "MIT", + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-async-handler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz", + "integrity": "sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", + "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2", + "rimraf": "^5.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/gcp-metadata": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", + "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^7.0.0", + "google-logging-utils": "^1.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/google-auth-library": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz", + "integrity": "sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^7.0.0", + "gcp-metadata": "^8.0.0", + "google-logging-utils": "^1.0.0", + "gtoken": "^8.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/google-logging-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", + "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/googleapis": { + "version": "167.0.0", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-167.0.0.tgz", + "integrity": "sha512-8Xqeki6K9u9jh6rGRA/OywRMXg8yXuv4ZLwSSuMBB3Ze1pErbR/iv00UmVtcrP2LcSW2Fqi+LUJ7WgFMDoxd7Q==", + "license": "Apache-2.0", + "dependencies": { + "google-auth-library": "^10.2.0", + "googleapis-common": "^8.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/googleapis-common": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-8.0.1.tgz", + "integrity": "sha512-eCzNACUXPb1PW5l0ULTzMHaL/ltPRADoPgjBlT8jWsTbxkCp6siv+qKJ/1ldaybCthGwsYFYallF7u9AkU4L+A==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "gaxios": "^7.0.0-rc.4", + "google-auth-library": "^10.1.0", + "qs": "^6.7.0", + "url-template": "^2.0.8" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gtoken": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-8.0.0.tgz", + "integrity": "sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==", + "license": "MIT", + "dependencies": { + "gaxios": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-to-text": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz", + "integrity": "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==", + "license": "MIT", + "dependencies": { + "@selderee/plugin-htmlparser2": "^0.11.0", + "deepmerge": "^4.3.1", + "dom-serializer": "^2.0.0", + "htmlparser2": "^8.0.2", + "selderee": "^0.11.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/leac": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz", + "integrity": "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==", + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/libbase64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.3.0.tgz", + "integrity": "sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==", + "license": "MIT" + }, + "node_modules/libmime": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-5.3.7.tgz", + "integrity": "sha512-FlDb3Wtha8P01kTL3P9M+ZDNDWPKPmKHWaU/cG/lg5pfuAwdflVpZE+wm9m7pKmC5ww6s+zTxBKS1p6yl3KpSw==", + "license": "MIT", + "dependencies": { + "encoding-japanese": "2.2.0", + "iconv-lite": "0.6.3", + "libbase64": "1.3.0", + "libqp": "2.1.1" + } + }, + "node_modules/libmime/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/libqp": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-2.1.1.tgz", + "integrity": "sha512-0Wd+GPz1O134cP62YU2GTOPNA7Qgl09XwCqM5zpBv87ERCXdfDtyKXvV7c9U22yWJh44QZqBocFnXN11K96qow==", + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/mailparser": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-3.9.1.tgz", + "integrity": "sha512-6vHZcco3fWsDMkf4Vz9iAfxvwrKNGbHx0dV1RKVphQ/zaNY34Buc7D37LSa09jeSeybWzYcTPjhiZFxzVRJedA==", + "license": "MIT", + "dependencies": { + "@zone-eu/mailsplit": "5.4.8", + "encoding-japanese": "2.2.0", + "he": "1.2.0", + "html-to-text": "9.0.5", + "iconv-lite": "0.7.0", + "libmime": "5.3.7", + "linkify-it": "5.0.0", + "nodemailer": "7.0.11", + "punycode.js": "2.3.1", + "tlds": "1.261.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-cron": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-4.2.1.tgz", + "integrity": "sha512-lgimEHPE/QDgFlywTd8yTR61ptugX3Qer29efeyWw2rv259HtGBNn1vZVmp8lB9uo9wC0t/AT4iGqXxia+CJFg==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/nodemailer": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.11.tgz", + "integrity": "sha512-gnXhNRE0FNhD7wPSCGhdNh46Hs6nm+uTyg+Kq0cZukNQiYdnCsoQjodNP9BQVG9XrcK/v6/MgpAPBUFyzh9pvw==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parseley": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz", + "integrity": "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==", + "license": "MIT", + "dependencies": { + "leac": "^0.6.0", + "peberminta": "^0.9.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/peberminta": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz", + "integrity": "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==", + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/pg": { + "version": "8.16.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", + "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.9.1", + "pg-pool": "^3.10.1", + "pg-protocol": "^1.10.3", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.2.7" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.7.tgz", + "integrity": "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.9.1.tgz", + "integrity": "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.1.tgz", + "integrity": "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz", + "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-organize-imports": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.3.0.tgz", + "integrity": "sha512-FxFz0qFhyBsGdIsb697f/EkvHzi5SZOhWAjxcx2dLt+Q532bAlhswcXGYB1yzjZ69kW8UoadFBw7TyNwlq96Iw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": ">=2.0", + "typescript": ">=2.9", + "vue-tsc": "^2.1.0 || 3" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/selderee": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz", + "integrity": "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==", + "license": "MIT", + "dependencies": { + "parseley": "^0.12.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tlds": { + "version": "1.261.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz", + "integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==", + "license": "MIT", + "bin": { + "tlds": "bin.js" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==", + "license": "BSD" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +}