From 90597ae75f54d95d933c94f7feaff75deda92c71 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sun, 5 Oct 2025 16:43:57 +0000 Subject: [PATCH] draftv1 --- admin.php | 87 +++ api.php | 262 +++++++ assets/css/custom.css | 136 ++++ assets/js/admin.js | 94 +++ assets/js/main.js | 197 +++++ auth.php | 117 +++ composer.json | 7 + composer.lock | 244 +++++++ composer.phar | Bin 0 -> 3125332 bytes contact.php | 34 + db/config.php | 40 +- .../001_create_contact_submissions.sql | 7 + db/migrations/002_create_deals_table.sql | 16 + db/migrations/003_create_users_table.sql | 8 + db/migrations/004_create_roles_table.sql | 7 + db/migrations/005_add_user_id_to_deals.sql | 1 + .../006_add_weekly_summary_preference.sql | 1 + .../007_add_remember_me_token_to_users.sql | 2 + db/migrations/008_create_deal_files_table.sql | 10 + db/migrations/009_add_2fa_to_users.sql | 3 + index.php | 340 +++++---- login.php | 72 ++ logout.php | 5 + privacy.php | 10 + profile.php | 152 ++++ register.php | 71 ++ vendor/autoload.php | 22 + vendor/bacon/bacon-qr-code/LICENSE | 22 + vendor/bacon/bacon-qr-code/README.md | 57 ++ vendor/bacon/bacon-qr-code/composer.json | 50 ++ .../bacon-qr-code/src/Common/BitArray.php | 364 ++++++++++ .../bacon-qr-code/src/Common/BitMatrix.php | 307 ++++++++ .../bacon-qr-code/src/Common/BitUtils.php | 41 ++ .../src/Common/CharacterSetEci.php | 177 +++++ .../bacon-qr-code/src/Common/EcBlock.php | 33 + .../bacon-qr-code/src/Common/EcBlocks.php | 66 ++ .../src/Common/ErrorCorrectionLevel.php | 57 ++ .../src/Common/FormatInformation.php | 196 +++++ .../bacon/bacon-qr-code/src/Common/Mode.php | 69 ++ .../src/Common/ReedSolomonCodec.php | 454 ++++++++++++ .../bacon-qr-code/src/Common/Version.php | 592 +++++++++++++++ .../bacon-qr-code/src/Encoder/BlockPair.php | 44 ++ .../bacon-qr-code/src/Encoder/ByteMatrix.php | 134 ++++ .../bacon-qr-code/src/Encoder/Encoder.php | 679 ++++++++++++++++++ .../bacon-qr-code/src/Encoder/MaskUtil.php | 271 +++++++ .../bacon-qr-code/src/Encoder/MatrixUtil.php | 513 +++++++++++++ .../bacon-qr-code/src/Encoder/QrCode.php | 108 +++ .../src/Exception/ExceptionInterface.php | 10 + .../Exception/InvalidArgumentException.php | 8 + .../src/Exception/OutOfBoundsException.php | 8 + .../src/Exception/RuntimeException.php | 8 + .../Exception/UnexpectedValueException.php | 8 + .../src/Exception/WriterException.php | 8 + .../src/Renderer/Color/Alpha.php | 44 ++ .../bacon-qr-code/src/Renderer/Color/Cmyk.php | 82 +++ .../src/Renderer/Color/ColorInterface.php | 22 + .../bacon-qr-code/src/Renderer/Color/Gray.php | 39 + .../bacon-qr-code/src/Renderer/Color/Rgb.php | 73 ++ .../src/Renderer/Eye/CompositeEye.php | 26 + .../src/Renderer/Eye/EyeInterface.php | 26 + .../src/Renderer/Eye/ModuleEye.php | 48 ++ .../src/Renderer/Eye/PointyEye.php | 56 ++ .../src/Renderer/Eye/SimpleCircleEye.php | 51 ++ .../src/Renderer/Eye/SquareEye.php | 50 ++ .../src/Renderer/GDLibRenderer.php | 238 ++++++ .../src/Renderer/Image/EpsImageBackEnd.php | 373 ++++++++++ .../Renderer/Image/ImageBackEndInterface.php | 87 +++ .../Renderer/Image/ImagickImageBackEnd.php | 318 ++++++++ .../src/Renderer/Image/SvgImageBackEnd.php | 363 ++++++++++ .../Renderer/Image/TransformationMatrix.php | 68 ++ .../src/Renderer/ImageRenderer.php | 150 ++++ .../src/Renderer/Module/DotsModule.php | 56 ++ .../src/Renderer/Module/EdgeIterator/Edge.php | 82 +++ .../Module/EdgeIterator/EdgeIterator.php | 160 +++++ .../src/Renderer/Module/ModuleInterface.php | 18 + .../src/Renderer/Module/RoundnessModule.php | 124 ++++ .../src/Renderer/Module/SquareModule.php | 44 ++ .../bacon-qr-code/src/Renderer/Path/Close.php | 34 + .../bacon-qr-code/src/Renderer/Path/Curve.php | 86 +++ .../src/Renderer/Path/EllipticArc.php | 264 +++++++ .../bacon-qr-code/src/Renderer/Path/Line.php | 42 ++ .../bacon-qr-code/src/Renderer/Path/Move.php | 42 ++ .../src/Renderer/Path/OperationInterface.php | 17 + .../bacon-qr-code/src/Renderer/Path/Path.php | 117 +++ .../src/Renderer/PlainTextRenderer.php | 80 +++ .../src/Renderer/RendererInterface.php | 11 + .../src/Renderer/RendererStyle/EyeFill.php | 61 ++ .../src/Renderer/RendererStyle/Fill.php | 129 ++++ .../src/Renderer/RendererStyle/Gradient.php | 31 + .../Renderer/RendererStyle/GradientType.php | 22 + .../Renderer/RendererStyle/RendererStyle.php | 69 ++ vendor/bacon/bacon-qr-code/src/Writer.php | 63 ++ vendor/composer/ClassLoader.php | 579 +++++++++++++++ vendor/composer/InstalledVersions.php | 396 ++++++++++ vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 10 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 13 + vendor/composer/autoload_real.php | 38 + vendor/composer/autoload_static.php | 57 ++ vendor/composer/installed.json | 243 +++++++ vendor/composer/installed.php | 59 ++ vendor/composer/platform_check.php | 25 + vendor/dasprid/enum/LICENSE | 22 + vendor/dasprid/enum/README.md | 164 +++++ vendor/dasprid/enum/composer.json | 34 + vendor/dasprid/enum/src/AbstractEnum.php | 261 +++++++ vendor/dasprid/enum/src/EnumMap.php | 385 ++++++++++ .../Exception/CloneNotSupportedException.php | 10 + .../enum/src/Exception/ExceptionInterface.php | 10 + .../src/Exception/ExpectationException.php | 10 + .../Exception/IllegalArgumentException.php | 10 + .../enum/src/Exception/MismatchException.php | 10 + .../SerializeNotSupportedException.php | 10 + .../UnserializeNotSupportedException.php | 10 + vendor/dasprid/enum/src/NullValue.php | 75 ++ .../constant_time_encoding/LICENSE.txt | 48 ++ .../constant_time_encoding/README.md | 88 +++ .../constant_time_encoding/composer.json | 67 ++ .../constant_time_encoding/src/Base32.php | 558 ++++++++++++++ .../constant_time_encoding/src/Base32Hex.php | 118 +++ .../constant_time_encoding/src/Base64.php | 381 ++++++++++ .../src/Base64DotSlash.php | 92 +++ .../src/Base64DotSlashOrdered.php | 86 +++ .../src/Base64UrlSafe.php | 99 +++ .../constant_time_encoding/src/Binary.php | 87 +++ .../src/EncoderInterface.php | 61 ++ .../constant_time_encoding/src/Encoding.php | 301 ++++++++ .../constant_time_encoding/src/Hex.php | 176 +++++ .../constant_time_encoding/src/RFC4648.php | 208 ++++++ .../.github/workflows/cross-platform.yml | 138 ++++ .../google2fa/.github/workflows/phpunit.yml | 129 ++++ .../.github/workflows/static-analysis.yml | 49 ++ vendor/pragmarx/google2fa/CHANGELOG.md | 131 ++++ vendor/pragmarx/google2fa/LICENSE.md | 7 + vendor/pragmarx/google2fa/README.md | 474 ++++++++++++ vendor/pragmarx/google2fa/composer.json | 43 ++ .../src/Exceptions/Contracts/Google2FA.php | 9 + .../IncompatibleWithGoogleAuthenticator.php | 9 + .../Exceptions/Contracts/InvalidAlgorithm.php | 9 + .../Contracts/InvalidCharacters.php | 9 + .../Contracts/SecretKeyTooShort.php | 9 + .../src/Exceptions/Google2FAException.php | 10 + ...atibleWithGoogleAuthenticatorException.php | 11 + .../Exceptions/InvalidAlgorithmException.php | 11 + .../Exceptions/InvalidCharactersException.php | 11 + .../Exceptions/SecretKeyTooShortException.php | 11 + vendor/pragmarx/google2fa/src/Google2FA.php | 517 +++++++++++++ .../pragmarx/google2fa/src/Support/Base32.php | 230 ++++++ .../google2fa/src/Support/Constants.php | 31 + .../pragmarx/google2fa/src/Support/QRCode.php | 38 + weekly_summary.php | 57 ++ 152 files changed, 16514 insertions(+), 155 deletions(-) create mode 100644 admin.php create mode 100644 api.php create mode 100644 assets/css/custom.css create mode 100644 assets/js/admin.js create mode 100644 assets/js/main.js create mode 100644 auth.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100755 composer.phar create mode 100644 contact.php create mode 100644 db/migrations/001_create_contact_submissions.sql create mode 100644 db/migrations/002_create_deals_table.sql create mode 100644 db/migrations/003_create_users_table.sql create mode 100644 db/migrations/004_create_roles_table.sql create mode 100644 db/migrations/005_add_user_id_to_deals.sql create mode 100644 db/migrations/006_add_weekly_summary_preference.sql create mode 100644 db/migrations/007_add_remember_me_token_to_users.sql create mode 100644 db/migrations/008_create_deal_files_table.sql create mode 100644 db/migrations/009_add_2fa_to_users.sql create mode 100644 login.php create mode 100644 logout.php create mode 100644 privacy.php create mode 100644 profile.php create mode 100644 register.php create mode 100644 vendor/autoload.php create mode 100644 vendor/bacon/bacon-qr-code/LICENSE create mode 100644 vendor/bacon/bacon-qr-code/README.md create mode 100644 vendor/bacon/bacon-qr-code/composer.json create mode 100644 vendor/bacon/bacon-qr-code/src/Common/BitArray.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/BitUtils.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/EcBlock.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/Mode.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php create mode 100644 vendor/bacon/bacon-qr-code/src/Common/Version.php create mode 100644 vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php create mode 100644 vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php create mode 100644 vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php create mode 100644 vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php create mode 100644 vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php create mode 100644 vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php create mode 100644 vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php create mode 100644 vendor/bacon/bacon-qr-code/src/Exception/InvalidArgumentException.php create mode 100644 vendor/bacon/bacon-qr-code/src/Exception/OutOfBoundsException.php create mode 100644 vendor/bacon/bacon-qr-code/src/Exception/RuntimeException.php create mode 100644 vendor/bacon/bacon-qr-code/src/Exception/UnexpectedValueException.php create mode 100644 vendor/bacon/bacon-qr-code/src/Exception/WriterException.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Color/Alpha.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Color/Gray.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Eye/ModuleEye.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Module/RoundnessModule.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Path/Curve.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/Path/Path.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/EyeFill.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php create mode 100644 vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/RendererStyle.php create mode 100644 vendor/bacon/bacon-qr-code/src/Writer.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/InstalledVersions.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/composer/installed.php create mode 100644 vendor/composer/platform_check.php create mode 100644 vendor/dasprid/enum/LICENSE create mode 100644 vendor/dasprid/enum/README.md create mode 100644 vendor/dasprid/enum/composer.json create mode 100644 vendor/dasprid/enum/src/AbstractEnum.php create mode 100644 vendor/dasprid/enum/src/EnumMap.php create mode 100644 vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php create mode 100644 vendor/dasprid/enum/src/Exception/ExceptionInterface.php create mode 100644 vendor/dasprid/enum/src/Exception/ExpectationException.php create mode 100644 vendor/dasprid/enum/src/Exception/IllegalArgumentException.php create mode 100644 vendor/dasprid/enum/src/Exception/MismatchException.php create mode 100644 vendor/dasprid/enum/src/Exception/SerializeNotSupportedException.php create mode 100644 vendor/dasprid/enum/src/Exception/UnserializeNotSupportedException.php create mode 100644 vendor/dasprid/enum/src/NullValue.php create mode 100644 vendor/paragonie/constant_time_encoding/LICENSE.txt create mode 100644 vendor/paragonie/constant_time_encoding/README.md create mode 100644 vendor/paragonie/constant_time_encoding/composer.json create mode 100644 vendor/paragonie/constant_time_encoding/src/Base32.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Base32Hex.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Base64.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Binary.php create mode 100644 vendor/paragonie/constant_time_encoding/src/EncoderInterface.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Encoding.php create mode 100644 vendor/paragonie/constant_time_encoding/src/Hex.php create mode 100644 vendor/paragonie/constant_time_encoding/src/RFC4648.php create mode 100644 vendor/pragmarx/google2fa/.github/workflows/cross-platform.yml create mode 100644 vendor/pragmarx/google2fa/.github/workflows/phpunit.yml create mode 100644 vendor/pragmarx/google2fa/.github/workflows/static-analysis.yml create mode 100644 vendor/pragmarx/google2fa/CHANGELOG.md create mode 100644 vendor/pragmarx/google2fa/LICENSE.md create mode 100644 vendor/pragmarx/google2fa/README.md create mode 100644 vendor/pragmarx/google2fa/composer.json create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/Contracts/IncompatibleWithGoogleAuthenticator.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/Contracts/InvalidAlgorithm.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/Contracts/InvalidCharacters.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/Contracts/SecretKeyTooShort.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/Google2FAException.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/IncompatibleWithGoogleAuthenticatorException.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/InvalidAlgorithmException.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/InvalidCharactersException.php create mode 100644 vendor/pragmarx/google2fa/src/Exceptions/SecretKeyTooShortException.php create mode 100644 vendor/pragmarx/google2fa/src/Google2FA.php create mode 100644 vendor/pragmarx/google2fa/src/Support/Base32.php create mode 100644 vendor/pragmarx/google2fa/src/Support/Constants.php create mode 100644 vendor/pragmarx/google2fa/src/Support/QRCode.php create mode 100644 weekly_summary.php diff --git a/admin.php b/admin.php new file mode 100644 index 0000000..2596e70 --- /dev/null +++ b/admin.php @@ -0,0 +1,87 @@ + + + + + + + <?php echo htmlspecialchars($page_title); ?> - LTD Tracker + + + + + + + + + +
+
+

User Management

+
+ + + + + + + + + + + + + + +
IDUsernameEmailRoleCreated AtActions
+
+
+
+ + + + + + + + + + + + + diff --git a/api.php b/api.php new file mode 100644 index 0000000..eaf1ccc --- /dev/null +++ b/api.php @@ -0,0 +1,262 @@ + $name) { + if ($_FILES['files']['error'][$key] === UPLOAD_ERR_OK) { + $tmp_name = $_FILES['files']['tmp_name'][$key]; + $file_size = $_FILES['files']['size'][$key]; + $file_type = $_FILES['files']['type'][$key]; + + if ($file_size > $max_size) { + // Optionally, collect and return errors + continue; + } + if (!in_array($file_type, $allowed_types)) { + // Optionally, collect and return errors + continue; + } + + $stored_filename = uniqid('', true) . '-' . basename($name); + $destination = $upload_dir . $stored_filename; + + if (move_uploaded_file($tmp_name, $destination)) { + $stmt = $pdo->prepare("INSERT INTO deal_files (deal_id, original_filename, stored_filename, file_type, file_size) VALUES (?, ?, ?, ?, ?)"); + $stmt->execute([$deal_id, $name, $stored_filename, $file_type, $file_size]); + } + } + } + } +} + +$action = $_GET['action'] ?? ''; + +try { + require_login(); // All actions require a login + $pdo = db(); + $user_id = current_user_id(); + + switch ($action) { + case 'get_deals': + $category = $_GET['category'] ?? null; + $tags = $_GET['tags'] ?? null; + + $params = []; + $where_clauses = []; + + if (!is_admin()) { + $where_clauses[] = 'd.user_id = ?'; + $params[] = $user_id; + } + + if ($category) { + $where_clauses[] = 'd.category = ?'; + $params[] = $category; + } + + if ($tags) { + $tag_list = explode(',', $tags); + $tag_placeholders = implode(',', array_fill(0, count($tag_list), '?')); + $tag_conditions = []; + foreach ($tag_list as $tag) { + $tag_conditions[] = 'FIND_IN_SET(?, d.tags)'; + $params[] = trim($tag); + } + if(!empty($tag_conditions)) { + $where_clauses[] = '(' . implode(' OR ', $tag_conditions) . ')'; + } + } + + $sql = 'SELECT d.id, d.name, d.vendor, d.website, d.purchase_date, d.price, d.currency, d.username, d.password, d.category, d.tags, d.rating, GROUP_CONCAT(df.id, ":", df.original_filename) as files FROM deals d LEFT JOIN deal_files df ON d.id = df.deal_id'; + if (!empty($where_clauses)) { + $sql .= ' WHERE ' . implode(' AND ', $where_clauses); + } + $sql .= ' GROUP BY d.id ORDER BY d.purchase_date DESC'; + + $stmt = $pdo->prepare($sql); + $stmt->execute($params); + + $deals = $stmt->fetchAll(PDO::FETCH_ASSOC); + echo json_encode(['success' => true, 'deals' => $deals]); + break; + + case 'get_categories': + $sql = 'SELECT DISTINCT category FROM deals WHERE category IS NOT NULL AND category != ""'; + if (!is_admin()) { + $sql .= ' AND user_id = ?'; + $stmt = $pdo->prepare($sql); + $stmt->execute([$user_id]); + } else { + $stmt = $pdo->query($sql); + } + $categories = $stmt->fetchAll(PDO::FETCH_COLUMN); + echo json_encode(['success' => true, 'data' => $categories]); + break; + + case 'get_tags': + if (is_admin()) { + $stmt = $pdo->query('SELECT tags FROM deals WHERE tags IS NOT NULL AND tags != ""'); + } else { + $stmt = $pdo->prepare('SELECT tags FROM deals WHERE user_id = ? AND tags IS NOT NULL AND tags != ""'); + $stmt->execute([$user_id]); + } + $all_tags = []; + while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { + $tags = explode(',', $row['tags']); + foreach ($tags as $tag) { + $trimmed_tag = trim($tag); + if (!empty($trimmed_tag)) { + $all_tags[$trimmed_tag] = 1; + } + } + } + echo json_encode(['success' => true, 'data' => array_keys($all_tags)]); + break; + + case 'add_deal': + $data = $_POST; + + $sql = "INSERT INTO deals (user_id, name, vendor, website, purchase_date, price, currency, username, password, category, tags, rating) VALUES (:user_id, :name, :vendor, :website, :purchase_date, :price, :currency, :username, :password, :category, :tags, :rating)"; + $stmt = $pdo->prepare($sql); + + $stmt->execute([ + ':user_id' => $user_id, + ':name' => $data['name'] ?? null, + ':vendor' => $data['vendor'] ?? null, + ':website' => $data['website'] ?? null, + ':purchase_date' => !empty($data['purchaseDate']) ? $data['purchaseDate'] : null, + ':price' => $data['price'] ?? 0.00, + ':currency' => $data['currency'] ?? 'USD', + ':username' => $data['username'] ?? null, + ':password' => $data['password'] ?? null, + ':category' => $data['category'] ?? null, + ':tags' => $data['tags'] ?? null, + ':rating' => $data['rating'] ?? 0 + ]); + + $deal_id = $pdo->lastInsertId(); + handle_file_uploads($deal_id, $pdo); + + echo json_encode(['success' => true, 'message' => 'Deal added successfully.']); + break; + + case 'update_deal': + $data = $_POST; + $deal_id = $data['id'] ?? null; + + if (!$deal_id) { + throw new Exception('Deal ID is required for update.'); + } + + // Verify ownership before update + $stmt = $pdo->prepare("SELECT user_id FROM deals WHERE id = ?"); + $stmt->execute([$deal_id]); + $deal_owner_id = $stmt->fetchColumn(); + + if (!$deal_owner_id || ($deal_owner_id != $user_id && !is_admin())) { + http_response_code(403); + throw new Exception('You do not have permission to update this deal.'); + } + + $sql = "UPDATE deals SET name=:name, vendor=:vendor, website=:website, purchase_date=:purchase_date, price=:price, currency=:currency, username=:username, password=:password, category=:category, tags=:tags, rating=:rating WHERE id=:id"; + $stmt = $pdo->prepare($sql); + + $stmt->execute([ + ':id' => $deal_id, + ':name' => $data['name'] ?? null, + ':vendor' => $data['vendor'] ?? null, + ':website' => $data['website'] ?? null, + ':purchase_date' => !empty($data['purchaseDate']) ? $data['purchaseDate'] : null, + ':price' => $data['price'] ?? 0.00, + ':currency' => $data['currency'] ?? 'USD', + ':username' => $data['username'] ?? null, + ':password' => $data['password'] ?? null, + ':category' => $data['category'] ?? null, + ':tags' => $data['tags'] ?? null, + ':rating' => $data['rating'] ?? 0 + ]); + + handle_file_uploads($deal_id, $pdo); + + echo json_encode(['success' => true, 'message' => 'Deal updated successfully.']); + break; + + case 'delete_deal': + $data = json_decode(file_get_contents('php://input'), true); + $deal_id = $data['id'] ?? null; + if (!$deal_id) { + throw new Exception('Deal ID is required.'); + } + + // First, get file names to delete from server + $stmt_files = $pdo->prepare("SELECT stored_filename FROM deal_files WHERE deal_id = ?"); + $stmt_files->execute([$deal_id]); + $files_to_delete = $stmt_files->fetchAll(PDO::FETCH_COLUMN); + + if (is_admin()) { + $stmt = $pdo->prepare('DELETE FROM deals WHERE id = ?'); + $stmt->execute([$deal_id]); + } else { + $stmt = $pdo->prepare('DELETE FROM deals WHERE id = ? AND user_id = ?'); + $stmt->execute([$deal_id, $user_id]); + } + + if ($stmt->rowCount() > 0) { + foreach ($files_to_delete as $filename) { + $file_path = __DIR__ . '/uploads/' . $filename; + if (file_exists($file_path)) { + unlink($file_path); + } + } + echo json_encode(['success' => true, 'message' => 'Deal deleted successfully.']); + } else { + http_response_code(403); + echo json_encode(['success' => false, 'error' => 'You do not have permission to delete this deal or it does not exist.']); + } + break; + + case 'delete_deal_file': + $data = json_decode(file_get_contents('php://input'), true); + $file_id = $data['id'] ?? null; + if (!$file_id) { + throw new Exception('File ID is required.'); + } + + $stmt = $pdo->prepare("SELECT df.stored_filename, d.user_id FROM deal_files df JOIN deals d ON df.deal_id = d.id WHERE df.id = ?"); + $stmt->execute([$file_id]); + $file_info = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($file_info && (is_admin() || $file_info['user_id'] == $user_id)) { + $file_path = __DIR__ . '/uploads/' . $file_info['stored_filename']; + if (file_exists($file_path)) { + unlink($file_path); + } + $delete_stmt = $pdo->prepare("DELETE FROM deal_files WHERE id = ?"); + $delete_stmt->execute([$file_id]); + echo json_encode(['success' => true, 'message' => 'File deleted.']); + } else { + http_response_code(403); + echo json_encode(['success' => false, 'error' => 'Permission denied.']); + } + break; + + // ... other cases from before ... + + default: + http_response_code(400); + echo json_encode(['success' => false, 'error' => 'Invalid action.']); + break; + } +} catch (Exception $e) { + // If the exception is due to require_login, the header is already sent. + if (!headers_sent()) { + http_response_code(500); + echo json_encode(['success' => false, 'error' => $e->getMessage()]); + } +} \ No newline at end of file diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..13f5d9d --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,136 @@ +@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Roboto:wght@400;500&display=swap'); + +:root { + --primary-light: #5E5CE6; + --secondary-light: #34C759; + --background-light: #F2F2F7; + --surface-light: #FFFFFF; + --text-light: #1C1C1E; + + --primary-dark: #6462F0; + --secondary-dark: #30D158; + --background-dark: #000000; + --surface-dark: #1C1C1E; + --text-dark: #F2F2F7; + + --font-heading: 'Playfair Display', Georgia, serif; + --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --border-radius: 12px; +} + +body { + font-family: var(--font-body); + transition: background-color 0.3s, color 0.3s; +} + +body.light-mode { + --primary: var(--primary-light); + --secondary: var(--secondary-light); + --background: var(--background-light); + --surface: var(--surface-light); + --text-color: var(--text-light); + background-color: var(--background); + color: var(--text-color); +} + +body.dark-mode { + --primary: var(--primary-dark); + --secondary: var(--secondary-dark); + --background: var(--background-dark); + --surface: var(--surface-dark); + --text-color: var(--text-dark); + background-color: var(--background); + color: var(--text-color); +} + +h1, h2, h3, h4, h5, h6 { + font-family: var(--font-heading); + font-weight: 700; +} + +.btn-primary { + background-color: var(--primary); + border-color: var(--primary); + border-radius: var(--border-radius); + padding: 12px 24px; + font-weight: 500; + transition: all 0.2s ease-in-out; +} + +.btn-primary:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0,0,0,0.1); +} + +.navbar { + background-color: var(--surface); + box-shadow: 0 2px 4px rgba(0,0,0,0.05); +} + +.theme-switcher { + cursor: pointer; +} + +.hero { + background-image: linear-gradient(45deg, rgba(94, 92, 230, 0.8), rgba(125, 123, 255, 0.8)), url('https://picsum.photos/seed/hero/1600/900'); + background-size: cover; + background-position: center; + color: white; + padding: 100px 0; + text-align: center; +} + +.section { + padding: 80px 0; +} + +.card { + background-color: var(--surface); + border: none; + border-radius: var(--border-radius); + box-shadow: 0 4px 20px rgba(0,0,0,0.05); + transition: transform 0.3s, box-shadow 0.3s; +} + +.card:hover { + transform: translateY(-5px); + box-shadow: 0 8px 30px rgba(0,0,0,0.1); +} + +.card .card-body { + color: var(--text-color); +} + +.modal-content { + background-color: var(--surface); + border-radius: var(--border-radius); + border: none; +} + +.modal-header, .modal-footer { + border: none; +} + +.form-control { + background-color: var(--background); + border: 1px solid var(--surface); + color: var(--text-color); + border-radius: 8px; +} + +.form-control:focus { + background-color: var(--background); + color: var(--text-color); + box-shadow: 0 0 0 0.25rem rgba(var(--primary-rgb), 0.25); +} + +.rating .star { + cursor: pointer; + color: #e4e5e9; + font-size: 1.5rem; +} +.rating .star.selected, +.rating .star:hover, +.rating .star:hover ~ .star { + color: #ffc107; +} diff --git a/assets/js/admin.js b/assets/js/admin.js new file mode 100644 index 0000000..1ba9d94 --- /dev/null +++ b/assets/js/admin.js @@ -0,0 +1,94 @@ +$(document).ready(function() { + const usersTable = $('#users-table').DataTable({ + "processing": true, + "serverSide": false, // For simplicity, we'll do client-side processing + "ajax": { + "url": "api.php?action=get_users", + "dataSrc": "data" + }, + "columns": [ + { "data": "id" }, + { "data": "username" }, + { "data": "email" }, + { "data": "role" }, + { "data": "created_at" }, + { + "data": null, + "render": function(data, type, row) { + const isCurrentUser = row.id === currentUserId; + let actions = ''; + if (!isCurrentUser) { + actions += ``; + actions += ``; + } + return actions; + } + } + ], + "initComplete": function(settings, json) { + // Set currentUserId from the server if available + window.currentUserId = json.current_user_id || null; + } + }); + + // Handle role change + $('#users-table').on('change', '.role-select', function() { + const userId = $(this).data('user-id'); + const newRole = $(this).val(); + + if (confirm(`Are you sure you want to change this user's role to ${newRole}?`)) { + $.ajax({ + url: 'api.php', + type: 'POST', + contentType: 'application/json', + data: JSON.stringify({ + action: 'update_user_role', + user_id: userId, + role: newRole + }), + success: function(response) { + if (response.success) { + alert('User role updated successfully.'); + usersTable.ajax.reload(); + } else { + alert('Error: ' + response.error); + } + }, + error: function() { + alert('An unexpected error occurred.'); + } + }); + } + }); + + // Handle user deletion + $('#users-table').on('click', '.delete-user', function() { + const userId = $(this).data('user-id'); + + if (confirm('Are you sure you want to delete this user? This action cannot be undone.')) { + $.ajax({ + url: 'api.php', + type: 'POST', + contentType: 'application/json', + data: JSON.stringify({ + action: 'delete_user', + user_id: userId + }), + success: function(response) { + if (response.success) { + alert('User deleted successfully.'); + usersTable.ajax.reload(); + } else { + alert('Error: ' + response.error); + } + }, + error: function() { + alert('An unexpected error occurred.'); + } + }); + } + }); +}); diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..2903c66 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,197 @@ +document.addEventListener('DOMContentLoaded', () => { + // ... (theme switcher and other existing code) ... + + const apiRequest = async (url, options = {}) => { + // ... (same as before) ... + }; + + const loadDashboardStats = async () => { + // ... (same as before) ... + }; + + // ... (contact form code) ... + + // Deal Management + const dealModal = document.getElementById('dealModal') ? new bootstrap.Modal(document.getElementById('dealModal')) : null; + const dealForm = document.getElementById('dealForm'); + const modalTitle = document.getElementById('dealModalLabel'); + let dataTable = null; + + const fetchDealsAndInitTable = async (filters = {}) => { + try { + const queryParams = new URLSearchParams({ action: 'get_deals', ...filters }).toString(); + const result = await apiRequest(`api.php?${queryParams}`); + + if (result && result.success) { + if (dataTable) { + dataTable.destroy(); + } + dataTable = new DataTable('#deals-table', { + data: result.deals, + columns: [ + { data: 'name' }, + { data: 'vendor' }, + { data: 'category' }, + { data: 'purchase_date' }, + { + data: 'price', + render: (data, type, row) => `${row.currency} ${data}` + }, + { + data: 'rating', + render: (data, type, row) => `
${Array(5).fill(0).map((_, i) => ``).join('')}
` + }, + { + data: 'website', + render: (data, type, row) => `Visit` + }, + { + data: 'files', + render: (data, type, row) => { + if (!data) return ''; + const files = data.split(',').map(f => { + const [id, name] = f.split(':'); + return `
${name}
`; + }); + return files.join(''); + } + }, + { + data: 'id', + render: (data, type, row) => + ` + `, + orderable: false + } + ], + responsive: true, + }); + } else if(result) { + console.error('Failed to fetch deals:', result.error); + } + } catch (error) { + console.error('Error fetching deals:', error); + } + }; + + const deleteDeal = async (id) => { + // ... (same as before) ... + }; + + const deleteDealFile = async (fileId) => { + if (!confirm('Are you sure you want to delete this file?')) return; + try { + const result = await apiRequest('api.php?action=delete_deal_file', { + method: 'POST', + body: { id: fileId } + }); + if (result && result.success) { + fetchDealsAndInitTable(); // Refresh table + } else { + alert('Error deleting file.'); + } + } catch (error) { + alert('An error occurred while deleting the file.'); + } + }; + + const editDeal = (dealId) => { + const dealData = dataTable.rows().data().toArray().find(d => d.id == dealId); + if (dealData) { + modalTitle.textContent = 'Edit Deal'; + // Clear previous data and files + dealForm.reset(); + document.getElementById('deal-files-list').innerHTML = ''; + + // Populate form + Object.keys(dealData).forEach(key => { + const input = dealForm.querySelector(`[name="${key}"]`); + if (input) { + if (key === 'purchaseDate') { + input.value = dealData.purchase_date; + } else { + input.value = dealData[key]; + } + } + }); + // Add hidden ID field + let idInput = dealForm.querySelector('[name="id"]'); + if (!idInput) { + idInput = document.createElement('input'); + idInput.type = 'hidden'; + idInput.name = 'id'; + dealForm.appendChild(idInput); + } + idInput.value = dealData.id; + + // Display existing files + if (dealData.files) { + const filesList = document.getElementById('deal-files-list'); + dealData.files.split(',').forEach(f => { + const [id, name] = f.split(':'); + const fileEl = document.createElement('div'); + fileEl.className = 'file-chip'; + fileEl.innerHTML = `${name}`; + filesList.appendChild(fileEl); + }); + } + + dealModal.show(); + } + }; + + // ... (loadCategoryFilter, loadTagsFilter) ... + + if (dealForm) { + dealForm.addEventListener('submit', async (e) => { + e.preventDefault(); + + const formData = new FormData(dealForm); + const dealId = formData.get('id'); + const action = dealId ? 'update_deal' : 'add_deal'; + + // Add action to formData + formData.append('action', action); + + try { + const response = await fetch(`api.php?action=${action}`, { + method: 'POST', + body: formData // FormData object + // No 'Content-Type' header; browser sets it automatically + }); + + const result = await response.json(); + + if (result.success) { + dealModal.hide(); + fetchDealsAndInitTable(); // Refresh table + loadDashboardStats(); // Refresh stats + loadCategoryChart(); + } else { + alert(`Error: ${result.error || 'Unknown error'}`); + } + } catch (error) { + console.error('Form submission error:', error); + alert('An error occurred while submitting the form.'); + } + }); + } + + // ... (addDealBtn handler) ... + + if (dealsTable) { + dealsTable.addEventListener('click', (e) => { + if (e.target.classList.contains('delete-deal-btn')) { + deleteDeal(e.target.dataset.id); + } else if (e.target.classList.contains('edit-deal-btn')) { + editDeal(e.target.dataset.id); + } else if (e.target.classList.contains('delete-file-btn')) { + deleteDealFile(e.target.dataset.fileId); + } + }); + + // ... (filters and initial load) ... + } + + // ... (loadCategoryChart) ... +}); diff --git a/auth.php b/auth.php new file mode 100644 index 0000000..ff003ec --- /dev/null +++ b/auth.php @@ -0,0 +1,117 @@ +prepare("UPDATE users SET remember_token = ? WHERE id = ?"); + $stmt->execute([$hashed_token, $user_id]); + + $cookie_value = base64_encode(json_encode(['user_id' => $user_id, 'token' => $token])); + // Set cookie for 30 days + setcookie('remember_me', $cookie_value, time() + (86400 * 30), "/", "", true, true); +} + +function login_via_cookie() { + if (isset($_COOKIE['remember_me'])) { + $cookie_data = json_decode(base64_decode($_COOKIE['remember_me']), true); + if (isset($cookie_data['user_id']) && isset($cookie_data['token'])) { + $user_id = $cookie_data['user_id']; + $token = $cookie_data['token']; + + $pdo = db(); + $stmt = $pdo->prepare("SELECT u.id, u.password_hash, u.role_id, r.role_name, u.remember_token FROM users u JOIN roles r ON u.role_id = r.id WHERE u.id = ?"); + $stmt->execute([$user_id]); + $user = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($user && hash_equals($user['remember_token'], hash('sha256', $token))) { + on_successful_login($user); + // For added security, regenerate the token + remember_me($user_id); + return true; + } + } + } + return false; +} + +function is_logged_in() { + if (isset($_SESSION['user_id'])) { + return true; + } + return login_via_cookie(); +} + +function require_login() { + if (!is_logged_in()) { + header('Location: login.php'); + exit(); + } +} + +function current_user_id() { + return $_SESSION['user_id'] ?? null; +} + +function is_admin() { + if (!is_logged_in() || !isset($_SESSION['role_id'])) { + return false; + } + return (int)$_SESSION['role_id'] === 1; +} + +function register_user($username, $email, $password) { + $pdo = db(); + $password_hash = password_hash($password, PASSWORD_DEFAULT); + + try { + $stmt = $pdo->prepare("INSERT INTO users (username, email, password_hash, role_id) VALUES (?, ?, ?, 2)"); + return $stmt->execute([$username, $email, $password_hash]); + } catch (PDOException $e) { + // Handle duplicate entry + return false; + } +} + +function login_user($email, $password, $remember = false) { + $pdo = db(); + $stmt = $pdo->prepare("SELECT u.id, u.password_hash, u.role_id, r.role_name FROM users u JOIN roles r ON u.role_id = r.id WHERE u.email = ?"); + $stmt->execute([$email]); + $user = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($user && password_verify($password, $user['password_hash'])) { + on_successful_login($user); + if ($remember) { + remember_me($user['id']); + } + return true; + } + return false; +} + +function logout_user() { + $pdo = db(); + if (isset($_SESSION['user_id'])) { + $stmt = $pdo->prepare("UPDATE users SET remember_token = NULL WHERE id = ?"); + $stmt->execute([$_SESSION['user_id']]); + } + + if (isset($_COOKIE['remember_me'])) { + unset($_COOKIE['remember_me']); + setcookie('remember_me', '', time() - 3600, '/'); + } + + session_unset(); + session_destroy(); +} \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..1287320 --- /dev/null +++ b/composer.json @@ -0,0 +1,7 @@ +{ + "name": "flatlogic/lamp-app", + "require": { + "pragmarx/google2fa": "^9.0", + "bacon/bacon-qr-code": "^3.0" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..2ff45bc --- /dev/null +++ b/composer.lock @@ -0,0 +1,244 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "03314c848d2a9f6f6ac3170f57102887", + "packages": [ + { + "name": "bacon/bacon-qr-code", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/Bacon/BaconQrCode.git", + "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f", + "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f", + "shasum": "" + }, + "require": { + "dasprid/enum": "^1.0.3", + "ext-iconv": "*", + "php": "^8.1" + }, + "require-dev": { + "phly/keep-a-changelog": "^2.12", + "phpunit/phpunit": "^10.5.11 || 11.0.4", + "spatie/phpunit-snapshot-assertions": "^5.1.5", + "squizlabs/php_codesniffer": "^3.9" + }, + "suggest": { + "ext-imagick": "to generate QR code images" + }, + "type": "library", + "autoload": { + "psr-4": { + "BaconQrCode\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "BaconQrCode is a QR code generator for PHP.", + "homepage": "https://github.com/Bacon/BaconQrCode", + "support": { + "issues": "https://github.com/Bacon/BaconQrCode/issues", + "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1" + }, + "time": "2024-10-01T13:55:55+00:00" + }, + { + "name": "dasprid/enum", + "version": "1.0.7", + "source": { + "type": "git", + "url": "https://github.com/DASPRiD/Enum.git", + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce", + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce", + "shasum": "" + }, + "require": { + "php": ">=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "PHP 7.1 enum implementation", + "keywords": [ + "enum", + "map" + ], + "support": { + "issues": "https://github.com/DASPRiD/Enum/issues", + "source": "https://github.com/DASPRiD/Enum/tree/1.0.7" + }, + "time": "2025-09-16T12:23:56+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v3.1.3", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "shasum": "" + }, + "require": { + "php": "^8" + }, + "require-dev": { + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2025-09-24T15:06:41+00:00" + }, + { + "name": "pragmarx/google2fa", + "version": "v9.0.0", + "source": { + "type": "git", + "url": "https://github.com/antonioribeiro/google2fa.git", + "reference": "e6bc62dd6ae83acc475f57912e27466019a1f2cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/e6bc62dd6ae83acc475f57912e27466019a1f2cf", + "reference": "e6bc62dd6ae83acc475f57912e27466019a1f2cf", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1.0|^2.0|^3.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^7.5.15|^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "PragmaRX\\Google2FA\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "description": "A One Time Password Authentication package, compatible with Google Authenticator.", + "keywords": [ + "2fa", + "Authentication", + "Two Factor Authentication", + "google2fa" + ], + "support": { + "issues": "https://github.com/antonioribeiro/google2fa/issues", + "source": "https://github.com/antonioribeiro/google2fa/tree/v9.0.0" + }, + "time": "2025-09-19T22:51:08+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.6.0" +} diff --git a/composer.phar b/composer.phar new file mode 100755 index 0000000000000000000000000000000000000000..7f8a37dc21291018140af80a724d879f6b598559 GIT binary patch literal 3125332 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

c)Yb;BtHW|5THgeNy;r=8ddNFypP1V^ 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

T1k#IyL#ul9CkGR(PSFz$a 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
SG9`c3b$J(jmHnC-SX!2X-D0Q_bgK|l)R zlS^dKogkU>@Nf$z*iheVv!VjW``72MCgW@De~_$s457lNe4)etYx@&!KXeCgi23#k zm3#y5H<5ymoYg}i{A27~2tCMf7*x2D zcx%r5l(;s$yZ_HNFN%mHK93LEAmmo`0Ctdad(H2JEczsmZathh`Sii|7_YC`u_YHx zv5N-};_f0O$Mkt3|8JkuRz%4hz$`uu->LZoXvn-a$tjy2$=YuyV^`tLDw-d0Ph-n4 znO)ja1hvOT=#Xhcl5Pr!zB~Qh0MT&xCqnvUg7;9)5@`QB&;^N;Kp@X@ExdrA0$--Z z0_`dLl=mWW(=JelFh<}-p^|Udk%u2YZ;!22h4+Kn>fWTA|UQunn=%m8T5_2DPsW#Dodm?X3Jskg_Wq z?6}cAT>ZMU;&lTI%j3`&PmOrqyoUxam%(&ju6=VDa`2M=q`*-gGS=M3R{iAi+v()$VkW*dWTd{+ zS?=8F9ro}TrM5a;es|a#IL2PVs_Y!@e<7vcJ>GnTE8B)lJald!_L1`XPS10H;K!iY1VtzAS>#JdmxfX1*k& z!#w1gl!WJ`SzRtYqro~R^kwHZVQ(A9tC@%^>tjBYb~gHD_>H(ueK-1m?^-pWDM5Zv zCnFoFps(t|4E|tMXAm>VmQ;6J$>dBd;EXOH3he4rf04BxLv+zDWaM$oMrX2t;M1k12L(DZA2VRw z@H}UDm-9Q(HTqg7`HjmR)&&PnpZ-D40JdmyXqNM+lJI;)F=@w*Q9B!(84^iR9!(2W z-&J`e4<#C=K9k^Cy=dF%GWHZRqN3zXA21;!2*67ptWzh0m^-hp(7=5 zh(Vqn=B`FRXE=~nL@26#a|uRjF=H;L*I2v2qd}w@pz2>q z^ja^Y3^MsmD6A|<)(4T*!S#B+gM0Y+XU2!XKY=q+5|v1E8^K9Xc8E>XieVd_0Sno+ z!O5}^vh@vE704~cfd@|TQd&x72M$kzl9FAkJvy~ET3IfT7UMV5Wm zNqvrQCSQ`*kZ=Dw#!=R9hlk_ana$#cim3r6ZQ@~KP~N4Km#j`k*_CRARLN_*OtQ{X zNuLXmii8$1@9DDL zy4A8MXrXCD1buupo8Xi?FeRPtd7xr%sn4wS424NU!?^=HTvg_LfXCkKnslTOPLE+ARo1ifL4LZFwz zFJqV*u{g5eW4ITHCNvZ&NBW3;sctgrjmLOm0wu z+hq_~dakyN$3KTDgpo>t1T#|53XvCbM;E#!*~(E;rklBgIMdJ%wND%lYmVPhc96Av zd3E2LX`7XGWaK-!Lf(nlH6F|MNumo8H7o0Qk#yV(en9Nr<*+LpwAu9jxD<#1O=ZRJ zc2Foh&A)=Q`(rM%2)l1w4fU+<5QC+7`vsU%F@SO&DXy&ZWF0}Uvl&8g(&H#0dGm^4 zrPz@+z;?*Dos=rlAJ8s`|LUh(?tF!CJ(WVB9LA4iUuCyu-+2fSX3TanW%cC7a*QwK zsdOuP#V11zq1C0af`%3SjoEl5!gPsqw`cScm9;fU!6(W|-6uOn=5^c)^V$#AxP^p; z=@~P0GoIF^N>J&syt0n5aO_OONnI+x$zR2p>B{=s{s?cNqY@tc9m@m45C;WWqW36u ztV3s)k08?{es>NbKb+z}@V+5x2G-uYF|3DoCs)XF zI=*~2ySli5dVF^|x_HNwXFt8OEZ+FWc6$@v~9XwmS7O$Vc41 zsd-`|5nV@yR+wZ-MT#vx8|>(Bn92ul>>GG5P_o#jy_LZecMt<~Z}tQQBd(3Sl9O#S z#50y^kFY>PM&IP8T8q)w?9G_KkMQ6<|GTpC^SP#XuF#h7)GjuepnNXR#=%k@08_>VvNMSm znMhsdj~J{PE8KuY8b^s?rmF7KASZ71g14fKq=OC2OU|ZL=uUn-mW;-#RdYQW!@$st z^}1U-&vtkAAMYLQ?d-hp^b_31ifx`mfg5_3g&qU0h-3(yUvFK$o=)D1L+x-6k>I2A zVQ}EK4AP;m3HBgE`z4lxqyARmG~N~A^$K}qnU@rn8OO4u&rcX6&Q)q-1@Qa`_`%E7 z?&{AH{*szaZeg(O6W^q~IqKEdCI-S5VWPi3#?@Ntf9k#B>=*=7T%SwgOY?wH-NuBA z^pz-E(4A2#Hrz>`lW+DmpKpD4wE1*8b!md0Ht+xA3l`tOw0t4D!nUA9u0Hri|Q>RjwbJl;= znbY$A!F~KAIBtX0gCCfFu&6KkC;*sJa0JIQf>CKuuo@IWIE0nlFW5c8$1y^6TsHtV zz}EQNE_zrSY=*g0mcqZ{#}|kZ`4t)kJ)*8^Om~9Fov$CiUhCi?^#lHgN>=Y>Ej{Qg zJ%rh$qFwqvSQ?4=rySA;M7XU5jmkj>tH2h3s%9)qu%R#ywCmuGg{szi!%zo3;0<>6 z(AYrnz7^tLe!=y$qkAhamk;l}JG_G{KWUjtAcr=N`dO2e8F%ZYyLw5}@E+ieh+73; z;QoxRi+{)R0J}mBL`f47Y_Hdiv05ep=?o7yTRK3n^m(`QFs`=vkMvTXp2+fUG!SDw zXqk71;X?q7x$!wf+MMVR13l`l)cJ1oTl&~Wv+plXr?{UP-e?N(GXv_hXtKxh7n8V6 z7Xu)EViWZm#xhg~hD=XG{o`T+KxD)C9!RXMgC2;jpxb3y_4ISA}`PbBNXp|f>z zb=$sdpJFaZ{(IJ1rO?F-_V^UxK_9Kl){dUQFF2WAzb}Zb{RPci^f>>vkjl!#B>h6s z+@$HDT*0;4?^Ezk|`u#F6^dWgeuy0?k|L*qOb(F<6mj?q_>A6 zHZV+@*&aV}8>opP=s+8vO(B1{wMwoBWpLwjIT2AcX&01kiKjj3T(c)A3F8D`o$r>S zfo77q$D8Ol!1U!phV(%5uDASBG&MsOBHnu4ufJBU9&4MB#{r6pKq$HRuf!yL^@DHV z|K0NQnxKCT0Cnny18!t|z|PSa$wo31Miq_iF_P)vy{vstje;tkmyk9{K#^pO;`LCK ze4(cipVi<(U=byc3ckPyZMoZpE@!VNZ~xYxj^RfpEr~A9E&N1+6bW3K;HtTw?rFb= zfBXV8J{*Zb!nMLLr+gmk^okSJXR~PBHIO9h zCAyassXDC{RV2E(h}>;MvdMK=q@teikOFV{>(R~dY&Il)e+J{Utv$}eF-4pS;i<6J zL4u4GiwI_Y`XrgrjZ2NSwFVXHi)0EQULiA3I!Nj*kAd-Q=AG_w@~6gTcsX_$UJ^vc zfQNVGsJ1^2Q1gYeo57aq$gsfM;E#{Kr-S6tW8~=E+I;c&5shbusiE~jeXZRG)W3p( z@(m`jGo>z{gKVXVWGjm9;SH=X;f9|y3V%{|_HcOD+!)sy(_^d-rg(5mHZlQ~NyL?P zu9isvd1v7g7bfsx9QQLKg(xx@0d*4g&-jrtGbY8?5^?izgb;8r%GaIu;!f&AiQWju zpppTqh~F>}10^ChqLwn}*bnm)fP}gF33y9=5yU~B`6me{JN941*l~MBNMX?($w1sY z$8mT79Xm@uB?hzxfGpBg>=<2zev_^&n55FzI%X1^6Rra2dEMC->y0`jkQw5fUJ-b? z1vNoEfhZKKp@hUv+8~z9&CseLCHsu*+~;slV0!TU&BnMn)B9(*j4-&SHW>~`%fUE7 z;!F9oKOBy;4^jI^id1F))2Yys2rl6C;-^zVf=Lb71P~>&pGFrT9lIkG`*LX~naCv8 z261EZ2BL`QC}rHvsyZ3QL6ZIH}g)(GrV#SJJ*5Z4^$y|E@C*YpbZ5iAHG zyHK{`w1=dfN%ooJYkkVop~q2Ka1cqXYSI!p44|G*JJfy6R;WFiJ(XAllLr{^Go!hZ z?_eGqBasbZ8k3D~tb`8L?IZZXRegrsiK&GJ?G+{@KCvR2F zf&|OsA83#<&TvRxnqAtQPaM_&*zWD?5v~@XXQgNy34L{My?Ym- zk5|LHjpf?tB$*`E)}HU|J==T=L}aBuJl^{T$7i=dfZS)fELS=+_o5V%AWjmAN*}pc zOI!n>>#w(P&$KTO*9Hzss+c;A>P7V*jJ{YzN0{4jHncO4jU{Ah>eQu?C7aT)WU^7QU%RqtuX{L!C43Z4I_XSC;xkc#MuX66C~D&#w&@R`MY=cS`STE= ztN2s)l@8&q4wM*zHZWf%x*)l#Xh5BzqyMh)+nS!SLDOKhk|;5?I9dVu_Bz?5`?%ne8{rsr|K>>@inS)*3Nl7jL> zcyiafWq(O;=)uXNbs=q7AD(`HJ;(vOU_6>(aHR2ME3) zrzme$YuL#Kv&EsJWd*6$lt7-KIOf%q2&6fEq->uFpDONvqcCb%ZTxY0Z5USJEgTZo zL<}$Y2XbaE4LUse{5L4*P*t0|X!=niwchB)vQ9Y($FJr5XYN3Ex{9U}-6j5CLScIq z`%=%Bn^1LHoxpt9X%mPo^YZVi#67INU{D+gNP@DblgUL3KB! zR)in>vzsP4C#!6%LWR|ijdRHoB&u&fKTIcu*oIO$iNE6qkrsQOvpESD+j2OjauemLlLzx(coXTC*- zF}%@93xd~!z|{HyXzu3=v3WGr{{~{4yye|`n18i~ZkZV7Ys;i-()hxu;i&#`K_uev zC(1R{-%r@e=6cB1>$0W?V+*ZIGxuAH>D)>a^$!~x0#`wz0@m>75p?>1mtpIa7VecI zO3UYf4dcoR93k8}t_=9U{IdFw(dF0Nm3CJot-$c)^(0%ezcOO3iE-bu22eOvxysnA z3owHZOZ*ikKr1y9I{SD6Q3aF*yMq((uVk9n{TWOn$SR~p_Z=*ZA}N5J2t~ME%0njE zh?M%kS>Q}#V`bFU?%Eo5NwKT$8nSf@*At8e9BQn+9~@Dw`7pf&L8xHiiP^LP3$Mlv z#piafC$?Qeo%Sh>#&0G+4SVjFryo>3^dZ%PM_lOfUHSmMSM9B?t}caYVXzAPTU?<4 zysSY3ekl#W%dfjip`mA4oW|-1ey3L_35{^Lwu!8DCddDPLNwuPX)xn75|K*@v?P!S zBH{Ob#qAc0u_JuNpe^k3wq$Zz51@uE1#2VU&+x5Sa|o>1oH7en97$KFL>G;wpD%}F zCWMA)jnU`EpZI#b4mfi{KOYw zUu6F;Qbc5FC}o0v0mzLq`=T?hGFX`NHf{h0Qi%hnKoYZJ(li$%bdv*pYjS)9{zZT+ zW+3Y*?cs9eXvwOf9ua(k=Rw9S|4_F?s|lFoaVJ>|mAS)3rC~r50MFh4LpZ=}xO0IO znVkhpP4xE<>fC{Jq*;ut0X#&z;3bA=b68na0J5f^We&J~h|8D}^WKk$=eIRn=aVz5 zxPyQqabc`8rvK%y_wPRZjb-|b!8)!Rt!&_b;Lm(_F&)0^pIyA}zdJ^b%y-k1cdrQ3 z!QtTL9b89Z)x)=6EVFv&u($ff#^Lhv#?n3Lzol|oezPxilB?MYqlj+2COnFYg5Vboe;FUoFesbch%HKm_gD3PE;7;z9Jnl z)Ilx+Gbf(hKR|j`!Yx3#ctWpCs}*`POm$!K-UN{7FH6t{QHQh(-YPjh9UcGUVt5+J z@l1akdNT6ky4*-?^0Ll4T)-qL1kX&SN@lq6B6N}W4??ktRO!N{P?)Urj;Z2+>Alxi zfbsP;fm=n%-|>b3#fy`O3fa!mFM0X<=^2`@*~6*+#2LEaZZ9O8H4 z$Ki1lfh~R0Sfc4BrgDr4^#V_$F}1easg{aFKX&ePdMlGDwmN-q5-u?Df9$;P>Rc~$ zX~r;Af?z?{N0Kub3Yoki>A~W@tp!q0`Og==Vcs6#<_qF%jdQjKfKVY$fJ7cB+=f@- zVT6EovCZAigZoS$bmP#J_h*B?pO}91!R-jCW#SR^e9CvZCWwwh3Z>fYvGC)|SG`-^ z&j+jWe~1={bMM?k*a(|q@wAJ(w}{eZ6bGcDl78!au76}bSeeETeDL1n3h8w5Ovr@= zAj6i^e}HK?dkjj_QjheZIbn147rfM<0ek#Zje z-hh-8LZa+!=w^!|&HlFrlVcd~ld6sNVUMt$aoqq{cK%a%8TFJ!U2RQ2+7?Xh$=MKx zH+b4Z|99Kh{H8WLlDPL!|C6-R`Kw)Ls~|9i^^;$UGZ&E9lFD*1T0#*WzKjT3QKqRe z;)=M2_N`zib-}qX9i#7f(3=c+7j9>a5vIUIP56DcQ%o(Ud(jYb?r3zA7`9xm&X5fP zX4t_??i*pR;w)%wErrHo@Yoj0Ng6;5n&Tva3cci5u_^)^KN@1JSW&`qM-J`6U`hwf zz{r=`a)Tv*glPj{w-?j}WCOJJqv&Br1)>@~-3XG=i3ZCwwMi2@A7z7*uut1P4bYfU z@~$x3H)oTRpN4~QjU&)>TYI45qe`C?7~!KCM(}?oa-ek)qPP8g`vu4WiDmF+L6cRq z60$fv+kF0r^^EjdtKt&F(Ua|`kB=Vh{O$SE9pwE-BN*DSz0Za#aEHnhSMAMr_Fq)m z<58AHJHYq`?$O@&&wX?Qdj;91(y?74=rjrY?#|BBqpiKixQO9xFR)WwL4pN@7ozRQ zTBl4JgRrstX&##wFP-TMj$HKOCJ1RWWldk>z|l6dr{90O{rqTiciX+(oZQ3JKg-*P z+Njh-xSu(CgE`|oSAi2jBVa-l#s}CSVk8H97`p6ez!Y%5r>nA~E8M?=0d{t_AV~kr zrK;*vzT}6{(&OPYtWj~AWha?2Fk(*Cf*3La@^FsiqDwK7*WhZN;mFH=x72z{0oHa^ zb$-)YBtgq4W;Xj<;2Ox*sGG%jlwWU7d=gK=+ZG|#@bDA{dHS`7V#N3%iF)CoWchS= zS`is^3~8~n=-1cB{@VttS9^+!3q=q6i@#K^f+MlzlRt}I^}JQ1h4y);-Y(68-BT@N zQ4LfxIF96rDlXsCGBLT9mg2G2urh$ z)a3qhe1kBWTe8OJBa9d<)y6Qzz@cKc&IAXC2qqqM?Zq>#7H0#-0_xCdxq1ZA&MoO9 z-sIwjs9OK;H(yI9!_}$p+oH|(zvC)J=vvlF zJ%*oTG3sM~f+cA(4Fr*?s>->ik(5cOHoij_-%4bdYg_hIYKO+gJSS!E+YSDbw_UM1 zYm^pEh+MrZv1#yb;9dKj@iV=^x5eXPxfCnX%jlBa;C4W1Y9SW5(NRdJN4QXSOQvxDPv~ zy#}})=C|8;fTT_p!L873I>L+V3tU5#(`0VIMctY%lF)sKDY=q_a1h(7sXkBh>!2EVWH@_k-WQZp?aJ7(<`$g{lJ}27Hr_$gYYCq<0B4W$ zay{O*^}k(Rg4;;d*71v=edcqx8Uf=pu7=Ex(ZL-dCeqMDV5Vw7s(PfH%P`6bBhj9$ z@9J%pBukdMT1Vf!7@27j)p_8}_)*kK*)SpmZE57h0?)RhB$ydQ>AOg6urNYLqYugz z5#4~}Yh0VymkVh|OU5r%&}C^CVg|m1m=c$=1FxqAhH!wYs0KHg^mOr-qLA0m__=fE zZ`)6w-oaawxW~Fdv!MG91oEq{%7nyHupDoJ3S|YA8#5* zZu8@6z7Ppsw&FH( zgq2eriDDT`hbKS>69{=qNjY`a8{6JgmI4N}T&n0;|0PnL1*Ol`&VNj<&=s=c3<3M) zq=V@Pa_d}O@RdVN`$Cq#Esw8W=-%*lXCjw>i?yCBk&VbH7Q3_S^H-Dc^*sdL{M@Zx z)v}Nf&1RqSip_x$qA&}M+mn|aM8m3?GLP-|jo)Z3Fo8kcyij@i(HUNE z!`pH|s={52UGHkX+tsOOPG8=^{^t8{sd5s-WodF2c6C#e6kp@CI;G>PE#pFIN=rzV zDoY3A7G>D0R}+{Cl2d4K5Et1aBgcr@~Q%R-G2j})=}@8#pjyFgY!ryg@@e83D9*{;sjgO z7$l9d6zdsTCFJ~30{y1_I6FEM@(Dxw9~4DMvC8YuwoQ&^4mp+w74Ns*ghNJ^4YzBt zGc5~DpL#o#PxA`zHzp>ffp3UsjP6$qesYEYqxpMzOdiuunr&V&3soOc1@v;n?gS+N zDE40R(aRC^#=|c>(Sp|Uf_G9$Udr;Cy|iyH)YQpw%urr~<f6fi>V`lZ$(cNHOJF^S8SqZ6nOV7b|DD0PkA?_X8sLRI26^N& z#$3u#QDibqkb64Bo5_7-#3TtQt7MGnOYyDO6I$?2Wex`^zFiM?G*5SBK_O@^fV!cOeYcM#GSx z!j@h~h2@$wbXp>E$YESQbl+x9L(Ng2Z5s6f+ zT*TwQlystJ&iaX=s26BlS#9hfQ%^PSDh?*omB9$gl-!i`zq0O{RCAt_nBtmafGDZB z-jrI~pwY__vN3_yK;kUoa^jyXeOZO}@V^ZIayX#>2 zMJt1ul1nh)i9@_Q3IxJLWz2MrNaloj0%YLSfDS7`v|er^U>YP3k_Yl61ODY})|d@1 z`og!n6EYz@BO3H9UBm(9C*?{Q)kIm^KEiD^XEYu%XIX#$+u`@iJ;XMo#AI|Vzjev!cUU&5Z&HcTg04?^9%fFqExG!0H zAf?ESHCnU$TV~%N%|}1wi7%uGadBw6cvM!}N&C^O;ju>EHe5OvNi1|*OOGPZqO zo-ZuAX(==R>3b>7|AoC&zjHP`?VnsnOW#xmgy``V^7Dy{$)}5L?9Yf3zNGK+Z1mIc zOe}lzz078KLW9V=hI@nFWAp07Q{IQGKNtI6S5Tr)Xmu&pdjV-6&s>d=F!K^IY>imN z3zHn6!DI?#6it_D?8KGK{Oy{)EE+I_WtF!ds8)nZa&ax2GJb2LY~60+K2a7D^}h{G zw}7YAd?7$X+9#_O(FuHOYsfFDi1jOd6N!0fEBQW)pxve`P(72Oa7hG1`@UGgE%(7{ zDI;guNsu4dzcTO;Ib24+3$Q1%ls;5oOSZ<}aK;3I=yNwXmjFOrHA&SkSFK4g$N6Qj4C5M0k2-wt< ztLe$mh?DY~Z#!ht#83)Vt)tE!dC*EBvw0Y!`&l`CNzR}X7pCm7ib0c&E4C|X;`=SQ zZE5xB$fmK^)&e5L$&MiVavm@|21A(iCpaU45XPWxZCpu8UGg_9Jml#ecCdWni=15H zBI(-^c1Bk-dLo%G63@HIu^dm0_-Z_qZ!Nif)bkz(!^f*Ke|$D&u|-sQR5Tw=R`bd? zTbZ->WBTTS09=2D5g*tD8cmW8LsvB+P`E#l_nwBK8je(%AMU;%;QBEFSwYxzQ#OfD zbc|IJ^R0W+#L1)5Pj0YC!f;a?jVQF{C~hRiGfN4?H(o1)HQe~WP^+rDT3NE*lFt=v z*ujoALaAT}R^;m@ETyIhKk zvM2E6X|*s@{RwB7Y&eb7tR>`|9-6`0OhjSJVt+69NhtNSPgso2<(|8CnGs`v;Z;0N zL-zezw6Y!zOy5bhEMT#`BEBlCp?GB~czS6aMPld%`>3%PrK;YQWtq1g%4H>weD7B& zJ_K`tvIA7}F_Ti6PSK;JgLQC*jeBx35dTc3IE8n=)ZMHIjh&n?qz&TnLPKZ!#z{kqP{a>`crH6X+PAVPF zL>Y?K3*lP#Tu4r5U5eL4FWPCJ5%T$DK!5IR#TwWn*~wuwJ)$<}stpe$uHahseMF~I zbYNNStvp8?D%hWTV?ZC@^RFOvLmcFRjRUeL);+`Hfd zKWB)SH(zn6nT?Y;-GkHt;Bhhe`YbC#5^7U}17Cq_3;a-T+ahN*K~=M~?8v@R05 zU}_2%C3YqZ6%>oY!e-AvHpaM>BkvaDj2puO<0V239a7(gY-x|BK)WSo;hCf}PegPp zQAVZ2390;lX9#7qbIvF-5%D$dWMK*#2BtAZKF1DTkYKzISKrUsQSbU34<{C0vj#rn z0vM<2xmJn_;4aky#AkAUV5IJ9rNaW+E=VS_~xJZi=MZ{=H7La-$ zP5^Ve&lek;xXEtKxoxz`B?NMzTma)x78POTagpqsh(QzF z(6(}NXUxkRZe*?4#`!`lg#4kfzhNf|dObrDis@_<4~SVd2<+05?o{aFPCah)Ku}X{ zyQDDaIiM&ai$4nU!+E(LMY@Ve6tPAO;fP00_J@PHb)mn?uCPZ4ZTVSEHY=JRC=l8; z1-n?1qMg->=9!cMn0ihc6anNI0mw0Y>$18DrcMmN?GgDgla{JP4;=0yRV0n!O0$)OB!Iv({h&mGBQ`MCLaS;yZqIt6ImzZJ8fZ2RGs%xjBo z15uy5b+bLmJK;G%u6aKLr=hUZ!9RjfXccLmSs|>Cqxl5O8vR7$?8G~R)rWP`Y(LBH z1``AXkS*tkj%49+X?wg|@4a2?Bj`A3RQPb*=%3I_v!WfYx7JBuzp1JaFp+Uf)dj-g z;&G7=a1EYFAzG%1)4O?2FrInHw7{fT^CnQ2#VC5eW0U3%7Ct7>nmk2@W!INL!`yJt zsOKg;$EQk4Eoh^C%$!MXcS%YSHx&a1g-|ei5b;3|44JAeL&$67J!C?&y3N@_Y1d z+xt|aq415t<`FbZc4kY|n2b2kjGu2;To^k)HXMT6sc&+LJ^54i1>I(^6vXt)u6FHtE!PrpbYM;-O&ed7$5&0Z zpg1k3!+~4r-z}xs2whguYBBh!)v}MDmf`+M&5%vbB&r``&!IvDEvx20qr!pIk zO9D=q;8{dAyKtf3dXP{;Ya2q48D6Mme0EAk7{EM5apRJPR|~6w>q|WdVWd}in5E4u zsfb_&FHHroL?0e>fBj8DpIBdm4%u2PuC{sAno9!$*d6EgC$$l4%04iB{EIA ztQ;{YQbJ(G1;db6#sifaOYF-Du^c#RKIQWGP@CAdZHn`tFTI5WjL0RgmGw&&`8EXI0CLqi4t=tLL@hs0p3BCk8Hg7IBvo>JPK ziNWyXjNwsq_Q;IPkp{ghVnUB95ts!H%6p$irtlVlP;r3C8)6gW+li5At?i zUtV6!*6!T{m%FcSbuvA@mkpNR=uIY_JZc$()L!sd)vf>oK5Sxet?|i?9VEjVN`-x+)LiHd{Ms<$A8OhL8GVWX|7E7lzk# zAENR?Xu?Marwg@MZTS{FEBCB)#U$+vZ_)YTw0O%+jtUdVT%@l^Lj{G2d{-tBV)Nw# z4+L+sQnS?5e)2tHe9ARGgPz@@$7K^+ZSNiS)J^LjuL-^XHBP)5>rR?@k2753B+=s} zcg#@4E!zkC`B;cjwEL6@H?+fJ5E=L^&2wVR^ZPk~av#EpY6gb|dQnPr9#;Yw!tJL1 z72+WgHNJr(U0KM`X1()2=17MZlL_v7j;|pM5pX@=_J||FusVh(AKPWQ5*2Qo-h6UIms7oza5J1bPg zu02WO(q~Y%5`v;DE0iqUfYUL#M2-vDBM|j~yW_KKq&n`7i~f30IyAV5^Wgv&#c%8% zHD*^AP!9;Ie|0s5`k%Ta-~a;*fDTXkQ``xMy1k3Ia}jqZulwWEnED|CYu^O~u_i9m z*M@M&+stKE#f)I88}=+7&Ef-tI0xoYG|#v8`cFYlZN)f8_xeN z>fu=SHAn+sZ?NYJt%MkF-IFRH=71$yU}9x~>1ei~=1lT3ZaafwOa9(z4OCypL_s zE5La&+HG_)x`gtiybmNu8cS?9yJeNmcwt-8yb_-zhh-6sk|uxNGQoVftJ2W_8;*6T zH~0_sHh2yfnJ#$^>X9XOm7akCO~Ea{uouBU-`~r(88wnJ)PqD|_#H#`UYipdjuw9Tpfhh~x~DX4Eap3~sZ>PlourG2l2K+oYwu9!=& zUt5<#$>d)Dt?vNwoIT7C;h@a&?k45K)d$SaQVsINl4Cpu$EW{mJ5AYQG&EUB=(65#p>x!zv|T{Et3W$EtV1nmeUoe8jKN8^;ndohArZj zfjh4opI)1@0Ns2)J!20oaLC+))1*3`Ev3v}(^C>KG`|C*PML@O9ViuuS&Rnh8B=M( zJ5F&o*J+Z|U4#=$kg-87oPyhkZDbZGlZy-CtA|-WYX}KnI-Bo2&SPQ(uja`ET37f5 zC~D5yIHCQs#rON>?pJAPvV1xOXJbz_!1>0_g52`Hvxg|fwY>^wekjsDwoBnW$vndi zB)7iHX4nPAdAmIv4euCZi zL}6TAqUO)HuL>5O72;jJ17 z3+TptBob|267*y`G^?e*LnT7OkBY&-5N4nR!6(Y7#17woKs;Q+B>ds8+2d_)rYS!AKJet*p;~S)4Lp#$moVesEvP)92a6^fBlktTBytIG9Qx5t__wm1@Go0`=Qmi8t zkbJp*!bfuoeZaWh&9f04ptUb}gLH^32sDi}3&7Y0rzpJ|M{u4nfuz~2*0Z8T|F;xk z?PiUUTZ)*w9a{{I0|Zt=FhB$#!AJO-V_f3nJQTFf`6fflH*o31$SdjZ zpnDiOiD~M0qeIg`)fuy5^+V_}M+NKWC81)192q{P7XyJ+BCfnvED3!%_E^RL4j)@F z$=aLV0FD`a_cL{;an?3uABr(6cSkHT`OxJ}=dsmUfbc&TuzHbv*?Y+J?Dbk>_ zgAolJjl|#3o(^)(A$9Q4Z#(!VHod>bK&`VVNB%&C{r^yI!BBwy$Q5V)>`eQvJA?@0 zWf_UuM6BZ#5B90(&)@B9|_p^_syC>jmKZsFLaO z-jpLj3DZHhK|zWmJpbnEucX47>ibW_nn$k0Q(lgl?2d8>uy);hKVBo<)Nsc4jhRcy z&G!-_tvjAbwN_;n0r8V&_y}Be74s+M6h%R}S4KyIlrzMqrT8;_0>XYi!AdZt39fYp zuhb(w>rTE&dN%!zMn9khvJ_7$ZQ>_3F@7poT-{q{jU+`N z5g^nMYcz2pGcRg2vEiOK$m{HNZa;uu7Ed4VVarK2cFAFI{2j-jKb+ol8~`)2DKt;c z)a+!Nm|;ze@Wws?=ll}0_n8&hSXp$6l?htex(IDafwCTxk@>Z)Wt;-$(`+iArLApn zcy@r_QUq>uW(-$jRb^>3a2SuErLJQz{tWvHFAca;TO+&#cVRXpXiWv3&~ z*%&tsd3i^t&&Y=CQ)j*NfSG`BXWyP+SeDc#HLhoFgx$I+PPl~44JXyzSJ?IETc}Xn zKV#m{Yo<>@Je|Kz9JabBiN;KTLkuc}-)Iz{WVapznAsENZ<9_I&6psdAEh_B3~9+t zOK4Inv>A&kr`o=S+yVKg5DAvFe<|^43)G8`dGOv$l%@VgOA4CtH)5HW<%(IsyK8F* z`_^TPduW(3wf!{aS1yjvD$D}PA)-M_!+-!mul?g_MPk>I1+AhZFANjGv(z+l5FaQD zdoa5=JJM)?Bd9B;bJ6)|JfQu6u;4=YxAden70?WV@RWNubT5;WwmYvdHM?f}o{dPh z>1u`ksO7-v^3t}FYmN=&b%qhTl}E$-X5q335~5Kn3-z8;(x}H98Wn59xkj_>pc|P~ zq6q`@;kr`%#9J(eI|wM={m?-*V!UFQFe~z|(nim>ZtM;Oi-Q2OM<}CZ5TF)C%&ZSX zUB{(3Ap&u`EYwdaDRN>^G{of+eB3kad|}Gr$}jpQ*BUu%nQU*8K0y^(8%x<8`{%u_ z0D|ti;@XEzolQ1ez%srt8{1~ddq*h=DrE`W7eAfGAr0`+iD^3}Vafxyh7HOCkuh_@PD#Gfn5^tPTIl6nj7HF*-{~E5rll`$_bi zojE&Ih+x!e;E37q?A6-Z{^QNPt?!PWeE;<6i^u=#h493bx5m&__gA=rlFV%H;1AN> zIrPy8Z?gW1WaPi05aGWe8@Yf4MT~vuZzGygp3RiX>^=Kkvd%(ZAZ&T9s&a2`0g2#D z;aCnDow8{Ta(;OH{L#)HQF9<&P$e+{6$tNj?_vH@Dk6%#Smp`?)S8G0040St7y`-h z%A-aX^3G!_ru1CcGArPWm=L602+W1ML~!g7-2(aI-2x$uwiPFr`=~jG>)vixDK$uY z)~}BlGWhX=M9guZ?FH9}CwV)W4j`3 zHDyOkDidl5IU|Q31e8*M+;&MSaHdhYXOC$`$a8x)>n@IM-{AD@Ozp@Dd$N?Z z6UPo`8hwtfXC%Gu4ql@`nEkOFc|iQ)3TM)dT-{_4J_5dm1APiB2sqKH88&ALf@At| zN@2V#VCa!|nLu;q?9gpHYUB%Cs?$~mNq0apdS9Xz9FvgfabS4&l1)lJkGz?XK?0;Q zmCiL;CfqV&h=dO&^Q3;y=aRZ!>e?TGxkoeFfrc-Vp&0hML%@XS3rMz03KhG^=^ocV z20Zr=^}@*-vD)?qX$0(hqAqnOnChZvn&WS4}P=+>zFKs3IZ?37cq;k-;|?P9XF> zBB4!}04WnX1;+w*u|)94xeBmBA&fwnz+RL#0E4w zH2OM@M6G}u}L7TGD0s%O8Q9QU8t>C*G<`KxptL9=8IQH+cv#y{-dE67Ggp8 z+-!3n6bx~cqLZW0P)t-zV=T5&y-WN21kdf{QWvlqF~QlU zm}L+7e!^a+IImrzo1RWiM^1v+@!%ZY`V@>FFENI$Z@u7&efdA zYv}y)1Ey-!s=XD1r`o>B_Hj~z>!PhmdYT)b=*(z)=Wu%`*cio8$iL&h^dbL;(dorE zBay>INVU`upZD}|lgp%k&#$O;+F+7k`dz$U46TFC2U$`EeJ0ll>E1gMa0k8aFQW^+ zrJXP+F0JHAxw};3i_cl(BI;px)w}W(8Y}{JTDuJ$dSB-N*vl~5y_P4@s|jPiVWPtoYcku z293dSB&B2{GiGZ0FcrcHUxpqqwRESTRxXT{&;%L^=0PDRd_~h@P>Vr>JK5t$BV0w~ zQKD-KMWsrkM*KtG!d*~&|1Aj*QZRVqqz#H~< zw=<{8+S-$yr%!kOcC`N=&z^2S|DXF@&5^ZljNl#ne-Z8C(6F65q)1yB6W*y<(ffo4 z{@#zPUmULXK&9_4`_p%)zr4FV{biZ)QRpNZzSHaelqV4C8X}VPZCE^ z*zu6$f|2e=%G+bgFo`PDHyAOb@T6ND90x4CvYuoLxXqC|A%(@S1_5k;O5!o>?cVZl zF{6dN1vl>EdiZd7&MV}vk!S;%OU#nHUCrMA!{fbgcJ?0woP09OHv-8^S7cYuAg!Cu zS0l`2{qxyZ$dryhI=uiO%T911jQKW}p=LWoU|AnrQ_gb+8XaH00`=OUuyAa&WV2Ef zs^2CYwc#sAlll=mIC$ZqQzj|b*5aIMmJ=_bM{RN)AE_guxgI_N_dnJjG)eR)613bh`3|U{AZ%A}V z*^q_a5Z~si7orRaocIO~pEk^f;1h>IZPET4jt@!U?xR@kh)3h^+q-h@`o-qnJ^cUG zZ~uPp#kYS)^^?~SP|_}GW2)&Au@`2Y$2r3|mstxx+FHTPSX)choMuvWIY=|^C-;T^ z`{-iv#%PYmgP30DFqp`EW!#cj2~aMSO;q%{Pc(54RVoKFpv1;wm(rF?#d zJA{2CMghA>08=Z!*yb>r`os{S@;#hTHEKEkf`ExFE-`c3;Z#wP$95^pMv`9b{sA%s zHpXx&*+jTl-rGSJxg#$1{qI}JF5Q<8{#%*`+=TH!6lbCQQeXh2j|XX~54wE2bOxv8 z)w#6cnfwu3^jP`;bz=LyVgHOkLh!2#SEXwyrs3t}VN-bGg1aSHduqZN6qc1(toXy~nO@#TSWJv#P<;R?GMn?#TC%F=VSh zo{UF`#kFcP+)NvBKPUex##p0)ZoZ65czPPOwf9M@G}7?w8#x|8%{+N%=%R><61{HT zH?N~zf2WV_la{u}J&{p+cF!Al8GIqHvC#Fk6N69vo}PsX2OejS--kbkBqi!dH!>Y5R(ba&2IS zOww(2cx3I>FofMENyiAiv~|HOZEfGs{pK6k=ky|)RDR0Txz&;SMNJwf%{iB~V3k5B zB1dVh@>&0v>oC7IAbo~}46-R-0QKCZOD-Ag_Gf40{L?9{-E21I(Hy>k7a$cHaozQC z&u63QbTZ|o@IWdw?rX(E8D;QHBctLH*-*TC`UotVcEx4Y>luc1qNmXk8xp>m?Nx%E z7m#iv05CX1u7`ua^{0$X-#o_aug@oA5ij^1^ex^xtc^1(uEeMciVLQ;tKa5-g_F|P zE@rT11YHh+^J*7%{`-7#DGnOZbxGBL)+{~~NaDZJP<}s0^Ih|fOHiF8kI%E1lqpsa z%T_2AY(jDZF=X82!iLx9l!4%ac|@-LcyRc3_2n0b8ymskh!0jW-4v+9y8JR z#Y4lL97aS~_ZhSt0Uh}Gj?OF4>TXtDinWIHYDfavWOLbmGmZX!LS=gB3c^=jjbMIbyfn|W+DH+M zI1)fJJ~eL&F^mE{_X4Jx9nqar2b43PZRoK>4OUz{boW;{rrB!qhpgE@&+dEZo+h+G6t?z^G4EhVf zY8qFO;JSSyZ>!KDl275Qg3}b&|J)i#mO9Hr-}@I2P4$Rns1RF~I8>Z~(0iGdx1t8L?JW zLQ$6yGqP$8anak@{R-;tab-D4FOtmJsj?K@vv5-{&-i)2JXDSjzEm z414UpgwN&PJ>q{gbjcp|oM_1`CBUm(tgxXv!|@=>5TtwW;KzH1_y>We39L6zc(Cz@ zm#cShk(=VJn?c5V1@L11^_IQh6~>_G0>cM9#j(9g_|!N&6C(^zN=ye0G9;13rBudG zL)42u3D5WO!wToRf}@x&!h|6M%NZT~*kAeO{>oogUkXOMD**oc=^0)z?T?Y7=9duJ z0Bpjo*6CXHrT;ogVArA6alr%D^nmVOxlz!Br9W7i;436cm|Uj%Y)-bT)SYK`{z%82 zRZ5R2jS{lH;t-^xxCcV>w)A36g;(mp0CwbI_7{JJ3N)P!Qf>zQ+%Ja(Fv81MYI^vw z_poe@<4$+FhU3oGmHJpmpA|DCxgpVhL4r2It);?nw?#@z#f#^`;uQ781sRc=$+dvg zzZN%)VaG%(Agzs+Q4x_5#v=D$M4xEe(mr=vC7Dicqw3>1MIdU$icRCy%{gy|oTehbi1NsPCY;sq>dul3ITWLVhSyyjP}Dibcj z69lBB#?ImivMwzc%@8^zvw7$wbcJk6Sr%4%9AYQS&+or>Sr2V%7~TK6*NMMj9bxCj zx1i${G-0BwE0rztIXK3)a(Y>F$}SugeN0Yfe;?!OQzWHGd;eE(xGw1@<8AI>L1oZp zcE|a5@U=68_K~u5luQ5Tv85nBGN2*K=2~G#lg}AL1%8a~ln|{@2z-kpb7_aYc}3Z! zqTiU+b6+T6PexNXYviojcgax8q#j|!;sRa}bYb)qco>ep-tn~=)rqC=5;sT^OQHPgo=x`V$kN*t zdg``6_)F2R=K1-pu z#NSW`SvN<3XA7pmW0AQke}8g=?hK+qU3-?&#jJWQnTs^IWgp0J^VTV7k?4v1%+ zjmPamGJTsTO}Cls79^v7vYw^#`GCp9d32}pn z%s!+-LMJ1Uq?l21FyHzvr=-NuW*~>(H7CpCmH{OoB(rr9qn;K#t0s?vCWA`@SO$(L z#fPg7<=NjatcfG%e^o8EY$wR5IHwzff zXVesLx=o%Zj)VkAB=0k+s$jH<8Dh+QlWCUXppH9(vbkSW!6KV4H*rd(mvL{y*rD>v zuU2X-9N_RP&%*I7a7l9of)b&UDDj6Ot|9yOHl`X!3=iCcxF!zn>B6UtIxAf4)ytnR z8UHJvH}P&**xj3x57R+0UwYQ|7@UZdQyAOa@e7-Rk7GYyb^d(+K8vjBfaigY-f`T6 zki5|Mvh)~Ec=Us}^uz$S561|cPQC%8K&;Z0v=B6gl}c7riC8p-`lGJowsCVk1=+dD zVpR_umYAgAZs+0h!TpzMQXS@QA)?u{S|G}e)(OETD%~q%2p`RYQ#EyO+gFK2j~GLS z3TQ~COE9e1h&cl|9D-B97C%spR~M5-eAadTmU0#s%8<{Vx7tpC#xXGDD0b|QH^ zJA{F`i1&w6Z0;dehB(@B#$&!|PzJv#7MLKFy!Y9gs_g-7e z&vFYg*(bKC`-X5Rf?pC%@78aI2WPv0fyI-{WjX)AX5=DceHZnr9nyS$x}Q&t1PKLJ z2Chw#6Nnao^>5Gy)loRa*~SxhfU;?x;GYs`HZ&3Ze&-5sm4-Yx5=*QJ2smMrLd{bJ z2&jcK_LWGDQ^%Ib$71kx_{qs~YOzE_BT)p4P*U`a@i(i@Q5PxH{@C9b$9Gelja^<% z$MH^;KZiaTy^<#~@IW!T=azIVTS|Km0Q+ntYf)8_kU?}r=mEH`O5%Zjzr0le4KnE; zG?g1JEU0Fevuc=w2xZEX5Qb)&>Ms0L^%hZ?o{y!GzT(0$%DH(EflZpH$q3)S9f>S} zns-X})4N;0hho~M>9qC9XWCc>olPoF)WFl%j6*qC%g{(Ye}!1qxN$Ne;irO%A!QXa zqzYNdMa_@Utc&Q{403AIJuHdcL~KRuFD|N5&6#afvy;QdX|6!Ez?3PMOD#_wke@6% zN^Qy?BD1`!XqGoutQ!s>VDsC50MMjWbpgRZV6*PpZS^)sW~KAH}XywzwdmVnk~ zH>y=^B&U`)qv_>UpSS2)C0FD&kRCwj4>4%mOJLunOq6XsGhIx#=iVp-9X~%XfuQeo z$)Aa}0q;TPkVwu5QiqugkLA_ftMsuPtS2F#6a&gWnhl6N2J$I$#C2`o)QX@WDRcg2)>$ODSb4MV%M(7oHT-U1} zbkFT35Uw9b)@`fYzZk7RwVs>uQwtHb%r@Ng$R;diEwqcbE@?_S8C0kH>_*-hNttqq`=7;eWL<~lFzz&Mp zI#jZ!jDsXe=t^KnlF44anZ3xSdM$zVxTrzg;3WxcZjc?tt~AgJ#U>rTgns801Ifbl zUg7Q@@6;=WfmgW?p@fA7U+p0A(b40br}*nle|iKzJrZXkIgP9Z_w?$Zvx(X}IVJFZNc$dC6$Ev$gP=8=J28rOp)+J8xJMYOk`inGEmYvTbisCi;<5b z^G+ibP#%n7dL^5|JpPjPKrf9goiq2YB>*Gh^+t-k1YxD7^DLH>lDT_y#2aBpN02}O zS^6jHPBL$m!>?AZDG6R(+2R3{?gu@rJ5aE&)vc9vB9&jNa)&=;?TdOxz?{*|hEyuC7cE6q1z(o|hakgTFL4mB929ki1 zo2o~G6Iv6<{DlWX8IPYxaON$zsZ)==O;8j4V7kp!d(qC6&-)j>TMb+bkGX`)F$P?@ z?soxXl85!EhVP1@DYt!FFm+2AH+LvxB%R1_)$G9_nOq<<3vyC`nTF)0Azrcwr$2PxJqxx%{iVml? z6KwY8pE0zq$Z~keIS%QSNGI)G2(NW9Lu5C)T;VPohkF;yaVd$h?)|*-_U+phSgq%@ zo%Aeh!1Lk;%uG;+E0{9J2ls0=$n6+KYH$~EbbK{B8yv}gqZh1ywNjMo^tiMpzVKoS z7%lK$T!iZOM3)#GY*3@^(p%gcmA8QW3TiOTL$CQk9gLi4NxjVFCr=;Anp{-p{2JI! zqM@#V!QVzjMZ&S}R|FJCnd^0p2eqlJg}IQKkhSUc2-%A8?8s15Y4mp^6OBs(9=bA% zXGJD;Hg~tNkqk=tEi^Dya_r~$>asJM@o55NJj0*vS65NEiW~M=(ixPg0|ZcbRnAYU z>F%+YnJhe|hAO^u@YTIA`E1GjavCXWG}dC)-^NNU97x&p zmOrW6ax;Mw_q>%6e2rsMH(~d4BMh$jEbw-7J~qm#eDhG{XcO=uF(_=6timcF6pzGQJjQ1L&iB`AOs~vk^L6_*N%`U z$O_HPB_SoDkmFQ_PO;y1OliXDf2-Klh$UOfS}3ic3TJ&xzb6UqV=FI}D&g#j=;Ulo zzdB;W_kdY(`MJPOKHCyNb*BW^^voIy9K>U<&^1(2J$<^@sJ(2FfRK7LUv@Td$-0Xc z)X?hqOsYy@s3Y7i5=DsE@hTCC`aFQ*0|2VTu+tAM#gj93+bEL{DH^IF4nmjM57$D{ zc8#FPw77E>!-tH2D+dnL?gYQ|fjDnGgqW}9-s2viCw!!XB-`ol5wu24sW`Yd?+b3Wl z1jf0UGvjk6jrOixwQALR*Q!$-QmOfD6KJORj|(Pbtc- zE)Nt!IrQh$B{x%4z%nXvVGhbr z#OTs6P+6uyrb!fj-|Q@H=1b^WDJeqZv@HRjn&HyqgyM|sV_Ce01Pc%?sQ|})tQCB! zH>gE5xq5ciJ)s}3uf31zC6);**?Nq3hnJ(HSiF>k>j{Q+ih=IA3qThYHK!R;!&R8! zwn6}I^{9>V@5J&8s1~)^#fhpRQc3!~-_QP4F(Ym(e5ZYUt;Zwc1`_jQ}m^$${%NAH=9pr z47L{mD0DXOobyF@3>4O!2{*$Pq5`MgFaMw4abK?nN!UwHti<-OiB#Q9_TUYl#2sYU zBLe@;u@*|o6f<&W4C|_FSc_xsp9>A}55=zK`s$2hvad=^X)KB_8HL4L4>hgSH%+XQ zBEvcy8h4o+1%_6TIMx!;EUxaP1Rrxa>YwxnhzY<+u=p!hJ}nzTp>JgfBC*s>*i{41 z>@gmYY?#%9EOSj7XLI%EVP2`>mu0JEOqZZ8zyUJw$3ckRK2D5B9Pa)08Dz{7cHKnC zc+3aJm;}Q>Kt>a9d#HDU?Bm|X+f*vKYW1~(Y-sK}nISqRYkRR68;!T|_^PZ(B8wH^ zt74}1>)SyW?~7(-8`}av?6JpU|IGv!ZM1MJmsq-aLEwbY0y1mRM_vRLYe_djU?h=i zfjZOkoMviLvBV z+qUPmt#idxO;Lw0!!&EqfaC~uFV(p+C0FN+ni%0OYUnW10=GGuP^O*It+M6d0RRv+ z(m_>lHqOM9aGEGbGvBZI9q$b{fdftpPb(&RR%l~hU)t~?t2f|131=t{bW9Hp!_b)U z$}QH=y;?eMO2Wlg;tJ9HV3!m!9=Ma%pEb-q>O`<*zQXi2$PaoU`1BRaCQxoK@IyZ;asKRhurnC1&lAQiXkrtl;zC}H2U=WNc> zitH?koO&_Kyb2rD)MhAGC7$glU&MZm?s9}9rk1_ zP$o4FB>P0kF_HiEV?ea#9m8mr7y)zTj(hK|3TiqTeZSoPFTNJZ0s93u5R01$5@-&% zW;^1=Fsv=@Fe1+bm!$AZu~#f7qm}~I!T*A0jWx?bO+u!59)ys$JGds#uD>vX1`u3o z-f<17S0K*1XB-CaHFp)1VP!IjmskqZzaUcPj1qd^vK><<3&od(-57Y}S_wm;J5L%4 z@o~@F%d&->Q<)vanR%{Izz66lQp4Of1skT}-1?*Om)z8y%Wh9M zFlG*rAM`|GRt|S+>NgqqLC!VKq8tQV?jPl^bg6zZ3E@^)Z33WM{2IDY!LH$-RM301 z1a4)Qfk4QwR<3&2e{Dwyr=NINih!}KwZ2gA`zNV%!s z1N*OZ4-DRVvfpP5@dxFY5EcjF>A<(KSy2ucqVJV$0cL=ZE`;oCx5)tMvIOrl-yW!m zXs5GUbh8I^kk|8qZJ@gVp2Le}0G1t>{L{7u@Ml7>p3gxK+l568h+Zc+E|{+FE2Q$| z_IInow6We{hJxkP5OCb&)>MK8HFHgGcQm~F{HAt z(KW6Mjm@ernjc%SWX+&h8N;|0UmB$2XU9y_ibw1Uoa5BTAwvL40zOYvq!+<>)XM=N=IPlFHxI?~mVkDx8%OmSo8&H>sMg(2NXHAT?C?nEVV7 zz^h6^PD9m}SB|UE*uktzRxkgEs~u7*L<>rHA<;mFNtS^47On@DIt$(AQhL>)`Kgi{ zzLihEhDeKjiv~P~@Dd#*r=hrx7wkDU^eu zC%yCD_1Qd=2wyk!ey*3tS@%(oDjLIEiMHr3*QSmGeTuu#`x8B=tt+i7Jcckh>OI#% zqz#g@>DubeUlL}nbU->C^-u;1^|r;cD~F12U+F0c6@iL1@9y+uCOD@j&CvMgw*w3> z{T+^pWiMMVyk*3cs=@9wl5h29rG<3<8+hovMwh8%lOUzNM0$gS;Msb9^cD+qH z=b_pTAygiajPtS6&PCTfi&tBikIYD2PIL z?a3Bhg=q#PD8o{Eg?9xC%&JQ8bBidjUgdyt!>yCGD5}=|c4;JUwkC~yw-%=%dV8r^2U8L9|$wOUh2E0CDlY^l&_fDeVv z^-55mu=Za<>gDw_3{*XJ>kRIb+QQMSo2M|g0750vjLsC?>mkGTrHpT!CshE1@d6#Q z-jgk9c(&9Z9GzX__zO^#?=)zq^&WK{+t#-fV@lEQ4OXoVz*E_f2J&%o$9YgAf>Vah z%8(#RBb*0Oieq0gZ3@!Fd}%n|oRrXT5u|GywfE8G2uB05-^_sA9e>l z7u?Wk!y%s%pI-Dv;>8SbPy_oGa5RtrNX-(oX_JIai1)G@B^5`ESD3=q;NSYE^@a9P zu*KU4L1i(_I<*5ox6@z%Mh3=6xtI&DRBufu)6m$ghE)D+yFf`La8>-C!AQy>;FEa< zw=ZW+5uMAynap~RfF}|xS+GJwhd4+T{@4@fFrP?xwOUl>X<+)$eo4EMndM;$j{yLu zB8#O7!-fSx@3$FWo_4z%ywpgW~d>g8GvIEDSRfs{+ zcjhpoT@7x_r~bPRyNqwF!RbuX!;%ADR6$%K1*;|~1n%bCqKnNh2yh~A>vDp25FOHV zv}eq;AD@OYJT_D5@fg|%hd)A=n@C?P#qJo1plz5APfk%*$*C@-H$;Rv6`O0d9ksp0 zTBMwe4vTPS%`H5bzV#9y?=fDO+%e9SEEsb6B&uUNTU5A$OR;T&$qp^~>Ctd*lC#N- zfWVi=-fV!~13#f^Q_6cy{bB#!2Bgg*Taq@}>T9#8dm~=vP}_ag6a#EB>trpwV;-DR zn@eiis(s`yQxi@EpbJD7F$lEU)RLxY>U#Kq(RcfyKE9QFlWxIHkt1BCF}B(UM`nu6 z4uoNfZr8;FWq4>KP(S*97dlRRzyULm1kRM*$GJJCiqRQ~pCuTQ4zSZL$JHu_x2nUZ z2=ahs7JJmivTk86q!(ty;FX_`aG<;^Tk9l32CM;gpJy#fblL6Gdiu7x%P`VhY!|AH zDxWgNu&kk0K#l?#0aWV$b*zGeBM>t@UI%k0Vdeo+Cy<*dbrP()y7JAnM)uH=L0#11 z8AJ3BCT}};Lror=&5C##j)xY?7NMXq5=Q834BC^HSPIgHV788XxXBgvjaAOE?^;eG z`mI#!32w`;$MHZEFTb&GGUiQDfEPM_H`)V>TDUHwvZ=hY-;S?^5bS4#5E91nsfdvM z0>n#IVGu?6_(dm@pLMFXVzRCfqw+n}xHWOXHbX{MyS|C6bg;;sj&w#CGi~Y%ACR8O zy9{ovosn1@{;jZoz4R>31DO2u50fk+jgbR7nns?MVfJ`_Fw%sNnhaK(C$hbF&DH*m zxC9h^!p<4l$PS2A3QI%0Dx0crqpl8nCn^pDYB!Kpjcxn1f;4f-Eq&2KChkH}#xck` zkyi$I>_uwq=tn*Un}KpizN_F1EcpYP!m@{YE1gPC8%!R3ZTk^!P|e+4N=}j#w+8>T z=!}7RdxTj!^IY%9M4@B?VlciRL_Jvlz>Ib7r!JJYa8x&Mp9bH6>w#J^77u~6YKX#g z78EPk=WB-@TYH3azRbT`!6wc!cI*z1kf{XIxrb-3*k5rj^nU9hSWK%EYvdJHWLf1T z8ahxJA>WR&G2s+9evDU=H)^(p=UUcxJi#?o>8a~I6uUzk3HAA=JFYMkZ-fbN9F7E+ zcwWu^F0Uq(FH+YFAtPK^BJltw@RA{^1S^-tmCAKU`W8%#Wldt`&`mQ@01|DjPa* zkIY~K4n$ZTg+@n$OKgNaL$_XUbe&Dm3$Lfe+$*ne(%}*X5~SI9Wo3J3{qWhw=KA5< z)?Z$1Zmq5b)j&LXr&0pgaRcPK)&v51@qjCTjX-nd=#JskLv?tOA+rnT)Xx{y(QNLl zk6G6_c=H7)x`U!~wJivi&x5FL>}7j2gmA}EKX{LHyS*Ue)Q>9j3Pe!WNXU^ZVmzfZ zAB_XkdcdgBO7O%8O&%K_UlBfX!-9zfS}^t}4N`i8*qqX$B)|(h6l&Lxl+h|XWI|i| zPMudULmqxj!nfla#cvxsa8oc}ta$+NwN=CmQk(;=%HrkttcROVzj(-hXqIPwC30{l zkoB(B!wveU)80c#N~VlSRgmFZssJAvHAs$!61Z1mx{r*nasLD*NpOeYa%&IV!822+ zAB_{Lv`HX8VRsJ@UsysAf9bq`d<-dpT{x&LhVOgJC(97AlRoarPU&>?x3Mg{i zc4#5~lssw$&u~0>)+BlA-j$*UL zQ0hPy9*YvCu8ESG7@rgl4og|d@w-f%uB^bTyttg0TLx1?;p-1EY5h}!9};}9&BdrT z!QsApWllsm3&4B}HP0lCpIa zYX1pQL=wWmDZ9Lqoj}tHQsKxbDr}CG8%0%=i8+u!k5i#%2+Pa))i;Pjy_;r33Z8mk zMK$Na$_IJmnNw5a$jW6_zX)PK2ncZ^n<|ZHQO+5CPLV$K5V?KDp(XWozKTWcj5Bg_ zI_{l}Sk4}`#KbNPbcwpu*wpQCM1rQNIc?fc+|ydU*_(KFgx#Fakmm|)WV{HY}IJKy2;-SGuDN-)09*aM5I*f_=Df`nM`4_t(R$A$Q?dzpSu`s3a#x!;K z-^aeD{IXz)&9GWrUfsLK*EFytT=lU9>Nnmlc^Sr~UBu+1o_MAK$pX-TZYNMds+RjS zJ^`(LJ<8k`t>ois=%}n1{oAZ!bhhzdPcowUA+f>)@7<;b+n ztrBhIc1RXPsEIRhcmoJrNy;E+J^Mi2uUvUGDK+T5|Fy&ZueQT71tr$LIhg<53^d5A zh5j%Sa(@Wo)kvsmDg3}AkxQ|e{KVtJ>->#}NCDB7(=9~1Q^e*oOR@o0RRAtElH3?>%ZEE2)l8i$%6%h? z*5I8c9V@W9>e4`Hu_XW94BrC$f1}7}Lb0?t|NEM`|GB&M;_&5*_1&kd+v{tGyPK=K z->vVqer^>nUcT6Py0x}03S5n1VaugQ6?530PcejVLe~;Vg4(7(G3xyTvC>?m!2U-~ zX+#m-aDd=Y(StwYY9Zkw2^Qj2oncY6zi$*Ry{Wjd!(|?f%ODmGE)u7ba?i_@_Wy1n z%@pHNUa5epL%-WS3lIVSni@c1>CPs?gw z3k)d?o`I3X$`kuDH#u=L>M`<76O#34mtDCTNmyxK?PpP}l|<<&8Q39FT28&gTb?V` zJ!y;`S+S&H7b#lQfL80hHZ>dzotMk@a}bF#eKj?$GGksgEC)T?6DCQ_ox*R0rDGK-N!Tnp!>-fi02||Dra;t<#mgbdi%G&# zd9Wdzs57!f_767LGVi|9#LJtKuT1h~rsS+K{A{hzX=GhRTRECHR{l54?DS50A2>YK zFS3A6Sa()3nB`(w!Jf1M6-fqI4XA1EcTl6h-1+)33Y{P^7#VP*o-FXucQ6iX}wcnnY90RPe*r0K>@7%9sKzvTw-E*t$DTd5XPyhFiw< zJ|jsBJhF=rM+S63F7Y$DavON`dn1AnDT;L)_})CddCyG;MM>JJ=uNI%(HWTCXk_X= zaaPZ()ze6Qy}(nXvBi`t4#iUEwrS$6&M@^Tnq5#@m_XT63(vkdV( zOP(D3yn7J}+0~Y93va=!$u)f8aaOQd#7>f9A7C_jB$&@ix?h{75HZs0bu*I6X6d7b z`ORJPyeK~nE64Hg%gDh~Qy5K1O**H%QGCwp*&Rp`f||6Rnw|0lCEM)=z3C&)vBqJ3|iJGm{f8Z`F(h1D6fV)xoE8;=RE9< zP$SoHkfbC^I&$t&%*jCZx#QH8Ig@(3qodQ#fB}l4EOu9oFjtDkGJzGTq$a}&64k(sH&`M4_FkczZG>zsq-7H^ zArcZN+lhaMd8fJ`kQ>UU;BeeKdrM?RnoF@(G2epr6$H<)X2W^lst_tkl@sRwyFDj_ zlJ*W(4s}k{Q?ZII_4I=E#lMoaZTj$fQSC*~=-(cInU}=;!~_1%GbGJ6_(z*^4DDcb zH0oaI-wh3o83R!?G-Jx66sNWJQ<}}$;~c%MU7n-#j7~!TE{2r@VsPKl7a=1Yc4cr zipGg)$qvKo0=^91&?tv11v50^Fafd@&c~=Vg|K;?h5AC-K#U1}mUc_Imt^`jAE`@9 z$PmaR9aEv_~+H|nuJ;UuH|0Eb36LZ>-{)w8y4 z1?yp7qpAC?8WqTrFOVQ-XQ^J4z@#h^0w}q|EBkGvN%3Gq&%6$-p!krsA!4bQ;a^p? zoVfy|2|x& zDZ~d+b9O;03>|P(LlRrKTb0M7lvq99b(?3=uA2MMPB1PL_tlV8O^O z39HzSrGGCLmI(iW*TXWBNB{^CaqyDSk0=$Jge;N{Q)M zf%eO^i2;WSLOh-W(QuTelHuUp!W(sDg9hgo@DYia6~@8AQU~>o|Be2C!T+VEnw=91 z<M#}(Dvm7KAW7A+j#4zHiCRW%>nDXcf5=}FX*nex^-qx3311X?G3k2FP_5s4jbfJ zDc}$7<+}$19=dW^VtuxUVGebPf;KHg*mV0mSn1g9VVy_FXt6V=94(i8_h%Y81Kpli_y~@`sE2a;9*Ix>wU?OHEq6qpK0$~@Fa?tA7 zF?`FzoH!N8r@ax1#82&A{4=Z+0~T0)nmV0>?eDe^zhB?k-9UcU##-y^)_*+2`ET4a zi(BJCCpw~3CRoL#nB#FD-oI2Q^WEk4Prgj8<L|f-R-A8h79J&LqB3A+Zo5r%Z=9^NV`|BArWU(qVP}SmnN;v(N=XL#)5> z_19mwcht+3Ke7A@J^G^W@ z+u!B??!Uf!aIk<tqeQlJ5W&en|yYj4uuEYje)iK8%n_ zLqetlI3(JOVH+iIt0TyiIKtwc#XGORK44zM!T8=imG1ltU}z&w;13JG^grAY3UGh* zP}e4CrYH(YSvA#XNLC~#YX1It(|5uVQ-z#~&>rUAX+M6{UREZAB(i&Mzj;KE4cGh= zbcp}$>>sr6zFK6>*f!Rsz5KpAI_!PmLE_G_Tj;_yW}6`W5eD2BXkXP`GDi`0rVm4o zi~Y{`xktspAKC&@WeT2=WlAywv(XztP!_Hj(v~Hd4n9_FBc8EvhN5(|8SYB^4zw%e zv^2eU5281EeA*w~JyyEIloyPyLMO|TRKfLpjHn&LaUdhCl+uhMmRx zf*(lLa0QQI1J;3?zlU6OIUkB?I#owt2x5)BUOENwg9v?!7kM8sbJqY1@&5?9ONnI& zspS;6S}@gTFS-g1yr*P}wez?>Shi@CBQWcz{DnJXNA?u1P@B+@6xu@gxMeB=7BCO6 zDCz6_x+`{tu9hQZt^iOB4Yg$7S89~;uP~0e3lVNCay`+vmQcHjbh}92?-&Q-pN!eO;dvn&*Ez$cJl=|VZOq^aN*$JS9( zV+W7Zts3znk{*bYb{-%-m0v47wBr6EFs z5%uQLAvDvJz$@mX`qOOif$)oc`RI*%owKNWO9YL1_U8f23<%c zA5ihrKVCL)^j`b4!*uPn!|!!#lD+A6$Bov&#{lx>R*HTIoB111`n8bc-!U#F=D_vw z9J>hV27+16^p^&LhnLGFYA5&${drx2x6eM7;On}%F2T>+$E^_jH3o|WZyyQ4ryVpB zeEguE;N$y{&nhc%BZ5yMa@mD7@G+_c?{69jerAue34Uf5O7ISf5BUf~ zd0xfXz}l&_VPqU-jB#fZ??dL*S_Weh0k14jlafv>h>+z{$Okbzt~s1U-rs3ly-rv` zMiy`JB*AIjH-cXV*wsr_X-incQbd%%dk-=TfBW)b`@%e3en*^`TCW?=&Zz9u71a6@ z&GX6H-f!)0?d%=CSlxTMv$`qjK=9#yfDcAuYH$T;*j7v(vjW081)gj$`wKfiv`X#1 z#P&xtwudYe97ajE&oU#&KoXZji)L#o10%WN+nHZzttBlR-PRp4@fJk1Xt#){YJV`7 zaEok8{%hE>PhPvSjUGmTMd&#E!mPqRW5Y;@zfBtoK@GiBO&0Fj90h+RxJZnr`aVn8 zx1+7z37fEP`^Ei2Mv^?p#J2U_P1_=zpmwI10GNTh&t;F|-khC@<4|kj%Isy=4*)PL zT+FFMqiS_g(giDIQS>ybO}}>&3XQ_TX|wPXujsc|Ki;D^Pe;aPU=bUJw30dDy~|DA zrpE&?L}vH$#k}^uq@xEHpPQ6|AK~kYhflUnByK19dv30t?#$ORIRk=(ED}tud~w>J z-<9%tg9>ElQzUb`_NuFZ;yNNBNYwwd#sm2vzu!GkU1DwJ)Wz3<6w(IqA)7=B(a+^K zUsP#B8)VPfFeMV(;`T>;4U)0ZZ8!Cf9G1AvyxT0T)nxyH{Wnlck&)@mk`qv6imK$@5Uq3|JLHrJQ0;l+94LS2(2bk&@~c$aHrDESqw{KA%@swomWXo}O>v84J{+Ld?%S5F zH8;-hhM9w`nZq~6Wr+Q^eS{?DA_FlU>((l8NwHcQgbyoTHk)fMcf(gVUN8wbV+%K< z*w8JtP#uVBS15UtC)kevmFFeLBk~p5CE56L8#{JWu$J^zBSNf0P1EFIDR!^Ff*gUs zsP^B~VRGoT6xzYcj9c&3e(R6THjS2?&a62oigAiVu_D=w)Uio*b~gN>huR?2;u23Z zcxYA2kah6Q7;_F#=R4FoC#-gubOxk#LkgeO=@q7>+TxA<7<(dRKkX^h;MTfbM!}9D zb3Yh?UkhWpOY0fub<1iudgpWSVhmg`c%+K%yb1d@#A;%jo*WeuNb+K>Iqpe=?Ho#$ z>7h3=a>|bxR*T8O_G~!MyMX+b>?CjH)N4v7LE4xTs0Uz4-Uc}n84HS0Xq(9PRt}d2 zgmCB>xX92m?VxB~jH$}SwiqD=F~xx-a9RUfaOarm^Urqmvao@jY;HO(D*|}CF)Ns> z);ImT`g5GupHh84IeS{f5LsaK z_A6!(cl+^hR7cL8nd)x&X`5Gev4 zW-EQ%!gTAUZC4Qm%x3boqA@bqbHe->y^(cWXb%@AslcyCa|41Q)?tiPaI2)}zF^3i zh)T|*onpe&lAHKUatuv@GwVDdF7-G~2O43yBVZFlG%GC?q&=|>G?xr5w3cw1yB5rT zpgC1Hob~-#ZRgfO+W&2a8EE(5pN0W8G}pg(yvj7QXadhVxtWFwLLc$-z{uc;Qec2M z*ieOh)spv!4Sc5dvY)fdzG-6a{`eWR1O3v!0DHV~G${bhtpO^ta&WfpTju>V5v;C`8+ z%iZ2N0+2{Jbz3|6Gtl-mzM0wdId3n7R~APsJ~4ahpe};k&~y{`m}&T|mg8$EQqL%4 zmBO(0@~`CL#1|a@1-I;=H)aTo#;YjS6bz+QMnj%O9R$rOvN0-75vF*IPrSaO%UAJG zWWPrab|t-ta8G_qR992AA|}IviCJucWnFfHfg=?eDM+GL(kGmm?3<-WkV@lT>>nOx zY_4i+!K$^O|2iw##F<1J#99(nJ%Usuh*7KaNu4zfXXm(&IJTq{iRz&y(i=>}yVR7n z%}>FhWaUMGnRJrCzx2pJm%^xVlAZQ9-!Ka}@7@qcV_lGI-|GH!XiE8j0b?>)n4wrr zR{W>v+K33IWMx#NHN4W?DkRCi){upb`>qB!M7}WS^^RGE;BkZ{(000p#$28U z+8=;^rJiy3Y#fRh;0Wm@$QW&D1fkR13J%q;Dr_o1#B9-X6v%5wrUi|JTZ0r{aD;hr z{7C%Z$k0NJ=AG)0g4pZ{zOt#K_#k)C)67SkYnp|px*oWj;e*;BsY6mHT?L>~%(Wyq z_URwuMQ4O7kae9aReJJ5S;UBUCX~9P*?1srk=*`nyfN4t^|)B!iQJmOMx=V=)yX0Y ztR&fSixqPWOzT+$wD+62xH7h7NByvQn^DWF_fv;uE{T9}5HaUZg( z>o_fnqeMpOJ@c}!%?S$zV%l8j$GINz!=`9xR9U5wg|W!0ujcxTBA*Z0? z|Ff{6EuC_m=ov%gTs*^hRp}5(wkeV4e50Q*Wru%paj!>tzT}^l@&dO_qdsSX>dFa| z-Zu65a5twu@8OeCpA(ldtVt{>9UM|#Q&FT2BG6|aYTBbHlf5MIiD zsp*=C9j6`r7{}RVoy_zDAJb5biWl|}%^@@s=^728KZrP*Db1{36=kXPo{umhF0Y3R zGVyd#ISt$YH{wsknwd!44NmkEenwoSl-59+q~+xMsJrS(CrRIoUvBKIr)X5LQ)B{iOfSI!{2vK2 za{~#)S>r`Tvtqm0bx|S41^z5jat-i7j&X+ct0?=j!Q2PFjvy=~q2tQRvzX*moN~NC z^_f@b5;i)0iP()!qDgH;9@v$TbY-4u6>x_}NXFqQ1| z0mtckneGh3)JeK%mdwp&3IHMlI7zmCOPdtSP<(De8lMud_+8N~8zr)O@>u5lk?g*< zwZ41!Vrwt*y$Ua!Ar1Uih%Fv6%>`G&{UL*Q-dPKV0?N`@gyrI!twCSYw{h%|nEYkT zFN?xYjodSE^)IQYUx}pUW%bJ$d_)ykBHfj1>i(br$-83nE60q{^lpGBSsF4zc0FwN%@|f=Gz)P(4lES*EkTSrT+zBe#$#o~KZkqdu zWI5*LLcd|z4rQxEYsF~V6>8y;W)g5r_W5SfG7ew^LX!3E6_eG-TT<_K+7gAm8!u=Y zS0hB?G-6&-9%c+V%}S&e+Ntb|h3zZO@RsN2+fq2L-%pln{ligD?X2Dh)L25H)`Rc} z)3|joeAlstX98wRUiwL|JSnTq;m)o81ahke&s-A~-8C}m4D2d23FGf}38{A1YIEMo z!`AS7E)b5}473=VJ}vim>NC2{_KOrb1*I{^8jOkx%|N95E3uj8SzCNqKbT#kR@>3| z*S|u=INmZ~QA;WPfD-rpqYlnoc~+2(pjL!>4xzJsvvu_WdJ-Ln{$R9CP!x-qwwD7b zjs+pzpY(yxAHi~=ptp;_^d;cQ3uo4@f^3Kgb?U05B{jn-n_$CcaF(%OE9_;~3UPEM zbh7k_{|!C|WnHK_6&TYhO-0#kY3Om`L(@)swNC!twSn)tm_|5v0Cb6T@bU_{&j^7M zU~o7<{f^~@qDB=9xE%~^=(=xEvt#)mD9e3_6J}BY&IYw>^b9}OC>lD$`p{I0k#0kF z+CRNkdX>UHj%Y+|eEqZDZe6Klvf!z)SoUxoMJgsZ+IB&g5nIj0?}FtwwhlJ7f`%zx zvRw78RX{fn+IPply+rM|%J%rS?YI|>x9hgjr&b#OZZf%88~!j*@-OBkwaDF)seLyZ zvNYZL2W(}b9BN&Ym}61*_9d??&Xz^S{1#CH#GvsX{&d->5^~1>s-opty2y@AayZSQ zQ5v}%HC)PIHiZ?8GHIcJd4`nxnqkEVX?Tg-ENvd)5m<${(go=sUOwfJFHYy-RHBaT$^qMtIVrRj@~bQvc905#j|)aYRg=I(vC(!;8SuCCfwiFa z(x3>48wIQ)q@P{pkolMQe}ui(9#)WWd+sBkPkqbtD8yqETSM_ z-ulBQy3Y86WD^$U4_@A>xrgH0Pyvw71q%cKW-DHFcp0(`q-f)7AbYCR z*b72pe0gzk<_E(lJ7k4XZ4ber05HQri;2)EiiesEi8dzya_n*smGB`LifwB-J04D& z>x<g^dswy`6MG}E>p)t{bL1ve zOq6>LDjy4eAP{5JdVxkE`jpSG^s&Bg^8|YdjqQu^*;AwYZcmNZmiuM2p z0?`$6OJf&?e<^q1knAT1nwjcP#RlRDMUsGLDv+`(CTi(;Hy8tX@~24CIqgc}N?C&C z78cq3BO^JRrkUso3X!le7_%nkQk1)1E)JO-P!aIG4ig{Fn&Iy3_W0_Y!B|1ErW#@X zCXjh}h|gF?OOR-%@Wa{-upc4ywTpEyt;AX=aiO)b3Hi{4H5CfT=b6{Y3LjWED)hLr zUe_tK2wh4+Q)pd;=Sp@d9M%NciK<4o^NmMuJ0V~Y#|(MWtUMC+2iwf9_o_n zBu#rVzm|q=54Vz^^e2#Sz#DHK0J8bxyY2BfHi3rjB3_=2hUdhENKppvhnJHJY{;SRmh+GBQbF629$?~@6NE&p zky@0K%fyka$MpG&uCtWGfY`I)2~oN@iekr}VL2WXp_9|%v-C%)ZHe9@5f{#QT;3+H8GO@l>Bldun2as1R!V8(h zD*M3V{np9Z@J)t1#kXqpPY~0mV_YJp%|eW;qmxV4 zs7zdN8q?eBt2?QI3_AyP7kUFc!IA?TfOrF!ej`#Eh@cdb~15 zIJAg9*;6TWp0sKT{CV?Dm{$!wS(8~ke6Ld5qkh*40gg~Z!S;1LqLTWDQ3SQ)*_|b zgyy1ler6O8(;hLS?akG_XIneZ54TsJ{%Q4FW(MIF1=>PCy++M`RNcq_F8%JSH~q=a zOZ|)Yzx#RV$I1BTC4p`6@z1BgH0~8ZV!lmh`s(h8&GpA{3wNIe_eQ_-PD(h5`(sl>@Y3Fayl+h^UA}C;b)I$EUJI z1Tjrz;XZ{UmI=zhLrBu1esJd$S2k+~E0a+Xs!V?=X5?BiwE*JBp&yo&L!i(4Phw6* zPkGPwRXR35jqZQMFTH=dF;brk(;8zJhx*XGnOM)>U%_pVj2z9)ieI!+Q5frEsStD0+2#Cs9IG+Ls-~_rhEzWKbNg7;MDPLcB7BIat&c>$6 za;9J#sn_pxD6WKzRG0!cnFkUZ>|Q=Zj9H3Y(FH_bArfqFje=W%qy=4tYue7P5QQVG zW)6lW+J|n>&$%%aU^M|`*@!@Bbz2LKQP>aJ_k<&eG4d-y17)lIQL0&(bQD-G&@;n+ zYIMZ7U)$GDG^&`hF1LbJSgBFHW?UPtm?7Ng+>ZZSNYVUy<%p8e(-Y-&91O616w_x& zgp2lQ9hG0M^_he-t0#j38OYAC|00&Podyp+4QXpC)gCei?5tQUqu6*Gl>q+7Fs~= z;}n}MABvReBX>d&Y7&pza0g7f9VK43Jr+TU4=K&iq;3tC9);?f@O0BY!4bg|vXv@~ zu}%nZic#(Irnwur9&0UTDXFZ#3av7|NwO@%p86S}VAh-Q1hleTMNZZl97I;_Q+_qVdL^YX>s#`E=0 zfGyM3^PtOA{x$FwJD-6tYd8nSVwXgjr<|lL5qZb~egskblqPByWn$XN9dWWcA3<|5 zkEKcZT3SoaZGdoF>TkFg-2T<;&i?EFy0`S|-s1A-3%_ExPA_B1jIEfmT%8D6@?&N~ zmQ@QF!k&becxoLnLgHilv_Qyr>{nK;B&60$lzIXUR!_i@>`3! z;5%_2ns}XHNrM?2?)}U)hx@G`P#XZLMDVHLyPY7)a{gv`Hf~^c?;8_@(yp5#{QI0f z|Gu}YQC~wWWQmT71f82{Z@I-@z(b@kaH zE)v}P9p-~TpF8R+E4bkpUKLN8(TPP#f1m`b5bwI#D9`+EHyww@BtZ{;@TkjR$9`>!B-@R<@QqYF}qBDT3=xY zmHTAv)#rcSZY7NzNRm6zNutXpwTmeC(d66F@bY5ZX+L-^9WcdYc!Ueg=AEK{aQ*rD zmzZ1{YHu%*0hT#sZ&95uBkr~E>TKUY&a?WC62hAwzq~~{c=GrD#h319GFFgMz~_ti za|$?@3{ze{`copBH=C9nleRCC#gzrjr-bSuXPguNYs_6Ep;R`*vqGz||A*e9j+h2W z(svHbt*}&1eLub4-Q6sZDzrShdbI!g0qo5ODVo7(zhsOy9((SMV%ok1PC!~A(i2nkQ?>lr(5&2#eVBzI+=7 zeIi6?Z52Sxxu6eT?_n}Ovh+SvOy1DUQUy33UXG4>kHmoX&=I+)RG8XT)s_-{ar|{*$vL+^gIdiq{0H!k# zC>9(l$({1jDsAGM-y93AHW=8mZG@zsB?m!>-_UB{;KyU3T&Cr0~T!EvcAnkmP^$uZ|YdsQeWPWy(sQyJ^gL`>S15A52(T_|F+KiKlP*OjnqLfVHbs0#y2^S;rlK=JqZ>{H z1%G>cJW}2yL(8eW#Rtp*zy5mpmz<9OT`TPThhynaF($BzzIzAv92TD)=#>S4(AdS`FQd0d^?j5 z`6zu(=2pbe#?!4A-%lH9FcD9fa-XI{Riv$Z5N`ubVw5MX@0RFg# zL%GM2%*Qj#5I@-T^rS>A9rmNIn6M+>Q88o|B}a64^AO!8Gng3(X!nmUN$5qtS>(Ce zFFr`?7P+fc5yI4JoF`~aw{k0Hd2Z^Q&mF;Vxb2HTq~Zk^u+0;YB9wc7r={5h?B}I~ zDNGB=p=Pd>#GyOBF@)td{xY%uce6|hb0{ql1_hPnoHf)E|R5g8mE00p+O0&A;# ztN2qAZbGc27>B9B#PS>lEHQI*c03||=e@|TVW(|Nz%U1gZ#~^y+i4*X_zz?@IvKeA zHv>gTRy=!p+QnYpoPZhY12z_d=ec=_Luvx?7}X8qc|Xlb!x==`{=gxTFc{zlr@mAv z;mbdRE5AjJODc;^1W@iJm>n!ETltgxd~(SeJPCH1)qRp5Dg!LU9UYsv(O&6m(u z#e_O?maP?*3!!`LNpYR{wD6V}(3#|$2xAYIiRdkjfX_r>zq~t zDv!vY+gdZ9yL{753(&Wh?ZA+}2VIUx=;dgD1PXu2^HAKp;SeB4%WyrE*a%PR!MR|) zkz{j_BKLU6jidHhuAtzj_!0lZeQP8o=(8V2xFmph#MGuMB3TyD_B2akbK}WhpKl(n zZSC!?CoUg`(mCj!5>D0F3IGTRA?KI_Ca1J~IxVKRMibvGMK8otMv7uVWxOw+#oZbZ~jzC7{#R zxPG8?2BE94%v{ks$-&r6w9trzRtR7H{QU9^F8UQBNyr%LeP|tY!n*@VZlj$bcEt3o zkvrj|>#te(l*kA_te=K;3(XurTe(~jpZCs>x~LN)ag}TP8P$M*$CbQWAABZuOc>5# z&NzjTdVLt;#d^rmkv4Kz>I@R!=7HRtp~mDOh3!ZEya{)yhmEPl#|PujlU=-n-Fu6_ zNJ`^0(%sr#e}RvkJr4KQ|GFo8U>P#9eJ)6G(<9{;UETC;FKj+pdW}uFsSMdPt73Cb zmND+h6%zIWCi}cTwsLPs|*^AIkMhll5Ub|aNI zgXKgXKSfasT(Le!iE%WQAS)t%2>aR0>;OM zpkd&|VUxHiY) zr^HnFVg2O97TyN9V9z>61X;7W34Od_xsMynkl)>Ce*Dm8m-JDYo51BfRL(5tqKgyd z7%pikQ!{I7``g_=Zyv&&-TreTs%A&qWB?lM7yl&W)09!|5Nau3{8PwTp~V8(B$#;> zx!>n_%){E5abVFh*V|qIGR+Knp@$?Cs>yzbfQPrH&YkwT3y$;y3y769>AuRI?fg{asPK4REt+Gf%q<$iLqJijq=dE3vA*g`G;)3<$p^qv zJ(@QAZ~nIWyiBJx*lL0<^P?jPD+mZv(82eC?qT6M$fc0^vClyIOz8_+`};=RaR$nf zhP^sEI%Q?aYq%;{8ICxcvZss|w+Pr3>ANy13^UKH{*Gx~N0SKtXTV0#a_iC-kiGj&KVum{^xaCz#P=TCp|G65A>`zTlqt1u>ckp5|Twvr=}Z*2DX z>mohQ%F)@R{#4d?-+lkwD{izpa#&4nlQ8{~o>pTgLI8A~Lg|)J0wHN?C%Rz(_eO7# zyU4tFDJ_ESnfJr~F={Jt)j#vcIN!-LR!2REqhfkO4X2~w4>I?Irem_5_WFklY~g@o ziVpH>8h*Wo!z1%iX`R(#@Pqi{P)AY7mOFHvMcwgCB;)kf3IF7^HzJPL@)|Fp8Xds1 zZ7khB^?^pwu}H4%3!f#hLLSTYVFInqI_E%vDO4U9MtpnkPZwFR;2;m zEfh2hJPqU^Cz)}4G8B}=UYb;8OQ)!0f?;s1a>ThxG1f$q)6C@zQs zF5Iq9M^Gf{IDr4(dUeyqK$VzuG16CXjMG=O>y$DBb{3@2OCon1MaI>!9#Sf#swlVe zM~-q7GSUrFFBYUJG%KZKffRF@8`rd11$p<0H~^duGJ2>J?qXN8P~s?H%1fMN0)Kkn z74~Rvt2l1icPK&9df)GswN7XeJABdyEQ?VWDK*FqKqcN#*C^DmrNuRUS*nz(G^_^) zNa^Hkt@F}QVXH9%2nF9`YEXn5boITRvSpHwCi@7VdxC&5mOS$cS}Dbp(z(1nSbQ#b8LE{ZgswX;H_`8PM)CPL)eh@3Xk-iVu|YC%Auu* z3YKS9^+-;UvdTeWmjqjY85*N*!u(_gss8MSpmEhaY*yMn^ILi~P~he*)f4V8sWwYB z7|*5Ec*S}45O?*C?;R}r|6qq+exSmfRA|qD24{=orPt=*ji`Tf*+27Qbi%y8O~hs7%GKDYX-}EpDo14>6{e94U<+O&kB9|9 z&`cA4@VHzzN-gh(S@2SQWC>5mCn|sjG9#W-SA!l|%CI+i>M6Y8^i1m8UW)WWjbyQ#hKB zn(MX*Y7eAZ4&Ugz3J+G+CRJo1H!3M@#^G69AMHX(Rot|SdGW9}o`xg3M48q~73;s2 z|2H*Q*inW08-~QSK3Eh1>?TpL+4?8Xk7M~Ll9WWPOikNXxz-#DRSJ=a`aaZ9jDnbk z5x-U=Hye$M9*sWpIR6!bCJqWr5(=6cZ zg(lZW)>06dKu=d5zZ&>isNO!C&d=zh!p}uIyj&qkmLr4cvZm!5!+Nt&hy4(SwZ8#k zN~hieLcso%Zuk9{TrChdnc#(a_^j-^n=!OZxQ3xc9vhX`Pc)D)Cu%=rqV{(&QEx#T zO^M$oYQN@~sI|P#M7MXgzTa5W%bKyWO%wHH-*I8;=oc6%p}obnF)j<32n%})H&9Z^ zhmTb9#rT7jV-03Vr4nOii$F411xEXBK@!M-TB*F6aHBl;5{yw+;8G1{oY@QE6XnhP z1v-R8KVh-L=iJY&y^6fP-Yxh^WUchAvbK4)#J^Q8+&=XrT~>iK7bc4OW}8|DDr;hn zQL`FgyZ-p+Wp8wa?0al!E}Zia&NnoqgP+8+V|YYKi?KyeV`SB}+8iQCA=pJ}>Zji! zw)$diYbU`g@eiS6$aF8lz*w;HWo#gb;|U?$X5H?rVD&TDeZ$dJQ6hQjg>z8-@QR8r zihH?cTxj>Px5DN3dljJYYMA6gJd&2yCkK<--MKbvu3ZT5l?fDT#Z2IZ8qBy#FX6r4+FsrJZsWzXtwW?aBJpu! z>xJ6qa%qfOy+kl4lYeM9MMk}xi`_km>Xenvs3Uz)&wt4h<<-r599w#FlRPUY(vvUk#Q~nGRcp96eq#g~gh{z{e%ddNZh#S<>I~U6oGapmFVLX_%KcuwcSN&Rs9k z4s`6aWQnr;nZXBP>E7Q>=giVHS)V@V?_hwSl=B;ed0TR+l^_77_MkGJ<0J9mp{1#N|WK#7~$`W2f@X4eI^wUmY_UGLJ4r-0S|L0Lr#n&OQ49Szg zj;0E-oQHvQPsCozxnSW)JNQw^H4uX%CUhslfB__@(Y}VWW*=C=ltB3;D=L$8(FlFEmSBH58RVK z?!iSn!fD6j7QV;E5kqYh;kcsWx63R)xPJJOH%6_kZ{w1-RUC`~Zgou^vo=hIR^din zA}*j`+1a`3QOK^V47 z+>NPQQ<#GJERV#x5-p*B0&9h8RjhL1Wxd1qJO#^#AXfZGZ``93v$M-9uAw)!{M5a#>O3s7n>_lEF+TGv*C*(k0<9^#7)N^uEbmSp8lP|}{mLy0gJ;2Smjm$?0Iz}rAp$5(?R z8itJ1s7gajqcX7!45*WQ5_nKx5l;*nbd7!`bQ61hswdpt;Grqz0{S4fl6!h6wBsY$ zp=j#v{Sm7Q*Y@=N(Rj{IYLs%|y#`oiJjSJLJ!s|$`r2M#^ zPUQ~9kL#m5n)KfyqS1t(ReL`#f56LY>S`PB@^0Mpg*85pbs*G8g&qRkcFt0kCN4-|g03<-vJ(X(&`7eq~ejQ zHADz;2k4;~#MgyzhjXfqOY%hP~5y4hg|_TLb8DMHoW>K$>*zhy06tUh1I+b`aGXge~E~Y{VR7~aCFk9+$pgH>)i5aFEO47RXKs1?|?Z5F`IOX4Y^dw^^)c$k|VVm7I<9jT2|r& z#{7ui6xa{(0~Zfegqp$Bmnx7%i#<@BprM)M;YE%bHpriZh6SeBvUn7l8s^x<|9t#- zO27rCgZ?WKok+)K;Rrk6vB|QaWq^rzZHl5~M1#pm%+g!TG^IhMc9+QpLLS;*Ej>!% z5PhCWXR+5^t6LAM*xhfT@Q(Hn<~n7fQBYOXK)s`4+tI zZ;5rx)v`Zoa0b#hk4+5U0!A01xWWpgKQOaI2B+}RQpJUsgyfjOzf&(eHgnZ(d<&YIo9<#n2 z^n&gn5u3Zi3^sF1th2!*foG^35~ntw3@%K%dLdjhpArC|YZ?rYY57cxaXH!BbfZOP zD^o{|?D86){^V-?105ok!bU0+k_+Y6xKv-Az*g3g968A$eupfMq<|% zU^(yq*c%o0dPDR1T0P;pgL%5#=^9xclGQHDhk#NBO|jvVL{Eby;@UM)|`Oz@XtgIG!Jz9 z>gMLwUk+csSbh3*eS2^9$>#duF8;Hzxv{sgz6)7}z)}4-yWg#@ZT$s>V0YHHw{|!7 zws!Obk0b@hlO@7sbt!P=U-oLJ_ZFrRa%<#meC1XJ;Lork288XSrYL&+5P z+0EK>>`RmHu?RYID=)4+ zUTIzjRdsy4-5VLtzy^trVbUaBWWY(Y_yowbmbDZi5GBVq5}~!Sl9D>z-9Rp~{e*1F z%O1@}+ExqltM&Cat)?FK7s>^K2_G;~3*3GjQJgawLlw2nDL^E#Lrf-qAx{c4g>^C{ zIc-NrKc#tbchy-!BC-es4aVA>J(EA`cb*^cr(xOHgV>p7MVq0OFqg;rb!xs|4Ft4M z_ncq4D)jX4fn%)c~s z9}J6>Aps$S8Ft>~?OFGP6MUFZ-9rCl0EDHwp|hY3e`9iYx~kU;xUq>OHRqXDyn3dA zXpB_fRjmaO`UxlXU46?Ua#JPkoJfrbuexZ{B61P)^9J8oxIoYK1QNLJ;4l?nZviKX zx33wTCJ%8=SGO~n!4PFC3ucsS^te%%U@vu=QmgF?=m=lsYJ>5C5NdR+aT*?P;=znW zM`CLFmXdw^4118cJSr#)`OS4xy{P(w8Lj*)yp*b@+*Tw{2w&i!+Tgg)I|PM0FKjao zJI!fab$OY0(MoZi@uJ)@OKVAJr$iqvo&T&ttpv>d;5eX&UYi!yjx-P#J~op%hM(*z z5roiu3fF3|JQ3OPIff(o~k5cP}bPvNe$&11S(gNOii%b1bSpj3tKp%#_WcL#q>bHe__p zWFZ3R=p5J-Wn2MWgQyL-5g?ETQ5~Yd5wd&|W1%t#5TQrFqJ}3>P56QS<6&7Pl*lCZ zAXQ(f!^=poe}tQY#&z2l?u{+&`>m|eH{hJcV`O-D{L1)`exe81gQ&>^p=sJNXFpMZQ41%j#( z2tkf5~xmcyh3WcLnIAbQ?UywNEc4=sSMO0UL1$flC!lZ1EhW2*;%ZhEu41j$o5n=+Z5TsbWIQ$)qVF74M|Cdhv(TTxcB@2g zi6Hsoes(-Y(s!?unvh1KA@8%FZs8l&)YduP!(O3M4z@S#l_l1jnSEaX?1TsfQQGjwN>4&%H|rruJdEDGU*)Tz{iI8HacVEEhfL} zTElM{{$Th4lPAB>Ix+jE@Es@7HR9I=o2ePsIncMe-ui7gl9f3$( z?#&_Yn2Qd#)F2{S=|0Ogvo5Ob+k$Gu=f=A}lsT{fuR2P2O~R!dRV;*Prj=|7ydP<2 z>5&%m!4oH=&>x`1q8gI~-YTOIk+FC<56iS|c0MB=q*BoDT;lP6{PMW|yrEKwNDeCq zoew)FE=Xy{h7nc8o3aBxkxk4Ht%!+Q(=dM+>^j?^@6z0*iu<_ELgul|8 zI^?i6F~Nqk+j^_ci#USzHto#!uMBn4pG?9Ym=N}6>DWPAgLmW;*g2g3AtE{F`0Ga` z%QI|{zC$7d)NnAV@%>Gn(77O^ z2e|C~aKWNhnDFikgO&lo2P3*(0jz(Q<_`21J8*^lHhEIroEdpZ#CYUu!U{NN; zkr=^A2H_IK4(E_=X-}rJlkOlXuMM<|RwE`eOL#pbH=#IBsy5ekhOnw|NTEm>T&zV? zc^=)5=&X(TCtZnGFhx<-p|}I>=6VZpU+m!{MvUXe7gjqcXfbSFq4vWmGLVo_43G6a zPATi9n5{Qgd?EDY29IVbq3$LMK*(nZI!oP%xBU;j4>%L3&+AKvKK>C2kIBRgMrLO@pThE zLI@<3x=WEQ-BK7G@n}G>Z~R+ab)w}v(vi7=coc>CDJ z`5bwt;ljks4RTV5j3`zcBTiRE8CF9|LMk}z){u895^44I8ibg5wt*0wth7j zTmW+|R3>kId>Q8FIpDS}6Ko-ZfbL@-B?6iC&hmFu~q7CYL-x$=(4bS3D(-H&7=Ybp-n8 zR?YnULsB)tt$m3ekKPS0QLzO{q5M};ksJbtn*R~|8R1xk$4lgEofm~eh@*h;fbykB z0ROa)(iSgAXHS?yhKC+B!TDP7s#;l67zkfevP8tv;D%e%MSO(C>$E98leiI1?;iI@ z=~Lluv)baMFzNUuSleAj5n@6u9OmVi>0{oTLl64yw56=*5^=bM0a@CRy9D!p`Tl5Z z9}>XCKd9u6v@-&6H3%F0QlNvQ0Ccwi1V{uau&@$vGcEE)&W1yj=RNDc>xm7HbP_&Q zgWs#jyB!Wsse49-1zxleDrUwSzn%6^`>(r8KR#Ug{VP4!%tF%wxp(&QX#&i6hUdA57>*DU?Zk&lSY|>V0r_|7RlYZ zoLpQ^N;k4XCU>=y7E3QMU+69K67IJID7a=_S$$*}#dxRC$$-Q$l5&}?-r)W6!QcRO zHL)xOut19(ol$7a!O?V{8dOv;9MAy|vd7&e?LH6<@gtE4uF_jt0raLK)5~(aCDI1t z%TW(vNvVDP1CHQeBfP@k6g$GqkO(~ZBa93tp=DXud?tR|Pc4vqbT%CHcqNUF3CV*Z z_h2gqnBg9q;R`&&Fgb_EHnM`*kT@H(0q8I=f7&BO*!AfA0#T=VdNl|u$G4<-;iG3= z%>J0jSAr{6<$m2_)F<1WcdwXXhdEL-;AZczzJXm!4!}x${XpTc{Q_4aq+o_L&T(H$ zpj2O^6mJkQv86W%tEjASeUhJF+6XDLGSE^k)x#n?EDZAL`U{`f-%%hpA_;StuG_*2 zHn9~!&;+)YsEa~yEVu5O$Z`P1$GRRhB9F<=b5-I#@J18K~D_9w$K*_e+zq)KNL3 zdyRtWXbujDW#p$c^nL7Fqh0lQ#yv%odT4YnJGx9n`IL!KO~Q&s+#vQxy%5t1B0!jH ztTjK6{6~3LVFy;&OK=uAgac7Lz$POAwTxl9xDD(;&%+-)mqVXyFY?5&9;WH5YJETZ9;+-vu2NSFJTfe2r;+TN(Q-!=E{pj@%;qBjHjda>C_nyKBnSv;_ zX=5n4j+5zJD*tK*wM3TZ!4*CvV$S4XHm0j{Y9NIWuPJ*TU!XD!u9HA`$7Q($1JQec z3Wv_SCz2P6|H^c&7yOjKC;uzYoraWG!{d5ZjQ0I>47sx{@c0j`>)e>qZ$2Tibbtgt zKqrJ&xOER+AAJ6Ra0EiMFQuxzPi=oe{}PPrpDEJ48MU4NU4#7WRa}5Fgg(B!z@ai& z^D_&gxCn{w`L&-- z>p{ApEZ55UMV!OOB>31l_Mh_@7waLq zE9I3~>OI%0pFk*L!F=OK$5+gt3!r@32w+{buMEm%p+Je{6j8ibQTSjFA%QXJH6$Gs zZFvVka(_qG_tY@s6E7iKbQlUOp%xTIMok7N4E)nD;0fc$>2FV+S%_N3u^Fhps8Hn~_aR#n7 zKuRI;StgKnA)JpU-;Rct7voO*SFws8{rB;rTuF#hygxs9 zy!d!QMN=?>A*K*{I65tZ8jZDC#=!Yt^0p&sbAgOfpMy7U{2I|C29V?)jpf$Hq$O1> z;WsnW;JdxO?cEmJp<-yaRo4rv$D6*sq!>+gi4Y@}P9c{I6Rm0D0fyIK!mzg2s9bu| zAK1zUtPyD-CTpWHQk8JR*ByU@jLbXXic%`XeScFEWF#aSwY~4H!szh{xhnjM!1Id0 zJD73`k`?Uk9&e$7iw6K|2kss(N!gXDMjnumc}FBS8!jhi+6TFTl)sk^H|ecLooDPM z?}c*`)(Ig|dXvUp1kAKDq|8`+F)X)J-W|CjXbffCz34Az%lP2S<%bUf9|Dp71L)zPf*hn*LC7GY^rcF}mv9LAv{Nc%zr zdncKANme8%L~DpWxN+|(qmEb+8A1gXFBHTLeC=1b;g@eE`OOiMifq4Zh-l$N_S<-S zh_pmVbos~za`~*hB)UMGhjF|G$2^78%i{+2aTL~dAM$O@M^Td3eRMiGN06{GQWW#a zNA@rQ$fPq@ElzxVbj~IYw7*Cj;ca27h+ZhfJ1ASXws}w_M0y*XP~V0BIDV`fFY(A# znu>|L=Ei1n7~^=EK3N?o~)S5Mtn`s3rxzh2DTIdgH;=XKlfW%6=?@Z<*eED z5zMep0Rbui7^?lV{kC~A;422{l6Lr01Sv+7 zu27i2NAE!McdR5TilfKbI^_e+d*I0qWE_wE&h^2QunVRiCH;bFNKD!dDxw`qF=GfT zfrwfkgOSU0F~aByHpJ1XyhNjY{e-g@Dw*D`3#6>;2xs2CH%^8Kn?!;14=DzP zBIh-Aq0!NX=$R%;-*5Y8(`RL^A{ytOj>4bH#kjcCKNq-Y%=xG84dAky{B%mDX;=f? zsM)nxIA3l}$iR>w)~a3(qxZ1bZ11{f>POO$&Pr7&QQ|(mNh~lHa8k7xkF?@tjoKuONATc6aYit7~L9ys}&k_HlG$BUEU{JtceFR_7Ts%{FiUiecV)K7qBu>i}F@QQSKS5(E)1; zG`9R>|KbL;^J{G3%2yHJzDi@SzANusyus+UUWZHZ6uTWDM}A!xs-9B3O_H6r@Voc$tYt z_wDaV7d5db%VJdxkm8ADg5f@zSOmgen{eQ%3O4Wn1dXv5_z2vu!E+qrLDpu+pN9$3 zSN}K>k!;NY0qk$Tty8c9Hvq94#@pw1BwBE$dRD|9=zPR;haIWpz~yl>D)cS5FxMr{ z(&Hb&NlaEu{0Ie1KX(1CR)VdwrO8&TDZZX!J4FNIw&*kV*hr&pm6UeR+_dT)d?I=^ z5L-Up0)s12HW$WTVOwAHEZ znBo2hC41lT;uaUCOcUjaKl2E7b6IfP!3=u~d6{t9)RaE)oKQ~;=BKn4YeuXR+3RubH?tJy|3r%uL8`H6M4@RFqN6II(0sFyChP*nBxwlx z3F_3MV!iK$a>j(mOB^t_5yFp=Wcvmwqdw`dy|8$PM|FbsC!&@faU8Vxu_tlpnr}Fk zQOvXzvM7lAoB*glmh&gLgOH_SGzwUfg)E)QT^?FGznDmn`kBSG>5TZ`Tu>(+_#yAIdU@W;m~x7mh65WAqg) zXOv*l_RpQC4$3@mXDMA5ux;%YX0p=Btq6D8Uzd5cvaulBdkL0G@QB4^uaInX)k3P@ z05XJ$iP&1i^>so@tYO(}-{A-2p{AwVRny2mM=Q-n54_(J!fs(l4Av#y;&ifawS?ST zI!Fbb)DTG>wiD5Z&8hrqkSgXt!q{WCg~BG16EVdcY_@>X@TczMg`c@p3Xe^AiJMoq zXy8TOw`fOgLZN8)iwZ7FVfrG4kvO$D7M`sKcGG|5?7Qf|aC7m-TE`nc5`0+&b2yV)3>S zp>5vUo(u6g>8252$GbK zhuBCG1$l9SdztMpQWsZo@){V=^VZwy+sn0-g`(8H2-ywo2gw=)Va{?Q_@!YP``+QV*(y8?Nwzcj2g-$(JkdGzbD^ihofqU7ovgt$dXO zs?RiA1tcMREjCM`Q<;?*M{*F7RR|8Xo<*n4Eco#lwgLG_?)yztS9|we|KfuBCei|_ z%6J75k6H6dg>QOCU1no3X=MwY?(S~3w!hofvzHu_SuW>@E~7hUtWf1!$OLTy>J)k2DE~y4{9kPYenfItHXwpdM z)0~slH4rhLB0w!Y(V%`ZH~>xKSPr^Ymfz0RE++?TfxeZMahC=k4pv9>Lgq;~AYEg- zm6fBjUU#rQcrSj|4bDs=EjT?4X_I2!gSw|v4o-%)Gb!;F4ox<|dE=9lq`oW#6K9-X zBM}^_XKI-4zg~HD4+-Hs^L&qdnXN;{dW{K{l1OQBW~M|IoEFn4aYhHZ4`?#>>*MTF zaHbaHNURt+-M4g&?ylU06No7m{T^2$5O5g&@f$Q(&(j` zVj%vjPo@U9SAfW*ZbX`xQT7u)!5+filoIjDlaR>+ZnwuGzahLCs}bScxSpAyu2TIL%9W6@~8IZcF{=BE&Z>`T%n{drqx z3xA|%N+4Wl44Hd`zi=#fxO6l;8;?dT_IvSR4I=5U$YS6)A={dvp0FJQvE z5`hu}CjMB$CHjMuAqdi+j1gz*WjD+4{|V==TK75!yZ07Fwdh9}FedC9W^(!?9;Jz7 z#%DFAfX!(uAi@9$uSphyxltD`H2^>oQ@))i3BbTgx0Y>j(YHi^Z72vSfdz}*xXUd0 zkn|F2Ci4IPQCd=fB_zeXr~QYT1)6N{F!5GJ$c4A(@>FEPDM}RPD17akw%_RBm@AIrn-S*y+@Fkr&zwz`0*t>RJR;^n1 zwJO$sux)~k=^X{2IC>ZM@~#9c)g}GLvnWSGGh87ZOQx@`Tb6Bz@drrwwS_JtW)lgl z!`EFdc^joydN7~$zfkIPLG- zU4>Z42_`oPEk8@9uY`1)+k8qEYl0Ifd~__}Smvkt8?HFT3<^x+sc!TwMVUl4GOd6Hcw=rOnv*h zwfLa*wXjkA@J+wPw76FHYu{g;S=eHUOLitoLM(GsLL9*D8-FL=c&3}##v8}-ts-Cc z-vtA5#K>Mn-t{|~YcnvyTHASrGYmZ!`N;SMR;OR_10WkB@xH(K;QL=!R`6i2t3OY! z4yaMCOi6qeO5Z4+g3-&a()J2irR~7<|5<6vSS61Fj%|JxI9p*;w~5ZSm2S!XL6u%u zURX!&@lY-Ze@>6__+)S))v-{!*sFVCb@J%BlueRbuh_fb2vPhCh{gSjWSD3{c9|XU zA_K5-nTicmHm_o1vbL6oh;SAaB2GOu8ksv9z|e34xNO%EXo|XEsPVlk{vC3@F{u3+ zDiA7Vkw75*mH+(;i~0)DUzizwgEixNypN^tGaf)P&n1y&n!DN{9YIil{<9j<-2$Ci zx<6H>w`kHgv5`+S>0=+CTpbkMiBX=O*QUI1d@`d!U6NC(_HnJhls{LNms-*ztxKQg zYE0gTh(-we%AX<_=4mzCJe0u1WjdBnUUR$fV7xX$0f)CJ;Z^e%;ZR3#>M&ssL&`s# zSFf#!b6{Y?xs!@JY*A_(sW(1&)a5{z)RuK7@IP^IKOm)*QWKWP&A-2gCmg0mJceY_ znBUFxZk)8Jlm&i9;*r?88jX=2MJz^1MWN^iy_S^iJheL;PBYlkx`42z_CyYpjuKP`Q7(R;tkFmx6BL{3fmpac5dyLaSc#-~KFu(>1+ z#ZT=`NPVrzr!jYxnWHJu~2-&j2Wf_?(fD5ZG32kMOQdd*s zt|HIm`oGlxa2k0`%>oRqSuh~U)c?a&14wWr2$i79JFs9uRjkwkXlVX0 zShVDmq!r}Bn&rnr1wfr3k9zE9$eq6&_4`O=i}Gh+Kw+*z0m5HVq{1UfR}Uo9@xFF8 z*eET2A{ecx9P|$1G!s9YxCrYz%yITLOqhG`0BSixd2#2NM&sLY4*E_p>7+d->n051 zXcaD|7J1M1XFTITkH=ASB9=h>i|`4b^9%cftR==n))O5z_g+#~WR#`;BWXy1&2&JF zhrn{g?3I&5h6-0JCRW<{tXG>KRlq8RO7myls z5lwiSquE4*1gsVSE|G$iIl5kE#>(B`g7hB(*s!f#72^ogM= zl0t}h4ZVknpEBd!cK;kTnP3P&R->4J4^VLCU+=Z$3WtuPFczlI_cf1NYCBm6v1d69 z=}dxamdImMGQ5(uxyYYjT!t!~EZq2bCV7CUsDfYBC=swo?G55If$L*$^kDB?Z0SCl z_)bu|Npr0D3;Iw8lRQ<`IO2V5Y$h%lcAzg`a?!HnTT_>8h%)=k!V>f8Eu<)>s?^l&NwMQg0I~r) ztm^20CTp8)*Gs(P*X}=lbZjBjweKTA> z9*CceAr>=1?8czcdoh2uOS*C9-Z#HX7s}QqzQJZ zx_Y(M$q;GW-iD)9I3z<*5RAa0q=H2gDW)YWt~-#Z zM72V)cA5wE?YrKHdAIi;tHvhYoxB&M&@oU!HE40E0W&LHbz zK9l5HV_!jct0r>NU%js4dZ?jEg=6X!7J>(+P0ebGPX}u%R>moNnV3(itw|srmqv~6 z0gS5OwYxxSQAv>U5$%=$fBhs3PErY0=U7pmpdb@4LD%=i)agXB%H)NLB#=m0a3Fq| z=uC7c!C8cgvup#l$}()RB}gq#EYvQ?@G2myYmj&Y`>vu3hLn_IC~6bXffEhSR+G%O z)bP|1#x;aXNI+<+s$K~fgr`&cJsAz(N$^D_^}dr-fS|TJz;)ajcj?4+G zc5FEl&Ph^G&9m1NjKSS5AzCn0_A*0=Bk`<K_hl1~-H z1i8RXb_jFkb{d6_R`P{tYRArqQKdgd9Cl5B5S}vtiMt)Iflq>q)CL3}kzHl`3OdzZ zSMRZ4k;a2q+qp*3fx25`pfNqgIQUnjaZ|anpF*oXzGDRIcqG;nno}3$Ap8*dW zD*{8q^SuEz5fEXEwmwUBHZ1wc)j^)`iwC|Bv!wefRB{Iq`ERgYrd8HR6~uIi8f>fn z+r3rO0V?ZfbCt@qPM8w^IO*wS(h@TCQB~5|k0C&PAuy~s5lDTvW-f>}w=h10nNFi) z8Q?0ipg#MlkIGp7OxPd!HbT?MY!tdr^nv`qz!-WonAqPvTkt5 z{&QKXaV>AlB&-fgF{A8)Lz^z8FWr=zj<<#@l`n7~YxBTi*^L7u;8TaSq8NTT!qMRP zxMQ!h7qEbIHN;P4Ee-?m4<6!PZK%82Qa=>;V)k6eQvJ6X6O$5q@%EoUrU3E3LkDH} zKTca(`V6-<^bx@OUst#VTW&uVl7RGmy_bq4*8*|R`j@>U*46BMOLzMHK%hWRy6taQ zV;69pglet zKx>tA$)pY=qnzMYeA&@!GZ6J$o>O38xwIK7MUo7apA`^EC>7zA84$GupkdwG=F`?G z*MM3)C#af)wRBstybMI8R=_dnc2ZL*N3tZ+d}?99Ni_j$jsa>l49-y!kbW)}a|)A9 zizH;MA=`w!dgj!_7b2liU`?{v#nkiYjAAn6=0E#aL}iz02N9g>7Zz&5j@<^Jr0|T5{hA|ybB9h3I#BG z2wlIAhjW(05OHD7Y7(qwqJubHMHsFT%WCD_ECa;g=OQmRL)pCuzpzHADEuN1+WpXY zR}cpa#ZfBk-E-IV3HCd+k%iH%&TVO%nI3T?LPIL5iLLnFpZ}cDlP1Y0glET1Ah_9O zY4QpyfpuBlQTX>YRjq0YU0t$B^AQ5x6Eu6~=~1yqj`!f4_M>FCV%ka$O1DA*)Ydu# zU}FrwR;~QT_%Mvps+yXCyliF|2)BIi{18>rRa&rCS?)pIddjZ>gb-@bFrXH<_`vas zkA1i(@#e`3m~yO&5^`=rgyjV2p-s)zbXi_k6X1K6`X!K8lWo0*Rga^gOmEFzYXGGk zI8q2}Q=k4)7RaS2X@b8+VopnlwC+K@%ak;qTs_;4tXZoYku3&(Tuuv)Kpqgq{!h%D z1C_?w^AlgE@)lrBwBA^?whknk9c#HqpR*=!*oc~PyfwT6lsA|MUAKw>h%~0?5_uQB zDp)+@;8tR5m(WR7!a8!tBL#Go=(KUqe)IFh6y7IUlx$rpFXXFdy@R?p{I*E)1t|(uGx3#C3o%I^ zjaxq-j`ax;jsILlg!;;W2au)kgx2!$Mei_s7|8>grr%o_7|>1kH+!i*GEy*_)j#z^~^AZcOGnhtKhq@R&l*Se)C(k72oHvK{IK`qIvgs zrI6qv>RoHnFTU5Nckf&NFWPT@3rYWSjIVLWGyWpv@fvqNYbYo!k-x4;F0d~b3oaaz zv*sq_e*5Fq)vz?2W)(XU>%5$7CEVgXojJJ}NSJVyn&jfTd!wb9TpO*(&r*c+#MECH z{Titoot(2qsDU7W)m zgGJ-H)sSWsB}%1#aE2wz7uwu2xVE&3V ztUfh5L+GlW8;PL+?M;9Qbjo%Je>>EiZ|t^tGJ=GxTGjGzjq84VKNq?zwwKD`K5P!^9Sidu(hgV|~s}5Rx!el)21mJZifa zs0EXh5B% zDK3QM0&P+a!UJQ<1((4fPk=d5BI@LS zLg>t1S48;yH4jYwL=<{5>|$WCXZ&w&t)2}CS)h6_D*iup({?oX`1(i)jMf72BxFn0 z{m;v-O@bbk(1TJ^SlMmk-rqFx5!|QGS_K+OY`1YI!E_)^+5r%I2Qfx05+!W^=2^JO zhsgk-cMiq`T=-RD8zt$(t-EdH;4ZIJ@^7n4!=zKCy9LE3@REM%zfZ zzutSJaG!n;1`)2b4{a!_<&7qw!i2>^15x`vDAh+~UL;J#v0#leUkr@g^H`bxa z&$dx`-nRSzk;us2NDvCg*Pxwb34hM(l&xe??Ku;%;{&7rt>0v6!td)=XL>5|uBhl; z;5c;H4=N$_``6(Lm{sFsQyXMeF^R0_QwD(xcNCd8$p~|z#QF_oFO6=7kP&WI{kG%eb zj;+7Yqa?{s5_HstiH2c0$SVUZZ~w)UwX`i*A$-)xB)@e_0DpMW<29Y4Q!d0N=6gE4 zyuLsJ>nZM}ffnXXRTz#Itnh*+tYsRo_A{eZ{1Ovtf5lMRD5c-N`=9s%_s*mP2t2}? zx)g|g@C=u2)nWH*18b8rp$mlch-CqMPAwOZ2gB?UOb>}L(4gRz6Ll#=Mn|NaH*km1 zTelt4CGf~P1aClJ$EcEiekc{R7`=JpBpZq50}P_CP^**BcO^GLML(Z3rJE1GTzMG_ zA7AdhzCyhKB5Az6oljIyVywgf+8CxCbd(@MNsnbq$<-;|gwt-}k(|?F>pm7>P!Ytd z1#xhohP4tCB*=lb!Q>k;DRQLxBp*NF5%@AIoMEf{8V*=)0?T51P&H|v6w9L&jRJ@= zq60{$*}ST10?;WF;4+-5O82JKmw`GJ(Kaxww*#2L2dL(aOO;a-Y83i{x>Wm(mcvnb zmDXK{wog0lCqi9#q7bYKM5jbrh&rMWNxFu;SvnWo0MSdKq^Sa%!hl~;bWUbjN^p5v zf$WbeR}rJ3A6#Ah;G(EsS?*$vY3Z(2RWd&F%a()Kiun>%c;IbqHwxCkia%XsM%|6c zfLRfeQNMX*yhy@hl8vh~&vWPO*rmxBbsRNt#lS5=Q^Ui^7SqC_-ZdaTLo&tdD7VtUz67XTY9{!9BywKSaz-6T-!S#biB8 zt(#}Q1g3$*2!|gmDXXjEKX3~Q;e-<^h%9tJNvRRS^AB)TQl3Umi#70TucycMNEz14 zwPKWAVlCDdV0?19EW!&W5NU0j(({5g&n+-2b_bO^etRR;VgW^bB;oq;&)s%UhS)zvT008{fr;OhYZ4kJl9)IJOm)o!&rj9?KZ6_h za`>iyuJ;fh(r5G@>`?dylMsPcnNqyG>*)eZSRA1K^Qe? z@&V-Wd$(_s%i0>Pq@B)-0%DV#5#)o!lV3L@+h4}UkNf?zF@5-~PXf0-BlK}{2Zu1O z9T8&@A$~MClGnCjJzR$+H{SV)<9wL{EV0~9p8X6{SU_himsOpLb8}EjfG5v)!vmN6 z{;>IOHtA2C@5Vr^(DPs{DPSA#FPM7d5DDx}Q8xV`&#{2^g`Ei30xP=={+QSePl|2b z1lsKwnFv|UX)d4T;3p#|2@~yDg9n8!fw(~EBgCKcB6F<=q7*N%f0YWNxR4x7iV`A7 zXw?0Wpz*A1AlCus6fWDR9PG8JElt3O#x7}RiQxD-^37)0-%pcm7H~I*NfmcL719ac ztd%Hq+dm5?CIbDm)D{n`_~+CUsD>Uw5CaL27@I_!b~y%z+=5jpixshOP^Ys2|h+v$|+cIo=n1FBi{A*a1M@9 z3wfWE2IRTTnttQ)sYO$jnSR@E1{W7huQCpNg#1wmQ?wUC|H8bWg&y<|k@ctPb5kNciE#!bqF?N+>(!C#M$H+5nyW7yH6ge|7k<a{YmpifuW3Ix{={*>UkFB`*Da*GG|; z?49dv(dwMN#z}&cI*&<}6z!xKcpO^vGrs~jA4l&xjZJGi7MjIlDgF$}REu9EXLxeg zf}Sp|W~-4mllsp)ZoxnH>aFr7yEq7AWvsyLy zsp-z2eh-Rp%wJabj&3pWL_#q$(8QuG2_j~dTJjYT5a1^z75e=zm#fQ6nVdB8n%d8k z*HlX2-^$Wl(W&uvoR<>=mVSs zAd6eSdHTMPJ!5AtMAvrtQ7MhFdyT?x!v3!60E;G9Un z5qf|kB4@umox88J-04fLszi?;uw`|1+(XT2q08vm%=>=Q4a7$oH2gv${N3e%P3Ose{Pmc_>E=CP@04J(bKANpymXeLVb1^4qx@53B zW4e%j09CUpAu;L=oq~+gW1Un;S>4tS%p~*p#AnuR&&Lg;U_>*9PqB4yEp`BCBP@|xs%e1)q+M{qo0ehpV(lO6If-4XV@uhA7S8yRC?DuU|1LXIZE6VuW$Wa1D|P@2wgw_}TThQ@?miws4L?J%9bq6i-w@O_eXX^; zgw(CK{d1(~(Owukk#m+sAA}R$lRUEJ5l?jdK#n{g9Rol>xu)Ym|ChwSpegth;TTT2 zQx}j0k&*Q76Kjnj~Mtpc?H6ire7qvn*8 zsQ)@TKK$mJZ~n~RMc*hP#@aH**c@60fH^WzN5}dwVg-$U4!tESNc?}0l-Fs$*jb0j zH~}I%h;3u2utzEdr7$6TjDJ&NhhIQc7-Qs<4P>e0+!9SUfo-S70}3IahQf(w5nVd7 zrxrjdB8&0Qts0$Ixb|jmjH{6M#W6B#f3#;CqBl1qjgYpid{1V-gzl8M`{(k zD|GWWuUXGUfl7g>vkr^HfKP=`fE88wg5L zt6`??@eU?)q3G?Maf`IuuuJ;qjW^0OHEu1+c4;qR$JkxiE6`5$VJo4uqPwW!8d}us zrf*y$@&<7JF~IX+br)9@z5JRNde>w0jX>nMG8sk=B<)&)3)QT1)<@kjlt}h&urc07 zDNT<4{;oIzrG#mhMvOa&*#N9%xYPoph272VZ!xJz#6b<>IO_K=a1_J_3}VKI7NedK zh)(-UP=!!<7?}xLW?^;r)%P!NeZTks>e0c~;hX*?uO<4GSqWnV-QWwkF|7M$aC(07 znzxTEemNi^!4y)C6iv<~qfrYj%mw}xKgX=oc92OCe{e~CaI<#_rzYE4tSnShXr%gx zC(OVc4d2YJwtx+?g3a7~gK%9@?Km}WIiteGNr*Tip&2%=FBW2@@aY9^!iUdmq5mEx z2S}`qhtfFpwX#|RKRL|c^*N$ej!2Om^|Uj@{2|zus=^<>Ow2?}U9ppO*0jz32uQ<1 zD^)w*6X0=C;YDq3{?Uw*qOhp3=T zhw_lp07gP#3Q3_gB`#>opmae)3ni(3s!j9IlJI%WP~KkXmc8e!9cZa;tARupF^bf_HWvtksynG*G?>Vem z+Dc+qRTnESGtDNi9u!f-ZSr|!at20UPD1MhDgy9zn$SMA4by>anE81unI>pQOammr zY3l8+Wjuu)hGNgqmrs3lRf~qGy+nZwVx_wWI{$)7H6GY3!YiYH;cubZjTVd#)8f7ZDyH>HKpy#Z!gV-D@YA-Q(_FU0P-_&`MMRfAWGM({3a{X_9-PGp28R( zDMB_`?~F~%UXNlhX-u|qE_Z7rhLJ=z@qz{EfOy?_!a+G`9~p<~W5tkhJ)jhFZeksJ z*gN{Me|a)IT1V;JjrXi{4zEI|{S)tIg9Q@x+0fh33N{6fpYuShl+K!qCvL;W@BmtB87YJ)5r-A-c2=Vx9RU!? z#^GtdcYbxjBmQr$$N%tj7Vkb*9%h%dj_K%ot_sTAZ_jCH!Vk78W;D^G z9qSg=R&oSFxt|-I&nRy5_BhbKT)0+aQdI=!r9bJ@(zc(ygz9$whWaJY5qDYR4@l4H z*NQ3qvA6NRi)NgRH{tKaYjcEoi{h;~IM<=Kfg%lhr?jA{N=aCS3X)f{5%Q?WkDjDK z;Lt}JZg9kdkr+%h#ttguS??6iWPsR3d3*+m3_fX+Yr_H%6(0SK^S2_SQ{*)RzMlV- zAqpsQE7WCCc{zo54IfQEBO{nNhHpj9F#gH_UNe%nu#cw>#!ammDB1U#L6VPr05u%p zX6St==5)Nb$8XP<1p}6om|*JkB~(S{u%|UB(;@%HEeGXis7F*gf(RND0c==Xv+M$& zh4HHizB+o|izAiUN`%vh*%FqRAu%8HKD~wrh$x@L@a=#?7Dc5aM%4C;%k;T?e;d$5 z@5KmS)*SiO`qc#Og@YwXETL4R4k4r6fi~?z_AtiC9<|oX7UcXMv+vT>^RRnI1`}|WX zNGae$y{S-7(5A(+3c03k3zB8Clj%8Cs4dOJ6#}uyWKmln_Y?%MvtSK@_vFpu06)f! zOH6H}n^Va#yh=46;2^Ey7LgIJzg}(q?asg6zJ2GL^gCL-RROaaS3#2`ne{M&8E}Ff zebC;80c``Vlg6D3?Un2pZtn|^cEqj!II;i5rOkpbGE&V+Of5}*0*@iNM<-7_3Lpzf zf&2IzVAd!?WySG@aL^bY$aNO_=rd;eKbWI7J;^wuMRAYecMn6dg$)&sjT)AREE zrU(pN)6nOdgq-mY^}WlL?b+Gd20|qXCa<3L5O}24;iDGgZ%}Z2_f-eM8Gii(&b*zr z6#eSsUczac67z!dWJuafu@c>$IGfng>1haad=lj5%%edH6|}6JeH^XxK1uKV_Zpg)y^1>d@8Dgs5UV9(w5UYelD2pLc2#Rx%AR$y`i7S|j z*GiB?CrC)p^N#F}^-nXvTCD5>r>BkJrW1p7SV0By#LHl+Dp51@7PzKL3`$&eP5Eac z<1hye_YEG5ho@JUeV)NeAYYrBuhsa%5SJS22f*#^anr;r5hYq;wr&MwTKtQX4|X=^ zwHE9HkF(~}G%TP_&Y=HA1qKnN_@|-fwtC6jVi0VLZhk=Irv0j6HQ`Ug5ulpAXQ$9P zV3?!lFmVZa-(nm~p5xP?D(BLbcIE4)rNc6a^t4Y^W1B#*eE(o@jzqMdarrqN>S76r zI&VcQ?zCf?n3ibqGIf{;YZ~B~!mOm(d}51QYKik2Nn$-ozC^0nfY*tgve=8HX`VAT z6ZNUqcAm8Q=Wmfp*lo@4o$sB`N8zjS{29njM#FcSC$Pm^anJfOMqsYJ1uMU$rWHAh zD71O16_R)_lE#(xk(h;Mh2_m`PiJSf*@vo*ppUYGZ?; zJx@jg0nNS(Tuy8Gd3Qvd-`)8=#W|e$p=%xG6J5`=ynZe(IwMEp>bV z)|Q$ghzU0*^d+G=DxA z=6@@V%AXmc=MNbao`NJDELcrJB1I8PCL%NpU4?(gASkD;(kQyWkC^~ISBIB+gS!R@ zDq3VkQ0jx@^BpTML0T$KpxOu`9LX? zvjTP8R~iLg5w;oQB%5n<3e92%dArbHAVFTlf{aPAwWET)$Tyq~@+YAOLl?FPm_t!1 z#mB&!Q_ql7z-X|%u?y^#r_AtjlZD>~kHBIQE3?9wGx;Cw4NLtGwmad-Wmj-u4<`Gk zf)9kdrJC-{o~cwlPPZ|IcOo*GXHR0eQ%BrVGDY*kg;_1NZhw$7Cl`k5VdFw$q)h=S zCxD<9M}vPfOq@p_w2A?X8Dx{^9o7Pepn*yS|DbELL{tIq7j-=nsJ6mj&kgOGw%i9x zW{`~t$)UaKjm+5!GEG{z3)2jgn>Yj_6j>m`JZ1h-ij`qr{N7^dy&V$=Sr%P#eZ{&= z)k&(-TT*HUvLu!|!z@9qvQK__7~CYw_ccJZ^Jr~nV}I-MI#W=U1~`Uz2LT%j!f=z= zS@l^ZJEKmJaIDso&{~h1O_zi@Om+4~#V6{@LR)L8D-d}b;xuY^r1GQeiPspbuV-e9 zuxe-mob-|U=q8S9*gqj$cVQ?&xry^Xa;sgGS7XF3s`&E4SrH<9%M_kD^U)|BN<%T>l3$f`Rm1;+aP{#_PP?kF37<}lcG7Qa z*8U=mvGNhBSTi$Os~@O1L2(=xtV+Alr_O36Mfya!jF^0;c}AtCHiS8A+Z3I>6)XsQ zQ0w^r8tWX+azP6=RaxINvx@&j?M#RV4Q-#X4&`WXZ8Yj#>+h2r{){MJlwUyn&di@! zMGc!>Fp*3iN9WSC(hbztxWvi0V4-MCzxcc8T2yP-n`+3~eD%EzKXkm#MZ8a3D{ za(178V_N1$sLz*ns6H39!5>O}FxGW4;Ry`~Z^2n`jgQo4)#QQfkql)|Y;|IuO`nT^ zi~8I7^+U09`>q-hMA=7V8#4crntyH+$b;hS0SMt-VqTQYms$@t^Ai?y`q)C$fB?bx z97sf55NHK_Z7rlgw8k{LAbJv%VRbcKH6%DwN^N`4-gk*G`BZW5DH)?O^J-aX1v?X?=IU z)d&wSj7V5`TG`|;JhLp0aXcK42O3n}IL>2f6TX>aD#GM(;7bY35kly@53!y*A8CV` zx$w}L!|H1P{RP|u>QSn+jF?n0c#$rZy-NzHXdZ18oQ%Q5foSprmV6Eml8khD<|H(0 z=ns>|hg#HwYOC=I!}z#_d~)GP6z3>ASD{f(HrZ4DBs45&C|lYi>R-(+Sm>iA-Gb7| z14x$Bk=nyYLR;4n$V7UF*ZaZ?-K&KMy6NyHVLsY=M|VYN%f8?4opb~>PxU~3#_SHN zweUI1VEkMR1o2NUDd`~7X|c&tkWfkw#!ui{YIh+W)K}a@4MNp}8vvlpUqFznu5oK+ z66NP`0ICetDMTrRYY4}LE}!RK>SHcYf2-{_0W%_qt0JixzB8~UmZt2v3_y5ixc~|{ zlpNBX;UO~XxXM15U$$pi!+?p}3l>A9TgWga0xoQSC0{4J$q_v~E)YEu1|1hinzdCW zBTf?C@~zWGvivgc%2qEGy7YHKk3cfC0~TFfuyQma@f8lulLy5Ub6N&4hl%#?o&1r2 z0&4KN!D83;$>C11>3;-p44Hy;v^@GJy(81PQiDWo7Ep~`D`;6GNaEygoLyXAM+ueY zKq0L-^f`hTqU?k&O}wiSYMXmEo>lXW41}{;-Wr*n#zaa?A5%^Ue3(Sg4p&rg^tE%} zqKQ9dH+r&SgM?=0{DtV3ggw}%t&Lt^v9LhUlv!|~Wt~cN1FIgxJbiQu1K;{~S_C(Z zGyqY;NwReq%v7Z^EH~J@nx&jimu)Np^Rw>*b09qxMe~_(5vLzn|28trL%9*nMQeJK zFb7kgEJmiBuV6rC0xl6nedqq$?|@ZZ~LRsaCBd;DM4Tjw68I5D*+ZJU@XDJfSqcn zOSfH=VosSr(wo{%y@Dk*l+^hl2#aEt@C2y|n90mN*iIJC#(avXoZbrW}&@f6CWFsFTR+EbY3JIESE zD*U)FH!#z0hbA~Us2k0=EvO(`_c~A_V7Dm2{>Dx(W-IkKqq`ej1w!V(J9)wYvccIH z$p-h1ynCzW?tgM-&@Ev2)0o9-FERNq>91e}^Z};(Rdi~?H_@nnv?CC6@}*|SJ|4<~ z1#fSLs(x9aBP+m0G{g@gj+;L!M=iVTyh4A=zwUa^ ziw#|8{qTr;Xx9=rgPUSRO8pxQ$2Z+k{{fu%zymGW&0BLt2 zj!%*7AGF#fo0YJ4RSG+D-#`Wx$f>O-J3E_5Dd}Baf!YCBi*2YHWuW;Y#cwBEiZm&* z0)+_jFLD()0d|f2LPjPUo}r*J5v|gZ$n()e0rn&NI#E}nc4Gp8cep!A*)Y?gw*|$U z*j)4pZ#=Oj>e}Bb(zK${%6kwsMgOSNRQye%tmvcPPhYVqh(eR9EH|M}pH9S8BvaP- zP=aY9ixT-9URHgMis|zH6EF`00f?&pmZ}3&RRKX+sC7~qC7n1VIm%#QAr!f9vmT={ zmQ9JrSY3Uz@p$dUvz`5iTWde9KiOY<_H=DqLnPCF^RKUC(!>6}Hr6B1I` zpwtTN;$qS}#*;OrQe`U4)P{|bm+v7N4%a>z5_tcxb^T4NM4=4yV(UHv_yO2xDmP2H zX&AvuTGNf#QqT#Gd^$G~_u~+Fn=j@!w|l1|vo#SiiNZiE^->jB%~ETl8A?{0L9W%^ z?2BxxzyG1c+Z*BNw=O%na9c&yDkb;;*|j7diID0+@3ltr$&zbgbrU@|?7ps|4Exe! zY&%>rL*yp$Iyg}K6a)+I-JgxFPs6`W(@=2phPs@<)jTADjLF^~{=gNvI{l;%f!iTZMk z71-lok+fCFxAZLV zXSAq>V}^9CLcf5#OmmA1)bJXcuodjbM-NL4B@J6m49(guXe`)X=Pt$`Hbo=A^(Oqe z9>RqY;ZY8T?F_E=@*P&zNCR;~3czi)}Y?PW-cvQ))L3eFpbrO54qXR3| zg@K%OI?fJ6xMa%?j)-hBzij?8Kl92yX8lm$2pylfLHiTBW^IL4_v}qz_vvgMrgmg7 z;gw8+e5uRDrkA0m0B_2tK;2y7C`{g@oQfZr<-X`ud6$+3jHId4{*JnP(bgbbSob;C zn}E1#Db-y5x4*%E?*18f$Pw)pY4I{S*KG9n zzia)=?N57!97QFsY2o&@b&`>gDge5Te`Saq*hxWnXJ8}(?9Y@h_SCA=jP~p|sq6G( z?;ItWncO1(GywK*qroNfcq9rd%HOl30r{u#s}xR>bOb-y`QWg3YVzn9s4?I*b@&&> zYt-a=n+U8i0mTIhHuw?FhJftyeUTN7O?afuYQmeXgCMRI-$Jy+x9J?bzz04|A4}}G zo}=Oo>0j}vX*8W_+HL)e(-uvAiLxmdEy(bM5-O4C_NSW;0igOYUyVW7f!#DB0*&b2 ztNqq##%D`}G?47s&wy`b0^BV4ACLM3L=NYm9?1ohEA-&wHpS0prQ5`MRIWc*oG8-Q zPioXZgQ{*HcBXewL*&-W<1EqWGF;i(vBaiRzMlQS8L=o1Y~2we!hRGz-9AK3dQzt% zUs5Y#lqmLmFS!l3cv)nzX+|mCcMlPwCojV`DHWDy0oOt+V>hN;hGG{66MroAlCTRU zxh$G#c^=8O&8NT(EH@}kd2?n);f+`R+Pwi`IyI$_RQmxvG@>G+doYajMs`oP;=;#al7P6vz0Ax3r(@jI9!v1@BSxK*o^O{ENfM>p5Mv(jOm}4$f z#WB@-RDu)zJblg{5}c`Y!hNj&d@z3GtgRHI3;?zy@1VM&n8EYW0N0&H1mJugq_~!^ zsfsT;xoY1y&6U1GzYyD)UyZR?=@W~#8JFF2>y)!XUO2qMP0RgCr`8n^JDsX8+VMXa zVVXOtnO%5@ta#4`%iz`-dTJ0Y=8a7N7$`4tf8o0Ds>Q-56_MyG+95* zzkI&EQ~7i_zMSb>jQV0zO64SjUR}WU)}K0N@gawt;Y*B&RqnjlPM4_>FH=V>KIDiq ze2Ed)UhF)7_I&Np{-YN^ZaQpHlyyj1Yx(Hv>|!ExtDke|*}va<{(NVDb8Y>vYd?ft zmRYcy(QtT)8@I%wT z&aW-wASima)cSW^2Ae85HX{? z{v1eyJNHD*Cq95~za8}7@z?Qr?*itWOa6X`|G6vw>E7i%?&!@$%sg?G7|X#lsA5)p#!QW`dq^yNM%liiD#fMwQ>NKDdUMUn$Hv~Z^|y$iL-$(0pg8; zFHDK@pDu^OQaFktADFPBud8-8mV6U1pj+QEmZ;*0_NjnQxPPa8GDL7R0w-6TMd{}t zv>c2%5Pm;n+L=fj{s28oIelrIA9kAz$7e!2yNvcXdxNvZCpoA*SL)^_WJVqoNyaR!#;&8#A1g5dN>gUqyNLm*kgdL7c zHX)+3LmqfHzQi>`N9*CGa)`nBM+ThWdcIe3J)cx0wa=JJ=)1zu-q0K4@ZJuFSL4&` zZRr&tZ$wLUBB&Vh=BD9fNLZAHsCJ)lDw_hq1I;g6Qg`#o=KjX>XEb}rp#&zdawBnp zZsY2t`8MxEydR}gi%X=(cHT1iy7@N@v5<_td203MW@+is4ak8AUX%>)qiDeUOWAo7 zKU=sgB#SjD5g%vw8Kflm-tAVkuniH-J%YepZM2#iF5q)#ASAeAq>0hQPK$SaYm*x@ zQ*!rG!i}wU@VeOFyX~{V`SQid1!CpC{jRmgZTNX(Yy0W*pZ1?VN{OL;pqfh(bhY;a zV7Y({*grxz*Hu#NyuE|W3Iwk+hb4Gv5YFMscdPdn_Y=@&-6Djw@cNU@&=mO?$#i1; zTEfp#`u?-JOoca*$U9((PJ%|sJw3JCS^FsEaL!_g}-Od@Fa+5d;E2yrlU|-!r(H)LnuXs=G#pU})ea7)K ziJFK~q1E1$n53KdQ8qS8LpZCo@=x|~qOA3S_3)yA#p@`Z^iLr}Q{7Em5ff^UdkHQS zq&n?g_m5Qd&o8zJzKb9Yg&Ip+ea1U@@$tf*nTkFIXQRc9B9_Z3iL6sGY}Lv%#QS16 zp`o04P&PpAU>kDs%2$zi!$lZNs{MAX3r0r|bo+Twjo=Fpz_R^ko9p^*8o zC+$N&@`E9CJga`{OXCk(gBm}t%a0;n=2f|0V~X1K(F(Wl`+by12GK@Zujr!FTvC2N?i_77bIvwUgR7H z=U{1=qUdg?L(I2hnv}3f`$Dv=J5>QqzNUC~-Ck;+Tbz}PRPvH1GZA1a7f7@>B|98( zassQ)^`a&vcFq@v67{w;M_PyCTi0z~6QRu1Aq$p?=K}1eox=EWpJGew#LmraDC9vO+US@^w6fJ;{FE^RdV>?= z%hR~lYA8eprRn^_7EaTUyx;1*<}TZ$94!zAfgwW#v5~e;d+iuQhGkMv6){Laf!k_` zMWZvluSUq840$?uBPpkXuOgWeXb>|=0bE66v?S13YT}VT(?~#ZpD>h%5vlb)ayj-1 z3dyd9ziT!&U{t!d(u;~YTqJBx9I%E0NcZt}X_VlgEkl>D+~W!wj~$2BbM|5z4p|ZX z5o~f`sHA}tydJg~!7Sh)HgV>yQ=W!yCYmKf;eUT0y+<6l*w+|x!ujPfh+=}! zGJ31?6=T>=Psb}KBcx`J;T=5bLBZtRJ~5K{7?RxyITeT-s40K5-oc~(4vxo^^xi2B z={rPTw0N=5Y3r-8usgsvSuTNr^W4X}L5#x&?zUw*Q2Min(z5+>Zn3LWB+9V9xGtDR zMD={0ORWp#M`qqg4&979&)(IH_2FCJJ3PcK z)Wq#CGP25pF9b>OGjca*tRY&yhPE&WYEnlDAv(SGULn)jIu^k`KbkrPhK&%dJ3^ac zF_LI*ar)K3)}X!Bvo(jfGNvG#Rw~xvT_<7hB0XZ_G;#pnYj=$) zh!c-7$tAZF#aMF&j0e*hFa%c8B#+y>8R4@}lk?InE0tzGe!JVgK*h^F)296kBZlF85#%`c4;0%^$xTOL3dvC z4i~``sgh%3aE2`Tk;kT?qx{%N*!(_bDVG4ksRGl+i>+t-+v`s@e%xT{S3vI1d#+So zk{!=XTC;LV!7TYav0#v@G^5N^^6-iFHj)ejrfPLTSEiAoEg_$Fths`A?_$u+n}{#~ zUGMR5B$RYVL_v>K4t=-U`Dc1El0!6w=_nB0yfztx);B*vMPQW5*N|tiO19tYsiJ50 zMD?jKv4oO5^lHtG#DoM$X_v2fA?rwGa7cFYI^hK6w1Ca}D3S&AEeuO4UUbr7)Y%Zx z53<4<7E%?`Kt-~ZaungUG98(GbdJIqm7iy5etrg8* zg9uZ^bwk5P^G49MKpX;hbX~ewaUsW2imG9E>`@6O=%vX_K@tf7$;4c+E;7VUE!$%h zbyRkZ8-61;|3+TeEFlXc#4H|O9lq&b-V}pXEXqFrND@D>ubj$Ay5^WnSmmgL)Fz6dr~a3r8psYSaf`$R## zaDQu!OyomV1sx*~aStc+B5N*40_}<>C$L6IXs^MbS_M8qpow#?<@E~HWUm%gv?G<8 zBGNUOR@yE6%lSw|yH0SwsUQ&iZi~2`8cfg`EX@oNgkS~;Vv&C@i~~caXM1OJmG-a} zKS2`On%GDE<4u#5?c+GW1kM+xgst|`IC3ze#G%z(A@Uf4cxYr1!2p&%ntVRkAR~6s z(ku!yY!2fmV#o9}2Q%zd&7*D%#r7tKO(7}~9FtL2B#bB|Ag7rAlOLgaBO3+KpkWdK zB4LQIxq*=7P-fW=m3wHGJrg$hZgvyfc;1wNw`YG`3qx@AOf{~Vp)fEC{2O+F) z${r^EdXBYyN#7&fS^a;#x9^w5mMg}@+N)xxDyK)@kRiibL8a&?bCkeXGcQLZH1V>P z!rMDgnwIYdEHM#k{t%=T6Q0-TgK)eWL5OWftd$mMP=bH}hzU;eU8A8W+CYWmMxSU! zSVFOBI;EN_*;rC_1={R{@6^4PC9|-s+QSz=aF1>_NwA4YLy^Bnx*DmXlhxfCTL;J@ z4Is)UgdI5%=zt|p}Dp*G;@*vq=JZlEYBLeuY<;eoCp#- z!*I?S(*?Q0Zj)G0o`K_(8{vu%qD}4zBE2z3Vkr8T!gAUL7IWa_N{mSwg(IS`Fk}aq z>Hn}GFdlmLkvG?No?v8}9{AyA4_Bz*YlJju2=xkKDIwO;wFW(f#i>Gjl%o2sbx*_8 zypP>)Oo};zHp1Y44FUSdkY=jpmfOg_COBO;}ZY z1VR=8ALy%w+*mk`1>D$QDoEffXJCwEqL(Iplt(BL;hP;oHDi!RCv%?6Z7-_;v9Fof!75uBtUFUsh)KRFsG$*cK&=6H-)y z9OmsEO2w6k?VLr)-ht4HVbXR|?TJQ9S%)&JVYar~uM&z_PKI27I!9kUeNF|H(7zC+ z%7~w^+3;NL#Tf#MMq_gmLZ-v=yW1*fDUY&UTfX0y%P0FCar2PAD=7I}>{!>Yhzy3Z zFub}%s8Y#88x>wG0o@hWUX5w;o^U*D)`8eoR^i7z1ZG-f!df&Nb2|-G45a&oAt>Vu z9OWdUKF2fFtTp7i;j}~Tm{W_JsNT!Rh%80?fCM@Sj1dvVPUQibp5gYB;gS5+-URdE zb%lT`Q)=|#YgBQ%+~+l8-yNO~@OVG*Mxr&`=uA?9JYlYiu!=GgllvMlmW_AY;4Tcg z*&i?lOq{_kbm{vVT#go=y=TMMgTth*+J=SS!l$j1QS^}T2@w(FaEKd&2{1V+tZYBV z>Xr~cfsmE%KM*MugkR~+W7`!c!)oOhAg-5isHiy)kc(iE?c~`f@FA?F}x&r@f;Dlt*4hD6UbYE7elPUz`yg> z{8!_7F|i+C!9mm~-5?UK`;AlJ=A8;`L%aa41uNh#aMmbh>iDhaTlf!bPLM8OJgMwR z+%Vsaqyy6U`jxgffZdoa;&VdK-TXSvk&qpjisoA#@>K}g{r5fOo%XqbjB-OJEa*RC z^>FqC8obB^5P@KV8Y;K?7cG#v)@vkgBgY`b{p5xIlF6k^{f|$SnYAF0+ZNjWfl#-PCj(v^-4yo9 zQ~sX?f5gJcYD(BAAUHIgeAgn9Yj<@D2;p8)UDR{6E=)~nBsE?k;8mJHdwLTsK}=%h z9TG5gI+!ek457VMk{qb8jT&31#WS58RXoY15X~(Bp$Q~T-zSdGa3dC%vT-cYBg^w3 za|z=T)(xj!{k`Z&Ns;lv@s;Qv$M6(hLwwiE71>LT2viC`wvoajLMlj@O7wVQg)*i< z!lfdAXy>jz1zc%y;JMMH?Usng$W~I=cqkS%{{)*17}8N`l2GaCQ{lL1l{VZI6gT^a zHLgLe3T75O)FlSq)^5E3p3P`{L)4U|xB?8$zkI(IegfwSYVc#I{16NvR>TW@jlF_V zy+u;K?0{j~)SZG5?s`u!W>jIP*s!NR6iy*p*D6L14}=YZjcC%8QL z#@~x8ydqPiJ11C{o2doMW*LfEJKX7lO@0P%Qd0d!%@A7k$ko&z2fW&ujvwNKx?vbu zm)1ZsyES$uu<0}T3{N5jv_e$WVB@X5&yy z#8gG`3;l@99sWY|N;pqvx3_$Jd-=~Vzy9^B(D19p1qtQ}59F%u@E2$cf~Qc4}apbF6}YN^ujR&5#m$(D+A+KbOwB7 zP4tg21^tsi`-;_oV6o<>a9>I#Fx>zjG@Uwr=STR25EQmR*$6JA1l|HpPDewtzRF&H zC1#nS-tU~fQDNvx5=H@%;KG)bao{2T6R-wrhIObvg430sa29eSi=PKRl^&;KC8DH& zhBrn`43Jp zo$jp%i}+Sz$rc|h@E$iVksx8c7j^330rs)|`eYe&Tb}RU!7WcK;jg>cxfq;KnV-xo zb&l>yNr{F@tW254!NK%t(8i*(*2%;IXS=U@%m0ldw~wod^-^Nqf3EH)SvXIL@*yLE zDbmc9=iqz@^UNunbw@8ory2S$&6S8R-7BIaGcuqYljmXWoQ_aWUSo_8!zaZbJ!L66 z`4XkZkWteg6mR1MfeiTxjth~ge-7TD6ax+@rq1t4rE&ee2qoCe8(R4WSleg*#9Tkt zQE+w@~mU2j1-E&N&P(GwyWYJ&^x6v(8?zEB`T3v)Osv+9#oQ;_;QiXL%$9$S52f0CgD z3uEJ(1wmuy*(Nsdn>QY<{QyG{IW`Z0R%Wfp*%S%^VJ z&j-iIw!$N_yTAD5KL5b(@EP*cxlzQD&VnwL?Qj%Tm>mpp^wM4y_$75Q7Fs9c*1sKW z+qjb8tk>~AS682{{io(9uCb$JhU#&z|D4C&-LUM+VVfKV^To#EQR<&l5J5A7lP`FA zK&3@u^3jFEXE0TMZhj-@F(mG~59Mo#k+YleD%Y@O-xT+s0boW7cdZ$T9)(WdUHt7E zOJ=9$?Rfi?@24_M!d}lQF5Y213t7yQN-*a@tsg$Z6Y5Y zF(H(ElNNSQk9V}oUc724PObvXP9m18#3N-F+|h;!CBrO?BZnbUlpU+LRY!Yx{WRRe z4p*W+#3*u_(|%~YPX0!yqOZ9S5`THMyY}qmgC91ZE$`mB`^`&S)VoV3{)4?+3nHe4 zQG`hNQ55`iAL(5Cna)H#po*RS3t$G=;!$gR^U;6$#&e?QSaP$z8@0-0F+# zwwH&aW%20G1JhAdqj$ur7xrF+I0@A!3}#*2@3l0aB^Pmi3KR#P%;T)u`*@1`D)nU+; zQ+U!Dj$$E8wKN9xND%3RR|s2cVcY3sH9=WER`vnR14~!&5|^D(}EH3D=I@ z=u;u{2n5udF}z5+C!uABOp;g~vG_H^GArK^<&FZi!`0_nE(d89P;L?4B^(dj5cPl< zHUSET*b0^<17o^4y+SEJL{iY$gQQkqY!~`PJex4T`jB!&5hk;O`1JwqeI2jZ*WI%t zi8|3g!GRAELw8P#9eSG=nMoK#k!0GwcFAF;EZ!x{~V2D65NLu!Rgjw3}1Qkpf9*2ni7g6XcR82)t z41yB}!;$O;wXGl)pvsHJI?}plbOR|p6j~s)z1g7|%A}QY|3U)|xl6jVd1;rj$GV%+ zt-YMsbJC{hJnnHEUb?kq1h2{^t`EaiB29BoM}WOXVPLU?*&$?!*+AVT|H(&UNR*1c zNoOVcp(qBXTP5s;tb7PGU=${R z)nh;x=>0Mb*LGmg;sD1b@Eb-iGnn@f_0teRcTTK^uyRhR0`>2t;F--`SpZMd!dR|@ z!p%GSi$worK(__}Wo(h`fW6MaZx3U$aKdWGBUJShl?4D;{WF=BgZPU;fox8-XJYJ|$RuL~Ir~>dYXql{7+woT?r9GKxW=4uJeNZ*UjH%6O9klNUTj65FJAA7kCvM&au`-4l~dW zMGe{5f3$(iy4F!p;E|+P%UJg6#rDQl@}Bb+B(3chimN7;bp%!DY}JB&u>3NPk!uh% zHfw80?_!r&0mS(Ix4jWoJfQir(|&){Ke&3`1)=Zv&REa*@zZBJn9$E_&z{O1Uk{%@ zf3~sqlbsE#5Q0*lsE)OFZaB6oDK?Uqll6xQDY_9fDNcy_WP#(G{TLH$1KXBUWV=W z?#BM#*0z3n`qK|fEnIBI&9J{cmz(M(ZC7y9z@mE&Wg_4P?s<|jzI{-4W}-+g0PGP6 zm6rrGV5B6f3|_;JiPA~?8J@UN!GXwp zB6MNnV_?Muj6ul?ETw-WRV!?&6lfFc@v6$Y@b6fZdWkMc=$D+$;PFZpf1C714~=E zGw4Gx!FzRe>!D9cn2dngI!vyA+ck@oXTPxY3N#=cqIF!XLzb?<<{B zLObg0?(eTZTSI}8eW=0u5Ul$zb0syyJ#)`^gG|^rkaXb!;DhcHEs1#!iwYgr`%kse z29h5BhBJ%5o<2v{;xzM{b1>9db|3fS~R_*2W)mdU9R*xPRx|49q@jJPn30a0IF{gw+ zsL-T~qAK#Ie$DD&0XQPY*yrk%{mrhM-5=8^-4SNA&x9mdD#gURi}+6n+l{yH2&n

97ino2N@Kc1un~_JJ0y+*<&Flh^vg3Mr=z$=Cg_&| z`qnOBIKK+UhK4S#&T)F)q+i+)7Ck{*3;!7d2$P1OI~Z-?mY3@=am-Wzfund{sLQUpm&7qC^<*vw}O?zib#aB;x*|xK_j85Kti{bY#^eU-4hLEhY9Q`=ZoD zu&ICay1x#K(^h|cb;=kXgRp+RVQ(Rc10eR9Ime4HQ{L^zC~p!rY7@R^T3l9F2jjm1 zn}_eHI&;OiNEuT=8Q3!nM`QcSw*2@1!++yfP@qm(M<|_C2;0oN;n&NfWBiB<(4ZIC zbn_KMNi#ykOc13iFal#r_*jLRa1eN}Eea@-$shI*k0fzQ!u70IO4LqWBILM6gH2Eu z9agm@XY=GDU8J8t+w>_rzBax-KTOHT@3ifEIddaZKYa^G=GYL=ZQR&@COUw#kQc`j zP>T-=QzAt|Ey?frEpo6>m#q_sII3MKyIPdMjC3b~2#qLYA5n7M4yk`p6`PD#4Zt_$ zQz(Yh_=ato1rfP8Tmv1 z=#dkm6rRb+%2>qYuL4E#P{i?nT%Aj)gUNmC0_)m_9&z{sJF|0_%rW6#fv6e-s@YyC zc2ly$YNvsukPsCvr(YOZFR>A;iw|~J_VDkeha=_mDX~XXFH&2xODkw!?_ENWyr4hu zsDIk0YaG|UN|2my5Xr;uDSe0pYP%R@S>0EF%%vaGSo^SpRu=qN_BMBj)`eck|UQ_!G;rOV5k2s&DfCcvzIgROp(UXft^5`4Bz%~n^p|N3-u|Izb2 zMzir!QwV^ZVjac9g}VLzMd!|K{oiwlH z?k1s*i0QgMI~cVH36Q$4$2>b24R<_nO#fuh>3f)DGH@rh}lG# zh5uT)8u-LiYczw<6SZ+K&AAX=fuP4cX&yG#K|p~n_%NTx)z~G zH&bg%C3;nf@OH?YzEcYk(yq_J3%_ekMj`n^*ZakSf5r6)C1@0djZS{^FGeTBr?U>| z(na`CafIGLbfHG!h_48*#;9gMEV^!3oWWg25^8wwbrj-J9A@*egO6c%|SK{04TV#1EC%ppgM!( zd+-lkBe`u}d1AP)qULzm(&e}TZYBsg<1tB~#0*hc1L+Hhp{HN)LR+}{F7yzI2oRn6 zM<0LyjU9)bPWsjj`rnOau6i(c1_#^ZjjnRN!{NpC4m7;4efyu@~=c$nU9k)pO*g} zXAh&BtOV#&PsqbUgoXtspR7cQw;iM=Fa$!K8_a|B$PpM0QDTUIwrnO}Kq6~rv>iR0}jdMtO zi&CY|7svhKu}?$CmFeb#nC~N-9xC4H79q6?8WUn-(wQu^?%ck6ul2S3SWLte=WNH4 zLzI7n#rflG>H*WlP)l@6R|2e>O$OKbCDL+0(ue#k+lFj{2g;$)e12rY6eK?8m zjrG3`l4j5+4COq0Z=Y2tAJ0aR(kvEdqGm4#I?~dF23PtHxGQVnv1$}Ul6^N!q4K1b zyVMlC+kQ`=(w6KiH$cQ#gqV#kkt;*Q3`oX+@r0+M#D)5l zT=QYPxrG(@D@J=7sZMO%4Dfw&jCG z(F-MB34f`Q7+Z(}U$J{ilGrLLacJ&kY_8%#{2O?J30#gkaXs-RA|u*+dvdHP3lNbB z(AzSHbl%yVWe9@?c1XTUmV^-v@^K&%4y=>#XU>fh8o~+zM*=Y9cVRpTLA*{QhywZ) zrXoR}J+wHbm=pVDYzKQrpYh>3Z~BvEGrSS^x_8=LY#P>3j7tQv!&4kC7)`hplIa^e z=2nz_XjYL^d>#dbM`T{{dzo05xolVoE=0houU(UJ(eTPiC}$(3(i2RS!F(^Yq3$DA z#(yQRD+v;(^f5$91A+|VA}szdxl+E-OsG`0PG2wwa9lB%{3 zsqfha{-`-@f^z>HTEhd;hJ}(|^5g&t5sqm8IY{hz*o8=MU(`*JKv_|EBFi| z(pit(I%fjT`NL>9<>}E%@nMD=YFt{q?QI z2mIf!E&ubk!FwJy9SCW#p}1XGvOYv*yQb;I#R-%W&r%5!2T67DjcdPS%;Sn79U|!@ zMO(mV$~)r3A9{Flb^eBf5Mq!*oni4YnP)unz5{yXag-LWE=17QNbHLtLZ$>&Fb%xI z9KPsyJfl9hO%}#z1EJcEf5q7gnbes$&-RJ5(+2_-=~U}C$trwUS%orueoTa*-ViZU z5d%c`6fwVkKLn7X^XgZW7+lo-R=q{}K@y!Ui$xMNXAr5;CD7`EwJXkcZ%bhv;)!l? zLQwSyLdQ+{?1p51k^LQboUHyc>R3*KS|hG78o;CZdK*s5sI<$OaeZ5tIT-&)OeN08 z_!Gxt)y3>2nNFnm-A1g6XCAf40+#__ z;{G=;ZZJlK+Y$Y}6%63Iz};v+m-j+UQ*E8%n2cd9ISXTP$%#{&Kacn}-Xni_glKHU zv~^^eS=BS2xkdDNIxaH1j9l74V5&D6hu#c);=LupABLdYME%$_SFuFhHrYh-?Pj5jt<3_8sosyKvTQ1Q9p){sqUph6XVp9TnAwwwQsNx$wbWC>x_JZ&E8k^=@Z1MFC#NG;GhU= z@r@Un6mo3|DW?rtpfmmvNNzkH3y1IMp^wYOMy|iJ>XSYJ5=b;Mn3v`u){Z-W z19odpkiX0wp71P3W1>tD2xUGNboIT>ij_umksJekNK-Iu?SiwzcVW{@<5g96F<7Os zvcAdL>E<2>cWr!=Y+nK+49hrf0?J@uPpYHYlW1?gPUa8X;rh5}?NAO`6RuV}4;T<9 z9FR8j`LUC<6*`vYQ+27RJY7@a;hVriLZdh`0`-xLO6j?h2FX^)QQ<>5E$K=Vfr;jw(SBCy?aBb;985y>lwaz96O|OEn%u za%%K4-)6CfkrE&>&$)dh4&=$%T)gY_QusjPDk(x%PF0~)oD$@k3d4h1d`*N zkZdY!poFLV*@=JxFL7pqon7qE|uwen1VyV_Jfb4~KmBk0}{djHE-}o=w zk?Ua^n6vf4BWdo5GO*0&rO{`8ONTzSwuF>`7F2va#A8$4lXAD(w%gX*QK`qm2GbSy zt`1)gsZY__yIXAKV`hz~jHzvXOs3`gm~#LyirQfNF0OHzJX}Eh(?OzB34qZ*F$a%1 zOV^z|PN#;)bFgi}d}Po?6r4C|xCdu)1CfCm&Y}1QiUY!x{0%w@k=+%|DBny+m|i?I z2eAy1&uAu++=pfw?Z!%>sdcFeL841KR;wy5-dI z#m9*lWE~MpoPugcy5pa`zyl~P?w8PV3F}tB7KIe>zoLXgc$t)hAj8z^3AmmFf`8C_ z%)IKwBSDJ|2yEiU8@rw&{tXH#b4lBnK>*-LJ{0_v>JRyI7Oj4S+Fn}FjPHshpR`s( zvO-pgS;AG!99{@DenNE2?G-dXi@^isu1GFrd{|k=!hDp?p=uFSN?yBRY*?4XhrT#_ zVSVw9{TjZBtK-{aTr6T{FI|kmHdqyqvwisH@en~`7sKc8&QWsrWN;yI$ANihR9qwg z%0s7C;vwdPd?ZoI-ckFwheE}xNS8E2+|kv+V93MRYbtpNOgG=}!QCj)Q z=KjX>XW4HS4`_lucL%&k>TqO=QeEQ2__YvOZ03ZjJ!3Gcq*RTQQg}4h%05I${X3$C+#uw2eQ2ujupYZm zbNv*e9tJmN{wMF^`PC&P9=s6929ace_G9X_jB2E(Gnz7eZ1tBR1Dyg!Xs!jxA;hP* z$^~S`EIkRGx$AZf3_C!vB91iI{t9irg4+#MR=FlT7^7bJC0LwZ2*o$0sh{4E-B;hg z#MN7?ask)(Qg|JYDco|<>BDQK`*O7$ zz~+RU99YZ)DOd$hd9@`>s_2`5mu*^z`y(N|Zs3tl9TRLreD-7CxZ)fwwf>YYq1aeG zDMJ*AKfKhf<$$z&R$v!)-l(7-Lx}P?TOiirUjP6RekoOWGH*jUTRp0V7cz?+&H*iT z%|>z$vzaRRgj$T{kV`kvXBbz>UB>1mMb#!K9 zJ-kjibVPJ&2wHLOj>jjUT0+ad-+i_E^499^D_&=LOD?J)CF4FsJHTFJ?6>f3)oEHU zww_6bq}<>KmQBm$;2ace0NR5g*#P%BXlYAf;ysl29$f-xX9qy9-Z7DEesx~Lnoz%U zo{awma*%YsVC>)b-}jiN+yzip@7`UZn8H-af8cfmTza3smzRJlD}3T!A(|!LA;FSD z0Z#W@lthLV^8(7@yWvQRYuX(PoResm5URK-Uu1NXka5|~KjuRNw_aa`c?GE#HSk($o|cD|_#NB}cfs z330+900-)5-HW^En-~soQj)zK0?A2Q?C`1BD{jaR!FO_XupF9ETeJuU)Q6;NP68`x zprxSkYcwhDX$eDEZGRYCKDj!0G(2OO)vf;P{(Cp+>ew2A-syfVH>rp~-~be$Sc;A@hm6Fb<(Hr=-208Tmw9F0H%)CP$o3123i^V!ey ztV`YYmJp89)9?J=%yfeGu3eW^tJZz3l3f3T_q)&3i7!5@!C!n;7WOO|Iv=fhm=%|Vg znp6-OTzmv)CcNtxWBx#WC5i{UWe>EKR~#f9>L%*0P%Z!$AKBn6(-9B{+`My0+JY0* ze}_unQnH$N_}JNxE5Hr+=o%E_zj~YGZ3*WRVJ=dMx|2V>pM*-B$~8vhsJF@Wi{c7` z-f@&!v`Bz&$Hf3lI|H~GXI^FC*e^huACNQy(t=FXO+j6hDx}kN3S$dhk)wcOh6R)@5TJ2Blq{Gwrru^yZESGY z2>Tbb6e5Dp(`BmPfH4a0DCw!bZ=iOHW7luntD$4|0r|6REwF|8CT7(`ijvZ;c*21#YrAW^dC-1A+ql~wmI73k zI_Ld#eO%DLj%w-(Ng+K?r#v*qv@WBX?)j1F3$P40kv@v+Dc?+GDZ(qK;R~<+LQcBk zjGc7iKmpb8C~gLDgE--rDW+H>leg?|Z0nyAv z3Xt|6!ckftj*dlWsG@Mzrh9!~GAzl!b0SSqU5B?i>fNhh!q}? zQyYl~;R@5cWZ0^1Ren$`?9zGq@w-e=P>+C0IjPbNYfGkHmGep9R_Iw}%Vg%Cpm0Tc zD~=QTNK7e@;$lTqq_GVw!puKFrH0FkNgRTsIE2I>G}2&C5N?ZkwaJMiQ449BKTzO} zUs_%(+(o#?X${zlwicywx%}(hDCr|I#U;(u)4Q`j|Ac*L-Y4aFE zjcc5sU%7*^W!Xx-I2HM+BBGo{wx)Il{%d!Ug;oIIsspeX>}Df_-m0hz-n*p*haCLk zTLL4DK?J3!5eaK4G_0Z9X!L-IN3JFAHd^2HamVWe^1`rjBn{uK$n!-^eX1}LZt3FJ zOz%Y1ewGM@y+Ei%61Jfx%$toQB4~B>$Mx+;n>*_qfGfd@5LggSj>Hzk1$D-6Td;`p zAKxp~69u{za6t?~Gn}bvA8Ui|b2zTn24mjZZXIr!4+|Y?2ttOj2Gz{XA{Z?y9x4Y0 zW**LM#`N#$ci7wC}F zT|{=_;%FU6Xt*cAgjw61%)gFb9m{=%RY&g@nsEXvP3JX>JlS)3Aq;Q z$t~u|f9r#Ht>)v+ms=oaxH5EOXYCP+3cXt2{b_UiZ(t8_#>HGFaO2C`lZ#V$JnN~P z7l~j>)dTen*DOFtY@EqrP(OTdXcsJC_3(osiD1y1z)}B}Q3c)pm{DWhghIy?e*U$z#D8m`+MAnopIw}H;qTD4=ZG(oKdpoM zFJ=vt2f(G@A0O%%pqE1c;2H_BVR;hO6e6-HUST!(H{nBB#%q!XkExZpO(=DS8gjZG z><|eIA=F=_6}asd@AVr@RFjJ`PW@#4(d%cm7-Ata8sYt$-3vJ*Ue;zD z(1yo>$Iso_VbK9XGriRcpgLgg1vEhoTiw~EB?X3V2LG+dp<}+G@)*D#eXhj{D$sj7U9)Qn@E=O}H@NmsO|Dji8? zEW=o67v%whWX|3(t0`UEe3NczXqUdD+!vO~xS{GU?2o^C^VPeD&1C@nxcz@F5aNWy z27&V8a&zG~2|@Bc7O$a`*tLv5qube?^6SNG0wX2d3FnJgPhvwwqQrRu&=9cxJ9caz z&4s8UrP&9j5k~G@hTnrmyc(k1>-!yC#DK8MQSa$#=NL$y6-NkB{vj3^=@K-V#Zwgm zn(Pr0$FvWuTb7u#_JhDP@=nhsw7WBKG;CRH2O@H3`8IB`Um6|WB1w7heO5N0*;rZ{ z43`kJ_kL;Y(^vDKEuR6JWVJy!nQ!^yS?ib3X)gZ=fZ{3BK37+#fUo%zuzPg+zVs&3~s9f?GrThJ}nI>!m8epn-nXKYo5DBwoLV*NzFecWOSR{~NYl?KV+PHV? zcH{K`a-2rNbot5>buI={Tp)zgB(I=u*%diVWefHTv=B*9`qqudQ7sXyl#tRS4^AX3 zn-@hT4+tlM9Xldr2a{2NURguZI-$Y|Y}IIx^Me5IQjNkKRTz1q*0e{$(x$3ZA?YQS z-P#VROGF#RBCB)p2`X2zjxc9cC4|f;<-U?}X;QyjsR=3vC_3qVP!~LwJe*xML9*9B zNPQtw$)-@J<6KE&xr$;EYEzj+qy%5?`{ofWK{-A@g|iA5c_Urh6ulIa;i-hwMik~> zj=L2J3If#g^|dDrm62BW$Bg5~Lld3&E#NOEDikeG(7>NbnM2ArpQ=>xxFPTk$6N&e z#%PGJcvut>5q{K%g-fasD{=X~+E!$>0g3J4l_CPGRt#uXz~Ol}>~}Ahd}^yjIm3zK zjhMJO`aELL-Q`RI66#Ymd_3FOZSSsczub7W_M*MD4YLU&P{ihOOLYGD2~ys~R#Nu~ zjvkr|eR31|i~-kn{e8avG(fO>$PX-Oo97&%7Q~XtQKvw%h+99#gm_L zN8yW&N84+-vSe#*_qjKoCAmJUrVc#Ll7NA+f!e!747>btOw;)%Xk5$%gkj88Cp-sf z)pRq!F(f}|Xb7+L5!1%v90E3`37_+mG{fN!ohF^RQ>R%YZxzN+_u@x$g34QV_RDfH z*i=C~3jx23$%&*&Lqt_D6_T3dHEkoYExRS__2_hU)h%JInQ{F$nQ$bxy)v`t2sv^{ za}xUoDxn~MS!*RB;{AIf-YWo{Mj>c)V)rP7uf^e){CN)ce>q-oGjf9_>Ss0IcfXXHA4DD;>@^-%jNSR4$#OVzO!k;8+Zd?WTp_g+cGk(zcdPYaCibto66cxKG#BiC#lH*+&X`7|HB>tBSj9#X$ z;L?G;`{`XY|Ni&C3%QQ64*(Dfk|i+G7=&Wu!4L#xR4%yo*-LpmMJf}jD_o_Phq964 zix?5UkCMoPF*7EEZNF$ctr!ThN+9N$KnOO71WpJM&tE@k?{5BW{Z)H={n`58aS~WI z9HoWT{CgW^!~c1FB1MSX{P)_@|7OkMH#eC0hs;5Qo=@@@(7~}IJhZ>Rsz@FU&tC1H zQlY$36_JP22(D30*x8?FVfbZj2W$74s*E&Hlf6#7Mx6`brSYg75|}_yZi1Z{wxLQe z%m$NQz6Q6)N&=BeL4x&D02)jdnz-WxR<&0!ZHQs?Y?{jbMWlwI1$EoP42$FjZV;jKnP*_Q#gELWu+=OkHeL~&7_Z>4JshK&Sa1COpSr#A;i!Mk z)a>tt(IwoY`Q;r^P;UUavIrcR5oNr3P&a>qp|e5XIqlTEs-}VZa|gJdyX^^eOtq29 zJG^9QI5_=yvvERG-$@Ub3By(Z&1Tf^;d;3aejz(#MpzXWKYc2@Cve|O7nlgtaw!8q ztKt$zZ6Lu4n#=9Bk`u=)e{iPZ`QJvGrN>A-HO{knd;V03!lJB7RbcnHXT^3J^C2^7U;jM8(u zM`PWegV7MUz+GCA6P#=lu|-vygWgH!6h2{K$)JI=OQneGz)B82qH>njGLWsSN7GP$ zc9$52MG-%6JGKN#iRyHIiUj_~r1t^J)j(^~5=)LQ=u?woI@w4lj#t5v;1+ubOI?mX z!VzA9lxRdj1J{|#C0n2@2rjG;qAF4)9n3h4PnqG`?V{Gu5SMggApy5tdn9ii!;t`$ z43<|?xe=2sR=UH(6-2N0VbU0{kZMQw#S%I}(FBdxK1aet=eRdsKI{I6@}MP=;*~ZD zI5!5x!2sNCo8 z5dXbQhm6Eq&5dN>uTk$I$REi(hzwmPN=!)k5x{9CdnAiRrh};zQImpTjn+xO3%e&6 z7c4EH+RASIpB!Qf?MnC}8t!5S_ey~hR<2#w) zgX^;W74KLwv)Lku0=icAuqY?w)`7tRliZTU;ms8rWEqxeYNBN_L&V^tVoqp*)7D%; zih%WcQeRGN@P(xUGrn~&zioWKyB%6?S@Na+~ zYHQN_w9QYc+*Ua$1^+4J076(vVFMWf4piO&1?Hf!0agi*Pbb7HjJ5EvJyluDG15*) zGZDxLeiEg$7bNa`#9JWCqUi9IC_j-L4*%0ahispXng^{U5kv3 z0jxw=>0*+M%4`UC;`h>QhhrqBuw#acMwE+pUSUbhM>GZb6~sJeChlHwKU4CGPh zRI81zZfT@Pb|liZ_;HSQ!HQ;H?zZK)ppwtr_BGi&u^!kSzTD^a$#kx zw`_h6J0<*Tuqyrk=0g@f2Db;z#$SOAn-hm`{Lg;}^P$_7L);!YJS0pn{8O=OMe`M6 zeGfNLL`!`JM>8ir7PFUS`Du9m6g(6({)@9&oN*?AGw3NM*|mi4(i4{ABLk zRkA>4b}c=|zC8_34T(`Fn5|bS$&HgE9xxSAp2RNeKqPYOu3Ag#j9()45<7IFj-yFh zsD8W`@z@m_Rf9FouG&aM6mC#WR|&?>>MU(mb|=$SD29MWDgG;Bt$~J$qylO0y0^M6 z^?v1ZP$&<8#34rX?X+*DwR~9kN&#^_(@_ibacUi_ihD7~9q4HI4I8rs7cau} zaqfLw>|l(_o4X_b8XY-E*irS&RSAZOSNg9~Jjp3)z1v`na0p(}RUx;3lpCS6Th*P4 z!t#}vgkgOi(r(eaY7BQ1K4k2b#k*S zHJFO3{@-sz-K9%{(Dd4W@KF#fwszVOX;*vKhf`ygMLcc^PQ(=DeeD!>IOJ`>zz3_G zca8nVb;}sT_dCu6`wgr3tYQ6|0@0?=fw4ns426XdfkxOOmW~ay{W^->_8M*t`%H%8 z(7X6z&Y)NFHV4?##xtz=q3+=4p2Q4088o>@WqPdgjVb>RvUGPQlit}m5;>A;?APp8 znuYx3jT?>c8u!U>%r*-n#W`Xu=wo#=n>ginNu6+MkP+%A2negOyv?aL(vm;Uw31R@ zVE%!4(bJZ~7Ly7714Ov(wWYP;woRYLSF`;m;)j2`r)dtXR7vY&<*^Liw36iQV??e@ zW*PY(!RZwPjK<524Xq`v_m8|s1hs_Ilr^k+l1R~2M@H~*fRLe9N7T|jG>9+VfKWcKPgSBoe}1C zDuD(rr#556pk-baXbHiPX=U@xWS;Pp*=j(7t*PKZ?ZU-K;6>F`Ey77Xq5GpO@S;YV zMwd~B! zvG5t|PUn*k#6hZ3`>b%_raPaWNq~4t&Kma{41MMm4WLA$;rqmSspKRP{x7koAR&@q z3kg%sPAYPLG_y?QOST2Sk1-|3E+L!O!8%X7gQnaM#R+G0ceQbSxhyTfBUjOilFmQN znRdZbZ4KhtTq_(>bZb>yQvZ_1;@F{gLX^QskgNy!Y7isss(Z^P$)ReCfG|M$QC0qUrFGS>N)6u3r zKYztcPVgC8(EcPq7)k`1rJ~{h%+R6C;tk`lEGho;z|KV5G!-d zl48P_)Fo6LN7d>iv{=xzw2bt}5~R8=ysI0CVhC`EL~w2co~(;=NTgnJ8JX}nwckMo zjyzKtF~3Phn%){ZgWMr{CC61Iw>l%>S30C|MRE5Nq8QAX88mRQ6{zs^1=@6s-z!9B zvP^{Z7`L=f&8UFHtuZiGl;K<$3}SJ*bS@z-CEj}wP*?&hZt3E@w~ho+&$MCel*zyV{F2tc3{s-IRX1^(Pl$_3V1@S0aK zYM~5%K?BoemNv!o{-BkJUe`mw#AZo2R1T zK$)YRq}pkf+`pPVP%;A=pSCiOCZ3ig{z~~BThj`?VBP`KNG?A0R#+$nx*!b z(aEXIn2atj+s)chj5@)zC&LG*5dKfGk>UbRT-@<+RRU5V{vje|7592B;*mU~T;$Id zAO5iTkPVqKfQKv64qf8vxd$t#@$vAtvp$6l0iwpNAkUD+kHY3ozj&=T-fOaBXs=S; zNO-m7|1)_H({3WPi1DbHy;`d%=>e`RypuQQ3$%9gyx7&Oah@*_2GB1gv+f6UhvWvb zEQ>3at5CUtp}Efo5t>$|SzJ?$j}C2gHQ6JAN+NhX(_Kbk&yf(qT)Y;CMr^bd%1i(R zHhIO_Wvh;{!R#fi`zh=HJw=-1BBF-I=jww5&6#$7gV#Pi+{gcq9_|n1N@(o`xM##sFrhL>e;Z1>xbT&?B<_9& zA#DFSED0bmID}E?s+Gi&;5j%Bc%l6c;-`44i`juT}2u=v^;3M7HKdRYvO!DfqG% zgdqKZz#GU0!!u;MMEGpHLgggZOBjntCp)>h)89Ye-Q8l@uk~%br-couE<<{Q-Hn&)fTEZ{A?Kg^ zd=5LT9-K9OyteV`=_V)A5wV&;^ll!nv91i>ft8_BWBa@ZeIRYHvm^9j^>oS?7 zVOz4O>svp^0@1BRSG5m&qkQ)0_3`?4Y;gXz9Q1GNKjU*As`HZ({K_@&S>EcWCjx=m zJtNpQkSj^DMz0)->a_Vxx)OuNwI)|^Ivl>eIIp|{IU0b5RG!1AH(>>fBZP33-2q)j zlc{e}&qT;l`I*cfIHwX%kT0)fF%Y*!Fkf@YFwZk>fmKGO^!ct_nJco;)yh7&#UUa1 z=zrmiWs-TM+VTS4Qlu4`z1i2$Mj_AfWZY^d?O=MvY0@MRido=-A3nb943K|1l5(vZ ztba5(MB1Dv!SWsnw$P4SF1h*0CV=sxWvZ|$=%HbZzqA&6L~xhYR7#r73zPUum^DXhm1~a)0ajmNVq`#*@Z_?;GFTx_9dqLRTAi zko4G)k~O02;TjMW|LdXQ`z@k?;DrukN=_mn5Rc$fH9U&#iAMr8edN;`8@zX( zbG19q*S6Pn1KKY(AOEfW1a~`P>6?Gs;0-IE`2CYtJD>hBspZc44y7ppj~|^V$Y8DI zeIRqzGwBZB4^EL)pIGPMUKpOfgJCur>_)wRfM`V>RBgQRH}*PImolc7+VO_xA7N9r zg6OM^jiAL5(LSU8!No+RCckvsoG8}GUR?&QM|FhHtrg{HE8FGhNwm*;qvIaE!Q!P&_kyh47^Cy5v2e><;KghWxjFonSV?{@ zPlWWMRsVcjky4&gnHFDA4o5XY#yRgLpQ-6mEG3{@uC)nckg}2C){%{^?e(3_7eBJx zqgXrdsjYKrw~c#FlS#6Y8GWANzrJkvuLVO5=Q^jG!C~%*O~I2>%gaX7AWeyrb}-7T z`^$?DwO#{Qt6U(xa=s!L9N=s(HgHjND=~OjDP%eJ%>`u!(_Vjh2Ot!SgPkAM$d(?! z1ag@PA4kPbj}bnSUsVHvkwS}IKrqi`czJ}Vy+Nyae!?X(tZ)S?+*uFdxgS^W-udS1 zZz^S|bCt7o6nVb?M83$xt8jQt61L*#g|20~gQ5BrVP_-(oHfa&Uhyo?I5i`sVUcPKe1Q>KueB+bnLJ2Fl)=(vvI-D zb%LStqD*u9MK*GumznQlkdX1li2${YG+Ve1o-7bF1s2FN1!>%LusMb+7BD~$B6^?_ z24a*U{U!b7xKK45wM1pV4v#2yd%1bNL8Zy`W-9H_9qGkIxCs%Xxy*}dgfl*5DGEWH z;i!X1S5dZbkp)6}5D7-xfrC;oM`aKZc+o{T5h}D$hJoa!+y|?!#wO6r9u{P-K|r>!%wpAo`^{KF5&juO4qc5&8W3^+jCVdFdQct9f_x z@#c#i-7xvtrfS~!r^x;B0cFO^x!OJA<)xzr#%8i@_}%{T9)?lUaw!XwdYQjxtgkuN zRmA&C2Qz`ass_Z7JTxbWdSYvN1COU5h{p*}eJ#?D%-h)!KBc)P=>lz35bE}ijuNS| zY{!(n$7%$Cb8)o+UlHsOECn;YZ>ejVef752J74OYA{7Xf{Mu9n7M&g;Yz$SYXngc$ zdrf~x<16=EJ$ztVQYixz1!R&FXZ0uL?)yR2qh9E$o}lfW+7?9U(Cki|CCRC4SHEt+ zKkf5Tg25|5yJUB_MmWIoiLI3uss;dW+>)sV%9%trnOt1BR+jN`rCW+Eu))v-6LvA5 zom1vnBz}(31XJj@BfdcJ{_qhyH`7K2hAi)&4oBO#TG@FKf~F z{tGW6i1bzbjh7Vog4x^61Rk-h^VhFZi3ZJk(7wV@vB%B+(bAc9gUT6YsP=zL zj&$5iwF}YsVDEXP-Nu8U{50ay?LEv7V>#5nR4v8(G6OBA9`P9Z_JZr?W<(X*GGU}NUV5M)2tTv*9%A;}EYvK6tOsP4T$OAxO; z#cXEn;Y{bR^_jfx<4w(J<(gf6iBR8L=8j?C)CIxsaKFf|df0t3JEXZt;mWGBR>4;It5Cm#L^un_6uNT%dbg-es*+Mt`=x z+mv|c*0re5$-<#@f78HinqT8zf4+l%ecf;s?ix+o)#mrv^zQx8jIsk3jP(pqd15e5 zD*OsiAgn~K9w8#IuCipVL_RDsq?+o4EF%gaG#|MC;|+42oVYO5NW3C?&ushvV2odg z%sR8j8;#qh-`n=np7{-D;uNLk^XO_33e!mabcIVpTpupGlqqan!bj2xkOJdaaUuE2 zF;5sf7wZHonIOmu7%1ecW}^#z3AR(AIEsu-2wJws;$&*nUbt;;+MlpHP?h zN$<4tQRW6gCXR$3ai+lPjK<1&Ou%{nenSqL(yRYTK)5QVm5?ImN&t1|+XgYOq@fat z0PC)t4`)Stl?WP>(3hp%7ln+X8&HZZndDJ!OsJc^#wyl~$blV1k`5XD#|Sv4#7cb= z1de&Z4T#1)6uSL?gHr0)CM?C-3DDnk;#$+QdhhtRp<(Gf(#9+jaUs`tKEq3waP z*o2+eIV-Y5q&o%9t&)(31&F@0{5scm;x_5YOdS=<1u_Pg@B~tKV+ntOit@fcfJh}L zuOd_@ToZ|;r!07VeSZY65nu`8c*ZOWxY+185TXoo7H-6>>x-h}Yyn;mbvkJfN|9+3 zf#?NFlpKa=<5qLKci4lB+eH~9Ob{4^Ke;}z337MrH10XR6_7)z70g%g>C6F7ml>MN z?>Zy!WJVN*O1fr3!*0nQiX@gd^ewWMvMXu_ovC5K^dQ;LVl5U}=30hI4XONs^Gn|h zWXEhf3*{#5cly2+AHg}83Prv55{6hGDgUicH3!-Up{GJYG*NdYuB1bdZQXc-;O*E8Q`Nx6M&Zo#KkxY^bQLa9h!Z>2mC!iZ5*yNmE$jZtb4Fp#ZKRhmTEZ8B&#nwD-*^7K2<^FRMtwk>%|qH_1vJ$WoMFGse_2vDtD zjj`tf3Px>lXiYhyTK}`?v1#U*F(gw{Hb~ z_tOd1UkZ3r~dtSC(Mj=H4U2=?0{!9p_#r7cF zTx_R8N@@;Sq!F4~EhfC=Or$Q}(AFek^;3~1DvivKZ)gpgB~uV&o+&7f#9d{*=Q5&? z5uc({9Tsp9kJOu3IgJAb0ZCRpr4gE070CS{ghTW9qqjh13)lf45g2_{-SKvDRVEn< z1X0`(1{-BfU@88JHbr@}6FFOgf&wgVSM1bxI_Y&gAcMb@y;l|_UDzPra6_D(iHsT@ zL>glJ*WrQFO1*pv4WeIMPbomD7jD3=Y+iKr%E-*3iIRe7{DOAn+{*$G_)O6Bce!T; zvCFZ%b8rrEd-!je=8VRewl_7KqB;4?Z>9^_>ItZw)%1_Z-+bV`rc0)-fwmz8AG5|l zGW}%F^10oVnElTp3O`n{dr614KvNuuF3U9|_D2NXIi?*2;pN7fN#F8qKJ&fc1qZf3 zU&z!J%GxGN3w9eTy+RKeh$-{89nSx9zy`rnb&O=|i+Ks;N)_V@Yc8RNBTdXSq>fu> zj{0^V!Dnhzu79VeshmJ`^9zP@glm_d8(67ur`!Z%dM$C!M9?{)i?%;;d7Sh|sY!B{ zF72p7ist;dm26A~A+?|@7%n-8Ri4obwahoR^p;0tf*wH9#4YJkee3#{UaTbL`?o8rahXh!&|wR$Wsa$=ETY!X!#7{Cw#37$jlyU%Zr~Rz z7Y#;0MZ{f^69g+dj0PXr5B8)B;8(*?=Se+Q_%^1%ErS4`Kq?3$3Gakod zXX13_yhT%R4W$T?{}IjV69Al(^}4(#mjz%|6AgCa7p^7Kg`S-|6+(ly5IpJF#2OON zpKiXmlpII{qXtpwteFg5*me&k;El^DjVB2dawTI#e;_R?Aw^GQBy^ftT~aLu#1DAG zZ#Iq+%Zo)4I1(hf&5Rk&1SPu4K2@SM=E~|3O}w*UekOYI>(cUr^EoM?CFC7QhTJkjk!6h57v=ikTlY`%mFwq}_?z;% zxb2k?_Qx+fxK)t}YAl?xaxytP-9M09;p%n?S>Pu8swGj&msNq*#3~ggICKB!f+fPs zg897M0!16V{squaZb;P>Dg$EpQj2r~t8(@=e0%nYYgQ5n8TB6+{ zFY$u`+FUm5N27EIB|u+7^CNiyq3?_iPvC(v0LpQy;ELCZ{G>G#zY0il6nXsLbHs6P z1Jowwe@ZEW%TA}vbl$^x6*Eo_XVr7;#Jl~MdbeyKb}Cv}!c#uCvAeJ$J z?;zhvqV1*_=3PP1Gk~u^Wk^TuXk-b`ItqZHRwJjzD#(j9OOKZJ;;)0w;1A-m@g$q% zJUb90MdsfMh}6k0Bx6QX;~O!+^Eg>7B8;~TTtx=ilw2%wP>oiGE&5LKIk!ib}Z^H#;x?lR~ncgh|c??A~gytpceG{ST?v1u2oJ5=sON z^L)veP{;{zyCc>lK7G9Q;)PaZYj3S@Ki%AZNd%1w%>Fhan-DJ*4C#dxNWz=frDoZl z^o^ph4;$AHF=Ru~W3}; z)`qd(-L?}sNS_Gz8V8dJ2$=li7%oW{wAO16Wqf^FX~{63QW#h}YNLex4aGK2#4$cj z>ZZ`+9$wRA&#_o#31$Y^<5pMG5pXiCZ`m0f)zG0NG?OKp^l3eTf+j0aR#>h9=9$OV zoT&n`3{1c%Ptl<&IiGV=tP0^46V^6RSb;kbppSV0@ZsmUbJTmCKO)SiKBmn~I*=}F zo?CO>=NYB5Toi+n@ZlqdP59v8-78?5RKps7M6~b+IZ1$aFl``DJuY5o) z-7$-H)b{QX#?lSKy0x_QWfN^)$em>jcSIGcZbQCq@M8u$3I&J&qCTy6u3+ZTQ2yZ~ z0w?4eIa;S5Qgw2nK%tnvhS{Ad&Sa{L-Q(XlCqyOmN%=x{A@3a3FHqfDO<3OYtFOM| zhkS((eH?9x=hV9KT+2ZFjdBJW>#lYvR;tT}LgkF+YC4!a5WrY>`iYMjUe^w7-HRro zi)MQk;CAE_p@cJ}6e3}M$(iR_;cEFF11fc~^JVXvTRb02`~^|{za;)+wehGkMx7DP z`T#}vzP{Ji`)Bm-3_(!tt!#S)rlJtWk>ZM;OHs2weD6TBw!R_y3hNb@vuKBoK{Q1; z3WzvopMHx0Wz5=TyZ$4gIByI`q#6DC1QtJiaL%-D1&A zNO8RpV^{0C^_>Lq#O?;7_2u}>@#>enSR&ri$UVVtb{zSO5#sXO>ep;YK9zNnoN1g~ zWL=%hedn4P!t)8SocknzM?k|~b8;x>mTLC+lr0$MpxYWJm6H8(X0unNj1i2c;0BZ7 zwsKrSanm=#z^jlNgdfXW@GVbt#o(6ZLQ{a0*8lKPvvIQnB;UP(l|V4O=5SHmbENXl zWB!aXe^|nCfUXiXNN* z9@vJ2SB5oq`ahcx0ooLT=J(yc*&FRw6(%i|>;d*F9=;mNHf%v@MjSu(g8!(bC@-wQ zWG0q~fDEv6Z}3HsPl&Yg(Uf=NX)gyl2@T&Md$FEF*RU0_ZqtGXz{Dm#xF>ftQi+ig ziYA%a?m*a+IXuBFSge&8BW_AsVu3gIov*mOw2o*7{IG*#vkX(gXd9s>=W14r023p2 zT8e*MR)X=BcM?p&r!w<^l|?%v&C}*Yx`=Y4K^rZ;4uFlT3d=d^=mzp@R!GGfaw$3P zzn@%5ZPSAx6ipGp-}+Po0K-tePf2M87f0=&LLkL7($i=l&34R3%Gpx&WZ-JLAeQkw z;l5aMb*WCJ(-#boqnnU#BZ-TtR2k=2@xqd`vs(bUz(=feM+7>*9~dJkRkRNhyfB!j zOJ7|bpyausg-|`6w4E!)q6wuY&CfwnN;KVw_C zYe0rGoo70!o`Pb6JGEcI!4Q{daE{0)-&vnZWiDBPl8SI%WLIeU+F9G$Q18&;X}?KC z&!0kX?;ae>T=uB*fDK4Bmg?rO58kze;kRY8Y5J0d;UiIi0t<`>NkGT53d2|cBTO%0 z7{OGoEWw6&JgE|Suk%dq@VMXR*MGzW=NVtNZ~nm}pP31sYuDx(doY}D;3^Np;5m1d z4GKF$MmzP~5GVY^U{^)mj>ZYWBxW$}p-oWzyqzfOlOgo)9vqtflyX)Kp%iOTC@RDQ zLqvgDQU`4U= zlju~;;gJxtz=#qwFE=8=bsN*X%NQ;vF8P-rdN5>Vv{NVl-y*pYTkwxcW-09l+Y4v} zyBLy_K6qKGR5qh*a>2_l9OdYhN`H1lYSvL)cnJJB6{;TkK8V;Ge(`%)_RI{JPb9JU z={%A`>ga_eQD$S*nqBdkPRSnTJ@R$_1k6?GqmIA^zGiIn6bVh)W<`#0{(uuK@|NOg z`ENPN(|Z=WOj)Vet;;*dy`qPw7r6O_`SmIN(E}1z6SfE3_HnlJ99FlYBBYg2^FDnc zS*O^QO|1sivW$xIn29_0+#`U{=C+C*i`zyC~?l$JGuHUW*Gbt;kie8Ttg z_1f#*=j?$qTE7OJ-umfDq6O=z!Pv>raaSU#ryj5nw-Z6}dIg5r z{c1;R>zx=fTHU8yGlw;EV%|jWrc*{ugW9B6LrsHxNk)XVF$*aClSLvuz!2ezI<&xj<&E zxEqhjzFjlFHafmIgNr0OxSBf>;>xgHu5OHkZB{57(He&9l2BX>(r5%$Y3%8b(Unl0 zM;}dWnX2d+iFI5S2c3eAN5rMeI97$WM0^Y!+@O)w>8v@EsckG-O=W~yiW3GSj;7uL ztC_$lP5Er(F!gKY&-x(G!-(QkcaQpe>M_31^pDZET5 z>Ss_s!L340FpAR3=YIHRzl(FvKLVlrGRfY9-o{x;`c z`iSmA?Ygqxsf1#z%Eq{YE0SUfQNvw3)`Nv(3gt>pVp%SMxQ~*Ke%Q2fly#x3QqP|; z7=HuYus?$cBhKzvEK2}mUl~-0Q2{{qiqPS6g%Sv5dBg)Le2gA>xZ$F$kq@{Hv%U`T zx#@j@3%EuLm22E|2O`8Ic3`wAt?K#}jYH?{jHnV4$#b=`zjFg+XK!dsq$*l&1y&&vhbPy-P37PqLX_+C@;$s7g`XQn5I~Q!Q(B^68jA5tn=E}3mC6qcng84I0caX`Kwks^;i2p>K#@7-z}mw{IwYXc6w)E>$n~g z7Won4kSEEXMbjWt?Qe{59pVt*bq-E@KD+Q*Kii&uCuQxc4OUD#LZFUuGSlgE28z?_ ziaHcF1PAQwuI;|wY2$9Z*XvI}W^ezcz5&{8?@Eh1Q(CYF(~EU&14nM{Fi+QTPXLF( z)i1RT)*fxzF!#9(Z=<)phhLbwAYFWqI8CuzQMC%qOpwQLydx<-M+GPr==`gGQ{G2u zk8fk0@e_(~>F?1|X7lKGpW$i>R6a`E*gbFE^qJIASwm3CAzGV6N0A0Y6;9Gr@JI@? z@rrrWY!?8CsRDoqkxuD?uXx*>TRD8vn4Srbu{sR+Jne_gY1OtUhTtF357SHTpzFv| z$!Lur$C*OAsND4`LC?4!?@8~dgA@?tm0Nqzz5dV$d8H?z*Y5Vlf3as{1o=B_j9u7Y z=*Rj{e8Q4x`%%o|B9zni$0Q-^;>YPybPtOlQs5&R%h|-wF|DJ?9b%Ys96EwUS78$X zI$1~CxMye5qm(@UI7ZyooL!lA+#W!A8}(5S7P-ZS$TRkjH_2_SZ6oG!{e@gekY6_x z`@mlaSYAOgsc?)DRCKy6T}(-suo{eMs8ZhAlebsiCjEg zL#34ucb2iG-f%xk}kARHW} z5Hd{6R4EdWbdFavc4-riSP9y8vC1~3+!9p9{&(0C9FEVv9R!_2!#ckN7~Iet8ZPTi zKx|D8wEf3kAXfx@loa9*M%K@Qq6?E@f}x5=HOS@=y9CeDV_s!iz^cdphOqq1SVoA> zM6&X*;nZ%LxjWI9at4;5X!$uTs{VP7i|j1#1=#rsY|uB=C8t2Lu%9H1Hfm70^d8$( zib>R7w>l)HF0L}GpdH$IQ&K3onml^A(XgAwe2L_B;|6YLP~)MzQ^uW%wsL)g1S{y* zz7~83VN9R#FSN6yLlXVhvlFnwT){3dPrdp<3_XnOJxo0nQSd9cT50X!&D+AtsAaJ3 zX)eISwt|JCRu9XK!Vm%@EVS*3)aZ-hS}%sf^VkwG!MH$8_zwPr^b3WQ)1&)a+!^pk zTKzti-ZI+>1hoF)2=x)*ogWssA!pdwY2ufP;UFx8=P zEBWhjk5ZeAr&1kQC)4E^C|24As<)MfyZrt!JTMalB}4pT^*K64CDt$Bz17tWDIqaP zdmC6|4(&&LrwK5a6iycZ#`^I8q4d)y&l*$_K#Fshats{C=A@?ub!r5=F`vi*D^0>- zrPwkj3{0i;jVVVpDN8CvaH2~OgiUMj5j`mTVI|YPwp;m7lH8{+l9gL#2vl|r3jLxp z4t1>1CKbLY;d3K{wZV|o&cB4sN;fni?a1bfDb!7=%!UtUq^VQ2%P3@I;^CB1Uv7@| zc|#XOvP~%ATS7+N5!v#6E`n13>eX}lvIT~>`6>mqfkLKQ+41EsA{I{VVehp5fTrgW ztK}yVwdLd&XbG)!=HV1YulQ!#7iP8~<*6Bp{;VlO*%{ziDuA(zc@Iz+m1CM~R3^;D zw?&JPMervsFH5hg(IH|x4jWai+2*NM(=}ak9p)mu&Z}IPXA#4LJ4&4=+rh4AWZY5{ z(1D5;a|V~9V!n`K?xbxx&tz=vf10WlB$fo7{IXR{=PG*{>{yWkt40;bv*}kZdg1z~ zw|^ZTJh4#8pnCwpT@y>SKvv!(Z^t#ToS9m;ufRIghUSy&eK_oiXsNTK@y`xTIW67Z z1v+5}O67x?0g6rG-?*RvS|=3_nU)h}ZIv3#(ki7`^;kfw&A|5LhJai%jZTzO0VmQ0 z6I_`|e1=wdFnA?#gPXvz$>}5{pgx&<0g{Sgi4K>NAVDKbXkMq(Jd+>is z4P5Lcnt2QfulE5krsa?NcXw#C`!O%QNPy3uYjT;_UqL2e$K{8DZ+>MKz$YKcsyTEy zEK0?~SSap-#0_ebj~XQg4Jk#sg0dsIkRzE)%~ITJFX%QO*^iFSNRY+XiG?}6DCuiG zRZb#(ekZRHr+u;po&iCb^hoIaZL;BP%B_?DJlmrnjQK&rdRUT?8whnMFpKYU1``Aa zq|V+(UM$leLE^)OZutEP5SuoLEK2((D~gGhUl_<~))3_>bDQf@@NZ-Idg7wNRD1NZ zP%#Ll_GjhKg4GO04beCRsYkj*#Blgs7VTnI{y<(KmgxCNHg(E=FhDG0`6?lAR|4@P-V*}>8ujQLU9=riU}(M1XPGSYy% zo_(|Q0JcDwwL%N9ojAF2OzGI%0!azb3SHc2=~ zF+o{yGRvh0VzcXEE{CW}$l)qbBAqO%SvJ2z6-QPiS#CaPE?*o9&cm0BC)iaDf~ys{ z>`tW=%~B}5!PnodBz-F;)NDMfWy;RelEW^lF~0U{NN8}g0UzuV>$D_bo(mb+>0Z+|m3a4Wgadyt2I$hQnhsW8hXo=$hy-N< zR7sq`{(?;U94Bzx%6+;?c7z^-Icn=04bs>#90Y!NEz_4I;2Y`#Mh`KPKuvH9*hpCB zl@*D)4NzrV;)uZFc|L~VdD;~|10F$Bi_{9i_r$p!gdaeu!Id!#cSZvg^aQ3bZwVwq z?tFXKhj$%u9lUi3^YSw8@DQB9P|6Ym-!9Al;SkAuBzuh4j`5Hnm#BS+xDS-(g+~YB z{NjKS%=EkB<%xXx20j^fYHg0Bx^3I5V#annt;e8Hy|yIPj^zynV{{XYsoOA$Q*tM{71eYL* zrQ3M&Y6lXIx*J;K#qUILx);SMe^~k3bZ>6Icqwqx6(HoH8eq`jSLmP1Iiq78KLs-W2^Azb!vY%nHOg$nv5@wJ9{> z?y%!QkC7L(-P(qvde#&gQN#-cXjl*XQX7kWA1K^GG8W3Payeoq*>@{gewVD2{KBK& z;T+9a2U2CjKOo%m@7>V4>sC(8}GfZz8a?#r=- z%T`Hc0|w@0P5+XUmCiKl9^a2}@z2>AGT4^nl1pZ_!Bc#}WF2^yPbd9z1R?nZ#>aOj)sGeh|7iaIe@E7B6NqRy?w>ceSCIICikdg!M*ta)n19t zisW>(6Th7_E|5{VdxWvV@eP>6AqH8;DZT*nNne2guq>SoR1IXM+P7hLCkZi~5i6QI zn&5ZLCWNFFjFQen0J1|7HrK5NU+1=ky-S$ z*Ww)yWPL}K0Y#oO;^36Ef%E=6g9+(Q{scQ}*j~FZIr}x;7LaAXCA2F&7mJgwiC$&* zqWK$>#W(blvEU(wbkr3f$`1fktdr5)i4erj#qo*fCSoh#%7&?jsL!tU!3U+5o%FkC zPPJ>L`0GYU?7(j~t8a5z*qvNHwwVC9d;W+!FG)clr}$?f#dCvvctj(YJu8mOUi?l1 z<{UielXQ}}C16p+8BRKZh@31aXRH$t(lEL zZ~7Tb28!Lzx5|8DX#G9wAC899V_Le9C0uI~7m5mc%eQ59$;0oDO#cZ zcyPgHhxA7_iIO^qZ=W0NClquhS{8H*iy4TK0W;@`m*6gr7Qac~q)pkXBp#;71Ofv3 zp-wRc1gY@nVg5hBcX)i!J&u!}?lvnOfEv6sC`heni_*aS~d?)IR*@+L1_8bVnh zd{H*uFCVCd2~w0;tX9sf^CiT7aP0nSDWqims`6(W2=mi+l(+>ldO#!_$ZRJ-TVq> z1^5}9RrpJ&3Ot(vo#IE3w>~>k_c^R`}DVlaA`TaWr4Vc_?54-lW2qFCv8y z@Jv_D5wT=3YwPt`7&sO{d+wK48O-8~;i5jT`gIgq8+w7eOke;%C}1o2EEByXZ$ufzy@Af=5}Xr%&@j(I6XvR7y*=K z^>R&VOSVy>lgx_`@r{Q8qv&r331diH#nzOg`n^iS%G~=$m!C@1lE)`zMp^*pQh)QbQnIaBiQ~pb+4evR57k}{6lyOKHAuOkFpA+D#-V?%zzAkxK+*2U68!Z5FFUh8SP75{leL>O9{X0eNh}Hf?_)2iPP!e zYRjVTQrtD^kPNx^;rx^}QP3DT!VjGZf3c9xn$>^|Rw(As2k-5{h)IQtQxkvh?K|J5 zh!yx)oW5n{>Nh0qaUJnAa3Np7YX_OQ{jP&dWnInFjTgJnV18VCvGD{7OnYN19qfzH zmuwyo`5epPJ-&(5(La9%Gk&*gefmOueqPjx*rq(h;Ep@C*;C`I#_L)u3*2oVcs0yGx;7)-IfI3 z+`o_5SHnqmpxZ(GL&y?u?CVP0iFfyjb9r2-v>aH@Sz0mVsmY( z9Q(Y}W!n1~a)Ce>Aye!^;;dcVP%0h4nl#tx*+xgReGWm#Hs9?L#kvh(UI3*1X&9Iw zf}vNsxi~K`xg`byn>TkjEUY4&aK>n%c$L4k$?z=(!$90X!u#`z4mN|&Au-5|O<;(# zzf@X~741|H1=1r25Q$WRt8+G1s+ymITBrt>5LG00{szT4Hzi7=y_Fk-q>T-E08$3fTO$ z9b99Q-V^LgqFpriAa(%H%ydI+3PK4-M9*(%A<)m0ldm5@(6CRxYuruPtxnDvCg4zk5HGxzZis0m2|I;JFel6Tox98qf-dYm{K3NGjt9Is_6}!R1u+bWFxsvjYdi zxBu1ofOBR+KAtmzd4N!OgbmLae&U<95OzIL>;exvAF_v?4>)3S%6wxLZ7DIPlB!Il zBB;LF1)yzMfckT}8ge_i)dQpV;IudCS$(jLJkB8a7QB2|wV8PY!i%FJy=X^z`FAUIj**Np9Z32ymVLts3T+#?-yLM&47upH4$GR7!uUyzPUIxjbR z8QcOK7f$-eCkXt+Uc+O_D%IhmG&9E^iiZS#%&w^8WIJ-S!V?((yg=C_&^X+?o{{g+ zPVk$bTG%z%(;19@um;u(3kS&)tcA?f&x6k@U1A8FDW{VzvRqau@$|k244J6IGFdCG=>tJ|f!I7UIq=Wa zPi`2hK63rR6)hm{?k#(AB$IV)BWJV^e#y3>{QC|lsSiOVp+83Trl@}&1J z4kWZQx&d`s%x2(U(y!TVF;za29(Fq;upiDct{oXJ^7PG~*kIBDb;A?^CCTFg`7g%? zEPEh!4Fb=9Z@{xY(o#0mmI~~Vt4KnkJdex;Y+~V)n@CgFhZrdS5MxN#Er7*#l)JIW`N7q({GDPK&u{iEhOPNnJtT2ve$9y|Xxe;;7B(|)0p@~_(>aD^q~pYm zEME%(LTbT%lfXXhy|Dz5mq9KS_`zk&rn+UG85RKQBgV~gXvCQ(2T=z@UwCFC_quk{ zgZDqq+|O;{g0{yp{eeo=8CE-z`Pu-(nq~1zqOHy;PD7A(FY2v=Ur<1_orWfdAo+G4kaZn^Ue%>Dt?4*_Qm{j1C|__WbQJ zl1dq-ib4|U1dBoW>JJEJ+1T7q5)q5iyG5i+H6(aTqxf*QI>U3BcKMV`v4G&|?d>~& zR{qh5pDh&P9YSh{h>`}&FmfCXlkl1Idrx}jL%2lqhmTMD2nQ~ozQ&0ypKT#r2fk3P zF&mVx^)zMeIr3D~Kz3Y$w>PK5)-dfBch9{$?Y=Jt*XI*|=Hpll75&hHpTn)E=$d z#dn-Tc#J@^Nnf%pw=fyXT9Xr!Hv33tB40V|-E9y)q^aFk8b9q1WgdW_+TNxppq8MO zbU{*Q;K4+bUzY%@gbmD%P_}S7Ttr9isbfhxWy&=&kgT1*9Q?7UZ2)JBqO(^Ap0*?g zy6o@*-_bgAEyj7(&uQE3G5et6X7#X%>#ZU_EpLW6bfF?hZfl<3qp@%49RH@8C(H%8 z#C(SQOU_tQ*1DS)6G%8D)3w+eaUq2d=3}MtZRe*QIPSNi&2evls^gR1>nTUmB~wJ# zM9c{+iPK9&q1XgP;-tei@_mH#wQ+kPXjt3WkFXD&!K^vX-J!r~%1jXRISkiW`w0_b zMlhs9Sj!o!IuOmylEVDt-BSWs_U3J8ba#G_VprK6347U@w?tTkMb!kbDF8aZ$Lq__Y*?d$lr z1hDHNF5x5j=ojaa-6o;hsENSCLa2v5)rO*iP2lsxyQZ~T>PpeIf>^Dt_Qr>ubC?yh z8Oc46ZR?(Pgzv?wil@d_)6tYBpsjLTBps+9HR&L-4y7Sm zt@{sTCF)mdleY+G38Qj!9Hj`r{%hnO&+_TkdV=f&h3Pe1h zt$+m&0KoLI@-@t`!kB0G#5L6%4*h8Mf`96R+gzYT?LqG}h^%8r4*a2@NO3^C!rBDj z{edWuU;vHe!Vd@uM^J4oGqFeR0rh@TrzVzC%S#JtpAbAB$M&D+u>dZ1*a;ujC*WR3tJpE`Px2(bdHuaCykAG&iJ~vBWSpzkC3|Xo>R#M zax6$+DD(kGhI`o-;tCBv3T#C8cH+3;VA*@lLfezd)QWuE;m1l74ea6#7w+$#>*=P7UM%F(A_4=oU=T?C@mR zSP-P-dOzE4g^B3K2ric7%;<=#U^!XiPMH6}NrpGfoEPOwjs%HCwY}n0raI%++Rn~T zPkgH?B*c55Q%-4AO{YdNp!q%TcYAAt@q182BOl%YZ;=hA9%f{YM3;$ljWj?MswPsM zu!RW?^aXPn-e0oE@zFHSRBAbX(hULJsE1i86T(0Y(E<_BmJl`;Afl^|Q~I4P5&eq(9e(Qh1brZk`U0`vc@4K{rvU1K>filL@Qj#}B8|M1hWfAi$B(FEyIQ z4j_;-6<=JK>x{P32BJ(R;<1QENe4ld3*6dhpA)uJSn_AYiE2l*_s#g&=#gpSX~}gs z9;}de3w?O?7O4tzgiyFH+(*cQoSfiPP!>&QFNY*a1xh;dTAFgsNYL!-AVuhDlOCKz zg`oG6KB0OQD}OoKMM(!(2aRE3hozz z0?L$4rOma|(Iu8k;w>md!AJ0&MLU(oJ8k!ldML_r$m8!a9l~w=J9(} zqx{RY!;@|w;qgX-u~(eq`Mn((L_8T0Q{Ci*WtquE?xATcp`boKBfgVCsduoP5JdK( zUmo`#1Tl)X2>~rnS2nXaeOn_Q)RWQoqrPu7_hNTQ%^4TI(;^cfbtJ9yDP#b}nG*RN zleqsXxx~LPe9?!NywE5plj``J?}5gv4LyDV zE%gA+H~14EHEN&pk{ikBwMAElYBcmfNogh7)#`Xw0TUz~M5s5CDC{|)$l#K4AGUz1 z!gA;Mep3sC0}g{BB7|g{@#o>`@ZbQv9DiX#5OPp!YJduTZxQu@G$fiu8>2HE4>|0Y zZ}!f`!CBugy~1EPcc`}zAgVUL4_pjn23R$5{J(F=TvV@=`(^)%s4{utiDbJZ32$b zQWRc}0A|#-Wd~T6*LIhe62aU#9jmTY+rEAS)Tzv?!3L2pxqu5Yi&zp0qd07Ikk4c* zzJ*xB~e;d#dwE*AtFj0@h}a z3Za~tX%b4<70{$+OsA3D-(~*G2l}VA%U(pvx+~Q%-rNNy)NzM96y1 zPjX`HW&`!GQ3+b^Yl9pt_7doPD0>YRomRAm68K~|DjbSp0zxi$RaJ_wVtBXbsD$b4 z>>s#Wo-XsGQ(zp=;}_hXvPbT(p<~eN?KgXB>xK1#)a9p^1YL`^SaCA#V0b;kQeyB! zGR4#o3Di=5gQA^vCA=2K4t7v1E~iskTLE&ui6=Uj$<_hn9KzCb@wr zww0V~)%D1s%>}>@@vE-6wFOiSiV>`J`^cWgbL?Y6CKQoAeLHoAcQ7w(0geG9NoZ*V zAO|S-c>xZ~S)m*;68Mag3i$C!RRg|T*N@6)`PX-2ewUK*lM##Nn0eDd=~K~3-WB{+ zb01m;<79(0;aobv3?1{lk2!bGG^JonBql^O4)mkmxuMP}p4Fq}Am)QIq8z`+9wpuEPwWK>mb8K(7Hx(B_vviHl{(*N!({nxFf zKR4cpBc1qV-|yX%^7!T6?k#9{vP0ff%+`WNbM1>B6Yh&kVKXcrzWG9hWLG{XO~4A~ za3e@9#>ZeBePQ1IkrX{k-l3<;X=TAi{gNCf{(5zBhPKHAe7r|E`l;SSq97{lL1knf zNOc>^0|O%c0|1)zh#@o%x&A2cc8>F7JP+YUo#Ec8T$cNIrb>}OWZjmI8NJn zE_Ro1cO-gu`3jO-_?xYh**p^&;O3 zHfbD|IyITnzgS4%BWNV$YWxyFKLTPBc_aKJ6c5JlAZK0O`2Uq3t7D~rS+o9ykv z;d`1;@df^nT@V}>hNwu6=YrST5IWTNiQL}48e8O4IfMd7sT zPo5sOpv?x*35~^M;`BW>NDTyT5MqDXoV>YDj2k#*a@dXa!Mh-5h+Q62B22}!*iMTu z@+~-I8xdtcu5YJCD(e7|cJ|UzTRDT-eXYOxaY{#cll0<878CAa!spLVg9l~b);LF8D{zTB!gZ=k6 zZs14DUM+qpZ`k{T<*ybwyOJ8QFddeFB6xnhV6YYhbb`9Nnk2F{SXkG-z@=y%WDE%* zYChk5xen5==RkQv^5`rY(yKGcfw$E{hPxRaL9Oz$nWp?lFNbyppH2Y4?(0Cue|u7g6Ht% z$~?);LwLw8<3D(+EIcG!vET!%Xsg!&3-!weWh=Ch8%hCSyF8f(iXc7hAFSx+u<|o2 z71lQG590=Pm&b$7IWE%U6(m}^sXSwfS6HI&K+TB?ZH#OYbEe`tX2lc}U8$spLFUkS z5m(eer(YiIsL=1q6xSZ;ER$Wl1-B;sjj2`{)7e2=$5qZ%9*(mEoz60=>9&!_IpWoq zrm%42bbtg;L$`?VnT)Uz-yZngmM&)O>$uY3GO4pa-kp4GEgVtX<5~e2OJS2a@OffC z(sqIL?Cd_-e7%eHJ#6ToDB`BUO-43>g2$l)cn8KN;#dkn&2i>Q^gtjpr!+OF& zlQ1-8Q56#lL_3_%i}7i%cis{R=qi;&fJo#v8s9Ngd@O7=$r=gyKnenDEZTF}Y45O= zwmX@#%{`2cy?Kcx)zIE`j!`lKau(oo$s#cgKLXgU2rA554*KKGms^|AxZ2yVU+r$Z zT&I4Geu;0*cWP-n7=F0oNHR_!YLurociKKL4p#-t1m#*-eHNyG$!U$Ni;bq0tMcr zAPrJMFshkU0Mkzz@G%XGRo0uzXR%ADv-b*YghvOnhY8J8&siAXeD(T;TK^0?nk(Jj zyA__dKgyJQrNUT92i)I5O`6WB{m1Tl)_Pjg>tF>S^GZ<$*=r}gZg_E75BA+<%|d^b zTXpoy?d)Dtbjk}3XS~|Ti}=o3VObeW#4xM)rHl5H07P)g3kef-BX@S!c3r|;v z?QXnkKYsb7jlo{7y?U~Pu29Vx@wdZ6N*W?p^A9Sa^53rfn+Y)T2O=c+c6d6}-^25d ze89X7Tyfv*_T(#T%@|w0?G3sbr_a9`BPI`#CC2|kwUGZzP)&e;91kb>2$kt^#W;WW zkN9u#-tvz#nb6r=8{+IOLL1)73rL^*uUNa}zmRp=(fROPzBvcRoXe2s7vmFoggQBB zi3%k89|or47md#Hm*h3z5nNL22>%JokUPQI2m;ASI;EAL4<`M|ss3RLf>6xo?}h*k zb*TbBp5e+u?8r|0)%yCAHh(?Y*p_WUfo9y)4RU%7ly!Kle`t)7{>{=UguBde2}P)y zZ)54F({k$^EtA6$*#j(ObOJrtkM8Z*3-xrT3i z!M#xK&qHk7hTuX)BP|^Fu&88)u0_Pdc{f*MtgU7b5M9D+K4j(=9WPK2NEGgRolP2i z|EC4zgf>u8JxP60GP>(`E-7~ND>%vXPCcc_Fa9f@8r3oL^TR!3EV*%+0r z=aO%Oj6Gw0qJ^0o`tlV;L$c~`sa|vGoJ0{4PX4K@a4ZY>00aeBA&X0rBtjJlfucsg zL);j=^Q2|`cXYw3puoedKOGW-@*b%!Hw%-%>zkZlZ2brwdQv3u-AWwv`1XysQvJQ zXt|%8aCv_MPIY+FKkXuuL-q=wZgg=!7Pvll>*lqD#jLJAS%38UnJ4N2y($|GY6Q%( zjbnpk$~ngdw$S!k*;cO8_Z9x)fI>Lwo5JgjYZ)AJ9-lQA7$n~~*4dfYjY%{D!#%{=X5{7n`n8=ty zy6APQOOP<@3J<7bf;kJ&z>_IdUx|KpBpxgI!2zuh3K6upwe~^2tq{a$RLxjE^n%*m z5{Zm-$HWQtIkJ-U&-#-meFg#Goqb$+6{d#S$gWWc@lzq>sPc(mSAYBn7anY*F6X$< zQfe52s0iV_H3n=4lcQGi%kj$cvB>%(=+dZrBSez5%NXP)qm|uA-%wgm#`nk0>4j7; zgA(ntk9>NssXap@VPg@6J4e0cgKSn}k&sdMnkHat>^Yu+DUj5XcE|BBukVmLgHEhodqK@XG`-XHu4x`@){l>Y5(_atZ^aG=_O zt%5!aN4w+}s8B3g#El!&;Ghj%jOCp&{7idC1LOFH9eQ&4_`P*VBoY;ixg^6=sCF38 zRF24Q{3Uj7)YGfh2#(gDIKzZ<;umy0ofAXx3s|kLX43;s$_F+wBS$2qh0}=dIGn%Y z-^O}z^T=WEw0^qbGKOq+g5AXo!6s+VQEA^gx+TOWVlViyq2w2BPGp6H33I49{C~Yg%%GO3AI& zTsuHTGzc30B}XDb$8VldY`aOH{3W@5f{COPw#%env9a^8!6NdV z^JcS!2%xnYP)*hAG0bj|lH~By8mCTR;*isRBb#;9kwl17>nNG6iT>Redyl+`wF-0z-l#zLt z*y~#pU=?vMfEJ<()3%K`)9QoGlU++UwBLpOE}oJ=YhtKLMzITERdFt3LPpdA4kg%e z;|9;aF(;CJ!7OK1m=k5H_#E5{&;B2K@7fT@k)#WM*RLqEcmPQaNS0^Ej4c@MvSy@%xjfG^Nv)1kysLIMqWMteU(s5C@e~cJv zx@6+vfe2S;u5g_IBZUoQ9>tg%6DsVfo*4(KY(ebS9gKgtvCe81-b2H2#UdB9x&$yBB6I0J)1l$&v8I33v= z>8G-w`bptCTN|(dbSVkNij+z2@&QdC{AD7uCM0ASgkjFo|t3x4b;!upqGfCfnirnGyA9}>L1HQN>x!xrN2 z7(zGozBLUZ3)H^J8N&Io`2E;_DuUR$!}9cd*@X&QEJ<2{R@j~-8`Ww#KIf-XZcj#d z0m5B^`NVYAq`ZPYk)r{_KuqbdmVqP(^Q44G%mK)_qG|<9h*|$K)coALy}_fsbFqqt z&+AVt=~-GsGI8>k_dchmXq&hf$?LshI)GETS>p20@XK7jqt78dcKy%6wcl+LmYyfTTu(p_SW3DC`kJ z!4O3@FDba1cy!jju$U%s{V&dWwMv+k{7cEp9Kyt8>%>qEi6-w5Imo;clFf(Wxf$-? zSy++G6RUTH$6xOam+<)OU%MD2-z>1>us_*!PxG?1G04c_U#q??`w%mA>hlM&b|9_x7|8H?Tr0*_wL{Q zbyg15biFweaTplN!$$z7j~Icey9L5DI|icjGw)h0uf)VB2ZkcN=Uv``_ddJ3=#oRfYGsLo~v?;Tekb+SjxpDpK)PEPK5Un}1I z=YRXcKJ-WT?|=5!>=EX5VvkTfMy7gy`N4zy(fxa$XOEVb57Sl@HlT<7&n0wn1jY$?lJz?BDr>{fBvQ5rQ(>8Qo2~B#}eLENyDBMDR~K<#JU#GJaJD#N8R2 z*r)po(&>-0_eyYrw~+A9a$!*v0_pyuy_ z$%=SW7YkR7u9t5Da$y@FotcP$D(4pPwK&S)=uos@2r|}}r*DC=mSf;;x0Z7U8 zZKD{u7MyPEOQ%{h5^zGs;nX4&o0}tGJuKx0OA4SwE8@m91QYTQoPhA%tcgP`d-$aP z233RGxOR2#yY^c~#BX7`)zIeb+w6ec`yu#QtfB=$3@x#V~(r>5jx28yEgkA0xgG zPlnKn?cP)^x-ffqHR>QS`fb{(51)DW{QE&KeaO_Qnn%xpi)k|uByr5zA&WypUw;K9 z9z`?aGnVnfQY+8gA3F?pzGK8zRvwA7z2P)sR z@%$-bKLyMIOvfEW-vd>?gUntx(ttUbpg^T@U`X2X=lJM8!wCIfPL9)Hz$8!uM&bTl zAPl|BB&_@yE`Lse;%ZG5AaJ>It-2;~)%g3E7(+}`_*vSWvrr*3D$m9lY)d*1COYc8 z9eo4k9^QBjsp>&zI%%WU73^Hr9)w5lQw?4j?JgZHF;|)J90yafZ{_wNA)<7}5Vkar zsEMQ4Zxlpy1ce|r!(bU+l)#b#iODt~r4fX%)?rKRd-SYIe$&1lAwoIi%!OkV!o&vYmnz2(g1>&ej+{mLGnCpX+C z!#GzAqiM8?_kQzhP&0hp^lN7RLW#(H6aW8CJ@xoC?6OB zOE^JF<`A+}+3EDm;DowxqxhJ2hV5fmlhMSQ-bxhHrevMu+9N9lZA+<`ly=wSh(@M?%F5G)I)puycSM0nUetc_0x~ z>7h*`9t+o^BW>*at!D?@Yfsm|TaRShWfF7*ChEt{$s3+VS{Gj10DNh`mR^zY`8yR^ ztlNZG1-cTxOyv`Nt(c7{8;CgM5Z|=BJ&2@uqvz1NOimSEQG&4-L2SU|dw(zJGwqyR ztk!J9Y-Mj$YWKUl>OR{=G6^QuB5!M*=+yjT=9(#6a&`R_>idE~<3|5$OhCx&EPOmB z9AWV$hLHwLT9FA_z7XZ>DIl8{5I)5Ql!n*cnz)wmy|PJX0hqt-C(fIloNxLA$i`(J zT)VgEY8(jh8bP$c^lwz!=2!upg=QMOj2+=(c;0D(3(~t62W<(Q36Z%5vT?ybGr2N> z5aQ18d~SqNnHO?XB1?sh8w1u#3aN`T3ZrC4!wjL3BLKWL>i^U^_igmkiVKJ41sTNT z2wDNHE+rO^V9bGu^pRLc|AIeIxyqI){e1;%Xv07O&<*dKCwvMO%_kZ@)`z=u2r7p< zaUjkbb=3zREF!dtwy6RE6IOL)>>gxKfF2zU7N?j&wCM2dBG~{<1Ta(ta{e9n@t}USQZvRpZqr%lNvLgE6J#_X70|Y_^H)i`By#Hq?QAt-)ODj%SEmU`lL_xJo0!+}TSn@SQ zG+6_F#y-$ebxXJa@(d%x=Xql9-r~Zea18e399%4kC&-XjN~MgY6|=y39JO)eet%q3FX%{6!0J+CkKspe-u)|obHdYna6lr~g??lbwv_45# zP@+<28$6S4-Tap{v$AL$h%E2S!xo}&`0NL0Gg%h6#xQ+-X7?jf zn1TsLZ-q4;3{6Lg*}*AF=^M z)X;XIiU)u~am*sB0w^LoSAHmTg*tDPGcl4OB7Or|!hh=q;DjRm-Bh&l0YQMyG(;qP{E zL1AGuUc*MpuP8`B&mSzq*YsfdGu#-Al~siBKpu6XvNikUi_1zY-hcq}>LE{_XpMv`CBsO1F}*=4=W8Pjt6}V@N8c0vi|a ziY<%RC+UOjI}I&cAi}^!6TgdEt|3RQaXk35MVl*tA56QTJPB8l z#tcJvD*=zkwu8X;PB2+CLEf4v3zfrhjT3`mi~{Ijz8j9Tddm}@f>6fGZR)3jzG|cL zVW&B24`4zTysRGwg5+7d2PRw|N`e%zCw_uTnSt-U8@3NQ=zX77;Qxn=z%qk>eQmJK>qr(9Ms7FqSkj#iX6X1|Reo z47e_)RoS=CixFnd`6+FHS;0$sfP!_CCCRMK%KD}7PctE1X5_c!&kY0ic(HoOV9LB>; zwFQcB1&04(xgZFIk=jF-+QdJD#wznkT)f|=EF!iOcC2*n1$;ch!wLqu9g`qg;*B1( zQlG96H5|fb2_5NRUkcnF5(4E(EY5woWbcsWWzB>?Q8s^rB-Fwu!P`!8$RvifAgdli zSA-x0$xr;AA|RuR;1WW?yC}OnTpFSJ7hGeg;Q_S=a^l(XzjyG|4_xiuwP^t zh4hYV6@6N^ODu4S;{31yN1JfgCK`e_S9hM`tg>GoX6;wTF6{sXoLrftBXa3Sm-u`B8Nu<8dW6`4K7sz3kYi=1PX*qBYziK4Q*XrWF}kmdo_ zIZbLqWF`V-C^YwXj-9Gk>;hw?`yB}6h=NN9H>@0pa+8X|u!~`s9%!xksu$p7x z?{yj^v{@Ar6FA|(Tu-WZQs_MBno?3#Hz-dgNujLL1Z=w?cc1`?0mreG$^$lij74Yc zmdzlnSJ6y}r=D|I?MxsjZ>5;;f*lCSL7ztR4+4T`vaQz1Tkn`7h+^k_2%dQ$@lYsz z{WIzhtD($oiIJ>uNAXUq&$_~zV@K>X^~qP^Z2vkN)u1;;{Xn7ZG7Kd>89BL{+f}5r z4KUq^f_|Ub*C3uD!q!1e{~aVjr1|U2q0y?jNTRI&l-_(_oluonU*u1Y&A>NGYQnn3 zS|(1{nv=p4W>Mx&aEVm1wM|xtS{en*6mA?D7KZ~mmk=z2OUzZ2#kRK3)yNC4$8y+N z6P8NK32=s{(m%c>6g5tNizPH1Q*-(9z#pW2shDR1ySBzw9Sdl}Tn&0n&8F z9b?*VGAQu_ke^7YoaJSt{ZH$_AJ#fBHKyocD2LwEnr!7P)Eti(S%u%g@$$MBAQPE) z2-rl!P3qt9M?t1iz4a|FN4H{*e<8<{;BQrs8Ocnpi3Xl{{|)GK;(nL-DkZYg)acEM5jeHQKx7JtWu+!8a@>Vi5 zzjJeHgWxsp5+Z91{MTD{Cr<6O zQ8oNvd*i>>4>q<}TugB|fP^JECu4d+rH^m7Q0hZhZ<7zbFtHGa)*c51g|y87fYyt_ zSO^4avsVI?=ZVdrY%hr0h>~PX+F0>@71y@1M9d@S zg?N-(M&&ebOAJGDXh7kHvJJ}OEb#bLqsFnw-Tg9mGf<>baU5&o>ZlPj69cnT*l5Q%nrL#@h1T|BL5lqQ@LI# zpAWgKA#f;}LJ;^#z!D2*F|a8&_Q+z_HD zCc2ocTj@MBlx=K$jUhd`cV=&Z*ep6BSUI)v3uNX?Lyc4j$-EAREYqX8A3-VmN>IpI zx{WN)!r9P-#ZUw#GxFOZ$b{>VKUKjk?3Id#JSB2^eG_z30hKMc23Dh|D#PH)1lvOK zowLI!{9Ts#Ajmw6vR*jtu)bsH%tHo1h#)m(w@+Ve@5nSjxYACQK53E$j480C_^fr! z=`hI9P;sN&gyCu+3W#bQ^qwLD8FNk6S&}fKTTkW#tS(Qd674s?cxV0*{M^5My)d_U z0SDiKWc%Y*HysP{CwRZY)SySWDtBdfY46cKZpwWmB}3-+?o}3qO)gD|)Yc`^DQ2^@ zu>0fEqy5_$Ywyvu2O?SLhPk05Y=uTwIJ2-U11-9z4>O}R;~d8X-PjVdk3vCY_2N-c zbw3+|j4v08PkFbBed}+Ack}4rWYS|NfjSa-8VhqsLJ9?OI$JRi!q2hX>2SVUZ9Z=tg=6@!Sd22GE)^5UD4sT zX~ocdPiUZ-=YOOCyWB{@-|iMjd_WPB0n(jV{e?oCI-zwwVJmsY9Zhk@t)uzuYlmW3 zX#yYp8ha3`tA;usUTj;(Og>IY=uIJfsdUJi#r+}gCaoy4)_#mDKYN`$|0R1L?23cE zYJ_dpb_+WKtc#%{Q$=_`fmGrJIQIk#MAl*=1l9j`DZ{5O$ zakRBY4UNz5A%p;CWSmQvZ}{~7GK%%XSb(z|25wY@t%(;1Ld>k|`6BK@hAA(C=f_g6 z$}gho8`M1O-A?a#jAn^dMt-Jz zPCX27;b{QZ8!=%`p&LP@d#Rs}$D0()Zb(THCv>faETGx0;Wd_`{5sYWRl)xKK}05{ zA>2s`$wrte_i21heu3*iAm7ZpBJaSe?vH^>g?kZKzb)kvkV2=lJHEYo5l(>q zE#Z!KWbGY!nMf6-4`?P84ou5acSy`Z; zr%Ng_jqf6m+VRa~PyK`eJ0}zS(&3QLLG6f{py{YyjPSgtPk;E%UAmT@fNSA@P-7;> zkOt!SOIuP}>GXhhI5g$v@DNLDdWyeW{f`&O^;qB9-gxnxu0kaJz}d(*8_yfwY^@_7 zWP9De67npkHYFK?j$al0;dWP^ZgB}DQ$M1&2{szG+noyr+H~@?aVB3V2NM@1TWRFuZ$P>0z%u!eY-h(`~3qNRk!qk7HYb zL*sygjBcs9HTONoUgg*;p=#XHr$Z)%{~h)k|KF!WCW+s@AKP6PY3y@3F6%?Z9V?FsKO8duYV7Y z?v|h_1pI0{Ob_#Nz{*l_xfrq%H)JvB1iwk`T)o~d>N(1S1Y<=iXqF{ea>~9ZhzOObIJ33!J+1{?7+E43Gp5DQvG2u8; zvXHTh$X}Mfi~W^Wj*sG-WXX8myxja{`McO(7>O{lkuu=msclR31v|>XRomQpPx>(c z*AJUKt;G*KWD`RggMzh;<6EoJ1L7JUaNhB?{ly<^tKY3Zd$u7Bo~&=T)*i2Y<{y00 z#vSv|*y@u`_-*~4o4E2@9-_Vc+*%VP{N%eQpUdBy+y5y)+eB;m4LBqiRvCdWxK))G z|GD+}^ZconHfoXS#~E9SIXyf+hD-BQ zp8q@AZa?2Z;w!BVdJUVkwTp?QkAtHQuHlXy;rdT1e&kR&gW}vQ!`~FQA)L#6I8I{7 znx;%kI}Btk<%-!?yC`Ww8+ddTBE*?yORdjn(_kyP#oT5YtS4?$5SqJvh3hWQ*4kT0 zFI1buChEt|8!-g4x5dk4jP6+z{@FMj)^80{381FAuA$VNT4Dn2#*f5DI{(QxfWlB# zu(HBDoA$AkeyIb61B_PzLKw9*ML{$1)^4 z-UZV_sKc*3k8bbPfjREY7~;zYNWtFBIyknFa#9>ww!#d7ug@Vt`L1Aj@GSG*r~hx~ zUk9t-?>s%&+1gm&23$YK%J2`0nZ+c{!Yp*mh>UiR)p*PAkiNu#jmqs8?)@gRXR$4!p zsKGE~te{kup}v^#qfMQx77GV;p-#%#V}c^kQj%4FEIPzP_6uFkJ=1(b@Yw?;Uwo*) zg%`2cFaYkcV31-q0T$R5Rk+b5(Cf6%Df8n9zV3IAF~LM1kPv6l2%h}w*^`538;`eE zxBi6-!*-sk(S@)L|4au6M@`GBhr*u>oqetv*xwcMDHyvaT6x5x8Ny0Na1!cC7Y50I)Ed% zVRC@bJKghgsG(!WG%h)TKnfN$oQ?y4)1_-HMG8IXpp}I<&B#|!299ZU!`J6)zQyUT zHf^|$Sz1%soeiuPjNt*$1&M1yo}uVaGF-A9+|YPaI?)NI2DcA|KID8^IW9b{@&~<5 z)9<_Y8%GgVfUGWTwp6V49XH#jTzM&Bs&i8LBC-~pfLfuk!(v)JygWe^GdRtbxj0B+ zVA>Q5j%A3F;n`+-7rrXg@(P!6l3Rvd!zY+ssiIBwrcK^IYbm=CCPq(qVLNX^fD9JU z61nP9xeO}@DgwG3(t@Q4yGuzScf3<5i9Db=NiPI!H6vjw*VCK3Fe}_j+Y9X_O3qb% z7Bz#eZxFy##4oCCAz71*b6Qo?RMIEly%rL#+cDBmZlZ>52wS=`C*=?(b;FMliukh@ zJkgZm>AnQct`zI{{vFp4-kWkT{RG$3EH6L6CuMgY8c{#$`xAlaybZmi9*i5C!btEWC z_|=u(ntL*h6-J$q-^^!l`yYX+mk|=lblAQ;#3^CqFYtf|rkHQ)r&R#?8)S+k)a zV5P#I!!kC=_nN7RH4ZWZTaWd=K$agc6F`K~}MNHHgW8s|nnQg?LA+RKYl5{{{7UY!# zB9DssD^wLa$L-1j8>gNeHNhC5O%2i{JkS`gT-4*@Ls_Wep~9@mLJ}Rz?jn-U4{%#7 zinGJOitB!E?cxeHAV(`fjyc$0Y?nB6*r?S3DiH!+{Dg*o47|@nrsP8gF8LeLzqyAn zCt0O08*kE8H>^1uIMWzyh9wGT{i_?;iBoyeL98GVT;qvPmlco@%L^?X=dkwl!nzpm z2`D*6%`XT@JTj+#WwCK~S6toMNIbX+5r7%JdlZ?#%=3N$Ix7bs)fbfPcok`fx}kUg zD=cT>?1^eSVOAZc07h+72v z6>;brB<~1Su!}8g8+?yy=E|LIGeWs|5P;T0n@2noH7f#=WhfgDM7F~jAA>0a=Wqp~ zI6UfF&|c^iQ*9JeD`G!rSIzoLz;uqKnyM^fUcv`jD0kRBQpu$}Gg~Lzo}WbF^>u zc240}pqB9*k$Kg%jt5QoO%q&{M`BZ&8brVev&gbI%G)Mb7xoPFy4wIYpe6xjRo~FA z?()&{(LhgeDiP=1c2oz%q~9E59@H;Q2rC-daqn63w>TxI1Rg%qRSr(} zz1SlB8g5@JHPo8 zGT{cx&i8sY`ZoHRf7b6`(CN^>z;1X`>h3OXsn(KD7X$otAstpMw)D9 z#y224ykGEvcsZ~E1a(Xc)$mctH9|71n;{t!S{txc3fH2KFdN1>xR{0`Hg|bJPmK8d zW!zp5@gb#X;P#t#7Za?&r1j9}JReu@7P4eGQP&koo4Z1L5Omlf%or2E+0-GAr&?hc znG%+viNe*T@?Se(mz`G$?}Bg`1b zfxTtgfXP~X1y8sEW>L!AtGwlMO>K)9*LprOd3ko!zj%i75g^i|QwdOj&ay(2{8XmmhUH~fkvaFc&T&mp*9B2F{rfpJ)kHoP$=c{hqJv=9Amn$Br4tO0+I@6X$m?yCFrZ&SIs%2lpX3^%5b_x( zmgFk>qBxC6bjl;~Vr@c%;|lE&8D2sfb&dW~6abQ8f8dK#$sS)&c(Jb$&tL%6xLE;Z zI&I9zVBk7q)CeL}46z!vcOvwmCJ7j^ain>%Is%tqIHB`n8FTXf6wF!=mIH9`_VeX04n)T4`fJYr`|Wz8%-i7}s#bH5mqybq0eZ>bjT@o@E?fo-Z3~7Jr6{W8_6V##ujs z3V;LRA~Cp-6+L|4@JT#0F#3QThyf>}4h$8f8S*sySZonN`b{W!{jXCU!EfLg?hGKA zL9zhgBoHM%YKgQpiw?nMu|z*HIL)X-dWg$~g!`u7DXR^iKw%ORF;P;98Pk9|WRcgD zRgi_F#uW~K0`am)hEj%SBf%1ln!r3BKF14uBZcnl6(l%W1~*TCyXc&ueYu0(IeaFC zf#}E{(E10P3;sP`|90bfvHAVuXB%t9f3E*a9zuVe?LeaOM(fX?)HT6C#8EWE#tN2( z2?$pc&wcVphh8Y|kVD8NKr$CN1-Mo6Ahcd6T5MJ60@DJyyj{$D&IVhcouTnmSq_Jc(WEMH-$`Jd zvth{rW%-hX$Gpdf7@Z%jU;ha?~viQ(guB@0$<(|GOjjW>OIfCOjeUC^))(^JC`|z2620g%6MwwT>5=QCs z5BeMG@eYQnv9T4pP6k5h3cx~u0l28^qTGJhaj*QC2zXCw%h*=O@qAHRomU;+2MNnd zC=HXWBW#wp!$4kxY97}P-^RM>c7@6lpkj~oDz}CL#F5-TT z)62s}u*W&ELK2{IQh4)5!<#p6-lX604D*DQw`%U)kIYpYvR)BvKo$hgx~R8ug}c1uR-Xo_3GLW>1exlq#XHj;skpKwnZtuP zfhstwQ%T{cL`BAT5SIbk4VNB~%2LJ<8ZYK7x#wsO-EA!_tai4Z2ygDr_}N27E? zN0;=!fw+*Au?Adn0Ow}!fd(R_=tPMPnP%ASiIc0lhH32NYW7s;SOp_?^wElu#nMSg z_H@BFb#C_Ey>D3inV3Ly5 zTOfE$APEz&0+?W5rVcJlV%r>MR_>Z_=J3opRI82F*W_ivQooSj$->zS zuZ*jd-Af-Da?&!${Sb}QcO-3xGpaL{eRVWSTMz>Lzkp-fUI5b|al-PUx0<^oiF1*n zG-7dheyTT3&+q=_(Z1HcJ{a*XnXgd#@h|&#dEmD^baj2KfgT;gp$@wB z8G*c>eX?kW%B))>b6VpGd4U)lAo$MU0?!rP> z@V~DWPkmR?Cb1V(5cQ@JHvWkbq?=JtK-N^{_^Rhpef%fngsi(A3=GiD=m3Ku`!G{X4pLj$6w2TN6HW{1}~uzAKtkm zK;;}7wzJC}g!9mv*l%h-=T6CL0d?V8Yy^}#KqZ>B7u){?*W>nui4*YM^UIDxUQR{m znGz3jB#7Fj#r)~$Zg6y0fmxLz47%8oy*wbR?I|F@o26D&zq|cmvDiCd&2392?Xy zAM)Vf$;Q^f0nWkV;?isAA^pJ;BDiJRi-@J*>A?w`x(oDz|Id2h0qh)|;##~=77ota z;_^bhTxwiE)CS}T1U4Tr@BDH|564UA;~J~k>%E*?r2TaL#j{0}Jn2~RIEbm>zuwkv z8Gmz5&@V}%76Swamq*Md8ZwN>0tPvROJ1R46s3I&hp^t5>_A5xoNk^3nB2Oxbo&G<(LCN0wPS^L7u ztSZPIj0BDC0?=6GQHS)N51O7c3Xr-1{Bmgt((WrP3x`040gB1W!V-oA1OM3|NQ65^ zWxMUGvy=Y$)t-z+#}PEDcxH~==|pLH-1qn@{)^wAurlzQ{@^G5-n+nTC4UeB!?IC+ zoH_$<5hm%Ysw@|2&sq)$5kO+1V=6Q@-6;jdb)+J^T9gB_xxTsu3_kh^HRMpHIA01* z>-P*K6>`PUvw0Ek9l{%o$^wRT-nP$xWVl1>q`2x|B8u-SR+bd7V|bZG1*{x0>;Y95KawxHUbX2jYA^Ny8;o`n!m{= zIxVObzzq4@w{(e}Kumz$6J|~g4(#H5upcx$r_>?JGndFO!)7kU&j<-r#bH+({&(1+ z-J*EaeNEzXdEw|Sq{Kips9v$84DKBVZL%b)R-vKV!%Bx*ioW3Z`ZK zgOp#V{|s~GITm71A2=4?0j-s{-e_Bxvs9A;_fbg9eFJ5gE_(#(;#S?kf&>ToyMBM~ zF%V*2SfBP3keZb%{x;yM(4_Ccl#>NcF&+O5teGVp7&L>Rrt8d# zt8ADPau_Hc3Z;-5Md9$2XEyGfw=a$^Hw7K1gHfk9rcfy0C@ zw!Zip(ju%!=>#L?u||d;S%O_!Ln(fOu}IAn&6R2r-z{M<&@?oQ-++7DKeeK<%sA>% z;fhZ~B&W8NZSW7qC;mujlc^-K%s}{3RL?+`tp!56ZUJHj^QlvD@pMHB7c4rY#Dm98 zbb8Ll|Jh6!1$97U^#PSEt93Rf^V58M5C#3qLlx`#j*zi6bCh(gPNzR8NXQr}V6j=) z#wtjhC{Nm^bYsTi8205G6K>e|gh}Lt>qAXr3V38wc`#`zWyCc)SgZ~P?JF`ZA!3wD z8J9{{G6`xzkw7dbK+K6_*5z;#U1tF=#4dhk$kI9Nfu>%c5zxH|9SLvz#MNwE&D2M2T zU#aLdKnc{Kmtdh;FCtTfQS}#&&BYb}IPE~e!4mquUQu`wu;mN72G+rIB!nGUz$1n< ztT3)y*`@c0VA>8iH7|&Y>NWCVL;&F()-7#M>ALvN2gu*Co#AFiNrE)yRbA39{db#x zX}IuC`AptzrLFN=|E%^9@a6kVvwkX2nrr^)nkujIX{u=8-|Ozj{Ybc|hT&2U(Os9w zTmMe>%~H{-e0f*D-De&uB>_!K^KbdnfTFKeF0XtfLle(T?DOxdbM`mmFlNdT1y7q$ zrwMJQ>ASQs$)?oe%`_cml)BXav>>ixQVkZRla*1Xrq>TrGFGD3!GLs=Bs+BaepGuY z^mEs2ssrR~kc-fbrErE-K{@|aH2r~?hf-irHtb3 z*!j)7t+Y*!7C)_}1$@!a-y{++=F{rQm&UTDiPH=Xbiz%{z_p!bHZX2$+u}NC*wmkbK_$oMW;E)PSFQ3WM`s$|k{yezSYYD&!lGL6!EOb>g zhYGntg5^hBXDU`z)>A#cH_Et|t1B-nS_;qG*lk8rlQ*`{p@>uW_y8)^Z_=ouLd9&t zbU`+GU&GXjH}pfNGtT=s1`d*$HzryBW)RFXzW*(exqWX z1M^x4krRmPsM!%GZcJWtjA<0te34&&C;b~7331`M878o|ywvBg18Zn> zaG3%NKq=b5>^v4}+`3zG2EGUGteMrh)E@$`>mD~?Qf*rzRPBon-d9fMv-ii+RBXk_ciMMVLKm0Kr7;=?>TGmO254uC=n&&9zIjH}k{*|K#AX zMYcyRU7vK!`dN0OLUIDb;xq{9xB)*(4$$b5Z2-(fCkE)sYVhmM&&CcLupl_2D(S^H8_#yuaa-x?vyCUKJL?CJ zU%bFgq|c?uYBHDyXi}%DQY%UfDg1#yfd5^(8zf`}V3yY`E=(aAQ05_Rg0#`31k{sA z(`tla4mj(~=y6<9(+P1K3+XE6=^4S-OHSc}gMe6p8=5*f6i_qhz(+-~26ZbbYeqRXEEJ(93}2LEO1xmWTy$(eRn#eB zmNX{Ft}-jnz#9DZxv;Mbi8{IA4p+;5nsjXS?~jR4$j6mBJY0vAVL|A_%1ZU?WEyp{ zp5FW3H1uvhB+G+w9sY0n4@tE-*Z93!KB@=n`*Yu`Yop_|D0CTys8Hh)(j@J~Fj0p# zwP+%#LtHMZReGpejwbH``XB^35@K^J|Xn@`hej|2EI52KCk;5W3fj1~+YTwmMS>XtpY>*#gIWrRa9F899 z_Z>52(7(t*n}!tv@eE5#v4)PpvgG8AW=5r($`*!LTyKiN;VjsDu3Fz$(HhmPY;S0N zBcCQ%WnFJzI?)(n-7t_~+%3rReGS{?4rFakPSmtj`HmTX5qc?mERz9K~l5P@b$~V#KoG>R%OQ{^Pe;~JD{VhV2dGn2(IB-tQJ4tvX_Iq0t8qrjqB1~O1 zRg#4_(BOdLgUj=C3CTDwc*T4P9TX*nzY0i@&tiw5?&f;mWd6M7yiXx0Mrb7KCn%@i zIN2~}9~es3Z5J2PJXW^id+b9ZJl*)LI2$5KJhJ`_O?!oMcXtQ3->I&8Hrl zK@BGnu>@VJRBWp=5?h6^1XYy~J>v`;in}lX7=n>phQAJxT5#Iw@}60!RYTPNl8_wb ziK%v5A#`@$h3$r*MH2GbV8uL}9a8^R9_d+O^)^J445K(w1%Y{g6P8IFlzmZz4i4h1 z2{f+Iz{i#l`CkMR>|HtF*wq~zC1rW_r*Rg2=X?|Rqggx5q`0(@Gfowk2zL>Jxd}Ez ziz68%s=Trkt5O+y&F&V+I9p%ad4c;bx7RmUw^s4%0*gLjq~y>8Ss48dq9Gqw0!2y$ zRxKPQx0ZZfrS_~%$@ztjqv({;Hg83Ey&8q2!)AO04BoN?Mo+q1h=U% z;&adTH7)>E8ks1k-If0fGno|+S5B#0RGFOA=Q!>T>Y(Tya-k%6u9*k2jPHmzlr*r6 zN>H$W??3HmBxK0nq(37E8~?Q2F8-C!{cuol3^i8>Gq%t>be@CATRD)LU^4+8HRp>^ z$~LhUTFnp|x4z{%AxwFYNGeF92a16d=gzqHGUmF#aTaSAYBptYdvek0c6*;dflJgUdk1g=2EwyGU03*oEs~2 z({VMyz6Sc>-n|9_nIom1+ww<(nEFCY1;pyQ1I!sptR2;w0F0 z(>d@p^XE;RiE3IwIs$)hJ|Ahzcvi+gEw_t*C3|QTWVvLxpPGU!H$m>hL8}=;;qv|y7K`b7izJ<5QkLI*PR3F3RTTnP^(P#s#{z?;baS}fzUHO z>-MrH6Q*jRZm7c2oNOb6;awmP1VGiwAfZRpDDnfOlTAocv^0k45-D#N+sGJ)VFe&V znlYUek}jDD{ANGZ)|&`u*Szf`xpo~!2HBP+&P}URTMzItfmJ74=!RJBD3ftz3&UcW zS83pmkd*IKcIB@%!1yX;hOVsOZh~Xvhn9*oo8=|bV;$o%ao|@qG3kFzwh4FL{F(VL znYuNZ|B&42BpREO|Mzl}?amnznfL6nxJ}l{W!A0WsTEgH0f5SB|Dr2cS^y7`R_^1d zN1@llJ1bHtr3Biq;e~4-vZz5H!Bud^0-J&J$XMPTTIbkcGmM$gdR8p|7=#Z-54DqmP{93F%tJ9o zpimEK>%2}Fe>te=hJf9;80u}h@Q1U#Sqn)kq5P<|Fc<^y%VCFR6$AgMABGpZugp3* zpLq^8&nkpj$Y*N5l&=FFvPGOBBN#W>$|^$l7szivYcc6t^z?TO$F++%-%)(>3jL^R z0fI5QIsjJCiWHw$9snv@&e_|@hyV(%hw(@7VJhf_dBmqki$u8B&>!sLa+BlEYpsh7 zf?;Ffec7s@b1%>Ek#`b4OP+)|hG)qn!?W@%lgBpA@Wkc`&M1h=aBZFQUEqjREIlr@ z#SxNgzLST)KK%6;UB<8J4wY>Qo&y^Wi|O(CR#!dSW%dZ`I=bR%-axq=SQ3CdW4f9= zA)Lc+JEI@OQQ{dN`J`lZyZcS37feJ7g+CGTq7%^LBO_vFpliaN$GCr#MI1nOWY3tb zn^T@Gvo^L1=33Ad1+;_kDHTvu1*I(rm!HwPti&DFf$e%KP*tUi0bk>R(yTx|M}|`Y zwM@2AvRy$rdz&VI*q3(N>TjR`58Lo#vuPz}il2jfEh!hdrUaDa|BO0g%;Ol#OgbTnnep(8aN4hmxO&zB(p+`Q}%r zzs10yzFstRIe@gx1qF(dC`g9p$a>ZRvoUhj&RRVW)~@KjkhmT|({!*Wo!47YM2We{ z2A`_fP)`ZF!$1fT3!`)7=r94+4+OL&7;@we*mr$;m>^u(ij)8%-6qbf-ZJk<(J*EB zmg8M)CM`9Ousa7iHI@H}`MlY9irLkCD+eU8gj8|;nue2!I6Z_WKRjV(e%r-tXd~cv zNS{PyTA6@ZDsC%T-O%D=Z`z2pgm&}OdH+o~GscOE`-`95A=9_b00-QQm;i>BI)){N>NJ-ual2XV{AjMprhjC!R*0BZH*K zTHjJcaI|IpVcV0USgqM9PDJCbak?Z_lzKAnpqEl_{6nUVW@l|!%30^DvNo*4R2gvq zTCAAVFg(kKy*2Fe5h3@50%viF@?5JBOlazxo7$QBq(|&*?@5%SB!Imm= zJ;@Ca(JE>4FaMV?6h4|2%qkVv@|OI0J^m|~2qe}cyDK#9kiXlQD(nSp7{_$WCLdm@ znD!ZEK|bY_gP!6p?m08%fJ02fs%znyfy#^TC;+GHcQ?!@UIkCm(_dVUUYtB;=E^YCc9@^rR61SE$Tdm{ zn}G*cE$7Tkk91e1l? zSroCq0MwR#c+ZR|f8hp=|jkj-SsNTHMN{yY_k6#s*qicRe6 z2$o%uKmYfgja;Ir<@g`uh~y*xc~U$JrH+3D58jl-e#^a*|NBrnfa+rs{AAES5qTUU zo3I2$cyzj0nD_@{4MZ>)(2FzNId4*+8J5-RWGSj@5YvyRJP8~6&89?cB?4w{XZgQD zOEp4lu7@CZ26p=Zs#}Ogu@h1Cw1(Y=0WX;847oeU!5PgBGFT*{>M}5aAqH+TsOnE!NuJE0 z{U$0kOq(i>+oQJF*N$MJ>Yv3MS71hm4bs*Zwgh+X;DQSY0Q?@&TTnh$d%dmpn23Tx9pwH*CI=+!IrNG~0vI zXH=3Wd#d&D4CR=qT|!lR!#iqd(d)d0L)G(>V%VTyT$5*AUj7+M1oHiRMQ}`ez8nLk zebjothDZF>D^z#y3vl%d-poE%!Kr zP?RgdVGKHscm%@-b{mv`;AcIUsQnj+01|kDyCu`>x)2m`DYug^dBgY%xaMVNxb(#r zpZ&Yyi}5nT#WFSQ3Z=V6>u-0F*rC_=uE|Y{&iMSNlHf>UL6tr7*LtA^YpDdYEZM3y zuY>*9^er^T?+5TXL}O{fj*a-|eW+AAneGdvx45O!Rm7D>o_5Fq&YdX$gvl~lK zB~s~6qT1_e5b5tlRI{+S`q+q!wP%F2go|jpp|ZG&E5za|K0YJ&Cnp}rMdZTi&6p`D zp`^kiMo4#z_}h;{LQ-HH74iiKAMWx|$psGW9&Yz#gz+oAotHj1M{5SB{5M#?`1BCQ zBF;hYQ)ryJx@rCeF=TB`1bov0D2+RBJ4d+KE{3vbZ@B(AN-!J^qflruLU>yUAVUhY zlXG!TA0isYr!%a2-I<+i=47f(r9+x$C9hJeV(u(L4IqeV)B)rj+;)ijz7Tn+vDv(U zOacp&wVn{eZ#P9~&NAsw94=+86eRl01PyB+& zK(b3qdRfeax(vH#h`dKSCv556^9yc5;?ehR#foqH7`B!xKNnVyrAbXwfjQcB$5*D)pP=+|jWtsJ` zP^d$a^#y-zCoHD5grF7Ei!|u(Pip#mQ&Zhw+qbd4btQcBf)KfpBIoK1<{;ukn^WGR zF>0CQ7ZMl<0PBD;$U+Ck8DIfgjSnC`A75VJ-cMc{3F0-f1Q47))Yo7zjg<7uM>XL(Dhek6mTsgktQV=U3#O{V z+SQezbq=SPkAR&_0^q8A(NDUDbd>R^9I>AI{I)eyreaMHnO9W+PDzq!kWO2d`e#!P z%`CS$h{{@g0T*7^dw@$K0ICqkU`@iPFVcvjtuiz5{3#w1Wz9ktYcKGHmMr>xUTmcSeM<_Spk=CrAvTQpgPv0q z&u}>K$w4d4I$xQe40NH3gtWZvhc{Ap67689USk=9XL2jx$_i~3`I;=tLPZKW;|OaP zm94feM!dt1v(Q2T;ah-Bs;ra`I_JZGT&7y3ZHs~k=lo|k_Ff;K%x)sIB`9i|zRIv+ zC#qKKj1H(E%*UZ|A$h%I#S6(JVzL|mhrF)jw$wk(e7~ca53xoX&L3{)^-c1hvB6hh z>uS21X7{UD#2%-?KOB`XXnijkQcq}|5R7n!Bs^YBcT6q`M>0WX++xc*pPVqxc@rwv zt!eW7>%J<-LZ0`S}fvWjQ-GYBIr-WHxPD06Yy!a=pWLm=}(=1;>~U`!^n8#?zc|c!_%3& z#fhUxDuBznyh`!+DjN8&bTCi!d*Q0HYZLIxH3B2l##uo1-Px>BOS43fp#$7h^U zd?+s%_Q8qDe%L(ug8yc^qs|!zD1Rfb{5w5IGeP3!%U`28K-wO6hDU?$1!vBoHqIeK zBT+>bQjAdON-V^umuGF*2{}=kLumV;_!zrRx-G*lpWsY3x$)C^3h;ZXIBYPT*Gw^s zaFo~>%*6%QMPiAXUEaVN3PYympkUsx(TEWi?lY}rx>!H?u+fbZuicFdjH@t$`<=$# zqs~i8r<$m?c#S;;u{q%eEe0vwPXpJSbtF5RBJ>PXcZs`Z9iQ1RBSrWt-AA9e;Q2=Y z2hB`2X%2aV&-&iL-Dh-%d-}|g@?ET zb#ztPvVi8cP2XCSw)I_DjD5vL@$VNR`+Ui(#*qlKB(qW?@rco`?=XAFiK zTW%p;BO4YulFq-X^9SdPMI)T}RSs$cpC7}9#jV;IM1Iq}QHTwLOHKAkq?mHA0TfKN z?X+{MpTpuGN!fx{tJJjsqzF7xJROIZ-JWrG_=qR+Nu6o0|E4n>HKWse%v8I+ftjM* z9)+6bNlt}Xo7Ro9D3*58;M_^1{rVVFM=R@3HcCp#;>Ppn>n#wxw`CmV54OlY7{Z{7 zBY#tS2{Heq`>F{2xOHV)fWf>e3w&D zZ{a~7N?qHuw8yOu%GY*r&F+cgcksY^VZnlBbJuDbl&l3W5ITJjK)Es|FTSl3gw5`=QO zDR9E6&HyTvU-ZF+85jfO!=Q_bmSM3zj{4>4RA-H~P-&!ieV-aIRASU3lNwS>7x$Mw zHBfyj8s}VtE*WZKwkB@eN7eDALW9&9vJ<8eVZa2W(hi{(^x*E6yDB15;KmY0@i6?% z>%6oXS_3QA;5B6`7znP42g?u8P%Cetco90H;#0;ep*ZNLGy&RMP+kTxU5F@}7MuX< z2ti2aW7t8h*7ku+Cm#!}DL4UJ1%cFZ00g-e$dWrgY7Y>ZHh+6T%?`f>-b2Lg4WKNv z+Q+X^wHU|d0|2^2%$-W{XNiW-_$d_y7R-?(HY08F(KKpn=qslxrQx01)Jw3XrkM`n za<`A8<(Ykha9|Xyg@N@-DG!tnh~YRcsEIW4lCc&Tgs{Z_x$IyAjx8REr)qU`qxgR7 zS#ns?NhRuE`gn$t1%Wr!+H0w6sk?0HDW#PV$CTpc3ulQb^1!AQ1cvS-Mn=IW@vmg9 z0a03_>~)59dv({_dkw=UwJolRL>vE0BL{LEqg$Ne|wj1w6y zH341kfVr``GX2W-5tXF%Qm!K;f{GyrM<~op--$r-=zqTYlmz4I)4!06ef25-`)SjJ z88!A{ri;WlRLlG4!2`9g55opl5qBp2tMK7j`-mQAczRMHojcTqKq-*bC{pp#SgsT7 zP!J3mf{N=C%l5Ot6UvrKf9#Hq>TY=p{v1yMOD!`-*Hmz?hhTisGZZ0%6VkOEk%xV~ zNnQ9;kd>wt{w6-yg(I)J_^{yLDi=>JuKhoWss!r)8Z4E?en=FJ(n*~_8c?-X2+i#n zF|Tu_NQKa-?wj0^s`;+ZM^R+5vN^`5Y=QN|_qMtC z)SGNB{(cPMc+Vx7aZlyN4{Txb)ikZv$nblLJ}KsXV7`~?IW~E>5|7!jYoDJF%-hmc zkjDIe@V^#0&!_!|gZu<~t?II^0yGFW;HV|G1pj8a>3T%1M96~hV|jqc(sVWUy-Aw& z-E_wN^)*R!)v4gZAe;vE_H0vbFp;W6+V~N{5I-yldi&w8q(cw6fId8|2^a&#tBWx6 zxoZ>n80RK4t3!($jTsA50S-;ZvEZrDb7xnT-BCgt)l3>uyvfnPEqDaoC1s zh7Phz-eAV?J+acjB8~#yT`H+VSWs$2^JG`T1U#XcM=AorSY|DZ&ChzB59Ai1=|7;0 z6G@7q;ZHXwYZdz=3_vinW9;Pats*- zv@C$k=2rHh`k>QxB4A+`mBr-G>giufF#m5r1M?yz)WAttG1GyQ4O_iih|xN*fgBJH z;+lQstCF9js04Z<;7{gIM0kb{OM4LCCj$}P#e!TtbGEYJa4vN=>6pw6PuurD|7)dJ zpW1ID_!2Gry4}09)N9grSk*lY7;n0?(TfcR7D%`tk7_A}@xnxpCVr2DoawwW6e8#?pjZoBpKa_fuz z`Q3xX*8U^^^UlKUy(Rx+o-g-*X}!C5_x`U7X`9(-=SvZ>%-b{i@3`n^s|<$nr!(89 z{XvWoOkO5TJ{=j%6Z!l#(w2?78>EscV=kU)hZ1J7SiHc^3`w-Ojixae4KuQVGaw`@ z;WqewvN3!FDE|asN4NmX>%N>p&N0dZPr_UlDKsa|G-`;i6Y8t4I%gLn+Tiu3Gl*Bb zX2QxHao}R!HoUceXCcHx!vM^xa=cfRt_`UzBW7RgsAylHt^yoNqkaX^Z0!N&<*lwk zLyX*jQtd5)Zuvv)DV^Og-og(LuUtf0?izl6vHZ0~+Hb?3v zG+fi3X1!%a$LcP7ec*`;xa-xv5;QyO^I}(8Sb>v5s|(5P!Og~5dIPi| z33^a!^ZJMVM|*q6cjh0h?1J9#*M)b>cR%}eckuw^2aow?xV^tS+S%W2ukP<2KHlH$ zJ=@>ytndFKf8ZB?DGz?x9c=CI9o&DuUMq)1BZa`nC@Z9GX zZnQfe;~R}QJP~sRiF)Lh5)gzNS5d|Z@zfsABWDywJEs!jE`!Ui9_4*+f&Fyy*>nq? zt_NBoU*abq@DFR-B`@H#IDC$zuoEQrpxTPTVN8t5t_4|5fWs=hta3l4auXiLLFX09 zV}(!~28wfJ$ZrVBIPxW_QBwmdyNsa%=y0eJbbid+l5z5Fs`fz*V*l32q;P;!#)VrU z-}Dg$)JWdmH|VTP2}Kyqr~`^@wO=jSMAR8rBJ{}VlAs9^`mhFelt^816o|Ux6XmAj z|63fB@fg_8Q_@m(L9=Hd{1Nu_e3Z;4g{UjKrKviza0U_QTL+O%V+71*W8EcwefM4K$rBdhh<_DNpRRoO-OBd%98ocOvEwiPOPDeI+YQr(SpqUo4Ib26vb=d% zWeS2*)E>H^7rLT-U5jlzwQd-}B-EdqV6s4k+-v+LsXgM+BA%qv8eU#pK&)$?RlVP$ zL7wKu@!t%RP`k~sQsZ}CyPzqcoMO4oJ`wzN3>8F6A=%{fb%ze(`gJ~GW4uKI34b)B zH9ac;3Gc^lS7?>Zox5cxM*2s3EASatxn~?Yd>^M?+B$zy{?YyJaBn_JpFN}JGgQJxt+>&qT9HZ?Vr z1rCpTeJNmg(T6$Ws+j-b$>zduUQ!9i>*YGs<)f{svchl@YQvQ>-n1Ix3^iU*6=3vi z>c?wT&Ap&-Cy5MT!mRKB)d`2Cbjex1&}k|y)Jhj}mM2IU(#Fn8J;O^|)QgyY=A>l? zlpPvjus(w@>4K*W0xX06<*QSRo%9woR`iF%?qRRaHp($-n6?aE7sbOD{x9rit(fku z_%j!o3|A2;*f~T_7^?O1iuYqUPrE&qGY-q6gPHM!SCmq?BH4Shq~sf08gT*{XWNLo z{$=?|{40UbOarlR@FH95aAwk;+@%y=avBZ&NZZgb?d3qtMpd@y+v937JO{Q>`(TKqqZr`n!qp4!Zcc}xrU z;Swj@7QtvzyA`;Y7f%5ih{m4Q<=|RS7a1>j7*t`)k*CRdSv|xKSBGY4&Gk5A5W0b+ z-W!He3K3XEq>7yCFfdh-zS2Aid*(bcA>?-A5i-@eN5~VqJUXo~kq->T;3_Y{JZ#AC zfoJBE3ioHi7M=q2qoP?F8t?~#kOeIGJ=4F_83f~|=d)QR`8}{FMHQM$I71RzniC|N zOSSU|GL%}US@NTz)$kHG#*9lTxp~MXQV)_ION6}yGMgHlGyTC&kS1WI6;VP+7OB0b zDp*69ZOz;Pqc~J57%@oT^sWX`O+GqF(@dFhxtPBp3EV8+jztK93OPCS!yz#djNLe) zUKaqv_6ct+eh>4y6HvOw^kv!_2N~W9{r)mn9Mhp2u5=Q>-q^V!uQL6QN0@ zlQFjW54e)jlsFInH=c`mEBz2UrH%M|l?v8BO%AztF~co> z@cVA@=Jr^&)#wH5SW0W8$yk&C9+ZH$3sz@QAo@$C*MjDMlK8HH|Wm(xN4D|22G#N&h zM$1pQfJZDE$22K2I*k|LAdeo2;Wd*l9p89llSR#p+5=oZ(E`n@Y*tQ2(=@Vg`Up(b zs2MkCIlRFHdkiKKLP>i13Xu%RVz@kX!pd+w-XHB7D$%dxDNZh_!SIMK2Ue^V}9m(I<4!;KvLO)16gE0qaaB95jXaHFUrNy)modgF#Gg4HDK+$dbygQHU%r7^HEtHlI_dm*(dREj&|YI)rJ6x$#s;~_(2&_x~+h-78Y zCrNS?uqtzPx*7yI6Ew<4B(%zo%4)%+GBFp43~H0DBYo8lXF6|%6-=Jfbtrc{v7iNv zPE^Q|FbE5>LFv`z5#s?H-C3eP=1OB zI5YnvQrCCN_kEI~)R7KB7kLeq?kPV@z#`qzCQSbxPDS z!XdR=lsVFxU1$}Km`r0{GW%a@=E4#my$lz8!u{1LUSfs>q zpczpLWlUt1(#cChH>LFI?hv8}*eI~XP+;Y@{TTw>p{fnK2>$C`<=Y*$%dW`7e&TqI zT5pd#hnKHvB$4VqBLAif9jm6$bLiZ0fo^bI@ST|-LbHrWl%xvqJupk?qGS*!xzgo^+lu{Vgyzv2v&tIC;Q>^7Z0CTBQz-!@y@S0#XY2$ ze4)pF2%G?>(IUW!Q+Ch@<~n?5w4S6!?SS1t-da7HS2qLv;naU4(+2LFe!$=Zo7LCKjxaYL)P>QbJntPuYhw{AGa0jzrCLtr8|wQdHeC(AC*AbfuGl}k=WEy#uz-iHq!h^!^ph`qiz*dMo=e-nu|QFVBjSp&GN}Y@znfIwc=FBi6Nq!5XOIe%sUYF4W;bKpl); zK3gCuu{xCcH#gR)+K8a$6P6aVAdHmE+hIZg{7EhaU=uyh1lCtcb!i5?Wzyp6nKRl- z2mS?Z<6ur+fA`q8A`{{RE+#uz>1wK-=?_~cZQRFQ=bsCsIO`oN3WJPq*cCqwewAEM zTTRjkUu@&fT%8BmGNoR|<8o0{&Y_6~jK4fU^b9+i_j!rzSw{YwgCR~N{i?m;br{#~}@ylk~z-WAi7 zv1xwTQ4f1DhhOCep}C;xLluy%1mAm^?q#dxZC^GWTAx0DLia|+X1!F<)PK`wTclIW z;)3y}0R>7OnGp-1)*=b3t^Z=31g6OAudRdqG}|}**nh7%NB)XGXJ}~|wj}D{dRsbP z?iL*3U;{bk?IX=Fa#oqbRmf9FfCBZYs?cWjgXv+ zC*2|ULF7w25a?Oc3x3A_R*hC^PgUu~-`2mWJ}p1Vpg*oWRP8R#Kqwu1c*?Xm5vwQ! zCV#rvngr(f%J{Q9>*|yJFuP<$yj~MbsWQKSBDI_(r^9QeC^=Ki3E?FEG2_;%$~=65 zyK(hmikt zc&2s|r`ZuvyfuH;pjUM=JRJQub~Dsu^HdsJ8b+`7%HeaAbJKAtVdLGN7xUP|_LFb? zB9Q)7^;0wEF#=VL#C?1y_LZTVk_4ecI{@BR$dv8+_e zI}9m~&^ax+j^BWB+YAzCcQL@ynnfd7h7C)nPk#*5hJ z!do02CvQZ7w4e4NY=IGyN{Vs8jfze|zO?#fq zLi8_~W>GT>Gw7cvy(s1_c!wP*NX42c9!Ch2dhqAZ8P6jVz#g(`ceFrp2lPkI``!#X z!t^xkhZv4;Q|#4dQ*JL67hF}?IR^Sl$j-!LnC`G~@crpFcn7#^qp++lY{A(E=wwLy zu>AOV2!3Q*TE}>MjG3ZrrMP$H^ImycaTrJH}mU+)+N-;pYJ-a>3+X)~}Bj|^TA zLj2~GsdJsHInXTi*eaMnA9y6pjwdDPbl2?3$P`&K#U}%ipVrKw%p6Wg0vXUO-p+P4C-e zqg-VjE?wB}RAiU@1O7e5=8Wy9p3X_n&6_$C$_h3z9G`1UFfr-^)m1@FCH91Mj~WEDg07}(1=qLM>2a+5HCi8jI& zbnrz8j*!$Lse;cyMhyWx5@J+d+3w!V>1cE@+ymb4%?yX9`U^VRo7r#T22-Sbgw>6s z8q=YvL9`D^tQryR=OB!CE%9YFmFbTAEQ_LcmaiTnwwxO&7fs60fb&lXX@J>180jGe zMuRe!NAb^hw47DR^d^BveVPjNf)g&wvBE##$8iu4|~Ozv9pGj$dzW zMvR(82p=e?yIfict*A{RbP}SwEsWF&1`T6kRSS>z%%781s6c88mP>mIWbeIJCgZ)| ziW+ycN|*!!mG(6-A#o+S8V`;Df}5oLBv)XYuR&)T>3$?uDc#R(1rlfkTtR_qL|#+P zQed+>Pa}K1k;Khwk{_BIWs($t72^BN=VV&toqHX7{&*Pei+Mk!ZeG8vYdl`EiT?{Y z`v3AVb&0f*BuAwS2b*X{$WRkWW2ynq~eWU$ouOTD-(;U(!hPlJkAJSUe6k-Mg8w(GowY z(%_>|-q$Hfm=E<^r1g=*rs4WpCH;{cMbp_D`XHLUT^w6AM z96%&J9}Y3PhkT39d3wQwmnrdBCevvNJ(!5h?*V)2@m0`EI%@)Z+TFxr0mx&yaI|^^ zHy*t1w!@*9O{5zK`4tS>Y99{!y-Q{_Nz{+*XVJz@-Y9jAju`F(Sy=OP&c*&f&x0Ev zy6`s8I(x|+QfM~MIwLrN)^$(ep+OIlp$l_Ir&DZiKP!$pNRJV_2@J_YOFNf|VA8T_ z>D?GrnY2#kvaJ}tMiQzh#2?IpVcnbKIU32ZNsNrtaQp#Ll0Vuv4c?IAz?0`L>JD7!t{3?!#myXdoZ_G%9hHV4i(hw;#FzLk$ zMz{&OU)-aY3Etwq_1>tD4T2G{k-kl~z6O&0{&th2HWRKUGl#J2G287wV^O;FMUDB#hm3lcNG*?v2AR}YWk+e}HLNLp z9f8#(E|gl|$l82=-hXWsjFBA*ttn{+Fou+ZRb-AaEX8kFV&&uy7>{Ci_V8~e2CklAQ^m6WxvZF?waP!f}l{Tm(X(RB~YuL zD&Whtx!=4CedJQ0U?3{^u%MCzKnUugghLwDv^O)$8+{;KTM`tKqyG8i+XCdOQ#`R+ zZD6ZF@Lso#+WD8~D6IjzUF87R?bs3GYC9iiy~H{hPS+|p$$Ay##r~fq>f#bowj`~w zaIE+?79|Sc-pr@ZUaYM?Tix7zvbwYS>E7O&HP?og5O}TS%LaTLAn0Dt|J=O@`Wg$M z1A}F;6>z+p4LkJfl6*WhChLbZ=X{){ain4%CZ(m*S7IPC_wLloV+Yq<-Rq;_$5|W( z0+l@JBf^PBGk09$clux37hUXMuLs8~?o&kl3flNs&ww0?!??-+J}o~+iUB98CQlp+qd^6&y`g#U&_>k(cH5?ad&- z`@8PrYa$mB838!GtBHKQu|loOjyaP3!vd0Ev7mXJvv+cCt3$9u7+)%6Ot~EtMaW3T z-98nv$RUvSsok)ao@hCP{#z6wK|K_$de)@vVNSH1r6c3g$!yzzk4z>Hq<4>@&Jd(#w-4zN$|oSzXzkFMhnGQO$>IwhD1@ny<#6? zN<#+i3tCM^Y|&e0e5UmhcqCp{JZQBHm&5KmLGohPh1eNfVuUI++ZS z%v2LpXd%;VY0d{53WC>pi`ac)a$Hu1$JdDHlbjcnbrs#3b;V#ytf`e4=&&0buD3&2 zt)3z7#@NMzNU#!#F(b8gQuX%SoDe%4ZHJ)r(k<)Pq5{B0&6%EZ+uIjMmmhY|BNWz} zwj6pDvKqPO)y=g_q0MA*5FWAj%DKg6x&#Qc)OzZ`5%H0*NW4`;^Jrxnf*{|NU{PW9 zV|h%BrDIo3NM?Df=)MrLM(BLo9X*8zy^bPx1Nfi;BADDSFS4VsTaIGbc!}G4M;|>J7Cs83jShKzdJAD-i9>?%tl<@Wi-QhBU)_uG2XI$}$zk4<;ltlL z*(O<@tnpeAW1(M;^YJYF>97&Q_3%TINJ3t!7C>kJ{8?iSOkY>P_B*UlH|#?$QfcFa z;LQ?PTyT0X4^%>`q1`fkCX~#5>_;A96`<2rc?ZPo4TL(BD`bVXrJfpj``N_Egyl)nKsaUNpY zfhKnbiBY1sKP<2+W_6$Y`}oDcsandMTd*ZILiWZ4h^hqfs@Ff1_#lh)K`;;m21=}E z!Z10FvV-{0pjg@?F>ZG4#+d(~y*KYx+(`CC|JSGB)bYAiUbqTL%An*tf z)NPdd2~$8PnW2(Rh>juxkZAdiy$_@l?t8(h;K6L(0BZ6+yWX6vkK`?e9m0wtzadl= z?n%)+1JDFr?T0U-Fr3--X60veuf*%PLe!gojqmTeD=35%tVF!Sc%d5*m+<0{Ot+Dm zK!LC5NXfJH;&+o_*o@-f9Eh()nL}>FTv6|En5~ui5;rb_M&q4kymdqVHH5XnmMzRM zjhui8V1j<&dyrn_0m=j&Co+8>8T-a_ikG{9aMyP+iNpP9vMykd2j{R(+`M?iQOy3z z&S20CBM%S)7yxvJL5Y>|>huHG-Quq_z9=Xt%0hvf7RGhGrb*(ALx5+(cKzK>odIqH z4#UC?SE9cN*k6txfU$5>0m5Mcj}3F$;Q9glf@fH9qA;>3fDp32hBp!* zLSsq60dWvpy29SZWHRHMb5K%Xz#UQjC?C>miz`kywVXlH#FhOyk^y{Q_zOc4BOAYV zATB%qh@)VlxIrAR5-wxOlt(dzNb94-p%D9nKn)y|j#%sP6IXbC`i3jFmIt$e4gW@iORX?r)CIUr5XCY@qKN?w z*Z?G%w2&Q@q}q%RhaiLP=$!%DD0LWMs>kp;OfB^hLyaHtweVmdKoC5_p_BZnV3Xkj z_?+==pzyP_8fdr@o?UV&Olf$(Al~um9rh^3W(G-saoUg-q<{-q6FW4*oK|3v=@xLs z%7oJlg|p-9E4Ozi+1}gi!+Vt53MU8pY%Jf;-yUCh_03B|+ki-KKWaGE{!z8DN`#B*M;qI@Xdx(T?}^k7$?Q<6qn4@E@&aSHyA?sz!ve{R1o#yeCw zf68!&RsSi2{Rj2>!C3#noxU7tuy8@uKzP@CxYX}t#hqmwjwyj@2Rk+h%nsY|=gje> z`hPhKZb$yl_h*zh5rD#`T^sV z=ncNT9U)qGTzh^DKOU>+=XjrqQV9BA@fFRLtK+_KK@GZW=w|$JF;FJ&Wp)ccer97~ zDlbP++zv(s1vBFmRgp_N9O4JqEvhFH5cKQizYi9S!*eST6;1dX`xovQ78AT}p@3+k z8+XAM1JGL-`yaRRdbY>liGq;Wep8jvDo>M;lO)SCbhPzWn#=M~J}_8RAD!9Y`bN*&8mB&jjgiG|p=aYSj6!i~b<> zgTv(S`jNE#VLpLdiMm)@kUYUU61F(P4Puv79Fu={=f(RVx4-#J-Ze62_S=n3N?k0c zKFO z;M|`(z#T>YoV$#tI1e+#`6FjtbU)C4MmQd}@aJnIj9qoW$oB{Nk;xO+c&mAEGHTep zz?8$EA@zf&8w?)uNQO?R^MMYWgDSdb1pxNQQBj^cul3#3mbO-0>3FM#n{D+PcoTh+d05G+pCWQIN z<5ejfnCo%*65acUk{aWye6L%Lg1q4rMh5xOGhwodR4N8paDjctcX_BXi^_0d(;E z*M5s;(Xaj(qHSgq4R-Xux^~FA^y@zk?T+j3ua>P}lD{qo_YuEuHwo{Iay%807=}f` z&knb%-|kf2wRj>+7>4%NCWd^}x7U<^_~nsU;Ci9`cO)Jb2CKzgq1_-7?DHpasLaD} zP;}4TJV;b^-0(N``TI7=Ed!FFiz`Au&$BgtdNHu^qgZA9J2m;`8;u`oouubaEXu2B zn7HsG&f$oruaKMaD@x#KZ{W7PZ;%t%IU3eyM>`!6)Q2LHL&)Qim|YF;c~~zR_2EXX z{iUZUv=tri3B%^2-=ZH7`+|N;j!#98KVLnV+UPN)^zZ=>fZxJYq=tolhs2EknfYfC zc}spHW8vRv=0hN5bjsqSfZ9cnx{HO6hR!9|Cs$-$G-n*}v)gIKtqr8!>qOaQTBM*6@Pgq}Oj24?B9z z+GtPxkUY3T!HWMH&-kx!fCGl-YkYY3wMxAlgk$1tZLgM(lk+`k=nMM!)^z+!D`-6A zk0le?ZCA$7TchQx4Kj=o4@bbzl!AX?iFR*GS);qd87%k%f zQlN{t;WxDLeY~Q_Yg>}*=Ta_zN=_C44U|mf9U2=80?nhu8;Mpp6L~lpk_JS_J#LnW z*!p~aZE;f3Sw}vw+EFzZre0ht`uWUV^w@@dK}|i{r2eH%_m{N%;z7HWu6ULB0OnU4q3%CjNp1WZ{RABJF)}|}K`Q4YBLBl9v54v12S&wj z(9ZRmoLYPZ*d3 zR%~Qte)DvWH^*01B>amJ={G}WZe5I>D2f4*Mwh@MuM;|m_%YIl=y~QNI@t_)4`1}S z#pwP^&Acmg!TWR9v<=*t@^+fxn*a!2=*R-cr~?0Es)7*OFq=j+Z;)3G!W)vXQ1}g= zAa|(^TZa|odDP>O2sr8q@XtA{3?Bdm%r`k{jo5|U>tq~)7M+TWvew65S|C1yMB^xc zDkRv0#2!E=fK;9-AC3+JN)*QOZ2%921Ebm&-ogdF;3tC(jXrbW7N(~`6*q(b5?8M| z_IN5M;{7Z>;?ZzHHYRk1#(m)5c|hTCEGVak0f0%NL?PVuCMoh>w^70Kw2nV})aG|X zxNbRdk5MA>0A@$|P+-UMAm-{()v-FbRV{IIZ)?6|$0MSUD)e~(*RP@om(D?2yZ4Dc zUvXkn>M`pu`@)stu7~K|1ND7R=xNMp!pz5O9)J@#RQ0arN4$;vpvX+TE022-i{-;L zA!*4Ix7A~sS9G6EMpWoEaR=A61A$=w&Rsyr63FBWX>R_y!w@+P|DA^+nhYo%$G>wo z{GAQCwEwMz>2WHIMBPM6DLGz%AXyxL|I57^#oFeHetHZ^-qUys zsZS^*4@EJ8g8*{h-%AkU!+BeHCk^N|`uDCig9_bq`4K;(;K{^W`>@WqzWA8xGl9Bc z=jD!s!6{TwJZHSkz`25^Gh-U_6W`%!Mv2NH6%_=`N3FZrkl-vtVd^QI*xKKD=$1>k z>($l_*u8|2^>E+?<&%O?7o2d+fK1SFO=xpxZ6H?(ub$l0^^%k4;+qdodL9elw zcsEk}a?IXU2hq$z|B@CxvrI2~6@CHVL>}nhkKnm;?^@>H($3{0sDNM|1-3Z6Yx%~F4&!noDb*XcgyFhB_7$ogt*`y{ge17@jw3? zvi}kA5AK5f1WUu$z91`NyY*G%Q~#67lLeCe9=4|F?SD-np*#d6eucz@+fU!4$KjJt zAJL7Q8R`oKACPbZFN#)&i%%4519(JAKqCL~`@cbL-&vbY>hGzKT%4GyAR8v*(MZgeQ5Z(0QTh1iP6_xt@nf^k5_>y9DSOU=s7FHv)n|}-W0Vh?z z!qWQbBg{D10w2FZ?_hF&#H@+=sh||QfB!pl8p4u3rvC5$MXmXIehTb2b^9aY<^&~$ zwmvB;FUax_Da0(qwUh<rC(IuLq%0K=H>}k44YCb_v5?Mp?hW;T$7#|`_sQw(2g$m#LhYw$bS<*uK#Qz}( zxNl;Q(gdO;L~!@(cae=#0s9h>i(h{i;?ewU6IGJD2%+hwwX)$HTF2kyKvuEEjaq+6 zAuI?K-Yf;@a~&N(@h9cN{@qk=A&TU)dT%J+luJl~pop3~12KG3IP7gw2(wUv zvpiRQyn77;0%%rr1I-gsQFciVC9MPG`7uFsjY|h(|JMzPM{8r*U^+oikQt8X4ILQ2 zoemfcz}_nZ9S{f61$!T~>CV`GI*%#Tjv{-$2Z8twQCQ=G6vL<2MBg#=mARn46VVl9ZvxK z4xW6%o%=p294%iFiFkRB3825D9^MQ?qHdy|5>egHiW3hy{4U9G&fXULA*u_LjMpMO zuHQ{S3vbcX4mt7@`AfV!gE9im5E8tcl0Svt{PI)u$uD@0zETiZgZK?9ESyKE4M+hz z;NF{60;O=K<9Yw-mX&XQ`-rb^esEXW3p}~z_?0|9oJV*jM-2U)r1BYKZ-gURrC$@v z+#~kAOY)&u=5CmDw$vcq@~!N}I`&%Xi0>S1Zom-1QU<@rGaKd(lBRb*zE zT3N&SI6{lehb$CuGl;wS@&T`eSJUIdM2fou^X@#M&^!tI^|x3#gaUfU1XL1hDVRtJ z`z|Nb``^DmkM3%{5`k~6;d1iaQNEFgNQ0vvw`K$ukdQ0!e2Leb|B43tZB=}$)I-err8^qeE6<}wKbq*THylmYyGrrEqlW+gelFax=3+b^2vG0J(Es$^wc(FV zfKXbmU!X~M{RA(ip|IXo1Lp2cHHhxD75S9dL$T-3J^@U&tF6VS#QwQ@e9?#4jJkS{ zy7KVFxktAhn)#0#aNn(W2tVu`lWcQ7eRtmSTy*375ZWGZX1?Ob(YihO9N z{gC>IuH?nzgSv+NgJ;tg)*-wm;%jgbq!O)3$p#PU%d=T_XFh}*K7in#Z8UG`rT+ep zu#WFjX>een?c)8{z>Qdc?I5OQ`{`N1pKi(j0v&q2Fp_jMnGyG6bL>{McdNK_csq2( z?~8YM#eBr^D-L6;BUB$(9R3x(Jh%96MM=gxQUFL!utAO7f^nZe{{zy(nFz>cm|RnH|5r)^h+HUe$Arxjd>3PrH~lo--FCdY;XglM%Dg(@^`w`=)cbFJXsZ zI!;394@`Zbw!Da>G0BgiNI{eJugv+Yzkz|D6)KseE0!mP(2BN`e^7PlOOrXdy3 zgE-xXWdhV(>q{|69U`sYSkn|VD;{Okfw$R$*@1W4;mAB$eF@1}z8{a#cMubTCMQ^Fu8s0v zAZ!sCgJ|k)H`~p5G-1#3Lke(Zfm7S^=&K@h7@2`zzXzBZk%4iBPDa~yEbhs!{Yu6| zoAqk5fj^5j>=0Rt+JJ-%6ZsnfmoI_Rh(-ZRJD3{Vj*GBFXyXR5!+iQK`V6EF+8J*B z&y?UdD0oqb1c8r;fY^NJ!_ggZtV5OYH-MZ2op3%pX#IJI5Pll99qoApjMhBh6R;_6 z#|^K~je!-3f(C)B#Dbg70DuTZG-TObr6`W#J9D-{0*U1m_!Qe5$^3!$Xn>-oT>_Vh zNTR77D)ZZlLGrJ`?$>L4%z;}md(xiEc^B@JuSXk8#>H6QiZ24So-!K^KFAE_H35Ty z#r$dMq$pJP^~nr?=@(lI4_k6Qk)BaW=24_}9>`sYKF3fOX5Q_PU2hP>nS})~kXv?Z9qkV1HGeT@v2uW0stx{>|IJ&(!=&))Ji3Klj0r4Hig8+kiU;$Rz);Sc4B6TJFFGD=O!s zg%AGSuospCXTpQp44qC9o!dgm(U9={)7K)j7}iyw_qZUOpQ~EiKEQS0Wqz+N_81m~ zriJD{a5efD?HX>z23ZtIx1+N>p@R!n1Y-dyX|FtT$y^Tw=knuE-{Yy4bQ{S}LgS}j z;ud{{vmLM;C&hk(gF<*v{Euj76sa}}E1jPW$Q}w{e%z8PRS-YKMg)8oS=%8lh${(y zg%EG=)6cIs;V$Y4Tk`FkV~;8vOo3$?{vVl53CZw9%mnON{zhIV#UJwyGatZ|!Bs)d-ik;=2oheaLJ^j7_-lnjj+UCt|`w$pbt)ly+4A_3rIS zQ($NIU$0aA=_5q9gVs;_g18SP9*^a9YaV=y2Ps(r&cdHOiX=Du@r3<8#7p=S2pj!$ zr52GXh}0u8g3dgFze2w|N`Q_f`}`*iOZ3g>f8cL9?4d^`{ZFtMpc_`f3wizkW)~O` z(cQ~$eVhz#)IwQXfkL_xmhX{nCwbo> zC|Jcon<4Zlf+@a(1W-3x_}irUr;lLSZMVm-k)j3B!@4=78&2sLCdEA&G|5p@5|tb8 zEk5Ey@RkqO@GAm-*_>EI#%}enk+0GDDXBMHNglT?I=E#1;f+fweyerywD`kYmsA|B z!qJqPEj{EE(t7d94Kggn5ai>l-F^V&_EDFXAtH<-7W~p zOva!7DZ|jgIwew-|9*qzvgCnsrqp<>q!=+Jq z?l1YvPao06U>_ma42*ZBW{84L$RH(|K=r;q2?;Vtmt*n~MI zLX;fc91fnv6!Mj!JLdrA2FMp(0FD+-NInsu!*eJq-a2@2KiHQPccGqe)^6(It(#6}v0E42fRUw5#X9gz%R2WXlqtWk}81e{< zy56GRT#0KUZm{+AW+<*bMEA~o$Ft>8tMIlg;qF;4De*X5cz!OhPJH0vu5A$>mpJh; zE`)Un_6MC~;-O)oi{tz#^qj=wg@!&{GonV{iQiA>PovFcQUvcWU-=G3KM4h#`CpNT z^&-Ik%f&&Jgm&mZ#_9zkG%&V;BB7&SFT(zxfBk$)UG@oxCKUj7ku)IOJjYds-oV?w zVyp%WDRKiO!*S81k0IuUK7?s?A+kw5*Y)4la5cAMzjC-Wf1~K@t+^NEb0whWemC7u zBs{(t#J9BmZSStx^!l1`q1(7gkExQsN`CjjlBWp@J}`MBLDZI|Ik)C+_N) z@m%K!^UL`RhrCK;Mh0ip4kftC_*-y6+ctqk6BZ}F(=3dc>iMLRGCUkOW^AcqML7mU5 zI#W+|7uM<}@{dO_CJ~dA@hLv!ni#;ab5n#UzD)jp7$1>~s|w`=g(*I& zUBxanfHe(+{Y{74^}ntKUlhOe7); zb2B;lcrgusk2$X8G&p9d$uOJWPGKdteKTzvjiv zC|KEvX3^zBma-;vi7XUIJ!_bnNfst_UMoEs)R;CT{NGpxcopE(0fMkMaK(|Ii4DrQ z2GS~+MSYUf@+FGWCtBW^VNjZPwDp2sE>l{*SfELZp1_}IFeYSnVwFwPpx>e$ zjp}(tilxVo#YZ!#e11}zP{xEbb5v#U-%75SeMU}-6wNnL zjJ4AO^%CKiJyN)X(J#% zk-1=H zUd7RdYy7pUNdj2K@k-ixyn}MR|@6fb>=!v(b1bq#|5Ee|hAc1Wy zfLZ-ky^oCWXdDm^6bPJHYHtyk!}-zKY6DHw-5`TF`Ps)GVP>9b;2tHw+RsDN(sy@2!<&- z#D~N65{xyh9-(x}Z!0T+=;0UuitD??-aq|(i;95+T($o0jN5N-KUDE>tYR10*D#DW z8n5f%(oc{26ZKHRNs69}Cx-ITYq(|*K};wn97!jRa*KZd{EuX~BKC&Iu6)&PLSbO< zZ)yOJREI$07>q?`2BsNi$ax&%4JT0mP_#sRLn6{$5GjNnAel$ABubQ1ZMIpasr>X2 zW$_7*inxD(>1P zkDhVh3Iz^F^9BM&kni(^Sl2r4Jpn@cEzFn{N@&>pB!)ZniTL;ud~~UxzI;L9TTkKR zI{@G%4C$>3en%kbt!k3}dc0q|+p>Rr2~B#bj^6?)y;K3-7sk7``<}dnE4^OPZw8lM zs_M5OOm9{2JHbqks<_(@{6?(lQ5~-XPPfVc09v?)<>G85Xh^)~BgLR#6O1_j{WkVP zXWs{O-YAoxG|$T1KreLRadqNjFeUq>bz$)vTqH|9rhN%=TsISK(J;P!i(Fhc6I(V9 zun0PTS>Z*gYoOsNu`3YaDX|J#Q7;h!y8NVC=+4E~KdknCTTjvGbNu{vt4`q#;aBlK zI@)AVkS_^A81jvDJ=|f(g*!KeZ?@AVpobsb?v&&2rJL_>w#C2()TH`Nsq@Y?Zac^Y zD#+awObphCds-|h=OPz-RMfo0I7O0!Po;&MP72BQ`Kyb~Mm9Fuc##ir*FpSsgi%af_tp`u8zlO^*2-zLf6mfUau*y6ONJW=ajFOq1OpV!1h~o zZx*g^p&fsED=S#7g=_Kka`!rMBZ9r7mfx?CFOY(d9--iuByShj7pdNW;+GU}*5nrn z&YxrCA@PT6`1{1~Y~*ODZdUpC2_X#p5MD9`3A!GVEi53OUvk6D4((UTap(B)i)4K zp!!>KPpq(SApID*zpdw)9rq0tVFc*`kbhUzHI)A?HC*BPw{)+K=La@lCNcXiv3^YE zf!T?>1D5UO)-?%P#C5&AXa04uk1vzIkDU8;0g#U>OlIjfL_t2H^9W1$m7$O?k-xDY zzcn86r8-dj&Hd0q+zO7Xj6;1MMKOMx_}q{0Bbsr2VK71x8TqIuk5&#Gl6(F(ruHD9 z@!J}I&!7h+$Go^_3{S1#|zQWujXI}_bg~-JL*Nen{5x~167uQV=nuG|P zgFxA05>E~eBkQHw1S{bxC9Q4#vGv}Aly4MTLCpI z6~Dr{t=-)gPJO0cWg(C_su00=RP7y6`SFXgcr) z>W^52>V<=PaHrj6S;XlHT*3lX!fiRIyDs6oxW+jg`$JDq@rmm=Zh+VeMyv_52KFjH z5`+q`G~L}>xG&+r!udgnpTg|M1ArUhqs&O?Xd!w9*BU|F@delDLT`NW9=iIC2)mO) zy+b+kVBo=1nL^jaq59C^UpD;<)L#=)O1q*C7+FY(N~$Bb`ywy!sSk_-f5Vkx15vHD zduj?w$V^KerP`Gg(;B53VvC34hC{f9TTxPNnGmH;QxxEt*y5T!UTjrUEPU5$tEr|a ziEvYQN^Pf5g%K%HfbS|PNszf3P-a-MDXOC%h>EDT5Y0+kPBAG+Q>cnuugS=%PEYQ% z6#=T}fow}`Rb;3|kc5`{1!{$7DWMO4q?8)dY@(_NrU$K;QTtL{yEBr-YE4bm+D*94 zM@g{)w2Wb!LRb}aifb~W1Zff(iK(L2$*DF_kqJ~RY+Y(l6VM}69|Qm6RJfQ4b%SfS zR2lyK0eUH`$)^KR5q?N9vZx@2ROGhw1A*8HUjTI=0^hYDCnKVQSdAH!j0hA#41*(` z3BeREKvLmW6^5sUyBHUS(fsfKhX19)hz~T_9FsyvYg3#B0x*I6kXw-Tu+YULeAE=Q z0|>U{p5O$6hO!m8lOI#+&Pp*mJ4MkcGW#P%|434xa_D@jDyb12gfYOKP7oLaQWzyZ z2vyIIsp)p>`9Eed2HXVq1wwm4WB3_E!}plNf!OJG=|ogiq-fxOS}F`cL5&}N$&=-j zanW@2Gy*v7?aeX6 z=;-iOb%+>pC8s{2MxfB2FIz~r`6UI!(WFPO;MgLXhZB@qBR-A0jF=c6+W{B1W&Ma~ z#q8KA8ysa#ou!yUR_%u*2Vo->PCoq}Trr7{#K7^o2hA%HUq zb>U_%B848y?va3_+3)@%KBIrEP(^w}0KHfdImj-KpAwQN3JaCvnC#MK0+D5GQIH4Q zZl7mbti4!I7qeNwOf6HWn7i-^>=2i zP8r#*FAC0Xbj%&vDw9P8SjJbSnwd3^c}HK#M|0RBo6Edoa%H|(k!)=U{|)kUJzEb5 z_`j)H?JvY?JulYk&Uo2Bj^X846($l(;udfRY0#)jp2&-V#E)!wkSC2*|73E3tw7o4 zT-ZvSUnNj;nS-=A7hn}QWJ8KV%Q056H(omP(NOkuI%ju>eNwBIkJ?bqOKfh)s|+ov z!m)LNO6C$tNRA5+#pGd2l}LCN*gA9IPE0-Q>PTgrzADM1pu&v!ez)5Y0;-a9n`7(x zQrZ!cx(HeUF3=QCY}U*gJLqQAjr?vr?C!f1tBO_U1pn!7vHm}6&_!U9{y zj~)VE2;JKd%L$R?+KG*`SGw$YJ;&i zqAT#Tyc2~AWmczqW9g6<5*tMf`0l9QaK|D%Z82SeWxEV-+mI=khxc8VgWp+#X=?rL zqQ#~C@wTxni`l#^wfjb;=(qAhuj00LSs%_Yvh#wFYjjRoK^QNa3(~4?1WomIIj9dr zUs`3Pk$)nX@-Ay<{j?~`R#C4H8jVRV*K`;|om7sb(RPlW8*q*OXgbv8@`@t4ea2qw z>l?LbsjXett}q#Hv=*3l5D?s)9Gxcna>H3_V!k(Q3InS~=Xq;DO2hg*tu!VTku;6r zp4#OP1+u)HR>+aY4+@ROT(8X=BR*XpR>h58C=v6*L2(wlb#Ihi2q$4&5b~{6dFT7| zroZQ%o?&l!`$T9jmosqh}OC#mYI|UmXTl(MghSi z8Iwts>DDqV(+l7uHggJxza}$6oo8k?Q^KNhDeaQ8W_c|6ql2W1S!vEtgmmg22XkhE zYf>bk$}KUU`kNYD-piyjBloa?7W4N?BJ!nXGklLdEX(v^sRPpe%bizD7)! z+M+Zuo88P#*bm5{mdMk%%#s4bvP{5FeX&0`c9QCn%{jv}w$hatvdSszsv_!H9?M;i zA($NKur8-kJQq-bWH+{aew3ccJkzt+{nGfj+8))da-hrHAWg|yRS6`nV;%S6z+DZ? z+cwoWHMaW|B`Ojz%8WY4SW|4A{0M@m@DqlWXE*i2 zc&9N{M$Kf|^zcw=De~@A>DP$nFto_w-)6Hbd8G4mn`xY70jjBM;RfQO2XMBHmG+Ms2%uQ?bm|U2P z^-fBs_Ze$fs3>c*Yj?QSP+0exPN}j~4@%eKTia@U%xgwY#KXgOpp9fDBr5;ULYs2cpe`=<}=w4^J>X@I!cZ zl1?p65_;Eqe^GBq@*=2&YP}&GSlJwu2cv=P8Anzkv;pOzrA?CkpxVW{pBE1G%R=$$ z#G<9mw#C`4w8MhTfUt8gu^CjL!ML!jcR3A~Lr{ezDBKd?7;OSRR}(jjU_6ycaaHg= zSsb34x$0J$7P|5#J)h1-T5X?C*I2ti4C@EGa&!x(D4nDlHSM#tW>MSQ`E6r1+4nd4 zVV31=f19xu>0+>{`Ul?2O7&_bGc_}ss%7%|`oKFarSxb)IC~?rbNo%M=2F3SyvnS% z%bvL1Hmb~~ST^mTWT|_Rq!*J`Cf)L7p`;jQR%bUGgVWqfVci?>IeWO=^>vnTc&nq- zDsyoc498uoKU?f4^U_%3c7q^Cl`ZX1-SC}dr9i4)nvqYX-6}n-&!qCOz1NCz`ee!m zGuujSt9m4yac|poCqqhace_Q?7cw zL2g%!B?wWQ5n40fu6CQQ*)S$s-x-YeELArTDTIiSrqR)AIxqW5tCuBZ zIJ`))v{XHco3UDJm8hC|oSH}Xkms^g-Wux1HlN9l_#sEP?aZk?CHSK2SLET^DRvZh zGf0=*oT}Q5MG| z!L}MOYQr*Lft`KT6{X2irtM>ATnYH#w1z8d%Def%D7UwIdeYyC$9}PRs@9Czsg)(k z?y=Q%W^7#?K;JE*PELyLV{M*p`{p2k+itoH>*lI~B!XZvC1l*00$QPhZbf1ww3G#0 zxPo;+zk~i4s*w?B61?3VfYqT*tBsN(1gCme?G?8?&6K)hd0XviCw3RFRO1ut*l(02 zv_hrs3C6qX&fTmkW;5vRiE(I)3Ui+4_YEK6k8`aOg(F57%N9R^(|TKntZ6Kn_Ij;#cRrS@Ikgx# z9TE)8In_>2nVc@~`cv0FRm-EfMegKLW>6SQnS4?3v!~5~5Z#k8ZTd64%;)mbC|~F* zVn=Gjq2hi)A93S)r|&b9eaR@;#z*&HoLb6cARr(B^!?#MiwVe`VeW{%TCalkKiCdcs^Z@6Dj zY+9|4miZwuDVSYnVik_{{c^q**@HP=?z7IcbP9}|zT}1#+78mIkt)$7mPKzRu^MvuR)jWtMU8s-^&dFBU-l^)XGUM`SQ$FT2K%|Ug zqwcu%c8hOQ0nJo4a?VrNHQ2~BJhNYQGNLaumnEVPcox%Vy>7lp`n&Qr-9Bk0t9>Yz z)AF3^uDRootxs1%Z^~50=71C08%{FF-8Y#A*{dt`jGsV>Jsp}5>?TCv^Qf^o5u8la#2ePvU%G~Tc3 zg?xFHnOj9E@CYwIo7a2NzL=>@>bt6_PNtT=os28h+*qQQt9DMQFG{l7m)q0caLS~c z^SZms7k5sbv-7!LvD;S$jx+EeI|8v%OO1v(H`Kh)7K$g!(bUN-zf5oH{%O`uQ?^zD z^Q^8OJ9@3?89iU>m#j)tEJ^vDNppg?Tdd6)za22bkdW#fuj=k?gYJwquhCO_1#;6{ zR}KwnCUt^(aR4_16*Q5r^ri!8IBk2Sb=KHS7j1rQ6t=$IoVy&YsBZlz5!FfhMA|2R zp=h<)raj9IxlWVWIHv*S_N=|u3Hq7Y2`nJ$0I@w~CO2z}+orrw%UWU5v(xM9LZXVh zs$n=MV#k+?E2ZD0_hqJ#mYv66yC2V3z<|)c;fxOv2yzjt zu>7uCB!EKzg!BQDsmw=oKQOBmfM$BOPLFH=NF4EU^KrScIEJ7K>;Xbl1#0W+^uYtb zz-~q_<98Twsj$b<04f}`fM|`17<7z$txbWf0` zWL92D-iR8ucDWhB~=G7lOLBQP+_;XT*xQ3B6a z)B z^ZmMbfZ0--rI~}}9(#OGagIecH_05t+*EGYGsm$rrt?8rb_#uk7pQt~+@pz(o}MW| z(5;QMvD(;xIaF2i?G3#wuic?$wzl~kw^>QdvE|O0^gLgfI^@XaddH(^?>%KT&0N_{`#*uI4nw9&~NlGC0=|%~>a>lk>rmBD?kGcyw5_j56gB`)a+mZ?j~h*xXF? zJXxQ>j=VSJU+!bux!roA!jQ`}em@ zDt>0qkozLV_&zu|%#_H-z{>;MD)AD$hrjR`fAJFhrOUS`c3z&0bpHrbpEa^A3ZU-=xEciUtY?GT)M$Z603b^NJOd2=Z-Abigacsi7Z2yx z&HmO_6K^&9TU$*4R{jj>VMCxtKtK2LqYMhqEYu0alKdD zL|I|-jmp&KJ2Qq}FZzyJpLUvqLqk*=-~^m-_K~k-*PTV<*vMxcb;wtR#(vaU@*-{e zCo8KSU3XVrr;oKG(OcFgt0OlZK>Tl8d-1QG&5OasgI-1gG()r1G-7D`iWQ z(Sfmuv`d0}i1O!!L3Y%w9>}${bY=Fi(z3H4v*MTiYPJy=;%Qb~_L_}V+V(2VLNh4Y ze}7H)RvlM|SeejA%RJM&@9NwQ!n{2z-q?0IesA|ZmXkNtsX5rx2jf~zd1T!1AfXpl z)$gctnSiJzI@i3^xwXiW#9l&deyJBbVl~vYS6DebBSIz2YEo6W2FtONv=<05SRNcM zD??7w3s~P*1@Ipe;6PrWRRAn+SOvggOp^xy5v>^3uaMxH1XX5|=Lv zUT;>6_<1q0gbITvR*69cIJRm|;Yre)4m=UCc~Q>h>V-nuD=#RQ&8{RdLJ3 z)wIwDG$^YyB$3`~d&>^;1iS2K6o;Jb*-36)EbbaDlbmF|+!Cy0t(ph9tvB~%kttNX zZ7$1Y%mbInFg1E=A}MD_(%PY_t)c90@--qiGuP$1drAunaU|}0!(z8EZKkK|g(pqa zVn?OQzUdTfmpLD4=W+#9fFD+@4ITFSFM&-z6Z(TH5Y3oW< zJCn1`L2=%Uu#h;ll@*$3kl3w)($Ez)4MEuTlU72 zU4eZSc4dPTb!W5+9(a+&MtVyLE1|6T9d)v?RmvJJMEBSoWdwf%%f)tQ4r`gc%GRiP zb62GeYo)H1+;T$*`fzSExap~P6qn<+v>5WUbx<<)UfavioqnD%ZL-kLtonYvWDeRn zszc6~okFKD(YIB7GFs{ba*$`|6LCvyEibEhX(%Rc1_sNBX>!{T>y^&R=`Cj32;89J znxE`Tt#N+D>ei-hw@-tDFSACjNv^b9ua|CY7Id#vDiA$J&o*~+p-(#gND)Rb(B@N9CJBO4t__o(rpuba8o^lS}+S3^TrTR|wJ(0@?XJBO?sV#}A1Dkx+{LgsMt5S|74qi`OTQA0%v(LBPXB8BJ^ zh-n~_J^MlGLNHIZxx|I$C|IPq1bjplHWC-^**}D>+LG;t+&BrOWADv|*OwHc-7cQM#62vA`T2IeTMkR@#k4c+jGSsZ zEe(D8G*fbc?r?QMI&f3AKiM}2?xH_g)!dd|ZW;EXyq~+dUS*plBzf2JOU6PTuUDHY z$y6$?ur0c3ff5=^p~8xbyfYeEY`4!Xt^To|ojQ$vxwp$Zq|rMb(o2cd*r~SAYMm|t zVK(ZpQ8|#5SL&NvYupyH(-S*j+dX;9!DQQ4^6k-V#!M@vIt{i?)6A88x3Pxsb8e|} zdwOg-Bb9ZPo<&S4QtL6kE%*m^N9US7b(T{~aa2ib4hwd`BTGOgJ7Mq$a=%rpkKA+w z^3x#@DZ!AMLOP%qe7ae#F{U!APhFAOmFHt_&r59R=M#hONMbdna#NPLD*PbWBaHQ6 zj4A|a4v<1R}(gW7T?FUqdBJhci&t3Sl>~7_naNw=6H+UhITID_dXzSjQoPk7GTQ0B(;!`5{wP*D+Dd@aI(ZQM?CI z#P8X^mE9aBeW4L+;5yUXGBu$?4HxO)Ht+$kPUb%1q9salF97=&!vqj&cTi2*IT=(7 z3_*zL>lqh;agthbT3G-^Pd(aM=`*$l2rNJdEmq`6TZU*S1RsFO3itspQW9^UBwnII z{NU!<{0`UT0ergxJ$hNwBLJvSL3N`Dx|$?Mv!vUFxR3EwOJ%z3LtG!iG`FH)9KjOh zVpBEV0ur$I3r$rUo2nc(RRQGOq}AQT^%wlKzFYU1ZDr9dF1)&N+)T}Bz0L{8b!ptU zxGtX`)+MStJNDMZmd=!l1rSNL1ggwc9k(nQ zHzqtlUVND>gBRySuk&eLU$eDZo+IWQL(#ofYuZ^0G$s0_Ah$Au?Ph-v_6DRtY;Nsz zerjh2Gw+x-z1gDP=pUzPqo7NrMrnUy{r!%wq%97`8 zb|x^5NsCD@sIhqJnT7ORUklcfDQVl?q>%>T!WJ_6BJ1=-y}50GK`QVS;^?d;dMj=w zjrnfB2DQC*+n!mf^fqSyaIBlsay@h)rjrK9(o)C8sp>Tj{YE{lsH@e`^6Y)NUu*Oa znzEM(W~Ltfqu$fXF1VbAEa#hBiMP6qonlq^mQ|So(f*D)p1{GgubOo?J!Q*k)n84! zbO0e|*#Kfw0l0)KpozIS&$=Xil>F1EQr@(-rTlVbs^#H6U3N}64~}Z2J-R;H9DAhK ztJOMs(CSGppjssW{L_6SJDu$z&ZJUZv}^4GrOpiY6y-VORL>5Ew#!-a>2sv@qveO$Da_vcn zffz)qz;9NicJ6K)a9NhPEi8x2oz3#4prbNH)^_aau*(j*(Aus5L&x~6Z6nVTgrXT7 zBadvYCX)v5?ulj=Vuh;Z6L>E`;ukvuWdAU^5icEGo zSrU13-Y@r+z|JVeQ$JU+$n?YIlBVU`l#~gM zirRO!-U1>R1KrOt?T%k5EOS}OEHR_@gpd|ip*IuBnp!V#eQh=2dh}YQnzYYxda#B7 zj9E>A7^1YC+aB^#X0_c;>dUP{D}@GlJgc%u_SbM{#NI3{iR!MfYfiSJd6=Yk>EpiI z>8*PcCJ(U|eZ88~gX3N>t8BimGmUyVGZ}8h{E6(ByATBC9|P-PjLoCdE4cLoEY5C5 zD;68z=tL-%N;uNV~00|%Dh$?xZqSv=PH%%DFd#i%Ba2A zaNHCerN?7^LF_p?S2z1TcVkxzYg+L*#STUqrA%9E7^fXaX%GUxZ!fpo^|qlMX;KiU zGc#MJ*LHUqG}}^fX!e=o!f#H9#)+9JEr6ta6*$vU^kxfv$(~iNZxms!NQ-iGmGg02J zl*%q0j3t3x?N$x9x*qX9#N>3uy`s+--JOtY$vSzg<~!wFWl(6Y=fr;2-f#BQo=G!Y z`^3^|ICj!Cz@23+bH{-W%1J-9*D_gJEEa>(G9W7x7CDP@<4OHZGXWhqu~dAJfxE@W z-ZKmM9f}}dbFo>_O2Z!ApPR$F z(+>|T*xhqrJvs((sGJ}O1|M3GRNiShBiL_^`|^=MrxuW{aB(&uXq|*SaxJv+K1<9) zq%;Z>&9``lYW3X!OoF>(69}*Z2Q@kt;i?ttTtid=Xb%Uekf(bSU8P$%XDtk z-jAFkMC=8N0bM=iSV8W}fvNAg+ztXAyj->5E#}n~#8mIyg4b0GIj2o})veMdZOLTP zR6x9;z`upU{E@A zmj|V@oHt8{1(_}GYDBf7F?C<~fB_(oqP) zNX%9M24tr>fe|Fw!rl1aZ_q9{O_N0FUoCTBjnS38D`emz6eYXiGZRzlvXs^>l!6vI zY9f;pmLmhuHlE8_c6~IO6Y=r{p8uoHo3L;)P?fY1V# zsdBAD4}PL^1Q3W1!TH3+X%7^NjZS+&$RfX0$<1`YdkP#crMz{^sW!A?Pu*q<$F-X?~fZKbltn3KIuv*~jRgAox<~eDa(Sz=U27ke-NiCUzUu-&=?9kf} zP01*C(jq$m)2$08ThsFEJA1bk59>^}X6%}^39-}fK`S&TX(1@{W;$bxj`WO%IDRJ3+qqhHE0UR3Gt=#io8{`b$~wxjG#4AA<0#Pb zU@>Mz6lPz|Qv(QySo7pK=;s=+-0FckNK0eM&94uwqSDGM(`Id)^MlRQ-M2}uI2Yc8 z$P}z$Q;{R$PRG8#`QrCj%PNVMWvS83YtMT#*J+j6j#%o<*WP1?Z{s&>*>l7`sLM*E z0~NML#7+i?#=mgpGFdn;MM`rqhc{z$usP=l)ml&xu}=@?>{W{*U#<;^)$4lyS&QNZ z5vWDq;HTZUl;UVpJ@mEi_>h-dF34L45bvp+nIDJ|KdaBW9dB=Wmh4FNY~@4^cJr*P zxLn~>nNr8aNtKGV3FBrbcDf*W^J#5t?dPS5aa3o6QrXusl^P_N*SmxcCP}?j-F5xh zpjVZ4xlW$Sc(c`zTI!0shxtWjurBqR#&T?z zy%8Lc;(Mnw)XOrXK2hVVOtIjOv{JoDl{f9QD%sRzP}b(s*6ylBzjErW0J$Hs+4;Ix zr-rM2&rFx{{pP05O>JH9oO&}iZD#uHj39@d)jaC~3KjZk?J)^KT`qDVUFfVX2Q^zP z!}5$E+ysxG(JMdbBnAs<(w!068PTE0F#d{a)j*7Pqio%WKEN?16pq$q?YYs1pD4VYAszuA zA>_r*tM-(cXtLD{s4QJu?`i=!W8@KEJWNZ+Hk^2HW@@F%$-b)^Gog?s+9S76N^9J# z4`GwV_NLx|Bc7f}4Hlj-T;zx8)v#S7=k4*nTY^I*%CZ{hML=$O);jgpL){x!<S<#|aJ<*9%B6xwO^r&aobTlJ3$H9K#XPy>si~I%hpfNlTC;pR)996X*b2c3rG1CZ zotDhrq9AOW-}d}%rJl(XS#H$Y7sfS{(MPkEP-v)}a02_@u8R6vGKY$OSoiytRi(F1 zx4M%BH5`muSvXzO^1apIRM7z0>1$$8E*%U4T+95DJ#5se#uUI)Htr2(47=Wg8P*^3 zvbd`^@+DpFHYW9sc*tmaBbdnTnkih%|J_x(v{$JMKELm|h`}Ta-DDt&TR;C6d;86|g8`Oi| zP>))W1QMFX9YPJDCQz?`t9jkc>AVSdkI1|kW@#D5@o?ZA&i?kd_gcTj=HFSNke4eL ztUlk_oZ!n<0wz%b507&01}~*zQO7I0j>|pR=-z81JL{513PafJo}jur>umn+n}ufC zw(yx5-+c@IXc>N4s=t=Y zpA);Uft~f^ZW-Tm+GVAcmHk+G@jmhy=Y-P@Hl=6v=t8fHZtn7uuS#v%iuHrLs6H3= zwaUQ&XqJc7k;txSqHF~OZp5S))57@-Jmo@^aE8F z>0Z`bNuf(cSv~Xle7Y6k)}jVK*razukx)XE8*zU=AJ7MjW}@Yzz#Yg*4dg4+xruya zy+4<+F?S&6*gJB)TJ^^(N+zR~Hd_;}mt-Jw+eqvV!Ftu2@?$-k7o~fMcfsc`=Ds}K zj*h~^yoMeagiyuh<{VMpMO!KAUHD#TSK~IA=FayxO8_?r;61iud0vSGw-51dqq2bj ziZMf?PF=X~@x2>UW~=%#(rZJr`%(^zCVYmpAGJA_7MOuHSCenhHgj{is~l01QC|bF z#Qv~{hA#ZwK>PCq>U{vkzL~uxd%L$v_>(-HA5?}e%A!jodonNE$E(D@jeUY$g+!!L zyw8Ak{QGBa_ZN%x_x5x6v(M;P7hI4jyoSKc0YEe$QjO>&rpDFfE*<5Qlb90d!k~S? zl-ncd#&qXroZy66>+`8F?08zQR;I0i9@fp1Iofgu#1!}Pjiq6b$vk9k$6hEYcJ{$` z8%OEA4SRi?Ga4KzuDNR47?tY-7*&L*Q{+=~H}bVMm8@Cw0j{t+Efw4IHka3n;yV?_f_|`x5n0Uk zn@6Mhq=Z*(xI3&JSoUWfbzb~!=7s((Jfjp7_tXLGcZ(NNNy0KT%B{^tSeszsSM%A` zeKx8L1l`6$azC7$ZnZVow45*d?(rJo+Z!p>sME>43?|$$LhG|}{`LCf<1E;7+<$l; z{FAi^cX^!&`8O%1gr|>NBQvo8j2uQx8`2Ebl2Kt638043JiJ(CdsDvEv3I;i@*!j-;&TitgJ#>pJ>K%Ntk!Kgp;|ZnXSS~b&(=)2XEu`&rMKrQWv5)%Okm{`QGu6k3?N8$ioSKu@seIy(cTy(Gk*e1y#9* zb;oYEx)>MKW;eCGOq(H%P6M^rTFm5iw>)7)IJeK-iVvp3g!n9>Mejawf1OI#$jHUT zG#AkwA8L-PjlXZnx*6vFDcixNG_TZC_Psfp7B(AvxIZIZemil=raV&fW3?~K!h$yG zcBWeztQS-B++o&pRj=_!F|UuF5-s`qQsSgVtYFBl>6#|qu(I5G`%?urx;FMkm-IL} zTPgO&9~y?)h})aW`FFKkpH6dJ9~Npavmja=^19D`bu^PwJD56btq9b)6qcS=twdTktmsHFr7b zPh-BYn?`8kEIv~_SL>Z?UT89=!;|aQcWq26e=0X#zj{<9QPp?kz&gYXIlNNMThnQG zi}x0H8t!)~C|H5)?8G0D(l9dkjzVYfRT9q*_cYJa1dP7kX5q1yYRv;8|a=zpRk z0Rj%NLx5xRPO`Fu__7PVB$`U)pUxIp z5K)tK3AxXG(H~%h{)ilwkDhBFUCnsNt!L=Qy7&HP(7|hKIXL{vf7;ak3{(2J6Z3HQ zEkQ&58f%uxo2eLT^w(p^>p@*u|9Di?_EC5ANq%1tsXTk-&ys%+$zpYKST79b`eplr z+xtTUHNPv_703^6h|cBjZ*Q84&}TKr`O*>o@s9g%iBi^%ci42R=)xOBxFttvh0|_B zCirvfZAk-vPW$3qX179MU}GFcoM#M(98$NZ;qkkGy_Rs*kndJTVaZJ{#g)b$pXY_;Bn+=w3^HRh7L zB!xw;#|0933if0E&{s!3>|7nD0jI2{32-_ORJZIVPFxDu(D9cCax>?(cjQzMeSil~ zTJ2pNFX~P0=;RT^XN1ePLzspAYz4)pid~}D3x%@4uv1m$<_3qBA?iHTaicsU1lixs zr7YE*a|EP7L`{j3E%6OKChLW8#{fSk9W37~@4yoEm`mx91M2EfU(Ye#63kaUWnsxdmay(}N7ozLu1NZIW$KpckKQ zI(2}(UD6y$b3hNLA`a83>lV9r@_Aj%&nJdF9=qbKC9Sv_*Y0U$0%W0@PV`D9qe~mI zgrQun#^tUySBGlTMZfgYS~=Bm(4XL{w;NN(X}zZ83;uXP!j35Ui*FEi^Q78pb$zOd z&wq+ijGHdzKMESzwZ7Yg?e;D@%FFa8c$C)0m{r{_FtLTP(i^$t8@0r=PW$lLNzmQT zI=2No>l=c*X4$&X1)%eryfM=#DNT4ln;}# zBMpn=BoXk8%9h!Ue05NcW9Lb>-!gNU`Q6S6t=h}W+VI@MQPLlgjlRmS3|KU9M>KK8-i$;+aI0;Pw8sW!-UXpeKZkgH1T<4LvEF{Q)tK z_oy%HD@Q81#W7?_V;gWRkKDck@eLXsU#l$po`c-%go>M7pX}_cb}irw!YSn9O|&Y{ zW$-xd&>j(uhNkYdO4ppqlcFo#lA|)nq1bF%Usmdq#5olp0lm%asrpYoIMiB3QxeJ+-1v0exAQ_ThRZ z7v4rmfPfH}z9TvM>ZB{bvL!>8oud`>#<~|ocY!{08`$G-jVu3D%+;lJ8N z1fgZPUthn5pUza}pxf`b0py+DSiC9RJ-n9O@;m1`sNmmxNP?l*_&WEh-NAneIKNy` zu(X7>_zfQkND$;5A@<{gI{*7;|I?ErK*0RXv%_2er!smi2KV|#MilR6j>#Pd<23Zb ze1|(4^mV;kp{3W$VPT2a+$RgK*pu6H4GXpm%NnY?^}y+YA1<$g@deadbec&L(u3#E zdpg#IjFcOg=zHQ;GG>F`tLPrAjE%;oT<%jBP2F>0WbS4MNIZkPWftSer>hG(P>G$K z){7gE$S_D2EGgC7-FY%VTPO)MgiGNF(%yomV0_Z?i>?|xb>-kl@j3@^s{~zHCbL0H ze2yACx>;E;agxg;xSTIzyBre(iwi>lxui#Rj?bv(72pPI7)drsDUWxdm>x# zzqyWm4V+){`FCO?fNg$QM4Fu5>;~{O9Og`pf}v6+7}EBg(N@3uFu&G>Fdt@6ym%^F zdEBDX5e7CO;XT+-SFZ+QQOxZQ4^uDQmE{Om#hv9imV2HpF}`mVoED2U4tn7TK?4l7>)5=qVbevHwwq61+5!ON6k3bjvm5=%ufUP#;RLyM+xz0PM8 zAQU_ygKIUWKC7t~+7J3R#zrPzXf zI^rt-r#+$Zit>)De=&g2e*###2K@b-O8)=)m+=4pFTkt+&;K|4&;L6<{^$Q`{~5sd zpUjH)!fRIi_%bnxj<+8uXgYrWcyJT+8?xAbf8BxGj_kYd!<{!&E(_BgtM#kXk%c{> zH4EP?L9nm`VDEl@oX8<}V66)m38-)HdopgC?mm!ErpB;pb;5E+gvXLAZ0H7E7dJqQ6*X2iro+H4q{WW2W;UcII zp(sqi*}`8|gHNXc&&(zg9&H_VJH5Og8vwIFt!IeOYoJ!!MKqXnyoK5dIKK`sGiS0c zLLInT&)2*8aV(C&T-=4LBKgKZ097?W?w605x~_fq&9{yUd~d5<-5bLRybNG;eMF)K zF2zWwj_*&3eE+Qf&SG-rfRVAGG;me&UFMcG#oiGd=0H-p+{0a6t=XHJZM*5&9ZFf3 z${pXkwXi*B!Z7tDPK2nXH-ADf>3UjDbhL>LF_P`+ znDhYVWJ+wmo^HoYp^%4m6Ik00m`FN#K!q!hL22F*G+d7ro98x>ADqvrKQa{}tyrqx z4ZwRM>I4QW&}yP72tZ?YD~dHrOi50C%{cFLE<3fg%P z2>um3fUxC{&e!E|Z7Yl;?*>;->}K&WQulT!Pf#G4|HA0LVVMC+@*&hyM{H9}0f0%S zt!Huh#KP$8oQ71hWiJAJZXO~fs)X8SG;49Dr(q+Jaof%z@>6f_gfWZH+^#67ia87lf9#%+4z;|DZg;%xz>py?DZrF1#3l&VXKSo~)qbsO2 z*(Q)s!{3|%+^^06xWvBM^7el@13oD4pjL)*PXMq=dAzhupQEquq#(Lfy?-5f`vamk zdaEn=u&Bp(h?W;)7eF%aF!%2`&I-6GETF(Q5f0SUqd~un6Va3EkmRGI2Ko$??ibrd zhrM9&nvs3zMnI?W@faL&zkGY2?+*EIyuHtNhx|9*Uh+D?p<_pW`o;YvPn|K_b%_~e zpWH-J&2sDUI8@-IP#%}?8W>X_-tW)SV2~^z0lcv{ZF5uXDbllQ_53&nLc%>ez93zQ zMOc;a?+Z4@anznSFsjQstkP!kd6Qr;rlketJ`Rm{6`^s~!z|{Ceev`oug6I}tzB2Y z7jDfY$F-NqjMKn6&I-~sKxztK4F|V?JEgUj=(wSEG(%xv(rJv!AlJDC1Lh1Cee(!f z78#@3jj`^kSpeNF%a-Nsb`^V=zjhII+}vkRq$}L&b>b+X@V7Booz4@=EjQn>NKhzep_?9j`KZ2H@cfAcKKg3yI4fH^6UrEK!zP7O*1AokN@;Z2TB zcLMD_5LSHf)N`IiKRz#ifzkeY9r2b*@Ub>^HGUgqh*cf*LwqM3&Md_C)~Nk}pZTBp zFYkZ&H-9#IKO^>gMBo`Gx7lmdfKCs7t$_LR_G_gz1@Wt2@^`r)uizGyYU5EKRulTf zrX4onFq8v_$Wz14%duHo6hB?H&0~At7LB%egn)~?JH>5y_T?MCf+gp1d2~R`F>Z%@ zcLx(q)5?1?quqPLg~;&7bKFFbx}0B$bI^G0>2OkDJvi7gQr*Gx{?>T#sz0e(%qW3R;h&L(_ zZ-7wa0|N7*(f;wVlGSyGnLgk$K>dQI_zg`sy8uN5gX}koSFXW60{%kxwdng0W~i^X z@bwPLZ(oDj|HIdSFZW(h|4}{Fr#iW^6bq(q;Q=0_&3XU4TvE*P$$cD*$VJk&cCPUA zMpaudY$^J1cTfS=lu_Z`20izZDKZF1tauQbsvq(a*HxN65}T7(6f6bGVKKc`x!1A_;`NeP);c!_4!Tz9 zI#j3yt#uCE8SM_2|Fc-uh{=U{5~*2&p|)V6;8t$I8^rhyq)oj{?#KRe+|a~oB%O2G z@3P50JQ`Bl@WBE*u`0M(hjVmq_-ZAP$lNqSUc^6+Kz_Bx{SEN@`w0l-dtsBaLOZSU zs=gvDv@y?@-R80a+|%z%AFEl$gYncJeKN~qM}?m4H5;VP8O1t3;iGyMRVH4Z&7(=Q zhGw9ZzB0YL%cPlK->{fW)O?%l(^Z-GBsD}6=a!51yymye$g+JTf-1yQdGPmXpeM4=LFg44<$iO6-v+ zNnBL{={p(krQ&$JT+h%PQouR1brD>o$-_D}v7Dv(rqry<$Q9FoEzjP!)`#l2Ch4sK zifO=Hq_pS`~!QG>q46ydNYoGv_tos z+*8~L??_2AaZ&+_`ld&!Ys%|MvyAao3iw_2rxA#}r0q3*rBi*^*8W|A6Sl7oX!n&v zWHB1I3W`uZZm{Bs1sVZ#vg|M0+W~TknDzIq>}z`~0C~{US^0B&t2zEvaBEhO1sy)^ z>+g#huu5Po6;M+M<|i;hebln}H8@xR7O1}_2k(ZH<^4e*0=(jY2*^PB;hF#LiIKm1 z=07Dp{227WLm651DnCP{!#e7O#=i}*4A*sKu9Fts3lAOg3F_1m5106$Zfk!AZ#J4x zF02==!3GL{bsaqOCbf#fsIYE2n{$#kwJC*;xgQT>r^X{$HumwHpH*omjd$?hL)gv= zNO{kvb-XT7vx?HTU}@_Dg@Tr}=47A9*+bCfnZyIP)gBl(?rokF-_*tVbyVPW( zK@cN?G}il-=mUUGgp-Hsh2#Bfs*Qda%moMyo^Z|DBZnL~UN}Wp+oqYkQp}>-KNh!r z3byZ@am#D0h$CDZUmkmsIe$NJWHA zsia*JXl%zy%@f_z(4cCt0B|pMmxO>Y7B~1vNn<8%^DGR{+imEfjUmLN`lRcJZF-Rv zV?}YxR0J1q*#lCh*wQ$6-LbCtAV1Yp-~vmrdvv_mTSFWfC(WQX9JqdX^Z^MnTQLER z4zDna1?<}%Wb{8)f1jv_jf+p9!}u}C1BPPbHtsLLE1sof<;uXCCgH%`UP=S)XA<*jl9x$wG@mWVgG7Wm+spP;L zx`FO88@Ljvq!%lUxSx5DlCxe^Z_jxEtdUB9(Z_2l4M`6Y33%oOE@{(eZ=0X<3Btcv zo~-X+L150uD`bSdax*|>adub;DT6x!urmOK|JDk?E)4nUm-^K&@Q!x^M-g-biw96~u8Yd`si(U7<`tWyGU{AEta@asdiX24s8OHTq z!a40Mn-5>eG+i%iVcjd9yBeZh7UgH8+5;UcKS&!-W|tg04cYBd-Gw|lQ}lUiZu6zR zpZ9gE%h0)&`@r-^bZbxdRWK=iCePs5GVjrYdi2{HQn(mnsX85GbLcEnrxHNgpWXa zMtQZ{pvL-=-3{AW&aGCU7CRTzLSL%OtZj!C-DsyPh8>L{A1p9tV;m2PN{#0J^E$2+1n0OvjmH z;Dmj>JojQ*U0sQTvYp?>)82aeEPYJbcEedYG;H~jU9uwXMGE!OsK0)PUzEGfvYsA z(ST#nUfV6rK~R+2l#i^wNM#VkI)IB;+XE3IL2rgnu^uc4&@uue_fODmw8zuE>O=p4 z-B%rd(vm&klVCqj6}v;TL>PC5&%~dl_hR=i{+uMwpS5JK(9!WN()0Nz7SX>yTKky~ z_mXe?WW##(AYjA#X@&60Mg+yi+j;!eSlu}yZ$3~x!QotL*R#yFntxh zSuB~;=Ot|KB@bH^s!*!lt%Ki!13`uO(s#ZfLeD~iabNfVhzO&-MY5QUr$cq8)S`!!s`3Vl`zr-7UIjm%GSOHh6rorU`zYw-Q z?ce2SV7nM=)pKgGFY5#phA*1c)Q(n$!UE#a=p@`}MI70P_c2s^(M}oZ9L2&QR zROc)0GrJ+X&WhX{hm+u7oEMoLEDvP?DZe{h4;oQ{WG(GQKkU~XBVh+UNKOpI3qEQT z7TU?4zLqE1rL+@vvp_h3-c-VQ{s`MIQb4s90qCN8Cq?V9n2x(XsM%cAG zmm&#cJSilmfqee9DKh)9m^0)M9+aSha^EzMAjUGAm&e*fSS{3P8_n3W$F-~QXIzrG4e3V ztG45#;J!H|^1O_E!I8PYK^cX(AIN%0Qpm!|QZS*x7MfNeSn7!O@m+=7u}Wjw{LpqS z(O(S;q(hXk8wOAbw(cra_B*O_kHK+r`&>5rCWi<#n}>T9FR_xrY>sl>sZF*~=>E*A zp}##J_GPDBHDZrh;GH(MVnp$3xp6^cCAy0ytvw9Rh<3ZeSTaA7Pt`IxSc@fsw+-6z zxE$29BsSdrpk@$7OQrA*2A>r9gNbNxjJhg7S<}pP>2luyQHmXWU`Ti}kIFIDu8;7Z z(%oo*%0O56{ffMjcN{wV`q|#(^SaY23-PBLpfjHP>;j*y|5};;TZ$aNdfgv~ zFAME&>vZ|ws?&4HM$5i8&D0CYY3y)&oJEA+T;B{(p}Ym z1$un_M}J$l5m6{~=hz8#+1smuc(EI&G`#7iI1ObHK=P_0P@E`q382zf_-@C$oS;+rf$5-QI9k#m; z+cLfIKmuwflOaK^Z|aI6g+SB|31Czzn3eAr@386uFa>wr8G``4Rx*>zkg`Z~8P!|VMG=ztrKq}F38z@(s1#x2N@3exD%n+jl=k8#IAA>|* z%<^OGw>vdNN!_IhxKY4;8u-^n1(+Uo z)ydro)DIb49M;0tM#cNh@fW)ZUAwy*WiZv`=!ciJH{wzld5AKCOjT&Dh5-lVxYS?oVjGkw-^xbl6w%e)nGY0~uqZAq8KW{K!JQti5!?pb1hAd+8RWuT5Tc93;7 z;!eh+R;o=?pj_d$UXlmi@eY|BByl-fE!U}~H%Q)k>)N+Ab+Su$YP|F`;PGjUu3qk3 zWp<-o)NnP-$hwK|rQ-3*g#r;+H}7(q;I;c|T_%{^cT6`?8}9)*+{D0J&ks2o{}*Z3l%rYsP3 zdw_5ybbfBv*_d99hW_MB<6%t_VHRk~GbtmkkqzVSL zE)EIo(Kz5DtsWW|*aEkVOr9mXj0bWKr1g|74w15K2wPYeVuyY?ottCA0uwyR6Qu6KHiR@}yp(V?8msCO?8BMj{1P)z%tz;P&V=SH6hT!%4FU zGr}U-Ng8rHUxWT~Cll7~7i?(O^Np6m)BRkIr&_Kh{{e%31>`2{!x<@HD>IR4%8EI? z0&+}H5ULB-`^tT^{&-?yeRMYMxa&(um*OP|*oh$0bL$3{+=DC~w|6MDy0Vafq8$)T z5u58hOAEVDGBGr}i_@nLcj z=?P{7tVo~6k$t4J6DNJ?z=uqgy_WU99P6;+|AeCl=$-9S$c7*TVDvrWq+b%Z{utjWC=e)TE!o`65j^^|v zDC?`|k%OX6uE2dn(d7cVt7nj5!DXeJ^MtMfbtH*A+{o!uYpZRaxr7~>0-_&rUTXG1n@!fV_RUueXLB*xbO7&NE= zTUvt;djEkAK6bTw+N1Rnd|-+k>QQ~$p8DvF3)@5Q zBOCyvsEh@L>9DbB7)`FOG|KDP-9*D0)$=Jib(a|R&`m9DQiBm@$%8Z{O;6=sX>Kq( zP47L&fCIp%5jHb-4O#hpOPI0%}$zP0L#xtH{JGlO5*wWtZ9dMN>`9BsnEag zVr*D9E^RcxF?!e<;E)Rd+vrV@Q03D-)~uPnc1_|&7atD_FVnli-Fko0FDe5G+edVz z8du`6-jpkbqI3(yn6HHd4iI|&U0aEK;)L7qAbRUD1!gwZ&cIR&8~?$%WG#am`KLno zyE^#R`~D=RmNWbu`I+_q3G#G`i*k>avO z2Ua_$UQ z5z_(`CUQICqH@IBE~6eB_!%h%oF9aDX83^^`A0|)_=KJIAWeX)+~qNbTgQBQur?M4 z|6-}z(_=P48?fAZ<$>VS4eVJ5(nP_RtZPwNUamUexwiox>1*65`CV>M5Gd9Vs3EP5 zcBKHK;-1A10>aG&fw`U@lBS+xyeg2vt0mh@@eSGG`?xm1oF9(66W7*PGmHYSFCLj1 zF~K(4!rUdM1=1l{%`2fks?oJ3iu+Rv8UQ!)Hm2vzYlc3t8Z_Q{q~jor}gc}SMu-Fw^4R=eU9&E z${x<7;B@A_Tvmy>zK0NK(5K6_Gm{v}9dNgZik4Tr*^Q7RDJ3RMADi6y{ zr&xLJ^;JyR2JC=}ZfD#JnjcHwriI)2^awF+p!>Ey6PX*t(fwR;M&Iqe^B4PAz|hEI20j$)3qHjHc_*wooUW^auml>c)y_KPTjQCMj}62UI%=9Xz-(NJL22Bm zI`E1^UOnV66OK~q1HYidBH+R9QcoGh88)bWE_kGr1mp?{l<>R?Rt}@`c!OWiX-TVl z8ReOr3iaIi-MGGY^?ldRCFD-?Ml7^zg@nd)o966t1u)i}L~KQey}v^+h=0v{5#Cx@%t@h+m3x5^4@c15L26;(Nu7qjdx?xI5x;3kSpL+5=pUV@#^LKT>ZjNg(<}lUcekf!1UIDm@vXSdzEYwn9- zz*;Oj-$fraX`=Jj$>z$_Re|ls3o4T!)7@2{!c4Lp=Ewxmvyjf=%XU(JV>yufq#Zqju983mZ)NetdeXk zpE;u42d=UjHgkUVPZWYhmY6=5AOw@+!z)Kf7D2C$dQkg<+sW#R5KJrGuSfAgvJvhc z%}K!PO3N8jzMs)v*tF_!-(Ve$3TT=hT2CvO8=Wd%RilP-@{v-5)f z3di0a&S3jIm){HI5p4PfKKP|V{-^0K4|#m=LKSZDaojppYnoD*+ns$r5dCtH2fRLe z;Y_MBLEUN?MD31*_c*U?GnZ{`dnycB%k`D8f8dM{Th0QP;?Z%^1NcLphjD5zyLH{c z*vS~FEl*Z105l;ID3`B8l=b?i42<*YFw(%r9dOIIT=L9cAD);yEO{Zg4U?q;Y3Svm2ZV3wTRc zp?zlT%Pn?CBcbRT#Z6P79Ymvy>3VKrU^wpfGl9-IMC*%lZ|4EQ3R4;6W z=OViFY+tq*yK&T&&m?s_-s)$Cc4OGT0@JM>fQcS(AHUI4irtm~KKN%y@H!JW0GlE? zIrnFeciY`EPh{QSQ(@#XcfQpuq_}Yr z0EO)p&5Mv_wxprr*BwQ%ML+Fv@g6+68v~SXY%`t9l@GyQE{>KMovJA)gqgY%?dfFw zjZo$LYsSYh{4W4T{^p+Xx9d$7dmYE8ul1&!C~k;7nOf0aqyV~*5Wru z@#_$T;qWhpDBmRca18L?n^@&@qzdh9Pz zU2juqYudk``zp_jUr&a-rCEGuSpW<0(F(%md{oBIoDNS?>L{oQKrg+plE4D^HBu2G z!{3;S2GEis0dhicAafW|Odk}5eimN51lrPaVazV8+CSV%0!D@O!}5;k#T3uOL#xWB zXA3@67l_>3ny}Kx2dc_0;yo%+H>cXTih$Ibi;rFSD-%IYR5G!2APuA6{{attB3AB8#r3d&}s5fVO z65xL!oxUvH-;0xG2z1Ne`%&E$y_fynetn+bN0#C%%^p1VQUdDH;l-r>5Txg?G`c4U z(q+h-(LovyarR#c2p^A?U|IVv5E=yO7I=UzaEJXg(1dtyZ6HmP zjB-@OONK*gtUR9mv=I3^IX5;n=R(-?)9jSR7SCPBd6u0lY&R^e>F)6mZE5N-6JRjE zrNJfZmm67n@;VHa?N&jQ&2xxam6v$-xk9-MooGcOdEvvkr70L1S@v7pD zo=vir^k=Dhz>~TXuI59+rG0KG=f@erSF-&(jO3Tm_LiIsKw-nS)owT%o9J#mOrQ|p zA+h_-F6d`d>$e$!dhU8h18ph^xm~*pzP}_Ff_e^8v0v|C%T2hwe> zL`o-1xwTT_<|gI>GkMGW6Wp@}Er%6f9iIGK=~^?gnl6aPNhgTWc(U zp>)TpFgwp}XBhZdvu^5z1ikq{_c{WDz24Ir}f-In;Z$p0_X82R*7i<_@n%rbxR?s%Y^ zWwW0O)(gDoyizefWc~``?*+xj1yl1Nb?Y0`UxSJLr(_CJ0J=&2&>8WZ;Q2VDd45_6 zUj^)gJPq6Icl7jkV$sj~`sVY|`S@w@`tnv@7w{2)Hw8c;ALQvDU+pI+@`soEpT1h; zS1%DGp#33p&{bf#sze&)yp=^szfKcOtqJ z&Jj0`GO#v)B%TU;CRT9?2D6A&gi_(^m!y}~Xu@j62f)Yaj6SIRz87QA!0&}34*(R? zTA7qv10>9js3fVYqn0TsXi~)l)KuklH*-jLAwlCcTGJ5%YKn*A=Z>ZkYSf?WfQ}^$ z{{K`gAim7fqn%BmzYKkZ+R{#`1*}-jsFIc!SdB=+^MI_SQ{B|iybCU7D=aDR@UiZ}wt!eAUvowfHYfseLnrp(ztu z3m(cLtsP#p%aY@R28O*~DsyBv;qcRhUzZPx?ZNO@hXfRs(M{r+!aHABtLkYOevy>Y zI6QZOL4?j7RW5}-u2(8-ccbVNldWqGX~vUH`3FF;p?y)~vxwC45t$?C7QhR*{ow=j|_81R~#ohc9taAFoeKPt zFVEwgRpIH94xytR@nsRI6aDnIv$FKlgtddIQ~U84))^r z_7a~Vq@{f;q<|az-PP`+ef_(EE1$dyX8pzc|BcFtg}Aq2;@=LwsTCUs;G_boB2pRR3qee5>AuZdZ}AMoOf|NPi={OKNwI5ji>q^*Km9L(E<_hml7ps1HuDgv#L zg>UcBS9>-PmA=tM23Pt>V?@AUMZK7|Q9uBhw=N+A=B+7x)0Msw8h_IN|4KvjDIr1_ zgYivYoxR?qXTRZQfpGfr%7-Ubn=v(b7z0`F&H%%Fc1Q5!amBJ)QSlCJvm^j4iqRAM zC8{CR7)24(U6Y2&Y^Llq@8K+}7UG!eN9q!`Ds>)jga*;xA!9*|VqkSG_W(B19#ZFh zP!t+>TgX>~7bZ~*@@t5WYuEY>6o^8!reA3n(JBNAK~3M|vOiz1i8nHk`aTdsURi~~ z-k_Hi!B8ww5_NPJRHMmseNjOQTf^laev|fD)Ij`LC8oeoI@vv4WWEZ?@~toiW>>aZ ztre5>%&`kLGe^KW9%TI{Uh94V1NFIlY@<0kN*Do`By%+L;zYv?O!qKxBphctPlh!) z_*NKUKgGr8B>T)ne23uuFj!=6!tI#UY*=g&OP1C=6%XcNuWtC|@GAn+Z;R?rgGJ;! z4Uul%jD4@w!Vsr!Hsl&tX&H#9;!Rx-oOV-=WUo5cAWge1U_`D$3^B5N**lAfwxhZ) zkvn#(+U;<}x+i3RX%4x48ki()nPo6_|+%FU*52d#MFNq7~v%e8vPVtr;b0R;47 z8@Z<%FT)@UfV<_ccB$`>@zU6jvx7sj&kkuG{!yM7Nw#CmDO;QMD($*Ctzhb$lxnve zyM33b$xcBBrtk38A2mer2pMFo>nhMR=vDj<1q(Uw+U6nx$H>Fkpvd>_?LZyAX@q?`#|1R+4Tf6!$M1mWA1#EBN)0Hqn`_v)9V=!0y zdT{#P%YPps{Qawk&hqbH{y%;7AXJ6Q`Zv3dFL!zm+4oJ+9Bst*k>@ zvTWFwrUsKzct)Zp#@G^F@^{Bx{PMm!JS3@t+mMq|FaQBo**@999a6)WovN<#%MHJb zLRgnw=#`Mwt0rs8ZZAN6H)&+a*xjDUm}8;>aBXtt-lwWbJ_x%*H)yZ8A%@eSSAwUuqMQTAXd3Mp}Q~{%`KytVwZn$=1H-SM)vB z1{#pirRD+6vvencMg$TX(D3Vz6Pa0+l~uc{_c`6)XV%+nTUL^h1Q8j${<`~G&oU=e zNV9XZ-j$L%zCuEt7M{)_p+H=r4w%%o9Ypgjp8b~^WHQ@JlXK*8&qW%6Dwgab z?7_K83EO!O6p#bCD|H>{RftOl-V&#K`4k6phxzX+*aZG`=`GrpV6D&&l zrlx=zP|QM0d)`>d#!%&%m;zZQhdf4!^;Sz}_3^u0+di5f5Fp(7KUt9CuM^DQ4c@ex zVHc1CvJb~wxefJ&u4NpO1yEd0ep`^!3r0H&TT<^ zEw5nmUH3Hp*!JXp0`SlkCU1ZngKoxd=F76XU<#XD*5d5}{j#hM$q9Nm6HVR??mODi z7Sbnu@z*0E*O*x+(}=2+^iZ=aw38BFrf9$34YhlczPI0nO`aogVRL2ie!Nq4H#aP6 z13UQgWDBU4>cG&bEs&1U5%j>h#9A;)Qyym+_R9~{ZSvzOPlp$5<=Gv+u3>n@p-XUy zL$%hZ6eSant_HtP_a!1n(*1$IP3m=H6GCE5Cj_)$3J}gr-JVX z=xe03+yK0g!|LtYoM}dbz2bf>AmrFIX-~nMDWheqjvt3DYmVvY#q6diq_5ter{+Lu zBc3+KTiV|(N3_80{n!~cWCTt|eiY+31ER*;lQ<+xQV=BEc^@FXf9+vToo%GxW z;j=fv6kZM!9_AuLhv*3EgvGLZjoQ6uF>*;I_W3L5`QVfJi3=9}S6r3&W*@yb!J1&y z2R1pm3UaRzsej(1>y5jFW%Ca~A^s5t*`#rw;AJ?uF7yX{-!Yy%=$?LD`sy8MBLL=6t+)o_txXd;Iu`r;W|)Xmrt1c z_ldqH92F!BnJ-4|4_2*K{bu|43Xb1>RLCG>S@jP>W`lq;y@8rQQAZ*?es@+yZRd(WY%O_7iC9v(;m7V0ie3iv5m^DgJ(t3F&M=gX?T;F`_gy5(+(|2>w8f+RB;56Bx*>pJ zP@%tAO2Mm0$;vM^4Dc}}xe~B}D>__HnDi zXI`|Rh#SWSP#Yf6AKlRz0uafx&)o14gy>Zz%ky0__bK>;UH1j^i*T6E%^lWwSABvX zvAi8{ajPF}lf`C+m&Ct;0tmld;v$=f>P$^Qpmf_7Fy)m^xlB+c6+#v zxf%JGmJzW9*V%)MfktQ)%ptMYDjyv4#Ef&FU#fln#)OCcNMcIy614&_EQpfs-2n+! z#7(sg7o|Q-$?id)S7bp{lRYK0f3ewI&50I^7%(lqAQ0&=XxOu~9rNH;o2is{N}^)) z9qzmr96*E=aNcav(d;W6>_Rmnp4O# zUXXLTHXYe@l6}a^6neh^-7j8h64PUrlpC)K3)wFwPN2h%Mvv1Kw$zJZj4gT8_#``m z>}$;yxGoU4&`MRhe_KOvizQyJH`(VqP3wyCMTxHk8;xd~8~w!NM_%5wgEUCDlyb>5 zuqoPO&;0{PV&n}wF%m)m>n_oZIGN2;0z6)-fco3+^P#%l8fw@O@l85>56PPxes*@r z>+mMa6VVsSr7EwGyGIPZe7~#w`7rjEr`xXWJTgVTTv^|#?&O#KIVt%g7^e{ zN2Nk33e?d;!hq%aVGXz)OrVK3)l>DGXx1Z`L(h)v5hsirAIWV943$CaX$%MLMbfX= zh8;ur8KZ!3d9N|KCFV|{URz77!-G5S+7$v^_K=bD>^jWaA1omo5(M&X5(6^PA#A`B zPJpWSF-Yvl;9DI`H`U>oL^PsHnk6Q#U&zx)ozqHWcM$h{a#JS?#JJk{mlZ-5hcY`$ zX8Xs-b=~(4mnjeWN+7Y_z0B9?q8+*eRbr-)xWT;2M|0{g^+euVXUDqB?RvfJv%F_Z zw79W{Pj2HZ9+i&rmHTUT?}?berTA`c5rQPaCzE%pW17Pz1s!m_Rgzdb*Gk}5H0N$&H zX5#ru&o%=(CN>#;8QNA`+6~G%iq$ot-o2mQDp2Chl}h2bc}t6zalfkii1QgR7X{wG z4*90ReYq8mYG^Pav$ivY#K0!$+PZdS?@s-}_uj~&hV&ld*7<5OVK?^%7Fh)rmYYA+ zt$R?fdu7W&l4!K<+P@=ppvLXVafKj(IKgotLTKM)<&MlBw|6Ok>Ic#QF5^vTU$ed} z;nNEbl@fut`+Z@s@m->3c;u89(jWjJ5x2B{RxmgLEgAh3bR3_JIfl5W$RQMD6-xc? z4Oyoz8&%XCNGOXNb%B!xgC(UgEtIPh4i)=*I?x^TF;l75>dovef&h6WgL-x?X@@S? z6GF``2+Wb^L7Qgp99~MeIct4Oz&`1<5|99avT5OZULm@wi;4${JY#_9l#;k7Nl-&=L#|co?ueCm@DQo)T^No$AXL!z5;@=cH)J) zL)lhZN;QQ*I>$gfYiG}%A49IIC>jsDK10m5wT7Vdi(p|);#`YT4XBD+EC9EpLa@4^m_k+b`rv8AuJ?gU#FW!tc-iuZ-aPr?+ho+3TW zJeWE=fB*YC=3SiT`Mab9(D9e5?wZ;j1(>?Q_i! z?4Tytzh9^M4BzrYlkQ1;nC7<&?g1qQ5v2GAcj=!w`Y=WQ*L9kPR^D%PT^(zsVAOo>m)Bk~ zhM~yW@N`HajqLL3Pp@<@D7-c=2+oqzxsKZ6bockKin?Ap%?=^ij%v`j+xSM1; zdtGO{bGKCh&hazfoPw43m13kTFP3Yo#Vosw=LW%^a_jMwg-VJFGm{9zF6ra0z>7zg zUOXluFus)BEO^O7>{}dS5Zq*xfCx$;Hjfk79HN5vNF@!4adI#zV4q{WJug8M2HoUl zcWoADGmM6k2J6{*7aR5kIYBx|QWTX)T*IRSg`H(|V|gDjEOCTGKPte1Ozu~fn6F3z zc{(!9Bky&oAx*)ldEIHFD*=-1-NgYUBRNISa4Mm3JYKz|Y+pyWKFTA^Cko(6Ejog_tCy0G*K14&2qI(pWqU7r zwPU-3G{x7yt<&y*y1)U2&E>G#h1PXdqcV6OAfi?=r=_O zs6jrD{gg#s{KJ>`emYP|LM#7lE}hW2g<$w`!DZT1qsNrAa@F6kso0EH_j}7 z`K}mGV|DWRbxtK8O9Iq6heR*z_~60^gvL{f2-AtaWp(^|GTz)4ZCtGu|qf zF?6wf3IND?&zEZPX)2ay5I7kIwuan%u+`Ny1F?69qyB!=g@P1@4Pmno_}xH?iMNA% zIm?0f2CNa21T&VsMs%#RtsWI}0`GvnE<~$!IH50X^YtfjEqhD`b#J8zeU7HhjK1iB z1$8?f3%klZ#yJ*9(z0K~x!V+BI>i}1_*z*U(I_;5UFvf>U?gRtdr~B%3IcL6L5&N6 ztcnh79O5(@e(`juUDqxaMZyX@<_qZ#9&ZI?LlEoPH59=PCD<=c8`@+1f`x<7Ih(ti03J;Z{Yp*Q zIC;h4%_P_yKp<@Kc$21qoaP|wV5s3CQg8>o;!QEp>Gpa6!S0y(-QMB|)>$K9VUy*~ zJW7&1(+HA>E(N=g!i9j9sU{ofrR&ZRNdC19BZM$npQ>yTk04-qP zR2g7a-Ol7X!SaHCP>^u{>Dr#-e(#pPox-pY{SWlNB?U(NoXE>>Co;!I=Jr?11C2la zQT}|lg`ZQcc5uY;>UY4xk5l(|4F(*fcQ{BvmFFR#F8SV>zycL!qcj9jf%Fb0i{AoX z=Dde%5gi##= zj}O3T-$OtB-lH?qz6_e%@%9n(=qh);u7!}$&7(vwBCdu1I%Hm050@I-93FtOMW5RZ zq!6JP$MZ)W!t^*)22hxXqoX5T!mXiqj6kLNu!1~)>MVwg_0|m>({Q93QmR;&=>*Ym zKx+yS$z5nS2m5MDbVS*!W46~9aeNDrk}rUYP{sG|64RH}4>gW5z}5zVo> z&*v@yKO#-=708M0?oh(2QPR)F^%Y<(IS#Nrk0a}Nno`PNSR}-fgG$0?>-u}v3QGeM z6sl72FIQ+ExzmraoQWmiC(Jb+FW>fwHS)EOR$bZQrudh+SpdFdj^B20IU`Fdu%~5U zPt&bLfP*(CQqeB2T>Dm08^|GkeFLg9p!QC8HTe{i?2zx>54`TU^`#4?9nIMcHQ6a9mYy{eya-dG~%=#{iTstztt9gNzrgNKo9M8B4If)0b?*ed`sCdKcYQ>{MF zBMitun-84j8inMR6S71H0A(~JsU2ASva#Mvw_H3@cptK(5azIIxp*xH0#{t-0=9Ej z(d%d>wr1QQ*v<1q%zg?XnE=Ij#@Dkc2ajZK9~=m0A0j*DLv(NOuG~Q&vk`Z)Qf{eU zeRzKF*hU1-gHk{h2M7m~Mz?%mk(*znr?q=#ANTEtA*`HUljuk-e2~zpDKno z>sIMp2N$$;efx?ZrlE9f^jQ~gC4_EdaQJlF+m%N=ct{Ut3-_NDbLq%R6Go+bcSi=%QsA3-bsfnq^H+~gu*F{jNJ6Z11jo)L79X9XuA+_Ik*7!3 zw#22!B(axD!DRPF2}%=WT9P+dH3z`)x9=e{Fz$T^%y%sr0Z8fIWyp@u@tr*v~|5DY^4X?T{ z6~DHzI)K0U+IEyaW{IRPfStrYd)^!O;hD`AcqnCvAY&QqTiN+k4Iiq8164z6Ws!&f zGv$*SK8c`4b$;(47+?i2)e%4}z_I>u_F7X4vrP4<8|LrtfJUpo&6qz$;QM|U9;1Pp z2fsh^%_p05{i+at^!WoQA@m9MD3s0qpjv%O%vUQsSWs1Lm->pPPJ&O0s_;oDXl@Vc zOAq^@aSzZ(e|ANMePP)0&a^kUH-BC>zzMKFy;@XXQ1bR92ak8zh@c<+f1yHBo*}yX{lhcx4SyVbjSh0kjuhfZ(BATfvP`T z#u|ho=cem>>U?&a;5~pUP>>&|+j)3tDQSY{$4rlvr`_ZC2@|#UlJKH?mCl7Ou+Ajj z!YvQcCIl_;IH8w#mG7ekok#?!1(;}3oQ1GccDKp1)Y!;TqdLl9jt5S0$!D^3nRt{{ z?!+tOq35cY#|>q=(K{WYM_G`pv7%lZ>^Oe5p8wfSb8;>#-2#mp>6kh!K{cZ(j zinassL<*)Ob;yEp)tBbKFZDy2{P%9AR-9fTeqc!#RdD{6!3BAaNr@oNhcIqxxf)H&D9`)@&C`HR!xxqSST7Dw&~iu`w0clLX7Vbejs7i690^e zzW^qlhsV2kWlHs_O`3h5h0m?+1GopUs^u_Wf4+kc_%^T+0`~X7GvM&wA=v{oLgP4)&S7q@- zf`J*P=o#RZ;v4+*8czYYB?oN2!r(as2G%|~@;u>*)Vt6Ic&ol+-RZ+bm(0LPiJ(e$ z%P^-V`PvWdaHK0D^6lrj7WXeu9ckPB$jONr9cu>$nW+jn0JKmqxj0}l#6Uj!o3?c1 z)}Auqfs87-qe+{IuXn32a3MM;bn>{*hZ`u$jI*v#`@9LwBkqJr%A}d)7Du9epFv{G z3nD*SAu%l2%~%n^+atg~5Sf7w9<{h$U1D5};-Oyc3z-N0c{xAJ+y-^lzP#giwTZNh zM>E>KJTAnQf%zBkAAlvIA6_#wHJ$VFcg0zEd287uYg+A&v#q)}ERpd0{2(?LWNL87 z$b)@WwY2U8$c8^BM;gp+&dpve{5NX9O&yDXfn+DU6O%nx3PB}`jv>-;U{W)9a&FX& zOIgC=<-}XEc9xRKDjVcNta^dh zYLVM)WYoGmZ_j{T=SN(OJ<0yNOT|kb=X_3al^SJ5|KZ6Y9gQZAe*FC+X?^I(+ z<<&+w`LU0nb$s9LOPQ8&Utvw}FNZr}i?Mp*6fZaI;RzAErkzzoZ8^x3SYP~uJcey+ zK_1giC=dCGyXJgol6SgmEJD^{MIh2XIBHT_pFrEwzkJrmW|WT>GK8F^XSAH2e_Q?X2lf2(|Ch6 zc#!dvxe_AQfni!gGj8m{>hL-oNm!Y~=KUdPyOFh=>WM(0lZ!po@N(+cOu zP^IEj`*w)QZLfpjW6~ho{`hbVO6$1po;L4WIe{<;I&U0s9Cdo&s3WOlyPFLj&;(e3 zV_z<=K<+6)9H`4VChf{sTZKZ6`A%FCi1TvPb}abU`%DE)KrYO+I$Ka3S1v#;Va)}d&=-9wW25jz{gjcyXCoKNRHGC5>*5ZgGLoM-ISf$ZY+4jUf{qB01QdjpLl zkQb3S-wp95I{wO*2(}!N-89Nrv6ZgDMdXHV-98wMqdD*dPhkk^F_{c+@ER|pH?UnX zURz^8^bnAf{0#PK%kPmh*NdmZyuvtXH?+Mr%P?L+PsDJzC9MUR5bxrgQMzjOmIuF2 zU5MMRpBUA#Aq+3DgM=BwrWp+poG&%789+2DjEMpJoki9B=vJO_apL*7e0x?oX)<-w zsJ+64ghXGB#|Ggz(|J+xb>MqIyt4KA5@b2(!OXaFVWaWvr0VYP$bCG5#$=2S*p@OQ zxa$&9q}LYzrWan zR{guP7WDp#<>{Q?C=3K?waYKgTFW^?lz0}wzyL5RaI${(9BY!OP#tn8V8YNpe1m# zr^v4hYaMI_265XEiZjQdpp>+!Gp&w+Z(Jb(fwKI6A0B!@Uv*}^otXB z!35P$r{?};a7xw(%PEuYL@risyEQ0{@f;DF54;m@Ny$+nu+J`eO1$pNUG1$ztsBpD zX}FHp{Xp){pw3(lIEi2QhB;RK8a2nmT$zP>pqodyL1?s^sOYT%3-fSB0dLjiLv(5s0Z74=e!9irP6U!d_VL=`dcK2k2Dgn_F==r4VD9E?J%l8%h%9};jPS6=*bW6*d)dNr>Mk}6L zz^vOKMVDlq*-YLLTJ(Myfrg9S4_90@24jKCuWVm-7D~jjMt4`Mr{fpBQ{oeHnb%aGQFVx-uQy$_#0Q*e? zS+l|lsFM!b$4&itC>cPO-3noMK|@4=UW1Tm+CkTM)R^Yf+Jrti(ii|E>M&|E%p4$( zuAj#N(SkR0Shbx5DXic@Vy@q&z6AsSoqXJ&K?Em+P%(w=OAbwcJ|_6+nn7{#+xKgh z+0WwwL%>*?rgxUbAhcxB>CCLOc&B5UDQVH7Wg193qWAfg`}}$>nB&)}E<&HLvG~^f*pC^c|&#yClApFYnUgqbzvE@X8a5d3;_8d_25z4SvsU zpC^V_E__}9d|bWzeBibC_6P76;HC4lN`GFN26Glh{Q450m#4W1kUI22b3CnEG)nUx z1XR#pUm|=377clXJ9y@=mkz%|{FO!DXlAClmR4u_O-on$HZvH_!k6~-i8T6Fz!QAF zhubF|r|22z78vUa{{Yc_mq?I}_LYsOm1+Vz~+wZqR{Ue?1 zI~xVAxXN{*JKz|4`qP1ecVZt9v^cl%$eQ}C)1&luX^tp@o*;C@!Hwnlw9ehFE8E39 zNc6@Sc|8_=7s1b>RfdWkJ9w(3Dv*sNqE#F)E2Xo0o53|XnSJ^qYe}K-0zl0iG zK>U^ATBJ=q@I$psZp+L=o+zY(?ye_auAwrHxRk~-_Sx4&1U|&Mqvv~~TlNg_fHOqy` zfU)_0c;9ihiz3XDy&k+NOgU$rgzDT4e_B~JqGf>X2G+b?h}uP~Kq7%4XY;_5;NpF$ zbbyMv8bEI}kXmby*0!w2T=3=bg`~v!{A8IjeOI znY^bn-!{A39~a(PGZBKaaX&0)qc^$8y#q460xw?XJDx}m8(ks`jSj1Cf^&SQUqS1y z636h05a1zO$rkd=7IYe;P=s;QV~+a{q|efGeYJ4WPq+Od+^{`t^jpYz?(5PZg@+iu zn~J{euv^V3R5tH(GR|SM^u*7qAe8oV-K+CfjM!9}2!ua(rVmJuBvv7>$nUM=B=XpL zRic8KiiVKRL4ng!Ff6;eWdJ3f5;Vwf+_q&2s9W zfV7`JarS7^Yb*%#s1WeK{B-kNH0j4y8y*LTEja4I2K3Pa`NHip ziux`cnt$7V?;v#c8y2soQLqHfkS7by9{uMl@S?lkNq6CzEAYPz%4~SM$TR;Ner#?$ zxDSUG5a?kh{8NtP;4;W(B5QrfU<=SclHbNqh#kUXg$b5NoB`FM1 zG>K|puYtY2>6pKxV{`~z6Z7*6h!izuezi*V5K?S9*mv}7T%xy%R@}l zj|k;a_oa*DMp3(AMTazIt0qy6je4=C`3j!Cw3}G*bqR@wp%TW$Ys>g~&xf;tutA<7 zqb1pI?S)QJrK23sY$CIz58ZB6{KFdwY$ohY(+=sB!WAgo9I{#I#Xn0J>8~7z6@~&J;QqWLBo1g^R9c4s5pg2-N?*j)wjNgWqSzZNR87BGU9;#aLRL}{fd3%et6Va1Th z6Cdb(^*=8+jV%1qY|tg(LSKz7T;R5iqed=EKFrwcXjzM0aR>YS}#W;)5Ek zdn32Ah2erB2f;EMYn1bI8zQTGcSXAW7Ig9pcl{+P6Yz zid|y@`&vGO@KqWug$7=|T`OQ#yjqZqbh46)1LE1!s`^*(KtW#Mifm0!Fc#G9`d*CL zyQ0v9Fi@oj=o3v9moxN)c7HrYQxFiF4TB9R%(*y{`@^*Wpc~;$IPm~xWxmqDvXSll zG0gEHp0cj0WRgF76UV=>$F2fz*mF?(VyW_^A5ul6x2v`daMRmBetOEYJ+x?~BA>N8 zSq9GFqPDvx;yZ{pg)v{<OF--y9axHztk;;x7}aNp#YoVX$&ZEpr-D?TdRIFxscBTOkuc; z!{+68fiDCZG=KvVo6m^i8WPe?9mWLHT*C zrZLU_19}!>I+rf;0U`A8*U07b?=334iRa*xY5DW3`mNMM`A4&`O~I@jlHrMZQT`|y!V z&leEV0X2C7RrpNrFwuvA*G>=5qC`1NbHT;d-UvlLd9%QXiI0#g@p4VEzh!!D0$wPgL|US5 zxNXsVh|~hs%H*;?)L{u>;N;6?b@8St^#d%TVR}9{OX*H)Q!UpnyAG1njBctX>`_AR z9BK3ry2)#%$qr{k8_%%rC4>27ga$1Pr2}_x9p}g^<}T8%RR^S+E>R*+`%_A-nl>mC$sJ3Ydn&s& zs4Gv_rU8!h^Oh7n3-}TgFb>xJWP*fYO2;QUE|5kO#}GKgogA)!w{B57iVc?jZK968 zN&q6bxRJZUi%>>RZ5Jrau9ZZKi)ySZ9P+R9I;k^ zz~NYHT)rWXB5iJqV-qKY$xioIX@rLZD=}ft-6bT$0QXvkv-~(vxdiK$%steY#HVxy zPp`5va%LXO?kJ8=Rb^Wou#-CI<4R$H3m(O0Ch=S?#3Blmzk$e$#35bj*&nzjR@9av zkYal%h+Df>S6m;eez)>q*QE#f5xmERc|Kmp&j`YQL%h=DT#Li4r62SfbvT!z;2Co9 za~c8ky=OZFQq7ZV&d((llVbojRVJCW#Ou5Yfj70Z3-NZ~m@YtXgudsUJxBEuP6 z$FB@&;n1o@U9>#BOD5#&QfVfAyB7|HoBPv6xH;W*cf}Eivw}z8bR|Hp2K@PfF8hwgP}%7T4QE!_R0=H{_&Va2_|MFt4LWcxJSoifxt2Ttosg&Q&0 zuit=uxrJEA%7mz`%jq^ZT^9j13u7&ijhn~yLRtesUFV@ts@{5R$ShU%uthg?_p-BK zJfC$4bTC9<_c}K*J3JWv3Jy3i!&u6d7Lf1Ach*LHCKr+w> zyx*9_ELMiAa}m)z{mI6p=Y|iDY0LOjGTtRv&h5I8|yvMU@zk{iN z&~sU_LhC{-5iKu`RTr77PaeQR@6@Cpi`JkI!tOoY+N*gyHAl=@PL=IldYEu&b?!D2 z;VTtVUfi(1F3nvQ_E_?iUM4cXw=Ns};S~xdF^u?IWZw%#9(U+<+UK>=q@BZ^0n8&O z?^pf26ecXWG~xX&?+Ap_jGTQbEWrjLyq^mXQ+hB}1$I9Upn}>1K%y(Vh(6GcB$~t0 zc!p!VfF;0HIYG?l%Rv1z*d3L(F0FfqKU6{e3{eHapWR+G3q2E~k#EQF4-D7;7YEKE za9|8BJphiP^tB!Wd-MiaA8lftKb1Lf#C>PDYL-z&){x(f5^#R;xcAU(UtIv7A_UtR zC7=6Of4A@Wt|z*);9=YNGIUUm8sH4>x_wbL$#GAMa!{ExJH3}u-bdSGV~AvntBe4` z18zrgrluFXe=5F)MGeG+15Sg9sz=pTx8+o~!2A&2QtZz%4{53(r8z7CeMJ@3c9=qYxX-@R=41?;q_%@A%2@i2dbW}ep|pV78BJwqfbSg*M8knj zU4EgC$-RujlbLRs{!Wg}eR|c~vfm8)Ho1ClHzwm`22Tjn{11E~dTfUup#xuDNc4#O zi!SIN&);8&t#ZhjYE&&bcpiT348A6kCdX$myZSavoM+#HbOFE#eK#!v`TyJ0@gw;J zyUZ_(cd#XFzd(vW%<|jf9s6kDbk2h&Xk&h!IvH=+09Jv+UXK0m)n&AjJr)}^c>;|O&DAc(9|=@r(KRYnnycfUK~J-GD<%hUFd z?HQ85P-YPZL@scGC_eDLd=4E%<{pGy2U;sEozeYTpWZh~eZ6Y>bww|GCl*TZf$n!) zp}i>3R%5j6b3P6u%dIX35m{p7&IW58#D%1suW3__0Q(mP3*;nvbhmJY9Q=gGnc{dhJkJV&n*Yc zotsCw$kRzcuQb&Kj5Rkb6&}mUzbQaFOeGkw@nC*X{iZDPvtU(OJO6f)732bjcy zQVf*SGHpSQ2_&Ohk@~fbhP|R{X|UAf=Rcbm#XlkKcE1x_>Bntz(}u60#S?EThl_WS zHe|q^*1{$<$Q~j;ULhgGg{XSD5HO-eKvqP>=KzfCM@d{GQNgWuNtAq=(6yGtpauj?uMH}{Y`RG7lc$Ki zopidIE>}$4VGrgo<+=$ez;6h#j?C9J2ICJkxHkrZsfdWd)2t z4;D@iS&&)U<^S{Zza5C}T0gk~vh|xkoc<5wKg56G5C5lQQHVaXA)s%6Wb||)dznz? zAT=AnmRjq80RVs~Bt4~G9BY4hOgi5)puY|u2I!d9{rHpOwsm;{1Z_xMg6tmbhD!(1 zg<}jI&`+luB=Y?9F>tc&zVA#54YoJh55dycQ711t(9(47dxX(1k7+!F=4`a`?bwW5 z`mX4^pVY}0P$%2B0H)*tXoOcrO9G?=ulHTEad>O~P%!&Hf6NcZIT$7RVrK&|^xx15 z7jNK^)zfoLdG^RCt1!8M+GnvlpWOMK$&CICEhU@-_fa$7C8PtZhQye+J$t(EM;pHl zq%bP8*ZUKG7)oL}6x~aN*#`IUW#(818HE1<&7^tkOx+n^zLF@qM!sl8>9l+G*2?;>&1+{_ zYz!h`PzD!Mvq%ZZMX8r0q7SdI^B`e$a0f ziHBxa5cIPYaDL7M3&bbXV(i-_o$&|Z+?!FT(8rUe<78UTwyhhj1`5owZXTx7Z1*UB zJ&)7$BLl!m~(gY+{7e{1qx77?c!v!knoA+Zu^DSumPh|%dG}7U(O*ntl3b&^`I3q;G8)9$A=d*xX zXR;9Hr}n#r@rRJ&cdal}69E>U&1Wx#ST3#O!3@uuv+&Ff;V!R9>_f!%e7h^^E=wR+ zpo(1}tXVI}A=2DL-m)jT&`#jU1GC^q7+DS*)4@OK6Oadcj2ZjKkqaa(!pKm4W?ECu zFBvWS(!ZfsPIC{FV0M*`LEL4V)J8?cSFk@GTt%R^ejzuSVe!$fs4gC~v_6o7IhvP7 zrBJr=^jA2r(gn6H$XSJJIw%X>@=aXFo!cY&q8Hs#$q2-nkD}5c;dXRUPE51?1ABV!z5-$UZtoxQ>VBW=J+=_b^LSg@MdXpE zFV6224NvHX4RW?*l^&1GqmQ(5ht;-HXP`z`u=Uoo z=(#kH{T>t=DE~^$ym%%AS%M-yUCC*bp86fgC?&7fx2 z9mYL3E?llet}E0^apCD*c?_QhY{?Nwslq8|FP+55x&dUy+IR^Hugkq}sS>>OIxc`e zWqHKTIA&K8HmU%fkiB%@%Gfz#NLnSM;n4=J8+m;nDu)aPRZp7K02YDVlA!Ef2u_gF z0(aIcS$ae!q>tlH@L&=cb`f%J1|nEb=e4QB-WtyAks|%B!7mL!ffe}?3FEVb_`-U2 zMtLwFgnU0=5*>N=g+s>o=3&6qSW_+=_yraD3QF{l`?qQ}`rlWpAu#p`Tnq;6;K&)g zvX^a4yEUC}PVxUot*-uDs{y`#(l+JO;vB!VDgfH}{@DL;t(O1oT3z;40J)#_)yIp2 zJ-tu;UhQQ}sve_I?&3-x#FiKj%h}JV zz?VuD^hFNOXi~2CS^(yWdc9524oY+cDeA5LUY~2uIU`UtAw^8t=NAblo=KhvR6@#x zk~E`tcZR)sn)Vb#W&vC*N+Q5Naq9_(aGeV}?pk>}bj8qk;B62J$zMtEW>{-&9JmtC zmn6Ir^fkb62XGq(`N9#L2A2|`kx5esAM{I0*tfnf3ZvV%5akNgeEJT-gM<;Li}nCH zlK3b|QZOEbZ6Pgn&I9bl^<9fIK3lvoo z$FlORd$tJF)OfB7%X)J=2qBsF7b`}SOW*J1r`JS1-L`|kx~KP1X5VWnFYTd7>yq+T ztRaCR*}y(OKim;Y-^(z^LGA-{PHgaPHg;+e6t4Cg4njn~2?QGNkM$a)QE;wj{Z6am zmBpFfoqgoLt5%cQ?R{%rhsaoz;G8r!a$JR{m@eG!ww^!NYDLNmj^Y59w#@ImAMnb= zeQ|wr2(ov|+p4bd0~>Fz3BL7Kj}fX0F|f!Jh@ZrcPI?Khz~o)GM@z#|{pQiOq}ba~wNHruyVZ6W0;f036R#Ifivh{=3AbQ~o% z=-zH@sMt__NY?3<%G&G z@LYk~4Y&{ET}7F^dM{eadMm9@rCKMXZsE`7jXZSV5yJgofn<4!X>3qSbP?av7ZMoZ zLt1RRTkvuvMuoC+0u1g!kycYJMKPCJhyw5-fV1)LkLD7QK>cr_T{ouaEiF>w;q*|( zM6cUiDmTQpSrTKve_yRu-$6=O)f2@a_bM?uvOjXIc6Jg#-Txv?_!>X{5BJqDNc*L)hB>B; z{!*)dd+dL>RzvFdzu8xB>x^45PQC;P-iC0-i(kiwgx{nAJrj^%?bwHQ7Y0bouDsReSomh_1QHmg4DuYH2h5b@R1_4#->v_%qP zF8Ppq>l{ePPOSA`lc#^5E~W1qn0(%Rb-Bw{Eb=_l)0T zV&7h)d?8Y~zaoXE0{w*mb`3|hg2<#@Q$l=K$jYnq%mf$ms0F646X zpfH}g3q%(AH5pXunF};DPk>1N9BG>;jybtIHPwllHyFW93(QqI$i%Bu_y17$A4`v7 zTNgIk*Hu(s@drjAi6$O|@SYyt2oMq=1Xq8i(p6UOa{GMyoQS_V^@cK2FEXq(*PLTK zW0K=+X$-!30&f{)28Z|o*sF~I=L1o9J{r$y-=0}ot)lpNAgr|=?MJ;+GqPihf`;kK z`|$BormKIclxr1vf%ur7nK|)>#orBSs;0eSL@3gpxVIY0%mARroc3nT%Nq$MZt5;u zRn!hVNJ%fP<9f(XE^tu+s12s7JtTc#B!HFV5nNi?>7t6L38C`Zx!9}1GhoK%C?_I= z++gXZkZ{^PO;EWnpqdXE2$ycnQ;uBT(vltt1{D2?d9Xl=m+2{XQi8{KKhXd6T>Y*J z6CeW*`ev-+5=VhOoAR~)oUeYYB>%Zrb5@0WF~;9BFvsDI<_O|^G^OtSJYg{|iVSqpou`|-WVBfT-_iCQ)1Plc44xJ6`&>fvePC6(2-u04F zg1sA5xU$4h?nB-C!N$xZ*z8@VTKlV?Dx1BV5IQC0a5$@{S1cOlWV4Fki*a#}!%6Mg z?DbM1P|@EMt$O#SL;8SPcn1#}A)FeAHpf}AkFs;JGv3@eLE9aVPYQx(-%?MzPe4pW zZ%qZyQ1yc7uv?J5#ZV|`gbAVZn6gN2$gSHiJXpk?89FOw*5O)zrMP*=r2}yBEMs^a zCPXKjr;s9%9T?*sBoTCj%u)!ni&J~quh0DIfp929jx0x_k9rS(qEy5R1oi%X7wcpv zS4YrBjwW*v-e4Ol4hrYYknKf~TXkm2ebq-1( zej)05={s&$8A*FqAqjA#uRvjGIKgfmmbyR!o;7u3$@#ByOw7VXv=6m;d|uovF~AXP zCkN?hK1KYM?YSzIQM3+rs3h8F`b-)PtVq%!JlD!R<2|aL?9LVfi~ID_bYR1-cwaez zhIqZ)QxMhC-l3a)qbl|IjxsB{MS{P}Y>5G7DVfhg*=PC$C>FHPr~F1xj$O;c9`<14 zhKo;OLRR>)`aTB?b>C}T$D$74**#Fy^Uh%my5c)yc)x*v&f5qU?jx{Te(87rc@Lbc z%bJBe+~4SN1maBgo6LP}hl_u!)A*-;IM;rxXZ`VeKip(VHPxq(jP_9WoDl8_xkmQ( zt0L-4EJ^$G#P5?g3$A?LQ<)!WkE$iMJqW!3m}-``Pc}bwrXf9%`HBep{2l+x-^UX30KwdBakUycZ=HPGoNW&rQq{BJ zvjePl;z_#$8Q(EwPhXRpvK<1djy>vPJi({CK<={}u$zvEF2;ai4;oHyjW-Bs%F{Hd zVFK^_0VGHSXhqg%>h;(q0;?K?skY<(ur5ZqcAz}tm!!@P6MbduLfKmhq}uV6H1K6Z zgB>pgA$*)2XuLa~^gJxmvgbNBu$G6I( zub)t&e9R<{r0w9R&WK>3`)6Oo{d9y(u&8^{ly2<8Yq8!Q;>SmFkv2|Sj^P|OI^2(! zgC#us(!8Gs)P!bli9kGNdY6kzJW^IO9>%NjB#`c~=wL>w_g24a9r25r@FOPt8khU$ zV!}Ti6aG<9sP7i^L3UoS&VXo!K!-h;OR#o}d+cwN7VE?F8r_ghpByg74CC`NwC|(W z4jm3+&Xrjl#r3Vbf%a?#$*tqoUH(?=qZHbkCR$bs|jx{!-8@Onk15U61S=W3Ge$n zC+^FG1}ehU7a#XldD%Vf@2XKgu2;0EtG|TM;~JA7;>%W>Bgk(wgI^)~*(>m+ejFTxUoXUA z$ZXF#a+7D4^!_+6JmnvnLR}8~2gBwk^pF$bGzP_Gxx*f$ZHapBsPI0J{{%bz%k}gx zCW~LiZ~wHOvesukP4VB?)1wgYt3z?WdKXJUw2Q)wCyrLYN&2X6@X-T8h~EBlQQG~l z*3!?SwEGGw`ZsIoH^B5?tfil&^qY_!7TEveTKZW^cV8%xf3gMqcWbG-WI%0z%*^!L zn+lAy(tSd^ik3^QrfD-GPmm%e2Ga)Xf^W>)=;edOqJmIdUo3Jqv&$X}+e-n&mjV=` z$<7LHz~_w|cEGj3yg~`s=XCqTTl=mzPNmehUVNz`2Qr_+gJ@mWhx9)TdiyqQ_(5o5 zP_drbL$19p<4$q9|LX#CMX&fkM5VBEV?oovXp^T$O|qZ2>euhnqV*6Pc7r&vc8~>u z?nc`_c&KwO8{)tL=JT2ta=&b(0D7>9%=ruCr9C_D{pNaIZ^KIyQCM!GRdZuiX~A8D zUP%Aa=tEym5B1amHd31I=B*ciIi~lA*qU$SvhJ{#TSa5~0%>p)cb;$?TxO!bTQ>fo zviaG5`PWs=Kiz>GWRyci6aTmaX_#Y?kJNg^>`4*rw`BH5@=tN_FwXxezWRSy(E!X; z`cctjKUXxrdNn1O8ho{CZVjm1{o8{O0r|)Af9p9vvy%Dc z{qrxoB%S(`R$+8_DT6z3C2yY^>x-M5C7T3Cf6k0^1k@V9%Fcno1qI&nnBbQxVZUe5 zr0WMrAb;E9cGayGzb4o5-_(TXFC+sNdS{@wq35m8G!5dL&fOYc*vak##CqN<7N&oc z)w*jj%Q&J#@WkV?yE*S8`4~m9dl^q?cm?I{W?hH6>rejuSnUbH!erVXUC3e#-@~YC zTP(f1H}-~uX;zdgSR1tCX_SC+xC7Alh(6JIu#wv%sV9B1qv0C1$7p)eA`6{B%7CQx zkiv8Gf%9T7BkMeOC=f2z_!Mm39+0w}Zsw%XxFBcGfOQh8+lGy4WXs^vrx{ zNFS^a`pFS7;cUdiIJnDXV1V&idb>^CLRPXZ&~5Y`!7czq2v-vgsqFT`QR?LMNtJuo ze93ytj#dw+`wd+8l+`C(^|mjvV}bsG5;!Hg+>^(tSD_pr)S>!z+TPv&;<)`+Q|zkw z;}qMeFRskg9yx3Cjw~TU@_DmQW*9Wv?ZksUo0dh>2J=bP7S`6|DV+8BY5tSR;^^DF*jo}O{r5Ey^-in9T+IT9o7AYd;L-4op$3Gsb#9br8u7gzz$PY9`r zg%^Jkn6x;`%2*jZ%Xk=~x>g>Pps9FNq`Tf0usov4@p?HRAY@QTo4Q@B*vW@0lxslV zgb?$hXNnpXZ{}MGYS#$XLU2#(@^=C0725k)bEcv z@K=`L1S}IO-SgKQ3;TMBm_B-XX8KJKZg_q{Ide~#JpNt}kE1*sh3DiNdPFS^vZyIQ zp!eU`k}p~0{|2A;>tX`jIC(I->YdfIc9T@z*M=QPywCPIT-XxeKwn=wcp6nMrs)MB zLT_5Z&*yGI_}kNh0UF1aT>z=?vUXqP%jwnCGGR?Y$D{r1l=(M~)!Rpv2zlM#REZ`Njfn>nY1z5fx|vhM zA;SXh*DlQR35Tu!e^j&ZP_z6%oK`=V5$+eFJBSE>@4%RU+kyG@)bNK({%<=le{*U8 z!|i`@#otwpJJx=PwwxS(>c0GnKt;%b*Ylww+X^hg~1`u8zz zVK;18_&CJz7LzBDFts-aPX9OXN15aamfaw+@aNd~>sm=RDIh-MyloDXi}yfyLvY;p z$2Jh!)=MAMeRn%>?DzyHgFkH0I0aIVX#iJpse$-$NaS%s}39wWB#R0kCOc z2*h861(Xo1>0ASRu{H$+6?Cvvj%J^q)yQQYMnu!?xKmv_R#6sVwJf#)>`OknGNN#p z9IcfD79!p&18TKW>kjUpvoO?B9A*s`1?~l}hz^`bgM8N6ny;pA*Y%EaxQ#ivKu3E{ zT;Oa%);2*MXzpg&5c)O@yl7ARWoS+Xq^q|O$U#n&l~3~1u0XC{ zBhjPjvyahNLkj|Dv+e>hTI{k1_Uq6XR&5s5D=9kjXoj;A9q61lTJSGP$pxs7{w2{} z-E9SFmtBeOd5xGXgDg^EuNmj=jH0~7x388LxTl&1N?L_An^9*+a*=SqRKXcSO#JCJ z#2@kCEc-)iLNqW!*4VhgSRtsl?CqAixKIXN&*3 zhM%;eDW}Uj@GbSQlD)CdkDWrK9Qs93fB7uo-|9gX$Tl1_H9=W@ohm%Qf!Ip~?+c$S zN3s4A3NDt0H&O=}1ptF#P`aeQz;Q?A1Oy1|=HQhhZhIIX?%AoogyAl##)fk+@(6rd ztaS*q*?{uM&XUJr?rSx5$S3Rk_W3@G{X?v87i!J+b`FS4pQO4>)0>Yd@m9O2^W3ch z3iJxh%zLbs%?H4$wGIVTTPPs+A+h`Cu{k7;pBBPH!5%Wv6&g_^mWI}_J(SMeTqdau zWNl&0b$8mB==wO7X>svM@d3HO7c+@sEtVkWrwJi$Iax2)8zek%0ecmRI(YChF0e}O zH(M;1W>#3e=tRdlu6Fg?2^^+dU0!$_4yC264!(kCT4qgHqKkCFjJ9DK+H(?hrRqxQyx}VDtK@Wa@hd)e#duq5ieB zChbB{wlem54jEU+J7oS{4gHCB@)ObR4)`@>$Ad-JrAdtbV2fw3x4LSM)^~T}X=z4G z4yD*cy(ur9l9$-Ha6??(7;p~-+m#CFUZ46If(o3>?jFZVJCNE@Ep2gP-i*Y@xMY}xl_i_8 zJLA#*@3wqaS9MPR4SGAjeWoyVQK#`#-}~R_d8+QudRqT-^Z&gT_^0w)z&~Zc`3Jbd zbd)E#PE(WY=>i<$p}**2{~xW3PZ_{6)lWpJ-N%?KF2#K4Qn)Zi9koUrAAc+~Uu{;vLpM=Mb5P6p5~B2zv*Gu=JeacF zG{XS|n*$(p7bqBC1~+002)nO|F}tK@m@Kehet#KY*#E6=fcnqj$Lq@Kef*DJ;^!6aetwDH3yptKXIMwUwn1^^k1?o+w1cprFr~;Yx2Ja0 zDEUCsY4UasXXmI?ieVqlruW2)6f71Yh^_4991Po`8ELCJz0Ov9E}(@+DBwp*_mR!QWUkGKR^Q2se8XW}9)hkM$)C(iT=5!F^(K1WI{ZC!MMXf?w1CBj zigVsVXe?{n^8HIJxV1jw@qQ3@?{iw-uY3_@q|9C)H|No>B^n+o{dI?+CfUS6T2Mcd z;0h6yYpn$A~LsrdMJNxJZWN2QTl{fPjRAxmD`_> z-huCql+fi$rQ|5cN3NKI)jXkxADf4 zS5^Bg(Xf^OWX!CmpM9FY3^2`6k0`F}D|!Yy6vo*Xbzwy2B!nkw(rcof0p(YkwLAFq z4e#&G?cJUup1TIX=bRtc=rC8xIuf$y zp52LTj$-i5M^Hz@j0yiD_6A@@x^UfU%%Es+V&M40;H^Q1t= z{U!iFdXNZJBX@olmf{0h^)Q>OZNlwyk8fv2y}eLGvi~Br{lXI zgkhFwfS~Pn{o`mTr#saZO_(liXm!V~H=N)?=^ozXTw1{}Y|qvfd4qJSgJ%afTCsqi zaseDXo!(+EBgUpb>vtP`E7AMhBj;0yEEO;$brj2K!lRqC9x_LIM%R-o>JT!&*$7a9?&Le!_kZr zz-T@22xTzRqE4o!fEYG8DmTV>!O%Co<$y<_=DmBFbH=bEnG)_7dbg?X=skzWlO@lw z^B&toq8=4?Du{S5mBebjUMHTQumWALHX1cZNu#F3G0Uj~Tt~DJrTt;R4M3HA?4ry2 zNZ2y>fTv6rvUTuPg6GV^oh918@k?LGL&#}DA*Mv$fmWV4 ze5tn`s=Na(NT$s$KsX8^nz&RyYDQyiu$yO_UPp*(#QjK(2y-wbXUw9LwnBgtIHL44 zK0|0X8XRM)i120?q6(h9ltEu-Yp-8ksJ{3zg!LHn^`5D>aJoot*f~jYRK;^xhVekx z#&z5C07??17fv#J9n&o^3JCqqDl2OxLf3;mTt&!za@j!FiiR&w)U`P7qp^Zy2GEf| z0g-wrIryp`kLtD@t^naSjxQz(F$qjl6N2cwy@MaF*97;pgG|2VqZ5;A{mjztX&+?n zpcJc&K6~O6iy>oyG1R$5PPb_#McR9J%gq#p{L)c#PSpI^A-$!?Y4&VH);Wxh#A!&S zK2GXwo2>le_4S^hyceOO;>{2jWV_hWQ^gO5zQR9VW^(2^)*>^rK&*pnjCxeDW zsvZ&|j}8X=jNP)#I34%9{92r&cTlZf&PyfLKm-oxN20>BPme$i?=UZH^`wM=<9>B6 zY07M8&3y&aY28D6?vGW+*A6w59iOVhJ#>iwxIZBo)h%@??9Oa`$T6&yq6Qjl#ykBM;-Yo$Bo@@6U|| znGk?+vCSP{Qk%k_1fsSexxN|Ch9w}ivK`mGj!vxr8Fx&J@9!B*A!}m6pQp11jO%xk z$6fNK#-SJLch;EYK?c63pF$^WO(DH^)wKN?%u2f+b;QUrKX1if4*&nFisMso?Eb&3I0O?_|BD{Se_3(-zwBjx zBv^l=zyh0+6+ephF7LA=W?L`!9L2C>J>OsfhsgS9OXE}4YoQA2@#HSwxS0k@iBRY# z2u~quaob*nTlal=C$#-Ff^d=4d3ONwyZQRF06+gEarOJiZ@b>mk!$+~g5Z8DoC{Jn zV9E}@DX{(^+cb}a*@+nR6c-S=WPFPQyB~XZTGKUOVa>arY0ZBFYyP96Z_(~Bn`=RV zg-1u;XSMCtF3=Z}+~c0`Rc71fhgk`?`vrG(Q?_#NeUggdHs?S~eCkL&%9ppk-9{H| zo+byKazSc@i(;d2b~h5=(xMr%T=Zk&)zn36eOrIN-pWNRL!gY^5;*%!+6pKP)Wd?f zD*qM&_*Fb$*Jc0P=l=grS^0l{v&g^eYW`C@la)RPjM)A@)wDvPy%20T&sadReXgWM ztKj1D>m+z_IsT@yUm3jMp9d-4H*CBMA%;-Sf4S>^K=5sPg60tR33L3G<@m{K{3fh= zJ20Y$yv84Y23hF8{vksIV4Gc`+xP~L*q09E*PKQW)_?*FvKu$mF&7QH|Nr~Seo+Yg zDiE+xS8rd?)Jh;$E90yE<$Rqc?<5WKac2v+^eoEnYswsfz#R|Rx=rI6kZ9og#?#7h zjJpHAA#zMbIy|%Ewruy*&z#tLnUPBr=UWb)H>1axoU$9Bfg;d=*p z4-63%#2&$8qDLXU0y{?}Ez<;jWth|kVeuRbRmvj3U%ZBo2VgVbf z-7nZT2rszUJ|L~zui5gdok9@XcP9pUi9~Pqz9hFp!UI?}5+BIac>6^S2w}by$O8ez z%6;Qr!z}~16ws(k5HZTzS3u@3k2TC6uIQTm1DGj%US!9FHEf#-n}WWrYll;F*8Bl4F%7MA^e(^nn`n zQ^E48J8f)uFZ@QK?(^*K^D1TM4FONG@=6mObxBIE_VCTR!r>9@EHys{L0j?$|+}{~HU13_$i^55YJBE<_V!-6kYj;5A_qW&l z9DFu=Uk)V1++1H_K{o5yun_v7Bk4w@kVb{~q8hELmD`&POcr#1oBP^Z zQ*>4}J&cr0+5poT7Ayq9s)2AtjRH6#FX?eV!Xn_9v0`XYbON+tZgK#zWx?rrJu;^i ztmS|kk)W#^yj~A(QkMyR)pWUgi`jUlOAh*nbb&^C`zTPUIaSnDUI<6KDYy}+?XlPc z6q!4K?C-QX-K$Iafg$oc^gFU_{S?8ORKvP93v)`_N9V{MV^upLz+X={lxo?>n?-s3 zZjf3nde7X^(O<9#|FIf>lx2UFG4Z2e|2a9ITr*lUV`1*Ed64G4IfL0st#z&c9hU!} zR!bV6ZyadTZ`0Y5!YH(eUQw~!)6eZo2RM{*8?Yk@3o3+Y3C-(TlY19aR7km$z#m*6 zJK%wX%7iU7s$xynfjl3V98b)-$=&?Q6fmu-(^G9QkxFbKx*xC2X;Js@^Sn%ei-iDr zn7AK@a#vR4q@Q)(@N%UEW?hyvj;dlME9)joknY*Vx&;zqXz;9@?jFc1s6$UD_a#n4 z=wEoJw9hUPIqe@kP)4>piVE!s2f@I3^N~|Nx{f1Bq2a&*I!}pPQ@=;|uwO!R-+NI6 z=P)H3@UDW!^aFHi&(@-dvgx|c+l9^60uvXc%p{UR*}#93L67iu&f(8Kqm5Q4AT2{@~@PY zrZ1m*hj*DK$=5T0Hk3Qe@U`IwHq#s~14q&pQsS$1i4*b!i4lZ&L)afLPXw`mc_>M5 zo8CeExU(-;eOMdf-Bh(sC13*ThoH1w$Z>jt0gGJlGH9k{UxBtEiY&>^cX;4KGZrC_)ioqhtLyQ$ z?IL_U^YRDvf4py2tTzQMX+Tan1L4dp0;b+Cw1%M<(mm2AP&kOvMfSw^p!c>Lb{}q<^=28#6#P)8Fhoo$k+ny@CIWQ?L+yN@MgV+vQJt zIN%-5f3t^c|K%QjUzG2lzg76d9_~uOzZKg?7PK}53*IiRzsvgnY#&cC72I2Y+{eE? z)-Zp#s_zouzo{(#{Z)M~>JQb$f3cV2@&H&Iz6RMy_GDiW#x^_a&Hzhce!GvV{ZN~P z9hOaaKBNq<*cgAxz#4*VZqKVv5bbh~g2M_~sMiNy05U$z`J8~aOI$4`L5~x6+(|W+ zr>}X_F10#+^)L)5<`~5!d?xNWKE1A_vxgzc9Mo99zc|aE`|j z8ue{bYM}WC3?_NWOEQ}6Fn`?bU3Ym$(LLNh3vq!(LF5jvg?Gopowug^Jl`8hLb1=e zblesp4WEaW55_1{T@I2Ez4pum=p<(@4e?0*?%tB8q1_;~^ZLHgxPu=D-t`l;2tw|N zKkiCXM(rWgVq&QF$p*mbgi6_0rZ^kHR%BvU>lMzup7>s?-Srtr!kiF~X0>6p#pzVU zssX=n%Sg0>19+-6H*EjxuE~VOBN$3N+7ayM_;ez?Xo7SC!;*+o5yVaHYR-K`H8N9A ztvz$PR$MA3262J;eh>R$#!yjsZ0T^t-PN?g{;`+uz6VDA z+r6APNM%3Oy*c$s8VS!9yuiy5TD*$7{5ntn9Y@F)$AkG;_=qQ-E|yVyIALODRNiXI zlh;Rd=|lf@lU*OK2GP_68wa zn`X{B9pqYp7NC2j<4Z|7F{hX!C>mZ@AYST`f_{W9mqbgB@)1jIlUSr9W zAwgpIdI_j(473H6&SJZCyb>}MbYOA>qPXum9R8U1TS${!4bJvK7p7fzMEc_ed~y8x zw3<2IAVgRcFimh4zpGjxA3WBsquLs~6oydp3LDT71O^pw2WQDGe#nxaR{8ce)%Omf znu%PwmPdzG3xX?r?R=i=+$Zidn&f(j;%5JZ6TKp3>AUu-OHm6P@QvS`{2IUmNJ5lw z^bY;^T>+?e)x$8XB@Yau9pUB$848%Vf?GZVIBW1SMC=!6om6e$kt{}fWK*WC(gGIs zB&RTcEig!GgyYK0aq=#18ZH@5mG({^jDG=t(M3ANIXYsM|3>?*cwg?UBY@!YKsdMJ zgx!Pr?Ll^HY-R(}Ud^pYV_`71{fpg2l9NwN5K)5ViuE~#!#EHRSRJ?7%mvovgFxzI z!=7EPc%9uGD}rTY^!L3_tc%5PXnGsdNH5N0H=DbI-%@db(jJghp4WJq&i6f?@6*5A z%lUr#I!(Xdr@v}!|Mvg<_Sbg9AII_^Km61AoHssu`}$+94k0+Y3i0HBavo=y*DpEY zpQbjD=-tnRd&kgshjYC-`+DXcfqF29EAfUW>%NY_Vbq9eZDfCA68I$gMVrr(5JzRc z648U(b(sM8yY7-e{j{y6j{yf(F{rmNKyLSJp_v`a^?fzHq*XQlp{jc7y z4>STslqh%>|HHSye9g<`75WY$Y?D1!*J#B_LXG!IbaZHDI3y4CS$n4Syx^Un`+yyk*>ZjYh5CT5>$XO%w!=_IUm)c@1AEHPSfcfFJJ6E zr{ZqZ14uUCNmAiqvJVnw5gj++Egi4k$45LSjcuJzx7F=={Rq)@m_>P~6DY$^@XO^R ziv_iNDSfrl((9q}msD|gBXWsJHjiNf9K7ev>{d|Soj3N)2SRhnj!ZW`co6)t9VzQL zl3)xUnXlYnP6*~=`_y=u!BvljCl6jB2SRv{&*DxdBl=>x>vMQpDIQ8n65xDB&-f`#+2y ztVdc$#~sQ5s1E3_u_w8Sj2AcN(mnnRy7DcbBahA*bVTsnIoC~CIMo7KzT)ugYBJi@ z5ZC$yKon&eNaNg|i=j}?fmI(i@(|7@a0pJWNX8*FQ|?b+sc9*G`jD^ARM`G~ZTTju zU;G64B#3j~S+`<4B3T2{FaZ)&?Fq55u8EOHSm8Boc?>(J)!`g#5O{Ho-5A&GOE5mD zCx?wVaCoo+GCj{I7*xu7*Za`$7)|O0VF8h|?>G#9AiBQ_=>vO$a>U43{;1!@^vP(t zb0J!W*hM%aYi7y>^_X@wg5-AmNtbqrWZ?IjqLp7^$u$!AENr2FW+X09Cx z)et)g0Qt}eR~!W6%_rlzbk>}iM7-PsD8B%@fdNr_mlK1W5R*XtLqNyB+)jA*pPIZs zc9VZ`SY-E~K)?GBS-3_k@in(^U(SfG##(#lKgXr7U-B?M8_Vwd&ho$5Sa#ocmcQOu z`1RjzEW7VJ%eReXgTc%9jpgy*ZY;YmJBzEn)gP0c4}}*XK#jX;?H#5)Dr_oWAA^nM z^Vm`*=RdL1hs#d*mV3-En2_{e8{=1&`FQDP6~M!nuf~4h8BtE;yCvknAFkbx{d9)- zMgTW_(%^-0cMU*q-(fIMg6;0BSM3U_xjPuQO4#b&Dh#)N{Ux7Q^U>qWP;6!*SZzA+ ztovpO8gs3cMQTo@+h=g~{<^cPj&l3)+kfOje$4x^AA!kVfd5lqvi|X8Xbuy!9eh$i z1BdX)kC}UgjRmmPbjgd1Ju|S-)if^CjBGk<#vT(_I1$}u9x<-~?L~Y6ok8ul5^-wS z0vP5ydi0CC5hYj%=KU}-+&42ZtJ&XUkgvLF6uNI}9n}8Vo9YSQ`z-W=PXN}^9$23p zPnSM;dlvVoL&!MZQNYE;lvZNEa3?Do3&9=#O2+eD#Up(t7#6BCObDvvYu1qOXV&C5 zd1!rZ(3uCAZd%^GTvYllvh3HF&d^ZW;3=(&Caa19iR&I~QRnp8>XC4YUH}rScCWYS zqNWbh9$SO>QYC}ZJ@KU%gyfy33{jEW2|*rxH!SkvlYLM*sW=6r3=HqSMq#9oOUHpA zI&koucek#ZQmT4g9!o_(>u6e`YrcBrbAmL|nGpZ3%4G$X{*Cv3vvl40!^HNVYE_~6 zEG>s0Y7AcFpX#6Tia5sqx$guW9?og_MP7_W!=-bD|moi%5#kSIwA9wTxk6vR z(vo`hcTwan_!f<4aya9_mEZWmLJsGp>tDhecuebu)G!iRt^&M4 zlpk0NM##J=a{uO@cJD2zPIzJInGRvjFamMQsd_Ks{$Pi2KHAQ7V2dZQyr0q})pR*d z+8ApfuWMS``cNZ#7_`m8c4=Lz*bPt{%i_z3sRPCpHVf6w8r6iU7;)f(cuTmS8PUeZ zq(75B9o@=B-}9TczxmtaKE=ve*_FO~OjR*~zRBdN_s7+p1@WZQWX}kk zKS9TWLG)9dlC-tdmfYT`yVBV}g6=esWQJnLA0f5`&3yUZ?yBr6MHVqNV^U0GQWeCV z2eaRh8T7utuo=gm-gQI957>aDvG5GVm;jlWYsQ_}o23rkILLW3EDs>3yXjH6F7VUU zE~QGy2S*`!Wh%XL4!EQ#UnGyguHw_CTR~#G%U@0hxd7}4fsmole8+g=>H_&P#ngxU z0BhhMr^l6lE%Ad1S3n{Ehbr?&?`lW0fjC3@R&{>mFn95dg5d{z=F`Q4W_h~&0mhuciKHIBmgqz30u-XN3vHcX?}rscKiqz1Oxu;Z6LGBhwhM`uGf z%~%Haz>G5hmoF#8HTD1kffRLpo7|3F2ReB;^9zmNJ#|Ffct^1AqnkF#bdtj=nF0(b zJv|Gr`qAw7C7h0#69G0M07sX18bMwz9@2w*M};mrBW8Dd4rDKO6vIMj*p4SZLO@=a z*u7T!;id$U+f@>AK_06?O669f$$10bcyg{G!_9fEuHfXN4T|2V-`@P~{B%ve9ZR_g zb`1CA)K!Yrn3h;bRoD$@!9_2>a zJ_$GXFL$QtcQFJpv-Rn8M^oL1fi*sckV%5b!4pQHfI+Kk`>5_81>wk6|B`Hn;Bdg$ zzw`@Xxl+6F)m0cFaZJ5_#<&>~4_GRx0bYi!Ky-yoSs&;+K6U=MYK*hzut% zs@2peWj*gBn!eMY3`e|;07YLaJzkht(7hirMg!uO-Q_p#c*dxkMP9G&sXO^8X&@Qx zxr-DY_OFQSlNSmAApO{qAVFr86u;cb(6F1JcWzfYOHpatLxA96od0fD*Jaz`fAeKK zSMv3@KM-D+-&pz&8~xAciElsu)85ZbpS^$h9aWcoB6NFaslrSgk+KnA3A_Ah--?-j zt_41zEDreH=C_m_9&{v{mA*JMAhZPH z2Eh}u1Ka6cWy9~)fARev{CGl$$Vx=2hU3Tg>Q*vqhBLp#4Qkw{Eycezn2SQ(;Fm0p zP5;uX`aB3F%O(H-2K{5Tf74{u`c_w(CJ4x~!1lD(#ywKCf(aPA5bmnK0)<1!?a3+Va z==)8X;$SzX&sqW@n6B?bDv`l+P4qJ(WH}|btqeh`cJvT85$NG#CEKr%Lyv|365sx8 zkyrz10eiuLEl~)h$=E%U6{*ns)du_2!vI;7gq^q)t(a*K@y!@h-|B;G*i~Ll0VY6V z;A!Y_R*$4}i4fEYnlRI0^rv}N+uM%XON!}+x)Mm{Y=g`?6bk2+y$+{6{|vO-e9G9S z>v2p9vtq#eS;!UF&sL1G?=t{pO-bdb`H3D8;=VKc6zOd>8R3{;GNuHi2!oorz?136TW-jJdVEzEZ`SIp30uc*De&zVmJunmF~8%Iw^pRPM&3z zdUa651k91ndlJb(26w>IsE!zA;C3J;X$Z8fj9yor$SL;$06VHscMoNOK`5rq({U9mSSL*Wj1=B}7&(IoZ=a)_3zf4>t?J$ku@ z3F;jM%T6I0Jsve_TG4Obib%MhZhc{;o&y6p+<8A_7Vi^rN#|5g@jM>GHyz8tDxx&05! z@;|Px>1PhmKEBIeUE@Av%>M164JZ@$Ivy<2^O|ipZ2lc&{*9#ZDQXt?o1_0n)SwGI zzu$ZRcU3~CHS~v9hV!Kz40UKj=lw8@V77-20XZaxtda$FHf`elDc3$66>FP@ zM9c^Dh+{M+I!OO=4u%bpE1I(7F7$apoEQb=`K@`TV?VV9jCt%5K%2u7|oPl6@iOnuMph08E22_nvQde3Uk2Ls4 zhNK^lu|#GG$=IXTqRe7kA7kb{Qq09Ox_sI;IdwJ~N&@arJ-*7cw$!^i=c-79(u@Xg+|hQLGE+}za{JB&^m|cN&5g_@l&!k{N5|(O2`x+Dp&M57s}&YksS~> zf?IS#@)O7T=0ZFtXF;%yxkdwbJninrQnnstT2lxr^kDyXC7+L)?HbuX{PRd{H$DgGUAf)Bj9_ZZ>Jy>L5VhPC3 z(i6QV7D*U~Qb3yb044EtNxW>ZY{8Pq&@e{5eQ8r+y97MRf7>htj>>m$0`zN>FMt!t z0}H~}*6^n@>p;sFklX7nUSak6%vf1DUg1s}jEbG^%|%XFMoMEG9Udti<@QiD6kHIaCv@q4iH#>7HGNti=pJN zFg0o)Gz2;MG$-0wRn2}Rrik3!^UM^e-3gh}h}bTh@P0lbshizvEAw-L57TLm+6<3o z+NN^eWXB%e*AO5(?pf>6+n+WQO5c{DkcRy+x#W=U#+GbQd5=e*EyD^asLXy^9QWxj ziRRCWzXiKn~jao-#@a27YeAb2xbnShjB^cuLEu9hU}xSezCFsZmSr>kyxgZ|hp-oAWxE zY&I+>vN^&jYQj%mU{hOrWnB*t@N>?e2pm4XT~%+2ho~``)^`1Vur2gGUjl8%S*iQC z_^Quix37)M^aP>6O{NE*xfU0hdOs1 zfsNSmsrluWnphir)8&QIKgY$QEOOSUXHy&h+4VIRcmNjuO=isebamL7ircW*1oPzaw z)IX$GZQosGH6hp=G5gH+R4LA=Iu3lVGrhZ#B%};kgaPIv>@_jcyEMpii>2VT2s8q% zHj)`>kW6PG!dkj7K>kcuVL(hybj^7H{+H2$Ssl){df%mOhd<7W8r5N%txK0R{#5}5 z_1(CgDBH*?i$T|j=Db1bpQk~>7$xBCYjeMKZldRK^UcR=?8GWDsk`CkAiz}}t2@h6ml>M!*KmP4^-jRw(8LbqFo-dR((Lm-%v;p2Ilx}>=h(d#LR=c;c4`l?*D>SdQj1d@r^ zl!EoGq)|eWEPtsma`3O=b(`SE3wHH*@;c$|x1}MR`c%{k#2|G7;c;oksXJsebJ}yj zSCMXog;c7vD$dp^F4=W^zcmv4Sk)ugUQ5;)r`<+}<1i*Q_w>nEZ5w~r*pl+L&3h15 z(`lUL9sCgY08!1yJbtFtZ*o6Q^)!F*YF{JYKcxnW{jC@A=gQ;PpZ}>65!sI=8PUHV z)PMx}Yt`{FPqEDKi&zWj<8SVZOyeupWXIf~8w4h)bQ5@$|7KvUAZSSRMi67cu?O73 zKtcl})%5uphGZXzY71SXD($p83@~O8<^mYaLxC+!%@EoCW&6GUk(%~~%!vKh(nWPN zv}zOa-6o*3g0XG`QSU8;&NnbGo?)yG`y%Z3VQ^{U&(yltP(ZH0AQ{?jJroKZ^~%1u zwm#JfbTGdJ>A2stSWw`=nEW$s`~ML4X3L7AZMXKmM^XF4TBv})CVeA_v;unyN+*3M z9Q}VgXU?q3tS0OIzBm3=5fxEoc53SL+|3x*H~}c-l-i~*3`>)=QfAe<0%XI&PvWDl7V}VL|MV$es={tM#)WI286;$}_rp?VMSlep1 z14W~beR2kZVepsU9*@Bb2w)7p7~M zW1CFsUmeP6TQ*rCZAQH2&K9QD1<1ZQG4$?nR-a0zb}#5nTXqH|Y$1=1zq_h6a1*Bm zd23w!ybJZAM>YpQaE15X7Ppb=aipq~);9p2-mi0|5V3wlmGlW}!XqXFpj6*6y#?U= z+SVPBKVOwYeYujHx;=1p?#Dp8FdrzXV!I%k+LEAE?oqw^z9dE;2_d9oFSsYnX~NKX z2KVL|M)^KU#e<^Ua*yT!PwT@(0?TlqUUi#{fK?!5wqHU2F3JSBv``?a0NOne!V?`? zoEDeUa5}E_$!B1ZkvtNAA(XuzOZgs@RCv&X#Gp~k$4=Zx=5~`!ZjTJl8`os)X9nVU1KEz*_}Ev*vC#KE)mgEJ2h}#q1008jkzTV?;yB6Rn56 zEf?t-26wK%c1e3m0g(0NXuY-(jeae=IEuyMQCRyRIivRFbwxnD+&+1%DQI&Wq;xrM zvXg&Eb>T2eMXf!Q(^ZsO92j-4);9T8z_L}yElL2{>@d<0;j_avD&@G)w#vOwTwlo6 z^Tf8y!|M`l*colF^!(70a3Pf|RLmtjm7Cl!d-;1LGeu31+6ebiN1H_e|%9`){I!3;bH_y`Alnt!hS%M*g7_hD44_?10 zU_ImriOOaCVKm$j>K89wQl32~AX`K>JQ$3ky|uiMRLqB^p|SvdRi)m0x}xLK?4<@m zJVn^N^hakqM&48B4lcUqFMR8`s&|m*n_|n31QpIEMvr)L7V8)KyrNS*&>E`Ju6tV{ z@A#O*_T_49@%h=O!PPF9%%u5Whk<2Vr1`y!~=xOmu}kE z`Qc={cwyE-Z)y0%2YB}Eq>4o#pUJszA)+yJPnK6%kgFZEspSW+Ma zPt6+O>m+tu-3UR87`;u($1RB_AZC2ovoZ?axtJi+#%oWnvX842(!bVREVh@c-2o5{ z;^Fh#CcaL=LTINapQd~gNiaT?gtOp5Hkau0!|{lV1W#H`1<8)jEr#*WFb0-?3xzu` z?Q@m3yT~G1r0+=)LThudT~$}a3dbUFb~2YMAkouzuf_D*_;FinVbXUvkV*`GLGrdh zGU){XxFltGRFs_4y}i#l%T3;}QE8mZDbTIk)A4Yh6vfl=CYs5;9AWxVJ?}55MHSp& z`nCUx!y_zYF*Ej{;-Nh!I2{{kd1tk(Wc>0X8c#}6;Z?Nq`VxIx|C9Jfn%3sT?%Q~#~9 z=8LoNzbtLurOvO)8*YA=H^uis%e%b!5mo_LdHajf=6#g|B;~(T+Ptsw&EJ(a7SD2D zrH%0~N}KmpzWJ-t#&S>mC!yZ@9KyU6fS-!Moz6#4;=Ff((M$hO1cEW058krF_tNm= z!8y6sKP?GkTQ@%h2t4cpWnl)Ew*i$-nZuP^efe$dQ8lFswHq`;8XGv!cqczkgD29Y}(YZ%e^xoYA*{& zmb&~hK@bDyQH&>8hj0P%;r?lY<);N`=~N6(Q%#zXP7dcbhZ8g(G!@Ujiw&p8;f^(2 zCDq4`_iU)EIl?ElC~h*zTJ1O0-&-+hZJp22vO6CKx!B2Y>A)=%piuNbfA1r#lRDTacEET+NUzv5iH&5GPHd1zv^n8L^_;P6P51bWF zPI@P7B|gM7435qX5!egrhcDewOl4;8B4ip9HEGums3uj=+V%EfSBMM9CE|z>0mht) zRG*pVK^KSwFP{)_N_E-80CXvLwEpS5QEW^4G^P4K%8h?@B8b=biLm?L@K}tZm@CQK zrf~ua>Ny$rK+}h}_v`Nd<5tS~gRuC6GyPT;A04Lp{L&W@{Wh^VL$k;+2`IMT)0-n!tMYj(@{hG7@NVNRNtBXgG|&`YzzhPx2-2~eiIx$Br)4q~`a~|tgxroTt(SZ`1?;zExdh}$D z3X_nQ#l&WH_`13cgeorQNB)|p!?sb9+X`%L7(tSmjU!m;AArXW77rq(N;k<}B*D7^ z6l^zKAGhw)&lLy~80u-uXQw;ploe~(Q8_~)H8NsxlS2t`aj2sqxC64zQ;m`y*h~Sv zvh5OwRe*=boi@x;Cb*{;Bzq3Yv_u8%bj*1~g<`|PTELz>PJG_4 z>JE*DtNJowh3*jHdDxafgiwWRe66=HM&4f2@^-0=r#NoXe7ryWVOzcfTfMyff7%WVuRXU8UDPS+Y!0dIYoGMQ#mOC*ZEFWGlQ<67h4_A`-0x!No zmPe3!Ds5K725Hq=I+@K|UF*Dgl`rfAA{DyZ+{%k&Y_GM=wF)L*uW?5`uB}T;0orYh z^Qpl4q~p!HM$yL&Pd#qOX{NfvQaHL`uE{AK=$H1OM0yR|%Ds^2Bsn{MdpiHP=>zdG zn7raYrbK{X@88&4h(WB%I|<%IMqCs4$}DUXZ0NDP-Tn$t^R~An0<8V%puH_iEAl3< z$smm^5_Kt*4ixad(u|0rJ+C(E(a%uZjJI?Z#L7{^7$LT=7eZ=w0BhBjnOboXFX=-x zd6*QhBO4xWohsfDsR|&c`Ftx5p=4t09csHlq@=62*;cP<9&3_(q34CZjw&iatXwvt z{thXpI%ACq-TP=;*nQSpk&&av<4GKXJuovCfboq`0cUlxW)S(dN%@7tki*5BA=68n zu$T6boqXh`Tvn6{h+u;Zv3Mq7Sj?*6s(w}xsR#8dz=oT&p0ko5v+FweMy<{p2TJi5 zUTItspKeAP=Y2J;?Ie$++c|}Qu?G-^7~ZlZX$vc$T)fIyV_>Q#0%HM1`Xi%^(-4y* za(ZoGb$Z#(@!fi!sM8DzoYPr&Hmg_O+!lw36L6S~4g_=eh8ukUBtMS=Ud6(1LN^u%9>BQ+Nc8LeuVHwB@qfAlXK!*7Vftg8E$hN zxS2aU5rlPqG2jBb!-4rqAV#o4?-q`uKzsx{Hu3~_GB({8byFgRZ_+e4?NKC83BT@l zOyv`qGIV!|i~dnb!T?l_QNrIu2&w)*7N`G7y7$W)J9*#O`|)c;dGBO--Q91JMkcqWycV&{S_jCUL%)Y)(M@42_m9X1{{pNd@`NpV0&e~6Z`ak{Qn}7GG|GSI# zTL?|_O5{dQO9EZk(=h8HErUonUuIn)Au+7r8mYU>*%>1F%8n$e(a4A+Ku^5*V#&8t zcEDUK0+524JRp0#xEyQDPV)!hRIZ0&{%kK66Uy)rFo89kQ}OoE=PR)_$+ka1!iph> zRo?N+ZDrPrEJnlG>o&K+WL;n!J<1p0(<)10t8vnqMv^WSHjxw9?@i?%T|+{BkL(}L z%2DU^B@Qg_Uj@dU1s=vxk$)cpZIeS-)A>|h-C^8;@Dvb(f*+CPvH_WOnn_b(ngxL>uWadqvZHa3{ZaWIFu=;&)TSX-# zM6&SuaafYd5A>v)9rY$&ubXUp+kM@KS(pf-cfe`@d*#>8~qok7|!Kx37_WT4Zz0$fnN1a<(C1!=yR?rKmGTCE8=g!3Qn@SX)upQ58C}+~gX+2(s z6Pf^I+oKv>>GH85sKYe{_Dw~v*kn~{f4KI(+w>` z8b^D1QfCk^9Y+HJ9&&)i&uM?F^R?S6i_!r0t85KX3UtjoZM{9<25wrc-~!oPf*fKk z)J=|vSX-P=p(iM$CkE&k5I}2@)1&E8{*`QuLt#+XgCv#pnF_%`J>fFT)A|53urw#O z#w~?zQYd$DJ zugfs#Vvt81R^)E9nG=I#mkkoA;*JOODZ|D)A}=4HGLI6WC$km@nx%^jUQ2X#{jwL16U48c$_-Jr^O#GvS+MPt zcTNOSvD5BCb?n|7fM7uZdoDKMOq%P$f;_E`zFjS=gyc&-zTg%?={yGUHCj%&(guR_ z^q|2|D}mfF3TEY;2T|SlrR{+dtpw9JQge)e(Y?!r(#x1OH8j_0&i47L4c$L$Lz(ir zLi*DeD)qoE7Sx&v3ORTVW9`u>c1+Kf!XlY?Y?E{ z(zkB+{4N3BJO)tUOXg*l-b)(vmBlQ6&qZX}+eJLQSqy&wsD3$RA={mI7wD@$Z*cL$ zD*FLJ1=rozV>5{9HJvFw{-Ceuhu_zrwF9%lA@Cd6dF8*?6HpkKU(e{P!T*>*z262< z*#9(Y_|{4bpRKf6b8w@BQbJSlM26As$D^6-3XEa%WG;~t_P6(JJf1W8mw6@0eSXiSX!5=4)U3p@Gj*gYBiMo*-6QEsm&xyS?reueiin-*8->mz;lw5C;N-z_^Fvs-1hd#!km^ z`&PZnp#TXI&l?E9@_azce%cP#*xb!-e?k)8K4497Ww_hqFB?j~ETlJL*tvCm`F@9_ zXw+@@9yMi-K_4_<1UDl<`hp|n(%T89ALGMRy+QXJ${fzJl~Q>Z7iU}Mt^maIaM%DY z=4$P3&p4bDHBw8aSrw{t*e3#IB1z8|o4Y-v@U(M?4GxlLBQydTYUdN%6WId|B z?KdwKlp*^toi#|KitqkiV)$FpEM4nck6R7)>adsambf?|IihTHnk3?%=7&F>VSiS0 z{<16iIKyDh^DVaa;|$w20pPc&Bad99`#FV=*LZ}}oUYcpC~*C#%W4 z14lkA#GvNZq+4p9`3pT94|5K)C%YIdsBl(qPDpipv_$lDcS@Nfqarp#ruyMYOKqtz z%wD5=_Ezp8w4>b`=Hbk$PB76R7l46+d1(Y7tW$ey8)P%RVT32pQz6F*iX80XR!k+3 z`=Y~SpsLY}=oJEWCXWXW59x02`p$^5j}+Nb8ehVm5tP<4ENHP3zD85Ld1%~0)=3I0 zs2%WC&yW!HxB`a7%Hs5bl=l_oGSA;pYS2s?>4+vO=`K%XM^4~KJSZaFhYIKxSHK0rk$y~XKyk&FeNJd}h#%+_ z0#*#4_C5WQ29tX{?}WL6{C(JSKI~n>ldy z?0Z5RY&|D+FOjkxcjKd^&~3H{oZz!u2!?oC!ae35$OgNQ|B>?lcj3Pz{iKNm@Ejzt z>1R{CFsgz&=cn7!T56m?eEAnA#JA=F>_iM)lz0s>YC9b(=`cMQNX={*lJkM!Kwa8= zuPML+Jd`g~rdRZGdfkr~z^zd;Zf?yUV%=_m20FwmQymzQ+vlLjnB?n#>`^~jqR|aD zNK$QURqy@ysKfCOCG>2O70>%njj#`jz-Rx8z&(fnc)Kqs1?JB5wuCaI9MoBg)XPP=nvRXq%HMjd=tz6eQjyX8>aUyz2k`(tY<0Uu&}eY2&bdUApi4 zb@OB6@ISwF-+coh;6DeEf7>`f{<6;MKfr3f=q*so%FGskHC*X8RLE`~6m*wJ!oomW zq5yq3X8T1Lb6Xo=3KRK3TW%i_Oacrd?F@fjo5(Yut7pW0nps{*E>DdAA9N zLvH3EHT;{j%0DMt{^=m>hGFvA2FErX&q*u+VT{BoNH-A&!}X8ijO3(3l8D4)pb=Cq zcKy0z`J?FA_5#`NZE%&u1sNqkV)fAm2GONSRN|s=j^%&; zz^?z@5A62;-3Ru>|AMY`I(Ate!&$GNHfS#$@38H?Z$m90*^GwS;C@bDN~|yk$)L;Z zK~ns4^zSv@L?zp{r<)pI|QIY zL2?t|b4}c`a+arh^uOpz|1fj>F%IYF_V0A=Un?+#`xO$Xu2*jwBMJ`(54o^E=`6qn zl`tD!0<#L=YRW^RAE`8K4LW#c=;c7{kOK1e)_v&B%bFjL&zUPC2=k6ZVWNgIG;1eo z&L?-fUJ~WS7|jmKP8jX-fOBeO^#aRU#X2nwo<-Sc>Gm*Qb^w65?gv$P>T4H23TWu4 z!EE-s;{^;cUqUM3#Qz5F2nRA{IK~k^Qa&~t$7L0uto?Spmg8@>{+n%Uza8rW(BL0o z;4nhV03<9XRFwJPi6-k^aN~|EkLpg7@xc`~9$InLnB0KIQ4#pEO*a2m#>VY`^c= z%?-bepF!0;-$XHcPlHn2>#vUZCTe|6jR@fJF4z5&0H!E+y}X(msK;*{3zP4+%WME2 z)@uTTcJ~%GErI`5ldA(*c{LDI>~6mM=7zc+(6l^I-RSmq2CMs9Eu{(24g{Co?kx%V z=05A-*Awqi)W(4%k?Y<&T;E|n;7@=5M(%d|dP_XMR2Z6Pd1mo+O}B?f1`fR3h4mHeXB_Vek8R{CBGnv zwflT4dXORvDF9vJJ=(*|`-oQ`;5YanX`Dde(uIEW@$$dFPwyZW-u(Dmh6{D@M31vQ zi?tW_<1b|cZ{7+1bsX;fa{3>C<9+ddnZT`vzhN7GxuUS(wfw207e0smCI#PW_zAGt z2C9JoT?ece4lQ}5jZkA1EPZ1Uh&!_ds5eSL@Pl(OpI*rAAP8Hn?Nc$;tnAchyfpCv zU#QJN$%$-%;GOooJ0TX6r^)jkoObd$p|@i$g7E<#j6GQHjP53^lpOOBxzFeovDreN34+vx0KjyY+e zbZ77fBwI`PootZ%>n#4L-TooQV-q^4oYgn!eAS`Kjs@C z)X!%ENAv?mf!6(bN)3lPbt3t|qA?r7+}Np}(cxzZUkx#uO7@4YtHQPqJ0vv7t{w5` zI`dN3@UP}dSiXYyhkN?W_txf)k&NP<^c2AsZfARLc=nXmJ!PPY;d8w^Y@tb3*!1^21THs7>_RU$`>$aAQ=8gmSS8-hJ3a^BmaKCTYh!1h|tu6An`j_ zRC$=Ck4~(7sOq2R@gG2n;HL`)LRH>?=J^{2qSlXY?3pehD}r@)Krd%*J=+tWlI@<@ zH}uE!Jcyd4Z8&;D@Y0>N?4^5x2`dWfbBt`7{Dx;k*?L=&zB#Htei8VXPC&PK!z#X2 zaBn%_dsVU19sPCk-m8jtxRe5HO#zPfVrO{u48bcu?kc{X^5;qVpFLx^^8WfM|MD3t zusr|izNWy{!2OVM|}Qz4pkZDcXSopMUI- z@#y08P?CMu%d<+1BaS-IGZQF{2Xs_*-KKdAq0>IPXE0}mU!|bLJ+Ingje?Acx{$Y# zF~DF$=t}}-OvyKdntpq2hCQM68j32j=C#9 z&gdkvBXt`p{Az)6GL&=@UyA^eCac(Tyx0RmCxAw;DcF3^${wJ5=H}%yY$!pD>L^+J zJuc6Z#Aux|YWQnzXn{OyhDAt+{fi%Fs$A^nT%9az8_Z{etP=E+9dLPg*5@_p^^J9S zJkMQ5Kcf5XbY;`$+OVE+R8yr- z>zG|@e?9X#{e0P_a!sEWFwFlMA@ai@@h`MZ&<{h2!9zs+BiS_6tG;M8%P)Pn2Kza1 zFTHTz<*roWGKL^xjndV<*VlnGM2{w_;jk-P_KX=#5Ntd%uaB z;Z;8yrd;`kbX*_G(C*%O{4ww9<-NNhLHE9ydIsr zo`G1$EQf71Ca?RB=3ZXkV9^bLPgl`wU6$X7lv3{_+Rk>963`ZRZkhF71S37yiS@LQ zYeBsrcp5P)69+^^MfM>zDx}{yonIcMC}&x3OAi_;aOQ^UccVwE8DG8pf|MY^WDnEq zz9o>$-oV75dter18()h%;fNQIGMmrct!qu+!i9AO263B~eXy2_1lCJbNR3!cxo&w* z8jxZT470*q$W|p_9_5t>mdJK;Y_ic@jOhpk!Md%&&FMMAl%lcitcVxkV&oI>T}H>GY}%rU_0DWX%kJ` zUr@%Ox%|ITU4By+e0G@8_3elLjTwiu?y_O|&9Z+<0Q_DG{IU|j-dlL;I|f*}FAF&3 zuZ-Rle_07U{=i@PE&<3HpelUuRDg}|S2Dfao6_DQ{82C-ezALy#cS zA59!YN-hyF^uC2fynV)?q5k*{b^Z9!oDew#n|xO;{3E9Yss(rZWgq~Kw+?k1BuM~w zMJGNT&F`-750B+6_0{$LK~iDp%>3CLg8&9dGI;O~h7kDAT{yJWu;NI;F>r$U%%*{Gj`RxM>Lto3BGjrr6d;oHdc=mM=w)jtOxtKw_ai_UtcM9#Q^^o z!Y?vWZX-6h7WOAtcjJD7`-V57iwLD_Fu57$Igo4=8|JM_AalxZ(@7a6BJ<1g<uvSRh~tR8btREq3~*#K4#Cz(*~W#A-EL!GST=DdM9}f8=h@N$GH<9a zJJON11jsAT5K0 z5vEOXsihW;!aQciIMTzLmtHclo1$S&J9Kr*-taqkZBdsZ$>NZH& zxs#x+dU1-QsMZBIBLKq`4lgu9BJS2^IhszJ_Fehf2Larz8@bFYeXdtvP z&luI*mlx;Lk+6|1VA#L8Dh@~t079m-pJfKjW?+JIWyI4Ku9$m9`wi_rb-QT%(NLHt ze+|QL1k>+Uhs|5rkp5J@@&8aBy=B}EKm9KEQyVKug>munG83(o@25)CH*<6(}mlvora1@SiE9g+(pp^ z=^soEp7r>O&S608!N}%7(c3>a_dh5i)})!dC9JXVX=s3_?xwsJrxLx5*AGPw$trlH~6H1lBNNUc0IK9UXy z;pb^T*xM`7AI07`&j^)1nHKId7ZO-)jh*PcyB=N$EZXvo{<>fghzr_$&>46D?(YFC zk9gu4%WvbL+)PbIA{X-E6)78^hb_taAfDPPGDfCeSZLtPbE*Wy-R();OinPPV~q7M z0DqG1kOYYz+B~*z7^b40_R4EV&`j>&@C%OgW2cs@%I5Y(9Gm%K)yv&4w4qK>ey1v% z^NsHJM^(@U(HJl_*y4rrd=Ns5=6?1X#!8#}TAV!a6Hos7NOzCgL>H#DGF3c>zJ?BLf@w#NX|Eem=8K0|zV_;tG(d zssj$){4Vc;xM(aKjR z({VO=alvBj(Ks;XN z^(9JHr$>s(W+NCH2_!$UL`CrC5Jx#Fw2)mdlgoialvzCw)Gc5k2BJU`X1i{P%Qf#0 z2HC_HEuV|NdF~K=Vq{KA!QcnWoG1DqF3t1vJNeg}uCD{&9VhZnp?Pp#|7QJJGx*cD z|EK@`)nOnW-n%aPyE9qwx}aGdo4TKW2c-RB7!4K)wB}&*9?R1WfX2cxdHPpl=bu~N3f`boUyqL^Hpxr?>5+zk|8^MebMdGPU^1TSjytdCv*;L`a7F;b zxW7o|B;c6Vb+Jgx_G2o>-kf$*XB^OTa>7`U#R?Y;GGvbhWysees1J$Zk-*8JV@52` zVKyTh_HfKuJFu?dqXpsM`I!vbBJioJ)nnFA7*Et0fg#t^>wKb$t#e(#m!r=a)ru12 z5j2(Fq$e|CZXl7{aID;pUA{luP6^@e2~wrpuz&iO({zIEJf78o&1~;zn4b2X9MdPx z7845d+h#GPhDtRVI;p*l?~Sb7&~gSg&rtw&wQxTka^Ne)Ymz$MeNj->FUkZf;ef%` zVu5*+>76gfD9sazkpi0#pZm-6%rH%s3EWU`0Elcrfck1z*Y<)77m2)pCx&6}J0csH z>XMea(Iha-2E%iPXHK7+5iIz;TNg!JKwEq82+e5;0#e0|IzkSB{J7c4c%DX=3uKn{ z2YYn+A``ir*5?Cct9vqwl`J?%W?}0*S*0BTm-sXj1XAJc8>(X9l8|o{=h4!PbS?9+^^Ed9S$45N^TjZ~l6e7?jn3TI)y32QL%{&|I ze6z~3u6_zWfh;Tt+Bkcs^A)GfE2CcHb-xXpO{;=5=ufM=_eJw#5ac&eJq$+KOOKNp z*X-21LyDIwkzpE%ZkX;i2;xEA+}P42SY2!BW}}0->k>7^1zRx42$Tos{nc zs-H#+W7n!AuymMrOAf@g*YSxX_ulRFkY^+HY1rVp>kY1Nw&GO!!}Cc$V}2z!oa2sn zVs=ogKl@QUBu;bTshPyD0HI%wz126;`3N$LQz#4~KKiUza(AITKA@8;r9w)%Icv(evbY1WkB>+5b}G4DM?P%hNu}+K z0!BR{07~SbpaZ*Gn{IZ=FuErCl4uMvJ8Vj-UrU%`k@m1TiyGxE|}FFw*{7g_uB4EXMf>W+8s&W|~mZ;$0H`v1pxbgT29 z+)NmcLXy_+<5AIru!1+Z=$9kXe`r;pNBkCLc&u%UfS4I{n&vGdCkqSq3y!N3Fa$J5 zDR^jm1x&`klavpI&Unf#LM`;cXh5q2i*N*KR2wWs!X3oPuoSFL_QHkT3G~C8Wf#$R zhO$1^5Dm3tcN`$T=u)v)cHAS>QJR;5QIFRjTa`~v5qOJy(DZ>nx?Qiy5Q@@%?;meZ zBm{--UvJBPZdEQ+bKej#X(!k2)N;GRz1_m78GWLl{^kbxA@&ejl>}lBL6>K8N21_V z@P>3{-p9|q>z zq;&K!NeR8&l%%qgyY51-s|B`>gX%1$R6`w&>NdY$$1v#B^pF!Q!e(XtitJzPN@4}+jQM|lvkreZp7_;QUHl2OU|9Dn3BiNwjC)VpxS^H@?1XPf!*7j<{toK^Iy+1s zK5W$j(ANEp1wy%?6nh9>uWrA8blDG8S{}S0_S5=YZqyD}#QjGgka%iBSR?%YV?Y{$ zANx!T`uxFflLZr$7hj+SX8uGX{q$J=&g5Wb`CT=9L>I*$!ATI@`f{$97(71eXXgSS zFwl2_&p~i>_A_@C45Y^&Ucn!J3>0ABe{A#d^8Tg&=>vxZo`-{cK891(i+V$z&(VoH zOIyqA`%ThW07M#Y=i`AN1;`+M*~JY*n`6I9y^?mX+g060*9Cn!hHIHADRi;4>!e-% z7##>#=lhID}M%ZAL;X0F1Wj=krOFE!uRP*LSddzlD-0k$_rtMLxIZO%!1s4b?OH*qtK>YzhZpFEYs0g`M+Na#q)les-JK^CJ0k5#)v zt2~Z_3iiCInp6YemgmftVVS^0IJyTQ!(K#iqt!R(W4mq6H&6)HHoM2@Tsy*uj)SOm zNHvq~8N3?@dIw{{R=ZVZb@yF!0JI^yf{X#F4wTDS`RPP=1#Du*O&UD@GYG zJO{*fLEi5DlxOKJUTX+&YYTtD)$P8%K;9jsEP5qAX1ZsYh3P$wL;iBIOSvVC%_SLR zY7X|cAI+02V8r#-E5J)fjSx7Skdhde))Vp(Zzq#;e1{PYj5Z!4Pd#zBHtiYE4G3AI z=`9(T4F@FZFnPAU85~0RXFf9kR;sQ?WqTEZcuvf=E-N>#@>XI^?!L$Qi~6V{HpHuo z`+~^TsYR}UWK{I?X8S-NIx7=tM6LE2&cuu9YH|}e5SGFTmH51v*I*`y^W(DSdJ}Zv zi?jUa$k(7|5balZyP^OnjRd4PZEj>TVp2RV0OcG4(*<367%3;B2=5k@=Rnqp?t1bF zL`kQP!t&kz^s$fliHG{JBKUVWBrw}D7eJ<*vwD1FyVrVop)9&cF|2Z!pL>RX{K-FQ zFTqXu%`25G{%|i$=&LRf z5t?v)PTw_A-4m*OFdq;cm$FMX&$_hPxQ!^i@+1LiRK^@&mvwTNyjwG-i887SEqlU`$blu|=J8O59*0)!kv6X1=hO!#65 z$)h5Hyh_Qi`-8B^c$MAVHW%9%xQd)}b026+12uG> z`>dh{7@8beKGv9Sm5W$W$0hT_T)xCqJeg&yYKo6vn!RCe^UCdm824Y5W&B=+* z*B)d?)(MOR2lIqn>B}lvH6&7lSM|>zgm-|)U)yHlk48;4aY0N>*H$98GtPX~u!%8% zDEdx1U9fCj>EosUWilXC2Fka$M1bo?hvWrj2HWGT_HhH1v`3IywLr{JuAk$3Fy8{& zSKY=k97r0BAjvg>PqiAc`lZ~d#|w)Kh>F<8P;8hS1gEQ+=t+*21%PMj{4O5p_@+Kz zxmBYeXiRDdPm-BCXH+072Sz1%r^#Mn&liT)+_j`XOX|N~CcsejE4WnJf9wqu zO>VvG%jNL>JL<>C3ncV8=|OfpcrZfKFv&k52HvI^I6J=?IpD+l;dbO9wcPsFO9?RW zSKcv7o~*($zID z+fMQwfcB@HQR652ng_WJF61$RE{Yd!I{V30f$kS1=&&(>tk7>!p|bw1i})I`|J{WB z?Z5agCw|=n2-;pJ6{1~hTqyP>00thw2W^XG&W>{6N-%Yr_$%8>FL!BExzvFft2q~tpN8T!LJO6Eq5n=&?>MK zXTWA!*3y$(7?gm=m(t5qFW2B9mSL8!yr6nstuAzh>-DKEs(XAUC&tu(>JAF={mLN2 zeJ=sQ$E%Y`%G;Acj+}6ZWXKb1Z_>j=rWJlxB^Vkz5L*WfOf3kfyK^vFXZCFjnajH| zM;AWgP_LLNf}f<_YmBwKx*LzMER;a^6FwrU-e}GRe|o`{x~YLpM)rwHDc}cai6Na3 zh)5kuNElaLr3X$!8q5apx%}u!BUy-D4{%gWC(~Ky_X=wDK>pc zgUr?8h;b7jC|_&QWBqH#*JgP0Tb~&AMiJ+D3!2Bw9*fpK&aVp^@UUfI@0;TV781-d z<%FSjF=(|3JY8ytq&p!ykSunPG6kuG>*WU2C=uxE;=V5d^?1-o%97!b(R`iH5Bw8k z$&f@{ymqoLgKr{r?gFnT#M$SX1HhAzBVqW7ZCFZQzy>C3cE@U3lL`5}66LizegZkb?#94Ws*rWq;g5TWhv3rM&fwN^5+OkM!QH9VfX7Ltta z^uAQK%!co`HzYBzyk-MFi%=I9Aa&o|L%?9Br@|_Z5Nb*)FWRgstN;qCz7$h z@O)@`BOz+HdQK2mzuw(af3*kFhnzy!Y#F)UMPZ&cBf0-QK8Z#eBMYA>FuWgxVM9SDe7y0`h*86I3+ALw^y6+;M4=^EmPAl*_ZPB zl%HjBH=v1b>5c{r5T)Y{GErBEc^=a|_aI0D9s21Z+*2bzD~OknmVmrAOLA0MHK?z; zr;XfI9qC}zcD#o+tvaU3Qal~$f`CrjBcHr|ywO9KEu6FjnFPyG4g$#?2k=h$BNeNS z1@r|J5R@co)IEBlb9g@TqCB8j-j0m0jdO+pSQOs8eU>b8M1aLOgC=qN3-9Xt5*A*= zy^8PgZ{GEp#h+T@_j>;?uH)ZV_P@NCAp{7VsmJdZvqLLj8S#pRH}1}A1z~oAn&@Yz z;QL}`<^SknR^PqPHzlwveq7ArU51<^IGG^h=mI0H<|~RDyo?`nt?%q`xRBpu(vM5| zb5NGR@JxSwe=Ps;*}Tj7uPWgUKK@gg@Si-JuO|buuM8XyKQ8NlvG^un{Tz_kaAs5s z;G8Y*EG*FpUaXq652Yk_4uIg+aYpX?O?Igh9-qWs?V;jtApt6rb`cOqwy0DI>}l!9 z@%qN(2Etrci_PA9@dzA{t(NZ3%}r4N+1;O|^Zxh}H`au-;hx*Z7}3h>e1&2`IGYib zntK5xH+yc1TM^(r_-aw!mbfqu08p-VW9-)h0;VD-0)Xa$>@dz5H+T0^r8i)poM6Ll zdlblvD=se4OX`a0q^t7y3g9omqOiE=<={cE%uakw3lBrLhHLW(omKgTFF^mWHUwR+ z8fb&z7|gMX02WMDQ_1}Z{pbk>cNxUkIOCjK00yEs!d}%o{r^$-Cf$l+-PdoQPx15_ z?+^hIo76Q(DbS-(6p%tdflq&z=R_Tm#lN_Bytk1fa+oI#jBxM0_F8lPCf$t}2y5JI z>h7_v!YSg2i+`Db`-a`MZ4KaUdLxefYgb>Dt_+M5Gfv#uCAPBKXDlbeoJ`#V1ws|j zR@J!s)xWG)kD*~=$D5TORC-GSn*Uty2MFU{wJE;gw?}$9DYojjePNF>ivgWixwvR& zI1q@ac<0HV0lW0TFM*#*i~^zFqueT8$8Nld2fZ04$q&4*!}hsfx7>2C-RFzEQzwqt z8tQE}A&lu#Rl>%-H=f*7Y;Z|yy*l~i7Q&$LAOdFXh1$Ht8mz%5iN<|a&~e~P)=rf0 zS6W#;Nal9fTMWUQ;cOQW{%Evv0dt6G*rN4QJE$5PAL-_Pc*Gl2p?#_blDvzU0G*ky ziHQwvj77@B+PB;M0wda>To>k&?{u5L{EZtG4{d4(l{kONT!fH!2^-UAQ+*Jm1G(3K zzBB!Pzj`OH|J-)hk#7Ns(6g=SnFDifXYPi(Zl?RkHRyC{NTg?e8K0HxiA@jZjxr^C zW4i4qkl$sa%a+@G2?bAcWOTvGPn#Cq1rN?S_1etgi4 zvspu*;e^d>$xNyZvug)z77Ng#mJgYMB*6pJm?c)rK&>bDLnXS_Q$nwv_M~&k1Bcav zv>{Yujpgd7K8pLQ>@sTTx2HxqtHRv~iQByL&>nP1B%c*a*m$|vxf>VH_nByk%Y)m~ z>($g%X7>UQX9!Aum^lYGg*fRt`jGb2R#P$;zRS}_CTP%0$m#|foe)4j zyN0QOC4_EB8_L}gFTu|P?$k@V5ki8aITwOKk5tPq9ah`_HPzS$=8-(8#Ek;^dAO1>!YemDC3 z)5$EIKt~6>*RLnD!x)bavgzi)Hp~`{*);RYZu)JM^S)Buawn=Srvt^WQRVnARQ2av7Lr-BUnDs~M=c{h;W^DeLz z)j|TD((~y6_7r0V|55V!vx5NxHuw#c!sOo~+-L=6Ak+l!8exrQ$z#H=#fI?JkAv^7 zKg`SiHWv`#Avy)ldr0H^FesW5U)P`voTm@qjN2NFv0wrL-HA zTPDIh9R_P$h|z&v8X3m>x*Vd=Z@^zi?yRQmac%=a;A&^)BYD$;)g2BBtV3qkhi+Nb zQ3i7!gS)X~vzXLqq>zkjgOq7m5zS;gx|%Jfx?clr@OPis3p~65HP>TuDbUE~=$ZN{Zg zuH5eM?06JyV34+gNMD!dNa`-vqX)KGDQdBb7yYO=UJGIQz)S@Z-b)-#Jwlq1)>ZuF zd`!0xQriinOJg~tt_?KQG9}ZC=e>28;6ku?B(MZ%a}?5`$=u*RJ=8unLHK(nfMnX9 zOXLM|fb?0v;GzZ&4?msd{$N~=J_f}7qWZLIHCx}diZk^-27 zZQylyo$cbg(yB-exVd}#Zr0mWy(fHqzYkM&x-HFiREIj)W*hz-K>sGLWEF<@>S?+w zr+b==Tg*FwG@z0W{e0O~Y_1^Xn(lzRBH}33U;ThZ2aIx3vE7xi0SfDI&jHU0k``vB znZa7xYmg5NBV@Et+ugN6S;n(9F=&aJa#&`a*yZQS` z4V_Sc1btq_Kknh|O%5h@%2Bd1z1hlk?PWX3w{u87e)H!1;b)O=KP-FzOn`u7A0S!a zW!c}Tcn@poa08|4{=ke>dQ=Sl(4%h~b0 z=w(P+j7#7pacH3@%;S2iKi=p~KaU7?0M-1bK@Tk4d-n$=^9nz-q>zQs zzTYH@9*OK=84pi_!|U9x`e9r8&=J4i<1>;S-u0I^`DN7i-Fj5(x3jkavWQ*W07lr_ zmn;LPJB+oI5wY4jPk5jax{B_$gifVneteACF%O1W^Bn*A^~VTY5cvi`2`eSV4aL*g)j_VxcS^ z)@M~QpaCFc2>K*-ch(d*m<_@Pf)s?)GJJcnJV z!2LPIO{om#*lHoysDemTJToO#2Hl6l}npucz9xw3cOot)?A6DX+K-HJ83Mz3I+r{K^5Ipn#-itIE39F*do z({7d1sc_&1SHj7=d0xPmcX-JWWIw1FLnWXPteWo4_YRcySwT;FQQ`Lp7jE#jt=oc`56InB@38_5Z2M0&kVJd{N2kv4*>uzgClywD^!cT z`V6vHt<zsPu`Ka#ZmsrKPN)OyYGwf51BOISt4Je(}zg#Wo4(frtrfcw7+ z_kRzR`d`E_Ab5d@y)U8}R(Cx>h;hbe%>$|HvA^BM(scn07BI5RHoYI9X`e$3k5PC~ zfk66Mjlf**TcHGFJ@5M){-nZ@zmlpfkodiQLr?=jsq$sKuztRVe0>ovnZMLPHOv=` zm+)y;(1EU3r@@D)2&|-|YPkMOd0)ApJ`(1+_QIe-5?O`X#;GIx`hoX~@ft!MSOZGD z_tsb$&g&(8iimh&1{~PeH+=7Q@2c$s+69@3fPF%K<(z!OoB$Z={R3aQP!%@qsZ*lu zp_{e!0PMmJ=NEcDPm;Y}aFa}Q&qVY_+-`S6F;^JCed88xpM(;3Co_1g`2!B<__3+B zz*h(=sf`Ux%dwLw2NvB**u0Cahf@W9^+1m@4C6Bchjh^)xR(aqKPouxV9u-=>fy(J2{3>P-$D#IR_=uvkdF`kdc>v+{MSv}iMmI;6&}IPs{GreO*NBc^ zuHv6Jao|FU&4va)#Fg02$Hclw+b4i_0W%{FIP#3AE;>KY;%&wt6Yiepk8lDJx_!Mg z$5?*sLLxtQ>%8u?A%)ic>!xfH?8sK2A?Kl@G?Vnn|Y>0X}_fdWf=pI3h$8F=? z31{CtE+Z`{)P`zc4ozLgvLab#%;JG7g?23F8aY5RXa{=a>C2?1%ey z22+C4I@$^t5&cJD+YH=UZwv#;LiR%Hj=t57);x^Fjk#(}Q`Q&P$1e+zFHWI1Os^ILAMK%EOK`-3g(;~cTHl5w zIeC;2Nw)GpjH2ga83Rn6^ohXz$(--d5ECy52hX^56C~MZnSQIzjc|pZ{arEv1gyWj zRs4*=eVH9h4DN5S!V|np>r1ialN+%6B1+qv$hs&GZl|-oTu}{Z_@+ek^CLg8oPT** z6bO4{=#zg02Zf3J$k-cHE+8}(CXwEYqIRDie9Ar134`o~A-CitOq z^VNHRd>0cB9(NDMFM?#-#j0848TYf*0U~5PFd_G>&7dIzNvY7E|NYoUK%M-}U+{VE z!yM()&TJR^W~7Ji%lXf%Fz)$i?r^XipbRhDO+s_hTkap<0(r= zL&TzVy`G6?%B$r8Zq>C<@G51G519-Q1?a2C4O5tGdgkEF1q1i)LR}8eQR}({&1To= z59{li>Trl-d(nF6tI6s#@>#!@yQUkx-Sy^Yzw)r0b8B$zLe|ew`7#3zN_2AVUSH zdmAX>(6&=k%a$~qN>+`%) zU)5HO0^Ya-uj56VHUfQa!vNoltDW0ZxLzMO?M4<5D%S*Oh|Z9C#29US^s-slKfJbyfdLcOb&llm;he# z(|-gG2q@FOUF_5pWC>7NpTBg5JrNSgzHFr;WT`_^=1}F`B1nuT^@Kv}!-f3*B zmk(;Qqq}TdfhdD-&q0}1(C5AHi35)=a0NN)V~~t2s9F{ZULv7 z)qdo7?Lag@(YxgNRmgVryt!^RkjT`338ng}r+6F_*W?&Q;FsR27=*>EIHxZ67lexZ z3h{YMd;e0P|1+oI2P(PEVK_{{ZWkQ)Bn^~Hq<59I?PJ6;VobJ#m>f?6o9H=Nc$@|k zG7C&7q-z_O(-m+u1PKl*_T?k7<z?9O zaDmkHQP2ZXTLmJ+6a$Ys#dnPX4QKJo90xKgw#xg(hY;of-Z z*Mcs*$Ns)8%yC~g^sByHwA1Zcyht=LAVXDsWsxwc_G{T~Sx7w_L<@3|w;j5vDen~T zj90e9#tTw<2AtidhbPH?>yeOQU0tr&ee}64)Z90e3BcG-aHom9D?!UZXu&1B$VQlA|1Cqe5cGZI~%*zC>=mFj9PvV%8+$2{cR%e_^ zv1fmJt^A?bXnH{>w#Z$ZUH8f=X_*4bfsm2c7~3|Kh9l~Ysd?TYY9To7HR{~^fUzAv z2nP*E@eaqzb)?N`B+f#x*Q``uR`qy;3{LO4$!@3FY~yq$4v*W`2XnMvL>@jN%a*@# ze2)&wp|k_z#fcStXSc+32Y=$w+P=hXX!A_h(fL@@AzI@tTWcnuLH%4SE71A5SHK?3 z%>}z6XbOKJmR^ARZK`i}t!vC#*MNtaT%P;5lJtF~dBO$^+%H1v5AxN;wUD+kQ+P2O z=jO%p(J|3j8I?go<{;loQKX%-fms6WX+LSAM5R)0+Jmo+B|BvS)JwSIoqZEzd306s z7dqH(y0hs-bkfb;qOowjgD)6d2%&9-Lm2HBl-qA4w_mJRUpDp+=hS!Df*m#)c1CW8 zXr~dp7n(qZV9^(ITt#@}pZa0qjxYfxce32^g>6^A)r-r(@brB8c`^=9CcH0Lz&;0; zh?oXve1BI8*|obN+S>aNgl^#Rql$T_yHxCsE~NvsO{H@)P_Vl4?-~D?a`|x(iWhRC z@FpOvxX+LEco3$O>qLZ9OhAQ;lF4~-3m`5zt};46d#SL5HUwdSjps4M6e*n16j(?t zp-}p%&XI*K!Bf-tXr;3PNQ^?5J|@pY{w)3Y!2@ z1HzEQl@xc7r@Hc+_KBdZyDM}v_mVz@$jeGHLUQZf47FSj^sT(@>rTCK>*eg>R?{)` z(-$>s+@^=F$JUar4Vhjpi2_<<9>QpP(IxJbS31Rg6P$);gr?Ylf?7EmmYG&l%6#^b z=V$wa*@kxN-OPf9sb1fpRRh~>ud8=!EjM^2j{$kcuIp}Ca2z)7Y#s(6pYX)p&m!asqK>IP z!GQB&vwJ=34;)uFp@r2vq|;rF`fk(Yqj=Sx!*yC^yYCKirz^MR8d1J@5l)!d%qNJS z#VQt|pfQRcZ|6sb&fsPg4;oY$>M+hp$~=;*eBg4!Vz5cVs=fd8TBzzD0ayBT8Mq^_ z@zK4mcvZ@p-K9rzHU*uvAl+e}^LHH!ULKjLOSg-+e}qnu1pZJC*EjkNsbLYUJ-8`&-TPEfnNUqWbew zzuSx8OZuz+BB;N4jI*171!;&`Fs=k*nrG7A*r*um^_XgnvwOPt*lCMn+{7}4jMro? zrTzJ05a~IIp6lajWiCiClcC*9z&7tdLH>l3g$b{Pd*w(vZVy(JUL{t$C7bbV)BE)a zdO66HN6rRU20ZKjsgwsC=kaq=|10P7Bl|e#3;V>fp0ey}(9A0af?5eW6i%qQkE4C% zN7H+^Rv|*G0B2dG5TXsgzU_a%e$QTJ3w_5Lq{k6m5j}sbFGx7;3N0HbdVHP?FmN1+ zHPC5oUR7)I^#K9|Q)v&#MYFTr9SnZhUP&>yM*vMBrkn)hpWO+f3@RXzf`Zf>{Sr8z zw<)*dL7B((PEBlkW3fG*Z0(bBq#xrMBpU*L_lUobhWNgUKgeu9quc)9UBzPm=A-Ps z1xeWQXoXy`iALR&GnVR~%|Qf_@-I?`cLwawO9D!L^?gJCUs=h>Cvok|boF1X3Hb`@ z2k+}jRv=hHS-!4h;H5m!|36!H=zIOQ@@GN|MFhIYo|Ts8zc;cW8uVs zbPx+U2)+NX_h-a~d+qggc7+|s6u7;$Y>$R)$YIz=7heSoJZNTt zu(uoA(^l5~kTPSjfowM&zUcya4LMHWcbs+-)0&>S`*vT~pu@dA#L>4J) zud1H`N&dOVn!*gnYPY++YO^!1-hc*~-9EOLwYdWG>vje>y?S;OtLm~xAnZ;3NP8t@ zHcCNyhbli6RK^uw@62=eiR@R(@sHlXRU(sjaoMR=9@u%N$ z)QM7}ILO=vzrlqrctA_m=|JI*87M!Zfn?bMubKjc7HKPOf!UUX-Hb#*JLkvU@**`~ z8oa509nEb|2#*t-hPxAtEpJy4=OEZ9hoG%}SOAIMIHZLUwua?>Pu=fiz1)uOTR9}E zy!G_7!1ISei~EG3 zXuUr7qdD9_Ex~|K_60LtM&b~2_TgU)@E$Y2_Bh_4m(MGJwt%^d;Dk6)%l_C@An_2> z!fX2&uynd97D24iZGljFPf~!&@se8@^t;;LOGic>-8BeJf33%;T68`bX}xkc#mpV) zt;H3Fd9;Rn61)vajS}a29LK9nV@R&yYDYsf-r)>cd9Dj5$@KvNTE>BxxT(|pXa}_6 zi5g=^dbINf;Ka6i3Lvj3O^p}uB=l31i*`+@#|jQbGY~zTOfy64Se;FxU?OmD_IJ(I zZG2e$Koc<2jM<2>WL@Q3s)nb|#rwPnwK-RJVXD7^B(}=)jBM~~sA9<@^Mlc@IqoIW z1(mQfj6kUU@rgMO<^ey6IGz2QN+^%((+sDThbTTGy9CL;-5*I)zN@b@zaY$ACc5YA zIL)sR5NMzWTMjC9JV2Y#sdg~gpRwvj9l*eHA3?DQHMUR95Tj;nc3w3=g1jR+b60Ol zx;Y_`^HA6hC+qfldL=Y=heU&7GkC#4W@#R-*nMFYM=t-w{28&9)4L=N#yti^ZX-CRKjdMAkdGu^dMhtb#<&ayt;;rUF z#`Z2vG54{DDKwG^Y&X0@vlq$&$ofmzGD8KlL&(}&VCmI=WkgOFhg*Z{Q^jmZDk%n zcl0Y7*N}x@J8t0n5xy*I+XmhCm4m_LH3OL@bj`kZ)e5-BeJS(f6G*LOr_xIyG+6)R z8W7npE2u=@75(vDg>Nlr^;jMZMoK38(#AK$lRx@I2iT?E^IHK8KqSbunxSF%wQ&e% zzw*wy0^3OZji~U`i+}YoJ~pSn`4kA4(Es(v_@_?+^VvUrjDL}os{(E`dPIXfKIhvR zbyRLfhHV5V+>TdeECGWeNL6pkTvIXzLISzJ*$+@|wd3P#b=*A?53TV41$K_gr)A!Q zMwvd3eff#Zp+AHmx$xeYU$$s4AEo=BCwo6h3S1dnvA_#@z`SjlAM{=V<>wQ5t_*Z& zKAAb+J3oK^;V(b?v!vjMR9$2YF8P-10&Y#OS76+4&AKhqGE>N2<8%9YId|(`KbWaj zK&mdUcd6~7(|Jo72ejI(s~H`hUflt&X10*wIWK)Z#_0Ky8UN6}&)}BrDw6qa)k%Nk zDgV=o6POYr^-(gUL)@Ws_%n= z$-A+TIPzV)2yip+t)$LHQ*|&<15}4&@Sy?(7iIZv!2su&kAOj<5XSl?X0rtG;t#L= z)l>ZGA&~#tQ@|g`?Kg!4`{ndLBFuY-Dq8NNn`iJ~g1$Q!-@$U_g7W2bBFut?`^psU z zg$ZIx++mYJUJRrsj@VWw2J)?5OK>x?bUVQIKp6&M0&s&2>81@?mu(d2zb`KQ<=gpjl{dG5Zruzrkm8Hk zA^FKV)R!TxX`<@24UYL#i$~q88W?^|mlGsX4t=tRcts#9Fi@L6Ld_3HQZ$T0CpJ)7 zhgTtP4qLmwB2A%}Q4J|_P$f>X-X6>C@xd+7)=Y0LksNoi(XZ6$v51T5zQBwI`MPIg z@Yyvi`W)4%gbutpQBQjUN6IXY0n;P$gQQaPp_%=Y189?Xt~pmxTE;7+1kuC zU^mzX@=BI+x%BY?OFPmjfe&0PdN%mH2%s9kobI7)Mpk+dPt{6EasJrWn1|777U;l$ zrC9QC5l0zl)m@SRkZE=NnBvYSr_dY&1=GkeyZ4aS?bQHc4S=tzBe(V{G)6CAOS}J? zkMdtjAqQ^4m%SDF?2)*f;%@KY3@=DFe5}<=&1t7-YG-18yR3ir9Yi3`ovh0eDIi8& zEf!f`iAKAsN}Wpp&21!OyK5!ek}L?@USIiZ#}wx{Iyt+ma2q#1r;yY%IlF^Q?1tR~ ztGBVA(8cNgfRQPZQhRb+${RJSwZ%AVeSW{V*gb^=!?*$|GVzGk&RE0psFy<{JsalfaAmne*qg@ti*Ia1S=c@HH!Jpa zRl}cH99H$1V?bYuY8X+ODsNHCf!=Eq;c%$YmJ? z>NtgoCzA$Z8qF@;C#xn(O}9+Fd+E*Ctt}ECyl&@~dH_-M%q%R2&6$H7x)ygI;4T-o zdhG&~XJ6k!<0&3{n0OfJhT-_`BT^XJIn}rnC@vFlGE<__B;NZQD%Z;6L5?;JwuN9$HeTNQ6_!K zSOqjCjzGjWjJD?r-k^aQ%ZCUM>gk^X%RWg-4iSZrV*Q;>#Qz$__KpYN<`NK6?=^P* zP9}Tz&}N8WgY;JQ>-_zv*Np!^f6TwHJANuV^g8$5tA6CqE*9w)$m9tiC5XFl`9c>c7XgXxK+P)_uFde8o*cudCm3pLE;ujAER+;}gv2pyyfPO= z&tte+D_)q(67`Btx2Qy+ua<9um1nbj+P}qmK#*uc<$CS7seD<`89)`yn98cEj(d}V z5bmwuk!%kpRIh27&STQvs&^uuK2~~r8gSqPE8AvxhOe-NC~JpC&&#t@1ElU??cU_IJ0{^XE?8m&^kFnGD6o2F zkg8SzCAr`tke&ybfJ_3}iyV32=hqqH zsBh-914V;IvOZf1oW2_K7R%apICxdpnoziroSjw+y4oanxxy z9!#L+A-9XJy2Qu|r)@L7ZqXa2D<#msH`jf|ggz?r+H-Qpnb!R6oaDRf`S@7VKb9TP zvj6!`_mfOZZ3^j>f!tvPnJefG#Amzlb?6jQ@}EXK2*|X484`T2JMOaiA|JfB_nN^2 zwRZ1lk~mW*%)0s-KUTU6t!j0967Wtr`WqQJ-kLNGZhXMQ`f(uw&9XDXD#$oW#XQLq zeD%d=csWl?Mc9llzjlrbK&pzk2&s0MCGN^_#$~G|3??J7$^-n@@7v@C-w|R5v?3ii zr}J^a>{{BOWa-MqAwBM#VVmX(Po|6sS;;*#d^xiR5kzsj+qDypT@4hjV%$|`9tyRv zm7*(~a3Lh(odxkSu-Ui-M6KKvwYZZ_x>fNF#qgsR<(0W?B_K#(C$>uf2hx@<{C3C_ z9Djo@`j8(q*a>!uiG8~9N^|nA)-Z_0vcp1Rdpn=+8t{@10OopDr~QID?1V&gW}z z%cSHSEOsP&V+hY(*OT56R!X}x_A1P(26 zwJbm~P&62o<4Q*-$$+eR(HI|??-$`{pWvLfP9<7|5GKxMITq;Z;C&IKXn%l#EBulbL#w% z|JJNifRgVfxX{);N) zooG<_ys|ZK?6-;piSW-9r+=tOVBGh`WLX05{j*B>cnvC&Zy)&`kp%f-A4AITh1Y-c zBO~wB*mvdi7lqe<=_4aQe&#=a|1`d7F+qB$?1*4KL@XtNCO|eL(0z3Gnf)5U!8pkP+wI4t7|E;UqAdw$G^IxoL{4JtpmmcC0 z$OBUd66;Pd!TgeQB0Up6^tT)@$_Sh6#Cs6V&?uSQXJH$zRbJYocL6{!u+S50K*QpS zGUJk|1(k#dP|Rg2eR0>=b+O)V9Y%H| zeTc>FQH!qpwQiw%0j=J@B7J>Gd4Lx}e`faDV0C{*Fdq0(%i{!nUl zp=_Fz;;P>zI}NmV*@}Tt4HIjjWYf8?AbApJ0y>eJZ!A@ScTvsyCM7aO4=`#UzM0#^~> zl*DSw2_RBPWDPrTByX#lpJF^_0(H&H_#(nXc&-L_9LStIzg!07eCF{CI9EI z|F?m|+vE$tC?D1g|Iu1lVSM*~5rEA8&h%#vN8b{Y~BdGtr0HavAA$&dr7X+s2 zRe^{2U^wsu(RZqY>w#Yecrh<%iohh})42ek=FY3clM^V#*T9r-bHtxSM>Y5bZtRbl zkpC4)KfXOmUI-o6o83Qn0C*w3WK9)}U_>lf;2u|>ZnfTRlfvB>PrC^_JRGW1Dc1d* zg_vhhxFcsap8yOl?qJ%kGSp*>SRs)-0e^F-scVx@S9&4`$`kok)DFv|+pgb39fQ46 z$(H0x6B8>E$f@P8E!%Y}yN58d5(wE_yV1781VP>h96?XkRL7W#&606XwFt)a z9ayEqpQplqAU-3I^8Tki>QkZvQQn1a0pG!vh+KE|Cs#49pvPFLrP01vwASof>>7|8 z>DW9p1mDWO|2X<}>((cU-9W;gC2!#G@Ool*-h_|9!sgP2D)0tf9Gm=iohJ5MY@V7wJ?aBfI0gE8X2RuG)n*!t5!O=^2r5 znH!1I`Hgpqd5W~juD9HVktykZGPBEGAtejwlB5HQ_p=5J1QsY*?sdt!QyLbKwdK1J z()Xe|5u!^!Huz>a0}LA_$L6dMUSFm0fK}$p4?Pb2IzzZq&P0}T*Da9+TR{)$r!n6H z9O#Dectl$XQ8rhpy}{obgh}3~sE09P6dZwKjziERs#*CJPs+@eN-rVAqm>8JohZvS z=p@`L((`zDY^yV^s|kNEkg8ivQ%Ria*j0W^pqpu`4`Fz|UGnAc?iCF8AGp)R{}Dl> z`hOhG_>U{VnZsL-;KIL3fTef;O_}hI9f9;+AY8tYKkVokEvXd>Bn|=`T+bVh%4_d8 z0top_S3rC#^1ok^A!q@_TV}v*T^qw@zJwC*gC;qES_c4X_h2;~$lCr8AUHr6Ih>$i z5dCHA7-g}%!xmnq(9Sx~^k1br3MRhotgH*^06)BW;bVatRJ8!r2D}05IerclAfQrw z;S_-UR(YS_J7djO<1={~k{o_|4U}k~b@lH&?NM3!=f$i#S2?>O)|yT8WNSZX z&sRE^hoD&k?3^-;=E2Ae{As#8qzWZ56c$DcjE^hL1-9K(o)Hjw!>+!9R zUj`tJ1{F?80Bw^8d5!vv20HD;Zf9sE=ABTe%M<P~Pc2~%? z{RBbrlDcEUSD))Se^E~tScpH9$9d*01B$-Y!w`)5Ca9{S;Z!g28zJm#HU1?qPy!5h zXkLFIgM6vjzlRDU?>uzBwBcs@5p});gYA34!FT=}8RTuc{qePz^9#EK#vUIe){pcY zSaF{4b=>%wgIJ_ZG-kN)1J@POSg@ah6u;gfTwuI@6x;unz&<==d!cl*-a&|#y#U;^ ztxP9vI~cE3^68jkv@jrCa8|8E45(9v<*yl14E)@`g|2{)XVSsDk-$}>ra@^;59hmC z*erS<^q4GnwO<$4=rP&SQ&L3cnrx58W3sUxmy0C!7r(`N;z^T^E-M#WpbRSO)kJWgCzTMIeI$%XdP*P@`;1B3E4A{p zhF0;>3$Gc~7?(%v-&VhrckX6~;Ns9_AqlY0-d!SQ;mo7s98_@ls$NeLV z!4ut7eZnr{qlh-?EH)Hz(-~G>%f21}pI97_XV_mMj}3=JdAYd|$GZjs`Df9$6wns* ztj>C$BY&o={Jyom0qU@>5y(gRTcJF&T^<=J$nb)vpbK?*w+h z_3w`nr|V;S>68c5k=b)B^0or*{H1wzT)TIq>ijTkvBgNbI~0&h3sIn|Y0cJQUy(rp zN$!x2XYt#K233>^8Ehr|(aQHpNXpk8q&D*Y_3Vu~q=-~dl34b)ftl#E*jf8f?MGlu z8ib4L5)hvk1ek#!20Nx+Oe*K+aaz~i4W-sLf=INP60-sWy->EUke1^ww#^+!rRtid zlLrcDs$wk0bWT=Na_kN`!a@Evu6J;e>v`%)8Ns=+y}mK>Rhk`Eq+l?MVzVQP&h@6U zM|Z&pD^!lG`Bd!Drj#@-0Y{IjL>J!?%g-xa+L@2Lx_{!(=t{4rhpG)?sgIA-6|zHa z6t;TjgHc~!FG@O8lMq>?dEWcWNxnOQ3oVJgiOHZaLe!Ydx0Iw$*%q7!ZWXttdGk&< zXjO5ysjg>Ex9!L3*t}!|2US=haA$uBUxjHFOJwv)5!&oJLe{`?M*7=xH=z+Ew4A7G zgoSdUqhY`Z0lh)>bbW>fll1%Kq8jNX!>>vOV$uVDaHYv}m)YZ^Q*$JrRWzsViZruZ zvLe3AF0c)lC2r7S^735$qCWF#eKZ24zM>d?mgqB@!;m!a)X$}if^?f~2No5ci21nf zc)Hu{5nfQq=pf&C{IK6@!Xa1B;)p>CdL9)Ulc9#qqfKd7n;L<5wo^ES#q8~m%~%*7 zAcgYBEr?f{-iEJ|Ky2_ypCR<<@2c%z&u8JkcRq96Tbc{W9bbqVpXW2oX1Dr!SEUlv zf_8qluKd?(=4&zYrM`yG6KAYcm)VCWI`7`d$ z1^c{w98n1SYx1pm>}#h#kH)ovB<(ZErh0#RtuA-vWxTz=>emcb2yj!EW7#_>U=vyh z0KB|fKA(oC=0c#?_Qf&mmg)@syzJbDGh5{q^Ltf!`lOelSO$m0^-@cDzJxt{Y^YGys{daa$d*(XWV}>NhDiCuP`sud2qO(xZaP$A=GWE@NDli0Gm-aEt zt9CY5!I$=)QfqTtac(CW4c7Vtz?+e$KDNFCu%=BG+(@UGqUXkM_f4t4GU$WTs3ZHO zu!odrnS%>a-_MwC1oU3E6sE>(Xh7`N`nE}Gxa}ff-B?Wp3ixDaS+D*6m32C!{|N6NL{Q#L*zY2f3WH z-YzGukgPhIX*dg(CGJZ=JYhr%VVGTDSl&Rh^b3VFQw*-{vZsL|8qSKhcArBy^f1MrB&4^EF7o|CNH@8LwF44`= zM~|6E`h`0#k$SKkM7@o&e6Iiv0(FN40N~fOhRy1$K&{kH5ad1GhK>L}d~J6-cd?5dIQi;BTEUi5#i~N+o`jsAdoZF+LY8vF%PF1SzgJ zmISTX#V?2|eqDQst_~or)c_H~tpxL0fHw4mNXpuR+X*YtyKDb?N*jAqLzDBOnV7hP z{sW|<4Iq~aTKGfCA4m9e0{XcT=glLcLmpoNw2oD^^i+!7!$$69uCm%Ri^Fwr{c7wf z*)COmvHfnRxFIB#o^eQMLG613$qeAW{7e8W4NzNrIH-Q8TK|3fzeLA;s-l-P$b z7-n@&_-&u4uiMw;0R$+?(5FclXwv`n5C3v|ew%3Cxm}FSL0o{sB?3RaAXfr*jm>2* z=@2bNX)Un+`qr{KF*yM^R0(qs8 zLbxkJ>NDmJZ!O*?l}7IMz=6_|P3s{%jLfo&gAN-Zw$d2Jm=~AD<%Th*l-JQESRPaK z4OH-(4zkLg?fHP*Cd)h1$?*<)J{3RFfN19m$h%<=T=$Bug<}C$-ia@$ve6iahbZXd zE@G!*jzI{vEQ*n62g6!HVZ*oxoeAI@4!1BU)CkWrQGCOK2a>sM(_8h-+M!a3>;_zu zm3G8bhja3T!r%R#d!TTnTsFYcJl^qhQ7~s5k+XhG&mAj-Na%8*70qwjqti0Jpo}LBhhs};Sg|TShni{~; z7*2d=-|emR@}qsg5a^TH0AcJ>faJZ+eHGuGb}}bS(rXbKiZgr*-5$0y(kA${?T12` zXzev~h8ss)f&sGQLp*K)^UPlbSXBYfK~}-{NbC-OyTom`IJ@&nfMvB z^o6tZDkA#_u$m8GwG1~_1!lXe4@d6rtyy(t>aS~`C%Lz z;qP&5DSXF0&W3LLJLv-;Xmt)>z0ug!H3-%41+w4##$S{G+Q6!T<)=fg}XDQfQ0` z?>jKR;7R*kRTqBwp~9sM4(k3SASP!;X|%2@Z4!2L3H(K=P3V7vMI zT)_StG9jLv2_Z|+>i9lx+m7YQQ<+aaMEb_>2NV>ve94!&8x;cLg>P%XP|^{6CfS>A zS5deQ&lpzs0dcMr+CS(L*Ghtp@OKi|)6T*2^qrEZtlS?b@1Y;w5I%TXVF2Vs^)yI0 z03@indUSQj^Y}5*ZYDVywRAmNfdNFmL02HJHou_n1mgH`*JjjoTvZy(>ClqzLSMpS z?ix~E4B3{(6ky;7( zwVPIkaD<>UVEeV(T&4SZF*=Wt5isO)%dNj3E2bruM}amHG#lOVgcerEq}Ytx4&|P+`A9vkYgq z+*BTE_^yInBnD)bgsmS$={TR4mjO0Ol{a+vx|0fQSS?Wdtt2~A4LNNAr9P_G4ASd6 zAvL|O(-&U?2^q9hjQG{G3|@UWUZg+j17*ojaVd5Uws(N`8JtyIe;jYUuk(kW^-6Z) z(`+9cFWHM~or-x5g?ukHVPip(@>6FH4$rUxzqRIm)0z8IF}(9QlFvTMD~^WBqh_LV zQFga>(^L#20PW$rvYowT1X&L~a2d zqJc3`rd`!_TXx0qJ+R@WPe3(rq-j%LixLQG^ijMQ-AuY1$tb}{YhI+`ptff&cd&`s zHhs70D;!Qv2%w>Q)x2sFH|$bwPw?bTyd_2RSY!1q46X1K?E`Qb>jx7Yij_T%c`zSV z;ARY_(V?*C-ME$uX&o}XY}WUm$~k0pU*Eyu0-X#v7+c2k*h~;^twURye>?2u3Km;0 z@h@v$a(Go-sHPJev9Qq4-LB|;>~4D|$}a^lW9yevoZ}s7t!k^jT)m0HSKgR17TAOl zU!ALZnuhW6s&zJe(odsPRt3G`ryJ%G!`odmIir)gOy4UuCfa>4atxv)>|D%^d@;C>qTaIzP!E(Jm|u6)*I#AEQR zDXUTW*3~DY)z~Ubo5QXn_pJfY?_oH(x|@4>Ikn?bVoa?^>no4s@M@l$qw`Qx`nu}D ztEuuLn*Y*-_mRAh6%gqD=ZjSKKaV^-hab`F{Rc4L1QRrPn|S;7JeQC|IUM5mM*pf8 z+#sm+XF0pMb2$F-?RdZg1v)VO%Ld#2B=Z*V)L`#ClpEyY43LrIXfJ-$?PONI2ktE7 z7maG_pfzd{#H^zjKwB@;I$B1 z#X-0Okg7mc`Q^nQuND9LR{rXpz?J=HZ{@Gv$?gxCiGTW5zBl=P-{W(5RX%niJQ#LU z1@0K!cx`v+DomN)#Q8OU)&ApIWliX;1kM6!Rv_5dVLd6$)y2K&%hhqnT;JH z#|eh}qgAeHdeGQdm!zv-MkApEbMtN|O65S{?^s z$>+qf{d3L!;kDxDxAePrwEJ%!KfkV7u$)-Um&iluwfrY<>35JhpyK{6zMQkP;CLFg zxQ(5=Rij7eJ^L@!)XVL$p6SCH)?nt??szfwTzs}SHoH*oUG^GE4dP8PM(CI|4;uOj zEl0k^d4GAOr|b$D2~4wrcoAve*h27;!>+QMD5(KSH%YlIpprTE*vyj9Q@B#hjif+W zX_wkrF8hPBA~L>_4k1J0Rtvoz+0fgW){Ao!9jQ4c-XZ2c5fux4<4C*fI=|!tIKH4k zktvltq&KcAP?vMiV++Zdl;U0$_mytp<2}-buJ_gDL`eJ2$CdH)&Uxxxmfk(5mKtZU z_!bR%O|;^$%Mn)P0fHql?nXSy#q7C0y+zSWfQ8x+AQ%m1Rwly!krh*09WyKjRf*yE zPrgZW0@wM4#BO3#wNE$=$BljkHKw?pWtzH`*me+!jpPnNwqLFtcH2lj%&3#y4}@3s zzCRzN8HI?!XZt+4=|vtDu_`Fz<(RKs=0c31ayy_)H=pgkN8v3E41}TK$y)^?3T?gk z0VKZZM6SMW3+n(9&=j&sRKtD1)borOxk2_Iu)Hff15r-5$Ewq#bTF8^U%-m@0v?V< z42?qD$Qn_jjk0?#4pE!maWNSw7lEOv-{`$PpvE{wZ#)?s5NPk}B2dyQtPr+Aj<3f} z(ujEqSaUk8*p_oRCrTl?nj93qY;GQDT)v@C4PP&y)B^)`X@Q<6M)C=>C3PoRo4KcK z>_J1yMxWw?N^HMti4{ZV+iy9lcdTIy6A8|7y5c?1^Q} zIg{)TF1X-TuX1(}0mf0?bjqt|xtiO~Be_AN~ZHdr-+J)qgQvSxznoGP`{RPRn z0^|k`+IZ@#evh#FZ^whduO=0jCq6Vc>|2Xahs4u5gp4a_b6o@9dP97~BZd~?uWiC_ zm4Fb7Zm~-xV98eHl6qg2Y2R9dIxkpQ49$y=o%4@nz&D=k452HacFQs7UE*J>06=a1 z^kM-D)1OZvHwYjF*4(#_Up|kf2RSZ~JuLI&*Rw<=^l!>3dHtCWrOk3q^;7cCue4Pd^>SY_~;fmOT#hkqJ@~M zt9>=cNA%Sj?ULe($u-v*C85B(_=gk3kHpZgWpB9QF;+N}UAQTVXSf|~KID*FD7f=mz8UYMNx%0eVFc+l80p70l>&D?vEpfWx#yX3f-NPv1N1#k-67MR zmV1oR7Gr@PiVdW;DjDR@Kq?cW6MIt~4_R1mAVj5u2Br;d7|*v0l0q;}UPzRh0FD;O zu8zzw5_c6~q^_BXs`0YJoo!o@PB#Nj%Y(H%?NVfug?w>_aXOSy3Q-9nGq)AjxleEB z+EV-|>sv=f)FBW?mL76&rSv?w0wP92K^6ZtS|yh0^tB8~($t5*KDB3nwGm-Qi59?> z)MtR-11j4&?^oJ4l+Hai1i%6e5;Eqy<011LJu2c6h1M}V8()xV>BU%IEN(%846i)4 zcRAKezBeWVa z^I~QJalcwXVW`Vu>TEKoH*b74LDcU!A7GJledc8((^&x8gAY!asXxxJ_uj*kSZ&>fAMk3TsQ{%Low&E0Vrz}FS;w*^E`?CU;1-g*gFhLbD9ASL433h`K0 z-=U9ytiZ8pl1ltI(NcFRm-qOHW$IKJ=oXA7|B^VjzCV}qY@1Nyl00IcvUJBZCjv<9 z$#z+W4x?_hgavozfagp_9?he#S`{(C{vq^(3vDPdizohMJTZwU_TdQ;{AC#8Thg?- z73_i(AjGSJpiJ7nA?|}x?w2}Xkdfjg9QP*j-LF-DxxFYeIqMgGe;8o;Vp!4R{fO#v zctOQnyb@uyl=m)5WARc*55#Dhv0RMhIv#)sN2DI_V+#|GnPi{u^wEUyU=Kphm$!RW zdsxhLYGjXGd>VW>q*X8;$z`{&Tb&AJZ~~dYM)X-4>JiJ@Hca{7M=W_WY+OL7q`cRV zS*Kl=qa1j;9p1nwVqX^1NrOoG3A&2GXn?T?#^@`MKZcbT-hCP0pQ!5#NH47$dH~N! zLfdb~L=GIDk4I{&^JWg@Qw#~^w^qY)5`0rB0O)`suI~VfuMqiW15d9Dd ze`LZKg_&m|XLiw`0Ns zC=Mq6q130D0Sxt66e-AOED& zGatdwZ^JRa4;KHnPxNmvBv5N4nA+MMc*am7yVUk+R=0WjMC~@4DcP>zCn_cVCi5=frQr25bj5S_D5^ z?8_HyUthdn%^d$a1qC1O&n3>IjKu|thOz+kMF9Z55~SSl7f~2tUTB9tjQV_~h|a7M z*B2DzQ7})0E@cgG7v&d)W1inj91(r6w^s>K-z-e#!GltQS>+G4&IgwZY31+>Bu8pRd-k%(8uNRSduPu>;5E>F7hkA9D3n>+@0qxWy zFMx{?j+u0mp_FGmh4J+aH7mbI`qh2rSOrke2oE4e;4$KJcZw*w*^k$kU%Z8c%%PP| z0aTpO-|;o;+E+R(_=d>ukc3Bc7#%QO0m&e8g{-C?tCYnVS47>BLKiLsnj*?G+^^6q zucldj?5}5xUVH(V+axQ5l08kqvoewTGiC+ za)80j$)es9CRXD;UOfFiv6>3_8_@T?VlH}J5qW-P7lNk{*4Vs`vQR)WyPW)n7HXFS z%y_eQKp~3-lhXqyW7T?%i1ZBI6sVLMwXXr@2Oiuf1FeZfg*j;rx#~E#U7-nZy|%y~ z&~GCcXbXxmtbV6^Kj^0 zGza~TEf&q1;Ibs502H1OW}8a5K0MX#+Ppk-cQ%%8>Mo{Qc61AmqNL6?IF!pgvPgF3X27c05FPWlPd0AI(0U!|ab!ZiNbzx0;nW0=1cz^d(A$D>^T z_;fFmrH#MV1fXh?SrC){X;EOj!Tem2PZ+3I_jz**=-$+6HaK}U)feXGW28BGPl!)7 zZ#zDEH?jG`t~W-(CsWZlyS!r+Z`+lh>bWGr{Yv#jay!RGU0}>@Lk<}k;=JyP@07`H zj6*L@AJBr^?o4Zt*ea(+=!peGnYlN$?S!k)DXw=Z0sP2-O(H5H_-(!?S2q>|N!IZK zVPC8Kc%`B^=?op5t!7xbo%yz7+2AagH+Gs}oNtGR>df}d3|m9lG?u)*!U>Vqxfz>t z@mj#)Ne4yHJNG%$PvJhrvHi_BXWWojJAmjydqA&|XFRdt!PvG;K&2_Vo*3`J%*PiU z?FG6w44{79nObU1WtCsk0sPO$G_eH+dly(NU~Hn2kWX(zV3`-b$qP;Q{?^ux!OGsP zVmOqTYE=wf)%|1NS9kYSME4B$(ucQi2+~_L9Yr)!qID77wZ`V^@}oKR*68G_hchwA1LE8@(Lg-k~%b{+dY5llk`-ZCR#S0)lwv{2D39CL)8tAHVWIy?Q9 z7gh){Ynu?Q0l~3*We3Eg<3k6DKg>J~1P1>31_8fpxuhxEnk! zY)8^7p3M0m#n6L#d-3~t$DeO4#7qy?)q+Q@rR~|v&D)_7 z%+{;@p;2yO+&8~r7Kq}no(=|2z@Q5AI#vQ*U6DY1+uUZ%bJrz`WnSq#u@8XZ)Og># z%pfSXk3E2XrE`VO_zdd8-c+{JF;K=TmuD3PHZc`jb0bh|K6)b0#|;9FC5V~AXH8D+yZr=2s9==Mc`j|EmrjGY(Dn1V-XN()&NLRmrod{~QDl9;rW<2!1c=|Lo)6mHMLaS=GpoQePGi+#8+tV=Vn%LU{Yd zBJeSAe>U!KVtie{-u_-c2R`gK+=-6_T7MyU)Ia6@hfQOmB`5`Xn8<@x=mOT`Dka;FyQ5<7Pr0UH%_%W;nI1#_Mq^Ab?E92-wT;k>hr^ zA*F{02Y!*`X09FY;O)9TmQ+>V1aH0Ho_n7Ln>~|qZ;%5Wzw@iDAvcQ@HD9lR9blSz z67}@WCyX6S(*^5p?}@ZPF;tyr&53R?2Px6x@KN8blb~I4;?;sp`ypj?D{yFk&qUBI z4PJl&_37wEu6%BbDA>UkdW4WS{jwm+t4I-y;0H3XNrEF#q{>jEiY*kem<=PJ7lxkM zg2+XoyV3_aR=m|oS=(t2*M);;13V%wp}#VMc*}-JK0-){%#Qr1Gg{ z@$3+nC$<#>N8ghN7-bz9qi9t!s`lh#4JXrE<=wmF=%~^)I@CRJsf>Qa6A`;d^g*f>FLY=tAwkK>RcKJ3Y3ORXMLAVg|xnKO%ev z2EC`JTl*tulQTc8hJYv|<;>#v1)*E?Sjlah`eRT(Yw+YpM*ZxHh>v@Jr-fC@ua-zt z{u5XB*NnOwsfb1W_*m&^8x{5pSr$%&taxPAf;7FfY@8)XlSCXN^mclH zaeAL4;slyn$n_{Mm_o8cv-c$L>b>a7W$PRa7Q}%qMo9Q{A6MIuMAR+>P*U#|c^1Ut4?MAoo_ef$r;K5sXp8%u{EQ0Vu=VWx4U>v>jme! zh&-T#?o*)KFFiD~sp)h2w~goFiCwX0xswUfa5DnG?iqccnic?c`2Z2u-L&9geQmnx z^vEs^cT~)re5wV??oA&g(ZV_O@e<>V$Y>o6&SN#XTigq&;)+>tIhlNezi?D zyk2~12ddE*?H%2lmRs4wov(a5XEev_HLRNqQLbn7risvXd^rFa4B-BBeFQ>D-p7V) zLExBN7;sXJw`h82yNe9?hR&y-aB6sjph#X#fK(#h!OQl~hUDL!|JaZfKKGy^8qKa|L@4_`PCLkkCwsqs~bDA(=_SUweEG_O|l{wRAO!43 zH_+h)!VRQX6#;tr+ECnndF`jG`Qyd>a4-IEuja?aNRZVBS$mS&gz{FPV4n&Em4JnG zmLWBT;UN!Fh2T1}gj_(0DYym*90F^vbwDUaS;K&EDd0tEVnvVHvwl|Ff16aFGAJh5W-9bZmOYa1m+5}zi z9D_HTKd{Qaqsl6-zD&b&EsXox?!`e-=~Jdku|xrV>?^wVSD?c6%m3LAsO6V5!Qj_l zKNrD+7)I^0OCC~plAy&_5w^>A6<%{N_~A0!f4St%*_n_Sh;GwnvK6KD$-u(g;=V;0 zZTq(X?-{1x888}&bs0r!zdrB+k;5k->=aNt-j{B zMFO_VuOz1bWRVC3bNjwXxbKTZP{8^FHh4Iu{*c#R0LTATNy~goZ-yl2KfYG5+#d%9 z&>!GnL=Wv);Dddx41~f?|3l+^ z_gNeen{fdv)bB^{8s=uAfj*J8AR!5Y%)ri4r^&TSKp>T=7f`0TI{<3#1doOl|9VhCP zR*@U6?OaNCVdv+j5j?OW&C-sfhPbM^-l!nD)gUBz92n}Q7nX-vYeYy>XBa{6!@Z6c z^?4x!)K0qFO#0Bv^r8G^c7d_z6X!aN2NuglohS>NkIIIfu+ur#QzSbsYx}B^pwO z9Va|zynrVF?##08=#&OsQM^gMUD_c80d`ZEJD|8sY!CHnLhoZ^-fq4(7ah(5;|{Zu z%U%-v0iH7Ioh*HT`=1Jk+{E785_#hBY2P8;O*(ManSVnu?%Sioi;#z=RsaOwDn#E} zfcwuMgAJY8DVUNfrVpMrCAtR2zBIup2arpt3H@XA{-tyNGu!tT)NDcd9&cjLD{2M# zu7{JN*ljqpE`G1X`@O*Ww~g~1)a8sCx3(SK2g(rUd2joavVSY7+tq~w=e75XF5ca( zlg&HSR}Q2$;NzTJFfBJ<(RbhIPe|RY{P51$k%Gcq_<#c+;U8*YkI-GB+vmfU7 zj6qZc<@>&KtB!msZuoUQBm4fkX!J|-u_At?#7V%Yr(SfsqD*nzh1OKJ*b?gXl+-e( zD_BC?BYXB(3jB=XI%I&KvTe!@!Db;%z0YO)yNBPUL{%~m?wo>#<+MI9)0$nU z*Bg=~ynOdec;Pzp2XvzqqRu**ddgwZ(^nt-#*@_h>y5&5P32&3i6G zS@Xqh-uz&Mu0dG8FvEGGrwea9s+@pz8TsQNCp-H!_i8h0`3;go+B)^6;RH@%hI3Me zI4mbP5Kj-6#_8!^_Yf-P_QHBp@n=V%n;kdV6SCh^X~`eeUfPw1{x8ikvTcc9)ph>Q ziIIP|8=pZRb!MU;JQ~wX)fDx$_SD{)*eBTU%ZyAyw zHXLx{%&*Ki?prj&=QRj${m>u*6dvh3^@Cvd1z`6fcj)k|0JIPXAbXWxKeKHM_>yFq zp25=k#k~uORQ6BvZwXH5SioJcrdTl%jIOI!m zTcK5vON|^{-_+b@A3@99b2*< zgRn~sI;heUibRg>MnSImj&}h+YlE>FW2fGr5p`-t6Avlnm3*K+2@N!>G&8 z>oy7sT3?P1xw{=*i#%5xhCEH(9nLj4PLY;iqU&9^%{?AtLo8%k{a59y^fXlYyBhT$ z|ML&=ccPQOTRKAYDP*x9p>3v?;{8^seyIxFQR6OY^}Yw(Z|1kq+5F@3`DjgU?#36u z5dCtqK>%h6vVg zS!?jfULms>tmuGx;;gTY=nc5#8xM`>Z$R{4mJiGsEl~FBv;5V~rgH2XfZ^^K;t!A* zvbWG%$`4iN!*JK0^Y_H%7=%*awWYQ#mZpuq^4*W>)@I-vlI1^P*3c}8+-iO0B;z$% z7j)Oq=G`6cI!@-rp2_Q4ui|eWCSvOKjlZKD?Dbhp@SG1?_y&j$;T?z@LQ!XTlf#D8Gr zdw(p$+zMOVzoa1st@^w}Y<>sk-HTMx)PoG~W`uN)eMk5iKR%h;-Z`r${6Vz`R}n+5 z-pu|K*7>^i(%laMSwKVBnnd2Dp3O4-(la|z3H2rrv;&OXZ;&sHF!vtQZ-;!GUL{Zr zR9Umlq6O%n(cgnIw?$4)-imo(u13D?SF?mzE4+L2A?W)a_LI{2wIe8Xv7qLZ_GeYd z?;iT(jT^-ct$(_KDkVNcW}Dg0Gj!oBp7(PQTfT6B7}eBY#i$D)VWB*Eg?#}5F2;5%i-qM|r2*a6Li~7=oN>v4N7c#!+e0OG zbab@)DSJHlX>BIesh;W`_<7T%v}p+=Ljf2-Aoi!?13Z1Ku(z;xNzH^+p>YU3q6B+y z3>f;$9z@7Hx7t7US^VN(1RPq;50zB`5=npaWJH_rU^N z=(kWDlY>I`Gg17R;`&bx4Qt*q76VriPayj?O|7Nr$9r*vJdPucEtq3mA2VOsY7d~R z=kBy!)b~?QL6t7yTqeaw3eC_x8*Q!u!p~B_D+Gz8*OGn2COCMaRk(pN8m2sx2r-_C z&6EDwMJG7fmAgSnHt*u~_o&u=q!RXEbuY4~C0u*(cx2|SS55>4K+9K1utnYj89q|Ll_X{E=EM1NKw$P$UhWA7XYPAuqGYE%`(Q7=w_Txi!sSkp(Tj&W zPHdV^6Ir`WVNKT>l8vA)m97MY_b}E^1(f3f05_RCQ_Veu@ zhFfUTUA$Y%L3%X0W}JdcT0geCt=#*7$+i>t?XduK-lO|C@>%Vfw}5-~{mi=B=wLk@ z$iY~`GRlk`RX;mUF|u2Y^ANjgBOJ#V@)GTvVA8arW>TBnLkL=NBe7%4~x47X&ZQwz$53Eq@CZl5)&h{tD`b{_F6Cc)SCt zj1zh3_`U1;z0V0rQXl&9!f%ZAb-!+$GpO)mTzSM_;l+RW9H=JYbI`H<@yTyZDbRsB zJalQlVv|3{5q$$osl$J8%AY~=!TW!HW!{&{J!$`G;m*JPS!db#0uD`^SnAp-@VVsP z)OfXC33If^YJ^mn`Q`1_>IzK%n0S^M>jDF0Utb?I4%n>a1Q&(Ut%e{ZyYxvyW4_uI1< zd_b?DIk zz$ig`Q?oGez(AAr3u+WJRNwArsFR8>jQuZ1y07>1FRvBu4jQe$cQT)G-c&VdygpL0KOHpC9d>u1t}#@T;pe@Nu56<$^c3m444E1n zx-r`O?l;7u?d=KgGq|}~eAy?Se;D^9)f(@KRRR5VZ*T2H$ZMv(H8Bb3$*=s=d@fI2 zq{irODc=%M9!!0Ix%So-*eC$a+i%o41ipJElJ{#z@1rv>ADTK*)u+)AVbf6o@?!VUNdg`3 zVP8kme%!L&B+1gfqmvy^ST0$|1wugxLK_lac$Qv=9=CS)y7ljktzP;QtRRz6S{LTL zwcXW@0n~h0xt?cFBnmBE99AQ6+4JnJzca)wdgE&E&ls*0Dz@ zf9Zqv$byy64 z=i)A*(B$2=Os2_Mq-yiW&{m+#KbND4dLRvzVm_zLE4%01?&203q_247icXNvGbRg% z*sgUMLBs3qlB|OaqE0_q6NWSbO#aV-;dF9Wx4~t}h4N=7^G~p$FP(rtu!dmRFCi>* zgS5miaST5_FG&^Z3D6aYOoZHLcoqU4tY;;~-^0-szkZU^fM_WpfqKI8Zd7-kNB7V|gM2 zsMOrEOJd4OcLimi!EfjQWXPzbmWZtGJ53ilXhi$uBfm|-4GE9ni8ykI*(N{{*fbw9 zfF!#|>D0o{=GNW$C1f*@i1n9;U@?FxJzV8xyFD^R*ky6*97me*-lpoG*$lK8X#l?K z1A<(G7}wPDTjIpgbf(5BsadJi=~>mC6cH!%0Bw^|tXMAKanEv@p~ znC=J0TSJL5pHhhIA@?EIgmEGnFz&-GBo=mX6rf&uGX|!UWCW_8{UE=JZmWBUK`2b9*;;1sSm$ zmFDpnfwyJ%YVz3$TiTfixoT{z0;tCx7=bP>rK%8O{P8FiW1`zn>!Q=Z11fGy97TjE6HKLotx37ICzs|45kah5LRy{-7M-1aAXqt;3w=Od)yo<@7qqD6IR{0qcn6c|%h<<& za6`LAu&yo`MDY87xxEEYiAX#h+_4l(vhvHn0 z_B(Z+2jnKY7hTXhkfv75a68q{^z2ux&^|8&P1b^!bn0D%P*ltw14Y2&=rGPYA;W}*Dy^{%fa4q^ zjZW>*N_ottGi)PJhLhakF~5e>`%pmJ5~-7!NJxP0`vgCd_hN0m;dp0A8{ z^}17dobc62%t@r_>^}L#lZqjRv?*_{Tki_bT0BHajc;D( zFaWvO69hTF;q8xlkgM#yuZKubPAx0A(gchGFO<*F4mxcoQHf5Fq^0km5o0;mG9-y7V?L1Kd`b=yCE0QQ(GoP_$OwW^x#zYV$=N^lo?-;+W2XiTpp7zPs3>??v?>-}WjQjpAhJ1K~@e{U~7{IUP@cYE>q{885gKLki$&c&mwb+Q3`X&j})U;91V z?@yt-@2uSa{uHWzM}+-y{{7P9`Q^30ITL>_X7}Hm&~JtQBYxx4*4Y`R%(D5d%S{t9 z)GtqlF*9eoO8Q!<4Mb6{RPyk6Q8@y*LPbYV>44Ss1oHb*0A7KbVJ*=7`P*%DY@aO3CHD)s*KVx+=esv{}bo@G`51OZN~it~`S5)};2aGZt{ z=ld5jAB1=PD_QT~i{Efq3Y3`586O{kWS|J&?)VOVaFx;1uSm%G@`koZ^_fc2BcB8G z^yGqoMtF$GLoeDG@BR7#oACJ@*R+1Yqs`fA6h`fZestpzIfUBb&1{K&7oVRWf_&Ij zqss}8D|bk;Ogj;`>lJ0Uj`ziffE{BLAm`!!arKozjoclELGa{0u{0UBp*!LKdyC?y zrs)4_QOsfiQ9NyuykVN~|9(+`cj+rJ=a&WW|IMN>|87w@TPj`a2q3|Lvl%8RrsrsX;53)^KrS#db#T zwv=L~#a}FnBhMi@O>nfbA0@x7wXOnFC3vSzVtAN*il$`?d*gZ6QR&?+$po{OKz`-` zsW{`>N%%7Fr$pd=AaxJw%aI*YwuLP)xKan1Ge=S(mOk=)N zL_L`iSrZ`sc$3r-;;pY#Uf~aDW0ev**PTo-<0CxnjvL#8WE!xVkA2@F5=bVudqJCP zGvn6TD$pW+bFz<{huC#sqMcOPQ{}GZx{1W~DHj**LBq;>n#!Tw(NfQKUP1MZU{n_t zJvN6jOR!=-8u;O@ojtG@mE9yP>WhB+wuiI``HWh+w9*?cJ$TAo4nnBq6|dI2_a$m& zMZ3(=c`G~l_~6w`mU=FEiDRg5cu%{KORzZ?=gQRw?{RykkE>N3n5p7k)u!%=Y zxk~mM;tkJKCLGThFqD97J&f7SSB?jZgW6mreTd3N(~5<;pN^{Hxh=OL8&EDzKzLH~ zUQQ&+DT~Alhdlcn4)S6vsq$gihw_^b`tsT~X{AWdg>_i;;m23i20Y%lW0NVFZxDlU zoN4iPI-fiiQ|XCaUz+_AF|NYpnVO zIu8=X4?Yo>(3Yc~KvR2RBD82$*Mcz!=xHlL+TA_6CGK(i3Y7Qxap1DDde+q-3gIIL z*@7r}n!GiDYO;6)G8*l9xlqP7s^!pA4NItlJly)HRde_KdAEYbAWNlZb|gHkgbqUr z{P{q4oBLjM9Az>AdwGLwVr=QyyQ)|Rdzj-miS`*B`NX^L4g(dqx&rLk^Ul=o8xA^` zMC?RWzY52@Hi+*l1SX9^)0lhKPuQ|JoQ5;F3MKh`f5;OSU5_{aIjPTq4{t{dF}r3? zFcRpQe0OMA--_v)3P;OtVNf6d$qx+d%ZWSAs5P*LOWfGiE=vH?#5rVwPX?K>ZGGz} zPtpfxJ@66->hvC3P+$r>i8oPw>w?c$;o=x?hrqHfc;A$|bW${tDR*1xtBMDqb|)C} z?YI@2_B6y0VV|>TlN|R0y<6({ds$QDZ9Fwu=D&OsG3WKOfZ_&IC6+Y_rp44>Dc4Fn3+#zDr0_om1+yXM0Hx?kp}G@Z-4%>{4Yq z));TBd9U=pjz;GG=WCiAYyH^5vEN6_{ZIk?-F|+?KeN&5{CzfRW_o3)gySFfjj?)O zgrdWx{MV9K{$)1GLvrFjMWS%@(ycT0#d!td(yy6vwmi$pkxyS;oid z`H6nMa#f8dCwhP4pO2Xxe%Vm+fOwlf#aCBeK5oDX%xD6gn$S1p8c^?YBQj{SYv-;5ov-eWoC9WwL6yhKKowM)~8fu><@y zH@|=V!Q|S{CSrQuJ{IpU{`jD(2aUB49tunRY~RFSIz1x>g1-9`gPCJ{ zN8bJMZYe=#-#_oy7wIK=)zXf4xwYuFObQN9;ZlLP!TuVEyyRzro`9z|l_tp~bbsll z9rJgcz}IKV!T*2vED0wCly?v53LJ`-UV`#EqS#MAHE!kqo6izI_y^CD!-vk|PtOt; zpiuwiXNlB0C#!(ee2TrN^S7w0<|71JF8 zkFY(eqe9~`leU-#tWeG~Ox-03|j?+#tYF8{90c!Or zOkD=XGSE&x&;QeB$qrmK5otWEb}I^0XI}gBdIGNOUH#v9miWZ~(`Shd;S&G&*(L2_|I*1Kb2jv_4<5^N& z)2Ui_mR$^Ur*n+0jNHkR#l8|r@2YQujyA*-Z&-tpC}lnh%QQTajqKlWIPcTF3486X|bd$+utpwmvz&XVmdG?UuE_?A`dhl0;f;&D*5% z`}Vb4|76QCeyUGCv|FLZe+!B;>|@=Wy|-S=0yGTRQWt7gO0N29zmYtdb$#sYhl*ms}V~T&t!Tmr`=^rt6piBI8l7qhhJOw~B)xSJjz!(cDD4&*qx0Bol z^bP{@Gykg^QmFp;uId{(*7rv_1k>we3oi3KL8F< z4umQ1od~0xTU^?LXe_Bc0T^{XqExgnkE8;WdUpgVMyc90cCWh#>{ReiY^nM21`Y_7_5bIzlBz1 zh0gF2c-&Vt?m-v+wLiR7fk1(E5C7-=9|RG;KTv>$r7)KMN9XBx$4QLe^C|4x%E#K9 zckFU1>FdxvAiY2#o7F6SEy2*gKT>b2jt>gN-ybQLE598n03!W#q~5ew4APq_;_JO_ zuimE=0~CoM>4j4N51H>f5FK8_fFp%NBJdVuzCXOHuOiL=%DZ~Msc$Bt_q+P4kNgMn z$Q3hP0G=N+^g7@3%T>cK&JHpK51Vrt7?1$bkT6Z-G1Amv6t}lt@fge@al4&fQqddb zz3r-^R~xk+FXMdd$p&VEojD&dP**DA`0^0WB^VXWVR8J3elM_1RDm zy&7z$O5HG{yn_^U_b!|=@sW2^-lvAXT(vMu$K_I@`%8}u%ZtsFK2)zKo~Vh5a&zr*n~$;RP>11;k+RQyEnA&DxoFh8~TWl zg~gTUiwEFf%`jO_+H8AGVi~#%-Scwn<^nsV2N-3tV9UE}1Sf-VVj98gJBn9J6VKDB zHzjcQf?~oAFCljp=JDXnj=!)+?0(clu8Yq3}T`j*~mGPt51|ios zQh;yY<_UqQ?@PP8OXve`X(gf;Q9JCPz&P63@aei=k9^MbIT(6?Z_Bd8C?EF#G6s6l zE6cVzBboXDNht(lIyW7un;C@MBQ|Bd*PZ(~%G1aaH(`}6=}dzn$RYvKp!=&(vqbON zeyEBD^-?y1HFW&77B}Y@aK5taUUdW#CD@mF+C8Kox7cY@crWXD#{`OB%2okRAxV_O z(pvUmIP$AqGVXE98+3W!K3>~Wq*!>zk^6dr2?#}ARN6#Ez?1B9Q_*DTP?m;X_obOd z#eoFLfYi}@3=fccn2uhux!t+VGlBr_4BILW8(o>v$xMN?Z|o5v!>{Bm2CDNV7JJA>NGRs$sIO6tb0GkJk3=Zwd`R(mzgL$8Nur?XX6oaM=6vumzryt=*q?*X&R2c)fIo zKvW=YsT8p;*xgh@=^h-uopx}{kmNA5>aO$Hc0Fq&Bb-55ZfNo5?@Ho#Iedm_hvoCy z{?V}TS^fU@uD0K!x#e5wYjZMXZs3!Y2De(nT?_}L#jpWG+>b)1HU9 z=Aq=QuZ8CRqx7|J?^WByJ)9vQ>OC*EC z;pdgN`;P~T&Jj5HzRB|l`6$VKv#19`P1bQbQ1)|BPLyD$- z@!C|+je%@6%N-wf>+0?P%*SBpQ#0PMpQiyMC4%b-G$h+_@rP-iZUqB546MWMR`-tH z)iGzTT5CRed zgTe_&El)B(m#Rg8k3-@^!D59Y)aDYvpWzCFOWopL(~#VD7fib9P-z&Hi?vaE(mRS=kBUP22qr&lJREYSeN@>|p)5}+YDx@I9y;ej;(N+z+#OuQ+*Uiq4Tt_#5l)Ji&S*XrI zow}!A8GKj(A*4ab>tAlmUSMGbz|q;K4D-zOE07O#7mVY6YFJM*;kGpTP@<6}@mqdS z7ue21630#tf&g$H`N`zV6jZW!O+Igawc-He4zoJ|{oM0JX2{O3`U#|Zn#}pOm5E14 zSRXo>du(gCo>}rqSH)7W<#G#yd6!IPuY8bQ~ zj~x56)A=nEVZI5jRytdNEupf<4aA1sY<(Z@o)?eJis2mLyrxL#wqb8N3%TU=CEwrp zT|+ifCqyn8Z6NJv($SMAY?}T|c-|$_pNDd6cBfs<)T#GC>4!p6@+^=lD(tV}{+TtWTk`>l!uw%2823YyQn$MB;+GOaJp}~VBFcxy>@kDDBb7b zgx#Q=j6KQ&hauh{El)Uh04jM&R}UKaS98zQW!X<_wFMmSjL}-`Y8JR8SOxl7EF$;D zy?xTNq1vW=+hOf_AhRpJA>>X{fr7E|n`GNeA!nP(h=F;Sq?U7NfY1dA$(5OudS^II zewhhWIA2VxfTwn0`3of3gpl?$1I=)HooU10Kx{(I2i9d$PrJWG!TfXuAAax*{p5ZT>XT{`2MchQj>m_WK`Pe&QE+1tf`Z z?{@ji1p5p81)wk3_pfOJ_Jh`jgTC;J5~sPAC3_YI4{75gJG@%zF6U@)I! zE^q!FI!huQ1Bgv?9TtiBim>#kyG_-u3ZKNtYb6Y=4PIo-g_Bdzl=E6vo@Jvx zloy-$l@shKJg|Km^s2(&VpvZVm-7cdn=jjiO7ufV@Um1lnryh-< z5QP3#7j8yRF3Y|!C@Xg{xcJ)j{u*fEoOWGLSK<(#9g({3vDeeO?3l>%haK_+X1P5u zj|C^rjG*pg`#iYFZex%fI&R{r+l-^gO(A<+`9ySJG5Q7 zhMXZ12BD$7eS>3?00-1fU4G^+Qu){D0N9bfQ@oajA#3Us{I#eqr-h|U#>mX|y$OMl9Jf&3U7v>YX)Gs)u?>LYq(%&OL3H--bHaHAGQK{s4PV!- zzdm)pJ7+)ZFD*Y{YYJvF)v--^;%$^90`ez9oAPaNnHHJFs;>d$N4WtjbrM z3a)F2<$zFA4|Fezg^8Z+@VxKavWqKKAMHx+&t~vvWS}jO})p zHOgK$BS-=UdOGXiL4%m!?Qw$2sW&`?D`-k90N`qTTqpCC&bIteZwt-~=D8Dc`#dnm zqZvy^q42jw-OX~<`g);tE_d4SDWE7G6N!fRrm{22Q0_xu5DVD@hukvKo~moe{$+aS zbS$TMxNujtvK6#Hf`!c@w=ZpYm#_Q9v~Vo2OXLDJvwKknno8b}EapEcu$^ny6KgS# zU5#}&itW<%zEKN%w4Gx=XEx|E&%!h8$dZ1moNf5)u_OMop zdg9VUyV2*%&=`@JzCzl=0~h2r?CS|Q(|~cqbCt!WmccLSW5dGaOT@(YjxTl7$x!}WTDSRhk}I0LKI#%tJ=P8j4NaN!24%OIQ} zF|)O}Wb8y zr>N*-{{}7TUv`wBDeR%RyUOUPAj~`UTvI}p8(W9&?i_C@B(nE(TOOmpyS5kvhe$Wb zm^8SDpTQ%&AE~XDb?uDnsij=PMHHjME!{_35lu)nkcsL@9ssjcawfG3|R3Afk6G{c)Indj6FOE_G=a} zq#`u1+V6eOjuq-(df1HbhGNQ^iuxvXg0X@`P(?%1nA zomG?!hiL=qF2p_CB{yPJz4cH&+~;SOEppFL2eHzfb_SYTz~nKiU(eyVU%ZP^2#I7) z*ZVQu?*|)VEX~A=;CW-|0YY*7CgTzqK-!Cx!S0dBXUHv6=7rV*!pv!Xx?r#QCXMQ4 zdqD}v15A2nC=0HE zRMhpZmw{le$}K(l^?fjaK2oQu$QA27sC~Y4Ipl$Ca^9^q*A?KiuH&3mo}x-Qe#F9L#cmy1|z(oc!-@aKL@~ zKi}XVuYJ40-*e<|)c*hU27h1Rz>xim8@&9D%0VI3Tsi6<$je{;9(Z+SjX02lDChSH ztilmq^jNv`9Q)>q1wejp=B`g3rN6Tp$n69bDTo2D+Mx%$F-+*l?zVx9p5nCGRGs}2 z_9q0rNS7lopV;a`Zs!ZCP*2bDAlL4=hiee?rPD7|4!UyceG%nH!Op=Coz$CWj?OZI zt9$#eq?>=Jpm?QSB8fs-l zoX{Gtjo`7avZZ%77B@YSJNUN7~ zD}=0E$kqkv>9mNRxfNyQY`Xe&xLmRPzRQiiH0s(QvpWg1j`)-k6z1@HE zZXxCfR!-kz(Yz<}hkw>4Hr>5T3Srn}8A(kk^U!-XT+8->2Y0_h1IKvw*M)dYj4EC( zOB{te>jK!!V5|;0>S2iP4CLDE@)AFloZNu3`cfqRSUTI2+sXpY#csNTT1o237h3oZ zgmDQHKW^x`F)Z5np=JFNjO5z#&}qR{RKq2r9vvAluU?9$TY#Gg^uq}nD!mNipPJkcP|Ob>`FE2m z{kxy}pFi?&Iu+tKpLyq>o=|8$KIBV3yxo8I-6DVWK=~){_GeWSXf*zk`sR*NGsl8=5*k?&ZM6nmliY3H}v(4hvBs_-cNvO!(NMIqH54+@W*9Rr8wNuxuj=o6|g95f~fJ59lPH*V~I0 zh7<8t(hX7Yk8*t>g5jpqB*4?jE(m!z*{VuiHIV^ z+ZrI{8Axn_Kr5YvB!~0i=DB;JKa%g&SrBZcDcw8I5exYEpy{J?pw)Hlnw(T+)!!?- z^_*-WeItO3@wV5c%>(3r2GO{)-?xS`Yggyc#HYia`8?QNjx?GR>QP_e!S2- zo>h0yGF++Z90*(Mydu#=bELsJezd9ClBh1qVm<#1hqp2H_WelpLJ-$8KK z^~Fcgd$zK-bn!((&@=Fy@`IzG95OkDJQ!8FJTCLjKa&@%)`E+di{}Dr{Dw9ZySrD_ zu>{QR#kRsjz6h6ry7uw)wTUxGD05|7QDMOxi4fd(Tkd4#61)hU3y+FQyY1U(D#yYC z{m7D-o}~8>PjO`WqD+R}>m0-MXqw1n*9Z+aKr%9v9kq;KW8}~ZwF78gVYAWcc}e_z zfywR)Ngq#?A%|xMQ$y(tVDIxtZ}u=DomAv1F0+u>OUt>8)z=8$F7Za9iEL=vTCdsJY)PK9CXFtNur_rk?~Df2f-F zY>M3BABnGNt=?}ZdVo7SA|SIu@<;Bu#>!3#hmcQ+TXlhyMB!C#!^j&TCJ=BmC06IY z6`gA3+M&hWjXLB2SHZc%K~=X#cl01=&*#}Xi7VY2w*hnRLRazkjkCKllv_*8sk?27 zT!`2kcUH9}u9LLeG$VB_#hgMe^F!#Z%}$(;%r;N72(WOwR@8{Rx6ZUg<4#epQ_P7Y z#5&oxi(#KCZwtepO18SIc2c> z$ED{^8yhM+cANel8;AR7Xo{rj}-QCp9U`uPjO?;BkG}BvkJlVD=S^f^w zblsQb1Wk|wD&7@Ocd&*l;MiPeeum*RUZ!{LC`?qd4$1>K_c+K-IxLK7%!lIjV8K5+h{o1+Y&vIgJSktXWt>?@X@cQ>9RvVORFZmm~xz_}1}nK{Jk{{(otE|Iqn^Ecxpw`|UyebtC+>B>!DQEEeyE znEaz2PZ;L>1XsiUAQS~gY;ZG!_x+1mlfeHV^?%>^Z(Z^qHF-Xnzyi?T`<1leAvyMQ z8}xPG1nVY2;Ahvvrq>6+U$iw3qAfs|`~#@}ZBF~r48QB{e9<9;4iJHhR(~|Zutv&Z z#Qo(puo3+%^+(qk^^}Q|5GjeM^}MKwq;6q*h(KKkD%q_O4KzCG5LSsWw*sUx zgEM<+40%6md`$c>&DufTB@%ZoN15ehCc4b6!+NQe80pc+il%qyEu$v8Et=TCn2H%I zJ*P-(aL05UCw`kMFq*}lXbMARG2Hh`GCAN&2{q6&pCQs*B~8d63MozBp;9Ivs{qo@ z3tS8cO6HgBzSR($$#CDlV;<>3l@aq#zc^_@WJ(V?IeEOHvMjT`MZJ1mP{uSch%1QL zZcuQ85|g3AAXZ^!xTA_W!VwYZJwEc8;Yfo$jcXSkE7Aty&DqTTleynwwB@g2XTEA> zYJvVurf1q6$313VT7Vx6Npr_bb7o5I5FoBWb619$An=R#W_f+qEoD8%P*}Ho8Ajl8 z4xYsoEI;ghwi>TYMpL(*>dwFV?rlz)NzkL6uR5D(Um-iAoD8a`){_fP!=2ffgo>R_ zlV}0T0;oBC@KZjMPgdwA(R?7MbCB0ne<}IM$!OZsC5RN>DR<6r9!S1?B!N#jZIoU>8w6R?xhus3M#=$PYPR3VJb zs}c69`Dg>GF6`NXz>WfD?|50C@irUo1#!*63K6d=<8V1jH~|HA-0=tGz!zsL9CSdl zPSzjR*7wH8hNuEQpTrg-CKifhUIrwQrmqzUm%R(03@~tCvbgNN6K9%cqsOG8BZz(UHA0B z^D}q88a8ZjFMFWERI2;%T_tSGj$e&EKVEIBSe`DEE7U~=@6h$(Wzl7uEJ(p)(er8A zUHXHa<3Kq)iV- zJf_sz21EKHw>w=-!{?PlpFR0_Zkt{e?MS1mx)c< zNeT8bRjJ1Dm;*=iF{k~eFAMF~(kSK03$TB8RVN=ro76W%F&_4tEze^>iMEp$(*QT` zZUUG{+KN#BN8CnIZ+fMh9=kK9Hlz|fs5 zu@7{{2+U!CC{B4}4i5Ty+iMsswEuM5e;E7z)7$%SX$ zAG}Tv!O!u`%k^fn?@+B)>j#4h0lHR{^QM4Ikho32>W*dWhrQj9+=0kZmY(=yi+fDv# zdE2|7dhpuE*Lcm)@f2WA7+c-K2=_zLSIayfo@gh~c zl>%9age2S37Gz4Zr_m=wFj1HSoS8OQ+(b5t^O3HJgaQ+(&#yiSc&djGQKmM*5DD)5 ztTSM?T_^c{U-K0%TexFUT&Vy;$8wNlgNAcPy-;ZSz9=I9Ry6(v$3&d=VQ{_h_j}VS z{k>(%5(xeJpqp*^3z-(oy!Uw|f61!`DZn>DB=GsGZnvH0p{<{Q7GblExZC3526+ij zyJ2-R!srk(LzEND$7o1y{z{06aVYQ(_bE}cTfA@Jy;_A(}Cgk z8!ylD*wEbG?(QCiI0##frs7d_zaC}(aJZ27>H6K_`fLw>f4GqSr)cu84j1rtzQjuY zakyYVSpV{HL1MI)|IOk0Xr=$@;R0PG>{#B1O9t=vpTs2xk>h|&k?*+o-v`?P{Q3a@ zIyqyO?kpe8Y=1H`*HQEZ<$0vW@R-sikn%6#Zn&@|=$K@Rz2d1GS>S%fy8^$@l$FF{N;RQ3_TZ!iY0du|k;I4qoDWPOh5 zRHU9PptR4^!60=HJdco%*&ic%0*EXY5W`_^h~O3Hau6h!lXXnkeK#Q3?9tV+Yj%nK zjECw*?|>uT%*TVcUNWz4nhGqYP0+P8iDr4%SU}!mDN?${UEJJH=kp5}Z`)hb5B>=; z^$TW9oIc6BE9D7?=Y6`7hkA4EA4?e!#JJVQ)}J=z?m6W0HljcQx>6otsLI@NcdcqG zxj2-wb<`rHuU}g5GC_}ic|7KOsq$lmr%4ev&kzD#A@T^?ZSp9ESa7LB!=0)VFWW|d zZwaO%a(~kil?1sK`Gt=V{z)nWWb73_p={1G;0uQ5=9bJe&HjBY!iWk*iWam9t|Rt$@i2OaUN@ev>Hb zDGmf0B0f8;mb;17jxdyFlbuCLhd*WFeO0`|3HWvHNCrSN?7G1&_nVkOLiGSC?2sI{ zLVWCBOslcu4^ch>=W!eboB@j~EnKUjdLB@h*{`_AB^tOr)yg2h;WUcMAG zF3(c6Di4hjnVo4rFZ>gdbui^=gZncG5e^VHNA!KqgtQvm$P24?tF9Smrqi>^4W?Ug zR$j|AUjqgUJ8ZhI`keR|wp#B241o#8AdT*FVN&qO_BF@ej{7)Gymj!w1Xn2%6n;hz zbBN~?{%oc<1A#EPRcg&hvB0-<5kvy387kMgD>n1$jTtTzL|6~V`I^qW=`Ne|xIL^A z#f7P1dUC1s%Q?Mgwj4e+Qx00X5FZ9RfV0}en(oP|pcQTQuxKJL9(F!)*7)|Xi#-G% zhB`QHUaKgk6YG1IX?X!i_n1*a!A$A-tj)1^#y5bJe!j91T7D&YaR)IFYJIB$q>lkm zhkl3L%KOHX(H%1^py-6qABKry`gMhPZEPtNZg*IQ*J^Bl(jH+MWt-{C;cw=Bn+fhE zt2WN5Hb4U3B&Lbhi1~<&ZScCF><9?zsbb=sFS%K=(az~tp9cV zfrRuE~ zU%j$#D6XWf-->1&8pn5C3-FBkqiFv0J5(R9A@3IfSo1@H%T>DZ-H06WZegC=_-h7t z%A39mNxbFxxE+%t+nfV`{mQC=jOlNAfG}4de)vtl(3j=*3KLxDwSHy>zjMcs_tQ#% z5GMG76W6|%B^}i-f?Olakk&^k2}~n4-Vb%{PU$Upou({$sJI$i#g1?|;&;jz+l2|6ZsXI^Je{O1;7Of#ovKHW67#vIy6ui2X0^dS|zK)KC9{-p#H zR^E|D{!V6cJjKwB2eXY}~o0W2mX zXhJrxI+3|%=+LfQpbc)}H*?wLf-i6CTL@^xQD33pk|ghV-LiSO-X19;U{AoV+O2;q z3(H+Ms_Y!~b=A#fQxF^Ak#YJp$V{>dOQ|5Uhxqc9Tg;1T!;O_s!dlno_VYbnoG3?v zJFs68*6eU;CiufM*zC_uku&?UJxRMGzjc_Yd)8eS72fvVyH{4M%oVt$hoo*>p9y5E zAvK3HVV;NFA)!@+$PmVeLQ4r_z`gSIN}-6%zXp#H8u*C*%E9{y%m8d5%(Bj$cn~TW zz?2Y2Tb_CV{a#TSXuANvU>5KZVsE(_MAUwObh)kJF7jqaEl&s_CDBE8xj@%nyXvRL z?d>^&BLsoxKLP{3+gC@7cM)~N)Rv>_VBt%w!yckZS*MB4CN*h5+OpJcqFWph(4%)C zGg6PK!LP*w;7yKdk;4t}?Cl*9+WeKIAghcD=bhGc_eF%*N^nW}cqigq5UUGS`XC=U z>!^zy$)Y)QU__BTJ#F1iea`3e5METgk=o7b+=wI@a0k-PM$971#F^Yf!jgCM9zm{x zqMoHgaiawahWtQ?d};bER1R|Op^~(As0vwFqDntXx|9LLmC5(}xtF(_29)`awb`<9 zfG&ok)|~oCJV`?>Dg*#?*AF$4N=XYj&z!SHtcG5EU-D|=u|f}^)U>bSp$WonOL?4K zL6o>ICz(`u))ky;PVe21(Hca0;{@{P7+$*)qB%n zB6ugdK<*&6F97{Wa~2zyCNH*eEyD#=>mlAYT!_OmyDpIT1cX(y#b&liy<-+gNQ^6* z@RqF!QR#PofCZAla_AxLC$ZRWbHi?O2hW(0r(hl*KMgUn1H)W&c0tbK_>hvE2Sq!x zr5-DVJGsF%xv6jWyIvjCZd|1`AoQUu^V3mXIfkX1|3IZT>Twr4M zo}&Fx5WvLjJw^MzAb3yFkpEUe@U92IpZH}$_>T&L9|I=7H#)w3j^Jl;=YEG#TUhXJ zGb-LEFaC0t{c!e6E@So&mRP&n&^XjyfF+Fj-@u}PMX8H*Pb4K#!7VMBa zGe{tmcs&eJgMpW;j};Z3hv{CWIt3|`{A*A)3D=RX*?T7+y*PJBf-1@n`uR_gT^Kii zq3r&&itLi%RPX5ZL~bfAqr)5rq0XJ17nb^Q6?qC6XuOPm8BnAXq)ScdaZbl$nvM{v z@Jk@Xj}zH%3RC{Fd-cclP|Xd-aY&M68-3(;z}l{`2%=S~u)UL>Oj?I4;|Z-qOwHRl zKPl)jRl0U-9`>3zM?xJFD_#otyw_eW{Q_ETg=F4U^Z{sxCY?`D*MmpHy6ZyS`a(=1 zdBiJu!HE^8v`)tSR zq3h1egId(}O0p7*w+i+1Nb`rS&aWssK-Kzi?Yf{GnPT_w)b^hiVQ!iVi(nz)TQ3um zhk)R3O7D+~_`PTPwsgw&VBGp)!ky31+k?>WbHWX06Nq3WH(|1d!;SCk|m4f>_0k^6{gf%3vx2b-$ zO42T}oqoAIp7rohX9P$N`)hs8s_>pBYV8!Fvr{K$^U_G-pdUKO&H_K2ITaxn!w{;T zJtLjAL)kcc!OSDIgRHcheQcbv9S}N;TNS$*-qJ%-5y8IBGimsr2}u7V*96p0pGLNi z0?ILXLghT2JRYrxvm5KcqQ>hQ`Z_owem-7bJjVwPXfRjn0;xv_nLv~-#Y1U)64*#R zTHw#we)^R1PGH&_p*cCB9|V{O+J;LWDnf85^0a_=d^d-*jNt+<6=A!nw)nO#0yy~o z^+<$|2*L|w#?#v^bUSypYvl#B?!v18DZEWFR%svpc6IyP49Iy9l`v2qfAfN6x>>QohO>!g$fyVe`x(ILct-5v+{I2ZaLC;)dSI?Q?%q{OH_*X+YLU?AbD|zSznQ%1R)9BAJ*VVnZJ?PlaZQTb4?yCy%+xY1x4&1+WgCSp-93PvV z&o$~VZZMcJ|LKT*y!PV}``q~aM5y_9Z!iS%2EK_T6Vm#)!TxHz^ylf)esYdMDcFGW z+KL0xL{1gOku$wWfhaWW7$yWg;(jp3KIdy-6$JGsw%K~xYvnvUs7E3>88ee{V`JS1 zf9>mA|0)JcSZL(s9ZtNrOO!S+Eym{tpnTwxl;)VUvQ;SMr_;exvf~N~PxFz7h#X7` zuyZXuL4D8B_0?b~{3r{rSbrb|e40};f8|v~$K0docP?$cG95@s zd)_Gl!Gv~4AWM$%bi_}Y!itu7CZ=h3=>`1Kvgan*FLT>EK$wjUfj+U_no|;5Sq6*L z>iBNbQV2NF8)j(p1jrurju^=+q_v@>6AuofD`e0RKzatCl>?bJtx6>*L^0*8u`SuS zbIjC?E-eD#S}k@xB>FIzvx(kHaac+%y>md+HLR9@^!r5%_JaI?IP$#W59b|*YiRhq zt1cwHfN(X;g#Zs-;w~W@|I)o~A+dDNliRs z(R_0o@GMV18XQc3q=34{{%AxFybGEQh_e5S-r)yvjgAwr`?r>%=bnJ)`h%`CAn^6G;Bz^PAsrzcoqO( zy_cdPWm1^l!vCJbmocoNp#N zK(gn?3(Hp>nWh?YYa#S?4%Ub(BDU?Fyg+pJ2GGFmgMIBW;-Ea{;6R+u2R8SOkg#ut zQJj{Y?8(kEjZZ~LBvY0TbQ}rnNx=kl;-mx(5PbnVa6 zJ?v$~R4!3&^d>cCnstqcu2=Ll^#`{y!Ffj+9kvC0qqo7KQK>;ed)m_|(sJ?!#kVmw zc}DHCu6<#jH`bR|`+Tok^F}h-ako2o1byu#dB`e2LZ!9TMAyn&9vh)#He+wWiX)p- z1m8Hp(;spvd%S8!-V#=VXF2C?jyFwCIDFP;zwaB~^4qikv}Hm%`FYg=;CpD%Gcgo) z%5>f1Fd8onp+Q%poC^AMt>nIdU=&xm(q+SF@zX!1>-2XMqu<`@|Ba&gPq(_ypHYLP zwsm*}XK>4PQKX+Jmgc=b#aRDu-|BxVoDamG`_lJoKlY{nuWxnvFPBDtzSV`>CI>qS z$2rS^^pWRYJ?PefnSHko!no{0^f{&WQupRa$UD3i z8XfHP+VhB2i_CUlN<^4T%(w+D-6w3#tmoxXhRyZm5%<&SrNp!ko|~ZC50UiRq3B)4 z91(~wG7gU!;p_wtKLv0QXQ-M_XnO=S+L;rB(WRn&fQ_psdlxxl&YuRQ+y^kWi5h2{ zriH7+IJHW-M^4D)gBGvAJAJ_(MF6is6Ne?Vj{y=a7#q?@!LA8{S^`iwr*Y1&kJvNQ zDy#@qvUj_CdR(GLAsF<0R(B*IT~)gqzA-zcBf>$il%Lh`+VQ2GUz}7yv|UN{(EMYr6?e~DKw8^EO{oF#o2|clWCynB7j|#7AO-hMxk#pg6Q zeU~YBdRxA%+x=`Bwyz~AxKKG+ysfTO?$rm6oc1@mdfthLc7tz~x=Ka98A*PlC>bc+ z_mCU8**=PJ#bsL2bdX=p5-0*{-3D(U(~ukg7`|wCirTA);CbTKl$Jk2ni&dd4>>0X z&X5*m-U}}Xw#>6IJ8Sy=0EFZ0>8#0ezd+95{&WrIYOb9#_)*={UZwZ|M%WJOf`l@L zbhJZ{3o=-ZPj^@m<;<~4pE8q`I#24$qsy~VaxACW!4>bIaXDH&^Sr`b2)5w$VWjXm zLvrWX5YNFtH<9!(>8;>o{fp$!e%QM7_3(D3OCgno?m^!sZdcPT51$R@nbH0ViidV2 ziPtuDT4^E-L^|RYSMBb{gLx_OKQ1kDzR(2s5OI}!!sV3zr%zKcEucH7b*G=<;ri@iUm+v+J++l3QY?}!%q zs~sCrKNGgc=8STFP0McY)6< zarZlnA{wlVtUl~-chhapRD5&W&(>M>s7+>X_)u>z?#>r)XHrVhhG2e4%ZEB5lbqV_ z!{K5~954LEG$0Xy_vtQ^5{tKVm`%DviWr-e3^g>z-X)rh103(P&ygecAt_@7M_v-! zSTFSP-=vHYYOs)J+?l%6F`Azr>lmS4-m!D8n-`zywlOl*+2}maZ=m}|8qC(jTjsOt zC_4($3aiNLj&ws&9mWTx`B#<~1wYkJ&dn)zHOtobdM(}sqNRB|db!d1OaS6ef`;^#V5n{Ji+G}VK5^h3ZIs;{8H z@5CBw$CB6INc}dyOApFtwY>VC8k>p}jKB>BJ{GT|8x+(y8bb9o5%r2@FibiWH#F}% zqvbGcTixxP&hJpAL8_Yjn!7+Yy^4`8H5DT-4ZP*3G0Hdfb9u$Lk&(8aZS@vGts&Rs zW}Ru*_?%Z5^CLSeo*YG0n_mwj46(?h&t_D)p)e5)o zbZs$C5||?v8CgW;C>ONgzFGf#kj*(rom8y`U3s#n)45jD)0eg4v~pgLI><@b%xnr1 zn(89Tc0J+z!jW&Z<|2ugX1o2_M9d$VoN-2$#YJ~A^SXTpVct94%+Ra6xN1)nw>(OV z0;*z$73hl_m5v}#EzLDo&gS5>g(`TH+{EHH3X(@#2TOtD3$x5d5~w#V{Nngx5ISDvRW zmt|(NlF5&js5-D82uO*tw~9TnHp~wt*RNn;)z{srLz&f0yP0Wd47a!2qjTDq!gT`$ zC{VSIK7iS+D_eV;&3k2jmOoDeCeT)@o<8q7%VC`}Rm5esPCbR0p7)s=#d2a{l-ZrC zv!<3W27cevjTMjFs1P|wV)l+!?;q9fIla`2YRxYwGqzpK!~6au!nF$lBywN(Dus^X zAmjd-55s(VI2msYxW@#$;FRMHTBnsvaju`I{d`$rWUsP2jI(+8bmt8Tc~uO$V?beD z-F3YNU9qahVZd%-Vf0YWjh|II3j<>|T1GXaZ91Igy>i$W-@eJNSx9}+7{kT zQ~t!OPESIawjtXhEo8G*SkDZ3XJm#Ntg#!T7VzG(Yt6tQ=2|>I^8%|T7D5xsrFj@= zxs5d44!To4%eoW-Dy2H9jfgzq6pwSmaT+&m~VIG zf#S`Y;(qV0wCT|*F2iEjs0D&@qB3Hasm^DeJ_?=%5+a!fqpa^#NAq=4ZMEbLA~m+N zOly#vu8^|UT@Daaz06n*_jAhH3 zxG47(vS3HVoP6R}mU$W+D)XHX$h8JiW7a!vBR$WdkdR>->k^L|0F&TM$$Tz2b~&kO zDGMZqr&rdYXIbTShb~M;qrGyhbK{INSuPfgamg9826}CMweJF4D z8C#YqXE$Gs_A*mhfhF;W^x0N9o;#f?C<*VR5B_9?+-(~>EQ*q1@cg z@|6NTgP--LqfRnB7xYkkVU0Kz^|(U;5Qb_`OayOMICMb=C+I61qhrP$oODmGSL;O- zhaEWM`k}DaGrJl<|X7p}}cc3X0ifUmO` z3#7#wj%Yv3OvlA4ckGr6HkVuW`r=gdbKed|W;tX>glx_-A~)#Qc@l^`8VsbL>!~Tz z_znyIUG`lg?ECr_klb4+8x*+e4DBjhh_%fkx9BZjnk>(a@CEzMl7M8T*FY`=q`{=u z2Wf;Oww$sD#X`DfczG}LrOgrQcGD##t!LpWFb5NQHmE#XI2K>g?veq;sITTA$k=Sh2 zOwMIW@6Gja-W$$sjp>~VE`pQC#imfG%oHCvl6Iw5I#@2HqQvctQX|tX8`Ywymucm+ zZ$tCZ-7>VY;=FuyYpy9jsPGkjYoIjRa<)_@qp?0sl<_(!iEny=ea#8XNV839o;y@+ zb&eCo`z+Ekd8czh-LD_zgN}g8@qI;rDXNp{iI zoqC<5#;+Ck`WX(nrM4}gP%esYG@!)~m#BnSRHTaD;m?96)=}^RNs(rvJfz(Dj16bI zvEV@X8h#t8C6xO}(enl~x}+0&1ChUnyzG{Ec@?Ht*?U+=0c;c-y8cP$)A3a}VZ`eX z?-7{r`eSHp9*VWV7S@?$*#VDa^Sx0LYd#$EaE^-On}L75k$-^yP!tHw9MMO%-yo-Y zft>o{T}u25Vj{$ni+!D0GpvW?4x4XQ{CFk4IMC zD~=(s8){M=_m18EaHdwqf#NSt4qZ}}qI(XyEEgW=c@;T%>84zE+2tghLoYH_7rv4y z6qj8wCouVW{?yjIVu4mA3O3r!TsguKuZbBAMn|P|UREn1)2PY~KjU`tO;$SEM!8zl zJH~7_@7U_us1{%|w&&&iA%qb$TVFW+X;Y&5yV7xZkdBCVDXxUxs#7+I?dVX;oeT$sr3wQpU&=KOMa7uR{Yk~E()uze^2i&kWTw4CdX+9|nm;-z zcId8VLAWbSBoxkJoaG#e{tHuaOD~b9eU?8|nyV3OHc_am*%jtouj}-C>Gt048f}UT z`-^FoMv5Q3AP;pXIQ7C&-CXo@`*!iTIw2E%IGFHk0U=mc&*ZtzOc^=mDroSfjR-@1 zb#1d^vo6-89<{0;eI!({VAMal+ml@j?4elh7@2dp7|!?x@~+IPqFCuxM_JB8`K%Ln z>hxhG^_z7^%pAvSn%pvhKtmQ9eLWG zXUm=fmx5xbuB>TEVHdU1Xx0^{{egirI19ItWvdn(XkZGjH=H;MV-VZPht)=XRYktb zBrqa&+?DRrxFU<|%ZwH3X3C6LJyu_qRHwvL3)FDXg26a9?VlerR@n2&hHal4b1OZQ z2P2`MZEidWUXv{trbh|+8ihgCTcUt7p*OuLheDn0&APl1H_N_K4-0N_%=-m7-z={( zH0SdjCGF%;9kc7{h~HdR3a4xkv`h&#F%c|a_9>-ObGHS0J6BF}{#cgb6kS~M;gWN6 zDD2XbdCpViU3=DTAxhI;Of&V&<|wq%Q8!G>X?KgPoJACJ>C_xi zT&rm85QXC)!~V{k%=y}RaoW31qf-e+v{X`=dWAbfF$^6+$LQvl6EVkPAD4V^GurhK7&W@VcJWM?=bQ*HOJOqejfy#Z_-c)yM zTW*^ax8dw2Qi8Xq=UuMX<@tQAv@6txu0LG3WwsoYmZig}rcZaMPM2+Ha1{0{a_PYO z)7{BNV$fw%sL%bTkgv?XrR|Hf?wY8t?aK|Hd)tcsy<5Ji5Ek9sU2ggD0(z1I^o|F! zm94<9q7=&X;p8hu<5iGTWH%otRZ*|raHNbAcdl;|y)_c1^-CzRaZ=lz9C0NRE%q>< z77-(e5>7O#jkQp8>aM&Da~w$|`)*FLCK3_`hj%wUGI1yI7EMx~ZGGs21@AW(an_O- z&rn7u^68GqQk(;U)Wqr?xR|HtGDo+mO*^Jy$B~~L<8Dv^Ed-0P=k>!{YL5(l%c#AE z9|;~P&^o3Pb-OvvBO$qdspUor-w^vb^JdT`?B|U*=8_>XmkksWhQQ7gC=z$xJ&M_K zdMK51YL3h1g$|vamb>M_X_g1)?eA37$6M#myPmTfTiIgO45b=M5-(1RetMs=0=LrP zx(7v}I++Q=1nNjQC$bZMRx{e3;iN|+#2faRwpprJq14Wc1352x&QaJRcXe%7I;)*r zui%%Fa@I7g3hS@3P(4tqL0a0YoB6E1N2u-udbd?~stIZ2)kpp33Uc0023_5#v>@o@dSrUbEKTTRAhKAA%u) zsSDnI30fysk@l9O55;vh4EFwx)!bd)%7<2QbutILQxMSWvR6|Y>#X6;%e-n?!-2&f z_l0@6qMJjV;>QjO!k6kpXmO0C)@p@^dcd?AE|V$CP6);AoKtj^_2~)Hp*ZbW4cfG) z)kRR*3z{{VRW!=d4b-nLSkP_-wb@uMc?~C=gnGp?+nw`tvvI9@_1xzX zoojS_VXv~LukAWUuqiQzTyxz#8?~Jz9Nm>5Qu}F_@wlS0Q*!cNLP6-YqX)upQYx|Y zqvSH#(%8u>$j>|DyV-iW)~>)6L$^Ezfl4Y*6Rt>o(2Z$FG z^u-}mYxVPP($9$gE`8+o%(_rHGVSjKzPv#Y-;PK79zkRyf|$D_i2Xor(kLa~S6mg_ z+9`MBPAwZ$eg7?fdcq7~C|tWTl~FU`5< zbq$rAx4XgKu4P-BV?J%=y4f;qK-JYwHxC8oj9|9*F0_ZO^m4#ZMn@XWiluW4nZD}b zw3w1+tP zzKh~yjdM8Q>J72CY^#FQ@_PNcI9hB}`n2D+syWoOo>O&X?-M%5VN=LRCgD0L=0Tn5vPLU*#-`8A2I%uf5}s>rT0yjW$dt&S=jvG@at7%}F}uSB80 z9b)+4Cfsn5xX~;+vZU=$zzc<&GlyV#5{zp3RVDhXNK@~~b!Ba|R_?iH9EQ`dTrY1I zok4KKZELd-=(7yv&C=#*QXejiQgaABRn}eq>c&ARCtn+>q)VJk=E+CKWvftEJs8y}I^?Hrb2h%BA z=+5D?;v6&%=}cVJaV6sTRY7TMBRyESO{Ka)Dr1x*_Nn$+$@Fuz=9z7&!HS+8JdKqt zl+|if%&}IM&PEV!{I=MnM~nVux8gf3p@<|CW@p^3ELyv!Yb&NHZ0B>KMX?_Ise-e* z+JHP{yZQXYVGA91l~dEjyrI_e+wIb8+LN{w_}z`xn=AR_a>g|d)!w?^>Nub{6Lq)4 z6w!cKyQM=d_8M@RPJFIDpLe+GU?qAe+U7VDB4%N_1zBC18Qa!FQ3fMulyKh(K z6IJK(dZr9#{ED7#WT?Sva_Sam4BtKPTjQxH@%>GscI>zF6>&Z4E7razE|7WOLh1&) zls7_IpVkW=TY>8u3$E$6|8OTdvW|c?di80zS ztzmgQ8YtpcpDfoc1r@82Ji8v4JaXI63wMx5b@`R-Zu;taK)I(ia#ZnaO+Y+_bvi6P zt33;?MPFJSh3U}S$@Q#Jt!??*v{5LRww>}=lbnLmooyCr!P;=#$?h19aBcH_O5=HM zdp>ANdevxGGQxQ`-dVMPSv0%ruuxMvqdphR(&C>KX-aRXEid^U8%&Gqr)W44a4fQz zNX*aVkBV}f5ra7n(~eb(xhi%AHvaeG43TCK=>vO)ywsO)YPirJ3BY&8WO|9AP z3TYLmVpm-b_@#!rSlN9?bV01!vveH^!l?WpD5Heow8fy3U$M>Cyt5qCPxO#+0BWThT>j&Rj2A&8kec(p}C`0 zW@+Fy804k1=|-*W^|l*mXckOkqn6KR+bs$;iyxYUB9qA?#~@qVPSyosazZlf8p2c= ziSI+lCBcJzL2XoyU z7rz;%+WZ-%o<%9uxa$8?`R}*@eU~lX5ohFQIr#oSt= zOwWq3oy)XDDJv)=!LvFo)ttj&Ue5PN%dBxOwz)P_$QI8-S!|r(tD7wqmUT%oSDp&r z!o^HsH>)ue+I*i`&w`Ox%bqEJx~b-jQZJ(iPN=v@S}gf9Q_a*4g|^+C=SxF%?O}Jy z>y2MIEUHq@ceM4kYUJ|EntRIXMY+r^?QC_hSx{45-}Jem+*!2p!926~_f|c>_z{l;Fhns{#P7AQ{QZtPRBzjN67);;g@Ysp?$R&;5fpB?kPpiHIHwR62%tk>Fw zS&_|F7T#9bdb{SSsOIaLgPGTq?eeg!EiwZ91;y&9l17%rO-mk0y~b*_%w{cLuAaOS zKjx|7X{3qypuebPrh!xvv_^WYh|;cLH>=f!kha~vTG)VkFyz->Z&%+D$~qXKt4*Nvg|Ln z%L;>Blm#cBWSbScJ9n|BuiqJJ+pkC zc5^wS)1QUydPPegHnJ*uu)q`sbhew$F5N@BbJ&!I)uTLG&8Q4CorN%8w|k)&aQj@r zw7^1GCMLxf$IJ<;pM~YM7dr$bO@m^;i6}rHNj%rQ)qtz9YYcf_RcWN|8`mg$!F0Aq zIGwadB_UXL*iqh?P7J+(T<{|)TV;ZIdM0t#>H+I{@vxpl4t_()PinP2u(^v;^Nt`ipm(ewvKN{x6{D(Yz55Aa8l=wkyA5g85czg=Gdev#}T7%XmtG4T9{!~L< zmqWOqbJ;k2wiGUA!~MK~%HsK95NjMqD@0?g;3xpCMr}KvR8Q3GOi~i}LelVMlC&n0 zq>*?R7&fxCO206!A=Qs(1g_XV4rw-5PQ&%rVQNa6);cE-?%icWa$8P!YC5QGo^#s8 zRw%FXJv%?~`wYL})ka2Z$j8C%un^m=aJ~}gbe?p)$dJ9fi#-1$L92ein}>wx8p~9cTnw5Hj>QA z{#r%x>kKUyDSKN@*H24J>WAtq+hv6DxLH3Q7kbZAc#AQnI|-?Tf-~clME~Fkz0FE* zJBrM@6K*;2*4bXQW9SRZQ1vY}AC`CPIh!f7T{=7F?IP+Pq<13Q4>i>3DR_H?gdtgL zvpUIjmUg*e<*l4P?Fu@}&vTigeGmoqbn@x2!mg;yK4@-+{nj2nWG9`mGBt%prnqiF zSVL#uYD~^celaoCzAW=hYcC_lYv78R-bk}bgPJ3LQ(E{b3;kq`Lduz+d zotTci4p^}TFF95o*Q=dTWg)7w!B`Mh?TodTre`g~ETn$1Y{FQnhQ(&7+G&or$K4v` zI;bg-pPA$(IkRtEsdw1=@~rmVVRk2tEj`d?p;qJ+ubMS%y1DN9#hqz7g)#D+ zbm&vHHg2BuWfv;ec9E+|+dYnBd5g$t=z7(3-J56A+96#mgoSly(`$z$TCSB~x|%$v9j3}HZE;EF#+y7O^9b{Tkh zmV+zLoVw><;LOlO27qfxA+Rq>lBpRr$IK0J&4-JAxJ2RKMcy=((_t-6ORze@HUK6f zvXj7)uz2wjsgQIRK!B17(s%0c@*89{n)sQzRH{|EP2lO)ytoLIamhxE%QlmnqFjL= zFz&wD*z!3c*Q<!Tq3@Ya$h0VP_&ApmFx)xDM|RQGcGBNWlH(S>kv0ZqUx`y7OIEmdanF z{&#f-AnqV72NH(%T4Ur;8ntuPUNE08xLVsp3GZx<&sF<1OZC-kT^@z2qRgTo_Aw7n z%v{E(R5?jO!ElL2*}_tn(nz6!?qIaZ!1t{vVD`Jwz&LngzE$Jgk=mb|=XG_uY^};! zN3+MyRLx&%vb~^M&M7z4-|8EeDU6Z^OdHsrL?FO8s(i2HI zak-J%N2T?nKdP|`HuX)#^aa_jmbziKh-|ZvMxqp`&i@G6D1vQwS<)U#Y7r0iuOM6D z4P=8e9kA`MLN@B2Wq$+N?ji#SvH`Z=sP{$H3Gmkr9YyH(kbt`p>|ADaE~$$_jkksA zVc*Cuc8%I}aM)&rMhL#GWqX@OVQ#gHHFx4w;K9-yqACXBt_Gfc6mtrH7*FeNvAd%) z=A2%@q^-|~jlA!dU7tu^Rbq9e4-CDJ12n*HVs$qVbHHDlDkYvwa3hPVk< z)3aQ(HfN+|IJzTas2s+-!78qs=c+TG zn8U+xmSYX-yss6)o*8(9*~AiB3*I^-m{ckSJ$I<{St{R&&m9FW_B zX1GzdbJ(@3;c2~DO!{lhZ3O0av&>}LGtCTwY}Gu7<6XH8fgj1AP88R$4gH+)a-+G0 zbg30}Q9d*ZG?WyLLP3}dGnVV_*<7%lFx|XAo}W5FP~cI-w2Z~)*=BZ9ff}7N{nIuKw?0ju zgCm@$*0bfHxmJ48)C}xJ&8s2#@SuW%z9Jm0MW{&G&UrH1Ay-#R+ZXj+k11HF0NXrN zQAJ?7&o;PaX>NK-DcB>uC2wE@hrMoqjOyzSyMt%&c@1He{Ph)9ltpJ*L9t zvi6+m?phf~-IsYvIt4EB6?gm1CGz^CpjWzaE{x4gw^`}H1~_Z#3SXPbMggec6R-YFQ4kS|N_xU(+Q3I z%}#c$%;aN5*mVM!KR2sZX?hyT{t)3Cz9ToP`BtG8xKzF};#&23u66~-vs=W`)=+VDEzI^p z*M>Y!3EdUPuMoF~U*(zVuTQ}9oSKV-2q>Ztw zZ%>7MLAQcnJj`s`({5i?8&ly;PFFfe9er|9 zmb4JgYFqXw?A@G?0vu+J^5G80R$KfL@!ZAU;TZb-33YU z<7U1=3mHRL4vsm0ddke#oqXxUROm4-4mCsd+WJy9x1GT5IYLt^SSvM?EiX}`Vp8=) zB)Dp3=8I!PTIqaW(kG)T4a?(*g=hWJ-{j@ada9Stbf}IBy%n`r@*}t1+1Xug+3Gg- z;Gwgtag*LPn<%9vaLmacGRHD+?bgth!{FI6y5c?qCnF)F&C)rsU8_{WwYxkodXzbB zweqOttQ5V_)6>(6wMA9CtTWu3Z1>D9N9K4c?-qP_WmU|HoFO>bUi8#MYkF#z*`{a8 zn!~pQ`PeN`^H#1%BNS~m$ZF=gj6%u!WGjVRP7%XtZ(jEuG0T<3>1I1E<~xi+Sxl*z)a_Q0cDqj<9!1 z`Y69N&-0aD?vI65Cu26+9e%Vu46BAjFWALVvS$uu_Y6zzO=?q>=}r%|Amf&DV3%91 zty_irEOYMV3!~|z?9bCh&lz!o*Dp)*x>*c6>H27~kQ)eWOOr_&Coo2XPaky`U zsC3ze8-$3M>Kw$`1r)30&e>2J^2T3ts5N)uIMljr+Lr8kM;+R!^K>LTW78YKw;cs& z#zH4wcE)U1R~y|*tC5xYJT+`j-KM`kPR84L1$9~d^mf2@nOvpU(fXsE=WgbWhEv%U z5O}Klj&EpzxHYRi+#ABF&}+Al*5+XM#}&AqP-9DIKnp~VmhJ2S*OM$4tHtt6^9Gx7 zQ0a~`^2u#yy6sY9)e_|m&Ys&q{*QF2pkx~?ua-GzoKdrPw8&1V;yBYo^5yL0*z9lx zZl-X#p#p(o**ldoXIGZ;{qiASG8@M{>tz4l$(yVb^@Aiw$Nv13?j5cHa2`3cce#`bY!F&Q2gX~~z zj|y$S0vyO$T}#Yn1ti1i><0%OS_Tvi?F?tDusi5B%lTvI<@&ADs$X2U2mP?6th~NC z-ZYoHzOZ&yvwmk2iY54vwkIx9XUMsUQ09hbT1Xois(sXZhM6n6g@xUMTvA4*aHVce zC%eI+S@(m!SwYSVX|k?{Ew-fi%SL~{$?f){JXiBbc-^2&tD@oLP}Z2I(p}DIaD{ns z+SlqXd@@AGNogc8A$@WCOdX0-9{UAkX^e#LKlY zf|B@}i22yl#|70@3jK?JE^MZaF-qy6nl{n1-xd7i= z@lCsXcCm8bIqmkj-e`Pah>2l1?4lH*q~^`DlIy#RJlu%K%6&3si8CK&9!dFBR4VPR zVq#SEQ?Cack}>~@5FNe?zaNUO_GkO%WV>(E<{&fZ2~25bS`}yoWuvy{yY1aB4Etrr zJLX`ob#mDbduY_s=f=LVFYO-%#R-2^hYD$RLIKdky?acksEaT=88fo ziq`f}>Nmp10SPb~awzdkDL8vfb}V+dAYQ*ZSk1po5SwrBD~Gre?o zgp~jL275+YTFX|>O5f!&dAWJu2Ncut2B*DV>dL*mK9@tf+7RXyqctT?1wQM-mT^`K z#n7Ig&YjX$wB}jUJ*HcJc`;Uy?r$|II8w3KgHM}DG2v*O-=frmeN!Dby#S@dXZsTyBBkf1SU4*%erO}5)H!>N z4FX__+*;Pou1A}#(l8jLo9bC#$lZ1;500)fhiuwC2)TB(TjY@zlRY(%$H3KKCGS}s z+Ai3VFEp+`YTv4q^0trKix8dBert7k1BL8xQ#JE$Rj5^m>03XT( z^apIcwp%q(-%kkZRd|e#Uuq_K3KgA_yq5>RJ7#NX^PFqB~rcCwrmr^qq#n}cWyDKEyj)J?zCP*AG84@F&;ZqRi19mL#fGSvOG#7 z4k21v=gP(~v@yFq4%X_rFzX)qPK^F*`{+Rk(~;`*q(Mv*@a7; za_odYxxLz|V@PFF$>f#O)*J^thf~&cZD*{uJR-~HjxIa=t}k`DRWM0UOwB0Pv53LA zYU(J+M{mtNlwqx+y&i2AdUmw6YvbNxMY2AoNBm%tS%rG%T&%87`D}Z*VMm>9x65zc zHdE32`?1oeSM@1;!KNF%xXAP69yJIzEWc@$J=3$pWg7WJGiygk7yVj`)nHC`&Q@-a zU(SboMF{dJf8H||oyn{UJF74Y+=09Az?z@SNbS{-I*jKz1bA$%Lx&xfMsi_!M3_FG z4$b1;5Dj<$_?v=NGT=Vl-=0-e>fY?i8A+`>FnJ!j$FQk7CKB|9Y-UV#xt+EBUN0Ki{wyOG_UmcZGm8DfW?sWtK6gx1Wn=vM89T;STz^hy zZE6E=ijwWF`N~XMAH!B`0y``h7w5${9NPZztGjWj+n+64n(xYrmO?^IIM-_4XIgHAHnODt zouWb?B^!M2Gw-a)|JRzw*@5P*(EjhykK)N%Iriyu^s=ql!Doa^D4Oqo7B+735&e)q z#gu(Nb?Kb?7e%=+ILm>S@&h^0mDD>$7UW=q=C6NXbyJ(jrmpJ2DfQ2k?0NF(`F+xJ z-2XTJb;G5J0g`c6p{)eEW2e?&qED!~Y|+Rj=Rna!R!yex{OgOwrrw#+>M^t(n&x}V zUSFl2ea&2b`jpH&^|yZ}zo!00d0G&9cIu(Q->H97XnPyRf3cFsAAkEDKgS(lqKv(t z$eu1QP3`#!wc5WBAHy#!$1_hc82Pvu`^KBPt$)Fw&rhh?Vf()MQIS{J0n+@( zTDyQ^+_@8MG>?bSwRi#jH_9h!1RB{Ps?am zKH|yKht%C$_&K9!UVwkEjTA4qHNv!S4M>F&P@KicqhpO;O)Zr{^~WK%C|@yQmFGyQndF1Yf=(!90y{P^RC z)Vs%XM&4gJo+c}s)Qh$$*(anXM#J~ORf5Ua2dV$~j|A!9ae^a1_9K+L{*IAiQt+O< z`WBjFqSw|0<-gv4Q}_P&-D7~S%pxXtpFRPR_#SMcmii7LZ4*X~8)l5Fbt;n*jtsX%9K0*plTkE*8yf6MH z3{>Y}f4N*|&({y{Q{>)$el-MH?0)m9lF61zwp``!#m#qK5;lzRFIyfX6Rt2B4Ezij zKagF#b^pjkU#I}#Ztt1KcLdEYjBAW6@4kr4 zXu^zsi++2+jpz6jzfZkr6OBp^y3iKBpr$Gp9i}J6)St*Pe|`thhvYWE=$gHMjz@hT z@y0P3MysUJ8~pNZ*r=aqv;?HL0~C>%7b3!S)h}*sTtH;Me~7$XXGCfUoPt*A z5Q+QY)nw@rEyIuC#v{r~co9O^zmFR~)$Nq#d04xnK;HFmS06S68i98L<3sr2m2Rsk zGWtd2PC*t+C3F7-NP$Ipmwb)S$txmH<^m62JBW#i|2~>(#4`QhH2cnlhww2xv68o;-cM2~yAWdlI~szv|5>O3*wDH!D#s;Uqxqp)F6TwI_q;S3jgyo`w^% zN-2K`x{cnn)a9qtK@T=g7^J|2fL)E$VIR;) zF+-Ki;qtSoBQhW!fxI5A+()NG_xB;1=ZBQ#s7T0*{}Q?ULn`8S{LKeo2I+clUDPLvlJJwfboN@bmUv?!>*-L35^zTw5KSW9 z)#N8AXE67rmH-Un>UIi`sCYSqEMUQqRv=6Q_7E0h-Pem{e#H1~CM6D7X<8pKDNalw z<>>_0zh>&Ex`^*UlPM>)2V*IP7Na`i2U7z!RqxMJU9R8!kYZ*6^2>;+0g`O>1fFB? zjO)|I;lh!}rW%L`CIK)bH3yfkK27=pkMl+w*Y_s6V_tQ*mrkyoUs+S| z{aD2F`%kg-aubQ(5oG%L7fj-I*ToP?=6Bx(Y!0{a?mHv2|8sIL#2r3N?e3OHXg8TD z=yviglBm954%i(mMgi$aYyr>FPY_Km%ft#|83-3+^7ie=-=2sL0_5b0bPsw(>=B7( z^5e&k@z+R%ftKs7c_!S^-I0hsz5$B*i|u)Sr-m-98Mp)p(+h3@8}{_C%rm|Rf2?$r zJo2GZMj+^g;yPSfB86 zR-}_V%^DXA<#lfz-CB1VwpYWad|XXXx`DvPlLS4LFPlMbCVY#eDBNCa?f4Y=ebRySfdb{m%NKBm1zwPh1C`F_&k!%3h;|gvPq?@XDnt`}pStLj zUT)WK?;>hJ3`&njGk%Zk<_$+)K`+|u8y&f>*T=m^aC7hID)8KhzTeQCO!I97ml4@Z zpqxniP*Ra^{YVX%;9LyKYu_O_2XKOKVA5}20n+b;;NB*aK!A)vpb&Nc)%k&jMe`Gg z(&;jx>m09y0c$2G@V7*n5>F1a<$kP4-*|@xgD@DZkmbx){W}zhMuS4@28fSO7hwWQ zK_6tDuo#4qLI24qf5gxi<6hSGlAvtln9RSqEOI_?1pAxIiu!-qIrjCQa9_trXk~Pu z2@7^x=Is$ViMO*9?GN?|=U<1q|7|>ovEjDO4>!SYQ5U~QM${X%P7%DmP6ukMvQmcpMMWl+17ft+n zX+`9U9LfZMgu35mmHOk4RBV9x43I_^81iE*izPFM`6jl%d;{fT&_?(j5e|aoFM)-# z@OX1wPs0_;U)}t-sq;NrMcW!prU?d+Nw)>tD zdBnbly&+Tj_n%+}VMCtsYj8G`P%+%p2A~ zI)TC8FCAdems3R3tIqIW{|#Hs|MTC&g!ylbPdIW%g}25Z_>wS)U_75d(AQsfp%Z9$ z9(NfTl@7_$pWox}Lcb%(y#RnrF5KpY2^0Zv|M^z}aGvNT-@UN|#x!BFFj%x?hpI@%r02}l9`T8rP$+`4q^Cc{bc<0MZ8IXOy(6i^4xy;`4=)h0h9^M zGa*pqD!)wO`u@+qT&`&{&im+V^yy8C@X+?tb!#!BOUE%)xEz6pRg#1MVh>)-5c)Xm zWOTP_N1{Z5P9Q$~HzFs8fnz$dDnTH`kMZSW;X1#2`9=gTZ%2Sj;k3rRLK7MbXtx_C z=0WT)QOoCd_rrW3$l!ZFXE8?fp-4VNYa|2z4*d|==9fImH(2%i&QlhAb_kR1*hH`O zDfLq{6m%BRhvH8}5AxGxu%8mHh0OLggUBxQFy)IL5?s~Qk{X?XAD1Uc^Xuepg2P6G zKbEU0P*#zRl2g%i$t1~#V(PNC6p`5D*(U7Wbt2d8`4b?!zH^<@THj+T&l>p`Bg9q& z8A?^lg>zeSj_||D38Br3Ob!RAl87oR7CqiW4ff|3^KL2o8o??YzT4GFmiQK^ljj%^ zcCYIOM4#~fZ;`iz=$eE`aQ4bc+7QMmG8`wbLpz@QLU<1>?T+bq`p>63yWmyMLhtc) z_32YgMqncS`4=(|KmHVH@_6_##NP>gpPw?HKZ5u^ef%M!`|3V;4}Z&l&M*@AN9N?fil zMTZfGk96{4$D?CKy(7md*^0MdMg4l40rly2_^u<6a~I9`PSJGf^Tm{3q0ZCgEE9W4 zGD|WSNX07|GmaGfkc%C24}$_x|3rf%S4=!?a{eATor}joirD&+6LrV0{`?C$m@vbD z@3>Bt%=O{CMvIF4Xh?Tg(m?urab_=ToZ_{CILN#*HqjL>ov%8uE9MC9i_r>!Xn{ zzX^h}6Y?0@`heXJvx>a^t|v8>P7w>xJA}gujvtvH$=wlnF+)V?Led{lH&SCqwBq#` z4=uBR@$Nhf5DFJ8F-GiuQX9eMrM*Iq&A zmrV=2tE**9jN!cuL*QUEhgTe|o^^b@ANxJ^k!;xQr7yUi-+t#hu`9|EfPH1`?{q`D zxWn5-iu>B8Uc+3~x~cr??9W4~Z)G`*OIe`MXs)+hbF$!6jm!1W!>WnPdR>zAD6 ze?NV6ulgn+72f#x6mgftIqA(_FJufnd_=RN?i)AR@h=$SN*CiH?#R(giW|jhkoznG z(#vZKmz{8DDSrNmCQXwwn<4=>#8U>AlRFq)1uO;eZssX+b-5!k(P_Id9OP;tZXBxY zsi|i#G&LZ^11?4C_Xh~Q|CkaD-F5NqN8;uboihCQ3RbeK7p>Eyb(;9a>X*wVY8Ky= zx4ZJCqV0u@12m3qLzjp-vAyx8;lhvi(l?~th>Bz*$vh#tYX$u9jV1w}e>liz#)DY5{HuLZvXoYhqYs(_m1S(7`71_ zZ$jH3gOEu)eS|C*iLnZKOt|&u>y$4$5Hs>n9AThn{SiO-#dRXRGL8zNe$gEMc6ADg zj?mr7z7C|>;OpaG$?UJ3Fxah_2fj`O0(Nw1Mh_yWM6V^+0h#V)*r@YcTLKiqV%JHh*S$KSy{B!vwWCknQa=fsi*-+b%0 zEbQDVIG`j$Vr3W7l05l%MU0znEZLYCfMmj7ComT+(#08uU}=0+;TL>}RQF^hPA@k>D*7Q3qsS+M05NxUx6a?9&%jyYg7O>nM4%me9*|cM z2a6Rzl!_i*iDA?megh!|qS(=oPyhP(c}bLpzkPo9>6hQ%Lq$fKeSAVlSelTO`p=6m zpO2N*&!3O0)u-Q+N4SRWo__xM_y0`)yRIYNmLht4>N4Rw&|{uY|N8B}fBot6(?2qI z+I3K?m=+t_32r=b7(AIm3@oBg{~dkf0ztPgZD;oe+{?Kp2c0-C5+`KXFmL;IXTQC) z!KCiaK!Q{N9iHEy7C9SU-XQlx%sbvXCcWIgy*W|h@L?09e>}^G_K`;fDp(p7yS-oB zlHx=4kBedv6N>JRcw8SWq2vH52*CtTNP78*ZvOG>4|hcT#>u1;CO82Y&Q!G2Xmo62 zEM7!SAzwWG8ii#gZCp*mp=ifd*{q*~<@1JkDQ_V)W^N2c^hyRH{%g;Gn;-9_G_8;Vb-g}&O zT*G&~+TFeocwUcY)FisN?}3Lx<{Di3pA*I|PyE;Z6by;qPQqM0Y&RaifUV^8HRNHn z5wZBzuEg_>0S6P^i7ig>&n0e-9>enl$a)q}$t#~wyR3`hKH zjpEZyeTHHI7W~@}$qZ zL8ATpkRpnyyYWa4HAHA*2QCf;34SGK0vk?{2yl9M3kM^YAngTo#2GY!z#S#VXm@Ap zin|f?h;{06s$L`VTLy<`a&&5kH;zIcg z!T6uAkIEy}yRHf2{twr5M>Mai`s9ZZ(l`(?;`6GY1XTEjj zS8y^4niph15!HzAxMD{{%5G*X zM?ZWyUDq6gFS(trPs!DkOeCW02oJdIM*_$AvUxe#TeG-dfb8z1+|K?FpwNDU->mw_xwkEhXX$dlly9h4~&X+qNx<}%Yfgv@@=Hz63!mdRW7r;?5Mo_RB=5(1m6uZay^q2Lkl@#dzB_^= zkViH(6qNj;@DX6O$l3px&devI}?XojpqM&~0Yu$|-x%;_aK;02iMN;F%Y{yNX z^>UF&7eMR|aH&Mvizs@JgaCU$SWEz)h+^xley^cJACNZ)5gtJbCVsekL6k-CED7L4 z5Y#DpJ^6l3_Jec;QG7mJ2`^Dk;4Ckv6RZBOw+2i++hT_E;zx9OiC`Du&HhF-NEdiS zI_Q|?fLYO(*OBWgQH-VJAoUX>xo;k85eN|#OcJ;d=S43SsnG~nR0KuXanvoS_)Yox zw|H}IVf)DpBTWC=fG?u#FC*$O9o%Ad{fBXqwE}CboBA|bC(gxPzNP3OMa#W#z>$UK z;_mnEYg0nNL88utvmUg?K6VaU2_rld8UccKPQ;6EsoNxL6rA`J$MZrL#wjvOY+M{q z|IawCKJo^~fr^AIvLlIWP1NYOr(_OrZGV6gv=E{JeWSeMK1c>NvxZz55Nkd7oY#>K}MtAtj8O5Ocokq_UapDwC9SkWTw z-Se-)KZx9k0YF8*2M;I`{y%%~y4FULtPB6=D#|QofHsnKKG1EuX&bwlWn*u^J<}i9 zJSC}wH4PF=61JIf@5|c1_P>2&-y4zVtSqTO;I?~U&1yqcR%T>mWW<}1k&*ZBWAo_s z544DVWIPr*ynX9FF`uIlF~i9t?Fe2MO-;D5pnK7Ekw_}YsRH-N2TGkcfl`!mS}LJg9Zpu?9 zgGvrpBY2Srk7GE$QejNv|PB7yo{V zID`|NR`fR&=YU~eql=Hpi^wNudK0Fd7_QuSUNLh9JylXT52;2>F0sJhGQ}`4rec&xYpf>2i!(t8 zBQ`dor=uaFw7@siCHBmTaHc`(94nrwi^ixpD`UYj9bF?nBMH-`NH;>`O9|aYy=VtF zo53)dpe1tX$R^1fK&nW{vlWs;pUTRNvxbG9)vxk*`0&ZYL6&b@?aLVL3(5$JLd(%W z)2~9)niAY;^Cv#wy?FCviw?%)F{xszgiI7Nj!}&G@y^re(Zi@!DwjA0VU0mT(py{o z`R89=s!|vm%%%@G5(Z2KOMM3GnylF+FfP?%mBixFLm)MuB=WL<=1~S41B3|)5E~$_ zf!N#(>;TC_{)gfW3$?247yThj7zwA>lswXB#_^*r9=6Bg-$neLtO^Pq2%RQn*>Q2>KtS`%uiN17R6(`45?b zlfF&*ttZxBR@%+x2cN>;@0Dn;>cH8p9tg^9@d{@`3> zdgo7T@{_v!w;}&+&g(m++oc+iN~>NdwF;HeLAkYAYj4(?_e-VClHbQ=H8oEM9m>J$ z^=X+ED=G|3YLp*#-xm;L7n43pm*C!E5DI5F142ZVi=TK6HCPM@05y+;s(RKFO5XiqoUR$`(BJCUiJ- zOK~(lc|bXb=@{$efzNs*rJ)R8py1G953>~+s9c)fra6H)R@YF_m-Le{RLXGtZ8Yu; zqMwkVe-IBx9$BIW7>@*_%4++c#f~icBis+YVkgP^gp!}1!+a4_N!df!t1nVLbVb7N zT`!q*#{yEOj=|^6S>*2qQUt;8Aql* zcscsl0Mcf@K-{TA-ZG*z5Kz?%Gk3Wgi-x?fh;evFY5an3OnSf2Yh-f|Jx1F1*TYPB16-1XP(^%}LL z*{H;gQmxjnmCN03FHX9pQnTTXmc?c!@CzZ(^oVIJn!6wF5Hs}-7G0#G8^NM#7UAkZ z0XBil$_(VH#d1hGfcR)WIJh&=O9kJ^^dw{cqE@VN#r0y9|84Mpo3qFIx~NrvVt)?t z07!hRa4xXdIg$_y97U%u$bc=s6HLfefenJM@ENVJyVHWzq~v^7qiMt)8X&`YbcL-v z_optoKWA=*k#fDVS*zY5WpNfP1R7Ydo*1M|y2B1?Di}lhV^emaedpnH_I0=J=IP9`(xn0+1DUB+X zhun94qG-DC?LyF0UvdG^ZoSs-RjRE@yIyVdOTALkZq?#A?sWR4O5AUk`?XrNQknxw zz6=0O^-#ml+`Vvzmt=3*fuD<1bR+Onp-Esu>BodGk8$DR{!9&R)h~>LvcOf!^;s&G zE5&->jxw=_xZdUJLR(^-%OR3LZ zN_BRJvThY+-5AK)M;fcs=z^ivWh8yTdZvx=!fwEHjS`cQQNF`uG>$pkfoWUm!YQtX zYV!PJQ>55C9rUNXGb=%^+^l_|H#Mw{&1^Ar=v39Z14u=#iXKzqVXC|Wc4YsM%Oe{u zR>**RQ%k+~JeFMaOT$GXKNmtwI-ORz*KhUfl}@cxZdQ8bS_w|dq}_;1jdr!&YnA91 z!$ckvk27BeAyTI_D9lZ`ODYSU0}2DyFC~@cz zO|Z<1A^x2ex9ZKet>Uwu2i@~v#gzsBspL%iPx;(h&OZ#&}L>l9Sy zAl^|QAzE-ZA{eYN!40qCg5K|NvV*Va<=d972z9A7&lb~!SO&&D2|eedJsB@9aLrT% z%>AX{G2667{ghk@gJ6M6997||iRC-Tq|%nx-|1WP%8f>&+-jE^-A<*KG}@hZz1Qs3nn}GM zx8k_mso;rWBuS3NO#1T+1&E4nY4n?$^m*uak&12<{oaO4GysL)5ft{smxpnNlT+;9 z&vBAls8h#Wwl~Z5&1&h7-$|~1D%-bEDPNFS@kDTGQpMZ$6nCgJbVJu4i zsD3H-t`c(j@#Dv${iOpLs3lL$(IeM(&=dO6HstGw7)>j@Ib`pRIuSClhT<`~dz$0p zQKyJJrPCizDCm_;f7T!cLR|4NeOnx!y4Hl6nC;>6qFluc31VvDVa8_uhC17WoqW30 z36a;h@E0d&360afKIcT`5TGkUZI~gtfVUgy`LZxkp*NGi9PS{FyDTHRW;UMeS*a?)y*%cVH(mP?&VtJbY{+kJPoTC8OjeHoXqGfEmA z=k9?!tW3A-8_vs$Kt*@xnD{AvmR)pQC!cJkyjg1Ee}6nW{$@@j?PD(AVdFb&tfmz# zQ2=UYM~0@glxqc5z1kXnYuNbp(|-UN^NG0$e!*3WF4|SF`HHAl9l}fVZH-gHwMDjL^b$p7W8LA0I-pVD>A6GXJ6 z<(vggyH@{+;t(@g{KwAeMRGZ!la%nX7B7Bt1%^JI?FjN*rhB;df-gZrP5_Z!gDCf8@RLJO_27kG`kTwKCTNnq2loDJKOl*K?ymtDw~xICpB^pgW^MHxVU+|cpyDMi4Yd2%v)E;b?%niO}_;nA&LF|@{Jmu0Z$wh} z>Br>Z>d+U(^WqqVtw04w{OAjhP4vjM!SsZFv@QM{+u~?X7~_B{fh1AOq(J$Yu27$!K(P%CvC+NqStIC%&Ta7B*YTpH0~tl)gbSGt%YA=0HFxwY2d! z47^;M^l1R5c*8v>`59H>eZlMyB)KEtcX4)<$E;Kk8Khs=r=3+DFKqo-3$rSe~KG^51;&kau5h9hY`>oddftHqU9lHLs|FlpoJUNYV z%aBXlTX%FRrS5eT$-cyLIQl6W;!5A^!M~&;>DG$5MeD9xh9p6~BVn`Dob<;SMTwc$uD4W=pR&^A73yv);+B&3c_m z`>89Q(Pl=I8DC_S=A5j74)ejo_Xvm%kxei8oii_eIk-MVO^@Pr(P^M22Bs45IrMuP zEQCzc)tSj*eVzeHY0r|bFu~F=wIH+6D7-Z(d#m1iV3dn~AutNn3lyBM?Tdt4MlSkADBVTUi=~z-3SyV zy9!kD=ppT_&&mH{!78Mos$zHfpo|<;jm^^6y|w&$f^Fm{YJ$xKD>EnltpkeNOh^x# zS$MYdJfODOri1_i9deR$fRmXUokpL~&y@`R6I{~`$BG_^Xh+?$#&_^Upe}m7zlWR? z>mHT!tb1yr`rpqs?xIoe8|ogee+g@4_hms}w==U2QEU{%3NQgKcW=&UrkHbGo0+ai z1}KtMnmKU-z8u%)>96w{OS&Ay)vU@4k}f0L=dWSa`+%8DZ!F!8&qlEi#OE@Qy;{4` zu6Np{cDLF=;`3Gq|KIL)>a}J&E_W-XTBB6%WBII^M^b4qkcISC&yiSN(xx#t+3o-` zv5sk6q@tTOjdZs9N~RIpUsdurR7#n9UyQFItY2o&il)R@eQgYz=oh0CVVv>T1N`xy zwORGm7-((Ha9is*g1R~}S!i%N*4MltLRCKfEuL$x#Z6Zrr zVHjz?Gjl`6P<_qWu3U+wZ#=z4k1|G1-7WXz{TOHSaIakS;{W~M?r(GH@2c`Yb`cp~ zOolM%NkSL4W_=p!hW~8{ou#=luPaG1DbQg2_W=7FL0>sB#EgYfygzpFbsACyd4;de>r(S{g}{y1N$$+Ve_|rL{KsQm^|2GNEq0DnGNN__=QJDzFO!8zFAQ% zN?sHIxvujgRgc&%5U|T(x;LM1ApZ#6{))@GIb7gF!fHg3lO^Ikf z`vMaHvD~uarm4^BwL9f?;0>Lt=FnJdOZvM<3aLu>4dD%UHmd?2lm&*Mh=o*Xjpkii zSmG3GutxD3;n&`|P-`W#j}FAiZ@Le;uxz=BqlIz5RcrRU&1$*Zk9*B#rH-5HYUOH@ z)Nrjxw_Amb@5!G3~u2!HF z?WK#1&fmx50;M2KIar;WesSNb$M#HUgrZ*<8JRxh!bVA4>EqIjS|3>%x@E+EASk)q zX?L2PUIUP++=*MgW~uC59B=WHNAincBhxdDj&f5!4;?L1(M_VGM-Ksy+v^N}YnCNtG=)^!4m+2(cZeWE! z4FBOEMXOfg6#cl|dh1TOWzXyJ`sb~^h&-_5%Q(X&VpiT)+VJ}LJ{eMkX+(2=5?zii zq61H5< zn6I@!f}*S>Oez0`I@Y7k^@Kk}JO^!jGezv{BE(t-RrMEUr790JRLKrdWJG5r;lcn`meFcirV)?(Y#xDOy zAK)eLU7R6PBn^%C-OSOST%4RB8Q09wr#hd(2Xw(#{Y>8{d;<{dD2G9ZH;65QIr!Z}{y@3HqkpuFv8Q^4dkONo{urK~Wa0R8fz8 z{@_O`-WlnZ(h4c9TDe*kySOg~9H#)!&d8Z?84!Q|AQZM|(ZZ*V$AiwrbTsyY$LRAb zd4#v)NrEeNX|^M}iP8;F_JK}A?GdStLopHA_Pu=*#z^H2}Y&mDd3NR(E<`X_cj8tU@OyWLMQP zM4XyXD~_3yZ1Ih1i_N%(iq=7)6C;8Ra;LhBY-_lW&LNBnc%X|OWyp7S*cj%~`6#qD zrrPvA^dGfXE|-gvX8|d5sJzMDa&Mukd2jLD<+a%_m!F0g5w1#dR=mg^pZ8=a7yZKP z-C%!mt$rJ&dbQQ=SCGA{-l)|3m1eb5ueKYdUbohWlepjRHY)A%AGw2|G(xbGdM%v0 zBkm}(kUDGOMJl@KweXzHGzYuE&0RrSh1w=1th(MYl^L7rNVYiqjaEzU%p&&Dj~{Pi zh5V@DGmG`~2yhk3(5FApGo0JPf2^6V9xZpq$o~Gm5T6d>8FY#)S)4w088h_{&5VT#9)+s|Nin+Yd&2Z%e5C(-k9@*Bo7LtONci1Q!e9QZgI|Mq7_np@FH zf*e1CZluJ5!6haY`A7(OA`>ZmT3D%$;ilIpD}Q@4%f>bo{S3-|1OC#jJ1`p9PUjeIT^;gY&riTYQ28Vh@xGmj7l=K^3E=Dh#c6P-mT9$iT*`4HB8Smmdj1OD^D~F z+@O#}D!OSb2PGGnN6Tt}^)^FS%_?k6v~qpn?Plcr2)h~f-h?wxt=T1c`ac(gal&9J zgaAz^j8h%1XZW8R^O7An5Vl+@R4NDM>Sn3FS^f6hkI(3EHmjOD4`h1deSu7-cOFQZ zhWwL?NfkR&lc*C<01kCTDu-~8W74QsPnUdo2xv&Ly?S#}G28(^HT3+ir<&=R3xHH< ze?_h^+Sd;JjF4Op?a}3RzNA~{V1y^xx5Qr;(&PL0fXTgX(8#**rcp%({${Jz?KL~? zcB9#D){_L6Qk6PLkeUGeCB39nsdNk{sSZzsZufdB1#kKT>Xk-#xhbEA@D{1)3nRSn zl7{x8uMoL%71-urD{>FE2wPPvo2BcWx%nfvcAv5Q+~KM_Tos@25z+V4={X-J7F#-O z*4V{-GdsH^ZxaEY*wNO*`lpK>W2CW*J`7?!qb*$A&PG|~`$L>?5CmDW?-e+1HE zZ7VX3NZ-cH72X}nBFm_MJQGRJ|7<9Wagvq^tHW+bQ~os1PvP2Ug`+4M>H{u$Nnd%W zN_ajsQT7Y(nz~)ds^Q#K64%SsYPrMM z_D&c(67Ot~@0$;(Qpr9-XqsB!hP z+!>9g2&9hBGd5cTlVM(x8G%c1YFh@KBRr8jyO|KyAL5?g8R9PUtgk3;mxwOsUsezYv^ixK&%0tgjNYCf^sjbTost-q8jP1k_+<|)`6;|A|DKa5x5>~9Q-J6+0!$g8bVt63>mOTB7b@8Lh)gmVLx zdhL1{0gb(+-m7<;bIwG4k)7`Fz-eTjyC<$1r77Yf^F=E9!pM9speBJJ8D0oaBZqgR zP-#*QfO>1QoN=kVQcW4z32!wxQi(>unDY4gv5~sGW96vme-NJDfovQdJ(mjbKM+{o z1xiBoc}bdrh?=y>>LgOO^7y;21zjtO0`nfxaZr5$U9abU@SOzSfp?Sl1Mi^9Edp{P zUSpFxU>+Dp*6YgV+&CP*1LnlvRQ8Wh`Z0MXNKGrcY|n`9;sAX}x#CU-|C$|^@a;Iu znLVacIYD~0+C%d4Ix?1*s`Xl6-OFGGAwSb!GZ#!StMc z38-M_pi#AT{fhpSFdccwk*e#??H#GWcs@~FFvlx+mFkKWT@XJy9pO&(U|{ao;P&2u zK0P|x)oL&ksJlI5`#AqZ{$3*ZGkGwXUUUKny8px{^Y8Hg)$qTO!H5NmBRj?kvYS!P zGj(s4ht;kcy|JLboy@C80nY?ui9&A`cnQDzn$`rSA9t&Qz-aMU->nM1nsaDsVu@9O z5#EK?1^U2_Yw^BOpS|i$u9ZNe*Qz)BH6$xW*i5HdtKv?Loz#PPpUCbK6-0EK<>pECDEH1^ad)9ou&SeYA{#WAeX0dWf{fM(C+4 z){YhTY;Kf|;v?0!XrPT<*Ft*(NP1N%RFEIIwOPXzpY3ZUy}H{QAPJB^%U{EyX1H;5ab%*Z1K6J07)*u|qB;<|95eb6b3HXg-dhSXtKws)NT3z_`8}(in z*OlUe(pJ0FXf*3JTuajFHS7HZsl_^9!x==SKMUMDjplRrz#Unh%MO}fq@o)^^ZBv* zU9dTZ&zj;qn18BZ^VgKEJQMu}METCuPD0@Q=-|scP@Mx*cM!Qxq2I`?A5BJQi1^24 zXw72ve$+>H+>0^g${isg_DAF>qgV1={vRCSuFOIJuYEnRT9_JC8EuC;jHbSOBP7r8_`vn_db&dQZ0~gwEBvUK9112Gl!9S^HD` zuh{pu>Vi7IFNCMqp^`Uy9P|#+Ul-B0ilsY5pB8U(rQNK1Eo^wyD&2X>J$R?5|DBio z>+_N`%v%`I`&YhwyDsupITxa@#kFp~Tj^Em)o!I6*W+F(saH$Qa<5-O>KLSt={CB_ z*A@LvLtWO0K6el1A^Jrs`r{D&U0}LY%WB>K=Lk$EL|?u`^vdMYzl$LHJ3xJXKwZ8A z)HedC%XfhK4p2|O_8iyF8qm7q%i553XM^^d=u?XFq6HUkIY^q*etylDw96}Mb3y2O zuiR)<`kiVe>2%vQILCXvPOI0zS<-qfZZ;bfa)RTOW^qE+%;F~-w=WYmE`~;9=iH>b zW61&T1^k>~f z{8|XXRlw!lO~je0zEt*`yL&)LEAWq>_GJ50(!Ib{!|Imd39?Z~lZ#G4YT2*g1~^HH zL}=1H%?!i8%Sx?=oB#F989j4hf-3#3-u)pZ#Fz=I$8JwkfM}A8Kj5B2bG4ucgB@rj z?i+ONtt#LprskqwI4^aoFS#I6zuN57%I$s=xAs<&cHHTgOL3=HX_Q;lN*8JI%9W&A zEqx7%@KPPrU@3Pe+`%KkcS8pjspt!VCBO>4i$2CB>|+X|A&lgSEq6?T{<#;3%v7d0 z<<~zQbf;*^olD#X9RvhHM8*#whvBzl&f?etVz(EYD4 zE%tMH*KtgzI3XYi0hvT9Q3pbZKaO$n3I!Ppskz+%Vw;GNdgfbaNQy%*dr5b6aefM7 zLvNAnBN_K$n}gr-+Yv4hh_lmkPp0v(7ms^h;+waweY}BG+e($|-bx&QcXu<*ChKSU z)*=_al@!-0Q8C8eQctd0(&|V<2V7>JnluWe6M_&o`F+g}PUtRlAs2WrR~y~9i4=ML zW~Ea{h;OA)Eyvxs*2Io^zlDI`X1U#Lw+$yr;w)~`pI_!CKhZ0V*mG0vY9yxDac?eC z(HBDON;b9sUf&y&`>tk6@1*mhk{IJlKg6ARlWL2_ z_TobI1-5)RLAEUl2iA6knDFQ!-4rzw=-TSKEJDkY`kWfNHw)#?M_i+{JsO<2|tN^I?FD=TyKacd?x<)KXv_%$IZAd}HhTI2$hCU{ABJ2r0!2!uG z;<%FnZDH~`nYT;7Fa7Ws*b4p(9El!A@pv3xt}U&OaRuFK^ze~>K%ek~)h;gS8evrh zcd__obz^Du9N$kbkL7VlQLs{M70VTR8+cqS(F={a#TV72+G>~E2&#xH-DWyBhR>I}tNvmJ#(5EB-;wyPY3O$s&?8kHxlwTenKi%0oK8}jf>H{1L#s8=n zGN8wkWWpsxkJs@O9O5UEYxGE+3AaivSqz8^oeM&C&g&2>%EfxIMJ+p=;HN=GV10$o zcRJM)j$FoFWG8P`n&p0i>?O!dSg*wOR?_Y_>epn%gRZ807B`M1%q3sB&lxrN4>(gp z;VeEcoRFU^#enlsTB+Qu^vbmoW=PU*#HB{N+U~VV^viYmz(gGi7(n8$w7>f%0&QaP!VlUA#YZTGlaE_Euf zoz-r;e{C)})Gy48PrambaiSa}Ib@<#*JuFVaP{OhvgpIAQ)hGXoxcSau{{BuGF)4RAoF`mni20EU$ zp!_t*khqI02^;Nh2}ZQqMOa23%;`6J?Q+~K)jQorxf!>b9mXivLRQ&bxh`|g;&B%? zxsyBqJ}o4}i?g|0`A{n&F>p$E@Y5h$I-MFYCP9jNw^2ewFK$c6?ddg4oo1_2FSYu; zxS3pAPKpl#owzPPoCuA%tbnVpSWa<*p9VS6YE&xqMzdCGm&&C|tI|Q_PSQzguq-tI z&vvU*Zy~4Nb!SZRflK}(OgJ5#OK*^V8;t?@QT9+tY5Nl8P;d)3hLP(ln9uv!sGv0pl&R9 zXw5T567=Zk5D-)&aQ z-G1C_;!Y|oWNPJVlGFfaaXnSc%IsPK=XPKrHk`l5uE51~aB8oZvtUalsCMu)$Oc3Q z_JLS&hN4mJmZ5K;hRdCHr`hQ>z@2g@ZuOd_a`)QOz-+KOun;3AgOg!=nj5uXS_P~T zKMgViQr{>eFtXLELK+&~5|&S`q=vsJ6x>J8i~U1?V7#)?L%*R3@WaNBQp8 z0XdO;3HN7FF7bBUC3X&S06LbAH1ZdZgF;hpcHs}GCA}(EfN`l_?=*pMf##asMzas+ zS*zQw!*Q^%&{*AAoFl_tj+L>PLRaEOqY5zF#M-ad?6ljBX1iHW5}=VcbaKdbwIHm%6z9gLxp||UL04{+Gv(Xh zOy1N*H_Msw;+zpjk>|5SEDNYT$FDGBwUGBj`r<5+eOOdVQjy8?xpLK&Lf(UC3-cu1 zmxZ~*@eT7?a&` zos8k7ql==V!6bU0jFZk~ga9cD@!E*`<0Oej{iqB7%}KIB@m}%pGQt@S>@*-EY>JHs zI=B)e#OwSLC6}h}QO#u3pMH$T2?vE?V|>&d@SU{1QTIY0n~Qk)6Rpv;Rm=PGi{*80 zgaXNM;v2Okk$S~(WuuEJ0!=6wi%-#Ppb%ondPD<-ozd&l!P!6@%!}xA?l~puU%Egf z3)8s~osD{f{w4lRxLfBJozubO{YFF?HO7MuPM&YjX>+;Pwn6=PFdE~0&gm)DFi0j# z;EGKhmm&UuH)vn7h%X5E_G!9KV?kz%Hy${pi)+($34*FLt)^Y-jh$ zi#JbqcArN-;k(^e2hoe2mpccj^x#!Q4a%x^w(;Gw=;ij_lb=!Z)=xVxb`E~sSbDZ| zuuFA5d$kvBMX$H^4tAcrd9k$@y?(Rz`qln6ntzIFcXxK5?V*+Jm)pAsMYM`%(e^L+ zBijFY>%|LdYH8~YsNW;{q9?Cj|GKyH{O5z{=T|SDZsXxk+n{Xgrx)9zDRk<|i>;lP z8`0CPms`(?y1nQXYS~+&VuHHp?>}$TBWiC8|9f(<^JoD(j$T*#IQH$w4xV_25!)SPMdiwoRe?%Vo_tBcJBZ?=w z!lwurS;r~CK|fl%=hs0m{AZ|FRYc!f4IjRxcZxPi#`l;qm?XoCjE}&1G=pWN1!La%Tc+WI!C`WCdYS)BhfhJ`Uw;=1snF zR4ls}tb_+Lqjoi#7)hTx!ITd|puCav3p+hY4|CQK--9_#rfWf}<&Z|7KSwj(NB1Bg zN@{$nyfL3uji^M*h1G!|+h_&_1XlG%vP^b>x$p5-6Sgcxd-;1M*r5hxO-gFL$|ho< zyr(RvN_xF_6Is(8+Ch;09oo4=J9lX3T4?7r!Yg69up0qOEpbjf?Y`eSJ;gDvi_@u( za#qghbprikThJAplOImKXQE`!eX5R(MaRdq6FMDVbf;_ZXGfw6EG#IZK2psvTq2NP zcqAJp`>$zOv0o9KTI-BPfFFt;`JSnx4<(rd9dbay8O+(|HQDnq(gRHH7&U`Yf5$rY zRlg66;PYuoqAxR=SClAK!Jk2-t|UWW!Ngi{23>pleEVI$_JnY|{>KQv9(EjlgtZta zYve)dPLC<%iWWmjGz{=y<0rCwhLg1v7g|&FsSwrP`72_AX8n(2f7P->u-Dc%Wm#NwhK{ z&Y*Jc4mnG3HjPLm>5}Fg>CPyxkfeRGCM%GiqO&WUMu5IJd}}*UbXBzclYj8yj?2GH zCKH_YGwm>&;L4Q^t?5s`XLpNeMSq1=EIDkbKF4JuiQy$4@zoy1%}pFEq(;}|NUg2% zutbtL@|_OEaBW6^nXGQWKSM$w8(m*7Ji>ux_-7z$<2A%RVX~YT<;Sad+aYOLBd?0( z2%#Ey0Z9fI67m6kwEb2tcg?8I87bj{qQNXY5>S$l7Y@4#+^X)ZASOwnp%MChX=MO- z0OE=HRt<$m(~+2{YwPSt;zC-w@YQSddEQ4uyRL%YMuhBhOONu7DKcvzy5)-H| z?hXm=(T-+4xj62LW(Jd&gpk)(|NU-_RrY83X^8{(7rt81ch>HGF z3x!AY-}MwFODk#$l7=zeHQxw{RPGB=BWCN?_++xSepq@Ns#A&yb;VR^e^hvc89pT*ZV7nC4+X+yw2d!TWl1KFOu~oVu7JXk**sulvA^co|w4t-^ryS#Z+Lw z$vqTAgEz(@P8wPS7ujK(9zJsa`90?Tq=(PY9qzd7;#b&h<;HX6PuNFa0sCfW!brs! ztj*}Lcm(S>9beL5oJ~jxiv5BW1l)hXUs!S-v#~gq>2%hV5{bludy>G-IhbN&P_-b9 zk$FIymg^BAq_w|NBe2V~z&1^ytrHxgV98xu{;zlZH>M$45tN#qaQ6eEDD4 zEL$aoCz~NvA^AeG4Q9|277)oMv3J07APcT;pPf%H6~VBM*zm)CEVB$-r6(5vrL^;c zT~pdbS!E8tX8kXyQgTbApgC@hxJOc`%(ogWJg4t}kGiDMqcsO|!V+tBq_h|ijWAQ# z^Lu{0vwN_;x4ZS?czbUTn^Q0~JWexOQtWWJy83T05UB|;6g_l}GKJGF>2mQqWGo;9 z!aNluNL;YCj;{TVEoZ>ZQxXuc1Lw>WPadd{9s(ge_*-Q-2qFB3SHSlY?a#!#q>zrZ z@^W!6zk4Dr!;$*sN`-f@uYZz^sir{P^cI+(x7IU?&|^dobihdPFHnc|owI~Mr{r=* zv4Kh+VVxmXCftqv_wjkcXhGq5r!akSFpg<2BKZEz5E3p3a2$9f?p*7$)A(cpB>~$? zJCi;TSLXXMXpL6-R2aXdfcRr-0<{RuElcst^ybSj`G`fGu;do!*LX6#*?qZn@Z{(1 zr^j3S$GdN^`}{fDBgB{D#O7xBgX34b$IZ%dvns?^5KOd%5Q*xIgfRGI$>51@3@yRy z2`)x;xVDcAu>FTAkxD{YoPG5*6vp9OQUOw3=n1rfB^MSf@hS74YEQ33@-*x~3DGRm zq|^@3-Z7e5^ExKV|#Oo3@7u%B%7?UxG0As{Q}Iv&)ldbhr6som13;cpK>3 zxP!Iy3f53Oab*J#6P`a*%w9+6In0}+{##!|S%az@SX-g51TTV3s41y6r&WtR^7{SS z5?9Gn!XT=RrI=9UF>xe=2e85y>>QAgLDOiMpiHY`4}u!>N3cc!2h@-TaYEXs~#)#bHP-b18Btzs`YvY z$8v~B&?p+T^iyeOnoRtUUgyq<<=mCB?|RAHjj79=L|l zJU@a{4GUIiL-WindjS7bJidG}IvI4mH(=`3?BzbsOhKD&_|*lkQMW%$kw-#%3R8BL zmZ#Ppm^PuA_1NCBTn$6TSl*Tu*y!Yw3jk8?HhYU~DQqmGbVW{6DvX!ZaJW+gf zFqqig+P^sGB$vH4f9wg)yV9@`X|9=Jr{#;31!x0WL};Ch<%?GXPrRq>VFuKFf`AIl za(+nu4~4PO59!re0=70Q>tJo-Ltbd}LV$3ybj;AN{EWN;-Kp5rv);RpmqgjE(^IR6 z{EKVB@9r16A^(k8)zjKQ^T+R~Xb?G2g5v}fr`auqoh+U`cu(Tf(_G^wKBD4kRO$D5 zh~43~vKHoY$rF{(T$p%*>LWXtI9YuturIs{|E>Ai*iHlS_b6(R0kYEfa1PM7my}>t8gO3KYK5I@nfahD(>Q3>m#=dgwm} zfCXrv0$FB1qnRwDpHUq1$R1R8z&t!KwM&AmMX?&jjxY?w`vUV0{0?5NFEOq3v2t$)|LF4RFdgJdyXX6mD9d!0b z!acGAH{O`8j3PfT!(HQ$6$8x=G19avWfvBkN=j#u2paX3oB+|v`Ni;CFzq<`1n1FY zZB;o4G>~!`PfI_Ty**@oCh1t^#)St;6&xFxcPtuWBN$G@%Vw4!3WTd?ESYd=NrE@v zy=Kt8gjKNBu84dApOp8~>i=WUlJbXJr^q%xd8IhY3KPreO|L9lU0tV$vAvN_=;1-% zxI_4tl(cZx-8QgyJ!FiMBrbIKZfHo;p>_xIGt3>@Far@@i^t0+Y=kkBPD=9{ZIyiwqv*K1d@hnht<2<)c%6LE7XtnsaUGaEWkPrursVoAi5IeqDf4>+xXn zildlgEUECuqR1_G4nKI(`{@!!0GSIAh{(mAihha5gSa>7`fuQ0 zo*6?*t$@|0*;itRuV9;9`%TW$YlmTHAU@YbnwadY=XR8@TV{?Q?G;}9bNpv2fO7Sc|7=bjzrY)1tA z2Lwu+tvcbL8DhSQ&}X29FR?zgHcUkL`3#p450*US9*Z5S8Nt-N%@o+mVpAic)v57R zr4^3Qj?|h<2E{95Nj8z&w)eM8o`h5}dy`CVFFAW{X)~wTz*Pxbc*C1rss+c%fpzCh zuh4Cndg=8E@L(y&@eImG^Op$+`q1Hw^AX|-D2EKfERoj&Dw3nNqzOM-jiv-?aP0K7 z$Dyj6k_Og$ob-xtA_QXpm)s*AU3n`G1$7k9XbUc_iC5S0kv!>vP;rL0Bw>8oRfR8c zw;6)KPd%Y%d)}a-;2PeWEVKW_8y)M<;HTKG{T?fLU?hrq5A<4DdZ80n=ocT+gB;lkB!G0@3{@O&HT50?E+YTkej; zLc}mRO^zhb+)CG@M^T9ylOXUghomg6dZJ>)gQ-K>DI6Y#C@ueGvP>d1k{FQFNMWQY zeG!oXIT210p(3TCT*{`j96g42Y874`LsV*3}wN*r4FSE!wqlMt9IW=LIk?R^v zR+sz(M~-xg4%!gGI)NnR5^PpHWI2^kllQyCf5;e2+>|^d`&fF5GevF?HZ~)YVQ&)Q z+#IIi8TLcvi9oTG*Xwl%ypx=#50~+?iy_DUnzI-TxB0Xg?~L(9jt`@AEJThesfP%k zCa)nYaD-pR6cVR*(}fFC$F8#rf>{r5p;a}{Pir~h^vDoXTqQt~j{9CMDqUV&MFjY2 z5qY}$o15og(hCsDz*EJ6!-0q+IcS^z<%WsN>dcqVl^Jz_pQKV0P}Gi6k2%MPnHSzr z*}=ej+wBTJ>+vs0HH92e$2(7>AEIWdQYv$-yx>06v_11y-|Rl!ezvoVIAV^f7cnv9 zCuNmJ(I!B2$GrsDHR*{I15kC7H9kEfJjd#kl>X>&l{&tPU|u@LWrj6fz|sL>N{rS^ zeQd&cGt(sTFj40@IT^wI&%O9Bw$Sg*#JuHjq`MLm3klF;k-n6fAVwuxDZR2kjhME-*( z@j0%HR4xz|b7ma}r}HRFh|Z(58>mW7YYf6mK2T_gRcyz+mek=lK~h$9HVOzD(FS8t z)ePpBjv<=9ACEppjyl@hbTlR9<3B+NFpk4yX*AgZt!w0X%o+~cWPFLC@p;Vs(OMj= z(o&%K%YoR4=vREU*{RCtAxnl3@ous^8ty`3c<=yqtl^V`W-1kH9v*)=g~ME&#Y9Vx zuEE3na_uvZB!c^B_b|mk#kg6=2l!mUt7p&lw-1h=Y`s2svxmfhf27#XVmCHLufb-> z$gOA*P-Bfh36iCL_LJ$WaS!Lig^qBwjG54MUT?86^hZk{P!Y<8;8BDmr&mxiMAHo_ z8nEfB&^4fACZ~;N5JP4&HjldT>d(+OD7Bc%K?Ro7U1K`r*E)ZMI4fN>TP1yYAJ+YJXsk^yh>%vw04PYvNQr}?j|ydg9eVOtKuIj3q>2KLnefJd1pd^`NtX`Jt*MH5 zxkF&WAZFPFzY!Cib{LLi#t}HjI3coLq(Nk8S+=>UQ6-cUmWbA;Ws-^ZI_=>f=OT6M^o;%8B?7|Y6yY88i zsB9B@!0YSd-;ztSG{UD>RHR}?o+QYWi`@${k(B6O0m%*a%W&Uq zG`FtYGlUUglRd2{c%{ZOC~8XS`D*FP{swL<@7OALmGAgTbx^>YSw5ir<9to#D1;dr zN^t!PGfsQ@eAb=7Jf)|FaFAhN5-#w7PF7REV-443iH-bRTgZj`Obz6g6?TU6%@?V2 z{VI>wd@)(TRp^|9Rmp1=z~yC|jW#rZH&ZvgKEzZtKN*Tn_U+59g~R>ieGBfTLy09F zSMKrb4r9TZmSZ)*x~*FsPa@$~JLs@d^-V)9_2Bk8YX%ivb%PHZOFi;i9uLquLfz!)D|v9`~h~! zlZ9kMJk)gqc+0Kg`bcXvDn=_F?RbRUUKepekC`mh@PR^KhtrpQe4h62&0ef5%R8_fcELNa{FJ;mBroL2 z;W!v!Ta8nP99VCL$tRp@#3f;RN5}ZER$q$*wTP~;cjlw_agR1dFZ8$gRS?n>u^;>a zlY@Le5F4aBg)|+-Tp_nE1h9ANWuSO{4QS6i3_oi{$5KBzriF&&m|3tC-~g( z6juqY$-g!@VLK#G37&9ElA^eJyvQD<9e|*atS-8yVw*M}f4#=$GbL%Ggv+x52qHC% zI7myBL8Yip&7Eu%Y3wcrDi{g!k_g*V_o!HVSg$xFoAiqT9X+u|5}_@ zR)1AruCfNQ56e3GM68IERhJqJ`o}`pLKMAcybPfWq^yE^wP>fEU{*?DRTPwVhEE*PIX&TXb10NKEZ90=J?US>TdwO1&X$&5 zC*w05Aw~LO@}9oO;r-4fe1Py)CcTZQKTdc<9-H*z6U?>g2!6xM2)Ei#@WH4+m_<;4z8T$fdZvFTYsE zi6Au6OK|7sV2Ik1NWF?a;=abw#grTmyuw2rq>Q_#7d@guy=EOMTAe~tcoXZPtwwEYjn zi0to2ulAO9ULxXT8_#xjpS*bUbZ7T@^b@|@eRUAM*m=2gfJzTuMbx0IYG)hYJ&Rs$ z?>+e$HE;d2gNT)1HA=2Coi^kUT#EBw_a{NC+ha1SEyxgiHZs8qQC#VO^>L(E&T7v0gjYW zH=exOJ=nva8|dZUf&TRGJNr0Yu(h|dPYijs_v+=w60s9spmtP(?{>FEEyQYOkRA~f zA%?v{rxh*H(`}qt+I^1U+2t;(!WhjQcg^l6XUNJ0WlyRG$6k>Nn63%rry`~57;0c@ z{fe^UL?o3)juBi?B2A5DFan_*P!i(iVcr5*G~w_P|dy?Z~qT2M?4tWRhrszwg2$S1V9N+7VGp6*KYF$di=xHdz>uF z<%d^q6X*UG9^88~nuTCzpaMFG3|r{P6z-AaSz!w+#0v-r=MH%`0oRa2^of43wi5aX zGfnx&&9^cckxcj3UGpkhb=X%Xi%a*n<@T&!M<3)?9XqsD(#JJ~0$dt3GB|~iXa8`b zl!*uD!M(F{x{B%voor0TPhzZhz(-!%@zH1+BzdKo)IJhB28#LxlOg31P?*=N1!Fcu zrX&!r+XL)UW4XEc>hlMjbiKP-Wp_~)f+c>k<_D6aj*;IQ!7&c7tgZG26Pg6aYOOcHd3sBG z5CQkxW@yLIG1_)VQ@tiurqmb?sCo)aHen{+p&kIF+*2%xClSnwEm+#l zlvRf`$)T=Ej1DLjx0Biw%MXpRhVEuTZa zhzLm9@87dyKyB#SHRWrbCFp7+Wl<%BoC99?q6jJVI7!}1J``|E;zLfBa77anLXqDOIA`g)45)G4{)6!F6 zeL%0RKbfmUs@QbaEn_zQB6!A%Px4(>r>hsL%>UM^KJc;iHmmW$?qrkT|RXk#= zr6T`d0i(DY(M>Rd7gi%GV@A4D$D3Wtw%N_YFH&~ja7wGbEMBK7f$v$h^Heg zs;y)b>^ETwkWEK`zexN!#exS(e6RrjLB>bPoZIY5!MqWKTbh)ED|mD<{TW>Dsmu&g zc92~}f=)4D_Q(12;r8n(D_olKPa9(x-qtO*GHl zZ-o>ph2?*XPZc$eP@%ee!53VeKh(#^<}Pjws#0T61-M~;ZE5u{lj!g-led(uD8LW( z&?Nwgir7^``h$}UC7+}=L9QWhYWYjqe|htZ>=z5+nlqy;)5-cQ9GL=znmLP1#i4lv z|6P1KxiYeM)h;MgAY9>DJArWkM3Hu8n;1#h8c#E4|O}!G2fAGJ6e+M;TY3tR*q+tU1kGc4xRB@(r z70X7i{O-0Q=m)Ax{wT|(mL?M4>`y6QyI905p$7!_g-w@>2kLS9;ScUJS~*aMoPsX^ z&v`mqHPTXG6giT1kWtdp$1P))o#m6!<~6iXpe!`3sf z8wJVpU>=IK4SHig69v&5>!Dbz5aDKRay~|~JPM+PHj>(zhQ)fUjk5Ff9I9q|i4nru z)cfFc^f4Lpr1xGR`H=NO4SotDIN(GP1>G$P(Zf)a;3ox$X8U`D8{7`Vtpv-QvDDa4|$M%qb2sYCgEi$B=5rjiBZ%r zKOtWm7>(#y={h_p33TmqQq_2pw01-!h%cj|f#S!8fw6G&& z!urdC$@XI!75ncQL*vw~J1xf8t|HxC`z<%1dMG}&p@C|jhC_~qZ@DwX)PM@s!{ThP zJNQrnnt8JuP=ds!6Zkz!r3N)GU1mWc2|bb$WY!VB z2x(dO)fx#FoUjmTT4X3$S5sOIfup@WK2zU`H)0A%3`y$>@sVOjW-+&6R3*AcfglCTr&(gK&a-#$G$e!SDg+d65 z!c7UNU>Ne#hx?VwbNU<(;qDw8y=4`}TE ze?UW~g-f@#dyVQ8rG-Zd1ChKgVZ*^9jrDXUXadw7OpyLH@PPs}F46qKYssR(SIQ=* zX>-1u-DK!vj3EoKLoVScx~f8qn5k6Du~Qn8=w7fmO)vY6>K7g>fNDt6K+stXSd-hJ zXGw6HKGmS1SUm|eEe7C<%~E%)x&pnkC?=IldO`v&sqJKodes|WI0uvh3MUZWMHklM`g@zi<5Ly zCA=c~Te^-iRUrgjvaXW)I#rlzaH_=DYBtaKS{Kout0zzZ7N7kwlz-cCbU{s}YNP#g z&o#gcSjf<8(k09Cgh9nkKu7V?SJ zvUD&?^37xo7zx{1l;w&EIr%6@2L2DW*lC|7E6@y_OfR%|nB9r;JH(rhIa=_Ag(hYTGL291>m}gh|N3jqC<_7C^qjEpFdJi|j?oXz+PP7w6L-VzXpSNCtx4 zeV)IeS|qT)Ay!NFC)4!B1_>tF8H$ zl*|EVfURW>-K~_+Db`8W$iaN7Jx_NJMT~~u(|ki}tfs=4RGVK{#;BT)jgKYt`D~`6 z7CAHRZV|S!|DIu+-H}Ii7QV8pF!oK^efuppAkDXqq-4UfnzrS_V#RmDIT~Q2C-3H) z8LA-@HrSIQRg<#0i|G>)N5aC2g%CVFR|qJ%WoexW3+Ia~f1Wu`|5@^S_%@RfnF4EU ztrsArfXWrcHb;Gn=v^tuxD07g!eW#$Q=Tv~le zS81Um6a^8*(+GzI@L>9Jgp;P4h6p*?aQ5`2I}pX_4d`#lc&m)DZ(5zU32T$a?qj{Q#>Bx;*i0@GtDK z$HN{{?+tr&>=j2@K_o$aJinNZU|t7w%J;IU!V9GlGvv`Gy*&bY34|hQ_+=6GXO^kK zM0{e{Xh*c9Tg|FtFhLcnp>P%IZFUt;2NPAuu0looT0P6EBU?G+*!39jN5#%zxnolJ ziM1oD$9$s0ix`B7&0JoC&JOUmcfU|Kg9Pyfd=~=1P%ZR4&>agr7_ejc?M+R>wy3Ji z_$a>FH5ogkHhPu>7x?bc)ir%!V4Za|w5lMFIb~IpZiO!Hq#4eku%;Q$L1B#-KG64j z{`IfqC6tZe7CLqB=jYGnxfgc8PiwQ z`~O_T&I2r@PMB$q_)r(|xUM{9$H6~KnikVmTAA@|H;WE4ge({#LZBsA56Oe6=4My} zz{!bgUCF&J-2S@7b#j5u1b*K7Le}s36oEyEi6-N%;HE(_B>fhE@Kb0w)u|jB@8b_h zT01%i44?>K0tKc*!WalgonDH>Dr(|N@=Q6Up8Tb38q!{=X9kAdP|r+-vwLRBsh-ii zr61WtKQdCHnkxdq607169JKTpq4k$37lu4pMDl=L8Q9c0wb;{$FaM^grNCDY0xrC| z>d6yh`zfuKmSh*#D#Nb6>N!*TbTC1@SoX(+#`Kp0B7{1@z2i&H)zq}AlwC1;mbgV- znboj8rrxmv?OIcW*^HPsx)jET9~zT;)Nk9euAC-XUUTfG}*Lc}dXdg;3M( z62B-svbw}iMRlR_{3i8*8eL)qzf|y2oQ$gQMi%EgLYiAjOp{e;jS0f+F{f}1iKDLwPplT?R#D%#zMsyKH*;-cmNsRw~y_(S}~ zI>}wxtt|+(A8kwmwu>)JHGwbQSevVSsB1bHidYIULPqzc8X$q;Lz$Fc#wQMHPCW8f)wJxw zoB`N96h{Wh2!*OyOd0?0N#wJD54)EL(1*p!#mptW(*iEETzvkY^Tx+DzMJMZ~H(ruw0IGc1<0c3d_o#`Xt^5qJ- z{J{`C!#Vns9`aDrFX#wqNy8Q#4d!4t`_#Btiz-|rDs?*G6N7ZxgVWccGp~v=e`hyE zrC)$4_8$hQr?cLnbF^+B{ED=?3?JV`zC3$SGXF$iaU%}sw0lmU3&s|jS zTYo>V`t)KX-zV;_*8Fc=e1UG;Kd$nc2;{BQm6{81T_$7bwn-p^kx_1{^yqvaCtUc( zb%?)2GwQH!p-N|bStJS-Is?qV(r@zEFy3P%#ZT5E(a+_RO`lK#TL1YHH<;`r9U)F# z_QMAxyYQnAdRWlgN?4DuZRyp~Bg+6f&bQRUlhlP&SlXv0EU0QT^}Rdr1WsnP=9ada z(_S@1>C(VXaLyK47`a8VpgsfbPfwZ9bF<^w|S2d zr@pI&O^~d^)gjV);?jlHx8edPRXW{@T{PHn0}|&o#UA^?u$O!yEhZQSCQ+?Ku}tV= zdZK%3(Qt^*P=S+f$qWKjW7bJCJEJOM)VD9}H@gbV_uL;4Xcq~x;JVGS`JdG&7YH?p zxk!zMh3;^*BM*tLzCF~I<1IH7WqwYI2ajZn4F#3 zD|I2x1sM(DFx_}%>BcIRwcU|ckBoKYqUFMtn^w_`K{HZejSv(gT(ToUPL0u^EwNN<44b{hz)`6l5k51bw@F$3les+f*)jcUse z|DKY2nc5@&tcB;w zaz=}@WH}`%4u54=6ajgKR7j886Im6EgVO>}6NRT}x^UFU3UW%CQF06obKc!KRu#fJ zhwu-vnOLVA_R48|r37$WV69x^8BH9iDdK+9qd_tr%oO?YogjUgg8XLJ$LoU z^$TQ4|IJuUlYi}rUIMWMh;_1|hWC1Y`97iW%Sg|vX7Vw#-LE$<`cD}VnouCwiNlU zlvyI0Nq?$oRdUXLjo|29s?4Za#JG~QkCOzai7BZ1j$D9dpiDzo@BmmLdgg*Hh{i>- z{i&NEAbvDlTRlJ^o@ocy$|D0iUrQwKzQSci$c(Jk_l8W{g~ieOt{&7wvk{$)rnoTc z2($T^cT=2xA-%MW`LlXUIK=vs!J=tdoXK91KAz{}(Z#s~T&ypDGKuxXxPp%cFqm%3 zz;hZSN{w&Lc8V;+M{a9k6@r4+Vi{#jeX3onps?)N0~8j7)ROf<;ZY#KSfT-@M@hxz zrrZS#cSJQT&<^#78|qjtWAjil$9o4;q-aI=cp4yjNlf?Sf!YvROBW*eqQ4-4RS?ao zQ3ET~DLfzPnsjr$K_3xzrdExRnDv4-o*KF>(cNqGOg5#zls(VaDW6RONToZLs!iZ< z#VGv&7+?lmslY#G#B+B=b;22KpD}s4Y=mdg0o4+jAv>Dq)-(Y7r597n)y!U9X;z3K zpIP6PC59K^Kh1$bjo8 zSffFm%2?-|kUAz3Od)kbtis`3m1xA%iMFFt$~+JUF6=r@ZydCHOnObMoLl zjPv`^DTjF(vrJYNI6}os!(shc@AEjKypDi6WXBg_V`yIlWEzoHlY)+`iQkDQLRE2B z4uzD-uwN->B=uh3?%%iUr2n!|poId}dQVb9PHeA+=n=3|pyxc`+%VDaMuFZ3UGOw<*k0ABtK0+{%vl(=zKJgVq~n&1F`WG0c=aFF55 zihd(wazBD9!H(X{Dx}jhvkp`tqLnX(h=;LVTtWmn^QJO^Mpo6{vK#|t)Fmk!*BuyA zSuFV^KSJ)ZR(~W1GUJNy_-UDtLB?jq8ZsAb+Q_Mf!BFN%C|mUxXh9XUig&ML(@IIL zWwRGLn3HNx)565OwjZ5?b=E^q0ML8xK0Zf8po^%n;IPEYO*ckUQFje3=+%KXfBNCv z&^_fckpn>#(>543TzC%ZX0+Q+OM&|3s_SKpzT$p1nLg7rFKEfDP&h#XLg6%sEWJY4 z%PvsfF5;AGOk*jruCW!X&1@D3=^_)1U2;4JhVuw(Q+2yS#X)WmD@l&>22zl7^zTS{ zhywyE9ywkKixCStBjnPHCElkDk>OXSEIj@ey>zjg%OUegfEY*c<}zu?;gYG??3<+Y z6WsuknvF)V;0ku?^vn)MZ`Rj&28YgZWO76;l%z&-B+wB+DU`Eml{poaW^&CHsPH>S z7op7N%?#4*!MwE?T^Wfl@=U=Q$nzJsNbemSZ|y&UCearH@w2Df{IGzhDdnzmExwKs z9!a+ntDg*4?gX%G(#I9o`T|ymR}&TAqEC}Z*!w}?1JMlWqR?|tPJjZCpBp6dnyn<1_eJ|79+er38m`xE|g!^EF{rmxRJ2E@Kt3jTRjm zSMxSqnRWDC(JMt=a(@oJ7#sJo%5FL3&2env3b=)R}e$1jT9g z1@NW~B8KHdk`|;Im9wh%i7&aS*~7%sPxE~FH0j6iR{zAlzP0qX7!T{A<)E;h zN&+zg=!h6VDNlwJd!opZqcer_R>Me~R8%v^3?w+g;DX93;3LZ7FKbqbSVJoMgpah* z1@D`i<|1?XJxJsejP$Yfb-{>^jn|x~=ogmbB;(i;utwD^giU9KgJ+tY@kokq1WZ)J zj`2vu+e zlKu?6$u@9b)_G}WGCHml0=lJlbdibc#H4!v_kR`dulx?MMfu)!8TB2>EX@hEB9zjH z(jZM=f=dy;tKvdcTCAy)$+~c%X3rJ+RHRd5O3sLtYpegJOdS$WxFdor9ANR${o;4) zk5_&lfJ{&`9dRBD(^*VRu1QgRFF8BM^{nFIVbz(fh63uFTM{R+Y0lA$RT>Gbq|hZ< z4GwoxS3BNAOA&}~X#Q~xJd9pxuEMX^u0njI>lk;v3hc6bPgK?;X^qJZ3z-!R7IKpz zHd@r2tv3PEzL>JIp*Vk{8he=eW@13P5pbWx;F44k+*o%Kfe}zn4 z{Z?9aub*y@NX0I2w2aJ9`eAW(Id#h)3KBsZ(cY7dh=>8DG{0#BmShy2GVUBxl~@gQ#vu!)Y?q{9cD6T|Huj!Is=mW?h^t zd!Xg_4C(rkF-a_(Jj37Um!1GWj?^k5!CIjuDT%tQ%d|s6%1$=jiYP22pzS%%s+P1P zP7hAa(qSX22?@;{v->n?NB0lk@$lWqSiSr3cM@1Mtn7s5a)_A70 zd3Y?7i8yiZ%MCWC%Ws#8o}R|j3g8{|8pfC)8UAX#oR^ggkxTXtZ z#;Gk5x~kVW`P>;JcvSnHk-;WIgMU|kUkBG3&a?7H6;DeWcy|;0(t6pm@JCPCz84{| znp-e)R%dWkv6}nhl0?x>Z3!I{30{lWmZcP$)V5PrDX1K2oa||!evgWnCk5)i$|vyY z9A`cEmHCh++^!GfE6G%YFNfuRgnm(g_UfuQv=(>|F*s#~s(E33j453tSOZCt>Yub# zxckxl2qNg{I_`>wH-SzE^y^yjyT|JaFovfFH!>YxlJ3?Pgm>daf(`vlEy9Fi<1v;h z9g2gsjV{^~_Eupy;dZx1$`mBo_#J6I0n>1{Q3pFA;{)|wY=dwbm6yq65}zcb_W(aq zYCdA)K?BY5`9BxP)orO|0rS`v6eSMyEdhd?2m+EETQ*Y+flmQKrhouQs;r{;lW+i~ zOM|}&w(N{jvWlRrdZ!ju^3FF0Rpok zu|p71C`oiVx=;z_(8vDZ6P3a}67LEA6a<9K751hun9|*3+!%oo|80yy{O3Wjhf7*9 z2drwu#EY9<5p%IcWA>UURpA`UQR9x$+T+(hNLn7jT;0EabW~jbj%^h!C5oTcAJcM0 z%r>ny<<5-Jk}O$j7AsX^HuFiEih@hBkcxBB05B8(shLXSz-W&LBn9>OwOoU_U1S>r z+Y8f6T|yr}AAb7BcTh-VjdMJbs)kzddaO0Gn8@%?&?y8=>#{uiR{tI#aAn}DzLZX8 zGYVPIt4-m_TK$fo(?19_t$wnN5>Cjm>Mee9xN6tHAFQ^;4}B|#nUgj05|mAu91nxP zsGIy|{?PaiEjdD@&sM}J(S{_=5D5rrLFc_uxG?ZaU`HF@$=;->H-hO??~B!JFF5%D zAUwF}+W1Q_nx=Zo&kR|^gf->Jam|7^ImfaP%k-nkcSoO(K0n64q{6(ViB%K1@QG(U zC&VJ!shBumDVIG8XFjuIX`jWoa~HWSM-~BcZAU=Q+Sn6bY|xz!U$r8qoYvXFWA^|i-8+?F-h0*gC!F7Ur-B^L#x?1F&fIez5%H$9fF+((BAm)*?>bk)WqMog z3&^VxBuSR=eg=xutR{exoFe&n=u1ejM3%D&n$Sv+bp(lRR(?)NjsP8oN@~RXrD)~@ zE&<9=n)cZIR43^g1U*`^{YU|(Hnp{d+P#`}0(V`LI&VbtT`<)Me&JEZ?GC00=+c

mIUEqC3T4Vd?}qod!<^n((h1ZbQ=m=7eQb}ZLAIduTQb@Q7ftO%9floiP|`aA}N^(MKL60C$UrgC~_sS zrbw1Awv?v*?9Vkb02aXRa=9x%ckh?u(;S;vU}i8F39?^kfdJ_L7Be}V@wrhNQOo3tnYeuB3qD9y=quHTSg?s%pq zIc!pP{czl%l>MNb%#$Y!90^pNY$DFc$B#09fjMOMdmeCd9i;$=3n>*iRd<2ESOc7# zSSi4v15$xgbr(3fZp;c}^$2k$S|>P@3Elr%c`bBp4x5G8#a`_0>Y8?g@kZW0OaX*1 zg=(+#tJG4B&8RR1-1U`g<2dJad`#{6HFmY@(-AG7-lw>ji#boAqB*}8rPkT1iHKC` z94&0LlA-Ij$Xwix<>9V>ze{;}9_mE0ODHG`qXFI~)VkL4VY}6pixkZ>b7p7lv!bf}m6i!`gZ7IoQ<6 znCAh67(H9oMgLL?;M4ft0AExF{zz497wx%6_8k4yGlayItn#Kqmt8+qJ43JB0lglmKqLE z!{BqOvz%ts*g*FZtGfDRByW}ebJluHwuQHLf1_-IbojAr${8yyOy;b>EO~Eth!e=2 zS#&uj)+K46Rd1UqhR_+;@b30KSwm{1@kS@HwcmE`6G>(Bw2L;j|P%E=%~E7vAb>SRh|=5i{mj92#*%SJ+`Etu3zV;WL9 z?|jfwxnXVB>%jqCRnzM;cwql};rxR2Og58JBx}emYAzWPfjezbzC(hOqu|g}A(qLL z#uVzL#}i*UkiaQ}G2MbnE;ze?efj%m-~Rsc+wXq=EB^cTTSR@qBZ{*;@%v@2Epm#d z&hkEF8@y&HAdNJP`uHttd!|m~M5wj3tcR0E6ERpkJye_)G=S?Wc>6s3rXT)R34aOq zpZ%(q$QXe5Q`QhHuJ-*j)Cj_$2rx?;Wxu)29(m|$Tx`V9nJ$xu1iQv>;TDng0iS9A zMp>^&by0Qs%|G?_#u#zhN5VTRapLfX)hJHu)R7EI$J3&_7@tZf;OdT$Sa5b}z#y71 z)g|$?{3hK*RX(#B{ftk#v*O&gpFv!)UpLWh_5f&jdOsh3i;r@NExe=Gt_(R{hp&fE zRM=1Ctc>1jnj8a6AH@FU&CG<`%EOQCc7BpL?up zW0n}M$d4H@la>!x%`dRgo?fP$Rg3Rr#?+A5GGD9H*#ifmBUXJcIDCHaB@!Ut zVSJ+b)>b>3-(dLIv6a6Y2W;q;$JQ82v@2Dg2@UxnklDe}=g1aPq} z&|rGC?2jgNa^HtjZ-#ecuW>{NFpKH+@?(Ea$!mrKqpKC=)W^~^9t|SgI7UR@ zWcUon+R(#ef`CxNEpWxAj_VNV;0^FA77<>&fjhl(>Jq1~SM$keaVrOw!|B#y${6WL zjoJ|C>**Ml26YYQ!4To!a7!I+ZT0Y}e>KH}e#CPbSU6chDzlphfQgV%Ri75Ocv+W1 zSA=1bWe7#Mheq9@7*<}3G4LbseuirYgpUT_?&d!5zpCTf+DY$CrBe?Y-Jsn$f8D6n zYr&IB7r)`8ebeZ@I=|=zsL`pkdOru}Cqbq4bMQl>ReKuLe`a)lqm{2W6GxW?fLBQ`KgrarQK*Rn97>L|rF12b9hh zRTJuhH?QhcMEENBU$xgbZ&5d@=dE4`KcAwPot|m>rqQiG4Jw^Rml$%=IX`>4MeIZi zKnD=CYt;n`v6>lVMg&!eVHfDMrX{G=D^0+{@U*y#x-v%dpIZU`JbCf;HzBSiOJ1rc zN5NYz)}MkJUv!!xq^yg#Hllf8mh&fE5l??{-3mp#ju!8;VCnBcj4QqUcrg2)UOZ%fi z22JW~OxvdL!fg5yF!^2a({_{F)WB3wO9U-p8PlM8T4{z_gkw>6rWMr*nj+?z zaK>0XVFBF6bR}iAsw-JsN(gJU+32>{LZJ%lAPnXYvn3AtSF;c)KqlR8GY01}E3O%+ znlW6L@wL&-s2~2g44WirhEd_c{(%dUD+WI<1F9Hv%N!|E17}F7L1#6N!jtoEH-?;q zN|m6?v34|Nv5%p<5TokUQbNgLpzm=%ljCm$#MkME;J zsA8eAx+%2+RV%B1C(YgunGo$_!EGknTwb%H$SakC^h>3iHZ$xSj$vF%+u zA}6TR>794u9w*_PR;%mCz-Pm^<_NK{SOJZgZU8NW^%c27Mk47p~93N7{;6r~t zfMcv z0tl&<4eKJL$2_o)$kg1Ytqb1mP@Py1+`imQR^i|KANqHQAk3!dBKRJ4&QK?l9$79! zGNy)$@CqBgOmI>)K-HiIvy%3P8H+xYl8OmX3)O&pkc3lg?`7dTrlc$mJp5( zXW`9k%mSSS0(Am#>vIz5xN9zl8p!R2b$*ELdWh{ZmdVW7YE=#3Or;f753f;{F7O{l z)&3CcAZb+WKC|fLYJjDxWs%C(18m#8g;m!x)Md;#&;^eXn>nvu9KOh+PO7nuL)Eed z1mrKL(@e#pK4XO+x$_?E?-yOFgIbIClTO$Dx?z=hP9K)Jw7Q<)YQSybHJ-(~Wd zzGby*P2YWf|`ohka#QVd9@EJSk^!_?_y1Dw})I)Ojc6TD4Z& zr0OF(JE$U$P^DInI|gA^p8r zWR3x$f8B=f1Ak)!5mV|4VY}L?AI7A)OyiF+EpE%%bo{_)H<_(3!@S?TAfCP)`%~%DCHUf z>Jzu&wSE4DHV3mhk9`y^jYim#Ly8R)Es~~2av(R@i|JjM4aJ)RKYp~0dy+zD>x<9p zXh0;uXb^Y9ZQG%bS%cT<)L7M?G@V^va(kgF23*miC9!YrR$64OraH#xTNWkVSIs2W zE^?wqb2{dE)t?X9L9REQACj0Eg0~M|55XIS#d0;7M46LOea`H`n?`2G-!x*Lxf8Ja zadd5sy*qaNF$-TWx*tuhr&&1F=PbOd@Cq)PxN(yC7vV8##O;&2w~OPNHG5prFD86s zFoNIwcr>AHpyLOMCB#{LFD6K(J73_@HrEZ2oSCMk_#*0B;-2cnYRRekVR5~j4f9m4 z)G``3gU~nkZ*Wn4`q8q);P~@|&s0(t*+V>(L1JHde{k?&GRUJ&Y8mQGx0O(B{Y$y0 zpC5N??tq{m_=R3zhx?1N{-}xcL>$qy!=}ud@h^_)aR%o_E$q?(&pbIAFKU5&(qMxR zq{KXE-cJX3rQ#V~m8Bdk(Z&QT>Wb1|m7%(VoDL7L#a(XbQcZ6mQipwPx}p$=a~@Fn z5Y(oFa&V_t5iN0l_Q9f@ELP;BTEMg$OmWqmUM3x??H)F6L&KV&asxLGZQ_dciEv|z z&c^+RusvNYy94CUSf){;Y6Wqv^1VHU`Ei?ugg*c-u8$`rm1T3SG!3ac7kFZ3)K7yh zUjlZTl>uMt`qFyW{|$mlUeqN{1L@EQGi6bV_7k#rJXKN|z}rp>Ir-=`RGMT5)+pyq z;0ie5QH@AYb3HP3^HmmFm&6 z0Ordx*{KP$uyTD(3jLH{Um6E(K7ZHXb2KpV-BrK}ML3;|AAHL5@C4i_=Fr9+qP@cy zs%%~y<2;atMX@HvoIIX6tXwz#>6}E16i#l2%I9Y89HF6OgsIHj6ls#7xroR8A>5AM z*h!&iDpw{8iTqhDMDQGZMjrUH8r|(hxt8>TP}|LRB>{405zNN3{^ebNwqI`XKJ!qm*TZ z%Qf}9k1D{CiiYZ2Fh0~mYqbDPniww7f~G~ga*~*}WH_>AyI}h_Ko!l2LcC2~uZMj+ zV~032S1WoP&Q-dzS-3cyc~UW(Az?L6Dat5=HbN7U#s%vyMX4MsY2ZZ(7WfHyApMvH zzmRYUeBZ8JOMfBbmf)v|UN-#&<#0Z`h5zmVX==PdHkj@>JiMuof*wH+Wdrl^m%8 zy9reSU8M}JV*~_|OWg&pOG`lp;VHJ?xLg$;hT`b=z*C(-)d_T+Qhal;z1RSou2TwIw-z3xp@$!+67F~*&Ju2+qVlQLL4u)y{t~=<(uzJ}y5X+XyCu7a^P~Cos_nAr6}-Gisv5T8(?j?Nc^x&5Qp=;=pXPDP^Vc@} zA7Sm`i1|30zmLYzL(t+|mpIL9_OICIxd!_tliM&81`!q#T=d4-w%cXuqOL}EQ(Ucx zO=fqrH4V?`!4X7YgxZ7PYp@t)YZ~aup1+~{?31N;pymv-h27LHJK7W{7@oB~f3$;+ssyN_g}HPuyQ_7=i?0wR z3P_c>g`#M_$Tar!7c2?qxXg>-qOo2g&d2G?!$!JJ!wtK)^n}YKg02kVpMnpKF1A(%?uh-vNeUP1GnTk8Rxkl_wdKJ&M1TWuTlJ zgjW%!Ddj!DUIYR3iJ?=+3mnE|b1=mHd)1Pr0W~hGwiG3VVq^S8M@vGqMgz}qHpQR9 zf-%6tH!t2y=kGIdsn3tcnQ}ISz)bKGCkiAmg4JH1-Qxg#c@#2}v1A zR+6>@Ch7$aRxm?q{bfH604(f@tl}0n4Wctat8|ZfiVP=oN)^yW|H<_3L2HD9XMqYs z2W*(fa3UCdwI+gM69leGWRxws!(^c(0~a%+&w}z26bo1 z?Uz*0uwxIRu5MGGYr9l&-Mv5ecM`f(BPrB@3N8VYBzSXEL=K)-93n}Ennlo?B^;X5?LiqXnM zh1!on<*A_@R9`*{Ram+3r|{a2eTi9(gPT5H|0&MJL^$2ruAz2tF`;BRFs}=b7{$0% zdIkDM=(uksdsd8-23u)PhBeQO&SmB)vL_*Es2ndFr`~=b7ag@IHEh1SB^MJ+UL@B- z1l+JtP?Jn;5|j%sz%3Ue_FNoOk3|)p^1{9RBDrv`nRTd*P=1_|PL!9aIKo!SmF~5j zY^gim(H!Z;#i2?3*->50!qk3PFkY83KZ==y}u>N+IbnGfGiZY&l*p(!`}wi!~-V$a&Np_qg+ErhGST54_G` z_xRJrCJC|Z`(P{48Z1DOxUm*qj#JKae~)%0}{8Q=i%m`^6mM9*XNvLfeEdfDesS)~kG9;K9RIzEL)E^dK+LX)ewz2zW( zoX#cW#U`(Z{4o=@xGm)%f8-2h>_w+%f`IZ7dAMX8AS2w>EAhS5IuFFf7J0kNkJWDNTFr||NlYzu zU9UDp=1;^YM?)3G#`bWPVl_-$TQR%1T{~N&SCO1XpZ>TMob_?&M_SdS11dPT!SH-_ zZZo;G3V*%#mvIElZ$-;+|)Q8$jxw*m{W{Sssyd=v}#$n$MtHXnI^Fjl}iGNM370$ z>Y^#8sv4ayup6T*Cai)kIgA^kD>{T4UCG`ROP-^6dF**sxNG5Y-p~~iP3f1vG6|;Y zr^VE1h3Cj3m<)WVcO(a=mxmD1;$8}-{Fw$&3dy0zytPQ|3+tOBX{T%%veDqeB)@BP zC`l!h9z2lg#L!dt*dBro;#~1G$)GDRfdWbihqUyRIna96OFvpr zWW7c<-0=Gcyx--;;8*b>kPoFgL~z?#aOFb^++4j7gXN67u%hrt%ZQR`yMb{;y~1J# zlu-`exQ!+t4sf_TG?N1_gI!Zm_ zLhAo1<>d4ielGX2hZJ6~=*hHkgcP-t=zbYK-%mIroC<+dC?LsBbB6DA!>PdVi&nh_fh@SlRBvq=qdqK(Lz>e;M=M3v$FqE8&^AeQSTnyjY95ZN=q#y z+hc#Qivm99nc>?dlw1^70r;goo*ow6#mo{c?GN5H!YY@Q;x_IUEj~`?-ZdQnl;UzQ zDb|_OE_*Vsu+RFDl`As#IK5g7a&*WK5zZ zJ#^mQDOcuJSH7x7Nf}xPD?f=3m6U>n{rPgb^2SLf+w0XBiBtMlbn_8emnT?lkuaC^ zd2f1A23ajUNlTJdi&o18%rV-AjI5V8o1@>N$!|p@q*g~*S?ZlPe2Fh;mXJMMBE7zY zpUh>HE-iDD7G9WIJvD-wog!mOT>+6(?$_Ym3b!d=1pW9jl`g`SCfRTl^HvD{U+SIn zq?Nypg5M}xs-mVW>T_=+T01Y5bp$D*af#-ASnGND5!8nOA4>;147_?ZWti&2mE6Ba9CYl{Ex9@phJ>3h2ZQU~%Ugf>EyV;1enFA7EpC5pq|gYD zlSie_DZ#yH<~mjkWNbQ_&R2Ju zyP{%iOC67cQpUt2?ef9!!=*ZRM%NMRzgT$lMHTu)7c|c5?MBtR>%c{_msOl7VvE$% zY{~k7{4NPY(q(V1Q~+|4v+0ms2IoSakC|#uXV&>?&=dw2(wPx#_x@E1Y-Jki~K{A9>rD`URgbo#I2{qOCQSxoo*e9m~~xI*X8D3dg3fi4$|C(AiO4Q230` zL1FWM!%len(s~XCduy7D0k9Si-kL)QP^f3T#r53Te$pS!-35$FQXu6Kc5-~?!CC$G z+XJ4|St3(;3cP&E@R(Vp;u*1sv0Y7Wr^q!BoX`Vil`0m+VMK}0`3cuTU61BBD|)25 z_i=hXT6o^p6ZJJvUrTjij&~@r@xM>H*3c38=p&&WIJo*?)gk3_`h(`5)Jz;v-0i90tIuZ%x?t=A=CIEtTaD(%2mG{3G>*!)NQ}7b?`KxmUw28 z-w7zicp(7KBzVkMFIVQ_r}q^efxhQU5+>&IVHW#4%k*i5EAhCz>UT&=%ZTUo$MHuO z8kLlRbPDwt!k3F|4tVMpu^y**QpyEQRmk0|tH6zeSEoww;k4SJgDxLDl1IQbRP8)o zi=KM(=d@Oa%o}<=2L}KB(x+5D1V8o6Q};#I!P65CR`SdudW(hBe0uM5PG`tiaCUDR z2hJ4LA>tzA(U}~a{NfBw{bM*~y6TXT`4mkqDRX()=kerVor*j3IL6@oHU?FSHy$yc zf<2EXD*4va1_J6oPn2tp7%{~$Wy)hu8=+J}QG)f}%9fAK-Z*%D%bJ0Qj}^4TPcj2t zGDPr;tY6IEsg3Qx*Rg^cIcHkcDeC`zDx;aM2D zYv7A)Bv~`?#bX8S#V478E*T|745WOb8TjH8%s|7K#|nFbm`}l;#}id%1`1EIrIeSA zG*j(G=@}RcMIp3!T^f6J&(UzIO3T>Gr_IB5*PGB(R0`I3dQOh#c%On1X~HQ}f4D0gvNifjHjV@|09Hh{scNJ;hT^rCGu+ zfyb@mfhaUCr^r4R11UHvXpEQG%Th)8Nd4nmBRs~cG<0z$C z(6XRv$?Z@2OlL%yCTZ3Juu;dd5k6YA5dKe~TB!3(OGyzHGBy?AJn@oT!;3WUwE9%q zD}B>F#|hTK{tNF}X)gCHIdaFMUZyfg4(rYG{T0IcT+>Juma^woIOm;sA#0~nSO(s! z{sM2Cj5`r!V0EcfpYYhpySUYcC(T|B?;W&EJP_ainD({y&0zF4e(PR=`A$$j~IeoxrLp6BoQUP^=DVzqcwEQ-3aj+6L z&MMy3t|BDivL>EgG=R#}f=JIt&1*^vU4AP65PiTCj^QgBE?;m9=~w|22%ys3pbRam zMfk(&_EFLzU;+YDniNVfd5g!m)U}{c>uzVCRzzaLzyn#DG=#BaMp6}_h;=o^#8?j% z6)<0Uq9gJ8Jn~G~A~b}7Kq$?O_7z@QU3t+M#VAl9N|Qi~Y3L40c#k)Ru>wA3#pX3y z!O^q@pJL3I-g$I`h3oMIDma?J!b=qs^9d#wb4$Z1D#bPt-bi{QNH28Rs6O3*DB3;r z;XL|Kf&?s1Xow4Qg&tbv8SOtcS8Oh+)LMzB=t|4S1v$ym?ae|9R2E@R$yyZ*rA*V_ zS+m!u{p^hqN`u~LXdXT)GA$a%XW?vg<*7832JPv`Xx^^kDTvV$Z!(O2lUu4}uHk-Q z{Ki%xY}E^w_C_`B&THO2t$`b<6a`LiHO;0I#JMiQ`bD$i!NyJufB5OPxFW9H4nssi z!sDkdgW`%qRQNgR#`m5**O&|=yk9v4F>*`)bUs~`ih~E}a6u0}dfi!z0CP~<6wpQ- z=Y7_{84bKO)%s9oyFNODsCf6Fq%6QS^U082%+*o6fX{LK`bqe9~}(4>$`dG?|bJq#G?)Gha>+c);ZvaxtKZ zErJ;RcG8n%$ZhV7rHw;asrueBflcL!t3)Lw0*K~U{Y6TGJbu%LKBf3li!r|KYnpZi zR}wMtOE4zwSe(`G>Iw=+fmP%}xn%;m%P-Sd{m2b7e7^aHM~&V4PV z3d_O!4O-u&?T0>2|!8iAMq1Cy;dvFt70D$HD%g zH5+rsM4);xi)m2TL@6>7C;qF6N5$?BJ)u{HrTQ-LLOk0ySx`{*5TSmQV9Xsdje$3r zab1;+ESRa=U~uIXFlm|*lH^R_&h&8U;!^!Vj<2MKp<`Be(&syuM{g%t6)=Zh*7Y7y@DT7;b`XHidxk1eBUp6nx58_50O-JlsW^Jw&7i9W?n#H+4{4X$vJJDjgnj=?b zp+#YIHNzR8<4hlOS()WPS|%5ScIy=6;i5Wcn9_>OitWmC=u(i5@@tFWlHIP4ovhhfbGMJj9=IF|sm~px57-R30!`=~kB!lp1 zDZd^^2pvg$N@B2mSeEAvNi8CS!WklUKo;7Y~UQp%!T zGii-IUbSoKx19?yDb0g}YZ&AR_R`n9R!IemCH-g$0)I1^ih>@ePH~R+% z$g7IK54~+b6IB9K(cpt!wX!b)Y7{J|`1|mAp$sGhQ=vWdC2JkJ!$Xeqx{4l<<+>0? zBxFYl-g$qKk#5y|e^k;{1I1vmV%#_;%`ucs^%!XwxIt`X{J-#v_J4D=F&F6(v?Mxr zZsNtK@oYYt`rxFr48*hk`-l$oyhAKgTm~l0l*8NQofm(lOUpn+0C@BSLG(YdUboG#+`HYGM9(<(n`jDr|5d`D{qv)!nr+))5p{Gs>P-_}k z3E_*8750bFzsu2rLT?>yQb#VVn_Fb2;$U4xY_J<0{JEH>L{J(Y+enNu=;q=SHsop% zimAfO7%si^R7R4e8^J=9qh~BoNm*#uk(adz1!ZBKMDV42!0R>6(9odkFWRKHhJB+x z|8R?(`BP;28GFZt1YCW@E(o8?tQj;yX9)Y4PeQ$!N%TOAl+;V<$0pMO87L>=4aILH zS;Xhy65D~jSJ536bphE{5ypssxFm4%DTVNj2H=gCbe{O$L+;r(tCA2~C*D~%LHr!a zQ<$7kGN&)fZ1&F18b2lP|Lf9HvOQf+7x>TPt13-_m@5l-Z6oYJu*iycyrjrIvCh&wwzv^=wutOJPF3T%~Oh&!)doSb)F7Ew-~g zW60jlFcY%9CCneWlq0(g$ZpuphL9mhJ(%Nfa9vvxx$Xt{a zh>}0d-4LDzZ|;l+NHjaWrt@k^Vd**piirGKH_Qf~2{w-nfZE9H_)T9QF-j#Tuu5kdKO>4ezSa=uF}&5M+kfuZN|~pn zi@-ciQ~ngSh#258<>_{3F5=WI==mI}9^+9r?`~%cg&M4S&RH&Y7K41+#Ix|pW4ad7 zQ;=5~H*OHsY+oJZ`Q_}uHlW{A5v^)dXQk!1;}WW&Rqc8vmm5vq7~^DcI$AuVijLqU zk>!dEB2&Aqv$iKRsx)PmdK@A6jt3KxQLUXMz@e;+iP(xh;$^g@=h)Dt`Q$ORE`10= zNlXo(=Bhs51aEapJ%iQi;i_~(tD#WyxV%>D`D4C5Y!Go1pde6g)TFUyv{;CV;WLUJU%3|}f=t=H* zrQ?!{f_y@mZf6lbuU4^mdDEWhtX8_!O0902+wSbj=0_TuW;LmO&#O%&vx*i`A6Krm zTq%9%y^xb94d=D1l=r*1Bg|&jm6$V>%~Z0DmR|F;(DzAt}JUXNOZg%N)Wte(p(tE=`>kt@v1%7a3zJlKqto1)%$2o>J7oXkafT1}Ztr`3d= zY57~6MKOO0o#L5=UVrov!ElLfft1S(@QqESA)Z=Mf%a;=0pey@?N9m$&PX_WSX)>K z85bYRQRYG>|%F0!xP}6tMLPw8Wj!{!at4+xe?Db?#)LZILeHF zA`4yi_!P`Vr~9z6d>t0MDQDmp;ZfN>fHcRUp2;P2qFgsNo+gKm$9ThOa=5?oG@+{T zzHnpsUv9`CT!H_x416!CVdek;{-4Xh|7vskzbXU&>&@YRZNbl9CD^D-m7eJh->6x@ z_+23-1K$?bTa!3W*;cx_*!)Mac^D`?R-EL(B0gVupsd@+UDz-w9l!@lnD8QDt`)`5 zOsDKABRnwN{m(A|R< z-%A28j$#sa7S1*3RYd&x0fAz;#w6x&yFVX~uo=_&6kwfxC~A4NFOIXe=F%Bg;0s%( z-8y+NAez1bh7SqbOGW*=%S-NTN;@3p(eNGN-llmoz&_n%7^MI%W;B9iSQ<&0PeP_@ zvA}Oaa+1}lBo}9LLM+pn>`GuB#qCPX^KVf}nOTY1fc#eBpJBmyoTb=N`RYrYRF3(Z ztGE=BuZkd%%0-aW_}M|P7tC$PU8b~+^7YoDq0UbFN6kM^;`6(Q?8J#-Zoe`fU|+xF zj;_G-=8zB2o;$e^NB90kt~M3v9$S+ox3{zRH}sZ+I}KG~8F=k+bnoXplrjX{;++K~ z9T^YPLOSv(o!n8p#lQ<~o$2CI)K13_xHNnh;-G(E&iTm!-&-{`PLeT4 zN#*uN!wb82I6DoGR|tQ`-R8BZxoV)RJ_h$HFy05t1d~ z+-SHO*!H3YGM`D^ljIuFepue(mY-RFQcO~J!N^53TU_HlsW%0Vy^|Zm@{A|kjKOR%w>TBOdray;m6yRpJtqkO2JAq zUVro#MsiigD^?yye-xOZWL`$Nm$yw$0}q>?s|QrQOpyB=cPG5yc`ho$ln&+Eb%%_L zO2K*+RT0^ra5;8h!N0;wWAxQ$cTulnhZ*iIt5y)Fw-0fBnt7usz&%gII^eb^A|H5~ zx!#HTW0jT5@Wy?!+}}&(;z0!AnHMkDK^WK>78=~Q4{IY_y5HdRm{p#0DBI~)eRba% z4W_ry%9L>mzLs&f*5|if9QFle6RsmiC36>j%e7l4GM*`NgZp@sI4ha zNWGjFRkGdFMtDp{sV6R{4SD|ESYaB$v9F}^d!ZOu)Z+#ir1_desb{!*lMk0=Mj<`K(XN^L$7*tu(p8 z2dZ2|N(H_@oS6vXBXb}sHmsvNcB}crI>MEUM5LWNo_R}Ww~=u5c2^UG{0~>SkN03w z6E8dkN78TiVIw@4U*4h6#<&Wdqx#P4a(?UXIErQugZ|Q!AYH5l$C8;`E}T^w%`g#d z-KFCESnK?`dDd)w?@_B$OCuXPV%-oW9(+$Z=}TD|-7}=(@Zd*-73PpwTJTrXMwnjB z#0ykT0I0>J{BE=w{z8iq4#pWVm*#RgE-ytWon`qKYq6?QVJUb}{{!R~_FqlwO1TCZ;Cm5us-S-3F9aS` zd@lp_8<(R#t>1i82x{8Cnsk{f^uCFZrydrI+wgt#fEZ`*!jkntbGHz=-B%&4&E4)R zj|<&bylCS?sht7frsU)&Xk4ta))phR8TB7B&kC_v;j`vJ>7&AKH+2B{y_ld&Z<)IT ziJ-Hfkhako{m+`=C)CI!KhE~FySnMmtDQ44j{Wms{mttNFWklAAt2acyWRFghorr2 z4hss6vB0D2hQ3AP0_EF;#qtw@R;)k?Qc5W1n7g$0 zsvh4_@T_MNSrr+=UbP*5#3QuGE8uYfUxGL4ODRqu7dL!a!yo)-+j{YbQgBZt;h8r# zdXzXEkIo?Z!RfpY-xD%+j;2FrdZV-`r*B8|Vg11qxSlF4L;ms>568@qgb9)Tz975b z%0Tbo6&0UYDiXmf?}X`{cYeI6lOA<-hm=!L&6l4iXSlZs%9rcJy{_JTwOG(&1Sw98 zLSo+bkJfv5m;C4mXV{Af2gzoeTMTI0G=Fv8afA-HXo?CQI*k~YAN_qAF+<8riAK-Y z);;(=5o><6_?+f>Iha4U{dw3!Q7Kp#;cx3B)d#Yt4PSPR{i;vchaO z2ooM5zPX=|(Dfzciuc9UYO-8~*SI*6Tpr}3m575PmN0>gs zgc;9}j>GMRsUyftty1{XHj!XGWm&bJV2`s^`T8!Gb)6pa_|&}~Ec>@X2d@XgXy~DT z?{P1-gMCvon%v-Ro;sp-hB%LECI%{3m|l-OeT9NjaL&8E&iR>3_G>BhEeDfZKukAF zuJXxEJ6wJ}MGpObs-;#W$l=Wk?=dM9#6TtS3hO1sX5OhDh6jh?ivwFZ<&7}Fh6mq# z^Y!zu{N%m42&q~4{41zc8(}Wj2qUS`=U*Op$97p5YtsRx&@t!d)YpSA!{=Xy2TrD+ zyuN;X;fWUt%81vS{t_W358vSRFnF_Ot~e_Xfc{vj zAB)v!<|U7K!)2wQ^-g@>d~F)MxkV5PY3`FhA)Cw3(^c>W+3uk?Jk}JMcOO4`I`z$) zQZc+A@866j!|6wFTW*TMg{(|s?$FUM$1V2Lfwzl8K^dN+8NKq2{AO3keihzLhofs1 zcDqP_jod;M)O1UVyFlhm)3!{~Ng`$Ok=z(w7!+YtAA;-A1nUm=-hF;FVo_vNe;P(t zs~ehCo?4I(ntkL5r78tn@IOWKsh8E0i!{hWu&zg5{Nhh2DFx{SZi=t}oZRvMBp)

w0rx3oU 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

KeuI5s}sdkns*P%*c3AY-h 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 z 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 false, 'message' => 'Invalid input.']); + exit; + } + + try { + $pdo = db(); + $stmt = $pdo->prepare("INSERT INTO contact_submissions (name, email, message) VALUES (?, ?, ?)"); + $stmt->execute([$name, $email, $message]); + + echo json_encode(['success' => true, 'message' => 'Thank you for your message!']); + } catch (PDOException $e) { + // In a real app, you would log this error. + http_response_code(500); + echo json_encode(['success' => false, 'message' => 'Something went wrong.']); + } + exit; +} + +// Redirect if accessed directly +header('Location: /'); +exit; +?> \ No newline at end of file diff --git a/db/config.php b/db/config.php index 89075af..c26801a 100644 --- a/db/config.php +++ b/db/config.php @@ -1,17 +1,29 @@ PDO::ERRMODE_EXCEPTION, - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, - ]); - } - return $pdo; + static $pdoconn = null; + if ($pdoconn !== null) { + return $pdoconn; + } + + $host = getenv('DB_HOST') ?: '127.0.0.1'; + $port = getenv('DB_PORT') ?: '3306'; + $dbname = getenv('DB_NAME') ?: 'app'; + $user = getenv('DB_USER') ?: 'app'; + $pass = getenv('DB_PASS') ?: 'app'; + + $dsn = "mysql:host={$host};port={$port};dbname={$dbname};charset=utf8mb4"; + $options = [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]; + + try { + $pdoconn = new PDO($dsn, $user, $pass, $options); + return $pdoconn; + } catch (PDOException $e) { + // In a real app, you'd log this error and show a generic message + throw new PDOException($e->getMessage(), (int)$e->getCode()); + } } +?> \ No newline at end of file diff --git a/db/migrations/001_create_contact_submissions.sql b/db/migrations/001_create_contact_submissions.sql new file mode 100644 index 0000000..de120b8 --- /dev/null +++ b/db/migrations/001_create_contact_submissions.sql @@ -0,0 +1,7 @@ +CREATE TABLE IF NOT EXISTS `contact_submissions` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(255) NOT NULL, + `email` VARCHAR(255) NOT NULL, + `message` TEXT NOT NULL, + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/db/migrations/002_create_deals_table.sql b/db/migrations/002_create_deals_table.sql new file mode 100644 index 0000000..9c47160 --- /dev/null +++ b/db/migrations/002_create_deals_table.sql @@ -0,0 +1,16 @@ +CREATE TABLE IF NOT EXISTS `deals` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `vendor` varchar(255) DEFAULT NULL, + `website` varchar(255) DEFAULT NULL, + `purchase_date` date DEFAULT NULL, + `price` decimal(10,2) DEFAULT 0.00, + `currency` varchar(10) DEFAULT 'USD', + `username` varchar(255) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `category` varchar(100) DEFAULT NULL, + `tags` text DEFAULT NULL, + `rating` tinyint(1) DEFAULT 0, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/db/migrations/003_create_users_table.sql b/db/migrations/003_create_users_table.sql new file mode 100644 index 0000000..68d1e40 --- /dev/null +++ b/db/migrations/003_create_users_table.sql @@ -0,0 +1,8 @@ +CREATE TABLE IF NOT EXISTS `users` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `username` VARCHAR(255) NOT NULL UNIQUE, + `email` VARCHAR(255) NOT NULL UNIQUE, + `password_hash` VARCHAR(255) NOT NULL, + `role_id` INT NOT NULL DEFAULT 2, + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); diff --git a/db/migrations/004_create_roles_table.sql b/db/migrations/004_create_roles_table.sql new file mode 100644 index 0000000..80a9010 --- /dev/null +++ b/db/migrations/004_create_roles_table.sql @@ -0,0 +1,7 @@ +CREATE TABLE IF NOT EXISTS `roles` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `role_name` VARCHAR(50) NOT NULL UNIQUE +); + +INSERT INTO `roles` (id, role_name) VALUES (1, 'Admin'), (2, 'User') +ON DUPLICATE KEY UPDATE role_name=VALUES(role_name); diff --git a/db/migrations/005_add_user_id_to_deals.sql b/db/migrations/005_add_user_id_to_deals.sql new file mode 100644 index 0000000..a0e5fca --- /dev/null +++ b/db/migrations/005_add_user_id_to_deals.sql @@ -0,0 +1 @@ +ALTER TABLE `deals` ADD COLUMN `user_id` INT NULL AFTER `id`; diff --git a/db/migrations/006_add_weekly_summary_preference.sql b/db/migrations/006_add_weekly_summary_preference.sql new file mode 100644 index 0000000..cd6de94 --- /dev/null +++ b/db/migrations/006_add_weekly_summary_preference.sql @@ -0,0 +1 @@ +ALTER TABLE users ADD COLUMN receive_weekly_summary BOOLEAN DEFAULT TRUE; \ No newline at end of file diff --git a/db/migrations/007_add_remember_me_token_to_users.sql b/db/migrations/007_add_remember_me_token_to_users.sql new file mode 100644 index 0000000..49ed11b --- /dev/null +++ b/db/migrations/007_add_remember_me_token_to_users.sql @@ -0,0 +1,2 @@ +-- Add remember_token to users table +ALTER TABLE `users` ADD `remember_token` VARCHAR(255) NULL DEFAULT NULL AFTER `password`; diff --git a/db/migrations/008_create_deal_files_table.sql b/db/migrations/008_create_deal_files_table.sql new file mode 100644 index 0000000..ebef274 --- /dev/null +++ b/db/migrations/008_create_deal_files_table.sql @@ -0,0 +1,10 @@ +CREATE TABLE IF NOT EXISTS `deal_files` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `deal_id` INT NOT NULL, + `original_filename` VARCHAR(255) NOT NULL, + `stored_filename` VARCHAR(255) NOT NULL, + `file_type` VARCHAR(100) NOT NULL, + `file_size` INT NOT NULL, + `uploaded_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`deal_id`) REFERENCES `deals`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/db/migrations/009_add_2fa_to_users.sql b/db/migrations/009_add_2fa_to_users.sql new file mode 100644 index 0000000..542f2b1 --- /dev/null +++ b/db/migrations/009_add_2fa_to_users.sql @@ -0,0 +1,3 @@ +ALTER TABLE `users` +ADD COLUMN `google2fa_secret` VARCHAR(255) NULL DEFAULT NULL AFTER `remember_token`, +ADD COLUMN `google2fa_enabled` TINYINT(1) NOT NULL DEFAULT 0 AFTER `google2fa_secret`; \ No newline at end of file diff --git a/index.php b/index.php index 7205f3d..088a816 100644 --- a/index.php +++ b/index.php @@ -1,150 +1,208 @@ exec("CREATE TABLE IF NOT EXISTS migrations (migration VARCHAR(255) PRIMARY KEY, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)"); + + $ran_migrations_stmt = $pdo->query("SELECT migration FROM migrations"); + $ran_migrations = $ran_migrations_stmt->fetchAll(PDO::FETCH_COLUMN); + + $migration_files = glob('db/migrations/*.sql'); + sort($migration_files); + + foreach ($migration_files as $file) { + $migration_name = basename($file); + if (!in_array($migration_name, $ran_migrations)) { + $sql = file_get_contents($file); + $pdo->exec($sql); + $stmt = $pdo->prepare("INSERT INTO migrations (migration) VALUES (?)"); + $stmt->execute([$migration_name]); + } + } +} catch (Exception $e) { + // In a real app, you'd want to log this error and show a user-friendly message. + die("Database migration failed: " . $e->getMessage()); +} ?> - + - - - New Style - - - - - - - - - - - - - - - - - - - + + + My Deals - LTD Tracker + + + + + + + -

-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

AI is collecting your requirements and applying the first changes.

-

This page will update automatically as the plan is implemented.

-

Runtime: PHP — UTC

+ +
+ +
+
+
+
+
+
+
Total Deals
+

0

+
+
+
+
+
+
+
Total Spent
+

$0.00

+
+
+
+
+
+
+
Average Rating
+

0.0

+
+
+
+
+
+
+
New Deals (30d)
+

0

+
+
+
+
+
+
+
+
+
Deals by Category
+ +
+
+
+
+
+ +
+

My Deals

+
+
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + +
NameVendorCategoryPurchase DatePriceRatingWebsiteActions
+
+
+
+ + + + + -
-
- Page updated: (UTC) -
+ + + + + + + + + + - + \ No newline at end of file diff --git a/login.php b/login.php new file mode 100644 index 0000000..0d2fe78 --- /dev/null +++ b/login.php @@ -0,0 +1,72 @@ + + + + + + + Login - LTD Tracker + + + + +
+
+
+
+
+

Login

+ +
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+

Don't have an account? Register here

+
+
+
+
+
+
+ + + diff --git a/logout.php b/logout.php new file mode 100644 index 0000000..d00ef36 --- /dev/null +++ b/logout.php @@ -0,0 +1,5 @@ + + +
+

Privacy Policy

+

This is a placeholder for your privacy policy.

+

Details about data collection, usage, and protection will go here.

+ Go back home +
+ + \ No newline at end of file diff --git a/profile.php b/profile.php new file mode 100644 index 0000000..a8b63a2 --- /dev/null +++ b/profile.php @@ -0,0 +1,152 @@ +prepare("SELECT email, receive_weekly_summary FROM users WHERE id = ?"); + $stmt->execute([$user_id]); + $user = $stmt->fetch(PDO::FETCH_ASSOC); +} catch (PDOException $e) { + // In a real app, log this error. + $error_message = "Error fetching user data."; +} + +?> + + + + + + User Profile - LTD Tracker + + + + + + + + + + +
+
+

My Profile

+
+
+
+
+
+
+ + +
+
+ + +
Leave blank if you don't want to change it.
+
+
+ + +
+
+ > + +
+ +
+
+
+
+
+
+
+
+ + + + + + + + + + diff --git a/register.php b/register.php new file mode 100644 index 0000000..d8f6b1d --- /dev/null +++ b/register.php @@ -0,0 +1,71 @@ +log in.'; + } else { + $error = 'Email or username already exists.'; + } + } +} +?> + + + + + + Register - LTD Tracker + + + + +
+
+
+
+
+

Register

+ +
+ + +
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+

Already have an account? Login here

+
+
+
+
+
+
+ + + diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 0000000..875c5e7 --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,22 @@ +writeFile('Hello World!', 'qrcode.png'); +``` + +## Available image renderer back ends +BaconQrCode comes with multiple back ends for rendering images. Currently included are the following: + +- `ImagickImageBackEnd`: renders raster images using the Imagick library +- `SvgImageBackEnd`: renders SVG files using XMLWriter +- `EpsImageBackEnd`: renders EPS files + +### GDLib Renderer +GD library has so many limitations, that GD support is not added as backend, but as separated renderer. +Use `GDLibRenderer` instead of `ImageRenderer`. These are the limitations: + +- Does not support gradient. +- Does not support any curves, so you QR code is always squared. + +Example usage: + +```php +use BaconQrCode\Renderer\GDLibRenderer; +use BaconQrCode\Writer; + +$renderer = new GDLibRenderer(400); +$writer = new Writer($renderer); +$writer->writeFile('Hello World!', 'qrcode.png'); +``` diff --git a/vendor/bacon/bacon-qr-code/composer.json b/vendor/bacon/bacon-qr-code/composer.json new file mode 100644 index 0000000..41f4166 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/composer.json @@ -0,0 +1,50 @@ +{ + "name": "bacon/bacon-qr-code", + "description": "BaconQrCode is a QR code generator for PHP.", + "license": "BSD-2-Clause", + "homepage": "https://github.com/Bacon/BaconQrCode", + "require": { + "php": "^8.1", + "ext-iconv": "*", + "dasprid/enum": "^1.0.3" + }, + "suggest": { + "ext-imagick": "to generate QR code images" + }, + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "autoload": { + "psr-4": { + "BaconQrCode\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "BaconQrCodeTest\\": "test/" + } + }, + "require-dev": { + "phpunit/phpunit": "^10.5.11 || 11.0.4", + "spatie/phpunit-snapshot-assertions": "^5.1.5", + "squizlabs/php_codesniffer": "^3.9", + "phly/keep-a-changelog": "^2.12" + }, + "config": { + "allow-plugins": { + "ocramius/package-versions": true, + "php-http/discovery": true + } + }, + "archive": { + "exclude": [ + "/test", + "/phpunit.xml.dist" + ] + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/BitArray.php b/vendor/bacon/bacon-qr-code/src/Common/BitArray.php new file mode 100644 index 0000000..9ec8629 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/BitArray.php @@ -0,0 +1,364 @@ + + */ + private SplFixedArray $bits; + + /** + * Creates a new bit array with a given size. + */ + public function __construct(private int $size = 0) + { + $this->bits = SplFixedArray::fromArray(array_fill(0, ($this->size + 31) >> 3, 0)); + } + + /** + * Gets the size in bits. + */ + public function getSize() : int + { + return $this->size; + } + + /** + * Gets the size in bytes. + */ + public function getSizeInBytes() : int + { + return ($this->size + 7) >> 3; + } + + /** + * Ensures that the array has a minimum capacity. + */ + public function ensureCapacity(int $size) : void + { + if ($size > count($this->bits) << 5) { + $this->bits->setSize(($size + 31) >> 5); + } + } + + /** + * Gets a specific bit. + */ + public function get(int $i) : bool + { + return 0 !== ($this->bits[$i >> 5] & (1 << ($i & 0x1f))); + } + + /** + * Sets a specific bit. + */ + public function set(int $i) : void + { + $this->bits[$i >> 5] = $this->bits[$i >> 5] | 1 << ($i & 0x1f); + } + + /** + * Flips a specific bit. + */ + public function flip(int $i) : void + { + $this->bits[$i >> 5] ^= 1 << ($i & 0x1f); + } + + /** + * Gets the next set bit position from a given position. + */ + public function getNextSet(int $from) : int + { + if ($from >= $this->size) { + return $this->size; + } + + $bitsOffset = $from >> 5; + $currentBits = $this->bits[$bitsOffset]; + $bitsLength = count($this->bits); + $currentBits &= ~((1 << ($from & 0x1f)) - 1); + + while (0 === $currentBits) { + if (++$bitsOffset === $bitsLength) { + return $this->size; + } + + $currentBits = $this->bits[$bitsOffset]; + } + + $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); + return min($result, $this->size); + } + + /** + * Gets the next unset bit position from a given position. + */ + public function getNextUnset(int $from) : int + { + if ($from >= $this->size) { + return $this->size; + } + + $bitsOffset = $from >> 5; + $currentBits = ~$this->bits[$bitsOffset]; + $bitsLength = count($this->bits); + $currentBits &= ~((1 << ($from & 0x1f)) - 1); + + while (0 === $currentBits) { + if (++$bitsOffset === $bitsLength) { + return $this->size; + } + + $currentBits = ~$this->bits[$bitsOffset]; + } + + $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); + return min($result, $this->size); + } + + /** + * Sets a bulk of bits. + */ + public function setBulk(int $i, int $newBits) : void + { + $this->bits[$i >> 5] = $newBits; + } + + /** + * Sets a range of bits. + * + * @throws InvalidArgumentException if end is smaller than start + */ + public function setRange(int $start, int $end) : void + { + if ($end < $start) { + throw new InvalidArgumentException('End must be greater or equal to start'); + } + + if ($end === $start) { + return; + } + + --$end; + + $firstInt = $start >> 5; + $lastInt = $end >> 5; + + for ($i = $firstInt; $i <= $lastInt; ++$i) { + $firstBit = $i > $firstInt ? 0 : $start & 0x1f; + $lastBit = $i < $lastInt ? 31 : $end & 0x1f; + + if (0 === $firstBit && 31 === $lastBit) { + $mask = 0x7fffffff; + } else { + $mask = 0; + + for ($j = $firstBit; $j < $lastBit; ++$j) { + $mask |= 1 << $j; + } + } + + $this->bits[$i] = $this->bits[$i] | $mask; + } + } + + /** + * Clears the bit array, unsetting every bit. + */ + public function clear() : void + { + $bitsLength = count($this->bits); + + for ($i = 0; $i < $bitsLength; ++$i) { + $this->bits[$i] = 0; + } + } + + /** + * Checks if a range of bits is set or not set. + + * @throws InvalidArgumentException if end is smaller than start + */ + public function isRange(int $start, int $end, bool $value) : bool + { + if ($end < $start) { + throw new InvalidArgumentException('End must be greater or equal to start'); + } + + if ($end === $start) { + return true; + } + + --$end; + + $firstInt = $start >> 5; + $lastInt = $end >> 5; + + for ($i = $firstInt; $i <= $lastInt; ++$i) { + $firstBit = $i > $firstInt ? 0 : $start & 0x1f; + $lastBit = $i < $lastInt ? 31 : $end & 0x1f; + + if (0 === $firstBit && 31 === $lastBit) { + $mask = 0x7fffffff; + } else { + $mask = 0; + + for ($j = $firstBit; $j <= $lastBit; ++$j) { + $mask |= 1 << $j; + } + } + + if (($this->bits[$i] & $mask) !== ($value ? $mask : 0)) { + return false; + } + } + + return true; + } + + /** + * Appends a bit to the array. + */ + public function appendBit(bool $bit) : void + { + $this->ensureCapacity($this->size + 1); + + if ($bit) { + $this->bits[$this->size >> 5] = $this->bits[$this->size >> 5] | (1 << ($this->size & 0x1f)); + } + + ++$this->size; + } + + /** + * Appends a number of bits (up to 32) to the array. + + * @throws InvalidArgumentException if num bits is not between 0 and 32 + */ + public function appendBits(int $value, int $numBits) : void + { + if ($numBits < 0 || $numBits > 32) { + throw new InvalidArgumentException('Num bits must be between 0 and 32'); + } + + $this->ensureCapacity($this->size + $numBits); + + for ($numBitsLeft = $numBits; $numBitsLeft > 0; $numBitsLeft--) { + $this->appendBit((($value >> ($numBitsLeft - 1)) & 0x01) === 1); + } + } + + /** + * Appends another bit array to this array. + */ + public function appendBitArray(self $other) : void + { + $otherSize = $other->getSize(); + $this->ensureCapacity($this->size + $other->getSize()); + + for ($i = 0; $i < $otherSize; ++$i) { + $this->appendBit($other->get($i)); + } + } + + /** + * Makes an exclusive-or comparision on the current bit array. + * + * @throws InvalidArgumentException if sizes don't match + */ + public function xorBits(self $other) : void + { + $bitsLength = count($this->bits); + $otherBits = $other->getBitArray(); + + if ($bitsLength !== count($otherBits)) { + throw new InvalidArgumentException('Sizes don\'t match'); + } + + for ($i = 0; $i < $bitsLength; ++$i) { + $this->bits[$i] = $this->bits[$i] ^ $otherBits[$i]; + } + } + + /** + * Converts the bit array to a byte array. + * + * @return SplFixedArray + */ + public function toBytes(int $bitOffset, int $numBytes) : SplFixedArray + { + $bytes = new SplFixedArray($numBytes); + + for ($i = 0; $i < $numBytes; ++$i) { + $byte = 0; + + for ($j = 0; $j < 8; ++$j) { + if ($this->get($bitOffset)) { + $byte |= 1 << (7 - $j); + } + + ++$bitOffset; + } + + $bytes[$i] = $byte; + } + + return $bytes; + } + + /** + * Gets the internal bit array. + * + * @return SplFixedArray + */ + public function getBitArray() : SplFixedArray + { + return $this->bits; + } + + /** + * Reverses the array. + */ + public function reverse() : void + { + $newBits = new SplFixedArray(count($this->bits)); + + for ($i = 0; $i < $this->size; ++$i) { + if ($this->get($this->size - $i - 1)) { + $newBits[$i >> 5] = $newBits[$i >> 5] | (1 << ($i & 0x1f)); + } + } + + $this->bits = $newBits; + } + + /** + * Returns a string representation of the bit array. + */ + public function __toString() : string + { + $result = ''; + + for ($i = 0; $i < $this->size; ++$i) { + if (0 === ($i & 0x07)) { + $result .= ' '; + } + + $result .= $this->get($i) ? 'X' : '.'; + } + + return $result; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php b/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php new file mode 100644 index 0000000..294afb4 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php @@ -0,0 +1,307 @@ + + */ + private SplFixedArray $bits; + + /** + * @throws InvalidArgumentException if a dimension is smaller than zero + */ + public function __construct(int $width, ?int $height = null) + { + if (null === $height) { + $height = $width; + } + + if ($width < 1 || $height < 1) { + throw new InvalidArgumentException('Both dimensions must be greater than zero'); + } + + $this->width = $width; + $this->height = $height; + $this->rowSize = ($width + 31) >> 5; + $this->bits = SplFixedArray::fromArray(array_fill(0, $this->rowSize * $height, 0)); + } + + /** + * Gets the requested bit, where true means black. + */ + public function get(int $x, int $y) : bool + { + $offset = $y * $this->rowSize + ($x >> 5); + return 0 !== (BitUtils::unsignedRightShift($this->bits[$offset], ($x & 0x1f)) & 1); + } + + /** + * Sets the given bit to true. + */ + public function set(int $x, int $y) : void + { + $offset = $y * $this->rowSize + ($x >> 5); + $this->bits[$offset] = $this->bits[$offset] | (1 << ($x & 0x1f)); + } + + /** + * Flips the given bit. + */ + public function flip(int $x, int $y) : void + { + $offset = $y * $this->rowSize + ($x >> 5); + $this->bits[$offset] = $this->bits[$offset] ^ (1 << ($x & 0x1f)); + } + + /** + * Clears all bits (set to false). + */ + public function clear() : void + { + $max = count($this->bits); + + for ($i = 0; $i < $max; ++$i) { + $this->bits[$i] = 0; + } + } + + /** + * Sets a square region of the bit matrix to true. + * + * @throws InvalidArgumentException if left or top are negative + * @throws InvalidArgumentException if width or height are smaller than 1 + * @throws InvalidArgumentException if region does not fit into the matix + */ + public function setRegion(int $left, int $top, int $width, int $height) : void + { + if ($top < 0 || $left < 0) { + throw new InvalidArgumentException('Left and top must be non-negative'); + } + + if ($height < 1 || $width < 1) { + throw new InvalidArgumentException('Width and height must be at least 1'); + } + + $right = $left + $width; + $bottom = $top + $height; + + if ($bottom > $this->height || $right > $this->width) { + throw new InvalidArgumentException('The region must fit inside the matrix'); + } + + for ($y = $top; $y < $bottom; ++$y) { + $offset = $y * $this->rowSize; + + for ($x = $left; $x < $right; ++$x) { + $index = $offset + ($x >> 5); + $this->bits[$index] = $this->bits[$index] | (1 << ($x & 0x1f)); + } + } + } + + /** + * A fast method to retrieve one row of data from the matrix as a BitArray. + */ + public function getRow(int $y, ?BitArray $row = null) : BitArray + { + if (null === $row || $row->getSize() < $this->width) { + $row = new BitArray($this->width); + } + + $offset = $y * $this->rowSize; + + for ($x = 0; $x < $this->rowSize; ++$x) { + $row->setBulk($x << 5, $this->bits[$offset + $x]); + } + + return $row; + } + + /** + * Sets a row of data from a BitArray. + */ + public function setRow(int $y, BitArray $row) : void + { + $bits = $row->getBitArray(); + + for ($i = 0; $i < $this->rowSize; ++$i) { + $this->bits[$y * $this->rowSize + $i] = $bits[$i]; + } + } + + /** + * This is useful in detecting the enclosing rectangle of a 'pure' barcode. + * + * @return int[]|null + */ + public function getEnclosingRectangle() : ?array + { + $left = $this->width; + $top = $this->height; + $right = -1; + $bottom = -1; + + for ($y = 0; $y < $this->height; ++$y) { + for ($x32 = 0; $x32 < $this->rowSize; ++$x32) { + $bits = $this->bits[$y * $this->rowSize + $x32]; + + if (0 !== $bits) { + if ($y < $top) { + $top = $y; + } + + if ($y > $bottom) { + $bottom = $y; + } + + if ($x32 * 32 < $left) { + $bit = 0; + + while (($bits << (31 - $bit)) === 0) { + $bit++; + } + + if (($x32 * 32 + $bit) < $left) { + $left = $x32 * 32 + $bit; + } + } + } + + if ($x32 * 32 + 31 > $right) { + $bit = 31; + + while (0 === BitUtils::unsignedRightShift($bits, $bit)) { + --$bit; + } + + if (($x32 * 32 + $bit) > $right) { + $right = $x32 * 32 + $bit; + } + } + } + } + + $width = $right - $left; + $height = $bottom - $top; + + if ($width < 0 || $height < 0) { + return null; + } + + return [$left, $top, $width, $height]; + } + + /** + * Gets the most top left set bit. + * + * This is useful in detecting a corner of a 'pure' barcode. + * + * @return int[]|null + */ + public function getTopLeftOnBit() : ?array + { + $bitsOffset = 0; + + while ($bitsOffset < count($this->bits) && 0 === $this->bits[$bitsOffset]) { + ++$bitsOffset; + } + + if (count($this->bits) === $bitsOffset) { + return null; + } + + $x = intdiv($bitsOffset, $this->rowSize); + $y = ($bitsOffset % $this->rowSize) << 5; + + $bits = $this->bits[$bitsOffset]; + $bit = 0; + + while (0 === ($bits << (31 - $bit))) { + ++$bit; + } + + $x += $bit; + + return [$x, $y]; + } + + /** + * Gets the most bottom right set bit. + * + * This is useful in detecting a corner of a 'pure' barcode. + * + * @return int[]|null + */ + public function getBottomRightOnBit() : ?array + { + $bitsOffset = count($this->bits) - 1; + + while ($bitsOffset >= 0 && 0 === $this->bits[$bitsOffset]) { + --$bitsOffset; + } + + if ($bitsOffset < 0) { + return null; + } + + $x = intdiv($bitsOffset, $this->rowSize); + $y = ($bitsOffset % $this->rowSize) << 5; + + $bits = $this->bits[$bitsOffset]; + $bit = 0; + + while (0 === BitUtils::unsignedRightShift($bits, $bit)) { + --$bit; + } + + $x += $bit; + + return [$x, $y]; + } + + /** + * Gets the width of the matrix, + */ + public function getWidth() : int + { + return $this->width; + } + + /** + * Gets the height of the matrix. + */ + public function getHeight() : int + { + return $this->height; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php b/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php new file mode 100644 index 0000000..0c575b4 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php @@ -0,0 +1,41 @@ +>>" in other + * languages. + */ + public static function unsignedRightShift(int $a, int $b) : int + { + return ( + $a >= 0 + ? $a >> $b + : (($a & 0x7fffffff) >> $b) | (0x40000000 >> ($b - 1)) + ); + } + + /** + * Gets the number of trailing zeros. + */ + public static function numberOfTrailingZeros(int $i) : int + { + $lastPos = strrpos(str_pad(decbin($i), 32, '0', STR_PAD_LEFT), '1'); + return $lastPos === false ? 32 : 31 - $lastPos; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php b/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php new file mode 100644 index 0000000..8b62b8c --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php @@ -0,0 +1,177 @@ +|null + */ + private static ?array $valueToEci; + + /** + * @var array|null + */ + private static ?array $nameToEci = null; + + /** + * @param int[] $values + */ + public function __construct(private readonly array $values, string ...$otherEncodingNames) + { + $this->otherEncodingNames = $otherEncodingNames; + } + + /** + * Returns the primary value. + */ + public function getValue() : int + { + return $this->values[0]; + } + + /** + * Gets character set ECI by value. + * + * Returns the representing ECI of a given value, or null if it is legal but unsupported. + * + * @throws InvalidArgumentException if value is not between 0 and 900 + */ + public static function getCharacterSetEciByValue(int $value) : ?self + { + if ($value < 0 || $value >= 900) { + throw new InvalidArgumentException('Value must be between 0 and 900'); + } + + $valueToEci = self::valueToEci(); + + if (! array_key_exists($value, $valueToEci)) { + return null; + } + + return $valueToEci[$value]; + } + + /** + * Returns character set ECI by name. + * + * Returns the representing ECI of a given name, or null if it is legal but unsupported + */ + public static function getCharacterSetEciByName(string $name) : ?self + { + $nameToEci = self::nameToEci(); + $name = strtolower($name); + + if (! array_key_exists($name, $nameToEci)) { + return null; + } + + return $nameToEci[$name]; + } + + private static function valueToEci() : array + { + if (null !== self::$valueToEci) { + return self::$valueToEci; + } + + self::$valueToEci = []; + + foreach (self::values() as $eci) { + foreach ($eci->values as $value) { + self::$valueToEci[$value] = $eci; + } + } + + return self::$valueToEci; + } + + private static function nameToEci() : array + { + if (null !== self::$nameToEci) { + return self::$nameToEci; + } + + self::$nameToEci = []; + + foreach (self::values() as $eci) { + self::$nameToEci[strtolower($eci->name())] = $eci; + + foreach ($eci->otherEncodingNames as $name) { + self::$nameToEci[strtolower($name)] = $eci; + } + } + + return self::$nameToEci; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php b/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php new file mode 100644 index 0000000..bc9e865 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php @@ -0,0 +1,33 @@ +count; + } + + /** + * Returns the number of data codewords. + */ + public function getDataCodewords() : int + { + return $this->dataCodewords; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php b/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php new file mode 100644 index 0000000..63c52a9 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php @@ -0,0 +1,66 @@ +ecBlocks = $ecBlocks; + } + + /** + * Returns the number of EC codewords per block. + */ + public function getEcCodewordsPerBlock() : int + { + return $this->ecCodewordsPerBlock; + } + + /** + * Returns the total number of EC block appearances. + */ + public function getNumBlocks() : int + { + $total = 0; + + foreach ($this->ecBlocks as $ecBlock) { + $total += $ecBlock->getCount(); + } + + return $total; + } + + /** + * Returns the total count of EC codewords. + */ + public function getTotalEcCodewords() : int + { + return $this->ecCodewordsPerBlock * $this->getNumBlocks(); + } + + /** + * Returns the EC blocks included in this collection. + * + * @return EcBlock[] + */ + public function getEcBlocks() : array + { + return $this->ecBlocks; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php b/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php new file mode 100644 index 0000000..ac84d66 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php @@ -0,0 +1,57 @@ +bits; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php b/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php new file mode 100644 index 0000000..6a5da0b --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php @@ -0,0 +1,196 @@ +ecLevel = ErrorCorrectionLevel::forBits(($formatInfo >> 3) & 0x3); + $this->dataMask = $formatInfo & 0x7; + } + + /** + * Checks how many bits are different between two integers. + */ + public static function numBitsDiffering(int $a, int $b) : int + { + $a ^= $b; + + return ( + self::BITS_SET_IN_HALF_BYTE[$a & 0xf] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 4) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 8) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 12) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 16) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 20) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 24) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 28) & 0xf)] + ); + } + + /** + * Decodes format information. + */ + public static function decodeFormatInformation(int $maskedFormatInfo1, int $maskedFormatInfo2) : ?self + { + $formatInfo = self::doDecodeFormatInformation($maskedFormatInfo1, $maskedFormatInfo2); + + if (null !== $formatInfo) { + return $formatInfo; + } + + // Should return null, but, some QR codes apparently do not mask this info. Try again by actually masking the + // pattern first. + return self::doDecodeFormatInformation( + $maskedFormatInfo1 ^ self::FORMAT_INFO_MASK_QR, + $maskedFormatInfo2 ^ self::FORMAT_INFO_MASK_QR + ); + } + + /** + * Internal method for decoding format information. + */ + private static function doDecodeFormatInformation(int $maskedFormatInfo1, int $maskedFormatInfo2) : ?self + { + $bestDifference = PHP_INT_MAX; + $bestFormatInfo = 0; + + foreach (self::FORMAT_INFO_DECODE_LOOKUP as $decodeInfo) { + $targetInfo = $decodeInfo[0]; + + if ($targetInfo === $maskedFormatInfo1 || $targetInfo === $maskedFormatInfo2) { + // Found an exact match + return new self($decodeInfo[1]); + } + + $bitsDifference = self::numBitsDiffering($maskedFormatInfo1, $targetInfo); + + if ($bitsDifference < $bestDifference) { + $bestFormatInfo = $decodeInfo[1]; + $bestDifference = $bitsDifference; + } + + if ($maskedFormatInfo1 !== $maskedFormatInfo2) { + // Also try the other option + $bitsDifference = self::numBitsDiffering($maskedFormatInfo2, $targetInfo); + + if ($bitsDifference < $bestDifference) { + $bestFormatInfo = $decodeInfo[1]; + $bestDifference = $bitsDifference; + } + } + } + + // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits differing means we found a match. + if ($bestDifference <= 3) { + return new self($bestFormatInfo); + } + + return null; + } + + /** + * Returns the error correction level. + */ + public function getErrorCorrectionLevel() : ErrorCorrectionLevel + { + return $this->ecLevel; + } + + /** + * Returns the data mask. + */ + public function getDataMask() : int + { + return $this->dataMask; + } + + /** + * Hashes the code of the EC level. + */ + public function hashCode() : int + { + return ($this->ecLevel->getBits() << 3) | $this->dataMask; + } + + /** + * Verifies if this instance equals another one. + */ + public function equals(self $other) : bool + { + return ( + $this->ecLevel === $other->ecLevel + && $this->dataMask === $other->dataMask + ); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/Mode.php b/vendor/bacon/bacon-qr-code/src/Common/Mode.php new file mode 100644 index 0000000..f5fb153 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/Mode.php @@ -0,0 +1,69 @@ +getVersionNumber(); + + if ($number <= 9) { + $offset = 0; + } elseif ($number <= 26) { + $offset = 1; + } else { + $offset = 2; + } + + return $this->characterCountBitsForVersions[$offset]; + } + + /** + * Returns the four bits used to encode this mode. + */ + public function getBits() : int + { + return $this->bits; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php b/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php new file mode 100644 index 0000000..d16a75e --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php @@ -0,0 +1,454 @@ + 8) { + throw new InvalidArgumentException('Symbol size must be between 0 and 8'); + } + + if ($firstRoot < 0 || $firstRoot >= (1 << $symbolSize)) { + throw new InvalidArgumentException('First root must be between 0 and ' . (1 << $symbolSize)); + } + + if ($numRoots < 0 || $numRoots >= (1 << $symbolSize)) { + throw new InvalidArgumentException('Num roots must be between 0 and ' . (1 << $symbolSize)); + } + + if ($padding < 0 || $padding >= ((1 << $symbolSize) - 1 - $numRoots)) { + throw new InvalidArgumentException( + 'Padding must be between 0 and ' . ((1 << $symbolSize) - 1 - $numRoots) + ); + } + + $this->symbolSize = $symbolSize; + $this->blockSize = (1 << $symbolSize) - 1; + $this->padding = $padding; + $this->alphaTo = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); + $this->indexOf = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); + + // Generate galous field lookup table + $this->indexOf[0] = $this->blockSize; + $this->alphaTo[$this->blockSize] = 0; + + $sr = 1; + + for ($i = 0; $i < $this->blockSize; ++$i) { + $this->indexOf[$sr] = $i; + $this->alphaTo[$i] = $sr; + + $sr <<= 1; + + if ($sr & (1 << $symbolSize)) { + $sr ^= $gfPoly; + } + + $sr &= $this->blockSize; + } + + if (1 !== $sr) { + throw new RuntimeException('Field generator polynomial is not primitive'); + } + + // Form RS code generator polynomial from its roots + $this->generatorPoly = SplFixedArray::fromArray(array_fill(0, $numRoots + 1, 0), false); + $this->firstRoot = $firstRoot; + $this->primitive = $primitive; + $this->numRoots = $numRoots; + + // Find prim-th root of 1, used in decoding + for ($iPrimitive = 1; ($iPrimitive % $primitive) !== 0; $iPrimitive += $this->blockSize) { + } + + $this->iPrimitive = intdiv($iPrimitive, $primitive); + + $this->generatorPoly[0] = 1; + + for ($i = 0, $root = $firstRoot * $primitive; $i < $numRoots; ++$i, $root += $primitive) { + $this->generatorPoly[$i + 1] = 1; + + for ($j = $i; $j > 0; $j--) { + if ($this->generatorPoly[$j] !== 0) { + $this->generatorPoly[$j] = $this->generatorPoly[$j - 1] ^ $this->alphaTo[ + $this->modNn($this->indexOf[$this->generatorPoly[$j]] + $root) + ]; + } else { + $this->generatorPoly[$j] = $this->generatorPoly[$j - 1]; + } + } + + $this->generatorPoly[$j] = $this->alphaTo[$this->modNn($this->indexOf[$this->generatorPoly[0]] + $root)]; + } + + // Convert generator poly to index form for quicker encoding + for ($i = 0; $i <= $numRoots; ++$i) { + $this->generatorPoly[$i] = $this->indexOf[$this->generatorPoly[$i]]; + } + } + + /** + * Encodes data and writes result back into parity array. + */ + public function encode(SplFixedArray $data, SplFixedArray $parity) : void + { + for ($i = 0; $i < $this->numRoots; ++$i) { + $parity[$i] = 0; + } + + $iterations = $this->blockSize - $this->numRoots - $this->padding; + + for ($i = 0; $i < $iterations; ++$i) { + $feedback = $this->indexOf[$data[$i] ^ $parity[0]]; + + if ($feedback !== $this->blockSize) { + // Feedback term is non-zero + $feedback = $this->modNn($this->blockSize - $this->generatorPoly[$this->numRoots] + $feedback); + + for ($j = 1; $j < $this->numRoots; ++$j) { + $parity[$j] = $parity[$j] ^ $this->alphaTo[ + $this->modNn($feedback + $this->generatorPoly[$this->numRoots - $j]) + ]; + } + } + + for ($j = 0; $j < $this->numRoots - 1; ++$j) { + $parity[$j] = $parity[$j + 1]; + } + + if ($feedback !== $this->blockSize) { + $parity[$this->numRoots - 1] = $this->alphaTo[$this->modNn($feedback + $this->generatorPoly[0])]; + } else { + $parity[$this->numRoots - 1] = 0; + } + } + } + + /** + * Decodes received data. + */ + public function decode(SplFixedArray $data, ?SplFixedArray $erasures = null) : ?int + { + // This speeds up the initialization a bit. + $numRootsPlusOne = SplFixedArray::fromArray(array_fill(0, $this->numRoots + 1, 0), false); + $numRoots = SplFixedArray::fromArray(array_fill(0, $this->numRoots, 0), false); + + $lambda = clone $numRootsPlusOne; + $b = clone $numRootsPlusOne; + $t = clone $numRootsPlusOne; + $omega = clone $numRootsPlusOne; + $root = clone $numRoots; + $loc = clone $numRoots; + + $numErasures = (null !== $erasures ? count($erasures) : 0); + + // Form the Syndromes; i.e., evaluate data(x) at roots of g(x) + $syndromes = SplFixedArray::fromArray(array_fill(0, $this->numRoots, $data[0]), false); + + for ($i = 1; $i < $this->blockSize - $this->padding; ++$i) { + for ($j = 0; $j < $this->numRoots; ++$j) { + if ($syndromes[$j] === 0) { + $syndromes[$j] = $data[$i]; + } else { + $syndromes[$j] = $data[$i] ^ $this->alphaTo[ + $this->modNn($this->indexOf[$syndromes[$j]] + ($this->firstRoot + $j) * $this->primitive) + ]; + } + } + } + + // Convert syndromes to index form, checking for nonzero conditions + $syndromeError = 0; + + for ($i = 0; $i < $this->numRoots; ++$i) { + $syndromeError |= $syndromes[$i]; + $syndromes[$i] = $this->indexOf[$syndromes[$i]]; + } + + if (! $syndromeError) { + // If syndrome is zero, data[] is a codeword and there are no errors to correct, so return data[] + // unmodified. + return 0; + } + + $lambda[0] = 1; + + if ($numErasures > 0) { + // Init lambda to be the erasure locator polynomial + $lambda[1] = $this->alphaTo[$this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[0]))]; + + for ($i = 1; $i < $numErasures; ++$i) { + $u = $this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[$i])); + + for ($j = $i + 1; $j > 0; --$j) { + $tmp = $this->indexOf[$lambda[$j - 1]]; + + if ($tmp !== $this->blockSize) { + $lambda[$j] = $lambda[$j] ^ $this->alphaTo[$this->modNn($u + $tmp)]; + } + } + } + } + + for ($i = 0; $i <= $this->numRoots; ++$i) { + $b[$i] = $this->indexOf[$lambda[$i]]; + } + + // Begin Berlekamp-Massey algorithm to determine error+erasure locator polynomial + $r = $numErasures; + $el = $numErasures; + + while (++$r <= $this->numRoots) { + // Compute discrepancy at the r-th step in poly form + $discrepancyR = 0; + + for ($i = 0; $i < $r; ++$i) { + if ($lambda[$i] !== 0 && $syndromes[$r - $i - 1] !== $this->blockSize) { + $discrepancyR ^= $this->alphaTo[ + $this->modNn($this->indexOf[$lambda[$i]] + $syndromes[$r - $i - 1]) + ]; + } + } + + $discrepancyR = $this->indexOf[$discrepancyR]; + + if ($discrepancyR === $this->blockSize) { + $tmp = $b->toArray(); + array_unshift($tmp, $this->blockSize); + array_pop($tmp); + $b = SplFixedArray::fromArray($tmp, false); + continue; + } + + $t[0] = $lambda[0]; + + for ($i = 0; $i < $this->numRoots; ++$i) { + if ($b[$i] !== $this->blockSize) { + $t[$i + 1] = $lambda[$i + 1] ^ $this->alphaTo[$this->modNn($discrepancyR + $b[$i])]; + } else { + $t[$i + 1] = $lambda[$i + 1]; + } + } + + if (2 * $el <= $r + $numErasures - 1) { + $el = $r + $numErasures - $el; + + for ($i = 0; $i <= $this->numRoots; ++$i) { + $b[$i] = ( + $lambda[$i] === 0 + ? $this->blockSize + : $this->modNn($this->indexOf[$lambda[$i]] - $discrepancyR + $this->blockSize) + ); + } + } else { + $tmp = $b->toArray(); + array_unshift($tmp, $this->blockSize); + array_pop($tmp); + $b = SplFixedArray::fromArray($tmp, false); + } + + $lambda = clone $t; + } + + // Convert lambda to index form and compute deg(lambda(x)) + $degLambda = 0; + + for ($i = 0; $i <= $this->numRoots; ++$i) { + $lambda[$i] = $this->indexOf[$lambda[$i]]; + + if ($lambda[$i] !== $this->blockSize) { + $degLambda = $i; + } + } + + // Find roots of the error+erasure locator polynomial by Chien search. + $reg = clone $lambda; + $reg[0] = 0; + $count = 0; + $i = 1; + + for ($k = $this->iPrimitive - 1; $i <= $this->blockSize; ++$i, $k = $this->modNn($k + $this->iPrimitive)) { + $q = 1; + + for ($j = $degLambda; $j > 0; $j--) { + if ($reg[$j] !== $this->blockSize) { + $reg[$j] = $this->modNn($reg[$j] + $j); + $q ^= $this->alphaTo[$reg[$j]]; + } + } + + if ($q !== 0) { + // Not a root + continue; + } + + // Store root (index-form) and error location number + $root[$count] = $i; + $loc[$count] = $k; + + if (++$count === $degLambda) { + break; + } + } + + if ($degLambda !== $count) { + // deg(lambda) unequal to number of roots: uncorrectable error detected + return null; + } + + // Compute err+eras evaluate poly omega(x) = s(x)*lambda(x) (modulo x**numRoots). In index form. Also find + // deg(omega). + $degOmega = $degLambda - 1; + + for ($i = 0; $i <= $degOmega; ++$i) { + $tmp = 0; + + for ($j = $i; $j >= 0; --$j) { + if ($syndromes[$i - $j] !== $this->blockSize && $lambda[$j] !== $this->blockSize) { + $tmp ^= $this->alphaTo[$this->modNn($syndromes[$i - $j] + $lambda[$j])]; + } + } + + $omega[$i] = $this->indexOf[$tmp]; + } + + // Compute error values in poly-form. num1 = omega(inv(X(l))), num2 = inv(X(l))**(firstRoot-1) and + // den = lambda_pr(inv(X(l))) all in poly form. + for ($j = $count - 1; $j >= 0; --$j) { + $num1 = 0; + + for ($i = $degOmega; $i >= 0; $i--) { + if ($omega[$i] !== $this->blockSize) { + $num1 ^= $this->alphaTo[$this->modNn($omega[$i] + $i * $root[$j])]; + } + } + + $num2 = $this->alphaTo[$this->modNn($root[$j] * ($this->firstRoot - 1) + $this->blockSize)]; + $den = 0; + + // lambda[i+1] for i even is the formal derivativelambda_pr of lambda[i] + for ($i = min($degLambda, $this->numRoots - 1) & ~1; $i >= 0; $i -= 2) { + if ($lambda[$i + 1] !== $this->blockSize) { + $den ^= $this->alphaTo[$this->modNn($lambda[$i + 1] + $i * $root[$j])]; + } + } + + // Apply error to data + if ($num1 !== 0 && $loc[$j] >= $this->padding) { + $data[$loc[$j] - $this->padding] = $data[$loc[$j] - $this->padding] ^ ( + $this->alphaTo[ + $this->modNn( + $this->indexOf[$num1] + $this->indexOf[$num2] + $this->blockSize - $this->indexOf[$den] + ) + ] + ); + } + } + + if (null !== $erasures) { + if (count($erasures) < $count) { + $erasures->setSize($count); + } + + for ($i = 0; $i < $count; $i++) { + $erasures[$i] = $loc[$i]; + } + } + + return $count; + } + + /** + * Computes $x % GF_SIZE, where GF_SIZE is 2**GF_BITS - 1, without a slow divide. + */ + private function modNn(int $x) : int + { + while ($x >= $this->blockSize) { + $x -= $this->blockSize; + $x = ($x >> $this->symbolSize) + ($x & $this->blockSize); + } + + return $x; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Common/Version.php b/vendor/bacon/bacon-qr-code/src/Common/Version.php new file mode 100644 index 0000000..68d3d16 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Common/Version.php @@ -0,0 +1,592 @@ +|null + */ + private static ?array $versions = null; + + /** + * @param int[] $alignmentPatternCenters + */ + private function __construct( + int $versionNumber, + array $alignmentPatternCenters, + EcBlocks ...$ecBlocks + ) { + $this->versionNumber = $versionNumber; + $this->alignmentPatternCenters = $alignmentPatternCenters; + $this->ecBlocks = $ecBlocks; + + $totalCodewords = 0; + $ecCodewords = $ecBlocks[0]->getEcCodewordsPerBlock(); + + foreach ($ecBlocks[0]->getEcBlocks() as $ecBlock) { + $totalCodewords += $ecBlock->getCount() * ($ecBlock->getDataCodewords() + $ecCodewords); + } + + $this->totalCodewords = $totalCodewords; + } + + /** + * Returns the version number. + */ + public function getVersionNumber() : int + { + return $this->versionNumber; + } + + /** + * Returns the alignment pattern centers. + * + * @return int[] + */ + public function getAlignmentPatternCenters() : array + { + return $this->alignmentPatternCenters; + } + + /** + * Returns the total number of codewords. + */ + public function getTotalCodewords() : int + { + return $this->totalCodewords; + } + + /** + * Calculates the dimension for the current version. + */ + public function getDimensionForVersion() : int + { + return 17 + 4 * $this->versionNumber; + } + + /** + * Returns the number of EC blocks for a specific EC level. + */ + public function getEcBlocksForLevel(ErrorCorrectionLevel $ecLevel) : EcBlocks + { + return $this->ecBlocks[$ecLevel->ordinal()]; + } + + /** + * Gets a provisional version number for a specific dimension. + * + * @throws InvalidArgumentException if dimension is not 1 mod 4 + */ + public static function getProvisionalVersionForDimension(int $dimension) : self + { + if (1 !== $dimension % 4) { + throw new InvalidArgumentException('Dimension is not 1 mod 4'); + } + + return self::getVersionForNumber(intdiv($dimension - 17, 4)); + } + + /** + * Gets a version instance for a specific version number. + * + * @throws InvalidArgumentException if version number is out of range + */ + public static function getVersionForNumber(int $versionNumber) : self + { + if ($versionNumber < 1 || $versionNumber > 40) { + throw new InvalidArgumentException('Version number must be between 1 and 40'); + } + + return self::versions()[$versionNumber - 1]; + } + + /** + * Decodes version information from an integer and returns the version. + */ + public static function decodeVersionInformation(int $versionBits) : ?self + { + $bestDifference = PHP_INT_MAX; + $bestVersion = 0; + + foreach (self::VERSION_DECODE_INFO as $i => $targetVersion) { + if ($targetVersion === $versionBits) { + return self::getVersionForNumber($i + 7); + } + + $bitsDifference = FormatInformation::numBitsDiffering($versionBits, $targetVersion); + + if ($bitsDifference < $bestDifference) { + $bestVersion = $i + 7; + $bestDifference = $bitsDifference; + } + } + + if ($bestDifference <= 3) { + return self::getVersionForNumber($bestVersion); + } + + return null; + } + + /** + * Builds the function pattern for the current version. + */ + public function buildFunctionPattern() : BitMatrix + { + $dimension = $this->getDimensionForVersion(); + $bitMatrix = new BitMatrix($dimension); + + // Top left finder pattern + separator + format + $bitMatrix->setRegion(0, 0, 9, 9); + // Top right finder pattern + separator + format + $bitMatrix->setRegion($dimension - 8, 0, 8, 9); + // Bottom left finder pattern + separator + format + $bitMatrix->setRegion(0, $dimension - 8, 9, 8); + + // Alignment patterns + $max = count($this->alignmentPatternCenters); + + for ($x = 0; $x < $max; ++$x) { + $i = $this->alignmentPatternCenters[$x] - 2; + + for ($y = 0; $y < $max; ++$y) { + if (($x === 0 && ($y === 0 || $y === $max - 1)) || ($x === $max - 1 && $y === 0)) { + // No alignment patterns near the three finder paterns + continue; + } + + $bitMatrix->setRegion($this->alignmentPatternCenters[$y] - 2, $i, 5, 5); + } + } + + // Vertical timing pattern + $bitMatrix->setRegion(6, 9, 1, $dimension - 17); + // Horizontal timing pattern + $bitMatrix->setRegion(9, 6, $dimension - 17, 1); + + if ($this->versionNumber > 6) { + // Version info, top right + $bitMatrix->setRegion($dimension - 11, 0, 3, 6); + // Version info, bottom left + $bitMatrix->setRegion(0, $dimension - 11, 6, 3); + } + + return $bitMatrix; + } + + /** + * Returns a string representation for the version. + */ + public function __toString() : string + { + return (string) $this->versionNumber; + } + + /** + * Build and cache a specific version. + * + * See ISO 18004:2006 6.5.1 Table 9. + * + * @return array + */ + private static function versions() : array + { + if (null !== self::$versions) { + return self::$versions; + } + + return self::$versions = [ + new self( + 1, + [], + new EcBlocks(7, new EcBlock(1, 19)), + new EcBlocks(10, new EcBlock(1, 16)), + new EcBlocks(13, new EcBlock(1, 13)), + new EcBlocks(17, new EcBlock(1, 9)) + ), + new self( + 2, + [6, 18], + new EcBlocks(10, new EcBlock(1, 34)), + new EcBlocks(16, new EcBlock(1, 28)), + new EcBlocks(22, new EcBlock(1, 22)), + new EcBlocks(28, new EcBlock(1, 16)) + ), + new self( + 3, + [6, 22], + new EcBlocks(15, new EcBlock(1, 55)), + new EcBlocks(26, new EcBlock(1, 44)), + new EcBlocks(18, new EcBlock(2, 17)), + new EcBlocks(22, new EcBlock(2, 13)) + ), + new self( + 4, + [6, 26], + new EcBlocks(20, new EcBlock(1, 80)), + new EcBlocks(18, new EcBlock(2, 32)), + new EcBlocks(26, new EcBlock(2, 24)), + new EcBlocks(16, new EcBlock(4, 9)) + ), + new self( + 5, + [6, 30], + new EcBlocks(26, new EcBlock(1, 108)), + new EcBlocks(24, new EcBlock(2, 43)), + new EcBlocks(18, new EcBlock(2, 15), new EcBlock(2, 16)), + new EcBlocks(22, new EcBlock(2, 11), new EcBlock(2, 12)) + ), + new self( + 6, + [6, 34], + new EcBlocks(18, new EcBlock(2, 68)), + new EcBlocks(16, new EcBlock(4, 27)), + new EcBlocks(24, new EcBlock(4, 19)), + new EcBlocks(28, new EcBlock(4, 15)) + ), + new self( + 7, + [6, 22, 38], + new EcBlocks(20, new EcBlock(2, 78)), + new EcBlocks(18, new EcBlock(4, 31)), + new EcBlocks(18, new EcBlock(2, 14), new EcBlock(4, 15)), + new EcBlocks(26, new EcBlock(4, 13), new EcBlock(1, 14)) + ), + new self( + 8, + [6, 24, 42], + new EcBlocks(24, new EcBlock(2, 97)), + new EcBlocks(22, new EcBlock(2, 38), new EcBlock(2, 39)), + new EcBlocks(22, new EcBlock(4, 18), new EcBlock(2, 19)), + new EcBlocks(26, new EcBlock(4, 14), new EcBlock(2, 15)) + ), + new self( + 9, + [6, 26, 46], + new EcBlocks(30, new EcBlock(2, 116)), + new EcBlocks(22, new EcBlock(3, 36), new EcBlock(2, 37)), + new EcBlocks(20, new EcBlock(4, 16), new EcBlock(4, 17)), + new EcBlocks(24, new EcBlock(4, 12), new EcBlock(4, 13)) + ), + new self( + 10, + [6, 28, 50], + new EcBlocks(18, new EcBlock(2, 68), new EcBlock(2, 69)), + new EcBlocks(26, new EcBlock(4, 43), new EcBlock(1, 44)), + new EcBlocks(24, new EcBlock(6, 19), new EcBlock(2, 20)), + new EcBlocks(28, new EcBlock(6, 15), new EcBlock(2, 16)) + ), + new self( + 11, + [6, 30, 54], + new EcBlocks(20, new EcBlock(4, 81)), + new EcBlocks(30, new EcBlock(1, 50), new EcBlock(4, 51)), + new EcBlocks(28, new EcBlock(4, 22), new EcBlock(4, 23)), + new EcBlocks(24, new EcBlock(3, 12), new EcBlock(8, 13)) + ), + new self( + 12, + [6, 32, 58], + new EcBlocks(24, new EcBlock(2, 92), new EcBlock(2, 93)), + new EcBlocks(22, new EcBlock(6, 36), new EcBlock(2, 37)), + new EcBlocks(26, new EcBlock(4, 20), new EcBlock(6, 21)), + new EcBlocks(28, new EcBlock(7, 14), new EcBlock(4, 15)) + ), + new self( + 13, + [6, 34, 62], + new EcBlocks(26, new EcBlock(4, 107)), + new EcBlocks(22, new EcBlock(8, 37), new EcBlock(1, 38)), + new EcBlocks(24, new EcBlock(8, 20), new EcBlock(4, 21)), + new EcBlocks(22, new EcBlock(12, 11), new EcBlock(4, 12)) + ), + new self( + 14, + [6, 26, 46, 66], + new EcBlocks(30, new EcBlock(3, 115), new EcBlock(1, 116)), + new EcBlocks(24, new EcBlock(4, 40), new EcBlock(5, 41)), + new EcBlocks(20, new EcBlock(11, 16), new EcBlock(5, 17)), + new EcBlocks(24, new EcBlock(11, 12), new EcBlock(5, 13)) + ), + new self( + 15, + [6, 26, 48, 70], + new EcBlocks(22, new EcBlock(5, 87), new EcBlock(1, 88)), + new EcBlocks(24, new EcBlock(5, 41), new EcBlock(5, 42)), + new EcBlocks(30, new EcBlock(5, 24), new EcBlock(7, 25)), + new EcBlocks(24, new EcBlock(11, 12), new EcBlock(7, 13)) + ), + new self( + 16, + [6, 26, 50, 74], + new EcBlocks(24, new EcBlock(5, 98), new EcBlock(1, 99)), + new EcBlocks(28, new EcBlock(7, 45), new EcBlock(3, 46)), + new EcBlocks(24, new EcBlock(15, 19), new EcBlock(2, 20)), + new EcBlocks(30, new EcBlock(3, 15), new EcBlock(13, 16)) + ), + new self( + 17, + [6, 30, 54, 78], + new EcBlocks(28, new EcBlock(1, 107), new EcBlock(5, 108)), + new EcBlocks(28, new EcBlock(10, 46), new EcBlock(1, 47)), + new EcBlocks(28, new EcBlock(1, 22), new EcBlock(15, 23)), + new EcBlocks(28, new EcBlock(2, 14), new EcBlock(17, 15)) + ), + new self( + 18, + [6, 30, 56, 82], + new EcBlocks(30, new EcBlock(5, 120), new EcBlock(1, 121)), + new EcBlocks(26, new EcBlock(9, 43), new EcBlock(4, 44)), + new EcBlocks(28, new EcBlock(17, 22), new EcBlock(1, 23)), + new EcBlocks(28, new EcBlock(2, 14), new EcBlock(19, 15)) + ), + new self( + 19, + [6, 30, 58, 86], + new EcBlocks(28, new EcBlock(3, 113), new EcBlock(4, 114)), + new EcBlocks(26, new EcBlock(3, 44), new EcBlock(11, 45)), + new EcBlocks(26, new EcBlock(17, 21), new EcBlock(4, 22)), + new EcBlocks(26, new EcBlock(9, 13), new EcBlock(16, 14)) + ), + new self( + 20, + [6, 34, 62, 90], + new EcBlocks(28, new EcBlock(3, 107), new EcBlock(5, 108)), + new EcBlocks(26, new EcBlock(3, 41), new EcBlock(13, 42)), + new EcBlocks(30, new EcBlock(15, 24), new EcBlock(5, 25)), + new EcBlocks(28, new EcBlock(15, 15), new EcBlock(10, 16)) + ), + new self( + 21, + [6, 28, 50, 72, 94], + new EcBlocks(28, new EcBlock(4, 116), new EcBlock(4, 117)), + new EcBlocks(26, new EcBlock(17, 42)), + new EcBlocks(28, new EcBlock(17, 22), new EcBlock(6, 23)), + new EcBlocks(30, new EcBlock(19, 16), new EcBlock(6, 17)) + ), + new self( + 22, + [6, 26, 50, 74, 98], + new EcBlocks(28, new EcBlock(2, 111), new EcBlock(7, 112)), + new EcBlocks(28, new EcBlock(17, 46)), + new EcBlocks(30, new EcBlock(7, 24), new EcBlock(16, 25)), + new EcBlocks(24, new EcBlock(34, 13)) + ), + new self( + 23, + [6, 30, 54, 78, 102], + new EcBlocks(30, new EcBlock(4, 121), new EcBlock(5, 122)), + new EcBlocks(28, new EcBlock(4, 47), new EcBlock(14, 48)), + new EcBlocks(30, new EcBlock(11, 24), new EcBlock(14, 25)), + new EcBlocks(30, new EcBlock(16, 15), new EcBlock(14, 16)) + ), + new self( + 24, + [6, 28, 54, 80, 106], + new EcBlocks(30, new EcBlock(6, 117), new EcBlock(4, 118)), + new EcBlocks(28, new EcBlock(6, 45), new EcBlock(14, 46)), + new EcBlocks(30, new EcBlock(11, 24), new EcBlock(16, 25)), + new EcBlocks(30, new EcBlock(30, 16), new EcBlock(2, 17)) + ), + new self( + 25, + [6, 32, 58, 84, 110], + new EcBlocks(26, new EcBlock(8, 106), new EcBlock(4, 107)), + new EcBlocks(28, new EcBlock(8, 47), new EcBlock(13, 48)), + new EcBlocks(30, new EcBlock(7, 24), new EcBlock(22, 25)), + new EcBlocks(30, new EcBlock(22, 15), new EcBlock(13, 16)) + ), + new self( + 26, + [6, 30, 58, 86, 114], + new EcBlocks(28, new EcBlock(10, 114), new EcBlock(2, 115)), + new EcBlocks(28, new EcBlock(19, 46), new EcBlock(4, 47)), + new EcBlocks(28, new EcBlock(28, 22), new EcBlock(6, 23)), + new EcBlocks(30, new EcBlock(33, 16), new EcBlock(4, 17)) + ), + new self( + 27, + [6, 34, 62, 90, 118], + new EcBlocks(30, new EcBlock(8, 122), new EcBlock(4, 123)), + new EcBlocks(28, new EcBlock(22, 45), new EcBlock(3, 46)), + new EcBlocks(30, new EcBlock(8, 23), new EcBlock(26, 24)), + new EcBlocks(30, new EcBlock(12, 15), new EcBlock(28, 16)) + ), + new self( + 28, + [6, 26, 50, 74, 98, 122], + new EcBlocks(30, new EcBlock(3, 117), new EcBlock(10, 118)), + new EcBlocks(28, new EcBlock(3, 45), new EcBlock(23, 46)), + new EcBlocks(30, new EcBlock(4, 24), new EcBlock(31, 25)), + new EcBlocks(30, new EcBlock(11, 15), new EcBlock(31, 16)) + ), + new self( + 29, + [6, 30, 54, 78, 102, 126], + new EcBlocks(30, new EcBlock(7, 116), new EcBlock(7, 117)), + new EcBlocks(28, new EcBlock(21, 45), new EcBlock(7, 46)), + new EcBlocks(30, new EcBlock(1, 23), new EcBlock(37, 24)), + new EcBlocks(30, new EcBlock(19, 15), new EcBlock(26, 16)) + ), + new self( + 30, + [6, 26, 52, 78, 104, 130], + new EcBlocks(30, new EcBlock(5, 115), new EcBlock(10, 116)), + new EcBlocks(28, new EcBlock(19, 47), new EcBlock(10, 48)), + new EcBlocks(30, new EcBlock(15, 24), new EcBlock(25, 25)), + new EcBlocks(30, new EcBlock(23, 15), new EcBlock(25, 16)) + ), + new self( + 31, + [6, 30, 56, 82, 108, 134], + new EcBlocks(30, new EcBlock(13, 115), new EcBlock(3, 116)), + new EcBlocks(28, new EcBlock(2, 46), new EcBlock(29, 47)), + new EcBlocks(30, new EcBlock(42, 24), new EcBlock(1, 25)), + new EcBlocks(30, new EcBlock(23, 15), new EcBlock(28, 16)) + ), + new self( + 32, + [6, 34, 60, 86, 112, 138], + new EcBlocks(30, new EcBlock(17, 115)), + new EcBlocks(28, new EcBlock(10, 46), new EcBlock(23, 47)), + new EcBlocks(30, new EcBlock(10, 24), new EcBlock(35, 25)), + new EcBlocks(30, new EcBlock(19, 15), new EcBlock(35, 16)) + ), + new self( + 33, + [6, 30, 58, 86, 114, 142], + new EcBlocks(30, new EcBlock(17, 115), new EcBlock(1, 116)), + new EcBlocks(28, new EcBlock(14, 46), new EcBlock(21, 47)), + new EcBlocks(30, new EcBlock(29, 24), new EcBlock(19, 25)), + new EcBlocks(30, new EcBlock(11, 15), new EcBlock(46, 16)) + ), + new self( + 34, + [6, 34, 62, 90, 118, 146], + new EcBlocks(30, new EcBlock(13, 115), new EcBlock(6, 116)), + new EcBlocks(28, new EcBlock(14, 46), new EcBlock(23, 47)), + new EcBlocks(30, new EcBlock(44, 24), new EcBlock(7, 25)), + new EcBlocks(30, new EcBlock(59, 16), new EcBlock(1, 17)) + ), + new self( + 35, + [6, 30, 54, 78, 102, 126, 150], + new EcBlocks(30, new EcBlock(12, 121), new EcBlock(7, 122)), + new EcBlocks(28, new EcBlock(12, 47), new EcBlock(26, 48)), + new EcBlocks(30, new EcBlock(39, 24), new EcBlock(14, 25)), + new EcBlocks(30, new EcBlock(22, 15), new EcBlock(41, 16)) + ), + new self( + 36, + [6, 24, 50, 76, 102, 128, 154], + new EcBlocks(30, new EcBlock(6, 121), new EcBlock(14, 122)), + new EcBlocks(28, new EcBlock(6, 47), new EcBlock(34, 48)), + new EcBlocks(30, new EcBlock(46, 24), new EcBlock(10, 25)), + new EcBlocks(30, new EcBlock(2, 15), new EcBlock(64, 16)) + ), + new self( + 37, + [6, 28, 54, 80, 106, 132, 158], + new EcBlocks(30, new EcBlock(17, 122), new EcBlock(4, 123)), + new EcBlocks(28, new EcBlock(29, 46), new EcBlock(14, 47)), + new EcBlocks(30, new EcBlock(49, 24), new EcBlock(10, 25)), + new EcBlocks(30, new EcBlock(24, 15), new EcBlock(46, 16)) + ), + new self( + 38, + [6, 32, 58, 84, 110, 136, 162], + new EcBlocks(30, new EcBlock(4, 122), new EcBlock(18, 123)), + new EcBlocks(28, new EcBlock(13, 46), new EcBlock(32, 47)), + new EcBlocks(30, new EcBlock(48, 24), new EcBlock(14, 25)), + new EcBlocks(30, new EcBlock(42, 15), new EcBlock(32, 16)) + ), + new self( + 39, + [6, 26, 54, 82, 110, 138, 166], + new EcBlocks(30, new EcBlock(20, 117), new EcBlock(4, 118)), + new EcBlocks(28, new EcBlock(40, 47), new EcBlock(7, 48)), + new EcBlocks(30, new EcBlock(43, 24), new EcBlock(22, 25)), + new EcBlocks(30, new EcBlock(10, 15), new EcBlock(67, 16)) + ), + new self( + 40, + [6, 30, 58, 86, 114, 142, 170], + new EcBlocks(30, new EcBlock(19, 118), new EcBlock(6, 119)), + new EcBlocks(28, new EcBlock(18, 47), new EcBlock(31, 48)), + new EcBlocks(30, new EcBlock(34, 24), new EcBlock(34, 25)), + new EcBlocks(30, new EcBlock(20, 15), new EcBlock(61, 16)) + ), + ]; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php b/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php new file mode 100644 index 0000000..b1dc5c4 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php @@ -0,0 +1,44 @@ + $dataBytes Data bytes in the block. + * @param SplFixedArray $errorCorrectionBytes Error correction bytes in the block. + */ + public function __construct( + private readonly SplFixedArray $dataBytes, + private readonly SplFixedArray $errorCorrectionBytes + ) { + } + + /** + * Gets the data bytes. + * + * @return SplFixedArray + */ + public function getDataBytes() : SplFixedArray + { + return $this->dataBytes; + } + + /** + * Gets the error correction bytes. + * + * @return SplFixedArray + */ + public function getErrorCorrectionBytes() : SplFixedArray + { + return $this->errorCorrectionBytes; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php b/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php new file mode 100644 index 0000000..eefcf1c --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php @@ -0,0 +1,134 @@ +> + */ + private SplFixedArray $bytes; + + public function __construct(private readonly int $width, private readonly int $height) + { + $this->bytes = new SplFixedArray($height); + + for ($y = 0; $y < $height; ++$y) { + $this->bytes[$y] = SplFixedArray::fromArray(array_fill(0, $width, 0)); + } + } + + /** + * Gets the width of the matrix. + */ + public function getWidth() : int + { + return $this->width; + } + + /** + * Gets the height of the matrix. + */ + public function getHeight() : int + { + return $this->height; + } + + /** + * Gets the internal representation of the matrix. + * + * @return SplFixedArray> + */ + public function getArray() : SplFixedArray + { + return $this->bytes; + } + + /** + * @return Traversable + */ + public function getBytes() : Traversable + { + foreach ($this->bytes as $row) { + foreach ($row as $byte) { + yield $byte; + } + } + } + + /** + * Gets the byte for a specific position. + */ + public function get(int $x, int $y) : int + { + return $this->bytes[$y][$x]; + } + + /** + * Sets the byte for a specific position. + */ + public function set(int $x, int $y, int $value) : void + { + $this->bytes[$y][$x] = $value; + } + + /** + * Clears the matrix with a specific value. + */ + public function clear(int $value) : void + { + for ($y = 0; $y < $this->height; ++$y) { + for ($x = 0; $x < $this->width; ++$x) { + $this->bytes[$y][$x] = $value; + } + } + } + + public function __clone() + { + $this->bytes = clone $this->bytes; + + foreach ($this->bytes as $index => $row) { + $this->bytes[$index] = clone $row; + } + } + + /** + * Returns a string representation of the matrix. + */ + public function __toString() : string + { + $result = ''; + + for ($y = 0; $y < $this->height; $y++) { + for ($x = 0; $x < $this->width; $x++) { + switch ($this->bytes[$y][$x]) { + case 0: + $result .= ' 0'; + break; + + case 1: + $result .= ' 1'; + break; + + default: + $result .= ' '; + break; + } + } + + $result .= "\n"; + } + + return $result; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php b/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php new file mode 100644 index 0000000..c363953 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php @@ -0,0 +1,679 @@ + + */ + private static array $codecs = []; + + /** + * Encodes "content" with the error correction level "ecLevel". + */ + public static function encode( + string $content, + ErrorCorrectionLevel $ecLevel, + string $encoding = self::DEFAULT_BYTE_MODE_ENCODING, + ?Version $forcedVersion = null, + // Barcode scanner might not be able to read the encoded message of the QR code with the prefix ECI of UTF-8 + bool $prefixEci = true + ) : QrCode { + // Pick an encoding mode appropriate for the content. Note that this + // will not attempt to use multiple modes / segments even if that were + // more efficient. Would be nice. + $mode = self::chooseMode($content, $encoding); + + // This will store the header information, like mode and length, as well + // as "header" segments like an ECI segment. + $headerBits = new BitArray(); + + // Append ECI segment if applicable + if ($prefixEci && Mode::BYTE() === $mode && self::DEFAULT_BYTE_MODE_ENCODING !== $encoding) { + $eci = CharacterSetEci::getCharacterSetEciByName($encoding); + + if (null !== $eci) { + self::appendEci($eci, $headerBits); + } + } + + // (With ECI in place,) Write the mode marker + self::appendModeInfo($mode, $headerBits); + + // Collect data within the main segment, separately, to count its size + // if needed. Don't add it to main payload yet. + $dataBits = new BitArray(); + self::appendBytes($content, $mode, $dataBits, $encoding); + + // Hard part: need to know version to know how many bits length takes. + // But need to know how many bits it takes to know version. First we + // take a guess at version by assuming version will be the minimum, 1: + $provisionalBitsNeeded = $headerBits->getSize() + + $mode->getCharacterCountBits(Version::getVersionForNumber(1)) + + $dataBits->getSize(); + $provisionalVersion = self::chooseVersion($provisionalBitsNeeded, $ecLevel); + + // Use that guess to calculate the right version. I am still not sure + // this works in 100% of cases. + $bitsNeeded = $headerBits->getSize() + + $mode->getCharacterCountBits($provisionalVersion) + + $dataBits->getSize(); + $version = self::chooseVersion($bitsNeeded, $ecLevel); + + if (null !== $forcedVersion) { + // Forced version check + if ($version->getVersionNumber() <= $forcedVersion->getVersionNumber()) { + // Calculated minimum version is same or equal as forced version + $version = $forcedVersion; + } else { + throw new WriterException( + 'Invalid version! Calculated version: ' + . $version->getVersionNumber() + . ', requested version: ' + . $forcedVersion->getVersionNumber() + ); + } + } + + $headerAndDataBits = new BitArray(); + $headerAndDataBits->appendBitArray($headerBits); + + // Find "length" of main segment and write it. + $numLetters = (Mode::BYTE() === $mode ? $dataBits->getSizeInBytes() : strlen($content)); + self::appendLengthInfo($numLetters, $version, $mode, $headerAndDataBits); + + // Put data together into the overall payload. + $headerAndDataBits->appendBitArray($dataBits); + $ecBlocks = $version->getEcBlocksForLevel($ecLevel); + $numDataBytes = $version->getTotalCodewords() - $ecBlocks->getTotalEcCodewords(); + + // Terminate the bits properly. + self::terminateBits($numDataBytes, $headerAndDataBits); + + // Interleave data bits with error correction code. + $finalBits = self::interleaveWithEcBytes( + $headerAndDataBits, + $version->getTotalCodewords(), + $numDataBytes, + $ecBlocks->getNumBlocks() + ); + + // Choose the mask pattern. + $dimension = $version->getDimensionForVersion(); + $matrix = new ByteMatrix($dimension, $dimension); + $maskPattern = self::chooseMaskPattern($finalBits, $ecLevel, $version, $matrix); + + // Build the matrix. + MatrixUtil::buildMatrix($finalBits, $ecLevel, $version, $maskPattern, $matrix); + + return new QrCode($mode, $ecLevel, $version, $maskPattern, $matrix); + } + + /** + * Gets the alphanumeric code for a byte. + */ + private static function getAlphanumericCode(int $code) : int + { + if (isset(self::ALPHANUMERIC_TABLE[$code])) { + return self::ALPHANUMERIC_TABLE[$code]; + } + + return -1; + } + + /** + * Chooses the best mode for a given content. + */ + private static function chooseMode(string $content, ?string $encoding = null) : Mode + { + if (null !== $encoding && 0 === strcasecmp($encoding, 'SHIFT-JIS')) { + return self::isOnlyDoubleByteKanji($content) ? Mode::KANJI() : Mode::BYTE(); + } + + $hasNumeric = false; + $hasAlphanumeric = false; + $contentLength = strlen($content); + + for ($i = 0; $i < $contentLength; ++$i) { + $char = $content[$i]; + + if (ctype_digit($char)) { + $hasNumeric = true; + } elseif (-1 !== self::getAlphanumericCode(ord($char))) { + $hasAlphanumeric = true; + } else { + return Mode::BYTE(); + } + } + + if ($hasAlphanumeric) { + return Mode::ALPHANUMERIC(); + } elseif ($hasNumeric) { + return Mode::NUMERIC(); + } + + return Mode::BYTE(); + } + + /** + * Calculates the mask penalty for a matrix. + */ + private static function calculateMaskPenalty(ByteMatrix $matrix) : int + { + return ( + MaskUtil::applyMaskPenaltyRule1($matrix) + + MaskUtil::applyMaskPenaltyRule2($matrix) + + MaskUtil::applyMaskPenaltyRule3($matrix) + + MaskUtil::applyMaskPenaltyRule4($matrix) + ); + } + + /** + * Checks if content only consists of double-byte kanji characters. + */ + private static function isOnlyDoubleByteKanji(string $content) : bool + { + $bytes = @iconv('utf-8', 'SHIFT-JIS', $content); + + if (false === $bytes) { + return false; + } + + $length = strlen($bytes); + + if (0 !== $length % 2) { + return false; + } + + for ($i = 0; $i < $length; $i += 2) { + $byte = ord($bytes[$i]) & 0xff; + + if (($byte < 0x81 || $byte > 0x9f) && $byte < 0xe0 || $byte > 0xeb) { + return false; + } + } + + return true; + } + + /** + * Chooses the best mask pattern for a matrix. + */ + private static function chooseMaskPattern( + BitArray $bits, + ErrorCorrectionLevel $ecLevel, + Version $version, + ByteMatrix $matrix + ) : int { + $minPenalty = PHP_INT_MAX; + $bestMaskPattern = -1; + + for ($maskPattern = 0; $maskPattern < QrCode::NUM_MASK_PATTERNS; ++$maskPattern) { + MatrixUtil::buildMatrix($bits, $ecLevel, $version, $maskPattern, $matrix); + $penalty = self::calculateMaskPenalty($matrix); + + if ($penalty < $minPenalty) { + $minPenalty = $penalty; + $bestMaskPattern = $maskPattern; + } + } + + return $bestMaskPattern; + } + + /** + * Chooses the best version for the input. + * + * @throws WriterException if data is too big + */ + private static function chooseVersion(int $numInputBits, ErrorCorrectionLevel $ecLevel) : Version + { + for ($versionNum = 1; $versionNum <= 40; ++$versionNum) { + $version = Version::getVersionForNumber($versionNum); + $numBytes = $version->getTotalCodewords(); + + $ecBlocks = $version->getEcBlocksForLevel($ecLevel); + $numEcBytes = $ecBlocks->getTotalEcCodewords(); + + $numDataBytes = $numBytes - $numEcBytes; + $totalInputBytes = intdiv($numInputBits + 8, 8); + + if ($numDataBytes >= $totalInputBytes) { + return $version; + } + } + + throw new WriterException('Data too big'); + } + + /** + * Terminates the bits in a bit array. + * + * @throws WriterException if data bits cannot fit in the QR code + * @throws WriterException if bits size does not equal the capacity + */ + private static function terminateBits(int $numDataBytes, BitArray $bits) : void + { + $capacity = $numDataBytes << 3; + + if ($bits->getSize() > $capacity) { + throw new WriterException('Data bits cannot fit in the QR code'); + } + + for ($i = 0; $i < 4 && $bits->getSize() < $capacity; ++$i) { + $bits->appendBit(false); + } + + $numBitsInLastByte = $bits->getSize() & 0x7; + + if ($numBitsInLastByte > 0) { + for ($i = $numBitsInLastByte; $i < 8; ++$i) { + $bits->appendBit(false); + } + } + + $numPaddingBytes = $numDataBytes - $bits->getSizeInBytes(); + + for ($i = 0; $i < $numPaddingBytes; ++$i) { + $bits->appendBits(0 === ($i & 0x1) ? 0xec : 0x11, 8); + } + + if ($bits->getSize() !== $capacity) { + throw new WriterException('Bits size does not equal capacity'); + } + } + + /** + * Gets number of data- and EC bytes for a block ID. + * + * @return int[] + * @throws WriterException if block ID is too large + * @throws WriterException if EC bytes mismatch + * @throws WriterException if RS blocks mismatch + * @throws WriterException if total bytes mismatch + */ + private static function getNumDataBytesAndNumEcBytesForBlockId( + int $numTotalBytes, + int $numDataBytes, + int $numRsBlocks, + int $blockId + ) : array { + if ($blockId >= $numRsBlocks) { + throw new WriterException('Block ID too large'); + } + + $numRsBlocksInGroup2 = $numTotalBytes % $numRsBlocks; + $numRsBlocksInGroup1 = $numRsBlocks - $numRsBlocksInGroup2; + $numTotalBytesInGroup1 = intdiv($numTotalBytes, $numRsBlocks); + $numTotalBytesInGroup2 = $numTotalBytesInGroup1 + 1; + $numDataBytesInGroup1 = intdiv($numDataBytes, $numRsBlocks); + $numDataBytesInGroup2 = $numDataBytesInGroup1 + 1; + $numEcBytesInGroup1 = $numTotalBytesInGroup1 - $numDataBytesInGroup1; + $numEcBytesInGroup2 = $numTotalBytesInGroup2 - $numDataBytesInGroup2; + + if ($numEcBytesInGroup1 !== $numEcBytesInGroup2) { + throw new WriterException('EC bytes mismatch'); + } + + if ($numRsBlocks !== $numRsBlocksInGroup1 + $numRsBlocksInGroup2) { + throw new WriterException('RS blocks mismatch'); + } + + if ($numTotalBytes !== + (($numDataBytesInGroup1 + $numEcBytesInGroup1) * $numRsBlocksInGroup1) + + (($numDataBytesInGroup2 + $numEcBytesInGroup2) * $numRsBlocksInGroup2) + ) { + throw new WriterException('Total bytes mismatch'); + } + + if ($blockId < $numRsBlocksInGroup1) { + return [$numDataBytesInGroup1, $numEcBytesInGroup1]; + } else { + return [$numDataBytesInGroup2, $numEcBytesInGroup2]; + } + } + + /** + * Interleaves data with EC bytes. + * + * @throws WriterException if number of bits and data bytes does not match + * @throws WriterException if data bytes does not match offset + * @throws WriterException if an interleaving error occurs + */ + private static function interleaveWithEcBytes( + BitArray $bits, + int $numTotalBytes, + int $numDataBytes, + int $numRsBlocks + ) : BitArray { + if ($bits->getSizeInBytes() !== $numDataBytes) { + throw new WriterException('Number of bits and data bytes does not match'); + } + + $dataBytesOffset = 0; + $maxNumDataBytes = 0; + $maxNumEcBytes = 0; + + $blocks = new SplFixedArray($numRsBlocks); + + for ($i = 0; $i < $numRsBlocks; ++$i) { + list($numDataBytesInBlock, $numEcBytesInBlock) = self::getNumDataBytesAndNumEcBytesForBlockId( + $numTotalBytes, + $numDataBytes, + $numRsBlocks, + $i + ); + + $size = $numDataBytesInBlock; + $dataBytes = $bits->toBytes(8 * $dataBytesOffset, $size); + $ecBytes = self::generateEcBytes($dataBytes, $numEcBytesInBlock); + $blocks[$i] = new BlockPair($dataBytes, $ecBytes); + + $maxNumDataBytes = max($maxNumDataBytes, $size); + $maxNumEcBytes = max($maxNumEcBytes, count($ecBytes)); + $dataBytesOffset += $numDataBytesInBlock; + } + + if ($numDataBytes !== $dataBytesOffset) { + throw new WriterException('Data bytes does not match offset'); + } + + $result = new BitArray(); + + for ($i = 0; $i < $maxNumDataBytes; ++$i) { + foreach ($blocks as $block) { + $dataBytes = $block->getDataBytes(); + + if ($i < count($dataBytes)) { + $result->appendBits($dataBytes[$i], 8); + } + } + } + + for ($i = 0; $i < $maxNumEcBytes; ++$i) { + foreach ($blocks as $block) { + $ecBytes = $block->getErrorCorrectionBytes(); + + if ($i < count($ecBytes)) { + $result->appendBits($ecBytes[$i], 8); + } + } + } + + if ($numTotalBytes !== $result->getSizeInBytes()) { + throw new WriterException( + 'Interleaving error: ' . $numTotalBytes . ' and ' . $result->getSizeInBytes() . ' differ' + ); + } + + return $result; + } + + /** + * Generates EC bytes for given data. + * + * @param SplFixedArray $dataBytes + * @return SplFixedArray + */ + private static function generateEcBytes(SplFixedArray $dataBytes, int $numEcBytesInBlock) : SplFixedArray + { + $numDataBytes = count($dataBytes); + $toEncode = new SplFixedArray($numDataBytes + $numEcBytesInBlock); + + for ($i = 0; $i < $numDataBytes; $i++) { + $toEncode[$i] = $dataBytes[$i] & 0xff; + } + + $ecBytes = new SplFixedArray($numEcBytesInBlock); + $codec = self::getCodec($numDataBytes, $numEcBytesInBlock); + $codec->encode($toEncode, $ecBytes); + + return $ecBytes; + } + + /** + * Gets an RS codec and caches it. + */ + private static function getCodec(int $numDataBytes, int $numEcBytesInBlock) : ReedSolomonCodec + { + $cacheId = $numDataBytes . '-' . $numEcBytesInBlock; + + if (isset(self::$codecs[$cacheId])) { + return self::$codecs[$cacheId]; + } + + return self::$codecs[$cacheId] = new ReedSolomonCodec( + 8, + 0x11d, + 0, + 1, + $numEcBytesInBlock, + 255 - $numDataBytes - $numEcBytesInBlock + ); + } + + /** + * Appends mode information to a bit array. + */ + private static function appendModeInfo(Mode $mode, BitArray $bits) : void + { + $bits->appendBits($mode->getBits(), 4); + } + + /** + * Appends length information to a bit array. + * + * @throws WriterException if num letters is bigger than expected + */ + private static function appendLengthInfo(int $numLetters, Version $version, Mode $mode, BitArray $bits) : void + { + $numBits = $mode->getCharacterCountBits($version); + + if ($numLetters >= (1 << $numBits)) { + throw new WriterException($numLetters . ' is bigger than ' . ((1 << $numBits) - 1)); + } + + $bits->appendBits($numLetters, $numBits); + } + + /** + * Appends bytes to a bit array in a specific mode. + * + * @throws WriterException if an invalid mode was supplied + */ + private static function appendBytes(string $content, Mode $mode, BitArray $bits, string $encoding) : void + { + switch ($mode) { + case Mode::NUMERIC(): + self::appendNumericBytes($content, $bits); + break; + + case Mode::ALPHANUMERIC(): + self::appendAlphanumericBytes($content, $bits); + break; + + case Mode::BYTE(): + self::append8BitBytes($content, $bits, $encoding); + break; + + case Mode::KANJI(): + self::appendKanjiBytes($content, $bits); + break; + + default: + throw new WriterException('Invalid mode: ' . $mode); + } + } + + /** + * Appends numeric bytes to a bit array. + */ + private static function appendNumericBytes(string $content, BitArray $bits) : void + { + $length = strlen($content); + $i = 0; + + while ($i < $length) { + $num1 = (int) $content[$i]; + + if ($i + 2 < $length) { + // Encode three numeric letters in ten bits. + $num2 = (int) $content[$i + 1]; + $num3 = (int) $content[$i + 2]; + $bits->appendBits($num1 * 100 + $num2 * 10 + $num3, 10); + $i += 3; + } elseif ($i + 1 < $length) { + // Encode two numeric letters in seven bits. + $num2 = (int) $content[$i + 1]; + $bits->appendBits($num1 * 10 + $num2, 7); + $i += 2; + } else { + // Encode one numeric letter in four bits. + $bits->appendBits($num1, 4); + ++$i; + } + } + } + + /** + * Appends alpha-numeric bytes to a bit array. + * + * @throws WriterException if an invalid alphanumeric code was found + */ + private static function appendAlphanumericBytes(string $content, BitArray $bits) : void + { + $length = strlen($content); + $i = 0; + + while ($i < $length) { + $code1 = self::getAlphanumericCode(ord($content[$i])); + + if (-1 === $code1) { + throw new WriterException('Invalid alphanumeric code'); + } + + if ($i + 1 < $length) { + $code2 = self::getAlphanumericCode(ord($content[$i + 1])); + + if (-1 === $code2) { + throw new WriterException('Invalid alphanumeric code'); + } + + // Encode two alphanumeric letters in 11 bits. + $bits->appendBits($code1 * 45 + $code2, 11); + $i += 2; + } else { + // Encode one alphanumeric letter in six bits. + $bits->appendBits($code1, 6); + ++$i; + } + } + } + + /** + * Appends regular 8-bit bytes to a bit array. + * + * @throws WriterException if content cannot be encoded to target encoding + */ + private static function append8BitBytes(string $content, BitArray $bits, string $encoding) : void + { + $bytes = @iconv('utf-8', $encoding, $content); + + if (false === $bytes) { + throw new WriterException('Could not encode content to ' . $encoding); + } + + $length = strlen($bytes); + + for ($i = 0; $i < $length; $i++) { + $bits->appendBits(ord($bytes[$i]), 8); + } + } + + /** + * Appends KANJI bytes to a bit array. + * + * @throws WriterException if content does not seem to be encoded in SHIFT-JIS + * @throws WriterException if an invalid byte sequence occurs + */ + private static function appendKanjiBytes(string $content, BitArray $bits) : void + { + $bytes = @iconv('utf-8', 'SHIFT-JIS', $content); + + if (false === $bytes) { + throw new WriterException('Content could not be converted to SHIFT-JIS'); + } + + if (strlen($bytes) % 2 > 0) { + // We just do a simple length check here. The for loop will check + // individual characters. + throw new WriterException('Content does not seem to be encoded in SHIFT-JIS'); + } + + $length = strlen($bytes); + + for ($i = 0; $i < $length; $i += 2) { + $byte1 = ord($bytes[$i]) & 0xff; + $byte2 = ord($bytes[$i + 1]) & 0xff; + $code = ($byte1 << 8) | $byte2; + + if ($code >= 0x8140 && $code <= 0x9ffc) { + $subtracted = $code - 0x8140; + } elseif ($code >= 0xe040 && $code <= 0xebbf) { + $subtracted = $code - 0xc140; + } else { + throw new WriterException('Invalid byte sequence'); + } + + $encoded = (($subtracted >> 8) * 0xc0) + ($subtracted & 0xff); + + $bits->appendBits($encoded, 13); + } + } + + /** + * Appends ECI information to a bit array. + */ + private static function appendEci(CharacterSetEci $eci, BitArray $bits) : void + { + $mode = Mode::ECI(); + $bits->appendBits($mode->getBits(), 4); + $bits->appendBits($eci->getValue(), 8); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php b/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php new file mode 100644 index 0000000..54a07ba --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php @@ -0,0 +1,271 @@ +getArray(); + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + + for ($y = 0; $y < $height - 1; ++$y) { + for ($x = 0; $x < $width - 1; ++$x) { + $value = $array[$y][$x]; + + if ($value === $array[$y][$x + 1] + && $value === $array[$y + 1][$x] + && $value === $array[$y + 1][$x + 1] + ) { + ++$penalty; + } + } + } + + return self::N2 * $penalty; + } + + /** + * Applies mask penalty rule 3 and returns the penalty. + * + * Finds consecutive cells of 00001011101 or 10111010000, and gives penalty + * to them. If we find patterns like 000010111010000, we give penalties + * twice (i.e. 40 * 2). + */ + public static function applyMaskPenaltyRule3(ByteMatrix $matrix) : int + { + $penalty = 0; + $array = $matrix->getArray(); + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + + for ($y = 0; $y < $height; ++$y) { + for ($x = 0; $x < $width; ++$x) { + if ($x + 6 < $width + && 1 === $array[$y][$x] + && 0 === $array[$y][$x + 1] + && 1 === $array[$y][$x + 2] + && 1 === $array[$y][$x + 3] + && 1 === $array[$y][$x + 4] + && 0 === $array[$y][$x + 5] + && 1 === $array[$y][$x + 6] + && ( + ( + $x + 10 < $width + && 0 === $array[$y][$x + 7] + && 0 === $array[$y][$x + 8] + && 0 === $array[$y][$x + 9] + && 0 === $array[$y][$x + 10] + ) + || ( + $x - 4 >= 0 + && 0 === $array[$y][$x - 1] + && 0 === $array[$y][$x - 2] + && 0 === $array[$y][$x - 3] + && 0 === $array[$y][$x - 4] + ) + ) + ) { + $penalty += self::N3; + } + + if ($y + 6 < $height + && 1 === $array[$y][$x] + && 0 === $array[$y + 1][$x] + && 1 === $array[$y + 2][$x] + && 1 === $array[$y + 3][$x] + && 1 === $array[$y + 4][$x] + && 0 === $array[$y + 5][$x] + && 1 === $array[$y + 6][$x] + && ( + ( + $y + 10 < $height + && 0 === $array[$y + 7][$x] + && 0 === $array[$y + 8][$x] + && 0 === $array[$y + 9][$x] + && 0 === $array[$y + 10][$x] + ) + || ( + $y - 4 >= 0 + && 0 === $array[$y - 1][$x] + && 0 === $array[$y - 2][$x] + && 0 === $array[$y - 3][$x] + && 0 === $array[$y - 4][$x] + ) + ) + ) { + $penalty += self::N3; + } + } + } + + return $penalty; + } + + /** + * Applies mask penalty rule 4 and returns the penalty. + * + * Calculates the ratio of dark cells and gives penalty if the ratio is far + * from 50%. It gives 10 penalty for 5% distance. + */ + public static function applyMaskPenaltyRule4(ByteMatrix $matrix) : int + { + $numDarkCells = 0; + + $array = $matrix->getArray(); + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + + for ($y = 0; $y < $height; ++$y) { + $arrayY = $array[$y]; + + for ($x = 0; $x < $width; ++$x) { + if (1 === $arrayY[$x]) { + ++$numDarkCells; + } + } + } + + $numTotalCells = $height * $width; + $darkRatio = $numDarkCells / $numTotalCells; + $fixedPercentVariances = (int) (abs($darkRatio - 0.5) * 20); + + return $fixedPercentVariances * self::N4; + } + + /** + * Returns the mask bit for "getMaskPattern" at "x" and "y". + * + * See 8.8 of JISX0510:2004 for mask pattern conditions. + * + * @throws InvalidArgumentException if an invalid mask pattern was supplied + */ + public static function getDataMaskBit(int $maskPattern, int $x, int $y) : bool + { + switch ($maskPattern) { + case 0: + $intermediate = ($y + $x) & 0x1; + break; + + case 1: + $intermediate = $y & 0x1; + break; + + case 2: + $intermediate = $x % 3; + break; + + case 3: + $intermediate = ($y + $x) % 3; + break; + + case 4: + $intermediate = (BitUtils::unsignedRightShift($y, 1) + (int) ($x / 3)) & 0x1; + break; + + case 5: + $temp = $y * $x; + $intermediate = ($temp & 0x1) + ($temp % 3); + break; + + case 6: + $temp = $y * $x; + $intermediate = (($temp & 0x1) + ($temp % 3)) & 0x1; + break; + + case 7: + $temp = $y * $x; + $intermediate = (($temp % 3) + (($y + $x) & 0x1)) & 0x1; + break; + + default: + throw new InvalidArgumentException('Invalid mask pattern: ' . $maskPattern); + } + + return 0 == $intermediate; + } + + /** + * Helper function for applyMaskPenaltyRule1. + * + * We need this for doing this calculation in both vertical and horizontal + * orders respectively. + */ + private static function applyMaskPenaltyRule1Internal(ByteMatrix $matrix, bool $isHorizontal) : int + { + $penalty = 0; + $iLimit = $isHorizontal ? $matrix->getHeight() : $matrix->getWidth(); + $jLimit = $isHorizontal ? $matrix->getWidth() : $matrix->getHeight(); + $array = $matrix->getArray(); + + for ($i = 0; $i < $iLimit; ++$i) { + $numSameBitCells = 0; + $prevBit = -1; + + for ($j = 0; $j < $jLimit; $j++) { + $bit = $isHorizontal ? $array[$i][$j] : $array[$j][$i]; + + if ($bit === $prevBit) { + ++$numSameBitCells; + } else { + if ($numSameBitCells >= 5) { + $penalty += self::N1 + ($numSameBitCells - 5); + } + + $numSameBitCells = 1; + $prevBit = $bit; + } + } + + if ($numSameBitCells >= 5) { + $penalty += self::N1 + ($numSameBitCells - 5); + } + } + + return $penalty; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php b/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php new file mode 100644 index 0000000..0967e29 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php @@ -0,0 +1,513 @@ +clear(-1); + } + + /** + * Builds a complete matrix. + */ + public static function buildMatrix( + BitArray $dataBits, + ErrorCorrectionLevel $level, + Version $version, + int $maskPattern, + ByteMatrix $matrix + ) : void { + self::clearMatrix($matrix); + self::embedBasicPatterns($version, $matrix); + self::embedTypeInfo($level, $maskPattern, $matrix); + self::maybeEmbedVersionInfo($version, $matrix); + self::embedDataBits($dataBits, $maskPattern, $matrix); + } + + /** + * Removes the position detection patterns from a matrix. + * + * This can be useful if you need to render those patterns separately. + */ + public static function removePositionDetectionPatterns(ByteMatrix $matrix) : void + { + $pdpWidth = count(self::POSITION_DETECTION_PATTERN[0]); + + self::removePositionDetectionPattern(0, 0, $matrix); + self::removePositionDetectionPattern($matrix->getWidth() - $pdpWidth, 0, $matrix); + self::removePositionDetectionPattern(0, $matrix->getWidth() - $pdpWidth, $matrix); + } + + /** + * Embeds type information into a matrix. + */ + private static function embedTypeInfo(ErrorCorrectionLevel $level, int $maskPattern, ByteMatrix $matrix) : void + { + $typeInfoBits = new BitArray(); + self::makeTypeInfoBits($level, $maskPattern, $typeInfoBits); + + $typeInfoBitsSize = $typeInfoBits->getSize(); + + for ($i = 0; $i < $typeInfoBitsSize; ++$i) { + $bit = $typeInfoBits->get($typeInfoBitsSize - 1 - $i); + + $x1 = self::TYPE_INFO_COORDINATES[$i][0]; + $y1 = self::TYPE_INFO_COORDINATES[$i][1]; + + $matrix->set($x1, $y1, (int) $bit); + + if ($i < 8) { + $x2 = $matrix->getWidth() - $i - 1; + $y2 = 8; + } else { + $x2 = 8; + $y2 = $matrix->getHeight() - 7 + ($i - 8); + } + + $matrix->set($x2, $y2, (int) $bit); + } + } + + /** + * Generates type information bits and appends them to a bit array. + * + * @throws RuntimeException if bit array resulted in invalid size + */ + private static function makeTypeInfoBits(ErrorCorrectionLevel $level, int $maskPattern, BitArray $bits) : void + { + $typeInfo = ($level->getBits() << 3) | $maskPattern; + $bits->appendBits($typeInfo, 5); + + $bchCode = self::calculateBchCode($typeInfo, self::TYPE_INFO_POLY); + $bits->appendBits($bchCode, 10); + + $maskBits = new BitArray(); + $maskBits->appendBits(self::TYPE_INFO_MASK_PATTERN, 15); + $bits->xorBits($maskBits); + + if (15 !== $bits->getSize()) { + throw new RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); + } + } + + /** + * Embeds version information if required. + */ + private static function maybeEmbedVersionInfo(Version $version, ByteMatrix $matrix) : void + { + if ($version->getVersionNumber() < 7) { + return; + } + + $versionInfoBits = new BitArray(); + self::makeVersionInfoBits($version, $versionInfoBits); + + $bitIndex = 6 * 3 - 1; + + for ($i = 0; $i < 6; ++$i) { + for ($j = 0; $j < 3; ++$j) { + $bit = $versionInfoBits->get($bitIndex); + --$bitIndex; + + $matrix->set($i, $matrix->getHeight() - 11 + $j, (int) $bit); + $matrix->set($matrix->getHeight() - 11 + $j, $i, (int) $bit); + } + } + } + + /** + * Generates version information bits and appends them to a bit array. + * + * @throws RuntimeException if bit array resulted in invalid size + */ + private static function makeVersionInfoBits(Version $version, BitArray $bits) : void + { + $bits->appendBits($version->getVersionNumber(), 6); + + $bchCode = self::calculateBchCode($version->getVersionNumber(), self::VERSION_INFO_POLY); + $bits->appendBits($bchCode, 12); + + if (18 !== $bits->getSize()) { + throw new RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); + } + } + + /** + * Calculates the BCH code for a value and a polynomial. + */ + private static function calculateBchCode(int $value, int $poly) : int + { + $msbSetInPoly = self::findMsbSet($poly); + $value <<= $msbSetInPoly - 1; + + while (self::findMsbSet($value) >= $msbSetInPoly) { + $value ^= $poly << (self::findMsbSet($value) - $msbSetInPoly); + } + + return $value; + } + + /** + * Finds and MSB set. + */ + private static function findMsbSet(int $value) : int + { + $numDigits = 0; + + while (0 !== $value) { + $value >>= 1; + ++$numDigits; + } + + return $numDigits; + } + + /** + * Embeds basic patterns into a matrix. + */ + private static function embedBasicPatterns(Version $version, ByteMatrix $matrix) : void + { + self::embedPositionDetectionPatternsAndSeparators($matrix); + self::embedDarkDotAtLeftBottomCorner($matrix); + self::maybeEmbedPositionAdjustmentPatterns($version, $matrix); + self::embedTimingPatterns($matrix); + } + + /** + * Embeds position detection patterns and separators into a byte matrix. + */ + private static function embedPositionDetectionPatternsAndSeparators(ByteMatrix $matrix) : void + { + $pdpWidth = count(self::POSITION_DETECTION_PATTERN[0]); + + self::embedPositionDetectionPattern(0, 0, $matrix); + self::embedPositionDetectionPattern($matrix->getWidth() - $pdpWidth, 0, $matrix); + self::embedPositionDetectionPattern(0, $matrix->getWidth() - $pdpWidth, $matrix); + + $hspWidth = 8; + + self::embedHorizontalSeparationPattern(0, $hspWidth - 1, $matrix); + self::embedHorizontalSeparationPattern($matrix->getWidth() - $hspWidth, $hspWidth - 1, $matrix); + self::embedHorizontalSeparationPattern(0, $matrix->getWidth() - $hspWidth, $matrix); + + $vspSize = 7; + + self::embedVerticalSeparationPattern($vspSize, 0, $matrix); + self::embedVerticalSeparationPattern($matrix->getHeight() - $vspSize - 1, 0, $matrix); + self::embedVerticalSeparationPattern($vspSize, $matrix->getHeight() - $vspSize, $matrix); + } + + /** + * Embeds a single position detection pattern into a byte matrix. + */ + private static function embedPositionDetectionPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 7; ++$y) { + for ($x = 0; $x < 7; ++$x) { + $matrix->set($xStart + $x, $yStart + $y, self::POSITION_DETECTION_PATTERN[$y][$x]); + } + } + } + + private static function removePositionDetectionPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 7; ++$y) { + for ($x = 0; $x < 7; ++$x) { + $matrix->set($xStart + $x, $yStart + $y, 0); + } + } + } + + /** + * Embeds a single horizontal separation pattern. + * + * @throws RuntimeException if a byte was already set + */ + private static function embedHorizontalSeparationPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($x = 0; $x < 8; $x++) { + if (-1 !== $matrix->get($xStart + $x, $yStart)) { + throw new RuntimeException('Byte already set'); + } + + $matrix->set($xStart + $x, $yStart, 0); + } + } + + /** + * Embeds a single vertical separation pattern. + * + * @throws RuntimeException if a byte was already set + */ + private static function embedVerticalSeparationPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 7; $y++) { + if (-1 !== $matrix->get($xStart, $yStart + $y)) { + throw new RuntimeException('Byte already set'); + } + + $matrix->set($xStart, $yStart + $y, 0); + } + } + + /** + * Embeds a dot at the left bottom corner. + * + * @throws RuntimeException if a byte was already set to 0 + */ + private static function embedDarkDotAtLeftBottomCorner(ByteMatrix $matrix) : void + { + if (0 === $matrix->get(8, $matrix->getHeight() - 8)) { + throw new RuntimeException('Byte already set to 0'); + } + + $matrix->set(8, $matrix->getHeight() - 8, 1); + } + + /** + * Embeds position adjustment patterns if required. + */ + private static function maybeEmbedPositionAdjustmentPatterns(Version $version, ByteMatrix $matrix) : void + { + if ($version->getVersionNumber() < 2) { + return; + } + + $index = $version->getVersionNumber() - 1; + + $coordinates = self::POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[$index]; + $numCoordinates = count($coordinates); + + for ($i = 0; $i < $numCoordinates; ++$i) { + for ($j = 0; $j < $numCoordinates; ++$j) { + $y = $coordinates[$i]; + $x = $coordinates[$j]; + + if (null === $x || null === $y) { + continue; + } + + if (-1 === $matrix->get($x, $y)) { + self::embedPositionAdjustmentPattern($x - 2, $y - 2, $matrix); + } + } + } + } + + /** + * Embeds a single position adjustment pattern. + */ + private static function embedPositionAdjustmentPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 5; $y++) { + for ($x = 0; $x < 5; $x++) { + $matrix->set($xStart + $x, $yStart + $y, self::POSITION_ADJUSTMENT_PATTERN[$y][$x]); + } + } + } + + /** + * Embeds timing patterns into a matrix. + */ + private static function embedTimingPatterns(ByteMatrix $matrix) : void + { + $matrixWidth = $matrix->getWidth(); + + for ($i = 8; $i < $matrixWidth - 8; ++$i) { + $bit = ($i + 1) % 2; + + if (-1 === $matrix->get($i, 6)) { + $matrix->set($i, 6, $bit); + } + + if (-1 === $matrix->get(6, $i)) { + $matrix->set(6, $i, $bit); + } + } + } + + /** + * Embeds "dataBits" using "getMaskPattern". + * + * For debugging purposes, it skips masking process if "getMaskPattern" is -1. See 8.7 of JISX0510:2004 (p.38) for + * how to embed data bits. + * + * @throws WriterException if not all bits could be consumed + */ + private static function embedDataBits(BitArray $dataBits, int $maskPattern, ByteMatrix $matrix) : void + { + $bitIndex = 0; + $direction = -1; + + // Start from the right bottom cell. + $x = $matrix->getWidth() - 1; + $y = $matrix->getHeight() - 1; + + while ($x > 0) { + // Skip vertical timing pattern. + if (6 === $x) { + --$x; + } + + while ($y >= 0 && $y < $matrix->getHeight()) { + for ($i = 0; $i < 2; $i++) { + $xx = $x - $i; + + // Skip the cell if it's not empty. + if (-1 !== $matrix->get($xx, $y)) { + continue; + } + + if ($bitIndex < $dataBits->getSize()) { + $bit = $dataBits->get($bitIndex); + ++$bitIndex; + } else { + // Padding bit. If there is no bit left, we'll fill the + // left cells with 0, as described in 8.4.9 of + // JISX0510:2004 (p. 24). + $bit = false; + } + + // Skip masking if maskPattern is -1. + if (-1 !== $maskPattern && MaskUtil::getDataMaskBit($maskPattern, $xx, $y)) { + $bit = ! $bit; + } + + $matrix->set($xx, $y, (int) $bit); + } + + $y += $direction; + } + + $direction = -$direction; + $y += $direction; + $x -= 2; + } + + // All bits should be consumed + if ($dataBits->getSize() !== $bitIndex) { + throw new WriterException('Not all bits consumed (' . $bitIndex . ' out of ' . $dataBits->getSize() .')'); + } + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php b/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php new file mode 100644 index 0000000..c3398f4 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php @@ -0,0 +1,108 @@ +maskPattern = $maskPattern; + $this->matrix = $matrix; + } + + /** + * Gets the mode. + */ + public function getMode() : Mode + { + return $this->mode; + } + + /** + * Gets the EC level. + */ + public function getErrorCorrectionLevel() : ErrorCorrectionLevel + { + return $this->errorCorrectionLevel; + } + + /** + * Gets the version. + */ + public function getVersion() : Version + { + return $this->version; + } + + /** + * Gets the mask pattern. + */ + public function getMaskPattern() : int + { + return $this->maskPattern; + } + + public function getMatrix(): ByteMatrix + { + return $this->matrix; + } + + /** + * Validates whether a mask pattern is valid. + */ + public static function isValidMaskPattern(int $maskPattern) : bool + { + return $maskPattern > 0 && $maskPattern < self::NUM_MASK_PATTERNS; + } + + /** + * Returns a string representation of the QR code. + */ + public function __toString() : string + { + $result = "<<\n" + . ' mode: ' . $this->mode . "\n" + . ' ecLevel: ' . $this->errorCorrectionLevel . "\n" + . ' version: ' . $this->version . "\n" + . ' maskPattern: ' . $this->maskPattern . "\n"; + + if ($this->matrix === null) { + $result .= " matrix: null\n"; + } else { + $result .= " matrix:\n"; + $result .= $this->matrix; + } + + $result .= ">>\n"; + + return $result; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php b/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php new file mode 100644 index 0000000..6f70c20 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php @@ -0,0 +1,10 @@ + 100) { + throw new Exception\InvalidArgumentException('Alpha must be between 0 and 100'); + } + } + + public function getAlpha() : int + { + return $this->alpha; + } + + public function getBaseColor() : ColorInterface + { + return $this->baseColor; + } + + public function toRgb() : Rgb + { + return $this->baseColor->toRgb(); + } + + public function toCmyk() : Cmyk + { + return $this->baseColor->toCmyk(); + } + + public function toGray() : Gray + { + return $this->baseColor->toGray(); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php b/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php new file mode 100644 index 0000000..d028210 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php @@ -0,0 +1,82 @@ + 100) { + throw new Exception\InvalidArgumentException('Cyan must be between 0 and 100'); + } + + if ($magenta < 0 || $magenta > 100) { + throw new Exception\InvalidArgumentException('Magenta must be between 0 and 100'); + } + + if ($yellow < 0 || $yellow > 100) { + throw new Exception\InvalidArgumentException('Yellow must be between 0 and 100'); + } + + if ($black < 0 || $black > 100) { + throw new Exception\InvalidArgumentException('Black must be between 0 and 100'); + } + } + + public function getCyan() : int + { + return $this->cyan; + } + + public function getMagenta() : int + { + return $this->magenta; + } + + public function getYellow() : int + { + return $this->yellow; + } + + public function getBlack() : int + { + return $this->black; + } + + public function toRgb() : Rgb + { + $k = $this->black / 100; + $c = (-$k * $this->cyan + $k * 100 + $this->cyan) / 100; + $m = (-$k * $this->magenta + $k * 100 + $this->magenta) / 100; + $y = (-$k * $this->yellow + $k * 100 + $this->yellow) / 100; + + return new Rgb( + (int) (-$c * 255 + 255), + (int) (-$m * 255 + 255), + (int) (-$y * 255 + 255) + ); + } + + public function toCmyk() : Cmyk + { + return $this; + } + + public function toGray() : Gray + { + return $this->toRgb()->toGray(); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php b/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php new file mode 100644 index 0000000..b50d1ca --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php @@ -0,0 +1,22 @@ + 100) { + throw new Exception\InvalidArgumentException('Gray must be between 0 and 100'); + } + } + + public function getGray() : int + { + return $this->gray; + } + + public function toRgb() : Rgb + { + return new Rgb((int) ($this->gray * 2.55), (int) ($this->gray * 2.55), (int) ($this->gray * 2.55)); + } + + public function toCmyk() : Cmyk + { + return new Cmyk(0, 0, 0, 100 - $this->gray); + } + + public function toGray() : Gray + { + return $this; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php b/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php new file mode 100644 index 0000000..9e388da --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php @@ -0,0 +1,73 @@ + 255) { + throw new Exception\InvalidArgumentException('Red must be between 0 and 255'); + } + + if ($green < 0 || $green > 255) { + throw new Exception\InvalidArgumentException('Green must be between 0 and 255'); + } + + if ($blue < 0 || $blue > 255) { + throw new Exception\InvalidArgumentException('Blue must be between 0 and 255'); + } + } + + public function getRed() : int + { + return $this->red; + } + + public function getGreen() : int + { + return $this->green; + } + + public function getBlue() : int + { + return $this->blue; + } + + public function toRgb() : Rgb + { + return $this; + } + + public function toCmyk() : Cmyk + { + $c = 1 - ($this->red / 255); + $m = 1 - ($this->green / 255); + $y = 1 - ($this->blue / 255); + $k = min($c, $m, $y); + + if ($k === 0) { + return new Cmyk(0, 0, 0, 0); + } + + return new Cmyk( + (int) (100 * ($c - $k) / (1 - $k)), + (int) (100 * ($m - $k) / (1 - $k)), + (int) (100 * ($y - $k) / (1 - $k)), + (int) (100 * $k) + ); + } + + public function toGray() : Gray + { + return new Gray((int) (($this->red * 0.21 + $this->green * 0.71 + $this->blue * 0.07) / 2.55)); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php new file mode 100644 index 0000000..379e5c7 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php @@ -0,0 +1,26 @@ +externalEye->getExternalPath(); + } + + public function getInternalPath() : Path + { + return $this->internalEye->getInternalPath(); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php new file mode 100644 index 0000000..ab68f3c --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php @@ -0,0 +1,26 @@ +set($x, 0, 1); + $matrix->set($x, 6, 1); + } + + for ($y = 1; $y < 6; ++$y) { + $matrix->set(0, $y, 1); + $matrix->set(6, $y, 1); + } + + return $this->module->createPath($matrix)->translate(-3.5, -3.5); + } + + public function getInternalPath() : Path + { + $matrix = new ByteMatrix(3, 3); + + for ($x = 0; $x < 3; ++$x) { + for ($y = 0; $y < 3; ++$y) { + $matrix->set($x, $y, 1); + } + } + + return $this->module->createPath($matrix)->translate(-1.5, -1.5); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php new file mode 100644 index 0000000..39c7d23 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php @@ -0,0 +1,56 @@ +move(-3.5, 3.5) + ->line(-3.5, 0) + ->ellipticArc(3.5, 3.5, 0, false, true, 0, -3.5) + ->line(3.5, -3.5) + ->line(3.5, 3.5) + ->close() + ->move(2.5, 0) + ->ellipticArc(2.5, 2.5, 0, false, true, 0, 2.5) + ->ellipticArc(2.5, 2.5, 0, false, true, -2.5, 0) + ->ellipticArc(2.5, 2.5, 0, false, true, 0, -2.5) + ->ellipticArc(2.5, 2.5, 0, false, true, 2.5, 0) + ->close() + ; + } + + public function getInternalPath() : Path + { + return (new Path()) + ->move(1.5, 0) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., 1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, -1.5, 0.) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., -1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, 1.5, 0.) + ->close() + ; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php new file mode 100644 index 0000000..735d326 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php @@ -0,0 +1,51 @@ +move(-3.5, -3.5) + ->line(3.5, -3.5) + ->line(3.5, 3.5) + ->line(-3.5, 3.5) + ->close() + ->move(-2.5, -2.5) + ->line(-2.5, 2.5) + ->line(2.5, 2.5) + ->line(2.5, -2.5) + ->close() + ; + } + + public function getInternalPath() : Path + { + return (new Path()) + ->move(1.5, 0) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., 1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, -1.5, 0.) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., -1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, 1.5, 0.) + ->close() + ; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php new file mode 100644 index 0000000..09bedfe --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php @@ -0,0 +1,50 @@ +move(-3.5, -3.5) + ->line(3.5, -3.5) + ->line(3.5, 3.5) + ->line(-3.5, 3.5) + ->close() + ->move(-2.5, -2.5) + ->line(-2.5, 2.5) + ->line(2.5, 2.5) + ->line(2.5, -2.5) + ->close() + ; + } + + public function getInternalPath() : Path + { + return (new Path()) + ->move(-1.5, -1.5) + ->line(1.5, -1.5) + ->line(1.5, 1.5) + ->line(-1.5, 1.5) + ->close() + ; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php b/vendor/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php new file mode 100644 index 0000000..51164b9 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php @@ -0,0 +1,238 @@ + + */ + private array $colors; + + public function __construct( + private int $size, + private int $margin = 4, + private string $imageFormat = 'png', + private int $compressionQuality = 9, + private ?Fill $fill = null + ) { + if (! extension_loaded('gd') || ! function_exists('gd_info')) { + throw new RuntimeException('You need to install the GD extension to use this back end'); + } + + if ($this->fill === null) { + $this->fill = Fill::default(); + } + if ($this->fill->hasGradientFill()) { + throw new InvalidArgumentException('GDLibRenderer does not support gradients'); + } + } + + /** + * @throws InvalidArgumentException if matrix width doesn't match height + */ + public function render(QrCode $qrCode): string + { + $matrix = $qrCode->getMatrix(); + $matrixSize = $matrix->getWidth(); + + if ($matrixSize !== $matrix->getHeight()) { + throw new InvalidArgumentException('Matrix must have the same width and height'); + } + + MatrixUtil::removePositionDetectionPatterns($matrix); + $this->newImage(); + $this->draw($matrix); + + return $this->renderImage(); + } + + private function newImage(): void + { + $img = imagecreatetruecolor($this->size, $this->size); + if ($img === false) { + throw new RuntimeException('Failed to create image of that size'); + } + + $this->image = $img; + imagealphablending($this->image, false); + imagesavealpha($this->image, true); + + + $bg = $this->getColor($this->fill->getBackgroundColor()); + imagefilledrectangle($this->image, 0, 0, $this->size, $this->size, $bg); + imagealphablending($this->image, true); + } + + private function draw(ByteMatrix $matrix): void + { + $matrixSize = $matrix->getWidth(); + + $pointsOnSide = $matrix->getWidth() + $this->margin * 2; + $pointInPx = $this->size / $pointsOnSide; + + $this->drawEye(0, 0, $pointInPx, $this->fill->getTopLeftEyeFill()); + $this->drawEye($matrixSize - 7, 0, $pointInPx, $this->fill->getTopRightEyeFill()); + $this->drawEye(0, $matrixSize - 7, $pointInPx, $this->fill->getBottomLeftEyeFill()); + + $rows = $matrix->getArray()->toArray(); + $color = $this->getColor($this->fill->getForegroundColor()); + for ($y = 0; $y < $matrixSize; $y += 1) { + for ($x = 0; $x < $matrixSize; $x += 1) { + if (! $rows[$y][$x]) { + continue; + } + + $points = $this->normalizePoints([ + ($this->margin + $x) * $pointInPx, ($this->margin + $y) * $pointInPx, + ($this->margin + $x + 1) * $pointInPx, ($this->margin + $y) * $pointInPx, + ($this->margin + $x + 1) * $pointInPx, ($this->margin + $y + 1) * $pointInPx, + ($this->margin + $x) * $pointInPx, ($this->margin + $y + 1) * $pointInPx, + ]); + imagefilledpolygon($this->image, $points, $color); + } + } + } + + private function drawEye(int $xOffset, int $yOffset, float $pointInPx, EyeFill $eyeFill): void + { + $internalColor = $this->getColor($eyeFill->inheritsInternalColor() + ? $this->fill->getForegroundColor() + : $eyeFill->getInternalColor()); + + $externalColor = $this->getColor($eyeFill->inheritsExternalColor() + ? $this->fill->getForegroundColor() + : $eyeFill->getExternalColor()); + + for ($y = 0; $y < 7; $y += 1) { + for ($x = 0; $x < 7; $x += 1) { + if ((($y === 1 || $y === 5) && $x > 0 && $x < 6) || (($x === 1 || $x === 5) && $y > 0 && $y < 6)) { + continue; + } + + $points = $this->normalizePoints([ + ($this->margin + $x + $xOffset) * $pointInPx, ($this->margin + $y + $yOffset) * $pointInPx, + ($this->margin + $x + $xOffset + 1) * $pointInPx, ($this->margin + $y + $yOffset) * $pointInPx, + ($this->margin + $x + $xOffset + 1) * $pointInPx, ($this->margin + $y + $yOffset + 1) * $pointInPx, + ($this->margin + $x + $xOffset) * $pointInPx, ($this->margin + $y + $yOffset + 1) * $pointInPx, + ]); + + if ($y > 1 && $y < 5 && $x > 1 && $x < 5) { + imagefilledpolygon($this->image, $points, $internalColor); + } else { + imagefilledpolygon($this->image, $points, $externalColor); + } + } + } + } + + /** + * Normalize points will trim right and bottom line by 1 pixel. + * Otherwise pixels of neighbors are overlapping which leads to issue with transparency and small QR codes. + */ + private function normalizePoints(array $points): array + { + $maxX = $maxY = 0; + for ($i = 0; $i < count($points); $i += 2) { + // Do manual round as GD just removes decimal part + $points[$i] = $newX = round($points[$i]); + $points[$i + 1] = $newY = round($points[$i + 1]); + + $maxX = max($maxX, $newX); + $maxY = max($maxY, $newY); + } + + // Do trimming only if there are 4 points (8 coordinates), assumes this is square. + + for ($i = 0; $i < count($points); $i += 2) { + $points[$i] = min($points[$i], $maxX - 1); + $points[$i + 1] = min($points[$i + 1], $maxY - 1); + } + + return $points; + } + + private function renderImage(): string + { + ob_start(); + $quality = $this->compressionQuality; + switch ($this->imageFormat) { + case 'png': + if ($quality > 9 || $quality < 0) { + $quality = 9; + } + imagepng($this->image, null, $quality); + break; + + case 'gif': + imagegif($this->image, null); + break; + + case 'jpeg': + case 'jpg': + if ($quality > 100 || $quality < 0) { + $quality = 85; + } + imagejpeg($this->image, null, $quality); + break; + default: + ob_end_clean(); + throw new InvalidArgumentException( + 'Supported image formats are jpeg, png and gif, got: ' . $this->imageFormat + ); + } + + imagedestroy($this->image); + $this->colors = []; + $this->image = null; + + return ob_get_clean(); + } + + private function getColor(ColorInterface $color): int + { + $alpha = 100; + + if ($color instanceof Alpha) { + $alpha = $color->getAlpha(); + $color = $color->getBaseColor(); + } + + $rgb = $color->toRgb(); + + $colorKey = sprintf('%02X%02X%02X%02X', $rgb->getRed(), $rgb->getGreen(), $rgb->getBlue(), $alpha); + + if (! isset($this->colors[$colorKey])) { + $colorId = imagecolorallocatealpha( + $this->image, + $rgb->getRed(), + $rgb->getGreen(), + $rgb->getBlue(), + (int)((100 - $alpha) / 100 * 127) // Alpha for GD is in range 0 (opaque) - 127 (transparent) + ); + + if ($colorId === false) { + throw new RuntimeException('Failed to create color: #' . $colorKey); + } + + $this->colors[$colorKey] = $colorId; + } + + return $this->colors[$colorKey]; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php b/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php new file mode 100644 index 0000000..4269456 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php @@ -0,0 +1,373 @@ +eps = "%!PS-Adobe-3.0 EPSF-3.0\n" + . "%%Creator: BaconQrCode\n" + . sprintf("%%%%BoundingBox: 0 0 %d %d \n", $size, $size) + . "%%BeginProlog\n" + . "save\n" + . "50 dict begin\n" + . "/q { gsave } bind def\n" + . "/Q { grestore } bind def\n" + . "/s { scale } bind def\n" + . "/t { translate } bind def\n" + . "/r { rotate } bind def\n" + . "/n { newpath } bind def\n" + . "/m { moveto } bind def\n" + . "/l { lineto } bind def\n" + . "/c { curveto } bind def\n" + . "/z { closepath } bind def\n" + . "/f { eofill } bind def\n" + . "/rgb { setrgbcolor } bind def\n" + . "/cmyk { setcmykcolor } bind def\n" + . "/gray { setgray } bind def\n" + . "%%EndProlog\n" + . "1 -1 s\n" + . sprintf("0 -%d t\n", $size); + + if ($backgroundColor instanceof Alpha && 0 === $backgroundColor->getAlpha()) { + return; + } + + $this->eps .= wordwrap( + '0 0 m' + . sprintf(' %s 0 l', (string) $size) + . sprintf(' %s %s l', (string) $size, (string) $size) + . sprintf(' 0 %s l', (string) $size) + . ' z' + . ' ' .$this->getColorSetString($backgroundColor) . " f\n", + 75, + "\n " + ); + } + + public function scale(float $size) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= sprintf("%1\$s %1\$s s\n", round($size, self::PRECISION)); + } + + public function translate(float $x, float $y) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= sprintf("%s %s t\n", round($x, self::PRECISION), round($y, self::PRECISION)); + } + + public function rotate(int $degrees) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= sprintf("%d r\n", $degrees); + } + + public function push() : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= "q\n"; + } + + public function pop() : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= "Q\n"; + } + + public function drawPathWithColor(Path $path, ColorInterface $color) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $fromX = 0; + $fromY = 0; + $this->eps .= wordwrap( + 'n ' + . $this->drawPathOperations($path, $fromX, $fromY) + . ' ' . $this->getColorSetString($color) . " f\n", + 75, + "\n " + ); + } + + public function drawPathWithGradient( + Path $path, + Gradient $gradient, + float $x, + float $y, + float $width, + float $height + ) : void { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $fromX = 0; + $fromY = 0; + $this->eps .= wordwrap( + 'q n ' . $this->drawPathOperations($path, $fromX, $fromY) . "\n", + 75, + "\n " + ); + + $this->createGradientFill($gradient, $x, $y, $width, $height); + } + + public function done() : string + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= "%%TRAILER\nend restore\n%%EOF"; + $blob = $this->eps; + $this->eps = null; + + return $blob; + } + + private function drawPathOperations(Iterable $ops, &$fromX, &$fromY) : string + { + $pathData = []; + + foreach ($ops as $op) { + switch (true) { + case $op instanceof Move: + $fromX = $toX = round($op->getX(), self::PRECISION); + $fromY = $toY = round($op->getY(), self::PRECISION); + $pathData[] = sprintf('%s %s m', $toX, $toY); + break; + + case $op instanceof Line: + $fromX = $toX = round($op->getX(), self::PRECISION); + $fromY = $toY = round($op->getY(), self::PRECISION); + $pathData[] = sprintf('%s %s l', $toX, $toY); + break; + + case $op instanceof EllipticArc: + $pathData[] = $this->drawPathOperations($op->toCurves($fromX, $fromY), $fromX, $fromY); + break; + + case $op instanceof Curve: + $x1 = round($op->getX1(), self::PRECISION); + $y1 = round($op->getY1(), self::PRECISION); + $x2 = round($op->getX2(), self::PRECISION); + $y2 = round($op->getY2(), self::PRECISION); + $fromX = $x3 = round($op->getX3(), self::PRECISION); + $fromY = $y3 = round($op->getY3(), self::PRECISION); + $pathData[] = sprintf('%s %s %s %s %s %s c', $x1, $y1, $x2, $y2, $x3, $y3); + break; + + case $op instanceof Close: + $pathData[] = 'z'; + break; + + default: + throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); + } + } + + return implode(' ', $pathData); + } + + private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : void + { + $startColor = $gradient->getStartColor(); + $endColor = $gradient->getEndColor(); + + if ($startColor instanceof Alpha) { + $startColor = $startColor->getBaseColor(); + } + + $startColorType = get_class($startColor); + + if (! in_array($startColorType, [Rgb::class, Cmyk::class, Gray::class])) { + $startColorType = Cmyk::class; + $startColor = $startColor->toCmyk(); + } + + if (get_class($endColor) !== $startColorType) { + switch ($startColorType) { + case Cmyk::class: + $endColor = $endColor->toCmyk(); + break; + + case Rgb::class: + $endColor = $endColor->toRgb(); + break; + + case Gray::class: + $endColor = $endColor->toGray(); + break; + } + } + + $this->eps .= "eoclip\n<<\n"; + + if ($gradient->getType() === GradientType::RADIAL()) { + $this->eps .= " /ShadingType 3\n"; + } else { + $this->eps .= " /ShadingType 2\n"; + } + + $this->eps .= " /Extend [ true true ]\n" + . " /AntiAlias true\n"; + + switch ($startColorType) { + case Cmyk::class: + $this->eps .= " /ColorSpace /DeviceCMYK\n"; + break; + + case Rgb::class: + $this->eps .= " /ColorSpace /DeviceRGB\n"; + break; + + case Gray::class: + $this->eps .= " /ColorSpace /DeviceGray\n"; + break; + } + + switch ($gradient->getType()) { + case GradientType::HORIZONTAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y, self::PRECISION), + round($x + $width, self::PRECISION), + round($y, self::PRECISION) + ); + break; + + case GradientType::VERTICAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y, self::PRECISION), + round($x, self::PRECISION), + round($y + $height, self::PRECISION) + ); + break; + + case GradientType::DIAGONAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y, self::PRECISION), + round($x + $width, self::PRECISION), + round($y + $height, self::PRECISION) + ); + break; + + case GradientType::INVERSE_DIAGONAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y + $height, self::PRECISION), + round($x + $width, self::PRECISION), + round($y, self::PRECISION) + ); + break; + + case GradientType::RADIAL(): + $centerX = ($x + $width) / 2; + $centerY = ($y + $height) / 2; + + $this->eps .= sprintf( + " /Coords [ %s %s 0 %s %s %s ]\n", + round($centerX, self::PRECISION), + round($centerY, self::PRECISION), + round($centerX, self::PRECISION), + round($centerY, self::PRECISION), + round(max($width, $height) / 2, self::PRECISION) + ); + break; + } + + $this->eps .= " /Function\n" + . " <<\n" + . " /FunctionType 2\n" + . " /Domain [ 0 1 ]\n" + . sprintf(" /C0 [ %s ]\n", $this->getColorString($startColor)) + . sprintf(" /C1 [ %s ]\n", $this->getColorString($endColor)) + . " /N 1\n" + . " >>\n>>\nshfill\nQ\n"; + } + + private function getColorSetString(ColorInterface $color) : string + { + if ($color instanceof Rgb) { + return $this->getColorString($color) . ' rgb'; + } + + if ($color instanceof Cmyk) { + return $this->getColorString($color) . ' cmyk'; + } + + if ($color instanceof Gray) { + return $this->getColorString($color) . ' gray'; + } + + return $this->getColorSetString($color->toCmyk()); + } + + private function getColorString(ColorInterface $color) : string + { + if ($color instanceof Rgb) { + return sprintf('%s %s %s', $color->getRed() / 255, $color->getGreen() / 255, $color->getBlue() / 255); + } + + if ($color instanceof Cmyk) { + return sprintf( + '%s %s %s %s', + $color->getCyan() / 100, + $color->getMagenta() / 100, + $color->getYellow() / 100, + $color->getBlack() / 100 + ); + } + + if ($color instanceof Gray) { + return sprintf('%s', $color->getGray() / 100); + } + + return $this->getColorString($color->toCmyk()); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php b/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php new file mode 100644 index 0000000..0935819 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php @@ -0,0 +1,87 @@ +imageFormat = $imageFormat; + $this->compressionQuality = $compressionQuality; + } + + public function new(int $size, ColorInterface $backgroundColor) : void + { + $this->image = new Imagick(); + $this->image->newImage($size, $size, $this->getColorPixel($backgroundColor)); + $this->image->setImageFormat($this->imageFormat); + $this->image->setCompressionQuality($this->compressionQuality); + $this->draw = new ImagickDraw(); + $this->gradientCount = 0; + $this->matrices = [new TransformationMatrix()]; + $this->matrixIndex = 0; + } + + public function scale(float $size) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->scale($size, $size); + $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] + ->multiply(TransformationMatrix::scale($size)); + } + + public function translate(float $x, float $y) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->translate($x, $y); + $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] + ->multiply(TransformationMatrix::translate($x, $y)); + } + + public function rotate(int $degrees) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->rotate($degrees); + $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] + ->multiply(TransformationMatrix::rotate($degrees)); + } + + public function push() : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->push(); + $this->matrices[++$this->matrixIndex] = $this->matrices[$this->matrixIndex - 1]; + } + + public function pop() : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->pop(); + unset($this->matrices[$this->matrixIndex--]); + } + + public function drawPathWithColor(Path $path, ColorInterface $color) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->setFillColor($this->getColorPixel($color)); + $this->drawPath($path); + } + + public function drawPathWithGradient( + Path $path, + Gradient $gradient, + float $x, + float $y, + float $width, + float $height + ) : void { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->setFillPatternURL('#' . $this->createGradientFill($gradient, $x, $y, $width, $height)); + $this->drawPath($path); + } + + public function done() : string + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->image->drawImage($this->draw); + $blob = $this->image->getImageBlob(); + $this->draw->clear(); + $this->image->clear(); + $this->draw = null; + $this->image = null; + $this->gradientCount = null; + + return $blob; + } + + private function drawPath(Path $path) : void + { + $this->draw->pathStart(); + + foreach ($path as $op) { + switch (true) { + case $op instanceof Move: + $this->draw->pathMoveToAbsolute($op->getX(), $op->getY()); + break; + + case $op instanceof Line: + $this->draw->pathLineToAbsolute($op->getX(), $op->getY()); + break; + + case $op instanceof EllipticArc: + $this->draw->pathEllipticArcAbsolute( + $op->getXRadius(), + $op->getYRadius(), + $op->getXAxisAngle(), + $op->isLargeArc(), + $op->isSweep(), + $op->getX(), + $op->getY() + ); + break; + + case $op instanceof Curve: + $this->draw->pathCurveToAbsolute( + $op->getX1(), + $op->getY1(), + $op->getX2(), + $op->getY2(), + $op->getX3(), + $op->getY3() + ); + break; + + case $op instanceof Close: + $this->draw->pathClose(); + break; + + default: + throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); + } + } + + $this->draw->pathFinish(); + } + + private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : string + { + list($width, $height) = $this->matrices[$this->matrixIndex]->apply($width, $height); + + $startColor = $this->getColorPixel($gradient->getStartColor())->getColorAsString(); + $endColor = $this->getColorPixel($gradient->getEndColor())->getColorAsString(); + $gradientImage = new Imagick(); + + switch ($gradient->getType()) { + case GradientType::HORIZONTAL(): + $gradientImage->newPseudoImage((int) $height, (int) $width, sprintf( + 'gradient:%s-%s', + $startColor, + $endColor + )); + $gradientImage->rotateImage('transparent', -90); + break; + + case GradientType::VERTICAL(): + $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf( + 'gradient:%s-%s', + $startColor, + $endColor + )); + break; + + case GradientType::DIAGONAL(): + case GradientType::INVERSE_DIAGONAL(): + $gradientImage->newPseudoImage((int) ($width * sqrt(2)), (int) ($height * sqrt(2)), sprintf( + 'gradient:%s-%s', + $startColor, + $endColor + )); + + if (GradientType::DIAGONAL() === $gradient->getType()) { + $gradientImage->rotateImage('transparent', -45); + } else { + $gradientImage->rotateImage('transparent', -135); + } + + $rotatedWidth = $gradientImage->getImageWidth(); + $rotatedHeight = $gradientImage->getImageHeight(); + + $gradientImage->setImagePage($rotatedWidth, $rotatedHeight, 0, 0); + $gradientImage->cropImage( + intdiv($rotatedWidth, 2) - 2, + intdiv($rotatedHeight, 2) - 2, + intdiv($rotatedWidth, 4) + 1, + intdiv($rotatedWidth, 4) + 1 + ); + break; + + case GradientType::RADIAL(): + $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf( + 'radial-gradient:%s-%s', + $startColor, + $endColor + )); + break; + } + + $id = sprintf('g%d', ++$this->gradientCount); + $this->draw->pushPattern($id, 0, 0, $width, $height); + $this->draw->composite(Imagick::COMPOSITE_COPY, 0, 0, $width, $height, $gradientImage); + $this->draw->popPattern(); + return $id; + } + + private function getColorPixel(ColorInterface $color) : ImagickPixel + { + $alpha = 100; + + if ($color instanceof Alpha) { + $alpha = $color->getAlpha(); + $color = $color->getBaseColor(); + } + + if ($color instanceof Rgb) { + return new ImagickPixel(sprintf( + 'rgba(%d, %d, %d, %F)', + $color->getRed(), + $color->getGreen(), + $color->getBlue(), + $alpha / 100 + )); + } + + if ($color instanceof Cmyk) { + return new ImagickPixel(sprintf( + 'cmyka(%d, %d, %d, %d, %F)', + $color->getCyan(), + $color->getMagenta(), + $color->getYellow(), + $color->getBlack(), + $alpha / 100 + )); + } + + if ($color instanceof Gray) { + return new ImagickPixel(sprintf( + 'graya(%d%%, %F)', + $color->getGray(), + $alpha / 100 + )); + } + + return $this->getColorPixel(new Alpha($alpha, $color->toRgb())); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php b/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php new file mode 100644 index 0000000..44d014e --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php @@ -0,0 +1,363 @@ +xmlWriter = new XMLWriter(); + $this->xmlWriter->openMemory(); + + $this->xmlWriter->startDocument('1.0', 'UTF-8'); + $this->xmlWriter->startElement('svg'); + $this->xmlWriter->writeAttribute('xmlns', 'http://www.w3.org/2000/svg'); + $this->xmlWriter->writeAttribute('version', '1.1'); + $this->xmlWriter->writeAttribute('width', (string) $size); + $this->xmlWriter->writeAttribute('height', (string) $size); + $this->xmlWriter->writeAttribute('viewBox', '0 0 '. $size . ' ' . $size); + + $this->gradientCount = 0; + $this->currentStack = 0; + $this->stack[0] = 0; + + $alpha = 1; + + if ($backgroundColor instanceof Alpha) { + $alpha = $backgroundColor->getAlpha() / 100; + } + + if (0 === $alpha) { + return; + } + + $this->xmlWriter->startElement('rect'); + $this->xmlWriter->writeAttribute('x', '0'); + $this->xmlWriter->writeAttribute('y', '0'); + $this->xmlWriter->writeAttribute('width', (string) $size); + $this->xmlWriter->writeAttribute('height', (string) $size); + $this->xmlWriter->writeAttribute('fill', $this->getColorString($backgroundColor)); + + if ($alpha < 1) { + $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha); + } + + $this->xmlWriter->endElement(); + } + + public function scale(float $size) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->xmlWriter->writeAttribute( + 'transform', + sprintf(self::SCALE_FORMAT, round($size, self::PRECISION)) + ); + ++$this->stack[$this->currentStack]; + } + + public function translate(float $x, float $y) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->xmlWriter->writeAttribute( + 'transform', + sprintf(self::TRANSLATE_FORMAT, round($x, self::PRECISION), round($y, self::PRECISION)) + ); + ++$this->stack[$this->currentStack]; + } + + public function rotate(int $degrees) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->xmlWriter->writeAttribute('transform', sprintf('rotate(%d)', $degrees)); + ++$this->stack[$this->currentStack]; + } + + public function push() : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->stack[] = 1; + ++$this->currentStack; + } + + public function pop() : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + for ($i = 0; $i < $this->stack[$this->currentStack]; ++$i) { + $this->xmlWriter->endElement(); + } + + array_pop($this->stack); + --$this->currentStack; + } + + public function drawPathWithColor(Path $path, ColorInterface $color) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $alpha = 1; + + if ($color instanceof Alpha) { + $alpha = $color->getAlpha() / 100; + } + + $this->startPathElement($path); + $this->xmlWriter->writeAttribute('fill', $this->getColorString($color)); + + if ($alpha < 1) { + $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha); + } + + $this->xmlWriter->endElement(); + } + + public function drawPathWithGradient( + Path $path, + Gradient $gradient, + float $x, + float $y, + float $width, + float $height + ) : void { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $gradientId = $this->createGradientFill($gradient, $x, $y, $width, $height); + $this->startPathElement($path); + $this->xmlWriter->writeAttribute('fill', 'url(#' . $gradientId . ')'); + $this->xmlWriter->endElement(); + } + + public function done() : string + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + foreach ($this->stack as $openElements) { + for ($i = $openElements; $i > 0; --$i) { + $this->xmlWriter->endElement(); + } + } + + $this->xmlWriter->endDocument(); + $blob = $this->xmlWriter->outputMemory(true); + $this->xmlWriter = null; + $this->stack = null; + $this->currentStack = null; + $this->gradientCount = null; + + return $blob; + } + + private function startPathElement(Path $path) : void + { + $pathData = []; + + foreach ($path as $op) { + switch (true) { + case $op instanceof Move: + $pathData[] = sprintf( + 'M%s %s', + round($op->getX(), self::PRECISION), + round($op->getY(), self::PRECISION) + ); + break; + + case $op instanceof Line: + $pathData[] = sprintf( + 'L%s %s', + round($op->getX(), self::PRECISION), + round($op->getY(), self::PRECISION) + ); + break; + + case $op instanceof EllipticArc: + $pathData[] = sprintf( + 'A%s %s %s %u %u %s %s', + round($op->getXRadius(), self::PRECISION), + round($op->getYRadius(), self::PRECISION), + round($op->getXAxisAngle(), self::PRECISION), + $op->isLargeArc(), + $op->isSweep(), + round($op->getX(), self::PRECISION), + round($op->getY(), self::PRECISION) + ); + break; + + case $op instanceof Curve: + $pathData[] = sprintf( + 'C%s %s %s %s %s %s', + round($op->getX1(), self::PRECISION), + round($op->getY1(), self::PRECISION), + round($op->getX2(), self::PRECISION), + round($op->getY2(), self::PRECISION), + round($op->getX3(), self::PRECISION), + round($op->getY3(), self::PRECISION) + ); + break; + + case $op instanceof Close: + $pathData[] = 'Z'; + break; + + default: + throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); + } + } + + $this->xmlWriter->startElement('path'); + $this->xmlWriter->writeAttribute('fill-rule', 'evenodd'); + $this->xmlWriter->writeAttribute('d', implode('', $pathData)); + } + + private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : string + { + $this->xmlWriter->startElement('defs'); + + $startColor = $gradient->getStartColor(); + $endColor = $gradient->getEndColor(); + + if ($gradient->getType() === GradientType::RADIAL()) { + $this->xmlWriter->startElement('radialGradient'); + } else { + $this->xmlWriter->startElement('linearGradient'); + } + + $this->xmlWriter->writeAttribute('gradientUnits', 'userSpaceOnUse'); + + switch ($gradient->getType()) { + case GradientType::HORIZONTAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y, self::PRECISION)); + break; + + case GradientType::VERTICAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y + $height, self::PRECISION)); + break; + + case GradientType::DIAGONAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y + $height, self::PRECISION)); + break; + + case GradientType::INVERSE_DIAGONAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y + $height, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y, self::PRECISION)); + break; + + case GradientType::RADIAL(): + $this->xmlWriter->writeAttribute('cx', (string) round(($x + $width) / 2, self::PRECISION)); + $this->xmlWriter->writeAttribute('cy', (string) round(($y + $height) / 2, self::PRECISION)); + $this->xmlWriter->writeAttribute('r', (string) round(max($width, $height) / 2, self::PRECISION)); + break; + } + + $toBeHashed = $this->getColorString($startColor) . $this->getColorString($endColor) . $gradient->getType(); + if ($startColor instanceof Alpha) { + $toBeHashed .= (string) $startColor->getAlpha(); + } + $id = sprintf('g%d-%s', ++$this->gradientCount, hash('xxh64', $toBeHashed)); + $this->xmlWriter->writeAttribute('id', $id); + + $this->xmlWriter->startElement('stop'); + $this->xmlWriter->writeAttribute('offset', '0%'); + $this->xmlWriter->writeAttribute('stop-color', $this->getColorString($startColor)); + + if ($startColor instanceof Alpha) { + $this->xmlWriter->writeAttribute('stop-opacity', (string) $startColor->getAlpha()); + } + + $this->xmlWriter->endElement(); + + $this->xmlWriter->startElement('stop'); + $this->xmlWriter->writeAttribute('offset', '100%'); + $this->xmlWriter->writeAttribute('stop-color', $this->getColorString($endColor)); + + if ($endColor instanceof Alpha) { + $this->xmlWriter->writeAttribute('stop-opacity', (string) $endColor->getAlpha()); + } + + $this->xmlWriter->endElement(); + + $this->xmlWriter->endElement(); + $this->xmlWriter->endElement(); + + return $id; + } + + private function getColorString(ColorInterface $color) : string + { + $color = $color->toRgb(); + + return sprintf( + '#%02x%02x%02x', + $color->getRed(), + $color->getGreen(), + $color->getBlue() + ); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php b/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php new file mode 100644 index 0000000..9b435a0 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php @@ -0,0 +1,68 @@ +values = [1, 0, 0, 1, 0, 0]; + } + + public function multiply(self $other) : self + { + $matrix = new self(); + $matrix->values[0] = $this->values[0] * $other->values[0] + $this->values[2] * $other->values[1]; + $matrix->values[1] = $this->values[1] * $other->values[0] + $this->values[3] * $other->values[1]; + $matrix->values[2] = $this->values[0] * $other->values[2] + $this->values[2] * $other->values[3]; + $matrix->values[3] = $this->values[1] * $other->values[2] + $this->values[3] * $other->values[3]; + $matrix->values[4] = $this->values[0] * $other->values[4] + $this->values[2] * $other->values[5] + + $this->values[4]; + $matrix->values[5] = $this->values[1] * $other->values[4] + $this->values[3] * $other->values[5] + + $this->values[5]; + + return $matrix; + } + + public static function scale(float $size) : self + { + $matrix = new self(); + $matrix->values = [$size, 0, 0, $size, 0, 0]; + return $matrix; + } + + public static function translate(float $x, float $y) : self + { + $matrix = new self(); + $matrix->values = [1, 0, 0, 1, $x, $y]; + return $matrix; + } + + public static function rotate(int $degrees) : self + { + $matrix = new self(); + $rad = deg2rad($degrees); + $matrix->values = [cos($rad), sin($rad), -sin($rad), cos($rad), 0, 0]; + return $matrix; + } + + + /** + * Applies this matrix onto a point and returns the resulting viewport point. + * + * @return float[] + */ + public function apply(float $x, float $y) : array + { + return [ + $x * $this->values[0] + $y * $this->values[2] + $this->values[4], + $x * $this->values[1] + $y * $this->values[3] + $this->values[5], + ]; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php b/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php new file mode 100644 index 0000000..0d33303 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php @@ -0,0 +1,150 @@ +rendererStyle->getSize(); + $margin = $this->rendererStyle->getMargin(); + $matrix = $qrCode->getMatrix(); + $matrixSize = $matrix->getWidth(); + + if ($matrixSize !== $matrix->getHeight()) { + throw new InvalidArgumentException('Matrix must have the same width and height'); + } + + $totalSize = $matrixSize + ($margin * 2); + $moduleSize = $size / $totalSize; + $fill = $this->rendererStyle->getFill(); + + $this->imageBackEnd->new($size, $fill->getBackgroundColor()); + $this->imageBackEnd->scale((float) $moduleSize); + $this->imageBackEnd->translate((float) $margin, (float) $margin); + + $module = $this->rendererStyle->getModule(); + $moduleMatrix = clone $matrix; + MatrixUtil::removePositionDetectionPatterns($moduleMatrix); + $modulePath = $this->drawEyes($matrixSize, $module->createPath($moduleMatrix)); + + if ($fill->hasGradientFill()) { + $this->imageBackEnd->drawPathWithGradient( + $modulePath, + $fill->getForegroundGradient(), + 0, + 0, + $matrixSize, + $matrixSize + ); + } else { + $this->imageBackEnd->drawPathWithColor($modulePath, $fill->getForegroundColor()); + } + + return $this->imageBackEnd->done(); + } + + private function drawEyes(int $matrixSize, Path $modulePath) : Path + { + $fill = $this->rendererStyle->getFill(); + + $eye = $this->rendererStyle->getEye(); + $externalPath = $eye->getExternalPath(); + $internalPath = $eye->getInternalPath(); + + $modulePath = $this->drawEye( + $externalPath, + $internalPath, + $fill->getTopLeftEyeFill(), + 3.5, + 3.5, + 0, + $modulePath + ); + $modulePath = $this->drawEye( + $externalPath, + $internalPath, + $fill->getTopRightEyeFill(), + $matrixSize - 3.5, + 3.5, + 90, + $modulePath + ); + $modulePath = $this->drawEye( + $externalPath, + $internalPath, + $fill->getBottomLeftEyeFill(), + 3.5, + $matrixSize - 3.5, + -90, + $modulePath + ); + + return $modulePath; + } + + private function drawEye( + Path $externalPath, + Path $internalPath, + EyeFill $fill, + float $xTranslation, + float $yTranslation, + int $rotation, + Path $modulePath + ) : Path { + if ($fill->inheritsBothColors()) { + return $modulePath + ->append( + $externalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ) + ->append( + $internalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ); + } + + $this->imageBackEnd->push(); + $this->imageBackEnd->translate($xTranslation, $yTranslation); + + if (0 !== $rotation) { + $this->imageBackEnd->rotate($rotation); + } + + if ($fill->inheritsExternalColor()) { + $modulePath = $modulePath->append( + $externalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ); + } else { + $this->imageBackEnd->drawPathWithColor($externalPath, $fill->getExternalColor()); + } + + if ($fill->inheritsInternalColor()) { + $modulePath = $modulePath->append( + $internalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ); + } else { + $this->imageBackEnd->drawPathWithColor($internalPath, $fill->getInternalColor()); + } + + $this->imageBackEnd->pop(); + + return $modulePath; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php b/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php new file mode 100644 index 0000000..c5d5c6f --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php @@ -0,0 +1,56 @@ + 1) { + throw new InvalidArgumentException('Size must between 0 (exclusive) and 1 (inclusive)'); + } + } + + public function createPath(ByteMatrix $matrix) : Path + { + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + $path = new Path(); + $halfSize = $this->size / 2; + $margin = (1 - $this->size) / 2; + + for ($y = 0; $y < $height; ++$y) { + for ($x = 0; $x < $width; ++$x) { + if (! $matrix->get($x, $y)) { + continue; + } + + $pathX = $x + $margin; + $pathY = $y + $margin; + + $path = $path + ->move($pathX + $this->size, $pathY + $halfSize) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $halfSize, $pathY + $this->size) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX, $pathY + $halfSize) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $halfSize, $pathY) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $this->size, $pathY + $halfSize) + ->close() + ; + } + } + + return $path; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php b/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php new file mode 100644 index 0000000..141d66c --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php @@ -0,0 +1,82 @@ + + */ + private array $points = []; + + /** + * @var array|null + */ + private ?array $simplifiedPoints = null; + + private int $minX = PHP_INT_MAX; + + private int $minY = PHP_INT_MAX; + + private int $maxX = -1; + + private int $maxY = -1; + + public function __construct(private readonly bool $positive) + { + } + + public function addPoint(int $x, int $y) : void + { + $this->points[] = [$x, $y]; + $this->minX = min($this->minX, $x); + $this->minY = min($this->minY, $y); + $this->maxX = max($this->maxX, $x); + $this->maxY = max($this->maxY, $y); + } + + public function isPositive() : bool + { + return $this->positive; + } + + /** + * @return array + */ + public function getPoints() : array + { + return $this->points; + } + + public function getMaxX() : int + { + return $this->maxX; + } + + public function getSimplifiedPoints() : array + { + if (null !== $this->simplifiedPoints) { + return $this->simplifiedPoints; + } + + $points = []; + $length = count($this->points); + + for ($i = 0; $i < $length; ++$i) { + $previousPoint = $this->points[(0 === $i ? $length : $i) - 1]; + $nextPoint = $this->points[($length - 1 === $i ? -1 : $i) + 1]; + $currentPoint = $this->points[$i]; + + if (($previousPoint[0] === $currentPoint[0] && $currentPoint[0] === $nextPoint[0]) + || ($previousPoint[1] === $currentPoint[1] && $currentPoint[1] === $nextPoint[1]) + ) { + continue; + } + + $points[] = $currentPoint; + } + + return $this->simplifiedPoints = $points; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php b/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php new file mode 100644 index 0000000..01f692c --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php @@ -0,0 +1,160 @@ +bytes = iterator_to_array($matrix->getBytes()); + $this->size = count($this->bytes); + $this->width = $matrix->getWidth(); + $this->height = $matrix->getHeight(); + } + + /** + * @return Traversable + */ + public function getIterator() : Traversable + { + $originalBytes = $this->bytes; + $point = $this->findNext(0, 0); + + while (null !== $point) { + $edge = $this->findEdge($point[0], $point[1]); + $this->xorEdge($edge); + + yield $edge; + + $point = $this->findNext($point[0], $point[1]); + } + + $this->bytes = $originalBytes; + } + + /** + * @return int[]|null + */ + private function findNext(int $x, int $y) : ?array + { + $i = $this->width * $y + $x; + + while ($i < $this->size && 1 !== $this->bytes[$i]) { + ++$i; + } + + if ($i < $this->size) { + return $this->pointOf($i); + } + + return null; + } + + private function findEdge(int $x, int $y) : Edge + { + $edge = new Edge($this->isSet($x, $y)); + $startX = $x; + $startY = $y; + $dirX = 0; + $dirY = 1; + + while (true) { + $edge->addPoint($x, $y); + $x += $dirX; + $y += $dirY; + + if ($x === $startX && $y === $startY) { + break; + } + + $left = $this->isSet($x + ($dirX + $dirY - 1 ) / 2, $y + ($dirY - $dirX - 1) / 2); + $right = $this->isSet($x + ($dirX - $dirY - 1) / 2, $y + ($dirY + $dirX - 1) / 2); + + if ($right && ! $left) { + $tmp = $dirX; + $dirX = -$dirY; + $dirY = $tmp; + } elseif ($right) { + $tmp = $dirX; + $dirX = -$dirY; + $dirY = $tmp; + } elseif (! $left) { + $tmp = $dirX; + $dirX = $dirY; + $dirY = -$tmp; + } + } + + return $edge; + } + + private function xorEdge(Edge $path) : void + { + $points = $path->getPoints(); + $y1 = $points[0][1]; + $length = count($points); + $maxX = $path->getMaxX(); + + for ($i = 1; $i < $length; ++$i) { + $y = $points[$i][1]; + + if ($y === $y1) { + continue; + } + + $x = $points[$i][0]; + $minY = min($y1, $y); + + for ($j = $x; $j < $maxX; ++$j) { + $this->flip($j, $minY); + } + + $y1 = $y; + } + } + + private function isSet(int $x, int $y) : bool + { + return ( + $x >= 0 + && $x < $this->width + && $y >= 0 + && $y < $this->height + ) && 1 === $this->bytes[$this->width * $y + $x]; + } + + /** + * @return int[] + */ + private function pointOf(int $i) : array + { + $y = intdiv($i, $this->width); + return [$i - $y * $this->width, $y]; + } + + private function flip(int $x, int $y) : void + { + $this->bytes[$this->width * $y + $x] = ( + $this->isSet($x, $y) ? 0 : 1 + ); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php b/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php new file mode 100644 index 0000000..0ccb0e0 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php @@ -0,0 +1,18 @@ + 1) { + throw new InvalidArgumentException('Intensity must between 0 (exclusive) and 1 (inclusive)'); + } + + $this->intensity = $intensity / 2; + } + + public function createPath(ByteMatrix $matrix) : Path + { + $path = new Path(); + + foreach (new EdgeIterator($matrix) as $edge) { + $points = $edge->getSimplifiedPoints(); + $length = count($points); + + $currentPoint = $points[0]; + $nextPoint = $points[1]; + $horizontal = ($currentPoint[1] === $nextPoint[1]); + + if ($horizontal) { + $right = $nextPoint[0] > $currentPoint[0]; + $path = $path->move( + $currentPoint[0] + ($right ? $this->intensity : -$this->intensity), + $currentPoint[1] + ); + } else { + $up = $nextPoint[0] < $currentPoint[0]; + $path = $path->move( + $currentPoint[0], + $currentPoint[1] + ($up ? -$this->intensity : $this->intensity) + ); + } + + for ($i = 1; $i <= $length; ++$i) { + if ($i === $length) { + $previousPoint = $points[$length - 1]; + $currentPoint = $points[0]; + $nextPoint = $points[1]; + } else { + $previousPoint = $points[(0 === $i ? $length : $i) - 1]; + $currentPoint = $points[$i]; + $nextPoint = $points[($length - 1 === $i ? -1 : $i) + 1]; + } + + $horizontal = ($previousPoint[1] === $currentPoint[1]); + + if ($horizontal) { + $right = $previousPoint[0] < $currentPoint[0]; + $up = $nextPoint[1] < $currentPoint[1]; + $sweep = ($up xor $right); + + if ($this->intensity < 0.5 + || ($right && $previousPoint[0] !== $currentPoint[0] - 1) + || (! $right && $previousPoint[0] - 1 !== $currentPoint[0]) + ) { + $path = $path->line( + $currentPoint[0] + ($right ? -$this->intensity : $this->intensity), + $currentPoint[1] + ); + } + + $path = $path->ellipticArc( + $this->intensity, + $this->intensity, + 0, + false, + $sweep, + $currentPoint[0], + $currentPoint[1] + ($up ? -$this->intensity : $this->intensity) + ); + } else { + $up = $previousPoint[1] > $currentPoint[1]; + $right = $nextPoint[0] > $currentPoint[0]; + $sweep = ! ($up xor $right); + + if ($this->intensity < 0.5 + || ($up && $previousPoint[1] !== $currentPoint[1] + 1) + || (! $up && $previousPoint[0] + 1 !== $currentPoint[0]) + ) { + $path = $path->line( + $currentPoint[0], + $currentPoint[1] + ($up ? $this->intensity : -$this->intensity) + ); + } + + $path = $path->ellipticArc( + $this->intensity, + $this->intensity, + 0, + false, + $sweep, + $currentPoint[0] + ($right ? $this->intensity : -$this->intensity), + $currentPoint[1] + ); + } + } + + $path = $path->close(); + } + + return $path; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php b/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php new file mode 100644 index 0000000..8cf1d0b --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php @@ -0,0 +1,44 @@ +getSimplifiedPoints(); + $length = count($points); + $path = $path->move($points[0][0], $points[0][1]); + + for ($i = 1; $i < $length; ++$i) { + $path = $path->line($points[$i][0], $points[$i][1]); + } + + $path = $path->close(); + } + + return $path; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php b/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php new file mode 100644 index 0000000..bddf2d0 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php @@ -0,0 +1,34 @@ +x1; + } + + public function getY1() : float + { + return $this->y1; + } + + public function getX2() : float + { + return $this->x2; + } + + public function getY2() : float + { + return $this->y2; + } + + public function getX3() : float + { + return $this->x3; + } + + public function getY3() : float + { + return $this->y3; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self( + $this->x1 + $x, + $this->y1 + $y, + $this->x2 + $x, + $this->y2 + $y, + $this->x3 + $x, + $this->y3 + $y + ); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $x1r = $this->x1 * $cos - $this->y1 * $sin; + $y1r = $this->x1 * $sin + $this->y1 * $cos; + $x2r = $this->x2 * $cos - $this->y2 * $sin; + $y2r = $this->x2 * $sin + $this->y2 * $cos; + $x3r = $this->x3 * $cos - $this->y3 * $sin; + $y3r = $this->x3 * $sin + $this->y3 * $cos; + return new self( + $x1r, + $y1r, + $x2r, + $y2r, + $x3r, + $y3r + ); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php b/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php new file mode 100644 index 0000000..ee957d4 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php @@ -0,0 +1,264 @@ +xRadius = abs($xRadius); + $this->yRadius = abs($yRadius); + $this->xAxisAngle = $xAxisAngle % 360; + } + + public function getXRadius() : float + { + return $this->xRadius; + } + + public function getYRadius() : float + { + return $this->yRadius; + } + + public function getXAxisAngle() : float + { + return $this->xAxisAngle; + } + + public function isLargeArc() : bool + { + return $this->largeArc; + } + + public function isSweep() : bool + { + return $this->sweep; + } + + public function getX() : float + { + return $this->x; + } + + public function getY() : float + { + return $this->y; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self( + $this->xRadius, + $this->yRadius, + $this->xAxisAngle, + $this->largeArc, + $this->sweep, + $this->x + $x, + $this->y + $y + ); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $xr = $this->x * $cos - $this->y * $sin; + $yr = $this->x * $sin + $this->y * $cos; + return new self( + $this->xRadius, + $this->yRadius, + $this->xAxisAngle, + $this->largeArc, + $this->sweep, + $xr, + $yr + ); + } + + /** + * Converts the elliptic arc to multiple curves. + * + * Since not all image back ends support elliptic arcs, this method allows to convert the arc into multiple curves + * resembling the same result. + * + * @see https://mortoray.com/2017/02/16/rendering-an-svg-elliptical-arc-as-bezier-curves/ + * @return array + */ + public function toCurves(float $fromX, float $fromY) : array + { + if (sqrt(($fromX - $this->x) ** 2 + ($fromY - $this->y) ** 2) < self::ZERO_TOLERANCE) { + return []; + } + + if ($this->xRadius < self::ZERO_TOLERANCE || $this->yRadius < self::ZERO_TOLERANCE) { + return [new Line($this->x, $this->y)]; + } + + return $this->createCurves($fromX, $fromY); + } + + /** + * @return Curve[] + */ + private function createCurves(float $fromX, float $fromY) : array + { + $xAngle = deg2rad($this->xAxisAngle); + list($centerX, $centerY, $radiusX, $radiusY, $startAngle, $deltaAngle) = + $this->calculateCenterPointParameters($fromX, $fromY, $xAngle); + + $s = $startAngle; + $e = $s + $deltaAngle; + $sign = ($e < $s) ? -1 : 1; + $remain = abs($e - $s); + $p1 = self::point($centerX, $centerY, $radiusX, $radiusY, $xAngle, $s); + $curves = []; + + while ($remain > self::ZERO_TOLERANCE) { + $step = min($remain, pi() / 2); + $signStep = $step * $sign; + $p2 = self::point($centerX, $centerY, $radiusX, $radiusY, $xAngle, $s + $signStep); + + $alphaT = tan($signStep / 2); + $alpha = sin($signStep) * (sqrt(4 + 3 * $alphaT ** 2) - 1) / 3; + $d1 = self::derivative($radiusX, $radiusY, $xAngle, $s); + $d2 = self::derivative($radiusX, $radiusY, $xAngle, $s + $signStep); + + $curves[] = new Curve( + $p1[0] + $alpha * $d1[0], + $p1[1] + $alpha * $d1[1], + $p2[0] - $alpha * $d2[0], + $p2[1] - $alpha * $d2[1], + $p2[0], + $p2[1] + ); + + $s += $signStep; + $remain -= $step; + $p1 = $p2; + } + + return $curves; + } + + /** + * @return float[] + */ + private function calculateCenterPointParameters(float $fromX, float $fromY, float $xAngle): array + { + $rX = $this->xRadius; + $rY = $this->yRadius; + + // F.6.5.1 + $dx2 = ($fromX - $this->x) / 2; + $dy2 = ($fromY - $this->y) / 2; + $x1p = cos($xAngle) * $dx2 + sin($xAngle) * $dy2; + $y1p = -sin($xAngle) * $dx2 + cos($xAngle) * $dy2; + + // F.6.5.2 + $rxs = $rX ** 2; + $rys = $rY ** 2; + $x1ps = $x1p ** 2; + $y1ps = $y1p ** 2; + $cr = $x1ps / $rxs + $y1ps / $rys; + + if ($cr > 1) { + $s = sqrt($cr); + $rX *= $s; + $rY *= $s; + $rxs = $rX ** 2; + $rys = $rY ** 2; + } + + $dq = ($rxs * $y1ps + $rys * $x1ps); + $pq = ($rxs * $rys - $dq) / $dq; + $q = sqrt(max(0, $pq)); + + if ($this->largeArc === $this->sweep) { + $q = -$q; + } + + $cxp = $q * $rX * $y1p / $rY; + $cyp = -$q * $rY * $x1p / $rX; + + // F.6.5.3 + $cx = cos($xAngle) * $cxp - sin($xAngle) * $cyp + ($fromX + $this->x) / 2; + $cy = sin($xAngle) * $cxp + cos($xAngle) * $cyp + ($fromY + $this->y) / 2; + + // F.6.5.5 + $theta = self::angle(1, 0, ($x1p - $cxp) / $rX, ($y1p - $cyp) / $rY); + + // F.6.5.6 + $delta = self::angle(($x1p - $cxp) / $rX, ($y1p - $cyp) / $rY, (-$x1p - $cxp) / $rX, (-$y1p - $cyp) / $rY); + $delta = fmod($delta, pi() * 2); + + if (! $this->sweep) { + $delta -= 2 * pi(); + } + + return [$cx, $cy, $rX, $rY, $theta, $delta]; + } + + private static function angle(float $ux, float $uy, float $vx, float $vy) : float + { + // F.6.5.4 + $dot = $ux * $vx + $uy * $vy; + $length = sqrt($ux ** 2 + $uy ** 2) * sqrt($vx ** 2 + $vy ** 2); + $angle = acos(min(1, max(-1, $dot / $length))); + + if (($ux * $vy - $uy * $vx) < 0) { + return -$angle; + } + + return $angle; + } + + /** + * @return float[] + */ + private static function point( + float $centerX, + float $centerY, + float $radiusX, + float $radiusY, + float $xAngle, + float $angle + ) : array { + return [ + $centerX + $radiusX * cos($xAngle) * cos($angle) - $radiusY * sin($xAngle) * sin($angle), + $centerY + $radiusX * sin($xAngle) * cos($angle) + $radiusY * cos($xAngle) * sin($angle), + ]; + } + + /** + * @return float[] + */ + private static function derivative(float $radiusX, float $radiusY, float $xAngle, float $angle) : array + { + return [ + -$radiusX * cos($xAngle) * sin($angle) - $radiusY * sin($xAngle) * cos($angle), + -$radiusX * sin($xAngle) * sin($angle) + $radiusY * cos($xAngle) * cos($angle), + ]; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php b/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php new file mode 100644 index 0000000..dec46fd --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php @@ -0,0 +1,42 @@ +x; + } + + public function getY() : float + { + return $this->y; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self($this->x + $x, $this->y + $y); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $xr = $this->x * $cos - $this->y * $sin; + $yr = $this->x * $sin + $this->y * $cos; + return new self($xr, $yr); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php b/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php new file mode 100644 index 0000000..c3c9a56 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php @@ -0,0 +1,42 @@ +x; + } + + public function getY() : float + { + return $this->y; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self($this->x + $x, $this->y + $y); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $xr = $this->x * $cos - $this->y * $sin; + $yr = $this->x * $sin + $this->y * $cos; + return new self($xr, $yr); + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php b/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php new file mode 100644 index 0000000..9271555 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php @@ -0,0 +1,17 @@ +operations[] = new Move($x, $y); + return $path; + } + + /** + * Draws a line from the current position to another position. + */ + public function line(float $x, float $y) : self + { + $path = clone $this; + $path->operations[] = new Line($x, $y); + return $path; + } + + /** + * Draws an elliptic arc from the current position to another position. + */ + public function ellipticArc( + float $xRadius, + float $yRadius, + float $xAxisRotation, + bool $largeArc, + bool $sweep, + float $x, + float $y + ) : self { + $path = clone $this; + $path->operations[] = new EllipticArc($xRadius, $yRadius, $xAxisRotation, $largeArc, $sweep, $x, $y); + return $path; + } + + /** + * Draws a curve from the current position to another position. + */ + public function curve(float $x1, float $y1, float $x2, float $y2, float $x3, float $y3) : self + { + $path = clone $this; + $path->operations[] = new Curve($x1, $y1, $x2, $y2, $x3, $y3); + return $path; + } + + /** + * Closes a sub-path. + */ + public function close() : self + { + $path = clone $this; + $path->operations[] = Close::instance(); + return $path; + } + + /** + * Appends another path to this one. + */ + public function append(self $other) : self + { + $path = clone $this; + $path->operations = array_merge($this->operations, $other->operations); + return $path; + } + + public function translate(float $x, float $y) : self + { + $path = new self(); + + foreach ($this->operations as $operation) { + $path->operations[] = $operation->translate($x, $y); + } + + return $path; + } + + public function rotate(int $degrees) : self + { + $path = new self(); + + foreach ($this->operations as $operation) { + $path->operations[] = $operation->rotate($degrees); + } + + return $path; + } + + /** + * @return Traversable + */ + public function getIterator() : Traversable + { + foreach ($this->operations as $operation) { + yield $operation; + } + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php b/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php new file mode 100644 index 0000000..219bbf3 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php @@ -0,0 +1,80 @@ +getMatrix(); + $matrixSize = $matrix->getWidth(); + + if ($matrixSize !== $matrix->getHeight()) { + throw new InvalidArgumentException('Matrix must have the same width and height'); + } + + $rows = $matrix->getArray()->toArray(); + + if (0 !== $matrixSize % 2) { + $rows[] = array_fill(0, $matrixSize, 0); + } + + $horizontalMargin = str_repeat(self::EMPTY_BLOCK, $this->margin); + $result = str_repeat("\n", (int) ceil($this->margin / 2)); + + for ($i = 0; $i < $matrixSize; $i += 2) { + $result .= $horizontalMargin; + + $upperRow = $rows[$i]; + $lowerRow = $rows[$i + 1]; + + for ($j = 0; $j < $matrixSize; ++$j) { + $upperBit = $upperRow[$j]; + $lowerBit = $lowerRow[$j]; + + if ($upperBit) { + $result .= $lowerBit ? self::FULL_BLOCK : self::UPPER_HALF_BLOCK; + } else { + $result .= $lowerBit ? self::LOWER_HALF_BLOCK : self::EMPTY_BLOCK; + } + } + + $result .= $horizontalMargin . "\n"; + } + + $result .= str_repeat("\n", (int) ceil($this->margin / 2)); + + return $result; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php b/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php new file mode 100644 index 0000000..b0aae39 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php @@ -0,0 +1,11 @@ +externalColor && null === $this->internalColor; + } + + public function inheritsExternalColor() : bool + { + return null === $this->externalColor; + } + + public function inheritsInternalColor() : bool + { + return null === $this->internalColor; + } + + public function getExternalColor() : ColorInterface + { + if (null === $this->externalColor) { + throw new RuntimeException('External eye color inherits foreground color'); + } + + return $this->externalColor; + } + + public function getInternalColor() : ColorInterface + { + if (null === $this->internalColor) { + throw new RuntimeException('Internal eye color inherits foreground color'); + } + + return $this->internalColor; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php b/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php new file mode 100644 index 0000000..19de25d --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php @@ -0,0 +1,129 @@ +foregroundGradient; + } + + public function getBackgroundColor() : ColorInterface + { + return $this->backgroundColor; + } + + public function getForegroundColor() : ColorInterface + { + if (null === $this->foregroundColor) { + throw new RuntimeException('Fill uses a gradient, thus no foreground color is available'); + } + + return $this->foregroundColor; + } + + public function getForegroundGradient() : Gradient + { + if (null === $this->foregroundGradient) { + throw new RuntimeException('Fill uses a single color, thus no foreground gradient is available'); + } + + return $this->foregroundGradient; + } + + public function getTopLeftEyeFill() : EyeFill + { + return $this->topLeftEyeFill; + } + + public function getTopRightEyeFill() : EyeFill + { + return $this->topRightEyeFill; + } + + public function getBottomLeftEyeFill() : EyeFill + { + return $this->bottomLeftEyeFill; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php b/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php new file mode 100644 index 0000000..eea4031 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php @@ -0,0 +1,31 @@ +startColor; + } + + public function getEndColor() : ColorInterface + { + return $this->endColor; + } + + public function getType() : GradientType + { + return $this->type; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php b/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php new file mode 100644 index 0000000..c1ca754 --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php @@ -0,0 +1,22 @@ +module = $module ?: SquareModule::instance(); + $this->eye = $eye ?: new ModuleEye($this->module); + $this->fill = $fill ?: Fill::default(); + } + + public function withSize(int $size) : self + { + $style = clone $this; + $style->size = $size; + return $style; + } + + public function withMargin(int $margin) : self + { + $style = clone $this; + $style->margin = $margin; + return $style; + } + + public function getSize() : int + { + return $this->size; + } + + public function getMargin() : int + { + return $this->margin; + } + + public function getModule() : ModuleInterface + { + return $this->module; + } + + public function getEye() : EyeInterface + { + return $this->eye; + } + + public function getFill() : Fill + { + return $this->fill; + } +} diff --git a/vendor/bacon/bacon-qr-code/src/Writer.php b/vendor/bacon/bacon-qr-code/src/Writer.php new file mode 100644 index 0000000..d7f7ebb --- /dev/null +++ b/vendor/bacon/bacon-qr-code/src/Writer.php @@ -0,0 +1,63 @@ +renderer->render(Encoder::encode($content, $ecLevel, $encoding, $forcedVersion)); + } + + /** + * Writes QR code to a file. + * + * @see Writer::writeString() + */ + public function writeFile( + string $content, + string $filename, + string $encoding = Encoder::DEFAULT_BYTE_MODE_ENCODING, + ?ErrorCorrectionLevel $ecLevel = null, + ?Version $forcedVersion = null + ) : void { + file_put_contents($filename, $this->writeString($content, $encoding, $ecLevel, $forcedVersion)); + } +} diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php new file mode 100644 index 0000000..7824d8f --- /dev/null +++ b/vendor/composer/ClassLoader.php @@ -0,0 +1,579 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..2052022 --- /dev/null +++ b/vendor/composer/InstalledVersions.php @@ -0,0 +1,396 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to + * @internal + */ + private static $selfDir = null; + + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool + */ + private static $installedIsLocalDir; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + + // when using reload, we disable the duplicate protection to ensure that self::$installed data is + // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, + // so we have to assume it does not, and that may result in duplicate data being returned when listing + // all installed packages for example + self::$installedIsLocalDir = false; + } + + /** + * @return string + */ + private static function getSelfDir() + { + if (self::$selfDir === null) { + self::$selfDir = strtr(__DIR__, '\\', '/'); + } + + return self::$selfDir; + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + $copiedLocalDir = false; + + if (self::$canGetVendors) { + $selfDir = self::getSelfDir(); + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + $vendorDir = strtr($vendorDir, '\\', '/'); + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + self::$installedByVendor[$vendorDir] = $required; + $installed[] = $required; + if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { + self::$installed = $required; + self::$installedIsLocalDir = true; + } + } + if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { + $copiedLocalDir = true; + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array() && !$copiedLocalDir) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..0fb0a2c --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,10 @@ + $vendorDir . '/composer/InstalledVersions.php', +); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..15a2ff3 --- /dev/null +++ b/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/pragmarx/google2fa/src'), + 'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'), + 'DASPRiD\\Enum\\' => array($vendorDir . '/dasprid/enum/src'), + 'BaconQrCode\\' => array($vendorDir . '/bacon/bacon-qr-code/src'), +); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php new file mode 100644 index 0000000..232f4dd --- /dev/null +++ b/vendor/composer/autoload_real.php @@ -0,0 +1,38 @@ +register(true); + + return $loader; + } +} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 0000000..d5426b5 --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,57 @@ + + array ( + 'PragmaRX\\Google2FA\\' => 19, + 'ParagonIE\\ConstantTime\\' => 23, + ), + 'D' => + array ( + 'DASPRiD\\Enum\\' => 13, + ), + 'B' => + array ( + 'BaconQrCode\\' => 12, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'PragmaRX\\Google2FA\\' => + array ( + 0 => __DIR__ . '/..' . '/pragmarx/google2fa/src', + ), + 'ParagonIE\\ConstantTime\\' => + array ( + 0 => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src', + ), + 'DASPRiD\\Enum\\' => + array ( + 0 => __DIR__ . '/..' . '/dasprid/enum/src', + ), + 'BaconQrCode\\' => + array ( + 0 => __DIR__ . '/..' . '/bacon/bacon-qr-code/src', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit6af70ead39ec0f1276dccde68add88b6::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit6af70ead39ec0f1276dccde68add88b6::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit6af70ead39ec0f1276dccde68add88b6::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json new file mode 100644 index 0000000..6372b77 --- /dev/null +++ b/vendor/composer/installed.json @@ -0,0 +1,243 @@ +{ + "packages": [ + { + "name": "bacon/bacon-qr-code", + "version": "v3.0.1", + "version_normalized": "3.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/Bacon/BaconQrCode.git", + "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f", + "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f", + "shasum": "" + }, + "require": { + "dasprid/enum": "^1.0.3", + "ext-iconv": "*", + "php": "^8.1" + }, + "require-dev": { + "phly/keep-a-changelog": "^2.12", + "phpunit/phpunit": "^10.5.11 || 11.0.4", + "spatie/phpunit-snapshot-assertions": "^5.1.5", + "squizlabs/php_codesniffer": "^3.9" + }, + "suggest": { + "ext-imagick": "to generate QR code images" + }, + "time": "2024-10-01T13:55:55+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "BaconQrCode\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "BaconQrCode is a QR code generator for PHP.", + "homepage": "https://github.com/Bacon/BaconQrCode", + "support": { + "issues": "https://github.com/Bacon/BaconQrCode/issues", + "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1" + }, + "install-path": "../bacon/bacon-qr-code" + }, + { + "name": "dasprid/enum", + "version": "1.0.7", + "version_normalized": "1.0.7.0", + "source": { + "type": "git", + "url": "https://github.com/DASPRiD/Enum.git", + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce", + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce", + "shasum": "" + }, + "require": { + "php": ">=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11", + "squizlabs/php_codesniffer": "*" + }, + "time": "2025-09-16T12:23:56+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "PHP 7.1 enum implementation", + "keywords": [ + "enum", + "map" + ], + "support": { + "issues": "https://github.com/DASPRiD/Enum/issues", + "source": "https://github.com/DASPRiD/Enum/tree/1.0.7" + }, + "install-path": "../dasprid/enum" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v3.1.3", + "version_normalized": "3.1.3.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "shasum": "" + }, + "require": { + "php": "^8" + }, + "require-dev": { + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" + }, + "time": "2025-09-24T15:06:41+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "install-path": "../paragonie/constant_time_encoding" + }, + { + "name": "pragmarx/google2fa", + "version": "v9.0.0", + "version_normalized": "9.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/antonioribeiro/google2fa.git", + "reference": "e6bc62dd6ae83acc475f57912e27466019a1f2cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/e6bc62dd6ae83acc475f57912e27466019a1f2cf", + "reference": "e6bc62dd6ae83acc475f57912e27466019a1f2cf", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1.0|^2.0|^3.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^7.5.15|^8.5|^9.0" + }, + "time": "2025-09-19T22:51:08+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PragmaRX\\Google2FA\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "description": "A One Time Password Authentication package, compatible with Google Authenticator.", + "keywords": [ + "2fa", + "Authentication", + "Two Factor Authentication", + "google2fa" + ], + "support": { + "issues": "https://github.com/antonioribeiro/google2fa/issues", + "source": "https://github.com/antonioribeiro/google2fa/tree/v9.0.0" + }, + "install-path": "../pragmarx/google2fa" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php new file mode 100644 index 0000000..bb3b46d --- /dev/null +++ b/vendor/composer/installed.php @@ -0,0 +1,59 @@ + array( + 'name' => 'flatlogic/lamp-app', + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => 'd00ad6d16ec1146090757af37f38c973fc2a6d79', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + 'bacon/bacon-qr-code' => array( + 'pretty_version' => 'v3.0.1', + 'version' => '3.0.1.0', + 'reference' => 'f9cc1f52b5a463062251d666761178dbdb6b544f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'dasprid/enum' => array( + 'pretty_version' => '1.0.7', + 'version' => '1.0.7.0', + 'reference' => 'b5874fa9ed0043116c72162ec7f4fb50e02e7cce', + 'type' => 'library', + 'install_path' => __DIR__ . '/../dasprid/enum', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'flatlogic/lamp-app' => array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => 'd00ad6d16ec1146090757af37f38c973fc2a6d79', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'paragonie/constant_time_encoding' => array( + 'pretty_version' => 'v3.1.3', + 'version' => '3.1.3.0', + 'reference' => 'd5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77', + 'type' => 'library', + 'install_path' => __DIR__ . '/../paragonie/constant_time_encoding', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'pragmarx/google2fa' => array( + 'pretty_version' => 'v9.0.0', + 'version' => '9.0.0.0', + 'reference' => 'e6bc62dd6ae83acc475f57912e27466019a1f2cf', + 'type' => 'library', + 'install_path' => __DIR__ . '/../pragmarx/google2fa', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php new file mode 100644 index 0000000..2beb149 --- /dev/null +++ b/vendor/composer/platform_check.php @@ -0,0 +1,25 @@ += 80100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + throw new \RuntimeException( + 'Composer detected issues in your platform: ' . implode(' ', $issues) + ); +} diff --git a/vendor/dasprid/enum/LICENSE b/vendor/dasprid/enum/LICENSE new file mode 100644 index 0000000..d45a356 --- /dev/null +++ b/vendor/dasprid/enum/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2017, Ben Scholzen 'DASPRiD' +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/dasprid/enum/README.md b/vendor/dasprid/enum/README.md new file mode 100644 index 0000000..da37045 --- /dev/null +++ b/vendor/dasprid/enum/README.md @@ -0,0 +1,164 @@ +# PHP 7.1 enums + +[![Build Status](https://github.com/DASPRiD/Enum/actions/workflows/tests.yml/badge.svg)](https://github.com/DASPRiD/Enum/actions?query=workflow%3Atests) +[![Coverage Status](https://coveralls.io/repos/github/DASPRiD/Enum/badge.svg?branch=master)](https://coveralls.io/github/DASPRiD/Enum?branch=master) +[![Latest Stable Version](https://poser.pugx.org/dasprid/enum/v/stable)](https://packagist.org/packages/dasprid/enum) +[![Total Downloads](https://poser.pugx.org/dasprid/enum/downloads)](https://packagist.org/packages/dasprid/enum) +[![License](https://poser.pugx.org/dasprid/enum/license)](https://packagist.org/packages/dasprid/enum) + +It is a well known fact that PHP is missing a basic enum type, ignoring the rather incomplete `SplEnum` implementation +which is only available as a PECL extension. There are also quite a few other userland enum implementations around, +but all of them have one or another compromise. This library tries to close that gap as far as PHP allows it to. + +## Usage + +### Basics + +At its core, there is the `DASPRiD\Enum\AbstractEnum` class, which by default will work with constants like any other +enum implementation you might know. The first clear difference is that you should define all the constants as protected +(so nobody outside your class can read them but the `AbstractEnum` can still do so). The other even mightier difference +is that, for simple enums, the value of the constant doesn't matter at all. Let's have a look at a simple example: + +```php +use DASPRiD\Enum\AbstractEnum; + +/** + * @method static self MONDAY() + * @method static self TUESDAY() + * @method static self WEDNESDAY() + * @method static self THURSDAY() + * @method static self FRIDAY() + * @method static self SATURDAY() + * @method static self SUNDAY() + */ +final class WeekDay extends AbstractEnum +{ + protected const MONDAY = null; + protected const TUESDAY = null; + protected const WEDNESDAY = null; + protected const THURSDAY = null; + protected const FRIDAY = null; + protected const SATURDAY = null; + protected const SUNDAY = null; +} +``` + +If you need to provide constants for either internal use or public use, you can mark them as either private or public, +in which case they will be ignored by the enum, which only considers protected constants as valid values. As you can +see, we specifically defined the generated magic methods in a class level doc block, so anyone using this class will +automatically have proper auto-completion in their IDE. Now since you have defined the enum, you can simply use it like +that: + +```php +function tellItLikeItIs(WeekDay $weekDay) +{ + switch ($weekDay) { + case WeekDay::MONDAY(): + echo 'Mondays are bad.'; + break; + + case WeekDay::FRIDAY(): + echo 'Fridays are better.'; + break; + + case WeekDay::SATURDAY(): + case WeekDay::SUNDAY(): + echo 'Weekends are best.'; + break; + + default: + echo 'Midweek days are so-so.'; + } +} + +tellItLikeItIs(WeekDay::MONDAY()); +tellItLikeItIs(WeekDay::WEDNESDAY()); +tellItLikeItIs(WeekDay::FRIDAY()); +tellItLikeItIs(WeekDay::SATURDAY()); +tellItLikeItIs(WeekDay::SUNDAY()); +``` + +### More complex example + +Of course, all enums are singletons, which are not cloneable or serializable. Thus you can be sure that there is always +just one instance of the same type. Of course, the values of constants are not completely useless, let's have a look at +a more complex example: + +```php +use DASPRiD\Enum\AbstractEnum; + +/** + * @method static self MERCURY() + * @method static self VENUS() + * @method static self EARTH() + * @method static self MARS() + * @method static self JUPITER() + * @method static self SATURN() + * @method static self URANUS() + * @method static self NEPTUNE() + */ +final class Planet extends AbstractEnum +{ + protected const MERCURY = [3.303e+23, 2.4397e6]; + protected const VENUS = [4.869e+24, 6.0518e6]; + protected const EARTH = [5.976e+24, 6.37814e6]; + protected const MARS = [6.421e+23, 3.3972e6]; + protected const JUPITER = [1.9e+27, 7.1492e7]; + protected const SATURN = [5.688e+26, 6.0268e7]; + protected const URANUS = [8.686e+25, 2.5559e7]; + protected const NEPTUNE = [1.024e+26, 2.4746e7]; + + /** + * Universal gravitational constant. + * + * @var float + */ + private const G = 6.67300E-11; + + /** + * Mass in kilograms. + * + * @var float + */ + private $mass; + + /** + * Radius in meters. + * + * @var float + */ + private $radius; + + protected function __construct(float $mass, float $radius) + { + $this->mass = $mass; + $this->radius = $radius; + } + + public function mass() : float + { + return $this->mass; + } + + public function radius() : float + { + return $this->radius; + } + + public function surfaceGravity() : float + { + return self::G * $this->mass / ($this->radius * $this->radius); + } + + public function surfaceWeight(float $otherMass) : float + { + return $otherMass * $this->surfaceGravity(); + } +} + +$myMass = 80; + +foreach (Planet::values() as $planet) { + printf("Your weight on %s is %f\n", $planet, $planet->surfaceWeight($myMass)); +} +``` diff --git a/vendor/dasprid/enum/composer.json b/vendor/dasprid/enum/composer.json new file mode 100644 index 0000000..a099aba --- /dev/null +++ b/vendor/dasprid/enum/composer.json @@ -0,0 +1,34 @@ +{ + "name": "dasprid/enum", + "description": "PHP 7.1 enum implementation", + "license": "BSD-2-Clause", + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "keywords": [ + "enum", + "map" + ], + "require": { + "php": ">=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11", + "squizlabs/php_codesniffer": "*" + }, + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "DASPRiD\\EnumTest\\": "test/" + } + } +} diff --git a/vendor/dasprid/enum/src/AbstractEnum.php b/vendor/dasprid/enum/src/AbstractEnum.php new file mode 100644 index 0000000..43006dc --- /dev/null +++ b/vendor/dasprid/enum/src/AbstractEnum.php @@ -0,0 +1,261 @@ +> + */ + private static $values = []; + + /** + * @var array + */ + private static $allValuesLoaded = []; + + /** + * @var array + */ + private static $constants = []; + + /** + * The constructor is private by default to avoid arbitrary enum creation. + * + * When creating your own constructor for a parameterized enum, make sure to declare it as protected, so that + * the static methods are able to construct it. Avoid making it public, as that would allow creation of + * non-singleton enum instances. + */ + private function __construct() + { + } + + /** + * Magic getter which forwards all calls to {@see self::valueOf()}. + * + * @return static + */ + final public static function __callStatic(string $name, array $arguments) : self + { + return static::valueOf($name); + } + + /** + * Returns an enum with the specified name. + * + * The name must match exactly an identifier used to declare an enum in this type (extraneous whitespace characters + * are not permitted). + * + * @return static + * @throws IllegalArgumentException if the enum has no constant with the specified name + */ + final public static function valueOf(string $name) : self + { + if (isset(self::$values[static::class][$name])) { + return self::$values[static::class][$name]; + } + + $constants = self::constants(); + + if (array_key_exists($name, $constants)) { + return self::createValue($name, $constants[$name][0], $constants[$name][1]); + } + + throw new IllegalArgumentException(sprintf('No enum constant %s::%s', static::class, $name)); + } + + /** + * @return static + */ + private static function createValue(string $name, int $ordinal, array $arguments) : self + { + $instance = new static(...$arguments); + $instance->name = $name; + $instance->ordinal = $ordinal; + self::$values[static::class][$name] = $instance; + return $instance; + } + + /** + * Obtains all possible types defined by this enum. + * + * @return static[] + */ + final public static function values() : array + { + if (isset(self::$allValuesLoaded[static::class])) { + return self::$values[static::class]; + } + + if (! isset(self::$values[static::class])) { + self::$values[static::class] = []; + } + + foreach (self::constants() as $name => $constant) { + if (array_key_exists($name, self::$values[static::class])) { + continue; + } + + static::createValue($name, $constant[0], $constant[1]); + } + + uasort(self::$values[static::class], function (self $a, self $b) { + return $a->ordinal() <=> $b->ordinal(); + }); + + self::$allValuesLoaded[static::class] = true; + return self::$values[static::class]; + } + + private static function constants() : array + { + if (isset(self::$constants[static::class])) { + return self::$constants[static::class]; + } + + self::$constants[static::class] = []; + $reflectionClass = new ReflectionClass(static::class); + $ordinal = -1; + + foreach ($reflectionClass->getReflectionConstants() as $reflectionConstant) { + if (! $reflectionConstant->isProtected()) { + continue; + } + + $value = $reflectionConstant->getValue(); + + self::$constants[static::class][$reflectionConstant->name] = [ + ++$ordinal, + is_array($value) ? $value : [] + ]; + } + + return self::$constants[static::class]; + } + + /** + * Returns the name of this enum constant, exactly as declared in its enum declaration. + * + * Most programmers should use the {@see self::__toString()} method in preference to this one, as the toString + * method may return a more user-friendly name. This method is designed primarily for use in specialized situations + * where correctness depends on getting the exact name, which will not vary from release to release. + */ + final public function name() : string + { + return $this->name; + } + + /** + * Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial + * constant is assigned an ordinal of zero). + * + * Most programmers will have no use for this method. It is designed for use by sophisticated enum-based data + * structures. + */ + final public function ordinal() : int + { + return $this->ordinal; + } + + /** + * Compares this enum with the specified object for order. + * + * Returns negative integer, zero or positive integer as this object is less than, equal to or greater than the + * specified object. + * + * Enums are only comparable to other enums of the same type. The natural order implemented by this method is the + * order in which the constants are declared. + * + * @throws MismatchException if the passed enum is not of the same type + */ + final public function compareTo(self $other) : int + { + if (! $other instanceof static) { + throw new MismatchException(sprintf( + 'The passed enum %s is not of the same type as %s', + get_class($other), + static::class + )); + } + + return $this->ordinal - $other->ordinal; + } + + /** + * Forbid cloning enums. + * + * @throws CloneNotSupportedException + */ + final public function __clone() + { + throw new CloneNotSupportedException(); + } + + /** + * Forbid serializing enums. + * + * @throws SerializeNotSupportedException + */ + final public function __sleep() : array + { + throw new SerializeNotSupportedException(); + } + + /** + * Forbid serializing enums. + * + * @throws SerializeNotSupportedException + */ + final public function __serialize() : array + { + throw new SerializeNotSupportedException(); + } + + /** + * Forbid unserializing enums. + * + * @throws UnserializeNotSupportedException + */ + final public function __wakeup() : void + { + throw new UnserializeNotSupportedException(); + } + + /** + * Forbid unserializing enums. + * + * @throws UnserializeNotSupportedException + */ + final public function __unserialize($arg) : void + { + throw new UnserializeNotSupportedException(); + } + + /** + * Turns the enum into a string representation. + * + * You may override this method to give a more user-friendly version. + */ + public function __toString() : string + { + return $this->name; + } +} diff --git a/vendor/dasprid/enum/src/EnumMap.php b/vendor/dasprid/enum/src/EnumMap.php new file mode 100644 index 0000000..95b8856 --- /dev/null +++ b/vendor/dasprid/enum/src/EnumMap.php @@ -0,0 +1,385 @@ + + */ + private $keyUniverse; + + /** + * Array representation of this map. The ith element is the value to which universe[i] is currently mapped, or null + * if it isn't mapped to anything, or NullValue if it's mapped to null. + * + * @var array + */ + private $values; + + /** + * @var int + */ + private $size = 0; + + /** + * Creates a new enum map. + * + * @param string $keyType the type of the keys, must extend AbstractEnum + * @param string $valueType the type of the values + * @param bool $allowNullValues whether to allow null values + * @throws IllegalArgumentException when key type does not extend AbstractEnum + */ + public function __construct(string $keyType, string $valueType, bool $allowNullValues) + { + if (! is_subclass_of($keyType, AbstractEnum::class)) { + throw new IllegalArgumentException(sprintf( + 'Class %s does not extend %s', + $keyType, + AbstractEnum::class + )); + } + + $this->keyType = $keyType; + $this->valueType = $valueType; + $this->allowNullValues = $allowNullValues; + $this->keyUniverse = $keyType::values(); + $this->values = array_fill(0, count($this->keyUniverse), null); + } + + public function __serialize(): array + { + $values = []; + + foreach ($this->values as $ordinal => $value) { + if (null === $value) { + continue; + } + + $values[$ordinal] = $this->unmaskNull($value); + } + + return [ + 'keyType' => $this->keyType, + 'valueType' => $this->valueType, + 'allowNullValues' => $this->allowNullValues, + 'values' => $values, + ]; + } + + public function __unserialize(array $data): void + { + $this->unserialize(serialize($data)); + } + + /** + * Checks whether the map types match the supplied ones. + * + * You should call this method when an EnumMap is passed to you and you want to ensure that it's made up of the + * correct types. + * + * @throws ExpectationException when supplied key type mismatches local key type + * @throws ExpectationException when supplied value type mismatches local value type + * @throws ExpectationException when the supplied map allows null values, abut should not + */ + public function expect(string $keyType, string $valueType, bool $allowNullValues) : void + { + if ($keyType !== $this->keyType) { + throw new ExpectationException(sprintf( + 'Callee expected an EnumMap with key type %s, but got %s', + $keyType, + $this->keyType + )); + } + + if ($valueType !== $this->valueType) { + throw new ExpectationException(sprintf( + 'Callee expected an EnumMap with value type %s, but got %s', + $keyType, + $this->keyType + )); + } + + if ($allowNullValues !== $this->allowNullValues) { + throw new ExpectationException(sprintf( + 'Callee expected an EnumMap with nullable flag %s, but got %s', + ($allowNullValues ? 'true' : 'false'), + ($this->allowNullValues ? 'true' : 'false') + )); + } + } + + /** + * Returns the number of key-value mappings in this map. + */ + public function size() : int + { + return $this->size; + } + + /** + * Returns true if this map maps one or more keys to the specified value. + */ + public function containsValue($value) : bool + { + return in_array($this->maskNull($value), $this->values, true); + } + + /** + * Returns true if this map contains a mapping for the specified key. + */ + public function containsKey(AbstractEnum $key) : bool + { + $this->checkKeyType($key); + return null !== $this->values[$key->ordinal()]; + } + + /** + * Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key. + * + * More formally, if this map contains a mapping from a key to a value, then this method returns the value; + * otherwise it returns null (there can be at most one such mapping). + * + * A return value of null does not necessarily indicate that the map contains no mapping for the key; it's also + * possible that hte map explicitly maps the key to null. The {@see self::containsKey()} operation may be used to + * distinguish these two cases. + * + * @return mixed + */ + public function get(AbstractEnum $key) + { + $this->checkKeyType($key); + return $this->unmaskNull($this->values[$key->ordinal()]); + } + + /** + * Associates the specified value with the specified key in this map. + * + * If the map previously contained a mapping for this key, the old value is replaced. + * + * @return mixed the previous value associated with the specified key, or null if there was no mapping for the key. + * (a null return can also indicate that the map previously associated null with the specified key.) + * @throws IllegalArgumentException when the passed values does not match the internal value type + */ + public function put(AbstractEnum $key, $value) + { + $this->checkKeyType($key); + + if (! $this->isValidValue($value)) { + throw new IllegalArgumentException(sprintf('Value is not of type %s', $this->valueType)); + } + + $index = $key->ordinal(); + $oldValue = $this->values[$index]; + $this->values[$index] = $this->maskNull($value); + + if (null === $oldValue) { + ++$this->size; + } + + return $this->unmaskNull($oldValue); + } + + /** + * Removes the mapping for this key frm this map if present. + * + * @return mixed the previous value associated with the specified key, or null if there was no mapping for the key. + * (a null return can also indicate that the map previously associated null with the specified key.) + */ + public function remove(AbstractEnum $key) + { + $this->checkKeyType($key); + + $index = $key->ordinal(); + $oldValue = $this->values[$index]; + $this->values[$index] = null; + + if (null !== $oldValue) { + --$this->size; + } + + return $this->unmaskNull($oldValue); + } + + /** + * Removes all mappings from this map. + */ + public function clear() : void + { + $this->values = array_fill(0, count($this->keyUniverse), null); + $this->size = 0; + } + + /** + * Compares the specified map with this map for quality. + * + * Returns true if the two maps represent the same mappings. + */ + public function equals(self $other) : bool + { + if ($this === $other) { + return true; + } + + if ($this->size !== $other->size) { + return false; + } + + return $this->values === $other->values; + } + + /** + * Returns the values contained in this map. + * + * The array will contain the values in the order their corresponding keys appear in the map, which is their natural + * order (the order in which the num constants are declared). + */ + public function values() : array + { + return array_values(array_map(function ($value) { + return $this->unmaskNull($value); + }, array_filter($this->values, function ($value) : bool { + return null !== $value; + }))); + } + + public function serialize() : string + { + return serialize($this->__serialize()); + } + + public function unserialize($serialized) : void + { + $data = unserialize($serialized); + $this->__construct($data['keyType'], $data['valueType'], $data['allowNullValues']); + + foreach ($this->keyUniverse as $key) { + if (array_key_exists($key->ordinal(), $data['values'])) { + $this->put($key, $data['values'][$key->ordinal()]); + } + } + } + + public function getIterator() : Traversable + { + foreach ($this->keyUniverse as $key) { + if (null === $this->values[$key->ordinal()]) { + continue; + } + + yield $key => $this->unmaskNull($this->values[$key->ordinal()]); + } + } + + private function maskNull($value) + { + if (null === $value) { + return NullValue::instance(); + } + + return $value; + } + + private function unmaskNull($value) + { + if ($value instanceof NullValue) { + return null; + } + + return $value; + } + + /** + * @throws IllegalArgumentException when the passed key does not match the internal key type + */ + private function checkKeyType(AbstractEnum $key) : void + { + if (get_class($key) !== $this->keyType) { + throw new IllegalArgumentException(sprintf( + 'Object of type %s is not the same type as %s', + get_class($key), + $this->keyType + )); + } + } + + private function isValidValue($value) : bool + { + if (null === $value) { + if ($this->allowNullValues) { + return true; + } + + return false; + } + + switch ($this->valueType) { + case 'mixed': + return true; + + case 'bool': + case 'boolean': + return is_bool($value); + + case 'int': + case 'integer': + return is_int($value); + + case 'float': + case 'double': + return is_float($value); + + case 'string': + return is_string($value); + + case 'object': + return is_object($value); + + case 'array': + return is_array($value); + } + + return $value instanceof $this->valueType; + } +} diff --git a/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php b/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php new file mode 100644 index 0000000..4b37dbe --- /dev/null +++ b/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php @@ -0,0 +1,10 @@ + 96 && $src < 123) $ret += $src - 97 + 1; // -64 + $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 96); + + // if ($src > 0x31 && $src < 0x38) $ret += $src - 24 + 1; // -23 + $ret += (((0x31 - $src) & ($src - 0x38)) >> 8) & ($src - 23); + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 5-bit integers + * into 8-bit integers. + * + * Uppercase variant. + * + * @param int $src + * @return int + * @api + */ + protected static function decode5BitsUpper(int $src): int + { + $ret = -1; + + // if ($src > 64 && $src < 91) $ret += $src - 65 + 1; // -64 + $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); + + // if ($src > 0x31 && $src < 0x38) $ret += $src - 24 + 1; // -23 + $ret += (((0x31 - $src) & ($src - 0x38)) >> 8) & ($src - 23); + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 5-bit integers. + * + * @param int $src + * @return string + * @api + */ + protected static function encode5Bits(int $src): string + { + $diff = 0x61; + + // if ($src > 25) $ret -= 72; + $diff -= ((25 - $src) >> 8) & 73; + + return pack('C', $src + $diff); + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 5-bit integers. + * + * Uppercase variant. + * + * @param int $src + * @return string + * @api + */ + protected static function encode5BitsUpper(int $src): string + { + $diff = 0x41; + + // if ($src > 25) $ret -= 40; + $diff -= ((25 - $src) >> 8) & 41; + + return pack('C', $src + $diff); + } + + /** + * @param string $encodedString + * @param bool $upper + * @return string + * @api + */ + public static function decodeNoPadding( + #[SensitiveParameter] + string $encodedString, + bool $upper = false + ): string { + $srcLen = strlen($encodedString); + if ($srcLen === 0) { + return ''; + } + if (($srcLen & 7) === 0) { + for ($j = 0; $j < 7 && $j < $srcLen; ++$j) { + if ($encodedString[$srcLen - $j - 1] === '=') { + throw new InvalidArgumentException( + "decodeNoPadding() doesn't tolerate padding" + ); + } + } + } + return static::doDecode( + $encodedString, + $upper, + true + ); + } + + /** + * Base32 decoding + * + * @param string $src + * @param bool $upper + * @param bool $strictPadding + * @return string + * + * @throws TypeError + */ + protected static function doDecode( + #[SensitiveParameter] + string $src, + bool $upper = false, + bool $strictPadding = false + ): string { + // We do this to reduce code duplication: + $method = $upper + ? 'decode5BitsUpper' + : 'decode5Bits'; + + // Remove padding + $srcLen = strlen($src); + if ($srcLen === 0) { + return ''; + } + if ($strictPadding) { + if (($srcLen & 7) === 0) { + for ($j = 0; $j < 7; ++$j) { + if ($src[$srcLen - 1] === '=') { + $srcLen--; + } else { + break; + } + } + } + if (($srcLen & 7) === 1) { + throw new RangeException( + 'Incorrect padding' + ); + } + } else { + $src = rtrim($src, '='); + $srcLen = strlen($src); + } + + $err = 0; + $dest = ''; + // Main loop (no padding): + for ($i = 0; $i + 8 <= $srcLen; $i += 8) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($src, $i, 8)); + /** @var int $c0 */ + $c0 = static::$method($chunk[1]); + /** @var int $c1 */ + $c1 = static::$method($chunk[2]); + /** @var int $c2 */ + $c2 = static::$method($chunk[3]); + /** @var int $c3 */ + $c3 = static::$method($chunk[4]); + /** @var int $c4 */ + $c4 = static::$method($chunk[5]); + /** @var int $c5 */ + $c5 = static::$method($chunk[6]); + /** @var int $c6 */ + $c6 = static::$method($chunk[7]); + /** @var int $c7 */ + $c7 = static::$method($chunk[8]); + + $dest .= pack( + 'CCCCC', + (($c0 << 3) | ($c1 >> 2) ) & 0xff, + (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, + (($c3 << 4) | ($c4 >> 1) ) & 0xff, + (($c4 << 7) | ($c5 << 2) | ($c6 >> 3)) & 0xff, + (($c6 << 5) | ($c7 ) ) & 0xff + ); + $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6 | $c7) >> 8; + } + // The last chunk, which may have padding: + if ($i < $srcLen) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($src, $i, $srcLen - $i)); + /** @var int $c0 */ + $c0 = static::$method($chunk[1]); + + if ($i + 6 < $srcLen) { + /** @var int $c1 */ + $c1 = static::$method($chunk[2]); + /** @var int $c2 */ + $c2 = static::$method($chunk[3]); + /** @var int $c3 */ + $c3 = static::$method($chunk[4]); + /** @var int $c4 */ + $c4 = static::$method($chunk[5]); + /** @var int $c5 */ + $c5 = static::$method($chunk[6]); + /** @var int $c6 */ + $c6 = static::$method($chunk[7]); + + $dest .= pack( + 'CCCC', + (($c0 << 3) | ($c1 >> 2) ) & 0xff, + (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, + (($c3 << 4) | ($c4 >> 1) ) & 0xff, + (($c4 << 7) | ($c5 << 2) | ($c6 >> 3)) & 0xff + ); + $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6) >> 8; + if ($strictPadding) { + $err |= ($c6 << 5) & 0xff; + } + } elseif ($i + 5 < $srcLen) { + /** @var int $c1 */ + $c1 = static::$method($chunk[2]); + /** @var int $c2 */ + $c2 = static::$method($chunk[3]); + /** @var int $c3 */ + $c3 = static::$method($chunk[4]); + /** @var int $c4 */ + $c4 = static::$method($chunk[5]); + /** @var int $c5 */ + $c5 = static::$method($chunk[6]); + + $dest .= pack( + 'CCCC', + (($c0 << 3) | ($c1 >> 2) ) & 0xff, + (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, + (($c3 << 4) | ($c4 >> 1) ) & 0xff, + (($c4 << 7) | ($c5 << 2) ) & 0xff + ); + $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5) >> 8; + } elseif ($i + 4 < $srcLen) { + /** @var int $c1 */ + $c1 = static::$method($chunk[2]); + /** @var int $c2 */ + $c2 = static::$method($chunk[3]); + /** @var int $c3 */ + $c3 = static::$method($chunk[4]); + /** @var int $c4 */ + $c4 = static::$method($chunk[5]); + + $dest .= pack( + 'CCC', + (($c0 << 3) | ($c1 >> 2) ) & 0xff, + (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, + (($c3 << 4) | ($c4 >> 1) ) & 0xff + ); + $err |= ($c0 | $c1 | $c2 | $c3 | $c4) >> 8; + if ($strictPadding) { + $err |= ($c4 << 7) & 0xff; + } + } elseif ($i + 3 < $srcLen) { + /** @var int $c1 */ + $c1 = static::$method($chunk[2]); + /** @var int $c2 */ + $c2 = static::$method($chunk[3]); + /** @var int $c3 */ + $c3 = static::$method($chunk[4]); + + $dest .= pack( + 'CC', + (($c0 << 3) | ($c1 >> 2) ) & 0xff, + (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff + ); + $err |= ($c0 | $c1 | $c2 | $c3) >> 8; + if ($strictPadding) { + $err |= ($c3 << 4) & 0xff; + } + } elseif ($i + 2 < $srcLen) { + /** @var int $c1 */ + $c1 = static::$method($chunk[2]); + /** @var int $c2 */ + $c2 = static::$method($chunk[3]); + + $dest .= pack( + 'CC', + (($c0 << 3) | ($c1 >> 2) ) & 0xff, + (($c1 << 6) | ($c2 << 1) ) & 0xff + ); + $err |= ($c0 | $c1 | $c2) >> 8; + if ($strictPadding) { + $err |= ($c2 << 6) & 0xff; + } + } elseif ($i + 1 < $srcLen) { + /** @var int $c1 */ + $c1 = static::$method($chunk[2]); + + $dest .= pack( + 'C', + (($c0 << 3) | ($c1 >> 2) ) & 0xff + ); + $err |= ($c0 | $c1) >> 8; + if ($strictPadding) { + $err |= ($c1 << 6) & 0xff; + } + } else { + $dest .= pack( + 'C', + (($c0 << 3) ) & 0xff + ); + $err |= ($c0) >> 8; + } + } + $check = ($err === 0); + if (!$check) { + throw new RangeException( + 'Base32::doDecode() only expects characters in the correct base32 alphabet' + ); + } + return $dest; + } + + /** + * Base32 Encoding + * + * @param string $src + * @param bool $upper + * @param bool $pad + * @return string + * @throws TypeError + */ + protected static function doEncode( + #[SensitiveParameter] + string $src, + bool $upper = false, + bool $pad = true + ): string { + // We do this to reduce code duplication: + $method = $upper + ? 'encode5BitsUpper' + : 'encode5Bits'; + + $dest = ''; + $srcLen = strlen($src); + + // Main loop (no padding): + for ($i = 0; $i + 5 <= $srcLen; $i += 5) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($src, $i, 5)); + $b0 = $chunk[1]; + $b1 = $chunk[2]; + $b2 = $chunk[3]; + $b3 = $chunk[4]; + $b4 = $chunk[5]; + $dest .= + static::$method( ($b0 >> 3) & 31) . + static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . + static::$method((($b1 >> 1) ) & 31) . + static::$method((($b1 << 4) | ($b2 >> 4)) & 31) . + static::$method((($b2 << 1) | ($b3 >> 7)) & 31) . + static::$method((($b3 >> 2) ) & 31) . + static::$method((($b3 << 3) | ($b4 >> 5)) & 31) . + static::$method( $b4 & 31); + } + // The last chunk, which may have padding: + if ($i < $srcLen) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($src, $i, $srcLen - $i)); + $b0 = $chunk[1]; + if ($i + 3 < $srcLen) { + $b1 = $chunk[2]; + $b2 = $chunk[3]; + $b3 = $chunk[4]; + $dest .= + static::$method( ($b0 >> 3) & 31) . + static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . + static::$method((($b1 >> 1) ) & 31) . + static::$method((($b1 << 4) | ($b2 >> 4)) & 31) . + static::$method((($b2 << 1) | ($b3 >> 7)) & 31) . + static::$method((($b3 >> 2) ) & 31) . + static::$method((($b3 << 3) ) & 31); + if ($pad) { + $dest .= '='; + } + } elseif ($i + 2 < $srcLen) { + $b1 = $chunk[2]; + $b2 = $chunk[3]; + $dest .= + static::$method( ($b0 >> 3) & 31) . + static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . + static::$method((($b1 >> 1) ) & 31) . + static::$method((($b1 << 4) | ($b2 >> 4)) & 31) . + static::$method((($b2 << 1) ) & 31); + if ($pad) { + $dest .= '==='; + } + } elseif ($i + 1 < $srcLen) { + $b1 = $chunk[2]; + $dest .= + static::$method( ($b0 >> 3) & 31) . + static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . + static::$method((($b1 >> 1) ) & 31) . + static::$method((($b1 << 4) ) & 31); + if ($pad) { + $dest .= '===='; + } + } else { + $dest .= + static::$method( ($b0 >> 3) & 31) . + static::$method( ($b0 << 2) & 31); + if ($pad) { + $dest .= '======'; + } + } + } + return $dest; + } +} diff --git a/vendor/paragonie/constant_time_encoding/src/Base32Hex.php b/vendor/paragonie/constant_time_encoding/src/Base32Hex.php new file mode 100644 index 0000000..4323a57 --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/src/Base32Hex.php @@ -0,0 +1,118 @@ + 0x30 && $src < 0x3a) ret += $src - 0x2e + 1; // -47 + $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src - 47); + + // if ($src > 0x60 && $src < 0x77) ret += $src - 0x61 + 10 + 1; // -86 + $ret += (((0x60 - $src) & ($src - 0x77)) >> 8) & ($src - 86); + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 5-bit integers + * into 8-bit integers. + * + * @param int $src + * @return int + */ + #[Override] + protected static function decode5BitsUpper(int $src): int + { + $ret = -1; + + // if ($src > 0x30 && $src < 0x3a) ret += $src - 0x2e + 1; // -47 + $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src - 47); + + // if ($src > 0x40 && $src < 0x57) ret += $src - 0x41 + 10 + 1; // -54 + $ret += (((0x40 - $src) & ($src - 0x57)) >> 8) & ($src - 54); + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 5-bit integers. + * + * @param int $src + * @return string + */ + #[Override] + protected static function encode5Bits(int $src): string + { + $src += 0x30; + + // if ($src > 0x39) $src += 0x61 - 0x3a; // 39 + $src += ((0x39 - $src) >> 8) & 39; + + return pack('C', $src); + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 5-bit integers. + * + * Uppercase variant. + * + * @param int $src + * @return string + */ + #[Override] + protected static function encode5BitsUpper(int $src): string + { + $src += 0x30; + + // if ($src > 0x39) $src += 0x41 - 0x3a; // 7 + $src += ((0x39 - $src) >> 8) & 7; + + return pack('C', $src); + } +} \ No newline at end of file diff --git a/vendor/paragonie/constant_time_encoding/src/Base64.php b/vendor/paragonie/constant_time_encoding/src/Base64.php new file mode 100644 index 0000000..9679748 --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/src/Base64.php @@ -0,0 +1,381 @@ + SODIUM_BASE64_VARIANT_ORIGINAL, + Base64UrlSafe::class => SODIUM_BASE64_VARIANT_URLSAFE, + default => 0, + }; + if ($variant > 0) { + try { + return sodium_bin2base64($binString, $variant); + } catch (SodiumException $ex) { + throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); + } + } + } + return static::doEncode($binString, true); + } + + /** + * Encode into Base64, no = padding + * + * Base64 character set "[A-Z][a-z][0-9]+/" + * + * @param string $src + * @return string + * + * @throws TypeError + * @api + */ + public static function encodeUnpadded( + #[SensitiveParameter] + string $src + ): string { + if (extension_loaded('sodium')) { + $variant = match(static::class) { + Base64::class => SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING, + Base64UrlSafe::class => SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING, + default => 0, + }; + if ($variant > 0) { + try { + return sodium_bin2base64($src, $variant); + } catch (SodiumException $ex) { + throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); + } + } + } + return static::doEncode($src, false); + } + + /** + * @param string $src + * @param bool $pad Include = padding? + * @return string + * + * @throws TypeError + */ + protected static function doEncode( + #[SensitiveParameter] + string $src, + bool $pad = true + ): string { + $dest = ''; + $srcLen = strlen($src); + // Main loop (no padding): + for ($i = 0; $i + 3 <= $srcLen; $i += 3) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($src, $i, 3)); + $b0 = $chunk[1]; + $b1 = $chunk[2]; + $b2 = $chunk[3]; + + $dest .= + static::encode6Bits( $b0 >> 2 ) . + static::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . + static::encode6Bits((($b1 << 2) | ($b2 >> 6)) & 63) . + static::encode6Bits( $b2 & 63); + } + // The last chunk, which may have padding: + if ($i < $srcLen) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($src, $i, $srcLen - $i)); + $b0 = $chunk[1]; + if ($i + 1 < $srcLen) { + $b1 = $chunk[2]; + $dest .= + static::encode6Bits($b0 >> 2) . + static::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . + static::encode6Bits(($b1 << 2) & 63); + if ($pad) { + $dest .= '='; + } + } else { + $dest .= + static::encode6Bits( $b0 >> 2) . + static::encode6Bits(($b0 << 4) & 63); + if ($pad) { + $dest .= '=='; + } + } + } + return $dest; + } + + /** + * decode from base64 into binary + * + * Base64 character set "./[A-Z][a-z][0-9]" + * + * @param string $encodedString + * @param bool $strictPadding + * @return string + * + * @throws RangeException + * @throws TypeError + */ + #[Override] + public static function decode( + #[SensitiveParameter] + string $encodedString, + bool $strictPadding = false + ): string { + // Remove padding + $srcLen = strlen($encodedString); + if ($srcLen === 0) { + return ''; + } + + if ($strictPadding) { + if (($srcLen & 3) === 0) { + if ($encodedString[$srcLen - 1] === '=') { + $srcLen--; + if ($encodedString[$srcLen - 1] === '=') { + $srcLen--; + } + } + } + if (($srcLen & 3) === 1) { + throw new RangeException( + 'Incorrect padding' + ); + } + if ($encodedString[$srcLen - 1] === '=') { + throw new RangeException( + 'Incorrect padding' + ); + } + if (extension_loaded('sodium')) { + $variant = match(static::class) { + Base64::class => SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING, + Base64UrlSafe::class => SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING, + default => 0, + }; + if ($variant > 0) { + try { + return sodium_base642bin(substr($encodedString, 0, $srcLen), $variant); + } catch (SodiumException $ex) { + throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); + } + } + } + } else { + // Just remove all padding. + $encodedString = rtrim($encodedString, '='); + $srcLen = strlen($encodedString); + } + + $err = 0; + $dest = ''; + // Main loop (no padding): + for ($i = 0; $i + 4 <= $srcLen; $i += 4) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($encodedString, $i, 4)); + $c0 = static::decode6Bits($chunk[1]); + $c1 = static::decode6Bits($chunk[2]); + $c2 = static::decode6Bits($chunk[3]); + $c3 = static::decode6Bits($chunk[4]); + + $dest .= pack( + 'CCC', + ((($c0 << 2) | ($c1 >> 4)) & 0xff), + ((($c1 << 4) | ($c2 >> 2)) & 0xff), + ((($c2 << 6) | $c3 ) & 0xff) + ); + $err |= ($c0 | $c1 | $c2 | $c3) >> 8; + } + // The last chunk, which may have padding: + if ($i < $srcLen) { + /** @var array $chunk */ + $chunk = unpack('C*', substr($encodedString, $i, $srcLen - $i)); + $c0 = static::decode6Bits($chunk[1]); + + if ($i + 2 < $srcLen) { + $c1 = static::decode6Bits($chunk[2]); + $c2 = static::decode6Bits($chunk[3]); + $dest .= pack( + 'CC', + ((($c0 << 2) | ($c1 >> 4)) & 0xff), + ((($c1 << 4) | ($c2 >> 2)) & 0xff) + ); + $err |= ($c0 | $c1 | $c2) >> 8; + if ($strictPadding) { + $err |= ($c2 << 6) & 0xff; + } + } elseif ($i + 1 < $srcLen) { + $c1 = static::decode6Bits($chunk[2]); + $dest .= pack( + 'C', + ((($c0 << 2) | ($c1 >> 4)) & 0xff) + ); + $err |= ($c0 | $c1) >> 8; + if ($strictPadding) { + $err |= ($c1 << 4) & 0xff; + } + } elseif ($strictPadding) { + $err |= 1; + } + } + $check = ($err === 0); + if (!$check) { + throw new RangeException( + 'Base64::decode() only expects characters in the correct base64 alphabet' + ); + } + return $dest; + } + + /** + * @param string $encodedString + * @return string + * @api + */ + public static function decodeNoPadding( + #[SensitiveParameter] + string $encodedString + ): string { + $srcLen = strlen($encodedString); + if ($srcLen === 0) { + return ''; + } + if (($srcLen & 3) === 0) { + // If $strLen is not zero, and it is divisible by 4, then it's at least 4. + if ($encodedString[$srcLen - 1] === '=' || $encodedString[$srcLen - 2] === '=') { + throw new InvalidArgumentException( + "decodeNoPadding() doesn't tolerate padding" + ); + } + } + return static::decode( + $encodedString, + true + ); + } + + /** + * Uses bitwise operators instead of table-lookups to turn 6-bit integers + * into 8-bit integers. + * + * Base64 character set: + * [A-Z] [a-z] [0-9] + / + * 0x41-0x5a, 0x61-0x7a, 0x30-0x39, 0x2b, 0x2f + * + * @param int $src + * @return int + */ + protected static function decode6Bits(int $src): int + { + $ret = -1; + + // if ($src > 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64 + $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); + + // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70 + $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70); + + // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5 + $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5); + + // if ($src == 0x2b) $ret += 62 + 1; + $ret += (((0x2a - $src) & ($src - 0x2c)) >> 8) & 63; + + // if ($src == 0x2f) ret += 63 + 1; + $ret += (((0x2e - $src) & ($src - 0x30)) >> 8) & 64; + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 6-bit integers. + * + * @param int $src + * @return string + */ + protected static function encode6Bits(int $src): string + { + $diff = 0x41; + + // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6 + $diff += ((25 - $src) >> 8) & 6; + + // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75 + $diff -= ((51 - $src) >> 8) & 75; + + // if ($src > 61) $diff += 0x2b - 0x30 - 10; // -15 + $diff -= ((61 - $src) >> 8) & 15; + + // if ($src > 62) $diff += 0x2f - 0x2b - 1; // 3 + $diff += ((62 - $src) >> 8) & 3; + + return pack('C', $src + $diff); + } +} diff --git a/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php b/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php new file mode 100644 index 0000000..8477517 --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php @@ -0,0 +1,92 @@ + 0x2d && $src < 0x30) ret += $src - 0x2e + 1; // -45 + $ret += (((0x2d - $src) & ($src - 0x30)) >> 8) & ($src - 45); + + // if ($src > 0x40 && $src < 0x5b) ret += $src - 0x41 + 2 + 1; // -62 + $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 62); + + // if ($src > 0x60 && $src < 0x7b) ret += $src - 0x61 + 28 + 1; // -68 + $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 68); + + // if ($src > 0x2f && $src < 0x3a) ret += $src - 0x30 + 54 + 1; // 7 + $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 7); + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 6-bit integers. + * + * @param int $src + * @return string + */ + #[Override] + protected static function encode6Bits(int $src): string + { + $src += 0x2e; + + // if ($src > 0x2f) $src += 0x41 - 0x30; // 17 + $src += ((0x2f - $src) >> 8) & 17; + + // if ($src > 0x5a) $src += 0x61 - 0x5b; // 6 + $src += ((0x5a - $src) >> 8) & 6; + + // if ($src > 0x7a) $src += 0x30 - 0x7b; // -75 + $src -= ((0x7a - $src) >> 8) & 75; + + return \pack('C', $src); + } +} diff --git a/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php b/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php new file mode 100644 index 0000000..2c42db3 --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php @@ -0,0 +1,86 @@ + 0x2d && $src < 0x3a) ret += $src - 0x2e + 1; // -45 + $ret += (((0x2d - $src) & ($src - 0x3a)) >> 8) & ($src - 45); + + // if ($src > 0x40 && $src < 0x5b) ret += $src - 0x41 + 12 + 1; // -52 + $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 52); + + // if ($src > 0x60 && $src < 0x7b) ret += $src - 0x61 + 38 + 1; // -58 + $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 58); + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 6-bit integers. + * + * @param int $src + * @return string + */ + #[Override] + protected static function encode6Bits(int $src): string + { + $src += 0x2e; + + // if ($src > 0x39) $src += 0x41 - 0x3a; // 7 + $src += ((0x39 - $src) >> 8) & 7; + + // if ($src > 0x5a) $src += 0x61 - 0x5b; // 6 + $src += ((0x5a - $src) >> 8) & 6; + + return \pack('C', $src); + } +} diff --git a/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php b/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php new file mode 100644 index 0000000..845aaf6 --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php @@ -0,0 +1,99 @@ + 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64 + $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); + + // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70 + $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70); + + // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5 + $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5); + + // if ($src == 0x2c) $ret += 62 + 1; + $ret += (((0x2c - $src) & ($src - 0x2e)) >> 8) & 63; + + // if ($src == 0x5f) ret += 63 + 1; + $ret += (((0x5e - $src) & ($src - 0x60)) >> 8) & 64; + + return $ret; + } + + /** + * Uses bitwise operators instead of table-lookups to turn 8-bit integers + * into 6-bit integers. + * + * @param int $src + * @return string + */ + #[Override] + protected static function encode6Bits(int $src): string + { + $diff = 0x41; + + // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6 + $diff += ((25 - $src) >> 8) & 6; + + // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75 + $diff -= ((51 - $src) >> 8) & 75; + + // if ($src > 61) $diff += 0x2d - 0x30 - 10; // -13 + $diff -= ((61 - $src) >> 8) & 13; + + // if ($src > 62) $diff += 0x5f - 0x2b - 1; // 3 + $diff += ((62 - $src) >> 8) & 49; + + return \pack('C', $src + $diff); + } +} diff --git a/vendor/paragonie/constant_time_encoding/src/Binary.php b/vendor/paragonie/constant_time_encoding/src/Binary.php new file mode 100644 index 0000000..3695844 --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/src/Binary.php @@ -0,0 +1,87 @@ +getMessage(), $ex->getCode(), $ex); + } + } + $hex = ''; + $len = strlen($binString); + for ($i = 0; $i < $len; ++$i) { + /** @var array $chunk */ + $chunk = unpack('C', $binString[$i]); + $c = $chunk[1] & 0xf; + $b = $chunk[1] >> 4; + + $hex .= pack( + 'CC', + (87 + $b + ((($b - 10) >> 8) & ~38)), + (87 + $c + ((($c - 10) >> 8) & ~38)) + ); + } + return $hex; + } + + /** + * Convert a binary string into a hexadecimal string without cache-timing + * leaks, returning uppercase letters (as per RFC 4648) + * + * @param string $binString (raw binary) + * @return string + * @throws TypeError + */ + public static function encodeUpper( + #[SensitiveParameter] + string $binString + ): string { + $hex = ''; + $len = strlen($binString); + + for ($i = 0; $i < $len; ++$i) { + /** @var array $chunk */ + $chunk = unpack('C', $binString[$i]); + $c = $chunk[1] & 0xf; + $b = $chunk[1] >> 4; + + $hex .= pack( + 'CC', + (55 + $b + ((($b - 10) >> 8) & ~6)), + (55 + $c + ((($c - 10) >> 8) & ~6)) + ); + } + return $hex; + } + + /** + * Convert a hexadecimal string into a binary string without cache-timing + * leaks + * + * @param string $encodedString + * @param bool $strictPadding + * @return string (raw binary) + * @throws RangeException + */ + #[Override] + public static function decode( + #[SensitiveParameter] + string $encodedString, + bool $strictPadding = false + ): string { + if (extension_loaded('sodium') && $strictPadding) { + try { + return sodium_hex2bin($encodedString); + } catch (SodiumException $ex) { + throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); + } + } + $hex_pos = 0; + $bin = ''; + $c_acc = 0; + $hex_len = strlen($encodedString); + $state = 0; + if (($hex_len & 1) !== 0) { + if ($strictPadding) { + throw new RangeException( + 'Expected an even number of hexadecimal characters' + ); + } else { + $encodedString = '0' . $encodedString; + ++$hex_len; + } + } + + /** @var array $chunk */ + $chunk = unpack('C*', $encodedString); + while ($hex_pos < $hex_len) { + ++$hex_pos; + $c = $chunk[$hex_pos]; + $c_num = $c ^ 48; + $c_num0 = ($c_num - 10) >> 8; + $c_alpha = ($c & ~32) - 55; + $c_alpha0 = (($c_alpha - 10) ^ ($c_alpha - 16)) >> 8; + + if (($c_num0 | $c_alpha0) === 0) { + throw new RangeException( + 'Expected hexadecimal character' + ); + } + $c_val = ($c_num0 & $c_num) | ($c_alpha & $c_alpha0); + if ($state === 0) { + $c_acc = $c_val * 16; + } else { + $bin .= pack('C', $c_acc | $c_val); + } + $state ^= 1; + } + return $bin; + } +} diff --git a/vendor/paragonie/constant_time_encoding/src/RFC4648.php b/vendor/paragonie/constant_time_encoding/src/RFC4648.php new file mode 100644 index 0000000..fb66f73 --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/src/RFC4648.php @@ -0,0 +1,208 @@ + "Zm9v" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base64Encode( + #[SensitiveParameter] + string $str + ): string { + return Base64::encode($str); + } + + /** + * RFC 4648 Base64 decoding + * + * "Zm9v" -> "foo" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base64Decode( + #[SensitiveParameter] + string $str + ): string { + return Base64::decode($str, true); + } + + /** + * RFC 4648 Base64 (URL Safe) encoding + * + * "foo" -> "Zm9v" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base64UrlSafeEncode( + #[SensitiveParameter] + string $str + ): string { + return Base64UrlSafe::encode($str); + } + + /** + * RFC 4648 Base64 (URL Safe) decoding + * + * "Zm9v" -> "foo" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base64UrlSafeDecode( + #[SensitiveParameter] + string $str + ): string { + return Base64UrlSafe::decode($str, true); + } + + /** + * RFC 4648 Base32 encoding + * + * "foo" -> "MZXW6===" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base32Encode( + #[SensitiveParameter] + string $str + ): string { + return Base32::encodeUpper($str); + } + + /** + * RFC 4648 Base32 encoding + * + * "MZXW6===" -> "foo" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base32Decode( + #[SensitiveParameter] + string $str + ): string { + return Base32::decodeUpper($str, true); + } + + /** + * RFC 4648 Base32-Hex encoding + * + * "foo" -> "CPNMU===" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base32HexEncode( + #[SensitiveParameter] + string $str + ): string { + return Base32::encodeUpper($str); + } + + /** + * RFC 4648 Base32-Hex decoding + * + * "CPNMU===" -> "foo" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base32HexDecode( + #[SensitiveParameter] + string $str + ): string { + return Base32::decodeUpper($str, true); + } + + /** + * RFC 4648 Base16 decoding + * + * "foo" -> "666F6F" + * + * @param string $str + * @return string + * + * @throws TypeError + */ + public static function base16Encode( + #[SensitiveParameter] + string $str + ): string { + return Hex::encodeUpper($str); + } + + /** + * RFC 4648 Base16 decoding + * + * "666F6F" -> "foo" + * + * @param string $str + * @return string + */ + public static function base16Decode( + #[SensitiveParameter] + string $str + ): string { + return Hex::decode($str, true); + } +} diff --git a/vendor/pragmarx/google2fa/.github/workflows/cross-platform.yml b/vendor/pragmarx/google2fa/.github/workflows/cross-platform.yml new file mode 100644 index 0000000..241e2de --- /dev/null +++ b/vendor/pragmarx/google2fa/.github/workflows/cross-platform.yml @@ -0,0 +1,138 @@ +name: Cross Platform + +on: + push: + branches: + - '*.x' + pull_request: + branches: + - '*.x' + +jobs: + test: + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5'] + dependency-version: [prefer-lowest, prefer-stable] + exclude: + # Exclude older PHP versions from newer OS to reduce matrix size + - os: windows-latest + php: '7.4' + - os: windows-latest + php: '8.0' + - os: macos-latest + php: '7.4' + - os: macos-latest + php: '8.0' + # PHPUnit 12 has compatibility issues with prefer-lowest on multiple PHP versions + - php: '8.1' + dependency-version: prefer-lowest + - php: '8.2' + dependency-version: prefer-lowest + - php: '8.3' + dependency-version: prefer-lowest + - php: '8.4' + dependency-version: prefer-lowest + - php: '8.5' + dependency-version: prefer-lowest + + name: P${{ matrix.php }} - ${{ matrix.os }} - ${{ matrix.dependency-version }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo, json + coverage: none + + - name: Validate composer.json and composer.lock + run: composer validate --strict + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v3 + with: + path: vendor + key: ${{ runner.os }}-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php-${{ matrix.php }}- + + - name: Configure platform for PHP 8.5 + if: matrix.php == '8.5' + run: composer config platform.php 8.4.0 + + - name: Install dependencies + run: composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-progress + + - name: List Installed Dependencies + run: composer show -D + + - name: Execute tests + run: vendor/bin/phpunit --no-coverage + + code-quality: + runs-on: ubuntu-latest + name: Code Quality + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + if: hashFiles('package.json') != '' + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install Node.js dependencies + if: hashFiles('package.json') != '' + run: npm install + + - name: Check code style with Prettier + if: hashFiles('package.json') != '' + run: npm run format:check + continue-on-error: true + + - name: Skip Node.js checks (no package.json found) + if: hashFiles('package.json') == '' + run: echo "No package.json found, skipping Node.js code quality checks" + + security: + runs-on: ubuntu-latest + name: Security Audit + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.3 + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, json + coverage: none + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v3 + with: + path: vendor + key: ${{ runner.os }}-php-8.3-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php-8.3- + + - name: Install dependencies + run: composer install --prefer-dist --no-interaction --no-progress + + - name: Security audit + run: composer audit + continue-on-error: true \ No newline at end of file diff --git a/vendor/pragmarx/google2fa/.github/workflows/phpunit.yml b/vendor/pragmarx/google2fa/.github/workflows/phpunit.yml new file mode 100644 index 0000000..638fe70 --- /dev/null +++ b/vendor/pragmarx/google2fa/.github/workflows/phpunit.yml @@ -0,0 +1,129 @@ +name: PHPUnit + +on: + push: + branches: + - '*.x' + pull_request: + branches: + - '*.x' + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5'] + dependency-version: [prefer-lowest, prefer-stable] + exclude: + # PHPUnit 12 has compatibility issues with prefer-lowest on multiple PHP versions + - php: '8.1' + dependency-version: prefer-lowest + - php: '8.2' + dependency-version: prefer-lowest + - php: '8.3' + dependency-version: prefer-lowest + - php: '8.4' + dependency-version: prefer-lowest + - php: '8.5' + dependency-version: prefer-lowest + + name: P${{ matrix.php }} - ${{ matrix.dependency-version }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, json + coverage: none + + - name: Setup problem matchers + run: | + echo "::add-matcher::${{ runner.tool_cache }}/php.json" + echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v3 + with: + path: vendor + key: ${{ runner.os }}-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php-${{ matrix.php }}- + + - name: Configure platform for PHP 8.5 + if: matrix.php == '8.5' + run: composer config platform.php 8.4.0 + + - name: Install dependencies + run: composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-progress + + - name: List Installed Dependencies + run: composer show -D + + - name: Execute tests + run: vendor/bin/phpunit --no-coverage + + coverage: + runs-on: ubuntu-latest + name: Coverage + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.3 + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, json + coverage: xdebug3 + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v3 + with: + path: vendor + key: ${{ runner.os }}-php-8.3-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php-8.3- + + - name: Install dependencies + run: composer install --prefer-dist --no-interaction --no-progress + + - name: Check Xdebug status + run: php -m | grep -i xdebug + + - name: Execute tests with coverage + run: | + echo "Current working directory: $(pwd)" + echo "PHPUnit command: vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover" + export XDEBUG_MODE=coverage + echo "Xdebug mode set to: $XDEBUG_MODE" + vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover + echo "PHPUnit exit code: $?" + + - name: Check if coverage file was created + run: | + echo "Checking for coverage file..." + echo "Current directory contents:" + ls -la + echo "Looking for clover files:" + ls -la *.clover 2>/dev/null || echo "No clover files found in current directory" + echo "Searching entire directory tree:" + find . -name "*.clover" -type f 2>/dev/null || echo "No clover files found anywhere" + echo "Checking if Xdebug coverage mode is working:" + php -r "echo 'Xdebug mode: ' . (getenv('XDEBUG_MODE') ?: 'not set') . PHP_EOL;" + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: coverage.clover + fail_ci_if_error: false \ No newline at end of file diff --git a/vendor/pragmarx/google2fa/.github/workflows/static-analysis.yml b/vendor/pragmarx/google2fa/.github/workflows/static-analysis.yml new file mode 100644 index 0000000..1f21b9b --- /dev/null +++ b/vendor/pragmarx/google2fa/.github/workflows/static-analysis.yml @@ -0,0 +1,49 @@ +name: Static Analysis + +on: + push: + branches: + - '*.x' + pull_request: + branches: + - '*.x' + +jobs: + phpstan: + runs-on: ubuntu-latest + name: PHPStan P${{ matrix.php-version }} + + strategy: + fail-fast: false + matrix: + php-version: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5'] + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, json + coverage: none + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v3 + with: + path: vendor + key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php-${{ matrix.php-version }}- + + - name: Configure platform for PHP 8.5 + if: matrix.php-version == '8.5' + run: composer config platform.php 8.4.0 + + - name: Install dependencies + run: composer install --prefer-dist --no-interaction --no-progress + + - name: Execute static analysis + run: vendor/bin/phpstan analyse --no-progress --level=5 \ No newline at end of file diff --git a/vendor/pragmarx/google2fa/CHANGELOG.md b/vendor/pragmarx/google2fa/CHANGELOG.md new file mode 100644 index 0000000..4b6aa90 --- /dev/null +++ b/vendor/pragmarx/google2fa/CHANGELOG.md @@ -0,0 +1,131 @@ +## Change Log + +## [9.0.0] - 202-09-18 +### ⚠️ Breaking Change +### Added +- Increased default secret key length from 16 to 32 characters for enhanced security +- Cryptographic entropy increased from 80 bits to 160 bits +- Maintains full compatibility with Google Authenticator and other TOTP apps +### Changed +- `generateSecretKey()` now generates 32-character secrets by default +- To maintain previous behavior, use `generateSecretKey(16)` +- Updated tests to reflect new default behavior +### Security +- This change significantly improves security against brute force attacks +- 32-character secrets provide stronger cryptographic protection while maintaining RFC 6238 compliance + +## [8.0.1] - 2020-05-05 +### Added +- Test using GitHub Actions +### Fixed +- Improve PHP 8.1 compatibility + +## [8.0.0] - 2020-05-05 +### Added +- PHP 8 Support +- Tests +- Extract som test helpers +- PHPStan checks +### Changed +- PHP required version bumped to >= 7.1 +- Exception interfaces extending Throwable + +## [7.0.0] - 2019-09-21 +### Added +- PHPStan checks +### Removed +- Constants::ARGUMENT_NOT_SET - This is a BC break + +## [6.1.3] - 2019-09-21 +### Drafted +- To fix inserted BC break + +## [6.1.2] - 2019-09-21 +### DELETED +- To fix inserted BC break + +## [6.1.1] - 2019-09-21 +### DELETED +- To fix inserted BC break + +## [6.0.0] - 2019-09-11 +### Added +- Base exception class and interfaces +### Removed +- Support for PHP 5.4 to 7.0, will keep supporting PHP 7.1, 7.2, 7.3 & 7.4 + +## [5.0.0] - 2019-05-19 +### Changed +- Remove dead Google Charts API + +## [4.0.0] - 2018-10-06 +### Changed +- Bacon QRCode package removed + +## [3.0.1] - 2018-03-15 +### Changed +- Relicensed to MIT + +## [3.0.0] - 2018-03-07 +### Changed +- It's now mandatory to enable Google Api secret key access by executing `setAllowInsecureCallToGoogleApis(true);` + +## [2.0.4] - 2017-06-22 +### Fixed +- Fix Base32 to keep supporting PHP 5.4 && 5.5. + +## [2.0.3] - 2017-06-22 +## [2.0.2] - 2017-06-21 +## [2.0.1] - 2017-06-20 +### Fixed +- Minor bugs + +## [2.0.0] - 2017-06-20 +### Changed +- Drop the Laravel support in favor of a bridge package (https://github.com/antonioribeiro/google2fa-laravel). +- Using a more secure Base 32 algorithm, to prevent cache-timing attacks. +- Added verifyKeyNewer() method to prevent reuse of keys. +- Refactored to remove complexity, by extracting support methods. +- Created a package playground page (https://pragmarx.com/google2fa) + +## [2.0.0] - 2017-06-20 +### Changed +- Drop the Laravel support in favor of a bridge package (https://github.com/antonioribeiro/google2fa-laravel). +- Using a more secure Base 32 algorithm, to prevent cache-timing attacks. +- Added verifyKeyNewer() method to prevent reuse of keys. +- Refactored to remove complexity, by extracting support methods. +- Created a package playground page (https://pragmarx.com/google2fa) + +## [1.0.1] - 2016-07-18 +### Changed +- Drop support for PHP 5.3.7, require PHP 5.4+. +- Coding style is now PSR-2 automatically enforced by StyleCI. + +## [1.0.0] - 2016-07-17 +### Changed +- Package bacon/bacon-qr-code was moved to "suggest". + +## [0.8.1] - 2016-07-17 +### Fixed +- Allow paragonie/random_compat ~1.4|~2.0. + +## [0.8.0] - 2016-07-17 +### Changed +- Bumped christian-riesen/base32 to ~1.3 +- Use paragonie/random_compat to generate cryptographically secure random secret keys +- Readme improvements +- Drop simple-qrcode in favor of bacon/bacon-qr-code +- Fix tavis setup for phpspec, PHP 7, hhvm and improve cache + +## [0.7.0] - 2015-11-07 +### Changed +- Fixed URL generation for QRCodes +- Avoid time attacks + +## [0.2.0] - 2015-02-19 +### Changed +- Laravel 5 compatibility. + +## [0.1.0] - 2014-07-06 +### Added +- First version. diff --git a/vendor/pragmarx/google2fa/LICENSE.md b/vendor/pragmarx/google2fa/LICENSE.md new file mode 100644 index 0000000..7300640 --- /dev/null +++ b/vendor/pragmarx/google2fa/LICENSE.md @@ -0,0 +1,7 @@ +Copyright 2014-2018 Phil, Antonio Carlos Ribeiro and All Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/pragmarx/google2fa/README.md b/vendor/pragmarx/google2fa/README.md new file mode 100644 index 0000000..1973dda --- /dev/null +++ b/vendor/pragmarx/google2fa/README.md @@ -0,0 +1,474 @@ +# Google2FA +## Google Two-Factor Authentication for PHP + +Google2FA is a PHP implementation of the Google Two-Factor Authentication Module, supporting the HMAC-Based One-time Password (HOTP) algorithm specified in [RFC 4226](https://tools.ietf.org/html/rfc4226) and the Time-based One-time Password (TOTP) algorithm specified in [RFC 6238](https://tools.ietf.org/html/rfc6238). + +--- + +

+ Latest Stable Version + License + Build + Static Analysis +

+

+ Coverage + PHP + Downloads +

+ +--- + +## Menu + + - [Version Compatibility](#version-compatibility) + - [Google Two-Factor Authentication for PHP](#google-two-factor-authentication-for-php) + - [Laravel bridge](#laravel-bridge) + - [Demos, Example & Playground](#demos-example--playground) + - [Requirements](#requirements) + - [Installing](#installing) + - [Usage](#usage) + - [How To Generate And Use Two Factor Authentication](#how-to-generate-and-use-two-factor-authentication) + - [Generating QRCodes](#generating-qrcodes) + - [QR Code Packages](#qr-code-packages) + - [Examples of Usage](#examples-of-usage) + - [HMAC Algorithms](#hmac-algorithms) + - [Server Time](#server-time) + - [Validation Window](#validation-window) + - [Using a Bigger and Prefixing the Secret Key](#using-a-bigger-and-prefixing-the-secret-key) + - [Google Authenticator secret key compatibility](#google-authenticator-secret-key-compatibility) + - [Google Authenticator Apps](#google-authenticator-apps) + - [Deprecation Warning](#deprecation-warning) + - [Testing](#testing) + - [Authors](#authors) + - [License](#license) + - [Contributing](#contributing) + +## Version Compatibility + + PHP | Google2FA +:--------|:---------- + 7.4 | 8.x & 9.x + 8.0 | 8.x & 9.x + 8.1 | 8.x & 9.x + 8.2 | 8.x & 9.x + 8.3 | 8.x & 9.x + 8.4 | 8.x & 9.x + 8.5 (beta) | 8.x & 9.x + +## ⚠️ Version 9.0.0 Breaking Change + +### Default Secret Key Length Increased + +**Version 9.0.0** introduces a **breaking change**: The default secret key length has been increased from **16 to 32 characters** for enhanced security. + +#### What Changed? +- `generateSecretKey()` now generates 32-character secrets by default (previously 16) +- This increases cryptographic entropy from 80 bits to 160 bits +- Maintains full compatibility with Google Authenticator and other TOTP apps + +#### Migration Guide + +**If you want to keep the previous behavior (16-character secrets):** +```php +// Old default behavior (v8.x and below) +$secret = $google2fa->generateSecretKey(); + +// New way to get 16-character secrets (v9.0+) +$secret = $google2fa->generateSecretKey(16); +``` + +**If you want to use the new default (32-character secrets):** +```php +// This now generates 32-character secrets by default +$secret = $google2fa->generateSecretKey(); +``` + +#### Potential Impact Areas +- **Database schemas**: Check if your `google2fa_secret` columns can handle 32 characters +- **Validation rules**: Update any length validations that expect exactly 16 characters +- **Tests**: Update test assertions expecting 16-character secrets +- **UI components**: Ensure QR code displays and secret key fields accommodate longer secrets + +**Important**: Existing 16-character secrets remain fully functional. Database updates are only needed if you want to use the new 32-character default behavior. + +#### Why This Change? +While 16-character secrets meet RFC 6238 minimum requirements, 32-character secrets provide significantly better security: +- **16 chars**: 80 bits of entropy (adequate but minimal) +- **32 chars**: 160 bits of entropy (much stronger against brute force) + +This change aligns with modern security best practices for cryptographic applications. + +## Laravel bridge + +This package is agnostic, but there's a [Laravel bridge](https://github.com/antonioribeiro/google2fa-laravel). + +## About QRCode generation + +This package does not generate QRCodes for 2FA. + +If you are looking for Google Two-Factor Authentication, but also need to generate QRCode for it, you can use the [Google2FA QRCode package](https://github.com/antonioribeiro/google2fa-qrcode), which integrates this package and also generates QRCodes using the BaconQRCode library, or check options on how to do it yourself [here in the docs](#qr-code-packages). + +## Demos, Example & Playground + +Please check the [Google2FA Package Playground](http://pragmarx.com/playground/google2fa). + +![playground](docs/playground.jpg) + +Here's a demo app showing how to use Google2FA: [google2fa-example](https://github.com/antonioribeiro/google2fa-example). + +You can scan the QR code on [this (old) demo page](https://antoniocarlosribeiro.com/technology/google2fa) with a Google Authenticator app and view the code changing (almost) in real time. + +## Requirements + +- PHP 7.1 or greater + +## Installing + +Use Composer to install it: + + composer require pragmarx/google2fa + +To generate inline QRCodes, you'll need to install a QR code generator, e.g. [BaconQrCode](https://github.com/Bacon/BaconQrCode): + + composer require bacon/bacon-qr-code + +## Usage + +### Instantiate it directly + +```php +use PragmaRX\Google2FA\Google2FA; + +$google2fa = new Google2FA(); + +return $google2fa->generateSecretKey(); +``` + +## How To Generate And Use Two Factor Authentication + +Generate a secret key for your user and save it: + +```php +// Generates a 32-character secret key (v9.0.0+ default) +$user->google2fa_secret = $google2fa->generateSecretKey(); + +// Or explicitly specify 16 characters for compatibility +$user->google2fa_secret = $google2fa->generateSecretKey(16); +``` + +## Generating QRCodes + +The more secure way of creating QRCode is to do it yourself or using a library. First you have to install a QR code generator e.g. BaconQrCode, as stated above, then you just have to generate the QR code url using: + +```php +$qrCodeUrl = $google2fa->getQRCodeUrl( + $companyName, + $companyEmail, + $secretKey +); +``` + +Once you have the QR code url, you can feed it to your preferred QR code generator. + +```php +// Use your own QR Code generator to generate a data URL: +$google2fa_url = custom_generate_qrcode_url($qrCodeUrl); + +/// and in your view: + + +``` + +And to verify, you just have to: + +```php +$secret = $request->input('secret'); + +$valid = $google2fa->verifyKey($user->google2fa_secret, $secret); +``` + +## QR Code Packages + +This package suggests the use of [Bacon/QRCode](https://github.com/Bacon/BaconQrCode) because +it is known as a good QR Code package, but you can use it with any other package, for +instance [Google2FA QRCode](https://github.com/antonioribeiro/google2fa-qrcode), +[Simple QrCode](https://www.simplesoftware.io/docs/simple-qrcode) +or [Endroid QR Code](https://github.com/endroid/qr-code), all of them use +[Bacon/QRCode](https://github.com/Bacon/BaconQrCode) to produce QR Codes. + +Usually you'll need a 2FA URL, so you just have to use the URL generator: + +```php +$google2fa->getQRCodeUrl($companyName, $companyEmail, $secretKey) +``` + +## Examples of Usage + +### [Google2FA QRCode](https://github.com/antonioribeiro/google2fa-qrcode) + +Get a QRCode to be used inline: + +```php +$google2fa = (new \PragmaRX\Google2FAQRCode\Google2FA()); + +$inlineUrl = $google2fa->getQRCodeInline( + 'Company Name', + 'company@email.com', + $google2fa->generateSecretKey() +); +``` + +And use in your template: + +```php + +``` + +### [Simple QrCode](https://www.simplesoftware.io/docs/simple-qrcode) + +```php +
+ {!! QrCode::size(100)->generate($google2fa->getQRCodeUrl($companyName, $companyEmail, $secretKey)); !!} +

Scan me to return to the original page.

+
+``` + +### [Endroid QR Code Generator](https://github.com/endroid/qr-code) + +Generate the data URL + +```php + +$qrCode = new \Endroid\QrCode\QrCode($value); +$qrCode->setSize(100); +$google2fa_url = $qrCode->writeDataUri(); +``` + +And in your view + +```php +
+ {!! $google2fa_url !!} +

Scan me to return to the original page.

+
+``` + +### [Bacon/QRCode](https://github.com/Bacon/BaconQrCode) + +```php +getQRCodeUrl( + 'pragmarx', + 'google2fa@pragmarx.com', + $google2fa->generateSecretKey() +); + +$writer = new Writer( + new ImageRenderer( + new RendererStyle(400), + new ImagickImageBackEnd() + ) +); + +$qrcode_image = base64_encode($writer->writeString($g2faUrl)); +``` + +And show it as an image: + +```php + +``` + +## HMAC Algorithms + +To comply with [RFC6238](https://tools.ietf.org/html/rfc6238), this package supports SHA1, SHA256 and SHA512. It defaults to SHA1, so to use a different algorithm you just have to use the method `setAlgorithm()`: + +``` php + +use PragmaRX\Google2FA\Support\Constants; + +$google2fa->setAlgorithm(Constants::SHA512); +``` + +## Server Time + +It's really important that you keep your server time in sync with some NTP server, on Ubuntu you can add this to the crontab: + +```bash +sudo service ntp stop +sudo ntpd -gq +sudo service ntp start +``` + +## Validation Window + +To avoid problems with clocks that are slightly out of sync, we do not check against the current key only but also consider `$window` keys each from the past and future. You can pass `$window` as optional third parameter to `verifyKey`, it defaults to `1`. When a new key is generated every 30 seconds, then with the default setting, keys from one previous, the current, and one next 30-seconds intervals will be considered. To the user with properly synchronized clock, it will look like the key is valid for 60 seconds instead of 30, as the system will accept it even when it is already expired for let's say 29 seconds. + +```php +$secret = $request->input('secret'); + +$window = 8; // 8 keys (respectively 4 minutes) past and future + +$valid = $google2fa->verifyKey($user->google2fa_secret, $secret, $window); +``` + +Setting the `$window` parameter to `0` may also mean that the system will not accept a key that was valid when the user has seen it in their generator as it usually takes some time for the user to input the key to the particular form field. + +An attacker might be able to watch the user entering his credentials and one time key. +Without further precautions, the key remains valid until it is no longer within the window of the server time. In order to prevent usage of a one time key that has already been used, you can utilize the `verifyKeyNewer` function. + +```php +$secret = $request->input('secret'); + +$timestamp = $google2fa->verifyKeyNewer($user->google2fa_secret, $secret, $user->google2fa_ts); + +if ($timestamp !== false) { + $user->update(['google2fa_ts' => $timestamp]); + // successful +} else { + // failed +} +``` + +Note that `$timestamp` is either `false` (if the key is invalid or has been used before) or the provided key's unix timestamp divided by the key regeneration period of 30 seconds. + +## Using a Bigger and Prefixing the Secret Key + +Although the probability of collision of a 16 bytes (128 bits) random string is very low, you can harden it by: + +#### Use a bigger key + +```php +$secretKey = $google2fa->generateSecretKey(32); // now defaults to 32 bytes (v9.0.0+) +$secretKey = $google2fa->generateSecretKey(16); // for 16 byte keys (v8.x behavior) +``` + +#### You can prefix your secret keys + +You may prefix your secret keys, but you have to understand that, as your secret key must have length in power of 2, your prefix will have to have a complementary size. So if your key is 16 bytes long, if you add a prefix it must also be 16 bytes long, but as your prefixes will be converted to base 32, the max length of your prefix is 10 bytes. So, those are the sizes you can use in your prefixes: + +``` +1, 2, 5, 10, 20, 40, 80... +``` + +And it can be used like so: + +```php +$prefix = strpad($userId, 10, 'X'); + +$secretKey = $google2fa->generateSecretKey(16, $prefix); +``` + +#### Window + +The Window property defines how long a OTP will work, or how many cycles it will last. A key has a 30 seconds cycle, setting the window to 0 will make the key last for those 30 seconds, setting it to 2 will make it last for 120 seconds. This is how you set the window: + +```php +$secretKey = $google2fa->setWindow(4); +``` + +But you can also set the window while checking the key. If you need to set a window of 4 during key verification, this is how you do: + +```php +$isValid = $google2fa->verifyKey($seed, $key, 4); +``` + +#### Key Regeneration Interval + +You can change key regeneration interval, which defaults to 30 seconds, but remember that this is a default value on most authentication apps, like Google Authenticator, which will, basically, make your app out of sync with them. + +```php +$google2fa->setKeyRegeneration(40); +``` + +## Google Authenticator secret key compatibility + +To be compatible with Google Authenticator, your (converted to base 32) secret key length must be at least 8 chars and be a power of 2: 8, 16, 32, 64... + +So, to prevent errors, you can do something like this while generating it: + +```php +$secretKey = '123456789'; + +$secretKey = str_pad($secretKey, pow(2,ceil(log(strlen($secretKey),2))), 'X'); +``` + +And it will generate + +``` +123456789XXXXXXX +``` + +By default, this package will enforce compatibility, but, if Google Authenticator is not a target, you can disable it by doing + +```php +$google2fa->setEnforceGoogleAuthenticatorCompatibility(false); +``` + +## Google Authenticator Apps + +To use the two factor authentication, your user will have to install a Google Authenticator compatible app, those are some of the currently available: + +* [Authy for iOS, Android, Chrome, OS X](https://www.authy.com/) +* [FreeOTP for iOS, Android and Pebble](https://apps.getpebble.com/en_US/application/52f1a4c3c4117252f9000bb8) +* [Google Authenticator for iOS](https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8) +* [Google Authenticator for Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) +* [Google Authenticator (port) on Windows Store](https://www.microsoft.com/en-us/store/p/google-authenticator/9wzdncrdnkrf) +* [Microsoft Authenticator for Windows Phone](https://www.microsoft.com/en-us/store/apps/authenticator/9wzdncrfj3rj) +* [LastPass Authenticator for iOS, Android, OS X, Windows](https://lastpass.com/auth/) +* [1Password for iOS, Android, OS X, Windows](https://1password.com) + +## Deprecation Warning + +Google API for QR generator is turned off. All versions of that package prior to 5.0.0 are deprecated. Please upgrade and check documentation regarding [QRCode generation](https://github.com/antonioribeiro/google2fa#generating-qrcodes). + +## Testing + +The package tests were written with [PHPUnit](https://phpunit.de/). There are some Composer scripts to help you run tests and analysis: + +PHPUnit: + +```` +composer test +```` + +PHPStan analysis: + +```` +composer analyse +```` + +## Authors + +- [Antonio Carlos Ribeiro](http://twitter.com/iantonioribeiro) +- [Phil (Orginal author of this class)](https://www.idontplaydarts.com/static/ga.php_.txt) +- [All Contributors](https://github.com/antonioribeiro/google2fa/graphs/contributors) + +## License + +Google2FA is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details. + +## Contributing + +Pull requests and issues are more than welcome. + +## Sponsorships + +### Direct + +None. + +### Indirect + +- JetBrains - [Open Source License](https://www.jetbrains.com/community/opensource/#support) (since 2020) +- Blackfire - [Open Source License](https://www.blackfire.io/open-source/) (since 2022) diff --git a/vendor/pragmarx/google2fa/composer.json b/vendor/pragmarx/google2fa/composer.json new file mode 100644 index 0000000..936991c --- /dev/null +++ b/vendor/pragmarx/google2fa/composer.json @@ -0,0 +1,43 @@ +{ + "name": "pragmarx/google2fa", + "description": "A One Time Password Authentication package, compatible with Google Authenticator.", + "keywords": [ + "authentication", + "two factor authentication", + "google2fa", + "2fa" + ], + "license": "MIT", + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "require": { + "php": "^7.1|^8.0", + "paragonie/constant_time_encoding": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.5.15|^8.5|^9.0", + "phpstan/phpstan": "^1.9" + }, + "autoload": { + "psr-4": { + "PragmaRX\\Google2FA\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "PragmaRX\\Google2FA\\Tests\\": "tests/" + }, + "files": ["tests/helpers.php"] + }, + "scripts": { + "test": "bash ./tests/tools/test.sh", + "analyse": "bash ./tests/tools/analyse.sh" + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php b/vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php new file mode 100644 index 0000000..90848f9 --- /dev/null +++ b/vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php @@ -0,0 +1,9 @@ +getWindow($window); + $startingTimestamp++ + ) { + if ( + hash_equals($this->oathTotp($secret, $startingTimestamp), (string) $key) + ) { + return is_null($oldTimestamp) + ? true + : $startingTimestamp; + } + } + + return false; + } + + /** + * Generate the HMAC OTP. + * + * @param string $secret + * @param int $counter + * + * @return string + */ + protected function generateHotp( + #[\SensitiveParameter] + $secret, + $counter + ) { + return hash_hmac( + $this->getAlgorithm(), + pack('N*', 0, $counter), // Counter must be 64-bit int + $secret, + true + ); + } + + /** + * Generate a digit secret key in base32 format. + * + * @param int $length + * @param string $prefix + * + * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * + * @return string + */ + public function generateSecretKey($length = 32, $prefix = '') + { + return $this->generateBase32RandomKey($length, $prefix); + } + + /** + * Get the current one time password for a key. + * + * @param string $secret + * + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException + * + * @return string + */ + public function getCurrentOtp( + #[\SensitiveParameter] + $secret + ) { + return $this->oathTotp($secret, $this->getTimestamp()); + } + + /** + * Get the HMAC algorithm. + * + * @return string + */ + public function getAlgorithm() + { + return $this->algorithm; + } + + /** + * Get key regeneration. + * + * @return int + */ + public function getKeyRegeneration() + { + return $this->keyRegeneration; + } + + /** + * Get OTP length. + * + * @return int + */ + public function getOneTimePasswordLength() + { + return $this->oneTimePasswordLength; + } + + /** + * Get secret. + * + * @param string|null $secret + * + * @return string + */ + public function getSecret( + #[\SensitiveParameter] + $secret = null + ) { + return is_null($secret) ? $this->secret : $secret; + } + + /** + * Returns the current Unix Timestamp divided by the $keyRegeneration + * period. + * + * @return int + **/ + public function getTimestamp() + { + return (int) floor(microtime(true) / $this->keyRegeneration); + } + + /** + * Get a list of valid HMAC algorithms. + * + * @return array + */ + protected function getValidAlgorithms() + { + return [ + Constants::SHA1, + Constants::SHA256, + Constants::SHA512, + ]; + } + + /** + * Get the OTP window. + * + * @param null|int $window + * + * @return int + */ + public function getWindow($window = null) + { + return is_null($window) ? $this->window : $window; + } + + /** + * Make a window based starting timestamp. + * + * @param int|null $window + * @param int $timestamp + * @param int|null $oldTimestamp + * + * @return mixed + */ + private function makeStartingTimestamp($window, $timestamp, $oldTimestamp = null) + { + return is_null($oldTimestamp) + ? $timestamp - $this->getWindow($window) + : max($timestamp - $this->getWindow($window), $oldTimestamp + 1); + } + + /** + * Get/use a starting timestamp for key verification. + * + * @param string|int|null $timestamp + * + * @return int + */ + protected function makeTimestamp($timestamp = null) + { + if (is_null($timestamp)) { + return $this->getTimestamp(); + } + + return (int) $timestamp; + } + + /** + * Takes the secret key and the timestamp and returns the one time + * password. + * + * @param string $secret Secret key in binary form. + * @param int $counter Timestamp as returned by getTimestamp. + * + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws Exceptions\IncompatibleWithGoogleAuthenticatorException + * + * @return string + */ + public function oathTotp( + #[\SensitiveParameter] + $secret, + $counter + ) { + if (strlen($secret) < 8) { + throw new SecretKeyTooShortException(); + } + + $secret = $this->base32Decode($this->getSecret($secret)); + + return str_pad( + $this->oathTruncate($this->generateHotp($secret, $counter)), + $this->getOneTimePasswordLength(), + '0', + STR_PAD_LEFT + ); + } + + /** + * Extracts the OTP from the SHA1 hash. + * + * @param string $hash + * + * @return string + **/ + public function oathTruncate( + #[\SensitiveParameter] + $hash + ) { + $offset = ord($hash[strlen($hash) - 1]) & 0xF; + + $temp = unpack('N', substr($hash, $offset, 4)); + + $temp = $temp[1] & 0x7FFFFFFF; + + return substr( + (string) $temp, + -$this->getOneTimePasswordLength() + ); + } + + /** + * Remove invalid chars from a base 32 string. + * + * @param string $string + * + * @return string|null + */ + public function removeInvalidChars($string) + { + return preg_replace( + '/[^'.Constants::VALID_FOR_B32.']/', + '', + $string + ); + } + + /** + * Setter for the enforce Google Authenticator compatibility property. + * + * @param mixed $enforceGoogleAuthenticatorCompatibility + * + * @return $this + */ + public function setEnforceGoogleAuthenticatorCompatibility( + $enforceGoogleAuthenticatorCompatibility + ) { + $this->enforceGoogleAuthenticatorCompatibility = $enforceGoogleAuthenticatorCompatibility; + + return $this; + } + + /** + * Set the HMAC hashing algorithm. + * + * @param mixed $algorithm + * + * @throws \PragmaRX\Google2FA\Exceptions\InvalidAlgorithmException + * + * @return \PragmaRX\Google2FA\Google2FA + */ + public function setAlgorithm($algorithm) + { + // Default to SHA1 HMAC algorithm + if (!in_array($algorithm, $this->getValidAlgorithms())) { + throw new InvalidAlgorithmException(); + } + + $this->algorithm = $algorithm; + + return $this; + } + + /** + * Set key regeneration. + * + * @param mixed $keyRegeneration + */ + public function setKeyRegeneration($keyRegeneration) + { + $this->keyRegeneration = $keyRegeneration; + } + + /** + * Set OTP length. + * + * @param mixed $oneTimePasswordLength + */ + public function setOneTimePasswordLength($oneTimePasswordLength) + { + $this->oneTimePasswordLength = $oneTimePasswordLength; + } + + /** + * Set secret. + * + * @param mixed $secret + */ + public function setSecret( + #[\SensitiveParameter] + $secret + ) { + $this->secret = $secret; + } + + /** + * Set the OTP window. + * + * @param mixed $window + */ + public function setWindow($window) + { + $this->window = $window; + } + + /** + * Verifies a user inputted key against the current timestamp. Checks $window + * keys either side of the timestamp. + * + * @param string $key User specified key + * @param string $secret + * @param null|int $window + * @param null|int $timestamp + * @param null|int $oldTimestamp + * + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException + * + * @return bool|int + */ + public function verify( + #[\SensitiveParameter] + $key, + #[\SensitiveParameter] + $secret, + $window = null, + $timestamp = null, + $oldTimestamp = null + ) { + return $this->verifyKey( + $secret, + $key, + $window, + $timestamp, + $oldTimestamp + ); + } + + /** + * Verifies a user inputted key against the current timestamp. Checks $window + * keys either side of the timestamp. + * + * @param string $secret + * @param string $key User specified key + * @param int|null $window + * @param null|int $timestamp + * @param null|int $oldTimestamp + * + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException + * + * @return bool|int + */ + public function verifyKey( + #[\SensitiveParameter] + $secret, + #[\SensitiveParameter] + $key, + $window = null, + $timestamp = null, + $oldTimestamp = null + ) { + $timestamp = $this->makeTimestamp($timestamp); + + return $this->findValidOTP( + $secret, + $key, + $window, + $this->makeStartingTimestamp($window, $timestamp, $oldTimestamp), + $timestamp, + $oldTimestamp + ); + } + + /** + * Verifies a user inputted key against the current timestamp. Checks $window + * keys either side of the timestamp, but ensures that the given key is newer than + * the given oldTimestamp. Useful if you need to ensure that a single key cannot + * be used twice. + * + * @param string $secret + * @param string $key User specified key + * @param int|null $oldTimestamp The timestamp from the last verified key + * @param int|null $window + * @param int|null $timestamp + * + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException + * + * @return bool|int + */ + public function verifyKeyNewer( + #[\SensitiveParameter] + $secret, + #[\SensitiveParameter] + $key, + $oldTimestamp, + $window = null, + $timestamp = null + ) { + return $this->verifyKey( + $secret, + $key, + $window, + $timestamp, + $oldTimestamp + ); + } +} diff --git a/vendor/pragmarx/google2fa/src/Support/Base32.php b/vendor/pragmarx/google2fa/src/Support/Base32.php new file mode 100644 index 0000000..2fec2f2 --- /dev/null +++ b/vendor/pragmarx/google2fa/src/Support/Base32.php @@ -0,0 +1,230 @@ +toBase32($prefix) : ''; + + $secret = $this->strPadBase32($secret, $length); + + $this->validateSecret($secret); + + return $secret; + } + + /** + * Decodes a base32 string into a binary string. + * + * @param string $b32 + * + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException + * + * @return string + */ + public function base32Decode( + #[\SensitiveParameter] + $b32 + ) { + $b32 = strtoupper($b32); + + $this->validateSecret($b32); + + return ParagonieBase32::decodeUpper($b32); + } + + /** + * Check if the string length is power of two. + * + * @param string $b32 + * + * @return bool + */ + protected function isCharCountNotAPowerOfTwo( + #[\SensitiveParameter] + $b32 + ) { + return (strlen($b32) & (strlen($b32) - 1)) !== 0; + } + + /** + * Pad string with random base 32 chars. + * + * @param string $string + * @param int $length + * + * @throws \Exception + * + * @return string + */ + private function strPadBase32( + #[\SensitiveParameter] + $string, + $length + ) { + for ($i = 0; $i < $length; $i++) { + $string .= substr( + Constants::VALID_FOR_B32_SCRAMBLED, + $this->getRandomNumber(), + 1 + ); + } + + return $string; + } + + /** + * Encode a string to Base32. + * + * @param string $string + * + * @return string + */ + public function toBase32( + #[\SensitiveParameter] + $string + ) { + $encoded = ParagonieBase32::encodeUpper($string); + + return str_replace('=', '', $encoded); + } + + /** + * Get a random number. + * + * @param int $from + * @param int $to + * + * @throws \Exception + * + * @return int + */ + protected function getRandomNumber($from = 0, $to = 31) + { + return random_int($from, $to); + } + + /** + * Validate the secret. + * + * @param string $b32 + * + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException + */ + protected function validateSecret( + #[\SensitiveParameter] + $b32 + ) { + $this->checkForValidCharacters($b32); + + $this->checkGoogleAuthenticatorCompatibility($b32); + + $this->checkIsBigEnough($b32); + } + + /** + * Check if the secret key is compatible with Google Authenticator. + * + * @param string $b32 + * + * @throws IncompatibleWithGoogleAuthenticatorException + */ + protected function checkGoogleAuthenticatorCompatibility( + #[\SensitiveParameter] + $b32 + ) { + if ( + $this->enforceGoogleAuthenticatorCompatibility && + $this->isCharCountNotAPowerOfTwo($b32) // Google Authenticator requires it to be a power of 2 base32 length string + ) { + throw new IncompatibleWithGoogleAuthenticatorException(); + } + } + + /** + * Check if all secret key characters are valid. + * + * @param string $b32 + * + * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException + */ + protected function checkForValidCharacters( + #[\SensitiveParameter] + $b32 + ) { + if ( + preg_replace('/[^'.Constants::VALID_FOR_B32.']/', '', $b32) !== + $b32 + ) { + throw new InvalidCharactersException(); + } + } + + /** + * Check if secret key length is big enough. + * + * @param string $b32 + * + * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException + */ + protected function checkIsBigEnough( + #[\SensitiveParameter] + $b32 + ) { + // Minimum = 128 bits + // Recommended = 160 bits + // Compatible with Google Authenticator = 256 bits + + if ( + $this->charCountBits($b32) < 128 + ) { + throw new SecretKeyTooShortException(); + } + } +} diff --git a/vendor/pragmarx/google2fa/src/Support/Constants.php b/vendor/pragmarx/google2fa/src/Support/Constants.php new file mode 100644 index 0000000..8fff653 --- /dev/null +++ b/vendor/pragmarx/google2fa/src/Support/Constants.php @@ -0,0 +1,31 @@ +getAlgorithm())). + '&digits='. + rawurlencode(strtoupper((string) $this->getOneTimePasswordLength())). + '&period='. + rawurlencode(strtoupper((string) $this->getKeyRegeneration())). + ''; + } +} diff --git a/weekly_summary.php b/weekly_summary.php new file mode 100644 index 0000000..aa41b53 --- /dev/null +++ b/weekly_summary.php @@ -0,0 +1,57 @@ +prepare('SELECT * FROM deals WHERE purchase_date >= ? ORDER BY purchase_date DESC'); + $stmt->execute([$date]); + return $stmt->fetchAll(PDO::FETCH_ASSOC); +} + +function get_subscribed_users() { + $pdo = db(); + $stmt = $pdo->query('SELECT id, email, username FROM users WHERE receive_weekly_summary = 1'); + return $stmt->fetchAll(PDO::FETCH_ASSOC); +} + +function build_summary_email_body($deals, $username) { + if (empty($deals)) { + return [ + 'html' => "

Hi {$username},

No new deals were added in the last 7 days.

", + 'text' => "Hi {$username},\n\nNo new deals were added in the last 7 days." + ]; + } + + $html = "

Hi {$username},

Here is a summary of the new deals from the last 7 days:

    "; + $text = "Hi {$username},\n\nHere is a summary of the new deals from the last 7 days:\n\n"; + + foreach ($deals as $deal) { + $html .= "
  • " . htmlspecialchars($deal['name']) . " - $" . htmlspecialchars($deal['price']) . "
  • "; + $text .= "- " . $deal['name'] . " - $" . $deal['price'] . "\n"; + } + + $html .= "

Log in to your account to see more details.

"; + $text .= "\nLog in to your account to see more details."; + + return ['html' => $html, 'text' => $text]; +} + +$seven_days_ago = date('Y-m-d', strtotime('-7 days')); +$new_deals = get_new_deals_since($seven_days_ago); +$subscribed_users = get_subscribed_users(); + +foreach ($subscribed_users as $user) { + $email_body = build_summary_email_body($new_deals, $user['username']); + MailService::sendMail( + $user['email'], + 'Weekly Deal Summary', + $email_body['html'], + $email_body['text'] + ); +} + +echo "Weekly summary emails sent to " . count($subscribed_users) . " users.\n"; +