From e296383b1b47fa491a1ebb375a64af8b34d57667 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 11 Apr 2017 15:48:31 -0700 Subject: [PATCH 1/7] Checkpoint! --- interface/src/Application.cpp | 2 +- .../src/scripting/WindowScriptingInterface.h | 5 +- interface/src/ui/SnapshotAnimated.cpp | 9 ++- scripts/system/html/js/SnapshotReview.js | 36 ++++++--- scripts/system/notifications.js | 4 +- scripts/system/snapshot.js | 75 ++++++++++++------- 6 files changed, 84 insertions(+), 47 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 99af5b1578..edf6cb3847 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6417,7 +6417,7 @@ void Application::takeSnapshot(bool notify, bool includeAnimated, float aspectRa // If we're not doing an animated snapshot as well... if (!includeAnimated || !(SnapshotAnimated::alsoTakeAnimatedSnapshot.get())) { // Tell the dependency manager that the capture of the still snapshot has taken place. - emit DependencyManager::get()->snapshotTaken(path, "", notify); + emit DependencyManager::get()->snapshotTaken(path, notify); } else { // Get an animated GIF snapshot and save it SnapshotAnimated::saveSnapshotAnimated(path, aspectRatio, qApp, DependencyManager::get()); diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index b7bed7d85f..30f4b223fd 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -71,9 +71,10 @@ signals: void domainChanged(const QString& domainHostname); void svoImportRequested(const QString& url); void domainConnectionRefused(const QString& reasonMessage, int reasonCode, const QString& extraInfo); - void snapshotTaken(const QString& pathStillSnapshot, const QString& pathAnimatedSnapshot, bool notify); + void snapshotTaken(const QString& pathStillSnapshot, bool notify); void snapshotShared(const QString& error); - void processingGif(); + void processingGifStarted(const QString& pathStillSnapshot); + void processingGifCompleted(const QString& pathAnimatedSnapshot); void connectionAdded(const QString& connectionName); void connectionError(const QString& errorString); diff --git a/interface/src/ui/SnapshotAnimated.cpp b/interface/src/ui/SnapshotAnimated.cpp index cf89504d92..70767b007d 100644 --- a/interface/src/ui/SnapshotAnimated.cpp +++ b/interface/src/ui/SnapshotAnimated.cpp @@ -86,7 +86,8 @@ void SnapshotAnimated::captureFrames() { SnapshotAnimated::snapshotAnimatedTimerRunning = false; // Notify the user that we're processing the snapshot - emit SnapshotAnimated::snapshotAnimatedDM->processingGif(); + // This also pops up the "Share" dialog. The unprocessed GIF will be visualized as a loading icon until processingGifCompleted() is called. + emit SnapshotAnimated::snapshotAnimatedDM->processingGifStarted(SnapshotAnimated::snapshotStillPath); // Kick off the thread that'll pack the frames into the GIF QtConcurrent::run(processFrames); @@ -132,7 +133,7 @@ void SnapshotAnimated::processFrames() { // Reset the current frame timestamp SnapshotAnimated::snapshotAnimatedTimestamp = 0; SnapshotAnimated::snapshotAnimatedFirstFrameTimestamp = 0; - - // Let the window scripting interface know that the snapshots have been taken. - emit SnapshotAnimated::snapshotAnimatedDM->snapshotTaken(SnapshotAnimated::snapshotStillPath, SnapshotAnimated::snapshotAnimatedPath, false); + + // Update the "Share" dialog with the processed GIF. + emit SnapshotAnimated::snapshotAnimatedDM->processingGifCompleted(SnapshotAnimated::snapshotAnimatedPath); } diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js index d97207384a..f038b0e5c0 100644 --- a/scripts/system/html/js/SnapshotReview.js +++ b/scripts/system/html/js/SnapshotReview.js @@ -33,7 +33,7 @@ function addImage(data) { label.setAttribute('for', id); // cannot do label.for = input.id = id; input.type = "checkbox"; - input.checked = (id === "p0"); + input.checked = false; data.share = input.checked; input.addEventListener('change', toggle); div2.setAttribute("class", "property checkbox"); @@ -46,9 +46,9 @@ function addImage(data) { document.getElementById("snapshot-images").appendChild(div); paths.push(data); } -function handleShareButtons(shareMsg) { +function handleShareButtons(messageOptions) { var openFeed = document.getElementById('openFeed'); - openFeed.checked = shareMsg.openFeedAfterShare; + openFeed.checked = messageOptions.openFeedAfterShare; openFeed.onchange = function () { EventBridge.emitWebEvent(JSON.stringify({ type: "snapshot", @@ -56,7 +56,7 @@ function handleShareButtons(shareMsg) { })); }; - if (!shareMsg.canShare) { + if (!messageOptions.canShare) { // this means you may or may not be logged in, but can't share // because you are not in a public place. document.getElementById("sharing").innerHTML = "

Snapshots can be shared when they're taken in shareable places."; @@ -74,13 +74,27 @@ window.onload = function () { return; } - // last element of list contains a bool for whether or not we can share stuff - var shareMsg = message.action.pop(); - handleShareButtons(shareMsg); - - // rest are image paths which we add - imageCount = message.action.length; - message.action.forEach(addImage); + // The last element of the message contents list contains a bunch of options, + // including whether or not we can share stuff + // The other elements of the list contain image paths. + var messageOptions = message.action.pop(); + handleShareButtons(messageOptions); + + if (messageOptions.containsGif) { + var gifCheckbox = document.getElementById('p0'); + if (messageOptions.processingGif) { + gifCheckbox.disabled = true; + imageCount = message.action.length + 1; // "+1" for the GIF that'll finish processing soon + message.action.unshift({ localPath: 'http://lorempixel.com/1512/1680' }); + message.action.forEach(addImage); + } else { + gifCheckbox.disabled = false; + gifCheckbox.img.src = message.action.localPath; + } + } else { + imageCount = message.action.length; + message.action.forEach(addImage); + } }); EventBridge.emitWebEvent(JSON.stringify({ type: "snapshot", diff --git a/scripts/system/notifications.js b/scripts/system/notifications.js index 25a5edf3a3..fab09b0848 100644 --- a/scripts/system/notifications.js +++ b/scripts/system/notifications.js @@ -532,7 +532,7 @@ function onNotify(msg) { createNotification(wordWrap(msg), NotificationType.UNKNOWN); // Needs a generic notification system for user feedback, thus using this } -function onSnapshotTaken(pathStillSnapshot, pathAnimatedSnapshot, notify) { +function onSnapshotTaken(pathStillSnapshot, notify) { if (notify) { var imageProperties = { path: "file:///" + pathStillSnapshot, @@ -657,7 +657,7 @@ Script.scriptEnding.connect(scriptEnding); Menu.menuItemEvent.connect(menuItemEvent); Window.domainConnectionRefused.connect(onDomainConnectionRefused); Window.snapshotTaken.connect(onSnapshotTaken); -Window.processingGif.connect(processingGif); +Window.processingGifStarted.connect(processingGif); Window.connectionAdded.connect(connectionAdded); Window.connectionError.connect(connectionError); Window.notifyEditError = onEditError; diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js index 76f72d97e1..6f50dd09aa 100644 --- a/scripts/system/snapshot.js +++ b/scripts/system/snapshot.js @@ -157,7 +157,9 @@ function onClicked() { resetOverlays = Menu.isOptionChecked("Overlays"); // For completness. Certainly true if the button is visible to be clicke. reticleVisible = Reticle.visible; Reticle.visible = false; - Window.snapshotTaken.connect(resetButtons); + Window.snapshotTaken.connect(snapshotTaken); + Window.processingGifStarted.connect(processingGifStarted); + Window.processingGifCompleted.connect(processingGifCompleted); // hide overlays if they are on if (resetOverlays) { @@ -193,25 +195,14 @@ function isDomainOpen(id) { response.total_entries; } -function resetButtons(pathStillSnapshot, pathAnimatedSnapshot, notify) { - // If we're not taking an animated snapshot, we have to show the HUD. - // If we ARE taking an animated snapshot, we've already re-enabled the HUD by this point. - if (pathAnimatedSnapshot === "") { - // show hud - - Reticle.visible = reticleVisible; - // show overlays if they were on - if (resetOverlays) { - Menu.setIsOptionChecked("Overlays", true); - } - } else { - // Allow the user to click the snapshot HUD button again - if (!buttonConnected) { - button.clicked.connect(onClicked); - buttonConnected = true; - } +function snapshotTaken(pathStillSnapshot, notify) { + // show hud + Reticle.visible = reticleVisible; + // show overlays if they were on + if (resetOverlays) { + Menu.setIsOptionChecked("Overlays", true); } - Window.snapshotTaken.disconnect(resetButtons); + Window.snapshotTaken.disconnect(snapshotTaken); // A Snapshot Review dialog might be left open indefinitely after taking the picture, // during which time the user may have moved. So stash that info in the dialog so that @@ -220,12 +211,10 @@ function resetButtons(pathStillSnapshot, pathAnimatedSnapshot, notify) { var confirmShareContents = [ { localPath: pathStillSnapshot, href: href }, { + containsGif: false, canShare: !!isDomainOpen(domainId), openFeedAfterShare: shouldOpenFeedAfterShare() }]; - if (pathAnimatedSnapshot !== "") { - confirmShareContents.unshift({ localPath: pathAnimatedSnapshot, href: href }); - } confirmShare(confirmShareContents); if (clearOverlayWhenMoving) { MyAvatar.setClearOverlayWhenMoving(true); // not until after the share dialog @@ -233,15 +222,49 @@ function resetButtons(pathStillSnapshot, pathAnimatedSnapshot, notify) { HMD.openTablet(); } -function processingGif() { - // show hud - Reticle.visible = reticleVisible; +function processingGifStarted() { + Window.processingGifStarted.disconnect(processingGifStarted); button.clicked.disconnect(onClicked); buttonConnected = false; + // show hud + Reticle.visible = reticleVisible; // show overlays if they were on if (resetOverlays) { Menu.setIsOptionChecked("Overlays", true); } + + var confirmShareContents = [ + { localPath: pathStillSnapshot, href: href }, + { + containsGif: true, + processingGif: true, + canShare: !!isDomainOpen(domainId), + openFeedAfterShare: shouldOpenFeedAfterShare() + }]; + confirmShare(confirmShareContents); + if (clearOverlayWhenMoving) { + MyAvatar.setClearOverlayWhenMoving(true); // not until after the share dialog + } + HMD.openTablet(); +} + +function processingGifCompleted() { + Window.processingGifCompleted.disconnect(processingGifCompleted); + button.clicked.connect(onClicked); + buttonConnected = true; + + var confirmShareContents = [ + { localPath: pathAnimatedSnapshot, href: href }, + { + containsGif: true, + processingGif: false + }]; + readyData = confirmShareContents; + + tablet.emitScriptEvent(JSON.stringify({ + type: "snapshot", + action: readyData + })); } function onTabletScreenChanged(type, url) { @@ -265,7 +288,6 @@ function onConnected() { button.clicked.connect(onClicked); buttonConnected = true; Window.snapshotShared.connect(snapshotShared); -Window.processingGif.connect(processingGif); tablet.screenChanged.connect(onTabletScreenChanged); Account.usernameChanged.connect(onConnected); Script.scriptEnding.connect(function () { @@ -277,7 +299,6 @@ Script.scriptEnding.connect(function () { tablet.removeButton(button); } Window.snapshotShared.disconnect(snapshotShared); - Window.processingGif.disconnect(processingGif); tablet.screenChanged.disconnect(onTabletScreenChanged); }); From 2579ac1baa300a52c5c2f155422c057e5899b369 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 11 Apr 2017 16:37:28 -0700 Subject: [PATCH 2/7] It's working! --- scripts/system/html/js/SnapshotReview.js | 12 ++++++------ scripts/system/snapshot.js | 9 ++++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js index f038b0e5c0..152a5f2b8a 100644 --- a/scripts/system/html/js/SnapshotReview.js +++ b/scripts/system/html/js/SnapshotReview.js @@ -21,6 +21,7 @@ function addImage(data) { img = document.createElement("IMG"), div2 = document.createElement("DIV"), id = "p" + idCounter++; + img.id = id + "img"; function toggle() { data.share = input.checked; } div.style.height = "" + Math.floor(100 / imageCount) + "%"; if (imageCount > 1) { @@ -31,7 +32,7 @@ function addImage(data) { if (imageCount > 1) { // I'd rather use css, but the included stylesheet is quite particular. // Our stylesheet(?) requires input.id to match label.for. Otherwise input doesn't display the check state. label.setAttribute('for', id); // cannot do label.for = - input.id = id; + input.id = id + "check"; input.type = "checkbox"; input.checked = false; data.share = input.checked; @@ -81,15 +82,14 @@ window.onload = function () { handleShareButtons(messageOptions); if (messageOptions.containsGif) { - var gifCheckbox = document.getElementById('p0'); if (messageOptions.processingGif) { - gifCheckbox.disabled = true; imageCount = message.action.length + 1; // "+1" for the GIF that'll finish processing soon - message.action.unshift({ localPath: 'http://lorempixel.com/1512/1680' }); + message.action.unshift({ localPath: '../../../resources/icons/profilePicLoading.gif' }); message.action.forEach(addImage); + document.getElementById('p0check').disabled = true; } else { - gifCheckbox.disabled = false; - gifCheckbox.img.src = message.action.localPath; + document.getElementById('p0check').disabled = false; + document.getElementById('p0img').src = message.action[0].localPath; } } else { imageCount = message.action.length; diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js index 6f50dd09aa..19fdfc510d 100644 --- a/scripts/system/snapshot.js +++ b/scripts/system/snapshot.js @@ -212,6 +212,7 @@ function snapshotTaken(pathStillSnapshot, notify) { { localPath: pathStillSnapshot, href: href }, { containsGif: false, + processingGif: false, canShare: !!isDomainOpen(domainId), openFeedAfterShare: shouldOpenFeedAfterShare() }]; @@ -222,7 +223,7 @@ function snapshotTaken(pathStillSnapshot, notify) { HMD.openTablet(); } -function processingGifStarted() { +function processingGifStarted(pathStillSnapshot) { Window.processingGifStarted.disconnect(processingGifStarted); button.clicked.disconnect(onClicked); buttonConnected = false; @@ -248,7 +249,7 @@ function processingGifStarted() { HMD.openTablet(); } -function processingGifCompleted() { +function processingGifCompleted(pathAnimatedSnapshot) { Window.processingGifCompleted.disconnect(processingGifCompleted); button.clicked.connect(onClicked); buttonConnected = true; @@ -257,7 +258,9 @@ function processingGifCompleted() { { localPath: pathAnimatedSnapshot, href: href }, { containsGif: true, - processingGif: false + processingGif: false, + canShare: !!isDomainOpen(domainId), + openFeedAfterShare: shouldOpenFeedAfterShare() }]; readyData = confirmShareContents; From 7b92989b1de1bdeb201c851ca3d6a1214b7891ca Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 11 Apr 2017 16:51:11 -0700 Subject: [PATCH 3/7] Fix it --- scripts/system/html/js/SnapshotReview.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js index 152a5f2b8a..5406ed1ceb 100644 --- a/scripts/system/html/js/SnapshotReview.js +++ b/scripts/system/html/js/SnapshotReview.js @@ -32,7 +32,7 @@ function addImage(data) { if (imageCount > 1) { // I'd rather use css, but the included stylesheet is quite particular. // Our stylesheet(?) requires input.id to match label.for. Otherwise input doesn't display the check state. label.setAttribute('for', id); // cannot do label.for = - input.id = id + "check"; + input.id = id; input.type = "checkbox"; input.checked = false; data.share = input.checked; @@ -86,9 +86,11 @@ window.onload = function () { imageCount = message.action.length + 1; // "+1" for the GIF that'll finish processing soon message.action.unshift({ localPath: '../../../resources/icons/profilePicLoading.gif' }); message.action.forEach(addImage); - document.getElementById('p0check').disabled = true; + document.getElementById('p0').disabled = true; + // UX question: Should we also check the box at this point? Might lead to confusing behavior, + // where the animated snapshot is shared without the user meaning to share it. } else { - document.getElementById('p0check').disabled = false; + document.getElementById('p0').disabled = false; document.getElementById('p0img').src = message.action[0].localPath; } } else { From 75f1168b19c12bdf08b4547eb445fbc007e891b2 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 12 Apr 2017 12:02:54 -0700 Subject: [PATCH 4/7] Clearer function names --- interface/src/Application.cpp | 2 +- interface/src/scripting/WindowScriptingInterface.h | 2 +- scripts/system/notifications.js | 2 +- scripts/system/snapshot.js | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index edf6cb3847..9c523f53e8 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6417,7 +6417,7 @@ void Application::takeSnapshot(bool notify, bool includeAnimated, float aspectRa // If we're not doing an animated snapshot as well... if (!includeAnimated || !(SnapshotAnimated::alsoTakeAnimatedSnapshot.get())) { // Tell the dependency manager that the capture of the still snapshot has taken place. - emit DependencyManager::get()->snapshotTaken(path, notify); + emit DependencyManager::get()->stillSnapshotTaken(path, notify); } else { // Get an animated GIF snapshot and save it SnapshotAnimated::saveSnapshotAnimated(path, aspectRatio, qApp, DependencyManager::get()); diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index 30f4b223fd..d4ff278fea 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -71,7 +71,7 @@ signals: void domainChanged(const QString& domainHostname); void svoImportRequested(const QString& url); void domainConnectionRefused(const QString& reasonMessage, int reasonCode, const QString& extraInfo); - void snapshotTaken(const QString& pathStillSnapshot, bool notify); + void stillSnapshotTaken(const QString& pathStillSnapshot, bool notify); void snapshotShared(const QString& error); void processingGifStarted(const QString& pathStillSnapshot); void processingGifCompleted(const QString& pathAnimatedSnapshot); diff --git a/scripts/system/notifications.js b/scripts/system/notifications.js index fab09b0848..006ef3f90f 100644 --- a/scripts/system/notifications.js +++ b/scripts/system/notifications.js @@ -656,7 +656,7 @@ Script.update.connect(update); Script.scriptEnding.connect(scriptEnding); Menu.menuItemEvent.connect(menuItemEvent); Window.domainConnectionRefused.connect(onDomainConnectionRefused); -Window.snapshotTaken.connect(onSnapshotTaken); +Window.stillSnapshotTaken.connect(onSnapshotTaken); Window.processingGifStarted.connect(processingGif); Window.connectionAdded.connect(connectionAdded); Window.connectionError.connect(connectionError); diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js index 19fdfc510d..ee441278aa 100644 --- a/scripts/system/snapshot.js +++ b/scripts/system/snapshot.js @@ -157,7 +157,7 @@ function onClicked() { resetOverlays = Menu.isOptionChecked("Overlays"); // For completness. Certainly true if the button is visible to be clicke. reticleVisible = Reticle.visible; Reticle.visible = false; - Window.snapshotTaken.connect(snapshotTaken); + Window.stillSnapshotTaken.connect(stillSnapshotTaken); Window.processingGifStarted.connect(processingGifStarted); Window.processingGifCompleted.connect(processingGifCompleted); @@ -195,14 +195,14 @@ function isDomainOpen(id) { response.total_entries; } -function snapshotTaken(pathStillSnapshot, notify) { +function stillSnapshotTaken(pathStillSnapshot, notify) { // show hud Reticle.visible = reticleVisible; // show overlays if they were on if (resetOverlays) { Menu.setIsOptionChecked("Overlays", true); } - Window.snapshotTaken.disconnect(snapshotTaken); + Window.stillSnapshotTaken.disconnect(stillSnapshotTaken); // A Snapshot Review dialog might be left open indefinitely after taking the picture, // during which time the user may have moved. So stash that info in the dialog so that From 87b2d5bf8abf7391d0e3315bbdb45db0189ba575 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 12 Apr 2017 13:36:55 -0700 Subject: [PATCH 5/7] New loading icon --- interface/resources/icons/loading.gif | Bin 0 -> 30942 bytes scripts/system/html/js/SnapshotReview.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 interface/resources/icons/loading.gif diff --git a/interface/resources/icons/loading.gif b/interface/resources/icons/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..2ccf9b4bf578d0291094d56374e5e593a0205b7c GIT binary patch literal 30942 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 literal 0 HcmV?d00001 diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js index 5406ed1ceb..3e5ee5bff5 100644 --- a/scripts/system/html/js/SnapshotReview.js +++ b/scripts/system/html/js/SnapshotReview.js @@ -84,7 +84,7 @@ window.onload = function () { if (messageOptions.containsGif) { if (messageOptions.processingGif) { imageCount = message.action.length + 1; // "+1" for the GIF that'll finish processing soon - message.action.unshift({ localPath: '../../../resources/icons/profilePicLoading.gif' }); + message.action.unshift({ localPath: '../../../resources/icons/loading.gif' }); message.action.forEach(addImage); document.getElementById('p0').disabled = true; // UX question: Should we also check the box at this point? Might lead to confusing behavior, From c724c2e50b48e8f1e76f4c084b20b3971d377235 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 12 Apr 2017 14:24:18 -0700 Subject: [PATCH 6/7] New loading icon --- interface/resources/icons/loading.gif | Bin 30942 -> 0 bytes interface/resources/icons/loadingDark.gif | Bin 0 -> 85911 bytes scripts/system/html/js/SnapshotReview.js | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 interface/resources/icons/loading.gif create mode 100644 interface/resources/icons/loadingDark.gif diff --git a/interface/resources/icons/loading.gif b/interface/resources/icons/loading.gif deleted file mode 100644 index 2ccf9b4bf578d0291094d56374e5e593a0205b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30942 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 diff --git a/interface/resources/icons/loadingDark.gif b/interface/resources/icons/loadingDark.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fc22dc637bee65ff06dbb86c2560d13f057d44f GIT binary patch literal 85911 zcmeFZcTf|0yDcn87my^>(0gy82&hO&4=pt5(z{XwDJn|uB_W~rPUuxYu+Xa#1Q8V# zq@&odEBj7B_jaGR+_!ya&V2X$W=$sWe`c*`J!?G(6kJ2oDfCe2p^t|skBW+lnwt9X z;lngEG_EHidKTq+7UgzsAAU%8Kcu@q!Xpso6|C%G0beSLj5Zrr$e^X9Evw{G9Q z-QV9oFfcGUI5;#kG(0>!GBPqcIyyEsHaC({T}ym|BX?b~C@-WpTB(h^7ZT2Z{NOs|Neb%Z|}F?eiQ!fh!M=(OkdXo z22oHtOm*ncA>q$7j5LRiACjZ|I4D1pLkxR|LKygv%_X;^89*|2qs^rQ@ob{#0%S|s zP%^iQ_v6u)@{x2Q{UknAYsFZmlo`oxthI6?Tghd-0M%ACm9KGr>+x7y_1$8fXeNGi zdkwi9nJHsGZY~Uxwr=+v6NyEcrCU$-mJT4(=bIdO$YCxL6BbG6p58E;&W1-#=}&^N zft{rUHQ$?BNp0?vSu%#y$7);MCi67XZfV+->gQ}z6<8{NyHLLl|< zdGi)4H$&$p-}?LfnIG@uii5KYx}U!%=hPX9Tr@m<{W)Is%+ng9yvnqBjdFd<#OEDG ztL64L%9In=e6q`3dbO6L@DrPlply5GEt!079LF7Q)2BAZ8-cP6H$wYZRg+I2e`Tw# z+qAA}EHSKU>VUBjvmEh1zBz1fU>EuxZoF)G%q%#(CLRRx9dZJlPZ#n8d4@AfnQ_#t z1`VClpsJ?#I0n0b@Kcx9eH5*ZTAJh0DqON~QEMoT7gc)F4t4gKt)Q`m?W{Z(4VoG( zN;rnAp}!1)smB}VlBGblz_;d$qACmX#m3HG*6}>2sEIi|7F(rD#*<#3@t06vRz&$B z!EVCF3(7zc$l>f80H@WZ_Sn+`jjk>U{7!F1%CE4G;|M2u#M~ozb(y>nhM{h2Xq(Vj zFL>HsX&g8mO~O`(ds3Oz?1iT!VQZ_a#sPJWH-fwndD`Q()k^YAtFX$4TAOJ~RHXP4 z0f4tunery1c`<~{I9qu3#->>Tq;xYOFT9z@EZ3F#dZmE<&aSwjrE_h3fzrvbOoI7v zP=!G7TDxne%4dcOBmHID=c$?^KAFk7Gh)xLYZTTXz|!GE%Z5U%U-1OrjhNDW-YxQy z5nu+oRHPv-Wfsl+k>*)CXTFDHnPy^QG3IOTSJ1_s+mcTS`iY1l^m^rKLg=I5kNiP1 zSP%Yy;qHY%_=MU=FKqYap?t(mT6&cW4Sk%Cd^>QxvmT`tW>U{y~9Rl?Z z(f1Cau$fPoo^QDB*^8(AuAB^rIvy0S8JwtbA^BKHs#;hEg~Tr6RW1>fBeIpQhYdLng&+qfYpwmrxbi zWy7abBk4$$@QNBhP=#~qHEM-u;yPsgEff|M|C}G{@I9wtoKC$47OJysJ|L+;2m%LgtRxV(-V_0_1Iw=)b5T76>Z6~s|&I8o>h@CryN7sk~eu z z9~==Tkrg&ciUHyxh$iYhMz%b=^48NDmZ-ARBJIYy?WL|zVWPw|An3aN7Wg-u*V&X+K8gL6^r z>xlFHF;yl${bCZiB{^PotvX?!ebA=&ZC8obor4vbB|4g}rwevgYVeA07?RRYQZXiF zC@v(3N@?9$5gE_`bo*hXNDSyaRq60`LotVopg8td4}^^zjI7LJHKjexqSrTRo}DEP zn+r+N@2rT7DZih;cj?)Xt6;>*4tmff-Q15==&cqWLI|qPwfHvn^t=jcA=pg~J0agH zgu08$nY~2rn8XE)%3Ii;?%Jd)^z*3f1P6?8^>NzX!koRo;8B`t`LNYPd5zl@k9Fti z%;j+9atMF3%H`eX+KtMoF zPEJEZLtkJ2pQ4(7ga`he_X~&Yv&a6x^OHb+(ukGK?=ZKvHM6lZwfTcgj2tLrVsysc z(9zw{(c_O9>0m%|^Fw+BP*~-FQhfHwgu*13bk1Eq<#$EfKTO^1+g;FjgsfVRO zE@vr370Sd_?o&sTXj-dqdWTR(Ck41`zd{hV4}8~8bPHtm@MhiQC>&!en_;e6U?4rE zZCIsgT0h*pakzPdrfHqFah1N|Ib+>3=Gw==$~o@RyF$gIGWoYPv#%kun(PVH=ZPgz zguKM8JY06({|-X`>>$LjcgX%fO+krTwPkJ-obnb0Vl3S;7_hqE#;1kxVA;ZBzBB&T zkoO`4m9sr0`?}649w|4`DAXehqkJ`w8@}CovExMfGk5B}M62aX|1GMAX<5Z?v1aen5X-!ZS$6YMQk)pL z(RUQw;QYuqUsj@NI{10s2B(JYT#b1f$DOQFyY??Fy{##y6?Cudc@|H-O`hM@uG9JW zoVF@^Ybr!R+Gwvb?9{oK?Zkm zliT)v);+(749k1Y=U%%$;#K>8TF~fYfaE=AmJbBZL`Y=IT%zV;h?RjN^^miHi7Nwp zynmmnqsOU}Ef!GAC?mPtkV1@2yO%eQ6yqUY~^Nkw!t}SaU&+tT@bd z`ED#YN@!U^B&uKmYeUu9{s7EB^k%InVUSD)mvvWg;CVI^8HCR!2*Y_}x;EG0&15nj zq|&%4Aw);DTvfoch^Rsz`4Z^>KMRa9DUb4PAF^aCs~ED}139n6+$Qnbdg6$*>FlEr@7J%AFW zRzelRcZa7M5!5rgnk^WsDS>qFF|QOnO--y6v~At35Crda%@JhPcnFgUEQ|ykL;tMk zgu++A3Py9U-NgX%a620F}bH2N;i7JEE1M&qScqd{pz>hoR= z7Aqk`dSE!{ip=otnL@3p(_RK2SLZXsZ96{BR9%d?MJ5?7PuV{S({;OM@kr`B0x_<0 zl4~(&uHy)M0CR*aKG0S8P#-FNkc-F;>|b;^9s!W#CQg_VoNQ3W$2-QdQL zE7^W~pEs(T_P)Hh_G<6z>k-A@zU|KY{r3ISded)v-#(_B>-^v?*}uVCjEs!j+}!{2 zWc2T_(cgc+aMjQ6lwrqef6TF^%s6%qSbIkk2WQHFETc z;*D|fM!Wi;U40LLa-*1e6dTXOAK^(MEx1<@%qs}y9Srpep^(ETvH_wMmqM=3gO_ z*77H$w+dyn^Jn((|~xsIGxub$-=lm&9(gyE{QyvbIk4@$?&Ut3ZNA@ zP_pVh!jh+arcp!Ld2o!V=rY~aGN8_E7pF5iz4XvM1(aYk+`fd4pL{StH^O$G36a8< ztT%XT!P|p*Ez)k;*ZzF$bE2Bynu{v<4Hjb&IwHD?_@$X_+xHN5^n`?rr zKEA?tTmws>t7N%}j;*XBD!T@6M`R247*2s^zX}~Iwq*(^C-&amihg(^#U(*kD~4q+629H{ZVBv0TOc?D`2@B)!}Hrg%(#BEa=0OI1=f-d>0)k?(2 zsC~a`$ETKBY7ub!aw*XZLZ!>itNq4(#7*gTwyiPNbI9Hxxq*t^H)xP>#^;oMDaTd$ zQrdWv^1e5CfK8$>f!n5U4xbdw_9>H1u_wlo7iuUWj?szvj0M>FV`-3f%Q<*X8?_oN zAV5iPtcail9LeX?EG2TvS$H52KFI#{G6GUW3=#9a2IzavpPjxqp@NEz+e@flGKsh4 zV-1?*RYL|}RB#s7b(Cveui4{Xpd+EJZzo^@NeX&2deANz#uDz@nh~^aeGR#iP#@05 zeeq5>E;$-X1QMf#5^+TdN-NT$U}?>SEUA-N4>;^aE}g#D3&wg_6zkg2_q^ zUvo8nJw|VKS$oe_AY7qg-XZL1i`bK0z1!9C+oEpsC$OJOjV>X`{C?*CHUJO4z>33X z%s&%eZII91;m>;L4R+bJ@ud^2TCgl!;)m*~fEx&FsLi&@C?2a6N*|StR3;;7?ohL%xfhyU`G67JjG$d_OTFM$S zIw0`nbv(Zga~WGaa!>^PCIM+s2FxBEl+b#UXp&OK9?#A8gDutn23!7}br%2t;N|6& zkdRPOQPI}cMj#M|hK8o5rsn46|I&KvKSQm5$)Xer-QRNUQ|KA2og>!X$>abI&J;SO zScVkW@CUCtx*Ixq7&v>OU41F@-Tu-GvCozi!t@TNxQ3Jk7{xEtJ$s3QbChv!9}zl! zR}SXBllyZY#YYTDrLbr??!ZA*j4U`HPpO1zse~G-#2U%O+FwADOrqciuO`*~btKpQ zM7_j5_UZRm2HvOK^aEqELlA$BpKzTgw;xnA$yzbTSi49^;n=mq%^TD$+f=PD4z;~J z)VA}tK-IQ$xa}ov+Y83FZ9v-xT?#} zZKak2yi$DGJeJFWrke~{X>rZs6KJ`eDAi10OqMEWULw1qNii|8d|^w8xj}iGiClbc z4@6P6j+Jh(fE*t5700VB)>7`nOJGaenjirIURoRXe7ZT@20VH*e#Vu_eFc_Vs*%ga zozNfU0q=;+#anASt4hl4mC4Y+bBjFNc`7CCVNYSc23r}G%{7VSiP z1J_TpHNC#Ar|MVFvXJZx`&=fbaAQr6pdj~Mdv@o#DAq?F{=j=e9{xm+`W(tn58@9S zhkVUwo7NLKi|lcqm6hv~p{Z}?0@MNPz;`5u?%l9 z=?Mm^Bgti8Ht3?nOifFM-KTeT!4FaGu<*uRw;Y$5M2Sh>mN6hv z$UavbX{T4_wTCu%@(o1T>2wvtqIz~+1~gc@g)zrINY187=Cg~MsA}y2JJ#Q>h$LEV z)|p+;y*4W>hIq@qoS^(&>VgrEg2KIMEtUmoLxVdJpy*>%QYD5o;83#&^*3DMhVRI( z#V<7);^!I_7fvHqR8p(2g>58Wvk#d&Olu#NVC%)dt0_HFa2`&D>{%D&$R@smlil-E z1U9oQ{HiP6Z9itbydS@v<29V?Q37D`G6~6x6mwU$_F~?n1LlsoRzi4X9d)0HWYd6yuW0+U;bld zVQp<@LoqYWZ0t=bv*Q`;5ANHizaOmUYP3&whWoJ(17|M-%GBtCarH&JokO|%q1^qE z9svj3x9@O<==+4}`-bbCy|@nw@##{CZ=d!2uWI{8o;(PG1jQc@PS6TY)Vh$Q8Ir6K zlA;lsdMq^USXkPzuypls9A&1wn5lA!NEs_5vMH10l|03(`HGPR3Q>g$QAP66#T3Mp z$iU~fMR4S1qk=!7b+ANaZM%lt;_V5w=c(ZTup zu$9fQRL(QjKA~$^Io!NKwNH6et-oWNx@GHd^9F6x8biZ#R?;F*^_+a!7_y|#yQDR) zl=Q#RkiQiTVc0ul_@CoSQYQSUkZ#nWP2K34FpRu1wjgA>%i0&qTk}7jbG{<~h7dKPYH2 zY~BZUZ&-@a9d_hzqj?UTIz2+uZI?lpT^G{&;#rp{#<9*W5AUugDVxP3STzktn-RQJfW_R<6G)dI7{}R+#WK+oCqh)x!&N0Yt}F@4q_M9G%A1NwwtyC~ zl5j-_6p+o5F#rHKA9n=TO3cy3v017~&7@q(k;8)CnwtBG_gTig5j=*EX&nc&*p2nF z_VKB}ROV02OoD9(-?Xqt%C$nps(okrS&Vm;U_c+e7NW$PukklIsN`NlX?T4t`bE2s z_)P%%F1><%rVa;oai`j%x&ejxjnM5f_LqC@b9yliom>Ii@~8pMM=kn7D*3oJsVSQ} z*tHLRY@K=E?8r^jWnwaM;9M<95<|m761=%;b_1S)M%Py6c=yz=a$bH|eS?qD#$>xbi=|L+;13FQy6-oeO(ZfP2-Mq$>IU#$+>k`n%M8X@kJjo)-)$xv8p%4W2om= z1dTh}*WPQp<@P?g@}$r#eQ_LFZmd2$SZ1sk{ur2er|=UZNkubf&lf0iBo!^m+d39q z4^+$TO<>_5p(1CZ+p?uLj5$)q>c8lN4pI3?zR68DcoAJ(RDw9EwFpL3Y5tGbtDb)o){HAnJ=;GISbQDlVY;4RZ{B33l zbEOmlHEx>smQeEo^*c$Q{JSLm_w$?V?Ckvf{0A1Xo}S)6wbA^m@4qnj|95X+0sN7W zp+q~aZGT{23hbw4984)VV`_H*N6JXNKNar}#*~qGAAg#Pe-R3li0D4{9cCBbUxK1P zre#Xf#^XH2VWuDm?iutmbwin)^(kSSFg;(&@O&^cpE?(D$}i&7kI8voM*Na0J$^n; z>yJQA%CXQ?_0Tl+KVmsV<%k@mD|t#k)Wd;vD3Slafg&t^LN>PiU?VG@(j=VGLD{or z-{Q&}0u@gkt(ar3USK3WrLSM6X<9#+mZ{oa{toK4mxtS4(6qjwYu%=J)U6w!)-|5i z72&pJ+4g6e9g7Cn9=i72zj$LdrGK_$WcJ$B+`!EI-T8jEo8SM>v*EVWiYIcG)F4ewnqmcF!$2VgD>}>JLMLPQ`atabX8%cTFcc@kc#Rw zUUlEcvt$?Kj0EYlzM4%N=W?OJX@oU(44nvAC+pDZsi5lD{l^RH8_Ue;UHH*;^?@Yc z?q^^F%Tp}QJuTxUEf&fEg+)=Uw~h$a?JDBv+q}tkOCE@ql&ZW@Tl`+4#rqjU)nGk-BIr)>e{~R3)kS!Csf^;rton&32`h3)Zx14VaVU{Nm5wzu) zY3KO)Q>g&3gyJH0&R>_ul*3ET?E}ip z-W_AjtXPJGj0)is`X{m-*IKds7KUEHta4A)ctuAh(IhU0FySO6$1lqpF!Rc=8LKQ; zReB}It*A{shYe~8rM+THS4MecRt3yL&jIQMDbo={SMvZ+$*0As79PMZzm*|3jY)+A zz_2V=+X^maybP>SLSM2*Bui{jg1b+8k^~I9?WM?l*7*#|Wz~Z$==i|~(B^L1ex^Yb z3v+>8OF->F9WI4Uz|>8Tn{rremijtsOt9THNS+k7H<&2m@Jhjs2%Z*ydz(@5@oU&ogfDrp-TWKw2G@Jr z$(yT821)SYSDbJDD=yJ)8rHX^~kGL2ya@X4lN#xqv<;x~@P0sS<`cHV8+KTHor0Y6) zflMv0fU!xYMQ8j7^*L9W&^4tA>eoHXr5na@`2lgSLf3c}YJpjGquYJ zOWzol5!y|?=-B~I>vBKVTFRoURL*lJluorQtc35Pf6ky>oDXxDfor2)?n#*nc|TN& z-G(z)??$X*1kS*M=ANoPSWND^an8jSC&O?0HLU zPN|ghKuy>@e4EuZS*Z{*HsSE)ZT2nZDy8_^jH^G#ZRtNVIUOAxKR>^QhQ`0i%>O<@cY>iv2**{tSMQDRMG)a54HBP(8>LQA!t1UYPyf1^P#<=p6EZOWgwy9s!8` z;OZ~g)!$h({D4J&5-DX8|4F1*59V?0fGA2sBOv<6V17RCcu+j0p%I*<5t4E&gff*= z-09!xlrohQAe6zJsC+q_GMh)_>=P_yLjOxpX7*q3BO4o6DW2RQl+nSPb%Uc|^l14k zBkAcrd2UgL?!T~_sVEdmv6mTIx0qWufGul0Ezd=ppC~ph9B-OMHQu#om~d_w4rsU) z)zFhw-(J?x^8aQNgJJKG*?)-1g|}W)i6Pm9w1a32H=|LUY5{MB^3cKFMH=3%N^e?r zp97W7lalylFR$DEr_SO-=haiW+aN5Jzc`MDF$DHTL1TBEt+9z};D z8CJ$}k6SDuc^+pl72b4Ab38#ktjI4z06-G;-%o+kjh~pL4v6jQ2zu4@=<)_8@{+u| zOe1Epj6j)&3ZmoZwdA=;w&v$bncQpBA0@1KI)p**m>=u8$OMR>i^uSJRPD_GX6_+v z#03hz?VmbCu@#5Qp$SA(ANJ7$-d@>K$4E z=9A{3dJ5N4f}nEzhcy{RE!+o7E{i8BKZXbNGOmfGzX%xSI9<>(A{yZhVN3_3#Octc z)(K=$Cq2BAo`()_O%%+ZJ%Yj*bU4Gbpwv}j*^r>&>^!Kc2W(GXWO)TSvWUag=J|sG zl@0DRxfPp$=g@^0=jis2G2Tey1P1*>HYR)hgs?)a$75&X-$CdB~{hf(byzpCm*rS8HVBO z#rC(s*=4T@(JEU2IIOAGIQZ^u#OGrZCbjQ7|zQyFH37fyIX zHGP(MU?&E&IHmT%b1-DjVl#I<*` zHYN^$oNV#U!amL~priNG)J3MU%(olv?J&8E-LUk;Pr4YJZ`FE;wr{;{IK{sG=;-lc zKvSL-$)qa(0;v%dejyE8>_km*)%-i&RLv73zLyc zQ~~@>dxbmF=hT%)87#vdycwve!+t?Jd zR16=BFB26h%J9^kBUEKOR_SOqN&djLrOAh0SyniDipAd>U)I5X+4(WDB8a8Hb0*ex@o&gfEbBh88BH^#ziSKdzy+d5!v&tUDG_8TY%iD9>c+^~@&1^Z0@ zE8kOw=mWAxy89sxGQ^Zl$_1!TsJ?HQ-r4=_^6z`)gX!4+3Wd}ID63^k=kk2a@t_}c zu5}?%^H;0=z-Ome?HOv}8EO|P1(tooouKkJ0J*$R`B!od_R~@c)#AwwBI#|EwQ){A zN5L4S$x<=PRJ%yixJFGOa?0A6s`cfe)|XVRFQ{9#Xq(oV8lJP&KLyu4lBk_KRx<^y z95SxBX;;?mUD9%~s5U*n_z!4J!?25MWJFbz4kq!`Iu1msxxmJ-4cwWYVTUiUaLXF!NGXdz69D1{MOIX8bT4@2 zQPW2CODjI+s+L(BS8H4nIaE!jG-`#roKmIEu_BftaR~NNlSOE$9gkCHwMn1Uo0>t) zthynZOI1XI#Cbd z=kNvO(sVYreD22rM+31MQx@aP!jA&ZX2jvc2QSAA0F5+SXj1tZm4(o1u2nF^sa`;W za7xf-rEp~L8-2v}ZYNiikxr~F+=6C#HQ)aN50ZoT%^@O4>hfwV9MiQaE_|h{We8;K zyEH5q)5|jo1b4d+qfk2Hr7%CK8F8`8N_o@3%Q`caB7UyzB?6Jec3v>g_a!$$R*0*< z;GV-C4&Ztk4?S!vV@iX}jyWMr1|>qM8Q{130=l7fwTQ<& zxrQOo3o22^5aI9SaZj(hxT>eHRZfjQ6zrHnP943?0=)k~yIoDx{>rYJsOvG+50;qI zE2>DWF$-~y|Ggb9U-yb?5DYHLKQp0>QGK^6fJ$qFY9)(7#@KTwNBj9J?En*?ZS0#D zDUOrm;S@GQ^2jLI4%juySDq+yrkne1}qRW52*R=qAq%18+|x^m5K& z@STrIqpxlR#mtqT2e9(}TQ#^nhecjj@noAjdBsUI$Zsp}P3wnc`b_>o3L zlEu<1p{As{dK+^*(v3xw*kfMB-Y;$Z^3_##9*bIZnWXmT#M66`VDnN|4mr(QKan&& zRNih$eR8|Bk;$aMXRY&+GS-Y3n`L0ZEinm5*t&tZ?#x=wO2udUK|di;#*AH|iWxS> z6bUlct>!`*VRSS_qXj46KMUlXW0F=3PfX0fm*s>q1Zp|~5+%$_ho{8!p9Hv~;d4TT zI!I?#>1jr%D4~}{a?9!YGpIA)%C|W6PA_Lf&;T#ga!nPBW%037A=-|wK^`pJ zr-*@?1iG}FJPc0EhdBnN;*`^{qTs;qH6~mX3&m3~Oo8Uhr z>x|m48W-u0(t}DH1fcb5ojK|?c13lC(O7UeIW2s*T!^I>i9pZb^L8tw3~SM+$7iy7 zb}N-qrERFGe<%!@zo9UG4ZE?huyAp4iHeFUDJf}dYa@|J6BCnvB--|`iHyJV{-i(t zsJ~iUSW_CXlytbY?JwrOz1a_cf8XWbxA^y)u}&rj%~;0+E1zOH80_D9z#KUElsgX; z`~D#BMzQQE>G1uctWU_n&R=)G()4EuLUHGRItu#|ldIhq~=0P3sG$)=l>26_KVz<%auu^>?tOQ3q20+1lQSn$Gx|HhfJ}VNL!2 z-gfxyH;Tfr`1citSvjjPJWEbl1d6zu1+NJeE~hgpsWvI@$LbFs;Sfc@sB1;43}>4h zZ*~IAXp#3*Ek>^r&%+I}Wz8#~i6XJ%LYJ?+Ba+i$cIC2Ts3FXwq8%UcTY&A9^S(#lgvhQt6gmd zXqLaGWE8+=Pq4VWyC9?nJI90*tobsv{jm>`$+}M4A8TZHBA6}=@_DV;=n!7{UQjE) z+nEbW7LiY^Z@}W&1AS}eL2RjH>|^weuxtx<-qxTYv!i>oCFf+QmdwG|YoGD)iR3|T zgk%ES2RR%<18C3kw{SCXOUu8pML0;kO%Tg5_o@_2ms*A)h_q2+DEkO&97}?Z^J=cA zB_pGVy61|kkaL0S;3crIUL`SI4v*k*yo!YjB%cVZ5=-!OeVQnOm8ya|WXciTgC(9Ya04LqX;^TB2DiVl$u|_co#3Z|lig@ALj<`At zc)u&m5o+qzz!@x2YN=#HBO{SPqlsltE3yGxJ$Yf!+nqg(T-U}96PA<6F`6AT>k2pL z;pNo)QU`ae@xrmz312f<%(bcUCHQttKpoy2I%Jlt z?%Gr%NW`w*NIVInMLN)kAYkrbK72`rdHd-u{@P%8r^TAEsenZpGdXM|T6w_`1oXmmt zP7g#fi~??%8U(?J?8&am5?Fn)A+r;=KoHy`OMhkcOKbpp7MAsN&8koP2i!rDJwPd-^jC%~0kETcf+7r7IGq1w;~7PT?O&v1vSfJy z8#v@;RlHG2V&xTi4TB6q%c4d|b_P&ij78iED&ASIRBUHOPbGlOSVXminqNwik!di> zyS3Q$`?|EZL`W<7^NuS?c1XqKAL*ix71_-;v! zpwf7;&kNvH>5_esO#WyQzFjsy$>zv$U#K(h<68=<<%+G(9s!`(9b8KoNUdQZZ4Er9$(=me>Mzbw`Q7seZ@`j%qHfPWGk^TX0_B=ctVrw zVMc{qrS#E4v_+#HIpdp{l)f|?@z)eat$_#nUfx4O)$iSD&3`~>{N)iTAP~sM$0sQ% zc@V5eB9TT$M*m=f@UOnVBQE~g_a`xOa6#(yuZ8L#4eEo1$No`{{lGotG{=7C{%7F+ zzpOwGDs20UkRRy+N_p)sgb5{#=n+VP=YAspXTab3yx9=Qk-=W&a;r1Qc_8rEKmq$Ba z@Lb!L>DkonTXPv$jv0HJJGt0Qems8v;eY=TDTcj6=l@-yF*~|~B1jqMyoliuXXZT_ z%^hqr9wc3^8~z|B5kjcQgoF{)7sorK%TKr!n6GwKqzE>qQ?ELmk2A=Yx9!Q$9FQW756yBl@$o~XQr zSLCAz)s~P#FAeM4_L6VM2t%gnLOGcnU9}%)Kxk`fM+=*p;n5Iz>yW2bu0bDX0(UOc zosqoPFgs*==|$E+*jPimmFPQY^Leoy2mHc_q$N_(E4$9Y_~OHOo^ z(ADdVPUnNoqkJS2-5C=&$&qM+S(eutq^m?P9&TJyHG(>Np&t$psxe)YuOloo3WYqT zN|3Cq55(k>>JtIH7;B9g*K`ICoV3}8C?+9hswlLgSzZ(w7&?T+b6_g10Q@b;1&p+v z78E9(qX0@S-Q#HRTtS3o z3h(3*SCKpzn3o*U1@YZp9Z)f$@fFZM;i-jV$CN(823et@@dQ%Bu52Hhd=@`Q7Mh%#CTPS|wsxaqA4S7xkGVebOjT@*vJDKEt$696SQJi?jUB6i33 zAay0}l z5NZ$=TH73`C#WeFiyM=xl5RI9*O-DGLM7ud1PyeG@ouQ3z|u+blgq`sAm8kUrK&T9gj?~p&dfx_sN>4sFMA51Y!2tHsit?a zUS#RcU52){Eg7zO2ukz7OsXIm&AvPenGBOUQOZe=<>CZCbHku?_!w-A(;n+PhQT#X zKvLlmvCmtBH>741TfAa?50@ivYXvl?)g;@0IV=EQrj=XP9CQ#FvxIe3o|3c_vojT$ zhfcaFrwi4AB+41uD%b~;bbNVcNDLkIYIqy#{`0^wju9Jfz?ochDoEH;vi%d_eByZA zcP$P&u2zy|-wo1zludym`aC6JD=)-LFDO$80-#ce0+Z-b- zbr3Uq??KL;L5yl`qTxBcF}xPJGgX5T?LnF$Ds&Q1X)6e!mZ*#bnj6VNwJ@n}EXUW@ z^5@Oa;G#g5RGTP~`Fe(YSpdK_BdFhf2h zuIzzIsNPg-3td7*$Yg;I2QTB4tO3!tM2pUn22U8Zh#QgG*k5>h=st;@3`{^7XXqfb zu5TJ%j&cDmbJJ@=fTKva!=s~%bd}2dNKd#KIK5<8!|S}efw(@;gd<#~fb40+_%{2N zlABVjrh)UNHp1|y^R?8{$-#N}td90o`G8!E{SH36&rwa}^cec|{T^ad%xXQC^f(sZ zdcPX#Cgb0bYJAo7UhkLpO;=g!9qBO-`oSNX6AbH}xh5VAYkg?RF#IEFdF-DQIc#if zU@%xhLIMJToIH6Ffk6DvkvG4;KkJ-7!W=)nmi@D1lxD>bmu0_P@k8oRO8P(5&d+mX z`zs+z*W#dC=(%6d-|yz{xAIZ@t^ED21x4E&bo1d}!7%S&nD+(BVrc)e%)w&l4^{Ig zNfW6ZZ~)3~=+B_Yo1Y>l=ER?|U-pmJypX6FlB5xmtR9xGdJ#`K*m)&aF*08vs!%?< zST4GRQdx|v+&|k{FPhRMoYpFo-cC8&iSOnm-r&w1*q1aDz~VcA(&?jRGpyxvES2-j zl@FM!9xzue9I1YIq~_6q)L|e!-S7A>(bqqxYgnN){hQVf{~>k$EOPdR&0qbbYX3v( zuywuwcWq1eY--2r9Y`}ls4`Daqk-%ksB+?dB<&*{1=YDNw%&Gr9Ts7s_s*$n8F_z_M+w}xR$@T zq-DG2&hjKf@h8JP1T#uGjL=V&8vcyCB5k)zTN-X`s_)|c)DeP^24{H^?vSs4OkUJ7 zwL^zJrf+)yK~Ibh7MUM6QL{JRn^bG(5#BBECMA|>I$5&zL9a} zZl%D*QcPO8D-rW(x+5drW6As)kZ49k&dP%$4eU;Cf=C0gU=OHA{Wxq)e4kDSg~;9vT93arQ|`8 z)v|~cEl92Yl1w;Wm>r`kb&ZQf#$O*TQ!rCdgB)xg=PM-VLTy$?6VU}L3}R3#i?9A( zz}V~cD9=GYoHegUjMbH+{8~pa9{ooE;Q)`AxmgxBZzfDt0xvdD(kF({$GQ}{i$;B% zY1$K2@E|}dt$3E816Dr4 zp%(4}C)-EF0D4}Gt*03P$5mB-CH-joF_@O>sKOlX!Fn$E@O#{^I7)8Cz3loFqsTw+z5 z!c75J>w$N*F-fhz0law7j#)S2C+kJ|^BG2=!_0WppsPUS1E_?h4$jV3Bw;KMPOT1z z$~||1(bj5U*t9Y6*~CTBg?Z?=_kb`%S9_6w><5i>9qFFQ?yPSthsucM7AbWxd+$s+ zVR_=csWHhm?A@G=594n;v|vPcz?QHSalF~faqEVDhWaXt&V&c!0qcP@I}%aShA)+_ z7BkJ&cuV1RHGMB8L>1|CuSy}Q{Kfo|?iJ-=CEsy~8DD&HulRumUgk5_*=7ci-Af~( zj2koX?0*1zKr<|^wT$FOnP#fjmP^9C(2|h=VP!p0-uK?96K?_E6-31NlAyLsTM3CK z6(XEeSbbFOiUWzgjKOfj-MQPuL;Jxn-Q1e4qBNT~8~a4ow|E~Nz_h_9QBLm}G3|F$ ztCwdEPiD7EN>5jeUHMXi$;yzF78qa*0k#*uP+ix|u^S8OX@!(fqNCYZR^_vS`4t;< z;(ec47EQ{*mF;V4Ew$;g*fyTZQ1?;}0E?G_C||6`FvMj;!b#?EZn)*H(B;nWd1= zQ6G|dHF}O@^PXfiMY6m$KGzujzRr=Q&T0fb_j`==Uy~`)($dF{9s4( zKg*H7{PXwIs0ZDTpIf1W#nAqB)cpeJfi!XcaVFKlM`rNmY!QI!Kz#`EAL z_`#~^zdAApcFa!~W`AcC4D8*L`(D)Zy{LC^DdFtpABE9#5r2t;2FUN9 z+WwIz&c|v6Cmst;rHGQtSwGGXMN{k*nYaq+_^SO23bmAb3CZ>1DF^3=nnlxEMABO+ zH->PX{DkYg*|)g!2HA@y0HtKgnITG@;|axTp(u~_!_8aNE!#hO9X}2s{Iy#Me@%!` zweL{3@6ffsJks%ky<>~Nb5pi!?NrZmlfGweHy0xY9u|zu)r`+}PTm{1JM%y1p!dHi zQw-w}SsDSYE2D;a#ytgI`iQ&2Fl45{jDGc0u7Yty*(H%Rmf{MlHgDMYdTLIM=_zgH z^9b4ED$n7on|N^ymy*jgTVLM$G@fQBN1P^N3{*1VWL}yY$|rt0+B$nh<*L0qISe1*8`xfFLL?>0k#@v9W$5pf1-s``o?P z9_NmG&+puKJcIEShyVJ{cg|;i9v-VTW!iDE8f@b(`)BQ}Va&lbN9qJWo`;q9A$FOA zuD~Uo`$Ff8mAbrg?Y3{NTzRW&1@~7y9C0!JN^hT!+UGNPD@$j57UgC5F*aELp|sBL z`g!c}x5`%{qOlh)OPwt%2HR(B4qe)62p$ak1t(An4hy(p9P<8M=&w;vJ1PsoFFb`Z zE@565iYo^r?Bzy;%*w$u(DW}Fl-yTUHIsx0rb^>nY#N9) zotj;uE!+yN=_;I|nq#UXHH-cd43(G$!i`a$tv3*MV~xj`g6}wRw7T3!XiRLiU89eM}n#T>qvg>t&Lw47Mfb1+S+7|H#M(pZt z1I7aC$j=#X|zoR!4ZQKoZPds>&QatRW0q7niqnorP9K)?isB!{TwV3BXHU?V+Xa?kwaQ@l`tJ`MEDmY7WH#vv;68#h0}5RhV8H=zt~f=qy2Ns(;a#a z>*U6r{DVPKxHcGNhO~Dwo^hD}G;wdLX zUvy~2UD7T?z?AiCY8pqMv7`KyZc7qvVagx6Qy}!<V4Q!b8M)st5IH0>g`_6l{){a3R4_aRBYK8t7%T%Zp?eP5YyQWkoaj*_;!i@Pq zyMy8s=+J0wbSj7?rKon$y+51_7B`H=!(AeZ1K9VCE!&uT=)pB27j&;BDkbLD^D|`X zun3s97(yjM9Bm>3*(8ax4BY`gRB?sMUCYre7v?94HucAiA=t;hu-MoqE& zR4;!PB{L~wSAcmpjd=-#x&aKu>Y6<>&Rb&2P^GAI%7UD~RIXEU$VAv@er9ytbhO;T z3MX0SZ|zc!%bTtgQ0S&M4C+~jy$A*hx%cn7llrczY+lN{Emw z?cQTv)C_ORp^N5KJ|q22lakNt?rPggMp~Yl;Dg{Tm6bB;hzuv5TBAf!aWUOcW2Wi+ z%T)SfwqqA@WW>HN38H3|usneaC@Olli*O zMyu7%xP?Fg_Gl$`jI|3;~FeExC4^r!OZ*f;Y7k@0OQ z_Lw67-7E7A`Agzse7DPdUw9?iWxhLR0(Fk`Z8k-kP+dH#iby39sf+VXM~xgWQekwY z2-r{hUMfXu{h=R_jiZ{$KkEC~>Ufvu*mgtm+>qQhM_W8cZeOhYrDMDXj^z2hoOvvg z?e_{^ChC~Bkt=mISMpl^5s0`_FsTmuBZvjp#g)~^p4-n{GzKWWe}t}|r>%KJRrlM; z`Ze;#O;W4o8*q5%*Pqq0^RviXb|_kQs9Ls9wQK`hH@Vt2L^@W_bUxMXUbgOi zVv!PCfXP1L!F9{uCjl2Xs7eT8zxNSB3NDEfzFfmO0y$?Dzgwl`-G577q5rst9aXtCd{KDW%^qQx5{Tx7z?Q(hTSdNC->ukmm@Qbw5cmaupW>{ymLvA z0v;>mdYn)*`500-|I|!86H*8SXN~nRrV-T`0Ao^^&w>`&pimDNcwyYfHIb6w6(iP? zdNPPup>1$HiXkc(=ILoEH=LCmIN{joy{#%%I;U;Pc2ivd z^WkB9B@CrtEJu@360lF5QDNG?#6=qvT#^XL+T#}u3Wrb@-o|U9m|CJ>qVVCvavCpQ zU5(l{#;>1HF%PwapG($eRPIRLL_#Pkc$S%KVc0JOj4r;11KZ0j{;?G1oI8%};@3SP zC|;5Fddy?3WW0m8i1hMX8ug$Z3qX^%g3kkb<$}iz@~^8 zI}L3SJrP}%rcE)CA*5DbH^Zlf0b+sLFC&OvuQi$6y2U+dl3`(c^i)SlN~-lwjwAXfsns^x$iY; zdZSUOAW1pxdop%*0gtThf?><2xyx_pU->;~bWuB688ChI+EfO=8rcgRlbSNw7hVM| zJozhn1MaU#F>|>jt=yD@}9W#@5ygZkBLQT-MCuv`IYp$ z!%JWK)xIL0(?oDTaQaZODD8p@Z$oeK0edc_NC;GY9@=5T^^BgC0B2=VZ^~IHruayJ z(I&R~Y+GGpR_lI%yrn0$GrhN^ApvYwoUq65Y16wQepfVj;eBqm6VY@6hpx#~OEP2~ zOaqNji;JLVUO9kr-E|KM6vu47mh3j1-2K;f>-$kGa;b%4V3E&54^3BFsYPIJR24eI zkbxGCI&v3qEY+A|xm1Ggx}y*_w?oKHI&J$pif+eZ^&urNx@G(tosuQu4MkH@R;4|o zBLs0r9vcWUfNUWxVDlZ4>H6N_2R-JX8*qUC6&K4nWtKt3)_Ptm3Gj6JX&pB>+-3!7 z(YKdnz8MBUnN^zB44~_x=IStaklCOJQ%X@8VLmGwldV=3FlbeH<;wMBmL0~7UpfZj z8NAGHtK-Wb!g1nN(yk6b#=OZm0r{3OgUL_W!pQ>$m9LKZyoW^Ab1QIR;g7S{$imUA zdpiIwUl+vLPg{}+rj@CDJL&?`ScGwVIm=BUZ60jitbQwKkKwr%=+j-aIk-%%Ioh|k zI|C)tjw5e~&QbMbP_hB?<&IaXKT8_Bvd7PH2-B;1^-<{j`dgE{lp577-SfCeT&dbR zT0rL+#I#(NJI@kPDfSf;m=eRaAvL1Z%YJ@Ey9)P|i=w=#+v{SS2=EaX^b9YU%2Qu! zG>woTe=SAS?MZ9iz01Qw7pG(7*N_=^A#TzNcB9T<*}TEwcTM?3S|sZ#>z$|2rZ_tt z%T4F3*2^nmURHWGGjFmh2IEWfT+yZkT-Ln3tEio>q&Ol9h%dvlG$S1`CNAE%KDX)4Wwz-U)8w&Pes{C5>?|m zP2>8h#x;hs@uI8r#El=dz9_w~2I&?h5Hb{=Moc z;l=J6;&h(kX_34EcnZ6`&mk4}xOOVLv~9J}*jVcrvy6WNvIuFm%_(D%F9ls(Pv)re zPYdlfcEv0Tn>7aSvWL{=OIqIu`VvSnH79FZ$`GwXPLm^RLbUw|`cRIOG~Pky1-*4j z7k1j#`P$kZFbH<2#O09%(XiJ#U@SvNU4vY)iB&=D4FTg8Wf$HTLt-om9QW#}-!sUX zPVV55;k3-Nx$iO;JWKDy;fCKc&RZlzjahxZ&peU$dtZOiMWl_C&85T3hZj%kIzq1f zo*_*CHZgCdJH7z)_}rD8$7H=!XSHs-rhm9vpHQM+_0{p@C6QFYr`O17;M#hN%OiXm zpT3?bMiRe*hT~3BhjAm%zxV(Eda&WpU<|~GieobZ|Ky^;yEhLw#ob`T;M|m;i8R&s ziZlYrsssQKRU7S~GZ5%bWJ-yfS<5uqW250mn#)mKhS+@^31-ED#)QveWX8Y=KGlPU zE^Mu%kn;U-3`En~)FzAfO4cx3M|Fl@C|RtFfi?Ns%o@ME@mwJXKQqA=o|G}L20q!9XVayYmaS#`G`I>mC&!-Ha zrrkq8lZ|oQa6?X4J{DL#jyVbMU{6N*w!-5QDsISujrmn@t@SY2oq6KvC&kdP;FZi-yi*HQ#%z#wRfdT$l`?xo}G@>x=yAsd| zNi9Za{0f%#W3Mdo3@sPxwC0AMNCYreiCQ0DYmSGGyv$PC`-{IvtQ|a1H$9z^&|DAQJ(cuj_8@W)}JGTZPtICs?4D+=dYyg29 zXq-twE^NPejLCopn|6K;wj%`CbxVL>(A{PL#&4NQj?(Tdbig!(rx-X?IB=OD6^_S7 z!9JD{Q)UKYRPqy1X7SHjW>jW?nJa38Z^TWSSXcX_~qNCN#(|DlOV>Fz-QEvHGfg>)6Y~b+G+U^QUx9>7 z@{pFHv^l8^n8{YQVY%wT3laLUw17PAheFtmegKpqQ|JDERdLe6gtZ_w8wbc(Dy`2O zyeFf3b4~zoc?xRl#GlhW4ONV9zRo|LKiVD|r<*~pZ^O9qXjFl$-VU5$86QX0I=yix zQ7+j`liE$gAztFF+n~A1I5Yg(hNxl0IIfJ$VHxMz4y184<3-`&9PfnG6=^3LiA!9)DxxI3{%XS)Rb!COQ z>*`V!>`5{HsyE4M94K)4WkLzkY!Uh{`fZkR(?b%*{mJ$Rt2z6p;8N!sd^CFYIBMhI zr<{c+tY%tSWZU5){SnW0lAPV$y&5(@kBFDKtcMC>M6A` zxJGaJne~Srt{>aqs(&t{er$jLyqonG%QOH0;N|5N6BGMC9<=*+>$E>AukRB)bIW5L zd8$eEm(BN@>loce+V1+c;Psu}_H*&|rxNU265{u5bO%x-;_+DTc&0}py&ma%M2Ii) zCw&k8^&>5Wd0d2hg=&!^Lav+(j8P#C<@N8unx*@&dk+|@jZm}23?YW~z_p3E+` zyt|Aglk}ByBo|Q4A`RgYb?sy7+U0*yG_{XU5gwf;EHc(CaMV12)DY!sCJYIKp>@4k zO*aUw9sd(@cc~74iTHQQD4HrcPcTLGRJ{2eLbUA2Jsx%S*jFvGlxZAN=6*ecIJbNE zON}a!6z%SY9AZd=P%CGI7msqle5LfS)naV2p7VFgG7)t}@^-CJ^{tzRb4mf%)$3bB z4Chq5_s56O8+3E30p9lb)(+q4GnSO+2f>sggFMV%Ux$gN8p8X+=AF$L*>lemo0 zyc|I;Tzvk8a{Q5;AN$detZS=l>FVZSYW}EzN*+Fegg6SLiym?#{Pwv=dEMEo|vnK#EtsWRbi=0 z&LNE};j(1PtVTh$`=jYO>NDH0AoZZJ^mN<7$6j1XEY7ef{XKpN4|0wIqGlMh4YT-# zVgzxhM^>&4Pqd}MKq3P0lqES_#;Aa6K1nFohyw)xznTJ>F~6FOCW_J5pa)ft(OyTV zXET9~LD>h}RPb;b8?0kQ$~Hr5sVVNcPQ*SHrVXe|G*9I)JHeC&;9hlx&ZI#Sdv76w zAvMf&Vp!fB>()lyh~P_Ob*C3;scx|@zN>?k$CUdb;|~B`x?dceYqTJOPgR>?NE0wPpYzvy13ghFkp4i^wmp=pA#5@>zW07a&~4C(ag2>pZ=f$-7vjPp%|-ya>14>AVmh6P9$Z(zS{Xtv ze~}rxJ$?pY<`!q`XG+yG2gij*r(JrxO4T70ByQy5ZL>@^bVC5xn8rYR^_>2EYyP`> zj|hl)Wp7nOK$WPyv=sObjSF1W3~Q7sl18m$R(I}UhWSlD)V0H>tI#VHVxg)jm=jW==ycdHP6k>%08n6ytH1< zEr4PYczR+y9P(??JFYqCgA?N+5A*NWR=X&@am?@wk2S#mf>5-eSoL;_1ui|@tRnOVp{Vem;@Bo%qLholPyKcjgC;}jPgoHvi7P|NZL8rY96#EydkHM z>Y)?Y?3~FWT!xA{OOtA@?1y9<;#JJA)N@zywU%c@%(^kbXK_}8v(89|o zn1GygQ{=+LllMIzZoWxvy1b?L+ovT9i62X9&_7pP$9z2v4UJ=Ry@`p*zYf^>asHLI z)A9LU0)6}V%lXUS9{rKzb^1$$=aJFr=hl?%G5G#lgNiiU`!ntKs8fadj=KG3gE}%m z{p^7{Lic>LK^ZvyRX;jdKUlbbE~tEUU5~&%p20^8^gn>NQ9mg8KT&N-2{Ce!SlLUN z$EB2HbfI`mv1ojSa3X1mj6by*l-|ad(aD4B;?C^l!r$b~y3L-`&z3jHl0VE`Fv?Uo z&R9fpUo(_WGn5fem(QFopCx&)E9Xxg+pw!1{zddv4;iW!7^~;ms^|EsXT+-SpRE~3 z5eEHgZ^mE0kz3zZ(b&@5+}zUA(%RbE*4Fkvq~g;1+ZESZDyO(Jat`I9%Oq-hCqw$~ z>?w9B+j^LlF)VSi0(woXrM0bQw#Mj+wG|n;@HiNCM;%%L-v&ap2RKkpvzY8^!+w~s zlRPB7-m`{G`jb(jv8eT>x(#BeGeFd^16G?4&|wlcY-oOIv)lBfpO0=!z9Kge#&<2k z3q^KuoeqkQum<^9t)vQ_?O;QBLfZ3$iu5?eaI7h~T%?y|w)mUi^A8bM-jYjjQn5}| zV#%ndpb<9ww_PhXyL(;(iyi7F6mVg>HiG#d5BFF``P&&QXB!@}ouAg;6q1>3Q#-f? z4Ih6Ca68wur+oP3)9yMqa{4Q!!!rL*gc6*^%#QtfDCF%;r^$B$}y_%(N2)qzFbuFnvE|@XZ(eb02t3?01`NI8F-Hj%GLK1wM@EuA zEMlg^fk9xW!Cyhb^v2lSlU~7He232<63Ek>uF zM>v`agTa4da56uDbHj&NoQy$}#->l3m?`v#^%V>;z`7n|a$jxLH*xh^a%#O;_|Z5W4E}zj7NZv(cq=7vTX#+c}u@l zt4$ePkR7Tv;Q@2h3SRBab}TppE7J-toS@ldX!n7oYszX80zn<@F0$<>F&s9-yF%XT zmF+MUji?MRp&n2Hr_lHbRFgkK?xmJ`dQgX}ITIZ!n(X{*hLvH2#DNyYYWFnVlQZPE ze2}GV%~~6JC48_47w%iWuVAB7J3n}r2C!FQWbc`KhGy$5dE||WWzEnW>BTP+;l8tZ zFmp=4LaL@mcGB_-dgI=@jyh09X6lamhyH{VF>u}^+it!YnItKCa2hB4z}iCYytb>`wXsgFjM#E$xG|ZSk}ntsB5zv3sLAE zpt4K2K4<*w5?KeiF}dgdrRC}NFu88#7Z(|@izf}7+E7pRoq+YD)cj7Z0o-s`pr@nr zV>Up_J3r{{x4FRhZH8Pp#L=k`q{F2^gWmA*ES$;v$fns9)v$iy^`+4}`c;id?a9G{ zNvw~GEt*ooy}?g4^K?faC}l?kf}47XT6G}}J_ar}oDo$p^pK?P-m?o+G7I9udm_#} zW{qC#SbJzAf60=|qM^bFx=_UI`V0*VZEPh5=4H&*H(DjbJYJYrhGyC^g@4+w zQAfoYbsut2lrx##J1VF&QTg-h3}^av4Mp3~MeTW5ixxvL(g~MY3V|Mhhl~L^ee2h; z4|VvJmaysC$~1iJ_rNglSYq(JL4B4^Vnz32IDg^7!#T(m=)G`{SZ?layHEq+TE5($QUY(DT!I#UiLM6K! zLvKthzl!|O`;@LJd_?cbUKE7yZ*YeG(#xWw`?mfsA|j%!tc*Y){;RM<|EQGuPk(7< zaV$%-pY=0*=v#XF(VXx&K>ho)@H>>~IDO!#Hv4IKNGi-oU94}7tna-nl0W?)$-$U3 zSNvIyDEnhMq5iCIu>}{Lf9NRB&&|NeQ_sa4d6d*nA}NzH{JxpfzaauhIYw8G5sM_a z;!#*T36XrX>92ScUv#_{N80X>%9V&I5{)kxLKFB?n|X2F9ND)?Wmv%obKw|M(F9ZR zBxCUuW63>W>3v}7G@y*gP(H&@KKo4-v;PYLDrOlgW?3p`xGQI%)zh+s``XthZ5zi! z+eWgx2Rm*L3=9n1y?b|XaByg7Xn1&dWMpJ?baZTN?7ziG@NaX5aOD6|>su)iZ>!Ua z3nHIQbG?NpGxLkbvRp2Ao#ZOi$rQP%1mGm9PVxEWXk_*pvz*Rv0Vnc_R5@pKh_mi;yAp_&mkL1x4gr>IjnD*hCR44U_? zYaGu-$W9G6BHFYyNw5v?v6@uuW30=^9a2Mijq~j8W9?X%y|E<4O^;Q8~)A!Bp2q@DfW<9A$btcEaBQB07<@8xir=%*6R;pZbyB4%S zRql3DHtUXsJwiqzoXBT!4+o9*<@R(EJZH^ho538RKv@EC+}i?kh~oqWSo#B)VneAd z0KA16N=b;!b|qTD%chmQ`G6DiP)a4cDzW*;kZ_e0}9XRLDdZ6;arbQ`|x=V7Kg9r!Y6r z`#K=?5~>U6s;t*0diL`UY~FmXr~xRfoZKXSLWQ;xc;Y<>uE70enh)v+WUgLMrO#D2}yqWlY6>{Fg2}8hb3wXV=%Fr{VZ+r>HdJ((Nj0MQBWvH z?+i2494x!YXu$%gM~x&@-ep*+3V0Ygud4UxQC@>A%t?(r_d#Km56?u~v^ay8z?pqz zSQH-J==bd2DkZE-%O!K2%=c?z#8o_1r)HnomyD{@;wrQw)w?LCcKRJkz&m3jLfNal_{6Y^pjN#1pJC&%IC}em##RmOYkwDhFV&H$dmwK9M;BITt z%S3UjM>~(_<&v&VgKVB#+ud>-sF#N&Fyt+{&2?$fDpdLla@x9_64Xu*3k1t%qNgeq zk{@Wqxibmp!Q!$t%BCCBPDQiBB?JJeFV91HW=%#}EULvw*}nD-HPAC0Bi@fuxpqav9o*76!aL(RoUdj z{Ce##X5)p5X^n7IhF(%c%6I_UVjp0zZfY zrT>{w4)z*^E7YT79at-<3<#R6POIepnzA@HDh(Qxk-F9@Z@8wJntyH$;+eDAm+cxl zE<4XlrOFHxH#KUdIZmUdVtL-#3aU^A5yM7T3&-Q+MP^SB%u%bQYunmN`l+c=EbR-K zbIe68c?PpFUM7!A<)PcPlg{$xmS_Cj<$fvhflKxBO|`nn)H;g6rPjEK0`97jIw|gq z18jw=3H8$#?NYA(MH#n`ufzVFjOOY=X=n zxqkX-XL=-3MAUz#qv7L!{CV77`@z1}cl6M6_WsuX^0)~14E-Z7`MA&uxOTMIhdvXY zCVz=kR!LpU7mF(sPOK8d)bXbs=QwuqWOj4od%3c2a^@VPlLpxH?y}|GWy>FA%^zYd z7-lIPWiA?HDxP30nPe=P`m0K({-Kykr&vm-ILjuXroo7oyD@Ed zQ#$Tucik=Rxm$np?u|SDU2CnsXTJ(1cY+~VW!+{T=jqDQO-dN2{DK<0ScVmI^Pu5I zniBHFv?E0*tmmrP3$4nLA=D-U#0sPV2ertY+dVKta(jx>oc>HbZ`46Rbg9~=CwZLN`-s7;%gl7EqmaDO)u*uxZZb*yvB87I?EDSY#qb23Rq8mtgo9E+ z99s;l4=8E#5!_92=4ouLB~X_?k!laYd*usg6qE{c(iH(H$AGjsqD;wc*qC=mg-(Y8 z$3UE5{16Bmy!TWnotzC|VQoFQ0Z;MS=?HSt1t$-Vm#`QL@(BxC%voa zjb}_+3Xy})YXB6=C~zCSo-s?;`093c7z_!xgy&fwNi3SHo8vW)9B_xNw{pCKMdar{ z07a5L+k^#Z4x(ePKaqcy54fp7ybfRnZ9+@MdvtTCcI$jKHK;#L^V2VhvfXM`1*3+5 z@1AF{>l=a}6;@b2&gf5>BHz`>9(NM-h*e~JspXrkXJo&sIak_tyDTpWCS%~kFv`Hb z`t(MvqiAvx1L$SOD4nk6vk-Hn@f-cqyLGY}yw7Ng>WlBF%(hard_zD+B;+DY!v+Ul2xHZ2)c^0bSHtXvIrYsD*QF08&QV~$>4=zT~l{Z#l06~%_) zWqO4mdw%-HhNWAlDCmj2>?I>DJt6lWO?xtQh>u3ZC<>j?DmPeuu7#W!P!1-j(V<>7 zy?&K3d!=w;WajQgyDv}3K~1V}PXq2Vyy#OoPzmbSdYSQ#*70@5i}puPzHnbl{$TXR z|MyO1SZMm=aLb~rJj$@RiS%wwT#1EJ*JoLsL%yJ{!7-=6(?r|nujVuQH2j65u4jK@ zEAM<*MXwx4n_R-R+JTNs4Qds#nRs=rGsY+tWd59d-la_bK8g2=L3^!4qTfZ<2oV)`WXieY9xW?LNaVv^Vy+jBA-U2^(Z#>Y*aLYUHf(p6= zvMQ&iI?eyMoTrOTXb1>~xT)$>w+qNLB!5AI`;{xNW0;%Ke9yslcyzsshNw-5caSp^ zFF_|!mof_jA&@<+u+ObmK|m=K+m$FR} zw9g!lA5)-{WszQji!iX;TpQYY0r^lqNw80xLVy0)+G-WBEt&O1|!I zsg+kiqLD#m8TNwb1VQP#R~dN>+$vRGE9rzsDdC>^$jL933G3!F>h$Z3q^P0{_2VO1 z-%IT)_wVfJw65`F2MsCLQl}Z_&2nxtjff>n(=ikw842$pDle@(J-IHLr0FEcNJB@x zwJWl^f01t>6E^I6A49x7Jy$*V}4!0 zIAh$@UNigp)2tRxXCz9&+p5Yb8zfeSbnPXxD!Tl>onX-5W$}Hzk6c{y2j*J+&x5^x z#Y#m-M@LUjfBN)k1_lNI0Kme+!pqAmE-wCm+*$Qc&wr?>j!LNSp7x((xQ?lmM}(&D zlfPpU!Z!ed%MqLMhjINVw8QZ`48iFLOzCozd3h9({T-K0vY`KAI43ojj(SW!-{P`K z=~9OZJ)YZk@Yt* z&3y%Jz15w)&E36yeSJ4?-n@0|*6rK3@7%f5-{1e=y8RUWw+DMw6FE}O}bjcg|nD|9kN?8e)Lr-Yr>AFtfqO5>6?DGaJKK?5LWRRb8h>omX$ z&ER(9FKy_Vhc^O-jIH+(zFN{~Nb1cw9b)OZ!1>D`TLlbDG%y@?9HP`%wqD91Ar4w$ zBDWBI*<)RD&-(I_3<@4H&QKzEau`dJSqRl$5yFYNf!O61^bk=~!~>idO+}nZ8SJ#T zhKASbM#E0#Gi9T)DxJ9Gf7jeg4n&kDH}2Sq0LEdCpu;HvkpvY`R@{I)r8PXVRzr+3 zK4f2&u=`egHphu6I4mspX_k!b`7k-b%)stl@<))lp?!*r>HF&!f@CRx^VbxUPOw~+ zr>Gf^R9M`!G4PA4(lK<(MQ8f*-HX$)Tw83{wnRUzTmUQA3XBe+V?1^_)A^r;Tlc{3#_(2nOnbXQ(zQtM#NE)W^B zpt+)z#mW*Tv_q+TQ`MK1WdKSc^aMpTuviY^L-=q7jZ5FSa0U7C#&2k@6M}{2O+x~H z@Q$Q-PM3-#R}QZ_Y)7*-4&|1Yeadq<&t3dXe2%@-?gpzv48V=e2_wB}=|R)7VQ%Y@ zC~wi}B0HF6QQ2=cZ#CX24lp%FxiSlzhkkhZ;kRp)5(iJ?Sp5!G(1MKzt0`w*9js*_ zBtEX=E&M)iNs|im|0qp9>~_VC|d^uhwrx7qf~^SLXD4u5x)IT z5BCf?ddyx@_q%eA6vlLv#1s^#N+g!U-nH%Rlw+|Gx~Tznj4n_P^um zFae(yb=@%I@lqr&c1xpdN| zcTR|^w1s0=Bg@KVH+xpLa(>eDBkr>9r*(dAnGjdd`9*0U zBcr|VE`Y`Ia(lc5Pos-7n%i-Aq~a>mI2Nzk196Mu)S&T17=*iSBCW&YJ+;#g%Mv)! zk#(q=NRJaHgu}=b463%KdK_@Q@m8=WBLCcYZH<&T%?7+`NqHwt>O@^)DG$I)s9bu7 z+O$N5NIh5Nduzv}P^N4LogdlEZj$Fh)?3A6_i7(%VD40#SSWRNEE8`!99+p0vf1vE zDf^MC(ok#FW-V0-?46mcF#}oaRV*SPID{jIRt@;*KjZK|+i_(DoX?0WhJYE^O0lA_ zkV)*R59CkNSqj`8%9WCmO7uSGeP+D$s$cLoyjBvT7`attfe(Ka@_{>e2IbBjINZG$ zq&*@3!4uVeWvBpgn}Sj{wBaVpBcBdz-<*5d*(oE>njNgQJDG+6yDNiTwp9RQoA|U{ zgy%@k`3u*mwR0WO!o#`CR8<}GHt4%h*4uHS_y^{8H=!(6CTCtvo1hHLvNj6CUVYpu zO_cbwU76$eX@^kL_~}{wjaQ$ZH;+hse$l?*_xU9y#dp@ozx_60WMt&x;t~=PQczIP z(9l34kw!*F|DH+l`25qC#eezv$4`|%hU-W4w(kqJN3Ru!Z^X8vSBZgxo4%t5(%Dj#7d(k2v@mzL(VeubvHzQ3*~|3Q1B7O+FKr z`bXsNWxOf_Gph&*~M)>XymwQqAdv=XDt6w^mnmXst3m7X0A5*^sW-aoSw=2HR$s#5!HH|!F#E5$4dW*j2=H+ARjWB> zlv7niA6Y&p@DyKD1divn-G~eKlhR+fx#v2j+3?OBu^gs&S%SLQuZJN}IlQuvnuMAE z=^n1HdhcegocvwFM3u0vx@cNc`!(#IShIN0vcB`1gi#;G+67yKkl>9c2A;vpB?c2k zZjA294DO6M#?!w~EV z6V#Xt$wf53kn+8C@Lfefx4)iH9ThTPPB?PQ0AhcMF@fpzLy)1pp`}T@lCXzK?A8wX zQ{TE_Q$8WeSL@(0>30jWm!A%~@J5~Opk%zPk@uk*`K*N^hv3%6@YJ(mT**G-NmU(P9Zmdc zt)TP{zKl+ius41dFZM{duJ7tTjz?iG8e=G*IaR$#Rreby1LYfMYMZ=ii=uIZvSE$- z`qNXjkAYPW*vjtnm5hoM^eg4u(8+GH!`EEQDviPCCuQejbMpV+8|TfNzx~Fs`>%fE zBq`UHyH2o(n-xOny5saX6#Taj7RN(Gi_ZAW1X#(u1LI|Vd+O}2cTTYjx$?*8J~A^b zkaxf3)2$glo+WBtP|aPJWG;HbjyPzrR6Y7eMzz*Cw(IqDyGDMn{p2BYG+%_VkD{_fQ^v1+T+qS z0tvq%ZGGNZ8d>>J*z0*7fGBkggNgB`yv*4NdcES^D2^DuRRM5J;UdcVL}&X$4(_4d z&0_Q*k;qZrUCE4N-$|kZ`JzGEoN-+{TiVS;B92kEaYumfHC052-fj-QmEqsC*Y2IlxDBt8Sy^^^|Vo%Lmwo@b`Y(oLC6 z%jAukV0c#rol4~$N8cvcpj0yB6kjSg>X${OuJtL>S@IcB0wWo(iVW{xC{muX@YMgX zv5*;Q)A3=Z`cl*#Vx8gYl--jE4c8lHkA%J=5aa4+S(k$!bkH&do{AF11=&c4;r;qP zp5&T@)1iO6S;Ufa(Y7WqYssr2Yg5zB_GW*cd+AVPh$rUg`U)}2drmb~m2DTkGn8}u zgt{XcJn!NIzyH)`O3n0vnHBtZGfQW)(-J0z8X=7z)^q$1KW^7F9e#Ro z8xo${)}EA^VNaq4k=E2nAsHl0&<`E0T9J4`dd{Tz3n?4S<;T|gPv9W;0E9>2ad-wP z63iu0pDPg>LtdJ}r%tDEzx2vt>8 z)z#HCH8lhR;s2$V9;cUD{1@L_OtEYc##Q5t{2Cb;^78n}e8tFK!gkhcrk;0IyIe2H$%l*`5wC$>o-NpE|EP0!?0HrU#PMIs9)U_Skn5RzH znwg%)y^UXIRkB_)RpO}r@EX@~gF^sWEy|YV&`J-M-Phk65iL5TQe&L^%y*{5h9L12zxpxuYw3=X8P+yZh8pxZNbzfFKF?F)I?O!q1tQZo);5fh z&AKd*k(K=!Y{f^uRv{_8bcF8S0lvp|(AWm%pwCp6eN&+WR6xJvcs*qlds4B6=? zH=JPd2_D2>@K&=cW44Qox)+H}j)i3bvts#@u*GPpbzy!EVI_37&{>qbHvC22NiEM8 z)b;Qf`n@tI#RxoFQ$y*X=kro-$#jM8YP2Ap~ps~$1oqNhQxq=S{-*)~c4 zFa%lSlY8${Q79Rx8)P_L%$)P;ufOJU+ zEr37>5IRIeno3DeC<#TX(wiuP6hT4hy(Dy`6MB&n5U>LxRY?Q|6cwb}#)4g#cO|GZ zv-j+C&faIQ_dV$&c$JlZh5QJ3^w-s`>*@pGlc88lrw(B_0Az(*>W zy5oq==iFb{=*MqM=g;|rJvJNzxMXT)?MfG<5vF^w%FWs) zCc9)P7o~GANfh-9myHWjr+FIYxtKe4Wk=iEcBR8VY|QL@^-CwSFnmYnOU}+0Je|)0 zool;0m*AcAXxe@IuDi#&ZzuK)Q!n-Ze@O&!?BBU9eQ{7?vvaSz0xz%{N)GUoud|TB z*mt_Wv_@N;SGTP6rZH+W?{)g#x##DBe1U-aj{Dyib#sd+*(btt!n0+4azyOumDV9w z>7ei2Grgf@ZucSV|Rf{>{PZ-mX_+ZI0D6;|tx zA9Ua1>?)FfQ)43s75W0LOw=fPzhG58O$WwipECi8+wUy|o-L2ENf0~C(Mty`wR`4E z?QXx30&C0VNrRQNEzmu2jq&jbQV|O&MIpuODPmGyGxAs`*BUQmP@x3wtn0aU2blNJ z0@%)}K4kZ9Nlr)a^IX&9HB{Vs62p_%dkI-osaGTnN#hRjF{G zipqRx5;aOL$j8V4!n5p}w)zzM=_sj$=?1YNc05c-ZZxIN{-p#XHQSX8D9SeG7%7r) zio_(xvC7I)TjsvuOdy&s9*3 zt1G6t8fu#dre0l=CmvNt&G?V0qaK;EAIAoo!cQPa;a{^mCru&8Fn!)rs%kwd9L;TF zfF@uQ_zJI<>4$s8^cIz%M*8K-QO9SuL~5SFpxORVd62x7j=>hNYxV6CB*lKc$@)^!#VI)``YmWNS$h)}W+9=W zaW~FDU{=|ja64K!ZXX-0!khzq$~s#2jaa1lJGy82OTCt)=~m6zL+GVF8Fd#U)>1CI zgir6_bcs!N@{``sSH4wp62*q;Ta^(h$omyV_dcJ#dp+Mau&&12>0|cGdr8j=nc|KL zfPkM>cySEWTid~pe~SxPG~!tUmsE8%c>*bDp1i4Xiq3b0RS3X!21sLbP$|p@MklGu zqXtD^b~1pjtg-qTcw=Z7KN=w&gg+_?Pdh55@m*SMu@kiHL|OC@ARY z=olLtZ^wiD7i+2isn_J+Z@NGHkG-vfgZ1yJ{VuFtqwU?t450n7^*mW+i>%;&cUC|L z^VN71?-_t&srInj5wky3d#uIxU8!e!j8#>1oaG7K-g+m_{fz7|3P~~y-7bbs)n_?F z^-g8%JC(UFB6D9vmM$}VpQ3X*XU~~D=Cd-ofcdgKTdaBRyk<;^Mr^4@Y?*poIdkGG z)Z#1E5~@@asVYgee;noHI@Z*~QtDwTjf!b4(2Q+E#Kqk?Oi7?*!F7qE0nw5X;qu!; zRSbce`#cSgxLTHWw5_qVKWAgLMgRDH&fflPN81|bg%$3Wr-F_15_Qw+RU?>+EB+N7 ziIt62RaMp1)l@3=e_xhgzkdDp?c3(&=GNBtm!Wy8v$+bI!aH6(>5<2~ zHaQnlyiJu<^Ce_`T#E=vDQ*&nTZ2CvydCmuI_#;(Y5KuZ5(*>J+DEyDC!smLZAO_& z*h!^Bm0LaW!S6>b-=2MCd^TmN>r~m3-v--v3uC03Rzelq!MEOw%Y58ikhUq2~)*j{ZmNy}TG6@>-5x)$z+gbZ`t4FbHZ|^06PnnN#vf9HTio)-=&*LOI*xSzFkX!9@ zR)*XoK<9(82!yb?)H>Nauo<)@QyLU908aHKjg;j1Rt2F%>$?slFIY0wuxeH+As(e$iWFo6f6Qn zZbeXNk7c%8rUongwWx`erS2PXwmXV#mZZT*M{GKOkhYIJm~*8OTU-F8+6!?e+G_-dWPokId@o<%7~sm8Uy+~LBY{2Q8BW+eZ z*HBaF-`Bh>8Z}pURf@;aw=zlb%dINqmf00l;1IUH^i&vaRR&+c;f?XgmjD*4dG*#< zxoo`&!0}n?+vJ_KZzfUj?9)p!mff_K_XoU+ER2J?k&2UEFjW|jbX%f7QoglMbbx_znBUC!gf^YO;Hx% zMO=AV1$w`h-yOCnpv>(qj{Rqc?^w3&xt4oE$==v4)3!{wbp2bUL9PW`=81=^wNJmv z=_giZ9P7Uin17vkG(cOx-(~=OpF1g_U}W4o`Vjd}0Lqst$L$UpD7>Z30jJ!+dG+@Q zUA)ez8eEy?^14dw>L*UESUG;lU3>C7KLOPJXXTL<5Rt}DL{;ZEsj~X+ASx_DIW3(E zRl<(o9JlR``$k4ABH!k)T70m~7N6Yu7r*Ds@Ba^%G#3}w&Ygb|DzUBV2Z2D+($d=$ z@&EHq!++{yA%LGZ&Oh54x1}f*%o0OS6h`*ZX2^N$`qdi?nD zlP6CW78Vv47oR?Ty0o;kyu7@!va-6my0*5qzP|qK*|X=*pTBtV;^oViuU@_S_1Ayp zYVPPfssv((~Z>!TyP<1{N2ox;HW-ax7w^_#>$zl zo?0TTqgodWr`Bak>IOWVqI+N%ij9ZN_BwWoE|wAwp&i)cxgcQU{9g`Dgw(z6H!Nvx zt+LtaA&qNl4sHzSeF7%f9TafyYagv>x77w{%*zw~jUj9|YV(HQ7LU{HB;bB99d(P& zq^%U&_YCn|4-MOl_dfNIrZ{`Sjz$=)rm=ixtH*Q4d4}aWO{+c3fpc#Qen0(u`RC2e z+g~UFxJHBDRze*&r)`de>uv(hTfDMG-vy6Hbv!b+O&7rjYqKdmvIwxbIYQ{BQ(P<` zyb-+%o?uJZouF3PJ$mwB1^}$6IZvEEVIn~i@l*5qfVK8GHcUyUJ<$cp?(2x3$vl#g zH-dvkiZi6neybG4$W_^sLh8p^2(=*aYx9dYPo({ zTtnK_L@@00J#}_!xju_sH$A+@uBf$DZs*CPj>)GYZA}j&{NPo_P+Xk^0GoD5fo*mM z8TD3$eqjU_2>>JWJ)Njx+7uOJtD>1wJtQAGuPA;+dAt!Aal=nj{FwU@tjDqsUB>l; zBcRipL_5+VPeghkFD7GOAr7C37(?ok3`ruk>y=00mt6<(@T<;Lw5?}+7E)wzXlIw~y z{r1R)6#b4#IHF@jq_QM^RHVHmeN5;EA#GgFg)mko;+IamC38sO?F}Byhp&;l&;j&8 zn$0)zRk8O@wG1)am|C1USimlK+{0!Whi1tO$5K)BQp|jLL-$EAc!=c=|N+Wacu0j0htnhn9?V@ zr9db|rg&;+T(41j2CpTf4EULPU_rt%BKEC}QVSG8leMzSzbnO)4>hXNdX1V7_IpELjYjy$*x@g43$F9mY9%#f|7;{y{_`f^4&Kz$)BA63=6`Ch z{^j?F=l0+K{lhfj@OyI}t257ysVVv)P~A=%XU2@X`QhFD@b3P&@3NxfnC)Ha9fW4J z2XF7vzuTgbrUBn6=%4)ak41WJ`#pXjD3)oy_+EyWVD!BYFIhj7)rS|(e3k1)Wc{vk zWxmRD;mn75o_16L^KBko$Xc+>7y921^UeN;`L2yktWij7kZTreetQ_%c_((^~auBlmP_9*oms+R&%$ml*D) zks?Fe1&qYQY~Ipqu9>bz>_eK;D!Bl7irM=K;VjEXRv81(4PzO<`aToM;1tP5zaCOF zBi}+e$6P~x^rV5hc%zfe@k(CrhO7t4OTLFA5Vvji^_}JgL~|wKrF?3)7y!myjFTF? z-Cm^mZgP3UO|Jt*&yqIH<&HVs_jJ#@Y%bHk?jw9Qd6GO&n7kQ&_e^pR@orFZ#l@V+ zWF4i)Ha?#~yCJ;YOK~>Ar|t_2-dhfm#kb4BOD)laydgY?qS#b$GItNqFN7NEAf-;! zo(^=`t1aTI>az00_2P0p1!PTMAq(Q|-EIPL5qqaSl_fqTqWz5^DT=O%$|Lgrr>I~l zWeK*&C<84xw(!J|K99Vu_h3boLW=f7RM2If6=>Frpdpb%CGEH5qy6DLSzxRJ7mnnR zOqX{vrMQ{;7z0=2!O{h{uy{h3JJJBbUJEUNhYS@IBS=2TEp^D^66V%CncPr(0t~2W z@#ZL^$|vOcBQG16lI2~W`4dl_%v~BN7QIPsMqY+H0^*dS5l`HySCx5CM=ahpB8&-M z@)(B~egJt_K|Ec;6&_5samc2k;>51-q@ao|g6YS+G7)ptA`SFb)N6mB7BbRNl41iS zAsVhpUTJuNcowBX5u7A#EZ@xWfBUk_I^zMovxCCBvRmpUTkXiMgj7toR9=%i5-)X` z*x!i)sa}-j)V2kPIIyjVNV%}piin74+X_K=GPvm=i54D)q;d<-U66hT_mteMkv~HJ z=;AA+(SU)-q)g?*PAk=m-{7~c>EqtFgrmj*TQ&05gR5^H^$ND8 z3<$e9QQG8=y1zgS-^}|_I(DMho49fu* zitQV%YR`u?wqhg0GKuAG>`Z1IGI!vWsD3J?SgK>)yX2cHZWR?i3WRh|ku}~>) zBS}^Akg{xFy)ZmaTw{2SKL+i)xOQMGpY9M zy^+~W`}}vpJ(t;V`&R>xVy*nMh1>UOSaO|0S_>qrlX*5S>=!8+VLDl;Q@joH9IY$t z%tgMFvKL$5FP;8jqS3iNMxoJtg=3Le5U(tTLtRd@s z`Tv?K|5;O|<-cX$r|Fzn6K~wHGoxHJ2$s_CMUdQYRc(4~Pa+tsG31XmA~f z-RprIA-0I;_(tpq6A)LmEQD!85Xk@qLYX~VC)W!}b?l@?^TN_m8y&m+wR80zDIz+g z3B3ln9=8nGaY6J#3>gg?wwgy&I!n0a)LC7Dy{R9>PwATD#B?BvjiR^ZB79R+hLT?h z6RV;D?xf*@dZNm6?j4~5!g+)*&v-h;8z|$EG*9zBr>yhS2hMLHGB!y@Hg65%o@1XH z){=Fsa-Q30*7gykyWS69YuKGGa9;Nu;IaA2=OpWMtJ72t8~1MoIRc+!#Bv0SYTS-k z7+hZ+O3=`*L!UO1V6zq1Zb&+8x$^QBC3&`TS~^*Ex_c-LvoKj8u3q%9#FYT8Cka?a z$vp@UHzPS{Nrd zp=>!8m(QOFlfZ~bzWF6j7#6jhfWr5zE6APgX}>9K8L%)U6MtD^7zpn59>QXc6)KT| zFops&N~?Gh7-h_;fdqQeDt5=@(ImkVn+sktf^bhWnXSWHWPs-(3Sx(o3W)<#5N{+$ z7fyk*bE9rt3ChP*w_?eS>D&x|gf2Iurdf2h;TBcap>k(qZkRGRiU9{UBC{P#7>8Eu zXz?}iMtHJ7ib|C-a_)c%P|#|^kX(M%dn3L?RGm#Ex7p;T9Ktqab|<OFrkEtdqEV-C_e(@a667a*wc|VIs!z z{UuHL_;b0ww?O+V(UNlXU#2sKgRm{=Mlgw(6)E)qaP>YZ-mKvGxg}Hq$3Y$c88Gsj z91g31gJUn&N zg=!{-=VZDjFcZ6O2mtTR9H8x$cR9PUSKf1<&IddEp(Py*(NZ99TKc^+`Mk+loe(5S zUYaqcjn{d%yc?U@i7-fm!bd`U}s|g*q(>W z1Hwh~`e=I(LBKWeddnt){W{MSn_4jX*{L-VdLDxDo_K>I zlocF9QND2}H@Ir|hvB9DO;afmMm#wV(Qu{vF{xqpv2m}?pjF5G1n*h^O97QYrDtwW zpCH_&mcAwGcKf-bLk1)fb}KqWqQFt-J$X)}EAW}wdrUA;pUjncO@iBve}~8*EKxg? zO~3{kcRK`(P!AxHQ=Ohb#QJ79H6s_&j{M?rC;7xpRd?)~{V1eA))b*k2*Q~*xQjIF zZOEI*;fUbK?MNem1`Ha?R-}ASNaz zFE6j9rM2Bn`|nDa{%5~G;g8?#uMR(xq*=8dtfE;ax&M>jXR-XOxae)-!D_qcY`b5U zMLDn-{G)h}A2B^F%Hc;+4@(;U)72CZX?l#6&J*}I5QNFj8-}oQphH;@BrH`gEKM&w zokcDDe)HcK!5k(c`99gY5!t$te;k%5;7raQCJ@QjjxN-UIjklren-6fTO zRqXr_u;R8r&3*2sCma`6*gF1Jw#L@^ioNqCN5>1^j&)Gm66C_XcFR4}=G(-^;lqvn z#~Ln2*LNq?cT(yvl-4)@uQYsH8vaiQPXB%4k9D=694cQ;8-hUJ$w$?nlB?#jsHn3l z?mhO6oVx#yVMVOsUIFta&A`T%qJ#<5E zsK)I`U=s+&ir1fL?Gg1wyu5oyQQ1sE_;a9$f#uy23kih@YlG-J(J^y3y~OH|WIlU6 z;oUn1%h<6+)^4;OE~@i%9N<{|nx0*PoH7#dco!zS7kQkQEK~nw;`zrb=p4aS&i(`o zXQNQA2>9ofa*JOm+IK@bq`i)WY1zg+a=4020tE-u-xn6jpc5bBu0|Btf+RaaZd&i! z;;cBX!nR-ozSQtUN(xepaFkUErVWZ5J{81yOuAj1TU=TFjT8DX>}@i%(8jL@ngv@# zqVqUop;(t_2eLr2vHNn7uN@B$MAvu8Q`Wu2bMOpU&a@^kOO1k-a6Lyv?M^cau7xK1 zdOl8p5Mi~5!-WpZ@)5F**?Yn?s)n$}DpPoZBBZ=Or7l2U`llwJW zz~%rurGi4!2Q*Rq5jU;VbUiQB%j6N4ucqura$*j1K+s5UuoR^t+lF?iN4g;t)or^X zN7`*$#ZQm86$w3Z8F(cXJ0K~ct%l5NV53-Tn?mb{A=2jb(8fsWfVB<|u?&H#$EH9* zSH!vFBzY>|An-H-aJ&$4d2%3zdl+z?L>v_ctf!W0qXV_hSOoh%<#fM!?x@rTFeS z$^FvFE4$2H-cLImy!jr5u%>QcF5w4tF#D{jovY%X(|Ou~oC1_lwSukSaS(mH{g$jp z>;@WoUJCP6P)tMhq3lG)8?(UFSAgs6hKRQJJCC%qA^69f+^&e7rUoK6Q$vpT*{Vd7 zpC~kOUq%GCq<&Hdp2HC67!3JpM-pEv5xrDxGs`tvWo-4=V}M0E!s}) zO?JF3C?NUvE960--IATc`c$3i-bRvJ8>9iAQl-U!86k0UTe&JC&>k^>c@c-}Mt^eY z?cBQk@7FD3z*C=K!Sy-uSb5K2n_>p7_M_J`tWt#VZ5?2Zat#mOagp-T;%zm^&J%+) z0Ag~N4pL@dLV9x(nYtKYi-@}F9)D~qw3=GnGRQ5vC~tuQaSLCGw@qBaCb^qdLSHSJ z?gYTOT(0Scn4$sJIXybSC#!;=Lw5ub;UC~59(|0iUbt_Kfo|~y0f>f`*sMw zu2>Dzue9QDVy`d`cm}(L&6FfQEkV_0DP4)-J%NKrZ3qP_wZ)7EAlxM%Uf0m6R-S;% zQ;Mf2N$}}2qh4)ZxZL29g`x_Kyri?@X6~bUPtlcf1%dP$Co!0*^ z0F8gtY@wv2v@NX1U@#UI7XL*B;a`6LEaLbNzCVEx=GnvE_Rt^WmA^ZvtsR+(9NQ6s zOlbi#n#1jng8RQYfoxmYScj0GefK}41>b|En7{BENMQALfK|fwnM4*2gmIXj^FXVU^#^CDOCQ_hwprm4GiWygh8_O^8v)56p#{=%G>|4^n+d-V(L z6&q`I&|Y!UUh#Cj+|~U;;^K3azIBr;D;@)j@gt9m#^>AU4@d9K&CSg{c<|ui!-xMj zMF=PVyHv*1@Der`W?A?mUP6Iia(|q7sN-meagHe23fsz;D%0e~qZ;LG@h9>p22ASHaj zr+nvrRH%}fOW45S;#((1l_CnCz52QoP>1q#rufmOvfhLuiceb*Yk^c5UtZ5Uh1dkaKlCE?MUuTQkHCCjz~|#M}{!Y zf!)>Cv3_VcT-_o3vAt)=M@I0gD6S()cUz`zlFq!yABY%fq1nqX^{#M)CpOa_Cf8M( z?3DJ!3=>n-Y7v|#r6t@)ReRLrmvehAyW_H?koU1il~TNUl11q;xLoUezZG~-g=rGX zvcC2fc2`(G3KddMT2XJxUF4Asf5?`sRMQ-cFKTQ~0Z8H<^cbF5+&*Mw>kqNKvixkZ zI8E!~SUT|3O$rRv|MJ%qNHz&RbK}nBH{ZQxl`_kJ$F>^dIvZZ^6 z>kA*bzd(ia&+#<_kFB6F7HWAYWR1oa^Yc;wko~?!aybT@l z?uEkiRl*(qg-0o`$~6_fm{GqT?aQr4Qw^SrU>{*81Z=O4FDrRn9be%MJ$yR=7vE~TV{Ql%afH6bBqB!et1{*(uRJ0ZyijCT<#taEWy^+Ff}D=}_URZhb$1F>fRlj84@Wcv1A0 z)d|<0*_C~msyoPubC!DNju4vWL1ql%r|!-a-X6s3G^CgxHyxoE(7QAAcyKSj%iF!kwvIb{W z4C(ou^d=~nNsPIo_LR_lEqLA*T-Wl_O3){`pXtmU`gF2^T{$hZn3CT`TUHM$!n?ep z6kKuL3pq4`J9Muv??U`?vlz2|zT;jU!b{~uONQk+(%s8n-d{K;(CoSsKhqEX(3Wi8 z>@GGoGi30gJ=^?urRBbV666R834y_2MMXt89KL`5el!~WKL_6Y{Qit{eiw86;99=Z zE!!aHhq>ZA)M1+Rf1sT|waYV&g-pXf!QGc-&u4k_y;#ag??8+X3*Pt!qkUOw52o8N z6zLy|^bbQauR<*4Bx%;G#-q#1KwBeqmMu3Rmyf@xVytYIZ`Hp{19kjw0l&7v_AIVru8c~`}Y23U}W zS*;4FoZMB#V3w+GH>%do@Yl}r)y?tMKiGyk+>MV}9{+`%%}=>nmY7ce3oAQ*hdO@- zIV@oFm%nVZ-=U6B_X}{(bLGDE16Nm%3@k;DEYwaux;Fjr|31hG{O^GrRYkY{94w^- zUVcV@$Et;lStdng@6@Vb$(|!+zw8}B@RuCGb^6a2({@Q|6KW$p;kCE#9SD6`At9WY z=A_{^R1svov+16JM}O*-Vb08ZhW=OeV%C<@iVYnXPRts=lNI|s;V7hEA!lIWiWoc#->Dmae4?z zI@zp)3YYZ@8j=hwspP~w7=j3qwC$`}Mop^7Fumegubkg&Uh2FYlJl0x_xh2}{i21^xt=I<6qE~aL- zo(Qfn^*sUi$!tZ$k^|wC!3z0HwmPYq4dM{8T*I2)DAFCu>4x!McB4x)E$Q*)ir5A# z?rAD7I+IUq0=PU7<)t(rD@KzGMdQ4gbIp>Xueov%J>%rrA(1lAgd@Ue1FBuF0 z8tQ}aX&&XTld`2$YgAbb);39ItZ|ctyuPSm7_m6IFt&G%>`;ROJ-;BwIW}G`T=|vQ zky*$`gf>$^P31tpG<8(B-KWWt&TkI@!ajX)vM{!?k$hwjm5a@s%mlR-Hy8w~q3s34 z$@vWxQ!sVmm^xMTk^#KIY(XWGA_v0jz%GgjsGKmvsgy8E>M?_Dqf({xB8218a0;$u zi5rTrxBYs;514SN8S6VJMRt(%iMKzyOWJ@B@6*o*hy?h=PfrPW`SapylO>74N=M^! zuLv%j+Q4ByGA?Y%Yxv|MNNxz5jf<)YmuO~g(D&A;jj)+X34O;t(r$f&76%d+e(Dq= zaLKm<7qs*Vg|PMBO>2S9aAUYcfF*DSF}@(UcY-_tTy6&5Ie<^?_zmDEfpg8jnl#=lFMXbS7%{|8!47)vj+sFy+8L9b z10cyG#VB@NKy1~2=& zRokXF#c#bMi6V;?E@#B2If8mcTj!E)9B#+UzXIDK(-kPzFGn3(`nj8HZM&0aMuS#^ zIbJEoDx1I5I#M^X7q zba!L`3NCXfYLiC@zWp=E8IBL9(c#L9L3l%UO-b)o}`YP{ZfI?&sI|2J-`zVq?NwVS=BFe9tr8|fLAc3qXk4k z?PI~`scT#cS3V2OTUCQ=Xe)c$8?sc1of0*tyemZj0)7N}sRX?txW}5Jo63%&NV^T$ zsLyy;oycq^A+!8#&1AS=BB}N#AJg*0t6asU!4@-+R~ELcsyCr*7H@GGWRO_otPM`}dgC?K+3=zs&H1?ch|V za)l{X*(POtnWPNU8_G0>em8skWMsDKm_OP)m@G`#cCso{$ii}qngyIT4Pd!NnPCZ0 z%x(U?Qz=;@E|5eJqQyDs^Da^|E?SSw&CcUDPNL5a%WhE#yF!K`9nibNw zVhGut6q9n6d&a<_EuCCP&8;>ClYvN1pG!XI2pjDcJM9%0?ImB=3sBcH>F#yao|S`rPpz&z@wzr2Jup{tYr1}P zs(bwIz#RsI!MJ<(?$p%O^z`(-d-v|&zdtiGGdnx`|AdSA@4yuEM0CDhP{-1+d9h_* ziJuwzjvNw`vzuX7H&LWv8C`V-vLaAUweR#tj;>}D){_n%&_0P)EwA+*I=48^l zObT5oexE7P=B6D+&Y89-)*#5j*C|65cKR-F?Lav@pG#`RXu{dvaUI>Qohk>n@ZSeV zD|+S}zJ0lkx0HGknDqj#q+F^(71-_Y)PQePt&ZIKM&c_fZz%QCIX9lfTn%pKSPl75eWq08FUg{XH}2V|hp)-6xcrr_aX;)bmGyFCJ={X~C@&v7Ay8EwpO zgd&NAt5pjTG2|m>wDwn)K@MlH+&sP75;7S63q`R45`N+$DfGkpupQA)x~L_P7k;qp z)2Wy`k_hGs8%gx&xb`h@ca)8Eu#z-gTxQXQmI$q;0`XeLToQPdYD~uvir}1=lmIme zFGYIUQ*hZfc33Z!{9H0otgke_3W7eYa|>o$1>sf5`ew3I`mB*@3as8ne^g4`1pO3K z_lE9_bVxS!QqDF?u@cM9HLZbZlX3@bLvo>9B!C47t7<$%Ns#~+kw>y_(10mOVRv1U zM~2;!Qg#_Pm?&1pp`41`s$14(RHs70MA5omQbuLKn*blJx*1-gC?DKLlawInhDo5l&eJc5^nhhu=0)18r#>shNGb zY~$7qpgDINk_NmyDOKM%<*zkzV5$u=N*%TAqxhO$wifYN)3s6;eE@uucY9vwvFyC`y`FG5G5U;T50F2Wa9 zm4rfjeVWXAadqjq8ekzDgF>JBW+iHTfc>t#v3tp6Ji&s7m^&WFe|PxC)cj-@-gSwC z)Ga?4tVQWW?9A3anwBd(B)^OPcH+W@(fEKx7X6jY!HqC2xl0_EU-JX9h|hl$ko@|h z%PjshsuGPbAk@{h4nLD19@oF7Nq0sVeC$n!3PRH2Ql3J9`WZSxkZ3-xCw6;!`jro^qxmu|8TIQYcRl=-$x#3mG7F2!=0_Vb@P{ z)tivpvU)l^5iFWs+A!#IT?YAi@gj`u++8L+h-cn=`j%Z-vPqT>#D>Ijgz166KhC+i`s@{HC}i;Aog4!g@zp|CxC zZy(AK88Ycxo~CDItq3dD!YFWV`Qfuu4)@SHp&pK$FF1 zxCtZ9BPS{B^vmB8RWBQ1gR+CA1SXi8SAoLRM)A89iuGLq0;I$8khp-vI`8_rgJx#a zD*1V`KIQ;VEqKv0+WVIEr+jv-9E%|>dlUY{GVuIgU6<94VZPgDkg8!4>#oA4B259y z9S-ZGhZN6~S(exlrX?0M5*!v~u)uT3@<;QPa7%y>{=wYbhwh$|(Lc^s%!AbrBM(z^!&KX_Ts$nbFM03j?RX6eQ}cT!XM32M z->6)8^mf`tq1M?#&2z=9AY!UgN~6NhjulFeRNiHY!W$x`BY=uKtmyiCe02}F8y|Bu zKjmm$VNx~U1Bcgl{BhdX|2Q1&>zwWD-0f@p?Q6h}6{*f;m9E8o-A}N+^NyDu1YVs< z>7TB@MZZ3F`}XbIckbMooSdZ7>Hnh;Qs}=*> zS}(2)tx48bNore*vm7eSjD?T-S9`2n6-`F&5y`h<|LsPH;mEQ5hg=Vnzo7}hG3$p< z?rp-miTkYA9QFHZR`aV{Bep(lS=Wu;R|!oA)-~LONzR2-r*Bq!d4D~4^poT9jv?Qu z!lyOFB3~Rw_hI~lg?&$s;x;~_PpOzMlto|SnHoGZ+mIU{5_WWU_3xPpSOC$c2| z^HY`bkOeET@@96ZT8VQ=0#PVB1mWjruQQZ$uoljZjHAL8%0%WB(7v+sA0?6G$+xRD zVgl}Knlu|MKxAtxfr=pNl5}{p%TH|ZWLMkJ=A`(7L&}o?d2i)agHJ(smR!p-9ZDl|7Z4cC5GUGWnirsSaHW{hdJPJu`v(M2 ze@)q?4_HxAli=km6{IKEWTH67vSA0S8X2+&Q-Ne4>SYAo|5sCxcdxo1ZyF-p?+lSB zW(N9I)8NA3JIxOU)YnoH`fi|6!Tlp|@rk$j$m3ep&^-wPE_7{zEZ>Bc@DY!x-SP%jh1@;|D*HEnadUG8_=^Ng!0m;kZ zSFnu=6EMsR41cE4Wjb(=8Vl^ z2agKEo4Xn_1nqAJH*$DF;J9DjxD6oELab_nlrhW9BfWAHY zHRpwtJnCU#Hz@l0UUHC}Idm0w2yw4VGmCH(GTmnu8p7(11)< z?ZS8?kxmP^Lzmy?*{y^Fh_+Oly8h(G=&8ok>$rTm2%DX%aAjEsUhCBkQHb24@%W8 zW#!Lz9dRYYdAHXAQpY^e`@gJeCfZOlWY>)qwaI7_txEI?47HnFbeGT}_g3h+ncSCw zWIIUZ!M2!VmwK~_a2kc9C8og0Pe|VhC|fv6HGY;d67^OdyoJEmz4{EZTzY3+lwN1F zinXLfQYsEEB`ac{L2at`NEg|oscM_4LFutl%UZYeFG*M~plT>jq&TZC^!lHSR{=hd zQrIU0;r1h#4QJLT?md^T>iwvr==PZ**vZM*y-#u315j^mU6)}G$eyCXq4yVx>3le` zMX~Eo6fVTOVC+{s@;c5esQEkKofxn4s|OP*ioB9->M42m4tuG(U^Ugz(ZJlwT+ue1 zTdK9^QQ-L}2&KycttXQ34;R57dxp(hgA2wUt{8mmoh<$R4EFcU>T+^&+S=ON;$ch6 z|7r%4_Fg3=^qt_n;M1HVI zKl?$wz6+1H!!?k@`xHOT#7mYByd)-dtZe=ytGoPYECd(Y_6aMNR_ znc3DS;|)WT^uyD1BeUUW3pHcQG!iP+6RTB|YE_c!lv5gDsZC00%}VJl3K(YNZ zJ6oB<-MYlvy2Ri5RH$_kbYW4d?TKRhqrIIEv0bySJ=0;A8QItFTo@d?d~0-cbaZTN zY?ZEMIIiO|MkO~;GD--0+NruH~j2*qGH zcnkJe)15!deXOErlGc-pg5SAkDZ8&>Halo11|hCgN)dZ7uSA1us(sk7SFjg3sU}#W z<;3Wr$|E1jpt1J#;M>hSAB6VUjIZb7PVtG{EqtGI->>3&JZ0#E@V!Hc(IXCD?}&^Q z{dW0A=}DZEmec92Gg~LQux`+Ezhx^6zDp`v=uJ2;_wYbe!9(^--22V0d1ZY(+niW# zT(jxMby_7u>B%_`UL*=XJAX^oo8IHawHx$ps6E2OjeDM(g^cANhLsFsc+~Adn z+(#!B-@l%gRQE;7@$1;sR=7W^vbR5c}y1a@obn zK8Bp(0SF+Fd^rBK46iBzHK3s|rfDYZk-I?V`+R8+ZXcf%ahK^bUL^t;r_V#kEhC*Y zJtrVdw0Wj7IGm|{kvf!_j~_EEiP0wVi03GW>{76&L^Or}_$FGOsVjeyK|lQS)!BGzGmH{OZJBiJ<|V8W`6 z<}ly-{Vs%w@`MoB5KPIDGXy`h3JI`>+K33zqthO#il~1zv*or0Frp3)zE-!spmQ@5 zU`SP%6o@&0*(~*i_(dGEl)T*F34xh}4fe(`bT_wo5l(doCJ2(B=rQ_!_qcHtll~7YsBsEj6|A0gRb& zoYbFnUIiTj+)-~0%DRMHl3g@O{U!j3$>CX0JJt1zIu;h@E>4%xbHaNdm3 z-R(pZfCS(s3}YNH0G$pBMz1$X=PqM3V931UYSw^oS9H?c9$>com9|EXls(6EFPwX#bdKM z2u{Ka4~BKwn_VE;_6hOa9h1w~lXTK-O?kXcToW|*dk@+fj*1}9Evs5Yj8ZDuUFRuY zG$5~+tqd_234RYV*7YRi^_L?a-5X7x;jx6Jd6#2^>rLd|$|Y@$0#&f@YqT;N2so3R z;+Z8yJ=+(N5G)B*xI~5NhoG(fJ&v|2110=c%Qyz;EmB{qWsk*U&T28Rrh__J*~17J z36OT+ZB?%4TBekHOp+b2vT&vDkUG(dz(<`(Wv?$KC{M;5e!JrAFBQXnimm6i+Ex)={ErxlbIAtR`e~)b0D4lXjGv zGeDm7hFxq|=Hul!-~Fh`KzFLiSgTqhB{tCL3VWR^C#AR&mZ&WrLGUDW+Q(1c)F9nR zJN#*}V1pm2W!Vy7()SkJ5Rc^dP#$w&bcpVuAyon!^s0R&7eVzl%iY$!I6Lp7;$@#W z{!e?~9n=KAcC84~1d`A@2?egnabMQk*YtLiUiYw9)V_NJ z_FL?!eE!Dg{C5w+_KwpHcPm0J>jcK02#$w`5;ZUEm4ig?o|f-Qb64^dW3S34R!XKe zie+>P&?>rG)wp@} zKv->0RzpX1b6aa`Yg=1edwY9FM@MI8XIEEOcXxMB&;PbI_K1IH3B^{S>IGq{oQ$`* zQyrr+d{<0QFYZl~3Uiv!aU1{c0jm4mdnFcS7^YSab0K+*S(v>m%3BN`Fjua0s8U`) z#cS?PX$GpcNX@A^s;+s>d{!&qnqFOVsQK&(pRKV$;ws0ic7V^B%;q+~DGfX3Qv(oY zxx!BIo;xve(#P5W>H_BOkdrc#86Q>lT#b^eXC4neur;Qmg24znRK5ps- zD$gT*&m}$9q(o6;`rt5~H;N|+4Izo(h~h#)ZXy!r3sof}g+KQap;^((&(ig5Agq#6 z0p(&6QV9emi(pUHVadz`va6Z8xJ`71V0_0@RL|?BA|wF~fx#&9I2K>05bSAiG6Do6 zQvtCQUR}Bp)dziMB{5eQLmlzssGzVE>tJx@NEHS+zeSMa)<}Ae-t;;mNH1tKJ>79& z(OZPX=Zc6j-IRoiVP=`2y5>Ra2-^cp!>An-2AUBv(UC0)8WE7mT%03y6Ox#NnK?FEVrLoH?}UxXoZ-b%>%)Kv$xk-kl}2nDJ~Hy>wxAGE9xtB#1>0Z z3&@ymlPY9=kS7f&y6g&@PJ<@)+`@!Ft9Uu&DdIT}&Gp6+As0t$xfa-2Zt*XCs726X zX?~daZOu_c!D9-RSfRKjBQsV%ATN_=gitnmsqmF79^XA6J;2$9R6;tvUIY{?U&};I z0&6^mkxki!0I-e$19xr72rHJj3@21|v6CW5)6$`VHBg}OL8~^<=lE5_VAadqvmPhh z+L5}SeVfyN?S>|%E9jO#*%9NlKgjcd8Ohp?!{e5fEzTNkiTAS6k6w-5GRVH{mD^WP=|V2Y5yz z-Bdku zAtixokUN^JdW457gE+9FPO&$KUizv$dV5R*XzfmL^tWQ^o<&l_V$v?YUuJ2O2~x0d z^Ev&PVX#9ARG$W5zoKJ0*PQ>M&NBjPQ{Gc?J)q*~8KvWpJ8W)9ZEK1}s$3eYmUXSp zJlW=^KQ?;j=`!pxkL+dja$Nft8d9AXqz!xFOz6H}T&FIhNuL3egp70QH7UD1%L8MW zKQ~*c@nJOm@-=Q_e0)!m_GpUq<>A3C&@JTD@85LuaPAr7CX#{!v z%Sg()S^?+fbqO%d@OT8gluguHLV%X^4g;cTS6eD`emQNj!(CFwMbEHo3W3*&14)iz_ryDJ+lF(}QE-&_hKZL}p?44~~V-=ijTTbkln0LiP`j zGs`@H(zIn-_QA)29?q}TFtASgFc?y27?EnZFqU)jhI4XB30R7?Z-`NbK+17^HxHD#v%C3s8{F>@F@*}TSC7V*$tLa|kx8aDg40_h$n9d( zPSK1Wk<6RIS+@mqdIj=*=lM-NtpTnE97 z`h>9fnWXGW^In83UJaUF=T*g^^u;0(chuox?J7OY6?oLV4N;R1MDr+^UvGSUdZXb< zuLQ?)wX)nmghX_NH*{_By6Rjzu1>vRd|EpH^UfyUh-52w`ONis zfm2gPYck3+ExOycVBur$f$lmDoA8~lUp7`mF;l-XJ4d^FqCkNB>(7B)J|iy7V&U`P zVWH(vH$%_6F(Lhd&ThGM;V2Q%sEkZyH6EI{y>S?&?Kz0_1)EisAkQBOq9tj6B;uiQ zH*&Et??_ey0fGyqEa_=H)59YEcBKT6O{Wq{JYKV}3=-z1`q*FWaY+`R!2MoyQn^U% zupftP%rLmTd;~2j06u&;RmAK87=aU@(x6uwWhtO5Xeteivm1EoBd*{8MTT3&LSUCY zXPIF#HnEAw$VkTdB3=$E1Ps9s90JR7;wZU?y+g_ccVaOiEJ@UfgVQ1jX+dZt<{hJy zQ8Yyh$Yqiii>?!sjbTYj%KQSr+iW96k%N4A9C!j}^|XPP$%I~428adKcHI`XVct6a18tr9?w$@RgcZm^!If>ZV`m;=d(ZI_xUN2;$Ar37!+ASsP;t3-e5#Ayj z-gJ?R%jO?Wi^vE;=(I%xLVhFQehjTsnPTFBAc~4mdO=0Tq?@uE(Xx`C@(&szlN}1l zqB1r~R^l>Ytk`=zP94Dr6U=l@X%f2pel+MHp9121$u{cjl@gg1LmSIh?)yKd8L;&$ z$O50=;BrC@A>i*;R1BowjLp|k9EZ4foB%h+E*RP$@?E%9cImOjqC4RR`4RAQ4CG;F z={gGG`rNeHumuh&$PUvT_e8iDhAj7FyA)_3N)1B_$JsUjt-gqK0~LenKyaI&n@a29 zB%#wo8!|q6<*kSl`cY&NnQm}_u*}#&Y{Pk!>T5&2^q{tLHar~I7=}}C0ZT(D#ce~T z<*q4?CmM{md@&^gjfSfx#S)17XYbj4EEC|+JvGqJ2HY&OIOCP8!S?(lV`RtpV}r09 zrG>AG;eIoD2peYLgH!|0Y|`VOIdMI;ZMERCjMNu;pL!EgmqGh20K%*mWc2YTfra*A#BUwZTVde2E`QZvLg+FpC zDtbofK@_nY1a}KJ6^@^I$k4`!WAxg(_;{-If@&A<&%pr7!eKLf3-+lg9#l8NDv56n z5JjE?dAYbQ3IJ0+_``0$&jrP=19Fj27knWYEuzjwT=n%ToX-0!V9*(LedX-iiz9bT zE9yzD$sy7t{zq4B8&bl3AWseQj7RQkWk&=;8oKF*wV~I2&D>54M^qq)gU5_FU!I** zexM+`Dd#H2=-Ae6UGFVOIRmSgEPm*=V6Hw)ER?gpHqFMz9#@`(@Wu(;7^zU^9V^T$ zCGxzmLVnq*(!&xgx^{$^Xgt<;_Xw2%Hh*pfpwVk=ezb*H)S5@JZ8C>o@YIYFC~Ply z2nWo$v2u+vkCxPWNJ%$>vq=cvg&-iKi6L`lby?_g9Xuu387i3&Ny+j5mg4M@=hd+4Q>N2pmLEH-ij}(3`5fdj zHs29+(Hp12hWbShDpl$QxJ`ttc?dp}s5&;jWE>nWS@>Xn7J3#7gy7=QdG@>9=Kj)w4IlP8-|P>F9vLH|n5&_6o=my?r&!{I0t>i<>j(0@mz z{^6I_w)?QN{w;nd5B|9N|6ZW}T`l~s8Sb|a{82pIRStJEiguO5ee9Xj_f^CnB<;t; z8Mmt|{uVCSGyA|}e~*1GXK~i`2lo2>+|BS_CT>2My{2}QN08BOX&_8t|yY zt(1uOm1$QCB4194yhkSUN-D(hU80?v5Gh1w$lcWPNXeEquy#&&czPc2H$$rMGivB6!U_PBCM*~fFtV!O$2p67Ti&bUc zb}#59z|MHpp&Cbfh+vfaw%d`rN+H;=9g)cQ`U;x#Oq2Q{kkPYWwpX7Qg~FJgpNVE2tQr=O=0!chM;)QE zNTxuQiQ@0i5yXO_FRDaQF;>ka>6T2-Wztn&oUw#xXccp`@X3uuqd2$CQIh7G=dyI( zk!FgIpf|x*^ec7?Ev*?w9fc--?L`Uuz1tWDXSl_#kczaYbId#m1hEvZlLmNFg=aHM zE~8TuQK}+$os`Z0!uAYGSuvb0VSASfi}4fn!b|Ho@HmorBh;CTfi9cRAwmjNX(_(m z0G_xoR$HKWAz6!r%4pSMm%e0GE}joOI0r+>P2iP=p5Xn<><*@ULfXdW{a+aWZ}sT3I|WHmxB&|1S8c&zfMWO{6V~R zEtg(dTnM!)cdlm!+q3m3Y|!1MLH8q^5mz_Z>5?#i%p4Tf#|m^FH45QL1W;I%UC@yb zY+$gdl?R2rRGYnwpfDYTFj^#RL_}_h0I3?N!)*xE912>Y3(+*+5hlxNZ4>b=cvA@_xWlMZkR6oVLlMM|sy(5O`h2-1~(UzGCAoQwjiY zDUB^SA}W(u@Bi}dGBcvn&@E$y!SC0^h%1>a?FKijzmhAs6i%=YS8ibOt(-5Ifgd=P zaFDh~ZCHpTAVT-oWB^H*{d0GoF8dd*nzw*$4*T?9-5=iTyKMN;XJkWyroE~3%kzo%U12X= zLf8XE5E2^fD;0#GmPQdo?OI2{0Z#BvtZ=^nkwncz8FQ|b)5Jy1YKERAv-6jFSf_aU z`kRYhCo0%Kda*dCN{XHWpMK@wbj!W3P7RR&$b0BM+iA$IUVdI$*wO8Xv{8b5AVejD zI9aZqd|#j7!6Tc8AY|*8PSvL!i4jC9N&!<}pMr_aSdQ@7QV7OwJ|*mI16Ml$N%n4M zxi|Rl*g=lRX1$E(i?KzlAdh9uCv$J(9wHZEz~Im3u-;z=Bn1sjl2?vG=JVs*J69Eo zml_}=G~$P~Re4V)<$&mqF@Upve6>dI4iCDPQIVx{JrBM@O-r@26Ouui(n)0n?*z~B@DROwV zBv=S*`b#wp;yr*=uOr4e^Ov!hRU7c*ml@9+s89u1^x3c$dWOs5;Re>a=X0x2FI}y_ zu2*r0IC)(xfdiOs>ena^~93!a7%^a+@!7i6PTQ|}&O-+sB zYkiP0%UjfxXEqb-ZMj&Y23xP0a8;w(Y504n9w_of9`BKuY<5$wagj$JeM#jF~^L^@z4jyf+SJ9<#MS59`pYvI=@n+^6aK9)d7o$nMDHE;5jDco z)GqGQs^ii5@`O^^#0u%8TFJEi9>;dEj4sj49+B*u!a4iVNqvHO{Q`OY0{H{{`Gfog zLwtoJyhWotSI4=FC%B6z|A>;w{}wzYlYAwU!le^1+PHefD5iSY>DpjG!$3q+e{4&C zN?U(+XMag|f8EXgjywOUT@be(vGU6Gd&+k6VLJfJAg zi0xsjeK%&|Gmz*|YX8O|6Tc-tdfnhPTY{&XAO9_xn2;K;@W4Ju@TA@vEA;*8@x$+% zuNU%eOx!79HNRRTpt_Xjglk!!_!#Ux;j2-mW}wpkbL_RZM7NPZRtC9WVkD+m$Z97#wenY=pc;}dtzH+(hYed3Q@kK@h+fPG~D~AO! znIlsrx@%sH1nZ9x16h}NIhIGDc_YhD;{fi;B+0mtfvbX&*DJ3g6VS`71c`+05^1VH zEWa<9wDt(;t~vcQuEq{zESbo%i4wp36+8k?Mc|F)fbdwbkx-Ns<7oljjS(5HFwiJi z7?L>%ri5%hl}Tq50NOe@46Gtkd^aUvB)d!&7?*$F2olxqu@u7lS!pyb!z!095e(NP ziN{S6o+6YvjIj{$v7k|~m}n3w?rNqz*22qo>tQjw)}{m$qQ6-p$=lRXghb=YYvhY0 z;L~86u~=E8<2k59%nk=~xde74cPkObX=DJrJmf-HMwH<|=aM{YF?4VKn}>ZWIC0aK zO@)|&S5-hJI2O{vX@cYH99v$`zJS00FJ_9Z3?~-N*3OFCMD}?gR+@$0AR_Yf?}H;5 zUalbm3INtPQ~qfcn-iribYxXTHg zYcb5O#H;Q&*dK^!F;vDTPr1pds8+$AFL?*eUa0FN&vL5Cd<<>ooD5%LVOrI^#Hk*1 zMv}As`omjCm^kU;g2ls4-J$m$O?d&@6ho2jdGgUx z!ll5;@EwjC2?RduL~rZs^TCfK5a!#R)FM+p*+)WO4#)sgx;Rut-V5+b#x^#}*SR!@ z+aaJs4XipVXNN!&cc6XE>8s>u{u{Qpq6GAcWq^?9kozBTef5A_K7_L;h;7hiRTJ$g z$wiu2r+~~L2m*E2Hf3#)iB@o(}a1a^(@PMkg9G zXC*NUI$>F@>U$>s?(#oJQ zn4nVf8EGA9aJumoZZR|W@)K{h(BV;9)R(@hY73>Z#`)anUi5H^HrCuUK9c|A@hy1o zix=qTXJXkwgYX*GH1oU};dP#2`D7&yKoN$!`XltjYkMy*kzmU-bb_)HY{bW?EUW8) z+I0q5^Uja4^xIPd6;n+|PcPCaot#Wu-7 z17p7X&yzI6Q#2w{)g#k)n>j9J?ng$-C6w<n{Qev884e+B%7yAUiK7A_nXD;kn48kD;_pjy&zKOj zHws#MD%*P+yZ*OXsbc=LuvamjbKG^T(72^?vOqKV<>F{d)xBc9I5tsCYc;(LogwEm z)+#$Gi(gq>>VKXlqGVYZRBlNGLai(Mk~prhfyxX*T5(@nh|}{O0fRV)EtH?35)qnu za~4f6(FvTp^toBeyjVX;$VuoZD@CA(c~C}(U6w8?!&$m$%;;4|8zwV}F$jmzMUyY^ zk*q^mHj7Yr-s|*E_n>)HRgoBId?Xd6kuuPJ#sL;yV;qAxoX?Yu%__%>sQs70W^y2^ zB)R^Dqa1Jy;R4>7l#)w00nQ@yc`!R5BWv{Knd3vZw5vDXE6n8Jc|tB+$bFin?0D*e zs&qzR*9PMw=7k6}eWj##YzhtiER1g+saz(~M&Sh%{+9&0xAW7?)F4kHzRBbIUOA0ER3Nt6Hs%t*X`R~2l=$2LC`o7KJL zEDHpAI-9cWtcYhQG7())ed;Pd+o0RVpIsm~YRh)nFpHlrO6CQ#@l9<%e!e~!lgtw= z-OToJs07MaBxp>jFcwx6P(m5gTT1s1^0~PC@mwm)* zD9=MdBR=O0eq)v2ITq+HfKO6dv-4zYTD5WXOjNUNcT*Y2vMukmp0gioR{&b!u;+MX zZNfgi{`6Bcv*Pws0>A(E5>dK-dpSkp&Gs`gO7Zhbrmg?y)m)D>oZf*G2mYGB=CAo{ Q{+hq$ulZ~Kn*X@@KLB0X_y7O^ literal 0 HcmV?d00001 diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js index 3e5ee5bff5..a6f7e3ef91 100644 --- a/scripts/system/html/js/SnapshotReview.js +++ b/scripts/system/html/js/SnapshotReview.js @@ -84,7 +84,7 @@ window.onload = function () { if (messageOptions.containsGif) { if (messageOptions.processingGif) { imageCount = message.action.length + 1; // "+1" for the GIF that'll finish processing soon - message.action.unshift({ localPath: '../../../resources/icons/loading.gif' }); + message.action.unshift({ localPath: '../../../resources/icons/loadingDark.gif' }); message.action.forEach(addImage); document.getElementById('p0').disabled = true; // UX question: Should we also check the box at this point? Might lead to confusing behavior, From 3f91fb8e554846b7bf3f84211c9cd4089698f526 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 12 Apr 2017 14:35:15 -0700 Subject: [PATCH 7/7] Remove unnecessary comment --- scripts/system/html/js/SnapshotReview.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js index a6f7e3ef91..4e2e0223a0 100644 --- a/scripts/system/html/js/SnapshotReview.js +++ b/scripts/system/html/js/SnapshotReview.js @@ -87,8 +87,6 @@ window.onload = function () { message.action.unshift({ localPath: '../../../resources/icons/loadingDark.gif' }); message.action.forEach(addImage); document.getElementById('p0').disabled = true; - // UX question: Should we also check the box at this point? Might lead to confusing behavior, - // where the animated snapshot is shared without the user meaning to share it. } else { document.getElementById('p0').disabled = false; document.getElementById('p0img').src = message.action[0].localPath;