From fe18800d189a238ffa98bed4cf9dfa1bf2ae39ab Mon Sep 17 00:00:00 2001 From: DO Server Backup Date: Tue, 7 Jul 2026 15:58:55 +0000 Subject: [PATCH] =?UTF-8?q?[orbis]=20Weekly=20backup=202026-07-07=20?= =?UTF-8?q?=E2=80=94=20=20318=20files=20changed,=2048597=20insertions(+),?= =?UTF-8?q?=207=20deletions(-)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backup.sh | 36 + backup.sh.bak-2026-07-07 | 160 + databases/epic_epic_db.sql.gz | Bin 0 -> 4375 bytes databases/epic_parkersling.sql.gz | Bin 0 -> 6408 bytes databases/park_slingshot.sql.gz | Bin 0 -> 6699 bytes databases/toms_tjj_db.sql.gz | Bin 0 -> 11612 bytes databases/tomt_ttg_db.sql.gz | Bin 0 -> 16791 bytes databases/workt_track_db.sql.gz | Bin 0 -> 1601 bytes mysql/databases.txt | 1 + ols-vhosts/httpd_vhosts_summary.txt | 6 + ols-vhosts/site-list.txt | 9 +- .../worktracking.orbishosting.com/vhost.conf | 91 + scripts/jarvis-agent.py | 2 +- scripts/jarvis-backup.sh | 3 +- .../public_html/.gitignore | 6 + .../public_html/.htaccess | 66 + .../public_html/api/.htaccess | 60 + .../public_html/api/api/auth.php | 55 + .../public_html/api/api/categories.php | 64 + .../public_html/api/api/contact.php | 38 + .../public_html/api/api/destinations.php | 139 + .../public_html/api/api/newsletter.php | 37 + .../public_html/api/api/specials.php | 131 + .../public_html/api/api/testimonials.php | 103 + .../public_html/api/api/upload.php | 43 + .../public_html/api/includes/database.php | 52 + .../public_html/api/includes/functions.php | 124 + .../public_html/api/includes/jwt.php | 117 + .../public_html/api/includes/mailer.php | 97 + .../public_html/api/index.php | 79 + .../public_html/asset-manifest.json | 13 + .../public_html/assets/og-image.jpg | 21 + .../public_html/composer.json | 14 + .../config/vhost-parkerslingshot/vhost.conf | 91 + .../vhost-parkerslingshot/vhost.conf.txt | 85 + .../config/vhost-parkerslingshot/vhost.conf0 | 91 + .../vhost-parkerslingshot/vhost.conf0,v | 130 + .../public_html/config/vhost/vhost.conf | 95 + .../public_html/config/vhost/vhost.conf.txt | 86 + .../public_html/config/vhost/vhost.conf0 | 95 + .../public_html/config/vhost/vhost.conf0,v | 147 + .../public_html/db/schema.sql | 123 + .../public_html/index.html | 18 + .../public_html/robots.txt | 6 + .../public_html/sitemap.xml | 30 + .../public_html/static/css/main.7791f349.css | 4 + .../static/css/main.7791f349.css.map | 1 + .../public_html/static/js/admin-portal-v2.js | 541 +++ .../public_html/static/js/admin-portal.js | 541 +++ .../static/js/admin-testimonials.js | 208 + .../public_html/static/js/main.b9c030e8.js | 3 + .../static/js/main.b9c030e8.js.LICENSE.txt | 67 + .../static/js/main.b9c030e8.js.map | 1 + .../public_html/static/js/main.b9c030e8v2.js | 3 + .../public_html/static/js/testimonials.js | 313 ++ .../public_html/.gitignore | 5 + .../public_html/.htaccess | 10 + .../public_html/config/vhost/vhost.conf | 96 + .../public_html/config/vhost/vhost.conf0 | 91 + .../public_html/config/vhost/vhost.conf0,v | 130 + .../public_html/index.html | 41 + sites/orbishosting.com/public_html/.gitignore | 7 + sites/orbishosting.com/public_html/.htaccess | 14 + .../public_html/assets/og-image.jpg | Bin 0 -> 53060 bytes .../public_html/config/vhost/vhost.conf | 91 + .../public_html/config/vhost/vhost.conf.txt | 85 + .../public_html/config/vhost/vhost.conf0 | 91 + .../public_html/config/vhost/vhost.conf0,v | 130 + sites/orbishosting.com/public_html/index.html | 50 + sites/orbishosting.com/public_html/robots.txt | 6 + .../orbishosting.com/public_html/sitemap.xml | 4 + .../orbishosting.com/public_html/webhook.php | 59 + .../public_html/.gitignore | 6 + .../public_html/.htaccess | 21 + .../public_html/admin/.htaccess | 5 + .../public_html/admin/index.php | 1620 +++++++ .../public_html/admin/view-doc.php | 49 + .../public_html/availability.php | 47 + .../public_html/config/.htaccess | 2 + .../public_html/config/vhost/vhost.conf | 91 + .../public_html/config/vhost/vhost.conf0 | 91 + .../public_html/config/vhost/vhost.conf0,v | 130 + .../public_html/contact.php | 187 + .../public_html/db.php | 2 + .../public_html/db/.htaccess | 2 + .../public_html/db/schema.sql | 208 + .../public_html/db/schema_legacy.sql | 79 + .../public_html/index.html | 1216 +++++ .../public_html/robots.txt | 4 + .../public_html/sitemap.xml | 12 + .../public_html/upload-docs.php | 187 + .../public_html/uploads/.htaccess | 5 + .../public_html/view-doc.php | 50 + .../public_html/waiver.php | 365 ++ sites/tomsjavajive.com/public_html/.gitignore | 7 + sites/tomsjavajive.com/public_html/.htaccess | 105 + sites/tomsjavajive.com/public_html/README.md | 208 + .../public_html/account/addresses.php | 290 ++ .../public_html/account/includes/footer.php | 6 + .../public_html/account/includes/sidebar.php | 36 + .../public_html/account/index.php | 179 + .../public_html/account/order.php | 247 ++ .../public_html/account/orders.php | 138 + .../public_html/account/profile.php | 249 ++ .../public_html/account/reviews.php | 290 ++ .../public_html/account/rewards.php | 453 ++ .../public_html/account/wallet.php | 197 + .../public_html/account/wishlist.php | 149 + .../public_html/admin/about-us.php | 292 ++ .../public_html/admin/analytics.php | 714 +++ .../public_html/admin/api/customer-emails.php | 27 + .../public_html/admin/api/customer-orders.php | 15 + .../public_html/admin/api/upload-splash.php | 21 + .../public_html/admin/assets/admin.css | 642 +++ .../public_html/admin/assets/admin.js | 200 + .../public_html/admin/campaigns.php | 243 + .../public_html/admin/categories.php | 206 + .../public_html/admin/coupons.php | 260 ++ .../public_html/admin/customers.php | 603 +++ .../public_html/admin/email-log.php | 248 ++ .../public_html/admin/emails.php | 218 + .../public_html/admin/gift-cards.php | 326 ++ .../public_html/admin/import-export.php | 594 +++ .../public_html/admin/includes/footer.php | 8 + .../public_html/admin/includes/header.php | 182 + .../public_html/admin/index.php | 197 + .../public_html/admin/integrations.php | 348 ++ .../public_html/admin/inventory.php | 337 ++ .../public_html/admin/login.php | 68 + .../public_html/admin/logout.php | 10 + .../public_html/admin/order.php | 415 ++ .../public_html/admin/orders.php | 281 ++ .../public_html/admin/payments.php | 246 ++ .../public_html/admin/pos.php | 1386 ++++++ .../public_html/admin/product-edit.php | 393 ++ .../public_html/admin/product-types.php | 175 + .../public_html/admin/products.php | 290 ++ .../public_html/admin/reviews.php | 281 ++ .../public_html/admin/settings.php | 233 + .../public_html/admin/shipping.php | 124 + .../public_html/admin/splashes.php | 410 ++ .../public_html/admin/upload-image.php | 27 + .../public_html/admin/users.php | 267 ++ .../public_html/api/apply-wallet-credit.php | 58 + .../tomsjavajive.com/public_html/api/cart.php | 121 + .../public_html/api/create-square-payment.php | 94 + .../public_html/api/delete-account.php | 53 + .../public_html/api/loyalty.php | 94 + .../public_html/api/orders.php | 183 + .../public_html/api/payment-status.php | 93 + .../public_html/api/pos-order.php | 191 + .../public_html/api/products.php | 93 + .../public_html/api/push-subscribe.php | 83 + .../public_html/api/redeem-gift-card.php | 34 + .../public_html/api/search-customers.php | 30 + .../public_html/api/submit-review.php | 66 + .../public_html/api/subscribe.php | 75 + .../public_html/api/test-notification.php | 65 + .../public_html/api/validate-coupon.php | 59 + .../public_html/api/webhook.php | 69 + .../public_html/api/wishlist.php | 95 + .../public_html/assets/css/account.css | 223 + .../public_html/assets/css/admin.css | 543 +++ .../public_html/assets/css/cart.css | 154 + .../public_html/assets/css/checkout.css | 103 + .../public_html/assets/css/home.css | 182 + .../public_html/assets/css/products.css | 118 + .../public_html/assets/css/style.css | 538 +++ .../public_html/assets/icons/badge-72.svg | 5 + .../public_html/assets/icons/icon-128.svg | 9 + .../public_html/assets/icons/icon-144.svg | 9 + .../public_html/assets/icons/icon-152.svg | 9 + .../public_html/assets/icons/icon-192.png | Bin 0 -> 5565 bytes .../public_html/assets/icons/icon-192.svg | 9 + .../public_html/assets/icons/icon-384.svg | 9 + .../public_html/assets/icons/icon-512.png | Bin 0 -> 16333 bytes .../public_html/assets/icons/icon-512.svg | 9 + .../public_html/assets/icons/icon-72.svg | 9 + .../public_html/assets/icons/icon-96.svg | 9 + .../assets/images/coffee-beans.jpg | Bin 0 -> 136830 bytes .../assets/images/coffee-brewing.jpg | Bin 0 -> 88669 bytes .../public_html/assets/images/favicon.ico | 312 ++ .../assets/images/friends-coffee.jpg | Bin 0 -> 84160 bytes .../public_html/assets/images/hero-coffee.jpg | Bin 0 -> 117356 bytes .../public_html/assets/images/icon-192.png | Bin 0 -> 12013 bytes .../public_html/assets/images/icon-512.png | Bin 0 -> 14226 bytes .../assets/images/logo-download-new.png | Bin 0 -> 146873 bytes .../current-logo.png | Bin 0 -> 137074 bytes .../tjj-logo-transparent.png | Bin 0 -> 146873 bytes .../public_html/assets/images/logo-icon.png | Bin 0 -> 146873 bytes .../public_html/assets/images/logo-icon.svg | 13 + .../public_html/assets/images/logo.png | Bin 0 -> 80025 bytes .../public_html/assets/images/logo.svg | 24 + .../public_html/assets/images/og-image.jpg | Bin 0 -> 52792 bytes .../assets/images/placeholder-product.svg | 7 + .../assets/images/premium-coffee.jpg | Bin 0 -> 65998 bytes .../assets/images/tjj-logo-website.png | Bin 0 -> 80025 bytes .../assets/images/tjj-logo-with-url.png | Bin 0 -> 107853 bytes .../public_html/assets/js/main.js | 394 ++ sites/tomsjavajive.com/public_html/cart.php | 168 + .../tomsjavajive.com/public_html/checkout.php | 467 ++ .../public_html/composer.json | 5 + .../public_html/composer.lock | 101 + .../public_html/config/config.php | 2 + .../public_html/config/vhost/vhost.conf | 91 + .../public_html/config/vhost/vhost.conf.txt | 85 + .../public_html/config/vhost/vhost.conf0 | 91 + .../public_html/config/vhost/vhost.conf0,v | 130 + .../tomsjavajive.com/public_html/contact.php | 169 + .../public_html/db/schema.sql | 786 ++++ .../public_html/docs/DEPLOYMENT.md | 314 ++ sites/tomsjavajive.com/public_html/faq.php | 88 + .../tomsjavajive.com/public_html/favicon.ico | 312 ++ .../public_html/includes/auth.php | 284 ++ .../public_html/includes/db.php | 104 + .../public_html/includes/email.php | 327 ++ .../public_html/includes/footer.php | 61 + .../public_html/includes/functions.php | 422 ++ .../public_html/includes/header.php | 122 + .../public_html/includes/loyalty.php | 509 +++ .../public_html/includes/push.php | 181 + .../public_html/includes/sms.php | 195 + .../public_html/includes/square.php | 175 + .../public_html/includes/stripe.php | 215 + sites/tomsjavajive.com/public_html/index.php | 223 + sites/tomsjavajive.com/public_html/login.php | 94 + sites/tomsjavajive.com/public_html/logout.php | 10 + .../public_html/manifest.json | 27 + .../public_html/merchant-feed.php | 94 + .../tomsjavajive.com/public_html/offline.html | 119 + .../public_html/order-confirmation.php | 135 + .../tomsjavajive.com/public_html/payment.php | 461 ++ .../tomsjavajive.com/public_html/privacy.php | 193 + .../tomsjavajive.com/public_html/product.php | 317 ++ .../tomsjavajive.com/public_html/register.php | 131 + .../tomsjavajive.com/public_html/returns.php | 99 + sites/tomsjavajive.com/public_html/robots.txt | 11 + .../tomsjavajive.com/public_html/shipping.php | 111 + sites/tomsjavajive.com/public_html/shop.php | 210 + .../tomsjavajive.com/public_html/sitemap.php | 42 + .../tomsjavajive.com/public_html/sitemap.xml | 6 + sites/tomsjavajive.com/public_html/sw.js | 9 + .../public_html/track-order.php | 249 ++ sites/tomtomgames.com/public_html/.gitignore | 5 + sites/tomtomgames.com/public_html/.htaccess | 124 + .../public_html/admin/index.php | 3904 +++++++++++++++++ .../public_html/admin/login.php | 54 + .../tomtomgames.com/public_html/api/admin.php | 1121 +++++ .../public_html/api/backup.php | 109 + .../public_html/api/billing.php | 91 + .../public_html/api/broadcast.php | 89 + .../public_html/api/cashout.php | 158 + .../public_html/api/cashout_method_types.php | 79 + .../tomtomgames.com/public_html/api/chat.php | 124 + .../public_html/api/game_aliases.php | 65 + .../tomtomgames.com/public_html/api/login.php | 37 + .../public_html/api/logout.php | 5 + sites/tomtomgames.com/public_html/api/me.php | 35 + .../public_html/api/my_activity.php | 76 + .../public_html/api/my_purchases.php | 17 + .../public_html/api/payment_settings.php | 44 + .../public_html/api/payout_methods.php | 82 + .../public_html/api/payout_process.php | 153 + .../public_html/api/platform_accounts.php | 92 + .../public_html/api/platforms.php | 185 + .../public_html/api/purchase.php | 163 + .../public_html/api/referrals.php | 362 ++ .../public_html/api/register.php | 18 + .../public_html/api/resend_verify.php | 16 + .../public_html/assets/img/egame99.svg | 31 + .../public_html/assets/img/firekirin.svg | 30 + .../public_html/assets/img/icon-192.png | Bin 0 -> 1088 bytes .../public_html/assets/img/icon-512.png | Bin 0 -> 3856 bytes .../public_html/assets/img/logo-icon.svg | 38 + .../public_html/assets/img/milkyway.svg | 35 + .../public_html/assets/img/noble777.svg | 31 + .../public_html/assets/img/og-image.svg | 46 + .../public_html/assets/img/pandamaster.svg | 27 + .../public_html/assets/img/ultrapanda.svg | 30 + .../public_html/assets/img/vblink777.svg | 27 + .../public_html/bump_version.php | 52 + .../public_html/config/vhost/vhost.conf | 91 + .../public_html/config/vhost/vhost.conf.txt | 85 + .../public_html/config/vhost/vhost.conf0 | 91 + .../public_html/config/vhost/vhost.conf0,v | 130 + .../tomtomgames.com/public_html/db/schema.sql | 453 ++ sites/tomtomgames.com/public_html/favicon.ico | Bin 0 -> 136 bytes sites/tomtomgames.com/public_html/favicon.svg | 5 + .../public_html/games/index.php | 232 + .../public_html/get_location.php | 108 + sites/tomtomgames.com/public_html/index.php | 3416 +++++++++++++++ .../tomtomgames.com/public_html/manifest.json | 43 + .../public_html/reset_password.php | 113 + sites/tomtomgames.com/public_html/robots.txt | 23 + .../public_html/scripts/ttg-backup.sh | 44 + sites/tomtomgames.com/public_html/sitemap.xml | 21 + sites/tomtomgames.com/public_html/verify.php | 66 + sites/tomtomgames.com/public_html/webhook.php | 63 + .../public_html/.gitignore | 1 + .../public_html/.htaccess | 30 + .../public_html/admin/history.php | 45 + .../public_html/admin/index.php | 100 + .../public_html/admin/login.php | 39 + .../public_html/admin/logout.php | 5 + .../public_html/admin/worker.php | 151 + .../public_html/all.php | 71 + .../public_html/assets/style.css | 278 ++ .../public_html/history.php | 51 + .../public_html/includes/auth.php | 62 + .../public_html/includes/db.php | 57 + .../public_html/includes/footer.php | 2 + .../public_html/includes/functions.php | 95 + .../public_html/includes/header.php | 14 + .../public_html/index.html | 85 + .../public_html/p.php | 111 + .../public_html/s.php | 65 + .../public_html/w-history.php | 61 + .../public_html/w.php | 177 + 318 files changed, 48597 insertions(+), 7 deletions(-) mode change 100644 => 100755 backup.sh create mode 100644 backup.sh.bak-2026-07-07 create mode 100644 databases/epic_epic_db.sql.gz create mode 100644 databases/epic_parkersling.sql.gz create mode 100644 databases/park_slingshot.sql.gz create mode 100644 databases/toms_tjj_db.sql.gz create mode 100644 databases/tomt_ttg_db.sql.gz create mode 100644 databases/workt_track_db.sql.gz create mode 100755 ols-vhosts/worktracking.orbishosting.com/vhost.conf create mode 100644 sites/epictravelexpeditions.com/public_html/.gitignore create mode 100644 sites/epictravelexpeditions.com/public_html/.htaccess create mode 100644 sites/epictravelexpeditions.com/public_html/api/.htaccess create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/auth.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/categories.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/contact.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/destinations.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/newsletter.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/specials.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/testimonials.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/api/upload.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/includes/database.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/includes/functions.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/includes/jwt.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/includes/mailer.php create mode 100644 sites/epictravelexpeditions.com/public_html/api/index.php create mode 100644 sites/epictravelexpeditions.com/public_html/asset-manifest.json create mode 100644 sites/epictravelexpeditions.com/public_html/assets/og-image.jpg create mode 100644 sites/epictravelexpeditions.com/public_html/composer.json create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf.txt create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0 create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0,v create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf.txt create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0 create mode 100755 sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0,v create mode 100644 sites/epictravelexpeditions.com/public_html/db/schema.sql create mode 100644 sites/epictravelexpeditions.com/public_html/index.html create mode 100644 sites/epictravelexpeditions.com/public_html/robots.txt create mode 100644 sites/epictravelexpeditions.com/public_html/sitemap.xml create mode 100644 sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css create mode 100644 sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css.map create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/admin-portal-v2.js create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/admin-portal.js create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/admin-testimonials.js create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/main.b9c030e8.js create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/main.b9c030e8.js.LICENSE.txt create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/main.b9c030e8.js.map create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/main.b9c030e8v2.js create mode 100644 sites/epictravelexpeditions.com/public_html/static/js/testimonials.js create mode 100644 sites/orbis.orbishosting.com/public_html/.gitignore create mode 100644 sites/orbis.orbishosting.com/public_html/.htaccess create mode 100755 sites/orbis.orbishosting.com/public_html/config/vhost/vhost.conf create mode 100755 sites/orbis.orbishosting.com/public_html/config/vhost/vhost.conf0 create mode 100755 sites/orbis.orbishosting.com/public_html/config/vhost/vhost.conf0,v create mode 100644 sites/orbis.orbishosting.com/public_html/index.html create mode 100644 sites/orbishosting.com/public_html/.gitignore create mode 100644 sites/orbishosting.com/public_html/.htaccess create mode 100644 sites/orbishosting.com/public_html/assets/og-image.jpg create mode 100755 sites/orbishosting.com/public_html/config/vhost/vhost.conf create mode 100755 sites/orbishosting.com/public_html/config/vhost/vhost.conf.txt create mode 100755 sites/orbishosting.com/public_html/config/vhost/vhost.conf0 create mode 100755 sites/orbishosting.com/public_html/config/vhost/vhost.conf0,v create mode 100644 sites/orbishosting.com/public_html/index.html create mode 100644 sites/orbishosting.com/public_html/robots.txt create mode 100644 sites/orbishosting.com/public_html/sitemap.xml create mode 100644 sites/orbishosting.com/public_html/webhook.php create mode 100644 sites/parkerslingshotrentals.com/public_html/.gitignore create mode 100644 sites/parkerslingshotrentals.com/public_html/.htaccess create mode 100644 sites/parkerslingshotrentals.com/public_html/admin/.htaccess create mode 100644 sites/parkerslingshotrentals.com/public_html/admin/index.php create mode 100644 sites/parkerslingshotrentals.com/public_html/admin/view-doc.php create mode 100644 sites/parkerslingshotrentals.com/public_html/availability.php create mode 100644 sites/parkerslingshotrentals.com/public_html/config/.htaccess create mode 100755 sites/parkerslingshotrentals.com/public_html/config/vhost/vhost.conf create mode 100755 sites/parkerslingshotrentals.com/public_html/config/vhost/vhost.conf0 create mode 100755 sites/parkerslingshotrentals.com/public_html/config/vhost/vhost.conf0,v create mode 100644 sites/parkerslingshotrentals.com/public_html/contact.php create mode 100644 sites/parkerslingshotrentals.com/public_html/db.php create mode 100644 sites/parkerslingshotrentals.com/public_html/db/.htaccess create mode 100644 sites/parkerslingshotrentals.com/public_html/db/schema.sql create mode 100644 sites/parkerslingshotrentals.com/public_html/db/schema_legacy.sql create mode 100644 sites/parkerslingshotrentals.com/public_html/index.html create mode 100644 sites/parkerslingshotrentals.com/public_html/robots.txt create mode 100644 sites/parkerslingshotrentals.com/public_html/sitemap.xml create mode 100644 sites/parkerslingshotrentals.com/public_html/upload-docs.php create mode 100644 sites/parkerslingshotrentals.com/public_html/uploads/.htaccess create mode 100644 sites/parkerslingshotrentals.com/public_html/view-doc.php create mode 100644 sites/parkerslingshotrentals.com/public_html/waiver.php create mode 100644 sites/tomsjavajive.com/public_html/.gitignore create mode 100644 sites/tomsjavajive.com/public_html/.htaccess create mode 100644 sites/tomsjavajive.com/public_html/README.md create mode 100644 sites/tomsjavajive.com/public_html/account/addresses.php create mode 100644 sites/tomsjavajive.com/public_html/account/includes/footer.php create mode 100644 sites/tomsjavajive.com/public_html/account/includes/sidebar.php create mode 100644 sites/tomsjavajive.com/public_html/account/index.php create mode 100644 sites/tomsjavajive.com/public_html/account/order.php create mode 100644 sites/tomsjavajive.com/public_html/account/orders.php create mode 100644 sites/tomsjavajive.com/public_html/account/profile.php create mode 100644 sites/tomsjavajive.com/public_html/account/reviews.php create mode 100644 sites/tomsjavajive.com/public_html/account/rewards.php create mode 100644 sites/tomsjavajive.com/public_html/account/wallet.php create mode 100644 sites/tomsjavajive.com/public_html/account/wishlist.php create mode 100644 sites/tomsjavajive.com/public_html/admin/about-us.php create mode 100644 sites/tomsjavajive.com/public_html/admin/analytics.php create mode 100644 sites/tomsjavajive.com/public_html/admin/api/customer-emails.php create mode 100644 sites/tomsjavajive.com/public_html/admin/api/customer-orders.php create mode 100644 sites/tomsjavajive.com/public_html/admin/api/upload-splash.php create mode 100644 sites/tomsjavajive.com/public_html/admin/assets/admin.css create mode 100644 sites/tomsjavajive.com/public_html/admin/assets/admin.js create mode 100644 sites/tomsjavajive.com/public_html/admin/campaigns.php create mode 100644 sites/tomsjavajive.com/public_html/admin/categories.php create mode 100644 sites/tomsjavajive.com/public_html/admin/coupons.php create mode 100644 sites/tomsjavajive.com/public_html/admin/customers.php create mode 100644 sites/tomsjavajive.com/public_html/admin/email-log.php create mode 100644 sites/tomsjavajive.com/public_html/admin/emails.php create mode 100644 sites/tomsjavajive.com/public_html/admin/gift-cards.php create mode 100644 sites/tomsjavajive.com/public_html/admin/import-export.php create mode 100644 sites/tomsjavajive.com/public_html/admin/includes/footer.php create mode 100644 sites/tomsjavajive.com/public_html/admin/includes/header.php create mode 100644 sites/tomsjavajive.com/public_html/admin/index.php create mode 100644 sites/tomsjavajive.com/public_html/admin/integrations.php create mode 100644 sites/tomsjavajive.com/public_html/admin/inventory.php create mode 100644 sites/tomsjavajive.com/public_html/admin/login.php create mode 100644 sites/tomsjavajive.com/public_html/admin/logout.php create mode 100644 sites/tomsjavajive.com/public_html/admin/order.php create mode 100644 sites/tomsjavajive.com/public_html/admin/orders.php create mode 100644 sites/tomsjavajive.com/public_html/admin/payments.php create mode 100644 sites/tomsjavajive.com/public_html/admin/pos.php create mode 100644 sites/tomsjavajive.com/public_html/admin/product-edit.php create mode 100644 sites/tomsjavajive.com/public_html/admin/product-types.php create mode 100644 sites/tomsjavajive.com/public_html/admin/products.php create mode 100644 sites/tomsjavajive.com/public_html/admin/reviews.php create mode 100644 sites/tomsjavajive.com/public_html/admin/settings.php create mode 100644 sites/tomsjavajive.com/public_html/admin/shipping.php create mode 100644 sites/tomsjavajive.com/public_html/admin/splashes.php create mode 100644 sites/tomsjavajive.com/public_html/admin/upload-image.php create mode 100644 sites/tomsjavajive.com/public_html/admin/users.php create mode 100644 sites/tomsjavajive.com/public_html/api/apply-wallet-credit.php create mode 100644 sites/tomsjavajive.com/public_html/api/cart.php create mode 100644 sites/tomsjavajive.com/public_html/api/create-square-payment.php create mode 100644 sites/tomsjavajive.com/public_html/api/delete-account.php create mode 100644 sites/tomsjavajive.com/public_html/api/loyalty.php create mode 100644 sites/tomsjavajive.com/public_html/api/orders.php create mode 100644 sites/tomsjavajive.com/public_html/api/payment-status.php create mode 100644 sites/tomsjavajive.com/public_html/api/pos-order.php create mode 100644 sites/tomsjavajive.com/public_html/api/products.php create mode 100644 sites/tomsjavajive.com/public_html/api/push-subscribe.php create mode 100644 sites/tomsjavajive.com/public_html/api/redeem-gift-card.php create mode 100644 sites/tomsjavajive.com/public_html/api/search-customers.php create mode 100644 sites/tomsjavajive.com/public_html/api/submit-review.php create mode 100644 sites/tomsjavajive.com/public_html/api/subscribe.php create mode 100644 sites/tomsjavajive.com/public_html/api/test-notification.php create mode 100644 sites/tomsjavajive.com/public_html/api/validate-coupon.php create mode 100644 sites/tomsjavajive.com/public_html/api/webhook.php create mode 100644 sites/tomsjavajive.com/public_html/api/wishlist.php create mode 100644 sites/tomsjavajive.com/public_html/assets/css/account.css create mode 100644 sites/tomsjavajive.com/public_html/assets/css/admin.css create mode 100644 sites/tomsjavajive.com/public_html/assets/css/cart.css create mode 100644 sites/tomsjavajive.com/public_html/assets/css/checkout.css create mode 100644 sites/tomsjavajive.com/public_html/assets/css/home.css create mode 100644 sites/tomsjavajive.com/public_html/assets/css/products.css create mode 100644 sites/tomsjavajive.com/public_html/assets/css/style.css create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/badge-72.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-128.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-144.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-152.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-192.png create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-192.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-384.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-512.png create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-512.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-72.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/icons/icon-96.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/coffee-beans.jpg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/coffee-brewing.jpg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/favicon.ico create mode 100644 sites/tomsjavajive.com/public_html/assets/images/friends-coffee.jpg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/hero-coffee.jpg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/icon-192.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/icon-512.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/logo-download-new.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/logo-download-original.png/current-logo.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/logo-download-original.png/tjj-logo-transparent.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/logo-icon.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/logo-icon.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/logo.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/logo.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/og-image.jpg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/placeholder-product.svg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/premium-coffee.jpg create mode 100644 sites/tomsjavajive.com/public_html/assets/images/tjj-logo-website.png create mode 100644 sites/tomsjavajive.com/public_html/assets/images/tjj-logo-with-url.png create mode 100644 sites/tomsjavajive.com/public_html/assets/js/main.js create mode 100644 sites/tomsjavajive.com/public_html/cart.php create mode 100644 sites/tomsjavajive.com/public_html/checkout.php create mode 100644 sites/tomsjavajive.com/public_html/composer.json create mode 100644 sites/tomsjavajive.com/public_html/composer.lock create mode 100644 sites/tomsjavajive.com/public_html/config/config.php create mode 100755 sites/tomsjavajive.com/public_html/config/vhost/vhost.conf create mode 100755 sites/tomsjavajive.com/public_html/config/vhost/vhost.conf.txt create mode 100755 sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0 create mode 100755 sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0,v create mode 100644 sites/tomsjavajive.com/public_html/contact.php create mode 100644 sites/tomsjavajive.com/public_html/db/schema.sql create mode 100644 sites/tomsjavajive.com/public_html/docs/DEPLOYMENT.md create mode 100644 sites/tomsjavajive.com/public_html/faq.php create mode 100644 sites/tomsjavajive.com/public_html/favicon.ico create mode 100644 sites/tomsjavajive.com/public_html/includes/auth.php create mode 100644 sites/tomsjavajive.com/public_html/includes/db.php create mode 100644 sites/tomsjavajive.com/public_html/includes/email.php create mode 100644 sites/tomsjavajive.com/public_html/includes/footer.php create mode 100644 sites/tomsjavajive.com/public_html/includes/functions.php create mode 100644 sites/tomsjavajive.com/public_html/includes/header.php create mode 100644 sites/tomsjavajive.com/public_html/includes/loyalty.php create mode 100644 sites/tomsjavajive.com/public_html/includes/push.php create mode 100644 sites/tomsjavajive.com/public_html/includes/sms.php create mode 100644 sites/tomsjavajive.com/public_html/includes/square.php create mode 100644 sites/tomsjavajive.com/public_html/includes/stripe.php create mode 100644 sites/tomsjavajive.com/public_html/index.php create mode 100644 sites/tomsjavajive.com/public_html/login.php create mode 100644 sites/tomsjavajive.com/public_html/logout.php create mode 100644 sites/tomsjavajive.com/public_html/manifest.json create mode 100644 sites/tomsjavajive.com/public_html/merchant-feed.php create mode 100644 sites/tomsjavajive.com/public_html/offline.html create mode 100644 sites/tomsjavajive.com/public_html/order-confirmation.php create mode 100644 sites/tomsjavajive.com/public_html/payment.php create mode 100644 sites/tomsjavajive.com/public_html/privacy.php create mode 100644 sites/tomsjavajive.com/public_html/product.php create mode 100644 sites/tomsjavajive.com/public_html/register.php create mode 100644 sites/tomsjavajive.com/public_html/returns.php create mode 100644 sites/tomsjavajive.com/public_html/robots.txt create mode 100644 sites/tomsjavajive.com/public_html/shipping.php create mode 100644 sites/tomsjavajive.com/public_html/shop.php create mode 100644 sites/tomsjavajive.com/public_html/sitemap.php create mode 100644 sites/tomsjavajive.com/public_html/sitemap.xml create mode 100644 sites/tomsjavajive.com/public_html/sw.js create mode 100644 sites/tomsjavajive.com/public_html/track-order.php create mode 100644 sites/tomtomgames.com/public_html/.gitignore create mode 100644 sites/tomtomgames.com/public_html/.htaccess create mode 100644 sites/tomtomgames.com/public_html/admin/index.php create mode 100644 sites/tomtomgames.com/public_html/admin/login.php create mode 100644 sites/tomtomgames.com/public_html/api/admin.php create mode 100644 sites/tomtomgames.com/public_html/api/backup.php create mode 100644 sites/tomtomgames.com/public_html/api/billing.php create mode 100644 sites/tomtomgames.com/public_html/api/broadcast.php create mode 100644 sites/tomtomgames.com/public_html/api/cashout.php create mode 100644 sites/tomtomgames.com/public_html/api/cashout_method_types.php create mode 100644 sites/tomtomgames.com/public_html/api/chat.php create mode 100644 sites/tomtomgames.com/public_html/api/game_aliases.php create mode 100644 sites/tomtomgames.com/public_html/api/login.php create mode 100644 sites/tomtomgames.com/public_html/api/logout.php create mode 100644 sites/tomtomgames.com/public_html/api/me.php create mode 100644 sites/tomtomgames.com/public_html/api/my_activity.php create mode 100644 sites/tomtomgames.com/public_html/api/my_purchases.php create mode 100644 sites/tomtomgames.com/public_html/api/payment_settings.php create mode 100644 sites/tomtomgames.com/public_html/api/payout_methods.php create mode 100644 sites/tomtomgames.com/public_html/api/payout_process.php create mode 100644 sites/tomtomgames.com/public_html/api/platform_accounts.php create mode 100644 sites/tomtomgames.com/public_html/api/platforms.php create mode 100644 sites/tomtomgames.com/public_html/api/purchase.php create mode 100644 sites/tomtomgames.com/public_html/api/referrals.php create mode 100644 sites/tomtomgames.com/public_html/api/register.php create mode 100644 sites/tomtomgames.com/public_html/api/resend_verify.php create mode 100644 sites/tomtomgames.com/public_html/assets/img/egame99.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/firekirin.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/icon-192.png create mode 100644 sites/tomtomgames.com/public_html/assets/img/icon-512.png create mode 100644 sites/tomtomgames.com/public_html/assets/img/logo-icon.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/milkyway.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/noble777.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/og-image.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/pandamaster.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/ultrapanda.svg create mode 100644 sites/tomtomgames.com/public_html/assets/img/vblink777.svg create mode 100644 sites/tomtomgames.com/public_html/bump_version.php create mode 100755 sites/tomtomgames.com/public_html/config/vhost/vhost.conf create mode 100755 sites/tomtomgames.com/public_html/config/vhost/vhost.conf.txt create mode 100755 sites/tomtomgames.com/public_html/config/vhost/vhost.conf0 create mode 100755 sites/tomtomgames.com/public_html/config/vhost/vhost.conf0,v create mode 100644 sites/tomtomgames.com/public_html/db/schema.sql create mode 100644 sites/tomtomgames.com/public_html/favicon.ico create mode 100644 sites/tomtomgames.com/public_html/favicon.svg create mode 100644 sites/tomtomgames.com/public_html/games/index.php create mode 100644 sites/tomtomgames.com/public_html/get_location.php create mode 100644 sites/tomtomgames.com/public_html/index.php create mode 100644 sites/tomtomgames.com/public_html/manifest.json create mode 100644 sites/tomtomgames.com/public_html/reset_password.php create mode 100644 sites/tomtomgames.com/public_html/robots.txt create mode 100644 sites/tomtomgames.com/public_html/scripts/ttg-backup.sh create mode 100644 sites/tomtomgames.com/public_html/sitemap.xml create mode 100644 sites/tomtomgames.com/public_html/verify.php create mode 100644 sites/tomtomgames.com/public_html/webhook.php create mode 100644 sites/worktracking.orbishosting.com/public_html/.gitignore create mode 100644 sites/worktracking.orbishosting.com/public_html/.htaccess create mode 100644 sites/worktracking.orbishosting.com/public_html/admin/history.php create mode 100644 sites/worktracking.orbishosting.com/public_html/admin/index.php create mode 100644 sites/worktracking.orbishosting.com/public_html/admin/login.php create mode 100644 sites/worktracking.orbishosting.com/public_html/admin/logout.php create mode 100644 sites/worktracking.orbishosting.com/public_html/admin/worker.php create mode 100644 sites/worktracking.orbishosting.com/public_html/all.php create mode 100644 sites/worktracking.orbishosting.com/public_html/assets/style.css create mode 100644 sites/worktracking.orbishosting.com/public_html/history.php create mode 100644 sites/worktracking.orbishosting.com/public_html/includes/auth.php create mode 100644 sites/worktracking.orbishosting.com/public_html/includes/db.php create mode 100644 sites/worktracking.orbishosting.com/public_html/includes/footer.php create mode 100644 sites/worktracking.orbishosting.com/public_html/includes/functions.php create mode 100644 sites/worktracking.orbishosting.com/public_html/includes/header.php create mode 100644 sites/worktracking.orbishosting.com/public_html/index.html create mode 100644 sites/worktracking.orbishosting.com/public_html/p.php create mode 100644 sites/worktracking.orbishosting.com/public_html/s.php create mode 100644 sites/worktracking.orbishosting.com/public_html/w-history.php create mode 100644 sites/worktracking.orbishosting.com/public_html/w.php diff --git a/backup.sh b/backup.sh old mode 100644 new mode 100755 index 26ef8f8..0d5f337 --- a/backup.sh +++ b/backup.sh @@ -116,6 +116,42 @@ log "Backing up MySQL credentials" # Document all databases mysql -e "SHOW DATABASES;" 2>/dev/null | grep -v "^Database\|information_schema\|performance_schema\|sys" > mysql/databases.txt || true +# --------------------------------------------------------------------------- +# 9b. Actual database dumps — added 2026-07-07. Previously this only wrote a +# list of database NAMES (mysql/databases.txt above), never the data +# itself. If this server were lost, every site's real data — orders, +# accounts, bookings — would be gone even though the backup "succeeded" +# every week. Dumps every real business DB (skips cyberpanel's own +# internal DB and MySQL system schemas). +# --------------------------------------------------------------------------- +log "Dumping site databases" +mkdir -p databases +for db in $(mysql -N -e "SHOW DATABASES;" 2>/dev/null | grep -vE "^(information_schema|performance_schema|mysql|sys|cyberpanel)$"); do + if mysqldump --single-transaction --routines --triggers "$db" 2>/dev/null | gzip > "databases/${db}.sql.gz"; then + SIZE=$(du -sh "databases/${db}.sql.gz" | cut -f1) + log " $db -> ${db}.sql.gz ($SIZE)" + else + log " ERROR dumping $db" + rm -f "databases/${db}.sql.gz" + fi +done + +# --------------------------------------------------------------------------- +# 9c. Actual website files — added 2026-07-07. Same gap as above: the config +# backup only ever documented site names + disk usage (site-list.txt +# below), never copied the files themselves. .git is excluded per site +# since each site's own repo (on GitHub, mirrored to Gitea) already +# covers code history — this is a content/uploads/config safety net for +# whatever isn't (or hasn't yet been) committed there. +# --------------------------------------------------------------------------- +log "Backing up website files" +mkdir -p sites +for d in /home/*/public_html; do + site=$(basename "$(dirname "$d")") + mkdir -p "sites/$site" + rsync -a --delete --exclude='.git' "$d/" "sites/$site/public_html/" +done + # --------------------------------------------------------------------------- # 10. /opt/infra snapshot (already a separate git repo — copy contents) # --------------------------------------------------------------------------- diff --git a/backup.sh.bak-2026-07-07 b/backup.sh.bak-2026-07-07 new file mode 100644 index 0000000..26ef8f8 --- /dev/null +++ b/backup.sh.bak-2026-07-07 @@ -0,0 +1,160 @@ +#!/usr/bin/env bash +# ============================================================================= +# DO Server Config Backup — runs on orbis (165.22.1.228) +# Backs up all critical configs/scripts to GitHub weekly +# Install: /usr/local/bin/do-server-backup +# Cron: 0 4 * * 0 /usr/local/bin/do-server-backup >> /var/log/do-server-backup.log 2>&1 +# ============================================================================= +set -euo pipefail + +PAT="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" +REPO_URL="https://${PAT}@github.com/myronblair/do-server-config.git" +REPO_DIR="/opt/do-server-config" +LOG_PREFIX="[$(date '+%Y-%m-%d %H:%M:%S')] [orbis]" + +log() { echo "$LOG_PREFIX $*"; } + +# --------------------------------------------------------------------------- +# 1. Clone or update repo +# --------------------------------------------------------------------------- +if [[ -d "$REPO_DIR/.git" ]]; then + log "Pulling latest from GitHub" + cd "$REPO_DIR" + git config user.email "backup@orbishosting.com" + git config user.name "DO Server Backup" + git pull --rebase origin main -q || true +else + log "Cloning repo to $REPO_DIR" + git clone "$REPO_URL" "$REPO_DIR" + cd "$REPO_DIR" + git config user.email "backup@orbishosting.com" + git config user.name "DO Server Backup" +fi + +cd "$REPO_DIR" +mkdir -p scripts systemd wireguard network cron ssh ols-vhosts mysql infra + +# --------------------------------------------------------------------------- +# 2. Custom scripts from /usr/local/bin (text only — skip large binaries) +# --------------------------------------------------------------------------- +log "Backing up custom scripts" +for f in /usr/local/bin/jarvis-*.sh \ + /usr/local/bin/jarvis-*.py \ + /usr/local/bin/ttg-backup.sh \ + /usr/local/bin/do-server-backup; do + [[ -f "$f" ]] || continue + size=$(stat -c%s "$f" 2>/dev/null || echo 0) + [[ $size -lt 524288 ]] && cp "$f" scripts/ || log " SKIP (too large): $f" +done +# composer is a stock PHP tool — skip it + +# --------------------------------------------------------------------------- +# 3. Custom systemd service units (skip stock DO/system units) +# --------------------------------------------------------------------------- +log "Backing up custom systemd units" +CUSTOM_UNITS="jarvis-agent.service fastapi_ssh_server.service" +for unit in $CUSTOM_UNITS; do + src="/etc/systemd/system/$unit" + [[ -f "$src" ]] && cp "$src" systemd/ || true +done + +# --------------------------------------------------------------------------- +# 4. WireGuard configs (includes private keys — repo is private) +# --------------------------------------------------------------------------- +log "Backing up WireGuard configs" +for f in /etc/wireguard/*.conf; do + [[ -f "$f" ]] && cp "$f" wireguard/ || true +done + +# --------------------------------------------------------------------------- +# 5. Network / netplan +# --------------------------------------------------------------------------- +log "Backing up netplan" +for f in /etc/netplan/*.yaml; do + [[ -f "$f" ]] && cp "$f" network/ || true +done +cp /etc/hosts network/hosts 2>/dev/null || true +cp /etc/hostname network/hostname 2>/dev/null || true + +# --------------------------------------------------------------------------- +# 6. Root crontab — custom entries only (strip CyberPanel boilerplate) +# --------------------------------------------------------------------------- +log "Backing up crontab" +crontab -l 2>/dev/null | grep -v "^#\|CyberCP\|acme.sh\|cleansessions\|run_scheduled_scans\|pdnsHealthCheck\|findBWUsage\|postfixSenderPolicy\|upgradeCritical\|renew\.py\|IncScheduler\|e2scrub\|imunify\|sessionclean\|lsws\b" \ + | sed '/^[[:space:]]*$/d' > cron/root_custom +# Also keep the full crontab for reference +crontab -l 2>/dev/null > cron/root_full || echo "# no crontab" > cron/root_full + +# --------------------------------------------------------------------------- +# 7. SSH authorized_keys +# --------------------------------------------------------------------------- +log "Backing up SSH keys" +[[ -f /root/.ssh/authorized_keys ]] && cp /root/.ssh/authorized_keys ssh/ || true +[[ -f /root/.ssh/id_rsa.pub ]] && cp /root/.ssh/id_rsa.pub ssh/ || true + +# --------------------------------------------------------------------------- +# 8. OpenLiteSpeed vhost configs (CyberPanel-managed) +# --------------------------------------------------------------------------- +log "Backing up OLS vhost configs" +for vdir in /usr/local/lsws/conf/vhosts/*/; do + vname=$(basename "$vdir") + [[ "$vname" == "Example" ]] && continue + mkdir -p "ols-vhosts/$vname" + for conf in "$vdir"*.conf; do + [[ -f "$conf" ]] && cp "$conf" "ols-vhosts/$vname/" || true + done +done +# OLS main listener/vhost mapping +grep -E "^\s*(listener|virtualHost|address |map |vhRoot|vhDomain|configFile)" \ + /usr/local/lsws/conf/httpd_config.conf 2>/dev/null > ols-vhosts/httpd_vhosts_summary.txt || true + +# --------------------------------------------------------------------------- +# 9. MySQL root credentials file +# --------------------------------------------------------------------------- +log "Backing up MySQL credentials" +[[ -f /root/.my.cnf ]] && cp /root/.my.cnf mysql/my.cnf || true +# Document all databases +mysql -e "SHOW DATABASES;" 2>/dev/null | grep -v "^Database\|information_schema\|performance_schema\|sys" > mysql/databases.txt || true + +# --------------------------------------------------------------------------- +# 10. /opt/infra snapshot (already a separate git repo — copy contents) +# --------------------------------------------------------------------------- +log "Backing up /opt/infra snapshot" +if [[ -d /opt/infra ]]; then + rsync -a --exclude='.git' /opt/infra/ infra/ +fi + +# SMTP config docs +if [[ -d /opt/smtp-for-websites ]]; then + mkdir -p smtp-docs + rsync -a --exclude='.git' /opt/smtp-for-websites/ smtp-docs/ +fi + +# --------------------------------------------------------------------------- +# 11. CyberPanel website list (for documentation) +# --------------------------------------------------------------------------- +log "Documenting website list" +{ + echo "# Websites on DO server — $(date '+%Y-%m-%d')" + echo "" + for d in /home/*/public_html; do + site=$(echo "$d" | sed 's|/home/||;s|/public_html||') + diskuse=$(du -sh "$d" 2>/dev/null | cut -f1) + echo "- $site ($diskuse)" + done +} > ols-vhosts/site-list.txt + +# --------------------------------------------------------------------------- +# 12. Commit and push +# --------------------------------------------------------------------------- +log "Committing changes" +git add -A +if git diff --cached --quiet; then + log "No changes to commit" +else + CHANGES=$(git diff --cached --stat | tail -1) + git commit -m "[orbis] Weekly backup $(date '+%Y-%m-%d') — $CHANGES" + log "Pushing to GitHub" + git push origin main + log "Backup complete" +fi diff --git a/databases/epic_epic_db.sql.gz b/databases/epic_epic_db.sql.gz new file mode 100644 index 0000000000000000000000000000000000000000..0576ae24c5c08a29f5dce5f8796420585a6b6a90 GIT binary patch literal 4375 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 literal 0 HcmV?d00001 diff --git a/databases/epic_parkersling.sql.gz b/databases/epic_parkersling.sql.gz new file mode 100644 index 0000000000000000000000000000000000000000..fe3b41eea7d81efee2821fcc028c9eb02449eb87 GIT binary patch literal 6408 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 W&px^F>=YeBIV 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 BKB%Zdk$T(fT^xx{o!D|}$(yF@ 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 literal 0 HcmV?d00001 diff --git a/databases/tomt_ttg_db.sql.gz b/databases/tomt_ttg_db.sql.gz new file mode 100644 index 0000000000000000000000000000000000000000..11adc40e24852dc60f327a4462a0e613f58f5674 GIT binary patch literal 16791 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 literal 0 HcmV?d00001 diff --git a/databases/workt_track_db.sql.gz b/databases/workt_track_db.sql.gz new file mode 100644 index 0000000000000000000000000000000000000000..56053782fd84f378d904d491b5bd9deafa0fd90d GIT binary patch literal 1601 zcmV-H2EO?piwFP!000001I<|LbJ{o%|9t!v>L(xvt^BsR$xJ9Xt*6Aa;M`q1H)CX5 zPCNmd^COr1_qVcn`2l(K=2|8JYqk1$SK8l7+IMGHZ?ydLS0B-kI7^DsTZ$4AdQS9! zR*^^1**nzg_t6!J12TS(ylk~b9Dd7b2#tdzjRPlda&I}MzftNTKZ=n@oq&Y>We{c$ z{hKgDod;F6Ww8rz4Dn->qyw~!T(Z1{M+BcSNr^)eIzazK@m*@CF>&u~&tdBQSAE#X zIgRgWjNm^BqVSihwf)S=coB=O*1NMeBIYoM=DLM0rjxNf`Z$~oN0vUbL1d36hHhHt z7Z*)pn5f^LM40LG>xnh5L2Ts5Fs75q&@!ebJej6GVvh`>L0m^LhgbR>WvQ>O9PzMQ z*uTIsu5|m`)YJiW_gvTAtF?c{cz|(xuY);pk9TbvU#@lVT_1g7&X(FeRPM${KrW{< z-S}YIpY*SLq`I(&8Wi!7nVf%_*jLjr^K<*yLpx#HoZ7={Yij>KoPd2WvETIB^uS4u zt6-T^OP_DR^5+7r5En*lqTR~b1$@ceG>d7@kTjPqJo0GM5ST=h1=DVgXVcHf8orRv)#mYmjUQ7E}?UDapB$)pioLf8%cU;0V@i@JT%eRbq-d;P z4uOk%Eta9ufc4*#m`zoOlW@1L=K@R$t3Wo^rNN5swA?I?!2+8J!O+#Z)6EBEYwtya z5K#R3^O&v05y;Oo<7znjihvEM!`3C27L?0{i!2QOwl@n=Om*jAU3v#=kPpqr1m1(q zroX1UUy@uIGSS?c4GqYLhf!h&j(=x!i!E0-*6oqHXr^E4Gu<3Pvf9X5Y~>Cxr^ot4 z2d78F`Di%STV14^9}LJuMi@r0EtNyu=H&@#25`HutzlVZfwkRDNJRtaTw-Y zpIHdzep*q@^Vz)B5qo^E&0}8fW2KLUcBN5pCJ*TRYu_s&P8;xeAS&&Wl;;M5Hh{sf z_&|#iyz)YLK^*XWBfM6?%O!aE74SkMyjs93C3y7}@KO^zhYNVM1h2gUUTuWu+udh{ zi*A;q<=Q+5!sl#L%jhNuAyK7twN6j&R29u1yjfMO+3Z(qn|NMKlVqRPMX9Gll=dHfKpl9uwI*y}8ibGe;Qc8G@4B0hGDm3e#OdUvCywge{NKk8 z`KRJ;bCj3ZTMwp_{H?1$lfm_Y-_POAVx6MyM&(B{b{AGJA!YafPUCV}G>M z=#C!TOvI{I0#f><)|xzmJ5OnW)4@G$q(ArS8_?4Uq2y?%)U4^2-0hT_HQkcaol>*D zCs&BB{ai#pq(YhB+t52r>#f%5E5%N2d!2v-tre|SkL+CPilXmOU!=aH@V@5pj?eiX zmJ~X>U%cu%l=zr=M8SH;*A$ru zuI3A}>QYe_z*=8YC07;{jVj=$a>Pve_z8YD<Xp2vB3^TGuRgX?MXVJT>#4c9TzjmL`_%YdvG!;kw*jHC zRC}z5Tdyo06ctM~#%&tNml(OxYQ3b8YEcxT{e>HG(m+z-lHU3kmmROc+7|!-w*odo literal 0 HcmV?d00001 diff --git a/mysql/databases.txt b/mysql/databases.txt index 069ed23..a883153 100644 --- a/mysql/databases.txt +++ b/mysql/databases.txt @@ -5,3 +5,4 @@ mysql park_slingshot toms_tjj_db tomt_ttg_db +workt_track_db diff --git a/ols-vhosts/httpd_vhosts_summary.txt b/ols-vhosts/httpd_vhosts_summary.txt index b22665c..4afe527 100644 --- a/ols-vhosts/httpd_vhosts_summary.txt +++ b/ols-vhosts/httpd_vhosts_summary.txt @@ -3,6 +3,7 @@ virtualHost Example{ vhRoot Example/ configFile conf/vhosts/Example/vhconf.conf listener Default{ + map worktracking.orbishosting.com worktracking.orbishosting.com map orbis.orbishosting.com orbis.orbishosting.com map mail.parkerslingshotrentals.com mail.parkerslingshotrentals.com map parkerslingshotrentals.com parkerslingshotrentals.com @@ -21,6 +22,7 @@ virtualHost tomtomgames.com { vhRoot /home/$VH_NAME configFile $SERVER_ROOT/conf/vhosts/$VH_NAME/vhost.conf listener SSL { + map worktracking.orbishosting.com worktracking.orbishosting.com map mail.tomtomgames.com mail.tomtomgames.com map orbis.orbishosting.com orbis.orbishosting.com map mail.parkerslingshotrentals.com mail.parkerslingshotrentals.com @@ -37,6 +39,7 @@ virtualHost mail.tomtomgames.com { vhRoot /home/tomtomgames.com configFile $SERVER_ROOT/conf/vhosts/$VH_NAME/vhost.conf listener SSL IPv6 { + map worktracking.orbishosting.com worktracking.orbishosting.com map mail.tomtomgames.com mail.tomtomgames.com map orbis.orbishosting.com orbis.orbishosting.com map mail.parkerslingshotrentals.com mail.parkerslingshotrentals.com @@ -76,3 +79,6 @@ virtualHost mail.parkerslingshotrentals.com { virtualHost orbis.orbishosting.com { vhRoot /home/$VH_NAME configFile $SERVER_ROOT/conf/vhosts/$VH_NAME/vhost.conf +virtualHost worktracking.orbishosting.com { + vhRoot /home/$VH_NAME + configFile $SERVER_ROOT/conf/vhosts/$VH_NAME/vhost.conf diff --git a/ols-vhosts/site-list.txt b/ols-vhosts/site-list.txt index 2b48571..4613438 100644 --- a/ols-vhosts/site-list.txt +++ b/ols-vhosts/site-list.txt @@ -1,8 +1,9 @@ -# Websites on DO server — 2026-07-05 +# Websites on DO server — 2026-07-07 - epictravelexpeditions.com (3.8M) - orbishosting.com (113M) - orbis.orbishosting.com (40K) -- parkerslingshotrentals.com (308K) -- tomsjavajive.com (3.8M) -- tomtomgames.com (872K) +- parkerslingshotrentals.com (300K) +- tomsjavajive.com (3.9M) +- tomtomgames.com (868K) +- worktracking.orbishosting.com (124K) diff --git a/ols-vhosts/worktracking.orbishosting.com/vhost.conf b/ols-vhosts/worktracking.orbishosting.com/vhost.conf new file mode 100755 index 0000000..258602e --- /dev/null +++ b/ols-vhosts/worktracking.orbishosting.com/vhost.conf @@ -0,0 +1,91 @@ +docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@worktracking.orbishosting.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:workt7085 php +} + +extprocessor workt7085 { + type lsapi + address UDS://tmp/lshttpd/workt7085.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser workt7085 + extGroup workt7085 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { +php_admin_value open_basedir "/tmp:$VH_ROOT" +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/worktracking.orbishosting.com/privkey.pem + certFile /etc/letsencrypt/live/worktracking.orbishosting.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} diff --git a/scripts/jarvis-agent.py b/scripts/jarvis-agent.py index 1dc721a..d237438 100755 --- a/scripts/jarvis-agent.py +++ b/scripts/jarvis-agent.py @@ -281,7 +281,7 @@ def get_uptime() -> dict: return {} def get_services(cfg: dict) -> list: - watch = cfg.get("watch_services", ["ollama", "homeassistant", "mysql", "nginx", "apache2"]) + watch = cfg.get("watch_services", []) statuses = [] for svc in watch: try: diff --git a/scripts/jarvis-backup.sh b/scripts/jarvis-backup.sh index 3b0f7af..c71fea0 100755 --- a/scripts/jarvis-backup.sh +++ b/scripts/jarvis-backup.sh @@ -10,12 +10,11 @@ KEEP_DAYS=7 DB_USER="root" DB_PASS="b71e5c1a8c7457541b9c1db822de37adfa271926a38b6c20" -DATABASES="jarvis_db toms_tjj_db tomt_ttg_db epic_parkersling epic_epic_db parker_db" +DATABASES="toms_tjj_db tomt_ttg_db epic_parkersling epic_epic_db park_slingshot" SITES=( "/home/epictravelexpeditions.com/public_html" "/home/epictravelexpeditions.com/parkerslingshot" - "/home/jarvis.orbishosting.com/public_html" "/home/orbishosting.com/public_html" "/home/orbis.orbishosting.com/public_html" "/home/parkerslingshotrentals.com/public_html" diff --git a/sites/epictravelexpeditions.com/public_html/.gitignore b/sites/epictravelexpeditions.com/public_html/.gitignore new file mode 100644 index 0000000..26add4a --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/.gitignore @@ -0,0 +1,6 @@ +*.log +.DS_Store +*.swp + +api/config.php +uploads/ diff --git a/sites/epictravelexpeditions.com/public_html/.htaccess b/sites/epictravelexpeditions.com/public_html/.htaccess new file mode 100644 index 0000000..ed30591 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/.htaccess @@ -0,0 +1,66 @@ +### Rewrite Rules Added by CyberPanel Rewrite Rule Generator + +RewriteEngine On +RewriteCond %{HTTPS} !=on +RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] + +### End CyberPanel Generated Rules. + +# Epic Travel & Expeditions - CyberPanel LiteSpeed Configuration +DirectoryIndex index.html index.php + + +RewriteEngine On +RewriteBase / + +# Block access to version control metadata and the raw DB schema dump. +# These were previously reachable directly over HTTP (e.g. /.git/config, +# /db/schema.sql) and leaked repo/DB internals - deny them outright. +# Note: a direct RewriteRule pattern (no leading slash) was found NOT to be +# honored consistently on this LiteSpeed setup for root-level paths; matching +# on REQUEST_URI via RewriteCond is what's confirmed to work. +RewriteCond %{REQUEST_URI} ^/(\.git|db/) +RewriteRule .* - [F,L] + +# API Routes - Direct to PHP backend +RewriteCond %{REQUEST_URI} ^/api/ +RewriteRule ^api/(.*)$ api/api/$1 [L,QSA] + +# Static files and directories - serve directly +RewriteCond %{REQUEST_FILENAME} -f [OR] +RewriteCond %{REQUEST_FILENAME} -d +RewriteRule ^ - [L] + +# React Router - All other routes to index.html +RewriteRule ^ index.html [L] + + +# Security Headers + +Header set X-Content-Type-Options "nosniff" +Header set X-Frame-Options "SAMEORIGIN" +Header set X-XSS-Protection "1; mode=block" + + +# Enable CORS for API + + Header set Access-Control-Allow-Origin "*" + Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" + Header set Access-Control-Allow-Headers "Content-Type, Authorization" + + +# Disable directory browsing +Options -Indexes +FollowSymLinks + +# PHP Settings + +php_value upload_max_filesize 10M +php_value post_max_size 10M +php_value memory_limit 256M +php_value max_execution_time 300 + + +# Force use of index.html + +DirectoryIndex index.html index.php + diff --git a/sites/epictravelexpeditions.com/public_html/api/.htaccess b/sites/epictravelexpeditions.com/public_html/api/.htaccess new file mode 100644 index 0000000..a04bdce --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/.htaccess @@ -0,0 +1,60 @@ +# Epic Travel & Expeditions - LiteSpeed .htaccess for CyberPanel +# Optimized for LiteSpeed Web Server + + + RewriteEngine On + RewriteBase /api/ + + # Block direct access to config.php / .env - this was reachable at + # /api/config.php in production (200 OK) despite the FilesMatch/Require + # rule below, which LiteSpeed appears not to honor from .htaccess here. + # Matching on REQUEST_URI (not a direct RewriteRule pattern) is what's + # confirmed to actually work on this LiteSpeed setup. + RewriteCond %{REQUEST_URI} /(config\.php|\.env)$ + RewriteRule .* - [F,L] + + # Route all requests to index.php + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^(.*)$ index.php/$1 [L,QSA] + + +# LiteSpeed Cache Control + + # Disable caching for API + CacheLookup off + + +# Security Headers + + Header set X-Content-Type-Options "nosniff" + Header set X-Frame-Options "SAMEORIGIN" + Header set X-XSS-Protection "1; mode=block" + Header set X-Powered-By "Epic Travel API" + + +# Protect sensitive files + + Require all denied + + +# PHP Settings (LiteSpeed compatible) + + php_value upload_max_filesize 10M + php_value post_max_size 10M + php_value max_execution_time 300 + php_value max_input_time 300 + php_value memory_limit 256M + + +# Compression + + AddOutputFilterByType DEFLATE application/json + AddOutputFilterByType DEFLATE text/plain + AddOutputFilterByType DEFLATE text/html + + +# Browser Caching + + ExpiresActive Off + diff --git a/sites/epictravelexpeditions.com/public_html/api/api/auth.php b/sites/epictravelexpeditions.com/public_html/api/api/auth.php new file mode 100644 index 0000000..293a04e --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/auth.php @@ -0,0 +1,55 @@ +getConnection(); + +// Login endpoint +if ($method === 'POST' && $id === 'login') { + $input = getJsonInput(); + + // Validate input + $errors = validateRequired($input, ['email', 'password']); + if (!empty($errors)) { + jsonResponse(['error' => implode(', ', $errors)], 400); + } + + $email = sanitizeString($input['email']); + $password = $input['password']; + + // Find admin user + $stmt = $db->prepare("SELECT * FROM admin_users WHERE email = ?"); + $stmt->execute([$email]); + $admin = $stmt->fetch(); + + if (!$admin) { + jsonResponse(['error' => 'Invalid email or password'], 401); + } + + // Verify password + if (!password_verify($password, $admin['password_hash'])) { + jsonResponse(['error' => 'Invalid email or password'], 401); + } + + // Create token + $token = JWT::createToken($email); + + jsonResponse([ + 'access_token' => $token, + 'token_type' => 'bearer', + 'email' => $email + ]); +} + +// Verify token endpoint +if ($method === 'POST' && $id === 'verify') { + $payload = requireAuth(); + + jsonResponse([ + 'valid' => true, + 'email' => $payload['sub'] + ]); +} + +jsonResponse(['error' => 'Invalid auth endpoint'], 404); diff --git a/sites/epictravelexpeditions.com/public_html/api/api/categories.php b/sites/epictravelexpeditions.com/public_html/api/api/categories.php new file mode 100644 index 0000000..cf6b4bd --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/categories.php @@ -0,0 +1,64 @@ +getConnection(); + +// GET all categories (public - needed for destination forms) +if ($method === 'GET' && !$id) { + $stmt = $db->query('SELECT id, name FROM destination_categories ORDER BY name'); + jsonResponse($stmt->fetchAll()); +} + +// POST add category (admin) +if ($method === 'POST') { + requireAuth(); + $input = getJsonInput(); + $errors = validateRequired($input, ['name']); + if (!empty($errors)) jsonResponse(['error' => implode(', ', $errors)], 400); + $name = sanitizeString($input['name']); + try { + $stmt = $db->prepare('INSERT INTO destination_categories (name) VALUES (?)'); + $stmt->execute([$name]); + $newId = $db->lastInsertId(); + jsonResponse(['id' => $newId, 'name' => $name], 201); + } catch (Exception $e) { + jsonResponse(['error' => 'Category already exists'], 409); + } +} + +// PUT rename category (admin) - also updates all destinations using it +if ($method === 'PUT' && $id) { + requireAuth(); + $input = getJsonInput(); + $errors = validateRequired($input, ['name']); + if (!empty($errors)) jsonResponse(['error' => implode(', ', $errors)], 400); + $newName = sanitizeString($input['name']); + $stmt = $db->prepare('SELECT name FROM destination_categories WHERE id = ?'); + $stmt->execute([$id]); + $old = $stmt->fetch(); + if (!$old) jsonResponse(['error' => 'Category not found'], 404); + try { + $db->prepare('UPDATE destination_categories SET name = ? WHERE id = ?')->execute([$newName, $id]); + $db->prepare('UPDATE destinations SET category = ? WHERE category = ?')->execute([$newName, $old['name']]); + jsonResponse(['id' => $id, 'name' => $newName]); + } catch (Exception $e) { + jsonResponse(['error' => 'Category name already exists'], 409); + } +} + +// DELETE category (admin) - only if no destinations use it +if ($method === 'DELETE' && $id) { + requireAuth(); + $stmt = $db->prepare('SELECT name FROM destination_categories WHERE id = ?'); + $stmt->execute([$id]); + $cat = $stmt->fetch(); + if (!$cat) jsonResponse(['error' => 'Category not found'], 404); + $stmt = $db->prepare('SELECT COUNT(*) FROM destinations WHERE category = ?'); + $stmt->execute([$cat['name']]); + if ($stmt->fetchColumn() > 0) jsonResponse(['error' => 'Cannot delete — destinations are using this category'], 400); + $db->prepare('DELETE FROM destination_categories WHERE id = ?')->execute([$id]); + jsonResponse(['message' => 'Category deleted']); +} + +jsonResponse(['error' => 'Invalid categories endpoint'], 404); diff --git a/sites/epictravelexpeditions.com/public_html/api/api/contact.php b/sites/epictravelexpeditions.com/public_html/api/api/contact.php new file mode 100644 index 0000000..cdbe424 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/contact.php @@ -0,0 +1,38 @@ +getConnection(); + +if ($method === 'POST') { + $input = getJsonInput(); + + $errors = validateRequired($input, ['name', 'email', 'message']); + if (!empty($errors)) { + jsonResponse(['error' => implode(', ', $errors)], 400); + } + + if (!isValidEmail($input['email'])) { + jsonResponse(['error' => 'Invalid email address'], 400); + } + + $name = sanitizeString($input['name']); + $email = sanitizeString($input['email']); + $message = $input['message']; + $id = generateUuid(); + + $stmt = $db->prepare(" + INSERT INTO contacts (id, name, email, message, created_at) + VALUES (?, ?, ?, ?, NOW()) + "); + $stmt->execute([$id, $name, $email, $message]); + + // Send admin alert and customer confirmation via SendGrid + sendContactAlert($name, $email, $message); + sendContactConfirmation($email, $name); + + jsonResponse(['message' => 'Contact form submitted successfully']); +} + +jsonResponse(['error' => 'Method not allowed'], 405); diff --git a/sites/epictravelexpeditions.com/public_html/api/api/destinations.php b/sites/epictravelexpeditions.com/public_html/api/api/destinations.php new file mode 100644 index 0000000..96c1e9c --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/destinations.php @@ -0,0 +1,139 @@ +getConnection(); + +// GET all destinations or single destination +if ($method === 'GET') { + if ($id) { + // Get single destination + $stmt = $db->prepare("SELECT * FROM destinations WHERE id = ?"); + $stmt->execute([$id]); + $destination = $stmt->fetch(); + + if (!$destination) { + jsonResponse(['error' => 'Destination not found'], 404); + } + + jsonResponse($destination); + } else { + // Get all destinations with optional filtering + $category = isset($_GET['category']) ? sanitizeString($_GET['category']) : null; + $search = isset($_GET['search']) ? sanitizeString($_GET['search']) : null; + + $sql = "SELECT * FROM destinations WHERE 1=1"; + $params = []; + + if ($category && $category !== 'All') { + $sql .= " AND category = ?"; + $params[] = $category; + } + + if ($search) { + $sql .= " AND (name LIKE ? OR location LIKE ?)"; + $params[] = "%$search%"; + $params[] = "%$search%"; + } + + $sql .= " LIMIT 100"; + + $stmt = $db->prepare($sql); + $stmt->execute($params); + $destinations = $stmt->fetchAll(); + + jsonResponse($destinations); + } +} + +// POST create new destination (admin only) +if ($method === 'POST') { + requireAuth(); + + $input = getJsonInput(); + + $errors = validateRequired($input, ['name', 'location', 'description', 'image', 'category', 'rating', 'price']); + if (!empty($errors)) { + jsonResponse(['error' => implode(', ', $errors)], 400); + } + + $id = generateUuid(); + $stmt = $db->prepare(" + INSERT INTO destinations (id, name, location, description, image, category, rating, price, currency, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW()) + "); + + $stmt->execute([ + $id, + sanitizeString($input['name']), + sanitizeString($input['location']), + $input['description'], + $input['image'], + $input['category'], + $input['rating'], + $input['price'], + isset($input['currency']) ? $input['currency'] : 'USD' + ]); + + // Fetch created destination + $stmt = $db->prepare("SELECT * FROM destinations WHERE id = ?"); + $stmt->execute([$id]); + $destination = $stmt->fetch(); + + jsonResponse($destination, 201); +} + +// PUT update destination (admin only) +if ($method === 'PUT' && $id) { + requireAuth(); + + $input = getJsonInput(); + + // Build update query dynamically + $updates = []; + $params = []; + + $allowedFields = ['name', 'location', 'description', 'image', 'category', 'rating', 'price', 'currency']; + + foreach ($allowedFields as $field) { + if (isset($input[$field])) { + $updates[] = "$field = ?"; + $params[] = $field === 'description' ? $input[$field] : sanitizeString($input[$field]); + } + } + + if (empty($updates)) { + jsonResponse(['error' => 'No fields to update'], 400); + } + + $params[] = $id; + + $sql = "UPDATE destinations SET " . implode(', ', $updates) . " WHERE id = ?"; + $stmt = $db->prepare($sql); + $stmt->execute($params); + + // Fetch updated destination + $stmt = $db->prepare("SELECT * FROM destinations WHERE id = ?"); + $stmt->execute([$id]); + $destination = $stmt->fetch(); + + jsonResponse($destination); +} + +// DELETE destination (admin only) +if ($method === 'DELETE' && $id) { + requireAuth(); + + // Delete destination (cascades to specials) + $stmt = $db->prepare("DELETE FROM destinations WHERE id = ?"); + $stmt->execute([$id]); + + if ($stmt->rowCount() === 0) { + jsonResponse(['error' => 'Destination not found'], 404); + } + + jsonResponse(['message' => 'Destination deleted successfully']); +} + +jsonResponse(['error' => 'Invalid destinations endpoint'], 404); diff --git a/sites/epictravelexpeditions.com/public_html/api/api/newsletter.php b/sites/epictravelexpeditions.com/public_html/api/api/newsletter.php new file mode 100644 index 0000000..c34d4d7 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/newsletter.php @@ -0,0 +1,37 @@ +getConnection(); + +if ($method === 'POST' && $id === 'subscribe') { + $input = getJsonInput(); + + if (!isset($input['email']) || !isValidEmail($input['email'])) { + jsonResponse(['error' => 'Valid email address is required'], 400); + } + + $email = sanitizeString($input['email']); + + // Check if already subscribed + $stmt = $db->prepare("SELECT id FROM newsletter_subscribers WHERE email = ?"); + $stmt->execute([$email]); + + if ($stmt->fetch()) { + jsonResponse(['message' => 'Email already subscribed']); + } + + $id = generateUuid(); + + $stmt = $db->prepare(" + INSERT INTO newsletter_subscribers (id, email, subscribed_at) + VALUES (?, ?, NOW()) + "); + + $stmt->execute([$id, $email]); + + jsonResponse(['message' => 'Successfully subscribed to newsletter']); +} + +jsonResponse(['error' => 'Invalid newsletter endpoint'], 404); diff --git a/sites/epictravelexpeditions.com/public_html/api/api/specials.php b/sites/epictravelexpeditions.com/public_html/api/api/specials.php new file mode 100644 index 0000000..3ca92c1 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/specials.php @@ -0,0 +1,131 @@ +getConnection(); + +// GET all specials +if ($method === 'GET' && !$id) { + $stmt = $db->query("SELECT * FROM specials LIMIT 100"); + $specials = $stmt->fetchAll(); + + // Parse JSON highlights + foreach ($specials as &$special) { + $special['highlights'] = json_decode($special['highlights'], true); + } + + jsonResponse($specials); +} + +// POST create special (admin only) +if ($method === 'POST') { + requireAuth(); + + $input = getJsonInput(); + + $errors = validateRequired($input, ['destination_id', 'discount', 'end_date', 'highlights']); + if (!empty($errors)) { + jsonResponse(['error' => implode(', ', $errors)], 400); + } + + // Check if destination exists + $stmt = $db->prepare("SELECT id FROM destinations WHERE id = ?"); + $stmt->execute([$input['destination_id']]); + if (!$stmt->fetch()) { + jsonResponse(['error' => 'Destination not found'], 404); + } + + // Check if special already exists for this destination + $stmt = $db->prepare("SELECT id FROM specials WHERE destination_id = ?"); + $stmt->execute([$input['destination_id']]); + if ($stmt->fetch()) { + jsonResponse(['error' => 'Special already exists for this destination'], 400); + } + + $id = generateUuid(); + $highlights = json_encode($input['highlights']); + + $stmt = $db->prepare(" + INSERT INTO specials (id, destination_id, discount, end_date, highlights, image_path, created_at) + VALUES (?, ?, ?, ?, ?, ?, NOW()) + "); + + $stmt->execute([ + $id, + $input['destination_id'], + $input['discount'], + $input['end_date'], + $highlights, + isset($input['image_path']) ? $input['image_path'] : null + ]); + + // Fetch created special + $stmt = $db->prepare("SELECT * FROM specials WHERE id = ?"); + $stmt->execute([$id]); + $special = $stmt->fetch(); + $special['highlights'] = json_decode($special['highlights'], true); + + jsonResponse($special, 201); +} + +// PUT update special (admin only) +if ($method === 'PUT' && $id) { + requireAuth(); + + $input = getJsonInput(); + + $updates = []; + $params = []; + + if (isset($input['discount'])) { + $updates[] = "discount = ?"; + $params[] = $input['discount']; + } + + if (isset($input['end_date'])) { + $updates[] = "end_date = ?"; + $params[] = $input['end_date']; + } + + if (isset($input['highlights'])) { + $updates[] = "highlights = ?"; + $params[] = json_encode($input['highlights']); + } + + if (empty($updates)) { + jsonResponse(['error' => 'No fields to update'], 400); + } + + $params[] = $id; + + $sql = "UPDATE specials SET " . implode(', ', $updates) . " WHERE id = ?"; + $stmt = $db->prepare($sql); + $stmt->execute($params); + + // Fetch updated special + $stmt = $db->prepare("SELECT * FROM specials WHERE id = ?"); + $stmt->execute([$id]); + $special = $stmt->fetch(); + $special['highlights'] = json_decode($special['highlights'], true); + + jsonResponse($special); +} + +// DELETE special by destination_id (admin only) +if ($method === 'DELETE' && isset($pathParts[1]) && $pathParts[1] === 'destination' && isset($pathParts[2])) { + requireAuth(); + + $destinationId = $pathParts[2]; + + $stmt = $db->prepare("DELETE FROM specials WHERE destination_id = ?"); + $stmt->execute([$destinationId]); + + if ($stmt->rowCount() === 0) { + jsonResponse(['error' => 'Special not found for this destination'], 404); + } + + jsonResponse(['message' => 'Special removed successfully']); +} + +jsonResponse(['error' => 'Invalid specials endpoint'], 404); diff --git a/sites/epictravelexpeditions.com/public_html/api/api/testimonials.php b/sites/epictravelexpeditions.com/public_html/api/api/testimonials.php new file mode 100644 index 0000000..37648f2 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/testimonials.php @@ -0,0 +1,103 @@ +getConnection(); + +// GET approved testimonials (public) +if ($method === 'GET' && !$id) { + $stmt = $db->query("SELECT id, full_name, location, message, image_path, created_at FROM testimonials WHERE status = 'approved' ORDER BY created_at DESC"); + jsonResponse($stmt->fetchAll()); +} + +// GET all testimonials (admin) +if ($method === 'GET' && $id === 'all') { + requireAuth(); + $stmt = $db->query("SELECT * FROM testimonials ORDER BY created_at DESC"); + jsonResponse($stmt->fetchAll()); +} + +// POST submit testimonial (public) +if ($method === 'POST' && !$id) { + $input = getJsonInput(); + $errors = validateRequired($input, ['full_name', 'location', 'message']); + if (!empty($errors)) { + jsonResponse(['error' => implode(', ', $errors)], 400); + } + + $testimonialId = generateUuid(); + $stmt = $db->prepare("INSERT INTO testimonials (id, full_name, location, message, image_path, status, created_at) VALUES (?, ?, ?, ?, ?, 'pending', NOW())"); + $stmt->execute([ + $testimonialId, + sanitizeString($input['full_name']), + sanitizeString($input['location']), + sanitizeString($input['message']), + isset($input['image_path']) ? $input['image_path'] : null + ]); + jsonResponse(['message' => 'Testimonial submitted successfully', 'id' => $testimonialId], 201); +} + +// PUT approve/deny/edit testimonial (admin) +if ($method === 'PUT' && $id) { + requireAuth(); + $input = getJsonInput(); + $updates = []; + $params = []; + + if (isset($input['status']) && in_array($input['status'], ['pending', 'approved', 'denied'])) { + $updates[] = 'status = ?'; + $params[] = $input['status']; + } + if (isset($input['full_name'])) { $updates[] = 'full_name = ?'; $params[] = sanitizeString($input['full_name']); } + if (isset($input['location'])) { $updates[] = 'location = ?'; $params[] = sanitizeString($input['location']); } + if (isset($input['message'])) { $updates[] = 'message = ?'; $params[] = sanitizeString($input['message']); } + + if (empty($updates)) jsonResponse(['error' => 'No fields to update'], 400); + + $params[] = $id; + $stmt = $db->prepare('UPDATE testimonials SET ' . implode(', ', $updates) . ' WHERE id = ?'); + $stmt->execute($params); + + $stmt = $db->prepare('SELECT * FROM testimonials WHERE id = ?'); + $stmt->execute([$id]); + jsonResponse($stmt->fetch()); +} + +// DELETE testimonial (admin) +if ($method === 'DELETE' && $id) { + requireAuth(); + $stmt = $db->prepare('DELETE FROM testimonials WHERE id = ?'); + $stmt->execute([$id]); + if ($stmt->rowCount() === 0) jsonResponse(['error' => 'Testimonial not found'], 404); + jsonResponse(['message' => 'Testimonial deleted']); +} + + +// POST upload testimonial image (public) - rate limited per IP to prevent +// unauthenticated storage/bandwidth abuse (this endpoint has no login requirement). +if ($method === "POST" && $id === "upload") { + $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown'; + $limitRow = $db->prepare("SELECT upload_count, window_start FROM upload_rate_limits WHERE ip_address = ?"); + $limitRow->execute([$ip]); + $limit = $limitRow->fetch(); + + $windowFresh = $limit && (strtotime($limit['window_start']) > time() - 3600); + if ($windowFresh && (int)$limit['upload_count'] >= 5) { + jsonResponse(["error" => "Too many uploads. Please try again later."], 429); + } + + if (!isset($_FILES["file"])) jsonResponse(["error" => "No file uploaded"], 400); + $result = handleImageUpload($_FILES["file"]); + if (isset($result['error'])) jsonResponse(["error" => $result['error']], $result['status']); + + if ($windowFresh) { + $db->prepare("UPDATE upload_rate_limits SET upload_count = upload_count + 1 WHERE ip_address = ?")->execute([$ip]); + } else { + $db->prepare("REPLACE INTO upload_rate_limits (ip_address, upload_count, window_start) VALUES (?, 1, NOW())")->execute([$ip]); + } + + jsonResponse(["url" => $result['url']]); +} + +jsonResponse(['error' => 'Invalid testimonials endpoint'], 404); diff --git a/sites/epictravelexpeditions.com/public_html/api/api/upload.php b/sites/epictravelexpeditions.com/public_html/api/api/upload.php new file mode 100644 index 0000000..d2040c4 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/api/upload.php @@ -0,0 +1,43 @@ + 'No file uploaded'], 400); + } + + $result = handleImageUpload($_FILES['file']); + if (isset($result['error'])) { + jsonResponse(['error' => $result['error']], $result['status']); + } + + jsonResponse([ + 'url' => $result['url'], + 'filename' => $result['filename'] + ]); +} + +// Serve uploaded images +if ($method === 'GET' && isset($pathParts[1]) && $pathParts[1] === 'uploads' && isset($pathParts[2])) { + $filename = basename($pathParts[2]); + $filepath = UPLOAD_DIR . $filename; + + if (!file_exists($filepath)) { + jsonResponse(['error' => 'Image not found'], 404); + } + + $finfo = finfo_open(FILEINFO_MIME_TYPE); + $mimeType = finfo_file($finfo, $filepath); + finfo_close($finfo); + + header('Content-Type: ' . $mimeType); + header('Content-Length: ' . filesize($filepath)); + readfile($filepath); + exit; +} + +jsonResponse(['error' => 'Invalid upload endpoint'], 404); diff --git a/sites/epictravelexpeditions.com/public_html/api/includes/database.php b/sites/epictravelexpeditions.com/public_html/api/includes/database.php new file mode 100644 index 0000000..4c6b7cf --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/includes/database.php @@ -0,0 +1,52 @@ + PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]; + + $this->conn = new PDO($dsn, DB_USER, DB_PASS, $options); + } catch (PDOException $e) { + $this->handleError($e->getMessage()); + } + } + + public static function getInstance() { + if (self::$instance === null) { + self::$instance = new self(); + } + return self::$instance; + } + + public function getConnection() { + return $this->conn; + } + + private function handleError($message) { + if (DEBUG_MODE) { + die(json_encode(['error' => 'Database Error: ' . $message])); + } else { + die(json_encode(['error' => 'Database connection failed'])); + } + } + + // Prevent cloning + private function __clone() {} + + // Prevent unserialization + public function __wakeup() { + throw new Exception("Cannot unserialize singleton"); + } +} diff --git a/sites/epictravelexpeditions.com/public_html/api/includes/functions.php b/sites/epictravelexpeditions.com/public_html/api/includes/functions.php new file mode 100644 index 0000000..6573e1e --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/includes/functions.php @@ -0,0 +1,124 @@ + ..., 'filename' => ...] on success, or + * ['error' => ..., 'status' => ...] on failure. + */ +function handleImageUpload($file) { + if (!$file || $file['error'] !== UPLOAD_ERR_OK) { + return ['error' => 'File upload failed', 'status' => 400]; + } + + if ($file['size'] > MAX_UPLOAD_SIZE) { + return ['error' => 'File too large. Maximum size is 5MB', 'status' => 400]; + } + + $allowedTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']; + $finfo = finfo_open(FILEINFO_MIME_TYPE); + $mimeType = finfo_file($finfo, $file['tmp_name']); + finfo_close($finfo); + + if (!in_array($mimeType, $allowedTypes)) { + return ['error' => 'Invalid file type. Only JPG, PNG, and WebP allowed', 'status' => 400]; + } + + $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); + $filename = generateUuid() . '.' . $extension; + $filepath = UPLOAD_DIR . $filename; + + if (!move_uploaded_file($file['tmp_name'], $filepath)) { + return ['error' => 'Failed to save file', 'status' => 500]; + } + + return ['url' => '/api/uploads/' . $filename, 'filename' => $filename]; +} diff --git a/sites/epictravelexpeditions.com/public_html/api/includes/jwt.php b/sites/epictravelexpeditions.com/public_html/api/includes/jwt.php new file mode 100644 index 0000000..dd8478c --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/includes/jwt.php @@ -0,0 +1,117 @@ + 'JWT', 'alg' => 'HS256']); + $payload = json_encode($payload); + + $base64UrlHeader = self::base64UrlEncode($header); + $base64UrlPayload = self::base64UrlEncode($payload); + + $signature = hash_hmac('sha256', $base64UrlHeader . "." . $base64UrlPayload, $secret, true); + $base64UrlSignature = self::base64UrlEncode($signature); + + return $base64UrlHeader . "." . $base64UrlPayload . "." . $base64UrlSignature; + } + + /** + * Decode and verify a JWT token + */ + public static function decode($jwt, $secret) { + $parts = explode('.', $jwt); + + if (count($parts) !== 3) { + return false; + } + + list($base64UrlHeader, $base64UrlPayload, $base64UrlSignature) = $parts; + + $signature = self::base64UrlDecode($base64UrlSignature); + $expectedSignature = hash_hmac('sha256', $base64UrlHeader . "." . $base64UrlPayload, $secret, true); + + if (!hash_equals($signature, $expectedSignature)) { + return false; + } + + $payload = json_decode(self::base64UrlDecode($base64UrlPayload), true); + + // Check expiration + if (isset($payload['exp']) && $payload['exp'] < time()) { + return false; + } + + return $payload; + } + + /** + * Create authentication token + */ + public static function createToken($email) { + $payload = [ + 'sub' => $email, + 'iat' => time(), + 'exp' => time() + JWT_EXPIRY + ]; + + return self::encode($payload, JWT_SECRET_KEY); + } + + /** + * Verify token from Authorization header + */ + public static function verifyToken() { + $headers = getallheaders(); + + if (!isset($headers['Authorization'])) { + return false; + } + + $authHeader = $headers['Authorization']; + + if (!preg_match('/Bearer\s+(.*)$/i', $authHeader, $matches)) { + return false; + } + + $token = $matches[1]; + $payload = self::decode($token, JWT_SECRET_KEY); + + return $payload; + } + + /** + * Base64 URL encode + */ + private static function base64UrlEncode($data) { + return str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($data)); + } + + /** + * Base64 URL decode + */ + private static function base64UrlDecode($data) { + return base64_decode(str_replace(['-', '_'], ['+', '/'], $data)); + } +} + +/** + * Require authentication middleware + */ +function requireAuth() { + $payload = JWT::verifyToken(); + + if (!$payload) { + http_response_code(401); + echo json_encode(['error' => 'Unauthorized']); + exit; + } + + return $payload; +} diff --git a/sites/epictravelexpeditions.com/public_html/api/includes/mailer.php b/sites/epictravelexpeditions.com/public_html/api/includes/mailer.php new file mode 100644 index 0000000..8495a0a --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/includes/mailer.php @@ -0,0 +1,97 @@ + defined('MAIL_FROM') ? MAIL_FROM : 'noreply@epictravelexpeditions.com', + 'to' => $toEmail, + 'subject' => $subject, + 'html' => $htmlBody, + ]; + if ($textBody) $payload['text'] = $textBody; + + $ch = curl_init('https://platform.cyberpersons.com/email/v1/send'); + curl_setopt_array($ch, [ + CURLOPT_RETURNTRANSFER => true, + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => json_encode($payload), + CURLOPT_HTTPHEADER => [ + 'Authorization: Bearer ' . $apiKey, + 'Content-Type: application/json', + ], + CURLOPT_TIMEOUT => 20, + CURLOPT_SSL_VERIFYPEER => true, + CURLOPT_SSL_VERIFYHOST => 2, + ]); + + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + if ($httpCode === 202) return true; + error_log('[EpicTravel mailer] CyberMail HTTP ' . $httpCode . ' — ' . $response); + return false; +} + +function sendContactAlert(string $name, string $email, string $message): bool { + $adminEmail = defined('ADMIN_EMAIL') ? ADMIN_EMAIL : 'admin@epictravelexpeditions.com'; + $subject = "New Contact Form Submission from {$name}"; + $html = ' +
+
+

Epic Travel Expeditions

+

New Contact Form Message

+
+
+ + + + + +
Name' . htmlspecialchars($name) . '
Email' . htmlspecialchars($email) . '
+
+

' . nl2br(htmlspecialchars($message)) . '

+
+

Submitted ' . date('F j, Y \a\t g:i A T') . '

+
+
+

© ' . date('Y') . ' Epic Travel Expeditions

+
+
'; + + return sendgridSend($adminEmail, 'Epic Travel Admin', $subject, $html, + "New contact from {$name} ({$email}):\n\n{$message}"); +} + +function sendContactConfirmation(string $toEmail, string $toName): bool { + $subject = "We received your message — Epic Travel Expeditions"; + $html = ' +
+
+

Epic Travel Expeditions

+
+
+

Thanks for reaching out, ' . htmlspecialchars($toName) . '!

+

We received your message and our team will get back to you within 1–2 business days.

+

In the meantime, feel free to browse our destinations and current travel specials:

+ +

Adventure awaits,
The Epic Travel Team

+
+
+

© ' . date('Y') . ' Epic Travel Expeditions

+
+
'; + + return sendgridSend($toEmail, $toName, $subject, $html, + "Hi {$toName},\n\nThanks for contacting Epic Travel Expeditions! We'll get back to you within 1-2 business days.\n\nAdventure awaits,\nThe Epic Travel Team"); +} diff --git a/sites/epictravelexpeditions.com/public_html/api/index.php b/sites/epictravelexpeditions.com/public_html/api/index.php new file mode 100644 index 0000000..a1c8e4d --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/api/index.php @@ -0,0 +1,79 @@ + 'Epic Travel API is running', + 'status' => 'healthy' + ]); +} + +// Route to appropriate handler +try { + switch ($resource) { + case 'auth': + require __DIR__ . '/api/auth.php'; + break; + + case 'destinations': + require __DIR__ . '/api/destinations.php'; + break; + + case 'specials': + require __DIR__ . '/api/specials.php'; + break; + + case 'contact': + require __DIR__ . '/api/contact.php'; + break; + + case 'newsletter': + require __DIR__ . '/api/newsletter.php'; + break; + + case 'upload': + require __DIR__ . '/api/upload.php'; + break; + + case 'testimonials': + require __DIR__ . '/api/testimonials.php'; + break; + + case 'categories': + require __DIR__ . '/api/categories.php'; + break; + + default: + jsonResponse(['error' => 'Endpoint not found'], 404); + } +} catch (Exception $e) { + if (DEBUG_MODE) { + jsonResponse(['error' => $e->getMessage()], 500); + } else { + jsonResponse(['error' => 'Internal server error'], 500); + } +} diff --git a/sites/epictravelexpeditions.com/public_html/asset-manifest.json b/sites/epictravelexpeditions.com/public_html/asset-manifest.json new file mode 100644 index 0000000..c2c6425 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/asset-manifest.json @@ -0,0 +1,13 @@ +{ + "files": { + "main.css": "/static/css/main.7791f349.css", + "main.js": "/static/js/main.b20df6de.js", + "index.html": "/index.html", + "main.7791f349.css.map": "/static/css/main.7791f349.css.map", + "main.b20df6de.js.map": "/static/js/main.b20df6de.js.map" + }, + "entrypoints": [ + "static/css/main.7791f349.css", + "static/js/main.b20df6de.js" + ] +} \ No newline at end of file diff --git a/sites/epictravelexpeditions.com/public_html/assets/og-image.jpg b/sites/epictravelexpeditions.com/public_html/assets/og-image.jpg new file mode 100644 index 0000000..2ed2b32 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/assets/og-image.jpg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + 🌎 + Epic Travel Expeditions + Adventure Awaits • Curated World Expeditions + Exclusive Destinations • Guided Tours • Unforgettable Journeys + + epictravelexpeditions.com + diff --git a/sites/epictravelexpeditions.com/public_html/composer.json b/sites/epictravelexpeditions.com/public_html/composer.json new file mode 100644 index 0000000..72d8e3f --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/composer.json @@ -0,0 +1,14 @@ +{ + "name": "epic-travel/expeditions", + "description": "Epic Travel & Expeditions Website", + "type": "project", + "require": { + "php": ">=7.4.0" + }, + "config": { + "platform": { + "php": "8.0" + }, + "optimize-autoloader": true + } +} diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf new file mode 100755 index 0000000..dcad4de --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf @@ -0,0 +1,91 @@ +docRoot /home/epictravelexpeditions.com/parkerslingshot +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@epictravelexpeditions.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +scripthandler { + add lsapi:epict63871534 php +} + +extprocessor epict63871534 { + type lsapi + address UDS://tmp/lshttpd/epict63871534.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 60 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser epict6387 + extGroup epict6387 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem + certFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf.txt b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf.txt new file mode 100755 index 0000000..c85a3fe --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf.txt @@ -0,0 +1,85 @@ +enablegzip 1 +docroot /home/epictravelexpeditions.com/parkerslingshot +vhdomain $VH_NAME +phpinioverride +vhaliases www.$VH_NAME +enableipgeo 1 +adminemails admin@epictravelexpeditions.com + +errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log { + rollingsize 10M + loglevel WARN + useserver 0 +} + +rewrite { + autoloadhtaccess 1 + enable 1 +} + +scripthandler { + add lsapi:epict63871534 php +} + +extprocessor epict63871534 { + extgroup epict6387 + memsoftlimit 1024M + autostart 1 + prochardlimit 500 + address UDS://tmp/lshttpd/epict63871534.sock + maxconns 10 + memhardlimit 1024M + procsoftlimit 400 + inittimeout 60 + retrytimeout 0 + persistconn 1 + pckeepalivetimeout 1 + respbuffer 0 + path /usr/local/lsws/lsphp85/bin/lsphp + extuser epict6387 + type lsapi + env LSAPI_CHILDREN=10 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + adddefaultcharset off + phpinioverride + allowbrowse 1 + + rewrite { + enable 0 + } +} + +vhssl { + certchain 1 + sslprotocol 24 + enableecdhe 1 + keyfile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem + certfile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem + enablestapling 1 + ocsprespmaxage 86400 + renegprotection 1 + sslsessioncache 1 + enablespdy 15 +} + +module cache { + unknownkeywords storagepath /usr/local/lsws/cachedata/$VH_NAME + param storagepath /usr/local/lsws/cachedata/$VH_NAME +} + +index { + indexfiles index.php, index.html + useserver 0 +} + +accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log { + compressarchive 1 + logformat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + rollingsize 10M + keepdays 10 + useserver 0 + logheaders 5 +} diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0 b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0 new file mode 100755 index 0000000..dcad4de --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0 @@ -0,0 +1,91 @@ +docRoot /home/epictravelexpeditions.com/parkerslingshot +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@epictravelexpeditions.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +scripthandler { + add lsapi:epict63871534 php +} + +extprocessor epict63871534 { + type lsapi + address UDS://tmp/lshttpd/epict63871534.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 60 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser epict6387 + extGroup epict6387 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem + certFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0,v b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0,v new file mode 100755 index 0000000..7f8900c --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost-parkerslingshot/vhost.conf0,v @@ -0,0 +1,130 @@ +head 1.2; +access; +symbols; +locks + root:1.2; strict; +comment @# @; + + +1.2 +date 2026.05.17.04.47.56; author root; state Exp; +branches; +next 1.1; + +1.1 +date 2026.05.17.04.47.43; author root; state Exp; +branches; +next ; + + +desc +@/usr/local/lsws/conf/vhosts/parkerslingshot.epictravelexpeditions.com/vhost.conf0 +@ + + +1.2 +log +@Update +@ +text +@docRoot /home/epictravelexpeditions.com/parkerslingshot +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@@epictravelexpeditions.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +scripthandler { + add lsapi:epict63871534 php +} + +extprocessor epict63871534 { + type lsapi + address UDS://tmp/lshttpd/epict63871534.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 60 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser epict6387 + extGroup epict6387 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem + certFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} +@ + + +1.1 +log +@Update +@ +text +@d79 13 +@ diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf new file mode 100755 index 0000000..1e73e9d --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf @@ -0,0 +1,95 @@ +docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@epictravelexpeditions.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:epict6387 php +} + +extprocessor epict6387 { + type lsapi + address UDS://tmp/lshttpd/epict6387.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser epict6387 + extGroup epict6387 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem + certFile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} + + AllowOverride All + Require all granted + \ No newline at end of file diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf.txt b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf.txt new file mode 100755 index 0000000..d7fe048 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf.txt @@ -0,0 +1,86 @@ +vhdomain $VH_NAME +vhaliases www.$VH_NAME +enableipgeo 1 +enablegzip 1 +docroot $VH_ROOT/public_html +phpinioverride +allowoverride All +adminemails admin@epictravelexpeditions.com + +extprocessor epict6387 { + pckeepalivetimeout 1 + respbuffer 0 + memsoftlimit 1024M + memhardlimit 1024M + env LSAPI_CHILDREN=10 + inittimeout 600 + extuser epict6387 + extgroup epict6387 + type lsapi + address UDS://tmp/lshttpd/epict6387.sock + maxconns 10 + prochardlimit 500 + retrytimeout 0 + persistconn 1 + autostart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + procsoftlimit 400 +} + +context /.well-known/acme-challenge { + adddefaultcharset off + phpinioverride + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowbrowse 1 + + rewrite { + enable 0 + } +} + +rewrite { + enable 1 + autoloadhtaccess 1 +} + +module cache { + unknownkeywords storagepath /usr/local/lsws/cachedata/$VH_NAME + param storagepath /usr/local/lsws/cachedata/$VH_NAME +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + rollingsize 10M + keepdays 10 + compressarchive 1 + logformat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + useserver 0 + logheaders 5 +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useserver 0 + rollingsize 10M + loglevel WARN +} + +scripthandler { + add lsapi:epict6387 php +} + +index { + indexfiles index.php, index.html + useserver 0 +} + +vhssl { + certchain 1 + sslprotocol 24 + enableecdhe 1 + renegprotection 1 + sslsessioncache 1 + enablespdy 15 + enablestapling 1 + ocsprespmaxage 86400 + keyfile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem + certfile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem +} diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0 b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0 new file mode 100755 index 0000000..1e73e9d --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0 @@ -0,0 +1,95 @@ +docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@epictravelexpeditions.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:epict6387 php +} + +extprocessor epict6387 { + type lsapi + address UDS://tmp/lshttpd/epict6387.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser epict6387 + extGroup epict6387 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem + certFile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} + + AllowOverride All + Require all granted + \ No newline at end of file diff --git a/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0,v b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0,v new file mode 100755 index 0000000..4c3bd44 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/config/vhost/vhost.conf0,v @@ -0,0 +1,147 @@ +head 1.3; +access; +symbols; +locks + root:1.3; strict; +comment @# @; + + +1.3 +date 2026.05.15.22.32.23; author root; state Exp; +branches; +next 1.2; + +1.2 +date 2026.05.15.20.10.31; author root; state Exp; +branches; +next 1.1; + +1.1 +date 2026.05.15.20.10.01; author root; state Exp; +branches; +next ; + + +desc +@/usr/local/lsws/conf/vhosts/epictravelexpeditions.com/vhost.conf0 +@ + + +1.3 +log +@Update +@ +text +@docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@@epictravelexpeditions.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:epict6387 php +} + +extprocessor epict6387 { + type lsapi + address UDS://tmp/lshttpd/epict6387.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser epict6387 + extGroup epict6387 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem + certFile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} + + AllowOverride All + Require all granted +@ + + +1.2 +log +@Update +@ +text +@d92 4 +@ + + +1.1 +log +@Update +@ +text +@d79 13 +@ diff --git a/sites/epictravelexpeditions.com/public_html/db/schema.sql b/sites/epictravelexpeditions.com/public_html/db/schema.sql new file mode 100644 index 0000000..062b909 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/db/schema.sql @@ -0,0 +1,123 @@ +/*M!999999\- enable the sandbox mode */ + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +DROP TABLE IF EXISTS `admin_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_users` ( + `id` varchar(36) NOT NULL, + `email` varchar(255) NOT NULL, + `password_hash` varchar(255) NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`), + KEY `idx_email` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `contacts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contacts` ( + `id` varchar(36) NOT NULL, + `name` varchar(255) NOT NULL, + `email` varchar(255) NOT NULL, + `message` text NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `destination_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `destination_categories` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `destinations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `destinations` ( + `id` varchar(36) NOT NULL, + `name` varchar(255) NOT NULL, + `location` varchar(255) NOT NULL, + `description` text NOT NULL, + `image` varchar(500) NOT NULL, + `category` varchar(50) NOT NULL, + `rating` decimal(2,1) NOT NULL DEFAULT 4.5, + `price` decimal(10,2) NOT NULL, + `currency` varchar(3) NOT NULL DEFAULT 'USD', + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_category` (`category`), + KEY `idx_name` (`name`), + KEY `idx_location` (`location`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `newsletter_subscribers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `newsletter_subscribers` ( + `id` varchar(36) NOT NULL, + `email` varchar(255) NOT NULL, + `subscribed_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`), + KEY `idx_email` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `specials`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `specials` ( + `id` varchar(36) NOT NULL, + `destination_id` varchar(36) NOT NULL, + `discount` decimal(5,2) NOT NULL, + `price` decimal(10,2) DEFAULT NULL, + `end_date` date NOT NULL, + `highlights` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`highlights`)), + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `image_path` varchar(500) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_destination` (`destination_id`), + KEY `idx_end_date` (`end_date`), + CONSTRAINT `specials_ibfk_1` FOREIGN KEY (`destination_id`) REFERENCES `destinations` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `testimonials`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `testimonials` ( + `id` varchar(36) NOT NULL, + `full_name` varchar(255) NOT NULL, + `location` varchar(255) NOT NULL, + `message` text NOT NULL, + `image_path` varchar(500) DEFAULT NULL, + `status` enum('pending','approved','denied') NOT NULL DEFAULT 'pending', + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + diff --git a/sites/epictravelexpeditions.com/public_html/index.html b/sites/epictravelexpeditions.com/public_html/index.html new file mode 100644 index 0000000..0f8c102 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/index.html @@ -0,0 +1,18 @@ +Epic Travel Expeditions | Adventure Awaits + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/sites/epictravelexpeditions.com/public_html/robots.txt b/sites/epictravelexpeditions.com/public_html/robots.txt new file mode 100644 index 0000000..7014030 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Allow: / +Disallow: /admin +Disallow: /api/ + +Sitemap: https://epictravelexpeditions.com/sitemap.xml diff --git a/sites/epictravelexpeditions.com/public_html/sitemap.xml b/sites/epictravelexpeditions.com/public_html/sitemap.xml new file mode 100644 index 0000000..e8c09b2 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/sitemap.xml @@ -0,0 +1,30 @@ + + + + https://epictravelexpeditions.com/ + 2026-05-19 + weekly + 1.0 + + + https://epictravelexpeditions.com/destinations + 2026-05-19 + weekly + 0.9 + + + https://epictravelexpeditions.com/specials + 2026-05-19 + daily + 0.8 + + + https://epictravelexpeditions.com/contact + 2026-05-19 + monthly + 0.6 + + diff --git a/sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css b/sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css new file mode 100644 index 0000000..ec56952 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css @@ -0,0 +1,4 @@ +*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/* +! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com +*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:0 0% 89.8%;--input:0 0% 89.8%;--ring:0 0% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius:0.5rem}*{border-color:#e5e5e5;border-color:hsl(var(--border))}body{background-color:#fff;background-color:hsl(var(--background));color:#0a0a0a;color:hsl(var(--foreground))}[data-debug-wrapper=true]{display:contents!important}[data-debug-wrapper=true]>*{border:inherit;column-gap:inherit;gap:inherit;margin:inherit;padding:inherit;row-gap:inherit}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[90vh\]{max-height:90vh}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-screen{max-height:100vh}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-full{width:100%}.w-max{width:-webkit-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-lg{max-width:32rem}.max-w-max{max-width:-webkit-max-content;max-width:max-content}.max-w-md{max-width:28rem}.flex-1{flex:1 1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-hover-card-content-transform-origin\]{transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\[--radix-menubar-content-transform-origin\]{transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.rotate-45{--tw-rotate:45deg}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded-2xl{border-radius:1rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem;border-radius:var(--radius)}.rounded-md{border-radius:calc(.5rem - 2px);border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(.5rem - 4px);border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:calc(.5rem - 4px);border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-destructive{border-color:#ef4444;border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:#ef444480;border-color:hsl(var(--destructive)/.5)}.border-gray-700{--tw-border-opacity:1;border-color:#374151;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.border-input{border-color:#e5e5e5;border-color:hsl(var(--input))}.border-primary{border-color:#171717;border-color:hsl(var(--primary))}.border-primary\/50{border-color:#17171780;border-color:hsl(var(--primary)/.5)}.border-red-200{--tw-border-opacity:1;border-color:#fecaca;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:#ef4444;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.border-white{--tw-border-opacity:1;border-color:#fff;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-white\/30{border-color:#ffffff4d}.border-l-transparent{border-left-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-accent{background-color:#f5f5f5;background-color:hsl(var(--accent))}.bg-background{background-color:#fff;background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:#e5e5e5;background-color:hsl(var(--border))}.bg-card{background-color:#fff;background-color:hsl(var(--card))}.bg-cyan-600{--tw-bg-opacity:1;background-color:#0891b2;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-destructive{background-color:#ef4444;background-color:hsl(var(--destructive))}.bg-foreground{background-color:#0a0a0a;background-color:hsl(var(--foreground))}.bg-gray-50{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-700{--tw-bg-opacity:1;background-color:#374151;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.bg-muted{background-color:#f5f5f5;background-color:hsl(var(--muted))}.bg-muted\/50{background-color:#f5f5f580;background-color:hsl(var(--muted)/.5)}.bg-popover{background-color:#fff;background-color:hsl(var(--popover))}.bg-primary{background-color:#171717;background-color:hsl(var(--primary))}.bg-primary\/10{background-color:#1717171a;background-color:hsl(var(--primary)/.1)}.bg-primary\/20{background-color:#17171733;background-color:hsl(var(--primary)/.2)}.bg-red-500{--tw-bg-opacity:1;background-color:#ef4444;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-secondary{background-color:#f5f5f5;background-color:hsl(var(--secondary))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/20{background-color:#fff3}.bg-white\/95{background-color:#fffffff2}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:#eff6ff var(--tw-gradient-from-position);--tw-gradient-to:#eff6ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-50{--tw-gradient-from:#ecfeff var(--tw-gradient-from-position);--tw-gradient-to:#ecfeff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from:#06b6d4 var(--tw-gradient-from-position);--tw-gradient-to:#06b6d400 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-600{--tw-gradient-from:#0891b2 var(--tw-gradient-from-position);--tw-gradient-to:#0891b200 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-900\/80{--tw-gradient-from:#164e63cc var(--tw-gradient-from-position);--tw-gradient-to:#164e6300 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-900{--tw-gradient-from:#111827 var(--tw-gradient-from-position);--tw-gradient-to:#11182700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.to-blue-50{--tw-gradient-to:#eff6ff var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-blue-700{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.to-blue-900\/70{--tw-gradient-to:#1e3a8ab3 var(--tw-gradient-to-position)}.to-cyan-50{--tw-gradient-to:#ecfeff var(--tw-gradient-to-position)}.to-gray-800{--tw-gradient-to:#1f2937 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.fill-primary{fill:#171717;fill:hsl(var(--primary))}.fill-yellow-400{fill:#facc15}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:#171717;color:hsl(var(--accent-foreground))}.text-card-foreground{color:#0a0a0a;color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-100{--tw-text-opacity:1;color:#cffafe;color:rgb(207 250 254/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:#22d3ee;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-cyan-50{--tw-text-opacity:1;color:#ecfeff;color:rgb(236 254 255/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:#0891b2;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-destructive{color:#ef4444;color:hsl(var(--destructive))}.text-destructive-foreground{color:#fafafa;color:hsl(var(--destructive-foreground))}.text-foreground{color:#0a0a0a;color:hsl(var(--foreground))}.text-foreground\/50{color:#0a0a0a80;color:hsl(var(--foreground)/.5)}.text-gray-300{--tw-text-opacity:1;color:#d1d5db;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:#374151;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-muted-foreground{color:#737373;color:hsl(var(--muted-foreground))}.text-popover-foreground{color:#0a0a0a;color:hsl(var(--popover-foreground))}.text-primary{color:#171717;color:hsl(var(--primary))}.text-primary-foreground{color:#fafafa;color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-secondary-foreground{color:#171717;color:hsl(var(--secondary-foreground))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:#facc15;color:rgb(250 204 21/var(--tw-text-opacity,1))}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-duration:.15s;animation-name:enter}.fade-in,.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.slide-in-from-bottom{--tw-enter-translate-y:100%}.slide-in-from-top{--tw-enter-translate-y:-100%}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.file\:border-0::-webkit-file-upload-button{border-width:0}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::-webkit-file-upload-button{background-color:initial}.file\:bg-transparent::file-selector-button{background-color:initial}.file\:text-sm::-webkit-file-upload-button{font-size:.875rem;line-height:1.25rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::-webkit-file-upload-button{font-weight:500}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::-webkit-file-upload-button{color:#0a0a0a;color:hsl(var(--foreground))}.file\:text-foreground::file-selector-button{color:#0a0a0a;color:hsl(var(--foreground))}.placeholder\:text-cyan-100::placeholder{--tw-text-opacity:1;color:#cffafe;color:rgb(207 250 254/var(--tw-text-opacity,1))}.placeholder\:text-muted-foreground::placeholder{color:#737373;color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{bottom:0;content:var(--tw-content);top:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:-translate-x-1\/2:after{--tw-translate-x:-50%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-bottom-left-radius:calc(.5rem - 2px);border-bottom-left-radius:calc(var(--radius) - 2px);border-top-left-radius:calc(.5rem - 2px);border-top-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-bottom-right-radius:calc(.5rem - 2px);border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(.5rem - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:bg-accent:hover{background-color:#f5f5f5;background-color:hsl(var(--accent))}.hover\:bg-cyan-50:hover{--tw-bg-opacity:1;background-color:#ecfeff;background-color:rgb(236 254 255/var(--tw-bg-opacity,1))}.hover\:bg-cyan-600:hover{--tw-bg-opacity:1;background-color:#0891b2;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.hover\:bg-cyan-700:hover{--tw-bg-opacity:1;background-color:#0e7490;background-color:rgb(14 116 144/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/80:hover{background-color:#ef4444cc;background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:#ef4444e6;background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:#f5f5f5;background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:#f5f5f580;background-color:hsl(var(--muted)/.5)}.hover\:bg-primary:hover{background-color:#171717;background-color:hsl(var(--primary))}.hover\:bg-primary\/80:hover{background-color:#171717cc;background-color:hsl(var(--primary)/.8)}.hover\:bg-primary\/90:hover{background-color:#171717e6;background-color:hsl(var(--primary)/.9)}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-secondary:hover{background-color:#f5f5f5;background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:#f5f5f5cc;background-color:hsl(var(--secondary)/.8)}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:text-accent-foreground:hover{color:#171717;color:hsl(var(--accent-foreground))}.hover\:text-cyan-400:hover{--tw-text-opacity:1;color:#22d3ee;color:rgb(34 211 238/var(--tw-text-opacity,1))}.hover\:text-cyan-600:hover{--tw-text-opacity:1;color:#0891b2;color:rgb(8 145 178/var(--tw-text-opacity,1))}.hover\:text-foreground:hover{color:#0a0a0a;color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:#737373;color:hsl(var(--muted-foreground))}.hover\:text-primary-foreground:hover{color:#fafafa;color:hsl(var(--primary-foreground))}.hover\:underline:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.hover\:shadow-2xl:hover,.hover\:shadow-xl:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.focus\:bg-accent:focus{background-color:#f5f5f5;background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:#171717;background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:#171717;color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:#fafafa;color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:#f5f5f566;border-color:hsl(var(--muted)/.4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:#e5e5e5;border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:#f5f5f5;background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:#171717;background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:#fff;background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:#fca5a5;color:rgb(252 165 165/var(--tw-text-opacity,1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:#737373;color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:#fafafa;color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:#0a0a0a;color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:#ef44444d;border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:#ef4444;background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:#fafafa;color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:#fef2f2;color:rgb(254 242 242/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:#f5f5f5;background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:#f5f5f580;background-color:hsl(var(--accent)/.5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:#171717;color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:#737373;color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end],.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x)}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:#f5f5f5;background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:#fff;background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:#171717;background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:#f5f5f5;background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:#f5f5f580;background-color:hsl(var(--accent)/.5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:#f5f5f5;background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:#f5f5f5;background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:#e5e5e5;background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:#737373;color:hsl(var(--muted-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:#171717;color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:#0a0a0a;color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:#fafafa;color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:#171717;color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:#737373;color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-duration:.15s;animation-name:enter}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-duration:.15s;animation-name:exit}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:-13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:-13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{--tw-translate-y:-50%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{--tw-translate-x:0px;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open],.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{background-color:#f5f5f5;background-color:hsl(var(--accent))}.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:border-destructive:is(.dark *){border-color:#ef4444;border-color:hsl(var(--destructive))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mt-0{margin-top:0}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:rounded-lg{border-radius:.5rem;border-radius:var(--radius)}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-96{width:24rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:p-12{padding:3rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end){border-bottom-right-radius:calc(.5rem - 2px);border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(.5rem - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start){border-bottom-left-radius:calc(.5rem - 2px);border-bottom-left-radius:calc(var(--radius) - 2px);border-top-left-radius:calc(.5rem - 2px);border-top-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]){border-radius:calc(.5rem - 2px);border-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:#f5f5f5;background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-bottom-left-radius:calc(.5rem - 2px);border-bottom-left-radius:calc(var(--radius) - 2px);border-top-left-radius:calc(.5rem - 2px);border-top-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-bottom-right-radius:calc(.5rem - 2px);border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(.5rem - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:#f5f5f580;background-color:hsl(var(--accent)/.5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-bottom-right-radius:calc(.5rem - 2px);border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(.5rem - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>span\]\:line-clamp-1>span{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{height:1rem;width:1rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:#ef4444;color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:#0a0a0a;color:hsl(var(--foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate:90deg}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div,.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-bottom:.375rem;padding-top:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:#737373;color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-bottom:.75rem;padding-top:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{height:1rem;width:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#0f0f10;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} +/*# sourceMappingURL=main.7791f349.css.map*/ \ No newline at end of file diff --git a/sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css.map b/sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css.map new file mode 100644 index 0000000..f554559 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/static/css/main.7791f349.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.7791f349.css","mappings":"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","sources":["index.css","App.css"],"sourcesContent":["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nbody {\n margin: 0;\n font-family:\n -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family:\n source-code-pro, Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\n\n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 0 0% 3.9%;\n --card: 0 0% 100%;\n --card-foreground: 0 0% 3.9%;\n --popover: 0 0% 100%;\n --popover-foreground: 0 0% 3.9%;\n --primary: 0 0% 9%;\n --primary-foreground: 0 0% 98%;\n --secondary: 0 0% 96.1%;\n --secondary-foreground: 0 0% 9%;\n --muted: 0 0% 96.1%;\n --muted-foreground: 0 0% 45.1%;\n --accent: 0 0% 96.1%;\n --accent-foreground: 0 0% 9%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n --border: 0 0% 89.8%;\n --input: 0 0% 89.8%;\n --ring: 0 0% 3.9%;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n --radius: 0.5rem;\n }\n .dark {\n --background: 0 0% 3.9%;\n --foreground: 0 0% 98%;\n --card: 0 0% 3.9%;\n --card-foreground: 0 0% 98%;\n --popover: 0 0% 3.9%;\n --popover-foreground: 0 0% 98%;\n --primary: 0 0% 98%;\n --primary-foreground: 0 0% 9%;\n --secondary: 0 0% 14.9%;\n --secondary-foreground: 0 0% 98%;\n --muted: 0 0% 14.9%;\n --muted-foreground: 0 0% 63.9%;\n --accent: 0 0% 14.9%;\n --accent-foreground: 0 0% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 0% 98%;\n --border: 0 0% 14.9%;\n --input: 0 0% 14.9%;\n --ring: 0 0% 83.1%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}\n\n@layer base {\n [data-debug-wrapper=\"true\"] {\n display: contents !important;\n }\n\n [data-debug-wrapper=\"true\"] > * {\n margin-left: inherit;\n margin-right: inherit;\n margin-top: inherit;\n margin-bottom: inherit;\n padding-left: inherit;\n padding-right: inherit;\n padding-top: inherit;\n padding-bottom: inherit;\n column-gap: inherit;\n row-gap: inherit;\n gap: inherit;\n border-left-width: inherit;\n border-right-width: inherit;\n border-top-width: inherit;\n border-bottom-width: inherit;\n border-left-style: inherit;\n border-right-style: inherit;\n border-top-style: inherit;\n border-bottom-style: inherit;\n border-left-color: inherit;\n border-right-color: inherit;\n border-top-color: inherit;\n border-bottom-color: inherit;\n }\n}\n",".App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n background-color: #0f0f10;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n}\n\n.App-link {\n color: #61dafb;\n}\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"],"names":[],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/sites/epictravelexpeditions.com/public_html/static/js/admin-portal-v2.js b/sites/epictravelexpeditions.com/public_html/static/js/admin-portal-v2.js new file mode 100644 index 0000000..d6961ba --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/static/js/admin-portal-v2.js @@ -0,0 +1,541 @@ +(function(){ +'use strict'; +const API='https://epictravelexpeditions.com/api'; + +function authHdr(){return{'Content-Type':'application/json',Authorization:`Bearer ${localStorage.getItem('auth_token')}`};} +async function api(path,opts){ + const res=await fetch(API+path,{headers:authHdr(),...opts}); + const d=await res.json(); + if(!res.ok)throw new Error(d.error||res.statusText); + return d; +} +async function uploadImg(file){ + const fd=new FormData();fd.append('file',file); + const res=await fetch(API+'/upload/image',{method:'POST',headers:{Authorization:`Bearer ${localStorage.getItem('auth_token')}`},body:fd}); + const d=await res.json(); + if(!res.ok)throw new Error(d.error||'Upload failed'); + return d.url; +} +async function getImg(inputId,fallback){ + const el=document.getElementById(inputId); + if(el&&el.files&&el.files[0]){ + const st=document.getElementById(inputId+'-st'); + if(st)st.textContent='Uploading…'; + try{const url=await uploadImg(el.files[0]);if(st)st.textContent='';return url;} + catch(e){if(st){st.textContent='Upload failed: '+e.message;st.style.color='#dc2626';}throw e;} + } + return fallback!=null?fallback:null; +} +function imgPicker(id,src){ + const pr=src + ?`` + :`
🖼
`; + return `
${pr}
`; +} + +function daysAgo(s){return Math.floor((Date.now()-new Date(s))/86400000);} +function daysLeft(s){return Math.ceil((new Date(s)-Date.now())/86400000);} +function ageBdg(d){const c=d<30?'bg':d<90?'by':'br';return`${d}d ago`;} +function expBdg(d){if(d<0)return`Expired`;const c=d>14?'bg':d>7?'by':'br';return`${d}d left`;} +function esc(s){const e=document.createElement('div');e.textContent=s||'';return e.innerHTML;} +function catOpts(cats,sel){return cats.map(c=>``).join('');} +function fmtPrice(p){return p!=null?'$'+parseFloat(p).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2}):'';} + +/* CSS */ +const css=` +#ep-portal{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#111827;min-height:100vh;background:#f3f4f6} +#ep-portal *,#ep-portal *::before,#ep-portal *::after{box-sizing:border-box} +#ep-hdr{background:#fff;border-bottom:1px solid #e5e7eb;padding:0 28px;height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 1px 3px rgba(0,0,0,.06)} +.ep-logo{font-size:17px;font-weight:800;color:#1d4ed8;letter-spacing:-.4px}.ep-logo span{color:#6b7280;font-weight:400} +.ep-hdr-acts{display:flex;gap:8px} +.ep-hbtn{padding:6px 14px;border-radius:7px;font-size:13px;font-weight:600;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;transition:all .15s;text-decoration:none;display:inline-flex;align-items:center;gap:5px} +.ep-hbtn:hover{background:#f9fafb}.ep-hbtn.red{border-color:#fca5a5;color:#dc2626}.ep-hbtn.red:hover{background:#fef2f2} +#ep-tabs{background:#fff;border-bottom:1px solid #e5e7eb;padding:0 28px;display:flex;gap:2px} +.ep-tab{padding:13px 18px;font-size:13px;font-weight:600;color:#6b7280;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;display:inline-flex;align-items:center;gap:7px} +.ep-tab:hover{color:#1d4ed8}.ep-tab.active{color:#1d4ed8;border-bottom-color:#1d4ed8} +.ep-tbadge{background:#fee2e2;color:#dc2626;border-radius:999px;font-size:11px;padding:1px 6px;font-weight:700} +#ep-body{padding:28px;max-width:1180px;margin:0 auto} +.ep-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px} +@media(max-width:880px){.ep-g4{grid-template-columns:repeat(2,1fr)}} +.ep-stat{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 22px;position:relative;overflow:hidden} +.ep-si{font-size:26px;margin-bottom:6px}.ep-sv{font-size:30px;font-weight:800;color:#111827}.ep-sl{font-size:12px;color:#6b7280;margin-top:1px} +.ep-acc{position:absolute;right:0;top:0;bottom:0;width:4px;border-radius:0 12px 12px 0} +.acb{background:#3b82f6}.acg{background:#10b981}.aca{background:#f59e0b}.acp{background:#8b5cf6} +.ep-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:22px;overflow:hidden} +.ep-ch{padding:16px 22px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px} +.ep-ct{font-size:14px;font-weight:700;color:#111827}.ep-cs{font-size:12px;color:#6b7280;margin-top:1px} +.ep-cb{padding:22px} +.ep-tbl{width:100%;border-collapse:collapse;font-size:13px} +.ep-tbl th{text-align:left;font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;padding:9px 12px;border-bottom:1px solid #e5e7eb;white-space:nowrap} +.ep-tbl td{padding:11px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle} +.ep-tbl tr:last-child td{border-bottom:none}.ep-tbl tr:hover td{background:#fafafa} +.ep-b{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700} +.bg{background:#d1fae5;color:#065f46}.by{background:#fef3c7;color:#92400e}.br{background:#fee2e2;color:#991b1b}.bb{background:#dbeafe;color:#1e40af}.bgr{background:#f3f4f6;color:#374151} +.ep-btn{padding:6px 13px;border-radius:7px;font-size:12px;font-weight:600;border:none;cursor:pointer;transition:opacity .15s;display:inline-flex;align-items:center;gap:4px;white-space:nowrap} +.ep-btn:hover{opacity:.82}.ep-btn:disabled{opacity:.4;cursor:not-allowed} +.ep-pri{background:#2563eb;color:#fff}.ep-suc{background:#16a34a;color:#fff}.ep-dan{background:#dc2626;color:#fff}.ep-gho{background:#f3f4f6;color:#374151} +.ep-form{display:grid;grid-template-columns:1fr 1fr;gap:14px} +@media(max-width:640px){.ep-form{grid-template-columns:1fr}} +.ep-full{grid-column:1/-1}.ep-fld{display:flex;flex-direction:column;gap:4px} +.ep-lbl{font-size:11px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.04em} +.ep-inp,.ep-sel,.ep-ta{padding:8px 11px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;color:#111827;background:#fff;outline:none;transition:border-color .15s;width:100%} +.ep-inp:focus,.ep-sel:focus,.ep-ta:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)} +.ep-ta{resize:vertical;min-height:72px} +.ep-frow{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-end;padding-top:4px;align-items:center} +.ep-addbox{border:1px dashed #d1d5db;border-radius:10px;padding:18px;margin-bottom:20px;background:#fafafa;display:none} +.ep-addbox.open{display:block} +.ep-thumb{width:40px;height:40px;border-radius:7px;object-fit:cover;background:#e5e7eb} +.ep-smsg{font-size:12px}.ep-smsg.ok{color:#16a34a}.ep-smsg.err{color:#dc2626} +.ep-alert{padding:10px 15px;border-radius:8px;font-size:13px;margin-bottom:16px;border-left:3px solid} +.ep-alert.warn{background:#fffbeb;color:#92400e;border-color:#f59e0b} +.ep-inline{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px} +@media(max-width:640px){.ep-inline{grid-column:1fr}} +.ep-cat-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;margin-bottom:8px} +.ep-cat-nm{flex:1;font-size:13px;font-weight:600}.ep-cat-ct{font-size:11px;color:#9ca3af} +.ep-cat-ei{flex:1;padding:5px 9px;border:1px solid #3b82f6;border-radius:6px;font-size:13px;outline:none} +.ep-tc{border:1px solid #e5e7eb;border-radius:10px;padding:16px;margin-bottom:12px;display:flex;gap:12px;background:#fff} +.ep-tav{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#e5e7eb} +.ep-tavph{width:42px;height:42px;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0} +.ep-tb{flex:1;min-width:0}.ep-tn{font-weight:700;font-size:13px}.ep-tl{font-size:11px;color:#6b7280;margin-bottom:5px} +.ep-tm{font-size:13px;color:#374151;margin-bottom:8px;line-height:1.5} +.ep-te{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:6px 9px;font-size:12px;margin-bottom:7px;resize:vertical;min-height:52px} +.ep-tacts{display:flex;gap:7px;flex-wrap:wrap} +.ep-ftabs{display:flex;gap:7px;margin-bottom:18px;flex-wrap:wrap} +.ep-ft{padding:6px 15px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#374151;transition:all .15s} +.ep-ft.active{background:#2563eb;color:#fff;border-color:#2563eb} +.ep-empty{text-align:center;padding:36px;color:#9ca3af;font-size:13px} +.ep-spec-img{width:52px;height:52px;border-radius:8px;object-fit:cover;background:#e5e7eb;flex-shrink:0} +.ep-price-old{text-decoration:line-through;color:#9ca3af;font-size:11px} +.ep-price-new{color:#16a34a;font-weight:700} +`; +const sel=document.createElement('style');sel.textContent=css;document.head.appendChild(sel); + +/* State */ +let activeTab='dashboard',tFilter='pending'; +let destinations=[],specials=[],testimonials=[],categories=[]; + +async function loadAll(){ + const r=await Promise.allSettled([ + fetch(API+'/destinations',{headers:authHdr()}).then(r=>r.json()), + fetch(API+'/specials', {headers:authHdr()}).then(r=>r.json()), + fetch(API+'/testimonials/all',{headers:authHdr()}).then(r=>r.json()), + fetch(API+'/categories', {headers:authHdr()}).then(r=>r.json()) + ]); + if(r[0].status==='fulfilled'&&Array.isArray(r[0].value))destinations=r[0].value; + if(r[1].status==='fulfilled'&&Array.isArray(r[1].value))specials=r[1].value; + if(r[2].status==='fulfilled'&&Array.isArray(r[2].value))testimonials=r[2].value; + if(r[3].status==='fulfilled'&&Array.isArray(r[3].value))categories=r[3].value; +} + +/* Shell */ +function buildShell(){ + const p=document.createElement('div');p.id='ep-portal'; + p.innerHTML=` +
+ +
+ 🌐 View Site + +
+
+
+ + + + +
+
`; + p.querySelector('#ep-logout').onclick=()=>{localStorage.removeItem('isAdminAuthenticated');localStorage.removeItem('auth_token');window.location.href='/admin';}; + p.querySelectorAll('.ep-tab[data-tab]').forEach(b=>{b.onclick=()=>{activeTab=b.dataset.tab;p.querySelectorAll('.ep-tab').forEach(t=>t.classList.remove('active'));b.classList.add('active');render();};}); + return p; +} + +/* Dashboard */ +function rDash(){ + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const pen=testimonials.filter(t=>t.status==='pending').length; + const app=testimonials.filter(t=>t.status==='approved').length; + let h=`
+
🗺
${destinations.length}
Destinations
+
${specials.length}
Active Specials
+
${pen}
Pending Reviews
+
${app}
Approved Testimonials
+
`; + if(pen>0)h+=`
⚠️ ${pen} testimonial${pen>1?'s':''} awaiting review.
`; + + /* Destinations age */ + const sd=[...destinations].sort((a,b)=>new Date(a.created_at)-new Date(b.created_at)); + h+=`
🗺 Destinations
Oldest entries first
`; + sd.forEach(d=>{h+=``;}); + h+=`
DestinationCategoryPriceIn System Since
${esc(d.name)} ${esc(d.location)}${esc(d.category)}${fmtPrice(d.price)}${ageBdg(daysAgo(d.created_at))}
`; + + /* Specials expiry */ + const ss=[...specials].sort((a,b)=>new Date(a.end_date)-new Date(b.end_date)); + h+=`
⭐ Weekly Specials
Expiring soonest first
`; + ss.forEach(s=>{ + const dest=dm[s.destination_id]; + const basePrice=s.price!=null?parseFloat(s.price):(dest?parseFloat(dest.price):0); + const salePrice=basePrice*(1-parseFloat(s.discount)/100); + const imgSrc=s.image_path||(dest?dest.image:''); + h+=` + + + + + + + + `; + }); + h+=`
ImageDestinationOriginal PriceDiscountSale PriceExpiresStatus
${imgSrc?``:''}${esc(dest?dest.name:s.destination_id)}${fmtPrice(basePrice)}${parseFloat(s.discount)}% OFF${fmtPrice(salePrice)}${new Date(s.end_date).toLocaleDateString()}${expBdg(daysLeft(s.end_date))}
`; + + /* Pending testimonials */ + const pl=testimonials.filter(t=>t.status==='pending'); + if(pl.length){ + h+=`
⏳ Pending Testimonials
`; + pl.forEach(t=>{ + const av=t.image_path?``:`
${esc(t.full_name.charAt(0))}
`; + h+=`
${av}
${esc(t.full_name)}
${esc(t.location)}
${esc(t.message)}
`; + }); + h+=`
`; + } + return h; +} + +/* Destinations */ +function destRow(d){ + return` + + ${esc(d.name)}
${esc(d.location)} + ${esc(d.category)} + ${fmtPrice(d.price)} + ⭐ ${parseFloat(d.rating).toFixed(1)} + ${ageBdg(daysAgo(d.created_at))} + + `; +} + +function rDest(){ + const cc={};destinations.forEach(d=>{cc[d.category]=(cc[d.category]||0)+1;}); + return`
+
🏷 Categories
Add, rename, or remove destination categories
+
+
+
+ + + + +
+
+
${categories.map(c=>{const n=cc[c.name]||0;return`
${esc(c.name)}${n} destination${n!==1?'s':''}
`;}).join('')}
+
+
+
+
🗺 All Destinations (${destinations.length})
+
+
+
New Destination
+
+
Name *
+
Location *
+
Category *
+
Price (USD) *
+
Rating (1–5)
+
Image *${imgPicker('ep-dn-img','')}
+
Description *
+
+
+
+ + ${destinations.map(destRow).join('')}
PhotoName & LocationCategoryPriceRatingIn SystemActions
+
+
`; +} + +/* Specials */ +function specImg(s){ + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const dest=dm[s.destination_id]; + return s.image_path||(dest?dest.image:'')||''; +} +function specRow(s){ + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const dest=dm[s.destination_id]; + const base=s.price!=null?parseFloat(s.price):(dest?parseFloat(dest.price):0); + const sale=base*(1-parseFloat(s.discount)/100); + const img=specImg(s); + return` + ${img?``:''} + ${esc(dest?dest.name:s.destination_id)} + ${parseFloat(s.discount)}% OFF + ${fmtPrice(base)} + ${fmtPrice(sale)} + ${new Date(s.end_date).toLocaleDateString()} + ${expBdg(daysLeft(s.end_date))} + + `; +} + +function rSpec(){ + const destOpts=destinations.map(d=>``).join(''); + return`
+
⭐ Weekly Specials (${specials.length})
+
+
+
New Special
+
+
Destination *
+
Original Price (USD) *
+
Discount % *
+
End Date *
+
Special Image (optional — defaults to destination photo)${imgPicker('ep-sn-img','')}
+
Highlights (one per line)
+
+
+
+ + ${specials.map(specRow).join('')}
ImageDestinationDiscountOriginal PriceSale PriceEnd DateStatusActions
+
+
`; +} + +/* Testimonials */ +function rTest(){ + const cn={pending:0,approved:0,denied:0};testimonials.forEach(t=>cn[t.status]++); + const list=tFilter==='all'?testimonials:testimonials.filter(t=>t.status===tFilter); + let h=`
+ + + + +
`; + if(!list.length)return h+`
💬 No testimonials here.
`; + list.forEach(t=>{ + const av=t.image_path?``:`
${esc(t.full_name.charAt(0))}
`; + const sb=`${t.status}`; + h+=`
${av}
+
${esc(t.full_name)} ${sb}
${esc(t.location)}
+
${esc(t.message)}
+ +
+ ${t.status!=='approved'?``:''} + ${t.status!=='denied'?``:''} + + +
`; + }); + return h; +} + +/* Render */ +function render(){ + const body=document.getElementById('ep-body');if(!body)return; + switch(activeTab){ + case'dashboard': body.innerHTML=rDash(); wireDash(); break; + case'destinations':body.innerHTML=rDest(); wireDest(); break; + case'specials': body.innerHTML=rSpec(); wireSpec(); break; + case'testimonials':body.innerHTML=rTest(); wireTest(); break; + } + const pb=document.getElementById('ep-pb'); + if(pb){const n=testimonials.filter(t=>t.status==='pending').length;pb.textContent=n||'';pb.style.display=n?'':'none';} +} + +/* Wire: Dashboard */ +function wireDash(){ + document.querySelectorAll('[data-qa]').forEach(b=>b.onclick=async()=>{await api(`/testimonials/${b.dataset.qa}`,{method:'PUT',body:JSON.stringify({status:'approved'})});await loadAll();render();}); + document.querySelectorAll('[data-qd]').forEach(b=>b.onclick=async()=>{await api(`/testimonials/${b.dataset.qd}`,{method:'PUT',body:JSON.stringify({status:'denied'})});await loadAll();render();}); +} + +/* Wire: Destinations */ +function wireDest(){ + /* Categories */ + const ct=document.getElementById('ep-cat-tog'),cb=document.getElementById('ep-cat-box'); + if(ct)ct.onclick=()=>cb.classList.toggle('open'); + const cc=document.getElementById('ep-cat-cancel');if(cc)cc.onclick=()=>cb.classList.remove('open'); + const cs=document.getElementById('ep-cat-save'); + if(cs)cs.onclick=async()=>{ + const m=document.getElementById('ep-cat-msg'),nm=document.getElementById('ep-cat-new').value.trim(); + if(!nm){m.textContent='Name required';m.className='ep-smsg err';return;} + try{await api('/categories',{method:'POST',body:JSON.stringify({name:nm})});m.textContent='Added!';m.className='ep-smsg ok';await loadAll();activeTab='destinations';render();} + catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + document.querySelectorAll('[data-ren]').forEach(b=>b.onclick=()=>{ + const id=b.dataset.ren,cur=b.dataset.cv,row=b.closest('.ep-cat-row'); + row.innerHTML=``; + row.querySelector('[data-rc]').onclick=()=>{activeTab='destinations';render();}; + row.querySelector(`[data-rs="${id}"]`).onclick=async()=>{ + const nm=document.getElementById(`ep-ren-${id}`).value.trim(),m=document.getElementById(`ep-rm-${id}`); + if(!nm){m.textContent='Required';m.className='ep-smsg err';return;} + try{await api(`/categories/${id}`,{method:'PUT',body:JSON.stringify({name:nm})});await loadAll();activeTab='destinations';render();} + catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + }); + document.querySelectorAll('[data-dc]').forEach(b=>b.onclick=async()=>{ + if(!confirm(`Delete category "${b.dataset.dn}"?`))return; + try{await api(`/categories/${b.dataset.dc}`,{method:'DELETE'});await loadAll();activeTab='destinations';render();}catch(e){alert(e.message);} + }); + + /* Destination add */ + const dt=document.getElementById('ep-dest-tog'),db=document.getElementById('ep-dest-box'); + if(dt)dt.onclick=()=>db.classList.toggle('open'); + const dn=document.getElementById('ep-dn-cancel');if(dn)dn.onclick=()=>db.classList.remove('open'); + const ds=document.getElementById('ep-dn-save'); + if(ds)ds.onclick=async()=>{ + const m=document.getElementById('ep-dn-msg'); + try{ + const img=await getImg('ep-dn-img',''); + await api('/destinations',{method:'POST',body:JSON.stringify({ + name:document.getElementById('ep-dn-name').value.trim(), + location:document.getElementById('ep-dn-loc').value.trim(), + category:document.getElementById('ep-dn-cat').value, + price:document.getElementById('ep-dn-price').value, + rating:document.getElementById('ep-dn-rating').value||'4.5', + image:img, + description:document.getElementById('ep-dn-desc').value.trim() + })}); + m.textContent='Saved!';m.className='ep-smsg ok';await loadAll();activeTab='destinations';render(); + }catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + + /* Destination edit */ + document.querySelectorAll('[data-ed]').forEach(b=>b.onclick=()=>{ + const id=b.dataset.ed,d=destinations.find(x=>x.id==id);if(!d)return; + const row=document.querySelector(`tr[data-did="${id}"]`); + row.innerHTML=`
+
Name
+
Location
+
Category
+
Price
+
Rating
+
Image (upload new to replace)${imgPicker('ei-i-'+id,d.image)}
+
Description
+
+ + +
+
`; + row.querySelector(`[data-ec="${id}"]`).onclick=()=>{row.outerHTML=destRow(d);wireDest();}; + row.querySelector(`[data-es="${id}"]`).onclick=async()=>{ + try{ + const img=await getImg('ei-i-'+id,d.image); + await api(`/destinations/${id}`,{method:'PUT',body:JSON.stringify({ + name:document.getElementById(`ei-n-${id}`).value, + location:document.getElementById(`ei-l-${id}`).value, + category:document.getElementById(`ei-c-${id}`).value, + price:document.getElementById(`ei-p-${id}`).value, + rating:document.getElementById(`ei-r-${id}`).value, + image:img, + description:document.getElementById(`ei-d-${id}`).value + })}); + await loadAll();activeTab='destinations';render(); + }catch(e){alert(e.message);} + }; + }); + + /* Destination delete */ + document.querySelectorAll('[data-dd]').forEach(b=>b.onclick=async()=>{ + if(!confirm('Delete this destination? This cannot be undone.'))return; + try{await api(`/destinations/${b.dataset.dd}`,{method:'DELETE'});await loadAll();activeTab='destinations';render();}catch(e){alert(e.message);} + }); +} + +/* Wire: Specials */ +function wireSpec(){ + const st=document.getElementById('ep-spec-tog'),sb=document.getElementById('ep-spec-box'); + if(st)st.onclick=()=>sb.classList.toggle('open'); + const sc=document.getElementById('ep-sn-cancel');if(sc)sc.onclick=()=>sb.classList.remove('open'); + const ss=document.getElementById('ep-sn-save'); + if(ss)ss.onclick=async()=>{ + const m=document.getElementById('ep-sn-msg'); + try{ + const img=await getImg('ep-sn-img',null); + const hls=document.getElementById('ep-sn-hls').value.split('\n').map(l=>l.trim()).filter(Boolean); + await api('/specials',{method:'POST',body:JSON.stringify({ + destination_id:document.getElementById('ep-sn-dest').value, + price:document.getElementById('ep-sn-price').value, + discount:document.getElementById('ep-sn-disc').value, + end_date:document.getElementById('ep-sn-end').value, + image_path:img, + highlights:hls + })}); + m.textContent='Saved!';m.className='ep-smsg ok';await loadAll();activeTab='specials';render(); + }catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + + /* Specials edit */ + document.querySelectorAll('[data-es]').forEach(b=>b.onclick=()=>{ + const id=b.dataset.es,s=specials.find(x=>x.id==id);if(!s)return; + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const dest=dm[s.destination_id]; + const hls=Array.isArray(s.highlights)?s.highlights.join('\n'):''; + const curImg=specImg(s); + const row=document.querySelector(`tr[data-sid="${id}"]`); + row.innerHTML=`
+
Original Price
+
Discount %
+
End Date
+
Image (upload to replace; leave blank to use destination photo)${imgPicker('si-i-'+id,curImg)}
+
Highlights (one per line)
+
+ + +
+
`; + row.querySelector(`[data-sc="${id}"]`).onclick=()=>{row.outerHTML=specRow(s);wireSpec();}; + row.querySelector(`[data-sv="${id}"]`).onclick=async()=>{ + try{ + const newImg=await getImg('si-i-'+id,s.image_path||null); + const hls2=document.getElementById(`si-h-${id}`).value.split('\n').map(l=>l.trim()).filter(Boolean); + await api(`/specials/${id}`,{method:'PUT',body:JSON.stringify({ + price:document.getElementById(`si-p-${id}`).value, + discount:document.getElementById(`si-d-${id}`).value, + end_date:document.getElementById(`si-e-${id}`).value, + image_path:newImg, + highlights:hls2 + })}); + await loadAll();activeTab='specials';render(); + }catch(e){alert(e.message);} + }; + }); + + /* Specials delete */ + document.querySelectorAll('[data-ds]').forEach(b=>b.onclick=async()=>{ + if(!confirm('Delete this special?'))return; + try{await api(`/specials/${b.dataset.ds}`,{method:'DELETE'});await loadAll();activeTab='specials';render();}catch(e){alert(e.message);} + }); +} + +/* Wire: Testimonials */ +function wireTest(){ + document.querySelectorAll('[data-tf]').forEach(b=>b.onclick=()=>{tFilter=b.dataset.tf;render();}); + document.querySelectorAll('[data-ta]').forEach(b=>b.onclick=async()=>{ + const id=b.dataset.tid,action=b.dataset.ta; + const card=document.querySelector(`.ep-tc[data-tid="${id}"]`); + try{ + if(action==='approve')await api(`/testimonials/${id}`,{method:'PUT',body:JSON.stringify({status:'approved'})}); + else if(action==='deny')await api(`/testimonials/${id}`,{method:'PUT',body:JSON.stringify({status:'denied'})}); + else if(action==='save'){const ta=card.querySelector('.ep-te');await api(`/testimonials/${id}`,{method:'PUT',body:JSON.stringify({message:ta.value})});} + else if(action==='delete'){if(!confirm('Delete?'))return;await api(`/testimonials/${id}`,{method:'DELETE'});} + await loadAll();render(); + }catch(e){alert(e.message);} + }); +} + +/* Init */ +let injected=false; +function tryInject(){ + if(injected)return; + if(!window.location.pathname.startsWith('/admin/dashboard'))return; + if(!localStorage.getItem('isAdminAuthenticated'))return; + const root=document.getElementById('root'); + if(!root||!root.children.length)return; + injected=true;obs.disconnect(); + Array.from(root.children).forEach(c=>c.style.display='none'); + const portal=buildShell();root.insertBefore(portal,root.firstChild); + loadAll().then(render); +} +const obs=new MutationObserver(tryInject); +obs.observe(document.body,{childList:true,subtree:true}); +tryInject(); +})(); diff --git a/sites/epictravelexpeditions.com/public_html/static/js/admin-portal.js b/sites/epictravelexpeditions.com/public_html/static/js/admin-portal.js new file mode 100644 index 0000000..d6961ba --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/static/js/admin-portal.js @@ -0,0 +1,541 @@ +(function(){ +'use strict'; +const API='https://epictravelexpeditions.com/api'; + +function authHdr(){return{'Content-Type':'application/json',Authorization:`Bearer ${localStorage.getItem('auth_token')}`};} +async function api(path,opts){ + const res=await fetch(API+path,{headers:authHdr(),...opts}); + const d=await res.json(); + if(!res.ok)throw new Error(d.error||res.statusText); + return d; +} +async function uploadImg(file){ + const fd=new FormData();fd.append('file',file); + const res=await fetch(API+'/upload/image',{method:'POST',headers:{Authorization:`Bearer ${localStorage.getItem('auth_token')}`},body:fd}); + const d=await res.json(); + if(!res.ok)throw new Error(d.error||'Upload failed'); + return d.url; +} +async function getImg(inputId,fallback){ + const el=document.getElementById(inputId); + if(el&&el.files&&el.files[0]){ + const st=document.getElementById(inputId+'-st'); + if(st)st.textContent='Uploading…'; + try{const url=await uploadImg(el.files[0]);if(st)st.textContent='';return url;} + catch(e){if(st){st.textContent='Upload failed: '+e.message;st.style.color='#dc2626';}throw e;} + } + return fallback!=null?fallback:null; +} +function imgPicker(id,src){ + const pr=src + ?`` + :`
🖼
`; + return `
${pr}
`; +} + +function daysAgo(s){return Math.floor((Date.now()-new Date(s))/86400000);} +function daysLeft(s){return Math.ceil((new Date(s)-Date.now())/86400000);} +function ageBdg(d){const c=d<30?'bg':d<90?'by':'br';return`${d}d ago`;} +function expBdg(d){if(d<0)return`Expired`;const c=d>14?'bg':d>7?'by':'br';return`${d}d left`;} +function esc(s){const e=document.createElement('div');e.textContent=s||'';return e.innerHTML;} +function catOpts(cats,sel){return cats.map(c=>``).join('');} +function fmtPrice(p){return p!=null?'$'+parseFloat(p).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2}):'';} + +/* CSS */ +const css=` +#ep-portal{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#111827;min-height:100vh;background:#f3f4f6} +#ep-portal *,#ep-portal *::before,#ep-portal *::after{box-sizing:border-box} +#ep-hdr{background:#fff;border-bottom:1px solid #e5e7eb;padding:0 28px;height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 1px 3px rgba(0,0,0,.06)} +.ep-logo{font-size:17px;font-weight:800;color:#1d4ed8;letter-spacing:-.4px}.ep-logo span{color:#6b7280;font-weight:400} +.ep-hdr-acts{display:flex;gap:8px} +.ep-hbtn{padding:6px 14px;border-radius:7px;font-size:13px;font-weight:600;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;transition:all .15s;text-decoration:none;display:inline-flex;align-items:center;gap:5px} +.ep-hbtn:hover{background:#f9fafb}.ep-hbtn.red{border-color:#fca5a5;color:#dc2626}.ep-hbtn.red:hover{background:#fef2f2} +#ep-tabs{background:#fff;border-bottom:1px solid #e5e7eb;padding:0 28px;display:flex;gap:2px} +.ep-tab{padding:13px 18px;font-size:13px;font-weight:600;color:#6b7280;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;display:inline-flex;align-items:center;gap:7px} +.ep-tab:hover{color:#1d4ed8}.ep-tab.active{color:#1d4ed8;border-bottom-color:#1d4ed8} +.ep-tbadge{background:#fee2e2;color:#dc2626;border-radius:999px;font-size:11px;padding:1px 6px;font-weight:700} +#ep-body{padding:28px;max-width:1180px;margin:0 auto} +.ep-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px} +@media(max-width:880px){.ep-g4{grid-template-columns:repeat(2,1fr)}} +.ep-stat{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 22px;position:relative;overflow:hidden} +.ep-si{font-size:26px;margin-bottom:6px}.ep-sv{font-size:30px;font-weight:800;color:#111827}.ep-sl{font-size:12px;color:#6b7280;margin-top:1px} +.ep-acc{position:absolute;right:0;top:0;bottom:0;width:4px;border-radius:0 12px 12px 0} +.acb{background:#3b82f6}.acg{background:#10b981}.aca{background:#f59e0b}.acp{background:#8b5cf6} +.ep-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:22px;overflow:hidden} +.ep-ch{padding:16px 22px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px} +.ep-ct{font-size:14px;font-weight:700;color:#111827}.ep-cs{font-size:12px;color:#6b7280;margin-top:1px} +.ep-cb{padding:22px} +.ep-tbl{width:100%;border-collapse:collapse;font-size:13px} +.ep-tbl th{text-align:left;font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;padding:9px 12px;border-bottom:1px solid #e5e7eb;white-space:nowrap} +.ep-tbl td{padding:11px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle} +.ep-tbl tr:last-child td{border-bottom:none}.ep-tbl tr:hover td{background:#fafafa} +.ep-b{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700} +.bg{background:#d1fae5;color:#065f46}.by{background:#fef3c7;color:#92400e}.br{background:#fee2e2;color:#991b1b}.bb{background:#dbeafe;color:#1e40af}.bgr{background:#f3f4f6;color:#374151} +.ep-btn{padding:6px 13px;border-radius:7px;font-size:12px;font-weight:600;border:none;cursor:pointer;transition:opacity .15s;display:inline-flex;align-items:center;gap:4px;white-space:nowrap} +.ep-btn:hover{opacity:.82}.ep-btn:disabled{opacity:.4;cursor:not-allowed} +.ep-pri{background:#2563eb;color:#fff}.ep-suc{background:#16a34a;color:#fff}.ep-dan{background:#dc2626;color:#fff}.ep-gho{background:#f3f4f6;color:#374151} +.ep-form{display:grid;grid-template-columns:1fr 1fr;gap:14px} +@media(max-width:640px){.ep-form{grid-template-columns:1fr}} +.ep-full{grid-column:1/-1}.ep-fld{display:flex;flex-direction:column;gap:4px} +.ep-lbl{font-size:11px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.04em} +.ep-inp,.ep-sel,.ep-ta{padding:8px 11px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;color:#111827;background:#fff;outline:none;transition:border-color .15s;width:100%} +.ep-inp:focus,.ep-sel:focus,.ep-ta:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)} +.ep-ta{resize:vertical;min-height:72px} +.ep-frow{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-end;padding-top:4px;align-items:center} +.ep-addbox{border:1px dashed #d1d5db;border-radius:10px;padding:18px;margin-bottom:20px;background:#fafafa;display:none} +.ep-addbox.open{display:block} +.ep-thumb{width:40px;height:40px;border-radius:7px;object-fit:cover;background:#e5e7eb} +.ep-smsg{font-size:12px}.ep-smsg.ok{color:#16a34a}.ep-smsg.err{color:#dc2626} +.ep-alert{padding:10px 15px;border-radius:8px;font-size:13px;margin-bottom:16px;border-left:3px solid} +.ep-alert.warn{background:#fffbeb;color:#92400e;border-color:#f59e0b} +.ep-inline{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px} +@media(max-width:640px){.ep-inline{grid-column:1fr}} +.ep-cat-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;margin-bottom:8px} +.ep-cat-nm{flex:1;font-size:13px;font-weight:600}.ep-cat-ct{font-size:11px;color:#9ca3af} +.ep-cat-ei{flex:1;padding:5px 9px;border:1px solid #3b82f6;border-radius:6px;font-size:13px;outline:none} +.ep-tc{border:1px solid #e5e7eb;border-radius:10px;padding:16px;margin-bottom:12px;display:flex;gap:12px;background:#fff} +.ep-tav{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#e5e7eb} +.ep-tavph{width:42px;height:42px;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0} +.ep-tb{flex:1;min-width:0}.ep-tn{font-weight:700;font-size:13px}.ep-tl{font-size:11px;color:#6b7280;margin-bottom:5px} +.ep-tm{font-size:13px;color:#374151;margin-bottom:8px;line-height:1.5} +.ep-te{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:6px 9px;font-size:12px;margin-bottom:7px;resize:vertical;min-height:52px} +.ep-tacts{display:flex;gap:7px;flex-wrap:wrap} +.ep-ftabs{display:flex;gap:7px;margin-bottom:18px;flex-wrap:wrap} +.ep-ft{padding:6px 15px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#374151;transition:all .15s} +.ep-ft.active{background:#2563eb;color:#fff;border-color:#2563eb} +.ep-empty{text-align:center;padding:36px;color:#9ca3af;font-size:13px} +.ep-spec-img{width:52px;height:52px;border-radius:8px;object-fit:cover;background:#e5e7eb;flex-shrink:0} +.ep-price-old{text-decoration:line-through;color:#9ca3af;font-size:11px} +.ep-price-new{color:#16a34a;font-weight:700} +`; +const sel=document.createElement('style');sel.textContent=css;document.head.appendChild(sel); + +/* State */ +let activeTab='dashboard',tFilter='pending'; +let destinations=[],specials=[],testimonials=[],categories=[]; + +async function loadAll(){ + const r=await Promise.allSettled([ + fetch(API+'/destinations',{headers:authHdr()}).then(r=>r.json()), + fetch(API+'/specials', {headers:authHdr()}).then(r=>r.json()), + fetch(API+'/testimonials/all',{headers:authHdr()}).then(r=>r.json()), + fetch(API+'/categories', {headers:authHdr()}).then(r=>r.json()) + ]); + if(r[0].status==='fulfilled'&&Array.isArray(r[0].value))destinations=r[0].value; + if(r[1].status==='fulfilled'&&Array.isArray(r[1].value))specials=r[1].value; + if(r[2].status==='fulfilled'&&Array.isArray(r[2].value))testimonials=r[2].value; + if(r[3].status==='fulfilled'&&Array.isArray(r[3].value))categories=r[3].value; +} + +/* Shell */ +function buildShell(){ + const p=document.createElement('div');p.id='ep-portal'; + p.innerHTML=` +
+ +
+ 🌐 View Site + +
+
+
+ + + + +
+
`; + p.querySelector('#ep-logout').onclick=()=>{localStorage.removeItem('isAdminAuthenticated');localStorage.removeItem('auth_token');window.location.href='/admin';}; + p.querySelectorAll('.ep-tab[data-tab]').forEach(b=>{b.onclick=()=>{activeTab=b.dataset.tab;p.querySelectorAll('.ep-tab').forEach(t=>t.classList.remove('active'));b.classList.add('active');render();};}); + return p; +} + +/* Dashboard */ +function rDash(){ + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const pen=testimonials.filter(t=>t.status==='pending').length; + const app=testimonials.filter(t=>t.status==='approved').length; + let h=`
+
🗺
${destinations.length}
Destinations
+
${specials.length}
Active Specials
+
${pen}
Pending Reviews
+
${app}
Approved Testimonials
+
`; + if(pen>0)h+=`
⚠️ ${pen} testimonial${pen>1?'s':''} awaiting review.
`; + + /* Destinations age */ + const sd=[...destinations].sort((a,b)=>new Date(a.created_at)-new Date(b.created_at)); + h+=`
🗺 Destinations
Oldest entries first
`; + sd.forEach(d=>{h+=``;}); + h+=`
DestinationCategoryPriceIn System Since
${esc(d.name)} ${esc(d.location)}${esc(d.category)}${fmtPrice(d.price)}${ageBdg(daysAgo(d.created_at))}
`; + + /* Specials expiry */ + const ss=[...specials].sort((a,b)=>new Date(a.end_date)-new Date(b.end_date)); + h+=`
⭐ Weekly Specials
Expiring soonest first
`; + ss.forEach(s=>{ + const dest=dm[s.destination_id]; + const basePrice=s.price!=null?parseFloat(s.price):(dest?parseFloat(dest.price):0); + const salePrice=basePrice*(1-parseFloat(s.discount)/100); + const imgSrc=s.image_path||(dest?dest.image:''); + h+=` + + + + + + + + `; + }); + h+=`
ImageDestinationOriginal PriceDiscountSale PriceExpiresStatus
${imgSrc?``:''}${esc(dest?dest.name:s.destination_id)}${fmtPrice(basePrice)}${parseFloat(s.discount)}% OFF${fmtPrice(salePrice)}${new Date(s.end_date).toLocaleDateString()}${expBdg(daysLeft(s.end_date))}
`; + + /* Pending testimonials */ + const pl=testimonials.filter(t=>t.status==='pending'); + if(pl.length){ + h+=`
⏳ Pending Testimonials
`; + pl.forEach(t=>{ + const av=t.image_path?``:`
${esc(t.full_name.charAt(0))}
`; + h+=`
${av}
${esc(t.full_name)}
${esc(t.location)}
${esc(t.message)}
`; + }); + h+=`
`; + } + return h; +} + +/* Destinations */ +function destRow(d){ + return` + + ${esc(d.name)}
${esc(d.location)} + ${esc(d.category)} + ${fmtPrice(d.price)} + ⭐ ${parseFloat(d.rating).toFixed(1)} + ${ageBdg(daysAgo(d.created_at))} + + `; +} + +function rDest(){ + const cc={};destinations.forEach(d=>{cc[d.category]=(cc[d.category]||0)+1;}); + return`
+
🏷 Categories
Add, rename, or remove destination categories
+
+
+
+ + + + +
+
+
${categories.map(c=>{const n=cc[c.name]||0;return`
${esc(c.name)}${n} destination${n!==1?'s':''}
`;}).join('')}
+
+
+
+
🗺 All Destinations (${destinations.length})
+
+
+
New Destination
+
+
Name *
+
Location *
+
Category *
+
Price (USD) *
+
Rating (1–5)
+
Image *${imgPicker('ep-dn-img','')}
+
Description *
+
+
+
+ + ${destinations.map(destRow).join('')}
PhotoName & LocationCategoryPriceRatingIn SystemActions
+
+
`; +} + +/* Specials */ +function specImg(s){ + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const dest=dm[s.destination_id]; + return s.image_path||(dest?dest.image:'')||''; +} +function specRow(s){ + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const dest=dm[s.destination_id]; + const base=s.price!=null?parseFloat(s.price):(dest?parseFloat(dest.price):0); + const sale=base*(1-parseFloat(s.discount)/100); + const img=specImg(s); + return` + ${img?``:''} + ${esc(dest?dest.name:s.destination_id)} + ${parseFloat(s.discount)}% OFF + ${fmtPrice(base)} + ${fmtPrice(sale)} + ${new Date(s.end_date).toLocaleDateString()} + ${expBdg(daysLeft(s.end_date))} + + `; +} + +function rSpec(){ + const destOpts=destinations.map(d=>``).join(''); + return`
+
⭐ Weekly Specials (${specials.length})
+
+
+
New Special
+
+
Destination *
+
Original Price (USD) *
+
Discount % *
+
End Date *
+
Special Image (optional — defaults to destination photo)${imgPicker('ep-sn-img','')}
+
Highlights (one per line)
+
+
+
+ + ${specials.map(specRow).join('')}
ImageDestinationDiscountOriginal PriceSale PriceEnd DateStatusActions
+
+
`; +} + +/* Testimonials */ +function rTest(){ + const cn={pending:0,approved:0,denied:0};testimonials.forEach(t=>cn[t.status]++); + const list=tFilter==='all'?testimonials:testimonials.filter(t=>t.status===tFilter); + let h=`
+ + + + +
`; + if(!list.length)return h+`
💬 No testimonials here.
`; + list.forEach(t=>{ + const av=t.image_path?``:`
${esc(t.full_name.charAt(0))}
`; + const sb=`${t.status}`; + h+=`
${av}
+
${esc(t.full_name)} ${sb}
${esc(t.location)}
+
${esc(t.message)}
+ +
+ ${t.status!=='approved'?``:''} + ${t.status!=='denied'?``:''} + + +
`; + }); + return h; +} + +/* Render */ +function render(){ + const body=document.getElementById('ep-body');if(!body)return; + switch(activeTab){ + case'dashboard': body.innerHTML=rDash(); wireDash(); break; + case'destinations':body.innerHTML=rDest(); wireDest(); break; + case'specials': body.innerHTML=rSpec(); wireSpec(); break; + case'testimonials':body.innerHTML=rTest(); wireTest(); break; + } + const pb=document.getElementById('ep-pb'); + if(pb){const n=testimonials.filter(t=>t.status==='pending').length;pb.textContent=n||'';pb.style.display=n?'':'none';} +} + +/* Wire: Dashboard */ +function wireDash(){ + document.querySelectorAll('[data-qa]').forEach(b=>b.onclick=async()=>{await api(`/testimonials/${b.dataset.qa}`,{method:'PUT',body:JSON.stringify({status:'approved'})});await loadAll();render();}); + document.querySelectorAll('[data-qd]').forEach(b=>b.onclick=async()=>{await api(`/testimonials/${b.dataset.qd}`,{method:'PUT',body:JSON.stringify({status:'denied'})});await loadAll();render();}); +} + +/* Wire: Destinations */ +function wireDest(){ + /* Categories */ + const ct=document.getElementById('ep-cat-tog'),cb=document.getElementById('ep-cat-box'); + if(ct)ct.onclick=()=>cb.classList.toggle('open'); + const cc=document.getElementById('ep-cat-cancel');if(cc)cc.onclick=()=>cb.classList.remove('open'); + const cs=document.getElementById('ep-cat-save'); + if(cs)cs.onclick=async()=>{ + const m=document.getElementById('ep-cat-msg'),nm=document.getElementById('ep-cat-new').value.trim(); + if(!nm){m.textContent='Name required';m.className='ep-smsg err';return;} + try{await api('/categories',{method:'POST',body:JSON.stringify({name:nm})});m.textContent='Added!';m.className='ep-smsg ok';await loadAll();activeTab='destinations';render();} + catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + document.querySelectorAll('[data-ren]').forEach(b=>b.onclick=()=>{ + const id=b.dataset.ren,cur=b.dataset.cv,row=b.closest('.ep-cat-row'); + row.innerHTML=``; + row.querySelector('[data-rc]').onclick=()=>{activeTab='destinations';render();}; + row.querySelector(`[data-rs="${id}"]`).onclick=async()=>{ + const nm=document.getElementById(`ep-ren-${id}`).value.trim(),m=document.getElementById(`ep-rm-${id}`); + if(!nm){m.textContent='Required';m.className='ep-smsg err';return;} + try{await api(`/categories/${id}`,{method:'PUT',body:JSON.stringify({name:nm})});await loadAll();activeTab='destinations';render();} + catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + }); + document.querySelectorAll('[data-dc]').forEach(b=>b.onclick=async()=>{ + if(!confirm(`Delete category "${b.dataset.dn}"?`))return; + try{await api(`/categories/${b.dataset.dc}`,{method:'DELETE'});await loadAll();activeTab='destinations';render();}catch(e){alert(e.message);} + }); + + /* Destination add */ + const dt=document.getElementById('ep-dest-tog'),db=document.getElementById('ep-dest-box'); + if(dt)dt.onclick=()=>db.classList.toggle('open'); + const dn=document.getElementById('ep-dn-cancel');if(dn)dn.onclick=()=>db.classList.remove('open'); + const ds=document.getElementById('ep-dn-save'); + if(ds)ds.onclick=async()=>{ + const m=document.getElementById('ep-dn-msg'); + try{ + const img=await getImg('ep-dn-img',''); + await api('/destinations',{method:'POST',body:JSON.stringify({ + name:document.getElementById('ep-dn-name').value.trim(), + location:document.getElementById('ep-dn-loc').value.trim(), + category:document.getElementById('ep-dn-cat').value, + price:document.getElementById('ep-dn-price').value, + rating:document.getElementById('ep-dn-rating').value||'4.5', + image:img, + description:document.getElementById('ep-dn-desc').value.trim() + })}); + m.textContent='Saved!';m.className='ep-smsg ok';await loadAll();activeTab='destinations';render(); + }catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + + /* Destination edit */ + document.querySelectorAll('[data-ed]').forEach(b=>b.onclick=()=>{ + const id=b.dataset.ed,d=destinations.find(x=>x.id==id);if(!d)return; + const row=document.querySelector(`tr[data-did="${id}"]`); + row.innerHTML=`
+
Name
+
Location
+
Category
+
Price
+
Rating
+
Image (upload new to replace)${imgPicker('ei-i-'+id,d.image)}
+
Description
+
+ + +
+
`; + row.querySelector(`[data-ec="${id}"]`).onclick=()=>{row.outerHTML=destRow(d);wireDest();}; + row.querySelector(`[data-es="${id}"]`).onclick=async()=>{ + try{ + const img=await getImg('ei-i-'+id,d.image); + await api(`/destinations/${id}`,{method:'PUT',body:JSON.stringify({ + name:document.getElementById(`ei-n-${id}`).value, + location:document.getElementById(`ei-l-${id}`).value, + category:document.getElementById(`ei-c-${id}`).value, + price:document.getElementById(`ei-p-${id}`).value, + rating:document.getElementById(`ei-r-${id}`).value, + image:img, + description:document.getElementById(`ei-d-${id}`).value + })}); + await loadAll();activeTab='destinations';render(); + }catch(e){alert(e.message);} + }; + }); + + /* Destination delete */ + document.querySelectorAll('[data-dd]').forEach(b=>b.onclick=async()=>{ + if(!confirm('Delete this destination? This cannot be undone.'))return; + try{await api(`/destinations/${b.dataset.dd}`,{method:'DELETE'});await loadAll();activeTab='destinations';render();}catch(e){alert(e.message);} + }); +} + +/* Wire: Specials */ +function wireSpec(){ + const st=document.getElementById('ep-spec-tog'),sb=document.getElementById('ep-spec-box'); + if(st)st.onclick=()=>sb.classList.toggle('open'); + const sc=document.getElementById('ep-sn-cancel');if(sc)sc.onclick=()=>sb.classList.remove('open'); + const ss=document.getElementById('ep-sn-save'); + if(ss)ss.onclick=async()=>{ + const m=document.getElementById('ep-sn-msg'); + try{ + const img=await getImg('ep-sn-img',null); + const hls=document.getElementById('ep-sn-hls').value.split('\n').map(l=>l.trim()).filter(Boolean); + await api('/specials',{method:'POST',body:JSON.stringify({ + destination_id:document.getElementById('ep-sn-dest').value, + price:document.getElementById('ep-sn-price').value, + discount:document.getElementById('ep-sn-disc').value, + end_date:document.getElementById('ep-sn-end').value, + image_path:img, + highlights:hls + })}); + m.textContent='Saved!';m.className='ep-smsg ok';await loadAll();activeTab='specials';render(); + }catch(e){m.textContent=e.message;m.className='ep-smsg err';} + }; + + /* Specials edit */ + document.querySelectorAll('[data-es]').forEach(b=>b.onclick=()=>{ + const id=b.dataset.es,s=specials.find(x=>x.id==id);if(!s)return; + const dm=Object.fromEntries(destinations.map(d=>[d.id,d])); + const dest=dm[s.destination_id]; + const hls=Array.isArray(s.highlights)?s.highlights.join('\n'):''; + const curImg=specImg(s); + const row=document.querySelector(`tr[data-sid="${id}"]`); + row.innerHTML=`
+
Original Price
+
Discount %
+
End Date
+
Image (upload to replace; leave blank to use destination photo)${imgPicker('si-i-'+id,curImg)}
+
Highlights (one per line)
+
+ + +
+
`; + row.querySelector(`[data-sc="${id}"]`).onclick=()=>{row.outerHTML=specRow(s);wireSpec();}; + row.querySelector(`[data-sv="${id}"]`).onclick=async()=>{ + try{ + const newImg=await getImg('si-i-'+id,s.image_path||null); + const hls2=document.getElementById(`si-h-${id}`).value.split('\n').map(l=>l.trim()).filter(Boolean); + await api(`/specials/${id}`,{method:'PUT',body:JSON.stringify({ + price:document.getElementById(`si-p-${id}`).value, + discount:document.getElementById(`si-d-${id}`).value, + end_date:document.getElementById(`si-e-${id}`).value, + image_path:newImg, + highlights:hls2 + })}); + await loadAll();activeTab='specials';render(); + }catch(e){alert(e.message);} + }; + }); + + /* Specials delete */ + document.querySelectorAll('[data-ds]').forEach(b=>b.onclick=async()=>{ + if(!confirm('Delete this special?'))return; + try{await api(`/specials/${b.dataset.ds}`,{method:'DELETE'});await loadAll();activeTab='specials';render();}catch(e){alert(e.message);} + }); +} + +/* Wire: Testimonials */ +function wireTest(){ + document.querySelectorAll('[data-tf]').forEach(b=>b.onclick=()=>{tFilter=b.dataset.tf;render();}); + document.querySelectorAll('[data-ta]').forEach(b=>b.onclick=async()=>{ + const id=b.dataset.tid,action=b.dataset.ta; + const card=document.querySelector(`.ep-tc[data-tid="${id}"]`); + try{ + if(action==='approve')await api(`/testimonials/${id}`,{method:'PUT',body:JSON.stringify({status:'approved'})}); + else if(action==='deny')await api(`/testimonials/${id}`,{method:'PUT',body:JSON.stringify({status:'denied'})}); + else if(action==='save'){const ta=card.querySelector('.ep-te');await api(`/testimonials/${id}`,{method:'PUT',body:JSON.stringify({message:ta.value})});} + else if(action==='delete'){if(!confirm('Delete?'))return;await api(`/testimonials/${id}`,{method:'DELETE'});} + await loadAll();render(); + }catch(e){alert(e.message);} + }); +} + +/* Init */ +let injected=false; +function tryInject(){ + if(injected)return; + if(!window.location.pathname.startsWith('/admin/dashboard'))return; + if(!localStorage.getItem('isAdminAuthenticated'))return; + const root=document.getElementById('root'); + if(!root||!root.children.length)return; + injected=true;obs.disconnect(); + Array.from(root.children).forEach(c=>c.style.display='none'); + const portal=buildShell();root.insertBefore(portal,root.firstChild); + loadAll().then(render); +} +const obs=new MutationObserver(tryInject); +obs.observe(document.body,{childList:true,subtree:true}); +tryInject(); +})(); diff --git a/sites/epictravelexpeditions.com/public_html/static/js/admin-testimonials.js b/sites/epictravelexpeditions.com/public_html/static/js/admin-testimonials.js new file mode 100644 index 0000000..810be1d --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/static/js/admin-testimonials.js @@ -0,0 +1,208 @@ +(function () { + const API = 'https://epictravelexpeditions.com/api'; + + const style = document.createElement('style'); + style.textContent = ` + #et-admin-section { padding: 32px 0; } + #et-admin-section h3 { font-size: 1.4rem; font-weight: 700; color: #111827; margin-bottom: 16px; } + .et-admin-card { + background: #fff; + border: 1px solid #e5e7eb; + border-radius: 10px; + padding: 20px; + margin-bottom: 16px; + display: flex; + gap: 16px; + align-items: flex-start; + } + .et-admin-avatar { + width: 48px; height: 48px; border-radius: 50%; + object-fit: cover; flex-shrink: 0; background: #e5e7eb; + } + .et-admin-avatar-ph { + width: 48px; height: 48px; border-radius: 50%; + background: #2563eb; color: #fff; + display: flex; align-items: center; justify-content: center; + font-weight: 700; font-size: 18px; flex-shrink: 0; + } + .et-admin-body { flex: 1; min-width: 0; } + .et-admin-name { font-weight: 700; font-size: 14px; } + .et-admin-loc { font-size: 12px; color: #6b7280; margin-bottom: 6px; } + .et-admin-msg { font-size: 13px; color: #374151; margin-bottom: 10px; } + .et-admin-status { + display: inline-block; + padding: 2px 10px; border-radius: 999px; + font-size: 11px; font-weight: 600; text-transform: uppercase; + margin-bottom: 10px; + } + .et-status-pending { background: #fef3c7; color: #92400e; } + .et-status-approved { background: #d1fae5; color: #065f46; } + .et-status-denied { background: #fee2e2; color: #991b1b; } + .et-admin-actions { display: flex; gap: 8px; flex-wrap: wrap; } + .et-btn { + padding: 6px 14px; border-radius: 6px; font-size: 12px; font-weight: 600; + border: none; cursor: pointer; transition: opacity .15s; + } + .et-btn:hover { opacity: .8; } + .et-btn-approve { background: #16a34a; color: #fff; } + .et-btn-deny { background: #dc2626; color: #fff; } + .et-btn-delete { background: #6b7280; color: #fff; } + .et-btn-save { background: #2563eb; color: #fff; } + .et-edit-area { + width: 100%; box-sizing: border-box; + border: 1px solid #d1d5db; border-radius: 6px; + padding: 8px 10px; font-size: 13px; + resize: vertical; min-height: 60px; margin-bottom: 6px; + } + .et-tabs { display: flex; gap: 4px; margin-bottom: 20px; } + .et-tab { + padding: 6px 16px; border-radius: 6px; font-size: 13px; font-weight: 600; + cursor: pointer; border: 1px solid #d1d5db; background: #fff; color: #374151; + } + .et-tab.active { background: #2563eb; color: #fff; border-color: #2563eb; } + .et-empty { color: #9ca3af; font-size: 14px; text-align: center; padding: 32px 0; } + `; + document.head.appendChild(style); + + function statusBadge(s) { + return `${s}`; + } + + function avatarHtml(t) { + if (t.image_path) return ``; + return `
${t.full_name.charAt(0).toUpperCase()}
`; + } + + async function applyAction(id, payload) { + const token = localStorage.getItem('auth_token'); + const res = await fetch(`${API}/testimonials/${id}`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }, + body: JSON.stringify(payload) + }); + return res.json(); + } + + async function deleteTestimonial(id) { + const token = localStorage.getItem('auth_token'); + await fetch(`${API}/testimonials/${id}`, { + method: 'DELETE', + headers: { Authorization: `Bearer ${token}` } + }); + } + + function renderCards(list, container, reload) { + container.innerHTML = ''; + if (!list.length) { + container.innerHTML = '

No testimonials in this category.

'; + return; + } + list.forEach(t => { + const card = document.createElement('div'); + card.className = 'et-admin-card'; + card.dataset.id = t.id; + card.innerHTML = ` + ${avatarHtml(t)} +
+
${t.full_name}
+
${t.location}
+ ${statusBadge(t.status)} +
${t.message}
+ +
+ ${t.status !== 'approved' ? '' : ''} + ${t.status !== 'denied' ? '' : ''} + + +
+
+ `; + + card.querySelectorAll('[data-action]').forEach(btn => { + btn.addEventListener('click', async () => { + const action = btn.dataset.action; + const textarea = card.querySelector('.et-edit-area'); + try { + if (action === 'approve') await applyAction(t.id, { status: 'approved' }); + else if (action === 'deny') await applyAction(t.id, { status: 'denied' }); + else if (action === 'save') await applyAction(t.id, { message: textarea.value }); + else if (action === 'delete') { if (!confirm('Delete this testimonial?')) return; await deleteTestimonial(t.id); } + reload(); + } catch (e) { alert('Error: ' + e.message); } + }); + }); + + container.appendChild(card); + }); + } + + async function buildAdminPanel(mountEl) { + const token = localStorage.getItem('auth_token'); + const res = await fetch(`${API}/testimonials/all`, { + headers: { Authorization: `Bearer ${token}` } + }); + const all = await res.json(); + + const section = document.createElement('div'); + section.id = 'et-admin-section'; + section.innerHTML = ` +

Testimonials

+
+ + + + +
+
+ `; + + let currentFilter = 'pending'; + const cardsEl = section.querySelector('#et-admin-cards'); + + async function reload() { + const res = await fetch(`${API}/testimonials/all`, { + headers: { Authorization: `Bearer ${token}` } + }); + const fresh = await res.json(); + const filtered = currentFilter === 'all' ? fresh : fresh.filter(t => t.status === currentFilter); + renderCards(filtered, cardsEl, reload); + // Update counts + section.querySelectorAll('.et-tab').forEach(tab => { + const f = tab.dataset.filter; + const count = f === 'all' ? fresh.length : fresh.filter(t => t.status === f).length; + tab.textContent = `${f.charAt(0).toUpperCase()+f.slice(1)} (${count})`; + if (f === currentFilter) tab.classList.add('active'); + else tab.classList.remove('active'); + }); + } + + section.querySelectorAll('.et-tab').forEach(tab => { + tab.addEventListener('click', () => { + currentFilter = tab.dataset.filter; + reload(); + }); + }); + + const initialFiltered = all.filter(t => t.status === 'pending'); + renderCards(initialFiltered, cardsEl, reload); + mountEl.appendChild(section); + } + + // Watch for admin dashboard + let adminDone = false; + const observer = new MutationObserver(() => { + if (adminDone) return; + if (!window.location.pathname.startsWith('/admin/dashboard')) return; + if (!localStorage.getItem('isAdminAuthenticated')) return; + + // Find the main content area of the admin panel + const main = document.querySelector('[class*="max-w-7xl"]'); + if (!main) return; + if (document.getElementById('et-admin-section')) return; + + adminDone = true; + observer.disconnect(); + buildAdminPanel(main); + }); + observer.observe(document.body, { childList: true, subtree: true }); +})(); diff --git a/sites/epictravelexpeditions.com/public_html/static/js/main.b9c030e8.js b/sites/epictravelexpeditions.com/public_html/static/js/main.b9c030e8.js new file mode 100644 index 0000000..49d3a37 --- /dev/null +++ b/sites/epictravelexpeditions.com/public_html/static/js/main.b9c030e8.js @@ -0,0 +1,3 @@ +/*! For license information please see main.b9c030e8.js.LICENSE.txt */ +(()=>{"use strict";var e={4(e,t,n){var r=n(853),a=n(43),o=n(950);function l(e){var t="https://react.dev/errors/"+e;if(1F||(e.current=M[F],M[F]=null,F--)}function U(e,t){F++,M[F]=e.current,e.current=t}var H,W,V=I(null),$=I(null),q=I(null),K=I(null);function Y(e,t){switch(U(q,t),U($,e),U(V,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=yd(t=vd(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}B(V),U(V,e)}function Q(){B(V),B($),B(q)}function G(e){null!==e.memoizedState&&U(K,e);var t=V.current,n=yd(t,e.type);t!==n&&(U($,e),U(V,n))}function X(e){$.current===e&&(B(V),B($)),K.current===e&&(B(K),df._currentValue=z)}function J(e){if(void 0===H)try{throw Error()}catch(yg){var t=yg.stack.trim().match(/\n( *(at )?)/);H=t&&t[1]||"",W=-1)":-1--a||s[r]!==c[a]){var u="\n"+s[r].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}}while(1<=r&&0<=a);break}}}finally{Z=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?J(n):""}function te(e,t){switch(e.tag){case 26:case 27:case 5:return J(e.type);case 16:return J("Lazy");case 13:return e.child!==t&&null!==t?J("Suspense Fallback"):J("Suspense");case 19:return J("SuspenseList");case 0:case 15:return ee(e.type,!1);case 11:return ee(e.type.render,!1);case 1:return ee(e.type,!0);case 31:return J("Activity");default:return""}}function ne(e){try{var t="",n=null;do{t+=te(e,n),n=e,e=e.return}while(e);return t}catch(yg){return"\nError generating stack: "+yg.message+"\n"+yg.stack}}var re=Object.prototype.hasOwnProperty,ae=r.unstable_scheduleCallback,oe=r.unstable_cancelCallback,le=r.unstable_shouldYield,ie=r.unstable_requestPaint,se=r.unstable_now,ce=r.unstable_getCurrentPriorityLevel,ue=r.unstable_ImmediatePriority,de=r.unstable_UserBlockingPriority,fe=r.unstable_NormalPriority,pe=r.unstable_LowPriority,me=r.unstable_IdlePriority,he=r.log,ge=r.unstable_setDisableYieldValue,ve=null,ye=null;function be(e){if("function"===typeof he&&ge(e),ye&&"function"===typeof ye.setStrictMode)try{ye.setStrictMode(ve,e)}catch(t){}}var we=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(xe(e)/ke|0)|0},xe=Math.log,ke=Math.LN2;var Se=256,Ee=262144,Ne=4194304;function Ce(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function je(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,l=e.pingedLanes;e=e.warmLanes;var i=134217727&r;return 0!==i?0!==(r=i&~o)?a=Ce(r):0!==(l&=i)?a=Ce(l):n||0!==(n=i&~e)&&(a=Ce(n)):0!==(i=r&~o)?a=Ce(i):0!==l?a=Ce(l):n||0!==(n=r&~e)&&(a=Ce(n)),0===a?0:0!==t&&t!==a&&0===(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&0!==(4194048&n))?t:a}function Re(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Te(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Pe(){var e=Ne;return 0===(62914560&(Ne<<=1))&&(Ne=4194304),e}function _e(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Oe(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ae(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-we(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|261930&n}function Le(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-we(n),a=1<=Cn),Tn=String.fromCharCode(32),Pn=!1;function _n(e,t){switch(e){case"keyup":return-1!==En.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function On(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var An=!1;var Ln={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Dn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Ln[e.type]:"textarea"===t}function zn(e,t,n,r){Dt?zt?zt.push(r):zt=[r]:Dt=r,0<(t=rd(t,"onChange")).length&&(n=new nn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Mn=null,Fn=null;function In(e){Qu(e,0)}function Bn(e){if(mt(Je(e)))return e}function Un(e,t){if("change"===e)return t}var Hn=!1;if(Ut){var Wn;if(Ut){var Vn="oninput"in document;if(!Vn){var $n=document.createElement("div");$n.setAttribute("oninput","return;"),Vn="function"===typeof $n.oninput}Wn=Vn}else Wn=!1;Hn=Wn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=er(r)}}function nr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?nr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function rr(e){for(var t=ht((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=ht((e=t.contentWindow).document)}return t}function ar(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var or=Ut&&"documentMode"in document&&11>=document.documentMode,lr=null,ir=null,sr=null,cr=!1;function ur(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;cr||null==lr||lr!==ht(r)||("selectionStart"in(r=lr)&&ar(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},sr&&Zn(sr,r)||(sr=r,0<(r=rd(ir,"onSelect")).length&&(t=new nn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=lr)))}function dr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var fr={animationend:dr("Animation","AnimationEnd"),animationiteration:dr("Animation","AnimationIteration"),animationstart:dr("Animation","AnimationStart"),transitionrun:dr("Transition","TransitionRun"),transitionstart:dr("Transition","TransitionStart"),transitioncancel:dr("Transition","TransitionCancel"),transitionend:dr("Transition","TransitionEnd")},pr={},mr={};function hr(e){if(pr[e])return pr[e];if(!fr[e])return e;var t,n=fr[e];for(t in n)if(n.hasOwnProperty(t)&&t in mr)return pr[e]=n[t];return e}Ut&&(mr=document.createElement("div").style,"AnimationEvent"in window||(delete fr.animationend.animation,delete fr.animationiteration.animation,delete fr.animationstart.animation),"TransitionEvent"in window||delete fr.transitionend.transition);var gr=hr("animationend"),vr=hr("animationiteration"),yr=hr("animationstart"),br=hr("transitionrun"),wr=hr("transitionstart"),xr=hr("transitioncancel"),kr=hr("transitionend"),Sr=new Map,Er="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Nr(e,t){Sr.set(e,t),rt(t,[e])}Er.push("scrollEnd");var Cr="function"===typeof reportError?reportError:function(e){if("object"===typeof window&&"function"===typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===typeof e&&null!==e&&"string"===typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"===typeof process&&"function"===typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},jr=[],Rr=0,Tr=0;function Pr(){for(var e=Rr,t=Tr=Rr=0;t>=l,a-=l,na=1<<32-we(t)+a|n<h?(g=d,d=null):g=d.sibling;var v=p(a,d,i[h],s);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(a,d),l=o(v,l,h),null===u?c=v:u.sibling=v,u=v,d=g}if(h===i.length)return n(a,d),da&&aa(a,h),c;if(null===d){for(;hg?(v=h,h=null):v=h.sibling;var b=p(a,h,y.value,c);if(null===b){null===h&&(h=v);break}e&&h&&null===b.alternate&&t(a,h),i=o(b,i,g),null===d?u=b:d.sibling=b,d=b,h=v}if(y.done)return n(a,h),da&&aa(a,g),u;if(null===h){for(;!y.done;g++,y=s.next())null!==(y=f(a,y.value,c))&&(i=o(y,i,g),null===d?u=y:d.sibling=y,d=y);return da&&aa(a,g),u}for(h=r(h);!y.done;g++,y=s.next())null!==(y=m(h,a,g,y.value,c))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),i=o(y,i,g),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach(function(e){return t(a,e)}),da&&aa(a,g),u}(s,c,u=b.call(u),d)}if("function"===typeof u.then)return y(s,c,co(u),d);if(u.$$typeof===x)return y(s,c,Aa(s,u),d);fo(s,u)}return"string"===typeof u&&""!==u||"number"===typeof u||"bigint"===typeof u?(u=""+u,null!==c&&6===c.tag?(n(s,c.sibling),(d=a(c,u)).return=s,s=d):(n(s,c),(d=Vr(u,s.mode,d)).return=s,s=d),i(s)):n(s,c)}return function(e,t,n,r){try{so=0;var a=y(e,t,n,r);return io=null,a}catch(yg){if(yg===Xa||yg===Za)throw yg;var o=Fr(29,yg,null,e.mode);return o.lanes=r,o.return=e,o}}}var mo=po(!0),ho=po(!1),go=!1;function vo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function yo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function bo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function wo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&pc)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=Dr(e),Lr(e,null,n),t}return _r(e,r,t,n),Dr(e)}function xo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194048&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Le(e,n)}}function ko(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var l={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===o?a=o=l:o=o.next=l,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var So=!1;function Eo(){if(So){if(null!==Va)throw Va}}function No(e,t,n,r){So=!1;var a=e.updateQueue;go=!1;var o=a.firstBaseUpdate,l=a.lastBaseUpdate,i=a.shared.pending;if(null!==i){a.shared.pending=null;var s=i,c=s.next;s.next=null,null===l?o=c:l.next=c,l=s;var u=e.alternate;null!==u&&((i=(u=u.updateQueue).lastBaseUpdate)!==l&&(null===i?u.firstBaseUpdate=c:i.next=c,u.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(l=0,u=c=s=null,i=o;;){var f=-536870913&i.lane,m=f!==i.lane;if(m?(gc&f)===f:(r&f)===f){0!==f&&f===Wa&&(So=!0),null!==u&&(u=u.next={lane:0,tag:i.tag,payload:i.payload,callback:null,next:null});e:{var h=e,g=i;f=t;var v=n;switch(g.tag){case 1:if("function"===typeof(h=g.payload)){d=h.call(v,d,f);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null===(f="function"===typeof(h=g.payload)?h.call(v,d,f):h)||void 0===f)break e;d=p({},d,f);break e;case 2:go=!0}}null!==(f=i.callback)&&(e.flags|=64,m&&(e.flags|=8192),null===(m=a.callbacks)?a.callbacks=[f]:m.push(f))}else m={lane:f,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===u?(c=u=m,s=d):u=u.next=m,l|=f;if(null===(i=i.next)){if(null===(i=a.shared.pending))break;i=(m=i).next,m.next=null,a.lastBaseUpdate=m,a.shared.pending=null}}null===u&&(s=d),a.baseState=s,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null===o&&(a.shared.lanes=0),Ec|=l,e.lanes=l,e.memoizedState=d}}function Co(e,t){if("function"!==typeof e)throw Error(l(191,e));e.call(t)}function jo(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;eo?o:8;var l=L.T,i={};L.T=i,di(e,!1,t,n);try{var s=a(),c=L.S;if(null!==c&&c(i,s),null!==s&&"object"===typeof s&&"function"===typeof s.then)ui(e,t,function(e,t){var n=[],r={status:"pending",value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status="fulfilled",r.value=t;for(var e=0;e<\/script>",o=o.removeChild(o.firstChild);break;case"select":o="string"===typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o="string"===typeof r.is?i.createElement(a,{is:r.is}):i.createElement(a)}}o[Ue]=t,o[He]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)o.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break e;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=o;e:switch(fd(o,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&is(t)}}return fs(t),ss(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&is(t);else{if("string"!==typeof r&&null===t.stateNode)throw Error(l(166));if(e=q.current,ya(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=ca))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Ue]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cd(e.nodeValue,n)))||ha(t,!0)}else(e=gd(e).createTextNode(r))[Ue]=t,t.stateNode=e}return fs(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=ya(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[Ue]=t}else ba(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fs(t),e=!1}else n=wa(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(Io(t),t):(Io(t),null);if(0!==(128&t.flags))throw Error(l(558))}return fs(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=ya(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(l(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(l(317));a[Ue]=t}else ba(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fs(t),a=!1}else a=wa(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return 256&t.flags?(Io(t),t):(Io(t),null)}return Io(t),0!==(128&t.flags)?(t.lanes=n,t):(n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(a=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),o=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),us(t,t.updateQueue),fs(t),null);case 4:return Q(),null===e&&Zu(t.stateNode.containerInfo),fs(t),null;case 10:return Ca(t.type),fs(t),null;case 19:if(B(Bo),null===(r=t.memoizedState))return fs(t),null;if(a=0!==(128&t.flags),null===(o=r.rendering))if(a)ds(r,!1);else{if(0!==Sc||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(o=Uo(e))){for(t.flags|=128,ds(r,!1),e=o.updateQueue,t.updateQueue=e,us(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Ur(n,e),n=n.sibling;return U(Bo,1&Bo.current|2),da&&aa(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&se()>Lc&&(t.flags|=128,a=!0,ds(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=Uo(o))){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,us(t,e),ds(r,!0),null===r.tail&&"hidden"===r.tailMode&&!o.alternate&&!da)return fs(t),null}else 2*se()-r.renderingStartTime>Lc&&536870912!==n&&(t.flags|=128,a=!0,ds(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=se(),e.sibling=null,n=Bo.current,U(Bo,a?1&n|2:1&n),da&&aa(t,r.treeForkCount),e):(fs(t),null);case 22:case 23:return Io(t),Oo(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!==(536870912&n)&&0===(128&t.flags)&&(fs(t),6&t.subtreeFlags&&(t.flags|=8192)):fs(t),null!==(n=t.updateQueue)&&us(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&B(Ka),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ca(Fa),fs(t),null;case 25:case 30:return null}throw Error(l(156,t.tag))}function ms(e,t){switch(ia(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ca(Fa),Q(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return X(t),null;case 31:if(null!==t.memoizedState){if(Io(t),null===t.alternate)throw Error(l(340));ba()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(Io(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));ba()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return B(Bo),null;case 4:return Q(),null;case 10:return Ca(t.type),null;case 22:case 23:return Io(t),Oo(),null!==e&&B(Ka),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return Ca(Fa),null;default:return null}}function hs(e,t){switch(ia(t),t.tag){case 3:Ca(Fa),Q();break;case 26:case 27:case 5:X(t);break;case 4:Q();break;case 31:null!==t.memoizedState&&Io(t);break;case 13:Io(t);break;case 19:B(Bo);break;case 10:Ca(t.type);break;case 22:case 23:Io(t),Oo(),null!==e&&B(Ka);break;case 24:Ca(Fa)}}function gs(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var o=n.create,l=n.inst;r=o(),l.destroy=r}n=n.next}while(n!==a)}}catch(i){Su(t,t.return,i)}}function vs(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var o=a.next;r=o;do{if((r.tag&e)===e){var l=r.inst,i=l.destroy;if(void 0!==i){l.destroy=void 0,a=t;var s=n,c=i;try{c()}catch(u){Su(a,s,u)}}}r=r.next}while(r!==o)}}catch(u){Su(t,t.return,u)}}function ys(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{jo(t,n)}catch(r){Su(e,e.return,r)}}}function bs(e,t,n){n.props=Si(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(r){Su(e,t,r)}}function ws(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"===typeof n?e.refCleanup=n(r):n.current=r}}catch(a){Su(e,t,a)}}function xs(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"===typeof r)try{r()}catch(a){Su(e,t,a)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"===typeof n)try{n(null)}catch(o){Su(e,t,o)}else n.current=null}function ks(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(a){Su(e,e.return,a)}}function Ss(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,o=null,i=null,s=null,c=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&null!=f)switch(m){case"checked":case"value":break;case"defaultValue":c=f;default:r.hasOwnProperty(m)||ud(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=m||null!=f))switch(p){case"type":o=m;break;case"name":a=m;break;case"checked":u=m;break;case"defaultChecked":d=m;break;case"value":i=m;break;case"defaultValue":s=m;break;case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(l(137,t));break;default:m!==f&&ud(e,t,p,m,r,f)}}return void yt(e,i,s,c,u,d,o,a);case"select":for(o in m=i=s=p=null,n)if(c=n[o],n.hasOwnProperty(o)&&null!=c)switch(o){case"value":break;case"multiple":m=c;default:r.hasOwnProperty(o)||ud(e,t,o,null,r,c)}for(a in r)if(o=r[a],c=n[a],r.hasOwnProperty(a)&&(null!=o||null!=c))switch(a){case"value":p=o;break;case"defaultValue":s=o;break;case"multiple":i=o;default:o!==c&&ud(e,t,a,o,r,c)}return t=s,n=i,r=m,void(null!=p?xt(e,!!n,p,!1):!!r!==!!n&&(null!=t?xt(e,!!n,t,!0):xt(e,!!n,n?[]:"",!1)));case"textarea":for(s in m=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:ud(e,t,s,null,r,a)}for(i in r)if(a=r[i],o=n[i],r.hasOwnProperty(i)&&(null!=a||null!=o))switch(i){case"value":p=a;break;case"defaultValue":m=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(l(91));break;default:a!==o&&ud(e,t,i,a,r,o)}return void kt(e,p,m);case"option":for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&null!=p&&!r.hasOwnProperty(h))if("selected"===h)e.selected=!1;else ud(e,t,h,null,r,p);for(c in r)if(p=r[c],m=n[c],r.hasOwnProperty(c)&&p!==m&&(null!=p||null!=m))if("selected"===c)e.selected=p&&"function"!==typeof p&&"symbol"!==typeof p;else ud(e,t,c,p,r,m);return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&ud(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(null!=p||null!=m))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(l(137,t));break;default:ud(e,t,u,p,r,m)}return;default:if(Rt(t)){for(var v in n)p=n[v],n.hasOwnProperty(v)&&void 0!==p&&!r.hasOwnProperty(v)&&dd(e,t,v,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||void 0===p&&void 0===m||dd(e,t,d,p,r,m);return}}for(var y in n)p=n[y],n.hasOwnProperty(y)&&null!=p&&!r.hasOwnProperty(y)&&ud(e,t,y,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||null==p&&null==m||ud(e,t,f,p,r,m)}(r,e.type,n,t),r[He]=t}catch(a){Su(e,e.return,a)}}function Es(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&Cd(e.type)||4===e.tag}function Ns(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Es(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&Cd(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Cs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Ot));else if(4!==r&&(27===r&&Cd(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(Cs(e,t,n),e=e.sibling;null!==e;)Cs(e,t,n),e=e.sibling}function js(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&Cd(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(js(e,t,n),e=e.sibling;null!==e;)js(e,t,n),e=e.sibling}function Rs(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);fd(t,r,n),t[Ue]=e,t[He]=n}catch(o){Su(e,e.return,o)}}var Ts=!1,Ps=!1,_s=!1,Os="function"===typeof WeakSet?WeakSet:Set,As=null;function Ls(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Ys(e,n),4&r&&gs(5,n);break;case 1:if(Ys(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(l){Su(n,n.return,l)}else{var a=Si(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(i){Su(n,n.return,i)}}64&r&&ys(n),512&r&&ws(n,n.return);break;case 3:if(Ys(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{jo(e,t)}catch(l){Su(n,n.return,l)}}break;case 27:null===t&&4&r&&Rs(n);case 26:case 5:Ys(e,n),null===t&&4&r&&ks(n),512&r&&ws(n,n.return);break;case 12:Ys(e,n);break;case 31:Ys(e,n),4&r&&Bs(e,n);break;case 13:Ys(e,n),4&r&&Us(e,n),64&r&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=ju.bind(null,n))));break;case 22:if(!(r=null!==n.memoizedState||Ts)){t=null!==t&&null!==t.memoizedState||Ps,a=Ts;var o=Ps;Ts=r,(Ps=t)&&!o?Gs(e,n,0!==(8772&n.subtreeFlags)):Ys(e,n),Ts=a,Ps=o}break;case 30:break;default:Ys(e,n)}}function Ds(e){var t=e.alternate;null!==t&&(e.alternate=null,Ds(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&Qe(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var zs=null,Ms=!1;function Fs(e,t,n){for(n=n.child;null!==n;)Is(e,t,n),n=n.sibling}function Is(e,t,n){if(ye&&"function"===typeof ye.onCommitFiberUnmount)try{ye.onCommitFiberUnmount(ve,n)}catch(o){}switch(n.tag){case 26:Ps||xs(n,t),Fs(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Ps||xs(n,t);var r=zs,a=Ms;Cd(n.type)&&(zs=n.stateNode,Ms=!1),Fs(e,t,n),Fd(n.stateNode),zs=r,Ms=a;break;case 5:Ps||xs(n,t);case 6:if(r=zs,a=Ms,zs=null,Fs(e,t,n),Ms=a,null!==(zs=r))if(Ms)try{(9===zs.nodeType?zs.body:"HTML"===zs.nodeName?zs.ownerDocument.body:zs).removeChild(n.stateNode)}catch(l){Su(n,t,l)}else try{zs.removeChild(n.stateNode)}catch(l){Su(n,t,l)}break;case 18:null!==zs&&(Ms?(jd(9===(e=zs).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),$f(e)):jd(zs,n.stateNode));break;case 4:r=zs,a=Ms,zs=n.stateNode.containerInfo,Ms=!0,Fs(e,t,n),zs=r,Ms=a;break;case 0:case 11:case 14:case 15:vs(2,n,t),Ps||vs(4,n,t),Fs(e,t,n);break;case 1:Ps||(xs(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount&&bs(n,t,r)),Fs(e,t,n);break;case 21:Fs(e,t,n);break;case 22:Ps=(r=Ps)||null!==n.memoizedState,Fs(e,t,n),Ps=r;break;default:Fs(e,t,n)}}function Bs(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&null!==(e=e.memoizedState))){e=e.dehydrated;try{$f(e)}catch(n){Su(t,t.return,n)}}}function Us(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{$f(e)}catch(n){Su(t,t.return,n)}}function Hs(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Os),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Os),t;default:throw Error(l(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Ru.bind(null,e,t);t.then(r,r)}})}function Ws(e,t){var n=t.deletions;if(null!==n)for(var r=0;r title"))),fd(o,r,n),o[Ue]=e,et(o),r=o;break e;case"link":var i=nf("link","href",a).get(r+(n.href||""));if(i)for(var s=0;si)break;var u=s.transferSize,d=s.initiatorType;u&&pd(d)&&(l+=u*((s=s.responseEnd)of?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(a)}}:null}(d,m),null!==m)return Bc=o,e.cancelPendingCommit=m(hu.bind(null,e,t,o,n,r,a,l,i,s,u,d,null,f,p)),void Jc(e,o,l,!c)}hu(e,t,o,n,r,a,l,i,s)}function Xc(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var r=0;rg&&(l=g,g=h,h=l);var v=tr(i,h),y=tr(i,g);if(v&&y&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var b=d.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(y.node,y.offset)):(b.setEnd(y.node,y.offset),p.addRange(b))}}}}for(d=[],p=i;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"===typeof i.focus&&i.focus(),i=0;in?32:n,L.T=null,n=Hc,Hc=null;var o=Fc,i=Bc;if(Mc=0,Ic=Fc=null,Bc=0,0!==(6&pc))throw Error(l(331));var s=pc;if(pc|=4,sc(o.current),ec(o,o.current,i,n),pc=s,zu(0,!1),ye&&"function"===typeof ye.onPostCommitFiberRoot)try{ye.onPostCommitFiberRoot(ve,o)}catch(c){}return!0}finally{D.p=a,L.T=r,bu(e,t)}}function ku(e,t,n){t=Yr(n,t),null!==(e=wo(e,t=Ti(e.stateNode,t,2),2))&&(Oe(e,2),Du(e))}function Su(e,t,n){if(3===e.tag)ku(e,e,n);else for(;null!==t;){if(3===t.tag){ku(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===zc||!zc.has(r))){e=Yr(n,e),null!==(r=wo(t,n=Pi(2),2))&&(_i(n,r,t,e),Oe(r,2),Du(r));break}}t=t.return}}function Eu(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fc;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(xc=!0,a.add(n),e=Nu.bind(null,e,t,n),t.then(e,e))}function Nu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,mc===e&&(gc&n)===n&&(4===Sc||3===Sc&&(62914560&gc)===gc&&300>se()-Oc?0===(2&pc)&&tu(e,0):Cc|=n,Rc===gc&&(Rc=0)),Du(e)}function Cu(e,t){0===t&&(t=Pe()),null!==(e=Ar(e,t))&&(Oe(e,t),Du(e))}function ju(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Cu(e,n)}function Ru(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),Cu(e,n)}var Tu=null,Pu=null,_u=!1,Ou=!1,Au=!1,Lu=0;function Du(e){e!==Pu&&null===e.next&&(null===Pu?Tu=Pu=e:Pu=Pu.next=e),Ou=!0,_u||(_u=!0,Ed(function(){0!==(6&pc)?ae(ue,Mu):Fu()}))}function zu(e,t){if(!Au&&Ou){Au=!0;do{for(var n=!1,r=Tu;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var l=r.suspendedLanes,i=r.pingedLanes;o=(1<<31-we(42|e)+1)-1,o=201326741&(o&=a&~(l&~i))?201326741&o|1:o?2|o:0}0!==o&&(n=!0,Uu(r,o))}else o=gc,0===(3&(o=je(r,r===mc?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||Re(r,o)||(n=!0,Uu(r,o));r=r.next}}while(n);Au=!1}}function Mu(){Fu()}function Fu(){Ou=_u=!1;var e=0;0!==Lu&&function(){var e=window.event;if(e&&"popstate"===e.type)return e!==wd&&(wd=e,!0);return wd=null,!1}()&&(e=Lu);for(var t=se(),n=null,r=Tu;null!==r;){var a=r.next,o=Iu(r,t);0===o?(r.next=null,null===n?Tu=a:n.next=a,null===a&&(Pu=n)):(n=r,(0!==e||0!==(3&o))&&(Ou=!0)),r=a}0!==Mc&&5!==Mc||zu(e,!1),0!==Lu&&(Lu=0)}function Iu(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-62914561&e.pendingLanes;0 title"):null)}function af(e){return"stylesheet"!==e.type||0!==(3&e.state.loading)}var of=0;function lf(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)cf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var sf=null;function cf(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,sf=new Map,t.forEach(uf,e),sf=null,lf.call(e))}function uf(e,t){if(!(4&t.state.loading)){var n=sf.get(e);if(n)var r=n.get(null);else{n=new Map,sf.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o>>1,a=e[r];if(!(0>>1;ro(s,n))co(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[i]=n,r=i);else{if(!(co(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"===typeof performance&&"function"===typeof performance.now){var l=performance;t.unstable_now=function(){return l.now()}}else{var i=Date,s=i.now();t.unstable_now=function(){return i.now()-s}}var c=[],u=[],d=1,f=null,p=3,m=!1,h=!1,g=!1,v=!1,y="function"===typeof setTimeout?setTimeout:null,b="function"===typeof clearTimeout?clearTimeout:null,w="undefined"!==typeof setImmediate?setImmediate:null;function x(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(g=!1,x(e),!h)if(null!==r(c))h=!0,E||(E=!0,S());else{var t=r(u);null!==t&&O(k,t.startTime-e)}}var S,E=!1,N=-1,C=5,j=-1;function R(){return!!v||!(t.unstable_now()-je&&R());){var l=f.callback;if("function"===typeof l){f.callback=null,p=f.priorityLevel;var i=l(f.expirationTime<=e);if(e=t.unstable_now(),"function"===typeof i){f.callback=i,x(e),n=!0;break t}f===r(c)&&a(c),x(e)}else a(c);f=r(c)}if(null!==f)n=!0;else{var s=r(u);null!==s&&O(k,s.startTime-e),n=!1}}break e}finally{f=null,p=o,m=!1}n=void 0}}finally{n?S():E=!1}}}if("function"===typeof w)S=function(){w(T)};else if("undefined"!==typeof MessageChannel){var P=new MessageChannel,_=P.port2;P.port1.onmessage=T,S=function(){_.postMessage(null)}}else S=function(){y(T,0)};function O(e,n){N=y(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125l?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(g?(b(N),N=-1):g=!0,O(k,o-l))):(e.sortIndex=i,n(c,e),h||m||(h=!0,E||(E=!0,S()))),e},t.unstable_shouldYield=R,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},950(e,t,n){!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(672)}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var l={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&r;("object"==typeof i||"function"==typeof i)&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(e=>l[e]=()=>r[e]);return l.default=()=>r,n.d(o,l),o}})(),n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nc=void 0;var r={};n.r(r),n.d(r,{hasBrowserEnv:()=>Ja,hasStandardBrowserEnv:()=>eo,hasStandardBrowserWebWorkerEnv:()=>to,navigator:()=>Za,origin:()=>no});var a=n(43),o=n.t(a,2),l=n(391);function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r0&&void 0!==arguments[0]?arguments[0]:{})}function x(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function k(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function S(e,t){return{usr:e.state,key:e.key,idx:t}}function E(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return f(f({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?C(t):t),{},{state:n,key:t&&t.key||r||Math.random().toString(36).substring(2,10)})}function N(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function C(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function j(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{window:a=document.defaultView,v5Compat:o=!1}=r,l=a.history,i="POP",s=null,c=u();function u(){return(l.state||{idx:null}).idx}function d(){i="POP";let e=u(),t=null==e?null:e-c;c=e,s&&s({action:i,location:m.location,delta:t})}function p(e){return R(e)}null==c&&(c=0,l.replaceState(f(f({},l.state),{},{idx:c}),""));let m={get action(){return i},get location(){return e(a,l)},listen(e){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(b,d),s=e,()=>{a.removeEventListener(b,d),s=null}},createHref:e=>t(a,e),createURL:p,encodeLocation(e){let t=p(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){i="PUSH";let r=E(m.location,e,t);n&&n(r,e),c=u()+1;let d=S(r,c),f=m.createHref(r);try{l.pushState(d,"",f)}catch(p){if(p instanceof DOMException&&"DataCloneError"===p.name)throw p;a.location.assign(f)}o&&s&&s({action:i,location:m.location,delta:1})},replace:function(e,t){i="REPLACE";let r=E(m.location,e,t);n&&n(r,e),c=u();let a=S(r,c),d=m.createHref(r);l.replaceState(a,"",d),o&&s&&s({action:i,location:m.location,delta:0})},go:e=>l.go(e)};return m}function R(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="http://localhost";"undefined"!==typeof window&&(n="null"!==window.location.origin?window.location.origin:window.location.href),x(n,"No window.location.(origin|href) available to create URL");let r="string"===typeof e?e:N(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}new WeakMap;function T(e,t){return P(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"/",!1)}function P(e,t,n,r){let a=$(("string"===typeof t?C(t):t).pathname||"/",n);if(null==a)return null;let o=_(e);!function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n]);return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(o);let l=null;for(let i=0;null==l&&i1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=function(e,o){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a,i=arguments.length>3?arguments[3]:void 0,s={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};if(s.relativePath.startsWith("/")){if(!s.relativePath.startsWith(r)&&l)return;x(s.relativePath.startsWith(r),'Absolute route path "'.concat(s.relativePath,'" nested under path "').concat(r,'" is not valid. An absolute child route path must start with the combined path of all its parent routes.')),s.relativePath=s.relativePath.slice(r.length)}let c=Z([r,s.relativePath]),u=n.concat(s);e.children&&e.children.length>0&&(x(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'.concat(c,'".')),_(e.children,t,u,c,l)),(null!=e.path||e.index)&&t.push({path:c,score:B(c,e.index),routesMeta:u})};return e.forEach((e,t)=>{var n;if(""!==e.path&&null!==(n=e.path)&&void 0!==n&&n.includes("?"))for(let r of O(e.path))o(e,t,!0,r);else o(e,t)}),t}function O(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,a=n.endsWith("?"),o=n.replace(/\?$/,"");if(0===r.length)return a?[o,""]:[o];let l=O(r.join("/")),i=[];return i.push(...l.map(e=>""===e?o:[o,e].join("/"))),a&&i.push(...l),i.map(t=>e.startsWith("/")&&""===t?"/":t)}var A=/^:[\w-]+$/,L=3,D=2,z=1,M=10,F=-2,I=e=>"*"===e;function B(e,t){let n=e.split("/"),r=n.length;return n.some(I)&&(r+=F),t&&(r+=D),n.filter(e=>!I(e)).reduce((e,t)=>e+(A.test(t)?L:""===t?z:M),r)}function U(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],{routesMeta:r}=e,a={},o="/",l=[];for(let i=0;i{let{paramName:r,isOptional:a}=t;if("*"===r){let e=i[n]||"";l=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}const s=i[n];return e[r]=a&&!s?void 0:(s||"").replace(/%2F/g,"/"),e},{});return{params:s,pathname:o,pathnameBase:l,pattern:e}}function W(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];k("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'.concat(e,'" will be treated as if it were "').concat(e.replace(/\*$/,"/*"),'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "').concat(e.replace(/\*$/,"/*"),'".'));let r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,n)=>(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),r]}function V(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return k(!1,'The URL path "'.concat(e,'" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (').concat(t,").")),e}}function $(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}var q=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,K=e=>q.test(e);function Y(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)}),n.length>1?n.join("/"):"/"}function Q(e,t,n,r){return"Cannot include a '".concat(e,"' character in a manually specified `to.").concat(t,"` field [").concat(JSON.stringify(r),"]. Please separate it out to the `to.").concat(n,'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.')}function G(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function X(e){let t=G(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function J(e,t,n){let r,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];"string"===typeof e?r=C(e):(r=f({},e),x(!r.pathname||!r.pathname.includes("?"),Q("?","pathname","search",r)),x(!r.pathname||!r.pathname.includes("#"),Q("#","pathname","hash",r)),x(!r.search||!r.search.includes("#"),Q("#","search","hash",r)));let o,l=""===e||""===r.pathname,i=l?"/":r.pathname;if(null==i)o=n;else{let e=t.length-1;if(!a&&i.startsWith("..")){let t=i.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}o=e>=0?t[e]:"/"}let s=function(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",{pathname:r,search:a="",hash:o=""}="string"===typeof e?C(e):e;if(r)if(K(r))t=r;else{if(r.includes("//")){let e=r;r=r.replace(/\/\/+/g,"/"),k(!1,"Pathnames cannot have embedded double slashes - normalizing ".concat(e," -> ").concat(r))}t=r.startsWith("/")?Y(r.substring(1),"/"):Y(r,n)}else t=n;return{pathname:t,search:te(a),hash:ne(o)}}(r,o),c=i&&"/"!==i&&i.endsWith("/"),u=(l||"."===i)&&n.endsWith("/");return s.pathname.endsWith("/")||!c&&!u||(s.pathname+="/"),s}var Z=e=>e.join("/").replace(/\/\/+/g,"/"),ee=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),te=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",ne=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";var re=class{constructor(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function ae(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}function oe(e){return e.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var le="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement;function ie(e,t){let n=e;if("string"!==typeof n||!q.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,a=!1;if(le)try{let e=new URL(window.location.href),r=n.startsWith("//")?new URL(e.protocol+n):new URL(n),o=$(r.pathname,t);r.origin===e.origin&&null!=o?n=o+r.search+r.hash:a=!0}catch(o){k(!1,' contains an invalid URL which will probably break when clicked - please update to a valid URL path.'))}return{absoluteURL:r,isExternal:a,to:n}}Symbol("Uninstrumented");Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var se=["POST","PUT","PATCH","DELETE"],ce=(new Set(se),["GET",...se]);new Set(ce),Symbol("ResetLoaderData");var ue=a.createContext(null);ue.displayName="DataRouter";var de=a.createContext(null);de.displayName="DataRouterState";var fe=a.createContext(!1);function pe(){return a.useContext(fe)}var me=a.createContext({isTransitioning:!1});me.displayName="ViewTransition";var he=a.createContext(new Map);he.displayName="Fetchers";var ge=a.createContext(null);ge.displayName="Await";var ve=a.createContext(null);ve.displayName="Navigation";var ye=a.createContext(null);ye.displayName="Location";var be=a.createContext({outlet:null,matches:[],isDataRoute:!1});be.displayName="Route";var we=a.createContext(null);we.displayName="RouteError";var xe="REACT_ROUTER_ERROR";function ke(){return null!=a.useContext(ye)}function Se(){return x(ke(),"useLocation() may be used only in the context of a component."),a.useContext(ye).location}var Ee="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Ne(e){a.useContext(ve).static||a.useLayoutEffect(e)}function Ce(){let{isDataRoute:e}=a.useContext(be);return e?function(){let{router:e}=Me("useNavigate"),t=Ie("useNavigate"),n=a.useRef(!1);Ne(()=>{n.current=!0});let r=a.useCallback(async function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(n.current,Ee),n.current&&("number"===typeof r?await e.navigate(r):await e.navigate(r,f({fromRouteId:t},a)))},[e,t]);return r}():function(){x(ke(),"useNavigate() may be used only in the context of a component.");let e=a.useContext(ue),{basename:t,navigator:n}=a.useContext(ve),{matches:r}=a.useContext(be),{pathname:o}=Se(),l=JSON.stringify(X(r)),i=a.useRef(!1);Ne(()=>{i.current=!0});let s=a.useCallback(function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(k(i.current,Ee),!i.current)return;if("number"===typeof r)return void n.go(r);let s=J(r,JSON.parse(l),o,"path"===a.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:Z([t,s.pathname])),(a.replace?n.replace:n.push)(s,a.state,a)},[t,n,l,o,e]);return s}()}a.createContext(null);function je(e){let{relative:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{matches:n}=a.useContext(be),{pathname:r}=Se(),o=JSON.stringify(X(n));return a.useMemo(()=>J(e,JSON.parse(o),r,"path"===t),[e,o,r,t])}function Re(e,t,n,r,o){x(ke(),"useRoutes() may be used only in the context of a component.");let{navigator:l}=a.useContext(ve),{matches:i}=a.useContext(be),s=i[i.length-1],c=s?s.params:{},u=s?s.pathname:"/",d=s?s.pathnameBase:"/",p=s&&s.route;{let e=p&&p.path||"";He(u,!p||e.endsWith("*")||e.endsWith("*?"),'You rendered descendant (or called `useRoutes()`) at "'.concat(u,'" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won\'t match anymore and therefore the child routes will never render.\n\nPlease change the parent to .'))}let m,h=Se();if(t){var g;let e="string"===typeof t?C(t):t;x("/"===d||(null===(g=e.pathname)||void 0===g?void 0:g.startsWith(d)),'When overriding the location using `` or `useRoutes(routes, location)`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "'.concat(d,'" but pathname "').concat(e.pathname,'" was given in the `location` prop.')),m=e}else m=h;let v=m.pathname||"/",y=v;if("/"!==d){let e=d.replace(/^\//,"").split("/");y="/"+v.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=T(e,{pathname:y});k(p||null!=b,'No routes matched location "'.concat(m.pathname).concat(m.search).concat(m.hash,'" ')),k(null==b||void 0!==b[b.length-1].route.element||void 0!==b[b.length-1].route.Component||void 0!==b[b.length-1].route.lazy,'Matched leaf route at location "'.concat(m.pathname).concat(m.search).concat(m.hash,'" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.'));let w=De(b&&b.map(e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:Z([d,l.encodeLocation?l.encodeLocation(e.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?d:Z([d,l.encodeLocation?l.encodeLocation(e.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),i,n,r,o);return t&&w?a.createElement(ye.Provider,{value:{location:f({pathname:"/",search:"",hash:"",state:null,key:"default"},m),navigationType:"POP"}},w):w}function Te(){let e=Be(),t=ae(e)?"".concat(e.status," ").concat(e.statusText):e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},l={padding:"2px 4px",backgroundColor:r},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=a.createElement(a.Fragment,null,a.createElement("p",null,"\ud83d\udcbf Hey developer \ud83d\udc4b"),a.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",a.createElement("code",{style:l},"ErrorBoundary")," or"," ",a.createElement("code",{style:l},"errorElement")," prop on your route.")),a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),n?a.createElement("pre",{style:o},n):null,i)}var Pe=a.createElement(Te,null),_e=class extends a.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&"object"===typeof e&&e&&"digest"in e&&"string"===typeof e.digest){const t=function(e){if(e.startsWith("".concat(xe,":").concat("ROUTE_ERROR_RESPONSE",":{")))try{let t=JSON.parse(e.slice(40));if("object"===typeof t&&t&&"number"===typeof t.status&&"string"===typeof t.statusText)return new re(t.status,t.statusText,t.data)}catch(t){}}(e.digest);t&&(e=t)}let t=void 0!==e?a.createElement(be.Provider,{value:this.props.routeContext},a.createElement(we.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?a.createElement(Ae,{error:e},t):t}};_e.contextType=fe;var Oe=new WeakMap;function Ae(e){let{children:t,error:n}=e,{basename:r}=a.useContext(ve);if("object"===typeof n&&n&&"digest"in n&&"string"===typeof n.digest){let e=function(e){if(e.startsWith("".concat(xe,":").concat("REDIRECT",":{")))try{let t=JSON.parse(e.slice(28));if("object"===typeof t&&t&&"number"===typeof t.status&&"string"===typeof t.statusText&&"string"===typeof t.location&&"boolean"===typeof t.reloadDocument&&"boolean"===typeof t.replace)return t}catch(t){}}(n.digest);if(e){let t=Oe.get(n);if(t)throw t;let o=ie(e.location,r);if(le&&!Oe.get(n)){if(!o.isExternal&&!e.reloadDocument){const t=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:e.replace}));throw Oe.set(n,t),t}window.location.href=o.absoluteURL||o.to}return a.createElement("meta",{httpEquiv:"refresh",content:"0;url=".concat(o.absoluteURL||o.to)})}}return t}function Le(e){let{routeContext:t,match:n,children:r}=e,o=a.useContext(ue);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),a.createElement(be.Provider,{value:t},r)}function De(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let o=e,l=null===n||void 0===n?void 0:n.errors;if(null!=l){let e=o.findIndex(e=>e.route.id&&void 0!==(null===l||void 0===l?void 0:l[e.route.id]));x(e>=0,"Could not find a matching route for errors on route IDs: ".concat(Object.keys(l).join(","))),o=o.slice(0,Math.min(o.length,e+1))}let i=!1,s=-1;if(n)for(let a=0;a=0?o.slice(0,s+1):[o[0]];break}}}let c=n&&r?(e,t)=>{var a,o;r(e,{location:n.location,params:null!==(a=null===(o=n.matches)||void 0===o||null===(o=o[0])||void 0===o?void 0:o.params)&&void 0!==a?a:{},unstable_pattern:oe(n.matches),errorInfo:t})}:void 0;return o.reduceRight((e,r,u)=>{let d,f=!1,p=null,m=null;n&&(d=l&&r.route.id?l[r.route.id]:void 0,p=r.route.errorElement||Pe,i&&(s<0&&0===u?(He("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,m=null):s===u&&(f=!0,m=r.route.hydrateFallbackElement||null)));let h=t.concat(o.slice(0,u+1)),g=()=>{let t;return t=d?p:f?m:r.route.Component?a.createElement(r.route.Component,null):r.route.element?r.route.element:e,a.createElement(Le,{match:r,routeContext:{outlet:e,matches:h,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===u)?a.createElement(_e,{location:n.location,revalidation:n.revalidation,component:p,error:d,children:g(),routeContext:{outlet:null,matches:h,isDataRoute:!0},onError:c}):g()},null)}function ze(e){return"".concat(e," must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.")}function Me(e){let t=a.useContext(ue);return x(t,ze(e)),t}function Fe(e){let t=a.useContext(de);return x(t,ze(e)),t}function Ie(e){let t=function(e){let t=a.useContext(be);return x(t,ze(e)),t}(e),n=t.matches[t.matches.length-1];return x(n.route.id,"".concat(e,' can only be used on routes that contain a unique "id"')),n.route.id}function Be(){var e;let t=a.useContext(we),n=Fe("useRouteError"),r=Ie("useRouteError");return void 0!==t?t:null===(e=n.errors)||void 0===e?void 0:e[r]}var Ue={};function He(e,t,n){t||Ue[e]||(Ue[e]=!0,k(!1,n))}var We={};function Ve(e,t){e||We[t]||(We[t]=!0,console.warn(t))}o.useOptimistic;a.memo(function(e){let{routes:t,future:n,state:r,onError:a}=e;return Re(t,void 0,r,a,n)});function $e(e){x(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function qe(e){let{basename:t="/",children:n=null,location:r,navigationType:o="POP",navigator:l,static:i=!1,unstable_useTransitions:s}=e;x(!ke(),"You cannot render a inside another . You should never have more than one in your app.");let c=t.replace(/^\/*/,"/"),u=a.useMemo(()=>({basename:c,navigator:l,static:i,unstable_useTransitions:s,future:{}}),[c,l,i,s]);"string"===typeof r&&(r=C(r));let{pathname:d="/",search:f="",hash:p="",state:m=null,key:h="default"}=r,g=a.useMemo(()=>{let e=$(d,c);return null==e?null:{location:{pathname:e,search:f,hash:p,state:m,key:h},navigationType:o}},[c,d,f,p,m,h,o]);return k(null!=g,' is not able to match the URL "').concat(d).concat(f).concat(p,"\" because it does not start with the basename, so the won't render anything.")),null==g?null:a.createElement(ve.Provider,{value:u},a.createElement(ye.Provider,{children:n,value:g}))}function Ke(e){let{children:t,location:n}=e;return Re(Ye(t),n)}a.Component;function Ye(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[];return a.Children.forEach(e,(e,r)=>{if(!a.isValidElement(e))return;let o=[...t,r];if(e.type===a.Fragment)return void n.push.apply(n,Ye(e.props.children,o));x(e.type===$e,"[".concat("string"===typeof e.type?e.type:e.type.name,"] is not a component. All component children of must be a or ")),x(!e.props.index||!e.props.children,"An index route cannot have child routes.");let l={id:e.props.id||o.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(l.children=Ye(e.props.children,o)),n.push(l)}),n}var Qe="get",Ge="application/x-www-form-urlencoded";function Xe(e){return"undefined"!==typeof HTMLElement&&e instanceof HTMLElement}var Je=null;var Ze=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function et(e){return null==e||Ze.has(e)?e:(k(!1,'"'.concat(e,'" is not a valid `encType` for `
`/`` and will default to "').concat(Ge,'"')),null)}function tt(e,t){let n,r,a,o,l;if(Xe(i=e)&&"form"===i.tagName.toLowerCase()){let l=e.getAttribute("action");r=l?$(l,t):null,n=e.getAttribute("method")||Qe,a=et(e.getAttribute("enctype"))||Ge,o=new FormData(e)}else if(function(e){return Xe(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Xe(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let l=e.form;if(null==l)throw new Error('Cannot submit a + + + + + + + + + +
+
+ +

Built for the Thrill-Seeker

+

Everything you need for an unforgettable open-road experience — no hassle, just pure adrenaline.

+
+
+
🏎️
+

Polaris Slingshot SL

+

Our fleet features the latest Polaris Slingshot models — powerful, fast, and impossible to ignore on Texas roads.

+
+
+
🛡️
+

Full Coverage Insurance

+

Every rental includes comprehensive coverage. Drive with confidence knowing you're fully protected.

+
+
+
🗺️
+

Scenic Route Guides

+

We hand you a curated Texas route map — the best backroads, vistas, and stops around Parker County.

+
+
+
⛑️
+

Safety First

+

DOT-approved helmets included with every rental. Safety orientation for all drivers before you hit the road.

+
+
+
📞
+

Roadside Assistance

+

24/7 roadside support so you're never stranded. We've got your back from pickup to return.

+
+
+
+

Easy Booking

+

Simple online reservation, flexible pickup times, and transparent pricing. No hidden fees — ever.

+
+
+
+
+ + +
+
+ +

Pick Your Adventure

+

Transparent pricing. No surprise fees. Just you, the open road, and a machine that turns heads.

+
+
+

Half Day

+

$99

+

4 hours of freedom

+
    +
  • Polaris Slingshot SL
  • +
  • DOT helmets included
  • +
  • Safety orientation
  • +
  • Route map & guide
  • +
  • Proof of insurance required
  • +
  • Roadside assistance
  • +
+ Book Half Day +
+ +
+

Weekend

+

$299

+

48-hour getaway

+
    +
  • Polaris Slingshot SL
  • +
  • DOT helmets included
  • +
  • Safety orientation
  • +
  • Route map & guide
  • +
  • Proof of insurance required
  • +
  • 24/7 roadside assistance
  • +
+ Book Weekend +
+
+

Must be 25+ with valid driver's license. Security deposit required. Prices include tax.

+
+
+ + +
+
+ +

Ready in 5 Simple Steps

+

From booking to keys in hand — we make it effortless so you can focus on the fun.

+
+
+
1
+

Choose Your Package

+

Half day, full day, or weekend — pick the adventure that fits your schedule and budget.

+
+
+
2
+

Book & Submit

+

Fill out our simple booking form online or give us a call. We'll review your request right away.

+
+
+
3
+

Get Approved

+

We'll confirm availability and reach out within a few hours. Once approved, you're officially on the calendar.

+
+
+
4
+

Sign Your Waiver

+

You'll receive a link to our digital rental agreement. Sign it online in minutes — no printer needed.

+
+
+
5
+

Hit the Road

+

Arrive at pickup with your license and proof of insurance. Complete your safety briefing, grab your helmets, and go.

+
+
+
+
+ + +
+
+ +

Texas Roads Worth Driving

+

We know the best roads. Every rental comes with a recommended route guide — here's a taste.

+
+
+

The Parker County Loop

+

~45 miles • 1.5 hrs

+

Roll through Weatherford's historic downtown, Millsap, and back through the rolling Texas plains. The perfect intro ride.

+
+
+

Possum Kingdom Run

+

~80 miles • 2.5 hrs

+

Head northwest toward Mineral Wells and Possum Kingdom Lake. Hill Country scenery, lake views, and open highway.

+
+
+

Granbury & Glen Rose

+

~70 miles • 2 hrs

+

Cruise south to the charming Granbury square and dinosaur country in Glen Rose. Great for couples and history lovers.

+
+
+

DFW Sunset Cruise

+

~60 miles • 2 hrs

+

Head east toward the Fort Worth skyline at golden hour, loop through Azle and back. City lights in an open cockpit.

+
+
+
+
+ + +
+
+ +

Questions & Answers

+

Everything you need to know before you book.

+
+
+ Do I need a motorcycle license to rent a Polaris Slingshot in Texas? +

In Texas, a standard Class C driver's license is all you need. No motorcycle endorsement required. You must be 25 or older with a clean driving record to rent.

+
+
+ What's included in every rental? +

Every rental includes the Polaris Slingshot, DOT-approved helmets for driver and passenger, a safety orientation, a suggested scenic route map, and roadside assistance. Renters must provide proof of valid personal auto insurance. We carry a comprehensive fleet policy covering the vehicle.

+
+
+ How many people can ride in a Polaris Slingshot? +

The Polaris Slingshot is a two-seater — one driver and one passenger. Both experience the open-air thrill side by side in sports-car-style seats.

+
+
+ Is there a security deposit? +

Yes, a refundable security deposit is required at the time of pickup. The deposit is returned in full upon safe return of the vehicle with no damage.

+
+
+ Can I drive outside of Parker County? +

Yes — you can drive throughout the DFW area including Weatherford, Mineral Wells, Granbury, Azle, and Fort Worth. We'll note any restrictions in your rental agreement.

+
+
+ What if it rains? +

The Polaris Slingshot can be driven in light rain, but we recommend rescheduling in severe weather for your safety and comfort. We offer flexible rescheduling with 24-hour notice.

+
+
+ How do I cancel or reschedule? +

Cancel or reschedule free of charge up to 24 hours before your rental start time. Cancellations within 24 hours are subject to a 50% fee.

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

Ready to Ride?

+

Send us your preferred date and package and we'll confirm availability within a few hours. Can't wait? Give us a call.

+
+ 📍 + Weatherford, TX 76086
(Exact pickup address provided at booking)
+
+
+ 📞 + (817) 266-2022 +
+ +
+ 🕐 + Mon–Fri: 9am–6pm • Sat–Sun: 8am–8pm +
+
+
+ +
+
+ +

Loading…

+ +
+
+
Checking availability…
+
+
+
Available
+
Selected
+ +
Unavailable
+
+

Click a date to select it — click again to deselect. Weekend package shows both days automatically.

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

Deposit — $45 today

+ +
+

A $45 hold is placed on your card to secure your date — not charged until confirmed. Remaining balance is due at pickup.

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

© 2026 Parker County Slingshot Rentals — Weatherford, Texas. All rights reserved.

+

Polaris Slingshot® is a registered trademark of Polaris Inc. We are an independent rental operator.

+
+ + + + + diff --git a/sites/parkerslingshotrentals.com/public_html/robots.txt b/sites/parkerslingshotrentals.com/public_html/robots.txt new file mode 100644 index 0000000..e4f0436 --- /dev/null +++ b/sites/parkerslingshotrentals.com/public_html/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://parkerslingshotrentals.com/sitemap.xml diff --git a/sites/parkerslingshotrentals.com/public_html/sitemap.xml b/sites/parkerslingshotrentals.com/public_html/sitemap.xml new file mode 100644 index 0000000..c86c01b --- /dev/null +++ b/sites/parkerslingshotrentals.com/public_html/sitemap.xml @@ -0,0 +1,12 @@ + + + + https://parkerslingshotrentals.com/ + 2026-05-19 + weekly + 1.0 + + diff --git a/sites/parkerslingshotrentals.com/public_html/upload-docs.php b/sites/parkerslingshotrentals.com/public_html/upload-docs.php new file mode 100644 index 0000000..a275cb6 --- /dev/null +++ b/sites/parkerslingshotrentals.com/public_html/upload-docs.php @@ -0,0 +1,187 @@ +prepare("SELECT id, name, email, booking_ref, rental_date, status FROM bookings WHERE booking_ref=?"); + $stmt->execute([$ref]); + $booking = $stmt->fetch(); + if (!$booking) $error = 'Booking not found. Please check your confirmation email.'; + elseif ($booking['status'] === 'cancelled') $error = 'This booking has been cancelled.'; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST' && $booking && !$error) { + $file = $_FILES['doc'] ?? null; + if (!$file || $file['error'] !== UPLOAD_ERR_OK) { + $error = 'Upload failed — please try again or check file size.'; + } else { + $mime = detectAllowedMime($file['tmp_name']); + if (!$mime) { + $error = 'Only JPG, PNG, or PDF files are accepted.'; + } elseif ($file['size'] > 10 * 1024 * 1024) { + $error = 'File must be under 10 MB.'; + } else { + $ext = ALLOWED_DOC_MIMES[$mime]; + $dir = __DIR__ . '/uploads/' . $ref; + if (!is_dir($dir)) mkdir($dir, 0750, true); + $fname = $type . '_' . date('YmdHis') . '.' . $ext; + $dest = $dir . '/' . $fname; + if (move_uploaded_file($file['tmp_name'], $dest)) { + $col = $type === 'license' ? 'license_file' : 'insurance_file'; + $rel = 'uploads/' . $ref . '/' . $fname; + db()->prepare("UPDATE bookings SET {$col}=? WHERE booking_ref=?")->execute([$rel, $ref]); + + $typeLabel = $type === 'license' ? "Driver's License" : 'Proof of Insurance'; + $dateLabel = date('F j, Y', strtotime($booking['rental_date'])); + $adminHtml = "
+
+

{$typeLabel} Uploaded — {$booking['booking_ref']}

+
+
+

" . htmlspecialchars($booking['name']) . " uploaded their {$typeLabel} for booking {$booking['booking_ref']} (rental: {$dateLabel}).

+

View it in the admin panel under their booking detail.

+ +
+
"; + sendEmail(ADMIN_EMAIL, 'Parker Slingshot Admin', "{$typeLabel} Uploaded — {$booking['booking_ref']}: " . $booking['name'], $adminHtml); + $done = true; + } else { + $error = 'Could not save file. Please try again.'; + } + } + } +} + +$typeLabel = $type === 'license' ? "Driver's License" : ($type === 'insurance' ? 'Proof of Insurance' : ''); +$dateLabel = $booking ? date('F j, Y', strtotime($booking['rental_date'])) : ''; +?> + + + + + Upload Document — Parker County Slingshot Rentals + + + + + + +
+ Parker County Slingshot Rentals + Document Upload +
+
+ + +
+

Upload Document

+

Invalid or missing upload link. Please use the link from your email or contact us.

+
+ + +
+
+

Need help? Call or text (817) 266-2022.

+
+ + +
+
+
+

Upload Received!

+

Thanks, ! Your has been submitted for booking .

+

We'll review it and still do a quick visual check at pickup. See you on !

+
+
+ + +
+
+

Upload

+
+
+
+
+

+ + Please upload a photo or scan of your current auto insurance card. JPG, PNG, or PDF accepted (max 10 MB). + + Please upload a photo or scan of the front of your driver's license. JPG, PNG, or PDF accepted (max 10 MB). + +

+

We'll still do a visual check at pickup — this is just for our records.

+
+
+ +
📎
+

Tap or drag your file here

+

JPG • PNG • PDF • max 10 MB

+
+
+ +
+

Your document is stored securely and only visible to Parker County Slingshot Rentals staff.

+
+ + +
+ + + diff --git a/sites/parkerslingshotrentals.com/public_html/uploads/.htaccess b/sites/parkerslingshotrentals.com/public_html/uploads/.htaccess new file mode 100644 index 0000000..23a9814 --- /dev/null +++ b/sites/parkerslingshotrentals.com/public_html/uploads/.htaccess @@ -0,0 +1,5 @@ +# Block direct web access - documents served only through view-doc.php / admin/view-doc.php. +# Require all denied / Order deny,allow do NOT work on this OpenLiteSpeed setup - +# only RewriteRule [F,L] actually blocks requests here (confirmed this session). +RewriteEngine On +RewriteRule .* - [F,L] diff --git a/sites/parkerslingshotrentals.com/public_html/view-doc.php b/sites/parkerslingshotrentals.com/public_html/view-doc.php new file mode 100644 index 0000000..1f7cfd1 --- /dev/null +++ b/sites/parkerslingshotrentals.com/public_html/view-doc.php @@ -0,0 +1,50 @@ +prepare("SELECT {$col} AS file_path FROM bookings WHERE booking_ref=?"); +$stmt->execute([$ref]); +$row = $stmt->fetch(); + +if (!$row || !$row['file_path']) { + http_response_code(404); + header('Content-Type: text/plain'); + exit('Document not found.'); +} + +$path = resolveUploadPath(__DIR__, $row['file_path']); +if (!$path) { + http_response_code(404); + header('Content-Type: text/plain'); + exit('File not found.'); +} + +$mime = detectAllowedMime($path); +if (!$mime) { + http_response_code(403); + header('Content-Type: text/plain'); + exit('Invalid file type.'); +} + +$fname = $type . '-' . $ref . '.' . ALLOWED_DOC_MIMES[$mime]; +header('Content-Type: ' . $mime); +header('Content-Disposition: inline; filename="' . $fname . '"'); +header('Content-Length: ' . filesize($path)); +header('Cache-Control: private, max-age=3600'); +readfile($path); +exit; diff --git a/sites/parkerslingshotrentals.com/public_html/waiver.php b/sites/parkerslingshotrentals.com/public_html/waiver.php new file mode 100644 index 0000000..35126d7 --- /dev/null +++ b/sites/parkerslingshotrentals.com/public_html/waiver.php @@ -0,0 +1,365 @@ +prepare("SELECT * FROM bookings WHERE booking_ref = ?"); + $stmt->execute([$ref]); + $booking = $stmt->fetch(); + if (!$booking) { + $error = 'Booking reference not found. Please check your confirmation email.'; + } elseif ($booking['status'] === 'cancelled') { + $error = 'This booking has been cancelled. Please contact us if you have questions.'; + } elseif ($booking['waiver_signed']) { + $signed = true; + } +} + +// Handle submission +if ($_SERVER['REQUEST_METHOD'] === 'POST' && $booking && !$signed) { + $sigName = trim(strip_tags($_POST['sig_name'] ?? '')); + $sigData = $_POST['sig_data'] ?? ''; // base64 canvas PNG + $checks = (array)($_POST['checks'] ?? []); + $required = ['age','license','insurance','rules','damage','waiver']; + + $missing = array_diff($required, $checks); + if (!$sigName) { + $error = 'Please type your full name to sign.'; + } elseif ($missing) { + $error = 'Please check all required boxes before signing.'; + } elseif (!$sigData || !preg_match('#^data:image/png;base64,[A-Za-z0-9+/]+={0,2}$#', $sigData) || strlen($sigData) > 300000) { + $error = 'Please draw your signature in the box above.'; + } else { + $ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'] ?? ''; + $ip = explode(',', $ip)[0]; + db()->prepare( + "UPDATE bookings SET waiver_signed=1, waiver_signed_at=NOW(), waiver_ip=?, waiver_name=?, waiver_sig=? WHERE booking_ref=?" + )->execute([trim($ip), $sigName, $sigData, $ref]); + + $pkg = PACKAGES[$booking['package']] ?? ['label'=>$booking['package']]; + $dateLabel = date('F j, Y', strtotime($booking['rental_date'])); + + $adminHtml = "
+
+

Waiver Signed — {$ref}

+
+
+

" . htmlspecialchars($booking['name']) . " signed the rental waiver for booking {$ref}.

+ + + + + + +
Package" . htmlspecialchars($pkg['label']) . "
Date{$dateLabel}
Signed by" . htmlspecialchars($sigName) . "
IP" . htmlspecialchars($ip) . "
Timestamp" . date('F j, Y g:i A') . " CT
+ Signature +
+
"; + + $custHtml = "
+
+

Parker County Slingshot Rentals

+
+
+

Waiver Signed — You're All Set!

+

Hey " . htmlspecialchars($booking['name']) . ", your rental agreement for booking {$ref} is signed and on file. See you on {$dateLabel}!

+

Remember to bring:

+
    +
  • Valid driver's license
  • +
  • Proof of personal auto insurance
  • +
+

Questions? Call or text " . ADMIN_PHONE . ".

+

Ride on,
The Parker County Slingshot Team

+
+
+

© " . date('Y') . " Parker County Slingshot Rentals — Weatherford, TX

+
+
"; + + sendEmail(ADMIN_EMAIL, 'Parker Slingshot Admin', "Waiver Signed: {$ref} — " . $booking['name'], $adminHtml); + sendEmail($booking['email'], $booking['name'], "Rental Agreement Signed — {$ref}", $custHtml); + + $signed = true; + } +} + +$pkgLabel = $booking ? (PACKAGES[$booking['package']]['label'] ?? $booking['package']) : ''; +$dateLabel = $booking ? date('F j, Y', strtotime($booking['rental_date'])) : ''; +?> + + + + + Rental Agreement — Parker County Slingshot Rentals + + + + + + + +
+ Parker County Slingshot Rentals + Rental Agreement +
+ +
+ + + +
+

Rental Agreement

+

Enter your booking reference from your confirmation email to access your rental agreement.

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

You're All Set!

+

Your rental agreement for booking is signed and on file. We'll see you on !

+

A confirmation was sent to .

+

Remember to bring:

+
    +
  • Valid driver's license
  • +
  • Proof of personal auto insurance
  • +
+
+ +
+ + + +
+ +
+

Rental Agreement

+

Please read and sign the agreement below for your upcoming rental.

+ +
+
Booking Ref
+
Name
+
Package
+
Rental Date
+
+ +

Rental Terms & Conditions

+

This Rental Agreement ("Agreement") is entered into between Parker County Slingshot Rentals ("Company") and the renter identified above ("Renter"). By signing below, Renter agrees to all terms stated herein.

+ +

Eligibility Requirements

+

Renter must be at least 25 years of age and hold a valid Class C driver's license (or equivalent) issued by a U.S. state or territory. Renter must not have any DUI/DWI convictions within the past 5 years.

+ +

Insurance Requirement

+

Renter is required to carry and provide proof of valid personal auto insurance at the time of vehicle pickup. The Company maintains a fleet insurance policy covering the vehicle; however, Renter's personal insurance is primary for liability arising from Renter's operation of the vehicle. Renter accepts financial responsibility for any deductible, damages, or losses not covered by either policy.

+ +

Vehicle Use & Rules

+

Renter agrees to operate the Polaris Slingshot in a safe, lawful manner and specifically agrees to:

+
    +
  • Obey all applicable traffic laws and speed limits
  • +
  • Never operate the vehicle under the influence of alcohol, drugs, or any impairing substance
  • +
  • Never allow an unauthorized third party to operate the vehicle
  • +
  • Wear the provided DOT-approved helmet at all times while operating the vehicle
  • +
  • Not take the vehicle off paved roads or outside the approved driving area
  • +
  • Return the vehicle at the agreed-upon time and location in the same condition it was received
  • +
+ +

Damage & Security Deposit

+

A refundable security deposit is required at pickup. Renter is financially responsible for any damage to the vehicle, including but not limited to collision damage, tire damage, interior damage, and any fines or citations incurred during the rental period. The Company reserves the right to apply the security deposit toward any such costs.

+ +

Assumption of Risk & Release of Liability

+

Renter acknowledges that operating a Polaris Slingshot involves inherent risks including, but not limited to, physical injury or death. Renter voluntarily assumes all such risks and, to the fullest extent permitted by Texas law, releases and holds harmless Parker County Slingshot Rentals, its owners, employees, and agents from any and all claims, damages, or liability arising out of Renter's use of the vehicle.

+ +

Cancellation Policy

+

Cancellations made more than 24 hours before the rental start time are fully refunded. Cancellations within 24 hours of the rental start time are subject to a 50% cancellation fee.

+
+ +
+ +
+

Acknowledgments

+

Check each box to confirm you have read and agree to that section.

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

Your Signature

+ + + + +

Draw Your Signature

+
+ + +
+

Use your mouse or finger to sign in the box above.

+ +

+ By clicking "Sign & Submit" below, you confirm that you have read this entire Rental Agreement, that all acknowledgments above are checked, and that your typed name and drawn signature constitute a legally binding electronic signature under the ESIGN Act and Texas law. Signed: . +

+ + +
+
+ + + +
+ + + + diff --git a/sites/tomsjavajive.com/public_html/.gitignore b/sites/tomsjavajive.com/public_html/.gitignore new file mode 100644 index 0000000..707bf70 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/.gitignore @@ -0,0 +1,7 @@ +*.log +.DS_Store +*.swp + +config/database.php +uploads/ +vendor/ diff --git a/sites/tomsjavajive.com/public_html/.htaccess b/sites/tomsjavajive.com/public_html/.htaccess new file mode 100644 index 0000000..df1797e --- /dev/null +++ b/sites/tomsjavajive.com/public_html/.htaccess @@ -0,0 +1,105 @@ +# Tom's Java Jive - Apache Configuration + +# Enable URL rewriting +RewriteEngine On + +# Block sensitive paths outright. RedirectMatch/FilesMatch/Require/Order +# directives were confirmed NOT to be honored on this LiteSpeed setup (config/, +# includes/*.php, and .git/ were all still reachable live despite the +# RedirectMatch rules further down) — only mod_rewrite matching on REQUEST_URI +# is confirmed to actually work here. This must come before other rewrites. +RewriteCond %{REQUEST_URI} ^/(\.git|config/|includes/.*\.php|install/|!install!!/|db/) +RewriteRule .* - [F,L] +RewriteCond %{REQUEST_URI} \.sql$ [OR] +RewriteCond %{REQUEST_URI} \.py$ +RewriteRule .* - [F,L] + +# Force HTTPS (uncomment in production) +RewriteCond %{HTTPS} off +RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] + +# Remove trailing slashes +RewriteCond %{REQUEST_FILENAME} !-d +RewriteCond %{REQUEST_URI} (.+)/$ +RewriteRule ^ %1 [L,R=301] + +# Protect sensitive directories +RedirectMatch 403 /config/.*$ +RedirectMatch 403 /includes/.*\.php$ +RedirectMatch 403 /install/.*$ +RedirectMatch 403 /db/.*$ + +# Block .git (full source + commit history, including any credentials ever +# committed to it) from ever being served. NOTE: on the live server this +# repo's .git directory lives inside the docroot itself (deployed via +# `git clone` directly into public_html) and was confirmed reachable over +# HTTP (.git/config, .git/logs/HEAD, etc. all returned real content) even +# though the RedirectMatch rules above were also confirmed NOT blocking +# /config/*.php or /includes/*.php live — meaning .htaccess directives are +# not being fully honored by the current web server. This needs a server +# config fix (vhost-level deny, or moving .git outside the docroot) in +# addition to this file — see review notes. +RedirectMatch 403 /\.git/.*$ +RedirectMatch 403 /\.git$ + + + + Require all denied + + + Order allow,deny + Deny from all + + + +# Set default charset +AddDefaultCharset UTF-8 + +# Disable directory listing +Options -Indexes + +# Set timezone (optional) +# php_value date.timezone "America/New_York" + +# Increase upload limits (adjust as needed) +php_value upload_max_filesize 10M +php_value post_max_size 10M + +# Enable compression (optional) + + AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript application/json + + +# Browser caching (optional) + + ExpiresActive On + ExpiresByType image/jpg "access plus 1 year" + ExpiresByType image/jpeg "access plus 1 year" + ExpiresByType image/png "access plus 1 year" + ExpiresByType image/webp "access plus 1 year" + ExpiresByType text/css "access plus 1 month" + ExpiresByType application/javascript "access plus 1 month" + + +# Security headers + + Header set X-Content-Type-Options "nosniff" + Header set X-Frame-Options "SAMEORIGIN" + Header set X-XSS-Protection "1; mode=block" + + +# Custom error pages (optional) +# ErrorDocument 404 /404.php +# ErrorDocument 500 /500.php +# SEO ADDITIONS +RewriteCond %{HTTP_HOST} ^www\.tomsjavajive\.com [NC] +RewriteRule ^(.*)$ https://tomsjavajive.com/$1 [R=301,L] + + ExpiresActive On + ExpiresByType image/jpg "access plus 1 year" + ExpiresByType image/jpeg "access plus 1 year" + ExpiresByType image/png "access plus 1 year" + ExpiresByType image/webp "access plus 1 year" + ExpiresByType text/css "access plus 1 month" + ExpiresByType application/javascript "access plus 1 month" + diff --git a/sites/tomsjavajive.com/public_html/README.md b/sites/tomsjavajive.com/public_html/README.md new file mode 100644 index 0000000..4829f46 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/README.md @@ -0,0 +1,208 @@ +# Tom's Java Jive - E-commerce Coffee Shop + +A complete e-commerce platform built with **PHP 8.4** and **MySQL 8.0** for cPanel hosting. + +## Quick Download + +**ZIP File:** [tomsjavajive-php.zip](https://tomsjavajive.com/tomsjavajive-php.zip) + +## Features + +### Storefront +- 🛒 Shopping cart with session management +- 📦 Product catalog with categories, search, and filtering +- 💳 Checkout with multiple payment options +- 📱 PWA support (installable, offline capable) +- 👤 Customer accounts with order history + +### Admin Panel +- 📊 Dashboard with sales overview +- 📈 Advanced analytics with charts +- 🛍️ Product management (CRUD) +- 📋 Order management +- 💰 POS (Point of Sale) system +- 👥 Customer management with wallet +- ⭐ Review moderation +- 🎁 Gift cards & coupons +- ✉️ Email campaigns +- 📦 Inventory tracking +- 🚚 Shipping configuration +- 💳 Payment settings +- 👤 Admin user management + +### Integrations (Placeholder Keys - Configure in Admin) +- 📧 **SendGrid** - Transactional emails +- 📱 **Twilio** - SMS notifications +- 🔔 **Push Notifications** - Web push +- 🏆 **Loyalty Program** - 4-tier rewards system +- 💳 **Stripe Payments** - cURL-based (no Composer needed) + +## Installation + +### Requirements +- PHP 8.0+ (tested on 8.4.19) +- MySQL 8.0+ +- Apache with mod_rewrite + +### Steps + +1. **Upload Files** + - Extract the ZIP to your `public_html` folder + - Or upload via FTP + +2. **Create Database** + ``` + Log into phpMyAdmin + Create a new database (e.g., `tomsjavajive`) + ``` + +3. **Import Schema** + - Go to phpMyAdmin > Import + - Select `install/schema.sql` + - Click "Go" + +4. **Run Migrations** (for full features) + - Import `install/migration_v2.sql` + - Import `install/migration_v3.sql` + +5. **Configure Database** + - Edit `config/database.php`: + ```php + define('DB_HOST', 'localhost'); + define('DB_NAME', 'your_database_name'); + define('DB_USER', 'your_username'); + define('DB_PASS', 'your_password'); + ``` + +6. **Create Admin User** + - `create-admin.php` and the seeded default admin account have been removed — + insert your own row into `admin_users` directly (via phpMyAdmin/CLI) with a + bcrypt hash from `password_hash($password, PASSWORD_BCRYPT, ['cost' => 12])`. + Never leave a well-known default password (e.g. `admin123!`) in place. + +7. **Configure Site URL** + - Edit `config/config.php`: + ```php + define('SITE_URL', 'https://yoursite.com'); + define('SITE_NAME', "Tom's Java Jive"); + ``` + +8. **Delete Installation Files** (Security) + ``` + Delete: create-admin.php + Delete: install/ folder (optional, keep for reference) + ``` + +## Directory Structure + +``` +/ +├── admin/ # Admin panel pages +│ ├── assets/ # Admin CSS/JS +│ ├── includes/ # Admin header/footer +│ └── *.php # Admin pages +├── account/ # Customer portal +│ └── includes/ # Account layout +├── api/ # AJAX endpoints +├── assets/ # Frontend assets +│ ├── css/ +│ ├── js/ +│ ├── images/ +│ └── icons/ +├── config/ # Configuration files +├── includes/ # Core PHP files +│ ├── auth.php # Authentication +│ ├── db.php # Database connection +│ ├── email.php # SendGrid integration +│ ├── sms.php # Twilio integration +│ ├── push.php # Push notifications +│ ├── loyalty.php # Loyalty program +│ └── functions.php # Helper functions +├── install/ # Installation files +│ ├── schema.sql # Main database schema +│ ├── migration_v2.sql +│ └── migration_v3.sql +├── manifest.json # PWA manifest +├── sw.js # Service worker +└── *.php # Storefront pages +``` + +## Configuring Integrations + +### SendGrid (Email) +1. Get API key from https://app.sendgrid.com/settings/api_keys +2. Admin > Settings > Integrations +3. Enter API key, from email, and from name + +### Twilio (SMS) +1. Get credentials from https://console.twilio.com/ +2. Admin > Settings > Integrations +3. Enter Account SID, Auth Token, and Phone Number + +### Push Notifications +1. Generate VAPID keys at https://web-push-codelab.glitch.me/ +2. Admin > Settings > Integrations +3. Enter Public and Private keys + +## Loyalty Program Tiers + +| Tier | Points Required | Multiplier | Key Benefits | +|------|----------------|------------|--------------| +| Bronze Bean | 0 | 1x | Birthday reward | +| Silver Roast | 500 | 1.25x | Free shipping $25+ | +| Gold Blend | 1,500 | 1.5x | Free all shipping | +| Platinum Reserve | 5,000 | 2x | VIP benefits | + +**Redemption:** 100 points = $1 wallet credit + +## Security Notes + +- All passwords are hashed with `password_hash()` +- PDO prepared statements prevent SQL injection +- CSRF protection on forms +- XSS prevention via `htmlspecialchars()` +- Session-based authentication + +## Stripe Payment Integration + +The app includes a **cURL-based Stripe integration** that works without Composer: + +### Features +- **PaymentIntent API** - Inline card element payments +- **Checkout Sessions** - Hosted Stripe payment page (redirect) +- **Webhooks** - Payment confirmation handlers +- **Demo Mode** - Works without API keys for testing + +### Setup +1. Get your API keys from https://dashboard.stripe.com/apikeys +2. Edit `config/config.php`: + ```php + define('STRIPE_SECRET_KEY', 'sk_live_your_key'); + define('STRIPE_PUBLISHABLE_KEY', 'pk_live_your_key'); + define('STRIPE_WEBHOOK_SECRET', 'whsec_your_secret'); + ``` + +### Webhook Setup +1. Stripe Dashboard > Developers > Webhooks +2. Add endpoint: `https://yoursite.com/api/webhook.php` +3. Select events: `payment_intent.succeeded`, `checkout.session.completed` + +### Files +- `includes/stripe.php` - Core Stripe API class (cURL-based) +- `api/create-payment-intent.php` - Create PaymentIntent +- `api/create-checkout-session.php` - Create Checkout Session +- `api/payment-status.php` - Poll payment status +- `api/webhook.php` - Handle Stripe webhooks + +## Support + +For issues or feature requests, contact your developer. + +## License + +Proprietary - All rights reserved. + +--- + +**Version:** 2.0 +**Last Updated:** December 2025 diff --git a/sites/tomsjavajive.com/public_html/account/addresses.php b/sites/tomsjavajive.com/public_html/account/addresses.php new file mode 100644 index 0000000..e0aeda3 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/account/addresses.php @@ -0,0 +1,290 @@ + $index >= 0 && isset($addresses[$index]['id']) ? $addresses[$index]['id'] : uniqid('addr_'), + 'name' => trim($_POST['name'] ?? ''), + 'phone' => trim($_POST['phone'] ?? ''), + 'address' => trim($_POST['address'] ?? ''), + 'address2' => trim($_POST['address2'] ?? ''), + 'city' => trim($_POST['city'] ?? ''), + 'state' => trim($_POST['state'] ?? ''), + 'zip' => trim($_POST['zip'] ?? ''), + 'country' => trim($_POST['country'] ?? 'USA'), + 'is_default' => isset($_POST['is_default']), + ]; + + // Validate + if (empty($address['name']) || empty($address['address']) || empty($address['city']) || empty($address['zip'])) { + setFlash('error', 'Please fill in all required fields'); + } else { + // Handle default + if ($address['is_default']) { + foreach ($addresses as &$a) { + $a['is_default'] = false; + } + } + + if ($index >= 0 && isset($addresses[$index])) { + $addresses[$index] = $address; + } else { + $addresses[] = $address; + } + + // Save + db()->query( + "UPDATE customers SET addresses = :addresses WHERE customer_id = :id", + ['addresses' => json_encode($addresses), 'id' => $customer['customer_id']] + ); + + setFlash('success', $action === 'add' ? 'Address added' : 'Address updated'); + redirect('/account/addresses.php'); + } + } + + if ($action === 'delete') { + $index = intval($_POST['index'] ?? -1); + if ($index >= 0 && isset($addresses[$index])) { + array_splice($addresses, $index, 1); + db()->query( + "UPDATE customers SET addresses = :addresses WHERE customer_id = :id", + ['addresses' => json_encode($addresses), 'id' => $customer['customer_id']] + ); + setFlash('success', 'Address deleted'); + } + redirect('/account/addresses.php'); + } + + if ($action === 'set_default') { + $index = intval($_POST['index'] ?? -1); + if ($index >= 0 && isset($addresses[$index])) { + foreach ($addresses as $i => &$a) { + $a['is_default'] = ($i === $index); + } + db()->query( + "UPDATE customers SET addresses = :addresses WHERE customer_id = :id", + ['addresses' => json_encode($addresses), 'id' => $customer['customer_id']] + ); + setFlash('success', 'Default address updated'); + } + redirect('/account/addresses.php'); + } +} + +$extraHead = ''; +require_once __DIR__ . '/../includes/header.php'; +require_once __DIR__ . '/includes/sidebar.php'; +?> + + + + +
+ +
+ + + +
+ +
+ + + +
+
+ +

No addresses saved

+

Add an address for faster checkout.

+ +
+
+ +
+ $addr): ?> +
+
+ + Default + + +

+ +

+ +

+ +

+ , +

+

+ + +

+ +

+ + +
+ + + +
+ + + +
+ + +
+ + + +
+
+
+
+ +
+ + + + + + + + diff --git a/sites/tomsjavajive.com/public_html/account/includes/footer.php b/sites/tomsjavajive.com/public_html/account/includes/footer.php new file mode 100644 index 0000000..ea85462 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/account/includes/footer.php @@ -0,0 +1,6 @@ + + + + + + diff --git a/sites/tomsjavajive.com/public_html/account/includes/sidebar.php b/sites/tomsjavajive.com/public_html/account/includes/sidebar.php new file mode 100644 index 0000000..58cc711 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/account/includes/sidebar.php @@ -0,0 +1,36 @@ + + +
+
+ +
+ + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/includes/header.php b/sites/tomsjavajive.com/public_html/admin/includes/header.php new file mode 100644 index 0000000..2cf6db7 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/includes/header.php @@ -0,0 +1,182 @@ + + + + + + + <?= $pageTitle ?? 'Admin' ?> - Tom's Java Jive Admin + + + + + + + + + +
+ + + + +
+
+ + + + +
+
+ + + + +
+
+
+ +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+
diff --git a/sites/tomsjavajive.com/public_html/admin/index.php b/sites/tomsjavajive.com/public_html/admin/index.php new file mode 100644 index 0000000..0dcbaa6 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/index.php @@ -0,0 +1,197 @@ +count('orders'); +$todayOrders = db()->count('orders', 'DATE(created_at) = CURDATE()'); +$totalRevenue = db()->fetch("SELECT COALESCE(SUM(total), 0) as total FROM orders WHERE payment_status = 'paid'")['total'] ?? 0; +$todayRevenue = db()->fetch("SELECT COALESCE(SUM(total), 0) as total FROM orders WHERE payment_status = 'paid' AND DATE(created_at) = CURDATE()")['total'] ?? 0; +$totalCustomers = db()->count('customers'); +$totalProducts = db()->count('products', 'is_active = 1'); +$lowStockProducts = db()->count('products', 'stock <= low_stock_threshold AND is_active = 1'); +$pendingOrders = db()->count('orders', "order_status = 'pending'"); + +// Recent orders +$recentOrders = db()->fetchAll( + "SELECT * FROM orders ORDER BY created_at DESC LIMIT 10" +); + +// Low stock products +$lowStockItems = db()->fetchAll( + "SELECT * FROM products WHERE stock <= low_stock_threshold AND is_active = 1 ORDER BY stock ASC LIMIT 5" +); +?> + + + + +
+
+
+ +
+
+
Today's Revenue
+
+ +
+
+ +
+
+
Today's Orders
+
+ +
+
+ +
+
+
Total Customers
+
+ +
+
+ +
+
+
Pending Orders
+
+
+ +
+ +
+
+

Recent Orders

+ View All +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
OrderCustomerTotalStatusDate
+ No orders yet +
+ + + + + 'warning', + 'confirmed', 'processing' => 'primary', + 'shipped', 'delivered' => 'success', + 'cancelled', 'refunded' => 'error', + default => 'primary' + }; + ?> + + + +
+
+
+ + +
+ +
+
+

Overview

+
+
+
+ Total Revenue + +
+
+ Total Orders + +
+
+ Active Products + +
+
+ Low Stock Items + +
+
+
+ + + +
+
+

+ Low Stock +

+
+
+ +
+ + left +
+ + + Manage Inventory + +
+
+ + + + +
+
+ + diff --git a/sites/tomsjavajive.com/public_html/admin/integrations.php b/sites/tomsjavajive.com/public_html/admin/integrations.php new file mode 100644 index 0000000..1d7ade8 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/integrations.php @@ -0,0 +1,348 @@ + getSetting('cybermail_api_key', ''), + 'from' => getSetting('cybermail_from_email', 'noreply@tomsjavajive.com'), + 'from_name' => getSetting('cybermail_from_name', "Tom's Java Jive"), + 'enabled' => getSetting('email_notifications_enabled', '0'), +]; +$tw = [ + 'sid' => getSetting('twilio_account_sid', ''), + 'token' => getSetting('twilio_auth_token', ''), + 'phone' => getSetting('twilio_phone_number', ''), + 'enabled' => getSetting('sms_notifications_enabled', '0'), +]; +$push = [ + 'pub' => getSetting('vapid_public_key', ''), + 'priv' => getSetting('vapid_private_key', ''), + 'enabled' => getSetting('push_notifications_enabled', '0'), +]; +$loyaltyEnabled = getSetting('loyalty_enabled', '1') === '1'; +?> + + + + + + +
+ + + +
+
+
+ +
+

Email — CyberMail

+

Transactional email — order confirmations, shipping updates, password resets

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

Manage at CyberMail Dashboard

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

Twilio SMS

+

SMS notifications for orders, shipping, and promotions

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

Get credentials at Twilio Console

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

Push Notifications

+

Web push for order updates and promotions

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

Generate at Web Push Codelab

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

Loyalty Program

+

Reward customers with points and tiers

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

Tier Structure

+ + + + + + + + +
TierMin PointsMultiplierKey Benefits
Bronze Bean01x1 point/$1, Birthday reward
Silver Roast5001.25xFree shipping $25+, Double points weekends
Gold Blend1,5001.5xFree shipping all orders, Priority support
Platinum Reserve5,0002xExpress shipping, VIP events, Account manager
+

100 points = $1 credit • Points earned on every purchase

+
+ +
+
+
+ + + + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/inventory.php b/sites/tomsjavajive.com/public_html/admin/inventory.php new file mode 100644 index 0000000..eef142d --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/inventory.php @@ -0,0 +1,337 @@ +fetch("SELECT name, stock FROM products WHERE product_id = :id", ['id' => $_POST['product_id']]); + $newStock = max(0, ($product['stock'] ?? 0) + $adjustment); + + db()->update('products', ['stock' => $newStock], 'product_id = :id', ['id' => $_POST['product_id']]); + setFlash('success', $product['name'] . ' stock adjusted by ' . ($adjustment > 0 ? '+' : '') . $adjustment . '. New stock: ' . $newStock); + } + header('Location: /admin/inventory.php'); + exit; + } + + if ($action === 'update_threshold' && !empty($_POST['product_id'])) { + $threshold = intval($_POST['low_stock_threshold'] ?? 10); + db()->update('products', ['low_stock_threshold' => $threshold], 'product_id = :id', ['id' => $_POST['product_id']]); + setFlash('success', 'Low stock threshold updated'); + header('Location: /admin/inventory.php'); + exit; + } + + if ($action === 'bulk_adjust') { + $adjustments = $_POST['adjustments'] ?? []; + $count = 0; + foreach ($adjustments as $productId => $adj) { + $adj = intval($adj); + if ($adj != 0) { + db()->query( + "UPDATE products SET stock = GREATEST(0, stock + :adj) WHERE product_id = :id", + ['adj' => $adj, 'id' => $productId] + ); + $count++; + } + } + if ($count > 0) { + setFlash('success', "Adjusted stock for $count products"); + } + header('Location: /admin/inventory.php'); + exit; + } +} + +// Filters +$filter = $_GET['filter'] ?? ''; +$search = $_GET['search'] ?? ''; +$category = $_GET['category'] ?? ''; + +$where = ['1=1']; +$params = []; + +if ($search) { + $where[] = '(name LIKE :search OR sku LIKE :search OR barcode LIKE :search)'; + $params['search'] = '%' . $search . '%'; +} + +if ($category) { + $where[] = 'category = :category'; + $params['category'] = $category; +} + +if ($filter === 'low') { + $where[] = 'stock <= low_stock_threshold AND stock > 0'; +} elseif ($filter === 'out') { + $where[] = 'stock <= 0'; +} elseif ($filter === 'in') { + $where[] = 'stock > low_stock_threshold'; +} + +$whereClause = implode(' AND ', $where); + +$products = db()->fetchAll( + "SELECT product_id, name, sku, barcode, category, stock, low_stock_threshold, price, is_active + FROM products + WHERE {$whereClause} + ORDER BY stock ASC, name ASC", + $params +); + +// Get categories for filter +$categories = db()->fetchAll( + "SELECT DISTINCT category FROM products WHERE category IS NOT NULL AND category != '' ORDER BY category" +); + +// Stats +$totalProducts = db()->count('products', 'is_active = 1'); +$lowStockCount = db()->count('products', 'stock <= low_stock_threshold AND stock > 0 AND is_active = 1'); +$outOfStockCount = db()->count('products', 'stock <= 0 AND is_active = 1'); +$totalStock = db()->fetch("SELECT SUM(stock) as total FROM products WHERE is_active = 1")['total'] ?? 0; +$inventoryValue = db()->fetch("SELECT SUM(stock * price) as total FROM products WHERE is_active = 1")['total'] ?? 0; +?> + + + + +
+ + + +
+
+
+
+
+
Total Units
+
+
+
+
+
+
+
Inventory Value
+
+
+
+
+
+
+
Low Stock
+
+
+
+
+
+
+
Out of Stock
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+ + + Clear + +
+
+
+ + + + + +
+
+ products +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProductSKU / BarcodeCategoryStockThresholdStatusActions
No products found
+ + + Inactive + + + + + + +
+ + + - + +
+ + + + + + + + + Out of Stock + + Low Stock + + In Stock + + + + + + +
+
+
+ + + + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/login.php b/sites/tomsjavajive.com/public_html/admin/login.php new file mode 100644 index 0000000..3ade01b --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/login.php @@ -0,0 +1,68 @@ + + + + + + +Admin Login — Tom's Java Jive + + + + +
+ + +
+ +
+ + + + + +
+ ← Back to Store +
+ + diff --git a/sites/tomsjavajive.com/public_html/admin/logout.php b/sites/tomsjavajive.com/public_html/admin/logout.php new file mode 100644 index 0000000..db5e9b3 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/logout.php @@ -0,0 +1,10 @@ +fetch("SELECT * FROM orders WHERE order_id = :id", ['id' => $orderId]); + +if (!$order) { + setFlash('error', 'Order not found'); + header('Location: /admin/orders.php'); + exit; +} + +// Handle status update +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $action = $_POST['action'] ?? ''; + + if ($action === 'update_status') { + $status = $_POST['status'] ?? ''; + $trackingNumber = $_POST['tracking_number'] ?? ''; + + $updateData = ['order_status' => $status]; + if ($trackingNumber) { + $updateData['tracking_number'] = $trackingNumber; + } + + db()->update('orders', $updateData, 'order_id = :id', ['id' => $orderId]); + setFlash('success', 'Order status updated'); + header('Location: /admin/order.php?id=' . $orderId); + exit; + } + + if ($action === 'add_note') { + $note = trim($_POST['note'] ?? ''); + if ($note) { + $existingNotes = $order['notes'] ?? ''; + $newNote = '[' . date('M j, Y g:i A') . '] ' . $note; + $allNotes = $existingNotes ? $existingNotes . "\n" . $newNote : $newNote; + + db()->update('orders', ['notes' => $allNotes], 'order_id = :id', ['id' => $orderId]); + setFlash('success', 'Note added'); + header('Location: /admin/order.php?id=' . $orderId); + exit; + } + } + + if ($action === 'process_refund') { + $refundAmount = (float) ($_POST['refund_amount'] ?? 0); + $reason = trim($_POST['refund_reason'] ?? ''); + + if ($order['payment_method'] !== 'square' || empty($order['square_payment_id'])) { + setFlash('error', 'This order has no Square payment to refund.'); + header('Location: /admin/order.php?id=' . $orderId); + exit; + } + if ($order['payment_status'] !== 'paid' && $order['payment_status'] !== 'partially_refunded') { + setFlash('error', 'Only paid orders can be refunded.'); + header('Location: /admin/order.php?id=' . $orderId); + exit; + } + if ($refundAmount <= 0 || $refundAmount > (float) $order['total']) { + setFlash('error', 'Invalid refund amount.'); + header('Location: /admin/order.php?id=' . $orderId); + exit; + } + + try { + $result = squareRefundPayment($order['square_payment_id'], $refundAmount, $reason ?: ('Order #' . $order['order_number'])); + $refund = $result['refund'] ?? []; + $refundStatus = $refund['status'] ?? ''; + + if (in_array($refundStatus, ['PENDING', 'COMPLETED'], true)) { + $isFullRefund = $refundAmount >= (float) $order['total']; + $newPaymentStatus = $isFullRefund ? 'refunded' : 'partially_refunded'; + + db()->update('orders', + ['payment_status' => $newPaymentStatus, 'order_status' => $isFullRefund ? 'refunded' : $order['order_status']], + 'order_id = :id', + ['id' => $orderId] + ); + + // Restore any wallet credit that was applied, proportionally on a full refund + if ($isFullRefund && !empty($order['wallet_amount_used']) && (float) $order['wallet_amount_used'] > 0 && !empty($order['customer_id'])) { + $walletAmount = (float) $order['wallet_amount_used']; + $cust = db()->fetch("SELECT wallet_balance FROM customers WHERE customer_id = :id", ['id' => $order['customer_id']]); + if ($cust) { + $newBalance = (float) $cust['wallet_balance'] + $walletAmount; + db()->update('customers', ['wallet_balance' => $newBalance], 'customer_id = :id', ['id' => $order['customer_id']]); + db()->insert('wallet_transactions', [ + 'transaction_id' => generateId('wt_'), + 'customer_id' => $order['customer_id'], + 'amount' => $walletAmount, + 'balance_after' => $newBalance, + 'type' => 'refund', + 'description' => 'Refund for Order #' . $order['order_number'], + ]); + } + } + + $existingNotes = $order['notes'] ?? ''; + $newNote = '[' . date('M j, Y g:i A') . '] Refunded ' . formatCurrency($refundAmount) + . ' via Square (refund ID: ' . ($refund['id'] ?? 'unknown') . ')' + . ($reason ? ' — ' . $reason : ''); + $allNotes = $existingNotes ? $existingNotes . "\n" . $newNote : $newNote; + db()->update('orders', ['notes' => $allNotes], 'order_id = :id', ['id' => $orderId]); + + setFlash('success', formatCurrency($refundAmount) . ' refunded successfully.'); + } else { + setFlash('error', 'Refund did not complete (status: ' . $refundStatus . ').'); + } + } catch (Exception $e) { + setFlash('error', 'Refund failed: ' . $e->getMessage()); + } + + header('Location: /admin/order.php?id=' . $orderId); + exit; + } +} + +$items = json_decode($order['items'], true) ?? []; +$shippingAddress = json_decode($order['shipping_address'], true) ?? []; + +$statuses = ['pending', 'confirmed', 'processing', 'shipped', 'delivered', 'cancelled', 'refunded']; +$canRefund = $order['payment_method'] === 'square' + && !empty($order['square_payment_id']) + && in_array($order['payment_status'], ['paid', 'partially_refunded'], true); +?> + + + + +
+ + +
+ + +
+ +
+ +
+
+

Order Items

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + 0): ?> + + + + + + 0): ?> + + + + + + 0): ?> + + + + + + 0): ?> + + + + + + + + + + +
ProductPriceQtyTotal
+ + + + + + + +
Subtotal
Shipping
Tax
Discount-
Wallet / Gift Card-
Total
+
+
+ + +
+
+

Order Notes

+
+
+ +
+ +

No notes yet.

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

Process Refund

+
+
+
+ +
+ + + Up to (full order total). Enter a lower amount for a partial refund. +
+
+ + +
+ +
+
+
+ +
+ + +
+ +
+
+

Order Status

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

Customer

+
+
+

+

+ +

+ + + + + View Customer + + +
+
+ + + +
+
+

Shipping Address

+
+
+

+
+ , + + +

+
+
+ + + +
+
+

Payment

+
+
+
+ Method + +
+
+ Status + 'success', + 'failed' => 'error', + 'refunded', 'partially_refunded' => 'warning', + default => 'primary' + }; + ?> + +
+ +
+ Square Payment ID + +
+ +
+ Stripe ID + ... +
+ +
+
+ + +
+
+

Timeline

+
+
+
+ Created + +
+ +
+ Updated + +
+ +
+
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/admin/orders.php b/sites/tomsjavajive.com/public_html/admin/orders.php new file mode 100644 index 0000000..d207205 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/orders.php @@ -0,0 +1,281 @@ + $status]; + if ($trackingNumber) { + $updateData['tracking_number'] = $trackingNumber; + } + + db()->update('orders', $updateData, 'order_id = :id', ['id' => $orderId]); + setFlash('success', 'Order status updated'); + header('Location: /admin/orders.php'); + exit; + } +} + +// Filters +$status = $_GET['status'] ?? ''; +$search = $_GET['search'] ?? ''; +$dateFrom = $_GET['date_from'] ?? ''; +$dateTo = $_GET['date_to'] ?? ''; +$page = max(1, intval($_GET['page'] ?? 1)); + +// Build query +$where = ['1=1']; +$params = []; + +if ($status) { + $where[] = 'order_status = :status'; + $params['status'] = $status; +} + +if ($search) { + $where[] = '(order_number LIKE :search1 OR customer_name LIKE :search2 OR customer_email LIKE :search3)'; + $params['search1'] = '%' . $search . '%'; + $params['search2'] = '%' . $search . '%'; + $params['search3'] = '%' . $search . '%'; +} + +if ($dateFrom) { + $where[] = 'DATE(created_at) >= :date_from'; + $params['date_from'] = $dateFrom; +} + +if ($dateTo) { + $where[] = 'DATE(created_at) <= :date_to'; + $params['date_to'] = $dateTo; +} + +$whereClause = implode(' AND ', $where); + +// Get total and paginate +$totalOrders = db()->count('orders', $whereClause, $params); +$pagination = paginate($totalOrders, $page, ADMIN_ITEMS_PER_PAGE); + +// Get orders +$orders = db()->fetchAll( + "SELECT * FROM orders WHERE {$whereClause} ORDER BY created_at DESC LIMIT :limit OFFSET :offset", + array_merge($params, ['limit' => $pagination['per_page'], 'offset' => $pagination['offset']]) +); + +$statuses = ['pending', 'confirmed', 'processing', 'shipped', 'delivered', 'cancelled', 'refunded']; +?> + + + + +
+ + +
+ + + +
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + + + Clear + +
+
+
+ + +
+
+ orders found +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OrderCustomerItemsTotalPaymentStatusDateActions
+ No orders found +
+ + + POS + + +
+ +
item + 'success', + 'failed' => 'error', + 'refunded' => 'warning', + default => 'primary' + }; + ?> + + + + + 'warning', + 'confirmed', 'processing' => 'primary', + 'shipped', 'delivered' => 'success', + 'cancelled', 'refunded' => 'error', + default => 'primary' + }; + ?> + + + + + + + + +
+
+
+ + + 1): ?> +
+ +
+ + + + + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/payments.php b/sites/tomsjavajive.com/public_html/admin/payments.php new file mode 100644 index 0000000..81d77e1 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/payments.php @@ -0,0 +1,246 @@ + isset($_POST['stripe_enabled']), + 'test_mode' => isset($_POST['stripe_test_mode']), + 'publishable_key' => trim($_POST['stripe_publishable_key'] ?? ''), + 'secret_key' => trim($_POST['stripe_secret_key'] ?? ''), + 'webhook_secret' => trim($_POST['stripe_webhook_secret'] ?? '') + ]); + setFlash('success', 'Stripe settings updated'); + } + + if ($section === 'square') { + setSetting('payment_square', [ + 'enabled' => isset($_POST['square_enabled']), + 'sandbox' => isset($_POST['square_sandbox']), + 'app_id' => trim($_POST['square_app_id'] ?? ''), + 'location_id' => trim($_POST['square_location_id'] ?? ''), + 'access_token' => trim($_POST['square_access_token'] ?? ''), + 'webhook_signature_key' => trim($_POST['square_webhook_signature_key'] ?? '') + ]); + setFlash('success', 'Square settings updated'); + } + + if ($section === 'methods') { + setSetting('payment_methods', [ + 'card' => isset($_POST['method_card']), + 'cash' => isset($_POST['method_cash']), + 'wallet' => isset($_POST['method_wallet']), + 'gift_card' => isset($_POST['method_gift_card']) + ]); + setFlash('success', 'Payment methods updated'); + } + + header('Location: /admin/payments.php'); + exit; +} + +$stripe = getSetting('payment_stripe', [ + 'enabled' => true, + 'test_mode' => true, + 'publishable_key' => '', + 'secret_key' => '', + 'webhook_secret' => '' +]); + +$square = getSetting('payment_square', [ + 'enabled' => defined('PAYMENT_PROCESSOR') && PAYMENT_PROCESSOR === 'square', + 'sandbox' => defined('SQUARE_ENV') && SQUARE_ENV === 'sandbox', + 'app_id' => defined('SQUARE_APP_ID') ? SQUARE_APP_ID : '', + 'location_id' => defined('SQUARE_LOCATION_ID') ? SQUARE_LOCATION_ID : '', + 'access_token' => defined('SQUARE_ACCESS_TOKEN') ? SQUARE_ACCESS_TOKEN : '', + 'webhook_signature_key' => defined('SQUARE_WEBHOOK_SIGNATURE_KEY') ? SQUARE_WEBHOOK_SIGNATURE_KEY : '' +]); + +$methods = getSetting('payment_methods', [ + 'card' => true, + 'cash' => true, + 'wallet' => true, + 'gift_card' => true +]); +?> + + + + +
+ + +
+ + +
+ +
+ +
+
+

Square

+
+
+
+ +
+ +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + + From the Square Developer Dashboard's webhook subscription for this site +
+ + +
+
+
+ + +
+ +
+
+

Stripe (legacy)

+
+
+
+ +
+ +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ + + Get this from your Stripe webhook settings +
+ + +
+
+
+ + +
+ +
+
+

POS Payment Methods

+
+
+

Select which payment methods are available in the Point of Sale system.

+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+
+
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/admin/pos.php b/sites/tomsjavajive.com/public_html/admin/pos.php new file mode 100644 index 0000000..44b018f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/pos.php @@ -0,0 +1,1386 @@ +fetchAll( + "SELECT product_id, name, price, sale_price, stock, images, category, barcode, sku + FROM products WHERE is_active = 1 ORDER BY category, name" +); + +// Group products by category +$productsByCategory = []; +foreach ($products as $product) { + $cat = $product['category'] ?? 'Other'; + if (!isset($productsByCategory[$cat])) { + $productsByCategory[$cat] = []; + } + $product['images'] = json_decode($product['images'] ?? '[]', true); + $product['display_price'] = $product['sale_price'] ?? $product['price']; + $productsByCategory[$cat][] = $product; +} + +// Get held orders +$heldOrders = $_SESSION['pos_held_orders'] ?? []; + +// Get tax rate from settings +$taxRate = getSetting('tax_rate', 0) / 100; +?> + + + +
+ +
+ + +
+ + + + +
+ +
+ +
+ +

No products available

+ Add Products +
+ + 0 && $product['stock'] <= 5; + ?> +
+ +
+
+
+ +
+
+ + +
+
+ + +
+
+

Current Sale

+
+ +
+
+ +
+
+ +

Add products to start a sale

+
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+ Subtotal + $0.00 +
+ +
+ Tax (%) + $0.00 +
+
+ Total + $0.00 +
+
+ +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/product-edit.php b/sites/tomsjavajive.com/public_html/admin/product-edit.php new file mode 100644 index 0000000..a907dda --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/product-edit.php @@ -0,0 +1,393 @@ +fetchAll("SELECT category_id, name FROM categories WHERE is_active = 1 ORDER BY name ASC"); +$productTypesList = db()->fetchAll("SELECT type_id, name FROM product_types WHERE is_active = 1 ORDER BY sort_order ASC, name ASC"); + + +$productId = $_GET['id'] ?? ''; +$product = null; +$isEdit = false; +$errors = []; + +if ($productId) { + $product = db()->fetch("SELECT * FROM products WHERE product_id = :id", ['id' => $productId]); + if ($product) { + $isEdit = true; + $pageTitle = 'Edit Product'; + $product['images'] = json_decode($product['images'] ?? '[]', true); + $product['tags'] = json_decode($product['tags'] ?? '[]', true); + } +} + +if (!$product) { + $product = [ + 'product_id' => '', + 'name' => '', + 'description' => '', + 'price' => '', + 'sale_price' => '', + 'cost_price' => '', + 'sku' => '', + 'barcode' => '', + 'category' => '', + 'tags' => [], + 'images' => [], + 'stock' => 100, + 'low_stock_threshold' => 10, + 'weight' => '', + 'is_active' => 1, + 'is_featured' => 0 + ]; + $pageTitle = 'Add Product'; +} + +// Handle form submission +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $name = trim($_POST['name'] ?? ''); + $description = trim($_POST['description'] ?? ''); + $price = floatval($_POST['price'] ?? 0); + $salePrice = !empty($_POST['sale_price']) ? floatval($_POST['sale_price']) : null; + $costPrice = !empty($_POST['cost_price']) ? floatval($_POST['cost_price']) : null; + $sku = trim($_POST['sku'] ?? ''); + $barcode = trim($_POST['barcode'] ?? ''); + $category = trim($_POST['category'] ?? ''); + $stock = intval($_POST['stock'] ?? 0); + $lowStockThreshold = intval($_POST['low_stock_threshold'] ?? 10); + $weight = !empty($_POST['weight']) ? floatval($_POST['weight']) : null; + $isActive = isset($_POST['is_active']) ? 1 : 0; + $isFeatured = isset($_POST['is_featured']) ? 1 : 0; + $imageUrls = array_filter(array_map('trim', explode("\n", $_POST['image_urls'] ?? ''))); + + // Validate + if (empty($name)) $errors['name'] = 'Product name is required'; + if ($price <= 0) $errors['price'] = 'Price must be greater than 0'; + + if (empty($errors)) { + $data = [ + 'name' => $name, + 'description' => $description, + 'price' => $price, + 'sale_price' => $salePrice, + 'cost_price' => $costPrice, + 'sku' => $sku ?: null, + 'barcode' => $barcode ?: null, + 'category' => $category ?: null, + 'product_type_id' => trim($_POST['product_type_id'] ?? '') ?: null, + 'images' => json_encode($imageUrls), + 'stock' => $stock, + 'low_stock_threshold' => $lowStockThreshold, + 'weight' => $weight, + 'is_active' => $isActive, + 'is_featured' => $isFeatured + ]; + + if ($isEdit) { + db()->update('products', $data, 'product_id = :id', ['id' => $productId]); + setFlash('success', 'Product updated successfully'); + } else { + $data['product_id'] = generateId('prod_'); + db()->insert('products', $data); + setFlash('success', 'Product created successfully'); + } + + header('Location: /admin/products.php'); + exit; + } + + // Keep form values on error + $product = array_merge($product, $_POST); + $product['images'] = $imageUrls; +} + +// Get categories for dropdown +$categories = db()->fetchAll( + "SELECT DISTINCT category FROM products WHERE category IS NOT NULL AND category != '' ORDER BY category" +); +?> + + + + +
+ + Please fix the errors below +
+ + +
+
+ +
+
+
+

Basic Information

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

Pricing

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

Images

+
+
+
+ + +
+ +
Drag & drop images here
+
or click to browse — JPG, PNG, WebP, GIF up to 5MB each
+ +
+ +
+ +
+
+ or add image URLs +
+
+ + One URL per line +
+ + +
+
+
+ + +
+
+
+

Status

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

Inventory

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

Identifiers

+
+
+
+ + +
+ +
+ + +
+
+
+ + +
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/admin/product-types.php b/sites/tomsjavajive.com/public_html/admin/product-types.php new file mode 100644 index 0000000..5145c13 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/product-types.php @@ -0,0 +1,175 @@ +$name,'slug'=>$slug,'description'=>$description,'is_active'=>$isActive]; + if ($action === 'update' && $typeId) { + db()->update('product_types', $data, 'type_id = :id', ['id' => $typeId]); + setFlash('success', 'Product type updated'); + } else { + $data['type_id'] = generateId('pt_'); + db()->insert('product_types', $data); + setFlash('success', 'Product type created'); + } + } + header('Location: /admin/product-types.php'); + exit; + } + + if ($action === 'delete' && !empty($_POST['type_id'])) { + db()->delete('product_types', 'type_id = :id', ['id' => $_POST['type_id']]); + setFlash('success', 'Product type deleted'); + header('Location: /admin/product-types.php'); + exit; + } +} + +$types = db()->fetchAll( + "SELECT pt.*, COUNT(p.product_id) AS product_count + FROM product_types pt + LEFT JOIN products p ON p.product_type_id = pt.type_id AND p.is_active = 1 + GROUP BY pt.type_id + ORDER BY pt.name ASC" +); +?> + + + + +
+ + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameSlugDescriptionProductsStatusActions
No product types yet. Create one above.
+ + + + + + Active + + Hidden + + + +
+ + + +
+
+
+
+ + + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/products.php b/sites/tomsjavajive.com/public_html/admin/products.php new file mode 100644 index 0000000..844432c --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/products.php @@ -0,0 +1,290 @@ +delete('products', 'product_id = :id', ['id' => $_POST['product_id']]); + setFlash('success', 'Product deleted successfully'); + header('Location: /admin/products.php'); + exit; + } + + if ($action === 'bulk_delete' && !empty($_POST['product_ids'])) { + $ids = $_POST['product_ids']; + $placeholders = implode(',', array_fill(0, count($ids), '?')); + db()->query("DELETE FROM products WHERE product_id IN ($placeholders)", $ids); + setFlash('success', count($ids) . ' products deleted'); + header('Location: /admin/products.php'); + exit; + } + + if ($action === 'toggle_status' && !empty($_POST['product_id'])) { + $product = db()->fetch("SELECT is_active FROM products WHERE product_id = :id", ['id' => $_POST['product_id']]); + if ($product) { + db()->update('products', ['is_active' => !$product['is_active']], 'product_id = :id', ['id' => $_POST['product_id']]); + setFlash('success', 'Product status updated'); + } + header('Location: /admin/products.php'); + exit; + } +} + +// Filters +$search = $_GET['search'] ?? ''; +$category = $_GET['category'] ?? ''; +$status = $_GET['status'] ?? ''; +$page = max(1, intval($_GET['page'] ?? 1)); + +// Build query +$where = ['1=1']; +$params = []; + +if ($search) { + $where[] = '(name LIKE :search OR sku LIKE :search)'; + $params['search'] = '%' . $search . '%'; +} + +if ($category) { + $where[] = 'category = :category'; + $params['category'] = $category; +} + +if ($status === 'active') { + $where[] = 'is_active = 1'; +} elseif ($status === 'inactive') { + $where[] = 'is_active = 0'; +} elseif ($status === 'low_stock') { + $where[] = 'stock <= low_stock_threshold'; +} + +$whereClause = implode(' AND ', $where); + +// Get total and paginate +$totalProducts = db()->count('products', $whereClause, $params); +$pagination = paginate($totalProducts, $page, ADMIN_ITEMS_PER_PAGE); + +// Get products +$products = db()->fetchAll( + "SELECT * FROM products WHERE {$whereClause} ORDER BY created_at DESC LIMIT :limit OFFSET :offset", + array_merge($params, ['limit' => $pagination['per_page'], 'offset' => $pagination['offset']]) +); + +// Get categories +$categories = db()->fetchAll( + "SELECT DISTINCT category FROM products WHERE category IS NOT NULL AND category != '' ORDER BY category" +); +?> + + + + +
+ + +
+ + + +
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ + + + + Clear + +
+
+
+ + +
+
+ products found + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + ImageProductSKUCategoryPriceStockStatusActions
+ No products found +
+ + + + + + + Featured + + + + + +
+ + + + +
+ + Out of Stock + + left + + + + + + Active + + Inactive + + + + + +
+ + + +
+
+ + + +
+
+
+
+ + + 1): ?> +
+ +
+ + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/reviews.php b/sites/tomsjavajive.com/public_html/admin/reviews.php new file mode 100644 index 0000000..841f45b --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/reviews.php @@ -0,0 +1,281 @@ +update('reviews', ['is_approved' => 1], 'review_id = :id', ['id' => $reviewId]); + setFlash('success', 'Review approved'); + } + + if ($action === 'reject' && $reviewId) { + db()->update('reviews', ['is_approved' => 0], 'review_id = :id', ['id' => $reviewId]); + setFlash('success', 'Review rejected'); + } + + if ($action === 'update' && $reviewId) { + $rating = max(1, min(5, intval($_POST['rating'] ?? 5))); + $title = trim($_POST['title'] ?? ''); + $comment = trim($_POST['comment'] ?? ''); + db()->update('reviews', [ + 'rating' => $rating, + 'title' => $title ?: null, + 'comment' => $comment ?: null, + ], 'review_id = :id', ['id' => $reviewId]); + setFlash('success', 'Review updated'); + } + + if ($action === 'delete' && $reviewId) { + db()->delete('reviews', 'review_id = :id', ['id' => $reviewId]); + setFlash('success', 'Review deleted'); + } + + header('Location: /admin/reviews.php'); + exit; +} + +// Filters +$status = $_GET['status'] ?? ''; +$rating = $_GET['rating'] ?? ''; + +$where = ['1=1']; +$params = []; + +if ($status === 'pending') { + $where[] = 'is_approved = 0'; +} elseif ($status === 'approved') { + $where[] = 'is_approved = 1'; +} + +if ($rating) { + $where[] = 'rating = :rating'; + $params['rating'] = $rating; +} + +$whereClause = implode(' AND ', $where); + +$reviews = db()->fetchAll( + "SELECT r.*, p.name as product_name FROM reviews r + LEFT JOIN products p ON r.product_id = p.product_id + WHERE {$whereClause} ORDER BY r.created_at DESC LIMIT 100", + $params +); + +// Stats +$totalReviews = db()->count('reviews'); +$pendingReviews = db()->count('reviews', 'is_approved = 0'); +$avgRating = db()->fetch("SELECT AVG(rating) as avg FROM reviews WHERE is_approved = 1")['avg'] ?? 0; +?> + + + + +
+ + + +
+
+
+
+
+
Average Rating
+
+
+
+
+
+
+
Total Reviews
+
+
+
+
+
+
+
Pending Approval
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+ + + Clear + +
+
+
+ + +
+ +
+
+ No reviews found +
+
+ + +
+
+
+
+
+ + + Verified Purchase + + + Pending + +
+
+ on + • +
+
+
+ +
+ + + +
+ +
+ + + +
+ + +
+ + + +
+
+
+ +
+ + + +
+ + +

+ + +

+ +

+
+
+ + +
+ + + + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/settings.php b/sites/tomsjavajive.com/public_html/admin/settings.php new file mode 100644 index 0000000..a194871 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/settings.php @@ -0,0 +1,233 @@ + trim($_POST['store_name'] ?? ''), + 'email' => trim($_POST['store_email'] ?? ''), + 'phone' => trim($_POST['store_phone'] ?? ''), + 'address' => trim($_POST['store_address'] ?? ''), + 'currency' => $_POST['currency'] ?? 'USD', + 'timezone' => $_POST['timezone'] ?? 'America/New_York' + ]); + setFlash('success', 'Store settings updated'); + } + + if ($section === 'tax') { + setSetting('tax', [ + 'enabled' => isset($_POST['tax_enabled']), + 'rate' => floatval($_POST['tax_rate'] ?? 0), + 'included_in_price' => isset($_POST['tax_included']) + ]); + setFlash('success', 'Tax settings updated'); + } + + if ($section === 'checkout') { + setSetting('checkout', [ + 'guest_checkout' => isset($_POST['guest_checkout']), + 'require_phone' => isset($_POST['require_phone']), + 'order_notes' => isset($_POST['order_notes']), + 'terms_required' => isset($_POST['terms_required']), + 'terms_url' => trim($_POST['terms_url'] ?? '') + ]); + setFlash('success', 'Checkout settings updated'); + } + + header('Location: /admin/settings.php'); + exit; +} + +// Get current settings +$store = getSetting('store', [ + 'name' => "Tom's Java Jive", + 'email' => '', + 'phone' => '', + 'address' => '', + 'currency' => 'USD', + 'timezone' => 'America/New_York' +]); + +$tax = getSetting('tax', [ + 'enabled' => false, + 'rate' => 0, + 'included_in_price' => false +]); + +$checkout = getSetting('checkout', [ + 'guest_checkout' => true, + 'require_phone' => false, + 'order_notes' => true, + 'terms_required' => false, + 'terms_url' => '' +]); +?> + + + + +
+ + +
+ + + + +
+ +
+ +
+
+

General Settings

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

Tax Settings

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

Checkout Settings

+
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/admin/shipping.php b/sites/tomsjavajive.com/public_html/admin/shipping.php new file mode 100644 index 0000000..de20dae --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/shipping.php @@ -0,0 +1,124 @@ + isset($_POST['flat_rate_enabled']), + 'flat_rate_amount' => floatval($_POST['flat_rate_amount'] ?? 0), + 'free_shipping_enabled' => isset($_POST['free_shipping_enabled']), + 'free_shipping_threshold' => floatval($_POST['free_shipping_threshold'] ?? 0), + 'local_pickup_enabled' => isset($_POST['local_pickup_enabled']), + 'processing_time' => trim($_POST['processing_time'] ?? '') + ]); + setFlash('success', 'Shipping settings updated'); + header('Location: /admin/shipping.php'); + exit; +} + +$shipping = getSetting('shipping', [ + 'flat_rate_enabled' => true, + 'flat_rate_amount' => 5.99, + 'free_shipping_enabled' => true, + 'free_shipping_threshold' => 50, + 'local_pickup_enabled' => false, + 'processing_time' => '1-2 business days' +]); +?> + + + + +
+ + +
+ + +
+
+
+
+

Shipping Methods

+
+
+ +
+
+ +
+
+ +
+ $ + +
+
+
+ + +
+
+ +
+
+ +
+ $ + +
+
+
+ + +
+
+ + Allow customers to pick up orders at your location +
+
+ + +
+ + + Displayed to customers during checkout +
+ + +
+
+
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/admin/splashes.php b/sites/tomsjavajive.com/public_html/admin/splashes.php new file mode 100644 index 0000000..815c0d4 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/splashes.php @@ -0,0 +1,410 @@ +insert('homepage_splashes', [ + 'splash_id' => generateId('spl_'), + 'icon' => trim($_POST['icon'] ?? 'fas fa-star'), + 'image_url' => trim($_POST['image_url'] ?? '') ?: null, + 'title' => $title, + 'description' => trim($_POST['description'] ?? '') ?: null, + 'sort_order' => intval($_POST['sort_order'] ?? 0), + 'is_active' => 1, + ]); + setFlash('success', 'Splash block created'); + } + } + + if ($action === 'update' && $splashId) { + $title = trim($_POST['title'] ?? ''); + if ($title) { + db()->update('homepage_splashes', [ + 'icon' => trim($_POST['icon'] ?? 'fas fa-star'), + 'image_url' => trim($_POST['image_url'] ?? '') ?: null, + 'title' => $title, + 'description' => trim($_POST['description'] ?? '') ?: null, + 'sort_order' => intval($_POST['sort_order'] ?? 0), + 'is_active' => isset($_POST['is_active']) ? 1 : 0, + ], 'splash_id = :id', ['id' => $splashId]); + setFlash('success', 'Splash block updated'); + } + } + + if ($action === 'delete' && $splashId) { + db()->delete('homepage_splashes', 'splash_id = :id', ['id' => $splashId]); + setFlash('success', 'Splash block deleted'); + } + + if ($action === 'reorder') { + $ids = json_decode($_POST['order'] ?? '[]', true); + foreach ($ids as $pos => $sid) { + db()->update('homepage_splashes', ['sort_order' => $pos + 1], + 'splash_id = :id', ['id' => $sid]); + } + echo json_encode(['ok' => true]); exit; + } + + header('Location: /admin/splashes.php'); exit; +} + +$splashes = db()->fetchAll( + "SELECT * FROM homepage_splashes ORDER BY sort_order ASC, id ASC" +); + +$iconOptions = [ + 'fas fa-leaf' => 'Leaf', + 'fas fa-fire' => 'Fire', + 'fas fa-truck' => 'Truck', + 'fas fa-heart' => 'Heart', + 'fas fa-star' => 'Star', + 'fas fa-coffee' => 'Coffee', + 'fas fa-mug-hot' => 'Mug Hot', + 'fas fa-seedling' => 'Seedling', + 'fas fa-shield-alt' => 'Shield', + 'fas fa-check-circle' => 'Check', + 'fas fa-gift' => 'Gift', + 'fas fa-globe' => 'Globe', + 'fas fa-award' => 'Award', + 'fas fa-smile' => 'Smile', + 'fas fa-bolt' => 'Bolt', + 'fas fa-recycle' => 'Recycle', + 'fas fa-hand-holding-heart'=> 'Care', + 'fas fa-crown' => 'Crown', + 'fas fa-gem' => 'Gem', + 'fas fa-thumbs-up' => 'Thumbs Up', +]; +?> + + + + +
+ + +
+
+

+ Drag rows to reorder — saves automatically. + block total. + Homepage scrolls horizontally when more than 4 are active. + Each block can show an icon or a custom image.

+
+
+ + +
+

Homepage Preview

+
+
+ +
+
+ + + + + +
+
+
+
+ +
+
+
+ + +
+
+ +
No splash blocks yet. Click Add Splash to get started.
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
VisualTitleDescriptionOrderStatusActions
+
+ + + + + +
+
+ + + Active' + : 'Hidden' ?> + + +
+ + + +
+
+ +
+
+ + + + + + + + + diff --git a/sites/tomsjavajive.com/public_html/admin/upload-image.php b/sites/tomsjavajive.com/public_html/admin/upload-image.php new file mode 100644 index 0000000..c957b4b --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/upload-image.php @@ -0,0 +1,27 @@ + 'Unauthorized']); + exit; +} + +if ($_SERVER['REQUEST_METHOD'] !== 'POST') { + echo json_encode(['error' => 'No file received']); + exit; +} + +$result = handleImageUpload('image', __DIR__ . '/../uploads/products/', 'product_'); + +if (isset($result['success'])) { + echo json_encode(['success' => true, 'url' => '/uploads/products/' . $result['filename']]); +} else { + echo json_encode(['error' => $result['error']]); +} diff --git a/sites/tomsjavajive.com/public_html/admin/users.php b/sites/tomsjavajive.com/public_html/admin/users.php new file mode 100644 index 0000000..eb609c8 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/admin/users.php @@ -0,0 +1,267 @@ + isset($_POST['perm_dashboard']), + 'pos' => isset($_POST['perm_pos']), + 'products' => isset($_POST['perm_products']), + 'orders' => isset($_POST['perm_orders']), + 'customers' => isset($_POST['perm_customers']), + 'settings_payment' => isset($_POST['perm_settings']), + 'settings_shipping' => isset($_POST['perm_settings']), + 'settings_email' => isset($_POST['perm_settings']), + 'admin_management' => isset($_POST['perm_admin']) + ]; + + if (empty($email) || empty($name)) { + setFlash('error', 'Email and name are required'); + } else { + $data = [ + 'email' => strtolower($email), + 'name' => $name, + 'is_master' => $isMaster, + 'permissions' => json_encode($permissions) + ]; + + if ($action === 'update' && $userId) { + if (!empty($password)) { + $data['password_hash'] = hashPassword($password); + } + db()->update('admin_users', $data, 'user_id = :id', ['id' => $userId]); + setFlash('success', 'Admin user updated'); + } else { + if (empty($password)) { + setFlash('error', 'Password is required for new users'); + } else { + $existing = db()->fetch("SELECT id FROM admin_users WHERE email = :email", ['email' => strtolower($email)]); + if ($existing) { + setFlash('error', 'Email already exists'); + } else { + $data['user_id'] = generateId('admin_'); + $data['password_hash'] = hashPassword($password); + $data['is_admin'] = 1; + db()->insert('admin_users', $data); + setFlash('success', 'Admin user created'); + } + } + } + } + + header('Location: /admin/users.php'); + exit; + } + + if ($action === 'delete' && !empty($_POST['user_id'])) { + // Don't allow deleting self or last master + $user = db()->fetch("SELECT is_master FROM admin_users WHERE user_id = :id", ['id' => $_POST['user_id']]); + if ($user && $user['is_master']) { + $masterCount = db()->count('admin_users', 'is_master = 1'); + if ($masterCount <= 1) { + setFlash('error', 'Cannot delete the last master admin'); + header('Location: /admin/users.php'); + exit; + } + } + + db()->delete('admin_users', 'user_id = :id', ['id' => $_POST['user_id']]); + setFlash('success', 'Admin user deleted'); + header('Location: /admin/users.php'); + exit; + } +} + +$users = db()->fetchAll("SELECT * FROM admin_users ORDER BY is_master DESC, name ASC"); +?> + + + + +
+ + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + +
NameEmailRoleCreatedActions
+ + + You + + + + Master Admin + + Admin + + + + +
+ + + +
+ +
+
+
+ + + + + + + diff --git a/sites/tomsjavajive.com/public_html/api/apply-wallet-credit.php b/sites/tomsjavajive.com/public_html/api/apply-wallet-credit.php new file mode 100644 index 0000000..aa1073e --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/apply-wallet-credit.php @@ -0,0 +1,58 @@ + 'Method not allowed'], 405); +} + +if (!CustomerAuth::isLoggedIn()) { + jsonResponse(['error' => 'Please log in to use wallet balance or a gift card'], 401); +} + +$customer = CustomerAuth::getFullUser(); +$input = json_decode(file_get_contents('php://input'), true); + +$orderTotal = (float) ($input['order_total'] ?? 0); +if ($orderTotal <= 0) { + jsonResponse(['error' => 'Invalid order total'], 400); +} + +$giftCardCode = trim($input['gift_card_code'] ?? ''); + +if (!empty($giftCardCode)) { + $redeemResult = loyalty()->redeemGiftCardToWallet($customer['customer_id'], $giftCardCode); + if (!$redeemResult['success']) { + jsonResponse(['error' => $redeemResult['error']], 400); + } + $walletBalance = $redeemResult['new_balance']; +} else { + $fresh = db()->fetch("SELECT wallet_balance FROM customers WHERE customer_id = :id", ['id' => $customer['customer_id']]); + $walletBalance = (float) ($fresh['wallet_balance'] ?? 0); +} + +$requested = isset($input['amount']) ? (float) $input['amount'] : $walletBalance; +$applyAmount = max(0, round(min($requested, $walletBalance, $orderTotal), 2)); + +jsonResponse([ + 'success' => true, + 'apply_amount' => $applyAmount, + 'wallet_balance' => $walletBalance, + 'new_total' => round($orderTotal - $applyAmount, 2) +]); diff --git a/sites/tomsjavajive.com/public_html/api/cart.php b/sites/tomsjavajive.com/public_html/api/cart.php new file mode 100644 index 0000000..990de9c --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/cart.php @@ -0,0 +1,121 @@ + 'Product ID required'], 400); + } + + // Verify product exists and is active + $product = db()->fetch( + "SELECT product_id, stock FROM products WHERE product_id = :id AND is_active = 1", + ['id' => $productId] + ); + + if (!$product) { + jsonResponse(['error' => 'Product not found'], 404); + } + + if ($product['stock'] < $quantity) { + jsonResponse(['error' => 'Not enough stock'], 400); + } + + addToCart($productId, $quantity); + + jsonResponse([ + 'success' => true, + 'cart_count' => getCartCount(), + 'message' => 'Item added to cart' + ]); + break; + + case 'update': + $productId = $input['product_id'] ?? ''; + $quantity = intval($input['quantity'] ?? 0); + + if (!$productId) { + jsonResponse(['error' => 'Product ID required'], 400); + } + + updateCartItem($productId, $quantity); + + jsonResponse([ + 'success' => true, + 'cart_count' => getCartCount(), + 'subtotal' => getCartTotal() + ]); + break; + + case 'remove': + $productId = $input['product_id'] ?? ''; + + if (!$productId) { + jsonResponse(['error' => 'Product ID required'], 400); + } + + removeFromCart($productId); + + jsonResponse([ + 'success' => true, + 'cart_count' => getCartCount(), + 'subtotal' => getCartTotal() + ]); + break; + + case 'clear': + clearCart(); + jsonResponse(['success' => true, 'cart_count' => 0]); + break; + + case 'get': + $cart = getCart(); + $items = []; + $subtotal = 0; + + foreach ($cart as $productId => $quantity) { + $product = db()->fetch( + "SELECT product_id, name, price, sale_price, stock, images FROM products WHERE product_id = :id", + ['id' => $productId] + ); + + if ($product) { + $images = json_decode($product['images'] ?? '[]', true); + $unitPrice = $product['sale_price'] ?? $product['price']; + $total = $unitPrice * $quantity; + $subtotal += $total; + + $items[] = [ + 'product_id' => $product['product_id'], + 'name' => $product['name'], + 'price' => $unitPrice, + 'quantity' => $quantity, + 'total' => $total, + 'image' => !empty($images) ? $images[0] : null, + 'stock' => $product['stock'] + ]; + } + } + + jsonResponse([ + 'items' => $items, + 'count' => getCartCount(), + 'subtotal' => $subtotal + ]); + break; + + default: + jsonResponse(['error' => 'Invalid action'], 400); +} diff --git a/sites/tomsjavajive.com/public_html/api/create-square-payment.php b/sites/tomsjavajive.com/public_html/api/create-square-payment.php new file mode 100644 index 0000000..a32e1dc --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/create-square-payment.php @@ -0,0 +1,94 @@ + 'Method not allowed'], 405); +} + +$input = json_decode(file_get_contents('php://input'), true); +$orderId = $input['order_id'] ?? ''; +$sourceId = $input['source_id'] ?? ''; + +if (empty($orderId)) { + jsonResponse(['error' => 'Order ID required'], 400); +} + +$order = db()->fetch( + "SELECT * FROM orders WHERE order_id = :id", + ['id' => $orderId] +); + +if (!$order) { + jsonResponse(['error' => 'Order not found'], 404); +} + +if ($order['payment_status'] === 'paid') { + jsonResponse(['error' => 'Order already paid'], 400); +} + +// Demo mode - Square not configured +if (!isSquareConfigured()) { + db()->update('orders', + [ + 'payment_status' => 'paid', + 'order_status' => 'confirmed', + 'square_payment_id' => 'demo_' . bin2hex(random_bytes(8)), + 'payment_method' => 'square', + ], + 'order_id = :id', + ['id' => $orderId] + ); + + jsonResponse([ + 'demo_mode' => true, + 'message' => 'Payment simulated (Square not configured)', + 'redirect' => '/order-confirmation.php?order=' . $orderId + ]); +} + +if (empty($sourceId)) { + jsonResponse(['error' => 'Card details required'], 400); +} + +try { + $result = squareCreatePayment( + $sourceId, + (float) $order['total'], + $orderId, + ['note' => 'Order #' . $order['order_number']] + ); + $payment = $result['payment'] ?? []; + $status = $payment['status'] ?? ''; + + if ($status === 'COMPLETED') { + markSquarePaymentResult($payment['id'], $orderId, 'COMPLETED'); + jsonResponse([ + 'success' => true, + 'redirect' => '/order-confirmation.php?order=' . $orderId + ]); + } + + // Store the payment id even if not yet completed, so the reconciliation + // poll and webhook can find this order by square_payment_id. + db()->update('orders', + ['square_payment_id' => $payment['id'] ?? null], + 'order_id = :id', + ['id' => $orderId] + ); + + jsonResponse(['error' => 'Payment was not completed (status: ' . $status . ')'], 400); + +} catch (Exception $e) { + error_log('Square payment error: ' . $e->getMessage()); + jsonResponse(['error' => 'Payment failed: ' . $e->getMessage()], 500); +} diff --git a/sites/tomsjavajive.com/public_html/api/delete-account.php b/sites/tomsjavajive.com/public_html/api/delete-account.php new file mode 100644 index 0000000..83c31c3 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/delete-account.php @@ -0,0 +1,53 @@ +query("START TRANSACTION"); + + // Delete wallet transactions + db()->query("DELETE FROM wallet_transactions WHERE customer_id = :id", ['id' => $customer['customer_id']]); + + // Delete reviews + db()->query("DELETE FROM reviews WHERE customer_id = :id", ['id' => $customer['customer_id']]); + + // Delete wishlist + db()->query("DELETE FROM wishlist WHERE customer_id = :id", ['id' => $customer['customer_id']]); + + // Anonymize orders (keep for records but remove personal info) + db()->query( + "UPDATE orders SET customer_name = 'Deleted User', customer_email = 'deleted@example.com', + shipping_address = NULL, billing_address = NULL WHERE customer_id = :id", + ['id' => $customer['customer_id']] + ); + + // Remove from email subscribers + db()->query("DELETE FROM email_subscribers WHERE email = :email", ['email' => $customer['email']]); + + // Delete customer + db()->query("DELETE FROM customers WHERE customer_id = :id", ['id' => $customer['customer_id']]); + + db()->query("COMMIT"); + + // Logout + CustomerAuth::logout(); + + setFlash('success', 'Your account has been deleted. We\'re sorry to see you go!'); + redirect('/'); + +} catch (Exception $e) { + db()->query("ROLLBACK"); + setFlash('error', 'Failed to delete account. Please contact support.'); + redirect('/account/profile.php'); +} diff --git a/sites/tomsjavajive.com/public_html/api/loyalty.php b/sites/tomsjavajive.com/public_html/api/loyalty.php new file mode 100644 index 0000000..4224f3d --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/loyalty.php @@ -0,0 +1,94 @@ + 'Authentication required'], 401); +} + +$customer = CustomerAuth::getUser(); +$method = $_SERVER['REQUEST_METHOD']; +$input = json_decode(file_get_contents('php://input'), true); +$action = $input['action'] ?? $_GET['action'] ?? ''; + +switch ($action) { + case 'status': + // Get customer's loyalty status + $status = loyalty()->getCustomerTier($customer['customer_id']); + $conversion = loyalty()->getConversionInfo(); + + jsonResponse([ + 'tier' => $status['tier'], + 'tier_name' => $status['info']['name'], + 'tier_color' => $status['info']['color'], + 'tier_icon' => $status['info']['icon'], + 'benefits' => $status['info']['benefits'], + 'multiplier' => $status['info']['multiplier'], + 'points' => $status['points'], + 'lifetime_points' => $status['lifetime_points'], + 'points_value' => $status['points'] * $conversion['points_value'], + 'next_tier' => $status['next_tier'], + 'next_tier_name' => $status['next_tier_info']['name'] ?? null, + 'points_to_next' => $status['points_to_next'], + 'progress_percent' => $status['progress_percent'], + 'conversion' => $conversion + ]); + break; + + case 'history': + // Get loyalty transaction history + $limit = min(50, intval($_GET['limit'] ?? 20)); + $history = loyalty()->getHistory($customer['customer_id'], $limit); + + jsonResponse(['transactions' => $history]); + break; + + case 'redeem': + // Redeem points for credit + if ($method !== 'POST') { + jsonResponse(['error' => 'POST required'], 405); + } + + $points = intval($input['points'] ?? 0); + + if ($points < 100) { + jsonResponse(['error' => 'Minimum 100 points required for redemption'], 400); + } + + $result = loyalty()->redeemPoints($customer['customer_id'], $points); + + if ($result['success']) { + jsonResponse([ + 'success' => true, + 'points_redeemed' => $result['points_redeemed'], + 'credit_value' => $result['credit_value'], + 'new_points_balance' => $result['new_points_balance'], + 'new_wallet_balance' => $result['new_wallet_balance'], + 'message' => 'Successfully redeemed ' . $points . ' points for ' . formatCurrency($result['credit_value']) + ]); + } else { + jsonResponse(['error' => $result['error']], 400); + } + break; + + case 'tiers': + // Get all tier information + $tiers = loyalty()->getTiers(); + $conversion = loyalty()->getConversionInfo(); + + jsonResponse([ + 'tiers' => $tiers, + 'conversion' => $conversion + ]); + break; + + default: + jsonResponse(['error' => 'Invalid action'], 400); +} diff --git a/sites/tomsjavajive.com/public_html/api/orders.php b/sites/tomsjavajive.com/public_html/api/orders.php new file mode 100644 index 0000000..2785386 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/orders.php @@ -0,0 +1,183 @@ +fetch( + "SELECT * FROM orders WHERE order_id = :id", + ['id' => $orderId] + ); + + if (!$order) { + jsonResponse(['error' => 'Order not found'], 404); + } + + // Only the admin or the customer who placed this order may view it by raw id. + $customer = CustomerAuth::getUser(); + $isOwner = $customer && (string)$customer['customer_id'] === (string)$order['customer_id']; + if (!AdminAuth::isLoggedIn() && !$isOwner) { + jsonResponse(['error' => 'Unauthorized'], 401); + } + + $order['items'] = json_decode($order['items'], true); + $order['shipping_address'] = json_decode($order['shipping_address'], true); + unset($order['id']); + + jsonResponse($order); + } elseif ($orderNumber) { + $email = $_GET['email'] ?? ''; + + $order = db()->fetch( + "SELECT * FROM orders WHERE order_number = :num AND customer_email = :email", + ['num' => $orderNumber, 'email' => strtolower($email)] + ); + + if (!$order) { + jsonResponse(['error' => 'Order not found'], 404); + } + + $order['items'] = json_decode($order['items'], true); + $order['shipping_address'] = json_decode($order['shipping_address'], true); + unset($order['id']); + + jsonResponse($order); + } else { + // List orders (admin only or customer's own) + $customer = CustomerAuth::getUser(); + + if ($customer) { + $orders = db()->fetchAll( + "SELECT order_id, order_number, total, payment_status, order_status, created_at + FROM orders WHERE customer_id = :cid ORDER BY created_at DESC LIMIT 50", + ['cid' => $customer['customer_id']] + ); + } else { + jsonResponse(['error' => 'Authentication required'], 401); + } + + jsonResponse(['orders' => $orders]); + } + break; + + case 'POST': + // Update order status (admin) + if ($action === 'update_status') { + if (!AdminAuth::isLoggedIn()) { + jsonResponse(['error' => 'Unauthorized'], 401); + } + $orderId = $input['order_id'] ?? ''; + $status = $input['status'] ?? ''; + $trackingNumber = $input['tracking_number'] ?? null; + + if (empty($orderId) || empty($status)) { + jsonResponse(['error' => 'Order ID and status required'], 400); + } + + $validStatuses = ['pending', 'confirmed', 'processing', 'shipped', 'delivered', 'cancelled', 'refunded']; + if (!in_array($status, $validStatuses)) { + jsonResponse(['error' => 'Invalid status'], 400); + } + + $updateData = ['order_status' => $status]; + if ($trackingNumber) { + $updateData['tracking_number'] = $trackingNumber; + } + + db()->update('orders', $updateData, 'order_id = :id', ['id' => $orderId]); + + // If status is shipped or delivered, send email + $order = db()->fetch("SELECT * FROM orders WHERE order_id = :id", ['id' => $orderId]); + if ($order && in_array($status, ['shipped', 'delivered'])) { + sendStatusUpdateEmail($order, $status, $trackingNumber); + } + + jsonResponse(['success' => true, 'status' => $status]); + } + + // Cancel order + if ($action === 'cancel') { + $orderId = $input['order_id'] ?? ''; + $customer = CustomerAuth::getUser(); + + if (!$customer) { + jsonResponse(['error' => 'Authentication required'], 401); + } + + $order = db()->fetch( + "SELECT * FROM orders WHERE order_id = :id AND customer_id = :cid", + ['id' => $orderId, 'cid' => $customer['customer_id']] + ); + + if (!$order) { + jsonResponse(['error' => 'Order not found'], 404); + } + + if (!in_array($order['order_status'], ['pending', 'confirmed'])) { + jsonResponse(['error' => 'This order cannot be cancelled'], 400); + } + + db()->update('orders', + ['order_status' => 'cancelled'], + 'order_id = :id', + ['id' => $orderId] + ); + + // Restore stock + $items = json_decode($order['items'], true) ?? []; + foreach ($items as $item) { + db()->query( + "UPDATE products SET stock = stock + :qty WHERE product_id = :id", + ['qty' => $item['quantity'], 'id' => $item['product_id']] + ); + } + + jsonResponse(['success' => true]); + } + + jsonResponse(['error' => 'Invalid action'], 400); + break; + + default: + jsonResponse(['error' => 'Method not allowed'], 405); +} + +function sendStatusUpdateEmail($order, $status, $trackingNumber = null) { + $statusMessages = [ + 'shipped' => 'Your order has been shipped!', + 'delivered' => 'Your order has been delivered!' + ]; + + $tracking = $trackingNumber ? "

Tracking #: {$trackingNumber}

" : ''; + + $html = << +
+

Tom's Java Jive

+
+
+

{$statusMessages[$status]}

+

Hi {$order['customer_name']},

+

Order #{$order['order_number']} has been updated to: {$status}

+ {$tracking} +
+
+ HTML; + + sendEmail($order['customer_email'], "Order Update - #{$order['order_number']}", $html); +} diff --git a/sites/tomsjavajive.com/public_html/api/payment-status.php b/sites/tomsjavajive.com/public_html/api/payment-status.php new file mode 100644 index 0000000..9da23e0 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/payment-status.php @@ -0,0 +1,93 @@ + 'Method not allowed'], 405); +} + +$orderId = $_GET['order_id'] ?? ''; + +if (empty($orderId)) { + jsonResponse(['error' => 'Order ID required'], 400); +} + +$order = db()->fetch( + "SELECT * FROM orders WHERE order_id = :id", + ['id' => $orderId] +); + +if (!$order) { + jsonResponse(['error' => 'Order not found'], 404); +} + +if ($order['payment_status'] === 'paid') { + jsonResponse([ + 'status' => 'complete', + 'payment_status' => 'paid', + 'order_id' => $order['order_id'], + 'order_number' => $order['order_number'], + 'redirect' => '/order-confirmation.php?order=' . $order['order_id'] + ]); +} + +if (!isSquareConfigured()) { + jsonResponse([ + 'status' => 'demo_mode', + 'payment_status' => $order['payment_status'], + 'message' => 'Square not configured - running in demo mode' + ]); +} + +if (empty($order['square_payment_id'])) { + jsonResponse([ + 'status' => 'pending', + 'payment_status' => $order['payment_status'] + ]); +} + +try { + $result = squareGetPayment($order['square_payment_id']); + $payment = $result['payment'] ?? []; + $status = $payment['status'] ?? ''; + + markSquarePaymentResult($order['square_payment_id'], $order['order_id'], $status); + + $updated = db()->fetch("SELECT * FROM orders WHERE order_id = :id", ['id' => $order['order_id']]); + + if ($updated['payment_status'] === 'paid') { + jsonResponse([ + 'status' => 'complete', + 'payment_status' => 'paid', + 'order_id' => $updated['order_id'], + 'order_number' => $updated['order_number'], + 'redirect' => '/order-confirmation.php?order=' . $updated['order_id'] + ]); + } + + jsonResponse([ + 'status' => $status, + 'payment_status' => $updated['payment_status'] + ]); + +} catch (Exception $e) { + error_log('Square payment status check error: ' . $e->getMessage()); + jsonResponse([ + 'status' => 'error', + 'payment_status' => $order['payment_status'], + 'error' => 'Failed to check payment status' + ]); +} diff --git a/sites/tomsjavajive.com/public_html/api/pos-order.php b/sites/tomsjavajive.com/public_html/api/pos-order.php new file mode 100644 index 0000000..398dc43 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/pos-order.php @@ -0,0 +1,191 @@ + 'Method not allowed'], 405); +} + +$input = json_decode(file_get_contents('php://input'), true); + +if (empty($input['items']) || !is_array($input['items'])) { + jsonResponse(['error' => 'No items provided'], 400); +} + +$items = $input['items']; +$paymentMethod = $input['payment_method'] ?? 'cash'; +$notes = $input['notes'] ?? ''; +$customerId = $input['customer_id'] ?? null; +$customerEmail = $input['customer_email'] ?? null; +$discountAmount = floatval($input['discount'] ?? 0); +$couponCode = $input['coupon_code'] ?? null; + +// Calculate totals +$subtotal = 0; +$orderItems = []; + +foreach ($items as $item) { + // Verify product exists and has stock + $product = db()->fetch( + "SELECT product_id, name, price, sale_price, stock FROM products WHERE product_id = :id AND is_active = 1", + ['id' => $item['product_id']] + ); + + if (!$product) { + jsonResponse(['error' => 'Product not found: ' . $item['name']], 400); + } + + if ($product['stock'] < $item['quantity']) { + jsonResponse(['error' => 'Insufficient stock for: ' . $product['name']], 400); + } + + $price = $product['sale_price'] ?? $product['price']; + $lineTotal = $price * $item['quantity']; + $subtotal += $lineTotal; + + $orderItems[] = [ + 'product_id' => $product['product_id'], + 'name' => $product['name'], + 'price' => $price, + 'quantity' => $item['quantity'], + 'total' => $lineTotal + ]; +} + +// Apply coupon if provided +$couponDiscount = 0; +if ($couponCode) { + $coupon = db()->fetch( + "SELECT * FROM coupons WHERE code = :code AND is_active = 1 + AND (starts_at IS NULL OR starts_at <= NOW()) + AND (expires_at IS NULL OR expires_at > NOW()) + AND (max_uses IS NULL OR times_used < max_uses)", + ['code' => strtoupper($couponCode)] + ); + + if ($coupon) { + if ($coupon['min_order_amount'] && $subtotal < $coupon['min_order_amount']) { + // Coupon minimum not met, ignore + } else { + if ($coupon['discount_type'] === 'percentage') { + $couponDiscount = $subtotal * ($coupon['discount_value'] / 100); + } else { + $couponDiscount = min($coupon['discount_value'], $subtotal); + } + + // Update coupon usage + db()->query("UPDATE coupons SET times_used = times_used + 1 WHERE coupon_id = :id", + ['id' => $coupon['coupon_id']]); + } + } +} + +// Calculate final total +$discount = $discountAmount + $couponDiscount; +$taxRate = 0; // Adjust based on settings +$tax = ($subtotal - $discount) * $taxRate; +$total = $subtotal - $discount + $tax; + +// Handle wallet payment +$walletUsed = 0; +if ($paymentMethod === 'wallet' && $customerId) { + $customer = db()->fetch( + "SELECT wallet_balance FROM customers WHERE customer_id = :id", + ['id' => $customerId] + ); + + if (!$customer || $customer['wallet_balance'] < $total) { + jsonResponse(['error' => 'Insufficient wallet balance'], 400); + } + + $walletUsed = $total; + + // Deduct from wallet + db()->query( + "UPDATE customers SET wallet_balance = wallet_balance - :amount WHERE customer_id = :id", + ['amount' => $walletUsed, 'id' => $customerId] + ); + + // Log wallet transaction + $newBalance = $customer['wallet_balance'] - $walletUsed; + db()->insert('wallet_transactions', [ + 'transaction_id' => generateId('wt_'), + 'customer_id' => $customerId, + 'amount' => -$walletUsed, + 'balance_after' => $newBalance, + 'type' => 'purchase', + 'description' => 'POS Purchase' + ]); +} + +// Generate order +$orderId = generateId('ord_'); +$orderNumber = generateOrderNumber(); + +try { + // Create order + db()->insert('orders', [ + 'order_id' => $orderId, + 'order_number' => $orderNumber, + 'customer_id' => $customerId, + 'customer_email' => $customerEmail ?? 'pos@store.local', + 'customer_name' => $input['customer_name'] ?? 'POS Customer', + 'items' => json_encode($orderItems), + 'subtotal' => $subtotal, + 'tax' => $tax, + 'discount' => $discount, + 'wallet_amount_used' => $walletUsed, + 'total' => $total, + 'payment_method' => $paymentMethod, + 'payment_status' => 'paid', + 'order_status' => 'confirmed', + 'notes' => $notes, + 'is_pos_order' => 1 + ]); + + // Insert order items + foreach ($orderItems as $item) { + db()->insert('order_items', [ + 'order_id' => $orderId, + 'product_id' => $item['product_id'], + 'name' => $item['name'], + 'price' => $item['price'], + 'quantity' => $item['quantity'], + 'total' => $item['total'] + ]); + + // Update stock + db()->query( + "UPDATE products SET stock = stock - :qty WHERE product_id = :id", + ['qty' => $item['quantity'], 'id' => $item['product_id']] + ); + } + + // Award reward points if customer + if ($customerId) { + $pointsEarned = floor($total); // 1 point per dollar + db()->query( + "UPDATE customers SET reward_points = reward_points + :points WHERE customer_id = :id", + ['points' => $pointsEarned, 'id' => $customerId] + ); + } + + jsonResponse([ + 'success' => true, + 'order_id' => $orderId, + 'order_number' => $orderNumber, + 'total' => $total, + 'items' => $orderItems + ]); + +} catch (Exception $e) { + jsonResponse(['error' => 'Failed to create order: ' . $e->getMessage()], 500); +} diff --git a/sites/tomsjavajive.com/public_html/api/products.php b/sites/tomsjavajive.com/public_html/api/products.php new file mode 100644 index 0000000..be9abae --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/products.php @@ -0,0 +1,93 @@ +fetch( + "SELECT * FROM products WHERE product_id = :id AND is_active = 1", + ['id' => $productId] + ); + + if (!$product) { + jsonResponse(['error' => 'Product not found'], 404); + } + + $product['images'] = json_decode($product['images'] ?? '[]', true); + $product['tags'] = json_decode($product['tags'] ?? '[]', true); + unset($product['id']); + + // Get reviews + $reviews = db()->fetchAll( + "SELECT review_id, customer_name, rating, title, comment, is_verified_purchase, created_at + FROM reviews WHERE product_id = :id AND is_approved = 1 ORDER BY created_at DESC", + ['id' => $productId] + ); + + $product['reviews'] = $reviews; + $product['average_rating'] = !empty($reviews) + ? round(array_sum(array_column($reviews, 'rating')) / count($reviews), 1) + : 0; + + jsonResponse($product); + } else { + // Get products list + $category = $_GET['category'] ?? ''; + $search = $_GET['search'] ?? ''; + $featured = $_GET['featured'] ?? ''; + $limit = min(100, intval($_GET['limit'] ?? 20)); + $offset = intval($_GET['offset'] ?? 0); + + $where = ['is_active = 1']; + $params = []; + + if ($category) { + $where[] = 'category = :category'; + $params['category'] = $category; + } + + if ($search) { + $where[] = '(name LIKE :search OR description LIKE :search)'; + $params['search'] = '%' . $search . '%'; + } + + if ($featured === '1') { + $where[] = 'is_featured = 1'; + } + + $whereClause = implode(' AND ', $where); + + $products = db()->fetchAll( + "SELECT product_id, name, description, price, sale_price, category, images, stock, is_featured + FROM products WHERE {$whereClause} + ORDER BY is_featured DESC, created_at DESC + LIMIT :limit OFFSET :offset", + array_merge($params, ['limit' => $limit, 'offset' => $offset]) + ); + + foreach ($products as &$p) { + $p['images'] = json_decode($p['images'] ?? '[]', true); + } + + $total = db()->count('products', $whereClause, $params); + + jsonResponse([ + 'products' => $products, + 'total' => $total, + 'limit' => $limit, + 'offset' => $offset + ]); + } +} + +jsonResponse(['error' => 'Method not allowed'], 405); diff --git a/sites/tomsjavajive.com/public_html/api/push-subscribe.php b/sites/tomsjavajive.com/public_html/api/push-subscribe.php new file mode 100644 index 0000000..ca1c219 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/push-subscribe.php @@ -0,0 +1,83 @@ + 'Invalid subscription data'], 400); + } + + $customerId = null; + if (CustomerAuth::isLoggedIn()) { + $customerId = CustomerAuth::getUser()['customer_id']; + } + + // Check if subscription already exists + $existing = db()->fetch( + "SELECT id FROM push_subscriptions WHERE endpoint = :endpoint", + ['endpoint' => $endpoint] + ); + + if ($existing) { + // Update existing + db()->query( + "UPDATE push_subscriptions SET + customer_id = :cid, p256dh_key = :p256dh, auth_key = :auth, + is_active = 1, updated_at = NOW() + WHERE endpoint = :endpoint", + ['cid' => $customerId, 'p256dh' => $p256dh, 'auth' => $auth, 'endpoint' => $endpoint] + ); + } else { + // Create new + db()->insert('push_subscriptions', [ + 'customer_id' => $customerId, + 'endpoint' => $endpoint, + 'p256dh_key' => $p256dh, + 'auth_key' => $auth, + 'is_active' => 1 + ]); + } + + jsonResponse(['success' => true, 'message' => 'Subscribed to notifications']); + break; + + case 'DELETE': + // Unsubscribe + $endpoint = $input['endpoint'] ?? ''; + + if (empty($endpoint)) { + jsonResponse(['error' => 'Endpoint required'], 400); + } + + db()->query( + "UPDATE push_subscriptions SET is_active = 0 WHERE endpoint = :endpoint", + ['endpoint' => $endpoint] + ); + + jsonResponse(['success' => true, 'message' => 'Unsubscribed from notifications']); + break; + + case 'GET': + // Get VAPID public key + require_once __DIR__ . '/../includes/push.php'; + jsonResponse(['publicKey' => pushNotify()->getPublicKey()]); + break; + + default: + jsonResponse(['error' => 'Method not allowed'], 405); +} diff --git a/sites/tomsjavajive.com/public_html/api/redeem-gift-card.php b/sites/tomsjavajive.com/public_html/api/redeem-gift-card.php new file mode 100644 index 0000000..0e37830 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/redeem-gift-card.php @@ -0,0 +1,34 @@ + 'Method not allowed'], 405); +} + +if (!CustomerAuth::isLoggedIn()) { + jsonResponse(['error' => 'Please log in to redeem a gift card'], 401); +} + +$customer = CustomerAuth::getFullUser(); +$input = json_decode(file_get_contents('php://input'), true); + +$result = loyalty()->redeemGiftCardToWallet($customer['customer_id'], $input['code'] ?? ''); + +if (!$result['success']) { + jsonResponse(['error' => $result['error']], 400); +} + +jsonResponse([ + 'success' => true, + 'amount' => $result['amount'], + 'new_balance' => $result['new_balance'], + 'message' => formatCurrency($result['amount']) . ' has been added to your wallet!' +]); diff --git a/sites/tomsjavajive.com/public_html/api/search-customers.php b/sites/tomsjavajive.com/public_html/api/search-customers.php new file mode 100644 index 0000000..be49bc6 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/search-customers.php @@ -0,0 +1,30 @@ + 'Unauthorized'], 401); +} + +$query = $_GET['q'] ?? ''; + +if (strlen($query) < 2) { + jsonResponse([]); +} + +$customers = db()->fetchAll( + "SELECT customer_id, email, name, phone, wallet_balance, reward_points + FROM customers + WHERE (email LIKE :q1 OR name LIKE :q2 OR phone LIKE :q3) AND is_active = 1 + ORDER BY name ASC + LIMIT 20", + ['q1' => '%' . $query . '%', 'q2' => '%' . $query . '%', 'q3' => '%' . $query . '%'] +); + +jsonResponse($customers); diff --git a/sites/tomsjavajive.com/public_html/api/submit-review.php b/sites/tomsjavajive.com/public_html/api/submit-review.php new file mode 100644 index 0000000..6246018 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/submit-review.php @@ -0,0 +1,66 @@ + 'Method not allowed'], 405); +} + +if (!CustomerAuth::isLoggedIn()) { + jsonResponse(['error' => 'Please log in to submit a review'], 401); +} + +$customer = CustomerAuth::getFullUser(); +$input = json_decode(file_get_contents('php://input'), true); + +$productId = $input['product_id'] ?? ''; +$rating = intval($input['rating'] ?? 0); +$title = trim($input['title'] ?? ''); +$content = trim($input['content'] ?? ''); + +if (empty($productId) || $rating < 1 || $rating > 5 || empty($content)) { + jsonResponse(['error' => 'Invalid input. Rating and review content are required.'], 400); +} + +// Check if product exists +$product = db()->fetch("SELECT product_id FROM products WHERE product_id = :id", ['id' => $productId]); +if (!$product) { + jsonResponse(['error' => 'Product not found'], 404); +} + +// Check if already reviewed +$existingReview = db()->fetch( + "SELECT review_id FROM reviews WHERE customer_id = :cid AND product_id = :pid", + ['cid' => $customer['customer_id'], 'pid' => $productId] +); + +if ($existingReview) { + jsonResponse(['error' => 'You have already reviewed this product'], 400); +} + +// Create review +$reviewId = generateId('rev_'); + +db()->insert('reviews', [ + 'review_id' => $reviewId, + 'product_id' => $productId, + 'customer_id' => $customer['customer_id'], + 'customer_name' => $customer['name'] ?? explode('@', $customer['email'])[0], + 'customer_email' => $customer['email'], + 'rating' => $rating, + 'title' => $title, + 'comment' => $content, + 'is_approved' => 0 // Reviews require admin approval +]); + +jsonResponse([ + 'success' => true, + 'message' => 'Review submitted successfully. It will be visible after approval.', + 'review_id' => $reviewId +]); diff --git a/sites/tomsjavajive.com/public_html/api/subscribe.php b/sites/tomsjavajive.com/public_html/api/subscribe.php new file mode 100644 index 0000000..a6e5808 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/subscribe.php @@ -0,0 +1,75 @@ + 'Method not allowed'], 405); +} + +$input = json_decode(file_get_contents('php://input'), true); +$email = trim($input['email'] ?? $_POST['email'] ?? ''); + +if (empty($email)) { + jsonResponse(['error' => 'Email is required'], 400); +} + +if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + jsonResponse(['error' => 'Please enter a valid email address'], 400); +} + +// Check if already subscribed +$existing = db()->fetch( + "SELECT id FROM email_subscribers WHERE email = :email", + ['email' => strtolower($email)] +); + +if ($existing) { + jsonResponse(['error' => 'This email is already subscribed'], 400); +} + +// Add subscriber +try { + db()->insert('email_subscribers', [ + 'email' => strtolower($email), + 'source' => 'website', + 'is_active' => 1 + ]); + + // Send welcome email + $html = << +
+

Tom's Java Jive

+
+
+

Welcome to the Java Jive Family!

+

Thanks for subscribing to our newsletter. You'll be the first to know about:

+
    +
  • New coffee releases
  • +
  • Exclusive discounts and promotions
  • +
  • Brewing tips and recipes
  • +
  • Behind-the-scenes at our roastery
  • +
+

As a thank you, enjoy 10% off your first order with code: WELCOME10

+

+ Shop Now +

+
+
+

Tom's Java Jive | Premium Coffee

+
+
+ HTML; + + sendEmail($email, 'Welcome to Tom\'s Java Jive!', $html); + + jsonResponse(['success' => true, 'message' => 'Successfully subscribed!']); + +} catch (Exception $e) { + jsonResponse(['error' => 'Subscription failed. Please try again.'], 500); +} diff --git a/sites/tomsjavajive.com/public_html/api/test-notification.php b/sites/tomsjavajive.com/public_html/api/test-notification.php new file mode 100644 index 0000000..99509a7 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/test-notification.php @@ -0,0 +1,65 @@ + 'Method not allowed'], 405); +} + +$input = json_decode(file_get_contents('php://input'), true); +$type = $input['type'] ?? ''; +$recipient = $input['recipient'] ?? ''; + +if (empty($recipient)) { + jsonResponse(['error' => 'Recipient is required'], 400); +} + +switch ($type) { + case 'email': + if (!filter_var($recipient, FILTER_VALIDATE_EMAIL)) { + jsonResponse(['error' => 'Invalid email address'], 400); + } + + $result = emailService()->send( + $recipient, + "Test Email from Tom's Java Jive", + "
+

Test Email

+

This is a test email from your Tom's Java Jive store.

+

If you received this, your SendGrid integration is working correctly!

+

+ Sent at: " . date('Y-m-d H:i:s') . " +

+
" + ); + + if ($result['success']) { + jsonResponse(['success' => true, 'message' => 'Test email sent to ' . $recipient]); + } else { + jsonResponse(['success' => false, 'error' => $result['error'] ?? 'Failed to send email']); + } + break; + + case 'sms': + $result = sendSMS()->send( + $recipient, + "Tom's Java Jive: This is a test message. If you received this, your Twilio integration is working! Sent at " . date('g:i A') + ); + + if ($result['success']) { + jsonResponse(['success' => true, 'message' => 'Test SMS sent to ' . $recipient]); + } else { + jsonResponse(['success' => false, 'error' => $result['error'] ?? 'Failed to send SMS']); + } + break; + + default: + jsonResponse(['error' => 'Invalid notification type'], 400); +} diff --git a/sites/tomsjavajive.com/public_html/api/validate-coupon.php b/sites/tomsjavajive.com/public_html/api/validate-coupon.php new file mode 100644 index 0000000..957c697 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/validate-coupon.php @@ -0,0 +1,59 @@ + 'Method not allowed'], 405); +} + +$input = json_decode(file_get_contents('php://input'), true); +$code = strtoupper(trim($input['code'] ?? '')); +$subtotal = floatval($input['subtotal'] ?? 0); + +if (empty($code)) { + jsonResponse(['error' => 'Coupon code required'], 400); +} + +$coupon = db()->fetch( + "SELECT * FROM coupons WHERE code = :code AND is_active = 1", + ['code' => $code] +); + +if (!$coupon) { + jsonResponse(['error' => 'Invalid coupon code']); +} + +// Check if expired +if ($coupon['expires_at'] && strtotime($coupon['expires_at']) < time()) { + jsonResponse(['error' => 'Coupon has expired']); +} + +// Check if not started yet +if ($coupon['starts_at'] && strtotime($coupon['starts_at']) > time()) { + jsonResponse(['error' => 'Coupon is not yet active']); +} + +// Check usage limit +if ($coupon['max_uses'] && $coupon['times_used'] >= $coupon['max_uses']) { + jsonResponse(['error' => 'Coupon usage limit reached']); +} + +// Check minimum order +if ($coupon['min_order_amount'] && $subtotal < $coupon['min_order_amount']) { + jsonResponse(['error' => 'Minimum order of ' . formatCurrency($coupon['min_order_amount']) . ' required']); +} + +jsonResponse([ + 'valid' => true, + 'code' => $coupon['code'], + 'type' => $coupon['discount_type'], + 'value' => floatval($coupon['discount_value']), + 'description' => $coupon['discount_type'] === 'percentage' + ? $coupon['discount_value'] . '% off' + : formatCurrency($coupon['discount_value']) . ' off' +]); diff --git a/sites/tomsjavajive.com/public_html/api/webhook.php b/sites/tomsjavajive.com/public_html/api/webhook.php new file mode 100644 index 0000000..02701ee --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/webhook.php @@ -0,0 +1,69 @@ +update('orders', + [ + 'payment_status' => 'refunded', + 'order_status' => 'refunded', + ], + 'square_payment_id = :pid', + ['pid' => $paymentId] + ); + } + break; +} + +http_response_code(200); +echo json_encode(['received' => true]); diff --git a/sites/tomsjavajive.com/public_html/api/wishlist.php b/sites/tomsjavajive.com/public_html/api/wishlist.php new file mode 100644 index 0000000..3f3565a --- /dev/null +++ b/sites/tomsjavajive.com/public_html/api/wishlist.php @@ -0,0 +1,95 @@ + 'Please log in to manage your wishlist'], 401); +} + +$customer = CustomerAuth::getFullUser(); +$input = json_decode(file_get_contents('php://input'), true); +$action = $input['action'] ?? $_GET['action'] ?? ''; +$productId = $input['product_id'] ?? $_GET['product_id'] ?? ''; + +switch ($action) { + case 'add': + if (empty($productId)) { + jsonResponse(['error' => 'Product ID required'], 400); + } + + // Check if product exists + $product = db()->fetch("SELECT product_id FROM products WHERE product_id = :id", ['id' => $productId]); + if (!$product) { + jsonResponse(['error' => 'Product not found'], 404); + } + + // Check if already in wishlist + $existing = db()->fetch( + "SELECT id FROM wishlist WHERE customer_id = :cid AND product_id = :pid", + ['cid' => $customer['customer_id'], 'pid' => $productId] + ); + + if ($existing) { + jsonResponse(['success' => true, 'message' => 'Already in wishlist']); + } + + db()->insert('wishlist', [ + 'customer_id' => $customer['customer_id'], + 'product_id' => $productId + ]); + + jsonResponse(['success' => true, 'message' => 'Added to wishlist']); + break; + + case 'remove': + if (empty($productId)) { + jsonResponse(['error' => 'Product ID required'], 400); + } + + db()->query( + "DELETE FROM wishlist WHERE customer_id = :cid AND product_id = :pid", + ['cid' => $customer['customer_id'], 'pid' => $productId] + ); + + jsonResponse(['success' => true, 'message' => 'Removed from wishlist']); + break; + + case 'check': + if (empty($productId)) { + jsonResponse(['error' => 'Product ID required'], 400); + } + + $exists = db()->fetch( + "SELECT id FROM wishlist WHERE customer_id = :cid AND product_id = :pid", + ['cid' => $customer['customer_id'], 'pid' => $productId] + ); + + jsonResponse(['in_wishlist' => (bool)$exists]); + break; + + case 'list': + $items = db()->fetchAll( + "SELECT p.product_id, p.name, p.slug, p.price, p.sale_price, p.images, p.stock + FROM wishlist w + JOIN products p ON w.product_id = p.product_id + WHERE w.customer_id = :id + ORDER BY w.created_at DESC", + ['id' => $customer['customer_id']] + ); + + foreach ($items as &$item) { + $item['images'] = json_decode($item['images'] ?? '[]', true); + } + + jsonResponse(['items' => $items]); + break; + + default: + jsonResponse(['error' => 'Invalid action'], 400); +} diff --git a/sites/tomsjavajive.com/public_html/assets/css/account.css b/sites/tomsjavajive.com/public_html/assets/css/account.css new file mode 100644 index 0000000..1291293 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/css/account.css @@ -0,0 +1,223 @@ +/* Account Layout */ +.account-layout { + display: grid; + grid-template-columns: 250px 1fr; + gap: 2rem; +} + +.account-sidebar { + background: var(--color-surface); + border-radius: var(--radius-lg); + padding: 1.5rem; + height: fit-content; + position: sticky; + top: 90px; +} + +.account-avatar { + width: 80px; + height: 80px; + background: var(--color-primary); + color: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 2rem; + margin: 0 auto 1rem; +} + +.account-sidebar-user { + text-align: center; + margin-bottom: 1.5rem; +} + +.account-sidebar-user h3 { + margin: 0 0 0.25rem; + font-size: 1rem; +} + +.account-sidebar-user p { + font-size: 0.875rem; + margin: 0; + color: var(--color-text-muted); +} + +.account-nav { + list-style: none; +} + +.account-nav li { + margin-bottom: 0.5rem; +} + +.account-nav a { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.75rem 1rem; + border-radius: var(--radius-md); + color: var(--color-text); + transition: all 0.2s; +} + +.account-nav a:hover { + background: var(--color-background); + color: var(--color-primary); +} + +.account-nav a.active { + background: var(--color-primary); + color: white; +} + +.account-nav a i { + width: 20px; + text-align: center; +} + +.account-nav a.danger { + color: var(--color-error); +} + +.account-content { + min-height: 500px; +} + +.account-header { + margin-bottom: 2rem; +} + +.account-header h1 { + font-size: 1.75rem; + margin-bottom: 0.5rem; +} + +/* Section Cards */ +.section-card { + background: var(--color-surface); + border-radius: var(--radius-lg); + margin-bottom: 1.5rem; +} + +.section-card-header { + padding: 1rem 1.5rem; + border-bottom: 1px solid var(--color-border); + display: flex; + justify-content: space-between; + align-items: center; +} + +.section-card-header h3 { + margin: 0; + font-size: 1rem; +} + +.section-card-body { + padding: 1.5rem; +} + +/* Order List Items */ +.order-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; + border-bottom: 1px solid var(--color-border); +} + +.order-item:last-child { + border-bottom: none; + padding-bottom: 0; +} + +.order-item:first-child { + padding-top: 0; +} + +.order-info h4 { + margin: 0 0 0.25rem; + font-size: 0.9375rem; +} + +.order-info p { + margin: 0; + color: var(--color-text-muted); + font-size: 0.875rem; +} + +.order-meta { + text-align: right; +} + +.order-meta .amount { + font-weight: 600; + margin-bottom: 0.25rem; +} + +/* Dashboard Stats Grid */ +.dashboard-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1rem; + margin-bottom: 2rem; +} + +.dashboard-stat { + background: var(--color-surface); + border-radius: var(--radius-lg); + padding: 1.5rem; + text-align: center; +} + +.dashboard-stat-icon { + width: 50px; + height: 50px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin: 0 auto 1rem; + font-size: 1.25rem; +} + +.dashboard-stat-icon.primary { + background: rgba(255, 94, 26, 0.1); + color: var(--color-primary); +} + +.dashboard-stat-icon.success { + background: rgba(16, 185, 129, 0.1); + color: var(--color-success); +} + +.dashboard-stat-icon.warning { + background: rgba(245, 158, 11, 0.1); + color: var(--color-warning); +} + +.dashboard-stat-value { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 0.25rem; +} + +.dashboard-stat-label { + color: var(--color-text-muted); + font-size: 0.875rem; +} + +/* Responsive */ +@media (max-width: 768px) { + .account-layout { + grid-template-columns: 1fr; + } + + .account-sidebar { + position: static; + } + + .dashboard-grid { + grid-template-columns: repeat(2, 1fr); + } +} diff --git a/sites/tomsjavajive.com/public_html/assets/css/admin.css b/sites/tomsjavajive.com/public_html/assets/css/admin.css new file mode 100644 index 0000000..6d71986 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/css/admin.css @@ -0,0 +1,543 @@ +/** + * Tom's Java Jive - Admin Panel Styles + */ + +:root { + /* Admin Colors */ + --admin-sidebar-bg: #1F2937; + --admin-sidebar-hover: #374151; + --admin-sidebar-active: var(--color-primary); + --admin-header-bg: #FFFFFF; + --admin-content-bg: #F9FAFB; + --admin-text-light: #9CA3AF; +} + +/* ================================ + Admin Layout + ================================ */ +.admin-layout { + display: flex; + min-height: 100vh; +} + +.admin-sidebar { + width: 260px; + background: var(--admin-sidebar-bg); + color: white; + display: flex; + flex-direction: column; + position: fixed; + top: 0; + left: 0; + bottom: 0; + z-index: 100; + transition: transform 0.3s ease; +} + +.admin-sidebar-header { + padding: 1.5rem; + border-bottom: 1px solid rgba(255,255,255,0.1); +} + +.admin-logo { + display: flex; + align-items: center; + gap: 0.75rem; + color: white; + font-family: var(--font-heading); + font-size: 1.25rem; + font-weight: 600; +} + +.admin-logo img { + height: 32px; +} + +.admin-nav { + flex: 1; + padding: 1rem 0; + overflow-y: auto; +} + +.admin-nav-section { + margin-bottom: 1.5rem; +} + +.admin-nav-title { + padding: 0.5rem 1.5rem; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--admin-text-light); +} + +.admin-nav-item { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.75rem 1.5rem; + color: rgba(255,255,255,0.8); + transition: all 0.2s ease; +} + +.admin-nav-item:hover { + background: var(--admin-sidebar-hover); + color: white; +} + +.admin-nav-item.active { + background: var(--admin-sidebar-active); + color: white; +} + +.admin-nav-item i { + width: 20px; + text-align: center; +} + +.admin-nav-badge { + margin-left: auto; + padding: 0.125rem 0.5rem; + font-size: 0.75rem; + font-weight: 600; + background: var(--color-error); + color: white; + border-radius: 9999px; +} + +.admin-main { + flex: 1; + margin-left: 260px; + background: var(--admin-content-bg); + min-height: 100vh; +} + +.admin-header { + background: var(--admin-header-bg); + padding: 1rem 1.5rem; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid var(--color-border); + position: sticky; + top: 0; + z-index: 50; +} + +.admin-header-left { + display: flex; + align-items: center; + gap: 1rem; +} + +.admin-search { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.5rem 1rem; + background: var(--color-background); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + min-width: 300px; +} + +.admin-search input { + border: none; + background: transparent; + outline: none; + width: 100%; +} + +.admin-header-right { + display: flex; + align-items: center; + gap: 1rem; +} + +.admin-user { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.5rem; + border-radius: var(--radius-md); + cursor: pointer; +} + +.admin-user:hover { + background: var(--color-background); +} + +.admin-avatar { + width: 36px; + height: 36px; + border-radius: 50%; + background: var(--color-primary); + display: flex; + align-items: center; + justify-content: center; + color: white; + font-weight: 600; +} + +.admin-content { + padding: 1.5rem; +} + +/* ================================ + Admin Cards + ================================ */ +.admin-card { + background: var(--color-surface); + border-radius: var(--radius-lg); + border: 1px solid var(--color-border); + margin-bottom: 1.5rem; +} + +.admin-card-header { + padding: 1rem 1.5rem; + border-bottom: 1px solid var(--color-border); + display: flex; + align-items: center; + justify-content: space-between; +} + +.admin-card-title { + font-size: 1rem; + font-weight: 600; + margin: 0; +} + +.admin-card-body { + padding: 1.5rem; +} + +/* ================================ + Stats Cards + ================================ */ +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1.5rem; + margin-bottom: 1.5rem; +} + +.stat-card { + background: var(--color-surface); + border-radius: var(--radius-lg); + border: 1px solid var(--color-border); + padding: 1.5rem; + display: flex; + align-items: flex-start; + gap: 1rem; +} + +.stat-card-icon { + width: 48px; + height: 48px; + border-radius: var(--radius-md); + display: flex; + align-items: center; + justify-content: center; + font-size: 1.25rem; +} + +.stat-card-icon.primary { + background: rgba(232, 106, 51, 0.1); + color: var(--color-primary); +} + +.stat-card-icon.success { + background: rgba(16, 185, 129, 0.1); + color: var(--color-success); +} + +.stat-card-icon.warning { + background: rgba(245, 158, 11, 0.1); + color: var(--color-warning); +} + +.stat-card-icon.error { + background: rgba(239, 68, 68, 0.1); + color: var(--color-error); +} + +.stat-card-value { + font-size: 1.5rem; + font-weight: 700; + color: var(--color-text); +} + +.stat-card-label { + font-size: 0.875rem; + color: var(--color-text-muted); +} + +/* ================================ + Admin Tables + ================================ */ +.admin-table { + width: 100%; + border-collapse: collapse; +} + +.admin-table th, +.admin-table td { + padding: 0.875rem 1rem; + text-align: left; + border-bottom: 1px solid var(--color-border); +} + +.admin-table th { + font-weight: 600; + font-size: 0.875rem; + color: var(--color-text-muted); + background: var(--color-background); +} + +.admin-table tbody tr:hover { + background: var(--color-background); +} + +.admin-table td a { + color: var(--color-primary); + font-weight: 500; +} + +/* ================================ + Page Header + ================================ */ +.page-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 1.5rem; +} + +.page-title { + font-size: 1.5rem; + margin: 0; +} + +/* ================================ + Form Improvements for Admin + ================================ */ +.admin-form-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1.5rem; +} + +.admin-form-grid .full-width { + grid-column: 1 / -1; +} + +/* ================================ + Responsive Admin + ================================ */ +.sidebar-toggle { + display: none; + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; + color: var(--color-text); +} + +@media (max-width: 1024px) { + .admin-sidebar { + transform: translateX(-100%); + } + + .admin-sidebar.open { + transform: translateX(0); + } + + .admin-main { + margin-left: 0; + } + + .sidebar-toggle { + display: block; + } + + .admin-search { + min-width: 200px; + } +} + +@media (max-width: 768px) { + .stats-grid { + grid-template-columns: repeat(2, 1fr); + } + + .admin-form-grid { + grid-template-columns: 1fr; + } + + .admin-table { + display: block; + overflow-x: auto; + } +} + +/* ================================ + POS Specific Styles + ================================ */ +.pos-layout { + display: grid; + grid-template-columns: 1fr 400px; + gap: 1.5rem; + height: calc(100vh - 140px); +} + +.pos-products { + overflow-y: auto; +} + +.pos-cart { + background: var(--color-surface); + border-radius: var(--radius-lg); + border: 1px solid var(--color-border); + display: flex; + flex-direction: column; +} + +.pos-cart-header { + padding: 1rem; + border-bottom: 1px solid var(--color-border); +} + +.pos-cart-items { + flex: 1; + overflow-y: auto; + padding: 1rem; +} + +.pos-cart-item { + display: flex; + gap: 0.75rem; + padding: 0.75rem 0; + border-bottom: 1px solid var(--color-border); +} + +.pos-cart-footer { + padding: 1rem; + border-top: 1px solid var(--color-border); + background: var(--color-background); +} + +.pos-totals { + margin-bottom: 1rem; +} + +.pos-total-row { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; +} + +.pos-total-row.grand-total { + font-size: 1.25rem; + font-weight: 700; + padding-top: 0.5rem; + border-top: 1px solid var(--color-border); +} + +.pos-product-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + gap: 1rem; +} + +.pos-product-card { + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + padding: 0.75rem; + cursor: pointer; + transition: all 0.2s ease; +} + +.pos-product-card:hover { + border-color: var(--color-primary); + box-shadow: var(--shadow-md); +} + +.pos-product-card img { + width: 100%; + aspect-ratio: 1; + object-fit: cover; + border-radius: var(--radius-sm); + margin-bottom: 0.5rem; +} + +.pos-product-name { + font-size: 0.875rem; + font-weight: 500; + margin-bottom: 0.25rem; +} + +.pos-product-price { + font-size: 0.875rem; + color: var(--color-primary); + font-weight: 600; +} + +/* Payment Buttons */ +.payment-methods { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 0.75rem; + margin-top: 1rem; +} + +.payment-btn { + padding: 1rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5rem; + border: 2px solid var(--color-border); + background: var(--color-surface); + border-radius: var(--radius-md); + cursor: pointer; + transition: all 0.2s ease; +} + +.payment-btn:hover { + border-color: var(--color-primary); +} + +.payment-btn.selected { + border-color: var(--color-primary); + background: rgba(232, 106, 51, 0.05); +} + +.payment-btn i { + font-size: 1.5rem; + color: var(--color-primary); +} + +@media (max-width: 1024px) { + .pos-layout { + grid-template-columns: 1fr; + height: auto; + } + + .pos-cart { + position: fixed; + bottom: 0; + left: 0; + right: 0; + height: 50vh; + transform: translateY(calc(100% - 60px)); + transition: transform 0.3s ease; + z-index: 100; + border-radius: var(--radius-lg) var(--radius-lg) 0 0; + } + + .pos-cart.expanded { + transform: translateY(0); + } +} diff --git a/sites/tomsjavajive.com/public_html/assets/css/cart.css b/sites/tomsjavajive.com/public_html/assets/css/cart.css new file mode 100644 index 0000000..5bbf104 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/css/cart.css @@ -0,0 +1,154 @@ +/* Cart Page Layout */ +.cart-layout { + display: grid; + grid-template-columns: 1fr 350px; + gap: 2rem; + align-items: start; +} + +.cart-empty { + padding: 3rem; + text-align: center; +} + +.cart-empty-icon { + font-size: 4rem; + color: var(--color-text-muted); + margin-bottom: 1rem; +} + +/* Cart Items */ +.cart-items-list { + display: grid; + gap: 1rem; +} + +.cart-item { + display: grid; + grid-template-columns: 80px 1fr auto auto; + gap: 1rem; + align-items: center; + padding-bottom: 1rem; + border-bottom: 1px solid var(--color-border); +} + +.cart-item:last-child { + border-bottom: none; + padding-bottom: 0; +} + +.cart-item-img { + width: 80px; + height: 80px; + object-fit: cover; + border-radius: var(--radius-md); +} + +.cart-item-name { + font-weight: 600; + margin-bottom: 0.25rem; +} + +.cart-item-price { + color: var(--color-text-muted); + margin: 0; +} + +/* Quantity Selector */ +.quantity-selector { + display: flex; + align-items: center; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); +} + +.qty-btn { + padding: 0.25rem 0.75rem; + background: none; + border: none; + cursor: pointer; + font-size: 1rem; + color: var(--color-text); + transition: var(--transition); +} + +.qty-btn:hover { + color: var(--color-primary); +} + +.qty-input { + width: 50px; + text-align: center; + border: none; + outline: none; + font-size: 1rem; + font-family: inherit; +} + +.cart-item-total { + text-align: right; +} + +.cart-item-total .amount { + font-weight: 600; + margin-bottom: 0.25rem; +} + +.btn-remove { + background: none; + border: none; + color: var(--color-error); + cursor: pointer; + font-size: 0.875rem; + padding: 0; +} + +/* Order Summary Sidebar */ +.cart-summary { + position: sticky; + top: 100px; +} + +.cart-summary-row { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; +} + +.cart-summary-total { + display: flex; + justify-content: space-between; + font-size: 1.25rem; + font-weight: 600; +} + +.free-shipping-msg { + font-size: 0.875rem; + color: var(--color-primary); + margin: 0.5rem 0; +} + +@media (max-width: 768px) { + .cart-layout { + grid-template-columns: 1fr; + } + + .cart-summary { + position: static; + } + + .cart-item { + grid-template-columns: 64px 1fr; + grid-template-rows: auto auto; + } + + .cart-item-img { + width: 64px; + height: 64px; + } + + .quantity-selector, + .cart-item-total { + grid-column: 2; + } +} diff --git a/sites/tomsjavajive.com/public_html/assets/css/checkout.css b/sites/tomsjavajive.com/public_html/assets/css/checkout.css new file mode 100644 index 0000000..4ca76a0 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/css/checkout.css @@ -0,0 +1,103 @@ +/* Checkout Page Layout */ +.checkout-layout { + display: grid; + grid-template-columns: 1fr 400px; + gap: 2rem; + align-items: start; +} + +/* Address grid: city / state / zip */ +.address-grid { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + gap: 1rem; +} + +/* Order Summary Sidebar */ +.checkout-summary { + position: sticky; + top: 100px; +} + +/* Scrollable cart preview in sidebar */ +.checkout-items-preview { + max-height: 250px; + overflow-y: auto; + margin-bottom: 1rem; +} + +.checkout-item { + display: flex; + gap: 1rem; + margin-bottom: 1rem; + padding-bottom: 1rem; + border-bottom: 1px solid var(--color-border); +} + +.checkout-item:last-child { + margin-bottom: 0; + padding-bottom: 0; + border-bottom: none; +} + +.checkout-item-img { + width: 60px; + height: 60px; + object-fit: cover; + border-radius: var(--radius-md); + flex-shrink: 0; +} + +.checkout-item-info { + flex: 1; +} + +.checkout-item-info p { + font-weight: 500; + margin-bottom: 0.25rem; +} + +.checkout-item-info small { + color: var(--color-text-muted); + font-size: 0.875rem; +} + +.checkout-item-total { + text-align: right; + font-weight: 600; +} + +.checkout-summary-row { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; +} + +.checkout-summary-total { + display: flex; + justify-content: space-between; + font-size: 1.25rem; + font-weight: 600; +} + +.secure-badge { + font-size: 0.75rem; + color: var(--color-text-muted); + text-align: center; + margin-top: 1rem; +} + +@media (max-width: 768px) { + .checkout-layout { + grid-template-columns: 1fr; + } + + .checkout-summary { + position: static; + order: -1; + } + + .address-grid { + grid-template-columns: 1fr 1fr; + } +} diff --git a/sites/tomsjavajive.com/public_html/assets/css/home.css b/sites/tomsjavajive.com/public_html/assets/css/home.css new file mode 100644 index 0000000..f5e5f37 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/css/home.css @@ -0,0 +1,182 @@ +/* Hero Section */ +.hero { + background: linear-gradient(135deg, rgba(27,27,27,0.7) 0%, rgba(27,27,27,0.4) 100%), + url('/assets/images/hero-coffee.jpg'); + background-size: cover; + background-position: center; + min-height: 600px; + display: flex; + align-items: center; + text-align: center; + color: white; + padding: 4rem 0; +} + +.hero h1 { + font-family: var(--font-display); + font-size: 3.5rem; + font-weight: 700; + margin-bottom: 1rem; + line-height: 1.2; +} + +.hero p { + font-size: 1.25rem; + margin-bottom: 2rem; + opacity: 0.9; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +/* Features Section */ +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; +} + +.feature-card { + text-align: center; + padding: 2rem; +} + +.feature-icon { + width: 64px; + height: 64px; + background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)); + border-radius: var(--radius-lg); + display: flex; + align-items: center; + justify-content: center; + margin: 0 auto 1.5rem; + color: white; + font-size: 1.5rem; +} + +.feature-card h3 { + font-size: 1.25rem; + font-weight: 600; + margin-bottom: 0.75rem; +} + +.feature-card p { + color: var(--color-text-muted); + font-size: 0.9375rem; +} + +/* Newsletter Section */ +.newsletter { + background: linear-gradient(135deg, var(--color-secondary) 0%, #5D2E0A 100%); + color: white; + padding: 4rem 0; + text-align: center; +} + +.newsletter h2 { + font-family: var(--font-display); + font-size: 2rem; + margin-bottom: 0.5rem; +} + +.newsletter p { + opacity: 0.9; + margin-bottom: 1.5rem; +} + +.newsletter-form { + display: flex; + gap: 0.75rem; + max-width: 450px; + margin: 0 auto; +} + +.newsletter-form input { + flex: 1; + padding: 0.875rem 1rem; + border: none; + border-radius: var(--radius-md); + font-size: 1rem; +} + +.newsletter-form button { + padding: 0.875rem 1.5rem; + background: var(--color-primary); + color: white; + border: none; + border-radius: var(--radius-md); + font-weight: 600; + cursor: pointer; + transition: var(--transition); +} + +.newsletter-form button:hover { + background: var(--color-primary-dark); +} + +/* Coffee Splash Blocks */ +.splash-section { overflow: hidden; } + +.splash-scroll-wrap { + position: relative; + display: flex; + align-items: center; + gap: .5rem; +} + +.splash-scroll-track { + display: flex; + gap: 1.5rem; + overflow-x: auto; + scroll-behavior: smooth; + scrollbar-width: none; + -ms-overflow-style: none; + padding: .5rem 0; + flex: 1; +} + +.splash-scroll-track::-webkit-scrollbar { display: none; } + +.splash-item { + min-width: 220px; + flex-shrink: 0; +} + +.splash-arrow { + flex-shrink: 0; + width: 40px; + height: 40px; + border-radius: 50%; + border: 2px solid var(--color-border); + background: var(--color-surface); + color: var(--color-text); + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all .2s; + z-index: 2; +} + +.splash-arrow:hover { + background: var(--color-primary); + border-color: var(--color-primary); + color: white; +} + +.splash-arrow:disabled { + opacity: .3; + cursor: default; +} + +@media (max-width: 768px) { + .hero h1 { font-size: 2.5rem; } + .hero p { font-size: 1.125rem; } + .newsletter-form { flex-direction: column; } + .splash-arrow { display: none; } + .splash-scroll-track { padding-bottom: .5rem; } +} + +@media (max-width: 480px) { + .hero h1 { font-size: 2rem; } +} diff --git a/sites/tomsjavajive.com/public_html/assets/css/products.css b/sites/tomsjavajive.com/public_html/assets/css/products.css new file mode 100644 index 0000000..e408c81 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/css/products.css @@ -0,0 +1,118 @@ +/* Product Grid */ +.product-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 2rem; +} + +/* Product Card */ +.product-card { + background: var(--color-surface); + border-radius: var(--radius-lg); + overflow: hidden; + transition: var(--transition); + box-shadow: var(--shadow-sm); +} + +.product-card:hover { + transform: translateY(-4px); + box-shadow: var(--shadow-xl); +} + +.product-card-image { + display: block; + position: relative; + padding-top: 100%; + overflow: hidden; +} + +.product-card-image img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.product-card:hover .product-card-image img { + transform: scale(1.05); +} + +.product-card-badge { + position: absolute; + top: 1rem; + left: 1rem; + background: var(--color-primary); + color: white; + padding: 0.25rem 0.75rem; + border-radius: var(--radius-full); + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.product-card-body { + padding: 1.25rem; +} + +.product-card-category { + font-size: 0.8125rem; + color: var(--color-primary); + text-transform: uppercase; + letter-spacing: 0.05em; + margin-bottom: 0.5rem; +} + +.product-card-title { + font-size: 1.125rem; + font-weight: 600; + margin-bottom: 0.5rem; + color: var(--color-text); +} + +.product-card-title a { + color: inherit; +} + +.product-card-title a:hover { + color: var(--color-primary); +} + +.product-card-price { + display: flex; + align-items: center; + gap: 0.5rem; + margin-bottom: 1rem; +} + +.product-card-price .current { + font-size: 1.25rem; + font-weight: 700; + color: var(--color-primary); +} + +.product-card-price .original { + font-size: 0.9375rem; + color: var(--color-text-muted); + text-decoration: line-through; +} + +.product-card-rating { + display: flex; + align-items: center; + gap: 0.25rem; + color: #F59E0B; + font-size: 0.875rem; + margin-bottom: 1rem; +} + +.product-card-rating span { + color: var(--color-text-muted); + margin-left: 0.25rem; +} + +@media (max-width: 480px) { + .product-grid { grid-template-columns: 1fr; } +} diff --git a/sites/tomsjavajive.com/public_html/assets/css/style.css b/sites/tomsjavajive.com/public_html/assets/css/style.css new file mode 100644 index 0000000..583954f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/css/style.css @@ -0,0 +1,538 @@ +/** + * Tom's Java Jive - Main Stylesheet + * Matching original React design + */ + +:root { + --color-primary: #FF5E1A; + --color-primary-dark: #E54D0D; + --color-secondary: #8B4513; + --color-accent: #FF5E1A; + --color-background: #FDFBF7; + --color-surface: #FFFFFF; + --color-text: #1B1B1B; + --color-text-muted: #6B7280; + --color-text-light: #9CA3AF; + --color-border: #E8E2D9; + --color-success: #10B981; + --color-warning: #F59E0B; + --color-error: #EF4444; + + --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + --font-display: 'Playfair Display', Georgia, serif; + + --radius-sm: 6px; + --radius-md: 8px; + --radius-lg: 12px; + --radius-xl: 16px; + --radius-full: 9999px; + + --shadow-sm: 0 1px 2px rgba(0,0,0,0.05); + --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1); + --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1); + --shadow-xl: 0 20px 25px -5px rgba(0,0,0,0.1); + + --transition: all 0.2s ease; +} + +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: var(--font-primary); + font-size: 16px; + line-height: 1.6; + color: var(--color-text); + background: var(--color-background); + -webkit-font-smoothing: antialiased; +} + +a { + color: var(--color-primary); + text-decoration: none; + transition: var(--transition); +} + +a:hover { + color: var(--color-primary-dark); +} + +img { + max-width: 100%; + height: auto; +} + +/* Container */ +.container { + width: 100%; + max-width: 1200px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* Header / Navigation */ +.header { + background: var(--color-surface); + border-bottom: 1px solid var(--color-border); + position: sticky; + top: 0; + z-index: 100; +} + +.nav { + display: flex; + align-items: center; + justify-content: space-between; + height: 70px; +} + +.logo { + display: flex; + align-items: center; + gap: 0.75rem; + font-weight: 700; + font-size: 1.25rem; + color: var(--color-text); +} + +.logo:hover { + color: var(--color-text); +} + +.logo-img { + height: 70px; + width: auto; +} + +.logo-text { + font-family: var(--font-display); + font-size: 1.5rem; + color: var(--color-secondary); +} + +.nav-links { + display: flex; + align-items: center; + gap: 2rem; + list-style: none; +} + +.nav-links a { + color: var(--color-text); + font-weight: 500; + font-size: 0.9375rem; + padding: 0.5rem 0; + position: relative; +} + +.nav-links a:hover { + color: var(--color-primary); +} + +.nav-links a.active { + color: var(--color-primary); +} + +.nav-links a::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 0; + height: 2px; + background: var(--color-primary); + transition: width 0.3s ease; +} + +.nav-links a:hover::after, +.nav-links a.active::after { + width: 100%; +} + +.nav-actions { + display: flex; + align-items: center; + gap: 1rem; +} + +.cart-btn { + position: relative; + display: flex; + align-items: center; + justify-content: center; + width: 44px; + height: 44px; + border-radius: var(--radius-full); + background: var(--color-background); + color: var(--color-text); + font-size: 1.25rem; + transition: var(--transition); +} + +.cart-btn:hover { + background: var(--color-primary); + color: white; +} + +.cart-count { + position: absolute; + top: -4px; + right: -4px; + background: var(--color-primary); + color: white; + font-size: 0.75rem; + font-weight: 600; + min-width: 20px; + height: 20px; + border-radius: var(--radius-full); + display: flex; + align-items: center; + justify-content: center; +} + +/* Buttons */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + padding: 0.75rem 1.5rem; + font-size: 1rem; + font-weight: 600; + border-radius: var(--radius-md); + border: none; + cursor: pointer; + transition: var(--transition); + text-decoration: none; +} + +.btn-primary { + background: var(--color-primary); + color: white; +} + +.btn-primary:hover { + background: var(--color-primary-dark); + color: white; + transform: translateY(-2px); + box-shadow: var(--shadow-lg); +} + +.btn-secondary { + background: white; + color: var(--color-text); + border: 2px solid var(--color-border); +} + +.btn-secondary:hover { + border-color: var(--color-primary); + color: var(--color-primary); +} + +.btn-outline { + background: transparent; + color: white; + border: 2px solid white; +} + +.btn-outline:hover { + background: white; + color: var(--color-text); +} + +.btn-lg { + padding: 1rem 2rem; + font-size: 1.125rem; +} + +.btn-sm { + padding: 0.5rem 1rem; + font-size: 0.875rem; +} + +.btn-block { + display: flex; + width: 100%; +} + +/* Sections */ +.section { + padding: 5rem 0; +} + +.section-header { + text-align: center; + margin-bottom: 3rem; +} + +.section-header h2 { + font-family: var(--font-display); + font-size: 2.5rem; + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--color-text); +} + +.section-header p { + font-size: 1.125rem; + color: var(--color-text-muted); +} + +/* Cards */ +.card { + background: var(--color-surface); + border-radius: var(--radius-lg); + box-shadow: var(--shadow-sm); + overflow: hidden; +} + +.card-header { + padding: 1.25rem; + border-bottom: 1px solid var(--color-border); +} + +.card-body { + padding: 1.5rem; +} + +/* Forms */ +.form-group { + margin-bottom: 1.25rem; +} + +.form-label { + display: block; + font-size: 0.875rem; + font-weight: 500; + margin-bottom: 0.5rem; + color: var(--color-text); +} + +.form-input, +.form-select, +.form-textarea { + width: 100%; + padding: 0.75rem 1rem; + font-size: 1rem; + border: 2px solid var(--color-border); + border-radius: var(--radius-md); + background: var(--color-surface); + transition: var(--transition); + font-family: inherit; +} + +.form-input:focus, +.form-select:focus, +.form-textarea:focus { + outline: none; + border-color: var(--color-primary); + box-shadow: 0 0 0 3px rgba(255,94,26,0.1); +} + +.form-textarea { + min-height: 120px; + resize: vertical; +} + +.form-error { + color: var(--color-error); + font-size: 0.8125rem; + margin-top: 0.25rem; +} + +.form-checkbox { + display: flex; + align-items: center; + gap: 0.5rem; + cursor: pointer; +} + +/* Alerts */ +.alert { + padding: 1rem 1.25rem; + border-radius: var(--radius-md); + margin-bottom: 1rem; + display: flex; + align-items: center; + gap: 0.75rem; +} + +.alert-success { + background: rgba(16, 185, 129, 0.1); + color: var(--color-success); + border: 1px solid rgba(16, 185, 129, 0.3); +} + +.alert-error { + background: rgba(239, 68, 68, 0.1); + color: var(--color-error); + border: 1px solid rgba(239, 68, 68, 0.3); +} + +.alert-warning { + background: rgba(245, 158, 11, 0.1); + color: var(--color-warning); + border: 1px solid rgba(245, 158, 11, 0.3); +} + +/* Badges */ +.badge { + display: inline-flex; + align-items: center; + padding: 0.25rem 0.75rem; + font-size: 0.75rem; + font-weight: 600; + border-radius: var(--radius-full); +} + +.badge-primary { + background: rgba(255,94,26,0.15); + color: var(--color-primary); +} + +.badge-success { + background: rgba(16, 185, 129, 0.15); + color: var(--color-success); +} + +.badge-warning { + background: rgba(245, 158, 11, 0.15); + color: var(--color-warning); +} + +.badge-error { + background: rgba(239, 68, 68, 0.15); + color: var(--color-error); +} + +/* Footer */ +.footer { + background: var(--color-text); + color: white; + padding: 2.5rem 0 1.5rem; +} + +.footer-grid { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + gap: 2rem; + margin-bottom: 2rem; +} + +.footer-brand p { + color: rgba(255,255,255,0.7); + margin-top: 1rem; + font-size: 0.9375rem; +} + +.footer h4 { + font-size: 1rem; + font-weight: 600; + margin-bottom: 1.25rem; + color: white; +} + +.footer-links { + list-style: none; +} + +.footer-links li { + margin-bottom: 0.5rem; +} + +.footer-links a { + color: rgba(255,255,255,0.7); + font-size: 0.9375rem; + transition: var(--transition); +} + +.footer-links a:hover { + color: var(--color-primary); +} + +.footer-bottom { + padding-top: 2rem; + border-top: 1px solid rgba(255,255,255,0.1); + display: flex; + justify-content: space-between; + align-items: center; + font-size: 0.875rem; + color: rgba(255,255,255,0.5); +} + +.footer-social { + display: flex; + gap: 1rem; +} + +.footer-social a { + color: rgba(255,255,255,0.7); + font-size: 1.25rem; +} + +.footer-social a:hover { + color: var(--color-primary); +} + +/* Utilities */ +.text-center { text-align: center; } +.text-muted { color: var(--color-text-muted); } +.text-success { color: var(--color-success); } +.text-error { color: var(--color-error); } + +.mb-0 { margin-bottom: 0; } +.mb-1 { margin-bottom: 1rem; } +.mb-2 { margin-bottom: 1.5rem; } +.mt-1 { margin-top: 1rem; } +.mt-2 { margin-top: 1.5rem; } + +/* Loading Spinner */ +.loading { + display: inline-block; + width: 20px; + height: 20px; + border: 2px solid currentColor; + border-radius: 50%; + border-top-color: transparent; + animation: spin 0.8s linear infinite; +} + +@keyframes spin { + to { transform: rotate(360deg); } +} + +/* Responsive */ +@media (max-width: 1024px) { + .footer-grid { + grid-template-columns: 1fr 1fr; + } +} + +@media (max-width: 768px) { + .section-header h2 { + font-size: 2rem; + } + + .nav-links { + display: none; + } + + .footer-grid { + grid-template-columns: 1fr; + gap: 2rem; + } + + .footer-bottom { + flex-direction: column; + gap: 1rem; + text-align: center; + } +} + diff --git a/sites/tomsjavajive.com/public_html/assets/icons/badge-72.svg b/sites/tomsjavajive.com/public_html/assets/icons/badge-72.svg new file mode 100644 index 0000000..b26a584 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/badge-72.svg @@ -0,0 +1,5 @@ + + + + TJ + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-128.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-128.svg new file mode 100644 index 0000000..6aeb221 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-128.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-144.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-144.svg new file mode 100644 index 0000000..26bd20c --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-144.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-152.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-152.svg new file mode 100644 index 0000000..39a72d1 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-152.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-192.png b/sites/tomsjavajive.com/public_html/assets/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..c297f5291e1dc11941c37569b5369483c1332b6b GIT binary patch literal 5565 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 PlU2h@SCOR`9UuG`Ra=n$ literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-192.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-192.svg new file mode 100644 index 0000000..2d3676b --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-192.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-384.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-384.svg new file mode 100644 index 0000000..275b40f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-384.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-512.png b/sites/tomsjavajive.com/public_html/assets/icons/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d62cd5eac9b6758790bdc1664cc9f60a4c453222 GIT binary patch literal 16333 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 S@F$QAgq*PXx%j8^zx+SFEflK& literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-512.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-512.svg new file mode 100644 index 0000000..a25dcb0 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-512.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-72.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-72.svg new file mode 100644 index 0000000..708eaf1 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-72.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/icons/icon-96.svg b/sites/tomsjavajive.com/public_html/assets/icons/icon-96.svg new file mode 100644 index 0000000..2b3fe58 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/icons/icon-96.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/images/coffee-beans.jpg b/sites/tomsjavajive.com/public_html/assets/images/coffee-beans.jpg new file mode 100644 index 0000000000000000000000000000000000000000..877b17e4b8874744db63a0e8bfcac50c6cc1937c GIT binary patch literal 136830 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 }P%l*wjOnM1R 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 T?j{xfX^5xZFC@TXj8p&FvT22v literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/coffee-brewing.jpg b/sites/tomsjavajive.com/public_html/assets/images/coffee-brewing.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ff76a374a9cda592742a84091b5fc37bfcf5c111 GIT binary patch literal 88669 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/favicon.ico b/sites/tomsjavajive.com/public_html/assets/images/favicon.ico new file mode 100644 index 0000000..7d936e0 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/images/favicon.ico @@ -0,0 +1,312 @@ + + + + + + + + + Tom's Java Jive | Premium Coffee Beans & Fresh Roasted Coffee | Weatherford TX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +

+ Made with Emergent +

+
+ + + diff --git a/sites/tomsjavajive.com/public_html/assets/images/friends-coffee.jpg b/sites/tomsjavajive.com/public_html/assets/images/friends-coffee.jpg new file mode 100644 index 0000000000000000000000000000000000000000..16f770e7b32a636d95ff845978ae6f1353517e4b GIT binary patch literal 84160 zcmbrk1C(Ul5~!J3wrzLWwr$(CZQHKuvTfV8-DMkH)m`1M{&&~hduP^qZ)UxTlX>#X zh}h@EjvYst`|rlz0|1h=xRf{m2m}HozZSsXLpV(-5fKALWd(65S+Oqz001W`Yh~{M zf&>8A*}FO`O9&HbYH1Te&H+FG&;SSk698aj;^HW$BCZPf5-BkeB9||xfA~N0x(4{# z5&*DFC#gt8^dJ5ICqg!Hban**fQnz6g-u&JHB>6gzxF*};tnf}8gUmWS~X7^Z(T!jDPCI($&?Gn}NZ@!-L++%!K}*g#KIp zUmgDK`M-w$+8_Nt`}=q9h(yiIjofTqiT+8diG!_!n=_G%qmhXj5#9f@i2sip{#RK4 z6$h=dnYo#>nf=$U)W53C%HHB@xb01?T&*1JiLC7ZS0ns?*zCVz_y_-0*I$5I@&|xs zKo3BgM+1P~%mBbpVF94Jd0!UbzsF4$S{?Auk*7g;_OH7C;xGIET>sxzAPHYzL0qgX zi2hNFD60~gxH-H3!(Ye5KPzwm3;+>;2EYao07wCp06G9OfCIn-5Cn(;qyY*5Re%;i zA7BEo1lR$b0UiKfKoB4t5CcdAqye%4`G68YC7=$_1ZW5J00seLfN8)2U=^?pH~^dg zt^oIdSHQ2Y6B#5B9*7FW1`-0vfiys7ASaL?C5$1v(D840-^14f+lS0fq`j1V#tO111Tk24({01m+JG3ziL50oDdK0=5kH1MD8` z4>&wH9ykp+H@FnICb$K-2Y5JmI(Qj)EBGk*D)w4v;w zf}zr(s-XIymY~j{enBHalS6YuD?pnL}_78U)%mG$}M|v>3Env^lhUbQE+}baix3^c?hF^aBh~3 z3|ou@j3$gVj1NqFOd(7&%qYw{%q7e>ELEHkWVta_|ftPgA=Y%y#b>?G`V>|Go% z9BLdT91om4oKc)>Tr^xBToc@A+$P*DJPeS&f(t@aLViLk!c@Y3!b>7_A|WDMqD-O@qI+UIVo72*;zHs%;$I}+NYqGz zN$N>@-$1-)R*XiKsgy`Jqs_A~vW6;ae2h+FH-!hOfXfq@+j5GXUWMi~tEMeScLSd3-3TEnJ zdSs?%Het?TUSWY}5oZZt>0o(arC~K=&12nQLuHd=i(ngK`()=}cV@3+zu+L_FyzSP zSm#9JROF21oZtfI66Olv>fw6lX6JV0ZsNYnz(P2O=jemm;?#PcCmS->v{qkWxrd*j44h1eS+d!gIiGp5`MCw3MT*6RrGRC+<+YWFRkqcGwWM{v^_z`?O}Wiq zTMgTKJ19FtyH0x)dmH-^2LcCAhebyk$8g63CvK-Sr+a4^=Q09?hP}p7x$IUesPuUT5Co-laZZJ|;dxzQn#kzCZkg{0jYn{>J`8 z0i*$;0VjbHffYe8K{i3N!HmJl!OtNYAzh*Pp@E@CVG?20;RxZ*;p-7R5&4l|kyep& zQ7lneQGcRMqo-mRW71=O$C|`W#WBTY#{G>qkDp6mPsmGzNVHE}OA<(`NJdWfPCiPJ zOKD3bN{vo^PBTcGOlM8c&w$Br%Q(oC&Fsh`%Sz1poo$)Dnj@T3pNp3pmHYPH^!rkt zU|wB5ett~;M}bwrMxjJuTM4Mtw{Jpuw%-veB?{tx2Y7sF}05u7$iMw-vQD zx((Ro)pp-**?!QW)v?$q-8t07)79Ed-(B8A+>_Ib-kZ<|(-+$Jx8J+}Wx#RZdeCC< zXvkn_dsuULWkhLYZd7J;VoZE&cwA__e}ZqKXOerebBc4SeVTo`ZH8^8b(U?mb&h?m zZJuMkV}Wa-Yms-cZ%JTja9MPDY(;8idR2aPaZPP)V_kRsV8e9deA9OGVat8%*LL6z z_)hdL(r)@5-d@o@)qec}`$6vy(H}F1Du>%gCP!DtF2}!5LQmmO)6WRcD$kkEdoIK; z7A|!zPp%xVeqD#(Am8NPQr@=Q3Es`zYu=wcI6wS-jD5m>Dt~5u9(qxH*?YBn{q+|8 z6Z>byJLmiOhsMX*FOT1lzcW9nKD++N{Mq?y_xJDLZ9pgh1QZk$3=|9;9PI1T1pxsC z1qlfS1rH7LwZNmoA;5jTP?6D)5x?F9Sm@|j1f=+Q_@vb2s|pvb_#BLL2?`x#L1f1Y*zF98Dq1qT2jAfcdPfL~F6-B$d^2m}Fq zb>YkQcMAXq`ejA}Mfz&DX`bYr2(EaiQxZXiL%$5Hj&F=to~bzL;$0ecD_wE?COR=5 z88MWWxD4q%3N|QZ+LKt?E3!#UrH!jdfr47bD|jY(bVHk5E8l<&Ha;N}%m)oCHcVbl z-<14FT#oFnk=#XNvwAFJ%0%j+RwA7usz;+qr+wBD^X1hw@5ONgwGL*3Z$*ryHcjj;M`FF!I()Cn;YxD$67etAW|NNi!;wn(An= zA6=?Z$gcDdtKP)jRfQ__Z7`}~NadrhqHQITWvP)UEfo<|tP}!P5Rcah<(fer*sV^* zX2vVJU~uujiu=*Z2)n~lCr#NK>r|6L^`c0wz&CX&yEfS5+DJlZJ!y@j4VTgs+fMF? zAx3lILI#l*4)n~$sZ>epSR3XTTPIlJ8(|n+CvFym;JHlGv)6M_BOQsa*pswv?#Rm%UC&%tgM)@1Yz^VlpvU@eM)D%bX3Gql!3E_ zD`?gd87qpqbOh>|iCy|oxjW}t>UwO~-QzAiOBwCdDH)iCSo*aj_9jE`oFZoSQjysv zMwL+rYIb8TSz5AZ;|jB$m$ZI-GEl&@CkbJhsTMLnkiIsCC~z<_0<1Oh3KHc+$}ztM zG(Bt}Rlh{aum;nfi`>41Qu9--X?Z%j%E=Mko0>P&XNe-&7 z41dkPcw;wSUpb6ajM}N)P}usIVoj98E0|1dRawQpnLM%W*lkgYnw+YW3Puo71s%bX z%WA#}%Zo8uB8U#7jF523c*$hxNA3#}l`OY7R&u@gf{Ew5cy&R?E)F+c8RVV z0=9kZg9Nq+Qifm}dN)-RhGA)v$6b;{&p8#s&(T5a) zLuaAVX2)MZ;i0n-_FU0>e}{nX+$n!fSW$ar*YtHi{dV2??C53BW=oo$jJjGuX}e-y zSQAz{gEC`FMR>l|1Wwl|v2AT5s$?ZQtU{dL5#0Ge93}-;QiF>V`h+Q=aXhVfmcCmA z6o0rXZSrNN%Cx!o6Xhu+t-Lymc#UUF@Qj77- zCe;M#6@7=MES|`|PXHu2F-aV1@CF&-KFredqhstYZ70nrh)oRb9^l@TGR(*#5w|Tf zbt~5jEUPqChBjudbP@aZlKomA_y)Dsv~hMu*kh7~{YxcdF>Iq_1hV9*x5d0`zF)=P z&l;0BlG%G5Ro_l%j%x?;l%c0LL2ks${!i<=9z5(B&jQz6_U2wp8sdz8loRAd{roP4 z1>^Hu>!XH>j4Lr+2X;GB7X5bdL}+CvZ4A5mgcY)b$O^8kP9ZA-7o21|1}D?t6mt=! z7Cu{1369Oy5y zS?EW7Hq09J?b7<864f30Ua5lV5Z z)xk1Hzv}uw0ar!NHO3NI&Dc*W>vx3xYW`j?RGM=N=N)u(m~P}{r0C_?<3+&u2f~GT zsD9|Jdd71*E-shypXdGo8tYw;#-SfZb~5!k>dte;utbxZr{vlolvaX9cv?tuMzvQ+ zNxH_6g5Hln%66C#TslXSgx=`rNwG0$IAGGCrJzi9@SK*r={drK&&F?dIq>)TI~E=v zu$_F#2h2fsh@KaJcS^lhn)E+*TaVcpaZCGH^1xQUZwR=i2dLk9IZs35xAO5m)Q4s& z{{q^7R|Dc^Tj#UyW~}VP*L4Z{(vmYr|L{Hg1)V~c>k@xp9FoP2PZ$~6t;;SO z-L~uZIYJg%eE0I!C^^;d$6(#}ade;4Pl!(rKk?8nv*cLOp|R9#7v&q4OP>j5)rJ{q za}0)I5}}229yLW$!3S9Am!)Ja6vZMDQ4%KX!|oZ z*AqMYAm6udb#xr8YkObrvV!Vg-MjV^1jtL@I443Tg-G)p|0Jvue*56Js9^|w;*ff7 zLu~&{$m$}n+5P#zy0^c=ud#G(XJ#baBjvvtnP`t}1;%9@%k{I2p>; zim?EgtV6;HZMhlwd(j~%_7J}bh6mm=7r17xxLZRDAG$I#@v3=4zLHI65 z4uxa=eGNB7;WzA!kB{xs-t$`?w}F-&oX66=Bn#whBo%GnmI>o_#1$3^-ON~r_3KX zz1tMFj)^6*PeZtN(N~eR%R=V&=)8!`$VZSu>kJ*7%c=88IV|H4TK9sm>L{}dUIv?z zvo03OAVCO|DS@NNMUreW1=p%oCXYzagBFohA=xSq!_6dP$o${BB*Za^@<}5`^|F2eWkyR_X+w?FTf*{$E@FvN;fhl zLK7ltbmFpN6E@fgx#UgD{}-^bk?m^64iEfsjw+(&{wbxL;~ZLP7@cvg#!=ExNN8s` zi?Ru17Y0KP0TKsInHJ2E{{)k&!P=JNRjmS7>_yXY78^ZQLg`kbLg>j*wAb@;_K!a5 zi+uF2MaEu3eh{d$>#d&7(b@ZXQ^OLnu9F~2yzWQ!(i?LF0tXZ}sfaup0ckZH0e6L%ficJpVzs}nQh zB5firL>T~=R$ZMsS&0@ci8Q@6k;lUtR%IAVS1Aon+EiOB1Tw`CUPFkdw%vYl)lAG15yL8e=s7hcd03$PUd({}?#HwJQ39j@<0h>W0^MUMD%Aj_;P>mxN12BC5u zGCVj9VxG*TaY=$0t7mL&o4>NE@__I^Ox^) zFAX@RyjYwc2>!V1@)O;>TY?IbnpKtEILLr-8b;F&fY5hSRqd*hL^gU8C&;SA|n2!NLI}{3-x`7{M3SNS1F> zOeMRDv{D$uPYyJ15oCR~ zL$~k_#eW|_RS;nL9!G&DKgNr%{pVoHrakw>eGa3mkm^In?_Bz#QaDMGB7KE*^p@1x zZVjWl2qH%Z*{Zs&UbaINdB!xcF6lt7r+CV>h3%HPY6X zCG{7LT=q{5gJ*)Gc1HZ|0c5IxYCqD${RSC#d$4I4Q!;vOP>pbHb7;w*ZK^}OtSvcE zTf@QK{o^?gvvWMz7vs6tJ0S(l)(cwf@8q-#EZwPxTg^msQgt^9^Vb-@P34KizvDk^?Rq2)~1H%+Ka)OVx1)JU^L66u^)B924YlBftPd(F1QtZYr3lFJ(o_VF(r#~(GJ-PB}M~1a(VRNP)v6l4F zv8Wf_*9ODrjp3j!%qcG>q#ix}v?#}UF_<1M_GvSS=tlXj-xGIoLE+7Zc&ZMOvij=l zv|i-BU(f+4uQxM9JZm?zD808IsV!~uJUc$`3&|#bMKH%8P#%_`P%eqYFdvAc*aU+~ zUaJpxy0bioarK(jVXmv+SnY{n?zC2-Lr@&mwt65d$Olx8h~%pMP)1{g;Skl6YkIO{ zT(&&O_7UIt?)eS;2h?6#@!ap#j8;-M`XAOJOW(0kLgagMjUft8oi?YDvSj_uYqRJz z>Yk`Mwnbm;8PxV{FY_i(<#z0pAio>UBrT>y!6zIuvKZyWJ3!&ph~O z{Yj7z@MK9n*$Gaz)^ER-^ft~VQ>`1|T~&?lLM5iLQcNd3td_X^Y>rWLfM44xS>3TK zYI~H_oMRQ7){G5xYy!hJVuo`yaZ-r)aNE>1$A>;y(=Ru1tS2;@=9uf*!!eojp&b>E ziYN|E;%lm#FDk$9sjnWm(SN-6VY+hs6WCZsdn;d#n#vwJ4vN=1_lJvE?Y(CXw6SuZ zE7@qO+_^KPFhb?5tn!&A-(h%0?#5Pni>*ymv%q*=LG}^2awr~xa18|_9G`wh`Q4uh8RJVEzsi%dNuiHg!h6=VlznA1U^U$K zoFMAr&Yu)UqviJdj~gyk{IZseiXAw1@h?HY0~AuO6{7VwoyrYng>LhydnvM>%%Fxg z)8{UI^LkZ&itZ8XEh;Hjm<}_|CSk1VFylG8$lk%sRrizF(UrDo){G{z5V#poTa$&k z-~z3sEY)Qb8>n1;BQvHj0v*V53iWK+yt@_AuF>z|1OvorX0;(#HL^V9J+Ng$;niC* zpdW-H&+)N)o{vrlVf?V3OhPUnZXeF(MSM9HS=rk!>O7CU<#wBoxYi*i@v>?$*N^Yw zHMc)x?D31s+~+FyLwue%Y3)x$&6u*pZ(SNWFNsWO#+h}fU#dOcn=cKj?(;zHNnVs! zFI|48te})8v)b}N!ez4%DuCx_D#?27WSbd?yhm;2nk}CE*uKilo2_5wPk4YTgyIOi*ldH^MW+}33nryzRqfPa!|GZ1FV!>!~|HwdYPEL zGG-r)Z#G}eP_NimNaccPB5QIuY`o@AY?$y0GQJ^q&b)_by)XZ_Yc`=@wj znZPS*-C!dRy)s z*4B1A)wU~Ep5BDp3b3F3&;C5&@1)BN94${yd%cGa25l~0D46YypIBZHyII+#JJ9gw zIZQowEY;tDM{~w68Z-F6=bWsydFDS#$ihHY(T!_1(vZ;SJCoAL8jM$|6ve5fl*LG_ zqDX5g0tb4YP9U9*kwQ@t2bEkAmo{m6Sxa9f16BKoqr)=8LmZp}EZ^^!C-_Q}-QH&T z`)6XW`I+kFZ?-tYC+eP!oRk$0ySw8|KYaC5SC_KX`O_QKEx}u!$`&V|4OAkUU&@A4 zi|u z3-%f;2B|MQnjf+()yrgAOWdeh4c4`HB>@olKN5 zTo`(s*_*}LUjQm!|NXiKGX%3b55e0W`sMD(G8o1|T~{6-@!CaoHEU`G?y|LVj`l#+ zL?Pw*J0|Lbvy!(<=<@7o-*dM5hb)**NTO*$i?)00={^)h2K)T zQ#f)>JUs;JuP{DPOg4P4GPq(&J5)Sa=w8Z4>>Do~dl?a9T=y-4F7P5U5?{_=G<4tn zN*$kjt2M$^e$S1U?mTtV)TB##6ZhoI?=DLb*`nTId#y@YVt2;sSd`{IFd6sZ7P|K0+ZJ}N4 z_{~o{U2z{iB$IOG`sl&WHC(*Afo>En-Xxt@ZZ{v?{JN%musN1z&i;#+PuBej7CzDZ z)g7(zCnF>eJsOTk^=F^m-vLfH?%P@I@5dH4Z07#54(<8X68VjJkwSVIa~pjVL##)q z5#C_!)mggdqpiNHdgMaAk?!jpND^^iMi~YX z+4)QQM)&=SQG;#lF~ch}X7|0nHPmk9orv_hpBr6}Y@}{V3pt$I-OJ~E=Ee2EuX4-4 zFM4zhQn~mgit}N=OFgyag5JsLEYf^yrsAE8DI>(OkB=35#0?MeHx|aDCN&)uDlca) z5(2?BWhErEA@{_ylbDo(m^mRm5}V$EYD%DxbcUhRHL^e^Q!Ck~!I|k0BMP3{^uAYW zj@-5!1)0t;<9=*o6Y4@KPjSBU4&xA;uv6CpfpYasv6IGaeLqe{ zUE&_SHp{~qp$g8T!CSQDW~IV(vjEOZI+eKZ;nS6;HJq}pxJ9)WyWt7i&0?3Lq?={8 zvu&>E%xcT5jM>*e0)wYl%@N17>{^ytrd{W2FQyO|HX=3SD=+QQo8 z{QWUxdS;0IDh-DVFC?g%D_f<>|9e5l`!c>k@yhh$2^H-B+13{y8D8z zQNE8fd)S#^JvE1&^@7awpo~-!tF$a!syUf%>{58?UYx3Yhnntu-nl{sk2R(FvZ}K z*E{AVH}6xsg?&3_^6`q6iulSgkQ1dyFLktAHW;pjya@UFlH=EU(8&fvrhHz(Q$X@& zncSzrVh?^NqkDs1`$E@=+hc^87c~FxdRr3T$ZZ|3-Qu>FQiB-F2^+gKGq6cuB%YM{Ts{Ra-@EUzr zz3VXVk3Y9h{ROD>^vZoaHMriQ?c6qxFv?1NUtRale{_Fb%ppCMznx-q{hdX*kvE?G zVgYhkFa74i(db*cDwn6`#LT|*F3W)Ien(Pe1 zCL?2iUENIvvRxsRn$}8wojR(mE=5G=j$EC*U=++%gz|C;QJ0$JC~Yh>K5`+c1K{Z73_sbigIRpLp)`H^48MNgU5!)3}oK%#bn zmqBhhmptSLQ?Jbyfvh*8pAKo3ORP@X=0X?Yx9v{^_MZJ*?!NKw&-vAC>3r2W%f~{} zmV?|uUlW*mz?L>l4tDK`K}My>QE|^`md|@Vvy}WJR+d>zQdI!0V%D!(AcNP%`<64Z_To$2%oDF_^*;GXge5CxnM$Hy+DPi6ygYdqiSW06r|}D z5lJUycxh`8B_H9mx+U`RO{S5yNb0Ibghi4;4^h7~6QmVNsE5KxV_9*{>o@FySEDC; z5HtbIyN`Y=FTI6NTUlFr`5RfBp9ut)x1J}@jd!ZP@y`yGQzMVQZ@J(<`HPd5=OY-O zd8X}NX)o#|pJiYVym!qoam%Bv=+3GopYsS?Uih8rfA2S~_oaJ9ZR8b?ylSNU>9&g7 zv3E~?p(68gJS#^Ge;k8cTkZ81RKY4M3(*p9SRs%g*DZ&s7dns*6)LKc9MhVpz_|qR4mRe-HA;mg zuBko6wX}i z5--&B>Uh9xDyHdG7{B?YTF2%XR*P}M^(l(SZp2IBMr;~HrA4b)eE66)cJ$?Og=~7S z%XY(LQkqMfjdGJoB$2|^T~{=zfHIIQbjni8D2EcYP+Hrf@xKl-dMxNP=6mGw}&INAJk7@pM^ z+U?W2d%^cOODOpe3A^n23z(;q$$$O5H+?Gmrqk!)BO@-a(l6uo7r^hPAy8i5Z4&Wm zygxqX_&X(@?_1QB(@*aGC|i)P-hIP5!9=?U-qtD(4H2(F zfJz=t1xpFPtDs`9o%u%M!Rz0rk>T6AUhu9^aInST{b+}AbIJ>KcH zUggH0o2h>0vV@>vk*6PZT!&bD&hNYIrBQXS7gWJWUdjQ*)RvXbd%f!RoUWQm7awQO(iKhOSLsP|20uVQum%528ZjCd^) zSv6cE%>AI2F1L)Fo_Xrpb^s1X%S4cb&}cCuhg%R9DY!oV(ga4wD*E8ksl;Y30*Hj# zFzUpe8Py0&P1Y`jauC^;*dz9)gJ}ClMEWqxA^r96hCn}}Bt&w?O-Mi1}sc|Nzcove7_u2f! zC#cxAYu9!sG;y`$BMxn3QF28kkqs*)M!dTh_FU}d zTmJV&QhNgeB0l>A1BPo)1NW=VuZrtMjxZtl+~%uxbj^vj!E{RLcC1srq^izoyR$sn z?!YBrl`XFx&WRGuPMTmE^?V1K7D{2N(sL%O1tt`ST6$p~9xaoNF{emYc-JD*BwdiA zmDN-YV@xVxS`11iFi#w~`-K|UE9l)W2PRl3p0h;3)ijw*B#kz;smsDAY7*NqV}vb| zj8Bb;;NnO!2risOUm@MByo?RX4sA*eMecCH*`u%8cRA?1ytW*>cjT+S?(vw*n@w{x zXDAi8=eg0U_EIf%HX}&RILDf}|L#IS84Fvl80CxN7Zw_S?@b{~WU zTd+~o;#KWuiG;m+8!}Vlm}L1!NcF~w8k8|Eu@h}vTcO=+2JOknB&1o0F6=UD&xXoW zQp=2rY93RUkjYb|7?lWRXf1EWTS-6^uZagI!%QQHjro*3OAc?!QLgMwFS6_A3Y#+R z8Hz^>n<8hi4#v{Ww?K+iS7S_|Y08~`Z$a$T(^^p|MY9c<Rnyy21F6)(r0Ue&dYG-g$_2^yS;cHkfdpg5g?UYDscjpXh@3bhG^VvgzMO`eby4E_f=BL?06+3RZ)FD zRH++E+nl#t8r+|^qI9+U_zPe|x>}&Uh-&4UV{sk{$&?c0l|&pTPEKrKmJ*HfzNv28 z7N5WigjG*7=MPC$H4>_jQksaViB5alP^NY9sfj(=l)yXKRGukOA*E*)S=$z2KR@Ov z9`#GVzFY~lp2{F7+>~W%8Bi&1A+2W=3Q;^vrREN&exj{RWToe;_I1@9I@;@m*8-wj z>LxzvV>A!BI)j*QFyYJyMnO0+Osou>)y9>!7h(^6NBPbKj3~a)^+{YHh48UnM?NLP z3QL3nLvjV}vJPpuc+ML7h0JG7?uKwM6|x1NJ_%9VH;2|+$bAI#|CX!gVQDd`vx#yBS>Yo#)N<75Fx67Hcs&4Z7t@&gRF3lNgo zm`M&o_;z0z+LNs|xXVj{sHxDe<6k-dO8068##P}=?c;=4?_%(=6IGh8sbe3KOzoPw zwVJizB`IBuAlblb(n6h|P#qQ@D57y8vTu)~Oodw~2Ip9YQWlWP5I^E$$Zg$>Szr~D zS7e|cNjWdXF3%)^!FAKgI@#Bu^;{4&xvbPxuMU@5H?Uq&1!t0zo1imKm?Epz4UZO} zEjPkzLBp@S~qQltujt%xr=#&L)=6HhiFZN61j9# z)KCq#sv(_Tts_<3WQ#ad2Q;X&8}h4~Do$2~5I)r+XTnq~)KWpQQO8MF70jZmPF$f&j=-zpaH%Os<5rPJS6O{cDkVn(0KtG?6G{I)cl2xaDi|^V z90`R8l@S6>5FJDDYX&LQ*UVBN2na|Q{v2Fggj3qq-5)nQRUW-(9{BTs6+Q`>OGi5q zn~Q)~>bl44Yo5KMwSYr4kKQ@>>NP%#KT5+93-a(0GCKi_wbvi<-cz}Hvh7CUs{*$gYQH_L+B#l4 z2M(uYgseID%2gx4!8=wRg;wKyMj+tVn=JT;9@%l0S_>^L#u|IVh?bqP-(7P$2^!+x z-6Pb`J+hRRXipGVoyAKqE|Vkrd++?%z^|s+_RgyF2Hj^>+#q!Bdh{@q&ezf{QD$ z72YKuS4m)*h5ZE6C^<=R@l378_tN?Sf-^RbvuC_OWeJBe5_v0UOmpyurE}xMfu`_T z8!We!I!hQ=Q_5&JkufX296iFUs7KcgN?Ub*#wR}QwkAC6x@cLo@dZUI$pkusoY;yK zMitMJmWQc4#`+U-)qhNdhz0?Sm@Nc3#%>HN8J$8HX~v7H_Rg!rGf*fAJt@#Jf&yVUVJt4 zJ7QJsqI=_29xgu20tHuCv4=B^ct%-YR5g~1YNUiw2WaU?3IVL7;C}7%H)wo)X@R2q zZh{{8^sG^ki%);=W-5@YO4YD2&Jtw4?Y}R=BjpDyYdmg_7EUfHX#4I}0eST)Q22Y) zig5G~iEF~~71KWT@3dYGktHG@d^;aj6f`EP(v~B+30Qf~!!&$=@sQN`q6jYclJYre zp&#`z%kjAb`cJ7F-(IA~*;E8Z2(GBXRx0|Iw6IyH@NMyN1UNTN1VF`ugTo}+Pw7Ty5VXly(?VCd4YZ=) z8DkVS7pBz>w*l}cJGy>MG9g%`2%JbBrQ|CRTk^M+x$-n*#_pMJsrLtEB1DdW!t~Z1 z6MJHU<*oL<);OA6HU=v(h4=5#)d1MuMZ)p>?N%dbII4`B^^)8%2*Mf3{C@PX^yHE z1yX){5Ytf;rTIJc-n!$m9yU=oT1sa-;-_zAKSBe4#CJ8V*hRS=R;OM`#h;FIads-h z4v9Ww_&EJ$)4QX*{b40FF<(JREXR$oqVwQM6Oj;)=XGeKl!HNEOCxQOpE6N?Ea|t@ zXERE6LSBfQ(AQh;7LMmcsjONUrA&a}eC`O>%6S}vO)aB2L@^ z=9`$XAi3j8JP4s=1uLDJJ<^e}^wT4sr|I&z<0m$=-H46)cVueU-c$MvjN*>1+myIJ z*|#E5Dv2ju%ktz)2&K#ZJO~q8xjb|wNh)sCB2a@!pZ7%?IGwdIh%fCrzR}Z6 zO8*6vu#rtXX6R=B1x(1dbj(VKYOn#O=OkH5YFZ|AhV^H}Xf>S5%fiWSgfizgiQLze__#9RBlb zuSZS79{qr_r!SO$c|ws#BB#7NO%%zoJdAQm*@;S+q$S{fyh(NY& zHRG0Z3NO(VoL*Wj%#t%qG-GOTz}=O9X+aEb(E_xUQXS7jHR+KGH9576g|@ZVwdzPm zd1Qn;-)iFsk%3NHgc!Ub8z#IgW%V13zPSjs1e{D%cAUc}Ls;YB*I` z5edgCowN|h_7e}0blpP|k%vJgrJl|Wz2c^XF1@iciC+T8pAV}KGXw$-27K&z*eQ*q zDNtD)trXg>4BLo`FwkgI^U1$k8fm99JHDk|%7XLL0~FdzhQ`)JdbxFlt3t$F#-@de z#~?{;EI+=@6HG|~jU28WzfD-;MDe8%T|jZgO~0&%ddD^DctyFkWPsS(+q>G`lfAd4k6g}am)vy= zXG_obQI*-QvoN653MxE}(F(WjK*SGIE-Q_RBE~C(+u&wvb+n%gX_8hy0(1Lx^!BTE zR`A||?@aFkAO2?uBKEdf^(`w{^>g8ehEq23%jx^uzZ9BdNd!+(u5KqSlL{vM5ZfWN zF)ffI5S#$tLfcEYBQ)1G-eI+q)wFbD!>nP}(jLKm;|$0&Ci)k@9h)5IU+BK$ZbfnV zr$ouF{tlL)WD2#a86NGWQ;6~R~PR^B-r)r6VP`9x>DxGNZB9`DZoa4SY z>QE*xSO3%1Dke?S{Uy)wXCzTqtGaGDIGeMA=Z?qXPOryPy5dDcX~guk>swME@qoVo zE(EJvUVqtPDKp=m+@9Rudk&mQd}WNks;a7bM+Q*Vj^P6MVzk^u?2oCtj;a~=}aB{DzX`FI8Ls-XHQl%eW zs%YTQw>^(o!%aBJ$|B?Y(O1KzPAGYWRj%@eQlAzdSsdGrZw{n64P0fG&MPx5zC&o# z9LugVLu6iCRjH(C(gxmB#$h*=^rO(~$#c474yB@VZzVnkKOG$@8DULwqM6T;uw710$%CO`02n#T*8P!PkcA}+LBb_^EfFSTBwK^YZji6FCX>@>8MqWo23_2Y%#0(v%hT5Z?1=C4s=#|HFR}>tA{Z7%)Sdv>xt{ z#uuDTY&+|%W*}3C$cktlVH2jUEU|e=XZ+vgWR*50Zlju`wAxl7`hMCr!Y=ibs_E9{{RARlmgzYfS=N zXEGppQSrnTGoM-Lu3~Vsyf0{)Lzwf=KGNKEkP?>LXMsXOLyZvQLAA1BGYjdr8^iVf zx}*Jnu3-H?r}Y&9FjEA=`b&VlJy5=v(fS`l>3W@NGp@I)XzGw&ZY-HCzQmcC3A3rJ zxse%uGP6n1c&U1}p&C25rLvTv2}V~M8Njxrac>-DDdJKAO%(CtTx*XWHO8xlhr{A6 zlz4g`@*~E5#AJ5^VzvbfcIA7!a(VoXVY9C`{RJ*qtWh>wOtI($!zMu*N!$x|Z0aWbVxVTMr3 zQ9(OaSvE*jf^cqqmw8*)xo8cuHE|Zxx^lENe0%)!S{pDx0c)ME_~As8E=^CDQ zH}$@!)%u@Q#4VNc=gRW(yVtz+82JW@JY}D&^b@BcmNQXUVYsa{mRd&&=}E<6N7e%_ z?(A&yCoCO@w!Me6=F%?t^2-@($4hwIXlV#acA>r9Cls!?X;qx%u-JC0-mB0yuSo^J z2aPS9=H{U8viso?P-z~}2B5I13HFmWwM06gS?OwClc;*%PF>Sch zasIMdWeFRd&RN5-D2}q?-}wW-EnKLP^=Og4M#soRWkmj>QLxw>=r*m1%i6yI3v9Gm z4Tj4hgd@U)jgM1=+lpzHo0q9f`A?PDT3iiHap7xA;2Lr~Kaw-7uS#Q4P#poh6)8Xfr*Z3P;)0yU>!lkw=F3!nV6kQYH^5f=xcG(w&2T$B=s41JKwUa@Yy>A z=BqX2O?MfOHW+R|fihZ<*Ab_?15ZnOqdy}#s6>w?w90Qtn|HYHd){B_Jr#^6$LfNnWR}4PR=n)N-~t z9DIUijifq-=@KPG(&j*JVz8n!@&X^P0?`*pdrE!Eew=$yPbja4{ z0-^Z_tl{0H>iMoa95~LV)`=QkE+eB)Og$ORH&%o3_6neFC-dKG0ZP-K)uf_Y&amPVtVEXa$wBiIQG=$xG2IeI ztEF>Fr7#YPayxPd$DEIdLVh*=PyCE%T$Yq?U2F4J97)s@ z$5hDyhMdz-ru7LD6zqLrTBf0;Eu7LbQIw|sKT89Q-tlsX+s z)@2U0`OemI^HY28PnN`J(B`utIj6>FO4S(Cl2pgDMFi6a1s`EFTj0gp#v=CYZ$4K5WPoImyE!Z7f#fqza+IE zKzmYO$Jmt1c{U?VDn6lsEyHV-x1zDB!{nCQ z#t|V8sw!GaZthE7fH68(e|%HZ>#%wD>>9aLjT*_{?onQA4S1Nzt5}He`xsThI9ZNRcI#KD=zL z*xG7i7SPfdlNL0mC*GM8B(H}KAs#+1p=mAne;oAK- zy-?g@GhJg$i8a^8jwCwkPY7CLjcH7M6;FCzM|myEY?s%i>A@+*k%c^IIB|P;!ze&W z9)N2Hq;x&ig!8?WhZ@x2Xzc27qG|?fvZ2C$KB8qIxlTuLp|csKyEDxXPLCP9b#yRi z8pRr*D=X1iXR-7vvBQNmfbt4j9cxn3(aB*>a+REltl`_vGE8Zo7VxH9lG<@n1`Rrzem;WC2PZKNP7E6o zI}8aJ2K06v4pzt93Bl0pP86Kwivc|EKH~JJek^`0-hupd{8<_&oyng?w=;+v90IUz zF!Uupo7jrp?=Jl}hhv1@C|5p2LB+vdmGlVbfq@AShEFL^9wU0K$D@|ScC5SISy*-$ zdmO#a93qZhDJ8Lx_8{zgOu&oIBMt-UQZ}uL%LjAbk3s8J5tmsrsaacI5m=HX{{Tcy`$6v~o9r11T6$G_Zz~QFgJZBH^%!m9I|$`9g2AJt~f>k#J5zD#14aM+OqKF@5=zH+P6Da)^K4xDzf*pwcjfwY<8+U z(M|a>swG4wO2#A76l}Ws}Gi0k!4f+Pa*) zyUMG+HGpxUgR#otz$evP)of2tTPoVmKq!i>&exUcs^SJ#R}!x$JIXz)(_3C$Wo>6+ zvDof#V8gZgD*($IRu4}Sjuq0qw^du-=X22RaXTJ^t#5k~u*Bf#Ium}{_8x~n|HJ@B z5C8!K0s{mF2L%TM0|fyA009630}&wv5-|`WK~V)0ATnWbBQQcxQh|{aGeA?JBtv3y zvBA+Lg5edC@HAj!bE1Ip|Jncu0RaF5KLY;%`y~GW?L+?nvQOgJJ)}Moq_47^c&G4k zf5e^5JHZ}G)%O7R16&+W1WkEzK_5^99DE9}^7r`}yp_;ZuEA8))#8rAV}FreiJ!_n z{{VDJy2C;$_a=Vs2Om2uY=gT`m-$%Q_m(sBe^Rkj`}ciTHlKQb^W?G38s_sK;bIyF zXwS;&q|%?+GeCX(O2c97=VpJvHC-Wz;ncH`?<_kVnB4f48wG+ql!{ZJQ*urV!2(n- z7iCj`ta5AYyG0~V4S1pP)8tbeX`$qO_m#Pxa)ms{Bs-1xx%nt#zFYHD6>E5Yh`Do3 z91zNd5KSv0VX3Dt(FV%;7n;(^{Z|U`x@3&IK?&^cZ!_WIKa`>@`+>)Z^FWV#mlX~g zJkHfkiFkAD-VFZ$DU5B=MZvCh3xL!ryKR-Wg2S@9sy*)J>gt^Suo7Fs-_>7-3#LeO zw$J{)Y0x>`hkcy9LTlOxH3#0Ll@=Nz_Z>A)o&9W@doAREZH*A?Gn&?vPTt%A=I5y9 zj~>OAyLSq@D7Hp3A>OS|0p_~G+>gm|QU;@v$j8;}#8J)-VQ&0l{Je*`2H`p)T+~2)tKTJG=h?Dx0}Ob+Y!`^IvD1t3P)B=Yp@i zfhf%&gdZ3AazT`!@K4KEeH(P!fIu9n#ZA=^=`Wk~RYV0tRhhePcGf@wqM~vXK}9HU z8aUH}jnXmnyL2g}QB=9V7M=%!GBYFl?6LQdV+lF|QizPm?(@!Lvv-OVtuM)DzZxnw zl~oIMNfVP^HeY5zL8^HwM(P!|XsJO&!$X%tWtT2zw>hv)YuE|zXqzM{*nDFq;Ojrl z2Q(jeRm(f0kK;8yK>!o)N-9^yIKM?fw{-^u=G~~)j@ghW%Jdo+qbs`Ywx-VnDl2p3 zjXAGI@2}Bkiy`)H^7T+*TfA?{OIt!Hu+myamMA3^W5M?x=bEk}NAleYsg-Sb8*Dj7 z(iN$;qRPdmRArepqi3U5*?pA?`zYjO!xQlStElN5obCPl}@`Uw6vzXX=I>^mmYd(z7QIC# z9tj#RN)@NLs_?xWo>V|nZTk)>>CGy;D%E{~jqygRgJnXpwbj;BZJMp}?oLxl3|U`F zuzr?Ull#><{qmRdQ;+XeN8XfwG^c)Rmp8db@w%Z1@gc+7*UeW7&oysxdR17@^93WF z84sXtqnf{B%KKVTVMV&8yjfAmHH4!qxsl8bHrY}8DRdPIy3EX1@Rt6m@WIjV9~p1e zSFlq9+}w}16}Eh)@33or#}5h{ai zm!#QHuT7U;iyh;Uf2QE7e|!DaFI`i_`Aau#yrF2RbpX{y$2GcU(RiZaXAyo1x?kAHuG$?jK4OB9qK5-J9ENxBE3(qSp|sHo7ZUv1M6y(dwf`yt6@y z{{ZZ3SNdiQc`D)BKZH}wXJCH>!s6{g6sI+wLi*GD`GST@CjAQEcpo)O=n-z}{{T;s zT@2=m>Av9fi!hLLX<4CZ@Y%iCqm{c`)kM$zRR>~$67sC9x3*I1urPjPu6OoCy9pPN zRAVj43R=mT2*@s(OW({?rd0m`MAufWLxWLI1k|DS374c>=iFQ2Z!n%Jf$aEPLaM)G zRYOkJ>08A1Z$&}2`y9+8^6GS1vG{nnFaiD3aUCWP!sGf|Z;A=EK?Eu`53$f{;=LjA zTjgA%?g}cgsJ9l^aFAcjE!~tojw_#L-I`e!8lJ}T74uo=74FBpP>j!rcOp@Sezc13 zAJnWF_`Zr7*@U6_Nd8yqpZP=Tr2L`vQhrN*s!z!uRVU=P>Ys~aONBfFrApV_d7~{w z@fvE=n0%9EiLT~0UuAm*x}bL1UtkKlCpgrqZKlS>32{VW$HghB@=s<7kT<_7mPohT zORo>r8vg*w@G6`fnho!6hckf)5TQ#mn?|KEqE2xVhby~Ci6eK zw!#l&6yT(4b#~D?&S)pSq61#V6;98zC!n=7g;A;x=7VwmBfTP%iAzImc&F4(O}gXwl-jsQR*M_ngx^pMv`y z1=R1l>JG1~&0GK4lG|Syb&0WfPiq6iOV^cn@(HqtZX_V?My

M45BaP`GJ%;vtdq9O6XyLZL;|FobvX5fRSF^kA zH{n6;sM$qrp$^baI&7d&;o>im)B#B;Z1|Dm3_sn;&n8(4E*V&Nf2zm}xVvHX*7p^W zj#||WqPJ<)77-+8{{TEtbE_Sl#y);YuC|AlXrr*~c|@InaZ$qY9Am7I=+LAxwoF0K zCkAk0bdJv<{{WO;dbsStsY1iHeNEN9#CBwMS7?l0EIOu0GsI9JHg@?)HB-VXUb;SG zycQl|y6v{vL`pQ(6cAV_EMx`Tg6S++sXu0m$GlS`sD*~7SDx`vLA@rbTv4Mc*vB0! z<=~@&KP2b4xb3Q;_kp6JSt!{wPh}*9{{SupVJCK32URENRFS(g9ZxM2ANP?Eel{#y ze(rY4IX=Y}{p>Gq>-`o8{`sm0X!exOYCdZW!B=rU_{Z=}hM z$gDpp2hCxr`_KE902{%W_^*Np*gus_<4n$XmWT~VZ-%Ni=su{H2Ac1jsu+bD+@q3; z7T;bmyH#Y5BK=ayakE#b?2yLiTDxZPOP;G!tCsYVc2F9x} zR!!!baXSN=REHmmi12m2MMA#I?ZW+$kv>eM0-AI+?b7ZcqsGglJMZTMY%adDtRCZk)dJUY7kf}PfG z=vb)%b;>j~O?WB>hv&L$-a|qxR&t&qGLjY|Ite#|!(v5R>!J!0Z#Knsb7Xj;4i@dT z%aS1-x7mKpcpwn`Ek~_%j-XA9Q;Lo@nxC3;sv|TU(SIG1zYYfk{<|sSj86sD39p#t z?xqKqQpzG5T_~#|$P|K^#TI2GM>AZS;29x6_ey3aBk?J4vh{Kx_SAO42o-frhN#sP zdjNZl(mNzQO4`oJi1>|X>n-teM&ZAn3%Ybzo%&LLE zx}ki*fKv2P;Y+f=G3J>j8#~|N0xWK4nj<{M`=Lb*3lrFA{S#i$LT(}|x4aaPNs;J0 z0zE}aY6xr!=zEltK%0h-_=;>Xx$i1mO#cAcN-njiQMv^NLsS5z5c?yfc&93^yR0sh zhJdi)z?m&wIj-(XQkMY-%xS@Ok-MzaDgjL@r;V)6bx&>c&=hlOo(8KUgl;zAzKWii zqs?S@R^wx)(t$w@w?rddl?wY0xdU6)xdL4BY!RMs;TkGPPE_$rSz1sdu3)p_=nc;V zBV}IU;+q3o)k9wuiIs(peH6{Yb!>|@c&s*7hqS0M5zDx}4@MjMrlP~mX5$QDNQ;&dov1 zVzExo))5nUXrVF*3wMaH zT@zx%vBaFkG^XLPF^W@~4r5*xb~aI{PKH)Gx}hUM3f+Ra?5eKVm~Q0@#hgC_Zomr( zA9_HrLqk;uz*K*hQ2e9ngm9OYlt}WOEY5NdI;PrPg6GokHtib5UfnHkuS;aO8vA zQMQWPY>v*RB2s2a!HW^_1t;aN{xsjqQy%Lmv6AZ{`6}vtZf5|pKp3(_8O=4(c-3Z^qzZtUDXf5h zDvYqlN>Eq@3tZUiyjGX_@3O05qp01791?U|VkmGmEkZ3(~4a9p>FUT%*>u+NbBzge=}A7~fhg`i?8A zb*KByi@stZR)mTa769N$ifz8UiJUuz9RQbdaoY{p!blV#d4orA~E~$=?zD zRdE4knw*nn#y+P@CN)OrvVo?n(vkv|jW3d2;_C$)y)=|0n<%B7h0Lp4-Q=r^qa$gj zv;}CeuQ@Ys)~6*7t9ascr_DvzxzaQq2E0nc!Ib43gD9~9 z(ar;jz7nQoq1p6sEfwMCB7lvI7iP<)rLPy)i%=!e@w{8iz1FsmCLzhrBZ zy5JkCosGCtxne4@VPjWFa$O)b}9sdXsE zUta3Th0R=~=(^X6sTqfq$m%urZFEz)h8)|@acgquv6x~jAg>k!TKTLG{VrDq)U@1F zipR+rk>}BaWsP?BUI(ajMOh zgFu=X3Ash_xMd0b>Lv)QL@TNxjG3m{m+W|FEd3h)00il9Pzc*w8u@~yf_U?{E!1yb~%X3n+fK$#MF_w+z%`_V-VdH74{{T#b&1dNOe3jl0vQu;6olEDU z0x0~JZG?qn_8wtXslZgDWz@khGMwl9mihM|?6Q2({{W{toYUoSIjB%yL-3YL8n872wojx(I>Z!PDd3dZd3mhF;GJ@_)t#r@3LWHr-ai(5; zYN2K>D1Z*;?;r4saW69A^H$y-YY5HvS0!neio&`FyR6Fm+J6d#fMv3gz_bdK$3+;S z8Fg8(?rAkrjw$c4`lpeUy2C`zvpeFdd)rP+{W1@l{gM9w%7<4wzxgPd_~SgD)#%!e z@)TJ`wi*@3ial9dt@$jl60Wz;xc>lVkpqIIX}p9{Zo2$YbjGJLbLSxLjulQC3a3kk zjIeN{k#-n0jUX_97Adc*_b)~l(+G`OlyV_M$JEq9e$-cT6GTl{E= zmoGA+W+99Y%u9f>rV|X`1(yXU@|4$fZM8BK;K=^~oG(Vjl<1-jtx$8qEqX7i0IkK9 zttq&O-@C%f>wECl^}l@7-?CSTb(GOp$AWV*-&E;lamZA0^n3R=sdVUY@~}61P@9qX znXWYfN76XsDYS9$98m7Cij8Pd42AIb+2c^9A{icAS6;|T(Sgx4HiU{PTE|C1d3Y>d z>*V4xlwG*Z?P?R*44Z|71yiabZ7W4rW~C~bQ9z$cjTEMwRPK<1Ls#wba|`x}*~)=+ zeHSm4KB=)`F!Av$%zkS-;_xdjR1-=8SBjZ}fywn%C>22On)HQl`;RUxj$unIE)1tM z_C3YM{FC=fM!G7zx!A;m7YJ3DER`$a}48 zev2CUW8R<&DPn80s6Q|)ApPiAPt8y}+E{Qd<$xN5*#k3x2 z;-I>uC(W9dQ9~@fW2i`?#bwBdV&*CBv{v$f0-(D5q|hleY>&I-6<`5i&*r^vz^Y^}N_fM(8Xz%Hv0_}tRaXrp|kt)8A7 zKB^Wm`7;uq1hp1Wx@Jgw;A)@NwyvtpD78}0irmZ zc(sD7nG1WZxA{%M^n2gNmRUM1d~zJl`KG$5xNu6FMw$hQ_?9c0#FaXE;E%!;J%F?O z0X{Nq+9;x&oQgk+>ai|o18{@mb3P!Y!(v_z?G|aM)_7Gn1BIn7^$YN4F0M@vnwJdX zZl~(4^O3EoB{uUt><&nBOyrt?P1$b1*yQ9mPHH(H9&u)=B$^gPDH!66@<{`lGPL)R zlz`0}r;;VXtf-=UUNzlWz;Sk4Cd9`^=2RUMr6YEYZv^hLs5qAcbXgrT>%~)2iK;F= zYw8=S>!kh$p@YJjA4vTcNX)0dC-htq(OYdc0IQ-qYr5nE>&-ABz$YN!i%lqxEu}k_ z$0Cg?jaBw|B97Cra$XC=)%}`(;CcinL`<;_)2fp*Uh3;)T{T*GCOwgp^Fgy|T*Adm zhiw5RPWeZQdoc14E&`KUr;|-;q?R79Fx_^ZeAn3|Ztx{J&MwhLTGpSc7rOLqQa&0K zaSv;VO=Myy^!}86DjUjjEt4JF0~{U~DPbs=DZ|oYSyTWGSUJ1w*iM zK$H-o8$t=Faz?15$vG6{N2_d%Eh+K8s*~h-py5I)3Uo4cjj4~4%M%R~jcD2ja8t(8 za^HeGfQz*>N*uv*6rFjFN7NL~yQ?3fgDH2yu=$R38$cd|XN4;Gt}7x6N+2k#s30X4LRlyhnA8^G?=he3l*t?u2+- z#X*K)E;m@*d)<=E8lvN79SZhM#rgBazjG zKih3q1^wu#x;)l~iVhQ%g{JhybaD50?J2nG{W(=@a-8MW9-r>ZKeD}t%7s><;*2Oa~09Vb3%A4ZPjKe`OU zMj9!R%Nd4wYr|!4@oKs*drJv#{{W@YSiicMSHRJ9h8pocz8WSOX^Mcx?}~}8Ze}<= zyvMogwc9F)D%vah$^`j50*!-qo-Qj3hXlFz@z?03ke;Md#OkqF$$&2|B}N$|Yw20N zPl>7tF<5ugajed3%qPzwW_{d+=g5DQBkJ7U+g%1k)|29lk0dNUY_cAx@OabavG{Nv zJtH_hw^+ES3+g#K>!R_)tC$9p!Pu2!q8(ZN!! zhyL&IrJoeS>bkB7HfC6N6lP~;r;2#SHNrp)hK(F~A%vtd+q?^cY?!HLFWj##_FWL6 zkeVSh&gH=nPc_!Z;<0Rv(!(t;LO;sS10|KM4?5(s!;(OAoBD-~==W1MTNlDs1EsLx z>^t1}g^9q))M7?vaCi7kEe>g`PKVy%gFBRP#$}k&pQ3&!^ zu9#qj{{STOh_!cbWLeT(acR|`MA>690;Y<<*cFVGnR8h=-f8Z4cxE2S;+fUvuDljn zvr4=a#>C2%7Xqr?6u3M_c-=*X=}bRYAQ}08aIqa3i0a?J6SV&T&S|b_b4^-w_no#^ zc<7lFW?2mY7FeE`#qkiZ{{ZLBVOd5;8$~#TH&X{hVkIKEMv0PO;qza#>qS!P$TwKq zQ(6_D4C>gFTOkUDsgr?~z+Xkwmb%p!^YBnfzR)u{pdXSsg*B?_977r$@frRrmC_M6 zFmq(`6i;2Ua^!xz#9(U0* z{fyVdsd`VO8HJ78nXX6va8cm!!Z_QMaao_Q1b0G~JR71nY40grM`uoCg1=PKTS;@& zT&Bqle}p3WPnwOfZ?nj!2IggTT_r0s78-c0Ol_%XBf&uvn!}N4FAjvkX^|ElN7f_y$!|sa@)ix(owxrgM zSVz^Rmv?xkVVK^o*R#g0UueT`^+B`Ja^Dw(wY)D|B0`b`{?fPX&aT zgDjdY&i?=v5OvCH@eV8$Wm61gzZj_V2*y@P0pZ1e)H*5AIPbRK;G?|}*N20Ltan&h z2Mt`hLBGDQxQ5DA%k20pyhu%vhZTq$x`F-Fog+5w84xrcE2<)nsXTcsTU_S6?$?6E zV`||>uzO`U4jY#c9J4d4lI>1m-8N4w4mH2g2JzG^DTHgBsrs&~t}JH-3}pL7bcBOA zk0??Dek%~{rQ;wsza@qva!c|H6%#XxmhtdTcCJOXYA$6Q^1As5Z~e%&*{-^*V_5AS zyZ#qZk88$`-udxYuLFNkM9yof!qKOB_V+h*eAnB$Vi-M|)cFOI3d}TiG7!}iVUg3g zC>(*rfuJp^@l6rZg4I}@NOoyUaPj`CDI7p%R*oE$B<`m(bg8An0h2QZmFBRG6?A#1 zurxk_qTCd4QPKBw%gJGkW>;@J`XVOC%GJtjLtc8Y?5yHxbN&`KCy?n&^bTP+3l8ir zS{w`AuYzIC@X<0kGcZsUndbZoGR+)u+O|ysyeyes@?hc=BikQUgCD+c)nLc(ny^2ZuzVb_&i0(JtvWcYCMNWFBTbc{ z_a5@e9IoUjnEsuW+-bYwzttfm*`*5|I4#$nG@@pdzaKS?XG22RSkN3Z7uNMF5fLV) zr}aNIcNbaIx0+@r6&rb*tPTbyjZX%J(>T@_K*q72YZTVC@^phmt`6|8g%&A~k@CE{ zFxrP{Q{=k2JH%BP9`jukV30c(4JD1a$`6iO`-sy3o>-r_pSG$>s#}6pum16ODkQ(9~d{;@k zy*T=;R~f>a^ForJda*y47Bk~&#q(;#cqvB^r;0LiFHawzxc9>9dLmbNAMmHjCY9Mv zp`%n>>YnlOMUDaEMHziemJQJd6MCL$vh;X_nigB=nbc%xt_EXEwJ_lGDW)F)V#(y3l2cgj+Y7%YcQU&2Vw+2^<;IhsMTnJ^Ho9JxlfjC&eWpm>EIEjs%BD`PZb?s$w?;+qmW1Ka(^PG zE#7MH)XP7P(8MH1Q(^8{{Ra8r{dBu+n@+*D!;)ZYnpsIOy&7u zh*wqn3*GU_MZQm(4#hFZnFk<<*~-cF?;*`Mnqc69v03pFyPLhobS1-25#k8?p;;g8 zMD#I`i3feW79t`=Pl!#N{pB6w%^2n_B)7?9p2oGa3V61qPX%+lKgl<&CAL_MOI=wk zHB7@jz9`l^tFSk{B0&pnq@g&f^q(Pm@+0F`CvxPRQ_Ky#`80Gh6? zon!a_u!r}H3-K&B#ri0Dl?OEk#G&|O0g?mwGoj-fJG-;>OY0jdn=*#4)z7Kca1V$z;s$(Kab^ z8Z6SfgHP;=>&l6(6$z1zR%vQ16Xus7ep+6oJWAl=)0c=f`Yh5Cf!=Y`f;FHwDa6xC zrZzT44Tlw0wjtk;hY*lc}z+sj)*r-YM_J2fW(4r*)WzIMmR9LZed~BMp2MZM{?G zea*Nv5u%PgVFldNr6)nn9YT9qmm;2b7izMwQnly(lx+pi&?jR0Mc9`O$osx)K#oSV zbE-7$TV>Yi>`_!KrkUVsPKmfoBN@u)%~^Glle8gC zmFxuOn$q5?{=VL(>f1-hifyu){e}f67_5Y(psT1Imj0P{{TeZudL#9LD0>(4qG8j30Z6n zk(vVPeAFUrwY4=-O*vtBwa1E$kv^8>x~K~Y*1O5h7U9QdRUkY#sOD~Ft?_N@rauJR z+<#OIn&_R3#0vKYsj)^F+i(l3ZB}Ep=naEyRW<>#{{Vxxt*2+KWjOFm#lq-iZBLIM z`B0Pkt! zIHM%O81lJ{0;h$zAl9|*u~_MBCqFfbCg8aM+GV4WJQL~NK5G$&bzAgJdret&AsHH^ znqa^xf2W#*1qM;C9~GXiD=}17+82WGN3~Rc4|RUky+>FoJHbVbjKwQ=zpwnPP6Axb zu3Fj4?J-}5p%Cg7RtD;I3wbsu=)qjYO@6QMoC9byXyQt2VUUkA;#I>`nyL7>uCez( zQBe1CsX3vZ?;=U*Qso;NIgun2kikGW%GC894T~1>otkP&Ja=dk0t#Q!t?U%>4e%LpgQQHJQFH;t>IO@s%vaDD-k^;n{m9jtS%9~R86?xIC-bbzWW3z zP8_=f)P+;{t9qlfrza;McVr*#Q$#mTW-gA#w22#)-1w|ScZBtW^;5$A_|MHbt)Wgj zERU+IZl33E0#Aa*Ik}&fG0oIzvtuqRq$j-62;2IujKBgw%>Muz zxnd{Xjit5vrbaied2Fw$uV5?st9~%;zN)&X#i3A0FSvh2i-O}%3#cU&mL|D$9NJZi z6ZdodLd1S!3dOTX@aOrix?RWr08<=elLZq^<-`{*iGqdK^D7SvJq$zoE|Z?oihnQp zPXL#kqro+;qg#}JR8OcX{ept7!|TuDN^sZ}K~=-Hs|xy;Gv=YoxhWs2#kaclpV4%f z_D}uGq`n7!i=>OYuKKKT)}J>iYk3Ea0>d@cp+02*EQoAAFTc?Oj@o*`vfk(@Q(+rF zXK!l#mbtkra9Z!zWfgSnA5?0OBzpt5ZMXa}?9mle5b8rlqk^Z0s*H7}wR`FMD)tAi z1Mov-KLB=)(crNR9qNx1J*IsY81Whm0pTSpX{2jjnI{|V}>{S7@ z{t)__Ax_o%Bk&`!RNbf6p2_?OrrP?0_`0F^1NbBB4#7oF!4x}3)E~kg&AT;M{3X8# zeZ{=Dy92f<_(QOEXpiCs)7w6_-mIgrdeDLhehj1doqHDbL)Tx_U0c@M)qnrQ04Wdv z0{{X70s#a90|5a6000000TCfF5J6F4aUg+_p|Qcy;qWl=K>ykR2mt{A0Y4$qBqAF^ zXiP>cOURIFaQM(ojj(l$lHd?aJ&gBhQueJFzZdir|d{{Z1QY+{Qfq%`5r18__(6XENF z5i$fQ#SocC!SMtlh+MQa%5Q|er1`u)bN>K>-w)}$J`!RY&kdPo#1VKXG$6~05-cq? zPoT_HPnH50N(sIYr4-^pjc|l~!iki> zLmVP-%fk_Vx%EG*MP&LKAj!pi5*rb#!XqG&X9{B*^=D3p`Bl_((>J^>zOMi{}3T024s(>|qNLs-)IS%0G1`EFaH2kKc znAo_Y;hL{Zz6=T9-{4KUJ$B#N$&a{1bK-RU;KrHuuoAI8`FzbgpJ@s1x7@4J`s3-LY5(-2|)B75%ftSH{%-BIM@qt1AMp*cS0MmulFBnDpib~z=x)Yu`W#6Up`FL*qBRS26X=b;aGXPXTa>4$rLm#xiL~RH3-2E?`&UmwiJ{b5il|jcW znIRVuPB2u9!hh zt4jrrofNL)0RWG4BXGDj;@l=Yk7_>wx+-d9@MmF~quf4*DYIg(7s$oQxxMFNmIWHZ zVfteh+?Ahy59x@1Mn?F&QjBBe2Dm%I4G@AxAqAo4I{uPepw}#Jh+MrQx1{4&U4HQ* zuGWtU9==)3dFhQ0P8KNH7gEI3U)b=5p|W%>Zi(>@YI?_S!GetA+1b$E{COVC*Wgv@ ztBuvCs3*?;PbEF7$s)&R{IW6N*!R~DignB7lw}()3}YzTHXR`NNR&aY8f11fXSc^i z$eB22$jUYP11G0du8+1yB&SEI}>lFCPG*m`gBvLKG*ez@pd zJ|EHFJq)}tjgN+gA)`Dl9yC#uVKz1?$6PilZ-!i%Zji51XN$n>=#gUi7j)ir*MA0A zD$BZRBDt|H1yW^-moN&i=Mcnu%E#M1m|n3jW)q6UA*K+c^cl1vH1ii&gxY-(1K_7w z>~eBmpFik6#claD^e4|l;*&c|wl4nwbYrC1=V<#4?60Wb(qlw2BC+UCBYhh%i$oeb z8{-JHgEK~b+d(}<{gDfBrs?u9NtA9j*IN4zcq4cbyGKGE4Ccerw-2(Hgv6+bP15X3 zNGG14ue)MXs9@{R?`e}I*2a-Ll5K2LtwmKe)l=RErc zo`XmE291PRGnJN{r8l07`VkKeGYyWvDlkE!kERT0gA z#5QM%BTD}Omf)0b=M%3&e>1eu*%wq%RD_3UQsjcrv+OPhuPq_!+j|tMvO#!ON023r zU34pA322w37?zoS^p$$1zCopxzKgPL+lZqOHlS3WR4@kuTx8YW0CRH=|g-h`vc+?M=V42#3^E~qXN4zxm2Lqlp%b>zcjiiVc@{7L)`W^xQ0L)ee!LUH27(z5SV+`wM$`*sM z_}lVJUy%r2IDBh}i?OXkQG(hVT$u-)EAmSLi=sXPd%&GPgd^?r#$~pR=zJRN_4yVd z6AiLs;7G~&ERGc&0NOw$zin-sGP_Z)#*GR|&u%1gzLMdShK4>FX!aC+Hk&Bii7pPA z;X&+Zh4UdFpx@b&{1Ri#l#T8hiIIWOTqhCPL8CEYiW1@T1+j1?3agJyTp*dc{7jPh zqYT!W@GKP#l5g$grKv50NV0_?$%eX)v>F|mxidHTA8ry>I%7&rI-0fTz>+EUdlgl2 zQocGY4o~eKh*T2r;f!JM*9?LTl#J}6jBA9s!LgwXcomLc7Mvsg+CwAw9fL+qM8TBy zRR_Kp(AY&){f9g%-h}n^SuYr^aFK|HJ^`v$e$S`!d%^jK>j-9cX9E+l|eSSO(?V?riOYADH}`iNcN6KBwIe8q#qK-|maD*u#2`X|!I z%i*FEp15I|LZ!nS&lknv5VNxb^Bp+82he%?7&SG+M?f&cG|Xfd*x9~E;)W8Tt zkp_`UWTrzyW`x*>k{$>hE{A#Y$HEu7On4vA2bpBL;&4;iC#;6-jn)FlWr;TgAklC) zybe(-Lw?wEzGg$${pe4nZ*TA?qATPuY=N(lXS2%@xVkXxuH?fgP9JDhDiSb}ul%Rc z24+f%A&i923`J%jriLZKP8j0Qjd*+>NHi(YV$GBGhip~X_+~h6{q5y?5gBO3@b)SVwMxSv z(d2mq@Q5^BidP~X@FzUFC<(#*&kKoDR7-C!`bL`=bM*KY{{a01cvSlwnPb>Hr6}Xz zs{<(L$#R^|CoqH>Ajb$kSoUoV4GHlJ3z7^QPKiqy9>n|+{{Vcv2QOu7*j>@vZE@Vr zhS|d-Q`uM~&6;Q$komFp4#1%fh8+xLEOq<;0Nz?%{rwT+K}Ya}ACzvBhD1eti^38U z0v&K8W&x5ETxe#C+t$B8Wn8yIA(9rn|D+C$LwBf_c|lJcAh=4C7VV3 zAycTrJ6LAIFEK#t!rqE{5OQ!up&3O+d_EV|3B(}yWL#09z8f|mn>#NTz|goDVZOuh zQIf%SEZbg9vmxG0S8INzOkeRv3Ayi5k&A=y+-LHDSFhwlujKpvh>TkMAL=5OOX$B! zzkz=ckNJ0@-_1f_#Ao+^k@F0d)%Wr-vLrgU!EjZGBe3>hsc50wTzN(uIS!mD9wwjo zKc<)IX>&)}fw|5IY-@xQ1=wE>K=VA8cILN;i+e7uC~$bMdfK z`isEUKCBXB=x9mUJTzZJx(&P!XMzJ?T0LVlM~EgZ8x&M)_2d5lC&QyL!LsCh&K3q2 z28yv`9pi~f)$67!PxOn^iRDp}8Jr)Ik%#SL8g;)SZ8-UPV=*+ZALMu2C)>b{&q8m> z)E3+S0FNh;GhN1gvTYdx*hudos;DVF6j~M}q#7O(6c>PF5cM7s61o(Va7v-2N&f(f z`jnz_(AnS_Xd>*6C}eI-g=jaZg7I7-7{#`wOb@I?G|jQ#W-XM#K80ErLn`P=!V>%l zy!0hVqPHq6e#E>?hZJHIWWh$ld>HU$Z5;rl@{X|zAu8*J>1B=e41ZJ~3_Z`JUs|Fu z;B5pAB6XSxCxF1(h+4E%G1}qrt_Uizwk&={si7X4Ck!RAu-kZo zOY#GMV`z`zf3m@#kGj7C zm4+Btm7^JyCG=NBGH6OrxMq$RSqg}jdOQJ2V3J%H28}o)v#uDRzJIS~QLWwUU{%whq>#;_J#zByY z>}KFqFf}=-F=v4pn9~v9eSJJd@CiY#k5OHhkqDYPk|NF*4~EOb6BxNq zh+GVDiEIA=2F5Y51v}XWc;%QF{zJNN4JMGvNO=;MqDaG|d^hAF@0cbMun$Ta?XKAV zS8865L$Rr1-y)LLNk?LhjG-E3tlyjHdv!8anUfy$Cm*5JRCLK4QW`J}$o0(;uqhO1 zS!j~Tup466M1(>RpDfWv#Kt$0@XNvv4hCd@PG>KJWLZ_SF(3BvW5)N70t9S-peHS< zJPyKyWk(-JUbg%P#ZPR1E`W}LSAaH$Q!7Qgreolw9rX@2Ii{}LRB@I{j!9t5@3zcj z)msP}3b?ePe z2s@UAv!(34W>jR`=%U4Ae{0}GQhEvvB)*(GVt8ZTzu4l5f#i1_*SEGTaINe|aU*L< zP{(cjL|i15n;KD+b8wJT!-nfaQe}~5DZv!7ykb}pQdu_bm^Y3oL>?I$Klc&D$G&ch zWvDIxA0EUcSfr>((C#bmtv4X$5(4UO;( zx@`|bnInQo?~x3x8qeg$74*6t@QS*ihjbz(l4 znJAapLdrjpJ+}LspnYM6F`bXYA6hj!Hem%nvG5iMe7wRF>I5MOMf6T5)VIQXc0n=0 zC$!A1w9v-{6B~MlabXrMpPT@Y(nMKHFbS^<{FO63oT(U_ENxy3s%e6%=xtyVNc)~f zmKR|2(K8}G&7OpAV71#p=_T!=M0f|M*!A`#w1!PQaBNWxWb&ASTFR!5lu<}~!sQ-I zVlBbsX^1J@_Om|YDda{M;f1e*Q{ef!Vr~K*HYy0wJT1bBZFBB3tvDcPgdq_KLVXze z`r!Nr%oo$4x{XiX7~PtpTp{R?$dV=Gu2K16P>pMhmwOUW%R zDMS_zY>}En@C~JEeZ<=A&Qn;o@c#g_x4u-K5T}d@pfZWoN<5J@32b&| zW3_`H%_oQi5I7R@{o_S z8TtPJW%(w_{R`EBXo(({d}Q~{jB{`LBQoli8E@c8m0bxPxa<%_P3Tur7U@`D(v$3# zlllf7^Nml960SdyvCqmMVm*{;maT2Y8{y$ows;iU{{SMN2Fdb?=*trL6h|iGYBxQI z1NTCSaPV(37m}2vDR@%wrR1e4OZ0^0MqXq4=vy7EGjbjhFSK~zG-pyrv3`?x>-!(z z6ko`cbfNjPj|7 zz#9hr3xa8&Px5YbF10f8O)`L&h3o=dZVH6TT28HqCYDEBCwh&Wp2TND2TF-y-0>lR{zd5Xh9 z$XfqK|Kp z2l3RTCtVrBk4#FsMD@A z?6F-v4qeEeAe;&!CFn=s8uj*5zb@DNk;Rop+1Tt&9Mpu`HqiD7$p_j!rr_1`hpmTo z(+;0v10um6-vc{gn})IsEfx3lSx z&)$9+U9`-eTAmAeDkdN!ivC7h;y;7-IV=+l>S^Wm@H&@r(iDTW;A*F9bn-IJ@+@7N zO_5ce!4yG6KXYg^Sf^SoJHx>gY5m8Ijc^R${k{P;PE~xWBu{J|D zW5~l(ne1nR&A!4gSl5AUk!fbKXkpvH^**%4Bjzz>S-Fu>EFq4?kc*hf!=X){7o!VP z@#E4GnU^o7{E(u1+j(W8=(-?UMjTNUf+P=tuOPKWbRp>k#n6h(muNvEjPw*-N-qZ( z@x>vCfjk^I>UvQtGz`k}+UQS>s7~lxCjj5*iD{z?TFV0Vx{8`Z=)cdP^%LpgdO|F^ zkLce@@}Hq^j3i!|^g(FAD>x64T0tQyd^pgl#po4iQeuNcVJZ+=9}*J+AeR{84~Ij8 zc2jUMN5G1TC(;xYA$xx2D>R>xE9gy99kW91KH z9~X*fLzKQu_4F9oyrX^j;CcT5o667d;#@zGYN^+OtI+oU0KzlO-TwgdLl{d2=SYHDVPWL@^8o*BydmC!v-KcF_p~{-D|Zq^<%PQJaT4;IQC>388X6 zXAp%DL|nEm5a~uI!(15G5Wvkgq8h^*v#S2ZU(vKbL3^>c`^DC;kMcAZ@({~SVHmH# zzw?34VLcA8Q7i}uB^_|@CWLH+b~}uw%_1W5)#Su224*(i|8 zUJ!z4oT0Cyp*e)&grwN**%DFe7jhlwRRxwrTn@^JXj*CHEtujTw**k|F$T!eCOEqd z(>zm~-F;BO6o?C?_HdlRRXaCibrsQwQpQT@arY|eP3LjvJ8Z4-tCk`@fdCC&?z zq7Zy1(1s=lepGc6_Y}5$#@&(m$fwAy;7i#CQIC(&IfDTPxMU=uOpFY;x0q`cV~*vZ z_!|*QUS1X#sWJN&aelIY1QzPm6?OI+HP4^R3(UA5YAiz-WwcMa6jl1bS$%aMg4ACu zzrgxUXZaN@f5R0*ToyTTh`~fB1fbmDPa{FHkAxp7@X~`^zovp%f#O1MJRUKah=J%5 zxGoH6bYo6NkYJz4*<-8F`wMLgc{jjOeoQ>-lX^y;rSTb_$~T$z==_r%EZp@Z{zJ6$ zghpxG4P5M;+kDTp(DD|>XZ4}WACLZaC;XZp0-jB_Tk!iZy14EWe#TL+xW+_;{SVN6{h*21FrY!7d!)#Fqx)pt3rr;Om*4G3-S&<~$d` zO%L47$mvLNr3DkBc&`hWcUvZS?yDLwuAOHpxaJ zxO)3EAp})ZI!d78%{`iLxb`oCa8+yg-;^R&>hb6N1uyG_aR?I;R|MY`UJFP69g?M%7#G4<k99AA4|yp0O_CiVNZj`e($n%>|&H_hv9TCW>bFyQpc=dp1GWhW)D`c+R(#v z;~J#svs_nkv8!6OC3%OC)%t9fm;IXaaFZ^c4!XYrBu(Lu{fy2(fVsGBCj5IaQNtWR zXj{==mqnNN@I5HL#PZ9uD+LUQZXIx1D}2$h3fv*C7Y$>UiNT4)<6}hPi-y|fjZvbL z;B7LGLJ32mmXRQk``OX$%cZfG5TIbEq5`LI~pseLapfK z*oFypS$9$_8-K{K-H=K=Z}=OPd*(h5Zo#Y;wLOBq-TEyqB^q1#qAyKk#on>tPVXtE zgblZ0mqq3G--9=G4?c;bvA;Sm_kI4tS3{98&m}B|Ns+Ets856{2h&nJ7w(NQn6zKl|>{o1U{=l9*6Xxa-q=~2K?r}}UW#m{z#)gdTWsWYPOtzcM48B0X+ zPtkdT9|^LLmWFJfMn;AsB&6h#Cbch+dGgQ5#ax=hGe%&3)D$X6GpU{)pOa=fZQ=Vi zsi$3ho(t?XN?z46&>nNH?;RPCZ-EAFr*jF7WExz4HE^k|8XyTJM7M3xq6c{({g0XFMg{{Yz?r4*uXtQIy7nctB+@2BE;LSlYi zzUD?wVtb$HD~I=J(Ca{Fzf=0kkXZXdkka2HP`9i32{H<=>=s(HU7vx|{vxQ&Q>8SRg8d18PRAJd4K7grmM@`m zf|G{1r}QzH6i;IPVjdSOAF?+`_B3MAzUMrOcy^dzp;=BIe7+Aq0;#xAw9_6PZrT%8fD z(|>`ym3uv+5+>y@W2n)u zCy-evufgVPq$j)m$3-fL>xuNQ5q(dNxO_4$Sziai$+x00o7mc~*$b%}@vi>>1_6`e zprp&b&FeeqeaE-^$7ji=kNF+r`3hK6v_5PTu`7PUi@>?5`yug_M3Y{Bk`dq; zX|avp0@hvoRf)W?4$Qy6@K5BMDo%_wwqsY^H4NF;XKTX}l0fyti4eg!ViTMU&(U89 zYn+jp5XvD3QxcB2U&K8_lsB)DJ?@n7EEmC=3SPhVKw9wizTdG7b9QI($I8pVQ$_aN z*_t)vdi<7pco9i&!>-1=s)n&V2Z~IMq=jbwgmz$*MTTiTdof~IaQ^@UsuRI{ACca; zKlEeuo_O%qM{V(m_vMM>c104NajayQ-|{QhgC_WY1#2iKXRMxKK;-n;XXc4LXKUE| zbUd(>p|hG8rS+VZQRe1sQ${E#xuP<*z2PPQ2XUkv~`LJ-2R~B*&s9Go;4W0!g)>1fq2X zCuQ~F3E0yyiG~@W$ii+^-2FkK*3^@BZ}cjvlP9W;i4I?qWXqy&4hziblR$alifXKw z8p_>fbW25a>)IJBFW|V%+<)-+&m=<^Ef<{)mxaM_hXg)Q`DDpM0id1)%|6B7WM6CK z*HV?5-V6%1$-S{n(yGUjl1{7%ntBU_8rPAwBwH~g{Y@CRky7)IdMjE#zQ_AG{{SKr z$*jSM(2i=5I&wGv2-M)-e6MCP4x zqveekhTY=hmoCh4`-O@95(_(pFT{kzN@;XvJ0r*?^c`BhpA<$+)nT>Wa38?cJ+jHx zQJ1}uQdH~uL?(2{njTeMSgY_#Sz;kd0p+|5<~!^jC{q{_Q1CVO8(XO+mfP@+@2eA+ zOYAV(XFDo3yEZr9VnzuJ#Me78gs+#c0c^Zv#^2xb;NRH45e|^aGSBrd=k_6{7ykfJ z?0yGf{{S-`{{Y1Kzh+48Em;KVzh$WKd_FhB;t!6=!xG|*nIj`IF@8qF<066?lqezm zauqy!OuzCIh_R`B41m>bAEPl1{KKyVYZl&__4+ZDpFW4#<}-D&&m$Ms&i7=rOv zOB908Z|oqpDt+wB%)xJ>&U_Dh8a#Lq8C~ft|sbg2@QHF~tT={bEy3;C&155^i6C#B1;y*(Ft%NKrKx zOM_;Gh>&F{_*@qVVu-onqaqmS_9BQkMl?1iGBhNkZ+VmZct}=}Vwzt$9{T06CWv0m z_!_Fou8HzB5~$?C=(@vG>|jp}(F^{8_r@|MX^M%Bz7K=43{olzl?f9liNmbz zK}%HAVM@y6&#-u7jyhX~_ucGXbIG>+my>3wuJNsmYaQ^-myraUm|mND=x-hxyl<~> zEXKS248>d(#{rDH%@~2r>(AV3Q*v4&;{O1|7Lr-{)X4ch*V56e#s+SWf~SF5p5Nul{-+A^q_(U&otu!I}32bhH(I1g0&HaeSvD^O4Pe?aII5lQD7|C>GdLCvO zr6zA?*urc^21;TNgu&RJOp!?8Ffl=LF=vLbEDXxw4vIK7G5C!Hk%G5NQJe3-)&Brw zC=D!6H|UtH6Mj|)8?V@jy^EU}^Zvt_>M*#1Q$3W9i{gX0cBSL&P_o%Dq3lUo7$g(2 z9VVtr4l$idD$0cM8*SG3l)!j1s{}D;BE!-cPKiZU86VJ_VJLVdt=buVnJl7^N-m;5 zffHpLLxyrAuFZo=#yJc0JK_zL;LPwm9gQ6tHg+}0xnM|qviuDa;IiWx^5%W$Vvv$y zp(=4Swk$}iy|Q-VE63@9`LEbUy)ukR6BkKso^1;0e1sI<&e*!`B+N2m=o0iX?#i>MdlFzmgkFnQlDjn|Jmc)?KsTHuU)tRa@jdvs6>;dP3vSAp}E8;KVkA z&tq#R16Pt$5MzJ{Rb0T-%nN@R%5wE8(Jpa7;Iln!`Ln zo$OgOYD)hA-(w{ce;-e@c+df++U$OIbyLbuUB_M+IXhE#Y~!#7^3zr;tC&N`8UDck?}Z~7KSxM7Z>PZ?AJo7HX%!#F8USn zxD%?Le2H(fO^tFH*I($aK}@IQwu;L5LzVE74t7hS3`mA~c^@agax``nH~b$M9|>Qw zrTJ_-UbH?0gsD;wHdFLFYKf(v^%1`-h4RKQ?caHl^;Yn znuG{P1{sp8!6yy!MK98yD}}3jFwpoX4}-o(7-G=K%`{w?4Gy{#Jbt=kOS9hDjY5rk z!TyCLK2fZ(_;9xW0POTBugXGvpPCJlz2HAXgzfSEP06qNh{81dB|nndt1i)u&>4F_ zyFMtzzh=wnUWSGwXjY}ji2D{?3PHVz3Nr>)9s~%CWKd^EUqX?TsxT!P5Yaview-5% zJ0B2A6l~Frlr-Uk<7r7_S}Cog)T+)|y$Y1gs;MsPT4DZ%nff>WM7JsIw{zDKjvfC1 zAz-+9f!-*;<3w0g@;@wKc3Sg(jAEp`B5?5^$ZQ`Pg4m$P1R)X8UGW<DLKhPnINQGY4UuA>#%-d_)d{yJx}R7$xQk_Cpb&p`>-fUdUC@ z<(4qqUPKh$awI}SM`q}lWGxVIDkRX~qvw{J>`U$z#&{6Tqab&)?JA&N3!)H3XAWJUvH8s#f5 z3=Y94?v@ZD7KV)#@?zP6oi-kcMFVSzJO&L5c78@04I3pYKY_%xF&5-{(mZT)Dl8qM zEbv5l22mddUjimjf`euWkcqS4Hu!Cr4Ys&Qwt`cJheP=mQGkXXj5J_AM!<%}hF3Ob z6WF61385R4Mc~74$+k^}a%qj=LpU6=#>-qiY?>Mt&}f?Wn)w!4baCh}aUg8{6Obc; zv0y3EIvZ^FW;_^Oi+L_EB*r&`6&fzhIBA**WNHk_M))_L2t-m~nVMi|VXihC zNe<+W4YSyyL)hJ)fX-n1jI`k}HwIyoIx^XxVjg393H(8XMmI&5t}-OSv84JV!1hwJ zY>nW)P`ipukF0Un-60_g_At>QnJp1msFrfc=#XCqZHX_rTNDXngd6aove6jnVhIYw zeTs%AHVzwPZb&fG6GLt*g`~__>`!BSHj7&!3<`P|CQpM5Hf4;_ERpm?ONAO@@-dbo z8e)x!WNDa!;eG|gMIku8htSB&jL6v=W*gz~*O9D_%&FOUY@=ZePXm06obiB zM*I-^K3rw%g@$%qA1I6OhDXSfB2#8d#fN`JMZ&`;z(S(qXNXDpEIQ$~j66qFHjv9y zG%6s7LnR=x9&s>YE*M-X=*H(`5dQ!}r4d-G;TJ`QBtozt(T)s(rIgELq%MRzFCC2| z}^N%%hE_%p(zh4f*<7m$cAQy(YT$vz4+h|Egj zD9lH1q1;F000000RRFK10e(w zF%Tj^K~Z4^6CiOgGE#vfGeS_26cu8zU?hT}(c%Bv00;pB0RcY&AMsE>;ZgBPSN)Xf za|q&SH}y}lIO;(BtNV=(h+?RoaGK_kAjtiKzll?AnSScFKBM2MDvl2qS%A6O0(XYj zIKM2_F%v1?2;es>8Sb4^6Njmkn}tKgH@An}YN%q`_Q*MhQK}9HjIa`PSp0Too5MPF zRq;-DIECS?6){xha!zOcLl0xK$C}ZIrh0^CRvQxfZUwGbJacLe{K9L29AAjyK-}at zSep5rDYP9@JE~7Od_x@?Dpea%fx|+aH=DD>YKqwBUd*zo8bU0IaJs_Rduj+b3k_aC zJc=AmNBMM|<&Ud;vWr|uR4F!#G`}*i_*z(pyuG}WXyR~FlYXDm&0+C0>$5X{;dquk z&HNfSsP3GX_GdQ?=Q-yzN{J)7G=iwo#o<+)CB0QQOGgurpDnHXtVEZeb%vr}T2rw3 zY28q(OCP43wR-_#|ddwhWTC}M!>8_kiVc~n|YPx;xL9r z^Aj-?aWu?PDpEJJdiaVao{{Z! zkENZNg1}eFQWHoaJ&tR$H|`TFG2Z(e-^6J|fE8?8svjKxx%#s!(Is^w@xRYM4y( zZ<$n~QnbshIx19IO|a1lwN_GOlB;5BVjcb=cy1dplc4l8Y&#&Vyb)_^Gb#HlRu?w9 zr_y^KsN>6Q{crbN6g!OK~%!?nG4GyG4;XukjCN!*r&f2RPQ{1sNsjXSZ@z|zI{3>blFTm zKyhPZYATp)JNacjll(c{o)5bI-(R3Z!|NVECir7NQl~YcFLWD;aV1GS)I{lC>0WCWNjN^LWK%86Tw1-rln0ksZBnsFG8+8 z1R(E$JQaYFv#iB7ql=ylSr=v|9AKwZA>avxnhv_A;v&vg)wc_j>?njJEZ&lMA=Ib3 zP9lW8x{>n@ z4%?|#QMB+tN~q;p&A&9~G62cF(N?VSX@E`B4p0db-X%HY9dD_HPx9XU*KkZ|E*t*< zr%sB4T-GpV5IQ3Ef&n)rQK^;LPwGcl+IG*!zoc2Dr#pFLYwre4xuzBxE{2(u%+Df9 zhdu2i!lJ+&WvASxW(Cc$1DWor(sNv0GD>mY07i&0gO>7f8jWF2YHe~GN}Y`oHo}FK zWl`}TW+s9icWSY8$iyDyJ%yNkM5fZrK5t-~OMB^#s4}C$he!KfPC*b{Pf=z0VW+Bd zs^yU1vSF5Qh(I;&=en@&2AjY-70m!IB||=-vas`6Dg8?$XH?ejqpt;DLa`X8ihwo> z!?e^PJou!WZD5R~0h z01i(1kE%TZ5$meJ`awP|4U(9^9!vUID(o((&;jKr<_4gPlm3%imARbnx~TWMtTcgb zP`gFNg~E{=qg#XlbM%1k>7z=JPV%DCiEnk7SrdJd zrAn15RH;(4DfKeog^6KqXy&T4`Cu0BJ4Di5m|OvNEje{qI#H_bg1Wy|ncY;BNrcx<$SW$3jtmu5fQeOEza|qKb~`yU zs;NvGu-=vl%8(%3BSbpwxJHV04WxsXN^TYH(qd7; z%dS&c2X&Hl)1sR|Kt{rNz(~;yN7NR2MSdUDrjqk|H3D2BTFs5Gl0;1kT*8#JMl?t?+m-^z&NplVTa ze_o3HP?;l|Jf%D4?w^5S;|+bw@ZiQVCT{onWcaXg4xdR@lfvgd2YgFl~=C&C-pJ zs16O9s?IKP0UBkk04AN;geo`nN|6$XlOPl#6u_G*)he`R4!327#TT5e7wViEn~2|p z*9SBZhRF0~o(NflqV@`!tkzHYN^7ON%}^jk?O>t&&)Hmyr;9|Q;>~nTYYCRPBX*S9 zS$XPJJvK_8MI5#aV^XNrF0q7Y(*{?W4h_p>@NWl1DsIVB=4iJ~ zh~=uwO^qd?3YP$OPd!?haGl8=c7b)xG{*%00LwS~0$KDehJj)^&!zyhg*->*{By>mSM_rIq6$_c*wFD=Ev(LJ9+Nlm`rokF2jNR2S z&8BkeD=7gnpcMO96Fz`YtcX=Q@2Hgs$l%Z05aVT6P|TUc4XG} z<61~5)Y|#s0|^$IASMZU;W9I7ub{DR2O zsY^zINk0xaSNx}7^a&1NSz4fe$vhC?=l6I}qxLcTH~+){JP`l^1ONmC1Ox;G z1q1^C000310s|2Q5+N}VB0*6TAV6U-GI41n`&M??Mr4h8P{wDwV8 zn8tQeVsOzqgL4!y(SHw|GwhrAqemB4j%csosTEmWbrpfaH2!R#ApO_gP~A7AE8pTI1pATxnywce6A=G9*3bjED@rkJfUM{)|4CC{xQMYEb!t5 z9UPquusl1bbuGR@T~lLj7Z3hpx_ir=WkyS(b9-vAb5pAKLD}2x7C0Xn*V$F|Sv|_| z!pIkf6ZvTND0&jGroUAStbLX+{$Ws_S0aH}d{bQ9uUKq2ZZFsi3m=Ftl#bjmzt{9l zeLN<+m9Flw{{YPUaIYl7+IVZ|3WV;kPPVLT2zgOEE0m3=a0OxUMXS%R>vDW6Pv?1svZp^W8}d+4xIWpx#dhchh^MKR5A%H;T*I5pgk z2m(}CaKWBW(N8gv-rW=|E_%_eQ$FN8DNtOiL|bjH=nq8UYY#494^g2|$(^)TFAdZ! zlO}Ulj|m#aEjz>0DrBsRsB7IxE1qndQAX(0Z@R}%Lb|KrY2{LC2)Hcgx1byY z%O9A1)*BOAjgw?++NHsRs87O5IwHpfMP+l87zti=6cZwj5vHYLCk*SVe1+!9%(E?c z0mhITZ|F$i3*&XS?iL#m964RD_MOytkFi<7PHaSMjusM{*drPXQcd<#<5=CdQb^~U zDaYUir+-932fBP$(*B#M@fe16%staF?dsA#h-0BY)K~G*e|4kyf#{z!uRE$o%T>ez zfK~AG1%6^U2M~z_ju~6oWp8Dt2XFyp3o4~cD$0io_&TaLs-bI61>Cf)WzXU2j0{DFb$uIV-vi|^T&E2$!y_IljO(?R_ZFxE_i&d1A8}NspQfMI+ z4*u$Z_fLg^k&p?@5N1HzV9e80dfH?Sd~PIwZ$*LZH}beqT7yU?>Vc$7 zN-?VP0IT7H?dChsQ7{2X(M#fGEu=7}z_#iwMAx`w%rrKi9%nJxcifk5u`H%Ftzg|g znf)AuXw>G!Cu=-10NrA|Ib?S(QS6IOt#;#pG^`a%F-6Mw4@BcZLe8rVZg``y&?bp< zIQX1{sR}4#G~xjuY4lGStPbBT(rW=5XfzkKdntdN8!`gcl_Q;%+?C8V>O#c1j(gpZ z*&R@c?gX{EHM^`tS(siZWv{x>i(Pm%#U2?@_?E3$@||7+Yk4Z`s{B6;(A?x}(L6uK zX)YB>qHy7|8me6rjS<6DnPyqmVyvqxUxgUApQ>>MhM9HMVC2n(Zr4^D26G6Le)KI^KG zRKJ$%>#}itOrw;SYikzQHdx6YFhuB`pGph!Z{$}v=(ErLt2~vmbI*sW8+t4^%s#6N zgma=ftY5mtJVFZ^?q?s_2;>qRw9p2=Ch=>N zP;?q6XM$HY{l=D@((&_+uVha#06C=Wq{}g@*}I=*j&oe-E1*t65yk%iBAJxL-;{bR z1$esjwH76WHMwe&;cU2xIjb$4$Vg-WH0oQ;?3t0UyHl6H_bH2A8|k{x)qg4Vn3lbt zx_p;2M&D7YoPhQaIkZ2bbb}+@-Scdi`qF{Z>VzTm7}svGV2ndsKv3B^HD=RgXw@UK zmBqlO{G-i&LW8{UJjXdB>Z2|s&n(d zBU|=R#KuAk!;ZTr0wi^Za~&P^(Q{_!J7|5aIl?&4HJiVx%Hv%uXqzizjgDzKyAh(2 zQzWl>>YZIwuF3MFi<}>oHxWC!COUF;q%-><({8i?%Rn^0(W0eFl`2%JQl(2OrCwPy zb6xgWDMO1v=%IM=No)BTd6R=iQ=u-{rbxmA0Cu8^4anU2NOO9A%GpK2J^HN0vX+6R z*ab>C%X;0aV}$?+Xi&U0Pj zSw$?UwO0xrX=5juzcBsQ8x#Kk%TpvckNkn40H<>s6-4{*{{SihiF=qp((Lw4ovg(? zybI`@`J|DokngUFMhNi?zGj{KtWF{zbY*)4?ejl=jqJ5N#U2fBnE5Y&D%Go2tnj1f zk{r&=4LiU5p*dlvjHmWOcP4%%AQhT{_D{#g`>-ynWIqt50M_iD@_N$o06e?*U2Vvl zJQ~oe)zEOFEgUs`jv-~3b}RFLwSIqZ-FQyw@6kD-g1}k0F}f=AQp&Of=*@1dtMplq zWu2n z-*kLUYO>mMt9Dn>Z|`iHxqSS&bmh5gniFN$)F7lSEoVX6d%5Tzi*m~wmjDIYU|A~Q-B(ACtM zZ~CaI2RnneT7yV{JxNiEc4CCgjg%9!UcFNZYa6dEtWb=$!Cdq-G@xr6ZgQIv;@(g| zP`>Jpw25zD)do5GgSLu8n08x^BZZ<@H=>hehhtjMNI~s;$#73^JrYPxiQw{8bqTE{ z^nopIR}i_gQgbsuEt^<)u)1okrcOP{Kc3xMh zbatgT{m|Qu=&MBL-=QiqQxBrN)!NiXtU9Jy$x zKu22&BbD_>?6ERk3O{t+hQF$Kdk@X3hDT@G`>A4lpg(F^*yH~I-Bi*S5B5-uj4oJM z&SLsl^4#ONPCFx?y5}mN-BZ2LVLRGBiQ?K;7EtDE+f^HN-u;sXb=B z?5_rs<$R+f2P%FZNOF+jsa_kL;c39KKp$iyjB7Rt&n`B4qpuoWQ(UXjgW=2U4RZMc<-)&_jA^pNe#n0(Kh&_ZkE&L+y=Eb(-Ql zl)m18qruGtQjS8yk>6sXdk-lap(EPtwYJJX%y%)RDb30g-0u^Y??~$HFJ9@84V0}c z8d`Jx)&8FYPX3D3rvTwaHb+OlGk#QLYT;N8BxL@}JsCU&mL)I!@C;1A^Cq@NMKQTsz-b(XouhCMz5uRbM1LSpI z!KJ5=`WoS#!)4+>>a)3KKNh_<>XxW{W5E0y@>;(oDpae@O1RgY`7hB|p19wT6@G%g zKE6}s2yh7X^BvGbhfgO@f;`{ROF^RoGJ z?mxI^a_TvtsB4Y;ln|p)k_56{gYbwg`<8w`60T$Uig?1*DIJETm|jb22~eb*WVLlE zb1RVS!PqqvttI8pQsQ>v%jBhHGVsXCXWPzBkC@%K2tS6)B|aln7qxH^mAMj2_C$(C zf|7W%lH3*o_+X{Fh>Qp;0Z*SW3D_J$&n<;xMIauq3&yXhqsg6uXdzqhN}+3?a2Njo zV4=hDV1>xRtb@BXs^{SVf7n)22AEwEj5b7XwhbY0ChyEh4{XRBiWN`~cLqoB0KCR+ z%C5?kilED`!k*7@`F%qst6)`~{Jn=_#WEV$V>CTWDXfkv18`y_sb+~igf?!_)e&AQ zUk?*9zn{j{$1NXL_APhy8jajX_XIJ8e{hYmDVW0Qovhw2M zH3#Jhbe?WdDx#D%07SlWFw)@ri2WHGc(eB9ddstkk5{*xhfK z4@slEd_sne^8p=}K(A2|xkJqTc$F@;Tdw_2vz%bbLI4;r$6~mk5FD70IEEY`z94+d z9wTu|s$p0rRsIF}`Gp|}d_*oe8kSe#XSl87KGCWpUxSp-ISMMjpTgKawxxarl7r7C zB%^SvDw}el*-2j~S=6AH5q$m2e^oEVu}col>G3nKa7Vwwyf3j3Q5v~KN@Y60h${Lg z*|C2Geki7;psbqg5=)A%_P51KODAX^2#nSdDtQG zE?rB`%2vaYs{a5N^N}xS(qSmfn^35chQ&ooe9Iuax4eMv{K_k=#8RpinHtkl$2oAl zSsTnWLEK1q(CZL z)VSDj5U|GMo@M%$+_vQ_DMm#RwTYjRdpveLlvUT@axv>TFe!pYrESazIJ06k;wE?T zafsAVF{UFQXv$Ww>5H(1YKOD+4|%tfV-c7b#vvfiI*+>vcLu&Pt|O&SM7jH z3nO*jO2gOQ_Vg;$AK2pe<6`>Q42FyylkRg%`f0+F~Iae*MlqpwJFWf0a4 z#{~vmkrml$-Q?f0Zq6}tkvnlOWnu1YF;@>)bBMjhR8qM+FXnYtY(l>TX^Iu|ENLs| zcs)j-w-ZiO30cNATRAqCnjNSlX{we{`j#zuf@^chHrtL(Cy12*SyIca=WJC>aEN{& zCX&`;$Q%~wiE8yL;tH5BN}UkIw*H~Vc6sc&t&b)AkPO$D338$AgDTT;WujbpJNT!F zv7Y|F7JACbWya~6LX*s(&r`!SjUHxnk8uPah3FwX+)_cCpb!WrKTd+^&M&kD7n&f?jJufB45{4Z(NpWvk)3&-{QX9PFt&eXW1gYc+4A{{R{NnQQ)- z$N(%-fcRq{iP`c--Ucr7zl!q)>Gce$?fGQng9ya2IWkUSNnUa9S zzMq9tkf9gE7iM+*)YozZN?BpZCZkzWlIl^)dl07xwpMjY{8@;Uv@z%ITPWvczA7om zAgX9rAxB3d7qXvn^h>qGZcfwcT{(9xqEZjIM>^(7+!x7NY4$>VoBHcwglO zmErdl`zEgaxDc|a{wJIz14~ADJYD)sTHF5MxoA+&+#Y30sQ&;HX`2H%97q)1##F0~ zOv6*psZkl7C7ET$gfmi?$ZB18a0>TWSyO%{zF=vua6Wqk0ZEDS3_gW=m5r(Q8$vDC z8MPxpPnmVgrZ{F8vEW}YT0sHe&GAJG@c-xuQHyoBN@>L+*-hI_@jzNiE@_-WMd1x{06~1 zO{msk5F*}1zj+TfC^4mWbVOkg_cBVrR0v?$({IER) zjjGFNCUkQa^_VsaTr?`a*Zn0-zmdnmV&cSLSu~#1yND1PxfiOWsPCMcPpd}9o>QOO zFoB~LsyrosQ5XQU86YGL)c8I2N7Mk!!@&e_##~P@8GC!)A;rAPMW~=t= zXug6GMmHDEh%q10txnNHlw4B=Xaqj3+0X@BS9j{A07AF#o+WxsRZ?yJz96Mn%3wMO ztQCK>DXJJ3nbjqSeJl4ei#nk-4Cx2w7s3UIUCw)U32l|gWF>sei0WV z*LE|~sn*p=a_@D$^C@xy%&_LhfeWLh=tTyro{{T5W2t#}@@XBELt^LcaByqOx z+;MTqwmZTws;|TyLp~)t8eCnW>J(LFjkqY&sZEg4qOuFCg&HMRaLDnY163tT*~Mz( z>l{-crs#E%a7iO0bb5SVFU+gF45k|f#Q2TR)J^)EP8%qq(0PFA)SBc5WuRjwlZ)GVPOqrb+wVq4!9 zqoSox2O*2v2cC$71-g4zp7}g!X7~R9*e%1R#BY+XeMj&&kRvN9q2%!mMpZFwGgyce z2>$>FunP?lzPv-MO7Mpyds7nI0kQrGM1Ek~v)O66p>mr(gH+$r^1@?SmDsZ3J3PYLB6U<^wD(!=eGLe@Z`Uw6#1 z@RSz=Bfk=^393AMg3Qx%Uq~`sr9!-*Z4ojvzlJL-^2V;K792%L_@~5L%@(fJW2&V# zsYvs8k+#~j3nRhNzCod9ZQ1qP6pVQT1T)rqOC7PSflX$;!P&(8HX>VO@foQaCDgXN z0}sZY5l^4RokdJX%u=`UAEAUZM=szam{IInOD;uk-FRVJR!Rs4*=sopSvxggLy=SG zV33KD>8tZG+N_672h?Qt+jMIJ?Ilu{ z#)|=o`%9v}GA(PTVw=p!q1_EI{>aOe$uFKt*|KRGA`hRK0;03TFVw)SP9p+i)C`yD zVGvumZgy1%3Sk3WDY>F!DA+Af=-shJLgcpEB8hGRlGvF=g-L z_(~J&BY6R_?_*<;)Oq<6b^<$Mc_Kz#$z-BEu-v~hkC*lMSetAMJ@O~XaRe=@HibM& z$yiFeq^Je{0la6*$S_~(0EIODMAsl_U>mSTIxJ;mQ>W9{{KgU}un~7mz8bYMg2RI6 ziIV73Lcg`XKmkeKgQwbEyazU37*8fplcANcYNN^bInOeoxQ~ca#rB61Q95lGWNZO` z3_7{=MG6#Pmm8K)<-Au=<^^dPghCc@EE5YHSHrKa8FWgkpfq2TjL$3z4D%03@QDj& zqD$GE2F|hP;MJH%cAg`3AH-V}!T472yOc%OB`P7{Tbgrapo_R34F3ROpSb=Vh1Nd+ zci^5jqEap#t`nOQlBt|~faDtF#I&ebuvC>+qOZi+>9Cfiae6xKkEVJOb^O^%nj@B}+gcM?vjHtft$vEtKyaK$FYEeH?0U2462MZ;#C1*hMKL){64P&lRBNTYAnT@`mjpCKX!{19$zIy0SFAx$<>V?@4SOHV zp_gv{iCENV%`dP)x6l)(ou&X$D^988@6>bkVV`^arV(dY+tI&TPZceLN&S;g!u&$v zHFGX$f4WIe*WYnsUWt<)`fvE3WC#&FMkJ=;9wuD(6677%kdne!u0hc(!idFdFhLHx z5})kkQ51?ZpCs32y^5w0n@s6Aaw!yNDh{C22vKYn-TtB(Fb~`hHeNwnWr}Gs$B7wr zm9<2_Ywu%CH>^}(j17V-oQ@TW9S?7UHFwbQ;0S#NC`TB`ItL)u)r&x^;MD&B zFwGBN#&_{h_EbX`JOK;uB}ctru)2n<{2|zhbz1~fWe9M1umGmOPf@oFx|T<1{@BMa z@PeuH_^AH?71*gfm81uqztFLXZ*gwbhUBOw#MOG7QmKwo%z$AUJViBD9hH#r{lXu7 z)G`215f<_QN#F=9rBMV5fEeYvsinlUr2u`fq^(V1o&-FN^9|3Fyr_w@!+rB)yp|&A z@7keZ;oG|NHRw^Xb@Ln`YTo|<_~N(LeF}d}2-UwN4AcD01pfeWcH|%ZF{G04DEvVV zd`ove3*4_wayBA+kEUpL&Pscg-((RS5BUBmrg@D=cdPco5isM)wslf~jQu(`EDhx$REeRG6+^x;hiN(0TDJT~>?BdOcz74Z#cl*L2-J&lS6AF-ZCy8k;+V}f#VS77 zEo+BERL(52K1LmCDEdty*iSl21I4jbJbo^bn=VlVVCBz?vrPX0bJ-bD9#K-0HZieE zm2psJh)v%ZJSlEN+D9G+B;!5|Qm!k1vY5yK`~^po{{Z)b#a&-8qX*rJwLfu?I{&~Ww!>rHcC-|E{tu`JDq0e#Z^jZi%zQCBTtN!+g6;u$8aVy@9=toGTdM78oQ8a9`;qjSd5Ii@sKbHbY!|UmqJ~rjpwkQSomb< zB3$arPuyFTH=M!#Hd5~~_BKlr2j6Q1C8`xu!oKQLQpHVNQ#>s!k%4821V@Q^uMo_z zFYV?Nw0j=c{DJEUSs0d(SLlc+$0@rYi|s?Hc!L1FGy|u(i1_XA0imQ z?*1oI-K=la9ShQwI8aqnM~9*AUV_ytFsh8`E2S0X{YMu`(PeX3{k8i`y4ulR7n2CG zl?)q;^q*nsTrY-nlvib}W2~ZRy_YdlMm8)|6mo5-mh||6QkKLIGJ>(DeI+A%F4RjG zD&z;b>LRl4;dZtr?&jP6N^pR;^EjQD2Cc8=9q|1zyjXvRm;MYt1gUri<7jLLm6rpw z#$~apS0j|g$PT-b+&rElK?tM5QAX?`RYBO8Wm#3Hx`tZrvXp>7s896>y~9Y5S4FBJ zux*#H4zZ{I08DOCQQ1I0QNdi5^nJ3fGgVZc5Hg_4sP$XP;|2Z9{Vn_m+ZdNGW!2}v zn~6CD2;|#~*;+^AD-tZ{@lxz1GB@GkZpEGQSTGw1V;mm=3nQ^0sHK(G6;=_mupaIn zh6<@o1XG;}4ox~0>j{^qyPZev7C#uxbEYZMw{49D>=L1<`ixNc0v&Q5iE^JxC4}W?aR>g%WBH4TIw-js^%>_^TgVpg%PC!po+iH_j7|O* zL&Q-|B63+F*;2BiD6*e%4Ma4lxAStZPp`%b#$&hog;mw;09dl`sY+%DntZu&f-W`K zwpd@2dLy#N7fR_La{OsfQhX%eQ{!a`Eft6(n{=YdP9Nk1wW*^0sse~mhqp%PvDGVz92AK zmnrx({^Ai(M&d?Z=(vvFl%fbjNNO>hm?&e ztdtIfBB+7cbB=eOB4y6R3Criy0ZsMKzh!Ic=arDBGLh0DeHsJnk$*^0f+kI@HDBs4 z=>)&p%CP+(1#QXz;)S_IsIPSjv+HMPk~=rUjJ@=M196`L_ARl+p&V<6NL#X3Y4(*l#` z3Yw@LK}=%MejjjwjB*wXd072*_?2K$ES0>K_0wUiXpEXe$_Q zL#u1x9#&QTU7rt6n2TU0sv6+<2$;dQv3L)!pK)!rb^ie8Wh=JZ^F%gq`<1pW!>`Oj z7rl#j)yH1g{{Xqw%M<;IvHOY!p;1R%$wW_~v&{WXN-c@G_&ll9Vnt1Omc9HJ+a)#| zSrqt~YOX)JgG9Y!$QC!JPjZ&E@I>*5rp!WH+^0;m8T+~VQ^x}8WNG0Kz#t!Ke-iQS zo~Xoizh1@g!y3a_pe-Y%?A|8HM>!R9!RB9W=`YkprsNc-kYzC#75MBjt~qklK14C4 z0bxfeN*jU4a{NV51zT~b#UktP)YKgLcfWtyU9ft0%zOlEZQnSU`~Fy-#>cunO2Das z3T>m@Rd@aJEy3%NkPXfH_EcXsK{{XRRPWGd0PR0veS-<6r0C@O=!_U^tgW6nADA9t8Mz46sdMs;dyA+jlroalQ z8TU1>r6}+>AzHQ->tgU#b%Cu$>)Zu-V;%@?2iIikmHd>?TVWmLCtYspnADTmZyAXkVdl)$p`Hmeu{ zs_Op$2!}ZwT4S-4+#-7#d5KUmo~0|1!ZJM>$Qptx5~?SgkA5L)9P=vfO9?FwLZ{Ic z#Q1@?eSy%5!U4AtRtLVLBriUgfz#%@H$$IfC}CsS@bQQYc@+Lgoo@p3^47v=g$-Zq zZ|s+8+7^29Hbd-=`(r};9zoh{aIwLyT`;Jlmco$dpZ6lSm2rQzB`%7vBiU}u8`8eS zOCyTZM(f`^FS5mJ^t=2_TE#RLc9=7;SoLeXViN5 zh&3ror`E;UOJIDUYha>TU*w^pJ#6E!Sk-~KEY@9L>K2N~2S$5k9QO{Xn%;d&at*Jk z{{R^1lIj%lB2_Kk90o1`*3S$SD(_F|i)gXnACf*<3oHKsNZ{yW7FYrr1A~ueN@cyr zZlE6ornvQ}S@>yC`QZ|>9tZCsa6^ZGz`_>`Y)0E-MJaRF9TvV*)+lS$9b#8ev*c7| zxpC;~ppu<(T3x&+$lIx4*VMB~cb=*g-p`Gg8_;al6CKq;Wg@#aRJVQnS)mDfk% zms}y|+;wwTm`IMK=Y|$rKtkP z@fXapykyExxS$hSweuvCqj)j*DzTXu*!&=Go3^7CF!~hSRl`&Zt zSx;evsYReb0sBuC6Nq~kW!y&F)EHTRcuG#tjz_SO<;4t}~CSpjk`Bw;VLw^M^eT#4U#T4Ov%W9y@g`&nNexf5RV->t0 zs*txWmijGJrwM9cC+RUS)U^}B6qT2}C|^8b_bAmHS@g|VTrx*oSqxs6rFr>@ff#g{ zrA8uQWcUzp$lY`Bbh026egF|FD4U|^veMximlhR`7@^O>c5h{|OU#tqg0knyDHZ4O zboCCGs;%5PHP-It+aU-$0a^k;axa_f7#uq~hauC}`Z?W++`%mo3 zjqpo8O~rA)HsmmRd_>(#4*9RZ)%O&XGCDZeg$r+TIJOXdGJt(FELdDK&L^styN@yd z0GI&~42-n5zCX6}fWV z%S7Cuf$k;S>~poop=8DlS!x?O+yiL#gzNh>GcA?>hF`ephVJViG z5i}BBDVll9Fx5;8Heq>j2?@nnQ90vL)lu&+veTlPZdAb*>32*L%C3oJNSqgvl0N<* zvQ*DfE9P885K)F<2C}Oe5K7 z%Z@6`qWwa|SD8)hv&bGWHkn-|mf(%IFTzbm!t=N-IMo?o=B(0M{{TH?=KdKmtogJ8 z`15kGi11n8Tk>j&0^B(hsXRBqFEo6tPlyyDS5qO3l*)EC#7lueLGF$_ zhCP+oYH_%}V;Q*QTbbj>BbU^BKGMjxe*XXmizgD7aZSf!K^$fp{wj#OtiEO7N+$)v zYhEzFxWLyno9$3hNYn|n6b;IHkbwr^4L4(Q!{l}WDue=+8ltiZ zp$S<65Ijq0jH>A?U_~Bw0@=7!Ut1BEA;P&SB2x}AC`)3CQvAxY`8oV8^Da?)E|LMb zu~YaZVjLl4(hRwAA@ab0M4m1TNn4#n+l6HbyM;XjhAR`0_#Rojc^ggZKPJ{B*@k9t zuPG8KR^OPEt6OzQ1_st12|=L&tA67xeUP*^QP6fCjPk1fV-2tk0}3FZXsy*kjdq?h zBG?kNs6~fo;gw!cEz|N#Zvf<`&R19pu}6a;XuO!_l2cOJjyRmY;I-cv_rI-+=8K20 zyYo8|lZp72@mm$}`v}YDltSnbOjHa9}k6^ZabS}vfeS9M}C@J=hPtJ=9tK&}DsgjHpmOa4qTAT22KAdoM>k+%w5 zE_+4UctOB75fm?#XNhm(LCbRB148VFLC3S)$b_Vc?e#9|tAxZn4a+tC!{tktFq^OL zBa82ihsf&sx|NGwD3z!@xU!Bh=@BKjW9<)MvF!6>7VazrV)!90;`|D5um}YLQ}qbFZxZTJi?G06{eiI~ za+Zja{MX?u&;<`R1a`|B!-ykQ$GV7J_HdlYq5U3#_34x$`AZMCxciCgdGL9OV`ghd z$%T^zZx_Nuf|b$C$xp_xKfy9)RNPiq3La`&ofE)^TE-@83ZWfU+IW3NA!}TlrQ;o? z?=!(X@dz`rzeKH^DgtS1ESIsTt$5By6w`iKi8va9f4A;j@3d6f6?ijMcUu6&tb_ss zkOF=3U*i@7NlRv|@} z8gewQ0#jbdEXX-)s!PAF`AD}508l*C?RSp*F!}}1(rX#v1aC9PaRNe&Z_Nw0shvTVCHKvvj7a zpg|*O=GCuEucP(OkXSGt!YW&5oD|~9F>LRM`xm@~g2s)wvi2mqMuVQ9dr5QRMdK5l zJ1PlG$~?eWiZsXigJA$B*2Fdml^f(LiDKYvrWUd{xX*0rKVzfu6|vnz7aC;hQoj(f zVh99KyMahp_AVO`kIuoFcQ0fsRP7+#<}esN6P6C@{{RFQ`Jw1BK9E>Hr%R*H%(!jq z?bHP6wu*cRymUN-c`1aZ><^G*L3%iR06a$>PzqCY6J@gj-+P@)GR0A5Tl> z0$a3O3m{sQ{IMFJZ?@53_+u042 z>`i4Sh7}upL?X4hH26J59=~v?bvqDNLx~dmP_ZRsU%L5%+dow(J3Fn#TCd!&7v%_e zwDc!+#_htwBvw&w0>5x;@f2xgA9128{^k)ZAT7ihYGYC~S!RE5OQD0dPSH~sa)n}6^ zqfp8{t{}pw0^U?!W87io)9N7O)GB3WcgzZhxtl+4anQCDTX6_1df#lll9hPRH5-jZ zWmj6`7*>GvVH%z)r8^s(H_H+r?hHI78AwoFuK^lbhwUUML;zuMnVBO&2+SqZUe4UA zWIe{fy7(a7_?Ma%#OpLDXS}{gFK)Bb47n%0gtrI8wR~jRsZhKKaAEMFWO=-&wNx~L zw@xihd#+Tm5WtT}G*eMKQ|+nAL$*nKyZ48u>lYG5^*|X&HT}qqKez>v_UF_qcmAON z0KQx=(KQ3B=%qC}RG579GSyY(Pt4o(_M9`!u4 z#HvUJZLbzUXu2^Jd-#i7F-0}VHo!IkT_Rus;Oey75fG*zdnk4H3W{!s&p|x#C1T^% zC2Ad23V%Gjacab}pJ`&kqP8-wU1H#>9$SIvQc~97)gL22P_T%n#y+ahCW!gzK!HS; z_lqsDhj}q5}52yt-sKCe|1g!fvixXh{o%&&?z zMlS$~3f^1UT{#1b=ftuC3Tsz2FYdUA)oO{NDw%YS@sLJSL$je~?VA6F-OeRC= z({hPr{{Z5llq`T0YLH?>i~=r^Rb7xH6rRZ7qhDD>q%Ia}Cdt06Lhc+JBfK@Q6%q|T z;Qi8H*op^+3Ubve%PSvF1ZKwBYy2&?T4tujOa3N#E=x=-Tp*oxT2^hyf_M1X5q=Mu zrl^-fPpgcI2>$@Uia!XY_El49DsfF7Ux{*eg7iGGX(b$*_7`@AnN0~OZL6k6iA`u6 zeIU!-?Sa5qE}<*;tD)AE0#l_S=zuKj0$7f5W)%mT(z`zIGaZE+Ow*V1JAg!riO$MH zHU)KKW!4rKRKDusuCkv1kDJ1ees>Q7Np})&UF5$IlfeY=jhe%?6T3tGtbje5nPZeX z?KFQ38)fMDxl1NW1sQ}5{6d1W&NqWtpDGb9qq2kIc!9y6bt^&Ek7E($7A-J%CQ0N^ zA`4+Y&IUj~3c^St>^BjAjWCphs0CaQ@fu!Cj0W;}WJ7cCbMO@{NtMW#0^;gbf=4U{ z`~C#qL;SRRHED5FLc$gU@~6vwVN@!Ye?&ZrmTex?Y|C4uF9#GQ?&_uf0pcb-eri>R z#u0@<3j^@mm#+&ntngdrTGiAILCt=lv-SiUAhO|ym|8-W6e=t_H0XM-sM?epM>lmI zt%B%h1pfe7j}c1$00Hh?!+^nAWN>`I!xDg^sDyL^;J1E037$;ccni`OL(BN8NQU}Urv{uGo=N{4jhAcEA}zkqMV255!f z;dWhS(=;p(KObI5`5Aq`Z#DPuM+AAT1L2m(?TIK6VJaRGHopP+*=@ixh7CNdt?!dB zNO=2?Ous^2O=BhtLs`CwWXc?i+JS*RA?B2aB9M71f{g}tOFEO7Xa z@CkgqyTDE^8V!Fa+0B|zTi2+cYHd+<$Vdbm9=|M!1wgTC>yZVhlu3ldiljk5OPKpwim^Rd3 zvYcmmX`3n)rAu{nRY$V2Mr2(d)Tt1x*U10|g-`BYCq824!k%CfkRK2cHQSAu(;UWE zzaN)k~xuS=0&x|VQE>(a;Z`$ zej+BIg_iMVi{%9u>=8^;dInJO@d$1>I2Y3ed#SD7(p9W>HlWh{IVfPoKwkF5G@_S# zI}qzn5-3{KnA+=$%+M-NB=4gGqtB=qc~wbM1g?hDZa7BiJy_Xjv-o0E&)kpbse?&IgN#nhfkr{@V7h~Iqjdx&G#k>gE z)74@%YWj;eHa8tKURD(5z5!p=!PGvW{SZ*BbCDw6D;e?$V}2pg8WEO9wK$>{oI-x= zva|0AP3PvqI{Z(R3GYJZrY4_)UZpel2AO<3M&>|8yD4~FG&CQr1nm?*xj_KQYspfO z3^F0I{6MxLoADRTfEGT)E6i$I_zUv|{NlP+9Lkz0?J~HO@no7TGN45{U zfV2>mz}lt*b;m*%3+vsr23D_Fa#nEBy8RW_SUFI3O-U=OUAy>_IAz+4ugAIfjCkhDOR|UI;fUO%^cVIeqR;jc)efw9_P}b~$V(o9 zN}=gQ-Rk%-jcTt6!E*H45W_!c=|z1lvz#m<>>P{jk#zO0taw5^Te=YH{KQh#`wD1N zdBuizmSm zbY&8~A@G~{2B53VvEm2f($imsi|`WH7??qe4vM?UdZPS0(gM0u?pI;&==@k4Tn)RF zPO;5jY{nC&Q?{?0jYi=OrJp{2V>IkouKAQbjgV$l`HoAc^&fOf97U8I+Lv=eh!D2d z%nKd?y5~s1{gC0^^BBNZx+zE2;!2&K-=ciOqLek^;0fC!{9aakA)>3{ekJB9*v3RD z>hEKA^A@}UTiC?&x6((9>Amx}@3PRw!$YV3BZ|xez&QqdJCIn_E;(6KBWYJ^r;uwl zU5)#cMFCHkH55U0@e$Av8ve*!Xs{TiK+VNP$94-!<`L>DVd4#fcg%Pk+#d6d>D!C_+?ySVrur)l!w$c74K_ zag#^No+g;3^|lOhg{?SNR2l-gqYI_l7M<1pr3mp}8$CgBV&%t12G9~1iMhuZ%mB3R ztA)TBXPFFYb?pRp)f{J`_WAgM$P+qV%O_pU3BTqus_Ra~6z~PX-ET|oXjBv>cdEwx zm{A#id9m8Q-@q4NIT@$m_>U+H$6!fLVxw$`N`eJr1~|2%B(X;tm4c0`i9o)iL83;j z?2YF5Rlt-Lw9H~EAE>jiLOw_%g8j?YI-)CGeUPQ7mA&J*{z;^b3aghzM0&ilj>pm~ z;$u=)`TPicMDr|+WtqY;31Vz|Qe7Vp*z|wq@Cr?fGUcqSHvlFj<%Tg3T@j66$z^_G0>J!c;|P8o6_t zt5p1qH9k;w<*CN|gAR#k8b5>@@fKxt{3S$Fy!+OqKSZL`*XE6!qlAiJB7nfJM695` zZX~at`e4RPUyokD4l^Br-AQ`dnl5DtR)tshdCK)%2{tEdG`s}r|iWYjy2+6 zX1vV60#r;*TQS{|t5O3C@sLTQUr+|Xwm0}UZA&G24QCvHubvX3^$xJs!&l=5%r4Zt z0|sUZV5Ty?k7BD;`(i4Qv2Q_$7Qqv-c=vll61@%cuh%PlhR2yLkZs zI!8(8Dt0m?pCtOS_Tt2!0e<5hgf-p?TcTIY!&DvX&B}XCRWHHy0Elc9!DjJPSzfLA zhQ$b2m?8ixP~a{y8VWvQN*cMtGxzL$2&9BmSDErZx@0~4Vt^_b(GBiwyebi{IWM6O zavd2gUF-=~;X4&I`<1vcpvc>*fn|h4(fDi6!51qEG9XL)o|X|(yGz&*(G{r4bp;4U z3-G%;0?>_#9-U^eHL0P3;zL4Pg9o1m4Pe_*%Ptrs?3P;A0bmPi$TBpCDPE~C2)9A? zM~Wgsw=uuGwl)s5rfbi7>=e{ar4_IN;w|g-wS25CMOvVqviRpjFKj{5eOf(=)q!4J@gZL(B>h7h8X5zjv06PsOtiBs_k5VN-pHp+Qh z0z@(|5i)3_&f|mBgH97kNJ}DgN?Zb=P_m$kxqmiT@f7wx=9*l;(G+b^FcH)y!HT1> zn0!mkB@jcB*BB{t%mn1BU&M&Y^oEQs@8K>q=?mxHQzOf|{+JNGi$c_t_6vo4l!rcV zykWo_`H!UBb~aSIhjON%W6%b&r}-^crtRHJ^G>A%Dcys|IE71f{SY0{lgz22niG{q zthl=L9hJ9-l5-+MN-Xml*OuoK7~gDT*M9~v=$G@be@LUN8PvZrs!D*x6|}nm#;f%% z*fx2LK{+zgUtrrW&6M!S+o+9O$lh2FD0B>sA8@MpW~^oVbHgo~^HcSQCBO+pfR~?& zHwAGFu@W7X9^5Mya4^~AN-GB*;DG$Ku{?{-A+v$tLsMb%I*C%geIYFXuXLD!ICJ^r zRoCGDl{EWdvD~~R=3GuG=9EKe)j+C!5tpi}vAMsq2*sg!;ErXPb3nX54K!h6vaq5h zZf6({-v}XQxFM7Zepl@XKPiR~aS0 z5}n@E2x`1#)Oytnf}2nG*RGj>6!%M<%iyloHl722Cjs zCNpeW7$;YV`6c?Pz`Ll}ESq~1Weebyu*MUGkClJQo!;3s{Wp)b+imFnxe5;50F7>g zTP?0>7)xp`hir^z<&<4mMvsm`H6W;ePY`UX$W+p^VwzEvs(VqHbwd&g{{X1^i0FJy znQWFPxhpA{>=dHP+mib|GOjnI{(v9T5gFJj{{Z#CJ}0Zlph7ixhOSPKv%cqvY5~S9 zb0clQ9gev*6iPRl6w4HmJ%yDIsDzqaP-969sM0bNayFfoCNAPfP%wq%=|7SYBkQCq zxGr#lv3V7ctAWaHYalh?^RQGj(zHv`KksyjlCzZrb0(B613M{1iPz=FJZC%V*5dBu!Q!a%l$>FUyF(-8@SX1HgygFus~10dYRj>YijAgbwO~? z%okVQT=I}Rz9J|fEEX96GFCSrEHRkz4)Q684B1zKEvV*xHf7hCH!8m`e@y!6QI|R z{{RW+LW@QG9sR=q=88T@&q#zu&{XXEcpfvjFT^$h`z11Mq8C+xUzmYJ5N%Ym%*b5^ z`IscH0cg^#@oV*R;}v$J=J1OJl8CQc)^FT_ZS=eHC16>AUmh+4-7GhruA#^^KP&DS zTT8Wa#wm#Rl#KQfs#3$QLdO!cOR56pQT#5YgxPRP?_mHj=`4byMYtG#Sg_JN93u#^ z9sC%X^9>~|ZXBr76?KF{qTgbWCGg||S{|xG3w3R{nXqgrCG`UMsZLrx{1IEkUsO2O z&jC4g6vYdb8weEfE0!5wh>cVk;|WBhE~|)*UCZ>3rknyB2ZVb45y0>R*XWN;?Vx`{ zD^y-}eZt1q8$0@gx;=kr-KsjU1qdT(>_p)2H_*u4)yqBFm7L1j453-^?fH2b5RBNb zyHPbWRSg`cljMggvu)SY#0(X}Q0%pYLK#jphVECHM`7}3hw!%?jxj`n0zH=lU|zz-9f>T49kwHNWJ^yyj`VIB za6eL|_cAOHRCRD&)MOw4mZ@p07z)4~7^}0WX8!=pZkEvw%`XY_BgGOHHO74pEIzb3 zP?d7dX3=LY>paWA2;X#e*eh=bwFATA7B8@B8^rA>2Bs+uo31U;>*CTATUgatK{Adv z0QYf}RMP(d0l#7-mT{-M)D*o}Whbsvgxn!R_?Uqek)zXK_-ATb9~d4mUM7>lJ{jIN zdSn2dYl+3eHta>@2UzVaY(X1|c?Y%pLT!$@ko$5~vc=S;gHv-|M#Okg!7xyrdHB&zMO7gZ}c$cn%0zJRU4 z8UFwy3ytWSqs#C^cg3gbkoH-ntUK`&ihHeQR!SUQnq8~x!R%Ts2op$$VXkxAx{I&E z3Bn?lEYpL*@dwrmP59$}qnihs#NnEj0oEh2aOnx=qq1eBua;W5cWan*EEd@MacW)m zNm?gVYxdd4KNvC5e}Rm_Xloy5{dz!E!9|Gsi8#RC%9PI$DxxffUD#9RT&eNcfXj{J z#C;Jtlgb1I+X0PKq->sq@MeYupMy~&E9P#?@jT7*5tigZxY8|TZq3dhO0veuSpq*^M;x(D=`N2p7Jw0k8gT93qN zL>*##^|R6*9x~HOLa3-7SBIe%=urw=06N^D)&&vodVxRw$;)Y(Tc9lU?iVL?fV=uj zf40g#hVh-z9@(&=TTNiIT+|5*GN2Oua(Wmc_vQ49MzK)kYB-s3DqI-UAFmT8!J+ zy{N)d_-edDd$FShRyrK}&MSymsX`=Jzd&(mMkcgL6Tzva(Z~tsJMD7C9%L#Vra7 zGS1I>1Lg~1MO6;0Xvt$?Ypf_9&PjCJZBbd0<9`6PR4Mp7?pikyZWXV`;3}Y3;30cN zPpznyU5NZ4E;SK3b;)m0U`Np^9zz%IQCxtRQ7_WM&JwCDNwTGxP%Psr`jzm2+Obt9 z9Wkt=L0`RF<~EA;>W|R4Rf<=ETP!5@0BgPqzhrl;wCrIZXpM|YB{(6clTq1iLe`zP zLp79o+VMw0E&$r`vJkq&3z7c-X@+L?rY@y&@5oW&_(E6>WouLn1in)XKs047N50NY ztH3v?NQAE0Z4+&RzD2c`jB#;J{{R4}7a;5=S7jVxNmht1SQ6FbEwLkJQF4gXJj8V_ zAVn>TF4{E|)HA$%pY}hTLwMPLwpb$p5PxhC-c4ryR8#?aFg=KCE!JuwQ6c{T58>pO z!)Oy1%1ajtPfpyl3ZyE2n3HMC(lbI&ZM5IP0tSrPL(2&W0&oYNtB4$U7ao_VZZAZu zJH|#;Dy8fL$CWVjK^ag7^M6n><)>FJ79qr!rBm%A-J?jI2nH=6V*6AAduP;tf{f9x zwS_;eiiLk(ewpVGPOn)^$*!MJ5~e)LUpW!uOiRIEGptv)axr{rj)@hC&%Czw8|zieq!ffLWOpDR9~4@S#yxk`Gvhe z38KF2I`xmpVPZ()i+-O(Jy+C}7D++w0C3;Y0uKp*83J87l%FTKh+Zsh53kgs4Xj%I zs4}+GaV`dAX)ZiaDdC-?k-;);c^?5gsxT}>QCgaYzk`{izc!Q%`;xe8q*RvCVmJc(+;!aW)0J7f>D{Kws>Z{7MIuBVzqzssi`SC~>YX3u(kE`*H1JJ9~714YpFf9&0BVBLSf&K7;harXmO(^<=dbkG1+ z-*U3iv4C~qM^+j&JGR^hlm@&?gs79PVpD2DkFJplBS8T&uBt;X%^(v8{wWp_R{}GR zuLA*W?jx1Y!BWKh_ND&jOMY2~!w+K#f~F6K4MP-V+4`CIBf&1n**3_7E&2JB{KXh` zi3~p|6n-0^xn_%&jz>Jgn2Jo?7m$2LFKsrR68ydXiC_F#I8D97YMp-y(H(L7td(Z5 zg!^X{uN8dxWpq+0ssi=Z0PJi)s*1B>KhC23WED+qLYzXZE(zk`z1(;M$S;e6n;xa7 zpG2%>P_lVz$WC?1EErNF>#~tW4T=kKlNsTKDD;;&0pzyR@fre?8p8>ZmLK@~h;d7e zRBj9C%9k2cOJRBU$XmApgXS;*bhTGJ%Li2b(yf$(QgjAW=jvNzSOOgJrI0OTnJ>Q2 zR~c35x&kKu004RgTo1$5RQD4bo?@XtK*sfF)Z!^qLZMA&e5wZMJ~i2f(Yq^dSFxj1 zzzexR7LV^3UT3fe2Mpl_7Zt)vMipOB^o4@M49k}sg|SldWR|NRy^0k#WgL$gIV$57vR3b3Kq2!&8xr{0}5L*i(PDZ!AlWp3b10~Q_d?^b)Q{| zn0LEr)-a1j(KMb!i$13Epq=)-E+Evf6kjNnHt!Lb64PFQX{yT~F~Gjk=Pz1Y@c=fx zQyB=s?Cv{{glcO>R6A?^An2%7N}^CzT+t5R zB6S;9LAC`(BEU~H?67gc&4O-8(73S**fiwH#qzn4t`$KS)L;?`Di>xWY%s*Egf?V- z)V$ZkWLK#|$}6&wg3%mc3=E%# z1N9gv?^87jyAF|v8MkT0auy}f^2k2WU5vxGTCU>XsObHp5<8Kpu3GGL7-joywOh51 z0eDyk#H_bqRv!@Rs4Z7;3!8UM{XgLZD_v5+ai~_&Z!D(2VJwomRn>#_7-Rnc2_eTn zhT>G%r(Crb~Aq-%`D_=xJy}bl@hL4a#c<8 zA4p`R7RpP4Un5NFRb524X6_1#r{M<`vClX41J$vN##|%4e7VyWidtNAo35k z6#(05V40L#+Da~1d@iyo{7st07# z@p3ApcQLCyTprM%0_YCZARFgSy4X+5LY~G>BF$SFD%)LeJg=j$4|lzyv`;o>!ZfM3 zR6f1Ot}q9HzCJbxEUZnvbw9Q`M%%C>9HeR%dHfdQKq@e(q2yi0y)zLvDB~#cDRhw8 zn!C7QzDQkmbF!Wz$cmKx#p>n4B`t#cTXKz56}Zy-oI@_;#3=qC{kHm<55zc&jIzQ} zdyw&_l@jkj+I(31h5Z4Gf#8M>Y5*SAQfwAD=&&JL7`64#CjtE z8t;dzgRHxvACZG@KFuHvV+&|L80NHkLCufbox_0zhQ#`NEkRl;r8W5@f`OrUxgN*^ zZ<>x3RghKk;?zd6vrP*C3-0v(;=n5^R7>(fGisONes#&Uvpfb)5`zB#6Xhy>EyNI= zL?uR$K`gz2uEoO0H<2#jn4VJOLoDQL5o;|N8`(;-QhAnT{upu?CoZ-QU6;bd&g2|o z0{o?*s=52t05;ze)WRdpAw2YNYF(9Nl&;Q0<6S<>lxnNmV!+-wUl7~7f6($H^DTl* zf$$X2_=W&mT18NMv7Th5FE7Mu6bSzSN4d`cfYmATOx2FGeBYzwkClZK->WhTfhT}D zOjst6V+a9!D43>{+s5(w>JGR1r4(wv zcBZ#4!#qDfP}0;Zs+8(SF_JO-BcQmbc}zahGX&NGHW-&@(*dws9~41yN)sr4<7d7^tjjt`+eq)kAzXqU$d#6e~%IPGm6;^VrX_P}Q zMiE(L1^`+BpnwdjR;==TLE4?6*xleSyts_DEP+xjcx}F5YkwC3Z2OkjF&>4Vn7gQr z#!|k7H(VN3qN$e!1sJ#bAZ!=+sdWPUVrd1)Ggn_@vf9~sUThOV;(HI6clQ(d@TUE- zNjV<^RF&F5Eb|)!3N9dOdXpb=@8M-!z{JxIGrE8=6)PFt?84;;;ur&R@xtT72zCT2 zqner8n8e&8vHm7!V->KXD^mEo7>OLIw}<-|9tN%*R9hdw20E$_YQtRli`LGPTs{{I zO4?F&r>JsNjew}mY!g|h#rcTKVKYGFoVV0#V^eLdyR|R z7kYUevu-cU1QfvvZN%d#65?XP*|~}hYB%a1h>)3&q~awA?3yLun1hiLt_b8gD0viw z4z6obrM_6I?f~T@a{C!lrGZ4q$HEW<=FeB=1aRZFIKjj)G<4s=FTi2;7Kh-fkKT6* z!=%#V@m4kI;H1wCracKXd^T5L77KbeW8Lt55DEyMzomZ+1o0x=l<-}aYp%2GZlk0% zYV4|8b^Dmm9c4=$o!{FN8*VX=t`N!4uanGWGUW~X?v_I6QH|d9Id7a0Q0~a;~D}1im`QpkeeqM1U%BuTXy@+VIa-AR6lL z$BC7+7O?Ov;c&y=s%?v->L1Ew3~gSccXrLFtyM2v&RkowDp@I+h2B*0%aM645jz@K z!z1ni`~spXOqUG?N>xhaRZ!T_j008XZOKA$xtgDiHkcVONEfMb`k4qIYySYcK@nS5 zL;lHLP$`lk@Rj)`m!5SRn)7f7Up&$BdN7Pjl)-TK8Y0s?g@6k<7ah>@9X$_0@{)*7 zMwIQeHHhh+7(e7v7NDbDN%D{*q)pf1dZ??ajjv5SS0UX?ECu}O=VACs=DhO5pQ@|j zm5A(hHP2=-z><$6bdD~BYIMAU8|s5c`cA@Q6&CF~8LBk<@`?`Fr|Z}53a>k81}r?H z*R>um#~Zt2{!Q`2=$W^bRppCs19gxjN<7O2TjB*tO)hciy^gUpO%|1#@`w?ZTdF(4QYvq zv0Rv9Jr$1?8j)`E2&(!x%hyIrx1J!&Yd-Km)B5omHi)|+{GE>jY~yyj3$DirMu-*J z=FW;8(CvlCJc28!H-YegfY1R>`z26=Y@s6nFOhcmlv-Yuu?S2h`+zK~uMzf$@}>T> zP0(q8{;DfNx~yaiNDqm2(`?(MFGxl$uyAdn;P`E8wC&f1Gj0b}yK02y`1yIY&t6iwD8?Icoq1I%lRaeYIo;~@B(PiG$Dh{8x)tV2^OLTF} z@fA_p_j0fUb|{N#{{Rk~2xEzdClqeaA~h|@Mw6Vxd`-h_y+!KaX|pA;v@7tk4*bN~ z4lIERT-zajNP{X-!898_Ac(gSQkeb77Als{@?E&<-RTex&D;20wWbv!*BV)LFq;Cn( zQdu~P+x|ohGz)na0UxMZb8Fa?Q=)j$jhSiNV!w3;w|kcL(LM4O5o85?KFeJqa^H!t zLL%Mo++JHU;$>9g{TPf>#{IzwPsf>wWiAuV!4$L7t5wVnsg{oCh){;#UKn(?^~ugx zrGaiscCi|d5ma2D>k=yCN6cecrPeVYG6FFKKLK-w1G26Gl7w7t>*iV!VBqL$Aqc$HjSkKo;8!8>pN$Z zDqRsrpOyu2SK>Sx8o6UfhcYzxLs?iwhhhwL#t1?4+m;S%)~O}SA%@NdBB-8NtnxCu?MF+4aE`yYvD8UTvR}LLA5{jH6G&#L>%$V&;?O6d{zK$F zUhRIV3XyQF$D2bAP?~zIy7OWN*N8IPYX^JpCaVjS(MdaM#a`RkUg^NFzT_X}Esm$s zBN%xOSZ87Q3}cJ=Vof!fJLXgGKrW6uD#2`ew0JE;THlI}XrfHw!$(HZ^W=?oi!MC$ zlaKv-4{R#ZqCKaY>)5{=X94e2Ghiqzv58R!XoI#RLs*mCs9x0hkB*<|Jjk5WhY0Nx z?pB8v)K}`Zk?SjB%u&jGMmuiy_(5ba0uEb#XqHtF z9+HvvAnAOEn;RzRW(TmAS#(IjZz^0puYMuYy>N&C&w>@u9H_$<{{WwWHlt%N@N8-T z@d;>=wvI8e5D>UJTn5i6X!11vDymi^5PW3H!Y~-Ow<#P&)8QFR0>=4Q5)MsXWMNoi zQv{-4Q&kTsG;I$e3!<*~C6US+5*4vhg*UK%7y(}M_DSO7s@mK4or?qlHQlok_FHNC zWm3Nc{{V2iu;$I@D@5n%jxLF5^-G>!85;ipE*Lx%TW_cXhHw@9p<@PHs)2blSOV3L zTQ*To!GQHhAFn{|L7MT$9ez^svUCSzA2VGL?BgZ@}w(F!cR0XK2jA9b`eM1WF z@+MXXSUm-YBHX|rP%Yi(m=m1Nemw8?_>V{E~?auT;W-PQVvU`<8)o(Jdlm z6x+{?sM?V6C^p!?kiJZcaCRzOEu0G;TZjUkNK&^f@ev3ykmkC|#vZN)pvjjLmQC4Q)t6{W=~ z)+rRU_1c$872*4c0-I*<*Yh{0fc~eFprDCB>l+<^=^ru4aoCa{4ziEL+sc>}N-5io z!d**T&f5$4Wo)I^Y*sX8QxnUwh`J4dma6+OjbwBIbGUP%2z5iaukM2Awuo z(QTRc9vojOECc}zA&f+E$!dy9kk-El!l%3DB6W)597Zs3wxTK6Y-CNl7R?y|?TWOO zkc&h!$KtD!???#j)9Hep?7|3utcq$W)H*gTVHIdfu2B}kj z4!b!-WW9oXUHFfMc$l%CLys~x=pU#o%Gr=8yt(t#D()wXKH_FB4uN{I={EiBT*W4{ zgj6M}?<=Vtq!l!FHa=wzrrkg#j51mQ)LO{g(ojkpVE|<$oDgE+(~{}%fr-{t5Z!_; zk%=ru1;Z%}>5L37a1|;Dz-)!?pAzZHhyvbu3pI<(O7CBtm{3=^Sg#>%!Q#@TKog~G zwmYY#^ui*K0Mq=y58lBFg;!0V@q&x|+5VA0w_R)yy8i&D`zpCrn;%IUEaErxLc-+5 zT0379Y5YOB=eNvD0`>-0<|jJ#QQx7-L&D63OfC;X{vyzF;&pF3696Zv&RDNXe?-q) z5w}4QZrKIJHp@eC(dHEo7X;uJ?p!fhlsBvjgXJiDgzZ^zvRLRv1h}FuEK&6VPV63% z2Jrihi78UyA2Z@-_`x>F2bsx{smqF#YRs;79Zl@e z9(Caz8dR_~rMjpp=Ic)}uo^$MA*GEX)OdJ^S*EmQdR%DI9!3H4abOO4s3oc25NJUV zd3VDBYhQ>cu(Rd|&AyKk@|w>OZkT^^rh{3VHm4QTOwM_VTFXm1d`hwSN*Cn=A`@nx zI|*SaDvit3xoeKvb5&4TR>U#-#a37)P8ju0c$8M9LR4UGY;TyVLiB=q@*<8e+|>U7 zkg7){KV(wJCNx<%)}UGrBsbq>zrICzlF_Ut?`See2-SGxwF4BxrIq3&Jm;CtXQ@|Z z`=Vs|2-sb@Qh*=kIv2C7>z4s2glg{K&ja#H9=#Pj=k67B@o})4&WFs>t;iMZrSfqJ zb+JAn_as|-S-X$XEG!B572wC&U!TOI%Z3mdbPp943XC@jy{8-^UC7;2FNN}k*2pjo z772ZgPRpR(Y&yyi1=l6tNR5(&s{2b7U{x3;w*jk*31EgLafI4(K7C3fOfA8MSJd}h zfID7WKh`qV#-Rm8b{Y!#mQzRb8$rv6Vp^4uE{b9m2}lU^L@ngcacc;kEFIJ5+#uIW z`KYcumJVI{i$vrNzqDvdHW3-OECFeG8ttiGuaXoPKvX44`|%WVi=M${x)N>&<@Y+h zkgi;$s$M>dg_4Wtvaq6w zeZ5s5GvF`+)!3S&3oKNs6bD9JRD}c~y=K}rBT^3eZ1idmSCfD0SOR}k>4&U>cnHN& zP)Ez=9?gNJfmX2iqaG0!r?fKjguQn#7F^KA_cOT>c&kOv4NpRB3yBLQ+afIqLQAES z1sP)>QmEG>aQ^^ck#j+?jZD~=ims^tAf`h?YdN`pbGeucvr-<&>t*eYT$TR+*Yg#36B8~)peKW zHwuVkLLT8JmF5DdC9lCAxhZ#u$4x`>S@xjX@Iiyg0=5)T7V3Qv(Zlr1DOhJQ8zLEr zxJm{%vdFL{-QB{t_i&d>PzKo6uf;;y2~QzpvM**P>kAzOBHAipv)lssoi^O2!^|`= ztNfNZQvg})Lgi2vqbzUSJO{+CuYM)UP$|IKO4UB)my58x66+MB2*=Taub-Hd1F;KB zR>f4`ZeW=iR6{)?D=a*m82hFN0_$Zx675r%y8;Sk_@(Bqlhzm{0rR1QcTq%-(Dm!@jgL-GU1lT3)p|?_+M|Sy*1bx7H8;D=#MK0ZtyMOW} z*t<%(SCuwYtho5895Y(;EG--OiX?UDj{Md~W-tX@T_T;SL!a7sf!{DHa zr?@x796^6D6<7qqm`0+vOtE{<5wcZ4y)Ir=WV9C6S#}7II0ICI`)))V0<~mB-rQ(t zXB>*C1+T8I2qvT&T1!N_UsM7|e3-JnR5KBcF9mcQH}YK(X772zRf z(otaxNR@il!_COiLl%vK2q}#L?olPuBX7J2F211BH~Wal&)JRot4x*=`Yu=+erC_C zR0@x9*w?VB^3)Y)A`M%ldOb1QzYuo%Cq8O6K4LE5-tj7}nk%+k7W@o=Dps1zm*|$K ze8#Cp;t2(20Q-to@`*)DBE%xx9A9wM{Y)gh{mZ(PvjkT58jyv;X_v|UiD{n~7e7+F zlh}Y1`6B`P5H&FHM%2`~QjcGQQf=~OZmJ@kabTvtC;!9%ClLVv0s#a90s;a90RR91 z000315g`yUK~W%KFmZvAp|L>0(c%Bv00;pB0RcY{iqwT^%weJBUPsPDM?oORLLLFB z{w*3@d=H2}#<;|Wgdkiz4+_@&PnM;4R0u$78WQ|!EVaxpQ|CxRFd;AFH<(xlYf_-M z)nrg#@{o3veo3{zv5(m*NjV$&(o{Sz!r|aXfm8!^mpOIy{7m^gbp|RJD=q5F#V8Z2XlIQ{+@20@Z<4mfIh80_;b;YQO;rr?5f*3RdGB zwp+T}FyLL}<`1Mlci8|Vhvujs7+e7l_gB5`ZgqP;q4jXm zVHnYN66ID^c)A%eoXX%;3-(mB(UgiW9YvET@JP%0zbmaTTRyE5Ot=JPr{sg#w}aZf(LeJ>ix623kIB_CobC9`fu0_Zoo}gN{_Kuo9Hk z7!aU9vQXhY~8kg!FQqs^8d1XcS4MW86JT5H_=pqilOr{EF z{=+5`>!U2FZ(il0Xo*71JPBB3XR(UV2qC&+xxE(zXjQPRwFbKvF;@{OnYNTkX8*T-nZm=yTNWK z-7>mnPyiV_AnnS<#g3v<&cr3rCQypcMF&;U4+STfeN;w@Lj+lK65?)FC4A%%+yFPh zim~mG{KsqxFqxLnvlse_%Lj0=W-%;uC`GY-v1=C`17Ux*0X>ek@*P;;TGx^Asgr17 zOJ1Ck^%8EnxcjU1uj(Or{+Oj8V4KU; zC5k5vmslI+V+ql6@ljcrREmsQ-f!@TA6bbQ%L=m|nv~+M04r5ws6s+3l@kt+yx+Y0 zz`&Is3wH$gEW*wUlnf;Im@hJCvdhAiE(A%;N+8)WS`~4I@Th_<$KYW3)q;rK&JGS) zc}63k7sm8N!C2YFad3Q8%(yK$3z%3oK&9T8)(xX`1_BT?F9dYNy#=?x*7RaTe25$b zbgQ<q)jbF25+KdC^)$<24exDUQN6=Ibl;6 z$%$ZDunVM{vvwhLWw>e9^0vfH`h^!s??6HdLlQaFby!Q6tumgabn$RE6?D`@4*590 zr~)7yIis6`=qSTiRrL($g0pB=;oDH;&0AYn>E;we76vP17=j0{#7eB5Zc;QxZ);_X zGQfgMdZsL~j!2SZL6#a(;i)Molu95Td5kYbz%2&Cq8l8o2|^o-^ddC?t&NL^2Nm|2ky~%PB$O;ya?b%3)CCc)1S@6I%J@q_1{qUm zDR@+=Ql%20d69+9Vqs9BvuSFqZt1%-dj>64cDMknta2}Jsj)_aRfU(n3wRgmE-I~- zUx=*Dk+!2ZV>TCKYaoDzZo)(^_Mgd=*e$p1xMG;OexQjjtu6JaiZ4_7(zK~wM0~k} zdA{$-1Z#W1+?)%w^A#sMJliqck(s7C!R5)5Std~dz+BNU;F;ZnxIm5PZcgVK>zrm* z8yT}>Fcs2fFs|UYH8X(fR9~nJt|IQ>wo(iAV7m1W?9?R^v{sb{bW%~`4DGWiFpMQp z1`L9&rUL-0!5d`K1AbQofYn^SH_BC!6ver0D9eZ`*w{I08s-kEfLX{3DhzCyf{rr& zVoOKs@hzt^B;Fgp>o5!-q~Q@|!llk$rTm~n3}1mil8{7mZ1nXwLBoHxSAsShuG`E` zcFPCRDd|0&IBuX@AY3UfaC#Cx3RMY>=14||J#tIimm?nT(=4@KOgNWn8YPo-q1`>w z>oYp|G#Y)SJCzaysgC7JnVFRMuqO~u*~#gPv`~j@F37<>CP+$x@-k<35goWM7U5+z z&>8Mr-CIUB$lM$lRUw+?h)I&jo7|el#d8i!hx}lU)smmt4}iWM?NIQnP~XwGIO#|IM@Xd^ZF|IG0l2HL z<_N&6UeH;bKk|(U<-Kb>J?}A5ctHVpyuh6!lKS) z;$@@tHsSsxxE2G32-{*p1b$kjO8E(K8%V@d7P&W@%TKZ^;S=S4h>!O$rG}QK5vGxE z!loknj9wb#lu9Lhr-BlLJWpKou*Z~F5#70@fO8Rx;c?p0UYTo#4Ou9IV?^*gZScPk zg%Duk;kc<;Tum;ysj_$ zBI<=iumW|6z^%AzX;H!HmBfD%&YUp5M0z7jI8Y@3bdSz5y+%PXSc*lHWT!<+_clp< zrTJIJrDsd-wnAl9;u@ovdv&#q=!l_d2Eqf#&*I=Wvx=BB4-sao#pLw*nUIeY?UFsO zD!z@_tF=cBeMA?DPNkIq&?Qb|23$4I#3HZG364hN2ry^VO||qy4N1f_p}fqa2vQYc zM{gKuDTts@OKzqDTF-SI>7a(JCfF+s-Sm#PcMQNZ7l+hv_#PMJTp&)+McF z748ZuxTG=}L1@^F-0%HLr-uIkq^0&I4D^v8=*&V3i-8%w(!hym7M&1f0l0f14BYQ1 zKFD0SL*pR9f$xcMOSmdxyAyn-*%CQv7i>e(S=fuLfYT1DAQqP}6CH2F!Z+oY0Of(m zgtN39uW$7ZLoD!2+Y{9QVy-MgaSsPhVJ_bb(3LDlqnjrsQ?<-MlG^7v-Al7#lFG5-HUxgZ9fStpQ9izUEkBJ=(Ujh-_ggi)bIMe^c04Naw00II60s;a80|5a6 z0000101+WE5J6F4AaQ|_Frl%*(Lmwx|Jncu0RsU6KM)bCmkaY7BXhabBc2{@m-9J) zg1#7xr-PKaTrp>S*}*&H;Qs)_P&f}9*mc7uSjXxt-|!#A!RIvql`05pF={R%W+N7( zF~CaVj&TqCR|a1Uwq9kKjBchYi{;}#0KCtqG(`BH6O2mF0~LzF?puI(%-=cqxCusx zo`UC3`!xp*e@v?(e#Uj5qnSVu=_+TIAH$h(jonYr0m%tm4iABC8D6SaHy8H&vrGqm zV?`5|6_&=Bq>1D~#8He~F9}Y=KA6C5@?rXV`eTWaHaj^uIIb>YT)0PucH&+*r{bp< zm;ef`1Xm$jdh{l=wlc1$^>J1oKX75n*kKC5leONXMwh3B^!knjq}lK|cg{Gub;8Ew z!;7h|JDohLMnXTqJi{aV-l4cF11}kd7%@_*j}O$W#I#hJQl9Qu)3>20b!?HA(jhlDg}t)$?FMZrUYt zrdp-ET)B5E9G?q$7@&tVD;wKWGR&&4sNscpWiWW9F0kNg3I(;Oj?#t zE~isGagqvdxq?Sxev&h#v&kuxNTmg^a?oqLESeY)@D~*2=%`H$TM$<)54q=Arr}4q zdq`lFJ3cv!#c@?Kycx_%wov!8?s`;-+F4OWJWQ#MyF4&cIoQ;_u`gshCawEM>rg;k zBq+W5g;~oJD!unC^DtoD9v~j3Sa$&d1k&Q86XToYyXLM8F{oQOlzfl?mfSugZ8t6a zvc^=%${>sj06xK#@_Art+rl+(tBO}2QqCAKnUoTvZ+uT`LCn5a;L2xGz68E)ONj=@ ze`LN^cGdVnz>i?!QW$Zq%1nlHDTc0Vss`byn(zJ-`aZE>PODO(!3Y&0P11M3{4vO+ z+^#C8Tr*QFghP;S@E?gxAhaBib$#t}f`{ygk(Y(Xzk^8r=^G!yePh^z*q zR-&C>#Nn02li4!iy~_>`qfY14PblV4?4E}Lx*bDNqb-8@;s=NmF&-k80*Qo2q6qWy zz70jQ{Xsejm7GcyD&G-=8_6$wg{MSF;hf8va?}L-B`ZvI#8xNFwJ@rW1n-N35mB>O zJNVxeB4XC1S_;R(A~~ZdZh2}P<-Sj2vud^yy25?*AZ+vzU|)qQ^m%oaAMf62N%gvt9L>l zUUY*2GtdP}tR2gUq(Zd$VOBZ?O;=6#D*|>(;CXMT*p#M#w@()anbiKzQ6Q=86!jjM z2V(}~5XWx{j{=6nB&M>ho#yQQ!Y;*3@))wOHcOsAaK)GIQmyVX>BeHQ#qo0G%a+TR z4m0C}h83i?9Nu$9F8s=f9`C1#jPDQ%M(SLEHEhC+=Cd~}QwEo*N!8|M2D`1ff_DZ< z<+*^?&=f2zS)~DOT|N4O(88ByB5J3Av&0B8)TCbp64g-S^AZ7hpG?~b8YlEPxU9q< zkXOULD-qX477>WpEQ%Hx0am&q?Y=7OiMrwMXznoqgi8T)3Ix=sV%?C96jqC46+HN5 z(U*!PklWiH$ZhEk>_xo7*PgCC3e8)qh>5-T7lURPRYg?{xnpHZOWPmoILu~X+_b(@ z977!ZI+V#`2v%lUYA~5$&)(t-T7<|#xCvgJD>WS!Z*e`9_=pA2t4-q_GQ>q8OJab; zuoWYwIwl%d@}tum3eG{|2Rq&G1u-h?q4Yqk7CVbn6g4Z9exur+ZxY){;_e4_xkOju zQcvJGa57~G7r~#DTj_`{7*~^a{Y4GADx*3htdNOR8)!X6_iX{U?UskSd#k0lxT4ia zX4hE1xN0B|v6zyI!7p8ARhTJ;?dd$jEs!Ht>K$r04Xi-u5UmANTLGb8)WlW*#bA@v z7GR7l=z_Z7TN^r;>NM$=_?Iy(f_zo2B=O{X5OEPxss_g5iJ?U7!H+L%ph~L!!lDY= zr5OYkH-&U#MNJWL*SsZ0_Fh70b3_zoMn>;Bmjpv>;a8)}GX_OSr1uNE*&Fq_P$`la z>LtnCqRJ}Sk(4b%=0uJ)0=uFt)ugGzHVG;z4WydY${^WPuuce^GOa65k47Vs>`S^% zm_6j>*V4w1p@ZPeIHNRTorwuqIj2>E6>zo+4;f%HLA6u$8W(Pj-mW^pPOW<~!PvOD zo0bW3&B745P++#U8RYcT)Y@l%yfMSb)7G7re4l|u@T?a$R)9; zh7AV7TbsF0W9ybI0at9ZRxRiwBn)CA+JGVT@CFw(F$OZo!Ii~KbKegPcvKL2V1BEz zYA4Xa8gnC4?goFZ5YQ|y%PQvX03m+ z_D^K-)O^GlwjQB&#pb09p(`-pB2bo+y)gh%9n%n1Hyan+BFs3pJa;NxN6C zUc%pkq9JinqB0*^68grZD+mu2c4-2q`y6(aJ#(-OC*nxMM5a(Ud$0CO z<0h@5A4H<;fq|Q=o#*6@ONF7r@j)>zU(c>?W)H!N*uf2M*O;mR005SQUDcSyF@20Qs51Bc;q<^uSZ z9S$dWQd?k=SZ-VG#$k?^<}|o1Vvru6eXG$n&EeJ|(@q4q@d=B_^A}BDyTmO*9cq{t zb&u0C3wY`@k3OHmSH*;`9Rl|+eOa&VWzd@suCWTO8ZPQwo&d9PR%2T67^D5frj~_{ z%GL-V@vT$46ri-IGNoL!+EjBVX9Zk-VcU3 zt_18nUd-jSz?co>SVX-BOg`aEfV$G+$rfM(VstouXo^nhlHIIK`Y1GA9$=9SzCDWW zTdYb~{ke-N!59L-@XMkb9VoyYz5AATFXs~N6UtQzJ#0@G{`jd}Q7Ta{;_=kJ76a6G z@l3W{_~~Gyl~7~5SJe&R0ZEjN-Q441FCqM1r1mFO<6f?7&cYq*FS8<^hr1{jSb^dim* zoEe3`K^m19{{R(6B&I*a7@b0;kKwIDYX#wd@?Zhq{{Rejt(r3zVdbe?S0>F}L~;Xw zV$SZ}YBENP#1dvP8tPndh=y6IdOyrVQ+k#(Z7l9Fcp=UuLviN5ScepFi~>fY?0txc zv^SJK%e>JYtG3940geK3{RYlF5DUuXxK)JHFg7aN$L0W`qXpCXlxr&Is)-H} z^^Y;STCHW0z{~@tR@k7R>JYP0$q7)G!SFbAaG8}67v1TOVVfxH@IZxA3aSt#8nxSU zs8ZG*FQN`8Gy@!Enjp{|bV9n52U8mD>&&pd(l;?}8~*^2e{3uF1g)`D)Jv#ms3C}_ zir|joW+wzCT}KbWZW*k@h=czC;KCXd-?);8_R6hbY#lIFAW${ys0Wn+ktHi7+Seaj zEXshrF_B#j_=S-%(Ek8)F5z%-aom3Q!jk&~;ol6hY>y5l%&#p+Q56gvN?{(NgR%!$ z4*NdIlDhRDPOlx8Nm2q?Qeml3JRDmp6EG>2E@o5$U39+?n_$HwES*cJ#le@z+!D1Y zj3%aya7{u4uTT;Tf)LLDBU3(VH3rf)a5pWuJTDBnWlLj-vg3Ehj^!}9N5ZvyDd4GO zxlFQEs9nFuaqdVjQQJpc}tdsX+o zSNHXv>H5uDt9SQa-Mwc`@1DP_e|G@r@-jdf00aaCKLR76Jg^k*)uW z&Hjr$EPX!O2>?hsyZE}NdOAeVG@bTM`E z1pxka&Ht1FVE*G<@((BTu=DfquyC+`xc}ejf2;hr)&Cy;>Dzx<+^POgpF!YG{YUnn zvj34e7Xbi#4-5|2Wm$*}>VzsCIsf9U@w z|G#CB2_GLJ-EFPO{}D^7X^@+Hx_SM>A9LcL31lR!V01g4?fM0+|!0X423=RSX0tpe5EeEX$Z4T`U9RwW< zoef<9-3mPfy#T!n{R{dX1_g!~h6zRh1_+}AV-4dC^9?2)rVOS9W*BA(<`Cu)78Vv4 zmJXH|Rt{Dd)(+MmHWoG)wjTBe>>TVq>;oJe9042?oG_dUoGF|K+&8!^xEi=VxOuok zxZm(d@MQ2D@G|gv@J{d{@agbX@V)T!@W=442PAg>|cp`f79qKKjBp?ILgqg0{{qHLr5M#Vy9MFpZ-pngHkL2X5yN4-Kr zK%+quM>9h6LrX_%LIa~+pd+BuqD!Kiq6eYppm(6Jpg&+>VX$MUU^rsLVpL&_W1L{Z zVbWqsV_IN_VHRT!V(w!>VNqd8Vwq!wVwGSGV;y3{V$)#*vF)&9uxqhruz%rT;&9<; z;rQU>;Pl|^;6mZj;sS9Ua1(GFahGvl@JR5)@htJ8@apj9@t*LB@Wt>g@uTtU@t5#l z2*?Sf3G4}y2-*m?2%!lX2~`Qb3G)bt2``ASi3EwviK2-biPniBi5ZF2i2aF+iKmDk zNJvR!NnA*>NCrtRNO4KUNbN{dNqb38$*{;o$ZW|{$@<97$Z^QU$sNcu$%n{)Q4mwe zQFu}mQp`}iQqoasQif30Q*KcqQt?q)QKeE1Q2nANqgJ90psuD~r$M0Mqp_jMpc$ok zqNStNrj4L&qdlR+rvuXY(N)uJ(xcFe(!0_Z(JwNXtnVp!6m{(YkS;SeqSgKieS#envSwmRcSg+Wq+4R_w*hbmjKXHF@ z_*C*~gB_Dyo;`%Ull_*1k;9xLhhvcwg;R#}3uim$4HpxaC08ETDmNCl5_bgm0QVmr zULH4|I-XNrYF-mw5bp{fHs5EySiUiS7=8)>$`@)pMrox57J0j#FCL#qQJE9b#rlLindty{#7Gh;$$Knj)cH%YSR}!Bj+$35g zo+Je%10{b*K}pF{V@hjEXG?F(P|8@#RLlI5<(BoA{UHYD04hM06qT*dbe~;6cd5dv zepby1kkClb*wCcc^wb>CLenzPs?>VYmeNkv-qB&x3DlX? zCDgUmZP$a-)6y%`d(fBGPt!j%;5PVXuxvMMm9)*a zy|I(C%eQ;7SFta*|LdUbQ11xuXyVx6gz04OG~`U`?BhJ=!sPPJWye*(HO=*xn}S=J zJA}KTd%FkrM=&+zN$(l%x$7n3mE-l>Tg$u22gAq7XUdn+H_G?ePsXp*AKKsCe;|M& zAUI$*P&}|O2qMTVXy6Ogm#{B~UuC~m1S1C92TzB53P}#R57iFs3?m8q8nz!U8(#el z^_$zbl?cIz{7C3X+sK(H&Zw-Y_h^ggiI`6@=`nAy=CKoT>~WcKf8(vCP!8g%1 z$urqH#XZ$B%{|>R!!y$g<^{LU^3Qh83C;D+i_Z5iNG*&k0v9Kjl$Yj~HJ4Xc3|4kl zEmlv~9M*2uz1CkhzHY*7MsJ~SrEe2&7yV@TS--=x)3YnJJGH02x3O=&e}3S8@OBt> zgmRRAOm)qE{>J@rfH*Wr!Z&EMPDJA%9N zd#?L|htCh&kB*P8Ptm^#epfv6J&(R1BF|ozMpgy!@G>04XDJ#slP^q4nX9R~@F2lkz z1CFb$OYPV!3OVNLY(!f?0&zl+(~&wv5iyXtxzlN}?Lx7kc+5)YO%IEca*`9}sg29bluvMTjS}*? zILW}U7+EF6cA8@)gGMj63h*^VN-oS4ILq{pelEI89_L2Dvlrc!lCt!Nhm%;t}O}zal1b!vUuS?3pknI{6MOrrRzr zPj)iqX>L(C3&?CxOm3X~)aYcefE!vC?TIp&#GqNrF#3h%wRtJM-VCZ;Zd3@W)D!b^c3PFWo-Yl=oNI*DThYsB|2pz)Ry6@6R~571+LsaHdDIwQ3eqJ-g- z>;)76u3=_k@j6m2r3wONm@id5Vg%?EF*VzZ&PS96jBvDEsZv-^u`R;W?US6>43gZo z)n|1bzZPs~ZQi`_S2EDy2V$E{5mN`t|A-pYS02EWg|0cfD9rfIh^cJ=X2VXbFG&sY zX+DNzI3L%UfYW-R850#_J6v_DBXr!IQj(t8tZMg3w=KuFk+T$bO*0p{-;dUqQj`BN z)nAIePKZgQjpIJrTz{f$!vXNazVf!qYa!YzKjF+|S^RwwUrxp`tv0X5cc=BD0Hm5; zKZ&LO_APfB6s+!SnvmU%q?@k36nj^YO|9-Dl}&u$YG}onsUW9)fTi3XkrAycd!n?| zyfw5K?*A#-t?oz8wBKivp@V>S24A1@fjc*sM)k!+4*T_rnOcV$d|5f(fW7yAIDxd5 zbGl&42=b=P0vUM%s&bdZ;>F2?*hnE7oPBC*%T&3k!y4Tj&bz+=5w9|KE<>2ATi7S; z^#;O@L`JV#6v(#ZZy>=ii@#x|nyWp+*BvxI${SV-kTkRE zK@9R-^JkNVK29z{;Z|N&WCLT88U=gG4N~~(GuLLR=7#X? zbcPO-?sCmq+%cQcF6{s~rFrfmW+H>qB3CqSgFm1`K#e8O#zNRDEdJ@!Op9yXT0P?Z zl|1)RmSTfW-t%gXL|wKVWfcNrlY3LQ$M}Q_YDnxEc9`5i7N+X~1ZS8~W)j1S*VG%+ ze4pqG7mL@Q^X!&^`ar2dW?Sk?OfsUG@ziZ#69TNQwCqGPW(;SNqPBcH1yvL4`RJ#n zhrS`(=5Yx#+Z3=B72D8qs21P-f>nwc2GoROBb7;KEg#y-J zqbAA!0yuZ+>@Ww>)RQV5%t{fC2nozK1DQ>CRoUoSzean@%Q$>amCI&MNc`l4gr51e zJX!GflJpgCO~@$p7F>b*OmRkSW6#%)yDd)Mv$5loPimjlrD_hiI6(5;i6_r!VtNIR z3t?W?&@-j`rNftKL~`uh(l4xYikA3gK#Q5&!StDA19=1zO4^yiBy11?hK1Qz&V+8r zzW|Es#g*XdrPnqL=UF&?Jy#OiX(FI9$556sYNRGairh1gVitE$h+=GG-LRMCc#4KJ z1)4AD9kToef_iMhNmJILET>R2M7}uU@VIjY6D9ZXVvKd`4Kr$!m?WD+DL0cl(Lr&z zsWmz%L9!Rmw?$kW25CK?uABw$r-)y9I=YGGa7{{SxZe5O27j_GemY`8D#AMuxwsaLQU z8niOohN8-D(9RI?`7`+2xe2Uxmdrg9lf`I+V2*}Aj-#r{CMY#<%UZaMmx(_P7rVYqFh>#rY*IO<)Z*ON*hNPEuo%p-`U|$U19f-F<5` zx1+Z*UA)}gtJTr?bK&Dio;JU;aD&E7=ZegJEC=O_apEt%B^EEtfcVGKt48k$6)f+g zq}zefhNvx{BmdbPeo&j}y*dk0rc6iPmfQ7KkZB;@sFU>@XQanM>(1AJBFfrBEXY!9 z7>HXVRW#b9l&@~tr{-X0OPq%(>EVG|jCu|Qq`FINcxP3ei4m^YMFwi5UhuRYG~0$g z8My~9#oGDV@R<7_NMus>zHIffpz?T66m~2p5T(h|y0Q$yt^HDbu7z0&le2)JIu3Pr zeG10BU6*gph|_d*k;B1_a;`aCIM#>~xxzTzvnToVrSKsrCX&`zdCC~-L91hI!(#0Z ziD2qB%WM`@Y(w#(IHHk8e77;qYS}Mp81|GhY58%kbRcz-A)Hl1^0s^~lv8MNQ1r;y zM&`x7fg+2n1jgiEaFOgd!l1N@)EGt_SyL)eWQaE#VQ1t7BYfG;tt#sam`h;$N!V+? zxRxl>MrKkCL&D6@nCoUM-CWLGJJhHvV?(6fONdmxYIn0~>e4>oSfHxpDI5a}0UaGtZfrgoxS7^+G{q>3Yz-aiQ1Nn=_()ZHBeq**iU_NCF z2jBN&k)N!Zxnn{u!&xR5{oIipw1u&;RX*w!r%|)IY-`-X`=?#Y2pzGXo<)^rN!&;j zoX0gIp);fvL5mz?Uhk>4}|Blzu6dFkkN4F=LfP;q{#)h-0RovBa~L^>cl)D~#{)l*ofS#m(s z)OlkXDDT*x@i5&_q!6I}lr!LpyML^@1su2yAM<6_xq* zXE_1aYsuQ|Yw_YO>psb-L8)GJQUtr^f!=9tx}9_^qJ=qzysO?zr4E@^K5Zi*g|+f} z$<`+xXcETVU|j_UOa{fWA>GZg&G?_ff5?9_RdS}wmpto?0Q1FL>Q#((>u(PWa_RzaHKaz(>3 zM9%7>PTvlg_$S(H?dsF-E0ylJj;nlqSudjOD{aJmWW}Kg9C#)jYKIq}gwGkuAGNJV z-aT1f%TP{94J(w@m^syaGq;-Hk1JC(qrs_9$v55J7X2!mE#fZ>Jo#S((z`0$A9ke+ zj?|ZA9p3w_>lt)I%FSe^A*k~U{3MeFB(u-F={~9b&N0(SJn^;tSj^ohg@U0%ptfTp zY^rAYxD7$20jpiTp{+t=?_L&$9^1IR$IDa9EI^c52GSIiMz;thzvs#<>5eEfu*vT; zw><3WmU3{?!kv-aa!yhq?MD5Et@X;qU6-4b!A`cI$`)?NTKSgbX~_~73LH!U%T%eU zGyD?TTZv?|5{q2QC7;D&QxZu_dtUqpU(%adN*pHvk2#;|y$U{TsdOjRW{cCF3PIVKKlTf=_fAczEwbv&srMyC7}J#obRukNd-suEyd;4z>j#ZNR&(c@30gI! zZu>ZEM365ns;1qF#$A1)ktuHAx}t%JNXLV;c`DVu4|ajmnfcTZ8R0+@;qU zwj_Gtw5dGxGkyb{k(8`1-JJZ|DXizKn4IO5(q8yKSI_R3B6KruskS5m4C^@uI)%cN zQ;K;v$ykY}_(crpF_21H9uKQ@TN5 z%vS}|Xm3@8*=Ui88@uv#!_&SdN>Ayp*iO=@1u>8nN$JizADs#X!tSmI{_)&rLdvv` z|5#&oyC_n|0v0i~0zci5FtW_#B%0?)T0AgnjYE79n!@7F{)T=>gROY73<~*7{gXG3 zd%bdc)%)FjX(GLZ9dp?p|CD6dlrr|6V(gSlQ;CDVW;2U#^v0pU^l;Dh$=o33UAE03 zHHvB7rg9Nd$wZSK-D@#KfJ1`R#3{$a0&mzt+gf0Rb7`S}#UONqZ4fGvFTz7->{@iTEt- zB5A2m4P}RNOQrJXCyuYh*yNQ8P(B#M8*)~66xaL~m08Hr*>!nzKif(!U3H~)U}<(Y zVY*9Ozy^&no(1)*ejlcuhY^#D)3Dn!bwZtI+cho~c!88g-Z{n2k|fhBNNG! z-lCm^s9@KzxeYiOj_da`J_foFD`T059RWA~O3y5*B-`gJA=mb0LluufuB?jfsSz2! zBLNA}5One_DR5&t)hStZ9wW9en_m{LNGJvvB->(>8sd2zd$(gt5IQtQ#GYv8IwS#> zRz|m(;7-+xNmNYu;wEZsGoQX&*LTFf!El0VzFoD|QZ+M})S$fASEwUWN9VIAEI7vh zaCdxJYfx^}JDT+{{FWn~$He`h!dh*Jwd%@)1+rS`+oKiM4~^EJ6bL6HQhU%&RUy*{ zhBQ*F-5P+KR1dqayA~<6CA;@dK{;yyD@R6gkrO1S_I1&5va>Vifg|;T_}!ZQU!2~( zU#^pHvD0&udtxP9lfCN1jP|zFA(y2dmaNg`Il;5a=G;!yHKy6@P$TsqgViEdH%aI3 zZP|Ho0*Djx*#h2byIb5xz2$Z_hPE9m?p5KvY3r^CO&kKgpU|<=#>H_6av5wp7dO?E zG0L+DFes(5e`F1|+S4ZcqCRjIi!DT@F(%Q;#GN%x$ehc~Zn7>;0F%rXMX%fPuEafhjyUWE zy#p@J#DFZYH$n|%xiGPqd7OSR2$}b(+9r>UdBiZ%vk1e zw;c%8D~!``68f%`&5zJ35r2y?Xk9I>{Y5wX7my!xx@&M})buGi&%S=)1t5=$RLWLN zH*@x75x&SdZ7HD|+sZj(PE@?%)&R8P9;$XgQKr41Z46nCH7Tw1JXoc0JRTCQ?HM>c*$DjRv$7;j4kU_WpHesICr6*+teaAc`P%qTMOHR4V0nEP!t}z z*u6v87BXAN!Z9J?(=esrH!2jd__VRCQt@J(CuK@hX9&L1srl@-&LzvZ_pvrjcI?u?jFcTr$0k2 zjV6U!osgZbuH6ZGc6Oq9x(Ta#f_;OepI<8nl6a>Zv=~)Ep2jT*CnUo0o+?<|wl7jR z)v@PH1S6%{o3+V{wTtn`;hZj#3JhV;(*eUBY7|J%HvA?G#gse9$}kp1VR*8d9Seej zl3hZ2!cyR+1Q#%6HH}mTH1fDHwMMTyJn7W-uSn5|5h*%~g{Z-?ShGy{5r%ciilihK z7StNqM!Pp~sg_9DEPtPtpWpeJX7m!>fI5&Y)>z=)esz{d3DkDbC5uMXedJe~A@}2$ zA@XwXD>_a}dKj{vh@EYe0eXst5mJfALCYV9AgA)Dz8S-8ZBVGngxd>g!f8T|Fq_1+ zANynr3aVX)^F$kRHSs}scF**Kpc<>L{myB}(lO8SxJa&SN21MTp=}_Tj6u}6@z^Lc z^;_m?#~T>xL@0E;hv&6=zcb%*qIJYWo)mW^vtfGaPU@&38kb9bx^^%B3xeBsdZEPAlYu{HrH;4B^n?cEWz-KJ|ycfYetz(UPg> zZvh+Co_Rv2uP)ogTkM=ezty{aj0Hx=YuuejqCcKO=ofIbc?6{vUcGytsLvyI6bf4l zF1vSOnCgx+r9KG>`B~8RQpw*RAjJBr-^7gT*nZ|;+NdX}@pzm1PIsVy2r0HxffN(k zdTTvH1!@?tC2cPc3D#Yv6uZ2e8YaR5$+^0tg-0r@)BSoKAKE?Q%q)PdsvrXGBAkA=fVeyXqe#iB=IvP9O>LPtkL_g{j$AI+i+>pb& zzQyh?K=xG3vdelgBK1aG@IEgvHe`CM*o+y&$rFB(1xGm9IKRr2H|Vi`P>B!e9*OBj z?>FWj*aHXc4D!76E=Ph|-A=vGc@SHm$3mgw+f{WjBlDaG32rF8Y5V(9jMt_CBW3y( zlpI5*1pH8ZSjd?kstMv)7hIBjeF`O>g}Bsth{R4o8T8~=96F{JUAh=9zOGp(jojys zg}2vFguY?W(lZ`Y;Qhq0RP0#L`>!G_>>sl1$RiE&*!EdiP?JC1p4(#zJyD(J_faF8 z4)C&UevY6@3|kV!*ga~yrSy{ZxoBbzZ9yX11Y;FQWYan+!Y4tRmq;0gHyFy}O|M5Z zdxAU;UR3l)=F0?&YRivIu$^5Br5Flc2?Xfk~_u6Zl(vsT=QPJFrIH99N;k&moR5 z$S*@5I;btJO@>W+{p93k2+z9{_jy6@#bIdh(9rv=hADs2JIg*&WE2UhL#5_CU&}@B>}NMq;)jA$K{VBK>B#M zI%m`v@)>@wML|gsRW21Jdt@YR_C~sbBk^H#Qx1gVJu_&dYAE zcAp;y6j5UmFJCZ)GUT`G+m;WDvy-yhUzKucEIoc-x6CBuhIg{TZQLv~&oJft_NG0^ zOtsOi%xF0Hg|B1(VYsN54o8}LF`i`20S%uD8vNEjG-T_krx3;MJoni=e;|#hX)mmI z4vZ|P_dqwRL~xqx@Ysu<#i8eV8he|^l-)ArJZBn}I=b5Wrh2=)&*U}ULgVFV3TF4B z6NAN}qJ3bB)3Rw0qAL6p4^Av5e`d|djty)4k+_`GXUQxN9PLA(H70-Ilq1GA#6dt{_*1ynUzlJB2|FaT4yX5W6GFL zeMpd?Th&^9=nivK?&5r0nwhTPXM=q#T9@%B`?u5wUqb3(UuQSXtQof693@VxQ(ta$ zS4JbTjGPcy`c_U~DfC)h)4n#1lsiryeh)vEoZvdvE!uQN*naVDu6f@?z)$tIgkvkU(pFNgIxwC z!2PlM$SDtf)Ky=i$=WS7a%GgcPY+YoaCNxbqe%5)2XDzEfA?`d+ix(_!X(`|zUNEs zbkeP>0IGlMgL4jqS=&5H_5OXDy>Wq2-rMHGyHUg%JS)|u;uhojIs?c3ogi|JrGgW3 zmIWH+;ZBcl&r(nJFAly0d`I&q(HZ9Q8qdb+E-=S@$4s?T{n66Lf>juMI<#KF9hLsl zqqLi~%22+8= z=k2W9qjYyX%o3`B$S?!VK^27zQWR4zPr;RsrnP7hoQQ_xr-X)PeBz#41fIqvW39 zbeKS0n2?sStwEQfL6WG+*M9p6mBb_e3awY_ky!d(V*gHywFO+2^cTQ>tos_n2DQraB@r_d`(u_ zqB3_x?_l3q&T)eO+Jj?0+)S8IqO5&^(Qi%(%SXx|nZ{dl*Qc~pvv7!JRFSKKaFQj% z!?;96vwIXpr=;bToAEURlFRSrY79LRA5jeT2gE@v%pJ{&Qxj%2w^!ESBWqZRp=>+m z4jK9~Mz;!ec{F|8UbH&^lFFwjb1x&M&I5I(AyGqaFF%VF{#oE_w8dl^^)~OF<|)@Y z&ql~qd(I!YQfoarxNW&-idrgqf(l-Nt)O8z+oDX-*cO9=V45g%&ePNL)z)#m^s{N? zj|Z8`z3+7+uf(wjx>OmiNV+FJo9a2(#@Z}Nwc3;kR7t5d$W6JfBP*OC)6rftYB~8s zMI~x#v`1sM`uo-~7)x&Ru|H)zjZiL}tV>S={RQV)<~pY&jx~VhhBv7+KVnN?Uj7hi%Fd3*zO#^ILY75 z9#WdPh>Og=^4$WH+^CcO9K=`2H^qFbqV+lr{ien=+GV{ndt;e6psFxJkt`a?fEIJ` z&W@batxn0Ga_b30pX|B$jRB7mrr_E~RNTGC>cPEC_qWlJRP1cD z^vAlBIUa_{vdvj+&D>+PSS(myCj`x-hkXfLQeZIhtz}P;t#;74z-=mnwk^T3(yeuA z_4ye1OGV$VVzP_HOMT((*d(pu44?g+#4n4sS3}JqyBF9QcB??2Tp9TVXU!S~&*IXnj^MZ4FoDI>S4`1p1mXgV?jp0X zz-zissp^@92XTA86p+~A5)ewUVmDFo$>SO6(P<%uqD37)i+zn2oWJ)gxf*6+=+tDk zBr+$-P|?nBT`r^%+b5$^CmR6#GbnH@_-4*MVj);=hebug`J$rqQ`}j6m z58H$R>G>J5zJ zV?l;NckW+^{-|&BEa|de-HKI-s^EF0i+L@huxOr4y%R(s^B+j3*t=6wlPz}rbGIn8 z6;NywbM~B#^C~iXww8i3T7G=vFzIt#Px*jy=0<=F!};! zxN}yVa+ufE?YS=Vsqgd;A_^{T7HH#MG&g{GXpE{(yQ3Ub)9yTKv%_KlZMECe;JSns zGV>j!fbUmQPv;KxMxvNyF#XaHS9EpwCOhb}b%>>E-q0+6$SDoz5M(eVbC|@2S}QID z#56&JcqkN+wcHuAE5DY(S!#+;3S1EhEA{t2m8FWou;FdfT>H<&?ffbQltEL9TeFLi z#H#tpkYOuzt8!p|>O? z?$Z6G3}xx9W%jNNFXFJ%$o+ZrF(cS7R>W}QljC4Igq=Xo+dw5?8COGX^R0=PXXM%n~|H znzb=!65ceRwnB%^ZU#cepp_Uq%-j#5M0j7`urfKZUb!PVUHrTo3cxKHMDVBIib>Ez z3KQt3Y}`nuA&%}PpPX{`0wIr1*Wb!j(8H#0b?iy<8Q7QHu2)B-XBIB^=f#$Do#HEl z+LtBi>&?>c5{!;n9L8Uk+u|`51I9)GW6o_ntjWJ~-7XeXzW=)Z)< z%34Q>pYt?b^eZxz)h z;ISh3E3kCIeURrpKi{a@rr7>)sb-dQb5xQ5{09k4oUa6T0`UmaQA(CG zhBL}9F!sYOwb-a$g)Cbs*hbIrshel-7`%zM|X z!wKGssvB5u_X;nNlR!a+I+ES;jiW!&7v$0_(4XqaDP&th@LD%9BU`mGuXbm}FE*M( zQ*E2Ea@B13nBVDR;>oT#OuCX1T&b#Tcmvt{3u|{=qJ>Th=T3HaUnFXm%0ff$BlQFA zR>4)5tLa(Rm^4RGnFgg6>l_U6IeBZtC*DuTOBFl#CpvQ#~Y;LTs)Hz%B9)Bd|zoQ$~nU*}-=M%wwD8yjD7~Lu{ssV0EEV{f=9)iHSL) zmi&kwlxv?}MN>3N-ml}>y|*R|!Dv0Zaz9Ar-Z2!mF%$+!6}F#}8Di+i^VXKXNO5>R zSAU#2$%Jm&bnjSW1N8F{go`%6Sd=q-jJ5y z%j=k6InL^(PH*wWYd%Yk-Z@FDmD94GpaLn6CTMq4!D@tpo}cX~74^q1;15=G}!!LmS*SJ0RFY4=6i%F33BL@p}nze;*yL`nHoH0C_2rGpsHd1?dPQQma6&evUG?NFzMv%n-6Qwytv ztPrkWu6rTWC6Yz;IU>1W(c$}`<#JQJL7rgVeyIz!qXCdkmTfb>cvrN<$DeORx_#-* ze&yz*7B`hpPi<{G6x)zScqWiw^@b2T-rN436cshNt5OThLNT8jBwIPH4XUxS(RIum zSfx$bf>>#(>~QR5+|@D*=CLTKB~vGW4(-)+g6(M;a0S;70`*M1f(=V6+u|4~XwD5RZ-?M7^sI)eUfU+N0wOVEu-ES|OIc>b$ zR#>g%i?K;fFN@=xGf^7V8Z*LPxX{E-b4-K6d)T+a?5vM2%6oU>EvWRwjrg%z~gDz9p{#8P$xlqQjrHi~7 zJl7}j5<_N>w-SgFIy)&En`-&#FcNEm*XnCB1Fsst)R0E-#ZX}Kw9dqGA}fLY#*~5j zJVWOLGVMsOUm(q{K5}knYvfA*9vgO0N>23;{c7C1YHxuQdv1>nYD!n&cg6jbd(Td$ zh^OiFZIv0vVyO~YXJU_ejw}DMwN~ZvdXXz6Y)>KE^D%CHD{1csSUj>m# zX#|mwKT^LP@96{;D(U@uh^GEPLByn)PkTP-GY6OowT{PVlk|oty1s9%x@70(^%`x& zb%cwpRO+raIG}N)1{h#Xw?C1Z5!Z9fSD$nP-vKC5S^oPMn6BmU)GbbKZb2hmvr4nYYC-eoodJH>%v=o*KEh8*ij7$1xRJX%7Atf%C z$NcuTiqMbR`;}Ku1QupE{PWLAOk}jWCN#>FTbU5Th%tm9ph3^?Q(c2T1kaO=q`{K zHrx&5H16SVa5EvZxnJJ(Au{KD;rG~VzQbVZ)@Pu9HkASEGCK7a-W|kzI|rsq?Y3Cd zH+gG42mI_eFS>uH_6Tio5n6(?rJrL=@&XfIlff$U2^05 z-Y!3_#+re&tYeE@pc_8cm6uE7q1{I&oG|hbP)wAxcFd%6wWj~+I5U3s3^aX(_7ZI! zQ13{@pli(JM~i!q>J0A4SKL|mIPu6?q-~WkS&)nA$dMuXPRw;~v2})o()`<(Ij)+z z#C(DfnW^c%vXI7St@m3%ojRJv){%w%dGp+eBNH0CI|~Gb9E=nUXQ5Q3FBW;mNi#w3 z-4}J~7nKQ40>1%YHSt>Pg@}*{ubx*?lhGm;@hIyR69yy94uQH=wKQ+ili?{nmna6K zpn;yU+nJU0ZVcw}L`|T#+sOF-(}FmxwyUjRW>_G-0W&tjtLDY99jDZ;&#_sa_Az>1 zANSj@m+FZ%{Q$>xV&T%0UE99^p`gB-+Ux-2qw`$HgWh-#AY~kI(kvE$MIqULZ2F6Y zGP5W-f?{pL?3pi7oDLAk$^g8_cFJ=+#l#lW|Y;WhM|QM{UKu2IcYjaG5e~f}K_)-C1mVTZ*9T)gq-wsijy5YuzqM1|Q`2 zXQ{`SJ9GQg7*CjO`rb*^djUrPc_V1SiBIrGPZ}~fx438idAU8t_1i>xy0F?{ybeKI z+y4d4Kr+7>JX1!cnA2>j=;Y+&(Tj6GF|2E}TU2O|{M%0rX6mISe*$W=sH)U}=xNP8UoQ2j z^Jg*4dNeg6yB&={+52`o)HPv>JA-HzY3|VQ>_UAWe>t!ybjggd#I?0J+{zt3lO3Nh z3A8EvdSQ=MlF20`ucE)s?S}=rN~vnGU(O?4NfPa45SA#!*7S2LCm8BRuu9ZsOk_+@ zo)=FNdp%mkCsnRNYm)d=>aKZS>{l}A5?XxbO~bvxE0?YE-ENZRF29g=k_WR<6kn!6 z7w2SlZ|@7Rd)`Ru6zRYeQJu5(9E6tNrC%*}+zyMsC7~>Q2XJ=>aYous7FIKD=LrzU z*XL?8$CzxG4?6bzf9T%(`Iq`F*74s%at&i!<~mLFzfj)-1+nK{{Wq}C|uEvpUvoW?OzYt@%lOT?P2q@rfae? zOjN0RdCm&5HoDZXH-}|Fw^vJ==Ts-D){uPAkS>H{k3Bf_HaVme_4KGr+A`G({7pSs z>slPt)J<;+k(uq!YEluLvhmg^<@C($l9q-$Oz6Cx)jT%0dZcuGY0(s{(KrHZ>MYH} zp-04J_Gy+A?=$v2fm#9rdSV&lW|u`z7?B~;U1cv5-yUWML#HQPKqb+T?9-a`Dhzfu zu|nl(o1jR!>1si`y+UeIyn9rp;+w|;QX0?^SjsuSwKM8^d<#tNTvb@e;M!oi88kWu z+fC?s8X?waZ#}}Sg~jKaog%JLa&QEAGbCwy9bF2H?XcA};T^xVis|j2KDY5bCA{(O zx$Vcp8j@127&4MID3dw;*mI04O~^ZrBCRnKCDd{H?^W=75R>g+LjHLtng0Mtb`Q;p zhCihif13Cvf6|71`P?-q#jzR?othuHn;f7D>|B6syG|C zrRZxvH#~xVl^$toE2QYyL}i+qHA=e2Ln?N>46RTjsNzWs`CyV4ev1Oh1I44fl!v3i z+E9_el#7_f79k$(gm93nU3KDx+hh zx@m%4xSbUqL(()y8Ny838+uD38{9=@2?F5qn7FHyj(WIDvkp$A7PW?%a>=eNX=Iu$ z5_>U}hJ7j4Xc5h-Aw_c;Tmre~D@*#UjAv-F=TZ<)tIA^p70|Q1y??t* zA5matgXaWKbzbIXIgmqH280YprvnopbE{X|&m_ZOV^nV~~r*sY~M$anGif zmaxfjH4!8hxLD-V!%?qMvkpxcs=!$qLGCSNjvhc2cod5?46rk#4L?gA3#!r*WVW_Z z?Nz0?>6uQUnWd-Q=@;%xqh`)!v?pJJxkX6%zH7DSx>b3{Am1@g--xAd7(>2~llphi z-#xpkl${@;)iiAgE153uN-_D-mUYH+Qhrs>K8!@wz4Njgr+LCUIJksbb=PmeE+YYHaMELKHe6p*g)lV>SdNO>M`vi55R?@va(MC$ zBxj@niGWKqO{|@lvi6>jfC+P;W+N2kXLhPY86J_iv#L|9&I>V7JexwK$0TTp7Ijr< zQFoqfu#}USl>&KBFj!6UjMNj7ma8l;U{(S6%QW6J7_2fh!m(W1!Wd?9yfUvfmEBR0 z%c4o*t`KRfWk)!+3CwCr3mXikDIs3guxy}0eL;?N#FmK}o;{K~giLKr;kvY=rE?IOT({N6Kl^`qtv?**@*mR@?) zY2C49x^(V_Ul`;607tpqbd+)_(vkI~ zp>u4o+-9ea(l%_ACO-3%bT22}$k8^cH#y#6hQ6z{a+vD-B?j(hO<6Iwkj3n=6H&%l zX|-$I#a%#SXBJB%(knLbszRx>c?8y0!V|$xTcjv;lqXkZ;nHh69u)dD7$(+AX+g+B zT;?o;9+bT7y7lE!o(LnQU@RksDU~7 ~G0QCGA@oxmj+!J3Ml_Zwr7H@QR&&(= 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/icon-192.png b/sites/tomsjavajive.com/public_html/assets/images/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3c711e6b924a178e0fdbdf01ba6c0b1864fb46 GIT binary patch literal 12013 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/icon-512.png b/sites/tomsjavajive.com/public_html/assets/images/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..859494cbf9edc793177e37a8f0e374389e1f4cbd GIT binary patch literal 14226 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 I$4fu|AB>m5z5oCK literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/logo-download-new.png b/sites/tomsjavajive.com/public_html/assets/images/logo-download-new.png new file mode 100644 index 0000000000000000000000000000000000000000..49656b6c7f27a6ab71fd962376cc7cbcea906837 GIT binary patch literal 146873 zcmb?@2UJtp*Do`UI%1nq5Cj!Rlqy}CfU$vs3Q`iJ4+2s`ZvjHU1`bXCbm`Iwp-2fW z1Q-wykWd2>5;}yIgdQM-yc--Gzqh`(-uKpetmRtwB)RwOyU#v*|MqY1W5{Fed&fEX zI5{{tj%(h(tH;4{kjVb`>mlG1CHaTe96xbzXx_bL;FG+_G=xnOYG!KJURU6-k z;VxOc!LWvS!&0f+Eo$4Pk~LEK8tb#s!d(g-8lO1DY3d=VzeqEFzN{`fr5=>^7t7_i zgy!X6A3l%z*?(yzB?q!|2dAlPcSRV@dZT~dEBTA9z(MDX)twVw0nbi=X0p<<%ZgYY zOx0A|#X)q6)H02r3sPxis-CBRUA+ni2d?7e28QP^fdXxZXp;lOG%N3sdS&J=f^jO~ z(22=&6Hjjp)+_$CKIs!!RIg9=iVRfgnpg@jo8nEiIcK;|-^g-GX@0ajJkXWa9Q~Hz zwy;3%;t4!jJODm7irP-{FmrC|A`Y&>-Frtz`gS)EMT0(-qM448UUa-TK{UMdvK7+U{qHG`qWEpe+{_a;n%f& z?mYU7+dDNUgfJ72EiMVr#MO-QYz$D{&&`hQMPNjW; z;dm93MNIf>E+Ev(Ti5~@?V+tfg;-c&16oy&D6ZSG^1>F$zF!`B7~kr##aDmw>VKg& z*TA2G7>oB^1Xmpw&WTsnxCefnl-fmopRpXRz4mt7X!iW%cDtbjv5cFPK+7);btGrv+xBE*Lw|Qp`!tzDZu{+R^P;pX_32E?jp?(}sU}v@N`C zYBkr|HKWN2Hj76oxm=g*ulfvnnzm3&y-F4uETFOC))#D-Lj#IHM)-98x2mnRpZ(q~ zRgZk|j*M5~*^;m6-(6$CmQ=|LX-)QI3&hC7;^+V;ZB;V%v$yl-(ULMH`@Gx>hdm}L zN&Ihj)aH{b1v~=0dU>@GMMWx^O0NXzmE;z{5KI|VQbyWxzN7hwgQ?d`r0Yn_o|K0yk<=C4^ zLa@&x{u>Hc7n+oA(CgC;mvbp$H5@E%CCcDz9z$yTdbU2-gtp&LZV3W!%XWS?n;PA^ zGfvVCGbPB75eSx9^_Nf`6%NB|v#Y9w_egK7)+Pm#S5?Wa%<;`yR-DS@6c>46mrRrf ze8%3N1($Hb2LIp8%qH)jH|uId->hc25o2V`TOvqr_*JC+J8!hUoA#|3zp*vpzJQ_N z(8Y>V?-4~#h)1BqX?@^xgB=B{SKm>{??Fa`zl+y*g5Z_Di&anAuX5&CNilAPp69Yq z_f(NGdd5E>SIvSMp83|FD6ySh-2EH(9qu4X1lY!zXplH z)5Q#7378y#7I=i`K;3JEk``!V;nKpU-aGOmk4+^H;!k58e~+%AJR&Q(R{S{>Pu9mb zP&{JmD-G8N)OH6xNv?SRN;FMVk*c)^3FPRHpV)u4LT`?>V8^da&ujk|u96!y`?GR1#5aKEvN>t_u*ft`=77<^y2#zh?`^k8n`L&+Ydhvpo{l;pcp#`_TPISy2>}bmVYoPpgnEIOXZNR}{8XDM}GPSfnOnziKPA&5N{)$BR z!{S7hD->!&?g7}oNY8bK`gryS9Jxb)&I-Sqm9X4(1)ba z{+SN2d(E2Sy5bt0g?(dbh+kOE9@|)T-e11wQm3PHe*Wi%|FYb-&Q0~|h>sZicW{{g zb;WLfA;!YBKlj^ySMmZ!u zU4Oa1xEzw5TIDX^HCH0isa3ueS2sK+PXLTaQpiZ={Mo& z_rnHnHK=O!TOf9FpZw*YXFMMc|3On@?;A*eC4QF(_x6YHfK?WK_FX(ZM@2_r&+kKP zVe7dcEycfjl9o05-B*-_h!b^wCGEd=!`#k+Q7

4nZ=>c07M99HgW`hLfQIj-W< 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

|@)P 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/logo-download-original.png/current-logo.png b/sites/tomsjavajive.com/public_html/assets/images/logo-download-original.png/current-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5680c6af2ad9b48e2a2cc510d62d85e37b5b65f6 GIT binary patch literal 137074 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

XHu7s2#yPeS(|*Ng{C4!R4Uc*=r}u39 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/logo-download-original.png/tjj-logo-transparent.png b/sites/tomsjavajive.com/public_html/assets/images/logo-download-original.png/tjj-logo-transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..49656b6c7f27a6ab71fd962376cc7cbcea906837 GIT binary patch literal 146873 zcmb?@2UJtp*Do`UI%1nq5Cj!Rlqy}CfU$vs3Q`iJ4+2s`ZvjHU1`bXCbm`Iwp-2fW z1Q-wykWd2>5;}yIgdQM-yc--Gzqh`(-uKpetmRtwB)RwOyU#v*|MqY1W5{Fed&fEX zI5{{tj%(h(tH;4{kjVb`>mlG1CHaTe96xbzXx_bL;FG+_G=xnOYG!KJURU6-k z;VxOc!LWvS!&0f+Eo$4Pk~LEK8tb#s!d(g-8lO1DY3d=VzeqEFzN{`fr5=>^7t7_i zgy!X6A3l%z*?(yzB?q!|2dAlPcSRV@dZT~dEBTA9z(MDX)twVw0nbi=X0p<<%ZgYY zOx0A|#X)q6)H02r3sPxis-CBRUA+ni2d?7e28QP^fdXxZXp;lOG%N3sdS&J=f^jO~ z(22=&6Hjjp)+_$CKIs!!RIg9=iVRfgnpg@jo8nEiIcK;|-^g-GX@0ajJkXWa9Q~Hz zwy;3%;t4!jJODm7irP-{FmrC|A`Y&>-Frtz`gS)EMT0(-qM448UUa-TK{UMdvK7+U{qHG`qWEpe+{_a;n%f& z?mYU7+dDNUgfJ72EiMVr#MO-QYz$D{&&`hQMPNjW; z;dm93MNIf>E+Ev(Ti5~@?V+tfg;-c&16oy&D6ZSG^1>F$zF!`B7~kr##aDmw>VKg& z*TA2G7>oB^1Xmpw&WTsnxCefnl-fmopRpXRz4mt7X!iW%cDtbjv5cFPK+7);btGrv+xBE*Lw|Qp`!tzDZu{+R^P;pX_32E?jp?(}sU}v@N`C zYBkr|HKWN2Hj76oxm=g*ulfvnnzm3&y-F4uETFOC))#D-Lj#IHM)-98x2mnRpZ(q~ zRgZk|j*M5~*^;m6-(6$CmQ=|LX-)QI3&hC7;^+V;ZB;V%v$yl-(ULMH`@Gx>hdm}L zN&Ihj)aH{b1v~=0dU>@GMMWx^O0NXzmE;z{5KI|VQbyWxzN7hwgQ?d`r0Yn_o|K0yk<=C4^ zLa@&x{u>Hc7n+oA(CgC;mvbp$H5@E%CCcDz9z$yTdbU2-gtp&LZV3W!%XWS?n;PA^ zGfvVCGbPB75eSx9^_Nf`6%NB|v#Y9w_egK7)+Pm#S5?Wa%<;`yR-DS@6c>46mrRrf ze8%3N1($Hb2LIp8%qH)jH|uId->hc25o2V`TOvqr_*JC+J8!hUoA#|3zp*vpzJQ_N z(8Y>V?-4~#h)1BqX?@^xgB=B{SKm>{??Fa`zl+y*g5Z_Di&anAuX5&CNilAPp69Yq z_f(NGdd5E>SIvSMp83|FD6ySh-2EH(9qu4X1lY!zXplH z)5Q#7378y#7I=i`K;3JEk``!V;nKpU-aGOmk4+^H;!k58e~+%AJR&Q(R{S{>Pu9mb zP&{JmD-G8N)OH6xNv?SRN;FMVk*c)^3FPRHpV)u4LT`?>V8^da&ujk|u96!y`?GR1#5aKEvN>t_u*ft`=77<^y2#zh?`^k8n`L&+Ydhvpo{l;pcp#`_TPISy2>}bmVYoPpgnEIOXZNR}{8XDM}GPSfnOnziKPA&5N{)$BR z!{S7hD->!&?g7}oNY8bK`gryS9Jxb)&I-Sqm9X4(1)ba z{+SN2d(E2Sy5bt0g?(dbh+kOE9@|)T-e11wQm3PHe*Wi%|FYb-&Q0~|h>sZicW{{g zb;WLfA;!YBKlj^ySMmZ!u zU4Oa1xEzw5TIDX^HCH0isa3ueS2sK+PXLTaQpiZ={Mo& z_rnHnHK=O!TOf9FpZw*YXFMMc|3On@?;A*eC4QF(_x6YHfK?WK_FX(ZM@2_r&+kKP zVe7dcEycfjl9o05-B*-_h!b^wCGEd=!`#k+Q7
4nZ=>c07M99HgW`hLfQIj-W< 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

|@)P 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/logo-icon.png b/sites/tomsjavajive.com/public_html/assets/images/logo-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..49656b6c7f27a6ab71fd962376cc7cbcea906837 GIT binary patch literal 146873 zcmb?@2UJtp*Do`UI%1nq5Cj!Rlqy}CfU$vs3Q`iJ4+2s`ZvjHU1`bXCbm`Iwp-2fW z1Q-wykWd2>5;}yIgdQM-yc--Gzqh`(-uKpetmRtwB)RwOyU#v*|MqY1W5{Fed&fEX zI5{{tj%(h(tH;4{kjVb`>mlG1CHaTe96xbzXx_bL;FG+_G=xnOYG!KJURU6-k z;VxOc!LWvS!&0f+Eo$4Pk~LEK8tb#s!d(g-8lO1DY3d=VzeqEFzN{`fr5=>^7t7_i zgy!X6A3l%z*?(yzB?q!|2dAlPcSRV@dZT~dEBTA9z(MDX)twVw0nbi=X0p<<%ZgYY zOx0A|#X)q6)H02r3sPxis-CBRUA+ni2d?7e28QP^fdXxZXp;lOG%N3sdS&J=f^jO~ z(22=&6Hjjp)+_$CKIs!!RIg9=iVRfgnpg@jo8nEiIcK;|-^g-GX@0ajJkXWa9Q~Hz zwy;3%;t4!jJODm7irP-{FmrC|A`Y&>-Frtz`gS)EMT0(-qM448UUa-TK{UMdvK7+U{qHG`qWEpe+{_a;n%f& z?mYU7+dDNUgfJ72EiMVr#MO-QYz$D{&&`hQMPNjW; z;dm93MNIf>E+Ev(Ti5~@?V+tfg;-c&16oy&D6ZSG^1>F$zF!`B7~kr##aDmw>VKg& z*TA2G7>oB^1Xmpw&WTsnxCefnl-fmopRpXRz4mt7X!iW%cDtbjv5cFPK+7);btGrv+xBE*Lw|Qp`!tzDZu{+R^P;pX_32E?jp?(}sU}v@N`C zYBkr|HKWN2Hj76oxm=g*ulfvnnzm3&y-F4uETFOC))#D-Lj#IHM)-98x2mnRpZ(q~ zRgZk|j*M5~*^;m6-(6$CmQ=|LX-)QI3&hC7;^+V;ZB;V%v$yl-(ULMH`@Gx>hdm}L zN&Ihj)aH{b1v~=0dU>@GMMWx^O0NXzmE;z{5KI|VQbyWxzN7hwgQ?d`r0Yn_o|K0yk<=C4^ zLa@&x{u>Hc7n+oA(CgC;mvbp$H5@E%CCcDz9z$yTdbU2-gtp&LZV3W!%XWS?n;PA^ zGfvVCGbPB75eSx9^_Nf`6%NB|v#Y9w_egK7)+Pm#S5?Wa%<;`yR-DS@6c>46mrRrf ze8%3N1($Hb2LIp8%qH)jH|uId->hc25o2V`TOvqr_*JC+J8!hUoA#|3zp*vpzJQ_N z(8Y>V?-4~#h)1BqX?@^xgB=B{SKm>{??Fa`zl+y*g5Z_Di&anAuX5&CNilAPp69Yq z_f(NGdd5E>SIvSMp83|FD6ySh-2EH(9qu4X1lY!zXplH z)5Q#7378y#7I=i`K;3JEk``!V;nKpU-aGOmk4+^H;!k58e~+%AJR&Q(R{S{>Pu9mb zP&{JmD-G8N)OH6xNv?SRN;FMVk*c)^3FPRHpV)u4LT`?>V8^da&ujk|u96!y`?GR1#5aKEvN>t_u*ft`=77<^y2#zh?`^k8n`L&+Ydhvpo{l;pcp#`_TPISy2>}bmVYoPpgnEIOXZNR}{8XDM}GPSfnOnziKPA&5N{)$BR z!{S7hD->!&?g7}oNY8bK`gryS9Jxb)&I-Sqm9X4(1)ba z{+SN2d(E2Sy5bt0g?(dbh+kOE9@|)T-e11wQm3PHe*Wi%|FYb-&Q0~|h>sZicW{{g zb;WLfA;!YBKlj^ySMmZ!u zU4Oa1xEzw5TIDX^HCH0isa3ueS2sK+PXLTaQpiZ={Mo& z_rnHnHK=O!TOf9FpZw*YXFMMc|3On@?;A*eC4QF(_x6YHfK?WK_FX(ZM@2_r&+kKP zVe7dcEycfjl9o05-B*-_h!b^wCGEd=!`#k+Q7

4nZ=>c07M99HgW`hLfQIj-W< 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

|@)P z1E@*V;^Oq$g}sj@eD3>)3@_9@{82Hgymj&?TT^7}b?>)&Ropkfzwh@O_ssh^yFSZG zJi$dvX&Pg0GfR3cn;@+_?Vu$*q2cHnLePzy z?mw>DUFAZbzx;WhM|Umhse-WE^L%)fym~u9_u|6|M*Q|(^eV1SsYx;3GJG#4Jd&+z z!ns@|G<0O`21p)`+pLIEi@V9G(!p8f$=-@8RLmuuo%%p=zeFcExPhgBd~;7svUfc& z0)9I4n}BcWkF%x~9;w$R2f^NbYrXsv^YNk9^~{<)`3au|t@Ia|1mm&I;nb#`+yd)R zXI%$u{?_+3ttNDrm`MU+^V#K4YuYQz58R3z7O#dd;JOY+ZU|XMM8$wq8!A|P+|*6_ zy_SF(YS6g)gG{sp8d(Mv;Tha-mS&Lw;8@KejEeCy3lT>Ys`giKC+xTIyN(-(?Q|iA ztM5|M3wpu zNe)RdnP;@~3AwNO8@BAqIDe|RnD~4~ow%`c0HQiMs9hYqd^=9|Qk;SyH@5mJz zDlHlsF5qn+ryhnd8i3lo-gJ}v6Qe=taFwoSmu^Ra2`IBz_auom(>WrMv0OVz>2cb_E1sXCP4)Q|60~O?CZR z2qFP+1u3$M>Zn0C2VD`XAXmANlj9)es~p-)i$NSo5umJ~gqF06D~W;Yhu*)h*r)d8 z$xuOu?W(TQ=)!|`@uYNqJ)O+6`J0NBYf~Rp;2V)>@`hbe`!?*t)1O;SvvMyV1F(*YTN|gKqZ)#_)FDb60YW zxRXVddc(pKE#v*RF9d$D|H$B%G%?}Wd^H4n8`b$;2L4#nxX*5Bm-%70DOuXb4*=^& zTMir@s5iRJMMjrJ9asjtI5;%13F?@seR54k{B<#p@eu>W-qy*2BvYiQK6;)q=ypmM z;$HdLjJ7P@Rm}@7ooY@_OF#eo`jyzt=(-zzH*b#4vg0NT#WSGS=NAPn4nF_1ulzZh zYZKLdp}%6i8l>0qT5s#Y!HGBIboV>f-g#72PI~2j;rDePoVaEqizcUhcs_(FRor&V z@6D*us0!GXIXueM!66jR>^>|IbR{&c0lgAWB~ilJRK~>V9^)bGBg5#dzknAi<(tPL6CVqE-rYqv+ zY?Bs~QODOtl^4%ndK>ww&$MCfuGV*Z4v#KBC750b9m~sz9Ex*1Frn@#NK^>k!38z5F7HXP&Fx^nWxjmEQ0 zT}rS#*oosCd_&`i#}3YJ$?d7viISw1dC+_(D06dH?UQY=qs}TC@Lc|kd`4lnBH4h~ zJZO)$l%7a|?39jHFe#^(HV_xartFZTxzC-SHG_WMq=9+9y!`r3`~(P=put zU-=ENZ7z5d&>4e(BIS<&R*RH(?jG)~Ww`}qB8u|Om-*bA(xHw+UM<7L>dnJ|-3}Zq zb#ZWxj1`b-7JAfW|_N_gNrQnk3@Xmr1^E z>td==xh+`EVAdb)HX=TPn!HIpR&Ymb6=wC}1NTv}iDzX<+{0D?0{iKmMrz!(XGhvP zJK~{w0w97dOB%Wb-UbMzn`~wgH@Pl!e>}v<^1BJo3zGObZo(%DO z(1*{;sylc`eSUew*g|HB(G9$-$M8`3c;JszjEt21)`w5*}`#s0Vhk?&!CbKc{Qf# zezZGu2?#aEln+v^CTq24tTl^uV2mlq7@v7H?b+)K^Q~1T7{-&P!Oozl$xGtIuN2Ru zWd&71=c-}{3rabqUfLIZO1SrZ+M_(V*R|zkE~YI{AEo0Mr|AUZw`%zUNa7WkFpn4LOW*WGxeR**FDPX zOuTV;*#|t=H3S7I^NT5&OiX|lWOA}6DYQeHKyG7-?AQ)QNkz&Z8A7#y0_Flj$V0u8 zHPw+)=Uh1@+0d(Wv5rTYRasRc0p^p6KW?$IaSBM03XvhvxpmP7*g{XLdb4mDhw@h= zBmS}$K2i{$ct+crP*^ueb`19mP6JBXD1aUr=TlVeB4)YhoNmOZQ%8QO8%@wF$UhN3`86dD0XV3izk^G9%2& z04Ir7Fa(kSrUAz5(9(7AYE!qmg_CQQz#A(rZ93ststN3U5c>`L_S~l+HvA<{e(9da z@dIoP3!`XKkXWnx=8ulRAwQwq2I{V;?>S zSf~`@n%W5`!>8K1T^>(D#w8U-+#%3_;og~rF`IFw8^Ky@#f8Gr$E{=H{ ztloTwmn$4eL7TnJTN!gK2>EvFl(MG@2=43SI_};O*PeO!?77T`ODuNBQx=)<-nV*l zP>a?zVH#dfFj8``!6&Zj$_^g30!(8z-o4D`HW~Wqt_eW{6f|;L7TJR_B6+%1FCwEO zwaTom7ZrQ+_4VU#yN0lcX1Lgvc}=N1fgqpxg&#E}A)$v^tT4k0Fd0A~`Lbl^3>0&x zJ3GLBu`l(iD}F45EJlp+S z73%nnr}l~I)u|;=R2c3b5Uc_kMEvS=Qns2eMU=XYENkc(l)3<%LJoECz~c(p zg7eS4d;3BEk?(+miv_p$S%~?ujtt4T20Q!yy@jZSP?3{HAjcCBRr#v+`mn5aCn1s+ zL1y`p6f{|&EDnrf5_2gdVWwFcw_X;O>GWh_O+ zMrBZ!+m)M-e4BbnC+zTAfv0yBEUWdIM)l^+-Rs7 zl^jkj3D=}&m@3lRqKh82o~*HGl!H3Vh`0_?XQrFOD(oh|uw90v?4E9(R}>SSaYg|1 zF%a2c!C8OL_)ty5BB=5w2gWlJ+dGpCRpL>o)3H+`4k|8oWb{%KtO>rU)j#Rcv)0yn zNbRlCQe=~LFsR}+#WYs{s|+O77E_y%3KgXv;@o_XVF^()sTM4XOh9#bqqy4FnUW1U z-7qPRM;o@T>2ET&W1&sHBNwbmQ;5b;HLO(%dJ#?KVqjb)1kLqoIHv<81F3pys+&l^7)i zZG`nzQaA${HR@EKD~c)5Gn{vkukZv2;~-imkAGoCe;r=+@?fko2T);OO*lF#`b~HJ z;9Pe4EH;97)+*P@f^9*MSO%3_ck1MC#&O@Ir>DVLNyQg;T|e#@D{6xMn(vmkf>~)f`ZW*8|~sY+jNQu zm6C5izN?InjhoD*M+>QaZMb5dKdmSKgXvyo*XNs3FXTU=+}^pnmzeh4s@7fNG5_&0 zJDfM(pg!sY<1kVho(HI8n_}(9vc>5;m{rIu*+`%Fy=N$#IK~=8xt5#hOmu)q&F?<9*l&1`|InA=Q4*`qV zG6{RD@T9n$U>0%C=8$x&KrPcn8y5RlB%Q-+XNzle272O*`jjA~3>Sl4zkaPngaYP` z3^AxseMZ*bse95f!%5UNzN~JQatWHWys4gt9sLgah7gcxGOk z=Al8i`uH1ak?PlDI>Mo`*(H2@w>f4jj7^e`D22;mTpqiwCiXN0;8tz#S)qH*Zn=qJ|C^ye?yCE9P z$hC##5wN#Ietf*pw{yJU@fY-uBQIf>xeuh&Y$P2l;~^KvDDL?5;zP=>3)ZB_27+-R zfH8g4h4%zC1i0Y^Qt}DihO&w6snP=l3h_{Flr-@~0PJd$6`=z3JDp%Qj$EVcY=kx8 zRHQWNS0!f*CPllN9qNP4K4Kq@)3j1uOFjaj39o7D9~b~b7ZtP)R9V(VeK$Xay^g!& zR1Q6bvJM7*BfAUrfK2X8xhli<1*ffjX@1Cs-98&)6dGC%*7 zYnsQg&$-N6b_hxQD=>Fmcyn&?CD#O|y3^3|tO{tC0nFcL&A zI!iK4n6o)5C4A1e8p>(N#~R~;6II-T@j7-N&#+3<1L0Io@N8j;tpgDK;_ARj+S zZfjwZo?hZqF9qBJ=SM0XQs+z-hpS~F538qga?9Apo;~#;o{-0iIr*d97Sh-_;5s?h zQ(4N?qp18K`0cRp?^kWBuF)*fi7`XEs}kia7|xr3p0cL~C|EU@mL~#gH7Lg>?w&7j z@_M<+mBlCTRV0&^Frrq+6*n%xd*vRk8VA+x1b&>(x~0dNT__Fp7cDF2CIWwHZcpeA9|Nb zegFtARyMV|KRWBc=0s3H$I?^EoTlOfAj*e`7&Elg1L&URIt*i>BftsMfb%Pu5NieVIPHLJfcY$Kqxj#nI zWo}JhF3Tga7s~hVgVI0&RucpYDIXV9*#(L|YMeD@;mFh>yD&Q%IreB!O)V0NDsb{E za5@KhwEB!R0*u{ZAXIDVd$WziqC78&eUWyh6EaK#N&`s-u>>xh5o_IG9v}}$Da2*v z@169pN?WT}{Ry;Jz*Yo3!=PSxztolc_|bU7bu#;4l6VJj&H`{H;+6XJuBn?Gc0A6@ z)@~l|;8P%ZPCd>;Z6xLymRB{Zt;OdVTm?8TBrZNurKB6IC9*efOm^mEp)L=~s&cg9 zKuVdsJx(A|9CQcg&XU}K5OQgfZr*=amf8LR%>u`WQodOi_kaA%xCWVeD5aES?6rMDo^wx9A6E0Mt}}`b$U8vZ(w<2y@m?1R zgn27e%o#d3TUEj~IfLdaMjIPtyUvg$Y_#454$F-)SeaDtR%UQ&L=>>eM1fdYFyVc2 zu2s08PTJF$fahCp!vG!5LF#3^!02o_O^-vd6z(rFWF+NCk=HwX?>S&)DLE>y1mJ~< z7HbIZyO`uSLQHy3vhR)%LT>OFWhh3TVfANVPD&b`B`XpKl^~Gau<{|@t;dCCosQ)|wTW%F14me~Io0$ffPV4`{PZbb2(ub?C?7!Y(5oDBuxR`3pIc$T>H#foBf&|)mEy+0>7`09D`{&Sbc9FHcI#L%3 z;t*MAMZ#3Ek@13ppe&$V-+SXAah;O)o`b4{9p;mm&o%*!A8f!y@T{r9d_;r0q{s!V z;)kLUhg)0tL7LpO52P3$)B~@$40ctR+ZLR7(KY5C4TOinuyl_?5Ic2OH03@%!zd;RKN%AjdzGi23yKMMl1!XQ^wG5{5oiCB zdbEn+CCQoQpRLKYGXo3IQdTwRB#+bB6iwVKxl4=sHTHatZ`Z=2X(pxJJyscRR7H^X z#D4gZbZ5{kP+v~C&B*Q&s3a|euplJ6ug4b#O)n-(m-NUPWh(IlEgIPfKf)Ah&uGRm zIsz6fAX;b59{bl{wgqB)6Wa}DK8uA*Hk-gDax2!tLVeefx1}|d5~BfNBPapb?(`R<-mSIE zyKkYe(2Xy40lq1ZNG#A?(|cw<#$rK9$Z>{+*KgTCMN)_AnD1Vdq3|hMGc~u@jJZVr zV3bGj{PCL|${0Ouov#4QLh`SZ{Mg!$OrE`~u_uyQHXl-s8u~wzYN233+=(8u7k~5B zQoy1qom7#1v86dWDpf1g-&wU*(|}v`l;E?d#y$hOc6ZLkH46|ZqlWmUNqu0cjh31; zcrxv3)=VbxzKF}J)Q_I?r?9#qfYjFn&r%pIpcz|cwCc3Wtjm48*Hu`C6M&V$ z{bYi0TarT>-hRUBk5R?dm4PvD~ zP!9&8?dnpYNr8cZVp}U*)Ylm>FBtdRlgD!bL;4TI_%EN3e>Vh-u1f%40(J(#rX*A)d!Y_)E%$sl$rB_;Q*-JvuE%@|Y+ zBw+}YipGF7vJ3z-iVKEF>`U`@vQY@)K5#}o!(0ZZP~RFwmaaNf>w48puVmQigrzk+ zwJ8P|H;8dI=MuzMeMyq&qrfETA`h?W31@HJr{Mi_Wa9N9C5!3P#s>4i@}))nxUwVQ zOf~9p#1~L`p@x{fbxtMV>do)uw^2?U@7)oQHDKBY;Vv-;Ix(Y>*e#4@ ztdfJTUmmC-)1O51jLxvFV>3?|PERZl=aB#j`KpyXcwhpID9FZbpp>s})J3P30jgSV z65?$Y&4a9X^_TKretEiO4PQ-~6_PE74!>o>g>kNt?mJm1Hxg0;){@UQEZ^vODi%0x ziXBTzj4>&bA(OP~zUw51Vlm+NVQ8lAw1}kXn18J)oQD%fZ zuzu%10a46oswEVZn@OakNU|G5ydei5@-Xtyc33;tsZbAaIN}N10F93V1He=SeMP#D z=?~ot^I(hW?w2EDlgP#`zy(nh)VAI9Xvt<5bDY$!05Ek9vm1FprUBNRcCi2yClO0XKk1Fe8YMP3H?td>i zQ*`{>Z^kBl5pOJ2e4RL8w0XAol#5LUEF(Q<-kR7{&p1NYdkr>u6>^m)V}KbG zXcd&ORemyaVe!K~K|^X0%fLO5H3TZ`cz~q>35(XgW;OE()-YcG1Xlg(ck4c>S3c?l zm$iNx3b0iCN$DmInkWvps=2S4X&z)21PWR3mt^6Gd6$_6|PkyHS%+gXh&NfmS#&b1hn({K6=(H%lGA(9||S=-E}H zqf)aK6;*9>Fka`FZSbAA6#|m6st82@IDybCF7`dw!(+ zYyKi8nj>n*r}V}90^PF4-Y;2GV{6kqx2TzDt#+6MUcf;TKQZQ0zK^SB;r2kM4v=?t zwDr>SW`x)Fl8Yo@uo6=(I^$!;Z6*&udfpFQ{;nzrYJH&6aDV(#imFirkEcix_T6kY zqdEsgWduM*dxxRBKCwy}*LDXy+cMbI_-yicv1ZLWpS)8uXjk1?Xvp(Gv06o++5|Ae zyK=NIqM|WvlTZeG*B|M$qA$FsY7!XpHw~|fkQh@ZZ|r-MSIkN;D+3;w-l$6YAPnqV zfYr`(<<>W!zHwcbuoDH`B8&^BOC$clESb>3(MH&fN${-0)e|As+rXVI#ZV54stUHMy*@X*QFG63YU9pHZ|){Zk~-IMVw7q`92!E=`J(8qY_L}oq)m> zEg=E7Di0U6Hu%9tYsGL@=c#dIEHyA)Ct#LdgQIyC56I7(!*o^@MLYI%q% zGj!8OUdP94<8Pe?%eV@!)pt7y>6aS^0B_sL0dBIcJg;Aaggt-<=8LU=5){-=tA9>W zAP%(vR|U}yl(e;Bc+3mjfov+5*|NPwU0OC%EyCgxS=AyVshO|bo$gU4Nwqt4Vl6*+ z@F)w07rKdqZa1f=M-7*GL=9HEO78OY^}eXhD7lGL9Ie-VN{SLqf-GKH7x{PGBx>xE zZv(G1sNhW3#)_0p(lg;ZRm&QpoiDR9mnQINZ!acx3#84uhz&;@zhce$YE*I})YEnC zh4f{{h_S0$Dmt2Xz8e@&Ul~_?oO&zGjCdjizD)=A%gT-}Ie6~NBJf>?1p|}KC3dV;$jF^OOEy5DK&li2-SHgzB;0Xy!+`6WT{ ztckg-t=Vm?64NcB*kYa_FbfBdqD=D-7wW0l*6khNVBWobpKFDygiFZ_O`6i`MMg$~ zZ|{|-{q**q6+we;IqJBMb5_=qMapn)vyJJEl?C>2)6UN<5(gnsZrh-%H+)uPwSJbG zpwBWPCF~!?|CztZn7z{$97JD!Y`Hj&cNX@T`*4UqrZU0A@l*0FF3+d))Sie`lFUBv zV2$UxBW`pYu!Hl@Rhp7AbRFI;$y5Xat#z3eyu->Ec=#gO>flPeys`GJjhD;q1i*7( zgE#IOz8wXI;V3uY4*6e%eFaohTlg>PRjvUDs2~a`0t!+}gMdX2Au)6*-6eyxih@W< zHz?An#1I3FiU>nDk|W&>gY^5xTmE0Hch+)w2j?<#&e>=0@B7t8uLJM%?%P=?XOb=+ z5JX8nEsDF3k!`HjgzynnP+B#+c^S!}Q;QYSAfW3T54KTo4nk`ly5mMYemTzFXqMgR zU5#RpY~3vTl%j}YoI@5mwV?q&h3Frtu>_9&9OqKz#xrMeHYO$&ZO!r1V&X*hFXLOh zLJ8fbL5ul9O6_cchQWY&q2B#eVrK{HP}k{Mt1dtaZO~$BR=bKYKbO?r?R1{&?S0kG z_x%Y7mEY8Of^0wO{CMU-XVn=f)^=jMzgDs-~1T`zKh z8cA^yyo6LDMMp?lmOo1vsKEo2g)2Y|R_ifTt(f*K>m}4j-g!WpE<$8#B|wa zgM3|6TP>Ae->F+o1Gm^5Us8KrB2OTnca`E)#2R-s_^4{s)QS4dQCs1elL?iN|84DYhEsFa7;FJV&)A#FKq{fvmIDE2*WT zJRW48!`~O?+*BAh48b;Q>S=4Z=TNCT5EzU^NR>(+e`;roZtX%V4&CM7w3qN&kLh{R zTw+vJJ-oogv{hcNJtiDbJZ`+vjwsMPJ9eP&u7}RmdM`GUHW$bAM{k#wNH4p?}D8+eMWAvTJ@7P&ODlHl60hI^3%h5IvkXgpo?8u zU+p-z)HYnz|43^r<6uYLy$M#AjB0y;P;FqCSAspDP<)w%JihICPlCP63ma_NhX?2O zRs(?1KgNI(u#;HJjY=Aaw8?DWo`kI8)cc5wLv_@AAyD1RSBKDOw4iFVFSd~ zv5&J9idc&Yb|U7f$~XY@+r-AzBo&N+ov@J`tk%18q0$or6cTFA&cVFZsZL#V)`j3pv^fAr74i1PE_aPNsK(0qL zn$ZpMC6#*YHei{#2VCtqs&@t@x+am6q{E3DwHm9VJ``D0q-(7=xiQ6$2^VcX z&d$ywgQaIiN-^Or|M0U!(S@kQoUHt)f?>~A){nfM!Trp( zh*>b6pbu@+@$O|uAr=Mw;xU+0q6fEZR)Sd>DHBUN37%F!n@T(H*a@U5T%l?Gniqx4 z!^=2r0J`n>peI^?z>;;bnsj0s7hYTowO_wvzygYCyLMpdRbIm}<|PTk@UmcbhXGXH z3Y0S^_*stL8$d?_<%ijmBD>d`eNtN)_x@x-`M0)>@|ZF3iGqsM`KPCo(Oq~OCfQX^ zr;_-{EH1i7v}9bc$*Rbf8}^vBDEay&-UsUB=zx4|&kPnGA=6oJZ{iK>3U{1-Lx_o- z*mlciKq$6TnSBXF6n_I|1jdyQ zM35h6MAAiMJ%4~T>pZN${iDrW+ZQkq21NdWxM0WEN;p0^5bse=17ZhwjJzAy+1G1D z;}UXNT3#TyfQ}U=c6ob>uLA;f6zp<9@CLY8u|luIel3lE%Y}IYpZ&PZ*lqxK$2o2> z7Gx53Q`}^!@JSG$s9|+><;Xmp!mgBwD+8s`eg_+cBcpfOkCGS;GfMlbJLw-KX}ct$ z;Z0H6R*&v~lx8l|^$oSitmn2-sI`;|nxT#LyqrAZx}YDxkh@k?H1X1JpB*Y10Uhbp z>OF0%oq>Ry_;~s9Ce-m2xCt}7#;;V@Q+ZF_lTwP!<!S zOrQH+C21ggMq1;|d+%J|53l~T`S^IqkimQ8C~7BYb~cThNhQVMful6f!ifQ~XXC`$ zkvo3o%#JByXua)-REXDJaV-KN!ofZ0j%DxN?MmeW=1s#JJHpMr@gPjH(H%zhm|Z0+ zD47Lp&y#%W+Y7a~LrwwEeEsYcjd@6))h7~8(srTvGg!nyQ+B+aF z9L>|KyblJhUMBxKqIYNNo;UKP07F-Ce!ilB)y3VmBvxIwkIl!XozUB#U|wmbTf#0? zW;h!*`d&oHDj&H0ToSm>;?w|Uzww_Rjq)B1*af!SfuJWaO`tWU$+f+YxQxFz{%9^k zmo6+a^qq~4+((|3X%0ZTZI~Y~f$s|p?%`mqkN=9M0S%e!dWl9*@X)%aDGuxv_yfmq z5hw-kEv$L%OzLcaFj>~&oypi?;2ON$Cs?3@Q&|0jr0rUg&ta0TF&f%Te*IqYs|PLJlEf-MNtfa`nM;S|NE* zTsOq9xluPWwP-O4i3s$R{fNtfH67$Dt;0_`C;j7y0Nz%CcQ`DCIt6m~wOi5n7?S2X zYRb_48b6CI1)@(#gy0NSTw7b*q-dob7Okn%liz->QCS}IMc{~{L8gPml+3NFstJEV z1Hnh4Eam~OyWelPjz$fPW0$H6px-a9wFy?;=*PNE4Y3aCR!#L~r1gG!rs#a@7|C}E zB2BpQLR!i)NYK2vnl2k*sw40gc`qN93o=d%-Gk68fyZeKU?@TvRJmFz9g!EdNL1Lj zV+T{gaE_lY)CVTA#}ybK5V#f~6JF^)$=e@qbfpnC^ZYTlSUzCR$XLKR>^pIN92TeI zK2)K}hULbxvmg;C4C2bM8c2qDJ}fD&pB=sD`$AgMB1jOP$CVznmWS=R26_9tq#@@y z_1p&XZ^g1iHE${Cis& z&>IV2ndg1{DoTjWFYGVV!i^{Mw6R3fKC1okp64blRBRRjrDk*Lt~2kj7D^Qbdc~Sz zsLp2MSxgsxOccdo4|XEo<@nA-+f{K|_)!SDtyF=9A+pRSzJ~SMfRywFkb}3KYpv}@ zrt3i}@UtcF5!bvGQ_q!1kCmQ*e(V9PTS|MdqI1gK3{JW!$>6zww3+h)Zy(33^1)tR za^~pWsoXqzkX!cHlx>1qF7}s3nPoPfurSX2w!k5l*ROaA%PBrrWA< zhS<3yB=bHHQ}WcUUrN$KjORs(O%BU&MuB$p^a+~*b?7W`=ftL6-P{|iTE+ADCx;gX zCPL>9QV2Hqht8`G%_)-LtFhIv6I;tw(|ltnJKe6AO3iAEW>6}-2rc}+%5I%CbDD0o{Nm5nLY*nuK*J=P^s&iJ5u*}+ECZMbx7N&1%%sM zb$b+<^G)B}Qv_4NR88aoE6l#hZw&O}HP_=HHH3Zh)?R8mNPDj2JDKJ5c>kJUCb0Vo zXD8$HoxH|B9oqPT)W`t}MpxWz#>B6xuPX-KzU@}-hbHT#nwr~`Q0pP@-~A+!L<1l& z=YmDHk2@hV!xnpQZ@(s_-)IRk9Fi)>6idAN9KoQMD^@Kg4>Z`lUYD~M&#?jswUkiy zlmHlv^ub>C4b!;&Fbm?qT&(!1vH||M96%UnGX=Zzn{|lOJYvYDZ^Ck6ltsa75A>CY zRuswYBH9U8Qc3?;Dh>Bd&S!`fkdkQ5ti;=k_TJOsjN?aG$%7@dd=#x?4DFK?$oM1+vN*V-#dJ!up+>}k^(L;k z8r({X`PFN|64-#VK=?0Vms?qD&6~<*I)NeMqGCADLhQpq$sQ{W@;Tg9 zbsEYoAmnp|4ZQPMdN?T#kgWP{S;*wi&-5_ekbL+MDGI+8RsM5(PG=q?1E9!UG)H6= zfD6?NqS}@vOpb*fa>xhNj-@e4s+t12@u4qtW_U;o)zjHboSGIJmjpnDO%i9 zx#a!8pmHlp;So{T)V4B~y43cr!}}-C`*M@_a<2nSz*HN*j=Ydxxgb!!{_VoN+eq=lEk~mJvY#0Ry2i&#y&8{19-qP9_6F@8&B5DCY}YwM z!@e-FadAX+r84)GIE3?M)Q$eQ@qWUN8>_aowlh7U(bduCR9xwo{4UvIF-^j^ik3mbWb?lQl8-BQ?HdLY_0)%m3xc?-62KE!l%F0Ig=<~yDY+PX} zyNCO*?xpj?#pPNn1yxgA#P)yIlZHayxkOIMqVkV$MF@eJD6!k0dpsa1s~kG$i93~M zbh{tyne{Lz@$;=eK)5@bOmV9#H9p8}PVC8>TU$NxoCL9X5DZoQY%{PCH%A#A_VJn6 zqQLj+vu36dQw&`6JhD`>w|dKx^z~O)D)Ge|Q7!^RJGEevhc+l4Y$}q#w<>oZgQDuL zPJAILC3`#mE$^g8R5ZfEB1xv^`-~*4`U?>Q!VvjP z%*o(b4cTFQ(5#@6xPZn=FijbFD2H?F!_=I%O{fXU)!qb$%{A4FspkkpTVf-H1mq9# z;ihH7$CJ#G1-7=%LR7(CwB9>yw>MR0!|u|cPg*(+k+POnmgB)Exdn7szfx^VY~}{W z2z|bcH*oUY8S%61p)u&goLA^*^FmB1;L^bushu&%<+U|`k~lk9`SU|eM){T<1^<@Q zchD(s_ttoqW_m;kzh_m7a!~dRw!p80Wvt$MCOg?!b@xGHBiGbQELqnSs3iw}R!MH^(>iJK1xrGT`~^`O__6iqbj zYqJMx7B#$=@eo;Y)M=29Kv0m{dqHRMz0EnxkyeRPwIXJaW4NwJBnx%zH>sQjGv6i@ zBEXS@BpF21^4M89VxSj(8%+x<^TZ(Mily1W$!J;bwyx<{el6g& zf2bh#pogvW4rM4rX29v%S`p^(`z!9CRcW!nV-eCpr^-5Z)_C)K zaAaQA1>l2N?#PKnbRFiTc3s@tOa%|BBF5&-_+-Nx(Vmu;Y94d}T%(}TlY!|O@}fd_ z6LfJc^$}w;GhslEbgzg(effDRIeh<$bn#EKWT)M-L1)}4xQ1&h8 z*LO(luvnejK1I)@RJl^2igg)+3UmSjw;o6w;HOgF8%Kye2CIdw=lDbaneU-X=SbT4 zd=o-NBzQ-X4xj=f$`yGb?jhTI&;{G6D-U+42MlgAk^xkv1T@G#W*bZK#5%!Ua6+kB z!MyZ-pO5&xV~x~y)gxzUYMW>FJo39p^K&!bB=0Xd@$X!(W4l4@VoSxgU!9^C%$FU| zK$)iB@)#l$;LaI8B^bw{9Fxr5iuWuK0pznP{t;1W5e?VN`_g)RqO2CKsB(xl#t^Oqx@`%fx@} zcFnp{T~0wHSKMpstZ+n(c`u3>EwSh}>hNAcQ?p1vnHa~lTIyG_o-UA90&p`iHimJ3 zEo&P>)>8BHTZWr&ut8`OXhG#bIAem!o09*chXtOed~Ot>29aX51^xix5WS^Yco)Pq z2#oWloUxvW0uCP8QAWpkED~6$^Ca(R)O%ZJB z-jk9?kFK^9wPpdMIAb373YbhsaLmerGC^lTz=2o-wl^MxjqmLczuQr;iG$!dlIV`S zd`yvf#P$MUX!@Q|o}c6P2619I=t4%< z-a&nxutZ5>NX<&MXr_3}1{Y;@mgJK~#2K2#LSd&aD1Mm5(zbl!v~xfRMAQ}G-Z&WP zbl0i^Q_PVlCe69KMT2W>LHD_V>9vuVRRSbW@37S_c;;vKymvciKX*wfBwXtqbc&`N zY)YylpdmzJV_t7lvzTM!nPi8mYWJWWHXP*keZ?GiKqFxSP*FXo;7h!RK?#>$?Xg4u zG5u>GpfS2n7Wf_8`86(p?u$-mDn`8}xj?;XPY=YkMLHKC`Dfy}ResbOcSV~;Qp%k* zBnTgEI=LQ1MKln}r-P*|*NjSErKLiEM01zR_Xp>N9ABKe$lqYm z3fUMfW4SMO-i5Q6+*ejPM$%>sbA~#?6e97hdJ%Bm&Al{dsjt+uN+2xgn0le%AGcaph8DQjLo)#nV+<&>aetDZEYUkc z57zezZ2^~jYyFSevdKD5(Er!JaTp`En2KVwoN-qt9)z*8S$e!d9eldvuV8pvf&QP$ zv2`*J)~I-b;sp@AbYw|WKsZkB`UQcmWy^`Ncc4l$DsgyN?_ObIP625FO8yP3A=X_wuQa68m zh7gNCp=awL=X~*g00cTB5i!?@8C6>Pmm|+kz+YTv&z@D$(_#Tw0JxGX;$B{(7pA%2 z*$l|(W+)O*48z(0OHL*{ghYlTEhTrKtf+0-en!mt)%pdIu4Rf-#rICq6CZ$id^uua z;Nv}_KRwrIrrB$>4s^G~2&!8ma*sq%5#)LpnH_R^=Ix7R7AJ)Y0Yo8&AV4(`8Cd*2 z%#}|;?nD5GTi#`+cgmDhy;(&N`S6BZuYwlrC}bv&?3P zsSH+Ww(DF`u*PI%XA%{+aD^zrTDP*YLTMo3ef$JjXgy&;_Bjd3EUu*qxWT?`NK$H$ zlS>5zzX2f!f&e{Y##iHjbY*2#t>7nv!~Mmf=+Mxq`&z_J*1ppal~#Wpd_rO)i;wD1 z|GaLqOpq^I`yu|%YjuaqeW0ZKbv)hpJ2Vbn{hs;yA?#NK!(VUGl-ye}Ag-Z*9p?X! zV9?L8|0CSBjhTql{&n0wQp&rZ*2Ho2@7E-B_lY{lzm8n{Y!!@-4>-L4I-VZf7;mz? z0ScvGV#&XL$R||fhjHl9wX6Uq(ywD#f^58b=C{mHGlG4FGzcXAI-2kP_X+>6{Ma8M zbc?>PGQ$sq>G@%Mn7@t>uNn^u=grKBS$MyWr)mH9YxF;Iam#pavj6>llAay#=g9td zej})F*a(MNZ|!Q9f8HX*#?tlg)%nDpQSl-C-uQdueI)o&FMhK?0PX+lu+QfW z=M{WG)Ia=nn2(@VC43V&=JHz-a$58+{`2#g->-oE$6OiFmrykPb?{86?ZvP{MCYH` z|GxbmQKI(O0kPGDn5MUw|niw>t1%jG)lzi z*v7w~H+7Ad&5`B5H^C`8F59wZ#68OV7X8nc`f>4>R{F26z-MpeK}ks|2`I(i2i@)e z?r5&z?uvn6xT?}Sjeqa>xp)74Cv~B2m!U6oiy1DS83X^m!>ows-|<2se?zZkh{NsQ z$nLh&L__Ld$Nxx0HY7@3{yO;H{`V2TMInDu@!irQR%Cx2|6^eM9+(W_wYQMbQhn){ z|9&TlP-3TLMdyD(!(<#wBl~8psEU7w`6VW^)P~=O`EQ@|b|ma(###4_=l_OAPx2?& zU&a0VbW8sKM=r$Xp7}jC*ZfJFS~#ujKjDW@i`swxcJm{O1^?ZU-$n%S`4pw^`{xpv zpCfX(e;se1z2qMZ>fBGZ{WrciA?UZ^+h+e|=nb!E=|Ar$3I8oUI*o2Rb=aQFrQzTE z^nX0}|Jw!ePC@^7Ij;RaCWO09szzR5E|Ue9oq(^V81w7GDSuXW#^%O4)z; z74RtJ|JyhHA(a8LlBeHda@zCdIcjjfE>c2{BEf#D;`HBVOOjLOpBYYHC_}u1d@1j! zSryZX|MWw5v+iw{T$#)tByXMBnq(q7cC8`IkG*>$4Ltl;lDwXcPB1ciJ*4zCkkN4$ zq*T1!-7ROKkB&Gy3GPnoEDo+S8Wc(^%PZ7M1`@|#zvjQS=QH2`?e*wkw#HUvlcVJ- z`fslI2E_j?K2DkZ_Q8q;wdIqaKl@5NNvwVF)eI9aT~*$MW@k4d(h76cEOXdvYw9#A zcMsPJ3N`)t%KWNtKu%RW!~l2Ni}qpmLbw*qqOY=$Qjn0F?c}zq^`lEzr^qlPcaAGf zKg|DLEN}tqr9qF!zLza<*d&~Fv143WCWQYWtWb43y?OB!)zQs~5nvFPu64r$AfM0JM# zstsm6DwE;JDL9!#g&R4QJWA)V`!OocB^#4R>mElamx`ON*_2&d%jEDrD0edxxv?iL zgGJc#ecbm|e0@r5xxoNwB73Jw`1qBph!9y`n|&|q%Tx7-A`30bjTZ;F;P+s2Ix__p zL}k=Uy*jE7WNJElv6B57%DR_u7oxI?ZLHD?Q$Ktr94!utD!XHp>WLrmjn9Z~?l-o@ zfX%k7{$;E8;Ji(y@Xp+~$LC$1J*M|oF6xgcMup1hF8lNlUVL*2r4$si?p|tY7r&|# ze=xe2on5)_fV)^zi@a4?SvxeKam!Z#Z1hJOnRo)d^|t3leN3A%C}Ehn7e1UZO_eiL%jJwWREHr%)rPK` z725USO};aSR|{F_&m_-}xnA2Bdk)KbU|u-Rs1UVxeKK3|3ajjwOq_2H#!sPNBf&|R zz_qJPFYy6!UkkOU9TCZene@8iAK<0F;6@S3Ky605I9x4Y!PrKZRiT~5aXqx5kScVL z1BXC_?KMtie#+FG5#Dk<9<=mmE%80?0fByIH!nY3o4i0Ll{`<2x%=Gk<1C<4zXYlg zpUQhVlZe{`=G_)uYW|C2^*pC&E|k(LAT?AuBUxUmXsKMQ?K>ZqSge6+-cgrCEnKZi z*Ryy+dTapWPtrD9zFUwGC^F`at2**@Ot{j^-!d~}#{Zr>-CXzl1NPS^ji(Y08nQzS z)L4WeC;Vat5>8INa;;cypyJ!8F@{Zx)TNQ3Sxl)_T?fgQrE_7i4`sjMfk}GF%=PmQ zTy36C-y)?b?N)zP1(TQ7dn-mI8+A%?5!MoVHpsMj199o7>Wx%(^k=*6<%(L%TKCqh zu^kuf1bb18XO@mSuFxe(c@k?x62%TDT5_2MdhrPS+nL zQG5p%RYfq*{BgOD;uESwZ$7P_U3^Y;k{rKY8OZBE?1IbCdA`~6;{X--2}%CTtT19$L2=6K-ivmwVA(p)xIL#Oq9 ztWi07St7!fDCM!n?(T*W=YV;)%bI%n>=&v%<`TX$oa|8TnpM&dD}1h-=WrbnV6qm% zsI@27qmFEVAFK5FZO)qa99(0O&6#Q>7>Hk)Au)dw@Av?{x1NQ@t6FU>h&F5uwClyI z>GzMocW`#0!T;bn{yLai3H#|-^a77@Ld)d4m-N~jm{i#0Wrc#o`s=TaCNx`W?Q@hs8;T*yQz zB`e1PYAMB=Dee@u%U>>AbbH_whc)afGQ8ieCp$R#tPF`=ETGYlRIcue`;foL(BV0H z%70e;)AETwMU3=exJFEx$`VGZ*e!;_BuEnjW(4JR2M29>h6BZP)UF&E++%ZYw46Z= zvy9G;SQHWX(uG7-1w41E>AY%ud};I6Lb2JaDt+qmE+^ts@pi_U~Fyhl7KmFI#z%&>OXE zMQs{xN`~1#L>ZmFNxHhe`mxVtit!wqScYDAZg2mrQ(;>D;vS3b@^`n+oW{n~l+4?& zl~NJ?1ZUI6X!?OFS&>ts1~arLQ%iOU^b@S@*bxD#g_*Y|f zs-)nsu^h1+JanP*!}LwlxOuH*AGx8zhVfk(9kO5QagWN%1T2R3ABK)Hp6mNj5n`)j zw0gL;ySb_zC7J>k+SKX`dBrHoVjwL9w>dsJ!}3h|BNgpgtH&2_CRQgpQcSwev)`#W*v@iyKCJ13Z42i_`$T5gz)}7m3?_h)~t^ zv+bBlnIpsh_`sWvsc?T4ZSa(Gu=+i7U;?wSG=qO{N{5*SE;t;KM)bFkS+)+^rB)OU8YhUYVZ-0V z1hZcgX)(n+-M%mC*WapHh_$tNNDr*Z(B?o~d~|7zry_cszAe3dbHH_;uWx(os;N8T zYM$OTpZvzi;_ z7dcq5sb#dyDo#n4uF%9)PG@m&Minp2U0l7PEU3gi<38dnC1ZUxeC;~oMB1e*-IoUz z&6^@g92}gYms_ehDxTcb)n!RPkTDt@YNdl4sXgFQQCZAv!d`xQu-a!m&g~_x7uIW; zi0mS*cn)Xt4G-M+qO@+Ca9E&NobafkHH=cil6cj|D}(oqlqKhaEj!*${SD7GKqOnQBPK zdw;!EdPXN;oD9+Ig}!k_N-jfLH7?@8%KAz)v64GgKB<4NZfxef|A3mL!!w-g{zK)P zhLd^3N~LzCa@WUrx@41XF=;p*Qg<|_N`1vVz5CzIaf9ucKSU1gv>Ya|e>5q9s(5LLC!T?IuA=aNF$X&ag6qkBJ^ zW>R)?e_Jd|tkN@0FZr@>{Q-Kah((L1-V%|SlNGgLP?g3`cm8dUR+pN3{YU!rxdV6j z!b=vtd^wvbej&+y`i~WyjmK^ltsT?#(kTkt7XSRP!{$pG>l9R5!ca@sEb<ri^tXxPCw z?o>J_6u$djwn0~6jIcK^@iZD@|9o={l>Ic#5iwl$corM7iwq zSJwFr1hTVp%d~Fjz^!XCU~edEMH74R3~%<7Ayf-nYj`-z3#3u4S*6y5&^?ue#LK2u(f!I$Y4tH@ zyBOLd1Zpjyzv1(^_eFuco|Q>OPnnfXM_sld3OPD5meY?~YN5 zZ3_&Ds|e&hNT03ob(v)oH;eo_!(;v2;fd#7#c1q~i;U|-{eYoY7I?d|va)i-s_!<= zn=;f0BOq(2mLNxaqkY6nBZ}SXQq}|`gURM5GAh}Ku-?txv>Q$zwR+OR>gJ5PmNrLr zzPfejCo!~D_&6iNLgfo<`oW(y@I46VSFhC0(GXWbzAQ2EJC~^h%>$d!A(h27=o3TM z{K&|#=%}vLUZF3Bt!Q-}J*dbE_(bs;3Sd49?^zyj=~^pgP|fElBwtWRnviXp=I7;y zQTq|AihKnOgOpB9pu;VI4}$_NT4J*~&#{~)=I<)vOE zU-=|Ja{E3rbe%{&Wpz6@Xx;vhtn0;)1TcyWj~~_9PHOHj>X2Wte#g)pB~;;5b+cPN zG+ZpPMg&#l{-ssx1AV@tf(W@DGu+4qqE>=K#aZm&5mbe@ z=ce-25-;kPejUH1>QlQ_d^{4y+?>G~b{0SNW{oOtbA7#)$!Xz@6YqI=6(-UdZVG!Z zeMx4%#;*SIn~Ot(O}DO{BA_7_Ss9FUD#LAL&yLBlX*CFTc|3o|EZE4Zbkt9t2> z=VeEP&5t>bwlS0}uJv}Klg0Tl*7Hx5P3Ppl6a(@R1Zxh*q0oi+jqTBS`M%u+(!!NF z7bMiuXcVz2LPm9AGdE9|U!l}94@^ZD=FVn0_#? zW79fnYzOr!ivdL@48=t5{`y&dLQBReC!ZXC$*|brq7|QSuVb>_F|_9ujGS$gLY|pO zzEK5DYOu9tx=2WD&!Yi9OmxU8%;F)V+MU)|jsVqPEt(r5sA|n3W5Be^2Nu(U{A=NH z4JRDd_#`qN5XCZ47;leh{(260UCeFA?T`KUiJcc;$Umx~X48krk9vfTy-kNSVO!JZH z9ks-h+$Y=Hb5^HGekgeljvg2>dd{Bt(W-~40&wn}VScr%{6XmGtnGeEjwhZ{YV8Qc4RJXZKEUQzf&u^q(;L4{GH81Y_?mNN+RWoki#A&t}PElSYD9$>3 zyMGc!RO8#6#jp*7YS+TK9W6O0rTTO`yr6eV*QX!3gs!%yzOGra?3GSR7=gh}<2|$R zWGj8`!uzN>JLK-}dmL+q`}Wb|X~Ik1zuT#y`A!F?50{}r?QrTxD!2vJS@=9kLU=sC zYy6Xp;(X8iX2M?SlKhn2Gs*>K`_&1lR$Mefmf!$AXojN-xs2kfxJ7OYrXE)@3DAYg z5!2!M7*dfS?J=)Qm8wcmlfPC!7&`Q{3ib&Sbk{#ZV*Zc_vv!8&%G^|&p*eT8l+^;C^yfAO4QF%$mC7JfQsr+wrUGIu}duGCr6Hp1p-u+`SqnlY=WKb zrJIyDVpCoIFr(0PuUP-uOf_6?b`qT~o_uLdjForOHj*LSR6rDk)bj89yyVfezT5j5 zX3xQRO|HhFI@IwCF!vn~G}k_#{nUQ1WI>6h=VSbcx!|qA%1R=f7_1PqOc4-vxp&YA zq8NK(VIX?!Ptu&b4Cu1d?wjzjoHOYeGG0>I4Z?*6Hwo7Kq9oHF6X();i?8c=vVH17 zGrpP~HaMn>%8AN2e~83P#QB4Z=#{?3nBEs8_KLz~kCGG!-zJWhhn0I{UeEX7-*M4C z+75|e2hNDle;$HTR&o!dD&em`+$$MW8@UbjriTu`euPEaOD1pp{-)`PK2C z&-8ludUI3xPo{ceM+E$b-nf2^EOb{ zlF=DGhMpeh>deot;-yZukuIZ+k?G4eb7}WKg%hvr<O{?Ll zasgS&L2E@Wc9KNX4<^zQP_AC}MFL}`apGaRxRh)tXtZt8#E9XSz(_OvO|x5}!SJBQGe9@w}qPzSY_ zuf7ZR<7kx`;PA=;1qP+$_gZ;_t+j1$iYB3*gMRuIBagpN*YtR(4^4p8!4h(Uo|cK& zR)0YIc|b?$3zt6o8ds)Z!SsD!fGVl^4JSE$({_RZ?dx0a9>`8F{4%~f&2Z#vr{Cu> zd)t8dVS~|QA$fvT%%ZBO)*bZlI`N&buvq?>D78S03Xj?0wOa55u6;?Cz!-C&NBC!) z4^b{O^}Kc7M9phY7T7zYYJWcNf6 zMMdxF8v9Uqq?%h=2Qdm!RXc%}^Zukrjq7k)NCe(Z<*ZpRWBq1Gr0kbh{t2hX5~k?e zzKuIn*0ik!5%>^#Qvq)v~`y;HTP1+OPv!WQ{9YfNFa7{k*bf4IU=gW>TDGF2 zDtQ)k^(>;U$+$8gmMl^3VS-$|!rWfg8FoVV>qnRW@u(=7qWY<0kyO+!W{a581>GRR`C!3OWYQYt(Hn@d#r% zxOI9w_bY%%$jMAP!ortdRO~-v4pV~cL#b>LhbINbthUsuJ3XBnac*gUNY(LU65Foq zEQ_;nHRn7zf98DWxIQK-GwWJ3wR*(I6H9H)_Fq3Y#J}HMw+fuE*^wvQ!iS#)yg z=WbOcx5Rqwv^eggEP2+5m@4mqdmq*s{dz|5?sFrmR0YhFnl8ismvtesaQ|o9vhfPv z*2#|3VB65mmLa?j=)I=_@t9K;qvS>teh0amt)=Fl&1Fpx~_LgaLS1g$CGaX9%;1X(U9%g{4}m8 z-Gc&2$;RCj4ybWrw$os0stjh>C#~jzWvS?MD2Mvyd&!}oJUd*TL0I|-7~VxKB_9lq_|HZ%@=Oz-k+ zUT52?%Jt|Bo1@{DZnyL9%e;feBTvtvvhfv-=cicYT0|7GAOpbgNbF8&&gygB@HLn+ zt<>d{1>R8&XJz1Afhdw)(AwzIc@F5$sTkJ)oNJ^BOX0@Ufqk3BVO6moE$V(7^Oiqf*t|7k5X{1t`@Rk#isAjdxgAk$zWb`-J?oV)AMQU>Q+N&c?Cmz9o11e zFBQH394QeNCnS^SuEkhLy@|alM4q2;^<}ID=fEWrA!*uGGcp&dITAx9zg{i@;UNjW zy8y@W?L1-~ZmQK+K&D;ntNg+xx)0rH5L5{AEuz9PopR(d=Q4BhLZ70+)Medk76Ujc zvIt!|Kkk`5{bEM{mBYQb=*Q3uz77^_BBP2fbkKS)c-p#w$GGjR3vJ$r!?wVJ2(8hQ zSI_)QSJka!ez@rY241a{x5BqPc8T>a9gvD?X{<5fjQ@p5-UsQpBpv#zfVgR@%3X1Lj-Ss4CGqZ7SkA z9c|N$`!T1&r{E@qflzdV5PUTVrl;E4k}dxu$!|~32#%Sa=NU^k?WGkXR==M+dks?D z)=OstnTDGnBBhWDh@@}%g64q2n?O@Sx2P{pu=YKt?{(O|+XL!D>(R#@jmU~u>yjlqY2q{?jP2hHABNf~Dl z<1p(*NyK}bzj*Q0CA5uvh&kI`BFAkz@)v%Kk#7lr@-3G>A_q{*Z%JGD96IWdc1CT? zgGbHG<2tXE9%P=X-nP}+?6X2){L=zpt*qiM`!;>cG%nRzD@~;|H{!Jvn&rkRXjtwr zVF;0cfeN@j{gl4?R|8;0Y|2-CP1tP)v~LKaKCvCLdC!9SVeUU8_{Dy0z0hLksnaun z=^u+8P|4~p8&$ay8>6ymvu>x=32lneV8Vb4dQDL2;1Vp8bnkn+uCvVjU~u+0Ajc^P zUt=lPBEzk@hHihX{&cZe-o1HT>yYLYZ@@JEO@T{C9t~)Ye!5?0! zIEO{Yr2>bZ1~aB5dqZkPw#r~tWo>7j5)3G-uiO0j0PTtHfS;a!jC&uax!^M3jk^H=hPEFB`b zZI!0jnEan2?`^Ci?D|XGN%-&MoaI~EUPeiz?7uQC!ypN&#YvS_Ihk+&=$P7s1lV| zSFl~L4=)7Ol77rppz{HZz6xOF=n!kyvJEv?{^BCRHoY?^EB8%h7c){zp97he2H-Wj zErb5(+0)F!&n{EZwzm)moeS@wx82IlB`R^zoF*?_v!VK74>(y1?HSz4ubsV0&r=?e z!H~nCL&kVWJ~0sK9-jtLH_g2LpDf{PR8opj&>z#Wn#Fxw?)F1UDtlGUh_SZ3d7-Sz z5lob7tQol7?p8zg#0&0z!^#1bs9@P!!L6^+C+j|^0LXG=RtVOn%GiG#UX$^tv~c7IZ{%hS%SGSG>6z1;C*ggRU_AOhqEV47}B1;{+#zud)D>II0P&ljX)$?p~lYCb?7@-HT+Ct2nKbH_GJ((BDi~ zj(mAHca1NtBf zL^fUV;-l$)EYMP;TMc^$3%Wyt8s`*}SAXjG`jr;scfSH$J@9MZETG$Ao=*z8x_bo5 z%0NkW+<%Tkd5Ba-^KL2Y!pWwsg}wpgl{uTXx7Qcnz+7Hp=bdpK%9+{%iF7r+J=C$k zl~v&zc3UG?BCFktaISmYRkHn?7l!9I*pXKQ^gT6^XJ~rjqhTptkMStq-%O3*aGg62 zINp^Sljvaa;m#edfPb;7hlEOtOn(U4RUC0Pg1jnn2Fom zHTmMhef|+2mbma_53N<_2@ZjMnN@t%uBNjNi@Py}eS*zq=e9w`%ePlC+8!rjR1pe| zKpzmKHnBu3H`8`6)$<_KH^Z(|Vr|m?>zKXrq_WojzS9PJlWUCYP5u~n2Vu{Q*;Y9o zyYpdqJxU06YToyQBsHN-sMU#V8f*A?-KI@6j42opg8Vq+ixA-g9L2+~GXX}4GID&e z)-Icb$PYjB6~seB0KS%I8HA)17N-O9?)=Tu0Y;|teUBX7oL#ewuP&%6$Xc7t512Z- z8E+nn^8Klb8NL_jiKxZ!fecX0T=xDQHPcvmcH{XW_K`$)?Td48$5_W+y-Ho`V}f$! zTwQ|<-=1s9LKk8_(b`2Sb_boc*XSJ%rD;^vZ8n^uT*Q3peGq7=(fbBR!-%(b`|OQQ zEW$>tY>IJxY()hMDMf1OnnZUP6Xo}iGf%6&GCXG*uZws&y%hG_jX|Ekv7^xhViWnW7s}ye8ZH#^#jWQ< zYW&pqU@ew@1&d+#N6VZXlg*`cyVow(U^^fCv3J)j%wm%DnedFeeBJBWzV-MMQ-%Gr?0wK!mCVF% za$@Tx5Rwk>=JjqN)V)^=*{|2P58hoPUT%vaD$d>!QB&`%i0n?vhFrK=YC2v&Gi7mv zA|fv_TwBDvr0JN`A^|!px!E4yUXhYpF0p?a5)O3FZ13dI?jMm&M|7 zHfzKEnbi=M_{wWeFiC@iQC3Pb6BwW<>`oxMLvTwv+++*WnjI(>1=22O`>l&0hd{GS zL7&PF`oX>}xqJAEssL|g;7hgWrT$eLLm7ch|W3df7kb|Z?A=Gn`D>g zuGd}my;WLeL2rPfugB0tz-Aunb_c@@z4)fySHH@ZEhj&5s#ihk zb#1j8h_>hRxF0=E0$l;15@J`}^wdrSB++Gpx+kw3>RycFWk+U@`#{@4g7bH0x4q+X z_x>-9YHo5&PCS!>LQHEFt_W7u-53ye?*1mF>~fsJIrS8l?bwsKlc8(&HPa65)HSxY zFWO2uoLYHiSEp_NxJDQ0Z}Mgi4p_A3all1Ap?|OM>lcZ|`ekzUCZ|jjC=h1wOiG z26;stB}+xPnc0Be!6Y)YY6RqSuEW{(N7rwgG=VlSZVmIQ_n#bqL)-vGroZ|&zMtbB zevp(p`ZT-L?e%lRqTZ~W8sK(7(r?UO(QO9)er(P(@ViOjHMc!&UKmmM9rQzw>jR-u zGv_{B?1!SKD(u~orV`luS*dhE?izn3@Y0}BdSG>gm`s5R%-wwb^$t53vTSGAO+z_u^sivOmv)##TyroF95gZ?QI-weOo!}2 zR^Yxa?YmQz=JjcQp(HLSXbo>Y!z*$ko@U~a4)`qqx})<>pTBQra&6g>^pxk7 zwsY_uE^{Z(r(-_pr65;3&n^G8WahOXcL2P~1QayeskzO`jhRSqio&w;!tJz-+ zPoUz?R~h7LL38H4%iwJeQH1dvg~-&wZ=nHp3-&5Hm%%6=R1t{qd)h&Rx!3+j(E;cq zNBJbfn}~fuIhjxMb`-#f@S2KDkE)PF4#2uW&sw@g4PU3*)}-E3Ayb)PvqaEE z2x?zvYH&+6(wCdXOlAF2;!lr}x}1tKd65r)SIPlXp}Cw!-jX(%&x+A5W@|Sv^}Ed5 zk2TwtfpY7|`Rr*>ZK&KxAw7YRo)}>KdstzQ2uZ&>*m&ZZFWBo8_*|_2n_^1Dd=8+ur6U$ zTv9-lhYMXeVHwqkHtXsc&;oc;6f~BC5>8%`fdQ)2nCF$5%td!l+vc9C0B*PT&$$%o z;RwM-#^)ARNkyP3(DY1P>PgVVxo7E(o`nzZ9yVS1@BVh!I;Hvfi$)A!^|(0Yl)Uu% z6uU}>`Xe6eb6?{|gV6nlW=y^53t~nI;$bizM zG2K&97#KTV+T*@?xlpz`#ZRR0QH*R#qx?*(@I>fH6l+I(X?T{3RgQls84>$kkT>h& zH00K6hCKL<=NwNiZtoiD|0@q3$f+bbC8-NJIFL534!*M?*SNLo(LPl?Y$ElN zL*263QO>x_@#I*nn$t_l>pf?N8z1f^ii?pe_wCT$RjJdc>=C&n9rc>G*2AGz76Wbx z;SEn#UP-s-)M*td$ILr?Y)0;)p08dAZJ70;|D#M@zkj)<>19<&d%KWgq9#@tD8R8{H{F@32B=l->D#J zH5+XUHs{wrjI8+4ffZst7%W$_YI)xsP?n06Wjg&;aE)D;FM5iV>0SLY7jmRaaFwTM zFDoO@b9aBNTO$^CO}OEKqSs{Wed-vWE@3w_gSS5;2+KVhmjqLGA1}GT*TL7(h$SSX z6B7P{aH&T{4Y!dUbsF}jU&vWHs(At0kUYNh5;H3H`ijclcMedgL!%kuj<>At+$o`c z#tOAaguTG{J*qb|%8`Ka?fDZZUf8bO6QygeGj3Q1-_8+fsn&?0=+n#O;OmD=i*oOZ z7PZ`-$JwpvQZ@A}l)C;-+KPRJB#p#~$4=OG?mJYFgpk!MwiG=jCL0frXjHTQ7(-FR zFhbGq$v5}GiDSoAaD5f<5r-_{7AFYkg@iU+o09YzUP13q-bc zc)MEo+7MWlokO+u%B}1F$S1E|qj+kzRa(|PmYG(1t8~$3qQ42#;mxV^P%|R^h9GRb z0_qXh=rK*grlJzgiL0X=bv?Q`M&k&YthvM{TxOzS*5kJh`w;;hN|0^Hyv|Ill<#F`dQdZn-CZJGe2vV@qN^A!!0(>w!wfHkjwL zYc~XLSaJu$?=-))b1d(PhL2TI6&hcP`s895vojcfsI?lL><&2bBUad#_ zbgW!ZcD;AcqE2QjSkWd()2x_TO)5INV=EqTY@1LhSCJiYOmIMoRECs+^?zVxR>-t` zYB09zH?yVJjrehn6;0#>96o_uF^#1(|2U-qm^g%&eH-0^nHEMe42iH~F;T=|bmMQu z6o%6UpVzF9F$9j(Uuw8>BTGO>(9c}$O-=B9yG22wOQ2E|6d?dJTizkbB^&-BTJ0X^ z%q_3bKBXiC8}B=7buYkE;<|j>oWXD8J6tv$`xMNFd*N^Fx|$nNZ-wRYKC|V0JI-4>fs_*!8(c`qKZ?)4sNb8cxXRR2=l-## zC+*v2ousFf-L18U0?D>3k>Xbz%Yvo0ni}?mIScBbY7#&dx?PC8ljm?zJS#pN4I>Wa z78Bp$wm%XVT}{L+lG_QXWh-ND8Ta`49hF}5czUguCd?gZvAZ?v@cpZ5WS-f%9v3&Q z+sh4ivU6|!vU&ot_`@WRxy(BBjz=jr)uhMMee{dIbm%t63T8HB^Mu~i<{-q;y6@P> zHPgo~EFZtgx(t7w?DE(W-R%jFbup`z7>_UOZN$#@jI}Kp!fO`VJMN`7d~md}-3psG z6-&oPKI;gNHQU_a>y7wc7eu(1+Qo5xXK8q~xmg-_@_AEYy}b{Cr0_ww;T!Uj5WnO2 zrnGnfb+g-nr&~VYHT&$1hwV3~kPdRN2d0FC2^WzOHR&|?01(C8punAN^1No{;ej_#m~&9Cbl5~9`zD1LbXbEe(F>m4g5*D!CO z9ytk;Cs9B*=E{T(1+wfeu7<+cSbJax&)q7>aZZSqmFJq!Ebe;bZNyrWzqXaHP31zNm=kYYlsh83fKeG}eA)1_xYz36&Q?Jl ztB7j%lqGSmT^_POSDr2RCm^F`H0FKp&oJ=$eIC%CITy(UOI zb)2F@*p@s&ZcTa)=ifE|6Y8GAat?PbEVPQP{l_v);)D@TSeX@?`@~E)@3l&|RZUf`;I-vURs)uayJr~0Q(R#!VWq461!0nx!lfQYZ^&D@mFrZjE%wVmsiB9*`| zTWxmm^#t{br7QCak=?PDi>uOnrOOJA@*kGttT7?WF5_V*vIZaQpt|5h(u`*r+skp! z+Oo_)$IGom>JgYzGhr@*$Mq0fcx2jcARcQc&ai+NG`RfxLmP(YcPx58!j5bhTx8AD z&JpE%@V-6qriVtqoR@b*iZ%C)7aFY;mFie1_th%H`@788G=ALV*S?ay~c-67CwJLQICT@%9+i+b>$MO5>i@vXN{CU^z zr`xA(1C7$PL=PUEd``hf4 z#HkXTE_bMvm{Qtq`sik;cL82 zL`yE%2ui)yv_cz&&skOz2In3p!??@%WNt1(s7YB9<;cg^r+Y*FCs4C>Qh3)Md1k~- zwTRxR2Llej-*|6d%Q*Sx<=&3yIQf3NKe`R&JtYj;%IeMja5GEfndz_6L-GshM$bPt~n@&kLSmgKpzUNc!U0rq_7UOSJl^?b@c0+xE=cs+W>1@{3*=1R-X07I| z(wfQpg4QB0E}7PKWl*+tzHW@MhljwT3j49P>YVI3fSdPC=(jTIR#8!zdf$FQxxQ{? zL3TkUe_qM`ddZKc8DCcag~W{^MS(8@;BPrILgcDBTUmq#EMcC=?D|-klFUbIo4mGu zb8V!ot;5RVduch%XCIHG#(B?;&@RJf{PVR2@D++eIs(OCm4F>dlxvV<66}}qRi>2& z7k1ujCidm%B_M7)&b-9&pq;(k8M`0PRa<>xeo9sDHFmqg`wFMDS7>j)^&@K{ z8ai`d>d8uVae^HM)oda~T<`0t_!f%293WIH*vW9ZB~nT(j4wBA)|9n3|YL__6ydN96?Q&6)2j^$X~u#8ULz#$H1(`WKP$AJlp zLIaaBb0)G*F)CeItNS};Z8#uQ_P$bTDj!745I8^BL_~Mlmyi%UC5hc=`}q|BjGWDa zusu7jW~qLgIh4>uJBx5diom9BlU~#9$Si@AK0DH8I)ZAE8QfJPZ0e#x>j1Fsiy@Kt za}Sf-+mY1btlbq(PTR5k=GQ9o(XULyS4a2SX94J>;p_=58A}6AxI-nFSV#ZpCDH-| zA5q%>+|eL^%`+V+W)Gh;e;LieWw!m_2Vid5+cZ$uZ;C7Z@MooVz;4ny8;^tkV0mM0mSNHr^2*=LOr9+ z?gS(x+hXQ|#Lz1%EKO^1P0|z+4`;LQ{Jbjn7SCrHj>c1*zGCH>m6ICE0ni?EZ{`bf zvmy-{`}l~@QK=p1X|!lVcJTLA)w(|0NbT%wY20X|RsuXD!kL%P(ChgBH2bgkr;eg` z7V(nWC}t2Z+}hdS zxC2ZtE^IOB1}yl)^|}o+QDQeLO7qDv>Ggb%V@p-QHeA|i;gp00M!O>f%o8S4_=Kt+ z1n4(;;XlW1xVPWRR7W+kl!k957#9?W1Jk=#dUvAU**I0Hv3!ZNB^1?~D=B0*UmIG- zasvRaBCrZfs4tMav*0SCBV{5s2pw z`jn?Dmb5)jDD@1SiK_MA^Ec}n-5*SlB!~MY8^UKgZnDIjU$Na=QTNJ7xg^{g0q2Wa z!v>?B$J2MP?chAtTTn^I&A|&0JL|)s+<6>0rtgy#cVu0 zxwhNwB1uG+%p;tpY5t3G4nls=$WubmtxKV$)%V+&kJy^S_2w=h z_8a*N9+x!K^Yx2x_Yl>%3?yhH_OxymS3xf)_4koRc+U4i96-mAA zcgs!eR#cXt9uK%?Z%jYh2Bqn7O(aGgWAGEXTy0tyJ@Jk5x?iXkFdJ+96C~ zr*8Z8yP1lzPC2zXAxkER8kv9eSx^2snK4_D7BCIfQY3jM^rnXa9FXtCv>Nu@qb$7S z+*=kNMn>L=CUIzoKV(W{v-0x*er;orNHxfi*&hnWegE2S+7CjM;h>4`z;B`5&)_Pp z1Rve};^6iCnAiqXUVxB}rcZ~d9r5MrUrqx2)&~ucu%$WK+%&P9ab`*O- zc?SJCA*Uv$D0G#uXqpnMK#EXn`p%dg`@N**n`);&23HM)G_<$njD^2!-LiCj_v0{{ zxBa|-!FwWA$XK1xM6hkM-^<-LI$(*80en8qx?(u_? z7jNu@TCGY4B=dQus3v_6-ldttD!VPbM9Gl)wH~=m(#vl5%vrnkb}RWlnd<)db6qf7 z+@hSHJ+kj(84FA7;xz)B&_JPs2C3s|Y(q`^SPNWI@qqw;-u3306HiV?WXLEMV&%uY zy(cW*#0glIHEx{c=f8}#7{)D_*zS^P6W#tgcZ89GE zt|wreXA-$Ir#PlWqp_dpva!bnW}kvw>wQu1Fc$2sH%EJZfi1aPN*tbJ;zl& zm>fID%d*ivLgiP~aWo?#I62i@Te%WO$=iz~REx#69;jqnhf#t1eY?X{4Q#x+i`bUu zL4{^C_3=)T92Yw(L!$oD7V1ugT;v;7lhF;Siw-IpIYK47PEB%45EUjq>C3~x%L%dd zFCQiih@}gQ1?QEEW+=u|0-Z1P8SQNPp|`!qZJ^Sr@bZG)$ z0=MOgh+-dpesb`TLghl__U72YLFFobZLI=6CCO;8yh0qAxRp|G3yncdQ)YsM4`byd zBr&lA%2;bIsjPN8TSGkyn_Lv z`@(&t8iH{J(F7b!?r|3e?p=V0ka^VlMY$aN68U3pyS2B!oTx=i?@W_Cpsi?=cD=_tonGa-GpqOVmigK9@zp*()Wog+VLcS zG}2ryjSR`h(-xWg&Aq=c@64_L;Mj^O>>`NBV}aeO;?j;tI(g&D`PG19gqx-E`j^Z& zL7d+ze+t%|7{M(ouBQ7)m{y_X-8ItxrQ)1z_uI{EMss)vKNg>el?dt{y`bnb{N%il zxyY4O-E<2D#b%%7m9SxXV%QVc)X_Tm0|Fmat$qWKp$S@3HZyWYCLjen zccx^rFW(D|f3aJhe_aNC5rLT4YdNgNV_=l2iMo$h+m%auy`SVNTk* zbJ^N`B^hq<6u5jPrOMsv`!rePAL=!Y@dub(msR9JTek+tc3g;K;m`|3i$PLSq%B1- zevN4yc6y~RX9et5Hl=~{A&p1J$z>1t;i6Wt+&3HJ%K+r0%=lMeJ)V794{We{Baj?+T$isCE)_SWj zfP>Js5z4Tg!SyiME(-OvDUq7_B! zD$fU2E8F2y*abMbtMA^a*@$-P`Rz_-cTlA}na}AR45HP1(pW;B5R? z{E)&ufl7p+S&QW`ETV8xcQy4@lh_z-e9HlGtkBIl1nBiz0{ci5t|_UGDO>1Xs1P-O zrs#)w24!wWvnriDg-;I!nGx%ay)!RICf1~a?!f@RSkxtsvtT9cb_7rk83DVKNpgLd zf9E}HQC9=;sxrC>g`gBKSFCY0Op&MyWZRY*nrF~FJ5q#G-O*;sFv>a_2Cr$WqLFDa zQ7%cto~bDcBJJ8KaUW19Os=19UOt%^7ON+F%(-yF)H|N~D=5OeH*`5k}xv<-oZfVoE_=A=mH)04KuI zZSG0(p;T%DOCvLsWnCU|rY$Zk_+1^8eH#(GJXq=MVD=k%_-xukgwMA~9~Z1GJRiZ8 z9<9np3F_h7@^!h;cb<&gz{TQd^QZw*YO_55_tjanCux1U*GA-Od&!T7 zP;YyAjl{cSm*4Jo+4fHgvX&bfLwNuO81~~+kwj1PzM2lMmNekk24HtoO5tU+OB9J* z-X3=fmsNEuBOls<7SBppN=+9{zsXiko6BIE3U-}Q^aOu>a<2E1!L%)V)`Zsy5X&-9 zkkBZ%zL_8o9X{CAKNZ0FGCE>dkldCTDaNj?SnG+n7Pz@34m?4p>4(1oV#KtXoeB^0 zGy_@N2{BB17p}MUO=|aI5+Xt{DPYDfY0k0HZ%>6A0NAw32LWSP?1KRGlzY{1P)W%% zxIqDa0N>2U)O_H|-5XlF+%xJ@_5Dr8!H)8jtjGHqw}hE+MvoFLobomTG0h7M()T95 zgSz=$$gZwn3TrQ)(gj>J@9KVa$<)D%SarLD8S2Bm(PoNGv3YZ5Fn9XF$8#MZ1*eJS zQF^>p)2?r4OFcJZv#YQ(;Lpc!Uh6hUdh-;c{v8*>k|*&OMOc5io4_h9npYkg7Vl(=|J1beab6>JKUTR3LC=(>m?;i-z0P3NBghCCulLM9ukv{6ManBoNwQEDLkuoBnHJI&6n!@E{JI(;L^KI0@Ca6+yGjogrs zVsy_sVuG?<}u*IkO{H4WHYx;5mzjz zDg+0Jtp;w`NS;V5dL|>BO`7n^>nA?bDElUgb(yNN!GY3Bw zvB-Y6kDpfjW^>b=jhxN_sqVhEDGY4ei~9bAA=F#_x8>DdUXv4np|Q(SLEbPaRL>Q8 zY@$Y~baZTJh%=|6xS#o*xsb`HB1C&X?Ig}<+N8&&07i*@!yjaIRJq6R+ZDYD!l z2_#Npu++s2!Hk0*h?epe7cwT|5n%#r5K zn^9(zSmUK_kTLKAGDpSiEr_3Z4$yeTcbJVPfzpTM1I3#i7Y+a>?fNjmH+ZQ@wEM<+ zYkE>Hq^$Yu<{uLsS??b^(P_-n}GR;ytTCn>I3# z&9w(*Od~TJX25<$g$OQb=194~@qefwD4Pcsw+csuRVvD*; z)@@mTBVPTI5pfu1@a~S;Xn{$R?fZHM12iux9hq{0xS*o>As*xoVN})P z@AGBXLD?3-Rp7~wQ%}KTRPb5G6|^082_aoj(kua86;LgLR*mvj^`tn-8J)}{4!GdVWC+GvR~EFeIorX8C--L>15b<>ys5Lux2Y^(&EHfT@xPo z`tIsk3NdKe#x79juO?1O0zztxnugSzC}(w2 ziGIY(7mG7heh>BN-ws?26sEMc0l;4*Y7ot>2#OnK=Ruz8da|$o7QSMB&MDi|8)nv3 zpH`0gbV+!yZ5z%P%7aCKgkjx=%AKCi(bNZC2hW-N(dE;eL5C&2`#aAetSxTbjIkh- zHs;in*bUz{tRPn71`f)V*iA+4qXj+jIvNovG9u<6(swE5y&BM;!^Zt8yEU%#B!q!c zxGu=iDaR!lQRrd5&B$=e#f6iYCeJ~%sZWebA57ksPM+0Cu=W6~!M5gB<@a|H)1$gT zednP-N|wuN&V}ilGA^8o!YiDbnA`g1lxnxb+SGE~DW}7dIrt;0+6@#qb3)`nntqbS z)WEUC#3pxSVs4viwY;$9^u6=NmgkyUo^NKEa{G)Dz(yGfgVLw*BR=0+TJVwA4nqhK z`RZ_`v|lo|`rYWM6q?tGMATF~QAqvPnOjSu4mn>?<_EnFVGjk=RRQWeu(lVgi;8Mt zIQ_1yddK=C;pE!UvlOrM-F(p7KKZgIbm>#DH4j_T4!6Nu2viU${db9a`pD^b*LZjc zp(XS&yG!A{(>u32L`hO%4bw-Di#*|%m6&wE936Vg#+y{i&TkB!@dn!yS0C@%@JRZv ziq5-}52xHRFnrW|_l-UgSo*8}WA-`vzH#5rQOMGISEi=Y|0dDrRWGG6(RT`t{q}R` zwv$f8Gx}pIM#8`U`ZRQJ0!<%D{TQR^aZvDcO0es@1Sax_ZTq7uU*z|uKS^>+`@B@e z(K98tb`%sQS?R;J-(BSgFNy=(yW{8SkHWk=zS3|Iznys1_4v^jn?8lbc=}-MC!7T% z?etqm4Cc04U#X{)vEaV?OQ7gEh4u7X+}8gyCS4%c_su1JFNLF%1SJZhsE1Fc9&WDh zl>5)hOXTL!AH9(U6cZ_--|Esdli%lnhdJEz7^f5`2PQtS9sTd|tASta`iGhS?C8xo-4ujm#l^`GPl{a^e(_B`*1vA50)`V|+6yrEL+kbYD1Ma@$pN8bQHy*(VwdVX?X+KEnQX5oKUcHX;; zzAT^q+OgU6m!IiJ8by;KZ{De;S#oy5lpaz}?S)cq1_Rs}5AZRRh-*3;U@#%8Kg=7*z2}XENr1Kt!aLkb`s^I zdUUl1A$q^`=%1aX^jXm=I{)_O)n37|eFk(wX`b&CsS)`?KaH>zP}rfPFW!}Ru0Ccb z&@XPbu({pd{P|Y-siO;=R{e*Uxu*zObPfL&e^wgy57&1DPpC+n(2d@tL6*C9t@NuE zx{ewZNjj+I(C2m!KKW&BG9@8--k+30V+6|RriSM~q^AtyB|YdSAWYCx+u z+`Z}J;+Mj=+iCcQsbmY7Zv7J{jSqIz*d`WYHT4_5y% ztiYZQOPZ<4(xq(sYNR^{L0+D&ez(9|d3HeF`sg%9x<4N<1n#J#Fs+B^aurLzp61t| zrpI_`)rvShJ6#oS)kr_+t?EzVHp;9@KzqMb47yueJ4bqd#Qh7J|KS#w2J25vI?1Zm zc}bs}%5dk^mDq_E-$T#!;L0y&WL$8~K#hwoBJ(dlUCR9BR{mN1tzT4l_nPacLVBCp zb`Nmz5DwE_hikbtGn9~8be#EUU8uJODP8|d1b%Uh^Gek>(Qf)W`8zUyD0l z5>xM8i?^ja)}|ujkC{kYIQFuiwExl9SGs^UpJgfh*H1ziWJOum4h^TjnGKd4w`%(J z=@No&zu(Ee*z~fu?>Rd5mi5JZoU*{W>lx8c-|1sAqWb@LKES#-u6W?hj}G~mwyKtX z@9ZxLzx>PE{Ks+r`oz+O+9P|CpfSm*PWO0MOr6d&HD!Ob&bmaWh&{f)OZ1o1`iGqV z4?9J#Cx0Lji=}D($IRG|ZmU*usvukFA0}nJi=>mX$S=D^>C6kdIa^ZvrCMd_cA38V z|4rkQNiTeV|EY>4Dr=U%Ou(&!Qm@8%x=Sp$oA5^xU~d>5NPR8dJWltZ44PNdW~a>_ z5e>X`Z=a#N2=PQ%s*%aRBh?NBHdQbfBVgEjK1{O>c4!+E#M(y zuW3zDWoQ4K0tXnJ0oZ{Ka`Q-|2QAJz-F)sq{Lo;ySx|x!$ z1W*TmFVr*d{y}*XRo=B++>4>zP=3X?*qj!&?Yk45@Rg_Y=p8gya#2}&BgbGj{7;x=;eQ?8i>78wh*V^V)QSh&M69Ub?uYDFBa<=;!>i_m6yuEeM3d!8EhXzd zL<}c1=GbJJOS|3F?@81+w%d}lysOl&P3LX5c*}5=MPpQ#gcpLUkhj5;>G-b`+twqw z5dob;7I(Y^CrVP+td^-4-7;Ve;X8hxDYcwv=#1j>g<)ZQwILx`z)gOrOjmwyld94G zeK%}comE-ZEINs7y*l9Ad;hLSmsquXwH{%PtXeu!*AF!)h9;trqUP?=CzgT^a+4&T zuqo0O#+a@2=mF-g0((fz;-l;^-W%%jSmG^o`SGetS@V49J4wng4#CsgzUVsTg9-tB zR&sN(7-f87XYU$$%d2qCqpqt+%`AgwlT^1biE3q>Az+so(N@L5B_Ez0c*HdG4h5lB z!jm82sB(Xhjco1Wwq#G&AOfW+1nU0&c>c(p=z2{Qg>-++AVaJ;KxyQ=PwH+`O>rak zqnS^xwf6zHK?nJLBc|X3$*{v|-2j8$^x-z@Pv?vAxQ14)6W8tYK9Y=ge{ZYxHO)2e zOkqWHrW{uZz8R-@?^nweYtoA5rNVV1X%U!dqUD5mI z(|#9u-PQ@ACtiKprk1J5gHfZjnomJ1XfeuYlQMgp^}|&1uI&x3kRMS`gVUG?=Y}@7 z?2zSEiSde<2TG#bZ4Y)Q6))Hj8LOkrFu70ldN(S|D=g#G=De*)4}z{66``jUt{KW`OnWK(cu{1hK$v=PJc2yj{Iyve5WHNV|B-V=Lv z(_Zm$YF@CUH4RP|&Nr4yRf_$0=K??YCDk#z$mB}61QN`=2>pn%USopt&ahSB|5*6A zO=2xDjVT`5Uphrr?z@u(akT0-!>|$IW$4S3(`karF-D%=%NC1H8ysnsd;-Em<)Kn| zOao3N&}t{vys?ln_fF4jqkzO`;kqm9AX@zF>O-H2yzQ24a>uKi2ga+|v1)e6l|Ff_6MA1cCM%YzJ!}f+<|8KuW6M- z<$s&_)X3LMQ63kIj`N&&VwpA$-LLJBPO(Z^a=!t|U@S}>fg{7e!yCTk z>cY25sH0bpBy+b+HP}NZ>yZzwV{|6&zzpwxR literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/logo-icon.svg b/sites/tomsjavajive.com/public_html/assets/images/logo-icon.svg new file mode 100644 index 0000000..5c768c2 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/images/logo-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/images/logo.png b/sites/tomsjavajive.com/public_html/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..43291bc90ab3947322737c7c6408cf3b7ee8a157 GIT binary patch literal 80025 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

7bci;d{^HG#
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 RhgiU&s-&q{DgWl<{{eVj&G!HR literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/logo.svg b/sites/tomsjavajive.com/public_html/assets/images/logo.svg new file mode 100644 index 0000000..b4fd11a --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/images/logo.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + Tom's + Java Jive + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/images/og-image.jpg b/sites/tomsjavajive.com/public_html/assets/images/og-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1122d782d839203593cc1012785b97d64e34d208 GIT binary patch literal 52792 zcmeFZ2Ut_vwkRAG#DXAIK*|=8-a7#jX(BCjkiHQR=`D0fw%aWT2#5h91c-D30!r^} zsnUhedxwPHA&~HApL5&0_kQ1f@BiO_&OPt#wbr+?)|^>uj*L0_7&DjSm-B$T+E28e z0IpmC{B^sW0;mD5UHxPG<9v<0QCz3^W4m$vI_347H*Vd!dE@5IThz4Fw{FwizIpQw z-5na*yLajC-lC>wpufvNzP|g%ORoI!EEm{{Z?1<#no?SFch0(QSJda1}s#?JC7p3QFqRG?bL& zZ3l)PgC)K_lLsAPmEW8F}QW*F+U~XAOBKqD+T3|)obzR@sEpv{D(&W=MW^B zt**TP`-_+r$E)8d-{1a;`LXaX7J#xVf8PExHvax|15mKI4z;+Z@m~7R)87;a`gy{i zEFPD=a=O}0nRuI@+2GIHf5wKzuIqUDJS7?+e0s(C_uC+V#qQOCUzo!He>VQD5wiN< zKtioJ{eD{%VBvkW=ND#cK-oMc5+Gc2<+haPKmV4^ ze23-F#=kv6mRbMt{iT2F^*R3i1&u=L-yeqm4iJQQ)=-E3^5^MqjDuH)Qva4A{_!Is z<9~l*R!IHj?+(P3?(gG&`n~_D+fVcCM8bVA-p7gMgxT=VkN?|I0Q%_ucjs0Bm;2w^ z$NJN|{m(u7E8l{|DY(D)BXE%3ZVSTi>tkqA8(5@|1A8w#V>!}{xddw{~Jt>Z~OJ(=dYgdGyZw{ zo8kcSteh-tV`QJVqa>d9ef;{O_gVQ1VT*ER;fa_(JN{8o;`!wBFaHgg`o93-3JweH z)3F#9I85i#$CQ+OMp37RxVjkXp@5E%AKxhM<}F4wtAD7MqLY%L*6on+Z6N&~vUSEZ zhhCm>CZ%A1?1xF6DTF_aT#E0f{lZxf(+FHUle4%4|7b?w!nhc@{`I?D znk%P{1UssB>fqw_)T*hG!b6TweY8r!54~s&J?T@Q6v5{w5s&s?u1LuD=`<-kF`S7< zwAufMe7&R-IKt~LlhLCQV`!vbZxWDF(%Sn++ps|;bnHdk>}%vgVlckO!RE&%QD^qS zCE#IwHtE}40$8k-Z|D@n4>me^3;({oehK)Z4vO#D?K*6tjbu9vyg0@Sp;ocF6Y|8%!x>Q#%VcWJ>Tiy;EM1^D3;{#<(yNut?wg8p!d32 z5L&J5bg)U5Ojn*$N8#NJrF!233!i<5o_EgiiNyy`=Kl*e_&43`pa1t1Ah2?^`r3IB z6-o5CO8~YdVE)`1=E-3`zP6v-c3~LwHGQGg><6^givG^GqY-I*B)cUdcfX+~Gh%c< zyZbEQSeOu(|3g>91_Ok|<0Pc~bsrGclk5@{>{b{q0aJ9OFC@FMV;w>s2#h_^iTmy7 z38(^Eq=vT+;U3~11@RtgXAc-P6sDBHxmbLglaPx=wzE~Wijjz+1=gYRg2h92L}#E* z&$D4pM2@*@v^i=Qiggw5VgK@`-R+{(%P%-J#4@66Ct|5UgHJ-7)!tDQc?A;=BQ=0q>Fl(g|36s^(nJs& z73urYxLVym^l1pcF~Tzm7BftebWG!Q2z2rJ#zewb&l0I@MJ*P3>hE#Fs6*Z!=rT(eY~On4Xk8V-ua!)o+ISBD|}RSO=HE5X%#tu^B}g6lMSg zn$A*6;_%Yw#O`%G>pjbzPiAfAp*=O?;Un=<%RS+MC13@ zzTIiUSI-c6XtE0jB0GeA=gJk zt&EcPadH8l3^f>Z4yw+RYF89i6!a_oI)C$7VA1@lQYPd1KT#n=@fq8cK&o*`4Hre} zR|ZHMVR*iAQ*qpJh-#%4WSl8P7AMF8x1UBATms-s&{JpXzG)JAph7Gw?=4a_)@%Km(sJq=ZGQirGXw6r{&QB zTP4GtOTgV>wkPOD>F{O^F^zOtf5jo(T2C~8p4zP#u%vrWX!iy zf-cY{rNtR`Qvc0!b*f&cEnsB$MEFel5Sy;YSQk~y&ohwDt>8Q5HMyt$sksM4eOUWM z>8oU?O@zg+6HC>iO#{}P>#5o5)D)tP+DMvp-??`X8sZ^kkRp)RB*==$)41(6SYwZ( z5R1I6Kk_Vp!}ndS|7Hl+omSx>c+3=kpQF0||DUnf>o5P;>lTexaml+$SW=cp;~p?V za3X{TqhFw*Pu(CC2IKd{;o?v zPV)iVhmD+bmPXEgp&`fqk<&d|OEy`hgRvpvy1uah zL2<-`3d3Zn-e+VM%cO2-q?4AbA=R6oA~eLCUc72Iwd}vJd}z_(sjNwxx0E5DS_y9( zvvvtn@ux?H8fE^i61IO z{vLUQ~ubN6uId7>JpK=Y$H;tu2zFio4~7uuY8 zNJ1?V`7VSxQBbu)4y#dDX}!owLI0Z-J`3i`?bLN4&Y`d_Anzyr!3o>#{;sr|)AE(n z4vyO3)6?e%$v#An*`^D=Hlj~?SdZNT>1)9OSmxp#e1{(Py65Bp(fJ!}uIJ?ESqxMk z)5tpP%n1l=EbHaUj}_Uw2`3X)R_6iOidM zgy%E&e_H{`*a~U1%rY|6kGrkHt1dRti@I;15~^r3GcmaoA1`Y0**?S87IdRwH3e@z z*f@qubj?#Xch>$mLgG|@0{>WV^VAzY%M(t8+*TtD{7P&_Znw;st%FSnBBp|x1_2cW zRwfB~feoilYP?1NScTNjp6s7d?UO;{VI^a|I?dx zMo8DAfH^>(-+0q4CH0*;Ez2ZOx1|jGau!n2q97uvf&?>e7_P6mDGzO^-F|-t+@?_| z**Fs$IdnZ*=pNWbIq)}EoD%9U0Yz44{b-ftlh*jrG!Tvm?jE1!yrQJF{$4{8;f_lk z7AI8a<3E&o{^;|ay6CdTipD1^$9+7F*GHy}&9~GKnsh>JZs<`-OCR7qxShx{$TDUfOB$ZSG$Pl`wsOZ zJm;dhrMmrjjl&u-x2$F2@yOcHBVqy_X>Sm|Bwnxq8`}-xqK=urFnk;FB~Kl<6IoK> z56Q3z=)i4b3Jm%@RIJ#=u|u8C&hKy~EZpUKigIoo-V4jiNA|7Af`x_AU=QTsKsK_C zBP>_4FyGbXD|ph>)tEa9KB659SC|EITAXkXMD1!O4a{#2H^p(?m6ps((JAn_qsmi~ zi*=RCj3Rl->fSzUJ5>6*{jlwnZ|)4X$u}Gq;qRQ|(|Y`>Oy-WLx{p1jO=h|dyB$xy zj*m{W+uYYy5c?_drOx8o;_8uPKfhMbCP#bjIXsNJ_bE%UT#8Ol2i6k!A zJF440jZAyGWb@eXMB);lPmmaaVA}6ZklIK5Q;e4OvoQ!hwxEY)LG3`<+*YR403X}l zl}P5WjL(Yu2R^%mGh=D89k1#2HXULjCFJB$%*$Ic|9N=YP;{W{*XJZ(b*Ob&6f(;D zk7+wG3%{Qpo}0M(bTq)pTFdSxFjh6{5)jYLbg}B3xpJP`8MUil2A^wx8M}Sz?32g8FDCp`t{OG3 ze82NyHl%tdmg?|(%xHLG{;3!7?S*BDKt^;*&x;`OjalO4r04!rXsCXAE`Eqf zL%1t7EyYLU+Og+7rm^bYgm|5R;R(@1Y9#I5e*Z^%(i$Ql5vDFo_zEx${*Szj{%N|YL{hihaZ z^a@<1=Qu>P3x9?APWz}KqM3=l5n^y7E!V+&zgS*Q2*7)sXz4v&PY`|y(}8z|i=Ek` z2_3M=o^6K>PV^i>gm?*Bl+lt89$M$v(3eo@I#Z)gDDyIrt$O|6eT-5$Nyv#l39) zzHrU;9?>ghf2SLdDz9tc@$xb_PVAy1rw#||0MEJg1w|6yHPhm#zcqm8ldI2XjERhz zVT~3Vt)mff?loj1Y?BPQyZJY&H_EhL9*uIJQI`PiB#TnlvW22Soa;}9D*4!E3%{?h zICs}U-b(=Uy*tGWPWf8cHg#X8)$9#IZ&`QHmvqfkmDAVw((z_3nXO9zuX^oKh3_YX z3a|5GZy}29S6i*n*4r_>C8gA2BlNYk%FGNOX!TlgXAaj(x%Z40xkcc+h%G-KL9|rg zzNzu4)!fuV^Q_O-n`n5B@63rZ?T^#Y&`<~B`IO4;-pI?k!6A{`u;Hgk+)ahnzA`r@ z$za{W7}oGUZ!&0GFw6~fVl#K@q~gnMkqjo~NB;2br@pxq*pd-d7ciPTdgo29cJ{QT zNloFAYe*2II9~ckQSZkE+YIQfJ;%o9Z`9Lgc|1$=-(?Rutfu_%Pq9z*aR#ErYD>40 z8f5y>+r@Ih9x40FuBo~^pk&7`ZAbCW7bOcZg9N#4GyB8^BviCkehIn8%yLn*wQfUx&OHp%nHz*KU~q?cyfm6u z=!aq<`)Zy(H>j%qQ6JNWAk2v&nQ>Y1}JBr&q(Nv7CLIv5;VjU2sTMIa6`2;l9Io@M{WPqNuoC^ipBD9AFM?0h z@fPo5#P-domT9|~P{M>3u9gUrf_c9gg*Iz+bMqN}CtBj-W;d>X8wp@uM%+#)&~jD3 zU^E;u;kl^Yh5J+6HsSHR%}@Fp(tLW}Es3%#)p|R#F1`)d-4m$}d!VNO!}d214$-Po zbtHvlQ!a*o=~pKc?}DsuRv#6{u43uM7@o|-S3+t|w-FgYuhY||E|>Npr_oD5Umpmj z+qpp7&Y8K$1sPqJla18KbE{)ONIL&sGaMZy<*UtaAKT6-dheQ^JbFoWtWT6EXQ;F% zAyK2g5%Lt5$HzKc&SzLfGlz$Dk5tL7=0^C_6zMZ2Ps>H?!glpuzx@rUd0!=8xk4o@3JR9 zlGWoqO{j8bkz2UMG$VcC(hujJ%%Pu9x1w*Fin6al%83o)wXXN}`}wvJ#sp6OZfAvK z!3KS_Ft>d6)M{$D>l|CWUWj3x+$chg(#A73U$-DXiOrKrYEX?)E2PHWi?^ha;mCHG zWW5%Dvzy79-KVD~j$z9cWwWQaNb8MfkP)0M-Hu}5RbSj+_h(J?&D_lG@@_${3*;B9 zbbISf`}Jl!ZYiV@if&FgxO z*>2@l=Ehy}@>xy#a9FQ2@!MnHSaF0;_q$&|5zLB0?RV&e3 zM^*nS>~z4{`Xpulx%nh>!V0V0r*o|{_#3b2xy*R3$Cr}4+?n&+Jwmwfc4$c`|j15=`NGu4|k2Tw?q1j^)bWJ;h-`FOXv3A^C4&s_jM;7 zZ@v!@{`vaq9FgV(kJg@eE`5e=gCh=*^^Elr9p;#H!?<3_H0ak^wu%|c@&BQ7`~ zVSX&Vmw?+y<3anLIEywogR53v2|CmF;H}5uE3erKC?2JgQW59~tyhHp7+#-DzxTUQ zpSE9waI<5aRSIp2plni>*?yL5@2kmy-{lMm zGb1-A8zG0YbfX?3m1+-lvvLS^$wtwcx$&DHR@CnAuc+YDY?~ZKrYp$OY`Fs({I~R(vTJBi$cKlvR zqM6y(`)JI7Qa(#M@8JwB7pMGMBAfvfbQjM&Fb=yPc)h4rhQOwg?*@Dm)*XcZDI(1G zQ*Hu7%XMs2gQZqzv#P#khP;n%Z)OnL>P_2Y=_~^m3Lo)x(Ap5*l#aMU&ri&!66t!Q zhH#TI*3kD)li>BYWEO(5dIszr?9vG`})njq7eX=i9rkU0>gB8v=EsY1#fOMV9 z1YxUKKCJ|EZYO1Rj9*Uwt8e7sdqHL#^JlF7U|y3(C#pYK#%byGCxZTykR%<7{_{Pf-H?mW=&^& zY~g(;+4`Cj5-{QPyX-7(eO7@T_MU6geWW?;B{)yrwtO=e+zQ{+TpW3Wq?8);;0==u z`ncf%BH~W89e1n)%0~pGJ5`Q69$o_cG$i<_QdWX9`Uoqq!WYfD*h|q+HDF<1^ zj?GR!@IL7C3Figx)mDLDzrO^09uTa%1XRR-IB99>hI#JXXc8qLjYl}jv2mH61wvJQ z{z^a*#*YOqITz9^w<1ysR(c}jOXefYXQSqN>+8*>u>J}s9juUsxazDH`TgYlj8g4{==IBs4@lAwLk+cOoHmVfCsfvc4TkTS}@Gb)v<;b2Cn#SUY%({ zCgM1o>I=#G-C2t$Zw3{I`tfqltG1G1Q1Mjv+bUeJ)WFSw z56}Z*AT1XckB`rjABfK&AzWVt^pn1sdO@QWK5TyS3R;?U&T^XWHSjT!Rp1Pj}P^n9V`?I+e%u#@Z= zwq^tW#(>C0`?zMk(xPZ+)V{SH?8Z+q+uZ?8q7wT_4tv#rUJq|-!c5}J~K^hi{#8_=PaCP^Z zmq$G?bgh+vY$=BMs#7rwye(rW$Rey*Em1;su0+CWq-81}UlUGaxsS|V4@tp`e{NXd z60YIS`@@+1ds*SX|0ij{f0GsZ%jFfajczwy`9Ip|y{D1HwExUTUpiV^9qd}m_-2PY zo_!tYHB(u!Di={nw#x@CCMKclkD3o-zjW5~w+|pid-=qma)I3HsTTA&ms}M=-H(j5 z-j9o^#d94$obkk~E$=hP)oO_4WYjsysUC)C`N-^rW~AOYZ@nXRl86Zt%EPc zrw+7ao#nxHc1IJ84(}up*^aP+!2899y-}4~wRlF3%;?lqA^80$(ub)`^y%8_0ZE9d zkKqKK_yr|sa%T7)Ez0^~Rdqh@MiM!9_#*Wz%k^sxEN83B3S5B7c6qAbJ?Ni01G1Uh za?+2Zy!eqluomxW9ACR}TE4T?DHf*c5zfMO3Aj1TwcDsjytxvovhpFjo#+l`oEK)? zy1(6xBV^!4{RIoA{R)q6MICU%w)yik7~mZP%8ApxjS+Ou+IYPNUjgO)Gct|yPaJZw z4sHz+!;eS^zC+Gn!3Mh?+Rk&n3CA24^J3HTBhjy3srZl6#(dk#+VW)2=Vl7-?870y z!i$5H^V#bB=*5nQGdKATUqIqG3p~4_q|K14u_e31IyyvNopt5lv!8;hCzcM}tt$*F z`W6Ls>47K1Pk%Dg_rn{KJ{CUoI-5`%I8F&$*#O$?+VB7NJ3+EKE=9`CbL$oR=}*Is zu6Nz&SL9Cev{FQG8fx4+D|ntnd3x|*IsJzdlYC)=Rb1%Tfr;f*{|b|kBzB^rVJ^Z{ z$5c>2Y8moMQ`EgCDeG5$yKFt#R9LKJSUcWSLW;pV=KN%RYdv{A9a!yV=62sG&&@{w zTArjKEOH4T`gt+ct4TcCSJx$oDpkiNE5Z2sBFZL#N3`qv8=#&DWvl1-;rnG8QU^ap zB=c!mem&~aiLJ4+dqmyIL`=8`ib332s@N7|SX>_Uu^VKs&Z})c(lZhP7ld>)TNL0D zG#_-0y7K9!>oJiIS^7NrIfm*EkGWSAbVs!=f)?n)e3(EhO)u900E%*g^d(?v%!YK+ z6kcM82%)V&BTvnOO2<0~&UKtL$_FaL58qw_9M$0sP`lG!LEv2F1!qhvsC6&V;lXDM zz8nxIuy~XZ74v+nQ!+vwW=+&C1ap7TwN{AV%Q82Qpk&mN-XbRrX~LR5KRh_HwgHza zYH{3KZ=I1^R%2eo_a~_-lr~Z_r$`nuo@=oCqDVYCaj(TZpRxv3fzLXRZ0hCKr(<4j z6KMm~M&qMGM00ftFtL<>y}!=}ac-sE2Rv|l(m+ij>Gv^bwi#y8%IKC1W3 zpe1AA`0KIJVk((u7X2J~GGq6b5?4CrBqVq8mJic>Kx@d2ns8d_wqVGJ zKBKbOx%GO+;^gol$upN%a};Q)y%%O3(@7zI66+*(p!;G*lPh=WBiX+U;e6RMvE?#1 zHJGSxGEOunQ~E5`gM7Pfy@Ar9`AdMCgsaStS+TPr$NWoxK@7S2ViiX^BjImc0=70l z>!bvd<-8zr1Di{{j|W@Gygl?pdteBOU9$dC+qqb*Dlx6=t0jwCn!+)@wfqEjuGR0EpU`;hm5i3ERho2 z*|0en6FYDwexAdVK_G$y!Nr#V#1Rou7^jw-lc2}gDba{=JTYj>|Bi>Ax6LjJarp` zpVTxVxK5|1xW0Xdk2)vWz)QIvo%}{jwv*P#DlWtp@whTdEhQN1$g&Q-_MS&U{D4!UPzHa4u2n}?uX(nYarvplewa$%xlkTN(7)^)fi z^5(R3gkMQ1$Z(2C|3lC|qTV7wOekG+ z0t95Cn^hb;tcK{ybT)zC8Di!8+dc&6#n$Z zorOyPMP>6W9=)EWxPtE%<0|Enjr;1H7D_oYbjK3yb>!^iHj+@_a=6u=H_{h%&i`n* zCz|g<3$>^388k4vGVpGtJy~Ka%CqKBpF0Yy<)q{Xblm0Jl-ioDI^|B4~&Tew-FN{T#gQvc235I}4em4h{Mm zb)xD>WD%U?GJv-n?i}(VE);vjzL_qPf?xu_TL?^wk1-H73@!n;P$ZPn^jTvZ$RHK` zguZHijvONoffM{j0qL$QcteU-v1enTZ=(j(! zJeXEI5{|v#gl|Y{WpHf_blEM=ImP#V&6-ffnn&HRn>rzn^IK}<;T|Wv;M}^&%Y29! z!NqSGDiyq4lCcd`o+|gp5NwOon2lU{D&cmT)LJtdw{7EC5PBifE)l^#0|6kJM799aZ3bpqhPiD{_(H(B={dj?NJyqh?B$FGW4%{2L1ND zg#Aw>&t{lz!#;2(y{rsX)W)w+veyFJDcu_->)h{73>)i4@Lh{XQh4Xo>xK!LA6@v! zck%=mHwdLVC@iAIWE*{)j1Jp>A@8q*NwFH9bsNp!1WS*)B?BXgpUL^d@^)AU2tH{g zATk?XL@oeOv1?O;Hzbmkwm{v^zbNgH$@`x9f!i|-EWu^2VWpLOC< zMI6wGkcg0o6MNK^VVwdA4(=8R|A`2lwYnOkf?NGQDhQ35TuvEDjdc?46on^HYu|XJ z!glmZgV~e!GYM~A?$WYRTh{WBI=o1X8n?TWvfMBFK0BxWwYTX}pi^D3pF!H{wz3>p zGEcs&QMZ0}XSigs+Zn-eZtv9>C()jyS!R{4e66eU{4l*}J2sMZ#fr#NR@$cQZVqF> zube&*6)v%U)I2yaLRAIKEPyT|mk8poIZ z7wHonbeqmCr=dY>AHtgl@A^1WX8XG}p_6?ac(9TQ*!g|c<56i3IgO~4QW znE6-jvI1VmU+cf!ikaa@nYqYxeqQZ~pK13@cUJ-7W(H2guBK60z!Xfmv0DAP;IrW4jV4NJf|?RG_>4yOvVgx40gM50=oW z$o8PHT89;ZP8&5X%%F)&<>9V=Zc!3@)PA;kgkufDP<8B%Yz%8mbdr*8+qBHiLS(Cr z?d!!QZ(LoUv>&t|1&J%s?Rq~0iSr;`=bPz?>f2mN3J2>?4M>2Vkqa*y@PvY%+^Be^ z<_QNdd$@l1(~YWpH4Wocmrx@vjEg&IBSoazkZaA)+F))qx5Z~eL77juEm&1Ea+e^= zl5&v#)k{-GfsM;N090wp7NK!{3G4czdh^q-dDez-NoN{?t>q5bsn%L&eGGp*wE9^H zU&7Bj_rkqqm9ODOQyKzZpmNNHM>dQqCVsg3zUW0#*DOO)pt-%T3Q7fps>X^AANpHQ zc-yl&?C7r7g#k0PTET%|=`I1*MJ03l#`c$haX0XZI@f1~@IewuNWZWq{D1&|ebik? zPAEN+@AEbCOx^Y?$WQ_{4)-C7HkIKX?l>TLjzS={F6}`R!9Ik*UVHWLfG2ZQG;DjEYwB}ZhG;Y+qvuW3f-DW$th26Vb*SI zxqzEM-uHB>Q3V~;wFrK%0+UK8(L7tXVg0D}53TRk#>-dG-L!+FuCC9FR>l;oP>Awp zVGE74Y^qn<0((XhJ;AnYI_T;^O6iYyL8yqT3C4|oDK1&w{*CXHnP&PH+HdU1vw=!| z@rf$*P315wa006>VCw$^#<*_uXvmFmPve}&lj)s|K-j{^q^UEF4`)KN(1yLf$T?bx z(L*eDUoTi6QQZO7JA&jx8El56+2rv@dO!tW@gt=gFZS`A_LGG-p*3j*c@|=3n@tXd zAe@#IG`3iSsdvORO1wNyMi1h+ zWm%HpC>v*-es9yet#R1aL~@C|QZK4NeQohS&-bPI3>yd6i$W z=8vnNRPs9U#^_P&^hU@hWfi!sP*m(Um&dTcU~%~w@?;wNzFy~oSKz+L?!#En3kt5O zai{8bVe=H#DDKu|MIGymB*MJ(mdB|E(Rr?xo-xgt!%#x1xnz;Px4?eZYatcTaov%K z5{UPq(0O8ph=kOeaNOr-g>1^xlb~XiA~U^`Av|tA#axz!8^z7fsL!{Kvdu?z^YVGw zM;J8=YN;?*Ifijq*ppDO%x}-*V|Uxpm+aFX zntN6eYl*<1TFOdwixB!!-mWZqDZKnYM;|e;Rp?pFaE2!HN}*AsyG{(9?=m-J-a}(bukuzbUud=sk5_eqh z*g+DE1@lc$gD$#U8Xo4okw)2O#3Jgb9fT#L%!2Za<3*)7mlZa^nsR~aC&ixFX+qek z<2PBk{4oU&t&;ra8I-7)v%gzukPY@o11`pFtq{;X_8QHZeWQmdmRlX4GK9nAbjrGq zC(^HcyB*EH=-I{7Xyvu+7qIX7I*ZXNAF@vB|1>)rGRE_AxNO5dV+uvxE)qTwOIS@x zG(W0y&Rlqx9rsX74uR)mUFr7TuYeOYPdZX^4v{+Jb95Az8I6TH1x8*cnR)NCd^*N@ zcG^Xm`W6=wLM|5Nm$*U#-|Y2Um!r!b6t`r;$U%%Uf((2K`_D0q2Jn{i3W+I0=vd-_ zG&G^&d9d|!IJr`Of|hIN(LIvXEzkNbI91l}z?TcBUqhT~T#n<7Wb-yYdpsSitm9Di zXs$qjZY+{sTHKEpon8`y=It-db^gT+@7Bf1NIDH0_xk-w(e%=wZF-pbi?s}2WDJDaRjGD#Rn5tL!a z7_Ibb^Owb{1rn_ex7{Wgsu6yjnJ?UfN>T6c%s6TbCh*Oc9l#*H7Gf(d1GtzasC%s`<4fNRwCU z-Ik_MG<#MffhEo2` zW1w6_ZdH|8QsI%1RUYEnpfqN0ps+o-`Oeh?_8d}RG?UXofJ9;kox;G^w1=Wvaq`DK zI#ZqGY}uSY{=C&PB|V_r3RoAaKd2!o$1GIV_(zx(oMD_{oOo_qPW>>Rr9~-IQ!gLt zI@7?BRJ$%$@?$VCAVronv96sWdcsF_2Pa9%)C~0O3rl@@81z@zmd?nqt=&8p*NpRw z-i|9h?9oS;6>tyB#MWEm7qVXEN@iuqvr9cd!h^5|>c~Dddh-B?oJA{Al&f{^W(L== z!?!MFlF@ICyt}cZ%9nup^~1(c2e(i!btI7GNLkY?D@Btc6}rR8>H4NOZcIxRU1VNX zZ#r!w#v5$XuDXOOUR-S1>*ftloKi{>WR+YMarnVWCJ*;-S7cWjWx@6M}Ty110 zKOEw3MHkGEaYyqzc1O!1TRZVX>a=&G(zqKp^lyEP(=DAI)6f$!Wjw_c{h`4q%aF2E z)CMy)Hel0rtY8>&Pyz(`MAn!0CzXXd9wOr}0h=EGl!$^CtrXS{g(`Dt9izcW-a6*E#VCvFtY)=@CYM1{c9)-2{-jj}A)EQIut+^LBXz57Agp z8Y|S0yeC&4@eC!p@jeszPwdKzE3DOjVVXYs7 zmdwj?_j}P7+bJnOvlz|0Jq4GYczk5Ylut3~lK-Odqf_<3?M5#waBgTu(cJ&NMk($? z?w}iVTdbK(N0$@3|q(whs>_wcDOT%r^M8?qoODkj2qxB5pTyjWRxXhkKrFUA9B z>RVV@IKI-%%POv(Oa$ z8P<7j-FLlJ8V-*{cQ(v?*DiD2e~_IGV)4zMIbxpp{6e(*95($_!M z13e+2&&Wli)Bn;=`x%ZrBF2*gJ?KN?Xthbxdvrxf`u3eS#~Me00C>0%A4VS@H}t3Ku?mv+EJjXO(Wr~dvb%GRY~he^;O6#1h;`9a=N-?at53@)7KLn#SXN=kaWO|U zNNAF2i(0%$jY4RJT7aBup+4yO5L%XA9CZ41v9tO{fk~ZCGpHvd{?pMleCcOWcA+Ww z=Gqx3aK?>&FNO;qW|1LG*&uk<;jZOhyvi_!0od zouf-$6PKF%y^d9m;`d3-Uyr~CBy>I9Y3yDk;ghrot;RW!5Q(=j;?U_M%q=!dsW8f0 zb-m{5Xxt_?#<3I4^WR1nYU4s^vz?@70y%ePkl=qFDH8sdff8W(BsliuUz%TUaIFyG z4tV$)5gZ`A$FZb#^my~;{rj6!crHF8L_wJO7#CC6PboAk!FNN?kWF@CUdHiYbKLG$ zp%yL-ygqSqV%s=Z{|GmyRsFlmVFlN7Tjy4-Um@_{l6zQ;8k_E6$G12i7}_+KZpMS? z{K78*`P+xEI@*)COMpW21l1_Ghd}BL*T49qqY_wr_&Pivx?wlYPY(RQkQNbgP1RfbHsGZT#fjl z`=-XI%yt)S98YD8q%hIQIkKTqHfie}Zc+Po7z=HMx?BRx{i(8!urAqwDUduYo*uQv z`lUzzG|EoDmH+eJV?q(~W|Pt-puAjTuYN(y%_Q8ZGK2%;V%mL-(x|TJez|jA!^isq z*iRi82hL#)3N+0q>t9+Egd7oc*K~7J^sxP@0#b{5Iz^*`2N6^Q2mzr>!01Ek3$^)( zX&7DendHU$HTV%#kiVLr$u@DXxPSNvh*DkEbfT`gx7dTcS|R?pWb2kzNcHxV(7|#K zLUc3V%@)Ki@3Yw=$h@lDXT#rF^VdT_q$yTAXwLG4Qd|FKsAX8ydAqsx7(qCl97lEm zKeCH)i})kJ_wbJZA3BG*OwaD^B#u5CBB(4Fq2AVHD9;{1;$I+1B1=%KA^Oyvmw*hu zokaJ}S~`0ztA&%!84&uBPT?r9`f z*`r%Z50g(4Va*Hdb-7FMf^gkwf`~CT7kA&`$%u0_!&P{oEn2GS*yJxtEtYYJL_FZUga z9L&8RCw4Y^Mt>U8TjR4?^cb(CNRtgZOZD5Zixb%y^+bd+80X$N zg%2xj+54oEEC~P4UMI3=ah~O(){253aTkg-)I=V=Y%}HWF}EbPZ#^x&Ly|m!t3p>Q zD)mG;Ix8=}=V|4{1tx*w_|q5nUs!y$@~B~}+{Q+1?-O99qAXkKEmWopr~Xni3>G{^ z1RbFAZb~tt0meJG1Je^j!e`D-E&+8qgx2^O!An4)g4byL*u}#!J0(A_?Gl{-eI0j~ zA6t5jrnix%6qs!f8|&&Fims|RYS+%b-7-Id@FTw7Lx1i`R`eO>JDj~ANpa#NCydfK zObg>+kJkUnei3ER)3cjA*8V6oOw6Go=#6F(f%F|ae(701;e<7>k#7c@Dk8{V*4JLZY9`cDCZK;WPja!zwE-)ZEAGPJGfR^ z)GyuiGXX}c(#akO{VK8T7m&?4Pd@UUWTgE~B{8{qODJ}6Rb*eaE65N54E@Ls9TW={l4iX`eWkw zz~vJ+^6Cmhq96RT)QK8;gdNU^F0mip>DnG6FYU=DENxH|e}o%$?rA^VsLR<3wI25G zj`G$)6^!&3#oZ8lC!rhLHq_iDtI{2s=j0N{@s;H~gFW=)ix1`bTu((wI8ytdtZrXQ zuIq++&acrnP8z!7yt+wLIhFLb=m2W_ohZ5Zk{)UYwtchxQ(N}h{_qhu#Wuc}zJ*09 z58RZw@zgMz2<07zk`zjw^(B7>Mj95$o(a{gcL~ce1*}PPUCd#dvHCwXwP6NG_{U2sL7^g|lk1HhR>4&G&b$86pJ5Pda-(?kQ$xm>!%=il0PR7~?asgwy zH`9}p#asT_bt=ZRa7<=KJKJDbD6buumzU)b=QuvsV5m;C`l+|y*teqdMu(!$e$d{w zeJYt7|Hg-J`Mmf))L()77A?M<`tilU)eMe6_*3b=z`!FaeanE-QZ?Sx)Cm5CI45Ok8vZn6c9C30 zA9>i;cH%8kNw=ovHzXs(;;ftR?a?#8Ui;3P-x6l0rrZyA+|50SbA{d5!#bdGqb*-TW*T0E!nM6l55>HbQ$c#AAH()5HFXhMju0lu;m6fl-49AEn; zP+x0gnwcbe2~cusrI6bUCf9=_6#BzU&0E{ogO+X_iztHbaOnK6{dGB|nrCbHw>;jG zbVt`leSOwddId3xiBOpfN@j{9yOM0?h6n(wU zcIEb<-^i}MDA%_&TE!p!66A2h0Y<(5)v4SDP4(~$eR-&RT_2Sf&UC0qXl-oi8j7M| z7-mxAl?aiek<;#yojQilQfYN5bV5yp2^sYUpsim7^O?{5{eCl| z?P0Y0`+s`!|Djp!&;8%#jsH^``9J=&+>bq&6Z*l@W~FbYIVI69|NT%w9-u*(A108t zix(mvIB~F5Y8~2dN!=dBQli3DoPx4)_uR3*w&9bsI|N6^*Xt>~o_pLN>AY2cF`_?I zCqzDseO2))b9=k-yTd7r$+x~2@sf=A#8yy~d_zGnX-)}IK5Bv3qoiTSe%+O-1-l!o z{_k@QSepo3rTv9yi;&2uDq+e@7ShS$VcLAlQ}fGazqONMdHvO;fDtuegOn{_zi&o< zT?#)K|Ci1~y6=S%i}3e6vC{T5=%DT|gDrC1KJm#f#Oy`XzLUxj{g#NJgnO2H#~+Ct z7+%DSIII4+y6c3F<0#1fcyH8M({=mrd2-*PU0r<+hX0w`f9f;-)cFHm;REtpqVZ}Lt!e{#r^RXizmOQ@se_=I+iBS+5 z&DXBUGC2LCV`fO@E$ClhrH1G8@mNzxT(XVNh_Kv8>Eq_;tUB8CTxH2S!&ru6$>I zaMSe7lP}x>^6fx50#7RAh32!wKmN@P*xNXo;hvRyQCr&0rWhH5h8X}j${=+v_I5X3 zK&VgU&Bg)*r+Y16Fjg~ofSnjq8u;%b^B0UCOq1gL2D9$^JOQUr)y!oze}^M_bfxdK zR?sg`+KtOs^^9dZ_kJlWETgfCEyhQODAeNQev)M1wI7$eb8|rVPm!=$We^DD+h6oo zY57X`*pv`49FzE9YRZs(zvdFCKXcULkJd%JbapInaK^Mlx!~$6ZND%xo=SD-!gTfu zjZyq0JQ0#>U@tb=o1O8MLE`|C&LC>Bnh*R!U(~5g{<{(sFSne}`qWpre!-KBaW=$2BH0h!F3U%AxCTj8ln@fFTgc9*`t7};v`fgmU_>*YmlidL9`o7(v z%fsIWvH;ClJbp29_4FGJYc0Y{)WtrGL}JW!kHDn}pGqYKYCUUxxi7Rw4e*)+@SJLT zQOAAauyVA$(6er)thz$o04D4idoXM2lEXb<#RZf&nVS4ONzZ$7Q=31|5~&s1-@^u- zJyDTBPz z3~>-h!!V1FvR=OI1724}!kA~@8EeZJFtm4k-9w793@hdUiHL&G!4AN^+Eb)Mj^MDQ zz@Yhi43x~NQR{fls$0=mPcUCF+27)c)Me zSVM3fq#=0kb{C5`MM4smb^cw>y~ez`?d(se$7Uneq~xLadZ4sKF(#z)I5?*_BR*?Kv%^K-vHN*EnBt)zLAsI|{5# zlZ54hCC)ebFZdY=Lng(EWj?JFp0#avPRk^6!YXQu6vZ}@7UhJY-hFF-7l@W^Y4; znaDeEeIjSRZH_+@u}S%39%lrYHM5+w+2a*|o-?^8=*jf|3@NI{ zOCuc06&=ibByT|s-+K#McF#?*g~2HaHG8f1GbI;dBPH{|f%W5s9HJ~{4fgj561cr? z>*MFul=fvq&G3CO18x|mmKpDwO=eK^HQLwkaYgg5y zM-CY4*+$1Yz~eo>p{#GN-g3NfnUv!e_*l0y>IBGg|FRzN=Q(jyv<2z!QDS-qy#MDp zXviFkf^YEg(t$R=;#&wHBfFNrw2memt2G(`?e1mwnY@e4S zI?U)hYB(hzL9MwJ9=pG*6y%|chcbYCvuS=tS4=lQb^1R}r<;TPfVg0e zHMIiD%}gf2dtTzZGt}Kh?%I?~HuI&M*40s+UfKiJcP9tJ{;jVj4>XZ(+k z3v(gDJTvfVz-z2rOBoI~GvJ!k)yX7T>h?Eh9f4>5JlD&6o36S$6Ag&+w9{C#SDT-H zmCO>n_=zFsfy53GVSL<`fdx^?6+iV8xg@L8-0qmAdar-O-hMW+ma&c+?mv`*-OkIX z^Z`yf%(ZpTPK*aJN$8-Vti4NKpLCG+lgH&E;%a>yKI_}3XOpUj?Ue4u?S*u@*^PA5 zNwCtnzd486OlL>Yr*6t(SNe%>HX7Y9H(k1z!YF^cdj{U)S;QcaZ(m!b%&>JX}@JQ~Fp(*^ItdI*D^j zEk;|7LEDKih@?!--D-}GRN1d^r8aK3@27lCMhX8wx+RCfQBEu`U4*C#T?^0m|yR+j@%@* zl)jTG0j;2DJFs8l6I@(lSs-^@32hCqak+XG&h&e4475}F)vvSQsW3pMgcQ|3_9Z2c zc*K%o*A&#S}CVJPEytuh0zJ5*|c`q3A;p;|rJ98IA zUy2hC9)k05x!#by?a*NPc}{Cl#MyBQeG*iv=`Z6U=h6f8MBKrv6(&lfHv#ZtvMUxh zwQ{N}un^;{HUzS$t>5pPov!LSRIT3=F}>wI(gTA5e1AFglW;w@rUA`;_b6Fe@jGbj zu|7jY37Kp4wysV=u8}-y43d~X{}n4d6R?~v@~NJK-@ji`=TV!^%Tv0T@CS9d4=i@KdY{1-QGTkpYvtObPsTbOp6Nd|`tVj% z`d|xh^gi$EeDAx5%~fJun|_U>wAAd`fFF9LAEj?SzO<43-I3-j@YlpP@ss;??c+t4 zZ_6W7xgH`HEdDA;_`lH&1j91~Jy`7#@wGmkXYx;5sO zb;;~xH%L(Mm+~>`8b=-zd)2{MmzLuaJ1bwUaFx^3jn>PWyE9>3hDeWY3G|kZGM2Ha zBZZtwE4f3d99c#U;M0D*GvtDl)Go9*n-}(pb~MC}hCJZ86+ZESnWUoA(5S9}ESR2> z2qx>ubzP8;r!-nA0=~9XKd^R=-Olz2tiafdv%FuJ@p|W11!ejFY;7z^#;aagk@s;u z8oWzNl_|;8%Euy+s4-MuVNo$jw;;l|FGJSu8VAoQ<;um`SDf|`PpMIDas_LH*$LB* zWE)r2V1gc$j&VbwEKN%Y0BTcHmBCfKKpJ+#;6mkg6^y<*->VAt>+^=kK}y#hMrUj& zWI2!ZE%Zh_Mw-(9h9)b9hC2BfC8=3I$d8pQ4;MePl9$w|=@wgpX1_GeZ7HA3w5!1asj!0w<81SQF%|mZDV69 zUIws&*_)%eim0Moh3?Pz4NdFmOuL*=q#BQ&^Fl;#jG)g;_Ib3*mOhuy$;<4T zQ!eLMn#VOR=B7#Beaw+&Te^LR33pU-^&T$!$(RKcHDYic`_d^G9`)>%-Aw49dDZMs zMc5XsFB?xbYOFP7t3{Z8dyf{A@s=1+cPMLC>(LHK?Dl#|LPGwTvrOWYP3;ZGRPlqh z?%3llG&TbwOZg22#p}u1UH|cOoYY#|Zi@ul%_=Adp7bEJX+-lUw27Anoxe-{{KqIq=@!y1GO2Uj?Fxr+B65*vI(;0wQl4@-2)yk0 z$A|&X$w)uphZOB-EkDOU&t(Rz`)BomQXgl}ZY9@6@jHx!BqantZ8JonxfNkbwtW{* z8lAB_zXYxYymSBI^1gJW+AN2TyK5Ef9Y%_S$3hXcIyVid$!0IW&O@I53$6JH27D%! zwiKWKSk3LFy>NR7B^q$ z5u&Tnb-=6U;JA7w2f5bD+1*3@Q7L>#E%5*BIBQsue<}%D?vN=-la%ljxnQ$k3 zp|H1GLiY2z^&YeO&B<5fLw;Jh`nr!=Uhi?`L*f?S&g1^uK(6xSO`nXuxjd4hiO3Ol zlc?<;ZoqcDKVCm;2f*#8I+9U63XrF0du@M74IvN1bQ3Lm)u@4*9(jMx%orcknD*)D znr;c_pf?UpIoP)7o|DEu&oQ}cD>C+O+x`{z$_ZukQS&&>fXC#-Tfgscb2!)`RtoN< z)LT@d!&*#(l?hrOsg}~5?WJS*GKWV3^4oji8;XIP#o@l&7Dy}B{`f({8|>ci%wy3E zs}i(fMbT(4-ZOaR6NTfF)1CR1?13W2MUl`^53$P1iROW(pX3XZ5nVTb3*b|)-Wc*5 z?BT2)L_XC~JuqdMq7gU}Qc_Zq#YIK9{<4(f;-_WsuMVYkhyc3b-?#XmR?9S+-*@;? zmGAoWspfomX}0WaYwaGG6>1wZlmX)>rX83{txYX(HTizP%1AohO8hVntDCx3h{jA4 zuoysf?Xh6I$0~i)_*Sje>qsng{T4QdX|-ilxOwUxvR36) z&SPJm|N1p@fuwH+c4<<*<{75_8e(uWRzQpF?2sxC>JFzUB*{EgcVN!6!e&0PreefZ z!DPdxz;FG91fGCC$HlI=a-l=bCb*5|{G`*AZ^-Uy-!* zO0#Q8&9L)GmaZeoax46$4y=$^4x!+MKPMv|)Wp3+S|voe3`&twBq_gcJb(MGMV4Z0 zD*o^dQOS-Ov}a-d)CnW)1fQhjm13VZl+8=#)a)3{ZvJ_WTlLR#^QM(dCk2huhezO^ zw0Q527sf{idnjz+>orp9BfN`BAg`#)Dv+zdV(I3tqh3Isn(`~2BoGI$K}xKMG^Wl7 z=0cO(g2HSfrg}$4^;a7G(w4k0_+;caA`5b5mu4JORFFZA81tn@up zv%MixncQLo)NrjYfTj0UNGE)W&kIivD{zE>k6HrDH!0(rxyxmYwX~dheA;4w(z_D+ z?U25v{t)&%19lSa-{rwm)b-DDj%zQ8u5+W}u-{^kU7MZIYgFgZtG{C=1Hj zmn-`Ta&ovcIxVj_>Fqmb-|k0DQiPFb^80te;zuX$$cos4Sbnvj^I2Om=xyEt{Ex4p zBZgIQ1Lih%rJRTSrH6~7)A}-OIc#spCPkk zLa^aG-=6E1GVhFJ-2ULil>hwFbV~LF-R}U%|8Kr^cOJ)>6^{r0dCsAb5u{oSAErt5 z=UIMfYBOw5C@Fl8>vCOp-9T&&bo+reeN$B;nU;kMJ4HbmLNR-y!7ZgdGQAnXV6mO5o(m(sQzx$do<1qJ%7?L$8JTo#q4d3x02AgS>x8h1!YUJXN(+F1Wpt5lZIXy5<;;=B4#bNXKF}uow3Hey>Af#>V>7=#i})OvLF%Zk0J>Vbge2-J!6txgSY30Jd1uSM`n0e@yQ&lM!F+ zmQ!ryNuaRV*Mp5%{yAbAmAw?3QQGX=y;9xQj!I^>IJK@Jmj>*L^bqDAVj)c*VL+1*x$lNXMqSf&@L3L8TQB;WcDFV}cfbQ-5ML>yY@| zYi#KT2qd~65YsT;R_OyNWSExU#b6vQk)KM#XbS}3^#i*#vOXWu)+%-5@r68czB=>J zZ#ZQ;5!5ZIHq`1^nxD^{jathkkB*_%Mj26gTQ}*xz0~j40rICpF+JhIV!oY2eyOb# zT~F+Sd&x-$&eB^%F9;h@CjmQ;Pq+cKSXSsr_rS@{z_w2*f+c*GhYtpSQjU+J*M|8 z(%G`2XeQg$yBMvT3X4rZAO}bQ#24wA1HPXco_LRX&+UWvs%{{EnpRWWQq_%=vMJ+$ zuLlUahS{2F6tjd5z>N-Bz5)o2l2<--syJz=*3m23e6^H?8#f8$hCQOo%9TmIw^*U0 zAOVubn1loeDc09C$E=^g@kwElcZLw&kk)*thpi1!e4TaYsf)$Qdznb)i?etDY*%pGKiFB*j7OEPucfE-#@a0I z^_WT+^5+q?BL7_vCG!2Pz_(K8zYvG#wDdN9{hS=fAHvmnG&I$%j{ha7-_4A5-8|@u zsRn@6Y>kD##^1K1{6ebLUj6~kds1Y;+}XAJopy_=AE}6RD1I7Qot$>BHg?2Yot z9FNai_)0oN>LAl`cPF`7rb6@RWtj5Vv)B4%yLzxs^%pBI5=7imB?WCJMN=-P0G1LO zBT-QKbk1y^J}}g-X0PPbBu<;;vSU=r^A`CFTb^33q}T^9(ZmgBJ@GpCWxk?Xu2$5$TKTD9Gq;=hnF z+NEVnn^+Q_L5egkML*+DO*c>pD)fPGq$FXGbungWD+5aT12l?cbR`#ffhWbzajG-j ztT{gMefmN_fHPN&eXbs_)Ik^uQu@V=bqQvjBd=PduyO&yt(#g{3)c@ zd3uyV4dzScy^Dm%^>8V(Pwf|3ynOkNN(GMH@6Q7Ro9RY20#W-p! zIm00YbFp!~`|5n;_G6@(Rf}Xt35>*RBw`rwt7A<+T=mJQWpvQwF>ac^N_Q5H$otR@ zM;3|C*aYUv`C@Q(vEQ4)z4UMP$4lqEdH+23n^y`Fbd!B0N_sGXv>gKT!1$f}#LBwQMzYZo_+I;XdLu z-9XqXAM~tk%xqE|<($5=-T7r{9Xes~q3v*{PRFR^)1Hohb2AZ9NK%psQeMnXUlUAt zQ0+Z5DK&T+`9iU*L$p7B+b73^xn*7bq`soPaFg9|iLod6e1c(6e3~kl720)v&5JG6 z(qg$6qZd4xLP+!P_U%oQ+#UQ!;(hMlQ%Z=atC!#BwLWj}C>``G z+MdkQOG|bcU)wj9Ir;<$W)QGy3`kzX0T0H5L>%y0gC$wquBZS<;(1LCo`hNHg4pwH zp9hb&2Yj~%7644*x9&9l&LF=1L|0~bbTQbWFsZMo^yg7>XHL^kzid6*h>};w(oWLv zGmEbs_3JT)1zSsVL7!CZCrA1sD;WyF3RgqlA#&b@2yUpa^gK~yaStwSrK7se>e-?dpkcL(Apeyx7F$s#4-PVCj%+@-(l+BL)x_>o07@t3Z0 zxELOj1#`1`p!=OUYa9lZX5+D~)}xuxC#GwfwE(O!n7G9%F9r=GsOSvPA^&d-5Vx0`FEItRT*M(})!4$0oB zf6S5B!1Ms$;=>FGVtRMm?W~6h3pNGt@U_| zxtT7@{?PWd>*y_B>d$kkyr;m(oIG`TNpgHc6!S!SHd1*CA-N#;1kqQ*09>E*;&3Jc zIsXXi9N*~GaAsBwD@N~o-I(Q(A6b;bcC>(DrPO;egx!yi>0eaW&-Ow@+K;^-^HYXv z(gc@OrJ0N?Ce3_<9BpY+4@7LKtZUi$FK0oja2q>NNQ_4Q_d%Y};uh^DspTW}d6|ge#PS%K_Dq{ABR_x8?Z8og2^^5Ge1Va&EW)tW&bHU}6@UYf^xq zqHyU{T#TyrPp6aK8U?Y^cg&V^Zdfb2j7sc&uj%cnKOF4%**lW3c%91aeL7suYidCT}X3wOY}k8#;GG z?l0z=DN)kO$4p2PC;GzO1iW}|Yb2t9%1@I0ve7N`=7@P+r7zdkX-~G$e7bqi>-vk* zu3}@QR}qLslB8ggU&03lt;;@~FTn1lgT?yl<&Z_GM~qrvI;Qzm0`;#NILZ8V9z;zh z;0`qK@|3gU8GEoEbuYZ@Xj`q+c*Jn6iE?x4o=z zZdV8|qJ=2R5}wR{&ZAvtQ4rH{vwuX(rBxSJEgq!Yqhai7>seY``yKIhDl(%@rF^NL zMq6aik<-PYnnC_fF->pl4$D`6*gdWGnau@5O@=RbC^~CEx;Uh`e_&P455JKr-l@`$ zNFqes=WKL`nNdHj>+*Yh)X75Bk|hNmr>%X)_u1}xbphnY)I&mo-s`O$4yo!!9Y7~2 z#@{ySBJSZqSpVTHTYD)}YGFym3(7z#-X%M9sU&?m_Vz=cgMvMi@HVIpO!#q^=zf#Y zebQo0*ao|`EpS#(e^#&}7ozp>sY|a)U4VqXFf@=p9m_`uHgT+aMd0%P;O0E__=efZ zhy6cBgU{ZRXI~)tQ!U2<0nT{x-VU<(wM!zQL`*!F$TA zimemO@yWNREqylg8Q!NSM99m3ezMAJzt)zsc#v zvit1=g~6$$3){g}=I-?)M$Kq*2jIY&N2_tc;eTa#C4mk0FUBj1n1U;-qrV2IW#Zp` zU4-kStyUzs#{Xt=zY+j1VbYC-SeLG= zTo!M;t_uCgI{0q6F+7K>T$?oO*njzb2DF2n2iV&-;rS$oW0OZ3Roik9rZb~SAu_&U~@TCNe$U2=-d_$-Ve83(Cv)q;!)t7Mj-$3|K^)6-u;)tf9x>LjH^Gm zwvwkr^j-^^%3)fB5hO;DU24*gIdCtTN&7;(>Lm4a8vjpu_K^HHbeva{%JCKJI$pFO z+VHPk*TobUZ(CD=$DHc8D}g|mqy!#qbpY)e?{MHYoQizffmh3;DW?W` zrgrmHG6pAQQp>IQh{lq}itAfYK9*#1(kqUF#5+ZXy~>~Glx2<+lA0tRcPR8--+CkPqzzJddLGo~Pg?&65XN3e>=EKk; z_VSGdHMx=+mZqY1p!?HyhK(+wH7QQcdd{!>T5Lr8?J=LgiBuhao7q3lp{&efgRbV6 zQT0TfABK?ENY*zDR z4No!j%w@tUd77d4pmj!1h21W^M3i`(gbKIDXVI11pRupnjMffz*;6^7q4eX__mCnI z*xW)N{x@VLfV<4FZF|qIK+iVaywmVxYTG3Cg5(O zh7LfE(f&Yx;bqFBtbm@uc>xlT3L9LZNszn3nwf?0)7bo;*=`@xD1=4B~wl)Hp zNRkO%9L7p}^TH=D3WKx8edUa0Z&Z^vGPk z%&MJrcH79dYOKZeT^^N{U>vC`IT3{s^nMDbq@nFt=`<#(2|BwKOz$QblxOq$STq|u zn$>ceY2>20Rqe%<3N7>gmUTWlsNFaeI4#+t*Jz7A08+f7K?>8IC;O{%*lpaIiuavt~b-lC9gR4^$PlYV$ z^>Yc<#mo$}lC%^ZQko@;f_I2ha-xgy%93xKBT0$=0vHm+iL0YVKV z%pqC1awN2P^3*oiDLt2KcDgY1tE|0Q=m^@Bo}XN-8>C3!b}30qv0J-o%6~Ohyz)AE zp?#o|b+3nO{kD{RfmmRY$ggWFYoEZ+NCc%}`RiJ^I_A_yhE*}c;7anxQUaiat~j}L6FSh)?JWJybs9m?FuSu`yUqIO;o4-60yyZ*l z-}58;1f{k&M<^Hb1GOVS^4)NO*0~$?`&B0I>U8{d)Tm5kZ7+RWZYDlGVWc#{;rDI^ z>7RLN+CUt8alcl~y!&ytv>~y{BuD ziaQ2{eOm59vpE3(3MM?D%wC8VXpb!x9BM!ovgkLlQXJ=ZguvX5lg`JZ3u5Fnym%bi zO3z|Ph_|%|+;8|AE)hvufr>bv*;Nh}He^3`%^f*pfgBFpdU*H})ROpPV|2YGbpJ?6 z3f>bZihf?p>EB@SZ84Q)w%%lb;Kn~Z8b~nyA@AAIocQAIfl0e_gPNxC zMYU-~OVQgmXBAl&x94%e#jiP_rP@{f3*eWO4zA`W3n}WNVXF9AlP{-w@xz=Jb^_++ zUq3kA_3Ub?%}!_)r0+t2{3XzE92gS>xtdHj`r>@;GOmkAF5mPA^89&D-uz_BI9uh= zXG)8bST+^u;F%z}mGV^wTIT6(lL0GY(e99d6va+TiJ4GWCrD26 z3@Q+1g;7Mm*M2dZnxir-G^2Q(Cs%S@U5#u)S0EXPmI1xwmEVCyn zYwFnesKL5^@^X@Mje=^2bh6nsPlu$<+|>#iv&!rA{?o((M}Av03_$glC_cztG|?yz zzu#)h4mSC+(vbq39)e%@vBuW(k=k6~yB$zUanVS+tgB(x3-j0lvQaS2Yfiv3W4r|( z@y7X?@aoks`&Fr#qXg?QX>jjIvQ03Jbit5q3`sVCahdc0$p%EiO^(7>LuD&%-y>ry z>6?E~K#s8|`?Rdp|V+GFKlTN zuIsh)vbea*dp~~`yr24Z|7(|{9+V_hvaNf{a&zXo`MBYo=@2tw(QH=5xoC;A%eH+F zKT{L^54dvZzlE(UbqWcsPxcZ7Ar7OAFJr751A*x~(kli^xVSO-JD4r&@QJ#lt(T2N z?DNUvO8CjuW8!C7UA=E+3sL<2Q9ilfLXSdEmWkxn4YVB&d&1GlNj-a^M+TEa9v+t$ zjrr&(Rhnkp#G}o55n@E)n{FQ#kRZ%q$(#A&TKTHwZq3HkYOitGK9v`3Vqbi4rv&|q zz{sowDRw;Kmi?op?)phq&>t6LZTBE9)eYpdqXIp%wUw=*cD|QZbxHf>mr$(Wwz_u* z^N532v!j8N{A7Gkq@l8$d&?5g4%AI*Est_^_dYt-=)2b;kd;ZZf^*#kz>RrQG;-jE z8`B|PX-pdIY4YFx^-$v;Wz(c^f#VOxSxZly^9;#j8eeHyz;6%^%0~(S(sLxpH2LmE z5R&c=pk9w#G^m94hp*daOOu{9S8FUg&YHk(VRwJYcYIyH)KT+e*PNJ`j4JMKlZ20V z`WgcrI-CW}V($5NSNF*{R=pz*OQS$~v%GeP$GRr*etohQC#70LZeLiL<;_${>DNR~ zYIs_iAyML5H(A1SDqpj>#9m6W_lu7&>MkEIV1<~<)j{)E1PROWPY;+*#jlo!ULf+@ z(-$EcV!ckMt(#x_KK6|GTly}ewTyC`znIg@oH14j7t$8|Xym9l7W6Xz2xQDkPX0)je4m8>G;G&eP3CnHVWK+~^1-os8in zn8#6ux2=nolwU0>q54O$x{tN;kquWdCv;$Wf(7MAdK2FawB&ycu7}v)op(q zrw%C(EhMe1J}hk8&9(K~L)5oBjI!3mQCI@&OAlO92IHBR;G+R-+f_R%=t*(b1$RfL zR3R^0FDk{>JX+hYk~8HXJwaV&Y69Z-SBwBxBDiab&1U1YWtP=0?M6S}a$L6b`mET@ zF(0v>Y-VBkE0Ra zFBtcnU5-%vaO5+%({}x~;_Zm)-GX#4w>qcN|$mNfNiSv95V8#OI;nuynj397s|hGVl!U5Nw*jRJ2e*XX=Addk{7 zx12RQQJ~~7vhjcK8C^r*Afoty=5mw%X>WbQwW&9VkZW;{6l0w(;SvmUF?}iajA@uL z;*|o=iRPNFH8;};{e=Vl5vsA6;i=7T!nr=kP&3c|SkzfG@Upn?-Mt>H`hnAKd+!VI zKw&+obsB1d4+(AH3^`(!ZnKg1n#Bta5>38RQkDS|_IIfRW5XU~XeblW} zqgBI^N4OK}I6npbJfYG8m8JS(ro>WE{$ltM^Ry*DeI?!<6Qjh28i)F3ji88tl*qYW zYz}Jr2i^3|+x3+t(U;cWRaShTPuLdQjuIN`9~>I%x$YPp4U4|-PVN~Aaja_X!Rj2o znm>llP4I?W3R3-8Q(x}&62$~60Zp1x!XJsf)*9&3>D|_>>*U3posE41bFr1N)qf-# zER1T9&WcYssObfLb@t&QVSV4zXR-c0`Qsf$1E}Bi?U;+(Vu=gO9j+o(-ptDAz@bwh zT-z_1%}E817JR}uLI@>(pID5a9u|*rfId9V!Lhek5&-^aaW+8jmAHG^QqJ4P{aan# zS?XO@kOl`fr|dFYS%|_!a|68;3`;}(vo3IUbNJ*KmEA24b2%@Lq2|5`Ju;L=b7Rua zyVtSfU(d2Fo@7@)b;v(IS%WF+5KQ=(qET&O`+=@@L8)_M@LRe$u?ky`v|lR^FCr`+vEy00`rVKPfAjbbM4pbxb6cXIse z;Y)F;w?24#f1l_UtItSJqvFW4&F8bE;7XWHxpIcBffa|gOdzH+FXQ59+zeW-O)23KP1gQ=bE+5#zU_pN<$+53B~D9SX^B06sBSAXHi4EC z6M_>GY%ZC4y@vl|NAa|>Q{p|i+ZFluMlYpnF7W+YFaWTA`v3HmjKxU9#n00O3X07R zuozv1#9byxvkG4TeCPJPFOsYrx|^I+9BOTOF%47E$Y^O&-jPG$@k(1_>O$&AcB+5s z8*KCbBK2vFFBW~AYuE@VksL$yfHi)F)Lp@=O<8$Ox2W|9`;CE&ki9T)L0Uv}sWnY} zh#<((wQI})>E8^2OSU3m3>7y_ko@S<35?~l%)?>e$kC(iXd`~#K}Voz(PcU78QVm^ zL86}TdUFa@$sBmuZ;WBg;Z1t8rG$bXOf047zJa5@eazL(4&(*UoHNwyOr`HWmEy9f z`$}`5W@YE8d4%+?OQDO9r5@oYHt*%6cu{a8pIN=u@2iUXT^q5jFE(tZGRf3+-WM#v zwtS>5T77F31;M*~Y}baXO^%6y@Ub3Ng{<2afh=njIO=Fdg+BT-V%da19e#S*xAMv3 z7$Xq2+-*KoX{2O-73;L{(3jm z5UoG8`Je6?2h@wzyIZd_ga^L%VJjJbV7AOV77=m+w3`HTn7+#ZsB}R!e%w!O`lx>5 zm9FMayp|pIVD6alYla+Z4##%6DcJ#+6-<5**mZs)nok1-*D`E_;0i%K&%+EwDq;We zA?ono?zsJeGrU4pV|%UdQDt>(hXw@ILIxA$Y8X&xQC4>iUe9KoYSno9^$5HPM9T^C zBXGafKZ$ztDI}O`^sr*#1u%bs`*aI7dV9p#uCZ~4)OWdi4imZ8<{^jKlZ7l*JS?m5 zZKiJ5U4Cnxm%KG3!Mj*DTgeV_R_=M;Wv)MURI-`8S=J#YVjGIhD9sF1RpNb+4|d8> z6IxOdE(q|vj`eUPvlK1XJX}UBHe0)3FxYve zqTY;B7-!<$=QMQsP*80mp7wyy)1w^lQ;*NgiB`$1VF@0E7TWQH_}|@;(AYEC(zsh= zZ4lZjLb7s{>?vGIbrER~sA20-+tVS#-z(v#ert_q0^d_64y2nas@|+Kd@ROQZ3Z7u zKfDfLt#*N(W5VSNye5SVos&?!P#mzeg5AuZdY#%-LQ73LR%lSX9h85A1Y-n8J(Kqv zk`pVpV;q;!b8)e5S!F&D8xE~fV<3$sd~YBwKCRxYMx}@2L>r&gzv5Pm*i62L=hiZs z1Fz(nC^VeM+dl}T`qpnu#R{ZZdDVCqAP z;HTgwtd0ds?K34M@zGp%tC4oslP}FB`A=0lEjnDrS3#-#qFV9K>ND9Q_HMao+2*IE zL8|8Q>Hftg$$w$4-3lD2xsnuFYjVe%J*^Vb)29lG)^j#>XmPB-mmVY^s6xzas~s{F zy5+Z|{!@<^_{*MD$?o>A#l`a{X(*~i$g4!3ziO@x1H;ChDD(Jb9HsQ&E;+zW2 zve&Ba@>AaoDGxz+y}uocI*u>M%#*#km=}JlCzVU*(Op4{H-nR8TH&5q$w^eEpvYYu zW_NdV?4Ai4WOV*&{9`}%UXK@*^eosrm!WoRn&8W!o+CEnI_X9r{gd?B z{L_mQ3n`*+-~yurH}Ap!xJ*Frp3b-I=7M$Zn$Ch-Ma~b@kc%rwKyzz3qtH7E_cvNk zbs$n)N~D*G&UFuK)ZH>7r9w7N|CR>kz8c6n_LBcN^YP256@&nk&Nk^>h!rP!NJM?4 z$=~bqkxp=~rza{0d!RmrJXoHhEmEhm*-<1VE$LYWL&T1qA)(f6C)+he^LWHFc&f5= z&z6dtl}CXo`;1lOz@r|yMWYnZCU7c=Y04;=F7Cp9Jq)~T zM)}>+S<_EX$jtw1xBR|dT@rMv)ln~KMWM5v{G?Xbn(&m&>A*|ni`jF5w=?c9yY@OD z&ui`JRX$f!wY}Gt7XJKnb=DTcdmmPtty%l->|!1z>m-x1y}s{i$j zFERBzb?!OU^QwG*?>G7JO6@{^Y}G8Qo$G2{f=V?nSYD3uJT4tr`(n+c-Cw`BrT23J z8w0-1_3!US_2tc7m7iO;X;Rg(oUUH4l9Pq2?*VTT_66QwdB$B%;_MN}Tgx-0?rq)v zT5RFMtgW+ZeY8%M0`s1Go<6tV-QG>dWfpDHED9@aUsZbL+@$4o*?J*f7d5mNHEumz zaC4SBzewH!VB7D~)ZkF1Ra`ekg;TG1&scWQisM$F#N}O`F2DvIFxQ0|dv_yMFvb3^ z$3Gl@ay+Mc%G&h8Jl*4FF@F!Qdu6rcq`?l=ZF zey}V~Id|o`yIu<#}>-}=Y?+J~*{KL)1%vwvJ~dHOqxV!bzvXrus)zP2Y!elo z6r=3<`0>o09m!iSuX>;RdVP?seazik_ZE9S3fw7L)pGOF9dF>iW8YZG9)n|fN_@8h zbAVa>rt8(dWiPLA`z*R|b!AmX;vosq7=Mn6*6kJH&oZ9c*c6)^@{}Du?7V;bv*}uz zQhC5?L)G0#bEBhj&|E!<#lX99X0@r7-Ctez=FG>3c7^O&?_cJ9y6|dOqx+7k!#hfI zo&2V&XmnXcUn_Pzch!BQWIyW{v)h*TepeVIriG?uTsEPZh`;mm3<{A5|fwDm1>cy}V{>DfIZW!qmuEvl4;h zX`8$(X8E06{XMPlFi&}pi|m#qk+U}w+XaJl)ShGzabGCvHW2FbEU9ngP&AP*Vt`KX zrvG{2!_~&%sWY~D8z!dd=p1dGv0<~ASkj?05s}^8qe9dS2}`Mlp_sp^?&hLRj44bf zSSN5Rh&kvqL^6zWVWGin!qgDJ#ps~H%CJCW$TKy+oiWon5ZSPqF^%aA>kMuKv4l}B zBsBOOsGh4xHjr@v$y%tcL1xVk#?%AcdJK^TOs5;fVi-0(V4cpOGb%{;0AV~WCb?LQ z%P?V-pl=ue4-+>|ozJl8d_!dV0iDec#3Da%>-=DyR>O4Kj&W3Chz3a!PXpBp%OPkW z_MFP__Mui7sm^?|kxgj!P)4|lH)2!3Db;Kfc QM!C??c#=2>3YPyj0gbjUbN~PV literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/placeholder-product.svg b/sites/tomsjavajive.com/public_html/assets/images/placeholder-product.svg new file mode 100644 index 0000000..d6a9813 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/images/placeholder-product.svg @@ -0,0 +1,7 @@ + + + + + + Product Image + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/assets/images/premium-coffee.jpg b/sites/tomsjavajive.com/public_html/assets/images/premium-coffee.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4632c9eb46bc3c486d3f7604d380c29e424806a5 GIT binary patch literal 65998 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

9@o6-XL~gN#$|G8BLSI< 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/tjj-logo-website.png b/sites/tomsjavajive.com/public_html/assets/images/tjj-logo-website.png new file mode 100644 index 0000000000000000000000000000000000000000..43291bc90ab3947322737c7c6408cf3b7ee8a157 GIT binary patch literal 80025 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

9nQk2kh<>HgOZtfef;vdf?(X84k}Z$BaPmIMZY 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

7bci;d{^HG#
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 RhgiU&s-&q{DgWl<{{eVj&G!HR literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/images/tjj-logo-with-url.png b/sites/tomsjavajive.com/public_html/assets/images/tjj-logo-with-url.png new file mode 100644 index 0000000000000000000000000000000000000000..3e51b6c4019ea0850c0aaecd9ea55da373c459be GIT binary patch literal 107853 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 e|*MCmSAx^X^8e-tMQHD(b!_LA&0Q@ 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 literal 0 HcmV?d00001 diff --git a/sites/tomsjavajive.com/public_html/assets/js/main.js b/sites/tomsjavajive.com/public_html/assets/js/main.js new file mode 100644 index 0000000..17eb693 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/assets/js/main.js @@ -0,0 +1,394 @@ +/** + * Tom's Java Jive - Main JavaScript + */ + +// ================================ +// Toast Notifications +// ================================ +const ToastManager = { + container: null, + + init() { + if (!this.container) { + this.container = document.createElement('div'); + this.container.className = 'toast-container'; + document.body.appendChild(this.container); + } + }, + + show(message, type = 'success', duration = 3000) { + this.init(); + + const toast = document.createElement('div'); + toast.className = `toast ${type}`; + toast.innerHTML = ` + + ${message} + `; + + this.container.appendChild(toast); + + setTimeout(() => { + toast.style.animation = 'slideIn 0.3s ease reverse'; + setTimeout(() => toast.remove(), 300); + }, duration); + }, + + success(message) { this.show(message, 'success'); }, + error(message) { this.show(message, 'error'); }, + info(message) { this.show(message, 'info'); } +}; + +// ================================ +// Cart Functions +// ================================ +async function addToCart(productId, quantity = 1) { + try { + const response = await fetch('/api/cart.php', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + action: 'add', + product_id: productId, + quantity: parseInt(quantity) + }) + }); + + const data = await response.json(); + + if (data.error) { + ToastManager.error(data.error); + return; + } + + // Update cart count in header + updateCartCount(data.cart_count); + ToastManager.success(data.message || 'Added to cart!'); + + } catch (error) { + console.error('Add to cart error:', error); + ToastManager.error('Failed to add item to cart'); + } +} + +async function updateCartItem(productId, quantity) { + try { + const response = await fetch('/api/cart.php', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + action: 'update', + product_id: productId, + quantity: parseInt(quantity) + }) + }); + + const data = await response.json(); + + if (data.error) { + ToastManager.error(data.error); + return; + } + + // Update cart count + updateCartCount(data.cart_count); + + // Reload page if cart is now empty or update display + if (data.cart_count === 0) { + location.reload(); + } else if (typeof updateCartDisplay === 'function') { + updateCartDisplay(data); + } else { + location.reload(); + } + + } catch (error) { + console.error('Update cart error:', error); + ToastManager.error('Failed to update cart'); + } +} + +async function removeFromCart(productId) { + try { + const response = await fetch('/api/cart.php', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + action: 'remove', + product_id: productId + }) + }); + + const data = await response.json(); + + if (data.error) { + ToastManager.error(data.error); + return; + } + + updateCartCount(data.cart_count); + + // Remove item from DOM or reload + const cartItem = document.querySelector(`.cart-item[data-product-id="${productId}"]`); + if (cartItem) { + cartItem.style.animation = 'slideIn 0.3s ease reverse'; + setTimeout(() => { + cartItem.remove(); + if (data.cart_count === 0) { + location.reload(); + } + }, 300); + } else { + location.reload(); + } + + ToastManager.success('Item removed from cart'); + + } catch (error) { + console.error('Remove from cart error:', error); + ToastManager.error('Failed to remove item'); + } +} + +function updateCartCount(count) { + const cartCountEl = document.querySelector('.cart-count'); + if (cartCountEl) { + if (count > 0) { + cartCountEl.textContent = count; + cartCountEl.style.display = 'flex'; + } else { + cartCountEl.style.display = 'none'; + } + } else if (count > 0) { + const cartLink = document.querySelector('.cart-link'); + if (cartLink) { + const badge = document.createElement('span'); + badge.className = 'cart-count'; + badge.textContent = count; + cartLink.appendChild(badge); + } + } +} + +// ================================ +// Quantity Selectors +// ================================ +document.addEventListener('DOMContentLoaded', function() { + // Quantity +/- buttons + document.querySelectorAll('.qty-minus').forEach(btn => { + btn.addEventListener('click', function() { + const input = this.closest('.quantity-selector').querySelector('.qty-input'); + const current = parseInt(input.value) || 1; + if (current > 1) { + input.value = current - 1; + input.dispatchEvent(new Event('change')); + } + }); + }); + + document.querySelectorAll('.qty-plus').forEach(btn => { + btn.addEventListener('click', function() { + const input = this.closest('.quantity-selector').querySelector('.qty-input'); + const current = parseInt(input.value) || 1; + const max = parseInt(input.max) || 999; + if (current < max) { + input.value = current + 1; + input.dispatchEvent(new Event('change')); + } + }); + }); + + // Add to cart buttons + document.querySelectorAll('.add-to-cart-btn').forEach(btn => { + btn.addEventListener('click', function(e) { + if (!this.dataset.productId) return; + + e.preventDefault(); + const productId = this.dataset.productId; + const qtyInput = document.querySelector('.qty-input'); + const quantity = qtyInput ? parseInt(qtyInput.value) : 1; + + addToCart(productId, quantity); + }); + }); + + // Mobile menu toggle + const menuToggle = document.querySelector('.mobile-menu-toggle'); + const navMenu = document.querySelector('.nav-menu'); + if (menuToggle && navMenu) { + menuToggle.addEventListener('click', function() { + navMenu.classList.toggle('active'); + this.querySelector('i').classList.toggle('fa-bars'); + this.querySelector('i').classList.toggle('fa-times'); + }); + } + + // Confirm delete dialogs + document.querySelectorAll('[data-confirm]').forEach(el => { + el.addEventListener('click', function(e) { + if (!confirm(this.dataset.confirm)) { + e.preventDefault(); + } + }); + }); + + // Auto-hide alerts + document.querySelectorAll('.alert').forEach(alert => { + setTimeout(() => { + alert.style.opacity = '0'; + alert.style.transform = 'translateY(-10px)'; + setTimeout(() => alert.remove(), 300); + }, 5000); + }); +}); + +// ================================ +// Form Helpers +// ================================ +function serializeForm(form) { + const formData = new FormData(form); + const data = {}; + formData.forEach((value, key) => { + data[key] = value; + }); + return data; +} + +async function submitForm(form, url, method = 'POST') { + const data = serializeForm(form); + + try { + const response = await fetch(url, { + method, + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(data) + }); + + return await response.json(); + } catch (error) { + console.error('Form submit error:', error); + throw error; + } +} + +// ================================ +// Format Helpers +// ================================ +function formatCurrency(amount) { + return '$' + parseFloat(amount).toFixed(2); +} + +function formatDate(date) { + return new Date(date).toLocaleDateString('en-US', { + year: 'numeric', + month: 'short', + day: 'numeric' + }); +} + +// ================================ +// Loading States +// ================================ +function setLoading(button, isLoading) { + if (isLoading) { + button.dataset.originalText = button.innerHTML; + button.innerHTML = ' Loading...'; + button.disabled = true; + } else { + button.innerHTML = button.dataset.originalText || button.innerHTML; + button.disabled = false; + } +} + +// ================================ +// Image Preview +// ================================ +function previewImage(input, previewId) { + const preview = document.getElementById(previewId); + if (!preview) return; + + if (input.files && input.files[0]) { + const reader = new FileReader(); + reader.onload = function(e) { + preview.src = e.target.result; + preview.style.display = 'block'; + }; + reader.readAsDataURL(input.files[0]); + } +} + +// ================================ +// Newsletter Subscription +// ================================ +document.querySelectorAll('.newsletter-form').forEach(form => { + form.addEventListener('submit', async function(e) { + e.preventDefault(); + + const email = this.querySelector('input[type="email"]').value; + const button = this.querySelector('button'); + + setLoading(button, true); + + try { + const response = await fetch('/api/subscribe.php', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ email }) + }); + + const data = await response.json(); + + if (data.error) { + ToastManager.error(data.error); + } else { + ToastManager.success('Thank you for subscribing!'); + this.reset(); + } + } catch (error) { + ToastManager.error('Subscription failed. Please try again.'); + } finally { + setLoading(button, false); + } + }); +}); + +// ================================ +// Debounce Helper +// ================================ +function debounce(func, wait) { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +} + +// ================================ +// Local Storage Helpers +// ================================ +const Storage = { + get(key, defaultValue = null) { + try { + const item = localStorage.getItem(key); + return item ? JSON.parse(item) : defaultValue; + } catch { + return defaultValue; + } + }, + + set(key, value) { + try { + localStorage.setItem(key, JSON.stringify(value)); + } catch (e) { + console.error('Storage error:', e); + } + }, + + remove(key) { + localStorage.removeItem(key); + } +}; diff --git a/sites/tomsjavajive.com/public_html/cart.php b/sites/tomsjavajive.com/public_html/cart.php new file mode 100644 index 0000000..5c5e1e0 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/cart.php @@ -0,0 +1,168 @@ +'; +require_once __DIR__ . '/includes/header.php'; + +$cart = getCart(); +$cartItems = []; +$subtotal = 0; + +// Get product details for cart items +foreach ($cart as $productId => $quantity) { + $product = db()->fetch( + "SELECT product_id, name, price, sale_price, stock, images FROM products WHERE product_id = :id AND is_active = 1", + ['id' => $productId] + ); + + if ($product) { + $images = json_decode($product['images'] ?? '[]', true); + $product['image'] = !empty($images) ? $images[0] : '/assets/images/placeholder-product.svg'; + $product['quantity'] = min($quantity, $product['stock']); + $product['unit_price'] = $product['sale_price'] ?? $product['price']; + $product['total'] = $product['unit_price'] * $product['quantity']; + $subtotal += $product['total']; + $cartItems[] = $product; + } +} + +// Get shipping settings +$shippingSettings = getSetting('shipping', [ + 'flat_rate_enabled' => true, + 'flat_rate_amount' => 5.99, + 'free_shipping_threshold' => 50 +]); + +$shippingCost = 0; +if ($shippingSettings['flat_rate_enabled'] ?? true) { + if ($subtotal >= ($shippingSettings['free_shipping_threshold'] ?? 50)) { + $shippingCost = 0; + } else { + $shippingCost = $shippingSettings['flat_rate_amount'] ?? 5.99; + } +} + +$total = $subtotal + $shippingCost; +?> + + + + + + diff --git a/sites/tomsjavajive.com/public_html/checkout.php b/sites/tomsjavajive.com/public_html/checkout.php new file mode 100644 index 0000000..e10f0b6 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/checkout.php @@ -0,0 +1,467 @@ + $quantity) { + $product = db()->fetch( + "SELECT product_id, name, price, sale_price, stock, images FROM products WHERE product_id = :id AND is_active = 1", + ['id' => $productId] + ); + + if ($product) { + $images = json_decode($product['images'] ?? '[]', true); + $product['image'] = !empty($images) ? $images[0] : '/assets/images/placeholder-product.svg'; + $product['quantity'] = min($quantity, $product['stock']); + $product['unit_price'] = $product['sale_price'] ?? $product['price']; + $product['total'] = $product['unit_price'] * $product['quantity']; + $subtotal += $product['total']; + $cartItems[] = $product; + } +} + +// Get shipping settings +$shippingSettings = getSetting('shipping', [ + 'flat_rate_enabled' => true, + 'flat_rate_amount' => 5.99, + 'free_shipping_threshold' => 50 +]); + +$shippingCost = 0; +if ($shippingSettings['flat_rate_enabled'] ?? true) { + if ($subtotal >= ($shippingSettings['free_shipping_threshold'] ?? 50)) { + $shippingCost = 0; + } else { + $shippingCost = $shippingSettings['flat_rate_amount'] ?? 5.99; + } +} + +$preDiscountTotal = $subtotal + $shippingCost; +$processor = defined('PAYMENT_PROCESSOR') ? PAYMENT_PROCESSOR : 'stripe'; + +$errors = []; + +// Handle form submission +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + // Validate form + $email = trim($_POST['email'] ?? ''); + $name = trim($_POST['name'] ?? ''); + $phone = trim($_POST['phone'] ?? ''); + $address = trim($_POST['address'] ?? ''); + $city = trim($_POST['city'] ?? ''); + $state = trim($_POST['state'] ?? ''); + $zip = trim($_POST['zip'] ?? ''); + + if (empty($email)) $errors['email'] = 'Email is required'; + if (empty($name)) $errors['name'] = 'Name is required'; + if (empty($address)) $errors['address'] = 'Address is required'; + if (empty($city)) $errors['city'] = 'City is required'; + if (empty($state)) $errors['state'] = 'State is required'; + if (empty($zip)) $errors['zip'] = 'ZIP code is required'; + + // Re-validate any requested wallet credit server-side against the + // customer's current balance - never trust the client-submitted amount. + $walletAmountUsed = 0; + if ($customer && !empty($_POST['wallet_amount_used'])) { + $requestedWallet = (float) $_POST['wallet_amount_used']; + $freshCustomer = db()->fetch("SELECT wallet_balance FROM customers WHERE customer_id = :id", ['id' => $customer['customer_id']]); + $currentBalance = (float) ($freshCustomer['wallet_balance'] ?? 0); + $walletAmountUsed = max(0, round(min($requestedWallet, $currentBalance, $preDiscountTotal), 2)); + } + + $total = round($preDiscountTotal - $walletAmountUsed, 2); + + if (empty($errors)) { + // Create order + $orderId = generateId('ord_'); + $orderNumber = generateOrderNumber(); + + // Get or create customer + $customerId = null; + if ($customer) { + $customerId = $customer['customer_id']; + } else { + $customerId = CustomerAuth::createGuest($email, $name, $phone); + } + + // Prepare order items + $orderItems = []; + foreach ($cartItems as $item) { + $orderItems[] = [ + 'product_id' => $item['product_id'], + 'name' => $item['name'], + 'price' => $item['unit_price'], + 'quantity' => $item['quantity'], + 'total' => $item['total'] + ]; + } + + // Insert order + db()->insert('orders', [ + 'order_id' => $orderId, + 'order_number' => $orderNumber, + 'customer_id' => $customerId, + 'customer_email' => $email, + 'customer_name' => $name, + 'customer_phone' => $phone, + 'items' => json_encode($orderItems), + 'subtotal' => $subtotal, + 'shipping_cost' => $shippingCost, + 'wallet_amount_used' => $walletAmountUsed, + 'total' => $total, + 'shipping_address' => json_encode([ + 'address' => $address, + 'city' => $city, + 'state' => $state, + 'zip' => $zip, + 'country' => 'USA' + ]), + 'shipping_method' => 'standard', + 'payment_method' => $processor, + 'payment_status' => 'pending', + 'order_status' => 'pending' + ]); + + // Insert order items for reporting + foreach ($orderItems as $item) { + db()->insert('order_items', [ + 'order_id' => $orderId, + 'product_id' => $item['product_id'], + 'name' => $item['name'], + 'price' => $item['price'], + 'quantity' => $item['quantity'], + 'total' => $item['total'] + ]); + } + + // Reduce stock + foreach ($cartItems as $item) { + db()->query( + "UPDATE products SET stock = stock - :qty WHERE product_id = :id", + ['qty' => $item['quantity'], 'id' => $item['product_id']] + ); + } + + // Store order ID for payment + $_SESSION['pending_order_id'] = $orderId; + + // Redirect to payment page + redirect('/payment.php?order=' . $orderId); + } +} + +$metaTitle = "Secure Checkout | Tom's Java Jive"; +$metaDescription = 'Complete your coffee order with secure checkout.'; +$canonicalUrl = 'https://tomsjavajive.com/checkout.php'; +$metaRobots = "noindex, nofollow"; +$suppressSchema = true; +$extraHead = ''; +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+

Checkout

+ +
+ +
+ + +
+ +
+
+

Contact Information

+
+
+ +

Logged in as

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

+ Already have an account? Sign in +

+ +
+
+ + +
+
+

Shipping Address

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

Wallet & Gift Cards

+
+
+

+ Wallet balance: +

+ 0): ?> + + +
+
+ + +
+ +
+
+ +
+
+ + + +
+
+

Order Notes (Optional)

+
+
+ +
+
+
+ + +
+
+

Order Summary

+
+
+ +
+ +
+ +
+

+ x +
+
+ +
+
+ +
+ + +
+ Subtotal + +
+
+ Shipping + + + FREE + + + + +
+ + +
+ +
+ Total + +
+ + + + + Back to Cart + + +

+ Secure checkout powered by +

+
+
+
+
+
+
+ + + + + + diff --git a/sites/tomsjavajive.com/public_html/composer.json b/sites/tomsjavajive.com/public_html/composer.json new file mode 100644 index 0000000..76042ed --- /dev/null +++ b/sites/tomsjavajive.com/public_html/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "phpmailer/phpmailer": "^7.1" + } +} diff --git a/sites/tomsjavajive.com/public_html/composer.lock b/sites/tomsjavajive.com/public_html/composer.lock new file mode 100644 index 0000000..db8db27 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/composer.lock @@ -0,0 +1,101 @@ +{ + "_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": "c7173d6a700b02b111e51b703acd8c8e", + "packages": [ + { + "name": "phpmailer/phpmailer", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "1bc1716a507a65e039d4ac9d9adebbbd0d346e15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/1bc1716a507a65e039d4ac9d9adebbbd0d346e15", + "reference": "1bc1716a507a65e039d4ac9d9adebbbd0d346e15", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^10.0.0@dev", + "squizlabs/php_codesniffer": "^3.13.5", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", + "directorytree/imapengine": "For uploading sent messages via IMAP, see gmail example", + "ext-imap": "Needed to support advanced email address parsing according to RFC822", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.1.1" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2026-05-18T08:06:14+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} diff --git a/sites/tomsjavajive.com/public_html/config/config.php b/sites/tomsjavajive.com/public_html/config/config.php new file mode 100644 index 0000000..932a7ce --- /dev/null +++ b/sites/tomsjavajive.com/public_html/config/config.php @@ -0,0 +1,2 @@ +s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:tomsj4710 php +} + +extprocessor tomsj4710 { + type lsapi + address UDS://tmp/lshttpd/tomsj4710.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser tomsj4710 + extGroup tomsj4710 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/tomsjavajive.com/privkey.pem + certFile /etc/letsencrypt/live/tomsjavajive.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} diff --git a/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf.txt b/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf.txt new file mode 100755 index 0000000..06d1363 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf.txt @@ -0,0 +1,85 @@ +docroot $VH_ROOT/public_html +vhaliases www.$VH_NAME +enablegzip 1 +phpinioverride +vhdomain $VH_NAME +enableipgeo 1 +adminemails admin@tomsjavajive.com + +extprocessor tomsj4710 { + inittimeout 600 + retrytimeout 0 + persistconn 1 + maxconns 10 + type lsapi + address UDS://tmp/lshttpd/tomsj4710.sock + extuser tomsj4710 + extgroup tomsj4710 + prochardlimit 500 + pckeepalivetimeout 1 + respbuffer 0 + autostart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + env LSAPI_CHILDREN=10 + procsoftlimit 400 + memsoftlimit 1024M + memhardlimit 1024M +} + +vhssl { + keyfile /etc/letsencrypt/live/tomsjavajive.com/privkey.pem + certfile /etc/letsencrypt/live/tomsjavajive.com/fullchain.pem + certchain 1 + enablespdy 15 + enablestapling 1 + ocsprespmaxage 86400 + sslprotocol 24 + enableecdhe 1 + renegprotection 1 + sslsessioncache 1 +} + +scripthandler { + add lsapi:tomsj4710 php +} + +module cache { + param storagepath /usr/local/lsws/cachedata/$VH_NAME + unknownkeywords storagepath /usr/local/lsws/cachedata/$VH_NAME +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + keepdays 10 + useserver 0 + logformat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + compressarchive 1 + logheaders 5 + rollingsize 10M +} + +index { + indexfiles index.php, index.html + useserver 0 +} + +context /.well-known/acme-challenge { + phpinioverride + adddefaultcharset off + allowbrowse 1 + location /usr/local/lsws/Example/html/.well-known/acme-challenge + + rewrite { + enable 0 + } +} + +rewrite { + enable 1 + autoloadhtaccess 1 +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + rollingsize 10M + useserver 0 + loglevel WARN +} diff --git a/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0 b/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0 new file mode 100755 index 0000000..454a318 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0 @@ -0,0 +1,91 @@ +docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@tomsjavajive.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:tomsj4710 php +} + +extprocessor tomsj4710 { + type lsapi + address UDS://tmp/lshttpd/tomsj4710.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser tomsj4710 + extGroup tomsj4710 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/tomsjavajive.com/privkey.pem + certFile /etc/letsencrypt/live/tomsjavajive.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} diff --git a/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0,v b/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0,v new file mode 100755 index 0000000..bccd488 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/config/vhost/vhost.conf0,v @@ -0,0 +1,130 @@ +head 1.2; +access; +symbols; +locks + root:1.2; strict; +comment @# @; + + +1.2 +date 2026.05.15.20.13.36; author root; state Exp; +branches; +next 1.1; + +1.1 +date 2026.05.15.20.12.31; author root; state Exp; +branches; +next ; + + +desc +@/usr/local/lsws/conf/vhosts/tomsjavajive.com/vhost.conf0 +@ + + +1.2 +log +@Update +@ +text +@docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@@tomsjavajive.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:tomsj4710 php +} + +extprocessor tomsj4710 { + type lsapi + address UDS://tmp/lshttpd/tomsj4710.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser tomsj4710 + extGroup tomsj4710 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/tomsjavajive.com/privkey.pem + certFile /etc/letsencrypt/live/tomsjavajive.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} +@ + + +1.1 +log +@Update +@ +text +@d79 13 +@ diff --git a/sites/tomsjavajive.com/public_html/contact.php b/sites/tomsjavajive.com/public_html/contact.php new file mode 100644 index 0000000..88a4dfb --- /dev/null +++ b/sites/tomsjavajive.com/public_html/contact.php @@ -0,0 +1,169 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Contact', 'url' => 'https://tomsjavajive.com/contact.php'] +]; +require_once __DIR__ . '/includes/functions.php'; + +$sent = false; +$errors = []; + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $name = trim($_POST['name'] ?? ''); + $email = trim($_POST['email'] ?? ''); + $subject = trim($_POST['subject'] ?? ''); + $message = trim($_POST['message'] ?? ''); + + if (empty($name)) $errors['name'] = 'Name is required.'; + if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) + $errors['email'] = 'A valid email address is required.'; + if (empty($subject)) $errors['subject'] = 'Please choose a subject.'; + if (empty($message)) $errors['message'] = 'Message cannot be empty.'; + + if (empty($errors)) { + $html = "

Name: {$name}
Email: {$email}
Subject: {$subject}

" . nl2br(htmlspecialchars($message)) . "

"; + sendEmail('sales@tomsjavajive.com', "Contact Form: {$subject}", $html); + $sent = true; + } +} + +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+ +
+

Contact Us

+

Questions about your order or just want to talk coffee? We'd love to hear from you.

+
+ +
+ + +
+
+
+

Get in Touch

+ +
+
+ +
+
+
Email
+ sales@tomsjavajive.com +
We reply within 1 business day
+
+
+ +
+
+ +
+
+
Phone
+ (817) 266-2022 +
Mon–Fri, 9am–5pm CT
+
+
+ +
+
+ +
+
+
Location
+
Weatherford, TX 76088
+
United States
+
+
+
+
+ + +
+ + +
+
+ +
+
+

Message Sent!

+

Thanks for reaching out. We'll get back to you within one business day.

+ Browse Our Coffee +
+ +

Send a Message

+
+
+
+ + + + + +
+
+ + + + + +
+
+ +
+ + + + + +
+ +
+ + + + + +
+ + +
+ +
+
+ +
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/db/schema.sql b/sites/tomsjavajive.com/public_html/db/schema.sql new file mode 100644 index 0000000..46b4dd8 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/db/schema.sql @@ -0,0 +1,786 @@ +/*M!999999\- enable the sandbox mode */ + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +DROP TABLE IF EXISTS `abandoned_carts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `abandoned_carts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `cart_id` varchar(50) NOT NULL, + `customer_id` varchar(50) DEFAULT NULL, + `customer_email` varchar(255) DEFAULT NULL, + `items` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`items`)), + `subtotal` decimal(10,2) NOT NULL, + `recovery_email_sent` tinyint(1) DEFAULT 0, + `recovered` tinyint(1) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `cart_id` (`cart_id`), + KEY `idx_customer_email` (`customer_email`), + KEY `idx_recovered` (`recovered`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `about_us_sections`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `about_us_sections` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `section_id` varchar(50) NOT NULL, + `heading` varchar(255) DEFAULT NULL, + `body` longtext NOT NULL, + `sort_order` int(11) DEFAULT 0, + `is_active` tinyint(1) DEFAULT 1, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `section_id` (`section_id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `admin_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` varchar(50) NOT NULL, + `email` varchar(255) NOT NULL, + `password_hash` varchar(255) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `picture` varchar(500) DEFAULT NULL, + `is_admin` tinyint(1) DEFAULT 1, + `is_master` tinyint(1) DEFAULT 0, + `permissions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`permissions`)), + `created_at` timestamp NULL DEFAULT current_timestamp(), + `last_login` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + UNIQUE KEY `email` (`email`), + KEY `idx_email` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `categories` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `category_id` varchar(50) NOT NULL, + `name` varchar(255) NOT NULL, + `slug` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `image` varchar(500) DEFAULT NULL, + `parent_id` varchar(50) DEFAULT NULL, + `sort_order` int(11) DEFAULT 0, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `category_id` (`category_id`), + UNIQUE KEY `slug` (`slug`), + KEY `idx_slug` (`slug`), + KEY `idx_is_active` (`is_active`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `coupons`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `coupons` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `coupon_id` varchar(50) NOT NULL, + `code` varchar(50) NOT NULL, + `discount_type` enum('percentage','fixed') NOT NULL DEFAULT 'percentage', + `discount_value` decimal(10,2) NOT NULL, + `min_order_amount` decimal(10,2) DEFAULT NULL, + `max_uses` int(11) DEFAULT NULL, + `times_used` int(11) DEFAULT 0, + `is_active` tinyint(1) DEFAULT 1, + `starts_at` timestamp NULL DEFAULT NULL, + `expires_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `coupon_id` (`coupon_id`), + UNIQUE KEY `code` (`code`), + KEY `idx_code` (`code`), + KEY `idx_is_active` (`is_active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `customers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `customers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `customer_id` varchar(50) NOT NULL, + `email` varchar(255) NOT NULL, + `password_hash` varchar(255) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `phone` varchar(50) DEFAULT NULL, + `shipping_address` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`shipping_address`)), + `billing_address` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`billing_address`)), + `wallet_balance` decimal(10,2) DEFAULT 0.00, + `reward_points` int(11) DEFAULT 0, + `lifetime_points` int(11) DEFAULT 0, + `loyalty_tier` varchar(20) DEFAULT 'bronze', + `is_guest` tinyint(1) DEFAULT 0, + `created_via` varchar(50) DEFAULT 'web', + `email_verified` tinyint(1) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `is_active` tinyint(1) DEFAULT 1, + `addresses` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`addresses`)), + `preferences` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`preferences`)), + PRIMARY KEY (`id`), + UNIQUE KEY `customer_id` (`customer_id`), + UNIQUE KEY `email` (`email`), + KEY `idx_email` (`email`), + KEY `idx_customer_id` (`customer_id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `email_campaigns`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `email_campaigns` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `campaign_id` varchar(50) NOT NULL, + `name` varchar(255) NOT NULL, + `subject` varchar(255) NOT NULL, + `content` text NOT NULL, + `recipient_type` enum('all','customers_only','subscribers_only') DEFAULT 'all', + `status` enum('draft','scheduled','sent','cancelled') DEFAULT 'draft', + `scheduled_at` timestamp NULL DEFAULT NULL, + `sent_at` timestamp NULL DEFAULT NULL, + `recipients_count` int(11) DEFAULT 0, + `opened_count` int(11) DEFAULT 0, + `clicked_count` int(11) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `campaign_id` (`campaign_id`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `email_subscribers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `email_subscribers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `email` varchar(255) NOT NULL, + `name` varchar(255) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `source` varchar(50) DEFAULT 'website', + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`), + KEY `idx_is_active` (`is_active`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `gift_card_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `gift_card_transactions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `gift_card_id` varchar(50) NOT NULL, + `order_id` varchar(50) DEFAULT NULL, + `amount` decimal(10,2) NOT NULL, + `balance_after` decimal(10,2) NOT NULL, + `type` enum('purchase','redemption','refund') NOT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_gift_card_id` (`gift_card_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `gift_cards`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `gift_cards` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `gift_card_id` varchar(50) NOT NULL, + `code` varchar(20) NOT NULL, + `initial_balance` decimal(10,2) NOT NULL, + `current_balance` decimal(10,2) NOT NULL, + `purchaser_email` varchar(255) DEFAULT NULL, + `recipient_email` varchar(255) DEFAULT NULL, + `recipient_name` varchar(255) DEFAULT NULL, + `message` text DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `expires_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `gift_card_id` (`gift_card_id`), + UNIQUE KEY `code` (`code`), + KEY `idx_code` (`code`), + KEY `idx_is_active` (`is_active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `homepage_splashes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `homepage_splashes` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `splash_id` varchar(50) NOT NULL, + `icon` varchar(100) NOT NULL DEFAULT 'fas fa-star', + `image_url` varchar(500) DEFAULT NULL, + `title` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `sort_order` int(11) DEFAULT 0, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `splash_id` (`splash_id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `loyalty_settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `loyalty_settings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `setting_key` varchar(100) NOT NULL, + `setting_value` text DEFAULT NULL, + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `setting_key` (`setting_key`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `loyalty_tiers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `loyalty_tiers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `min_points` int(11) NOT NULL DEFAULT 0, + `multiplier` decimal(3,2) DEFAULT 1.00, + `benefits` longtext DEFAULT NULL CHECK (json_valid(`benefits`)), + `color` varchar(20) DEFAULT '#gray', + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `loyalty_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `loyalty_transactions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `transaction_id` varchar(50) DEFAULT NULL, + `customer_id` varchar(50) NOT NULL, + `type` enum('earn','redeem','expire','adjust','birthday_bonus','referral_bonus','referral_welcome','tier_upgrade') DEFAULT NULL, + `points` int(11) NOT NULL, + `balance_after` int(11) NOT NULL DEFAULT 0, + `description` varchar(255) DEFAULT NULL, + `reference_amount` decimal(10,2) DEFAULT NULL, + `order_id` varchar(50) DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `transaction_id` (`transaction_id`), + KEY `idx_customer` (`customer_id`), + KEY `idx_created` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `order_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `order_items` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` varchar(50) NOT NULL, + `product_id` varchar(50) NOT NULL, + `name` varchar(255) NOT NULL, + `price` decimal(10,2) NOT NULL, + `quantity` int(11) NOT NULL, + `total` decimal(10,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_order_id` (`order_id`), + KEY `idx_product_id` (`product_id`), + CONSTRAINT `order_items_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`order_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `orders` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` varchar(50) NOT NULL, + `order_number` varchar(20) NOT NULL, + `customer_id` varchar(50) DEFAULT NULL, + `customer_email` varchar(255) NOT NULL, + `customer_name` varchar(255) DEFAULT NULL, + `customer_phone` varchar(50) DEFAULT NULL, + `items` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`items`)), + `subtotal` decimal(10,2) NOT NULL, + `shipping_cost` decimal(10,2) DEFAULT 0.00, + `tax` decimal(10,2) DEFAULT 0.00, + `discount` decimal(10,2) DEFAULT 0.00, + `gift_card_discount` decimal(10,2) DEFAULT 0.00, + `wallet_amount_used` decimal(10,2) DEFAULT 0.00, + `total` decimal(10,2) NOT NULL, + `shipping_address` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`shipping_address`)), + `billing_address` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`billing_address`)), + `shipping_method` varchar(50) DEFAULT NULL, + `payment_method` varchar(50) DEFAULT NULL, + `payment_status` enum('pending','paid','failed','refunded','partially_refunded') DEFAULT 'pending', + `order_status` enum('pending','confirmed','processing','shipped','delivered','cancelled','refunded') DEFAULT 'pending', + `stripe_session_id` varchar(255) DEFAULT NULL, + `stripe_payment_intent` varchar(255) DEFAULT NULL, + `square_payment_id` varchar(255) DEFAULT NULL, + `square_order_id` varchar(255) DEFAULT NULL, + `tracking_number` varchar(100) DEFAULT NULL, + `tracking_url` varchar(500) DEFAULT NULL, + `notes` text DEFAULT NULL, + `is_pos_order` tinyint(1) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `order_id` (`order_id`), + UNIQUE KEY `order_number` (`order_number`), + KEY `idx_order_id` (`order_id`), + KEY `idx_customer_id` (`customer_id`), + KEY `idx_customer_email` (`customer_email`), + KEY `idx_order_status` (`order_status`), + KEY `idx_payment_status` (`payment_status`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `password_reset_tokens`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `password_reset_tokens` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `email` varchar(255) NOT NULL, + `token` varchar(255) NOT NULL, + `user_type` enum('admin','customer') NOT NULL, + `expires_at` timestamp NOT NULL, + `used` tinyint(1) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_token` (`token`), + KEY `idx_email` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__bookmark`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__bookmark` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `dbase` varchar(255) NOT NULL DEFAULT '', + `user` varchar(255) NOT NULL DEFAULT '', + `label` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '', + `query` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Bookmarks'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__central_columns`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__central_columns` ( + `db_name` varchar(64) NOT NULL, + `col_name` varchar(64) NOT NULL, + `col_type` varchar(64) NOT NULL, + `col_length` text DEFAULT NULL, + `col_collation` varchar(64) NOT NULL, + `col_isNull` tinyint(1) NOT NULL, + `col_extra` varchar(255) DEFAULT '', + `col_default` text DEFAULT NULL, + PRIMARY KEY (`db_name`,`col_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Central list of columns'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__column_info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__column_info` ( + `id` int(5) unsigned NOT NULL AUTO_INCREMENT, + `db_name` varchar(64) NOT NULL DEFAULT '', + `table_name` varchar(64) NOT NULL DEFAULT '', + `column_name` varchar(64) NOT NULL DEFAULT '', + `comment` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '', + `mimetype` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '', + `transformation` varchar(255) NOT NULL DEFAULT '', + `transformation_options` varchar(255) NOT NULL DEFAULT '', + `input_transformation` varchar(255) NOT NULL DEFAULT '', + `input_transformation_options` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Column information for phpMyAdmin'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__designer_settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__designer_settings` ( + `username` varchar(64) NOT NULL, + `settings_data` text NOT NULL, + PRIMARY KEY (`username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Settings related to Designer'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__export_templates`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__export_templates` ( + `id` int(5) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(64) NOT NULL, + `export_type` varchar(10) NOT NULL, + `template_name` varchar(64) NOT NULL, + `template_data` text NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `u_user_type_template` (`username`,`export_type`,`template_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Saved export templates'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__favorite`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__favorite` ( + `username` varchar(64) NOT NULL, + `tables` text NOT NULL, + PRIMARY KEY (`username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Favorite tables'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__history` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(64) NOT NULL DEFAULT '', + `db` varchar(64) NOT NULL DEFAULT '', + `table` varchar(64) NOT NULL DEFAULT '', + `timevalue` timestamp NOT NULL DEFAULT current_timestamp(), + `sqlquery` text NOT NULL, + PRIMARY KEY (`id`), + KEY `username` (`username`,`db`,`table`,`timevalue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='SQL history for phpMyAdmin'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__navigationhiding`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__navigationhiding` ( + `username` varchar(64) NOT NULL, + `item_name` varchar(64) NOT NULL, + `item_type` varchar(64) NOT NULL, + `db_name` varchar(64) NOT NULL, + `table_name` varchar(64) NOT NULL, + PRIMARY KEY (`username`,`item_name`,`item_type`,`db_name`,`table_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Hidden items of navigation tree'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__pdf_pages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__pdf_pages` ( + `db_name` varchar(64) NOT NULL DEFAULT '', + `page_nr` int(10) unsigned NOT NULL AUTO_INCREMENT, + `page_descr` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '', + PRIMARY KEY (`page_nr`), + KEY `db_name` (`db_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='PDF relation pages for phpMyAdmin'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__recent`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__recent` ( + `username` varchar(64) NOT NULL, + `tables` text NOT NULL, + PRIMARY KEY (`username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Recently accessed tables'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__relation` ( + `master_db` varchar(64) NOT NULL DEFAULT '', + `master_table` varchar(64) NOT NULL DEFAULT '', + `master_field` varchar(64) NOT NULL DEFAULT '', + `foreign_db` varchar(64) NOT NULL DEFAULT '', + `foreign_table` varchar(64) NOT NULL DEFAULT '', + `foreign_field` varchar(64) NOT NULL DEFAULT '', + PRIMARY KEY (`master_db`,`master_table`,`master_field`), + KEY `foreign_field` (`foreign_db`,`foreign_table`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Relation table'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__savedsearches`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__savedsearches` ( + `id` int(5) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(64) NOT NULL DEFAULT '', + `db_name` varchar(64) NOT NULL DEFAULT '', + `search_name` varchar(64) NOT NULL DEFAULT '', + `search_data` text NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `u_savedsearches_username_dbname` (`username`,`db_name`,`search_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Saved searches'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__table_coords`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__table_coords` ( + `db_name` varchar(64) NOT NULL DEFAULT '', + `table_name` varchar(64) NOT NULL DEFAULT '', + `pdf_page_number` int(11) NOT NULL DEFAULT 0, + `x` float unsigned NOT NULL DEFAULT 0, + `y` float unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Table coordinates for phpMyAdmin PDF output'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__table_info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__table_info` ( + `db_name` varchar(64) NOT NULL DEFAULT '', + `table_name` varchar(64) NOT NULL DEFAULT '', + `display_field` varchar(64) NOT NULL DEFAULT '', + PRIMARY KEY (`db_name`,`table_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Table information for phpMyAdmin'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__table_uiprefs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__table_uiprefs` ( + `username` varchar(64) NOT NULL, + `db_name` varchar(64) NOT NULL, + `table_name` varchar(64) NOT NULL, + `prefs` text NOT NULL, + `last_update` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`username`,`db_name`,`table_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Tables'' UI preferences'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__tracking`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__tracking` ( + `db_name` varchar(64) NOT NULL, + `table_name` varchar(64) NOT NULL, + `version` int(10) unsigned NOT NULL, + `date_created` datetime NOT NULL, + `date_updated` datetime NOT NULL, + `schema_snapshot` text NOT NULL, + `schema_sql` text DEFAULT NULL, + `data_sql` longtext DEFAULT NULL, + `tracking` set('UPDATE','REPLACE','INSERT','DELETE','TRUNCATE','CREATE DATABASE','ALTER DATABASE','DROP DATABASE','CREATE TABLE','ALTER TABLE','RENAME TABLE','DROP TABLE','CREATE INDEX','DROP INDEX','CREATE VIEW','ALTER VIEW','DROP VIEW') DEFAULT NULL, + `tracking_active` int(1) unsigned NOT NULL DEFAULT 1, + PRIMARY KEY (`db_name`,`table_name`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Database changes tracking for phpMyAdmin'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__userconfig`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__userconfig` ( + `username` varchar(64) NOT NULL, + `timevalue` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `config_data` text NOT NULL, + PRIMARY KEY (`username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='User preferences storage for phpMyAdmin'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__usergroups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__usergroups` ( + `usergroup` varchar(64) NOT NULL, + `tab` varchar(64) NOT NULL, + `allowed` enum('Y','N') NOT NULL DEFAULT 'N', + PRIMARY KEY (`usergroup`,`tab`,`allowed`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='User groups with configured menu items'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pma__users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pma__users` ( + `username` varchar(64) NOT NULL, + `usergroup` varchar(64) NOT NULL, + PRIMARY KEY (`username`,`usergroup`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Users and their assignments to user groups'; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `product_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `product_types` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type_id` varchar(50) NOT NULL, + `name` varchar(255) NOT NULL, + `slug` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `sort_order` int(11) DEFAULT 0, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `type_id` (`type_id`), + UNIQUE KEY `slug` (`slug`), + KEY `idx_slug` (`slug`), + KEY `idx_active` (`is_active`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `products`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `products` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `product_id` varchar(50) NOT NULL, + `name` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `price` decimal(10,2) NOT NULL, + `sale_price` decimal(10,2) DEFAULT NULL, + `cost_price` decimal(10,2) DEFAULT NULL, + `sku` varchar(100) DEFAULT NULL, + `barcode` varchar(100) DEFAULT NULL, + `category` varchar(100) DEFAULT NULL, + `product_type_id` varchar(50) DEFAULT NULL, + `tags` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`tags`)), + `images` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`images`)), + `stock` int(11) DEFAULT 0, + `low_stock_threshold` int(11) DEFAULT 10, + `weight` decimal(10,2) DEFAULT NULL, + `dimensions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dimensions`)), + `is_active` tinyint(1) DEFAULT 1, + `is_featured` tinyint(1) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `product_id` (`product_id`), + KEY `idx_product_id` (`product_id`), + KEY `idx_category` (`category`), + KEY `idx_is_active` (`is_active`), + KEY `idx_type` (`product_type_id`), + FULLTEXT KEY `idx_search` (`name`,`description`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `referrals`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `referrals` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `referral_id` varchar(50) NOT NULL, + `referrer_customer_id` varchar(50) NOT NULL, + `referral_code` varchar(20) NOT NULL, + `referred_customer_id` varchar(50) DEFAULT NULL, + `referred_email` varchar(255) DEFAULT NULL, + `status` enum('pending','completed','expired') DEFAULT 'pending', + `reward_amount` decimal(10,2) DEFAULT 5.00, + `reward_given` tinyint(1) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `referral_id` (`referral_id`), + UNIQUE KEY `referral_code` (`referral_code`), + KEY `idx_referral_code` (`referral_code`), + KEY `idx_referrer` (`referrer_customer_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `reviews`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `reviews` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `review_id` varchar(50) NOT NULL, + `product_id` varchar(50) NOT NULL, + `customer_id` varchar(50) DEFAULT NULL, + `customer_name` varchar(255) NOT NULL, + `customer_email` varchar(255) NOT NULL, + `rating` int(11) NOT NULL CHECK (`rating` >= 1 and `rating` <= 5), + `title` varchar(255) DEFAULT NULL, + `comment` text DEFAULT NULL, + `is_verified_purchase` tinyint(1) DEFAULT 0, + `is_approved` tinyint(1) DEFAULT 0, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `review_id` (`review_id`), + KEY `idx_product_id` (`product_id`), + KEY `idx_is_approved` (`is_approved`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sessions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `session_id` varchar(128) NOT NULL, + `user_id` varchar(50) DEFAULT NULL, + `user_type` enum('admin','customer') DEFAULT NULL, + `data` text DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `expires_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `session_id` (`session_id`), + KEY `idx_session_id` (`session_id`), + KEY `idx_expires_at` (`expires_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `settings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `setting_key` varchar(100) NOT NULL, + `setting_value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`setting_value`)), + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `setting_key` (`setting_key`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `visitor_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `visitor_sessions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `session_id` varchar(100) NOT NULL, + `visitor_id` varchar(50) NOT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `current_page` varchar(500) DEFAULT NULL, + `referrer` varchar(500) DEFAULT NULL, + `country` varchar(100) DEFAULT NULL, + `city` varchar(100) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `page_views` int(11) DEFAULT 1, + `started_at` timestamp NULL DEFAULT current_timestamp(), + `last_activity` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `session_id` (`session_id`), + KEY `idx_is_active` (`is_active`), + KEY `idx_last_activity` (`last_activity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wallet_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wallet_transactions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `transaction_id` varchar(50) NOT NULL, + `customer_id` varchar(50) NOT NULL, + `amount` decimal(10,2) NOT NULL, + `balance_after` decimal(10,2) NOT NULL, + `type` enum('deposit','withdrawal','purchase','refund','reward','loyalty_redemption','credit','debit') DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `order_id` varchar(50) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `transaction_id` (`transaction_id`), + KEY `idx_customer_id` (`customer_id`), + KEY `idx_type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wishlist`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wishlist` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `customer_id` varchar(50) NOT NULL, + `product_id` varchar(50) NOT NULL, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `unique_wishlist` (`customer_id`,`product_id`), + KEY `idx_customer` (`customer_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + diff --git a/sites/tomsjavajive.com/public_html/docs/DEPLOYMENT.md b/sites/tomsjavajive.com/public_html/docs/DEPLOYMENT.md new file mode 100644 index 0000000..cdec1f2 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/docs/DEPLOYMENT.md @@ -0,0 +1,314 @@ +# Tom's Java Jive - PHP/MySQL Deployment Guide + +## cPanel FTP Deployment Instructions + +This guide covers deploying Tom's Java Jive to a cPanel shared hosting environment with FTP access only (no SSH/root). + +### Requirements + +- PHP 8.4+ +- MySQL 8.0+ +- FTP Client (FileZilla, Cyberduck, etc.) +- cPanel access for database creation + +--- + +## Step 1: Create MySQL Database in cPanel + +1. Log into your cPanel dashboard +2. Navigate to **MySQL® Databases** +3. Create a new database: + - Database name: `tomsjavajive` (or your preferred name) + - Note the full database name (usually `cpaneluser_tomsjavajive`) +4. Create a database user: + - Username: (your choice) + - Password: (strong password) +5. Add user to database: + - Select the user and database + - Grant **ALL PRIVILEGES** +6. Note down your credentials: + - Database host: `localhost` (usually) + - Database name: (full name from step 3) + - Username: (full username from step 4) + - Password: (from step 4) + +--- + +## Step 2: Configure Application Settings + +### Edit `config/database.php` + +```php +define('DB_HOST', 'localhost'); +define('DB_NAME', 'cpaneluser_tomsjavajive'); // Your full database name +define('DB_USER', 'cpaneluser_dbuser'); // Your full database username +define('DB_PASS', 'your_secure_password'); // Your database password +``` + +### Edit `config/config.php` + +```php +define('SITE_NAME', "Tom's Java Jive"); +define('SITE_URL', 'https://yourdomain.com'); // Your actual domain +define('SITE_EMAIL', 'support@yourdomain.com'); + +// Set to 'production' for live site +define('ENVIRONMENT', 'production'); +define('DEBUG_MODE', false); + +// Stripe Keys (get from https://dashboard.stripe.com/apikeys) +define('STRIPE_SECRET_KEY', 'sk_live_xxxx'); // Use sk_test_ for testing +define('STRIPE_PUBLISHABLE_KEY', 'pk_live_xxxx'); +define('STRIPE_WEBHOOK_SECRET', 'whsec_xxxx'); + +// SendGrid (get from https://app.sendgrid.com/settings/api_keys) +define('SENDGRID_API_KEY', 'SG.xxxx'); +define('SENDER_EMAIL', 'noreply@yourdomain.com'); + +// Twilio (optional - get from https://www.twilio.com/console) +define('TWILIO_SID', ''); +define('TWILIO_AUTH_TOKEN', ''); +define('TWILIO_PHONE', ''); +``` + +--- + +## Step 3: Upload Files via FTP + +1. Connect to your server using FTP: + - Host: Your domain or ftp.yourdomain.com + - Port: 21 (or 22 for SFTP) + - Username: Your cPanel username + - Password: Your cPanel password + +2. Navigate to `public_html` (or your web root) + +3. Upload ALL files from the `tomsjavajive-php` folder: + ``` + /public_html/ + ├── admin/ + ├── api/ + ├── assets/ + ├── account/ + ├── config/ + ├── docs/ + ├── includes/ + ├── install/ + ├── pages/ + ├── index.php + ├── shop.php + ├── product.php + ├── cart.php + ├── checkout.php + ├── payment.php + ├── login.php + ├── register.php + ├── logout.php + └── ... (other files) + ``` + +4. Set file permissions (via FTP client or cPanel File Manager): + - All `.php` files: 644 + - All directories: 755 + - `uploads/` directory: 755 (create if not exists) + - `config/` directory: 755 + +--- + +## Step 4: Import Database Schema + +### Option A: Using phpMyAdmin (Recommended) + +1. In cPanel, open **phpMyAdmin** +2. Select your database from the left sidebar +3. Click the **Import** tab +4. Click **Choose File** and select `install/schema.sql` +5. Click **Go** to execute + +### Option B: Using MySQL command in cPanel Terminal (if available) + +```bash +mysql -u cpaneluser_dbuser -p cpaneluser_tomsjavajive < install/schema.sql +``` + +--- + +## Step 5: Create First Admin User + +After importing the schema, create your first admin user via phpMyAdmin: + +1. Open phpMyAdmin +2. Select your database +3. Click the **SQL** tab +4. Run this query (replace with your details): + +```sql +INSERT INTO admin_users (user_id, email, password_hash, name, is_admin, is_master, permissions) +VALUES ( + 'admin_001', + 'admin@yourdomain.com', + '$2y$12$xxxxx', -- Generate bcrypt hash (see below) + 'Admin', + 1, + 1, + '{"dashboard":true,"pos":true,"products":true,"orders":true,"customers":true,"settings_payment":true,"settings_shipping":true,"settings_email":true,"admin_management":true}' +); +``` + +**To generate password hash:** +Create a temporary PHP file called `generate_hash.php`: +```php + 12]); +?> +``` +Upload it, visit it in browser, copy the hash, then DELETE the file. + +--- + +## Step 6: Configure Stripe Webhook (Optional but Recommended) + +1. Go to [Stripe Dashboard > Webhooks](https://dashboard.stripe.com/webhooks) +2. Click **Add endpoint** +3. Set endpoint URL: `https://yourdomain.com/api/webhook.php` +4. Select events: + - `payment_intent.succeeded` + - `payment_intent.payment_failed` + - `charge.refunded` +5. Copy the **Signing secret** to your `config.php` + +--- + +## Step 7: Test Your Installation + +1. Visit `https://yourdomain.com` - Should show storefront +2. Visit `https://yourdomain.com/admin/` - Should show admin login +3. Login with your admin credentials +4. Add a test product +5. Test the checkout flow + +--- + +## Data Migration from MongoDB + +If you have existing data in MongoDB that needs to be migrated: + +### Prerequisites +- PHP with MongoDB extension (`pecl install mongodb`) +- Access to your MongoDB server + +### Running Migration +The migration script is located at `install/migrate_from_mongodb.php`. + +Since cPanel typically doesn't have MongoDB extension, you have two options: + +**Option A: Export/Import Manually** +1. Export MongoDB collections to JSON using `mongoexport` +2. Convert and import to MySQL using phpMyAdmin or custom scripts + +**Option B: Run Migration Locally** +1. Install PHP MongoDB extension locally +2. Connect to both databases +3. Run: `php migrate_from_mongodb.php [mongodb_url] [mongodb_dbname]` + +--- + +## Security Checklist + +Before going live: + +- [ ] Change default admin password +- [ ] Update `SITE_URL` in config.php +- [ ] Set `ENVIRONMENT` to 'production' +- [ ] Set `DEBUG_MODE` to false +- [ ] Configure real Stripe keys (not test keys) +- [ ] Configure SendGrid for emails +- [ ] Delete `install/` folder after setup +- [ ] Set up SSL certificate (HTTPS) +- [ ] Enable Stripe webhook +- [ ] Test payment flow end-to-end + +--- + +## Troubleshooting + +### "Database connection failed" +- Check database credentials in `config/database.php` +- Verify database exists in cPanel +- Ensure user has privileges on the database + +### "500 Internal Server Error" +- Check `.htaccess` file exists +- View error logs in cPanel > Error Log +- Temporarily enable `DEBUG_MODE` in config.php + +### "Blank page" +- Enable PHP error display temporarily +- Check PHP version (requires 8.4+) +- View Apache/PHP error logs + +### "Session errors" +- Ensure `session.save_path` is writable +- Check `sessions/` folder permissions + +### "Payment not working" +- Verify Stripe keys are correct +- Check browser console for JS errors +- Verify webhook endpoint is accessible + +--- + +## File Structure Reference + +``` +tomsjavajive-php/ +├── admin/ # Admin panel +│ ├── assets/ # Admin CSS/JS +│ ├── includes/ # Admin header/footer +│ ├── index.php # Dashboard +│ ├── products.php # Product management +│ ├── orders.php # Order management +│ └── ... +├── api/ # API endpoints +│ ├── cart.php +│ ├── products.php +│ ├── orders.php +│ └── webhook.php # Stripe webhook +├── assets/ # Public assets +│ ├── css/ +│ ├── js/ +│ └── images/ +├── account/ # Customer account pages +├── config/ # Configuration files +│ ├── config.php # Main config +│ └── database.php # DB credentials +├── includes/ # Shared includes +│ ├── auth.php +│ ├── db.php +│ ├── functions.php +│ ├── header.php +│ └── footer.php +├── install/ # Installation files +│ ├── schema.sql # Database schema +│ └── migrate_from_mongodb.php +├── index.php # Homepage +├── shop.php # Shop page +├── product.php # Product detail +├── cart.php # Shopping cart +├── checkout.php # Checkout +└── payment.php # Stripe payment +``` + +--- + +## Support + +For issues with this deployment: +1. Check the troubleshooting section above +2. Review error logs in cPanel +3. Verify all configuration values are correct + +--- + +*Last updated: December 2025* +*PHP Version: 8.4.19 | MySQL Version: 8.0* diff --git a/sites/tomsjavajive.com/public_html/faq.php b/sites/tomsjavajive.com/public_html/faq.php new file mode 100644 index 0000000..f0de33f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/faq.php @@ -0,0 +1,88 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'FAQ', 'url' => 'https://tomsjavajive.com/faq.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+ +
+

Frequently Asked Questions

+

Everything you need to know about Tom's Java Jive.

+
+ + [ + ['q' => 'How do I place an order?', 'a' => 'Browse our shop, add items to your cart, and proceed to checkout. We accept all major credit cards, debit cards, and PayPal.'], + ['q' => 'Can I modify or cancel my order?', 'a' => 'Orders can be modified or cancelled within 1 hour of placement. After that, orders enter processing and cannot be changed. Contact us immediately at sales@tomsjavajive.com if you need to make a change.'], + ['q' => 'Is my payment information secure?', 'a' => 'Yes. All payments are processed through Stripe, a PCI-DSS Level 1 certified payment processor. We never store your card details on our servers.'], + ['q' => 'Do you offer gift cards?', 'a' => 'Yes! Digital gift cards are available in our shop and are delivered by email. They never expire.'], + ], + 'Coffee & Products' => [ + ['q' => 'When is my coffee roasted?', 'a' => 'We roast to order — your beans are roasted within 24–48 hours of your order being placed, ensuring maximum freshness when they arrive.'], + ['q' => 'What grind sizes do you offer?', 'a' => 'We offer whole bean, coarse (French press/cold brew), medium (drip/pour-over), and fine (espresso). Select your preferred grind at checkout.'], + ['q' => 'How should I store my coffee?', 'a' => 'For maximum freshness, store your coffee in an airtight container in the freezer. Whole beans keep longer than ground coffee. If storing at room temperature, keep in a cool, dark place away from direct sunlight, heat, and moisture.'], + ['q' => 'Are your coffees organic or fair trade?', 'a' => 'Many of our single origin coffees are sourced from farms with organic and fair trade practices. Each product listing includes sourcing details.'], + ], + 'Coffee Freshness & Storage' => [ + ['q' => 'How long does coffee last?', 'a' => 'Properly stored coffee can last for months and even years, though flavor is best enjoyed within a few weeks of the roast date. Whole beans stay fresh longer than ground coffee because less surface area is exposed to air.'], + ['q' => 'How can I tell if my coffee has gone bad?', 'a' => 'The best way to tell is by smell. If the pleasant aroma is gone, the coffee has likely gone stale. Stale coffee won\'t harm you, but it will have little flavor. It may also appear a lighter brown rather than its usual deep, dark color.'], + ['q' => 'How should I store coffee beans to keep them fresh?', 'a' => 'Store beans in an airtight container in the freezer for maximum freshness. Whole beans keep longer than ground coffee because less surface area is exposed to air. Grind only the amount you plan to use each day to minimize unnecessary exposure.'], + ['q' => 'How should I store ground coffee?', 'a' => 'Store ground coffee in an airtight container in your freezer immediately after opening. Freezer storage doesn\'t freeze it solid — it\'s always ready to use without defrosting. Just scoop and brew.'], + ], + 'Account & Loyalty' => [ + ['q' => 'Do I need an account to order?', 'a' => 'No, you can check out as a guest. However, creating an account lets you track orders, earn loyalty points, save addresses, and view your order history.'], + ['q' => 'How does the loyalty program work?', 'a' => 'You earn 1 point for every $1 spent. Points can be redeemed for discounts on future orders. Points are credited once your order is delivered.'], + ['q' => 'How do I reset my password?', 'a' => 'Click "Forgot Password" on the login page and we\'ll email you a reset link.'], + ], + ]; + + foreach ($faqs as $category => $items): ?> +
+

+
+ $faq): ?> +
+ +
+ +
+
+ +
+
+ + +
+
+

Still have questions?

+

We're happy to help. Reach out and we'll get back to you within one business day.

+ Contact Us +
+
+ +
+
+ + + + diff --git a/sites/tomsjavajive.com/public_html/favicon.ico b/sites/tomsjavajive.com/public_html/favicon.ico new file mode 100644 index 0000000..7d936e0 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/favicon.ico @@ -0,0 +1,312 @@ + + + + + + + + + Tom's Java Jive | Premium Coffee Beans & Fresh Roasted Coffee | Weatherford TX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

+ Made with Emergent +

+
+ + + diff --git a/sites/tomsjavajive.com/public_html/includes/auth.php b/sites/tomsjavajive.com/public_html/includes/auth.php new file mode 100644 index 0000000..d39e68c --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/auth.php @@ -0,0 +1,284 @@ +fetch( + "SELECT * FROM admin_users WHERE email = :email", + ['email' => strtolower($email)] + ); + + if (!$admin || !verifyPassword($password, $admin['password_hash'])) { + return false; + } + + // Update last login + db()->update('admin_users', + ['last_login' => date('Y-m-d H:i:s')], + 'user_id = :id', + ['id' => $admin['user_id']] + ); + + // Set session + $_SESSION['admin'] = [ + 'user_id' => $admin['user_id'], + 'email' => $admin['email'], + 'name' => $admin['name'], + 'is_master' => (bool)$admin['is_master'], + 'permissions' => json_decode($admin['permissions'] ?? '[]', true) + ]; + + // Regenerate session ID for security + session_regenerate_id(true); + + return true; + } + + public static function logout() { + unset($_SESSION['admin']); + session_regenerate_id(true); + } + + public static function isLoggedIn() { + return isset($_SESSION['admin']['user_id']); + } + + public static function getUser() { + return $_SESSION['admin'] ?? null; + } + + public static function require() { + if (!self::isLoggedIn()) { + if (isAjax()) { + jsonResponse(['error' => 'Unauthorized'], 401); + } + $_SESSION['admin_redirect'] = currentUrl(); + redirect('/admin/login.php'); + } + } + + public static function hasPermission($permission) { + $admin = self::getUser(); + if (!$admin) return false; + if ($admin['is_master']) return true; + return in_array($permission, $admin['permissions'] ?? []); + } + + public static function register($email, $password, $name = null, $isMaster = false) { + $userId = generateId('admin_'); + + db()->insert('admin_users', [ + 'user_id' => $userId, + 'email' => strtolower($email), + 'password_hash' => hashPassword($password), + 'name' => $name ?? $email, + 'is_admin' => 1, + 'is_master' => $isMaster ? 1 : 0 + ]); + + return $userId; + } +} + +/** + * Customer Authentication + */ +class CustomerAuth { + + public static function login($email, $password) { + $customer = db()->fetch( + "SELECT * FROM customers WHERE email = :email AND password_hash IS NOT NULL", + ['email' => strtolower($email)] + ); + + if (!$customer || !verifyPassword($password, $customer['password_hash'])) { + return false; + } + + // Set session + $_SESSION['customer'] = [ + 'customer_id' => $customer['customer_id'], + 'email' => $customer['email'], + 'name' => $customer['name'] + ]; + + session_regenerate_id(true); + return true; + } + + public static function logout() { + unset($_SESSION['customer']); + session_regenerate_id(true); + } + + public static function isLoggedIn() { + return isset($_SESSION['customer']['customer_id']); + } + + public static function getUser() { + return $_SESSION['customer'] ?? null; + } + + public static function getFullUser() { + if (!self::isLoggedIn()) return null; + + return db()->fetch( + "SELECT customer_id, email, name, phone, shipping_address, billing_address, + wallet_balance, reward_points, addresses, preferences, password_hash, created_at + FROM customers WHERE customer_id = :id", + ['id' => $_SESSION['customer']['customer_id']] + ); + } + + public static function require() { + if (!self::isLoggedIn()) { + if (isAjax()) { + jsonResponse(['error' => 'Unauthorized'], 401); + } + $_SESSION['redirect_after_login'] = currentUrl(); + redirect('/login.php'); + } + } + + public static function register($email, $password, $name = null, $phone = null) { + // Check if email exists + $existing = db()->fetch( + "SELECT customer_id FROM customers WHERE email = :email", + ['email' => strtolower($email)] + ); + + if ($existing) { + return ['error' => 'Email already registered']; + } + + $customerId = generateId('cust_'); + + db()->insert('customers', [ + 'customer_id' => $customerId, + 'email' => strtolower($email), + 'password_hash' => hashPassword($password), + 'name' => $name, + 'phone' => $phone + ]); + + // Auto login after registration + $_SESSION['customer'] = [ + 'customer_id' => $customerId, + 'email' => strtolower($email), + 'name' => $name + ]; + + return ['success' => true, 'customer_id' => $customerId]; + } + + public static function createGuest($email, $name = null, $phone = null) { + // Check if customer exists + $existing = db()->fetch( + "SELECT customer_id FROM customers WHERE email = :email", + ['email' => strtolower($email)] + ); + + if ($existing) { + return $existing['customer_id']; + } + + $customerId = generateId('cust_'); + + db()->insert('customers', [ + 'customer_id' => $customerId, + 'email' => strtolower($email), + 'name' => $name, + 'phone' => $phone, + 'is_guest' => 1 + ]); + + return $customerId; + } + + public static function requestPasswordReset($email) { + $customer = db()->fetch( + "SELECT customer_id FROM customers WHERE email = :email AND password_hash IS NOT NULL", + ['email' => strtolower($email)] + ); + + if (!$customer) { + return false; + } + + $token = bin2hex(random_bytes(32)); + $expiresAt = date('Y-m-d H:i:s', strtotime('+1 hour')); + + db()->insert('password_reset_tokens', [ + 'email' => strtolower($email), + 'token' => $token, + 'user_type' => 'customer', + 'expires_at' => $expiresAt + ]); + + // Send email + $resetUrl = SITE_URL . '/reset-password.php?token=' . $token; + $html = " +

Password Reset Request

+

Click the link below to reset your password:

+

{$resetUrl}

+

This link will expire in 1 hour.

+

If you didn't request this, please ignore this email.

+ "; + + sendEmail($email, 'Password Reset - ' . SITE_NAME, $html); + + return true; + } + + public static function resetPassword($token, $newPassword) { + $reset = db()->fetch( + "SELECT * FROM password_reset_tokens + WHERE token = :token AND user_type = 'customer' AND used = 0 AND expires_at > NOW()", + ['token' => $token] + ); + + if (!$reset) { + return ['error' => 'Invalid or expired token']; + } + + // Update password + db()->update('customers', + ['password_hash' => hashPassword($newPassword)], + 'email = :email', + ['email' => $reset['email']] + ); + + // Mark token as used + db()->update('password_reset_tokens', + ['used' => 1], + 'id = :id', + ['id' => $reset['id']] + ); + + return ['success' => true]; + } +} + +// Initialize session on include +initSession(); diff --git a/sites/tomsjavajive.com/public_html/includes/db.php b/sites/tomsjavajive.com/public_html/includes/db.php new file mode 100644 index 0000000..b77ac6f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/db.php @@ -0,0 +1,104 @@ +pdo = new PDO($dsn, DB_USER, DB_PASS, DB_OPTIONS); + } catch (PDOException $e) { + if (ENVIRONMENT === 'development') { + die("Database connection failed: " . $e->getMessage()); + } else { + die("Database connection failed. Please try again later."); + } + } + } + + public static function getInstance() { + if (self::$instance === null) { + self::$instance = new self(); + } + return self::$instance; + } + + public function getConnection() { + return $this->pdo; + } + + public function query($sql, $params = []) { + $stmt = $this->pdo->prepare($sql); + $stmt->execute($params); + return $stmt; + } + + public function fetch($sql, $params = []) { + return $this->query($sql, $params)->fetch(); + } + + public function fetchAll($sql, $params = []) { + return $this->query($sql, $params)->fetchAll(); + } + + public function insert($table, $data) { + $columns = implode(', ', array_keys($data)); + $placeholders = ':' . implode(', :', array_keys($data)); + + $sql = "INSERT INTO {$table} ({$columns}) VALUES ({$placeholders})"; + $this->query($sql, $data); + + return $this->pdo->lastInsertId(); + } + + public function update($table, $data, $where, $whereParams = []) { + $set = []; + foreach (array_keys($data) as $column) { + $set[] = "{$column} = :{$column}"; + } + $setString = implode(', ', $set); + + $sql = "UPDATE {$table} SET {$setString} WHERE {$where}"; + return $this->query($sql, array_merge($data, $whereParams))->rowCount(); + } + + public function delete($table, $where, $params = []) { + $sql = "DELETE FROM {$table} WHERE {$where}"; + return $this->query($sql, $params)->rowCount(); + } + + public function count($table, $where = '1=1', $params = []) { + $sql = "SELECT COUNT(*) as count FROM {$table} WHERE {$where}"; + $result = $this->fetch($sql, $params); + return $result['count'] ?? 0; + } + + public function lastInsertId() { + return $this->pdo->lastInsertId(); + } + + public function beginTransaction() { + return $this->pdo->beginTransaction(); + } + + public function commit() { + return $this->pdo->commit(); + } + + public function rollback() { + return $this->pdo->rollBack(); + } +} + +// Helper function to get database instance +function db() { + return Database::getInstance(); +} diff --git a/sites/tomsjavajive.com/public_html/includes/email.php b/sites/tomsjavajive.com/public_html/includes/email.php new file mode 100644 index 0000000..bc4f0b2 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/email.php @@ -0,0 +1,327 @@ +apiKey = getSetting('cybermail_api_key', defined('CYBERMAIL_API_KEY') ? CYBERMAIL_API_KEY : ''); + $this->fromEmail = getSetting('cybermail_from_email', defined('SENDER_EMAIL') ? SENDER_EMAIL : 'noreply@tomsjavajive.com'); + $this->fromName = getSetting('cybermail_from_name', defined('SENDER_NAME') ? SENDER_NAME : "Tom's Java Jive"); + } + + private function logEmail(string $to, string $subject, string $html, array $result, array $options = []): void { + try { + $preview = strip_tags($html); + $preview = preg_replace('/\s+/', ' ', trim($preview)); + $preview = substr($preview, 0, 500); + + // Find customer_id by email + $customer = db()->fetch( + "SELECT customer_id FROM customers WHERE email = :email LIMIT 1", + ['email' => $to] + ); + + db()->insert('email_log', [ + 'customer_id' => $customer['customer_id'] ?? null, + 'recipient_email'=> $to, + 'subject' => $subject, + 'preview' => $preview, + 'message_id' => $result['message_id'] ?? null, + 'status' => $result['success'] ? 'sent' : 'failed', + 'error_message' => $result['success'] ? null : ($result['error'] ?? null), + 'tags' => isset($options['tags']) ? implode(',', $options['tags']) : null, + ]); + } catch (\Throwable $e) { + // Never let logging break email sending + } + } + + public function checkDeliveryStatus(string $messageId): array { + $ch = curl_init("https://platform.cyberpersons.com/email/v1/messages/" . urlencode($messageId)); + curl_setopt_array($ch, [ + CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $this->apiKey], + CURLOPT_RETURNTRANSFER => true, + CURLOPT_TIMEOUT => 10, + ]); + $response = curl_exec($ch); + curl_close($ch); + $body = json_decode($response, true); + return $body['data'] ?? []; + } + + public function send(string $to, string $subject, string $html, ?string $text = null, array $options = []): array { + // Strip internal-only keys that are not CyberMail API fields + $apiOptions = array_diff_key($options, array_flip(['metadata'])); + $payload = array_merge([ + 'from' => $this->fromEmail, + 'from_name' => $this->fromName, + 'to' => $to, + 'subject' => $subject, + 'html' => $html, + ], $apiOptions); + if ($text) $payload['text'] = $text; + + $ch = curl_init('https://platform.cyberpersons.com/email/v1/send'); + curl_setopt_array($ch, [ + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => json_encode($payload), + CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $this->apiKey, 'Content-Type: application/json'], + CURLOPT_RETURNTRANSFER => true, + CURLOPT_TIMEOUT => 30, + CURLOPT_SSL_VERIFYPEER => true, + ]); + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $curlErr = curl_error($ch); + curl_close($ch); + + if ($curlErr) { + error_log('[TJJ Email] cURL error: ' . $curlErr); + $result = ['success' => false, 'error' => $curlErr, 'code' => 0]; + $this->logEmail($to, $subject, $html, $result, $options); + return $result; + } + + $body = json_decode($response, true); + if ($httpCode === 202) { + $result = ['success' => true, 'message_id' => $body['data']['message_id'] ?? null]; + $this->logEmail($to, $subject, $html, $result, $options); + return $result; + } + $errorMsg = $body['error']['message'] ?? 'Unknown error'; + $result = ['success' => false, 'error' => $errorMsg, 'code' => $httpCode]; + $this->logEmail($to, $subject, $html, $result, $options); + return $result; + } + + public function sendOrderConfirmation(array $order): array { + $items = json_decode($order['items'], true); + $itemsHtml = ''; + foreach ($items as $item) { + $itemsHtml .= sprintf( + '%s + %d + %s', + htmlspecialchars($item['name']), + $item['quantity'], + formatCurrency($item['total']) + ); + } + $html = $this->getTemplate('order_confirmation', [ + 'order_number' => htmlspecialchars($order['order_number']), + 'customer_name' => htmlspecialchars($order['customer_name'] ?? 'Valued Customer'), + 'items_html' => $itemsHtml, + 'subtotal' => formatCurrency($order['subtotal']), + 'tax' => formatCurrency($order['tax']), + 'discount' => $order['discount'] > 0 ? '-' . formatCurrency($order['discount']) : '$0.00', + 'total' => formatCurrency($order['total']), + 'payment_method' => ucfirst($order['payment_method'] ?? 'N/A'), + 'order_date' => date('F j, Y', strtotime($order['created_at'])) + ]); + return $this->send( + $order['customer_email'], + "Order Confirmation - #{$order['order_number']}", + $html, + null, + ['tags' => ['order', 'confirmation'], 'metadata' => ['order_id' => $order['order_number']]] + ); + } + + public function sendShippingNotification(array $order): array { + $html = $this->getTemplate('shipping_notification', [ + 'order_number' => htmlspecialchars($order['order_number']), + 'customer_name' => htmlspecialchars($order['customer_name'] ?? 'Valued Customer'), + 'tracking_number' => htmlspecialchars($order['tracking_number']), + 'tracking_url' => htmlspecialchars($order['tracking_url'] ?? '#'), + 'carrier' => htmlspecialchars($order['shipping_carrier'] ?? 'Our shipping partner') + ]); + return $this->send( + $order['customer_email'], + "Your Order Has Shipped - #{$order['order_number']}", + $html, + null, + ['tags' => ['order', 'shipping'], 'metadata' => ['order_id' => $order['order_number']]] + ); + } + + public function sendPasswordReset(string $email, string $resetToken, string $name = ''): array { + $resetUrl = SITE_URL . '/reset-password.php?token=' . $resetToken; + $html = $this->getTemplate('password_reset', [ + 'customer_name' => htmlspecialchars($name ?: 'there'), + 'reset_url' => htmlspecialchars($resetUrl), + 'expires' => '1 hour' + ]); + return $this->send($email, "Reset Your Password - Tom's Java Jive", $html, null, ['tags' => ['password-reset']]); + } + + public function sendWelcome(string $email, string $name = ''): array { + $html = $this->getTemplate('welcome', [ + 'customer_name' => htmlspecialchars($name ?: 'Coffee Lover'), + 'shop_url' => SITE_URL . '/shop.php' + ]); + return $this->send($email, "Welcome to Tom's Java Jive!", $html, null, ['tags' => ['welcome']]); + } + + public function sendAbandonedCartReminder(array $cart): array { + $items = json_decode($cart['items'], true); + $itemsHtml = ''; + foreach ($items as $item) { + $itemsHtml .= sprintf( + '
%s - %s
', + htmlspecialchars($item['name']), + formatCurrency($item['price']) + ); + } + $html = $this->getTemplate('abandoned_cart', [ + 'items_html' => $itemsHtml, + 'total' => formatCurrency($cart['subtotal']), + 'cart_url' => SITE_URL . '/cart.php' + ]); + return $this->send($cart['customer_email'], "You left something behind!", $html, null, ['tags' => ['abandoned-cart']]); + } + + private function getTemplate(string $name, array $vars = []): string { + $year = date('Y'); + $templates = [ + 'order_confirmation' => ' +
+
+

Order Confirmed!

+
+
+

Hi {{customer_name}},

+

Thank you for your order! We\'ve received it and will begin processing right away.

+
+

Order #{{order_number}}

+

{{order_date}}

+
+ + + + + + + {{items_html}} +
ItemQtyPrice
+
+

Subtotal: {{subtotal}}

+

Tax: {{tax}}

+

Discount: {{discount}}

+

Total: {{total}}

+
+

Payment Method: {{payment_method}}

+
+
+

© ' . $year . ' Tom\'s Java Jive. All rights reserved.

+
+
', + + 'shipping_notification' => ' +
+
+

Your Order Has Shipped!

+
+
+

Hi {{customer_name}},

+

Great news! Your order #{{order_number}} is on its way.

+
+

Tracking Number

+

{{tracking_number}}

+

Carrier: {{carrier}}

+
+ +
+
+

© ' . $year . ' Tom\'s Java Jive. All rights reserved.

+
+
', + + 'password_reset' => ' +
+
+

Reset Your Password

+
+
+

Hi {{customer_name}},

+

We received a request to reset your password. Click the button below to create a new one:

+ +

This link expires in {{expires}}. If you didn\'t request this, ignore this email.

+
+
+

© ' . $year . ' Tom\'s Java Jive. All rights reserved.

+
+
', + + 'welcome' => ' +
+
+

Welcome to the Family!

+
+
+

Hi {{customer_name}},

+

Welcome to Tom\'s Java Jive! We\'re thrilled to have you join our community of coffee lovers.

+

Here\'s what you can look forward to:

+
    +
  • Exclusive member discounts
  • +
  • Early access to new roasts
  • +
  • Reward points on every purchase
  • +
  • Birthday treats and special offers
  • +
+ +

Cheers,
The Tom\'s Java Jive Team

+
+
+

© ' . $year . ' Tom\'s Java Jive. All rights reserved.

+
+
', + + 'abandoned_cart' => ' +
+
+

Forget Something?

+
+
+

Hey there!

+

We noticed you left some amazing items in your cart. Don\'t let them get away!

+
+ {{items_html}} +
Total: {{total}}
+
+ +
+
+

© ' . $year . ' Tom\'s Java Jive. All rights reserved.

+
+
' + ]; + + $template = $templates[$name] ?? '

Email template not found.

'; + foreach ($vars as $key => $value) { + $template = str_replace('{{' . $key . '}}', $value, $template); + } + return $template; + } +} + +function emailService(): Email { + static $instance = null; + if ($instance === null) { + $instance = new Email(); + } + return $instance; +} diff --git a/sites/tomsjavajive.com/public_html/includes/footer.php b/sites/tomsjavajive.com/public_html/includes/footer.php new file mode 100644 index 0000000..4e6bb8f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/footer.php @@ -0,0 +1,61 @@ + + + +
+
+ + + +
+
+ + + + + + diff --git a/sites/tomsjavajive.com/public_html/includes/functions.php b/sites/tomsjavajive.com/public_html/includes/functions.php new file mode 100644 index 0000000..e8228d7 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/functions.php @@ -0,0 +1,422 @@ + HASH_COST]); +} + +/** + * Verify password + */ +function verifyPassword($password, $hash) { + return password_verify($password, $hash); +} + +/** + * Sanitize input + */ +function sanitize($input) { + if (is_array($input)) { + return array_map('sanitize', $input); + } + return htmlspecialchars(trim($input), ENT_QUOTES, 'UTF-8'); +} + +/** + * Format currency + */ +function formatCurrency($amount) { + return TJJ_CURRENCY_SYMBOL . number_format((float)$amount, 2); +} + +/** + * Format date + */ +function formatDate($date, $format = 'M j, Y') { + return date($format, strtotime($date)); +} + +/** + * Format datetime + */ +function formatDateTime($date, $format = 'M j, Y g:i A') { + return date($format, strtotime($date)); +} + +/** + * JSON response helper + */ +function jsonResponse($data, $statusCode = 200) { + http_response_code($statusCode); + header('Content-Type: application/json'); + echo json_encode($data); + exit; +} + +/** + * Redirect helper + */ +function redirect($url) { + header("Location: $url"); + exit; +} + +/** + * Get current URL + */ +function currentUrl() { + $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http'; + return $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; +} + +/** + * Check if request is AJAX + */ +function isAjax() { + return !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && + strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'; +} + +/** + * Get client IP address + */ +function getClientIp() { + $ip = $_SERVER['REMOTE_ADDR']; + if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { + $ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0]; + } elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) { + $ip = $_SERVER['HTTP_CLIENT_IP']; + } + return trim($ip); +} + +/** + * Generate CSRF token + */ +function generateCsrfToken() { + if (empty($_SESSION[CSRF_TOKEN_NAME])) { + $_SESSION[CSRF_TOKEN_NAME] = bin2hex(random_bytes(32)); + } + return $_SESSION[CSRF_TOKEN_NAME]; +} + +/** + * Verify CSRF token + */ +function verifyCsrfToken($token) { + return isset($_SESSION[CSRF_TOKEN_NAME]) && hash_equals($_SESSION[CSRF_TOKEN_NAME], $token); +} + +/** + * Get setting value + */ +function getSetting($key, $default = null) { + $result = db()->fetch( + "SELECT setting_value FROM settings WHERE setting_key = :key", + ['key' => $key] + ); + if ($result) { + return json_decode($result['setting_value'], true) ?? $result['setting_value']; + } + return $default; +} + +/** + * Update setting value + */ +function setSetting($key, $value) { + $jsonValue = json_encode($value); + $existing = db()->fetch( + "SELECT id FROM settings WHERE setting_key = :key", + ['key' => $key] + ); + + if ($existing) { + db()->update('settings', ['setting_value' => $jsonValue], 'setting_key = :key', ['key' => $key]); + } else { + db()->insert('settings', ['setting_key' => $key, 'setting_value' => $jsonValue]); + } +} + +/** + * Flash message helpers + */ +function setFlash($type, $message) { + $_SESSION['flash'][$type] = $message; +} + +function getFlash($type) { + if (isset($_SESSION['flash'][$type])) { + $message = $_SESSION['flash'][$type]; + unset($_SESSION['flash'][$type]); + return $message; + } + return null; +} + +function hasFlash($type) { + return isset($_SESSION['flash'][$type]); +} + +/** + * Pagination helper + */ +function paginate($totalItems, $currentPage, $perPage = ITEMS_PER_PAGE) { + $totalPages = ceil($totalItems / $perPage); + $currentPage = max(1, min($currentPage, $totalPages)); + $offset = ($currentPage - 1) * $perPage; + + return [ + 'total_items' => $totalItems, + 'total_pages' => $totalPages, + 'current_page' => $currentPage, + 'per_page' => $perPage, + 'offset' => $offset, + 'has_prev' => $currentPage > 1, + 'has_next' => $currentPage < $totalPages + ]; +} + +/** + * Render pagination HTML + */ +function renderPagination($pagination, $baseUrl) { + if ($pagination['total_pages'] <= 1) return ''; + + $cur = $pagination['current_page']; + $total = $pagination['total_pages']; + // baseUrl may already contain query params; append page with & + $sep = strpos($baseUrl, '?') !== false ? '&' : '?'; + $url = fn($p) => $baseUrl . $sep . 'page=' . $p; + + $btn = fn($href, $label, $active = false, $disabled = false) => + '' . $label . ''; + + $html = '
'; + + // Prev + $html .= $btn($url($cur - 1), '← Prev', false, !$pagination['has_prev']); + + // Page numbers with ellipsis + $pages = []; + for ($i = 1; $i <= $total; $i++) { + if ($i === 1 || $i === $total || abs($i - $cur) <= 2) { + $pages[] = $i; + } + } + $prev = null; + foreach ($pages as $p) { + if ($prev !== null && $p - $prev > 1) { + $html .= ''; + } + $html .= $btn($url($p), $p, $p === $cur); + $prev = $p; + } + + // Next + $html .= $btn($url($cur + 1), 'Next →', false, !$pagination['has_next']); + + $html .= '
'; + return $html; +} + +/** + * Truncate text + */ +function truncate($text, $length = 100, $suffix = '...') { + if (strlen($text) <= $length) return $text; + return substr($text, 0, $length) . $suffix; +} + +/** + * Slugify text + */ +function slugify($text) { + $text = preg_replace('~[^\pL\d]+~u', '-', $text); + $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); + $text = preg_replace('~[^-\w]+~', '', $text); + $text = trim($text, '-'); + $text = preg_replace('~-+~', '-', $text); + return strtolower($text); +} + +/** + * Get cart from session + */ +function getCart() { + return $_SESSION['cart'] ?? []; +} + +/** + * Add item to cart + */ +function addToCart($productId, $quantity = 1) { + if (!isset($_SESSION['cart'])) { + $_SESSION['cart'] = []; + } + + if (isset($_SESSION['cart'][$productId])) { + $_SESSION['cart'][$productId] += $quantity; + } else { + $_SESSION['cart'][$productId] = $quantity; + } +} + +/** + * Update cart item quantity + */ +function updateCartItem($productId, $quantity) { + if ($quantity <= 0) { + removeFromCart($productId); + } else { + $_SESSION['cart'][$productId] = $quantity; + } +} + +/** + * Remove item from cart + */ +function removeFromCart($productId) { + unset($_SESSION['cart'][$productId]); +} + +/** + * Clear cart + */ +function clearCart() { + $_SESSION['cart'] = []; +} + +/** + * Get cart count + */ +function getCartCount() { + return array_sum($_SESSION['cart'] ?? []); +} + +/** + * Get cart total + */ +function getCartTotal() { + $total = 0; + $cart = getCart(); + + foreach ($cart as $productId => $quantity) { + $product = db()->fetch( + "SELECT price, sale_price FROM products WHERE product_id = :id AND is_active = 1", + ['id' => $productId] + ); + if ($product) { + $price = $product['sale_price'] ?? $product['price']; + $total += $price * $quantity; + } + } + + return $total; +} + +/** + * Send email via CyberMail API. + * Thin wrapper around Email::send() (includes/email.php) so there is a + * single implementation of the CyberMail HTTP call, TLS settings, and + * error handling instead of two copies that can drift out of sync. + */ +function sendEmail($to, $subject, $htmlContent, $textContent = '') { + require_once __DIR__ . '/email.php'; + $result = emailService()->send($to, $subject, $htmlContent, $textContent ?: null); + return $result['success'] ?? false; +} + +/** + * Log activity + */ +function logActivity($action, $details = [], $userId = null) { + // Implement activity logging if needed +} + +/** + * Validate and save an uploaded image, verifying the ACTUAL file content + * (not the client-supplied MIME type or filename extension, both of which + * are attacker-controlled) before writing it to disk. Used by every admin + * image-upload endpoint so the checks live in exactly one place. + * + * @param string $fieldName Key in $_FILES to read + * @param string $destDir Absolute directory to save into (created if missing) + * @param string $prefix Filename prefix, e.g. "product_" or "splash_" + * @return array ['success' => bool, 'url' => string, 'path' => string] or ['error' => string] + */ +function handleImageUpload(string $fieldName, string $destDir, string $prefix = 'img_'): array { + if (empty($_FILES[$fieldName]) || $_FILES[$fieldName]['error'] !== UPLOAD_ERR_OK) { + return ['error' => 'No file received']; + } + + $file = $_FILES[$fieldName]; + + if ($file['size'] > MAX_UPLOAD_SIZE) { + return ['error' => 'File too large. Maximum ' . (MAX_UPLOAD_SIZE / (1024 * 1024)) . 'MB.']; + } + + // Never trust $file['type'] (client-supplied) or the extension in + // $file['name'] (attacker-supplied) — inspect the real file bytes. + $imageInfo = @getimagesize($file['tmp_name']); + if ($imageInfo === false) { + return ['error' => 'File is not a valid image.']; + } + + $extensionByMime = [ + 'image/jpeg' => 'jpg', + 'image/png' => 'png', + 'image/gif' => 'gif', + 'image/webp' => 'webp', + ]; + $mime = $imageInfo['mime']; + if (!in_array($mime, ALLOWED_IMAGE_TYPES, true) || !isset($extensionByMime[$mime])) { + return ['error' => 'Invalid file type. Use JPG, PNG, WebP, or GIF.']; + } + + if (!is_dir($destDir)) { + mkdir($destDir, 0755, true); + } + + $filename = $prefix . time() . '_' . bin2hex(random_bytes(4)) . '.' . $extensionByMime[$mime]; + $filepath = rtrim($destDir, '/\\') . '/' . $filename; + + if (!move_uploaded_file($file['tmp_name'], $filepath)) { + return ['error' => 'Failed to save file. Check directory permissions.']; + } + + return ['success' => true, 'filename' => $filename, 'path' => $filepath]; +} diff --git a/sites/tomsjavajive.com/public_html/includes/header.php b/sites/tomsjavajive.com/public_html/includes/header.php new file mode 100644 index 0000000..28ad50b --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/header.php @@ -0,0 +1,122 @@ + + + + + + + <?= $pageTitle ?? SITE_NAME ?> + + "> + "> + + + + + + + "> + "> + + + + + "> + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
diff --git a/sites/tomsjavajive.com/public_html/includes/loyalty.php b/sites/tomsjavajive.com/public_html/includes/loyalty.php new file mode 100644 index 0000000..925d43f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/loyalty.php @@ -0,0 +1,509 @@ +loadTiers(); + } + + private function loadTiers(): void { + $rows = db()->fetchAll("SELECT * FROM loyalty_tiers ORDER BY min_points ASC"); + foreach ($rows as $row) { + $key = strtolower($row['name']); + $benefits = json_decode($row['benefits'] ?? '[]', true) ?? []; + $this->tiers[$key] = [ + 'name' => $row['name'], + 'min_points' => (int) $row['min_points'], + 'multiplier' => (float) $row['multiplier'], + 'benefits' => $benefits, + 'color' => $row['color'] ?? '#888', + 'icon' => 'fa-coffee', + ]; + } + // Fallback if DB is empty + if (empty($this->tiers)) { + $this->tiers = [ + 'bronze' => ['name'=>'Bronze', 'min_points'=>0, 'multiplier'=>1.0, 'benefits'=>[], 'color'=>'#CD7F32', 'icon'=>'fa-coffee'], + 'silver' => ['name'=>'Silver', 'min_points'=>500, 'multiplier'=>1.5, 'benefits'=>[], 'color'=>'#C0C0C0', 'icon'=>'fa-mug-hot'], + 'gold' => ['name'=>'Gold', 'min_points'=>1500, 'multiplier'=>2.0, 'benefits'=>[], 'color'=>'#FFD700', 'icon'=>'fa-crown'], + 'platinum' => ['name'=>'Platinum', 'min_points'=>3000, 'multiplier'=>3.0, 'benefits'=>[], 'color'=>'#E5E4E2', 'icon'=>'fa-gem'], + ]; + } + } + + // Points redemption rates + private float $pointsToValue = 0.01; // 1 point = $0.01 (100 points = $1) + + /** + * Get all tier definitions + */ + public function getTiers(): array { + return $this->tiers; + } + + /** + * Get a specific tier + */ + public function getTier(string $tierKey): ?array { + return $this->tiers[$tierKey] ?? null; + } + + /** + * Determine customer's tier based on total points earned (lifetime) + */ + public function calculateTier(int $lifetimePoints): string { + $currentTier = 'bronze'; + + foreach ($this->tiers as $key => $tier) { + if ($lifetimePoints >= $tier['min_points']) { + $currentTier = $key; + } + } + + return $currentTier; + } + + /** + * Get customer's current tier info + */ + public function getCustomerTier(string $customerId): array { + $customer = db()->fetch( + "SELECT reward_points, lifetime_points, loyalty_tier FROM customers WHERE customer_id = :id", + ['id' => $customerId] + ); + + if (!$customer) { + return ['tier' => 'bronze', 'info' => $this->tiers['bronze'], 'points' => 0]; + } + + $lifetimePoints = $customer['lifetime_points'] ?? $customer['reward_points'] ?? 0; + $tierKey = $this->calculateTier($lifetimePoints); + $tier = $this->tiers[$tierKey]; + + // Calculate progress to next tier + $nextTierKey = $this->getNextTier($tierKey); + $nextTier = $nextTierKey ? $this->tiers[$nextTierKey] : null; + + $progress = 100; + $pointsToNext = 0; + + if ($nextTier) { + $currentMin = $tier['min_points']; + $nextMin = $nextTier['min_points']; + $pointsToNext = $nextMin - $lifetimePoints; + $progress = min(100, (($lifetimePoints - $currentMin) / ($nextMin - $currentMin)) * 100); + } + + return [ + 'tier' => $tierKey, + 'info' => $tier, + 'points' => $customer['reward_points'] ?? 0, + 'lifetime_points' => $lifetimePoints, + 'next_tier' => $nextTierKey, + 'next_tier_info' => $nextTier, + 'points_to_next' => $pointsToNext, + 'progress_percent' => round($progress, 1) + ]; + } + + /** + * Get next tier key + */ + private function getNextTier(string $currentTier): ?string { + $keys = array_keys($this->tiers); + $index = array_search($currentTier, $keys); + + return isset($keys[$index + 1]) ? $keys[$index + 1] : null; + } + + /** + * Award points for a purchase + */ + public function awardPoints(string $customerId, float $amount, string $description = 'Purchase', string $orderId = ''): array { + // Prevent duplicate awards for the same order + if ($orderId) { + $already = db()->fetch( + "SELECT id FROM loyalty_transactions WHERE order_id = :oid AND type = 'earn' LIMIT 1", + ['oid' => $orderId] + ); + if ($already) { + return ['points_earned' => 0, 'already_awarded' => true]; + } + } + + $customerTier = $this->getCustomerTier($customerId); + $multiplier = $customerTier['info']['multiplier']; + + // Calculate points (base: 1 point per dollar) + $basePoints = (int) floor($amount); + $bonusPoints = (int) floor($basePoints * ($multiplier - 1)); + $totalPoints = $basePoints + $bonusPoints; + + // Update customer points + db()->query( + "UPDATE customers SET + reward_points = reward_points + :points, + lifetime_points = COALESCE(lifetime_points, 0) + :points2, + updated_at = NOW() + WHERE customer_id = :id", + ['points' => $totalPoints, 'points2' => $totalPoints, 'id' => $customerId] + ); + + $newBalance = db()->fetch( + "SELECT reward_points FROM customers WHERE customer_id = :id", + ['id' => $customerId] + )['reward_points'] ?? $totalPoints; + + // Log the transaction + db()->insert('loyalty_transactions', [ + 'transaction_id' => generateId('lt_'), + 'customer_id' => $customerId, + 'points' => $totalPoints, + 'balance_after' => $newBalance, + 'type' => 'earn', + 'description' => $description . ($bonusPoints > 0 ? " (+{$bonusPoints} bonus)" : ''), + 'reference_amount' => $amount, + 'order_id' => $orderId ?: null, + ]); + + // Check for tier upgrade + $newTier = $this->checkTierUpgrade($customerId, $customerTier['tier']); + + return [ + 'points_earned' => $totalPoints, + 'base_points' => $basePoints, + 'bonus_points' => $bonusPoints, + 'multiplier' => $multiplier, + 'tier_upgraded' => $newTier !== null, + 'new_tier' => $newTier + ]; + } + + /** + * Redeem points for credit + */ + public function redeemPoints(string $customerId, int $points): array { + $customer = db()->fetch( + "SELECT reward_points FROM customers WHERE customer_id = :id", + ['id' => $customerId] + ); + + if (!$customer || $customer['reward_points'] < $points) { + return ['success' => false, 'error' => 'Insufficient points']; + } + + $creditValue = $points * $this->pointsToValue; + + // Deduct points + db()->query( + "UPDATE customers SET reward_points = reward_points - :points, updated_at = NOW() WHERE customer_id = :id", + ['points' => $points, 'id' => $customerId] + ); + + // Log the redemption + db()->insert('loyalty_transactions', [ + 'transaction_id' => generateId('lt_'), + 'customer_id' => $customerId, + 'points' => -$points, + 'type' => 'redeem', + 'description' => "Redeemed for " . formatCurrency($creditValue) . " credit", + 'reference_amount' => $creditValue + ]); + + // Add to wallet + $newBalance = db()->fetch( + "SELECT wallet_balance FROM customers WHERE customer_id = :id", + ['id' => $customerId] + )['wallet_balance'] ?? 0; + + $newBalance += $creditValue; + + db()->query( + "UPDATE customers SET wallet_balance = :balance WHERE customer_id = :id", + ['balance' => $newBalance, 'id' => $customerId] + ); + + // Log wallet transaction + db()->insert('wallet_transactions', [ + 'transaction_id' => generateId('wt_'), + 'customer_id' => $customerId, + 'amount' => $creditValue, + 'balance_after' => $newBalance, + 'type' => 'loyalty_redemption', + 'description' => "Redeemed {$points} loyalty points" + ]); + + return [ + 'success' => true, + 'points_redeemed' => $points, + 'credit_value' => $creditValue, + 'new_points_balance' => $customer['reward_points'] - $points, + 'new_wallet_balance' => $newBalance + ]; + } + + /** + * Check and process tier upgrade + */ + public function checkTierUpgrade(string $customerId, string $currentTier): ?string { + $customer = db()->fetch( + "SELECT lifetime_points, loyalty_tier FROM customers WHERE customer_id = :id", + ['id' => $customerId] + ); + + if (!$customer) { + return null; + } + + $calculatedTier = $this->calculateTier($customer['lifetime_points'] ?? 0); + $storedTier = $customer['loyalty_tier'] ?? 'bronze'; + + // Compare tier levels + $tierOrder = ['bronze', 'silver', 'gold', 'platinum']; + $calculatedIndex = array_search($calculatedTier, $tierOrder); + $storedIndex = array_search($storedTier, $tierOrder); + + if ($calculatedIndex > $storedIndex) { + // Upgrade! + db()->query( + "UPDATE customers SET loyalty_tier = :tier, updated_at = NOW() WHERE customer_id = :id", + ['tier' => $calculatedTier, 'id' => $customerId] + ); + + // Log the upgrade + db()->insert('loyalty_transactions', [ + 'transaction_id' => generateId('lt_'), + 'customer_id' => $customerId, + 'points' => 0, + 'type' => 'tier_upgrade', + 'description' => "Upgraded from {$this->tiers[$storedTier]['name']} to {$this->tiers[$calculatedTier]['name']}" + ]); + + // Send notifications + $this->sendTierUpgradeNotifications($customerId, $calculatedTier); + + return $calculatedTier; + } + + return null; + } + + /** + * Send tier upgrade notifications + */ + private function sendTierUpgradeNotifications(string $customerId, string $newTier): void { + $customer = db()->fetch( + "SELECT email, phone, name FROM customers WHERE customer_id = :id", + ['id' => $customerId] + ); + + if (!$customer) return; + + $tierInfo = $this->tiers[$newTier]; + + // Send email notification + if (!empty($customer['email'])) { + require_once __DIR__ . '/email.php'; + // Custom email for tier upgrade would go here + } + + // Send SMS notification + if (!empty($customer['phone'])) { + require_once __DIR__ . '/sms.php'; + sendSMS()->sendTierUpgrade($customer['phone'], $tierInfo['name']); + } + + // Send push notification + require_once __DIR__ . '/push.php'; + pushNotify()->sendTierNotification($customerId, $tierInfo['name'], $tierInfo['benefits']); + } + + /** + * Get points conversion info + */ + public function getConversionInfo(): array { + return [ + 'points_per_dollar' => 1, + 'points_value' => $this->pointsToValue, + 'points_for_one_dollar' => intval(1 / $this->pointsToValue), + 'description' => 'Earn 1 point for every $1 spent. Redeem 100 points for $1 credit.' + ]; + } + + /** + * Get customer's loyalty history + */ + public function getHistory(string $customerId, int $limit = 20): array { + return db()->fetchAll( + "SELECT * FROM loyalty_transactions WHERE customer_id = :id ORDER BY created_at DESC LIMIT :limit", + ['id' => $customerId, 'limit' => $limit] + ); + } + + /** + * Award birthday bonus + */ + public function awardBirthdayBonus(string $customerId): array { + $customerTier = $this->getCustomerTier($customerId); + + // Bonus points based on tier + $bonusPoints = match($customerTier['tier']) { + 'platinum' => 500, + 'gold' => 300, + 'silver' => 200, + default => 100 + }; + + db()->query( + "UPDATE customers SET reward_points = reward_points + :points WHERE customer_id = :id", + ['points' => $bonusPoints, 'id' => $customerId] + ); + + db()->insert('loyalty_transactions', [ + 'transaction_id' => generateId('lt_'), + 'customer_id' => $customerId, + 'points' => $bonusPoints, + 'type' => 'birthday_bonus', + 'description' => "Birthday reward - Happy Birthday!" + ]); + + return ['success' => true, 'points' => $bonusPoints]; + } + + /** + * Award referral bonus + */ + public function awardReferralBonus(string $referrerId, string $newCustomerId): array { + $referrerBonus = 100; + $newCustomerBonus = 50; + + // Award to referrer + db()->query( + "UPDATE customers SET reward_points = reward_points + :points WHERE customer_id = :id", + ['points' => $referrerBonus, 'id' => $referrerId] + ); + + db()->insert('loyalty_transactions', [ + 'transaction_id' => generateId('lt_'), + 'customer_id' => $referrerId, + 'points' => $referrerBonus, + 'type' => 'referral_bonus', + 'description' => "Referral bonus - Thank you for spreading the word!" + ]); + + // Award to new customer + db()->query( + "UPDATE customers SET reward_points = reward_points + :points WHERE customer_id = :id", + ['points' => $newCustomerBonus, 'id' => $newCustomerId] + ); + + db()->insert('loyalty_transactions', [ + 'transaction_id' => generateId('lt_'), + 'customer_id' => $newCustomerId, + 'points' => $newCustomerBonus, + 'type' => 'referral_welcome', + 'description' => "Welcome bonus from referral" + ]); + + return [ + 'referrer_bonus' => $referrerBonus, + 'new_customer_bonus' => $newCustomerBonus + ]; + } + + /** + * Redeem a gift card code into wallet balance. Shared by the Wallet page + * and checkout so both go through the same transaction logic instead of + * duplicating it. + */ + public function redeemGiftCardToWallet(string $customerId, string $rawCode): array { + $code = strtoupper(str_replace(['-', ' '], '', trim($rawCode))); + + if (empty($code) || strlen($code) < 8) { + return ['success' => false, 'error' => 'Invalid gift card code']; + } + + $giftCard = db()->fetch( + "SELECT * FROM gift_cards WHERE code = :code AND is_active = 1", + ['code' => $code] + ); + + if (!$giftCard) { + return ['success' => false, 'error' => 'Gift card not found or already used']; + } + + if ($giftCard['current_balance'] <= 0) { + return ['success' => false, 'error' => 'This gift card has no remaining balance']; + } + + if ($giftCard['expires_at'] && strtotime($giftCard['expires_at']) < time()) { + return ['success' => false, 'error' => 'This gift card has expired']; + } + + $customer = db()->fetch("SELECT wallet_balance FROM customers WHERE customer_id = :id", ['id' => $customerId]); + if (!$customer) { + return ['success' => false, 'error' => 'Customer not found']; + } + + $amount = $giftCard['current_balance']; + + try { + db()->query("START TRANSACTION"); + + db()->query( + "UPDATE gift_cards SET current_balance = 0, is_active = 0 WHERE gift_card_id = :id", + ['id' => $giftCard['gift_card_id']] + ); + + db()->insert('gift_card_transactions', [ + 'gift_card_id' => $giftCard['gift_card_id'], + 'amount' => -$amount, + 'balance_after' => 0, + 'type' => 'redemption', + ]); + + $newWalletBalance = (float) $customer['wallet_balance'] + $amount; + + db()->query( + "UPDATE customers SET wallet_balance = :balance, updated_at = NOW() WHERE customer_id = :id", + ['balance' => $newWalletBalance, 'id' => $customerId] + ); + + db()->insert('wallet_transactions', [ + 'transaction_id' => generateId('wt_'), + 'customer_id' => $customerId, + 'amount' => $amount, + 'balance_after' => $newWalletBalance, + 'type' => 'deposit', + 'description' => 'Gift card redeemed: ' . $code + ]); + + db()->query("COMMIT"); + + return [ + 'success' => true, + 'amount' => $amount, + 'new_balance' => $newWalletBalance + ]; + } catch (Exception $e) { + db()->query("ROLLBACK"); + return ['success' => false, 'error' => 'Failed to redeem gift card. Please try again.']; + } + } +} + +// Helper function +function loyalty(): LoyaltyProgram { + static $instance = null; + if ($instance === null) { + $instance = new LoyaltyProgram(); + } + return $instance; +} diff --git a/sites/tomsjavajive.com/public_html/includes/push.php b/sites/tomsjavajive.com/public_html/includes/push.php new file mode 100644 index 0000000..d102c4e --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/push.php @@ -0,0 +1,181 @@ +publicKey = getSetting('vapid_public_key', 'YOUR_VAPID_PUBLIC_KEY'); + $this->privateKey = getSetting('vapid_private_key', 'YOUR_VAPID_PRIVATE_KEY'); + $this->subject = 'mailto:' . getSetting('admin_email', 'admin@tomsjavajive.com'); + } + + /** + * Get VAPID public key for client + */ + public function getPublicKey(): string { + return $this->publicKey; + } + + /** + * Send push notification to a subscription + */ + public function send(array $subscription, string $title, string $body, array $options = []): array { + $payload = json_encode([ + 'title' => $title, + 'body' => $body, + 'icon' => $options['icon'] ?? '/assets/icons/icon-192.png', + 'badge' => $options['badge'] ?? '/assets/icons/badge-72.png', + 'url' => $options['url'] ?? '/', + 'tag' => $options['tag'] ?? null, + 'data' => $options['data'] ?? [] + ]); + + // For now, we'll store notifications for when the user comes online + // Full web push requires a library like minishlink/web-push + // This is a simplified version that works with the service worker + + try { + // Store notification for retrieval + $notificationId = generateId('notif_'); + db()->insert('push_notifications', [ + 'notification_id' => $notificationId, + 'subscription_endpoint' => $subscription['endpoint'], + 'payload' => $payload, + 'status' => 'pending', + 'created_at' => date('Y-m-d H:i:s') + ]); + + return ['success' => true, 'notification_id' => $notificationId]; + } catch (Exception $e) { + return ['success' => false, 'error' => $e->getMessage()]; + } + } + + /** + * Send notification to all subscribed users + */ + public function broadcast(string $title, string $body, array $options = []): array { + $subscriptions = db()->fetchAll("SELECT * FROM push_subscriptions WHERE is_active = 1"); + + $results = ['sent' => 0, 'failed' => 0]; + + foreach ($subscriptions as $sub) { + $subscription = [ + 'endpoint' => $sub['endpoint'], + 'keys' => [ + 'p256dh' => $sub['p256dh_key'], + 'auth' => $sub['auth_key'] + ] + ]; + + $result = $this->send($subscription, $title, $body, $options); + + if ($result['success']) { + $results['sent']++; + } else { + $results['failed']++; + } + } + + return $results; + } + + /** + * Send order status update notification + */ + public function sendOrderUpdate(string $customerId, array $order, string $status): array { + $subscription = $this->getCustomerSubscription($customerId); + + if (!$subscription) { + return ['success' => false, 'error' => 'No subscription found']; + } + + $messages = [ + 'confirmed' => "Your order #{$order['order_number']} has been confirmed!", + 'processing' => "We're preparing your order #{$order['order_number']}", + 'shipped' => "Your order #{$order['order_number']} is on its way!", + 'delivered' => "Your order #{$order['order_number']} has been delivered!", + 'ready' => "Your order #{$order['order_number']} is ready for pickup!" + ]; + + return $this->send( + $subscription, + "Order Update", + $messages[$status] ?? "Order #{$order['order_number']} status: {$status}", + [ + 'url' => "/account/order.php?id={$order['order_id']}", + 'tag' => "order-{$order['order_id']}" + ] + ); + } + + /** + * Send promotional notification + */ + public function sendPromotion(string $customerId, string $title, string $message, string $url = '/shop.php'): array { + $subscription = $this->getCustomerSubscription($customerId); + + if (!$subscription) { + return ['success' => false, 'error' => 'No subscription found']; + } + + return $this->send($subscription, $title, $message, ['url' => $url]); + } + + /** + * Send loyalty tier notification + */ + public function sendTierNotification(string $customerId, string $tierName, array $benefits): array { + $subscription = $this->getCustomerSubscription($customerId); + + if (!$subscription) { + return ['success' => false, 'error' => 'No subscription found']; + } + + return $this->send( + $subscription, + "Congratulations! You're now {$tierName}!", + "Enjoy new benefits: " . implode(', ', array_slice($benefits, 0, 2)), + ['url' => '/account/'] + ); + } + + /** + * Get customer's push subscription + */ + private function getCustomerSubscription(string $customerId): ?array { + $sub = db()->fetch( + "SELECT * FROM push_subscriptions WHERE customer_id = :id AND is_active = 1 ORDER BY created_at DESC LIMIT 1", + ['id' => $customerId] + ); + + if (!$sub) { + return null; + } + + return [ + 'endpoint' => $sub['endpoint'], + 'keys' => [ + 'p256dh' => $sub['p256dh_key'], + 'auth' => $sub['auth_key'] + ] + ]; + } +} + +// Helper function for easy access +function pushNotify(): PushNotification { + static $instance = null; + if ($instance === null) { + $instance = new PushNotification(); + } + return $instance; +} diff --git a/sites/tomsjavajive.com/public_html/includes/sms.php b/sites/tomsjavajive.com/public_html/includes/sms.php new file mode 100644 index 0000000..513f247 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/sms.php @@ -0,0 +1,195 @@ +accountSid = getSetting('twilio_account_sid', 'YOUR_TWILIO_ACCOUNT_SID'); + $this->authToken = getSetting('twilio_auth_token', 'YOUR_TWILIO_AUTH_TOKEN'); + $this->fromNumber = getSetting('twilio_phone_number', '+1234567890'); + } + + /** + * Send SMS via Twilio API + */ + public function send(string $to, string $message): array { + // Ensure phone number is in E.164 format + $to = $this->formatPhoneNumber($to); + + if (!$to) { + return ['success' => false, 'error' => 'Invalid phone number']; + } + + $url = "https://api.twilio.com/2010-04-01/Accounts/{$this->accountSid}/Messages.json"; + + $data = [ + 'To' => $to, + 'From' => $this->fromNumber, + 'Body' => $message + ]; + + $ch = curl_init($url); + curl_setopt_array($ch, [ + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => http_build_query($data), + CURLOPT_USERPWD => "{$this->accountSid}:{$this->authToken}", + CURLOPT_RETURNTRANSFER => true, + CURLOPT_TIMEOUT => 30 + ]); + + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $error = curl_error($ch); + curl_close($ch); + + if ($error) { + return ['success' => false, 'error' => $error]; + } + + $result = json_decode($response, true); + + if ($httpCode >= 200 && $httpCode < 300) { + return [ + 'success' => true, + 'sid' => $result['sid'] ?? null, + 'status' => $result['status'] ?? 'queued' + ]; + } + + return [ + 'success' => false, + 'error' => $result['message'] ?? 'Failed to send SMS', + 'code' => $result['code'] ?? $httpCode + ]; + } + + /** + * Format phone number to E.164 format + */ + private function formatPhoneNumber(string $phone): ?string { + // Remove all non-numeric characters except + + $phone = preg_replace('/[^0-9+]/', '', $phone); + + // If already in E.164 format + if (preg_match('/^\+[1-9]\d{1,14}$/', $phone)) { + return $phone; + } + + // US number without country code + if (preg_match('/^1?\d{10}$/', $phone)) { + $phone = preg_replace('/^1?/', '', $phone); + return '+1' . $phone; + } + + return null; + } + + /** + * Send order confirmation SMS + */ + public function sendOrderConfirmation(array $order, string $phone): array { + $message = "Tom's Java Jive: Your order #{$order['order_number']} has been confirmed! " . + "Total: " . formatCurrency($order['total']) . ". " . + "Thank you for your purchase!"; + + return $this->send($phone, $message); + } + + /** + * Send shipping notification SMS + */ + public function sendShippingNotification(array $order, string $phone): array { + $message = "Tom's Java Jive: Your order #{$order['order_number']} has shipped! " . + "Tracking: {$order['tracking_number']}. " . + "Track at: " . ($order['tracking_url'] ?? SITE_URL); + + return $this->send($phone, $message); + } + + /** + * Send delivery notification SMS + */ + public function sendDeliveryNotification(array $order, string $phone): array { + $message = "Tom's Java Jive: Great news! Your order #{$order['order_number']} " . + "has been delivered. Enjoy your coffee!"; + + return $this->send($phone, $message); + } + + /** + * Send password reset SMS + */ + public function sendPasswordResetCode(string $phone, string $code): array { + $message = "Tom's Java Jive: Your password reset code is {$code}. " . + "This code expires in 15 minutes. Don't share it with anyone."; + + return $this->send($phone, $message); + } + + /** + * Send OTP verification SMS + */ + public function sendVerificationCode(string $phone, string $code): array { + $message = "Tom's Java Jive: Your verification code is {$code}. " . + "Valid for 10 minutes."; + + return $this->send($phone, $message); + } + + /** + * Send promotional SMS (with opt-out info) + */ + public function sendPromotion(string $phone, string $promoMessage): array { + $message = "Tom's Java Jive: {$promoMessage} " . + "Reply STOP to unsubscribe."; + + return $this->send($phone, $message); + } + + /** + * Send order ready for pickup SMS + */ + public function sendReadyForPickup(array $order, string $phone): array { + $message = "Tom's Java Jive: Your order #{$order['order_number']} is ready for pickup! " . + "Show this message at the counter."; + + return $this->send($phone, $message); + } + + /** + * Send low wallet balance alert + */ + public function sendLowBalanceAlert(string $phone, float $balance): array { + $message = "Tom's Java Jive: Your wallet balance is " . formatCurrency($balance) . ". " . + "Top up now to continue enjoying fast checkout!"; + + return $this->send($phone, $message); + } + + /** + * Send loyalty tier upgrade notification + */ + public function sendTierUpgrade(string $phone, string $tierName): array { + $message = "Tom's Java Jive: Congratulations! You've reached {$tierName} status! " . + "Enjoy your new benefits and rewards. Thank you for being a loyal customer!"; + + return $this->send($phone, $message); + } +} + +// Helper function for easy access +function sendSMS(): TwilioSMS { + static $instance = null; + if ($instance === null) { + $instance = new TwilioSMS(); + } + return $instance; +} diff --git a/sites/tomsjavajive.com/public_html/includes/square.php b/sites/tomsjavajive.com/public_html/includes/square.php new file mode 100644 index 0000000..ae14e76 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/square.php @@ -0,0 +1,175 @@ + true, + CURLOPT_TIMEOUT => 30, + CURLOPT_SSL_VERIFYPEER => true, + CURLOPT_HTTPHEADER => [ + 'Content-Type: application/json', + 'Authorization: Bearer ' . SQUARE_ACCESS_TOKEN, + 'Square-Version: 2024-01-18', + ], + ]; + if ($method !== 'GET') { + $opts[CURLOPT_CUSTOMREQUEST] = $method; + $opts[CURLOPT_POSTFIELDS] = json_encode($body ?: new stdClass()); + } + curl_setopt_array($ch, $opts); + + $resp = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $err = curl_error($ch); + curl_close($ch); + + if ($err) { + throw new Exception('Square API connection error: ' . $err); + } + + $decoded = json_decode($resp ?: '{}', true); + + if (!empty($decoded['errors'])) { + $msg = $decoded['errors'][0]['detail'] ?? ($decoded['errors'][0]['code'] ?? 'Unknown Square error'); + throw new Exception($msg); + } + + if ($httpCode >= 400) { + throw new Exception('Square API error (HTTP ' . $httpCode . ')'); + } + + return $decoded; +} + +/** + * Create a payment. $sourceId is the nonce from the Web Payments SDK's tokenize() call. + */ +function squareCreatePayment(string $sourceId, float $amount, string $referenceId, array $options = []): array { + $body = [ + 'source_id' => $sourceId, + 'idempotency_key' => $referenceId . '_' . bin2hex(random_bytes(8)), + 'amount_money' => [ + 'amount' => (int) round($amount * 100), + 'currency' => 'USD', + ], + 'location_id' => SQUARE_LOCATION_ID, + 'autocomplete' => true, + 'reference_id' => $referenceId, + ]; + if (!empty($options['note'])) { + $body['note'] = $options['note']; + } + return squareApi('POST', '/payments', $body); +} + +function squareGetPayment(string $paymentId): array { + return squareApi('GET', '/payments/' . $paymentId); +} + +function squareRefundPayment(string $paymentId, float $amount, string $reason = ''): array { + $body = [ + 'idempotency_key' => 'refund_' . $paymentId . '_' . bin2hex(random_bytes(6)), + 'amount_money' => [ + 'amount' => (int) round($amount * 100), + 'currency' => 'USD', + ], + 'payment_id' => $paymentId, + ]; + if ($reason) { + $body['reason'] = substr($reason, 0, 192); + } + return squareApi('POST', '/refunds', $body); +} + +function isSquareConfigured(): bool { + return defined('SQUARE_ACCESS_TOKEN') && defined('SQUARE_APP_ID') && defined('SQUARE_LOCATION_ID') + && !empty(SQUARE_ACCESS_TOKEN) && !empty(SQUARE_APP_ID) && !empty(SQUARE_LOCATION_ID) + && SQUARE_ACCESS_TOKEN !== 'REPLACE_ME'; +} + +/** + * Square's webhook signature: base64(HMAC-SHA256(notification_url . raw_body, signature_key)). + * The notification URL must exactly match what's configured in the Square Dashboard subscription. + */ +function verifySquareWebhookSignature(string $payload, string $signature, string $notificationUrl, string $signatureKey): bool { + if (empty($signatureKey) || empty($signature)) { + return false; + } + $expected = base64_encode(hash_hmac('sha256', $notificationUrl . $payload, $signatureKey, true)); + return hash_equals($expected, $signature); +} + +/** + * Single source of truth for "an order's Square payment resolved" — called from the + * synchronous create-payment response, the webhook, and the reconciliation poll, so + * loyalty points/emails are never awarded or sent more than once regardless of which + * path resolves the order first. + */ +function markSquarePaymentResult(string $paymentId, ?string $orderId, string $status): void { + $order = $orderId + ? db()->fetch("SELECT * FROM orders WHERE order_id = :id", ['id' => $orderId]) + : db()->fetch("SELECT * FROM orders WHERE square_payment_id = :pid", ['pid' => $paymentId]); + + if (!$order) { + return; + } + + if ($status === 'COMPLETED') { + if ($order['order_status'] !== 'confirmed') { + db()->update('orders', + [ + 'payment_status' => 'paid', + 'order_status' => 'confirmed', + 'square_payment_id' => $paymentId, + 'payment_method' => 'square', + ], + 'order_id = :id', + ['id' => $order['order_id']] + ); + + if (!empty($order['customer_id'])) { + loyalty()->awardPoints( + $order['customer_id'], + (float) $order['total'], + 'Order #' . $order['order_number'], + $order['order_id'] + ); + } + + if (!empty($order['wallet_amount_used']) && (float) $order['wallet_amount_used'] > 0 && !empty($order['customer_id'])) { + $walletAmount = (float) $order['wallet_amount_used']; + $cust = db()->fetch("SELECT wallet_balance FROM customers WHERE customer_id = :id", ['id' => $order['customer_id']]); + if ($cust) { + $newBalance = max(0, (float) $cust['wallet_balance'] - $walletAmount); + db()->update('customers', ['wallet_balance' => $newBalance], 'customer_id = :id', ['id' => $order['customer_id']]); + db()->insert('wallet_transactions', [ + 'transaction_id' => generateId('wt_'), + 'customer_id' => $order['customer_id'], + 'amount' => -$walletAmount, + 'balance_after' => $newBalance, + 'type' => 'purchase', + 'description' => 'Applied to Order #' . $order['order_number'], + ]); + } + } + + $updated = db()->fetch("SELECT * FROM orders WHERE order_id = :id", ['id' => $order['order_id']]); + if ($updated) { + emailService()->sendOrderConfirmation($updated); + } + } + } elseif (in_array($status, ['FAILED', 'CANCELED'], true)) { + db()->update('orders', + ['payment_status' => 'failed'], + 'order_id = :id', + ['id' => $order['order_id']] + ); + } +} diff --git a/sites/tomsjavajive.com/public_html/includes/stripe.php b/sites/tomsjavajive.com/public_html/includes/stripe.php new file mode 100644 index 0000000..5dbf9b1 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/includes/stripe.php @@ -0,0 +1,215 @@ +secretKey = $secretKey ?: STRIPE_SECRET_KEY; + } + + /** + * Make a cURL request to Stripe API + */ + private function request($method, $endpoint, $data = []) { + $url = $this->apiBase . $endpoint; + + $ch = curl_init(); + + $headers = [ + 'Authorization: Bearer ' . $this->secretKey, + 'Content-Type: application/x-www-form-urlencoded' + ]; + + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_TIMEOUT, 30); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); + + if ($method === 'POST') { + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); + } elseif ($method === 'GET' && !empty($data)) { + $url .= '?' . http_build_query($data); + curl_setopt($ch, CURLOPT_URL, $url); + } + + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $error = curl_error($ch); + curl_close($ch); + + if ($error) { + throw new Exception('Stripe API Error: ' . $error); + } + + $decoded = json_decode($response, true); + + if ($httpCode >= 400) { + $errorMsg = $decoded['error']['message'] ?? 'Unknown Stripe error'; + throw new Exception($errorMsg); + } + + return $decoded; + } + + /** + * Create a Payment Intent + */ + public function createPaymentIntent($amount, $currency = 'usd', $options = []) { + $data = [ + 'amount' => (int)($amount * 100), // Convert to cents + 'currency' => strtolower($currency), + 'automatic_payment_methods' => ['enabled' => 'true'] + ]; + + if (!empty($options['metadata'])) { + foreach ($options['metadata'] as $key => $value) { + $data["metadata[$key]"] = $value; + } + } + + if (!empty($options['receipt_email'])) { + $data['receipt_email'] = $options['receipt_email']; + } + + if (!empty($options['description'])) { + $data['description'] = $options['description']; + } + + return $this->request('POST', '/payment_intents', $data); + } + + /** + * Retrieve a Payment Intent + */ + public function getPaymentIntent($paymentIntentId) { + return $this->request('GET', '/payment_intents/' . $paymentIntentId); + } + + /** + * Create a Checkout Session (hosted payment page) + */ + public function createCheckoutSession($lineItems, $successUrl, $cancelUrl, $options = []) { + $data = [ + 'mode' => $options['mode'] ?? 'payment', + 'success_url' => $successUrl, + 'cancel_url' => $cancelUrl + ]; + + // Add line items + foreach ($lineItems as $i => $item) { + $data["line_items[$i][price_data][currency]"] = $item['currency'] ?? 'usd'; + $data["line_items[$i][price_data][product_data][name]"] = $item['name']; + $data["line_items[$i][price_data][unit_amount]"] = (int)($item['price'] * 100); + $data["line_items[$i][quantity]"] = $item['quantity'] ?? 1; + + if (!empty($item['description'])) { + $data["line_items[$i][price_data][product_data][description]"] = $item['description']; + } + } + + if (!empty($options['customer_email'])) { + $data['customer_email'] = $options['customer_email']; + } + + if (!empty($options['metadata'])) { + foreach ($options['metadata'] as $key => $value) { + $data["metadata[$key]"] = $value; + $data["payment_intent_data[metadata][$key]"] = $value; + } + } + + return $this->request('POST', '/checkout/sessions', $data); + } + + /** + * Retrieve a Checkout Session + */ + public function getCheckoutSession($sessionId) { + return $this->request('GET', '/checkout/sessions/' . $sessionId); + } + + /** + * Verify webhook signature + */ + public function verifyWebhookSignature($payload, $sigHeader, $webhookSecret) { + if (empty($webhookSecret)) { + return true; // Skip verification if secret not configured + } + + $elements = explode(',', $sigHeader); + $timestamp = null; + $signatures = []; + + foreach ($elements as $element) { + $parts = explode('=', $element, 2); + if (count($parts) === 2) { + if ($parts[0] === 't') { + $timestamp = $parts[1]; + } elseif ($parts[0] === 'v1') { + $signatures[] = $parts[1]; + } + } + } + + if (empty($timestamp) || empty($signatures)) { + throw new Exception('Invalid signature format'); + } + + // Check timestamp tolerance (5 minutes) + if (abs(time() - $timestamp) > 300) { + throw new Exception('Timestamp outside tolerance'); + } + + $signedPayload = $timestamp . '.' . $payload; + $expectedSignature = hash_hmac('sha256', $signedPayload, $webhookSecret); + + foreach ($signatures as $sig) { + if (hash_equals($expectedSignature, $sig)) { + return true; + } + } + + throw new Exception('Signature verification failed'); + } + + /** + * Create a refund + */ + public function createRefund($paymentIntentId, $amount = null) { + $data = ['payment_intent' => $paymentIntentId]; + + if ($amount !== null) { + $data['amount'] = (int)($amount * 100); + } + + return $this->request('POST', '/refunds', $data); + } +} + +/** + * Get Stripe instance + */ +function stripe() { + static $stripe = null; + if ($stripe === null) { + $stripe = new StripeAPI(); + } + return $stripe; +} + +/** + * Check if Stripe is properly configured + */ +function isStripeConfigured() { + return !empty(STRIPE_SECRET_KEY) && + STRIPE_SECRET_KEY !== 'sk_test_your_stripe_key' && + !empty(STRIPE_PUBLISHABLE_KEY) && + STRIPE_PUBLISHABLE_KEY !== 'pk_test_your_stripe_key'; +} diff --git a/sites/tomsjavajive.com/public_html/index.php b/sites/tomsjavajive.com/public_html/index.php new file mode 100644 index 0000000..bf1702d --- /dev/null +++ b/sites/tomsjavajive.com/public_html/index.php @@ -0,0 +1,223 @@ + +'; +require_once __DIR__ . '/includes/functions.php'; + +// Get about us sections +$aboutSections = db()->fetchAll( + "SELECT * FROM about_us_sections WHERE is_active = 1 ORDER BY sort_order ASC" +); + +// Get homepage splashes +$splashBlocks = db()->fetchAll( + "SELECT * FROM homepage_splashes WHERE is_active = 1 ORDER BY sort_order ASC, id ASC" +); + +// Get featured products +$featuredProducts = db()->fetchAll( + "SELECT * FROM products WHERE is_active = 1 AND is_featured = 1 ORDER BY created_at DESC LIMIT 4" +); + +// If no featured products, get latest products +if (empty($featuredProducts)) { + $featuredProducts = db()->fetchAll( + "SELECT * FROM products WHERE is_active = 1 ORDER BY created_at DESC LIMIT 4" + ); +} + +$metaTitle = "Fresh Roasted Artisan Coffee | Tom's Java Jive"; +$metaDescription = "Premium artisan coffee beans freshly roasted and delivered to your door. Shop single origin, blends, and specialty coffee from Tom's Java Jive in Weatherford, Texas."; +$metaKeywords = 'artisan coffee beans, fresh roasted coffee, single origin coffee, specialty coffee, Weatherford Texas'; +$canonicalUrl = 'https://tomsjavajive.com/'; +require_once __DIR__ . '/includes/header.php'; +?> + + +
+
+

Premium Coffee, Delivered Fresh

+

Artisan roasted coffee beans sourced from the world's finest growing regions. Experience the perfect cup, every time.

+ +
+
+ + + + 4; ?> +
+
+ + + +
+ +
+
+ + <?= htmlspecialchars($sp['title']) ?> + + + +
+

+

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

Featured Products

+

Our most popular coffee selections

+
+ +
+ +
+

Products coming soon! Check back later.

+ Add Products +
+ + +
+ + <?= htmlspecialchars($product['name']) ?> + + Sale + + +
+ +
+ +

+ +

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

Our Story

+ + +

+ + +

+ +

+ + + Explore Our Coffee +
+
+ Coffee brewing +
+
+
+
+ + + + + + + + diff --git a/sites/tomsjavajive.com/public_html/login.php b/sites/tomsjavajive.com/public_html/login.php new file mode 100644 index 0000000..db664d4 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/login.php @@ -0,0 +1,94 @@ + + +
+
+
+
+

Welcome Back

+ + +
+ + +
+ + +
+
+ + +
+ +
+ + +
+ +
+ + Forgot password? +
+ + +
+ +
+ +

+ Don't have an account? Create one +

+ +

+ Or track your order with your order number +

+
+
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/logout.php b/sites/tomsjavajive.com/public_html/logout.php new file mode 100644 index 0000000..23933be --- /dev/null +++ b/sites/tomsjavajive.com/public_html/logout.php @@ -0,0 +1,10 @@ +fetchAll( + "SELECT p.*, pt.name AS type_name + FROM products p + LEFT JOIN product_types pt ON p.product_type_id = pt.type_id + WHERE p.is_active = 1 + ORDER BY p.name, p.category" +); + +echo '' . "\n"; +echo '' . "\n"; +echo '' . "\n"; +echo ' Tom\'s Java Jive' . "\n"; +echo ' ' . $base . '' . "\n"; +echo ' Premium artisan flavored coffee beans, freshly roasted and delivered to your door.' . "\n"; + +foreach ($products as $p) { + $images = json_decode($p['images'] ?? '[]', true); + $imageUrl = !empty($images) ? $base . $images[0] : $base . '/assets/images/placeholder-product.svg'; + + $categoryLabel = $p['category'] === 'Bean' ? 'Whole Bean' : 'Ground'; + $grindNote = $p['category'] === 'Bean' + ? 'Available as whole bean so you can grind fresh for maximum flavor.' + : 'Pre-ground to a versatile medium grind, ready to brew right out of the bag.'; + $title = htmlspecialchars($p['name']); + $rawDesc = $p['description'] ?? ''; + if (!empty($rawDesc)) { + $desc = htmlspecialchars( + strip_tags($rawDesc) . ' ' . $grindNote . ' 12 oz bag. Ships from Weatherford, TX.' + ); + } else { + $desc = htmlspecialchars( + "Tom's Java Jive {$p['name']} flavored artisan coffee, freshly roasted in small batches in Weatherford, Texas. " . + "All-natural flavoring with no artificial additives. {$grindNote} " . + "12 oz bag. Free shipping on orders over \$50." + ); + } + $link = htmlspecialchars($base . '/product.php?id=' . $p['product_id']); + $imageLink = htmlspecialchars($imageUrl); + $price = number_format((float)($p['sale_price'] ?? $p['price']), 2, '.', ''); + $salePrice = $p['sale_price'] ? number_format((float)$p['sale_price'], 2, '.', '') : null; + $avail = (int)$p['stock'] > 0 ? 'in stock' : 'out of stock'; + $id = htmlspecialchars($p['product_id']); + $updatedAt = substr($p['updated_at'] ?? date('Y-m-d'), 0, 10); + + // Google product category for flavored coffee + // https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt + // 2273 = Food, Beverages & Tobacco > Beverages > Coffee + $gCategory = 'Food, Beverages & Tobacco > Beverages > Coffee'; + + echo " \n"; + echo " {$id}\n"; + echo " {$title}\n"; + echo " {$desc}\n"; + echo " {$link}\n"; + echo " {$imageLink}\n"; + echo " new\n"; + echo " {$avail}\n"; + echo " {$price} USD\n"; + if ($salePrice) { + echo " {$salePrice} USD\n"; + } + echo " Tom's Java Jive\n"; + echo " {$gCategory}\n"; + echo " Coffee > Flavored Coffee > {$categoryLabel}\n"; + echo " false\n"; + echo " {$categoryLabel}\n"; + echo " \n"; + echo " US\n"; + echo " Standard\n"; + echo " 5.99 USD\n"; + echo " 1\n"; + echo " 2\n"; + echo " 3\n"; + echo " 7\n"; + echo " \n"; + echo " default\n"; + echo " \n"; +} + +echo '' . "\n"; +echo ''; diff --git a/sites/tomsjavajive.com/public_html/offline.html b/sites/tomsjavajive.com/public_html/offline.html new file mode 100644 index 0000000..08184fc --- /dev/null +++ b/sites/tomsjavajive.com/public_html/offline.html @@ -0,0 +1,119 @@ + + + + + + Offline - Tom's Java Jive + + + +
+
+ + + + +
+ +

You're Offline

+

It looks like you've lost your internet connection. Please check your connection and try again.

+ + + +
+

Some pages you've visited before may still be available offline.

+
+
+ + + + diff --git a/sites/tomsjavajive.com/public_html/order-confirmation.php b/sites/tomsjavajive.com/public_html/order-confirmation.php new file mode 100644 index 0000000..36c1ac6 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/order-confirmation.php @@ -0,0 +1,135 @@ +fetch( + "SELECT * FROM orders WHERE order_id = :id", + ['id' => $orderId] +); + +if (!$order) { + redirect('/'); +} + +// Clear cart and pending order +clearCart(); +unset($_SESSION['pending_order_id']); + +$items = json_decode($order['items'], true) ?? []; +$shippingAddress = json_decode($order['shipping_address'], true) ?? []; + +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+
+
+
+ +
+ +

Thank You!

+

+ Your order has been placed successfully. +

+ +
+
+ Order Number + +
+ +
+ Status + + + +
+ +
+ Total + +
+
+ +
+

Order Details

+ + +
+ + + x + + +
+ + +
+ Subtotal + +
+ +
+ Shipping + 0 ? formatCurrency($order['shipping_cost']) : 'FREE' ?> +
+ + 0): ?> +
+ Wallet / Gift Card + - +
+ + +
+ Total + +
+
+ +
+

Shipping Address

+

+
+
+ , + + +

+
+ +

+ A confirmation email has been sent to . + You will receive tracking information once your order ships. +

+ + +
+
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/payment.php b/sites/tomsjavajive.com/public_html/payment.php new file mode 100644 index 0000000..981fe54 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/payment.php @@ -0,0 +1,461 @@ +fetch( + "SELECT * FROM orders WHERE order_id = :id", + ['id' => $orderId] +); + +if (!$order) { + redirect('/cart.php'); +} + +if ($order['payment_status'] === 'paid') { + clearCart(); + redirect('/order-confirmation.php?order=' . $orderId); +} + +$total = $order['total']; + +if ($processor === 'square') { + $squareConfigured = isSquareConfigured(); +} else { + $stripePublishableKey = STRIPE_PUBLISHABLE_KEY; + $stripeConfigured = isStripeConfigured(); +} + +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+
+
+

Complete Payment

+
+
+ +
+ Payment was cancelled. Please try again. +
+ + +
+
+ Order # + +
+

+ +

+
+ + + +
+ Demo Mode: Square is not configured. Click below to simulate a successful payment. +
+
+ +
+ +
+ + +
+ +
+
+ +
+
+
+ + +
+ + + + + +
+ Demo Mode: Stripe is not configured. Click below to simulate a successful payment. +
+
+ +
+ +
+ +

or enter card details below

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

+ Your payment is secure and encrypted +

+
+
+
+
+ + + + + + + + diff --git a/sites/tomsjavajive.com/public_html/privacy.php b/sites/tomsjavajive.com/public_html/privacy.php new file mode 100644 index 0000000..73975f9 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/privacy.php @@ -0,0 +1,193 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Privacy Policy', 'url' => 'https://tomsjavajive.com/privacy.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+ +
+

Privacy Policy

+

Last updated:

+
+ + +
+

Consent

+

By using our website, you hereby consent to our Privacy Policy and agree to its terms.

+
+ + +
+
+

At Tom's Java Jive, accessible from tomsjavajive.com, one of our main priorities is the privacy of our visitors and customers. This Privacy Policy document describes the types of information that is collected and recorded by Tom's Java Jive and how we use it.

+

If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us.

+
+
+ + '📋', + 'title' => 'Personal Information We Collect', + 'body' => ' +

When you place an order or create an account on our website, we collect certain personal information including your name, email address, shipping address, phone number, and payment information. We also collect information about visitors to our site using the following technologies:

+
    +
  • Cookies — data files placed on your device that often include an anonymous unique identifier. For more information about cookies and how to disable them, visit allaboutcookies.org.
  • +
  • Log files — track actions on the site and collect data including your IP address, browser type, internet service provider, referring/exit pages, and date/time stamps.
  • +
  • Web beacons, tags, and pixels — electronic files used to record information about how you browse our site.
  • +
+ ' + ], + [ + 'icon' => '🔍', + 'title' => 'How We Use Your Personal Information', + 'body' => ' +

We use the personal information we collect to:

+
    +
  • Process and fulfill your orders
  • +
  • Communicate with you about your order, account, or inquiries
  • +
  • Send you updates, promotions, and information about our products (you may opt out at any time)
  • +
  • Improve and optimize our website and customer experience
  • +
  • Comply with applicable laws and regulations
  • +
+ ' + ], + [ + 'icon' => '🤝', + 'title' => 'Sharing Your Personal Information', + 'body' => ' +

We may share your personal information with trusted third parties strictly to fulfill your order, including:

+
    +
  • Payment processors (Stripe) to securely handle transactions
  • +
  • Shipping carriers to deliver your order
  • +
  • Email service providers to send order confirmations and updates
  • +
+

We may also share your information to comply with applicable laws and regulations, to respond to a subpoena, search warrant, or other lawful request for information, or to otherwise protect our rights.

+ ' + ], + [ + 'icon' => '📢', + 'title' => 'Behavioural Advertising', + 'body' => ' +

We may use your personal information to provide you with targeted advertisements or marketing communications we believe may be of interest to you. For more information about how targeted advertising works, visit the Network Advertising Initiative.

+

You can opt out of targeted advertising at aboutads.info/choices or through the Digital Advertising Alliance opt-out portal.

+ ' + ], + [ + 'icon' => '🍪', + 'title' => 'Cookies and Web Beacons', + 'body' => ' +

Tom\'s Java Jive uses cookies to store information including your preferences and the pages you visited on our website. This information is used to optimize your experience by customizing our content based on your browser type and other information.

+

You can choose to disable cookies through your browser settings. For more information about managing cookies in your specific browser, please refer to your browser\'s documentation.

+ ' + ], + [ + 'icon' => '📁', + 'title' => 'Log Files', + 'body' => ' +

Tom\'s Java Jive follows standard practice of using log files. These files log visitors when they visit our website. The information collected includes:

+
    +
  • Internet protocol (IP) addresses
  • +
  • Browser type and Internet Service Provider (ISP)
  • +
  • Date and time stamps
  • +
  • Referring and exit pages
  • +
+

This information is not linked to any personally identifiable data and is used for analyzing trends, administering the site, and gathering demographic information.

+ ' + ], + [ + 'icon' => '🇪🇺', + 'title' => 'General Data Protection Regulation (GDPR)', + 'body' => ' +

Tom\'s Java Jive is a Data Controller of your personal information. Our legal basis for collecting and using your personal information includes:

+
    +
  • Performing a contract with you (e.g. fulfilling your order)
  • +
  • Your consent to do so
  • +
  • Pursuing our legitimate business interests
  • +
  • Compliance with the law
  • +
+

If you are a resident of the European Economic Area (EEA), you have the following data protection rights:

+
    +
  • The right to access, update, or delete the information we hold about you
  • +
  • The right of rectification
  • +
  • The right to object to processing
  • +
  • The right to restriction of processing
  • +
  • The right to data portability
  • +
  • The right to withdraw consent
  • +
+

To exercise any of these rights, please contact us. Please note that your information may be transferred outside of Europe, including to the United States.

+ ' + ], + [ + 'icon' => '🔒', + 'title' => 'Data Retention', + 'body' => ' +

When you place an order through our site, we will maintain your order information for our records unless and until you ask us to delete it. We will retain and use your information to the extent necessary to comply with our legal obligations, resolve disputes, and enforce our policies.

+ ' + ], + [ + 'icon' => '🔗', + 'title' => 'Third-Party Privacy Policies', + 'body' => ' +

Tom\'s Java Jive\'s Privacy Policy does not apply to other advertisers or third-party websites. We advise you to consult the respective privacy policies of any third-party services for more detailed information about their practices.

+

Third-party services we use may utilize technologies such as cookies, JavaScript, or web beacons in their advertisements or service delivery. Tom\'s Java Jive has no access to or control over cookies used by third-party providers.

+ ' + ], + [ + 'icon' => '🌐', + 'title' => 'Online Privacy Policy Only', + 'body' => ' +

This Privacy Policy applies only to our online activities and is valid for visitors to our website with regard to information shared and/or collected through tomsjavajive.com. This policy does not apply to any information collected offline or via channels other than this website.

+ ' + ], + [ + 'icon' => '👶', + 'title' => "Children's Information", + 'body' => ' +

Protecting children\'s privacy online is important to us. We encourage parents and guardians to observe, participate in, and monitor their children\'s online activity.

+

Tom\'s Java Jive does not knowingly collect any personally identifiable information from children under the age of 13. If you believe your child has provided such information on our website, please contact us immediately and we will promptly remove that information from our records.

+ ' + ], + [ + 'icon' => '🔄', + 'title' => 'Changes to This Policy', + 'body' => ' +

We may update this Privacy Policy from time to time to reflect changes to our practices or for operational, legal, or regulatory reasons. When we do, we will update the date at the top of this page. We encourage you to review this policy periodically.

+ ' + ], + ]; + + foreach ($sections as $s): ?> +
+
+
+
+

+
+ +
+
+ + + +
+
+
✉️
+

Contact Us

+

For more information about our privacy practices, if you have questions, or if you would like to make a complaint, please reach out:

+

Tom's Java Jive

+

Weatherford, TX 76088

+

sales@tomsjavajive.com

+
+
+ +
+
+ + diff --git a/sites/tomsjavajive.com/public_html/product.php b/sites/tomsjavajive.com/public_html/product.php new file mode 100644 index 0000000..5f3b72f --- /dev/null +++ b/sites/tomsjavajive.com/public_html/product.php @@ -0,0 +1,317 @@ +'; +require_once __DIR__ . '/includes/functions.php'; + +$productId = $_GET['id'] ?? ''; + +if (!$productId) { + header('Location: /shop.php'); + exit; +} + +// Get product +$product = db()->fetch( + "SELECT * FROM products WHERE product_id = :id AND is_active = 1", + ['id' => $productId] +); + +if (!$product) { + header('Location: /shop.php'); + exit; +} + +// Get product reviews +$reviews = db()->fetchAll( + "SELECT * FROM reviews WHERE product_id = :id AND is_approved = 1 ORDER BY created_at DESC LIMIT 10", + ['id' => $productId] +); + +$avgRating = 0; +$reviewCount = count($reviews); +if ($reviewCount > 0) { + $avgRating = array_sum(array_column($reviews, 'rating')) / $reviewCount; +} + +// Get related products +$relatedProducts = db()->fetchAll( + "SELECT * FROM products WHERE category = :category AND product_id != :id AND is_active = 1 LIMIT 4", + ['category' => $product['category'], 'id' => $productId] +); + +$images = json_decode($product['images'] ?? '[]', true); +$mainImage = !empty($images) ? $images[0] : '/assets/images/placeholder-product.svg'; +$salePrice = $product['sale_price']; +$price = $product['price']; +$inStock = $product['stock'] > 0; +$displayPrice = $salePrice ?? $price; + +// SEO meta +$categoryLabel = ucfirst($product['category'] ?? 'Coffee'); +$metaTitle = $product['name'] . ' ' . $categoryLabel . " Coffee | Tom's Java Jive"; +$metaDescription = truncate(strip_tags($product['description'] ?? ''), 155) + ?: $product['name'] . ' flavored artisan coffee beans freshly roasted in Weatherford, TX. Available in whole bean and ground. Ships nationwide.'; +$metaKeywords = strtolower($product['name']) . ' coffee, ' . strtolower($categoryLabel) . ' coffee, flavored coffee beans, artisan coffee, buy coffee online'; +$canonicalUrl = 'https://tomsjavajive.com/product.php?id=' . $productId; +$ogType = 'product'; +$ogImage = (strpos($mainImage, 'http') === 0) ? $mainImage : 'https://tomsjavajive.com' . $mainImage; + +// Structured data — Product schema +$productSchemaData = [ + '@context' => 'https://schema.org', + '@type' => 'Product', + 'name' => $product['name'] . ' ' . $categoryLabel . ' Coffee', + 'url' => $canonicalUrl, + 'image' => $ogImage, + 'description' => $metaDescription, + 'brand' => ['@type' => 'Brand', 'name' => "Tom's Java Jive"], + 'offers' => [ + '@type' => 'Offer', + 'priceCurrency' => 'USD', + 'price' => number_format((float) $displayPrice, 2, '.', ''), + 'priceValidUntil' => date('Y-12-31', strtotime('+1 year')), + 'availability' => $inStock ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock', + 'url' => $canonicalUrl, + 'seller' => ['@type' => 'Organization', 'name' => "Tom's Java Jive"], + 'shippingDetails' => [ + '@type' => 'OfferShippingDetails', + 'shippingRate' => ['@type' => 'MonetaryAmount', 'value' => '5.99', 'currency' => 'USD'], + 'shippingDestination'=> ['@type' => 'DefinedRegion', 'addressCountry' => 'US'], + 'deliveryTime' => [ + '@type' => 'ShippingDeliveryTime', + 'handlingTime' => ['@type' => 'QuantitativeValue', 'minValue' => 1, 'maxValue' => 2, 'unitCode' => 'DAY'], + 'transitTime' => ['@type' => 'QuantitativeValue', 'minValue' => 3, 'maxValue' => 7, 'unitCode' => 'DAY'], + ], + ], + 'hasMerchantReturnPolicy' => [ + '@type' => 'MerchantReturnPolicy', + 'applicableCountry' => 'US', + 'returnPolicyCategory' => 'https://schema.org/MerchantReturnFiniteReturnWindow', + 'merchantReturnDays' => 30, + 'returnMethod' => 'https://schema.org/ReturnByMail', + 'returnFees' => 'https://schema.org/FreeReturn', + 'returnPolicyLink' => 'https://tomsjavajive.com/returns.php', + ], + ], +]; +if ($reviewCount > 0) { + $productSchemaData['aggregateRating'] = [ + '@type' => 'AggregateRating', + 'ratingValue' => round($avgRating, 1), + 'reviewCount' => $reviewCount, + 'bestRating' => 5, + 'worstRating' => 1, + ]; +} +$productSchema = json_encode($productSchemaData, JSON_UNESCAPED_SLASHES); + +// Breadcrumbs +$breadcrumbs = [ + ['name' => 'Home', 'url' => 'https://tomsjavajive.com/'], + ['name' => 'Shop', 'url' => 'https://tomsjavajive.com/shop.php'], + ['name' => $product['name'], 'url' => $canonicalUrl], +]; + +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+
+ + +
+
+ <?= htmlspecialchars($product['name']) ?> +
+ + 1): ?> +
+ $img): ?> + Product image <?= $index + 1 ?> + +
+ +
+ + +
+ +

+ + + +

+ + +

+ + + 0): ?> +
+
+ + + +
+ ( reviews) +
+ + + +
+ + + + + Save % + + + + +
+ + +

+ + In Stock + + - Only left! + + + Out of Stock + +

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

Description

+
+ +
+
+ + +
+

Product Details

+ + + + + + + + + + + + + + + + + +
SKU
Weight oz
Category
+
+
+
+ + +
+

Customer Reviews

+ + +
+ +
+
+
+
+ + + + Verified Purchase + + +
+ +
+
+ + + +
+ +

+ +

+
+
+ +
+ +

No reviews yet. Be the first to review this product!

+ +
+ + + +
+

Related Products

+ +
+ +
+
+ + diff --git a/sites/tomsjavajive.com/public_html/register.php b/sites/tomsjavajive.com/public_html/register.php new file mode 100644 index 0000000..c399ceb --- /dev/null +++ b/sites/tomsjavajive.com/public_html/register.php @@ -0,0 +1,131 @@ +fetch("SELECT id FROM email_subscribers WHERE email = :email", ['email' => strtolower($email)]); + if (!$existing) { + db()->insert('email_subscribers', [ + 'email' => strtolower($email), + 'name' => $name, + 'source' => 'registration' + ]); + } + } + + setFlash('success', 'Welcome! Your account has been created.'); + redirect('/account/'); + } + } +} + +$metaTitle = "Create Account | Tom's Java Jive"; +$metaDescription = 'Create an account to earn rewards, track orders, and get exclusive deals.'; +$metaKeywords = 'coffee loyalty rewards, coffee subscription account'; +$canonicalUrl = 'https://tomsjavajive.com/register.php'; +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+
+
+

Create Your Account

+ + +
+ + +
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + + Minimum 8 characters +
+ +
+ + +
+ +
+ +
+ + +
+ +
+ +

+ Already have an account? Sign in +

+
+
+
+
+ + diff --git a/sites/tomsjavajive.com/public_html/returns.php b/sites/tomsjavajive.com/public_html/returns.php new file mode 100644 index 0000000..0f18aec --- /dev/null +++ b/sites/tomsjavajive.com/public_html/returns.php @@ -0,0 +1,99 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Returns', 'url' => 'https://tomsjavajive.com/returns.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+ +
+

Returns & Refunds

+

Simple, transparent, and always focused on making things right.

+
+ + +
+
+

At Tom's Java Jive, your satisfaction is our priority. We accept returns and exchanges within 30 days of delivery for any reason — whether the product is defective or you simply changed your mind.

+
+
+
📦
+
30-Day Window
+
Returns & exchanges accepted within 30 days of delivery
+
+
+
🏷️
+
Free Return Label
+
We email you a prepaid label — just download, print, and drop off
+
+
+
💳
+
No Restocking Fees
+
You get back exactly what you paid — no deductions
+
+
+
+
+ + +
+
+
+
+

What We Accept

+
+
    +
  • Defective products — damaged, stale, or incorrect items sent by us
  • +
  • Non-defective products — changed your mind, ordered the wrong flavor or grind
  • +
  • Exchanges — swap for a different product of equal or lesser value
  • +
  • All items must be in their original, unopened packaging (except in cases of defect)
  • +
  • Applies to orders shipped within the United States
  • +
+
+
+ + +
+
+
+
📬
+

How to Return or Exchange

+
+
    +
  1. Email sales@tomsjavajive.com with your order number and reason for the return or exchange.
  2. +
  3. If the item arrived damaged or defective, include a photo — it helps us resolve things faster.
  4. +
  5. We'll respond within 1 business day with a free prepaid return label — download and print it at home.
  6. +
  7. Pack the item securely and drop it off at any compatible carrier location.
  8. +
  9. Once we receive your return, your refund will be processed within 5 business days to your original payment method.
  10. +
+
+
+ + +
+
+
+
💰
+

Refund Details

+
+
    +
  • Refunds are issued to your original payment method
  • +
  • Processed within 5 business days of receiving your return
  • +
  • No restocking fees — you receive the full amount paid
  • +
  • Return shipping is free — we provide a prepaid label
  • +
  • For exchanges, replacement orders ship within 1–2 business days of receiving your return
  • +
+
+
+ +

Have a question about your order? Contact us and we'll take care of you.

+ +
+
+ + diff --git a/sites/tomsjavajive.com/public_html/robots.txt b/sites/tomsjavajive.com/public_html/robots.txt new file mode 100644 index 0000000..7e99f8c --- /dev/null +++ b/sites/tomsjavajive.com/public_html/robots.txt @@ -0,0 +1,11 @@ +User-agent: * +Allow: / +Disallow: /admin/ +Disallow: /account/ +Disallow: /api/ +Disallow: /cart.php +Disallow: /checkout.php +Disallow: /payment.php +Disallow: /config/ +Disallow: /install/ +Sitemap: https://tomsjavajive.com/sitemap.php diff --git a/sites/tomsjavajive.com/public_html/shipping.php b/sites/tomsjavajive.com/public_html/shipping.php new file mode 100644 index 0000000..131e5ad --- /dev/null +++ b/sites/tomsjavajive.com/public_html/shipping.php @@ -0,0 +1,111 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Shipping Info', 'url' => 'https://tomsjavajive.com/shipping.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+ +
+

Shipping Information

+

Fresh-roasted coffee delivered right to your door.

+
+ + +
+
🚚
+

Free Shipping on Orders Over $50

+

Applies to all domestic orders shipped within the contiguous United States.

+
+ + +
+
+

Shipping Rates

+ + + + + + + + + + + + + + + + + + + + + + + + + +
MethodDelivery TimeRate
Standard Shipping3–5 business days after processing$5.99 (Free over $50)
Expedited Shipping2–3 business days after processing$12.99
Overnight ShippingNext business day after processing$24.99
+
+
+ + +
+
+

Processing Time

+

Every order at Tom's Java Jive is made fresh to ship. Because we roast to order, please allow 1–2 business days for your coffee to be roasted, packaged, and handed off to the carrier. Delivery time is in addition to this processing time.

+

Orders placed before 12:00 PM CST Monday–Friday typically begin processing the same day.

+
+
+ + +
+
+

What to Expect

+
+ '☕', 'title' => 'Order Placed', 'desc' => 'You\'ll receive an order confirmation email immediately.'], + ['icon' => '🔥', 'title' => 'Roasted Fresh', 'desc' => 'Your beans are roasted to order within 1–2 business days.'], + ['icon' => '📦', 'title' => 'Packed & Shipped', 'desc' => 'Your order is carefully packaged and picked up by the carrier. You\'ll receive a tracking number by email.'], + ['icon' => '🚪', 'title' => 'Delivered', 'desc' => 'Fresh coffee arrives at your door, ready to brew.'], + ]; + foreach ($steps as $i => $step): ?> +
+
+
+
+
+
+
+ +
+
+
+ + +
+
+

Additional Notes

+
    +
  • We currently ship within the contiguous United States only. Hawaii, Alaska, and international shipping are not available at this time.
  • +
  • Shipping times may be delayed during holidays or peak seasons.
  • +
  • We are not responsible for delays caused by the carrier once the package has been handed off.
  • +
  • If your package is lost or damaged in transit, please contact us and we will make it right.
  • +
+
+
+ +

Questions about your shipment? Track your order or contact us.

+ +
+
+ + diff --git a/sites/tomsjavajive.com/public_html/shop.php b/sites/tomsjavajive.com/public_html/shop.php new file mode 100644 index 0000000..b0d3c0d --- /dev/null +++ b/sites/tomsjavajive.com/public_html/shop.php @@ -0,0 +1,210 @@ +'; +require_once __DIR__ . '/includes/functions.php'; + +// Get filters +$category = $_GET['category'] ?? ''; +$subcat = $_GET['subcat'] ?? ''; +$search = $_GET['search'] ?? ''; +$sort = $_GET['sort'] ?? 'newest'; +$page = max(1, intval($_GET['page'] ?? 1)); + +// Build query +$where = ['is_active = 1']; +$params = []; + +if ($category) { + $where[] = 'category = :category'; + $params['category'] = $category; +} + +if ($subcat) { + $where[] = 'product_type_id = :subcat'; + $params['subcat'] = $subcat; +} + +if ($search) { + $where[] = '(name LIKE :search OR description LIKE :search)'; + $params['search'] = '%' . $search . '%'; +} + +$whereClause = implode(' AND ', $where); +// Prefix columns that are ambiguous in the JOIN query +$joinWhereClause = str_replace( + ['is_active = 1', 'category =', 'product_type_id =', '(name LIKE', 'description LIKE'], + ['p.is_active = 1', 'p.category =', 'p.product_type_id =', '(p.name LIKE', 'p.description LIKE'], + $whereClause +); + +// Sort +$orderBy = match($sort) { + 'price_low' => 'COALESCE(p.sale_price, p.price) ASC', + 'price_high' => 'COALESCE(p.sale_price, p.price) DESC', + 'name' => 'p.name ASC', + default => 'p.created_at DESC' +}; + +// Get total count +$totalProducts = db()->count('products', $whereClause, $params); +$pagination = paginate($totalProducts, $page, 12); + +// Get products +$products = db()->fetchAll( + "SELECT p.*, pt.name AS type_name, pt.type_id AS type_slug FROM products p LEFT JOIN product_types pt ON p.product_type_id = pt.type_id WHERE {$joinWhereClause} ORDER BY {$orderBy} LIMIT :limit OFFSET :offset", + array_merge($params, ['limit' => $pagination['per_page'], 'offset' => $pagination['offset']]) +); + +// Get categories for filter +$categories = db()->fetchAll( + "SELECT DISTINCT category FROM products WHERE category IS NOT NULL AND category != '' AND is_active = 1 ORDER BY category" +); + +$metaTitle = "Shop Premium Coffee Beans | Tom's Java Jive"; +$metaDescription = 'Browse our selection of premium artisan coffee beans. Single origin, blends, light, medium and dark roasts. Free shipping over $50.'; +$metaKeywords = 'buy coffee beans online, artisan coffee, single origin, blends, light roast, dark roast'; +$canonicalUrl = 'https://tomsjavajive.com/shop.php'; +require_once __DIR__ . '/includes/header.php'; +$productTypesList = db()->fetchAll("SELECT type_id, name, slug FROM product_types WHERE is_active=1 ORDER BY sort_order ASC"); + +?> + + $category, 'subcat' => $subcat])); +$filterQs = $filterQs ? '&' . $filterQs : ''; +?> + + +
+
+
+

Our Coffee Collection

+
+
+ + + + +
+ +
+
+ + +
+ Category: + All + + + + + + + + + Type: + All + + + + + + +
+
+
+ +
+
+ + + +

+ Showing of products + + +

+ + + +
+ +

No products found

+

Try adjusting your search or filters

+ View All Products +
+ +
+ +
+ + <?= htmlspecialchars($product['name']) ?> + + Sale + + Featured + + +
+ +
+ + + + +
+ +

+ +

+
+ + + + +
+ +
+
+ +
+ + + 1): ?> + $category, 'sort' => $sort]))) ?> + + +
+
+ + diff --git a/sites/tomsjavajive.com/public_html/sitemap.php b/sites/tomsjavajive.com/public_html/sitemap.php new file mode 100644 index 0000000..98d7802 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/sitemap.php @@ -0,0 +1,42 @@ +fetchAll( + "SELECT product_id, updated_at FROM products WHERE is_active = 1 ORDER BY created_at DESC" +); + +echo '' . "\n"; +echo '' . "\n"; + +// Static pages +$staticPages = [ + ['loc' => '/', 'priority' => '1.0', 'changefreq' => 'weekly'], + ['loc' => '/shop.php', 'priority' => '0.9', 'changefreq' => 'daily'], + ['loc' => '/about.php', 'priority' => '0.6', 'changefreq' => 'monthly'], + ['loc' => '/contact.php', 'priority' => '0.5', 'changefreq' => 'monthly'], + ['loc' => '/login.php', 'priority' => '0.3', 'changefreq' => 'monthly'], + ['loc' => '/register.php','priority' => '0.3', 'changefreq' => 'monthly'], +]; + +foreach ($staticPages as $p) { + $loc = htmlspecialchars($base . $p['loc']); + echo " {$loc}{$now}{$p['changefreq']}{$p['priority']}\n"; +} + +// Product pages +foreach ($products as $product) { + $loc = htmlspecialchars($base . '/product.php?id=' . $product['product_id']); + $lastmod = substr($product['updated_at'] ?? $now, 0, 10); + echo " {$loc}{$lastmod}weekly0.8\n"; +} + +echo ''; diff --git a/sites/tomsjavajive.com/public_html/sitemap.xml b/sites/tomsjavajive.com/public_html/sitemap.xml new file mode 100644 index 0000000..7a7b66c --- /dev/null +++ b/sites/tomsjavajive.com/public_html/sitemap.xml @@ -0,0 +1,6 @@ + + + https://tomsjavajive.com/2026-05-19weekly1.0 + https://tomsjavajive.com/shop.php2026-05-19daily0.9 + https://tomsjavajive.com/register.php2026-05-19monthly0.4 + \ No newline at end of file diff --git a/sites/tomsjavajive.com/public_html/sw.js b/sites/tomsjavajive.com/public_html/sw.js new file mode 100644 index 0000000..f89efcf --- /dev/null +++ b/sites/tomsjavajive.com/public_html/sw.js @@ -0,0 +1,9 @@ +// Unregister this service worker and clear all caches +self.addEventListener('install', () => self.skipWaiting()); +self.addEventListener('activate', (event) => { + event.waitUntil( + caches.keys() + .then(keys => Promise.all(keys.map(key => caches.delete(key)))) + .then(() => self.registration.unregister()) + ); +}); diff --git a/sites/tomsjavajive.com/public_html/track-order.php b/sites/tomsjavajive.com/public_html/track-order.php new file mode 100644 index 0000000..d387092 --- /dev/null +++ b/sites/tomsjavajive.com/public_html/track-order.php @@ -0,0 +1,249 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Track Order', 'url' => 'https://tomsjavajive.com/track-order.php'] +]; +require_once __DIR__ . '/includes/header.php'; +require_once __DIR__ . '/includes/auth.php'; + +$order = null; +$error = null; +$searched = false; + +// Pre-fill from query string (e.g. from order confirmation email link) +$prefillOrder = $_GET['order'] ?? ''; +$prefillEmail = $_GET['email'] ?? ''; + +if ($_SERVER['REQUEST_METHOD'] === 'POST' || ($prefillOrder && $prefillEmail)) { + $searched = true; + $orderNum = trim($_POST['order_number'] ?? $prefillOrder); + $email = strtolower(trim($_POST['email'] ?? $prefillEmail)); + + if (empty($orderNum) || empty($email)) { + $error = 'Please enter both your order number and email address.'; + } else { + $order = db()->fetch( + "SELECT * FROM orders WHERE (order_number = :num OR order_id = :id) AND LOWER(customer_email) = :email", + ['num' => $orderNum, 'id' => $orderNum, 'email' => $email] + ); + if (!$order) { + $error = 'No order found with that order number and email. Please double-check and try again.'; + } + } +} + +// If logged in, also show their recent orders +$recentOrders = []; +if (CustomerAuth::isLoggedIn()) { + $user = CustomerAuth::getUser(); + $recentOrders = db()->fetchAll( + "SELECT * FROM orders WHERE customer_id = :cid ORDER BY created_at DESC LIMIT 5", + ['cid' => $user['customer_id']] + ); +} + +$statusSteps = ['pending','confirmed','processing','shipped','delivered']; +$statusLabels = [ + 'pending' => 'Order Received', + 'confirmed' => 'Confirmed', + 'processing' => 'Roasting & Packing', + 'shipped' => 'Shipped', + 'delivered' => 'Delivered', +]; +$statusIcons = [ + 'pending' => '📋', + 'confirmed' => '✅', + 'processing' => '☕', + 'shipped' => '🚚', + 'delivered' => '🏠', +]; +?> + +
+
+ +
+

Track Your Order

+

Enter your order number and email to see your order status.

+
+ + +
+
+
+
+
+ + +
+
+ + +
+
+ +
+
+
+ + +
+ +
+ + + + +
+
+ +
+
+
Order Number
+
+
+
+
Placed
+
+
+
+ + +
+
+
Order Cancelled
+
If you have questions, please contact us.
+
+ + +
+
+ +
+ +
+ + $step): ?> + +
+
+ +
+
+ +
+
+ +
+
+ + + + +
+
+
Tracking Number
+
+
+ + + Track Shipment → + + +
+ +
+ 🔔 A tracking number will be emailed to you once your order ships. +
+ + + +
+
Items Ordered
+
+ +
+ × + $ +
+ +
+ Total + $ +
+
+
+ + + +
+ Shipping to: + , + , + , + + +
+ +
+
+ + + + +
+
+

Your Recent Orders

+
+ +
+
+
+
· $
+
+
+ + + +
+ + + +
+
+
+ +
+
+
+ + + +

+ Can't find your order? Contact us and we'll look it up for you. +

+ + +
+
+ + diff --git a/sites/tomtomgames.com/public_html/.gitignore b/sites/tomtomgames.com/public_html/.gitignore new file mode 100644 index 0000000..c90ad4e --- /dev/null +++ b/sites/tomtomgames.com/public_html/.gitignore @@ -0,0 +1,5 @@ +*.log +.DS_Store +*.swp + +uploads/ diff --git a/sites/tomtomgames.com/public_html/.htaccess b/sites/tomtomgames.com/public_html/.htaccess new file mode 100644 index 0000000..ac8b99d --- /dev/null +++ b/sites/tomtomgames.com/public_html/.htaccess @@ -0,0 +1,124 @@ +# ══════════════════════════════════════════════════════════ +# TomTomGames Security Configuration +# ══════════════════════════════════════════════════════════ + +Options -Indexes -Includes +ServerSignature Off + +# ── Block all sensitive file types ─────────────────────── + + Order allow,deny + Deny from all + + +# ── Block direct access to sensitive PHP files ─────────── + + Order allow,deny + Deny from all + + +# ── Block access to includes and vendor folders ────────── + + RewriteEngine On + RewriteRule ^includes/ - [F,L] + RewriteRule ^vendor/ - [F,L] + RewriteRule ^mail_queue/ - [F,L] + RewriteRule ^\.git/ - [F,L] + + # Block sensitive file extensions anywhere in the tree — the + # /Order,Deny block above is not honored by this + # OpenLiteSpeed vhost (confirmed: db/schema.sql was still + # served 200 despite that rule), so enforce via RewriteRule, + # the mechanism proven to work here (.git/, vendor/ etc. above). + RewriteRule \.(sql|env|log|sh|bak|backup|old|orig|tmp|swp|cfg|ini|conf|yaml|yml)$ - [F,L] + + +# ── Block common attack vectors ────────────────────────── + + RewriteEngine On + + # Block SQL injection attempts in query strings + RewriteCond %{QUERY_STRING} (union|select|insert|drop|delete|update|cast|exec|declare|char|convert|truncate).*= [NC,OR] + RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] + RewriteCond %{QUERY_STRING} \.\./\.\. [NC,OR] + RewriteCond %{QUERY_STRING} (javascript|vbscript|expression|applet|meta|xml|blink|link|iframe|input|embed|script|object|marquee) [NC] + RewriteRule .* - [F,L] + + # Block base64 encoded attacks + RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR] + RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [NC] + RewriteRule .* - [F,L] + + # Block common exploit scanners and bad bots + RewriteCond %{HTTP_USER_AGENT} (nikto|sqlmap|havij|nessus|masscan|zgrab|python-requests/2\.6|libwww-perl|wget|curl\/7\.[0-4]) [NC] + RewriteRule .* - [F,L] + + +# ── Block access to WordPress paths (scanners look for these) ── + + RewriteRule ^wp-admin - [F,L] + RewriteRule ^wp-login - [F,L] + RewriteRule ^xmlrpc - [F,L] + RewriteRule ^\.env - [F,L] + RewriteRule ^composer\. - [F,L] + + +# ── Security Headers ────────────────────────────────────── + + # Prevent MIME type sniffing + Header always set X-Content-Type-Options "nosniff" + + # Prevent clickjacking + Header always set X-Frame-Options "DENY" + + # XSS protection + Header always set X-XSS-Protection "1; mode=block" + + # Referrer policy + Header always set Referrer-Policy "strict-origin-when-cross-origin" + + # Permissions policy — disable dangerous browser features + Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=()" + + # Content Security Policy + Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://web.squarecdn.com https://sandbox.web.squarecdn.com https://js.squareup.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com; img-src 'self' data: blob: https:; connect-src 'self' https: wss:; frame-src 'none'; object-src 'none'" + + # Strict Transport Security — force HTTPS for 1 year + Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" + + # Remove server info headers + Header unset Server + Header unset X-Powered-By + + +# ── Canonical HTTPS + non-www redirect ─────────────────── + + RewriteEngine On + RewriteCond %{HTTPS} off + RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] + RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] + RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L] + + +# ── Block PHP execution in uploads folder (if it exists) ─ + + RewriteRule ^uploads/.*\.php$ - [F,L] + + +# ── Gzip compression ────────────────────────────────────── + + AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/json image/svg+xml + + +# ── Browser caching ─────────────────────────────────────── + + ExpiresActive On + ExpiresByType text/html "access plus 1 hour" + ExpiresByType text/css "access plus 1 month" + ExpiresByType application/javascript "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType image/jpeg "access plus 1 month" + ExpiresByType image/webp "access plus 1 month" + ExpiresByType application/json "access plus 1 day" + diff --git a/sites/tomtomgames.com/public_html/admin/index.php b/sites/tomtomgames.com/public_html/admin/index.php new file mode 100644 index 0000000..763a588 --- /dev/null +++ b/sites/tomtomgames.com/public_html/admin/index.php @@ -0,0 +1,3904 @@ + + + + + + + + + + +TomTomGames Admin + + + + + +
+ + + +
+ + +
+
📊 Dashboard
+ + +
+
Total Users
+
Total Revenue
+
Tokens Sold
+
Pending Purchases
+
Pending Cashouts
+
+
+
⚡ Pending Purchase Approvals
+
+
+
+
⚡ Pending Cashout Requests
+
+
+ + +
+
+ 🕹️ Platform Credit Overview + +
+
+
+
+ + +
+
🧾 Token Purchases
+
+ + + + +
+
+
+ + +
+
💸 Cashout Requests
+
+ + + + +
+
+
+ + + +
+ +
+
🎮 Gamer Management
+
+
+ + +
+
+ + + + +
+
+
+
+
+ + + +
+ + +
+
💳 Payment Settings
+
+ Enable or disable each payment method. Disabled methods are hidden from players instantly. Card payments run through Square — your Square account must be active for card to work. +
+
+
+ + + +
+
🎁 Referral Management
+
+ + + + + +
+
+ + +
+ +
+
🔑 Platform Account Requests
+
+ + + +
+
+
+ + +
+
📢 Broadcast Messages
+ + +
+
✉️ Send Broadcast
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+ + +
+
+
Sent Broadcasts
+ +
+
+
+ + + +
+ + +
+
💰 Payout Settings
+
+ Configure how you send cashout payments to players. Square Gift Card sends instantly. Manual methods show the player handle so you send from the app and mark done. +
+
+
+ + +
+
💸 Cashout Methods
+
+ 💸 Manage the payout method types available to players when they cash out. Active methods appear in the player's payout method dropdown. +
+ + +
+
➕ Add Cashout Method
+
+ +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
Active & Inactive Methods
+
Loading...
+
+
+
+
+ + +
+
+
🕹️ Game Management
+ + + +
+ + +
+
➕ Add New Game
+
+ +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+ + + + + + + +
+
+
💳 Credit Accounting — Admin Only
+
+
+
+
Available Credits
+
+
+ +
+
+ +
+
+ +
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
Active & Inactive Games
+
Loading...
+
+
+
+ + + +
+
+
🗄️ Archived Games
+ +
+
Loading...
+
+ +
+ + +
+
📋 Full Audit Log 90-day rolling · 20 per page
+ + +
+ + + + + + + +
+ + +
+ + +
+ + +
+
+ + +
+
💾 Backup System
+ +
+
+
🕐 Automated Schedule
+
Daily at 2:00 AM · 7 rolling backups · Files + full database export
+
+
+ + +
+
+ +
+ +
+
+
Available Backups (last 7 days)
+
+
+
Loading...
+
+
+ + +
+
⏳ Pending Signups
+
+ ⏳ Players who registered but haven't verified their email yet. Approve to create their account immediately, or Delete to remove the request. +
+
+
+ + +
+
Live Chat + + ● Auto-refreshing every 5s + +
+ + +
+ + +
+
✉️ Send Message to Player
+ +
+ + +
+ + + + +
+
Ctrl+Enter to send · Player will see it in their Support chat
+ +
+
+
+ + +
+ 📨 Messages from players appear below. Click any conversation to open it and reply. + +
+
+
+
+
+ + + +
+ + + + + + + +
+ + +
+ TomTomGames Admin v1.0.0 +
+ + diff --git a/sites/tomtomgames.com/public_html/admin/login.php b/sites/tomtomgames.com/public_html/admin/login.php new file mode 100644 index 0000000..55faefa --- /dev/null +++ b/sites/tomtomgames.com/public_html/admin/login.php @@ -0,0 +1,54 @@ + + + + + + + +TomTomGames Admin Login + + + + +
+ +
ADMIN ACCESS
+
+
+
+
+ +
+
+ + diff --git a/sites/tomtomgames.com/public_html/api/admin.php b/sites/tomtomgames.com/public_html/api/admin.php new file mode 100644 index 0000000..424d1de --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/admin.php @@ -0,0 +1,1121 @@ + true, 'stats' => [ + 'total_users' => db()->query("SELECT COUNT(*) FROM users")->fetchColumn(), + 'active_users' => db()->query("SELECT COUNT(*) FROM users WHERE status='active'")->fetchColumn(), + 'pending_purchases' => db()->query("SELECT COUNT(*) FROM token_purchases WHERE status='pending'")->fetchColumn(), + 'pending_cashouts' => db()->query("SELECT COUNT(*) FROM cashout_requests WHERE status='pending'")->fetchColumn(), + 'pending_signups' => db()->query("SELECT COUNT(*) FROM pending_registrations WHERE expires_at > NOW() AND username != '__reset__'")->fetchColumn(), + 'total_tokens_sold' => db()->query("SELECT COALESCE(SUM(tokens),0) FROM token_purchases WHERE status='completed'")->fetchColumn(), + 'total_revenue' => db()->query("SELECT COALESCE(SUM(amount_cents),0)/100 FROM token_purchases WHERE status='completed'")->fetchColumn(), + ]]); + break; + + // ─── PENDING SIGNUPS ────────────────────────────────────── + case 'pending_signups': + $rows = db()->query("SELECT id,username,alias,email,expires_at,created_at FROM pending_registrations WHERE expires_at > NOW() AND username != '__reset__' ORDER BY created_at DESC")->fetchAll(); + echo json_encode(['success'=>true,'pending'=>$rows]); + break; + + case 'delete_pending': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $id = (int)($data['id'] ?? 0); + db()->prepare("DELETE FROM pending_registrations WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + case 'approve_pending': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $id = (int)($data['id'] ?? 0); + // Fetch the pending record + $stmt = db()->prepare("SELECT * FROM pending_registrations WHERE id=?"); + $stmt->execute([$id]); + $pending = $stmt->fetch(); + if (!$pending) { echo json_encode(['success'=>false,'error'=>'Pending signup not found']); exit; } + // Check username/email not already taken + $chkUser = db()->prepare("SELECT id FROM users WHERE username=?"); + $chkUser->execute([$pending['username']]); + if ($chkUser->fetch()) { echo json_encode(['success'=>false,'error'=>'Username already taken']); exit; } + if (!empty($pending['email'])) { + $chkEmail = db()->prepare("SELECT id FROM users WHERE email=?"); + $chkEmail->execute([$pending['email']]); + if ($chkEmail->fetch()) { echo json_encode(['success'=>false,'error'=>'Email already registered']); exit; } + } + // Create the user account — bypass email verification + db()->beginTransaction(); + try { + db()->prepare("INSERT INTO users (username,password,alias,email,email_verified,tokens,is_admin,status) + VALUES (?,?,?,?,1,0,0,'active')") + ->execute([$pending['username'],$pending['password'],$pending['alias'],$pending['email']]); + db()->prepare("DELETE FROM pending_registrations WHERE id=?")->execute([$id]); + db()->commit(); + logActivity('account_approved', (int)db()->lastInsertId(), (int)$_SESSION['user_id'], 'user', 0, 'Account approved for '.$pending['username']); + echo json_encode(['success'=>true,'username'=>$pending['username']]); + } catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'Could not create account']); + } + break; + + // ─── PLATFORM STATS ────────────────────────────────────── + case 'platform_stats': + $rows = db()->query(" + SELECT p.id, p.name, p.slug, p.color, + COALESCE(SUM(CASE WHEN pc.type='debit' THEN -pc.credits_purchased ELSE pc.credits_purchased END),0) AS credits_balance, + (SELECT COALESCE(SUM(tp.amount_cents),0)/100 FROM token_purchases tp WHERE tp.platform_id=p.slug AND tp.status='completed') AS purchases_total, + (SELECT COALESCE(SUM(cr.tokens),0) FROM cashout_requests cr WHERE cr.platform_id=p.slug AND cr.status IN ('sent','approved')) AS cashouts_total + FROM platforms p + LEFT JOIN platform_credits pc ON pc.platform_id=p.id + WHERE p.is_deleted=0 AND p.is_active=1 + GROUP BY p.id, p.name, p.slug, p.color + ORDER BY p.sort_order, p.id + ")->fetchAll(); + echo json_encode(['success'=>true,'platforms'=>$rows]); + break; + + // ─── PURCHASES ──────────────────────────────────────────── + case 'purchases': + $status = $_GET['status'] ?? 'pending'; + if ($status === 'all') { + $stmt = db()->query("SELECT tp.*, u.username, u.alias FROM token_purchases tp JOIN users u ON tp.user_id=u.id ORDER BY tp.created_at DESC LIMIT 200"); + } else { + $stmt = db()->prepare("SELECT tp.*, u.username, u.alias FROM token_purchases tp JOIN users u ON tp.user_id=u.id WHERE tp.status=? ORDER BY tp.created_at DESC LIMIT 200"); + $stmt->execute([$status]); + } + echo json_encode(['success' => true, 'purchases' => $stmt->fetchAll()]); + break; + + // ─── RESOLVE PURCHASE (approve manual / reject) ────────── + case 'resolve_purchase': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $id = (int)($data['id'] ?? 0); + $status = $data['status'] ?? ''; + $note = trim($data['note'] ?? ''); + + if (!in_array($status, ['completed','failed'])) { + echo json_encode(['success'=>false,'error'=>'Invalid status']); exit; + } + + // Fetch purchase + $row = db()->prepare("SELECT * FROM token_purchases WHERE id=? AND status='pending'"); + $row->execute([$id]); + $purchase = $row->fetch(); + + if (!$purchase) { + echo json_encode(['success'=>false,'error'=>'Purchase not found or already resolved']); exit; + } + + db()->beginTransaction(); + try { + if ($status === 'completed') { + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$purchase['tokens'], $purchase['user_id']]); + } + db()->prepare("UPDATE token_purchases SET status=?,admin_note=? WHERE id=?")->execute([$status, $note, $id]); + db()->commit(); + } catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'DB error']); exit; + } + + // Insert debit entry into platform_credits when approved + if ($status === 'completed' && !empty($purchase['platform_id'])) { + $platRow = db()->prepare("SELECT id FROM platforms WHERE slug=?"); + $platRow->execute([$purchase['platform_id']]); + $platNumId = (int)$platRow->fetchColumn(); + if ($platNumId) { + $userRow = db()->prepare("SELECT username FROM users WHERE id=?"); + $userRow->execute([$purchase['user_id']]); + $username = $userRow->fetchColumn() ?: 'User#'.$purchase['user_id']; + $amtDollars = number_format($purchase['amount_cents'] / 100, 2); + $playerLabel = trim($purchase['player_name'] ?: $purchase['game_alias'] ?: $username); + $debitNotes = "Purchase #{$id} · {$playerLabel} ({$username}) · {$purchase['tokens']} tokens · \${$amtDollars} via {$purchase['payment_method']}"; + db()->prepare("INSERT INTO platform_credits (platform_id, credits_purchased, credit_date, payment_method, notes, type, purchase_ref_id) VALUES (?,?,CURDATE(),?,?,?,?)") + ->execute([$platNumId, $purchase['tokens'], $purchase['payment_method'], $debitNotes, 'debit', $id]); + } + } + + echo json_encode(['success'=>true]); + break; + + // ─── REFUND PURCHASE (real Square refund) ──────────────── + case 'refund_purchase': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $id = (int)($data['id'] ?? 0); + $reason = trim($data['reason'] ?? ''); + + $row = db()->prepare("SELECT * FROM token_purchases WHERE id=? AND status='completed'"); + $row->execute([$id]); + $purchase = $row->fetch(); + + if (!$purchase) { + echo json_encode(['success'=>false,'error'=>'Purchase not found or not in a refundable state']); exit; + } + if ($purchase['payment_method'] !== 'card' || empty($purchase['square_payment_id'])) { + echo json_encode(['success'=>false,'error'=>'This purchase has no Square payment to refund']); exit; + } + + $amountCents = isset($data['amount']) ? (int) round((float)$data['amount'] * 100) : (int) $purchase['amount_cents']; + if ($amountCents <= 0 || $amountCents > (int) $purchase['amount_cents']) { + echo json_encode(['success'=>false,'error'=>'Invalid refund amount']); exit; + } + + $square = new SquarePayment(); + $result = $square->refund($purchase['square_payment_id'], $amountCents, $reason ?: ('Purchase #' . $id)); + + if (!$result['success']) { + echo json_encode(['success'=>false,'error'=>$result['error']]); exit; + } + + $note = 'Refunded $' . number_format($amountCents / 100, 2) . ' via Square (refund ID: ' . $result['refund_id'] . ')' . ($reason ? ' - ' . $reason : ''); + $existingNote = $purchase['admin_note'] ? $purchase['admin_note'] . " | " . $note : $note; + + db()->beginTransaction(); + try { + db()->prepare("UPDATE token_purchases SET status='refunded', admin_note=?, refund_id=? WHERE id=?") + ->execute([$existingNote, $result['refund_id'], $id]); + + // Claw back the tokens credited on purchase, clamped at 0 + $userRow = db()->prepare("SELECT tokens FROM users WHERE id=?"); + $userRow->execute([$purchase['user_id']]); + $currentTokens = (float) ($userRow->fetchColumn() ?: 0); + $newTokens = max(0, $currentTokens - (float) $purchase['tokens']); + db()->prepare("UPDATE users SET tokens=? WHERE id=?")->execute([$newTokens, $purchase['user_id']]); + + db()->commit(); + } catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'Refund processed on Square but failed to update local records: ' . $e->getMessage()]); exit; + } + + $tokensClawedBack = min((float) $purchase['tokens'], $currentTokens); + $shortfall = (float) $purchase['tokens'] - $tokensClawedBack; + + echo json_encode([ + 'success' => true, + 'refund_id' => $result['refund_id'], + 'tokens_clawed_back' => $tokensClawedBack, + 'token_shortfall' => $shortfall, + ]); + break; + + // ─── CASHOUTS ───────────────────────────────────────────── + case 'cashouts': + $status = $_GET['status'] ?? 'pending'; + $valid = ['pending','sent','approved','rejected','deleted']; + if (!in_array($status, $valid)) $status = 'pending'; + if ($status === 'pending') { + // Show both pending (player editing) and locked (submitted to admin) + $stmt = db()->prepare("SELECT cr.*, u.username, u.alias AS user_alias FROM cashout_requests cr JOIN users u ON cr.user_id=u.id WHERE cr.status IN ('pending','locked') ORDER BY cr.status DESC, cr.created_at DESC"); + $stmt->execute(); + } elseif ($status === 'sent') { + $stmt = db()->prepare("SELECT cr.*, u.username, u.alias AS user_alias FROM cashout_requests cr JOIN users u ON cr.user_id=u.id WHERE cr.status IN ('sent','approved') ORDER BY cr.created_at DESC"); + $stmt->execute(); + } else { + $stmt = db()->prepare("SELECT cr.*, u.username, u.alias AS user_alias FROM cashout_requests cr JOIN users u ON cr.user_id=u.id WHERE cr.status=? ORDER BY cr.created_at DESC"); + $stmt->execute([$status]); + } + echo json_encode(['success'=>true,'cashouts'=>$stmt->fetchAll()]); + break; + + case 'resolve_cashout': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $id = (int)($data['id'] ?? 0); + $status = $data['status'] ?? ''; + $note = trim($data['note'] ?? ''); + // 'approved' is treated as 'sent' (payment sent to player) + if ($status === 'approved') $status = 'sent'; + if (!in_array($status, ['sent','rejected','deleted'])) { echo json_encode(['success'=>false,'error'=>'Invalid status']); exit; } + + $r = db()->prepare("SELECT user_id,tokens FROM cashout_requests WHERE id=? AND status IN ('pending','locked')"); + $r->execute([$id]); + $req = $r->fetch(); + if (!$req) { echo json_encode(['success'=>false,'error'=>'Not found or already resolved']); exit; } + + db()->beginTransaction(); + try { + // Return tokens to player if denied or deleted + if (in_array($status, ['rejected','deleted'])) { + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$req['tokens'],$req['user_id']]); + } + db()->prepare("UPDATE cashout_requests SET status=?,admin_note=?,resolved_at=NOW() WHERE id=?")->execute([$status,$note,$id]); + db()->commit(); + logActivity('cashout_'.$status, $req['user_id'], (int)$_SESSION['user_id'], 'cashout', $id, + 'Cashout '.$status.' by admin. Tokens: '.$req['tokens'].($note?' Note: '.$note:'')); + echo json_encode(['success'=>true,'status'=>$status]); + } catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'DB error']); + } + break; + if (!in_array($status, ['approved','rejected'])) { echo json_encode(['success'=>false,'error'=>'Invalid status']); exit; } + + if ($status === 'rejected') { + $r = db()->prepare("SELECT user_id,tokens FROM cashout_requests WHERE id=? AND status='pending'"); + $r->execute([$id]); + $req = $r->fetch(); + if ($req) db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$req['tokens'],$req['user_id']]); + } + db()->prepare("UPDATE cashout_requests SET status=?,admin_note=?,resolved_at=NOW() WHERE id=?")->execute([$status,$note,$id]); + echo json_encode(['success'=>true]); + break; + + // ─── USERS LIST ─────────────────────────────────────────── + case 'users': + $users = db()->query("SELECT id,username,alias,email,email_verified,tokens,is_admin,status,created_at,last_login FROM users ORDER BY created_at DESC")->fetchAll(); + echo json_encode(['success'=>true,'users'=>$users]); + break; + + // ─── SINGLE USER DETAIL ─────────────────────────────────── + case 'user_detail': + $uid = (int)($_GET['user_id'] ?? 0); + if (!$uid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + $stmt = db()->prepare("SELECT id,username,alias,email,email_verified,tokens,is_admin,status,created_at,last_login FROM users WHERE id=?"); + $stmt->execute([$uid]); + $user = $stmt->fetch(); + if (!$user) { echo json_encode(['success'=>false,'error'=>'User not found']); exit; } + // Rich stats + $s1 = db()->prepare("SELECT COALESCE(SUM(amount_cents),0)/100 FROM token_purchases WHERE user_id=? AND status='completed'"); + $s1->execute([$uid]); + $s2 = db()->prepare("SELECT COUNT(*) FROM token_purchases WHERE user_id=? AND status='completed'"); $s2->execute([$uid]); + $s3 = db()->prepare("SELECT COUNT(*) FROM token_purchases WHERE user_id=? AND status='pending'"); $s3->execute([$uid]); + $s4 = db()->prepare("SELECT COUNT(*) FROM token_purchases WHERE user_id=? AND status='failed'"); $s4->execute([$uid]); + $s5 = db()->prepare("SELECT COUNT(*) FROM cashout_requests WHERE user_id=?"); $s5->execute([$uid]); + $s6 = db()->prepare("SELECT COALESCE(SUM(tokens),0) FROM token_purchases WHERE user_id=? AND status='completed'"); $s6->execute([$uid]); + $stats = [ + 'total_spent' => $s1->fetchColumn(), + 'completed_purchases'=> $s2->fetchColumn(), + 'pending_purchases' => $s3->fetchColumn(), + 'failed_purchases' => $s4->fetchColumn(), + 'total_cashouts' => $s5->fetchColumn(), + 'total_tokens_bought'=> $s6->fetchColumn(), + ]; + echo json_encode(['success'=>true,'user'=>$user,'stats'=>$stats]); + break; + + // ─── USER PURCHASES ─────────────────────────────────────── + case 'user_purchases': + $uid = (int)($_GET['user_id'] ?? 0); + $stmt = db()->prepare("SELECT id,tokens,amount_cents,payment_method,square_payment_id,platform_id,game_alias,player_name,billing_name,billing_address,billing_city,billing_state,billing_zip,billing_email,is_custom,failure_reason,card_brand,card_last4,receipt_url,status,admin_note,created_at FROM token_purchases WHERE user_id=? ORDER BY created_at DESC LIMIT 100"); + $stmt->execute([$uid]); + echo json_encode(['success'=>true,'purchases'=>$stmt->fetchAll()]); + break; + + // ─── USER CASHOUTS ──────────────────────────────────────── + case 'user_cashouts': + $uid = (int)($_GET['user_id'] ?? 0); + $stmt = db()->prepare("SELECT * FROM cashout_requests WHERE user_id=? ORDER BY created_at DESC LIMIT 100"); + $stmt->execute([$uid]); + echo json_encode(['success'=>true,'cashouts'=>$stmt->fetchAll()]); + break; + + // ─── ADJUST TOKENS ──────────────────────────────────────── + case 'adjust_tokens': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + $amount = (float)($data['amount'] ?? 0); + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$amount,$uid]); + $bal = db()->prepare("SELECT tokens FROM users WHERE id=?"); $bal->execute([$uid]); + $newBal = $bal->fetchColumn(); + echo json_encode(['success'=>true,'new_balance'=>$newBal]); + break; + + // ─── SET EXACT TOKEN BALANCE ────────────────────────────── + case 'set_tokens': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + $bal = (float)($data['balance'] ?? 0); + if ($bal < 0) { echo json_encode(['success'=>false,'error'=>'Balance cannot be negative']); exit; } + db()->prepare("UPDATE users SET tokens=? WHERE id=?")->execute([$bal,$uid]); + echo json_encode(['success'=>true,'new_balance'=>$bal]); + break; + + // ─── EDIT USER ──────────────────────────────────────────── + case 'edit_user': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + $username = strtolower(trim($data['username'] ?? '')); + $alias = trim($data['alias'] ?? ''); + $email = strtolower(trim($data['email'] ?? '')); + $password = trim($data['password'] ?? ''); + + if (!$uid || empty($username) || empty($alias)) + { echo json_encode(['success'=>false,'error'=>'Username and alias required']); exit; } + if (!preg_match('/^[a-z0-9_]{3,50}$/', $username)) + { echo json_encode(['success'=>false,'error'=>'Invalid username format']); exit; } + if (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) + { echo json_encode(['success'=>false,'error'=>'Invalid email address']); exit; } + + // Check username not taken by another user + $chk = db()->prepare("SELECT id FROM users WHERE username=? AND id!=?"); + $chk->execute([$username,$uid]); + if ($chk->fetch()) { echo json_encode(['success'=>false,'error'=>'Username already taken']); exit; } + + if (!empty($email)) { + $chk2 = db()->prepare("SELECT id FROM users WHERE email=? AND id!=?"); + $chk2->execute([$email,$uid]); + if ($chk2->fetch()) { echo json_encode(['success'=>false,'error'=>'Email already in use']); exit; } + } + + if (!empty($password)) { + if (strlen($password) < 6) { echo json_encode(['success'=>false,'error'=>'Password must be 6+ characters']); exit; } + $hash = password_hash($password, PASSWORD_BCRYPT); + db()->prepare("UPDATE users SET username=?,alias=?,email=?,password=? WHERE id=?")->execute([$username,$alias,$email,$hash,$uid]); + } else { + db()->prepare("UPDATE users SET username=?,alias=?,email=? WHERE id=?")->execute([$username,$alias,$email,$uid]); + } + echo json_encode(['success'=>true]); + break; + + // ─── TOGGLE ADMIN ROLE ─────────────────────────────────── + case 'toggle_admin': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + // Master admin (ID=1) can NEVER lose admin status + if ($uid === MASTER_ADMIN_ID) { + echo json_encode(['success'=>false,'error'=>'Master admin cannot be modified.']); exit; + } + // Cannot remove your own admin + if ($uid === (int)$_SESSION['user_id']) { + echo json_encode(['success'=>false,'error'=>'You cannot change your own admin status.']); exit; + } + // Only master admin can grant/revoke admin + if ((int)$_SESSION['user_id'] !== MASTER_ADMIN_ID) { + echo json_encode(['success'=>false,'error'=>'Only the master admin can change admin roles.']); exit; + } + $stmt = db()->prepare("SELECT is_admin FROM users WHERE id=?"); + $stmt->execute([$uid]); + $current = $stmt->fetchColumn(); + $new_val = $current ? 0 : 1; + if ($new_val) { + db()->prepare("UPDATE users SET is_admin=1, email_verified=1 WHERE id=?")->execute([$uid]); + } else { + db()->prepare("UPDATE users SET is_admin=0 WHERE id=?")->execute([$uid]); + } + // Force the affected user to re-login by invalidating their sessions + // Store a flag in DB that forces re-auth on next request + db()->prepare("UPDATE users SET last_login=last_login WHERE id=?")->execute([$uid]); + logActivity($new_val?'admin_granted':'admin_revoked', $uid, (int)$_SESSION['user_id'], 'user', $uid, 'Admin status changed to '.($new_val?'admin':'player'), '', 'admin', '', '', 'warning'); + echo json_encode(['success'=>true, 'is_admin'=>$new_val, 'needs_relogin'=>true, 'message'=>$new_val ? 'Admin access granted. User must log out and back in.' : 'Admin access removed. User must log out and back in.']); + break; + + // ─── TOGGLE SUSPEND ─────────────────────────────────────── + case 'toggle_user': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + if ($uid === MASTER_ADMIN_ID) { echo json_encode(['success'=>false,'error'=>'Cannot suspend the master admin.']); exit; } + db()->prepare("UPDATE users SET status=IF(status='active','suspended','active') WHERE id=?")->execute([$uid]); + logAdminAction('USER_STATUS_CHANGE', (int)$_SESSION['user_id'], 'user', $uid, 'Changed user status', '', ($data['status']??''), 'warning'); + echo json_encode(['success'=>true]); + break; + + // ─── DELETE USER ────────────────────────────────────────── + case 'delete_user': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + if (!$uid) { echo json_encode(['success'=>false,'error'=>'Invalid user']); exit; } + // Prevent deleting own account + if ($uid === MASTER_ADMIN_ID) { echo json_encode(['success'=>false,'error'=>'Cannot delete the master admin account.']); exit; } + if ($uid === (int)$_SESSION['user_id']) { echo json_encode(['success'=>false,'error'=>'Cannot delete your own account']); exit; } + db()->beginTransaction(); + try { + db()->prepare("DELETE FROM chat_messages WHERE user_id=?")->execute([$uid]); + db()->prepare("DELETE FROM cashout_requests WHERE user_id=?")->execute([$uid]); + db()->prepare("DELETE FROM token_purchases WHERE user_id=?")->execute([$uid]); + db()->prepare("DELETE FROM users WHERE id=?")->execute([$uid]); + db()->commit(); + echo json_encode(['success'=>true]); + } catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'Delete failed']); + } + break; + + // ─── SEND PASSWORD RESET ────────────────────────────────── + case 'send_password_reset': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + $stmt = db()->prepare("SELECT email,alias FROM users WHERE id=?"); + $stmt->execute([$uid]); + $user = $stmt->fetch(); + if (!$user || empty($user['email'])) { echo json_encode(['success'=>false,'error'=>'No email on file']); exit; } + // Generate reset token — reuse pending_registrations pattern + $token = bin2hex(random_bytes(32)); + $exp = date('Y-m-d H:i:s', time() + 3600); // 1 hour + db()->prepare("INSERT INTO pending_registrations (username,password,alias,email,token,expires_at) VALUES ('__reset__','',?,?,?,?) ON DUPLICATE KEY UPDATE token=VALUES(token),expires_at=VALUES(expires_at)")->execute([$user['alias'],$user['email'],$token,$exp]); + // Simple reset email + $resetUrl = rtrim(SITE_URL,'/') . '/reset_password.php?token=' . urlencode($token); + $subject = SITE_NAME . ' — Password Reset Request'; + $body = "Hi {$user['alias']},\n\nA password reset was requested for your account.\n\nClick here to reset: {$resetUrl}\n\nExpires in 1 hour. If you didn't request this, ignore this email.\n\n— " . SITE_NAME; + $sent = sendPasswordResetEmail($user['email'], $user['alias'], $resetUrl); + echo json_encode($sent ? ['success'=>true] : ['success'=>false,'error'=>'Failed to send reset email. Please try again.']); + break; + + // ─── PLATFORM ACCOUNTS ──────────────────────────────── + case 'platform_accounts_list': + $status = $_GET['status'] ?? 'pending'; + $uid = (int)($_GET['user_id'] ?? 0); + if ($uid) { + $stmt = db()->prepare("SELECT pa.*, COALESCE(p.name,pa.platform_slug) AS platform_name, u.username, u.alias AS user_alias FROM platform_accounts pa LEFT JOIN platforms p ON pa.platform_slug=p.slug JOIN users u ON pa.user_id=u.id WHERE pa.user_id=? ORDER BY pa.requested_at DESC"); + $stmt->execute([$uid]); + } else { + $valid = ['pending','approved','denied','deleted']; + if (!in_array($status,$valid)) $status='pending'; + $stmt = db()->prepare("SELECT pa.*, COALESCE(p.name,pa.platform_slug) AS platform_name, u.username, u.alias AS user_alias FROM platform_accounts pa LEFT JOIN platforms p ON pa.platform_slug=p.slug JOIN users u ON pa.user_id=u.id WHERE pa.status=? ORDER BY pa.requested_at DESC"); + $stmt->execute([$status]); + } + echo json_encode(['success'=>true,'accounts'=>$stmt->fetchAll()]); + break; + + case 'platform_account_resolve': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id=$d['id']??0; $status=$d['status']??''; + $uname=substr(trim($d['platform_username']??''),0,100); + $pass=substr(trim($d['platform_password']??''),0,200); + $note=substr(trim($d['admin_note']??''),0,300); + if (!in_array($status,['approved','denied','deleted'])){echo json_encode(['success'=>false,'error'=>'Invalid status']);exit;} + $chk=db()->prepare("SELECT user_id,platform_slug FROM platform_accounts WHERE id=?");$chk->execute([$id]);$row=$chk->fetch(); + if (!$row){echo json_encode(['success'=>false,'error'=>'Not found']);exit;} + db()->prepare("UPDATE platform_accounts SET status=?,platform_username=?,platform_password=?,admin_note=?,resolved_at=NOW(),admin_id=? WHERE id=?") + ->execute([$status,$uname,$pass,$note,(int)$_SESSION['user_id'],$id]); + if ($status==='approved'&&$uname) { + db()->prepare("INSERT INTO game_aliases (user_id,platform_slug,alias) VALUES (?,?,?) ON DUPLICATE KEY UPDATE alias=VALUES(alias)") + ->execute([$row['user_id'],$row['platform_slug'],$uname]); + } + echo json_encode(['success'=>true]); + break; + + case 'platform_account_update': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d=json_decode(file_get_contents('php://input'),true); + $id=$d['id']??0; + $uname=substr(trim($d['platform_username']??''),0,100); + $pass=substr(trim($d['platform_password']??''),0,200); + $note=substr(trim($d['admin_note']??''),0,300); + $chk=db()->prepare("SELECT user_id,platform_slug FROM platform_accounts WHERE id=?");$chk->execute([$id]);$row=$chk->fetch(); + if (!$row){echo json_encode(['success'=>false,'error'=>'Not found']);exit;} + db()->prepare("UPDATE platform_accounts SET platform_username=?,platform_password=?,admin_note=? WHERE id=?") + ->execute([$uname,$pass,$note,$id]); + if ($uname){ + db()->prepare("INSERT INTO game_aliases (user_id,platform_slug,alias) VALUES (?,?,?) ON DUPLICATE KEY UPDATE alias=VALUES(alias)") + ->execute([$row['user_id'],$row['platform_slug'],$uname]); + } + echo json_encode(['success'=>true]); + break; + + case 'broadcast_list': + try { + $sql = "SELECT b.id, b.subject, b.message, b.target, b.sent_at, + u.username AS sender_name, + (SELECT COUNT(*) FROM broadcast_reads WHERE broadcast_id=b.id) AS read_count, + (SELECT COUNT(*) FROM broadcast_replies WHERE broadcast_id=b.id) AS reply_count, + (SELECT COUNT(*) FROM users WHERE status='active' AND is_admin=0) AS total_players + FROM broadcasts b + JOIN users u ON b.admin_id=u.id + ORDER BY b.sent_at DESC + LIMIT 100"; + $stmt = db()->query($sql); + echo json_encode(['success'=>true,'broadcasts'=>$stmt->fetchAll()]); + } catch(Exception $e) { + echo json_encode(['success'=>false,'error'=>$e->getMessage()]); + } + break; + + case 'broadcast_send': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $subject = substr(trim($d['subject']??''),0,200); + $message = substr(trim($d['message']??''),0,5000); + $target = in_array($d['target']??'',['all','verified','unverified','admins']) ? $d['target'] : 'all'; + if (!$subject||!$message) { echo json_encode(['success'=>false,'error'=>'Subject and message required']); exit; } + db()->prepare("INSERT INTO broadcasts (admin_id,subject,message,target) VALUES (?,?,?,?)") + ->execute([$_SESSION['user_id'],$subject,$message,$target]); + $bid = db()->lastInsertId(); + // Count recipients + $countQ = [ + 'all' => "SELECT COUNT(*) FROM users WHERE status='active' AND is_admin=0", + 'verified' => "SELECT COUNT(*) FROM users WHERE status='active' AND is_admin=0 AND email_verified=1", + 'unverified' => "SELECT COUNT(*) FROM users WHERE status='active' AND is_admin=0 AND email_verified=0", + 'admins' => "SELECT COUNT(*) FROM users WHERE is_admin=1", + ]; + $count = db()->query($countQ[$target])->fetchColumn(); + echo json_encode(['success'=>true,'id'=>$bid,'recipient_count'=>(int)$count]); + break; + + case 'broadcast_delete': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id']??0); + db()->prepare("DELETE FROM broadcasts WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + case 'broadcast_edit': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + $subject = substr(trim($d['subject'] ?? ''), 0, 200); + $message = trim($d['message'] ?? ''); + $target = in_array($d['target']??'', ['all','verified','unverified','admins']) ? $d['target'] : 'all'; + if (!$id || !$subject || !$message) { echo json_encode(['success'=>false,'error'=>'Missing fields']); exit; } + db()->prepare("UPDATE broadcasts SET subject=?, message=?, target=? WHERE id=?")->execute([$subject, $message, $target, $id]); + logAdminAction('BROADCAST_EDITED', $adminId, 'broadcast', $id, 'Edited broadcast #'.$id, '', '', 'info'); + echo json_encode(['success'=>true]); + break; + + case 'broadcast_resend': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'Missing ID']); exit; } + $bc = db()->prepare("SELECT * FROM broadcasts WHERE id=?"); + $bc->execute([$id]); + $orig = $bc->fetch(); + if (!$orig) { echo json_encode(['success'=>false,'error'=>'Broadcast not found']); exit; } + // Count recipients + $target = $orig['target']; + $countSql = "SELECT COUNT(*) FROM users WHERE status='active' AND is_admin=0"; + if ($target === 'verified') $countSql .= " AND email_verified=1"; + if ($target === 'unverified') $countSql .= " AND email_verified=0"; + $recipientCount = (int)db()->query($countSql)->fetchColumn(); + // Delete old reads so everyone sees it again + db()->prepare("DELETE FROM broadcast_reads WHERE broadcast_id=?")->execute([$id]); + // Update sent_at to now + db()->prepare("UPDATE broadcasts SET sent_at=NOW() WHERE id=?")->execute([$id]); + logAdminAction('BROADCAST_RESENT', $adminId, 'broadcast', $id, 'Resent broadcast #'.$id.' to '.$recipientCount.' players', '', '', 'info'); + echo json_encode(['success'=>true,'recipient_count'=>$recipientCount]); + break; + + case 'broadcast_reads': + $bid = (int)($_GET['broadcast_id']??0); + $rows = db()->prepare("SELECT br.read_at, u.username, u.alias FROM broadcast_reads br JOIN users u ON br.user_id=u.id WHERE br.broadcast_id=? ORDER BY br.read_at ASC"); + $rows->execute([$bid]); + echo json_encode(['success'=>true,'reads'=>$rows->fetchAll()]); + break; + + case 'broadcast_replies': + $bid = (int)($_GET['broadcast_id']??0); + $rows = db()->prepare("SELECT br.*, u.username, u.alias, u.is_admin FROM broadcast_replies br JOIN users u ON br.user_id=u.id WHERE br.broadcast_id=? ORDER BY br.created_at ASC"); + $rows->execute([$bid]); + echo json_encode(['success'=>true,'replies'=>$rows->fetchAll()]); + break; + + case 'broadcast_reply': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $bid = (int)($d['broadcast_id']??0); + $msg = substr(trim($d['message']??''),0,1000); + if (!$bid||!$msg) { echo json_encode(['success'=>false,'error'=>'Required fields missing']); exit; } + db()->prepare("INSERT INTO broadcast_replies (broadcast_id,user_id,message) VALUES (?,?,?)") + ->execute([$bid,$_SESSION['user_id'],$msg]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + break; + $rows = db()->query("SELECT * FROM cashout_method_types ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true,'types'=>$rows]); + break; + + case 'cashout_methods_create': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $slug = preg_replace('/[^a-z0-9_]/','',strtolower(trim($d['slug']??''))); + $label= substr(trim($d['label']??''),0,100); + $icon = substr(trim($d['icon']??'💰'),0,10); + $desc = substr(trim($d['description']??''),0,200); + $sort = (int)($d['sort_order']??99); + $active=(int)(bool)($d['is_active']??1); + if (!$slug||!$label){echo json_encode(['success'=>false,'error'=>'Slug and label required']);exit;} + try { + db()->prepare("INSERT INTO cashout_method_types (slug,label,icon,description,is_active,sort_order) VALUES (?,?,?,?,?,?)") + ->execute([$slug,$label,$icon,$desc,$active,$sort]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + } catch(Exception $e){ echo json_encode(['success'=>false,'error'=>'Slug already exists']); } + break; + + case 'cashout_methods_update': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id']??0); + $label= substr(trim($d['label']??''),0,100); + $icon = substr(trim($d['icon']??'💰'),0,10); + $desc = substr(trim($d['description']??''),0,200); + $sort = (int)($d['sort_order']??0); + $active=(int)(bool)($d['is_active']??1); + if (!$id||!$label){echo json_encode(['success'=>false,'error'=>'ID and label required']);exit;} + db()->prepare("UPDATE cashout_method_types SET label=?,icon=?,description=?,is_active=?,sort_order=? WHERE id=?") + ->execute([$label,$icon,$desc,$active,$sort,$id]); + echo json_encode(['success'=>true]); + break; + + case 'cashout_methods_delete': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d=(json_decode(file_get_contents('php://input'),true)); + $id=(int)($d['id']??0); + if (!$id){echo json_encode(['success'=>false,'error'=>'ID required']);exit;} + db()->prepare("DELETE FROM cashout_method_types WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + // ── + case 'platform_account_deny': + if ($_SERVER['REQUEST_METHOD']!=='POST'){echo json_encode(['success'=>false]);exit;} + $d=json_decode(file_get_contents('php://input'),true); + $id=(int)($d['id']??0);$nt=substr(trim($d['admin_note']??''),0,500); + db()->prepare("UPDATE platform_accounts SET status='denied',admin_note=?,admin_id=? WHERE id=?")->execute([$nt,$_SESSION['user_id'],$id]); + echo json_encode(['success'=>true]); + break; + + case 'platform_account_delete': + if ($_SERVER['REQUEST_METHOD']!=='POST'){echo json_encode(['success'=>false]);exit;} + $d=json_decode(file_get_contents('php://input'),true); + $id=(int)($d['id']??0); + db()->prepare("DELETE FROM platform_accounts WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + case 'platform_accounts_user': + $uid=(int)($_GET['user_id']??0); + $stmt=db()->prepare("SELECT pa.*,COALESCE(p.name,pa.platform_name,pa.platform_slug) AS display_name,p.color,p.player_url FROM platform_accounts pa LEFT JOIN platforms p ON pa.platform_slug=p.slug WHERE pa.user_id=? ORDER BY pa.requested_at DESC"); + $stmt->execute([$uid]); + echo json_encode(['success'=>true,'accounts'=>$stmt->fetchAll()]); + break; + case 'activity_log': + case 'activity_log_v2': + $page = max(1, (int)($_GET['page']??1)); + $limit = 20; + $offset = ($page - 1) * $limit; + $category = trim($_GET['category'] ?? ''); + $severity = trim($_GET['severity'] ?? ''); + $search = trim($_GET['search'] ?? ''); + $date = trim($_GET['date'] ?? ''); + + $where = ["al.created_at >= DATE_SUB(NOW(), INTERVAL 90 DAY)"]; + $params = []; + + if ($category) { $where[] = "al.category = ?"; $params[] = $category; } + if ($severity) { $where[] = "al.severity = ?"; $params[] = $severity; } + if ($date) { $where[] = "DATE(al.created_at) = ?"; $params[] = $date; } + if ($search) { + $where[] = "(al.action LIKE ? OR al.detail LIKE ? OR u.username LIKE ? OR u.alias LIKE ? OR al.ip LIKE ?)"; + $s = '%'.$search.'%'; + $params = array_merge($params, [$s,$s,$s,$s,$s]); + } + + $whereStr = implode(' AND ', $where); + $baseQuery = "FROM activity_log al + LEFT JOIN users u ON al.user_id = u.id + LEFT JOIN users a ON al.admin_id = a.id + WHERE $whereStr"; + + $countStmt = db()->prepare("SELECT COUNT(*) $baseQuery"); + $countStmt->execute($params); + $total = (int)$countStmt->fetchColumn(); + + $dataStmt = db()->prepare("SELECT al.*, u.username, u.alias, + a.username AS admin_username + $baseQuery + ORDER BY al.created_at DESC + LIMIT $limit OFFSET $offset"); + $dataStmt->execute($params); + $events = $dataStmt->fetchAll(); + + // Stats for the current filter set + $statsParams = $params; + $statsStmt = db()->prepare("SELECT + SUM(al.severity='critical') AS critical, + SUM(al.severity='warning') AS warning, + COUNT(DISTINCT al.ip) AS unique_ips + $baseQuery"); + $statsStmt->execute($statsParams); + $stats = $statsStmt->fetch(); + + echo json_encode(['success'=>true,'events'=>$events,'total'=>$total,'page'=>$page,'stats'=>$stats]); + break; + + case 'activity_log_csv': + $category = trim($_GET['category'] ?? ''); + $severity = trim($_GET['severity'] ?? ''); + $search = trim($_GET['search'] ?? ''); + $date = trim($_GET['date'] ?? ''); + + $where = ["al.created_at >= DATE_SUB(NOW(), INTERVAL 90 DAY)"]; + $params = []; + if ($category) { $where[] = "al.category = ?"; $params[] = $category; } + if ($severity) { $where[] = "al.severity = ?"; $params[] = $severity; } + if ($date) { $where[] = "DATE(al.created_at) = ?"; $params[] = $date; } + if ($search) { + $where[] = "(al.action LIKE ? OR al.detail LIKE ? OR u.username LIKE ?)"; + $s = '%'.$search.'%'; $params = array_merge($params, [$s,$s,$s]); + } + + $whereStr = implode(' AND ', $where); + $stmt = db()->prepare("SELECT al.*, u.username, u.alias, a.username AS admin_username + FROM activity_log al + LEFT JOIN users u ON al.user_id=u.id + LEFT JOIN users a ON al.admin_id=a.id + WHERE $whereStr ORDER BY al.created_at DESC LIMIT 5000"); + $stmt->execute($params); + $rows = $stmt->fetchAll(); + + header('Content-Type: text/csv'); + header('Content-Disposition: attachment; filename="tomtomgames_audit_' . date('Y-m-d') . '.csv"'); + $out = fopen('php://output', 'w'); + fputcsv($out, ['ID','Timestamp','Category','Severity','Action','Username','Alias','Admin','Detail','Old Value','New Value','IP','User Agent','Page','Session ID']); + foreach ($rows as $r) { + fputcsv($out, [$r['id'],$r['created_at'],$r['category'],$r['severity'],$r['action'], + $r['username']??'',$r['alias']??'',$r['admin_username']??'', + $r['detail']??'',$r['old_value']??'',$r['new_value']??'', + $r['ip']??'',$r['user_agent']??'',$r['page']??'',$r['session_id']??'']); + } + fclose($out); + exit; + break; + + // ─── CASHOUT METHODS: list (admin) ──────────────────── + case 'cashout_methods_list': + $rows = db()->query("SELECT * FROM cashout_method_types ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true,'types'=>$rows]); + break; + + // ─── PAYMENT SETTINGS: list (admin) ─────────────────── + case 'payment_settings_list': + $rows = db()->query("SELECT * FROM payment_settings ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true,'methods'=>$rows]); + break; + + case 'payment_settings_update': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + $label= substr(trim($d['label']??''), 0, 100); + $handle = substr(trim($d['handle']??''), 0, 200); + $inst = substr(trim($d['instructions']??''), 0, 500); + $enabled = (int)(bool)($d['is_enabled'] ?? 1); + $sort = (int)($d['sort_order'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("UPDATE payment_settings SET label=?,handle=?,instructions=?,is_enabled=?,sort_order=? WHERE id=?") + ->execute([$label,$handle,$inst,$enabled,$sort,$id]); + echo json_encode(['success'=>true]); + break; + + + // ─── PAYOUT METHODS: get for user ──────────────────────── + case 'payout_methods_get': + $uid = (int)($_GET['user_id'] ?? 0); + if (!$uid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + $rows = db()->prepare("SELECT * FROM payout_methods WHERE user_id=? ORDER BY is_default DESC, id ASC"); + $rows->execute([$uid]); + echo json_encode(['success'=>true,'methods'=>$rows->fetchAll()]); + break; + + // ─── GAME ALIASES: get ──────────────────────────────── + case 'game_aliases_get': + $uid = (int)($_GET['user_id'] ?? 0); + if (!$uid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + $stmt = db()->prepare("SELECT platform_slug, alias FROM game_aliases WHERE user_id=?"); + $stmt->execute([$uid]); + $rows = $stmt->fetchAll(); + $map = []; + foreach ($rows as $r) $map[$r['platform_slug']] = $r['alias']; + echo json_encode(['success'=>true,'aliases'=>$map]); + break; + + // ─── GAME ALIASES: save all ─────────────────────────── + case 'game_aliases_save_all': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + $aliases = $data['aliases'] ?? []; + if (!$uid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + $stmt = db()->prepare("INSERT INTO game_aliases (user_id,platform_slug,alias) VALUES (?,?,?) + ON DUPLICATE KEY UPDATE alias=VALUES(alias)"); + $del = db()->prepare("DELETE FROM game_aliases WHERE user_id=? AND platform_slug=?"); + foreach ($aliases as $slug => $alias) { + $slug = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($slug))); + $alias = substr(trim($alias), 0, 100); + if (!$slug) continue; + if ($alias === '') $del->execute([$uid, $slug]); + else $stmt->execute([$uid, $slug, $alias]); + } + echo json_encode(['success'=>true]); + break; + + // ─── PLATFORMS: admin list (active + inactive, no archived) ── + case 'platforms_admin': + $rows = db()->query("SELECT * FROM platforms WHERE is_deleted=0 ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true,'platforms'=>$rows]); + break; + + // ─── PLATFORMS: archived list ───────────────────────── + case 'platforms_archived': + $rows = db()->query("SELECT * FROM platforms WHERE is_deleted=1 ORDER BY deleted_at DESC")->fetchAll(); + echo json_encode(['success'=>true,'platforms'=>$rows]); + break; + + // ─── PLATFORMS: restore archived ────────────────────── + case 'platforms_restore': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("UPDATE platforms SET is_deleted=0, deleted_at=NULL, updated_at=NOW() WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + // ─── PLATFORMS: permanent delete (archived only) ────── + case 'platforms_purge': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("DELETE FROM platforms WHERE id=? AND is_deleted=1")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + // ─── PLATFORMS: create ──────────────────────────────── + case 'platforms_create': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + if ((int)($_SESSION['user_id'] ?? 0) !== MASTER_ADMIN_ID) { echo json_encode(['success'=>false,'error'=>'Only master admin can add games']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $isMasterAdmin = true; + $slug = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($d['slug'] ?? ''))); + $name = substr(trim($d['name'] ?? ''), 0, 100); + $purl = substr(trim($d['player_url'] ?? ''), 0, 500); + $color = preg_match('/^#[0-9a-fA-F]{3,8}$/', $d['color']??'') ? $d['color'] : '#f0c040'; + $sort = (int)($d['sort_order'] ?? 99); + $active = (int)(bool)($d['is_active'] ?? 1); + $agent_link = $isMasterAdmin ? substr(trim($d['agent_link'] ?? ''), 0, 500) : ''; + $agent_login = $isMasterAdmin ? substr(trim($d['agent_login'] ?? ''), 0, 200) : ''; + $agent_password = $isMasterAdmin ? substr(trim($d['agent_password'] ?? ''), 0, 200) : ''; + $games_link = $isMasterAdmin ? substr(trim($d['games_link'] ?? ''), 0, 500) : ''; + $agent_guide = $isMasterAdmin ? trim($d['agent_guide'] ?? '') : ''; + $sub_agent_login = $isMasterAdmin ? substr(trim($d['sub_agent_login'] ?? ''), 0, 200) : ''; + $sub_agent_password = $isMasterAdmin ? substr(trim($d['sub_agent_password'] ?? ''), 0, 200) : ''; + $cashier_login = $isMasterAdmin ? substr(trim($d['cashier_login'] ?? ''), 0, 200) : ''; + $cashier_password = $isMasterAdmin ? substr(trim($d['cashier_password'] ?? ''), 0, 200) : ''; + if (!$slug||!$name||!$purl) { echo json_encode(['success'=>false,'error'=>'Slug, name, and player URL required']); exit; } + // Check if slug belongs to an archived platform — reactivate it instead of inserting + $existing = db()->prepare("SELECT id FROM platforms WHERE slug=? AND is_deleted=1 LIMIT 1"); + $existing->execute([$slug]); + $archivedId = $existing->fetchColumn(); + if ($archivedId) { + db()->prepare("UPDATE platforms SET name=?,player_url=?,agent_link=?,agent_login=?,agent_password=?,games_link=?,agent_guide=?,sub_agent_login=?,sub_agent_password=?,cashier_login=?,cashier_password=?,color=?,sort_order=?,is_active=?,is_deleted=0,deleted_at=NULL,updated_at=NOW() WHERE id=?") + ->execute([$name,$purl,$agent_link,$agent_login,$agent_password,$games_link,$agent_guide,$sub_agent_login,$sub_agent_password,$cashier_login,$cashier_password,$color,$sort,$active,$archivedId]); + echo json_encode(['success'=>true,'id'=>$archivedId,'restored'=>true]); + } else { + try { + db()->prepare("INSERT INTO platforms (slug,name,player_url,agent_link,agent_login,agent_password,games_link,agent_guide,sub_agent_login,sub_agent_password,cashier_login,cashier_password,color,sort_order,is_active) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)") + ->execute([$slug,$name,$purl,$agent_link,$agent_login,$agent_password,$games_link,$agent_guide,$sub_agent_login,$sub_agent_password,$cashier_login,$cashier_password,$color,$sort,$active]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + } catch (Exception $e) { echo json_encode(['success'=>false,'error'=>'Slug already in use by an active game']); } + } + break; + + // ─── PLATFORMS: update ──────────────────────────────── + case 'platforms_update': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $isMasterAdmin = (int)($_SESSION['user_id'] ?? 0) === MASTER_ADMIN_ID; + $id = (int)($d['id'] ?? 0); + $name = substr(trim($d['name'] ?? ''), 0, 100); + $purl = substr(trim($d['player_url'] ?? ''), 0, 500); + $color = preg_match('/^#[0-9a-fA-F]{3,8}$/', $d['color']??'') ? $d['color'] : '#f0c040'; + $sort = (int)($d['sort_order'] ?? 99); + $active = (int)(bool)($d['is_active'] ?? 1); + if (!$id||!$name||!$purl) { echo json_encode(['success'=>false,'error'=>'ID, name, and URL required']); exit; } + if ($isMasterAdmin) { + $agent_link = substr(trim($d['agent_link'] ?? ''), 0, 500); + $agent_login = substr(trim($d['agent_login'] ?? ''), 0, 200); + $agent_password = substr(trim($d['agent_password'] ?? ''), 0, 200); + $games_link = substr(trim($d['games_link'] ?? ''), 0, 500); + $agent_guide = trim($d['agent_guide'] ?? ''); + $sub_agent_login = substr(trim($d['sub_agent_login'] ?? ''), 0, 200); + $sub_agent_password = substr(trim($d['sub_agent_password'] ?? ''), 0, 200); + $cashier_login = substr(trim($d['cashier_login'] ?? ''), 0, 200); + $cashier_password = substr(trim($d['cashier_password'] ?? ''), 0, 200); + db()->prepare("UPDATE platforms SET name=?,player_url=?,agent_link=?,agent_login=?,agent_password=?,games_link=?,agent_guide=?,sub_agent_login=?,sub_agent_password=?,cashier_login=?,cashier_password=?,color=?,sort_order=?,is_active=?,updated_at=NOW() WHERE id=?") + ->execute([$name,$purl,$agent_link,$agent_login,$agent_password,$games_link,$agent_guide,$sub_agent_login,$sub_agent_password,$cashier_login,$cashier_password,$color,$sort,$active,$id]); + } else { + db()->prepare("UPDATE platforms SET name=?,player_url=?,color=?,sort_order=?,is_active=?,updated_at=NOW() WHERE id=?") + ->execute([$name,$purl,$color,$sort,$active,$id]); + } + echo json_encode(['success'=>true]); + break; + + // ─── PLATFORMS: soft-delete (archive) ──────────────── + case 'platforms_delete': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + if ((int)($_SESSION['user_id'] ?? 0) !== MASTER_ADMIN_ID) { echo json_encode(['success'=>false,'error'=>'Only master admin can archive games']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("UPDATE platforms SET is_deleted=1, deleted_at=NOW(), updated_at=NOW() WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + case 'billing_get': + $uid = (int)($_GET['user_id'] ?? 0); + if (!$uid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + $stmt = db()->prepare("SELECT * FROM saved_billing WHERE user_id=?"); + $stmt->execute([$uid]); + $row = $stmt->fetch(); + // Admin sees masked card info + if ($row) { + $row['card_display'] = $row['card_brand'] && $row['card_last4'] + ? $row['card_brand'] . ' ····' . $row['card_last4'] : null; + // Don't expose raw sq_card_id + unset($row['sq_card_id']); + } + echo json_encode(['success'=>true,'billing'=>$row ?: null]); + break; + + // ─── BILLING: save/update ──────────────────────────────── + case 'billing_save': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + if (!$uid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + $stmt = db()->prepare(" + INSERT INTO saved_billing (user_id,first_name,last_name,email,address,city,state,zip) + VALUES (?,?,?,?,?,?,?,?) + ON DUPLICATE KEY UPDATE + first_name=VALUES(first_name), last_name=VALUES(last_name), + email=VALUES(email), address=VALUES(address), + city=VALUES(city), state=VALUES(state), zip=VALUES(zip) + "); + $stmt->execute([ + $uid, + substr(trim($data['first_name']??''),0,80), + substr(trim($data['last_name'] ??''),0,80), + substr(strtolower(trim($data['email']??'')),0,150), + substr(trim($data['address'] ??''),0,200), + substr(trim($data['city'] ??''),0,80), + strtoupper(substr(trim($data['state']??''),0,2)), + substr(trim($data['zip'] ??''),0,10), + ]); + echo json_encode(['success'=>true]); + break; + + // ─── BILLING: clear card ───────────────────────────────── + case 'billing_clear_card': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + db()->prepare("UPDATE saved_billing SET card_brand=NULL,card_last4=NULL,card_exp_month=NULL,card_exp_year=NULL,sq_card_id=NULL WHERE user_id=?")->execute([$uid]); + echo json_encode(['success'=>true]); + break; + + // ─── BILLING: clear all ────────────────────────────────── + case 'billing_clear_all': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + db()->prepare("DELETE FROM saved_billing WHERE user_id=?")->execute([$uid]); + echo json_encode(['success'=>true]); + break; + + // ─── RESEND VERIFICATION (from admin) ───────────────────── + case 'resend_verification': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = (int)($data['user_id'] ?? 0); + $stmt = db()->prepare("SELECT email,alias FROM users WHERE id=?"); + $stmt->execute([$uid]); + $user = $stmt->fetch(); + if (!$user) { echo json_encode(['success'=>false,'error'=>'User not found']); exit; } + $result = resendVerification($user['email']); + echo json_encode($result); + break; + + // ─── CHAT: inbox list ────────────────────────────────── + case 'chat_inbox': + $rows = db()->query(" + SELECT u.id AS user_id, u.username, u.alias, + cm.message AS last_message, cm.sender AS last_sender, + cm.created_at AS last_time, + (SELECT COUNT(*) FROM chat_messages + WHERE user_id=u.id AND sender='user' AND is_read=0) AS unread_count + FROM users u + INNER JOIN chat_messages cm ON cm.id=( + SELECT id FROM chat_messages WHERE user_id=u.id ORDER BY id DESC LIMIT 1 + ) + ORDER BY cm.created_at DESC + ")->fetchAll(); + echo json_encode(['success'=>true,'inbox'=>$rows]); + break; + + // ─── CHAT: full thread for one user ─────────────────── + case 'chat_thread': + $tid = (int)($_GET['user_id'] ?? 0); + $since = (int)($_GET['since'] ?? 0); + if (!$tid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + $stmt = db()->prepare("SELECT id,sender,message,is_read,created_at FROM chat_messages WHERE user_id=? AND id>? ORDER BY id ASC LIMIT 300"); + $stmt->execute([$tid, $since]); + // Mark user messages read + db()->prepare("UPDATE chat_messages SET is_read=1 WHERE user_id=? AND sender='user' AND is_read=0")->execute([$tid]); + $uStmt = db()->prepare("SELECT id,username,alias,tokens FROM users WHERE id=?"); + $uStmt->execute([$tid]); + echo json_encode(['success'=>true,'messages'=>$stmt->fetchAll(),'user'=>$uStmt->fetch()]); + break; + + // ─── CHAT: admin reply ──────────────────────────────── + case 'chat_admin_send': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $tid = (int)($data['user_id'] ?? 0); + $msg = trim($data['message'] ?? ''); + if (!$tid || empty($msg)) { echo json_encode(['success'=>false,'error'=>'Invalid']); exit; } + $stmt = db()->prepare("INSERT INTO chat_messages (user_id,sender,message) VALUES (?,'admin',?)"); + $stmt->execute([$tid, $msg]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + break; + + // ─── CHAT: clear single user thread ─────────────────── + case 'chat_clear_thread': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $tid = (int)($data['user_id'] ?? 0); + if (!$tid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + db()->prepare("DELETE FROM chat_messages WHERE user_id=?")->execute([$tid]); + echo json_encode(['success'=>true]); + break; + + // ─── CHAT: clear ALL chats ──────────────────────────── + case 'chat_clear_all': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + try { + db()->exec("DELETE FROM chat_messages"); + logAdminAction('CHAT_CLEAR_ALL', (int)$_SESSION['user_id'], 'chat', 0, 'Cleared all chat messages', '', '', 'warning'); + echo json_encode(['success'=>true]); + } catch (Exception $e) { + echo json_encode(['success'=>false,'error'=>'Failed to clear chat']); + } + break; + case 'chat_unread': + $count = db()->query("SELECT COUNT(*) FROM chat_messages WHERE sender='user' AND is_read=0")->fetchColumn(); + echo json_encode(['success'=>true,'count'=>(int)$count]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/backup.php b/sites/tomtomgames.com/public_html/api/backup.php new file mode 100644 index 0000000..b93abb6 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/backup.php @@ -0,0 +1,109 @@ + [ + 'name' => basename($f), + 'size' => filesize($f), + 'created' => date('Y-m-d H:i:s', filemtime($f)), + ], $files); + echo json_encode(['success'=>true, 'backups'=>$backups]); + break; + + case 'create': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'POST required']); exit; } + set_time_limit(300); + ignore_user_abort(true); + + $date = date('Y-m-d_H-i-s'); + $sqlFile = "/tmp/ttg_db_{$date}.sql"; + $zipFile = "{$backupDir}/ttg_backup_{$date}.zip"; + $siteDir = '/home/tomtomgames.com/public_html'; + + // Export database + $dbCmd = sprintf( + '/usr/bin/mysqldump -u %s -p%s %s > %s 2>/dev/null', + escapeshellarg(DB_USER), escapeshellarg(DB_PASS), + escapeshellarg(DB_NAME), escapeshellarg($sqlFile) + ); + exec($dbCmd, $dbOut, $dbRc); + if ($dbRc !== 0 || !file_exists($sqlFile) || filesize($sqlFile) < 10) { + @unlink($sqlFile); + echo json_encode(['success'=>false,'error'=>'Database export failed']); exit; + } + + // Zip site files + db dump into one archive + $zipCmd = sprintf( + '/usr/bin/zip -r %s %s %s -x "*/backups/*" 2>&1', + escapeshellarg($zipFile), + escapeshellarg($siteDir), + escapeshellarg($sqlFile) + ); + exec($zipCmd, $zipOut, $zipRc); + @unlink($sqlFile); + + if ($zipRc !== 0 || !file_exists($zipFile)) { + @unlink($zipFile); + echo json_encode(['success'=>false,'error'=>'Archive creation failed']); exit; + } + + // Prune — keep only the 7 most recent + $all = glob($backupDir . '/ttg_backup_*.zip') ?: []; + rsort($all); + foreach (array_slice($all, 7) as $old) @unlink($old); + + echo json_encode([ + 'success' => true, + 'name' => basename($zipFile), + 'size' => filesize($zipFile), + 'created' => date('Y-m-d H:i:s'), + ]); + break; + + case 'download': + $name = basename($_GET['file'] ?? ''); + if (!preg_match('/^ttg_backup_[\d_-]+\.zip$/', $name)) { + http_response_code(400); echo 'Invalid filename'; exit; + } + $path = $backupDir . '/' . $name; + if (!file_exists($path)) { http_response_code(404); echo 'Not found'; exit; } + + header('Content-Type: application/zip'); + header('Content-Disposition: attachment; filename="' . $name . '"'); + header('Content-Length: ' . filesize($path)); + header('Cache-Control: no-cache'); + readfile($path); + exit; + + case 'delete': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'POST required']); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $name = basename($data['name'] ?? ''); + if (!preg_match('/^ttg_backup_[\d_-]+\.zip$/', $name)) { + echo json_encode(['success'=>false,'error'=>'Invalid filename']); exit; + } + $path = $backupDir . '/' . $name; + if (file_exists($path)) @unlink($path); + echo json_encode(['success'=>true]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/billing.php b/sites/tomtomgames.com/public_html/api/billing.php new file mode 100644 index 0000000..5e6a8e2 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/billing.php @@ -0,0 +1,91 @@ +false,'error'=>'Not authenticated']); exit; } + +$action = $_GET['action'] ?? ''; +$userId = $_SESSION['user_id']; +$isAdmin = !empty($_SESSION['is_admin']); + +switch ($action) { + + // ── Get saved billing (user sees own; admin passes user_id param) ── + case 'get': + $uid = $isAdmin ? (int)($_GET['user_id'] ?? $userId) : $userId; + $stmt = db()->prepare("SELECT * FROM saved_billing WHERE user_id=?"); + $stmt->execute([$uid]); + $row = $stmt->fetch(); + if ($row && !$isAdmin) { + // Mask card number for non-admin + $row['card_display'] = $row['card_brand'] && $row['card_last4'] + ? $row['card_brand'] . ' ····' . $row['card_last4'] + : null; + unset($row['sq_card_id']); + } + echo json_encode(['success'=>true, 'billing'=>$row ?: null]); + break; + + // ── Save / update billing info ───────────────────────────── + case 'save': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = $isAdmin && isset($data['user_id']) ? (int)$data['user_id'] : $userId; + + $firstName = substr(trim($data['first_name'] ?? ''), 0, 80); + $lastName = substr(trim($data['last_name'] ?? ''), 0, 80); + $email = substr(strtolower(trim($data['email'] ?? '')), 0, 150); + $address = substr(trim($data['address'] ?? ''), 0, 200); + $city = substr(trim($data['city'] ?? ''), 0, 80); + $state = strtoupper(substr(trim($data['state'] ?? ''), 0, 2)); + $zip = substr(trim($data['zip'] ?? ''), 0, 10); + + // Card info — only update if provided + $cardBrand = isset($data['card_brand']) ? substr(trim($data['card_brand']), 0, 30) : null; + $cardLast4 = isset($data['card_last4']) ? substr(trim($data['card_last4']), 0, 4) : null; + $cardExpMonth = isset($data['card_exp_month'])? substr(trim($data['card_exp_month']),0, 2) : null; + $cardExpYear = isset($data['card_exp_year']) ? substr(trim($data['card_exp_year']), 0, 4) : null; + $sqCardId = isset($data['sq_card_id']) ? substr(trim($data['sq_card_id']), 0, 255) : null; + + $stmt = db()->prepare(" + INSERT INTO saved_billing + (user_id, first_name, last_name, email, address, city, state, zip, + card_brand, card_last4, card_exp_month, card_exp_year, sq_card_id) + VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) + ON DUPLICATE KEY UPDATE + first_name=VALUES(first_name), last_name=VALUES(last_name), + email=VALUES(email), address=VALUES(address), city=VALUES(city), + state=VALUES(state), zip=VALUES(zip), + card_brand=COALESCE(VALUES(card_brand), card_brand), + card_last4=COALESCE(VALUES(card_last4), card_last4), + card_exp_month=COALESCE(VALUES(card_exp_month), card_exp_month), + card_exp_year=COALESCE(VALUES(card_exp_year), card_exp_year), + sq_card_id=COALESCE(VALUES(sq_card_id), sq_card_id) + "); + $stmt->execute([$uid,$firstName,$lastName,$email,$address,$city,$state,$zip, + $cardBrand,$cardLast4,$cardExpMonth,$cardExpYear,$sqCardId]); + echo json_encode(['success'=>true]); + break; + + // ── Clear card info only ─────────────────────────────────── + case 'clear_card': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = $isAdmin && isset($data['user_id']) ? (int)$data['user_id'] : $userId; + db()->prepare("UPDATE saved_billing SET card_brand=NULL, card_last4=NULL, card_exp_month=NULL, card_exp_year=NULL, sq_card_id=NULL WHERE user_id=?") + ->execute([$uid]); + echo json_encode(['success'=>true]); + break; + + // ── Clear all billing info ──────────────────────────────── + case 'clear_all': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = $isAdmin && isset($data['user_id']) ? (int)$data['user_id'] : $userId; + db()->prepare("DELETE FROM saved_billing WHERE user_id=?")->execute([$uid]); + echo json_encode(['success'=>true]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/broadcast.php b/sites/tomtomgames.com/public_html/api/broadcast.php new file mode 100644 index 0000000..09654e4 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/broadcast.php @@ -0,0 +1,89 @@ +false,'error'=>'Server error']); exit; } +ob_end_clean(); +header('Content-Type: application/json'); + +if (!isLoggedIn()) { echo json_encode(['success'=>false,'error'=>'Not authenticated']); exit; } + +$action = $_GET['action'] ?? 'list'; +$userId = (int)$_SESSION['user_id']; +$isAdmin = !empty($_SESSION['is_admin']); + +switch ($action) { + + // ── List broadcasts for this user ───────────────────── + case 'list': + // Get broadcasts targeting this user + $stmt = db()->prepare(" + SELECT b.*, + u.username AS sender_name, + u.alias AS sender_alias, + (SELECT COUNT(*) FROM broadcast_replies WHERE broadcast_id=b.id) AS reply_count, + (SELECT COUNT(*) FROM broadcast_reads WHERE broadcast_id=b.id AND user_id=?) AS is_read, + (SELECT COUNT(*) FROM broadcast_reads WHERE broadcast_id=b.id) AS read_count + FROM broadcasts b + JOIN users u ON b.admin_id = u.id + WHERE b.target = 'all' + OR (b.target = 'verified' AND EXISTS(SELECT 1 FROM users WHERE id=? AND email_verified=1 AND is_admin=0)) + OR (b.target = 'unverified' AND EXISTS(SELECT 1 FROM users WHERE id=? AND email_verified=0)) + OR (b.target = 'admins' AND ?) + ORDER BY b.sent_at DESC + "); + $stmt->execute([$userId, $userId, $userId, $isAdmin ? 1 : 0]); + echo json_encode(['success'=>true, 'broadcasts'=>$stmt->fetchAll()]); + break; + + // ── Mark as read ────────────────────────────────────── + case 'mark_read': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $bid= (int)($d['broadcast_id'] ?? 0); + if (!$bid) { echo json_encode(['success'=>false]); exit; } + db()->prepare("INSERT IGNORE INTO broadcast_reads (broadcast_id,user_id) VALUES (?,?)")->execute([$bid,$userId]); + echo json_encode(['success'=>true]); + break; + + // ── Get replies for a broadcast ─────────────────────── + case 'replies': + $bid = (int)($_GET['broadcast_id'] ?? 0); + if (!$bid) { echo json_encode(['success'=>false]); exit; } + $stmt = db()->prepare(" + SELECT br.*, u.username, u.alias, u.is_admin + FROM broadcast_replies br + JOIN users u ON br.user_id = u.id + WHERE br.broadcast_id = ? + ORDER BY br.created_at ASC + "); + $stmt->execute([$bid]); + echo json_encode(['success'=>true,'replies'=>$stmt->fetchAll()]); + break; + + // ── Post a reply ────────────────────────────────────── + case 'reply': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $bid = (int)($d['broadcast_id'] ?? 0); + $msg = substr(trim($d['message'] ?? ''), 0, 1000); + if (!$bid || !$msg) { echo json_encode(['success'=>false,'error'=>'broadcast_id and message required']); exit; } + db()->prepare("INSERT INTO broadcast_replies (broadcast_id,user_id,message) VALUES (?,?,?)")->execute([$bid,$userId,$msg]); + db()->prepare("INSERT IGNORE INTO broadcast_reads (broadcast_id,user_id) VALUES (?,?)")->execute([$bid,$userId]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + break; + + // ── Unread count ────────────────────────────────────── + case 'unread_count': + $stmt = db()->prepare(" + SELECT COUNT(*) FROM broadcasts b + WHERE (b.target='all' OR (b.target='verified' AND EXISTS(SELECT 1 FROM users WHERE id=? AND email_verified=1 AND is_admin=0)) + OR (b.target='unverified' AND EXISTS(SELECT 1 FROM users WHERE id=? AND email_verified=0)) + OR (b.target='admins' AND ?)) + AND NOT EXISTS (SELECT 1 FROM broadcast_reads WHERE broadcast_id=b.id AND user_id=?) + "); + $stmt->execute([$userId,$userId,$isAdmin?1:0,$userId]); + echo json_encode(['success'=>true,'count'=>(int)$stmt->fetchColumn()]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/cashout.php b/sites/tomtomgames.com/public_html/api/cashout.php new file mode 100644 index 0000000..ab571d1 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/cashout.php @@ -0,0 +1,158 @@ +false,'error'=>'Not authenticated']); exit; } + +$userId = (int)$_SESSION['user_id']; +$method = $_SERVER['REQUEST_METHOD']; + +// ══════════════════════════════════════════════════════════ +// GET — player's own requests (list, delete, update, lock) +// ══════════════════════════════════════════════════════════ +if ($method === 'GET') { + $action = $_GET['action'] ?? 'list'; + + if ($action === 'list') { + $stmt = db()->prepare(" + SELECT cr.*, + COALESCE(p.name, cr.platform_id) AS platform_name + FROM cashout_requests cr + LEFT JOIN platforms p ON cr.platform_id = p.slug + WHERE cr.user_id = ? + ORDER BY cr.created_at DESC + LIMIT 50 + "); + $stmt->execute([$userId]); + echo json_encode(['success'=>true, 'requests'=>$stmt->fetchAll()]); + exit; + } + + if ($action === 'delete') { + $id = (int)($_GET['id'] ?? 0); + $chk = db()->prepare("SELECT id,tokens FROM cashout_requests WHERE id=? AND user_id=? AND status='pending'"); + $chk->execute([$id, $userId]); + $row = $chk->fetch(); + if (!$row) { echo json_encode(['success'=>false,'error'=>'Request not found or already locked']); exit; } + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$row['tokens'], $userId]); + db()->prepare("DELETE FROM cashout_requests WHERE id=?")->execute([$id]); + $nb = db()->prepare("SELECT tokens FROM users WHERE id=?"); + $nb->execute([$userId]); + echo json_encode(['success'=>true,'new_balance'=>(float)$nb->fetchColumn()]); + exit; + } + + if ($action === 'update') { + $id = (int)($_GET['id'] ?? 0); + $tokens = (float)($_GET['tokens'] ?? 0); + $alias = substr(trim($_GET['alias'] ?? ''), 0, 100); + $chk = db()->prepare("SELECT id,tokens AS old_tokens FROM cashout_requests WHERE id=? AND user_id=? AND status='pending'"); + $chk->execute([$id, $userId]); + $row = $chk->fetch(); + if (!$row) { echo json_encode(['success'=>false,'error'=>'Request not found or already locked']); exit; } + if ($tokens < 1) { echo json_encode(['success'=>false,'error'=>'Minimum 1 token']); exit; } + $diff = $tokens - $row['old_tokens']; + if ($diff > 0) { + $balChk = db()->prepare("SELECT tokens FROM users WHERE id=?"); + $balChk->execute([$userId]); + if ($diff > (float)$balChk->fetchColumn()) { echo json_encode(['success'=>false,'error'=>'Insufficient balance']); exit; } + } + db()->beginTransaction(); + db()->prepare("UPDATE users SET tokens=tokens-? WHERE id=?")->execute([$diff, $userId]); + db()->prepare("UPDATE cashout_requests SET tokens=?,alias=? WHERE id=?")->execute([$tokens, $alias, $id]); + db()->commit(); + echo json_encode(['success'=>true]); + exit; + } + + if ($action === 'lock') { + $id = (int)($_GET['id'] ?? 0); + $chk = db()->prepare("SELECT id FROM cashout_requests WHERE id=? AND user_id=? AND status='pending'"); + $chk->execute([$id, $userId]); + if (!$chk->fetch()) { echo json_encode(['success'=>false,'error'=>'Request not found']); exit; } + try { + db()->exec("ALTER TABLE cashout_requests MODIFY COLUMN status ENUM('pending','locked','sent','approved','rejected','deleted') DEFAULT 'pending'"); + } catch (Exception $e) {} + db()->prepare("UPDATE cashout_requests SET status='locked' WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + exit; + } + + echo json_encode(['success'=>false,'error'=>'Unknown action']); + exit; +} + +// ══════════════════════════════════════════════════════════ +// POST — submit new cashout request +// ══════════════════════════════════════════════════════════ +if ($method !== 'POST') { echo json_encode(['success'=>false,'error'=>'Method not allowed']); exit; } + +$data = json_decode(file_get_contents('php://input'), true); +$platformId = trim($data['platform_id'] ?? ''); +$alias = trim($data['alias'] ?? ''); +$tokens = (float)($data['tokens'] ?? 0); +$payoutMethodId = (int)($data['payout_method_id'] ?? 0); +$payoutMethodType = trim($data['payout_method_type'] ?? ''); +$payoutHandle = trim($data['payout_handle'] ?? ''); + +// Validate platform +$platStmt = db()->prepare("SELECT slug FROM platforms WHERE slug=? AND is_active=1 LIMIT 1"); +$platStmt->execute([$platformId]); +if (!$platStmt->fetch()) { + $platforms = json_decode(PLATFORMS, true); + if (empty(array_filter($platforms, fn($p) => $p['id'] === $platformId))) { + echo json_encode(['success'=>false,'error'=>'Invalid platform.']); exit; + } +} + +if (empty($alias)) { echo json_encode(['success'=>false,'error'=>'Platform alias required.']); exit; } +if ($tokens < 1) { echo json_encode(['success'=>false,'error'=>'Minimum cashout is 1 token.']); exit; } + +// Validate payout method +if ($payoutMethodId) { + $chk = db()->prepare("SELECT method_type,account_handle FROM payout_methods WHERE id=? AND user_id=?"); + $chk->execute([$payoutMethodId, $userId]); + if ($pm = $chk->fetch()) { + $payoutMethodType = $pm['method_type']; + $payoutHandle = $pm['account_handle']; + } +} + +// Reject if the payout method type is not currently admin-enabled +if ($payoutMethodType) { + $enaStmt = db()->prepare("SELECT is_enabled FROM admin_payout_settings WHERE method_key=?"); + $enaStmt->execute([$payoutMethodType]); + $enaRow = $enaStmt->fetch(); + if (!$enaRow || !$enaRow['is_enabled']) { + echo json_encode(['success'=>false,'error'=>'This payout method is no longer available. Please select a different method or add a new one.']); exit; + } +} + +// Check balance +$balStmt = db()->prepare("SELECT tokens FROM users WHERE id=?"); +$balStmt->execute([$userId]); +$balance = (float)$balStmt->fetchColumn(); +if ($tokens > $balance) { echo json_encode(['success'=>false,'error'=>'Insufficient token balance.']); exit; } + +// Deduct & create +db()->beginTransaction(); +try { + db()->prepare("UPDATE users SET tokens=tokens-? WHERE id=?")->execute([$tokens, $userId]); + db()->prepare("INSERT INTO cashout_requests (user_id,platform_id,alias,tokens,payout_method_type,payout_handle) VALUES (?,?,?,?,?,?)") + ->execute([$userId, $platformId, $alias, $tokens, $payoutMethodType, $payoutHandle]); + db()->commit(); +} catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'Request failed. Try again.']); exit; +} + +$newBalStmt = db()->prepare("SELECT tokens FROM users WHERE id=?"); +$newBalStmt->execute([$userId]); +$nb = (float)$newBalStmt->fetchColumn(); + +try { logActivity('cashout_request', $userId, null, 'cashout', 0, "Cashout: {$tokens} tokens via {$payoutMethodType}"); } catch(Exception $e){} + +echo json_encode(['success'=>true, 'new_balance'=>$nb]); diff --git a/sites/tomtomgames.com/public_html/api/cashout_method_types.php b/sites/tomtomgames.com/public_html/api/cashout_method_types.php new file mode 100644 index 0000000..e1cce92 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/cashout_method_types.php @@ -0,0 +1,79 @@ +false,'error'=>'Server error']); exit; } +ob_end_clean(); +header('Content-Type: application/json'); + +$action = $_GET['action'] ?? 'list'; +$isAdmin = isLoggedIn() && !empty($_SESSION['is_admin']); + +switch ($action) { + + // Public: active types that admin has enabled for payout processing + case 'list': + $rows = db()->query(" + SELECT cmt.slug, cmt.label, cmt.icon, cmt.description + FROM cashout_method_types cmt + INNER JOIN admin_payout_settings aps ON aps.method_key = cmt.slug + WHERE cmt.is_active = 1 AND aps.is_enabled = 1 + ORDER BY cmt.sort_order ASC, cmt.id ASC + ")->fetchAll(); + echo json_encode(['success'=>true, 'types'=>$rows]); + break; + + // Admin: all types + case 'admin_list': + if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $rows = db()->query("SELECT * FROM cashout_method_types ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true, 'types'=>$rows]); + break; + + // Admin: create + case 'create': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $slug = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($d['slug'] ?? ''))); + $label= substr(trim($d['label'] ?? ''), 0, 100); + $icon = substr(trim($d['icon'] ?? '💰'), 0, 10); + $desc = substr(trim($d['description'] ?? ''), 0, 200); + $sort = (int)($d['sort_order'] ?? 99); + $active = (int)(bool)($d['is_active'] ?? 1); + if (!$slug || !$label) { echo json_encode(['success'=>false,'error'=>'Slug and label required']); exit; } + try { + db()->prepare("INSERT INTO cashout_method_types (slug,label,icon,description,is_active,sort_order) VALUES (?,?,?,?,?,?)") + ->execute([$slug,$label,$icon,$desc,$active,$sort]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + } catch (Exception $e) { + echo json_encode(['success'=>false,'error'=>'Slug already exists']); + } + break; + + // Admin: update + case 'update': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + $label= substr(trim($d['label'] ?? ''), 0, 100); + $icon = substr(trim($d['icon'] ?? '💰'), 0, 10); + $desc = substr(trim($d['description'] ?? ''), 0, 200); + $sort = (int)($d['sort_order'] ?? 0); + $active = (int)(bool)($d['is_active'] ?? 1); + if (!$id || !$label) { echo json_encode(['success'=>false,'error'=>'ID and label required']); exit; } + db()->prepare("UPDATE cashout_method_types SET label=?,icon=?,description=?,is_active=?,sort_order=? WHERE id=?") + ->execute([$label,$icon,$desc,$active,$sort,$id]); + echo json_encode(['success'=>true]); + break; + + // Admin: delete + case 'delete': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("DELETE FROM cashout_method_types WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/chat.php b/sites/tomtomgames.com/public_html/api/chat.php new file mode 100644 index 0000000..daf0bad --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/chat.php @@ -0,0 +1,124 @@ +false,'error'=>'Not authenticated']); exit; } + +$action = $_GET['action'] ?? ''; +$userId = $_SESSION['user_id']; +$isAdmin = !empty($_SESSION['is_admin']); + +switch ($action) { + + // ── User: get own messages ───────────────────────────── + case 'messages': + $since = (int)($_GET['since'] ?? 0); // last message id for polling + $stmt = db()->prepare(" + SELECT id, sender, message, is_read, created_at + FROM chat_messages + WHERE user_id = ? AND id > ? + ORDER BY id ASC + LIMIT 100 + "); + $stmt->execute([$userId, $since]); + $msgs = $stmt->fetchAll(); + + // Mark admin messages as read + db()->prepare("UPDATE chat_messages SET is_read=1 WHERE user_id=? AND sender='admin' AND is_read=0")->execute([$userId]); + + echo json_encode(['success'=>true, 'messages'=>$msgs]); + break; + + // ── User: send message to admin ─────────────────────── + case 'send': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $msg = trim($data['message'] ?? ''); + if (empty($msg) || mb_strlen($msg) > 2000) { echo json_encode(['success'=>false,'error'=>'Invalid message']); exit; } + + $stmt = db()->prepare("INSERT INTO chat_messages (user_id, sender, message) VALUES (?, 'user', ?)"); + $stmt->execute([$userId, $msg]); + echo json_encode(['success'=>true, 'id'=>db()->lastInsertId()]); + break; + + // ── Admin: get inbox list (one row per user, latest msg) ── + case 'admin_inbox': + if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $rows = db()->query(" + SELECT + u.id AS user_id, + u.username, + u.alias, + cm.message AS last_message, + cm.sender AS last_sender, + cm.created_at AS last_time, + SUM(CASE WHEN cm2.sender='user' AND cm2.is_read=0 THEN 1 ELSE 0 END) AS unread_count + FROM users u + JOIN chat_messages cm ON cm.id = ( + SELECT id FROM chat_messages + WHERE user_id = u.id + ORDER BY id DESC LIMIT 1 + ) + LEFT JOIN chat_messages cm2 ON cm2.user_id = u.id + GROUP BY u.id, u.username, u.alias, cm.message, cm.sender, cm.created_at + ORDER BY cm.created_at DESC + ")->fetchAll(); + echo json_encode(['success'=>true, 'inbox'=>$rows]); + break; + + // ── Admin: get all messages for a specific user ──────── + case 'admin_thread': + if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $tid = (int)($_GET['user_id'] ?? 0); + $since = (int)($_GET['since'] ?? 0); + if (!$tid) { echo json_encode(['success'=>false,'error'=>'user_id required']); exit; } + + $stmt = db()->prepare(" + SELECT id, sender, message, is_read, created_at + FROM chat_messages + WHERE user_id = ? AND id > ? + ORDER BY id ASC LIMIT 200 + "); + $stmt->execute([$tid, $since]); + $msgs = $stmt->fetchAll(); + + // Mark user messages as read + db()->prepare("UPDATE chat_messages SET is_read=1 WHERE user_id=? AND sender='user' AND is_read=0")->execute([$tid]); + + // Get user info + $uStmt = db()->prepare("SELECT id, username, alias, tokens FROM users WHERE id=?"); + $uStmt->execute([$tid]); + $user = $uStmt->fetch(); + + echo json_encode(['success'=>true, 'messages'=>$msgs, 'user'=>$user]); + break; + + // ── Admin: reply to a user ──────────────────────────── + case 'admin_send': + if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $tid = (int)($data['user_id'] ?? 0); + $msg = trim($data['message'] ?? ''); + if (!$tid || empty($msg) || mb_strlen($msg) > 2000) { echo json_encode(['success'=>false,'error'=>'Invalid']); exit; } + + $stmt = db()->prepare("INSERT INTO chat_messages (user_id, sender, message) VALUES (?, 'admin', ?)"); + $stmt->execute([$tid, $msg]); + echo json_encode(['success'=>true, 'id'=>db()->lastInsertId()]); + break; + + // ── Unread count (for badge) ────────────────────────── + case 'unread': + if ($isAdmin) { + $count = db()->query("SELECT COUNT(*) FROM chat_messages WHERE sender='user' AND is_read=0")->fetchColumn(); + } else { + $stmt = db()->prepare("SELECT COUNT(*) FROM chat_messages WHERE user_id=? AND sender='admin' AND is_read=0"); + $stmt->execute([$userId]); + $count = $stmt->fetchColumn(); + } + echo json_encode(['success'=>true, 'count'=>(int)$count]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/game_aliases.php b/sites/tomtomgames.com/public_html/api/game_aliases.php new file mode 100644 index 0000000..3832cc4 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/game_aliases.php @@ -0,0 +1,65 @@ +false,'error'=>'Server error']); exit; } +ob_end_clean(); +header('Content-Type: application/json'); + +if (!isLoggedIn()) { echo json_encode(['success'=>false,'error'=>'Not authenticated']); exit; } + +$action = $_GET['action'] ?? ''; +$userId = $_SESSION['user_id']; +$isAdmin = !empty($_SESSION['is_admin']); + +switch ($action) { + + // ── Get all aliases for a user ──────────────────────── + case 'get': + $uid = $isAdmin ? (int)($_GET['user_id'] ?? $userId) : $userId; + $stmt = db()->prepare("SELECT platform_slug, alias FROM game_aliases WHERE user_id=?"); + $stmt->execute([$uid]); + $rows = $stmt->fetchAll(); + $map = []; + foreach ($rows as $r) $map[$r['platform_slug']] = $r['alias']; + echo json_encode(['success'=>true, 'aliases'=>$map]); + break; + + // ── Save a single alias ─────────────────────────────── + case 'save': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = $isAdmin && isset($data['user_id']) ? (int)$data['user_id'] : $userId; + $slug = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($data['platform_slug'] ?? ''))); + $alias = substr(trim($data['alias'] ?? ''), 0, 100); + if (!$slug) { echo json_encode(['success'=>false,'error'=>'Platform slug required']); exit; } + if ($alias === '') { + // Empty alias = delete it + db()->prepare("DELETE FROM game_aliases WHERE user_id=? AND platform_slug=?")->execute([$uid,$slug]); + } else { + db()->prepare("INSERT INTO game_aliases (user_id,platform_slug,alias) VALUES (?,?,?) + ON DUPLICATE KEY UPDATE alias=VALUES(alias)")->execute([$uid,$slug,$alias]); + } + echo json_encode(['success'=>true]); + break; + + // ── Save all aliases at once (bulk) ─────────────────── + case 'save_all': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $data = json_decode(file_get_contents('php://input'), true); + $uid = $isAdmin && isset($data['user_id']) ? (int)$data['user_id'] : $userId; + $aliases = $data['aliases'] ?? []; + $stmt = db()->prepare("INSERT INTO game_aliases (user_id,platform_slug,alias) VALUES (?,?,?) + ON DUPLICATE KEY UPDATE alias=VALUES(alias)"); + $del = db()->prepare("DELETE FROM game_aliases WHERE user_id=? AND platform_slug=?"); + foreach ($aliases as $slug => $alias) { + $slug = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($slug))); + $alias = substr(trim($alias), 0, 100); + if (!$slug) continue; + if ($alias === '') $del->execute([$uid, $slug]); + else $stmt->execute([$uid, $slug, $alias]); + } + echo json_encode(['success'=>true]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/login.php b/sites/tomtomgames.com/public_html/api/login.php new file mode 100644 index 0000000..e263a49 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/login.php @@ -0,0 +1,37 @@ +false,'error'=>'Server error']); + exit; +} +ob_end_clean(); +header('Content-Type: application/json'); + +if ($_SERVER['REQUEST_METHOD'] !== 'POST') { + echo json_encode(['success'=>false,'error'=>'Method not allowed']); exit; +} + +$data = json_decode(file_get_contents('php://input'), true); +$username = trim($data['username'] ?? ''); +$password = trim($data['password'] ?? ''); + +if (empty($username) || empty($password)) { + echo json_encode(['success'=>false,'error'=>'Username and password required']); exit; +} + +try { + $result = loginUser($username, $password); +} catch (Throwable $e) { + echo json_encode(['success'=>false,'error'=>'Login error. Please try again.']); exit; +} + +if ($result['success'] && isset($result['user'])) { + logPlayerAction('LOGIN_SUCCESS', $result['user']['id'], 'User logged in', 'auth', 'info'); + unset($result['user']['password']); +} +if (!$result['success']) { logSecurityEvent('LOGIN_FAILED', null, 'Failed login attempt for: ' . $username, 'warning'); } +echo json_encode($result); diff --git a/sites/tomtomgames.com/public_html/api/logout.php b/sites/tomtomgames.com/public_html/api/logout.php new file mode 100644 index 0000000..2afa501 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/logout.php @@ -0,0 +1,5 @@ + true]); diff --git a/sites/tomtomgames.com/public_html/api/me.php b/sites/tomtomgames.com/public_html/api/me.php new file mode 100644 index 0000000..8b77479 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/me.php @@ -0,0 +1,35 @@ + false, 'error' => 'Server error']); + exit; +} +ob_end_clean(); +header('Content-Type: application/json'); + +if (!isLoggedIn()) { + echo json_encode(['success' => false, 'error' => 'Not authenticated']); + exit; +} + +try { + $user = currentUser(); +} catch (Throwable $e) { + echo json_encode(['success' => false, 'error' => 'DB error']); + exit; +} + +if (!$user) { + echo json_encode(['success' => false, 'error' => 'User not found']); + exit; +} + +// Sync session is_admin with DB value — catches admin elevation/demotion +$_SESSION['is_admin'] = (int)$user['is_admin']; + +unset($user['password']); +echo json_encode(['success' => true, 'user' => $user]); diff --git a/sites/tomtomgames.com/public_html/api/my_activity.php b/sites/tomtomgames.com/public_html/api/my_activity.php new file mode 100644 index 0000000..b6268d6 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/my_activity.php @@ -0,0 +1,76 @@ +false,'error'=>'Not authenticated']); exit; } + +$userId = (int)$_SESSION['user_id']; +$action = $_GET['action'] ?? 'all'; + +// ── Purchases ────────────────────────────────────────────── +if ($action === 'all' || $action === 'purchases') { + $stmt = db()->prepare(" + SELECT id, tokens, amount_cents, payment_method, platform_id, game_alias, + card_brand, card_last4, status, admin_note, created_at + FROM token_purchases + WHERE user_id=? + ORDER BY created_at DESC + LIMIT 50 + "); + $stmt->execute([$userId]); + $purchases = $stmt->fetchAll(); +} + +// ── Cashouts ─────────────────────────────────────────────── +if ($action === 'all' || $action === 'cashouts') { + $stmt = db()->prepare(" + SELECT cr.*, + COALESCE(p.name, cr.platform_id) AS platform_name + FROM cashout_requests cr + LEFT JOIN platforms p ON cr.platform_id = p.slug + WHERE cr.user_id=? + ORDER BY cr.created_at DESC + LIMIT 50 + "); + $stmt->execute([$userId]); + $cashouts = $stmt->fetchAll(); +} + +// ── Broadcasts/Invites (use broadcasts as announcements) ─── +if ($action === 'all' || $action === 'broadcasts') { + $stmt = db()->prepare(" + SELECT b.id, b.subject, b.message, b.sent_at, + u.username AS sender, + (SELECT COUNT(*) FROM broadcast_reads WHERE broadcast_id=b.id AND user_id=?) AS is_read, + (SELECT COUNT(*) FROM broadcast_replies WHERE broadcast_id=b.id AND user_id=?) AS replied + FROM broadcasts b + JOIN users u ON b.admin_id=u.id + WHERE b.target='all' + OR (b.target='verified' AND EXISTS(SELECT 1 FROM users WHERE id=? AND email_verified=1)) + OR (b.target='unverified' AND EXISTS(SELECT 1 FROM users WHERE id=? AND email_verified=0)) + OR (b.target='admins' AND 0) + ORDER BY b.sent_at DESC + LIMIT 20 + "); + $stmt->execute([$userId,$userId,$userId,$userId]); + $broadcasts = $stmt->fetchAll(); +} + +if ($action === 'all') { + echo json_encode([ + 'success' => true, + 'purchases' => $purchases, + 'cashouts' => $cashouts, + 'broadcasts' => $broadcasts, + ]); +} elseif ($action === 'purchases') { + echo json_encode(['success'=>true,'purchases'=>$purchases]); +} elseif ($action === 'cashouts') { + echo json_encode(['success'=>true,'cashouts'=>$cashouts]); +} elseif ($action === 'broadcasts') { + echo json_encode(['success'=>true,'broadcasts'=>$broadcasts]); +} else { + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/my_purchases.php b/sites/tomtomgames.com/public_html/api/my_purchases.php new file mode 100644 index 0000000..b340f8f --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/my_purchases.php @@ -0,0 +1,17 @@ +false,'error'=>'Not authenticated']); exit; } + +$userId = $_SESSION['user_id']; +$stmt = db()->prepare(" + SELECT id, tokens, amount_cents, payment_method, platform_id, game_alias, + card_brand, card_last4, status, created_at + FROM token_purchases + WHERE user_id = ? + ORDER BY created_at DESC + LIMIT 20 +"); +$stmt->execute([$userId]); +echo json_encode(['success'=>true, 'purchases'=>$stmt->fetchAll()]); diff --git a/sites/tomtomgames.com/public_html/api/payment_settings.php b/sites/tomtomgames.com/public_html/api/payment_settings.php new file mode 100644 index 0000000..d4f5267 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/payment_settings.php @@ -0,0 +1,44 @@ +false,'error'=>'Server error']); exit; } +ob_end_clean(); +header('Content-Type: application/json'); + +$action = $_GET['action'] ?? 'list'; +$isAdmin = isLoggedIn() && !empty($_SESSION['is_admin']); + +switch ($action) { + + // Public: get all enabled payment methods including card status + case 'list': + // Include card row (is_enabled controls whether card appears at checkout) + $rows = db()->query("SELECT method_key, label, handle, instructions, is_enabled FROM payment_settings ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true, 'methods'=>$rows]); + break; + + // Admin: get all methods including disabled + case 'admin_list': + if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $rows = db()->query("SELECT * FROM payment_settings ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true, 'methods'=>$rows]); + break; + + // Admin: update a single method + case 'update': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + $label= substr(trim($d['label']??''), 0, 100); + $handle = substr(trim($d['handle']??''), 0, 200); + $instructions = substr(trim($d['instructions']??''), 0, 500); + $enabled = (int)(bool)($d['is_enabled'] ?? 1); + $sort = (int)($d['sort_order'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("UPDATE payment_settings SET label=?,handle=?,instructions=?,is_enabled=?,sort_order=? WHERE id=?") + ->execute([$label,$handle,$instructions,$enabled,$sort,$id]); + echo json_encode(['success'=>true]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/payout_methods.php b/sites/tomtomgames.com/public_html/api/payout_methods.php new file mode 100644 index 0000000..c01377d --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/payout_methods.php @@ -0,0 +1,82 @@ +false,'error'=>'Server error']); exit; } +ob_end_clean(); +header('Content-Type: application/json'); + +if (!isLoggedIn()) { echo json_encode(['success'=>false,'error'=>'Not authenticated']); exit; } + +$action = $_GET['action'] ?? ''; +$userId = (int)$_SESSION['user_id']; +$isAdmin = !empty($_SESSION['is_admin']); + +switch ($action) { + + case 'list': + $uid = $isAdmin ? (int)($_GET['user_id'] ?? $userId) : $userId; + $rows = db()->prepare(" + SELECT pm.*, + COALESCE(aps.is_enabled, 0) AS admin_enabled + FROM payout_methods pm + LEFT JOIN admin_payout_settings aps ON aps.method_key = pm.method_type + WHERE pm.user_id = ? + ORDER BY pm.is_default DESC, pm.id ASC + "); + $rows->execute([$uid]); + echo json_encode(['success'=>true, 'methods'=>$rows->fetchAll()]); + break; + + case 'add': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $uid = $isAdmin && isset($d['user_id']) ? (int)$d['user_id'] : $userId; + $type = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($d['method_type'] ?? ''))); + $label = substr(trim($d['label'] ?? ''), 0, 100); + $handle= substr(trim($d['account_handle'] ?? ''), 0, 200); + $def = (int)(bool)($d['is_default'] ?? 0); + if (!$type || !$label || !$handle) { echo json_encode(['success'=>false,'error'=>'All fields required']); exit; } + db()->beginTransaction(); + if ($def) db()->prepare("UPDATE payout_methods SET is_default=0 WHERE user_id=?")->execute([$uid]); + // If first method, auto-set as default + $count = db()->prepare("SELECT COUNT(*) FROM payout_methods WHERE user_id=?"); $count->execute([$uid]); + if ((int)$count->fetchColumn() === 0) $def = 1; + db()->prepare("INSERT INTO payout_methods (user_id,method_type,label,account_handle,is_default) VALUES (?,?,?,?,?)") + ->execute([$uid,$type,$label,$handle,$def]); + $newId = db()->lastInsertId(); + db()->commit(); + echo json_encode(['success'=>true,'id'=>$newId]); + break; + + case 'set_default': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + // Verify ownership + $chk = db()->prepare("SELECT user_id FROM payout_methods WHERE id=?"); $chk->execute([$id]); + $row = $chk->fetch(); + if (!$row || ($row['user_id'] != $userId && !$isAdmin)) { echo json_encode(['success'=>false,'error'=>'Not found']); exit; } + $uid = $row['user_id']; + db()->prepare("UPDATE payout_methods SET is_default=0 WHERE user_id=?")->execute([$uid]); + db()->prepare("UPDATE payout_methods SET is_default=1 WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + case 'delete': + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false]); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + $chk = db()->prepare("SELECT user_id,is_default FROM payout_methods WHERE id=?"); $chk->execute([$id]); + $row = $chk->fetch(); + if (!$row || ($row['user_id'] != $userId && !$isAdmin)) { echo json_encode(['success'=>false,'error'=>'Not found']); exit; } + db()->prepare("DELETE FROM payout_methods WHERE id=?")->execute([$id]); + // If deleted default, set next one as default + if ($row['is_default']) { + $next = db()->prepare("SELECT id FROM payout_methods WHERE user_id=? LIMIT 1"); $next->execute([$row['user_id']]); + if ($n = $next->fetch()) db()->prepare("UPDATE payout_methods SET is_default=1 WHERE id=?")->execute([$n['id']]); + } + echo json_encode(['success'=>true]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/payout_process.php b/sites/tomtomgames.com/public_html/api/payout_process.php new file mode 100644 index 0000000..53993fb --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/payout_process.php @@ -0,0 +1,153 @@ +false,'error'=>'Forbidden']); exit; +} + +$adminId = (int)$_SESSION['user_id']; +$method = $_SERVER['REQUEST_METHOD']; +$action = $_GET['action'] ?? 'list_settings'; + +// ── GET actions ────────────────────────────────────────── +if ($method === 'GET') { + if ($action === 'list_settings') { + $rows = db()->query("SELECT * FROM admin_payout_settings ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true, 'settings'=>$rows]); + exit; + } + if ($action === 'cashout_detail') { + $id = (int)($_GET['id'] ?? 0); + $stmt = db()->prepare(" + SELECT cr.*, u.username, u.alias AS user_alias, u.email, + pm.method_type AS saved_payout_type, pm.account_handle AS saved_payout_handle, pm.label AS saved_payout_label + FROM cashout_requests cr + JOIN users u ON cr.user_id = u.id + LEFT JOIN payout_methods pm ON pm.user_id = cr.user_id AND pm.is_default = 1 + WHERE cr.id = ? + "); + $stmt->execute([$id]); + $row = $stmt->fetch(); + echo json_encode(['success'=>true, 'cashout'=>$row]); + exit; + } + echo json_encode(['success'=>false,'error'=>'Unknown action']); exit; +} + +if ($method !== 'POST') { echo json_encode(['success'=>false,'error'=>'Method not allowed']); exit; } +$d = json_decode(file_get_contents('php://input'), true); + +// ── Update payout settings ──────────────────────────────── +if ($action === 'update_setting') { + $id = (int)($d['id'] ?? 0); + $handle = substr(trim($d['handle']??''), 0, 200); + $instr = substr(trim($d['instructions']??''), 0, 500); + $enabled = (int)(bool)($d['is_enabled']??1); + $label = substr(trim($d['label']??''), 0, 100); + $sort = (int)($d['sort_order']??0); + db()->prepare("UPDATE admin_payout_settings SET label=?,handle=?,instructions=?,is_enabled=?,sort_order=? WHERE id=?") + ->execute([$label,$handle,$instr,$enabled,$sort,$id]); + echo json_encode(['success'=>true]); exit; +} + +// ── Process cashout payout ──────────────────────────────── +if ($action === 'process_payout') { + $cashoutId = (int)($d['cashout_id'] ?? 0); + $payoutKey = trim($d['payout_method_key'] ?? ''); + $payoutType = trim($d['payout_type'] ?? 'manual'); // 'manual' or 'square_gift_card' + $note = substr(trim($d['note'] ?? ''), 0, 500); + + // Load cashout + $stmt = db()->prepare("SELECT cr.*, u.username, u.alias, u.email FROM cashout_requests cr JOIN users u ON cr.user_id=u.id WHERE cr.id=? AND cr.status IN ('pending','locked')"); + $stmt->execute([$cashoutId]); + $cashout = $stmt->fetch(); + if (!$cashout) { echo json_encode(['success'=>false,'error'=>'Cashout not found or already processed']); exit; } + + // Amount in cents (1 token = $1) + $amountCents = (int)round($cashout['tokens'] * 100); + + // Load payout setting + $pset = db()->prepare("SELECT * FROM admin_payout_settings WHERE method_key=? AND is_enabled=1"); + $pset->execute([$payoutKey]); + $setting = $pset->fetch(); + + $squareTxnId = null; + $giftCardGan = null; + $giftCardBal = null; + $txnStatus = 'completed'; + + if ($payoutType === 'square_gift_card') { + // ── Square Gift Card Flow ───────────────────────── + try { + // 1. Create gift card + $gcRes = SquareClient::post('/v2/gift-cards', [ + 'idempotency_key' => 'gc-create-' . $cashoutId . '-' . time(), + 'location_id' => SQUARE_LOCATION_ID, + 'gift_card' => ['type' => 'DIGITAL'], + ]); + + if (empty($gcRes['gift_card']['id'])) { + throw new Exception('Failed to create gift card: ' . json_encode($gcRes)); + } + + $gcId = $gcRes['gift_card']['id']; + $gcGan = $gcRes['gift_card']['gan'] ?? ''; + + // 2. Activate gift card with balance + $actRes = SquareClient::post('/v2/gift-card-activities', [ + 'idempotency_key' => 'gc-activate-' . $cashoutId . '-' . time(), + 'gift_card_activity' => [ + 'type' => 'ACTIVATE', + 'location_id' => SQUARE_LOCATION_ID, + 'gift_card_id' => $gcId, + 'activate_activity_details' => [ + 'amount_money' => [ + 'amount' => $amountCents, + 'currency' => 'USD', + ], + ], + ], + ]); + + if (empty($actRes['gift_card_activity']['id'])) { + throw new Exception('Failed to activate gift card: ' . json_encode($actRes)); + } + + $giftCardGan = $gcGan; + $giftCardBal = $amountCents; + $squareTxnId = $actRes['gift_card_activity']['id']; + + } catch (Exception $e) { + echo json_encode(['success'=>false,'error'=>'Square error: ' . $e->getMessage()]); exit; + } + } + + // ── Mark cashout as sent ────────────────────────────── + db()->beginTransaction(); + try { + db()->prepare("UPDATE cashout_requests SET status='sent', admin_note=?, resolved_at=NOW() WHERE id=?") + ->execute([$note, $cashoutId]); + + db()->prepare("INSERT INTO cashout_transactions (cashout_id,admin_id,payout_method,payout_type,amount_cents,square_txn_id,gift_card_gan,gift_card_balance,note,status) + VALUES (?,?,?,?,?,?,?,?,?,'completed')") + ->execute([$cashoutId, $adminId, $payoutKey, $payoutType, $amountCents, $squareTxnId, $giftCardGan, $giftCardBal, $note]); + + db()->commit(); + } catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'DB error: '.$e->getMessage()]); exit; + } + + $response = ['success'=>true, 'status'=>'sent', 'amount_cents'=>$amountCents]; + if ($giftCardGan) { + $response['gift_card_gan'] = $giftCardGan; + $response['gift_card_balance'] = $giftCardBal; + } + echo json_encode($response); exit; +} + +echo json_encode(['success'=>false,'error'=>'Unknown action']); diff --git a/sites/tomtomgames.com/public_html/api/platform_accounts.php b/sites/tomtomgames.com/public_html/api/platform_accounts.php new file mode 100644 index 0000000..1df2991 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/platform_accounts.php @@ -0,0 +1,92 @@ +false,'error'=>'Not authenticated']); exit; } +$userId = (int)$_SESSION['user_id']; +$isAdmin = !empty($_SESSION['is_admin']); +$method = $_SERVER['REQUEST_METHOD']; +$action = $_GET['action'] ?? 'list'; + +if ($method === 'GET') { + if ($action === 'list') { + $uid = $isAdmin ? (int)($_GET['user_id'] ?? $userId) : $userId; + $stmt = db()->prepare("SELECT pa.*, COALESCE(p.name, pa.platform_slug) AS platform_name, p.color + FROM platform_accounts pa LEFT JOIN platforms p ON pa.platform_slug=p.slug + WHERE pa.user_id=? ORDER BY pa.requested_at DESC"); + $stmt->execute([$uid]); + $rows = $stmt->fetchAll(); + foreach ($rows as &$row) { + if (!$isAdmin && $row['status'] !== 'approved') $row['platform_password'] = null; + } + echo json_encode(['success'=>true,'accounts'=>$rows]); + } elseif ($action === 'check_onboarding') { + $cnt = db()->prepare("SELECT COUNT(*) FROM platform_accounts WHERE user_id=?"); + $cnt->execute([$userId]); + $hasAny = (int)$cnt->fetchColumn() > 0; + // Check flag — graceful fallback if column doesn't exist + $done = false; + try { + $s = db()->prepare("SELECT platform_onboarding_done FROM users WHERE id=?"); + $s->execute([$userId]); + $r = $s->fetch(); $done = !empty($r['platform_onboarding_done']); + } catch(Exception $e){} + echo json_encode(['success'=>true,'needs_onboarding'=>(!$done && !$hasAny),'has_accounts'=>$hasAny]); + } else { + echo json_encode(['success'=>false,'error'=>'Unknown action']); + } + exit; +} + +if ($method !== 'POST') { echo json_encode(['success'=>false,'error'=>'Method not allowed']); exit; } +$d = json_decode(file_get_contents('php://input'), true); + +if ($action === 'request') { + $slug = preg_replace('/[^a-z0-9_]/','',strtolower(trim($d['platform_slug']??''))); + if (!$slug) { echo json_encode(['success'=>false,'error'=>'Platform required']); exit; } + try { + db()->prepare("INSERT INTO platform_accounts (user_id,platform_slug) VALUES (?,?)")->execute([$userId,$slug]); + try { db()->prepare("UPDATE users SET platform_onboarding_done=1 WHERE id=?")->execute([$userId]); } catch(Exception $e){} + echo json_encode(['success'=>true]); + } catch(Exception $e) { echo json_encode(['success'=>false,'error'=>'Already requested for this platform']); } + exit; +} +if ($action === 'dismiss_onboarding') { + try { db()->prepare("UPDATE users SET platform_onboarding_done=1 WHERE id=?")->execute([$userId]); } catch(Exception $e){} + echo json_encode(['success'=>true]); + exit; +} +if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } +if ($action === 'resolve') { + $id=$d['id']??0; $status=$d['status']??''; + $uname=substr(trim($d['platform_username']??''),0,100); + $pass=substr(trim($d['platform_password']??''),0,200); + $note=substr(trim($d['admin_note']??''),0,300); + if (!in_array($status,['approved','denied','deleted'])){echo json_encode(['success'=>false,'error'=>'Invalid status']);exit;} + $chk=db()->prepare("SELECT user_id,platform_slug FROM platform_accounts WHERE id=?");$chk->execute([$id]);$row=$chk->fetch(); + if (!$row){echo json_encode(['success'=>false,'error'=>'Not found']);exit;} + db()->prepare("UPDATE platform_accounts SET status=?,platform_username=?,platform_password=?,admin_note=?,resolved_at=NOW(),admin_id=? WHERE id=?") + ->execute([$status,$uname,$pass,$note,(int)$_SESSION['user_id'],$id]); + if ($status==='approved'&&$uname) { + db()->prepare("INSERT INTO game_aliases (user_id,platform_slug,alias) VALUES (?,?,?) ON DUPLICATE KEY UPDATE alias=VALUES(alias)") + ->execute([$row['user_id'],$row['platform_slug'],$uname]); + } + echo json_encode(['success'=>true]);exit; +} +if ($action === 'update_credentials') { + $id=$d['id']??0; + $uname=substr(trim($d['platform_username']??''),0,100); + $pass=substr(trim($d['platform_password']??''),0,200); + $note=substr(trim($d['admin_note']??''),0,300); + $chk=db()->prepare("SELECT user_id,platform_slug FROM platform_accounts WHERE id=?");$chk->execute([$id]);$row=$chk->fetch(); + if (!$row){echo json_encode(['success'=>false,'error'=>'Not found']);exit;} + db()->prepare("UPDATE platform_accounts SET platform_username=?,platform_password=?,admin_note=? WHERE id=?") + ->execute([$uname,$pass,$note,$id]); + if ($uname) { + db()->prepare("INSERT INTO game_aliases (user_id,platform_slug,alias) VALUES (?,?,?) ON DUPLICATE KEY UPDATE alias=VALUES(alias)") + ->execute([$row['user_id'],$row['platform_slug'],$uname]); + } + echo json_encode(['success'=>true]);exit; +} +echo json_encode(['success'=>false,'error'=>'Unknown action']); diff --git a/sites/tomtomgames.com/public_html/api/platforms.php b/sites/tomtomgames.com/public_html/api/platforms.php new file mode 100644 index 0000000..dbeddc5 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/platforms.php @@ -0,0 +1,185 @@ +false,'error'=>'Server error']); exit; } +ob_end_clean(); +header('Content-Type: application/json'); + +$action = $_GET['action'] ?? 'list'; +$isAdmin = isLoggedIn() && !empty($_SESSION['is_admin']); +$isMasterAdmin = $isAdmin && (int)($_SESSION['user_id'] ?? 0) === MASTER_ADMIN_ID; + +switch ($action) { + + // ── Public: active platforms for player app ─────────── + case 'list': + $stmt = db()->query("SELECT slug,name,player_url,url_alias_param,color,icon_path FROM platforms WHERE is_active=1 AND is_deleted=0 ORDER BY sort_order ASC, id ASC"); + $rows = $stmt->fetchAll(); + $out = array_map(fn($r) => [ + 'id' => $r['slug'], + 'name' => $r['name'], + 'url' => $r['player_url'], + 'alias_param' => $r['url_alias_param'] ?? '', + 'color' => $r['color'], + ], $rows); + echo json_encode(['success'=>true, 'platforms'=>$out]); + break; + + // ── Admin: full list including agent fields and inactive ─ + case 'admin_list': + if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $rows = db()->query("SELECT * FROM platforms WHERE is_deleted=0 ORDER BY sort_order ASC, id ASC")->fetchAll(); + echo json_encode(['success'=>true, 'platforms'=>$rows]); + break; + + // ── Admin: create platform ──────────────────────────── + case 'create': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $slug = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($d['slug'] ?? ''))); + $name = substr(trim($d['name'] ?? ''), 0, 100); + $player_url = substr(trim($d['player_url'] ?? ''), 0, 500); + $url_alias_param = preg_replace('/[^a-zA-Z0-9_\-]/', '', trim($d['url_alias_param'] ?? '')); + $agent_link = substr(trim($d['agent_link'] ?? ''), 0, 500); + $agent_login = substr(trim($d['agent_login'] ?? ''), 0, 200); + $agent_password = substr(trim($d['agent_password'] ?? ''), 0, 200); + $games_link = substr(trim($d['games_link'] ?? ''), 0, 500); + $agent_guide = trim($d['agent_guide'] ?? ''); + $sub_agent_login = substr(trim($d['sub_agent_login'] ?? ''), 0, 200); + $sub_agent_password = substr(trim($d['sub_agent_password'] ?? ''), 0, 200); + $cashier_login = substr(trim($d['cashier_login'] ?? ''), 0, 200); + $cashier_password = substr(trim($d['cashier_password'] ?? ''), 0, 200); + $color = preg_match('/^#[0-9a-fA-F]{3,8}$/', $d['color'] ?? '') ? $d['color'] : '#f0c040'; + $sort_order = (int)($d['sort_order'] ?? 99); + $is_active = isset($d['is_active']) ? (int)(bool)$d['is_active'] : 1; + if (!$slug || !$name || !$player_url) { echo json_encode(['success'=>false,'error'=>'Slug, name, and player URL are required']); exit; } + try { + $stmt = db()->prepare("INSERT INTO platforms (slug,name,player_url,url_alias_param,agent_link,agent_login,agent_password,games_link,agent_guide,sub_agent_login,sub_agent_password,cashier_login,cashier_password,color,sort_order,is_active) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + $stmt->execute([$slug,$name,$player_url,$url_alias_param,$agent_link,$agent_login,$agent_password,$games_link,$agent_guide,$sub_agent_login,$sub_agent_password,$cashier_login,$cashier_password,$color,$sort_order,$is_active]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + } catch (Exception $e) { + echo json_encode(['success'=>false,'error'=>'Slug already exists or DB error']); + } + break; + + // ── Admin: update platform ──────────────────────────── + case 'update': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + $name = substr(trim($d['name'] ?? ''), 0, 100); + $player_url = substr(trim($d['player_url'] ?? ''), 0, 500); + $url_alias_param = preg_replace('/[^a-zA-Z0-9_\-]/', '', trim($d['url_alias_param'] ?? '')); + $agent_link = substr(trim($d['agent_link'] ?? ''), 0, 500); + $agent_login = substr(trim($d['agent_login'] ?? ''), 0, 200); + $agent_password = substr(trim($d['agent_password'] ?? ''), 0, 200); + $games_link = substr(trim($d['games_link'] ?? ''), 0, 500); + $agent_guide = trim($d['agent_guide'] ?? ''); + $sub_agent_login = substr(trim($d['sub_agent_login'] ?? ''), 0, 200); + $sub_agent_password = substr(trim($d['sub_agent_password'] ?? ''), 0, 200); + $cashier_login = substr(trim($d['cashier_login'] ?? ''), 0, 200); + $cashier_password = substr(trim($d['cashier_password'] ?? ''), 0, 200); + $color = preg_match('/^#[0-9a-fA-F]{3,8}$/', $d['color'] ?? '') ? $d['color'] : '#f0c040'; + $sort_order = (int)($d['sort_order'] ?? 99); + $is_active = (int)(bool)($d['is_active'] ?? 1); + if (!$id || !$name || !$player_url) { echo json_encode(['success'=>false,'error'=>'ID, name, and player URL required']); exit; } + if ($isMasterAdmin) { + // Master admin: update all fields including agent info + db()->prepare("UPDATE platforms SET name=?,player_url=?,url_alias_param=?,agent_link=?,agent_login=?,agent_password=?,games_link=?,agent_guide=?,sub_agent_login=?,sub_agent_password=?,cashier_login=?,cashier_password=?,color=?,sort_order=?,is_active=? WHERE id=?") + ->execute([$name,$player_url,$url_alias_param,$agent_link,$agent_login,$agent_password,$games_link,$agent_guide,$sub_agent_login,$sub_agent_password,$cashier_login,$cashier_password,$color,$sort_order,$is_active,$id]); + } else { + // Regular admin: update non-sensitive fields including alias param + db()->prepare("UPDATE platforms SET name=?,player_url=?,url_alias_param=?,color=?,sort_order=?,is_active=? WHERE id=?") + ->execute([$name,$player_url,$url_alias_param,$color,$sort_order,$is_active,$id]); + } + echo json_encode(['success'=>true]); + break; + + // ── Admin: delete platform ──────────────────────────── + case 'delete': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("DELETE FROM platforms WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + break; + + // ── Admin: reorder platforms ────────────────────────── + case 'reorder': + if (!$isAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $order = $d['order'] ?? []; // array of IDs in desired order + $stmt = db()->prepare("UPDATE platforms SET sort_order=? WHERE id=?"); + foreach ($order as $i => $pid) { $stmt->execute([$i, (int)$pid]); } + echo json_encode(['success'=>true]); + break; + + // ── Admin: list credits for a platform ─────────────── + case 'credits_list': + if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $pid = (int)($_GET['platform_id'] ?? 0); + if (!$pid) { echo json_encode(['success'=>false,'error'=>'platform_id required']); exit; } + $rows = db()->prepare("SELECT * FROM platform_credits WHERE platform_id=? ORDER BY credit_date DESC, id DESC"); + $rows->execute([$pid]); + $credits = $rows->fetchAll(); + $total = db()->prepare("SELECT COALESCE(SUM(CASE WHEN type='debit' THEN -credits_purchased ELSE credits_purchased END),0) FROM platform_credits WHERE platform_id=?"); + $total->execute([$pid]); + echo json_encode(['success'=>true,'credits'=>$credits,'total'=>(float)$total->fetchColumn()]); + break; + + // ── Admin: add credit entry ─────────────────────────── + case 'credits_create': + if (!$isMasterAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $pid = (int)($d['platform_id'] ?? 0); + $credits = (float)($d['credits_purchased'] ?? 0); + $date = $d['credit_date'] ?? date('Y-m-d'); + $method = substr(trim($d['payment_method'] ?? ''), 0, 100); + $notes = trim($d['notes'] ?? ''); + if (!$pid || $credits <= 0 || !$date) { echo json_encode(['success'=>false,'error'=>'platform_id, credits_purchased, and credit_date are required']); exit; } + $stmt = db()->prepare("INSERT INTO platform_credits (platform_id,credits_purchased,credit_date,payment_method,notes) VALUES (?,?,?,?,?)"); + $stmt->execute([$pid,$credits,$date,$method,$notes]); + $newId = db()->lastInsertId(); + $total = db()->prepare("SELECT COALESCE(SUM(credits_purchased),0) FROM platform_credits WHERE platform_id=?"); + $total->execute([$pid]); + echo json_encode(['success'=>true,'id'=>$newId,'total'=>(float)$total->fetchColumn()]); + break; + + // ── Admin: update credit entry ──────────────────────── + case 'credits_update': + if (!$isMasterAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + $credits = (float)($d['credits_purchased'] ?? 0); + $date = $d['credit_date'] ?? date('Y-m-d'); + $method = substr(trim($d['payment_method'] ?? ''), 0, 100); + $notes = trim($d['notes'] ?? ''); + if (!$id || $credits <= 0 || !$date) { echo json_encode(['success'=>false,'error'=>'id, credits_purchased, and credit_date are required']); exit; } + db()->prepare("UPDATE platform_credits SET credits_purchased=?,credit_date=?,payment_method=?,notes=? WHERE id=?") + ->execute([$credits,$date,$method,$notes,$id]); + $row = db()->prepare("SELECT platform_id FROM platform_credits WHERE id=?"); + $row->execute([$id]); + $pid = (int)($row->fetchColumn() ?: 0); + $total = db()->prepare("SELECT COALESCE(SUM(credits_purchased),0) FROM platform_credits WHERE platform_id=?"); + $total->execute([$pid]); + echo json_encode(['success'=>true,'total'=>(float)$total->fetchColumn()]); + break; + + // ── Admin: delete credit entry ──────────────────────── + case 'credits_delete': + if (!$isMasterAdmin || $_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + $d = json_decode(file_get_contents('php://input'), true); + $id = (int)($d['id'] ?? 0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + $row = db()->prepare("SELECT platform_id FROM platform_credits WHERE id=?"); + $row->execute([$id]); + $pid = (int)($row->fetchColumn() ?: 0); + db()->prepare("DELETE FROM platform_credits WHERE id=?")->execute([$id]); + $total = db()->prepare("SELECT COALESCE(SUM(credits_purchased),0) FROM platform_credits WHERE platform_id=?"); + $total->execute([$pid]); + echo json_encode(['success'=>true,'total'=>(float)$total->fetchColumn()]); + break; + + default: + echo json_encode(['success'=>false,'error'=>'Unknown action']); +} diff --git a/sites/tomtomgames.com/public_html/api/purchase.php b/sites/tomtomgames.com/public_html/api/purchase.php new file mode 100644 index 0000000..f3accf3 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/purchase.php @@ -0,0 +1,163 @@ +false,'error'=>'Not authenticated']); exit; } +if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success'=>false,'error'=>'Method not allowed']); exit; } + +$data = json_decode(file_get_contents('php://input'), true); +$sourceId = trim($data['source_id'] ?? ''); +$tokens = (int)($data['tokens'] ?? 0); +$priceCents = (int)($data['price_cents'] ?? 0); +$method = trim($data['method'] ?? 'card'); +$platformId = trim($data['platform_id'] ?? ''); +$gameAlias = trim($data['game_alias'] ?? ''); +$playerName = trim($data['player_name'] ?? ''); +$isCustom = (bool)($data['is_custom'] ?? false); +$billing = $data['billing'] ?? []; +$userId = $_SESSION['user_id']; + +// ─── Validate ───────────────────────────────────────────── +if ($tokens < 1 || $priceCents < 100) { + echo json_encode(['success'=>false,'error'=>'Minimum purchase is $1 (1 token).']); exit; +} + +// Validate preset packages (custom bypasses preset check) +if (!$isCustom) { + $packages = json_decode(TOKEN_PACKAGES, true); + $validPkg = false; + foreach ($packages as $pkg) { + if ($pkg['tokens'] === $tokens && ($pkg['price'] * 100) === $priceCents) { $validPkg = true; break; } + } + if (!$validPkg) { + echo json_encode(['success'=>false,'error'=>'Invalid token package.']); exit; + } +} else { + // Custom: tokens must equal dollars (1:1 ratio), cap at $500 + if ($tokens !== ($priceCents / 100) || $tokens > 500) { + echo json_encode(['success'=>false,'error'=>'Invalid custom amount.']); exit; + } +} + +// Sanitize billing fields +$billingFirst = substr(trim($billing['first_name'] ?? ''), 0, 80); +$billingLast = substr(trim($billing['last_name'] ?? ''), 0, 80); +$billingAddress = substr(trim($billing['address'] ?? ''), 0, 200); +$billingCity = substr(trim($billing['city'] ?? ''), 0, 80); +$billingState = strtoupper(substr(trim($billing['state'] ?? ''), 0, 2)); +$billingZip = substr(trim($billing['zip'] ?? ''), 0, 10); +$billingEmail = substr(strtolower(trim($billing['email'] ?? '')), 0, 150); +$cardholderName = trim("$billingFirst $billingLast"); + +$isManual = in_array($method, ['venmo','chime','cashapp','zelle']); + +// ─── Manual payment ──────────────────────────────────────── +if ($isManual) { + $stmt = db()->prepare(" + INSERT INTO token_purchases + (user_id, tokens, amount_cents, payment_method, platform_id, game_alias, + player_name, billing_name, billing_email, is_custom, status) + VALUES (?,?,?,?,?,?,?,?,?,?,'pending') + "); + $stmt->execute([ + $userId, $tokens, $priceCents, $method, $platformId, $gameAlias, + $playerName, $cardholderName, $billingEmail, $isCustom ? 1 : 0 + ]); + $pid = db()->lastInsertId(); + logActivity('manual_payment_pending', $userId, null, 'purchase', 0, "Manual payment pending: {$method} \$" . number_format($priceCents / 100, 2)); +echo json_encode(['success'=>true,'manual'=>true,'purchase_id'=>$pid, + 'message'=>"Request #{$pid} submitted! Tokens credited after payment verification."]); + exit; +} + +// ─── Card payment via Square ─────────────────────────────── +if (empty($sourceId)) { echo json_encode(['success'=>false,'error'=>'Card payment token required.']); exit; } + +$square = new SquarePayment(); +$note = "TomGames {$tokens}tok | {$platformId} | {$gameAlias} | user#{$userId}" . ($isCustom ? ' [CUSTOM]' : ''); + +// Build buyer info for Square +$buyerInfo = []; +if ($cardholderName) $buyerInfo['buyer_email_address'] = $billingEmail ?: null; +$billingAddr = []; +if ($billingAddress) $billingAddr['address_line_1'] = $billingAddress; +if ($billingCity) $billingAddr['locality'] = $billingCity; +if ($billingState) $billingAddr['administrative_district_level_1'] = $billingState; +if ($billingZip) $billingAddr['postal_code'] = $billingZip; +$billingAddr['country'] = 'US'; + +$result = $square->charge($sourceId, $priceCents, $note, $cardholderName, $billingAddr, $billingEmail); + +if (!$result['success']) { + // Log failed attempt + db()->prepare("INSERT INTO token_purchases (user_id,tokens,amount_cents,payment_method,platform_id,game_alias,player_name,billing_name,billing_email,is_custom,status,failure_reason) VALUES (?,?,?,'card',?,?,?,?,?,?,'failed',?)") + ->execute([$userId,$tokens,$priceCents,$platformId,$gameAlias,$playerName,$cardholderName,$billingEmail,$isCustom?1:0,$result['error']]); + echo json_encode(['success'=>false,'error'=>$result['error']]); exit; +} + +// ─── Credit tokens ───────────────────────────────────────── +db()->beginTransaction(); +try { + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$tokens,$userId]); + $cardBrand = $result['card_brand'] ?? null; + $cardLast4 = $result['last_4'] ?? null; + $receiptUrl= $result['receipt_url'] ?? null; + + db()->prepare(" + INSERT INTO token_purchases + (user_id, tokens, amount_cents, payment_method, square_payment_id, + platform_id, game_alias, player_name, billing_name, billing_address, + billing_city, billing_state, billing_zip, billing_email, + is_custom, card_brand, card_last4, receipt_url, status) + VALUES (?,?,?,'card',?,?,?,?,?,?,?,?,?,?,?,?,?,?,'completed') + ")->execute([ + $userId, $tokens, $priceCents, $result['payment_id'], + $platformId, $gameAlias, $playerName, + $cardholderName, $billingAddress, $billingCity, $billingState, $billingZip, $billingEmail, + $isCustom ? 1 : 0, $cardBrand, $cardLast4, $receiptUrl + ]); + + db()->commit(); +} catch (Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'Token credit failed. Payment ID: '.$result['payment_id']]); exit; +} + +// ─── Update saved billing (separate try — must NOT roll back token credit) ── +try { + db()->prepare(" + INSERT INTO saved_billing (user_id,first_name,last_name,email,address,city,state,zip,card_brand,card_last4) + VALUES (?,?,?,?,?,?,?,?,?,?) + ON DUPLICATE KEY UPDATE + card_brand=VALUES(card_brand), card_last4=VALUES(card_last4), + first_name=COALESCE(NULLIF(VALUES(first_name),''),first_name), + last_name=COALESCE(NULLIF(VALUES(last_name),''),last_name), + email=COALESCE(NULLIF(VALUES(email),''),email), + address=COALESCE(NULLIF(VALUES(address),''),address), + city=COALESCE(NULLIF(VALUES(city),''),city), + state=COALESCE(NULLIF(VALUES(state),''),state), + zip=COALESCE(NULLIF(VALUES(zip),''),zip) + ")->execute([ + $userId, $billingFirst, $billingLast, $billingEmail, + $billingAddress, $billingCity, $billingState, $billingZip, + $cardBrand, $cardLast4 + ]); +} catch (Exception $e) { /* non-critical — tokens already credited */ } + +$bal = db()->prepare("SELECT tokens FROM users WHERE id=?"); +$bal->execute([$userId]); +$newBal = (float)$bal->fetchColumn(); +logActivity('token_purchase', $userId, null, 'purchase', (int)db()->lastInsertId(), + "Bought {$tokens} tokens via {$method} for \$" . number_format($priceCents / 100, 2)); +echo json_encode([ + 'success' => true, + 'manual' => false, + 'tokens_added' => (int)$tokens, + 'new_balance' => $newBal, + 'payment_id' => $result['payment_id'], + 'card_brand' => $cardBrand, + 'card_last4' => $cardLast4, + 'receipt_url' => $receiptUrl, +]); diff --git a/sites/tomtomgames.com/public_html/api/referrals.php b/sites/tomtomgames.com/public_html/api/referrals.php new file mode 100644 index 0000000..b0144c1 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/referrals.php @@ -0,0 +1,362 @@ +false,'error'=>'Not authenticated']); exit; } + +$userId = (int)$_SESSION['user_id']; +$isAdmin = !empty($_SESSION['is_admin']); +$method = $_SERVER['REQUEST_METHOD']; +$action = $_GET['action'] ?? 'status'; + +// ── GET actions ─────────────────────────────────────────── +if ($method === 'GET') { + + if ($action === 'status') { + // Player's referral dashboard data + $user = db()->prepare("SELECT referral_code, referred_by FROM users WHERE id=?"); + $user->execute([$userId]); + $u = $user->fetch(); + + // Auto-generate code if missing + if (empty($u['referral_code'])) { + $code = strtoupper(substr(md5($userId.uniqid()),0,8)); + db()->prepare("UPDATE users SET referral_code=? WHERE id=?")->execute([$code, $userId]); + $u['referral_code'] = $code; + } + + // Count verified referrals + $countStmt = db()->prepare("SELECT COUNT(*) FROM referrals WHERE referrer_id=? AND status='verified'"); + $countStmt->execute([$userId]); + $verified = (int)$countStmt->fetchColumn(); + + // All referrals + $refs = db()->prepare(" + SELECT r.*, u.username, u.alias, u.email_verified, u.created_at AS joined_at + FROM referrals r + JOIN users u ON r.referred_id = u.id + WHERE r.referrer_id = ? + ORDER BY r.created_at DESC + "); + $refs->execute([$userId]); + + // Current tier + $tier = db()->query(" + SELECT * FROM referral_tiers + WHERE is_active=1 AND min_referrals <= $verified + ORDER BY min_referrals DESC LIMIT 1 + ")->fetch(); + + // Next tier + $nextTier = db()->query(" + SELECT * FROM referral_tiers + WHERE is_active=1 AND min_referrals > $verified + ORDER BY min_referrals ASC LIMIT 1 + ")->fetch(); + + // Total tokens earned from referrals + $earned = db()->prepare("SELECT COALESCE(SUM(tokens_awarded),0) FROM referrals WHERE referrer_id=? AND status='verified'"); + $earned->execute([$userId]); + + // Social shares + $shares = db()->prepare("SELECT * FROM referral_social_shares WHERE user_id=? ORDER BY created_at DESC"); + $shares->execute([$userId]); + + echo json_encode([ + 'success' => true, + 'referral_code' => $u['referral_code'] ?? '', + 'referral_url' => (defined('SITE_URL')?SITE_URL:'https://tomtomgames.com') . '/?ref=' . ($u['referral_code'] ?? ''), + 'verified_count' => $verified, + 'total_earned' => (float)$earned->fetchColumn(), + 'current_tier' => $tier, + 'next_tier' => $nextTier, + 'referrals' => $refs->fetchAll(), + 'social_shares' => $shares->fetchAll(), + ]); + exit; + } + + if ($action === 'tiers') { + $rows = db()->query("SELECT * FROM referral_tiers WHERE is_active=1 ORDER BY min_referrals ASC")->fetchAll(); + echo json_encode(['success'=>true,'tiers'=>$rows]); + exit; + } + + if ($action === 'all_tiers' && $isAdmin) { + $rows = db()->query("SELECT * FROM referral_tiers ORDER BY sort_order ASC, min_referrals ASC")->fetchAll(); + echo json_encode(['success'=>true,'tiers'=>$rows]); + exit; + } + + if ($action === 'admin_list' && $isAdmin) { + $status = $_GET['status'] ?? 'pending'; + $stmt = db()->prepare(" + SELECT r.*, + ru.username AS referrer_name, ru.alias AS referrer_alias, + rd.username AS referred_name, rd.alias AS referred_alias, rd.email_verified, + t.name AS tier_name + FROM referrals r + JOIN users ru ON r.referrer_id = ru.id + JOIN users rd ON r.referred_id = rd.id + LEFT JOIN referral_tiers t ON r.tier_id = t.id + WHERE r.status = ? + ORDER BY r.created_at DESC + LIMIT 100 + "); + $stmt->execute([$status]); + echo json_encode(['success'=>true,'referrals'=>$stmt->fetchAll()]); + exit; + } + + if ($action === 'admin_shares' && $isAdmin) { + $status = $_GET['status'] ?? 'pending'; + $stmt = db()->prepare(" + SELECT rs.*, u.username, u.alias + FROM referral_social_shares rs + JOIN users u ON rs.user_id = u.id + WHERE rs.status = ? + ORDER BY rs.created_at DESC + "); + $stmt->execute([$status]); + echo json_encode(['success'=>true,'shares'=>$stmt->fetchAll()]); + exit; + } + + echo json_encode(['success'=>false,'error'=>'Unknown action']); exit; +} + +// ── Helpers ─────────────────────────────────────────────── + +function inferPlatformFromUrl(string $url): string { + $host = strtolower(parse_url($url, PHP_URL_HOST) ?? ''); + if (str_contains($host, 'reddit.com')) return 'reddit'; + if (str_contains($host, 'twitter.com') || str_contains($host, 'x.com')) return 'twitter'; + if (str_contains($host, 'facebook.com')) return 'facebook'; + if (str_contains($host, 'instagram.com')) return 'instagram'; + if (str_contains($host, 'tiktok.com')) return 'tiktok'; + if (str_contains($host, 'youtube.com')) return 'youtube'; + if (str_contains($host, 'discord.com')) return 'discord'; + if (str_contains($host, 'twitch.tv')) return 'twitch'; + return 'other'; +} + +function scrapeForReferralCode(string $url, string $code): array { + // SSRF guard — only http/https, no private/reserved IPs + $parsed = parse_url($url); + if (!$parsed || !in_array(strtolower($parsed['scheme'] ?? ''), ['http','https'])) { + return ['verified'=>false,'reason'=>'invalid_url']; + } + $host = $parsed['host'] ?? ''; + $ip = gethostbyname($host); + if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false) { + return ['verified'=>false,'reason'=>'invalid_url']; + } + + $ch = curl_init(); + curl_setopt_array($ch, [ + CURLOPT_URL => $url, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_TIMEOUT => 8, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_MAXREDIRS => 3, + CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_HTTPHEADER => ['Accept: text/html,application/xhtml+xml,*/*;q=0.8'], + CURLOPT_BUFFERSIZE => 131072, // read up to 128KB + ]); + $html = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $curlErr = curl_error($ch); + curl_close($ch); + + if ($curlErr || !$html) return ['verified'=>false,'reason'=>'unreachable']; + if ($httpCode === 401 || $httpCode === 403) return ['verified'=>false,'reason'=>'login_required']; + if ($httpCode >= 400) return ['verified'=>false,'reason'=>'unreachable']; + + // Truncate to 512KB to avoid scanning huge pages + $content = substr($html, 0, 524288); + + if (stripos($content, $code) !== false) return ['verified'=>true, 'reason'=>'code_found']; + if (stripos($content, 'tomtomgames.com') !== false) return ['verified'=>false,'reason'=>'site_found_no_code']; + return ['verified'=>false,'reason'=>'not_found']; +} + +// ── POST actions ────────────────────────────────────────── +if ($method !== 'POST') { echo json_encode(['success'=>false,'error'=>'Method not allowed']); exit; } +$d = json_decode(file_get_contents('php://input'), true); + +if ($action === 'submit_share') { + $url = trim($d['url'] ?? ''); + $platform = preg_replace('/[^a-z0-9_]/', '', strtolower(trim($d['platform'] ?? ''))); + + if (!$url) { echo json_encode(['success'=>false,'error'=>'Please paste the URL of your post']); exit; } + if (!filter_var($url, FILTER_VALIDATE_URL)) { echo json_encode(['success'=>false,'error'=>'That doesn\'t look like a valid URL']); exit; } + + if (!$platform) $platform = inferPlatformFromUrl($url); + + // Get referrer's code for scraping + $codeRow = db()->prepare("SELECT referral_code FROM users WHERE id=?"); + $codeRow->execute([$userId]); + $referralCode = (string)$codeRow->fetchColumn(); + + // Reject duplicate URLs from same user + $dup = db()->prepare("SELECT id FROM referral_social_shares WHERE user_id=? AND share_url=?"); + $dup->execute([$userId, $url]); + if ($dup->fetchColumn()) { echo json_encode(['success'=>false,'error'=>'You already submitted this URL']); exit; } + + $bonus = 5; + $scrape = scrapeForReferralCode($url, $referralCode); + $status = $scrape['verified'] ? 'approved' : 'pending'; + + $reasonMessages = [ + 'code_found' => null, // auto-verified, no extra message needed + 'login_required' => 'This post requires a login to view — our team will review it manually.', + 'unreachable' => "We couldn't reach that URL — our team will review it manually.", + 'not_found' => "Your referral code wasn't found on that page — our team will review it manually.", + 'site_found_no_code'=> 'TomTomGames was mentioned but your referral code wasn\'t found — our team will review it manually.', + 'invalid_url' => 'That URL doesn\'t look valid — please check and try again.', + ]; + + if ($scrape['reason'] === 'invalid_url') { + echo json_encode(['success'=>false,'error'=>$reasonMessages['invalid_url']]); + exit; + } + + try { + db()->beginTransaction(); + db()->prepare("INSERT INTO referral_social_shares (user_id,platform,bonus_tokens,share_url,auto_verified,verify_result,status) VALUES (?,?,?,?,?,?,?)") + ->execute([$userId, $platform, $bonus, $url, $scrape['verified']?1:0, $scrape['reason'], $status]); + $shareId = (int)db()->lastInsertId(); + + if ($scrape['verified']) { + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$bonus, $userId]); + logAdminAction('SOCIAL_SHARE_AUTO_VERIFIED', (int)$_SESSION['user_id'], 'referral_share', $shareId, + 'Auto-verified share on '.$platform.' — awarded '.$bonus.' tokens. URL: '.$url, '', 'approved', 'info'); + } + db()->commit(); + + $resp = ['success'=>true,'auto_verified'=>$scrape['verified'],'platform'=>$platform]; + if ($scrape['verified']) { + $resp['tokens'] = $bonus; + $resp['message'] = '🎉 Verified! +'.$bonus.' tokens awarded automatically.'; + } else { + $resp['pending'] = true; + $resp['message'] = $reasonMessages[$scrape['reason']] ?? 'Submitted for manual review.'; + } + echo json_encode($resp); + } catch(Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'Failed to submit share']); + } + exit; +} + +// ── Admin only below ────────────────────────────────────── +if (!$isAdmin) { echo json_encode(['success'=>false,'error'=>'Forbidden']); exit; } + +if ($action === 'resolve_referral') { + $id = (int)($d['id'] ?? 0); + $status = $d['status'] ?? ''; + $note = substr(trim($d['note'] ?? ''), 0, 300); + if (!in_array($status, ['verified','denied','deleted'])) { echo json_encode(['success'=>false,'error'=>'Invalid status']); exit; } + + $chk = db()->prepare("SELECT r.*, t.tokens_per_ref, t.min_referrals, t.bonus_tokens FROM referrals r LEFT JOIN referral_tiers t ON r.tier_id=t.id WHERE r.id=?"); + $chk->execute([$id]); + $ref = $chk->fetch(); + if (!$ref) { echo json_encode(['success'=>false,'error'=>'Not found']); exit; } + + if ($status === 'verified') { + // Determine best tier for referrer + $countStmt = db()->prepare("SELECT COUNT(*) FROM referrals WHERE referrer_id=? AND status='verified'"); + $countStmt->execute([$ref['referrer_id']]); + $verifiedCount = (int)$countStmt->fetchColumn() + 1; // +1 for this one + + $tier = db()->query("SELECT * FROM referral_tiers WHERE is_active=1 AND min_referrals <= $verifiedCount ORDER BY min_referrals DESC LIMIT 1")->fetch(); + $tokensToAward = $tier ? (float)$tier['tokens_per_ref'] : 5; + + // Check if this hits a bonus milestone + $bonusTokens = 0; + if ($tier && $verifiedCount == (int)$tier['min_referrals']) { + $bonusTokens = (float)$tier['bonus_tokens']; + } + + $totalAward = $tokensToAward + $bonusTokens; + + db()->beginTransaction(); + try { + db()->prepare("UPDATE referrals SET status='verified', tier_id=?, tokens_awarded=?, admin_id=?, admin_note=?, resolved_at=NOW() WHERE id=?") + ->execute([$tier['id'] ?? null, $totalAward, (int)$_SESSION['user_id'], $note, $id]); + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$totalAward, $ref['referrer_id']]); + logAdminAction('REFERRAL_VERIFIED', (int)$_SESSION['user_id'], 'referral', $id, 'Verified referral #'.$id.' — awarded '.$totalAward.' tokens to user #'.$ref['referrer_id'], 'pending', 'verified', 'info'); + db()->commit(); + echo json_encode(['success'=>true,'tokens_awarded'=>$totalAward,'bonus'=>$bonusTokens,'tier'=>$tier['name']??'']); + } catch(Exception $e) { + db()->rollBack(); + echo json_encode(['success'=>false,'error'=>'DB error']); + } + } else { + db()->prepare("UPDATE referrals SET status=?, admin_id=?, admin_note=?, resolved_at=NOW() WHERE id=?") + ->execute([$status, (int)$_SESSION['user_id'], $note, $id]); + echo json_encode(['success'=>true]); + } + exit; +} + +if ($action === 'resolve_share') { + $id = (int)($d['id'] ?? 0); + $status = $d['status'] ?? ''; + if (!in_array($status, ['approved','denied'])) { echo json_encode(['success'=>false,'error'=>'Invalid']); exit; } + $chk = db()->prepare("SELECT * FROM referral_social_shares WHERE id=?"); $chk->execute([$id]); $share = $chk->fetch(); + if (!$share) { echo json_encode(['success'=>false,'error'=>'Not found']); exit; } + db()->prepare("UPDATE referral_social_shares SET status=?,admin_id=?,resolved_at=NOW() WHERE id=?")->execute([$status,(int)$_SESSION['user_id'],$id]); + if ($status === 'approved') { + db()->prepare("UPDATE users SET tokens=tokens+? WHERE id=?")->execute([$share['bonus_tokens'],$share['user_id']]); + logAdminAction('SOCIAL_SHARE_APPROVED', (int)$_SESSION['user_id'], 'referral_share', $id, 'Approved social share #'.$id.' — awarded '.$share['bonus_tokens'].' bonus tokens to user #'.$share['user_id'], '', 'approved', 'info'); + } + echo json_encode(['success'=>true]); + exit; +} + +// ── Tier CRUD ───────────────────────────────────────────── +if ($action === 'tier_create') { + $name = substr(trim($d['name']??''),0,100); + $minRefs = (int)($d['min_referrals']??1); + $tokPer = (float)($d['tokens_per_ref']??5); + $bonus = (float)($d['bonus_tokens']??0); + $desc = substr(trim($d['description']??''),0,300); + $sort = (int)($d['sort_order']??99); + $active = (int)(bool)($d['is_active']??1); + if (!$name) { echo json_encode(['success'=>false,'error'=>'Name required']); exit; } + db()->prepare("INSERT INTO referral_tiers (name,min_referrals,tokens_per_ref,bonus_tokens,description,is_active,sort_order) VALUES (?,?,?,?,?,?,?)") + ->execute([$name,$minRefs,$tokPer,$bonus,$desc,$active,$sort]); + echo json_encode(['success'=>true,'id'=>db()->lastInsertId()]); + exit; +} + +if ($action === 'tier_update') { + $id = (int)($d['id']??0); + $name = substr(trim($d['name']??''),0,100); + $minRefs = (int)($d['min_referrals']??1); + $tokPer = (float)($d['tokens_per_ref']??5); + $bonus = (float)($d['bonus_tokens']??0); + $desc = substr(trim($d['description']??''),0,300); + $sort = (int)($d['sort_order']??0); + $active = (int)(bool)($d['is_active']??1); + if (!$id||!$name) { echo json_encode(['success'=>false,'error'=>'ID and name required']); exit; } + db()->prepare("UPDATE referral_tiers SET name=?,min_referrals=?,tokens_per_ref=?,bonus_tokens=?,description=?,is_active=?,sort_order=? WHERE id=?") + ->execute([$name,$minRefs,$tokPer,$bonus,$desc,$active,$sort,$id]); + echo json_encode(['success'=>true]); + exit; +} + +if ($action === 'tier_delete') { + $id = (int)($d['id']??0); + if (!$id) { echo json_encode(['success'=>false,'error'=>'ID required']); exit; } + db()->prepare("DELETE FROM referral_tiers WHERE id=?")->execute([$id]); + echo json_encode(['success'=>true]); + exit; +} + +echo json_encode(['success'=>false,'error'=>'Unknown action']); diff --git a/sites/tomtomgames.com/public_html/api/register.php b/sites/tomtomgames.com/public_html/api/register.php new file mode 100644 index 0000000..6d2bce9 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/register.php @@ -0,0 +1,18 @@ +false,'error'=>'Method not allowed']); exit; +} + +$data = json_decode(file_get_contents('php://input'), true); +$username = trim($data['username'] ?? ''); +$password = trim($data['password'] ?? ''); +$alias = trim($data['alias'] ?? ''); +$email = trim($data['email'] ?? ''); +$referralCode= trim($data['referral_code']?? ''); + +logSecurityEvent('REGISTER_ATTEMPT', null, 'Registration attempt for: ' . $email, 'info'); +$result = initiateRegistration($username, $password, $alias, $email, $referralCode); +echo json_encode($result); diff --git a/sites/tomtomgames.com/public_html/api/resend_verify.php b/sites/tomtomgames.com/public_html/api/resend_verify.php new file mode 100644 index 0000000..7d1c539 --- /dev/null +++ b/sites/tomtomgames.com/public_html/api/resend_verify.php @@ -0,0 +1,16 @@ +false,'error'=>'Method not allowed']); exit; +} + +$data = json_decode(file_get_contents('php://input'), true); +$email = trim($data['email'] ?? ''); + +if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) { + echo json_encode(['success'=>false,'error'=>'Valid email required']); exit; +} + +echo json_encode(resendVerification($email)); diff --git a/sites/tomtomgames.com/public_html/assets/img/egame99.svg b/sites/tomtomgames.com/public_html/assets/img/egame99.svg new file mode 100644 index 0000000..acbed0c --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/egame99.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + 🎮 + + eGAME 99 + + + + + + diff --git a/sites/tomtomgames.com/public_html/assets/img/firekirin.svg b/sites/tomtomgames.com/public_html/assets/img/firekirin.svg new file mode 100644 index 0000000..768a024 --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/firekirin.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + 🔥 + + KIRIN + + + + + + diff --git a/sites/tomtomgames.com/public_html/assets/img/icon-192.png b/sites/tomtomgames.com/public_html/assets/img/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3f325e8f905bb8e77e4f05382cad10eb9d6647 GIT binary patch literal 1088 zcmZuxdr(wW7(aJm;R?%2im;0=-hc$8flVPy20XAAWI`)* zau*F9iIK%6KzY=fmCO`HGqJ;rBO42LdCnNI=q?Z;+r;fsN17U^>5p^H@B7a0@%?e; zoJ~nO=;Gw*1ORZ6$B_zje)D+YJhV@J&87fg?#C7@asb0bNNWH=TTNc39FN z`^A%|dhZ#HY)o)tr^lCAL7z}pfA{WAvYq{;3TqR>aBh8dWZgw$ah^~3e$pDOH}Qvy zg6O^@Vw#^Ac4!nZ+M@5$?CB{|DZh;|d?Fx_U}vR6PKL<6bqbz-saDrTS!DzMs9jp9 ze_OMeuDF@Uc*yMxkw<2&7PW)ws$YVw&6}t1Z3tvDssS@-XsQT5K(G#s#o17~7Jti5 z)nEFRC#Ik2%U{Kqa0|`l zKT6*NZRN&yUk6NZ%u+lsRQikug%E6Up00(mmS~p;Fny-_ygN>F?nOaBlZHcEAl)FQ zIZl^rr>c74juZ6F2CAyPcNP@TcJGH;Kq@>iegB2ATRUj(^k@5l#uN>0Ul>EN8eJpM z_t*9u-$StF^J|DW0+`I`9t5@mW(H0p0K5Y>(VQh98hCeJpsX{Ag*;ce#6k7vtF`V_ z9Lg#NG^Y&6K|EyaO0X{}X8)F!ed+(SOWhNV7^+;Bi0 zZivSo7{o%(~Su_E0C-t;xHoM&^Ocxmpz(H@B^(zbUO&LYP`zdw}&AnF=8pVM+1^= zc0>kq7%{#H`nK@~Qp_jb1T~*uvBPB%+p966Y~m0UJsfMPwWFk__QEZo)uWrI)(R!R z0%C3YC=^|vN)_aStd4v?Ur@7NEFlD=mK~>7C}~>fhyx(2R=_~YIXAGI5M(F6T*V^< zKPO)Gg54kRaGAJC&xSzJ&}f%27bQ3D3W^lFp1B`ZviLhCb-VpQ8H}m5m%Bw}+Xz9- z8^$4LEXzO1vMa+Gmpyf~Z|NN<+TCULMk8D|??<@PtU$QkoR9Fwg8+}sp5KRMb)50? zBLv%qUvsd(W-4k$(_}=Xf^YqOnhPlD#iZnYP#RDA1regQmaP($ZaFK&V>J(Sn5j|2 z&9#A5jjF$(5S|t@z2kVwbFsFB=lK_pHE?g0#ek`sO?mg{GD2ZJqfLuhNzaD$)j6rh nK!oF^fK`4-x>9@!J%M%bV`iwjqv&`x`Wb*cCW-8ce&ys}+1|4@ literal 0 HcmV?d00001 diff --git a/sites/tomtomgames.com/public_html/assets/img/icon-512.png b/sites/tomtomgames.com/public_html/assets/img/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..bf41cc8ffc16c9baee4038b4283a83349f4c8c38 GIT binary patch literal 3856 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 NWTwqeZJn#w_8(M0$IJi# literal 0 HcmV?d00001 diff --git a/sites/tomtomgames.com/public_html/assets/img/logo-icon.svg b/sites/tomtomgames.com/public_html/assets/img/logo-icon.svg new file mode 100644 index 0000000..cd251a4 --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/logo-icon.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/tomtomgames.com/public_html/assets/img/milkyway.svg b/sites/tomtomgames.com/public_html/assets/img/milkyway.svg new file mode 100644 index 0000000..b89a5fd --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/milkyway.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 🌌 + MILKY WAY + + + diff --git a/sites/tomtomgames.com/public_html/assets/img/noble777.svg b/sites/tomtomgames.com/public_html/assets/img/noble777.svg new file mode 100644 index 0000000..16a61e5 --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/noble777.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + 👑 + + 777 + NOBLE + + + + + + diff --git a/sites/tomtomgames.com/public_html/assets/img/og-image.svg b/sites/tomtomgames.com/public_html/assets/img/og-image.svg new file mode 100644 index 0000000..62fee62 --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/og-image.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TomTomGames + + Buy tokens for VBlink777 · Fire Kirin · Milky Way · Ultra Panda & more + + + ⚡ Instant Delivery + + 🔒 SSL Secured + + 💬 24/7 Support + diff --git a/sites/tomtomgames.com/public_html/assets/img/pandamaster.svg b/sites/tomtomgames.com/public_html/assets/img/pandamaster.svg new file mode 100644 index 0000000..b7ec28a --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/pandamaster.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + 🐾 + + MASTER + + diff --git a/sites/tomtomgames.com/public_html/assets/img/ultrapanda.svg b/sites/tomtomgames.com/public_html/assets/img/ultrapanda.svg new file mode 100644 index 0000000..f8e384f --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/ultrapanda.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + 🐼 + + ULTRA + + + + diff --git a/sites/tomtomgames.com/public_html/assets/img/vblink777.svg b/sites/tomtomgames.com/public_html/assets/img/vblink777.svg new file mode 100644 index 0000000..47e8e61 --- /dev/null +++ b/sites/tomtomgames.com/public_html/assets/img/vblink777.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + 🎰 + + 777 + + + + + + diff --git a/sites/tomtomgames.com/public_html/bump_version.php b/sites/tomtomgames.com/public_html/bump_version.php new file mode 100644 index 0000000..2d2b8e2 --- /dev/null +++ b/sites/tomtomgames.com/public_html/bump_version.php @@ -0,0 +1,52 @@ + 'Forbidden']); + exit; +} + +require_once __DIR__ . '/../includes/db.php'; + +// Get current version +$current = db()->query("SELECT version FROM app_version ORDER BY id DESC LIMIT 1")->fetchColumn() ?: '1.0.0'; +[$major, $minor, $patch] = array_map('intval', explode('.', $current)); + +// Determine new version +if (!empty($_GET['version'])) { + $newVersion = trim($_GET['version']); +} elseif (!empty($_GET['bump'])) { + switch ($_GET['bump']) { + case 'major': $newVersion = ($major+1).'.0.0'; break; + case 'minor': $newVersion = $major.'.'.($minor+1).'.0'; break; + default: $newVersion = $major.'.'.$minor.'.'.($patch+1); break; + } +} else { + // Default: bump patch + $newVersion = $major.'.'.$minor.'.'.($patch+1); +} + +$notes = trim($_GET['notes'] ?? 'Build ' . date('Y-m-d H:i:s')); + +db()->prepare("INSERT INTO app_version (version, notes) VALUES (?, ?)") + ->execute([$newVersion, $notes]); + +header('Content-Type: application/json'); +echo json_encode([ + 'success' => true, + 'previous' => $current, + 'new_version' => $newVersion, + 'notes' => $notes, + 'timestamp' => date('Y-m-d H:i:s'), +]); diff --git a/sites/tomtomgames.com/public_html/config/vhost/vhost.conf b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf new file mode 100755 index 0000000..b82c1cc --- /dev/null +++ b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf @@ -0,0 +1,91 @@ +docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@tomtomgames.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:tomto8868 php +} + +extprocessor tomto8868 { + type lsapi + address UDS://tmp/lshttpd/tomto8868.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser tomto8868 + extGroup tomto8868 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/tomtomgames.com/privkey.pem + certFile /etc/letsencrypt/live/tomtomgames.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} diff --git a/sites/tomtomgames.com/public_html/config/vhost/vhost.conf.txt b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf.txt new file mode 100755 index 0000000..2c3f7e7 --- /dev/null +++ b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf.txt @@ -0,0 +1,85 @@ +adminemails admin@tomtomgames.com +enablegzip 1 +vhaliases www.$VH_NAME +docroot $VH_ROOT/public_html +vhdomain $VH_NAME +enableipgeo 1 +phpinioverride + +scripthandler { + add lsapi:tomto8868 php +} + +extprocessor tomto8868 { + type lsapi + address UDS://tmp/lshttpd/tomto8868.sock + maxconns 10 + env LSAPI_CHILDREN=10 + inittimeout 600 + retrytimeout 0 + persistconn 1 + pckeepalivetimeout 1 + respbuffer 0 + autostart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extuser tomto8868 + extgroup tomto8868 + memsoftlimit 1024M + memhardlimit 1024M + procsoftlimit 400 + prochardlimit 500 +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useserver 0 + loglevel WARN + rollingsize 10M +} + +vhssl { + keyfile /etc/letsencrypt/live/tomtomgames.com/privkey.pem + certfile /etc/letsencrypt/live/tomtomgames.com/fullchain.pem + certchain 1 + sslprotocol 24 + enableecdhe 1 + renegprotection 1 + sslsessioncache 1 + enablespdy 15 + enablestapling 1 + ocsprespmaxage 86400 +} + +index { + useserver 0 + indexfiles index.php, index.html +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + keepdays 10 + compressarchive 1 + logformat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logheaders 5 + rollingsize 10M + useserver 0 +} + +module cache { + param storagepath /usr/local/lsws/cachedata/$VH_NAME + unknownkeywords storagepath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoloadhtaccess 1 +} + +context /.well-known/acme-challenge { + adddefaultcharset off + phpinioverride + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowbrowse 1 + + rewrite { + enable 0 + } +} diff --git a/sites/tomtomgames.com/public_html/config/vhost/vhost.conf0 b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf0 new file mode 100755 index 0000000..b82c1cc --- /dev/null +++ b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf0 @@ -0,0 +1,91 @@ +docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@tomtomgames.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:tomto8868 php +} + +extprocessor tomto8868 { + type lsapi + address UDS://tmp/lshttpd/tomto8868.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser tomto8868 + extGroup tomto8868 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/tomtomgames.com/privkey.pem + certFile /etc/letsencrypt/live/tomtomgames.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} diff --git a/sites/tomtomgames.com/public_html/config/vhost/vhost.conf0,v b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf0,v new file mode 100755 index 0000000..9b2b861 --- /dev/null +++ b/sites/tomtomgames.com/public_html/config/vhost/vhost.conf0,v @@ -0,0 +1,130 @@ +head 1.2; +access; +symbols; +locks + root:1.2; strict; +comment @# @; + + +1.2 +date 2026.05.16.13.11.17; author root; state Exp; +branches; +next 1.1; + +1.1 +date 2026.05.15.20.01.17; author root; state Exp; +branches; +next ; + + +desc +@/usr/local/lsws/conf/vhosts/tomtomgames.com/vhost.conf0 +@ + + +1.2 +log +@Update +@ +text +@docRoot $VH_ROOT/public_html +vhDomain $VH_NAME +vhAliases www.$VH_NAME +adminEmails admin@@tomtomgames.com +enableGzip 1 +enableIpGeo 1 + +index { + useServer 0 + indexFiles index.php, index.html +} + +errorlog $VH_ROOT/logs/$VH_NAME.error_log { + useServer 0 + logLevel WARN + rollingSize 10M +} + +accesslog $VH_ROOT/logs/$VH_NAME.access_log { + useServer 0 + logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" + logHeaders 5 + rollingSize 10M + keepDays 10 + compressArchive 1 +} + +scripthandler { + add lsapi:tomto8868 php +} + +extprocessor tomto8868 { + type lsapi + address UDS://tmp/lshttpd/tomto8868.sock + maxConns 10 + env LSAPI_CHILDREN=10 + initTimeout 600 + retryTimeout 0 + persistConn 1 + pcKeepAliveTimeout 1 + respBuffer 0 + autoStart 1 + path /usr/local/lsws/lsphp85/bin/lsphp + extUser tomto8868 + extGroup tomto8868 + memSoftLimit 1024M + memHardLimit 1024M + procSoftLimit 400 + procHardLimit 500 +} + +phpIniOverride { + +} + +module cache { + storagePath /usr/local/lsws/cachedata/$VH_NAME +} + +rewrite { + enable 1 + autoLoadHtaccess 1 +} + +context /.well-known/acme-challenge { + location /usr/local/lsws/Example/html/.well-known/acme-challenge + allowBrowse 1 + + rewrite { + enable 0 + } + addDefaultCharset off + + phpIniOverride { + + } +} + + +vhssl { + keyFile /etc/letsencrypt/live/tomtomgames.com/privkey.pem + certFile /etc/letsencrypt/live/tomtomgames.com/fullchain.pem + certChain 1 + sslProtocol 24 + enableECDHE 1 + renegProtection 1 + sslSessionCache 1 + enableSpdy 15 + enableStapling 1 + ocspRespMaxAge 86400 +} +@ + + +1.1 +log +@Update +@ +text +@d79 13 +@ diff --git a/sites/tomtomgames.com/public_html/db/schema.sql b/sites/tomtomgames.com/public_html/db/schema.sql new file mode 100644 index 0000000..9a5c8cc --- /dev/null +++ b/sites/tomtomgames.com/public_html/db/schema.sql @@ -0,0 +1,453 @@ +/*M!999999\- enable the sandbox mode */ + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +DROP TABLE IF EXISTS `activity_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `activity_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL, + `admin_id` int(11) DEFAULT NULL, + `action` varchar(80) NOT NULL, + `category` varchar(40) DEFAULT 'general', + `entity_type` varchar(40) DEFAULT NULL, + `entity_id` int(11) DEFAULT NULL, + `detail` text DEFAULT NULL, + `old_value` text DEFAULT NULL, + `new_value` text DEFAULT NULL, + `ip` varchar(45) DEFAULT NULL, + `user_agent` varchar(300) DEFAULT NULL, + `page` varchar(200) DEFAULT NULL, + `session_id` varchar(64) DEFAULT NULL, + `severity` enum('info','warning','critical') DEFAULT 'info', + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_created` (`created_at`), + KEY `idx_user` (`user_id`) +) ENGINE=InnoDB AUTO_INCREMENT=356 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `admin_payout_settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_payout_settings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `method_key` varchar(50) NOT NULL, + `label` varchar(100) NOT NULL, + `method_type` enum('manual','square_gift_card') DEFAULT 'manual', + `is_enabled` tinyint(1) DEFAULT 1, + `handle` varchar(200) DEFAULT NULL, + `instructions` text DEFAULT NULL, + `sort_order` int(11) DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `method_key` (`method_key`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `app_version`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `app_version` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `version` varchar(20) NOT NULL, + `notes` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `broadcast_reads`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `broadcast_reads` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `broadcast_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `read_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_br` (`broadcast_id`,`user_id`), + KEY `user_id` (`user_id`), + CONSTRAINT `broadcast_reads_ibfk_1` FOREIGN KEY (`broadcast_id`) REFERENCES `broadcasts` (`id`) ON DELETE CASCADE, + CONSTRAINT `broadcast_reads_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `broadcast_replies`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `broadcast_replies` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `broadcast_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `message` text NOT NULL, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `broadcast_id` (`broadcast_id`), + KEY `user_id` (`user_id`), + CONSTRAINT `broadcast_replies_ibfk_1` FOREIGN KEY (`broadcast_id`) REFERENCES `broadcasts` (`id`) ON DELETE CASCADE, + CONSTRAINT `broadcast_replies_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `broadcasts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `broadcasts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `admin_id` int(11) NOT NULL, + `subject` varchar(200) NOT NULL, + `message` text NOT NULL, + `target` enum('all','verified','unverified','admins') DEFAULT 'all', + `sent_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `admin_id` (`admin_id`), + CONSTRAINT `broadcasts_ibfk_1` FOREIGN KEY (`admin_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `cashout_method_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `cashout_method_types` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `slug` varchar(50) NOT NULL, + `label` varchar(100) NOT NULL, + `icon` varchar(10) DEFAULT '?', + `description` varchar(200) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `sort_order` int(11) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `slug` (`slug`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `cashout_requests`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `cashout_requests` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `platform_id` varchar(50) NOT NULL, + `alias` varchar(100) NOT NULL, + `payout_method_type` varchar(50) DEFAULT NULL, + `payout_handle` varchar(200) DEFAULT NULL, + `tokens` decimal(10,2) NOT NULL, + `status` enum('pending','approved','sent','rejected','deleted') DEFAULT 'pending', + `admin_note` text DEFAULT NULL, + `sent_note` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + `resolved_at` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `cashout_requests_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `cashout_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `cashout_transactions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `cashout_id` int(11) NOT NULL, + `admin_id` int(11) NOT NULL, + `payout_method` varchar(50) NOT NULL, + `payout_type` enum('manual','square_gift_card') DEFAULT 'manual', + `amount_cents` int(11) NOT NULL, + `square_txn_id` varchar(200) DEFAULT NULL, + `gift_card_gan` varchar(100) DEFAULT NULL, + `gift_card_balance` int(11) DEFAULT NULL, + `note` text DEFAULT NULL, + `status` enum('pending','completed','failed') DEFAULT 'pending', + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `cashout_id` (`cashout_id`), + CONSTRAINT `cashout_transactions_ibfk_1` FOREIGN KEY (`cashout_id`) REFERENCES `cashout_requests` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `chat_messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `chat_messages` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `sender` enum('user','admin') NOT NULL, + `message` text NOT NULL, + `is_read` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `chat_messages_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `game_aliases`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `game_aliases` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `platform_slug` varchar(50) NOT NULL, + `alias` varchar(100) NOT NULL, + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_user_platform` (`user_id`,`platform_slug`), + CONSTRAINT `game_aliases_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `payment_settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `payment_settings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `method_key` varchar(50) NOT NULL, + `label` varchar(100) NOT NULL, + `is_enabled` tinyint(1) DEFAULT 1, + `handle` varchar(200) DEFAULT NULL, + `instructions` text DEFAULT NULL, + `sort_order` int(11) DEFAULT 0, + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `method_key` (`method_key`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `payout_methods`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `payout_methods` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `method_type` varchar(50) NOT NULL, + `label` varchar(100) NOT NULL, + `account_handle` varchar(200) NOT NULL, + `is_default` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `payout_methods_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `pending_registrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `pending_registrations` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(50) NOT NULL, + `password` varchar(255) NOT NULL, + `alias` varchar(100) NOT NULL, + `email` varchar(150) NOT NULL, + `token` varchar(64) NOT NULL, + `expires_at` datetime NOT NULL, + `created_at` datetime DEFAULT current_timestamp(), + `referred_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `token` (`token`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `platform_accounts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `platform_accounts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `platform_slug` varchar(50) NOT NULL, + `requested_at` datetime DEFAULT current_timestamp(), + `status` enum('pending','approved','denied','deleted') DEFAULT 'pending', + `platform_username` varchar(100) DEFAULT NULL, + `platform_password` varchar(200) DEFAULT NULL, + `admin_note` varchar(300) DEFAULT NULL, + `resolved_at` datetime DEFAULT NULL, + `admin_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uq_user_platform` (`user_id`,`platform_slug`), + CONSTRAINT `platform_accounts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `platforms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `platforms` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `slug` varchar(50) NOT NULL, + `name` varchar(100) NOT NULL, + `player_url` varchar(500) NOT NULL, + `console_url` varchar(500) DEFAULT NULL, + `color` varchar(20) DEFAULT '#f0c040', + `icon_path` varchar(200) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `sort_order` int(11) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `slug` (`slug`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `platform_credits`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `platform_credits` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `platform_id` int(11) NOT NULL, + `credits_purchased` decimal(12,2) NOT NULL DEFAULT 0.00, + `credit_date` date NOT NULL, + `payment_method` varchar(100) DEFAULT NULL, + `notes` text DEFAULT NULL, + `type` enum('credit','debit') NOT NULL DEFAULT 'credit', + `purchase_ref_id` int(11) DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `platform_id` (`platform_id`), + KEY `credit_date` (`credit_date`), + KEY `idx_pc_type` (`type`), + KEY `idx_pc_ref` (`purchase_ref_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `referral_social_shares`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `referral_social_shares` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `platform` varchar(50) NOT NULL, + `bonus_tokens` decimal(10,2) DEFAULT 0.00, + `share_url` varchar(500) DEFAULT NULL, + `auto_verified` tinyint(1) DEFAULT 0, + `verify_result` varchar(100) DEFAULT NULL, + `status` enum('pending','approved','denied') DEFAULT 'pending', + `admin_id` int(11) DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + `resolved_at` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `referral_social_shares_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `referral_tiers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `referral_tiers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `min_referrals` int(11) NOT NULL DEFAULT 1, + `tokens_per_ref` decimal(10,2) NOT NULL DEFAULT 10.00, + `bonus_tokens` decimal(10,2) NOT NULL DEFAULT 0.00, + `description` varchar(300) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `sort_order` int(11) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `referrals`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `referrals` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `referrer_id` int(11) NOT NULL, + `referred_id` int(11) NOT NULL, + `tier_id` int(11) DEFAULT NULL, + `status` enum('pending','verified','denied','deleted') DEFAULT 'pending', + `tokens_awarded` decimal(10,2) DEFAULT 0.00, + `admin_id` int(11) DEFAULT NULL, + `admin_note` varchar(300) DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + `resolved_at` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `referred_id` (`referred_id`), + KEY `referrer_id` (`referrer_id`), + CONSTRAINT `referrals_ibfk_1` FOREIGN KEY (`referrer_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `referrals_ibfk_2` FOREIGN KEY (`referred_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `saved_billing`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `saved_billing` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `first_name` varchar(80) DEFAULT NULL, + `last_name` varchar(80) DEFAULT NULL, + `email` varchar(150) DEFAULT NULL, + `address` varchar(200) DEFAULT NULL, + `city` varchar(80) DEFAULT NULL, + `state` varchar(2) DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `card_brand` varchar(30) DEFAULT NULL, + `card_last4` varchar(4) DEFAULT NULL, + `card_exp_month` varchar(2) DEFAULT NULL, + `card_exp_year` varchar(4) DEFAULT NULL, + `sq_card_id` varchar(255) DEFAULT NULL, + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `saved_billing_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `token_purchases`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `token_purchases` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `tokens` int(11) NOT NULL, + `amount_cents` int(11) NOT NULL, + `payment_method` varchar(20) DEFAULT 'card', + `square_payment_id` varchar(255) DEFAULT NULL, + `platform_id` varchar(50) DEFAULT NULL, + `game_alias` varchar(100) DEFAULT NULL, + `player_name` varchar(100) DEFAULT NULL, + `billing_name` varchar(160) DEFAULT NULL, + `billing_address` varchar(200) DEFAULT NULL, + `billing_city` varchar(80) DEFAULT NULL, + `billing_state` varchar(2) DEFAULT NULL, + `billing_zip` varchar(10) DEFAULT NULL, + `billing_email` varchar(150) DEFAULT NULL, + `is_custom` tinyint(1) DEFAULT 0, + `failure_reason` text DEFAULT NULL, + `card_brand` varchar(30) DEFAULT NULL, + `card_last4` varchar(4) DEFAULT NULL, + `receipt_url` varchar(512) DEFAULT NULL, + `status` enum('pending','completed','failed') DEFAULT 'pending', + `admin_note` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `token_purchases_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(50) NOT NULL, + `password` varchar(255) NOT NULL, + `alias` varchar(100) NOT NULL, + `email` varchar(150) DEFAULT NULL, + `email_verified` tinyint(1) DEFAULT 0, + `tokens` decimal(10,2) DEFAULT 0.00, + `is_admin` tinyint(1) DEFAULT 0, + `status` enum('active','suspended') DEFAULT 'active', + `created_at` datetime DEFAULT current_timestamp(), + `last_login` datetime DEFAULT NULL, + `onboarding_done` tinyint(1) DEFAULT 0, + `platform_onboarding_done` tinyint(1) DEFAULT 0, + `referral_code` varchar(20) DEFAULT NULL, + `referred_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `username` (`username`), + UNIQUE KEY `email` (`email`), + UNIQUE KEY `referral_code` (`referral_code`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + diff --git a/sites/tomtomgames.com/public_html/favicon.ico b/sites/tomtomgames.com/public_html/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ef9c61649366bd296d35e51c2f75986466bd7f86 GIT binary patch literal 136 zcmZQzU<5(|0R|wcz)-}%z#s<1odJICyj)UTKqjxJhf5HU2C85X;9vui@}K`F0x3&R z7srr_TgeFvOn(#{cxWFvt01w + + + T + \ No newline at end of file diff --git a/sites/tomtomgames.com/public_html/games/index.php b/sites/tomtomgames.com/public_html/games/index.php new file mode 100644 index 0000000..87004dd --- /dev/null +++ b/sites/tomtomgames.com/public_html/games/index.php @@ -0,0 +1,232 @@ + + + + + + +Buy Fish Table Game Tokens | VBlink777, Fire Kirin, Milky Way | TomTomGames + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Buy Game Tokens for Fish Table & Skill Games

+

The fastest, most trusted way to load up on tokens for VBlink777, Fire Kirin, Milky Way, Ultra Panda, Panda Master, Noble777, and eGame99.

+ 🪙 Buy Tokens Now +
+ 🔒 SSL Secured + ⚡ Instant Delivery + 💳 Multiple Payment Methods + 💬 24/7 Support + 🎮 7 Game Platforms +
+
+
+ +
+
+

Supported Game Platforms

+

Buy tokens for all major fish table and skill game platforms in one place.

+
+
+

VBlink777

+

One of the most popular fish table games. Buy VBlink777 tokens securely and get them credited fast to your game account.

+ Buy VBlink777 Tokens → +
+
+

Fire Kirin

+

Fire Kirin is a top-rated skill game with exciting fish table gameplay. Purchase Fire Kirin tokens through TomTomGames for instant delivery.

+ Buy Fire Kirin Tokens → +
+
+

Milky Way

+

Milky Way 777 game credits — buy tokens for one of the best online fish table platforms. Secure payment, fast top-up.

+ Buy Milky Way Tokens → +
+
+

Ultra Panda

+

Ultra Panda game tokens for sale. Top up your account instantly through our secure portal and start playing right away.

+ Buy Ultra Panda Tokens → +
+
+

Panda Master

+

Panda Master tokens — buy game credits quickly and safely. Multiple payment methods accepted including card, Venmo, and Cash App.

+ Buy Panda Master Tokens → +
+
+

Noble 777

+

Noble 777 game token purchases made easy. Register, select your package, and have tokens in your account within minutes.

+ Buy Noble 777 Tokens → +
+
+

eGame99

+

eGame99 tokens for sale at the best rates. Fast crediting, 24/7 customer support, and a seamless buying experience.

+ Buy eGame99 Tokens → +
+
+
+
+ +
+
+

How to Buy Tokens in 3 Steps

+

Get tokens credited to your game account in minutes.

+
+
+
1
+

Create Account

+

Register free in under 60 seconds. Verify your email and log in.

+
+
+
2
+

Select Game & Package

+

Choose your game platform, enter your in-game alias, and pick a token package — or enter a custom amount.

+
+
+
3
+

Pay & Play

+

Pay securely by card or manual transfer. Tokens are credited to your game account fast.

+
+
+
+

Accepted Payment Methods

+
+
💳 Credit / Debit Card
+
💙 Venmo
+
💚 Cash App
+
🟢 Chime
+
💜 Zelle
+
+
+
+
+ +
+
+

Frequently Asked Questions

+

Everything you need to know about buying game tokens.

+
+
+

What is TomTomGames?

+

TomTomGames is a token portal that lets you purchase game credits for popular fish table and skill games including VBlink777, Fire Kirin, Milky Way, Ultra Panda, Panda Master, Noble777, and eGame99. We handle the token purchase securely so you can focus on playing.

+
+
+

How quickly are tokens delivered?

+

Card payments are processed instantly through Square. Manual payments (Venmo, Zelle, Cash App, Chime) are credited within a few minutes after we confirm receipt of your payment.

+
+
+

How much do tokens cost?

+

Tokens are priced at $1 per token. We offer packages starting from 5 tokens ($5) up to 100 tokens ($100), or you can enter a custom amount up to $500. Volume packages are available — contact support for details.

+
+
+

Is my payment information secure?

+

Yes. All card transactions are processed through Square, a fully PCI-compliant payment processor. We never store your full card number. Manual payment methods require no card details at all.

+
+
+

What if I need help?

+

Our support team is available 24/7 through the live chat feature inside the app. You can also send a message through your account and we'll respond within minutes.

+
+
+

Can I cash out my tokens?

+

Yes. You can request a cashout through your account and receive your funds via your preferred payment method. Cashouts are processed by our team promptly.

+
+
+ +
+
+ +
+
+

TomTomGames — Your trusted token portal for fish table and skill games.

+

Home · Games · Support

+

© TomTomGames. All rights reserved. Game tokens are for entertainment purposes on supported platforms only. Please play responsibly.

+
+
+ + + diff --git a/sites/tomtomgames.com/public_html/get_location.php b/sites/tomtomgames.com/public_html/get_location.php new file mode 100644 index 0000000..cac2f09 --- /dev/null +++ b/sites/tomtomgames.com/public_html/get_location.php @@ -0,0 +1,108 @@ + true, + CURLOPT_HTTPHEADER => [ + 'Authorization: Bearer ' . $token, + 'Square-Version: 2024-01-18', + 'Content-Type: application/json', + ], + CURLOPT_TIMEOUT => 15, +]); +$resp = curl_exec($ch); +$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); +curl_close($ch); + +if ($code === 200) { + $data = json_decode($resp, true); + $locations = $data['locations'] ?? []; +} else { + $error = "HTTP $code: " . htmlspecialchars($resp); +} +?> + + + + + +Square Location ID Finder + + + +

🔑 Square Location Finder

+
TomGames — Run once, then delete this file
+ + +
Error fetching locations:
+ +
No locations found on this Square account.
+ +

Found location(s). Copy the ID for your main location:

+ +
+
+
+
+ +
+
+ + · + Currency: · + Country: +
+
+ + + + + +
⚠️ Security: Delete get_location.php from your server after use. It exposes your access token.
+ + + + diff --git a/sites/tomtomgames.com/public_html/index.php b/sites/tomtomgames.com/public_html/index.php new file mode 100644 index 0000000..5e3f4c6 --- /dev/null +++ b/sites/tomtomgames.com/public_html/index.php @@ -0,0 +1,3416 @@ + + + + + + + + + + + + + + +TomTomGames — Buy Game Tokens | VBlink777, Fire Kirin, Milky Way & More + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + diff --git a/sites/tomtomgames.com/public_html/manifest.json b/sites/tomtomgames.com/public_html/manifest.json new file mode 100644 index 0000000..b6df8ee --- /dev/null +++ b/sites/tomtomgames.com/public_html/manifest.json @@ -0,0 +1,43 @@ +{ + "name": "TomTomGames — Game Token Portal", + "short_name": "TomTomGames", + "description": "Buy tokens for VBlink777, Fire Kirin, Milky Way, Ultra Panda, Panda Master, Noble777 and eGame99. Fast, secure, mobile-first.", + "start_url": "/", + "display": "standalone", + "background_color": "#0a0a12", + "theme_color": "#f0c040", + "orientation": "portrait", + "scope": "/", + "lang": "en-US", + "categories": ["games", "entertainment"], + "icons": [ + { + "src": "/assets/img/icon-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/assets/img/icon-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ], + "shortcuts": [ + { + "name": "Buy Tokens", + "short_name": "Buy", + "description": "Buy game tokens instantly", + "url": "/?action=buy", + "icons": [{ "src": "/assets/img/icon-192.png", "sizes": "192x192" }] + }, + { + "name": "Support", + "short_name": "Help", + "description": "Contact TomTomGames support", + "url": "/?action=chat", + "icons": [{ "src": "/assets/img/icon-192.png", "sizes": "192x192" }] + } + ] +} diff --git a/sites/tomtomgames.com/public_html/reset_password.php b/sites/tomtomgames.com/public_html/reset_password.php new file mode 100644 index 0000000..6d603b5 --- /dev/null +++ b/sites/tomtomgames.com/public_html/reset_password.php @@ -0,0 +1,113 @@ +prepare( + "SELECT * FROM pending_registrations WHERE token=? AND username='__reset__' AND expires_at > NOW()" + ); + $stmt->execute([$token]); + $pending = $stmt->fetch(); +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $token = trim($_POST['token'] ?? ''); + $password = $_POST['password'] ?? ''; + $confirm = $_POST['confirm'] ?? ''; + + // Re-fetch pending row inside POST to prevent token reuse after expiry + $stmt = db()->prepare( + "SELECT * FROM pending_registrations WHERE token=? AND username='__reset__' AND expires_at > NOW()" + ); + $stmt->execute([$token]); + $pending = $stmt->fetch(); + + if (!$pending) { + $error = 'This reset link has expired or already been used. Please request a new one.'; + } elseif (strlen($password) < 6) { + $error = 'Password must be at least 6 characters.'; + } elseif ($password !== $confirm) { + $error = 'Passwords do not match.'; + } else { + $hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 8]); + $updated = db()->prepare("UPDATE users SET password=? WHERE email=?") + ->execute([$hash, $pending['email']]); + db()->prepare("DELETE FROM pending_registrations WHERE token=?")->execute([$token]); + $success = true; + $pending = null; + } +} +?> + + + + + +<?= SITE_NAME ?> — Reset Password + + + + +
+ + + + +
Password Updated!
+

Your password has been reset successfully. You can now log in with your new password.

+ BACK TO LOGIN + + + +
Invalid Link
+

This password reset link is invalid or has expired.
Please request a new one from the app.

+ BACK TO HOME + + +
Reset Password
+

Enter a new password for your account.

+ + +
+ + +
+ +
+ + +
+
+ + +
+ +
+ +
+ + diff --git a/sites/tomtomgames.com/public_html/robots.txt b/sites/tomtomgames.com/public_html/robots.txt new file mode 100644 index 0000000..297f710 --- /dev/null +++ b/sites/tomtomgames.com/public_html/robots.txt @@ -0,0 +1,23 @@ +User-agent: * +Allow: / +Allow: /assets/ +Disallow: /admin/ +Disallow: /api/ +Disallow: /install.php +Disallow: /test.php +Disallow: /test_login.php +Disallow: /get_location.php +Disallow: /?q= + +# Block AI training bots (optional but protects content) +User-agent: GPTBot +Disallow: / + +User-agent: Google-Extended +Disallow: / + +User-agent: CCBot +Disallow: / + +# Sitemap +Sitemap: https://tomtomgames.com/sitemap.xml diff --git a/sites/tomtomgames.com/public_html/scripts/ttg-backup.sh b/sites/tomtomgames.com/public_html/scripts/ttg-backup.sh new file mode 100644 index 0000000..d6958dc --- /dev/null +++ b/sites/tomtomgames.com/public_html/scripts/ttg-backup.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# TomTomGames automated backup — runs daily at 2 AM via cron +# Cron entry: 0 2 * * * /usr/local/bin/ttg-backup.sh >> /home/tomtomgames.com/backups/backup.log 2>&1 + +BACKUP_DIR="/home/tomtomgames.com/backups" +SITE_DIR="/home/tomtomgames.com/public_html" +DB_NAME="tomt_ttg_db" +DB_USER="tomt_ttg_user" +DB_PASS='q#q+mrOcozsa7I6J' +DATE=$(date +%Y-%m-%d_%H-%M-%S) +SQL_FILE="/tmp/ttg_db_${DATE}.sql" +ZIP_FILE="${BACKUP_DIR}/ttg_backup_${DATE}.zip" + +mkdir -p "$BACKUP_DIR" +echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting backup..." + +# Export database +/usr/bin/mysqldump -u "$DB_USER" "-p${DB_PASS}" "$DB_NAME" > "$SQL_FILE" 2>/dev/null +if [ $? -ne 0 ] || [ ! -s "$SQL_FILE" ]; then + echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: Database export failed" + rm -f "$SQL_FILE" + exit 1 +fi +echo "[$(date '+%Y-%m-%d %H:%M:%S')] Database exported ($(du -sh "$SQL_FILE" | cut -f1))" + +# Create zip archive (site files + db dump) +/usr/bin/zip -r "$ZIP_FILE" "$SITE_DIR" "$SQL_FILE" -x "*/backups/*" > /dev/null 2>&1 +RC=$? +rm -f "$SQL_FILE" + +if [ $RC -ne 0 ] || [ ! -f "$ZIP_FILE" ]; then + echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: Archive creation failed" + rm -f "$ZIP_FILE" + exit 1 +fi +echo "[$(date '+%Y-%m-%d %H:%M:%S')] Archive created: $(basename "$ZIP_FILE") ($(du -sh "$ZIP_FILE" | cut -f1))" + +# Keep only the 7 most recent backups +ls -t "${BACKUP_DIR}"/ttg_backup_*.zip 2>/dev/null | tail -n +8 | while read old; do + rm -f "$old" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] Pruned old backup: $(basename "$old")" +done + +echo "[$(date '+%Y-%m-%d %H:%M:%S')] Backup complete." diff --git a/sites/tomtomgames.com/public_html/sitemap.xml b/sites/tomtomgames.com/public_html/sitemap.xml new file mode 100644 index 0000000..661c133 --- /dev/null +++ b/sites/tomtomgames.com/public_html/sitemap.xml @@ -0,0 +1,21 @@ + + + + + + https://tomtomgames.com/ + 2026-05-19 + daily + 1.0 + + + + + https://tomtomgames.com/games/ + 2026-05-19 + weekly + 0.9 + + + diff --git a/sites/tomtomgames.com/public_html/verify.php b/sites/tomtomgames.com/public_html/verify.php new file mode 100644 index 0000000..e2d8d37 --- /dev/null +++ b/sites/tomtomgames.com/public_html/verify.php @@ -0,0 +1,66 @@ + + + + + + +<?= SITE_NAME ?> — Email Verified + + + + + + + +
+ + + + 🎉 +
Account Verified!
+

+ Welcome to , !

+ Your account is active and you've been automatically logged in. Let's play! +

+ 🎮 ENTER TOMTOMGAMES +

Redirecting in 4 seconds...

+ + + + +
Verification Failed
+

+ REGISTER AGAIN + BACK TO HOME + +
+ + diff --git a/sites/tomtomgames.com/public_html/webhook.php b/sites/tomtomgames.com/public_html/webhook.php new file mode 100644 index 0000000..16e2eef --- /dev/null +++ b/sites/tomtomgames.com/public_html/webhook.php @@ -0,0 +1,63 @@ + 'Webhook not configured']); + exit; +} +define('DEPLOY_QUEUE', '/tmp/jarvis-deploy-queue.txt'); +define('DEPLOY_LOG', '/home/tomtomgames.com/logs/deploy.log'); + +header('Content-Type: application/json'); + +$payload = file_get_contents('php://input'); +$sig = $_SERVER['HTTP_X_HUB_SIGNATURE_256'] ?? ''; +$expected = 'sha256=' . hash_hmac('sha256', $payload, WEBHOOK_SECRET); + +if (!hash_equals($expected, $sig)) { + http_response_code(403); + echo json_encode(['error' => 'Invalid signature']); + exit; +} + +$data = json_decode($payload, true); +$repo = $data['repository']['name'] ?? ''; +$ref = $data['ref'] ?? ''; +$pusher = $data['pusher']['name'] ?? 'unknown'; + +// Only deploy on pushes to main +if ($ref !== 'refs/heads/main') { + echo json_encode(['ok' => true, 'skipped' => "ref $ref is not main"]); + exit; +} + +$repoMap = [ + 'tomtomgames' => '/home/tomtomgames.com/public_html', + 'tomsjavajive' => '/home/tomsjavajive.com/public_html', + 'epictravelexpeditions' => '/home/epictravelexpeditions.com/public_html', + 'parkerslingshotrentals' => '/home/parkerslingshotrentals.com/public_html', + 'orbishosting' => '/home/orbishosting.com/public_html', + 'orbis-hosting-portal' => '/home/orbis.orbishosting.com/public_html', +]; + +if (!isset($repoMap[$repo])) { + http_response_code(404); + echo json_encode(['error' => "Unknown repo: $repo"]); + exit; +} + +$path = $repoMap[$repo]; +$ts = date('Y-m-d H:i:s'); + +file_put_contents(DEPLOY_QUEUE, $path . "\n", FILE_APPEND | LOCK_EX); +file_put_contents(DEPLOY_LOG, "[$ts] Queued deploy: $repo by $pusher -> $path\n", FILE_APPEND | LOCK_EX); + +echo json_encode(['ok' => true, 'queued' => $repo, 'path' => $path]); diff --git a/sites/worktracking.orbishosting.com/public_html/.gitignore b/sites/worktracking.orbishosting.com/public_html/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/sites/worktracking.orbishosting.com/public_html/.htaccess b/sites/worktracking.orbishosting.com/public_html/.htaccess new file mode 100644 index 0000000..e404086 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/.htaccess @@ -0,0 +1,30 @@ +# Work Tracking - Security Configuration + +Options -Indexes -Includes +ServerSignature Off + + + RewriteEngine On + + # Block sensitive paths and file types - RewriteRule confirmed to actually + # work on this OpenLiteSpeed setup, unlike /Order,Deny which + # is not honored here. + RewriteCond %{REQUEST_URI} ^/(\.git|includes/|config) + RewriteRule .* - [F,L] + RewriteCond %{REQUEST_URI} \.(sql|env|log|bak|backup|old|orig|tmp|swp|py)$ + RewriteRule .* - [F,L] + + # Canonical HTTPS + RewriteCond %{HTTPS} off + RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] + + + + Header always set X-Content-Type-Options "nosniff" + Header always set X-Frame-Options "DENY" + Header always set X-XSS-Protection "1; mode=block" + Header always set Referrer-Policy "strict-origin-when-cross-origin" + Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" + Header unset Server + Header unset X-Powered-By + diff --git a/sites/worktracking.orbishosting.com/public_html/admin/history.php b/sites/worktracking.orbishosting.com/public_html/admin/history.php new file mode 100644 index 0000000..1f3dcc4 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/admin/history.php @@ -0,0 +1,45 @@ +fetchAll(" + SELECT ws.worker_id, ws.week_start, ws.paid_at, w.name + FROM week_settlements ws + JOIN workers w ON w.id = ws.worker_id + WHERE ws.paid = 1 + ORDER BY ws.week_start DESC, w.name ASC +"); + +$owedByRow = []; +foreach ($rows as $i => $r) { + $dates = getWeekDates($r['week_start']); + $placeholders = implode(',', array_fill(0, count($dates), '?')); + $entries = db()->query("SELECT * FROM day_entries WHERE worker_id = ? AND work_date IN ({$placeholders})", array_merge([$r['worker_id']], $dates))->fetchAll(); + $owedByRow[$i] = calcOwed($entries); +} + +$pageTitle = 'Full History - ChuckCo Time Keeper'; +require_once __DIR__ . '/../includes/header.php'; +?> +
+

Full Payment History

+ ← Back +
+
+
+

All Paid Weeks

+ +

No paid weeks yet.

+ + $r): ?> + + + +
+
+ diff --git a/sites/worktracking.orbishosting.com/public_html/admin/index.php b/sites/worktracking.orbishosting.com/public_html/admin/index.php new file mode 100644 index 0000000..6808b04 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/admin/index.php @@ -0,0 +1,100 @@ +insert('workers', [ + 'name' => $name, + 'entry_token' => generateToken(), + 'share_token' => generateToken(), + 'payer_token' => generateToken(), + ]); + } + header('Location: /admin/index.php'); + exit; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'delete_worker') { + $workerId = (int) ($_POST['worker_id'] ?? 0); + if ($workerId > 0) { + // day_entries and week_settlements both have ON DELETE CASCADE on worker_id, + // so deleting the worker row removes all their related data too. + db()->query("DELETE FROM workers WHERE id = :id", ['id' => $workerId]); + } + header('Location: /admin/index.php'); + exit; +} + +$workers = db()->fetchAll("SELECT * FROM workers WHERE active = 1 ORDER BY name ASC"); + +$owedByWorker = []; +$rows = db()->fetchAll(" + SELECT de.worker_id, + SUM(CASE WHEN de.status='full' THEN " . FULL_DAY_RATE . " WHEN de.status='half' THEN " . HALF_DAY_RATE . " ELSE 0 END) AS owed + FROM day_entries de + LEFT JOIN week_settlements ws ON ws.worker_id = de.worker_id AND ws.week_start = de.week_start + WHERE ws.paid IS NULL OR ws.paid = 0 + GROUP BY de.worker_id +"); +foreach ($rows as $r) { + $owedByWorker[$r['worker_id']] = (float) $r['owed']; +} + +$pageTitle = 'Admin Dashboard - ChuckCo Time Keeper'; +require_once __DIR__ . '/../includes/header.php'; +?> +
+

ChuckCo Time Keeper

+ Log out +
+
+ +
+

All Workers Overview

+

One link showing everyone's current week together.

+ Open All-Workers View + Full History (Everyone) +
+ +
+

Add Worker

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

Workers

+ +

No workers yet. Add one above.

+ + +
+
+ + owed +
+ +
+ + +
+ +
+ diff --git a/sites/worktracking.orbishosting.com/public_html/admin/login.php b/sites/worktracking.orbishosting.com/public_html/admin/login.php new file mode 100644 index 0000000..b6570cf --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/admin/login.php @@ -0,0 +1,39 @@ + +
+
+

ChuckCo Time Keeper

+ +
+ +
+
+ + +
+ +
+
+
+ diff --git a/sites/worktracking.orbishosting.com/public_html/admin/logout.php b/sites/worktracking.orbishosting.com/public_html/admin/logout.php new file mode 100644 index 0000000..76b288a --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/admin/logout.php @@ -0,0 +1,5 @@ +fetch("SELECT * FROM workers WHERE id = :id", ['id' => $workerId]); +if (!$worker) { + header('Location: /admin/index.php'); + exit; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $action = $_POST['action'] ?? ''; + + if ($action === 'set_day') { + $date = $_POST['date'] ?? ''; + $status = $_POST['status'] ?? ''; + $reason = trim($_POST['reason'] ?? ''); + $location = trim($_POST['location'] ?? ''); + if (in_array($status, ['full', 'half', 'absent'], true) && $date) { + $weekStart = getWeekStart($date); + db()->query(" + INSERT INTO day_entries (worker_id, work_date, week_start, status, absence_reason, location) + VALUES (:wid, :date, :week, :status, :reason, :location) + ON DUPLICATE KEY UPDATE status = :status2, absence_reason = :reason2, location = :location2, week_start = :week2 + ", [ + 'wid' => $workerId, 'date' => $date, 'week' => $weekStart, + 'status' => $status, 'reason' => $reason ?: null, 'location' => $location ?: null, + 'status2' => $status, 'reason2' => $reason ?: null, 'location2' => $location ?: null, 'week2' => $weekStart, + ]); + } + header('Location: /admin/worker.php?id=' . $workerId); + exit; + } + + if ($action === 'clear_day') { + $date = $_POST['date'] ?? ''; + db()->query("DELETE FROM day_entries WHERE worker_id = :wid AND work_date = :date", ['wid' => $workerId, 'date' => $date]); + header('Location: /admin/worker.php?id=' . $workerId); + exit; + } + + if ($action === 'toggle_paid') { + $weekStart = $_POST['week_start'] ?? ''; + $existing = db()->fetch("SELECT * FROM week_settlements WHERE worker_id = :wid AND week_start = :w", ['wid' => $workerId, 'w' => $weekStart]); + if ($existing) { + $newPaid = $existing['paid'] ? 0 : 1; + db()->update('week_settlements', ['paid' => $newPaid, 'paid_at' => $newPaid ? date('Y-m-d H:i:s') : null], 'id = :id', ['id' => $existing['id']]); + } else { + db()->insert('week_settlements', ['worker_id' => $workerId, 'week_start' => $weekStart, 'paid' => 1, 'paid_at' => date('Y-m-d H:i:s')]); + } + header('Location: /admin/worker.php?id=' . $workerId); + exit; + } +} + +// Gather all weeks that have entries, plus the current week even if empty +$weekStarts = db()->fetchAll("SELECT DISTINCT week_start FROM day_entries WHERE worker_id = :wid ORDER BY week_start DESC", ['wid' => $workerId]); +$weekStartList = array_column($weekStarts, 'week_start'); +if (!in_array(currentWeekStart(), $weekStartList, true)) { + array_unshift($weekStartList, currentWeekStart()); +} +rsort($weekStartList); + +$settlements = db()->fetchAll("SELECT * FROM week_settlements WHERE worker_id = :wid", ['wid' => $workerId]); +$paidMap = []; +foreach ($settlements as $s) { $paidMap[$s['week_start']] = (bool) $s['paid']; } + +$allEntries = db()->fetchAll("SELECT * FROM day_entries WHERE worker_id = :wid", ['wid' => $workerId]); +$entriesByDate = []; +foreach ($allEntries as $en) { $entriesByDate[$en['work_date']] = $en; } + +$pageTitle = $worker['name'] . ' - ChuckCo Time Keeper'; +require_once __DIR__ . '/../includes/header.php'; +?> +
+

+ ← Back +
+
+ + + + +
+
+

Week of

+ +
+ + +
+
+
+ +
+ + +
+ +
+
+ + +
+ + + +
+
+ +
+
+ +
+
+
+ + +
+ Owed + +
+
+ + + +
+
+ + +
+ diff --git a/sites/worktracking.orbishosting.com/public_html/all.php b/sites/worktracking.orbishosting.com/public_html/all.php new file mode 100644 index 0000000..aeb2c7a --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/all.php @@ -0,0 +1,71 @@ +fetchAll("SELECT * FROM workers WHERE active = 1 ORDER BY name ASC"); + +$placeholders = implode(',', array_fill(0, count($dates), '?')); +$allEntries = db()->query("SELECT * FROM day_entries WHERE work_date IN ({$placeholders})", $dates)->fetchAll(); +$entriesByWorkerDate = []; +foreach ($allEntries as $en) { $entriesByWorkerDate[$en['worker_id']][$en['work_date']] = $en; } + +$settlements = db()->fetchAll("SELECT worker_id, paid FROM week_settlements WHERE week_start = :w", ['w' => $weekStart]); +$paidByWorker = []; +foreach ($settlements as $s) { $paidByWorker[$s['worker_id']] = (bool) $s['paid']; } + +$pageTitle = 'All Workers - ChuckCo Time Keeper'; +require_once __DIR__ . '/includes/header.php'; +?> +
+
+

Week of

+
+ + + + + + + + + + + + + + + + + + + + + +
Workerformat('D')) ?>OwedStatus
+ + +
+ +
+
+
+
+ diff --git a/sites/worktracking.orbishosting.com/public_html/assets/style.css b/sites/worktracking.orbishosting.com/public_html/assets/style.css new file mode 100644 index 0000000..2c159b3 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/assets/style.css @@ -0,0 +1,278 @@ +:root { + --bg: #f5f6f8; + --card: #ffffff; + --border: #e2e5ea; + --text: #1c1f26; + --text-muted: #6b7280; + --primary: #2563eb; + --primary-dark: #1d4ed8; + --success: #16a34a; + --warning: #d97706; + --error: #dc2626; + --radius: 12px; + --caution: #f5a623; + --caution-dark: #1a1a1a; +} + +* { box-sizing: border-box; } + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + background: var(--bg); + color: var(--text); + line-height: 1.5; +} + +.container { + max-width: 720px; + margin: 0 auto; + padding: 1.25rem 1rem 3rem; +} + +.brand-strip { + background: var(--caution-dark); + color: var(--caution); + text-align: center; + font-size: 0.8rem; + font-weight: 700; + letter-spacing: 0.3px; + padding: 0.4rem; +} +.brand-strip span { color: #f4f4f4; } +.brand-strip b { color: var(--caution); } + +.topbar { + background: var(--card); + border-bottom: 1px solid var(--border); + padding: 0.9rem 1rem; + display: flex; + align-items: center; + justify-content: space-between; + position: relative; +} + +.topbar::after { + content: ''; + position: absolute; + bottom: -4px; left: 0; right: 0; + height: 4px; + background: repeating-linear-gradient( + 45deg, + var(--caution), + var(--caution) 6px, + var(--caution-dark) 6px, + var(--caution-dark) 12px + ); +} + +.topbar h1 { + font-size: 1.1rem; + margin: 0; +} + +.topbar a.logout { + color: var(--text-muted); + font-size: 0.85rem; + text-decoration: none; +} + +.card { + position: relative; + background: var(--card); + border: 1px solid var(--border); + border-top: none; + border-radius: var(--radius); + padding: 1.1rem; + margin-bottom: 1rem; + overflow: hidden; +} + +.card::before { + content: ''; + position: absolute; + top: 0; left: 0; right: 0; + height: 5px; + background: repeating-linear-gradient( + 45deg, + var(--caution), + var(--caution) 8px, + var(--caution-dark) 8px, + var(--caution-dark) 16px + ); +} + +.card h2, .card h3 { + margin-top: 0; +} + +.btn { + display: inline-block; + padding: 0.65rem 1.1rem; + border-radius: 9px; + border: none; + font-size: 0.95rem; + font-weight: 600; + text-decoration: none; + cursor: pointer; + text-align: center; +} + +.btn-primary { background: var(--primary); color: #fff; } +.btn-primary:hover { background: var(--primary-dark); } +.btn-secondary { background: #eef0f3; color: var(--text); } +.btn-success { background: var(--success); color: #fff; } +.btn-block { display: block; width: 100%; } +.btn-sm { padding: 0.4rem 0.75rem; font-size: 0.8rem; } + +.form-group { margin-bottom: 0.9rem; } +.form-label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.3rem; color: var(--text-muted); } +.form-input { + width: 100%; + padding: 0.6rem 0.75rem; + border: 1px solid var(--border); + border-radius: 8px; + font-size: 1rem; +} + +.worker-row { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.75rem 0; + border-bottom: 1px solid var(--border); + flex-wrap: wrap; + gap: 0.5rem; +} +.worker-row:last-child { border-bottom: none; } +.worker-name { font-weight: 600; } +.worker-owed { color: var(--success); font-weight: 700; } + +.link-row { + display: flex; + gap: 0.4rem; + flex-wrap: wrap; + margin-top: 0.4rem; +} + +.badge { + display: inline-block; + padding: 0.15rem 0.55rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 700; +} +.badge-full { background: rgba(22,163,74,.12); color: var(--success); } +.badge-half { background: rgba(217,119,6,.12); color: var(--warning); } +.badge-absent { background: rgba(220,38,38,.12); color: var(--error); } +.badge-unset { background: #eef0f3; color: var(--text-muted); } + +.day-tap { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.9rem; + border: 1px solid var(--border); + border-radius: 10px; + margin-bottom: 0.6rem; +} +.day-tap .date { font-weight: 600; } +.day-tap .actions { display: flex; gap: 0.4rem; } +.day-btn-row { + display: flex; + gap: 0.5rem; + width: 100%; +} +.day-btn { + flex: 1; + min-width: 0; + white-space: normal; + overflow-wrap: break-word; + padding: 0.6rem 0.3rem; + border-radius: 8px; + border: 1px solid var(--border); + background: #fff; + color: var(--text); + font-size: 0.8rem; + font-weight: 700; + cursor: pointer; + text-align: center; + line-height: 1.2; +} +.day-field-row { + width: 100%; + margin-top: 0.5rem; +} +.day-field-row .form-input { + width: 100%; +} +.day-btn.active-full { background: var(--success); color: #fff; border-color: var(--success); } +.day-btn.active-half { background: var(--warning); color: #fff; border-color: var(--warning); } +.day-btn.active-absent { background: var(--error); color: #fff; border-color: var(--error); } + +.reason-text { font-size: 0.85rem; color: var(--text-muted); margin-top: 0.4rem; } + +.text-muted { color: var(--text-muted); } +.text-center { text-align: center; } + +.alert { + padding: 0.75rem 1rem; + border-radius: 10px; + margin-bottom: 1rem; + font-size: 0.9rem; +} +.alert-error { background: rgba(220,38,38,.08); color: var(--error); } +.alert-success { background: rgba(22,163,74,.08); color: var(--success); } + +/* Screenshot page - sized for iPhone screenshot */ +.screenshot-card { + position: relative; + max-width: 390px; + margin: 1rem auto; + background: var(--card); + border-radius: 18px; + padding: 1.75rem 1.5rem 1.5rem; + box-shadow: 0 2px 12px rgba(0,0,0,.06); + overflow: hidden; +} + +.screenshot-card::before { + content: ''; + position: absolute; + top: 0; left: 0; right: 0; + height: 6px; + background: repeating-linear-gradient( + 45deg, + var(--caution), + var(--caution) 8px, + var(--caution-dark) 8px, + var(--caution-dark) 16px + ); +} +.screenshot-header { text-align: center; margin-bottom: 1.25rem; } +.screenshot-header .name { font-size: 1.4rem; font-weight: 800; } +.screenshot-header .range { color: var(--text-muted); font-size: 0.9rem; margin-top: 0.2rem; } +.screenshot-day { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.7rem 0; + border-bottom: 1px solid var(--border); +} +.screenshot-day:last-child { border-bottom: none; } +.screenshot-day .date { font-weight: 600; } +.more-link { text-align: center; margin-top: 1rem; } +.more-link a { color: var(--primary); font-size: 0.85rem; text-decoration: none; font-weight: 600; } + +.owed-total { + margin-top: 1rem; + padding-top: 1rem; + border-top: 2px solid var(--border); + display: flex; + justify-content: space-between; + font-weight: 800; + font-size: 1.1rem; +} + +table.all-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; } +table.all-table th, table.all-table td { padding: 0.5rem; text-align: left; border-bottom: 1px solid var(--border); } diff --git a/sites/worktracking.orbishosting.com/public_html/history.php b/sites/worktracking.orbishosting.com/public_html/history.php new file mode 100644 index 0000000..15ed6b9 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/history.php @@ -0,0 +1,51 @@ +fetch("SELECT * FROM workers WHERE payer_token = :t AND active = 1", ['t' => $token]) : null; + +if (!$worker) { + http_response_code(404); + echo 'Link not found.'; + exit; +} + +$paidWeeks = db()->fetchAll(" + SELECT week_start, paid_at FROM week_settlements + WHERE worker_id = :wid AND paid = 1 + ORDER BY week_start DESC +", ['wid' => $worker['id']]); + +$owedByWeek = []; +foreach ($paidWeeks as $pw) { + $dates = getWeekDates($pw['week_start']); + $placeholders = implode(',', array_fill(0, count($dates), '?')); + $entries = db()->query("SELECT * FROM day_entries WHERE worker_id = ? AND work_date IN ({$placeholders})", array_merge([$worker['id']], $dates))->fetchAll(); + $owedByWeek[$pw['week_start']] = calcOwed($entries); +} + +$pageTitle = 'Payment History - ChuckCo Time Keeper'; +require_once __DIR__ . '/includes/header.php'; +?> +
+

- History

+ ← Back +
+
+
+

Paid Weeks

+ +

No paid weeks yet.

+ + + + + +
+
+ diff --git a/sites/worktracking.orbishosting.com/public_html/includes/auth.php b/sites/worktracking.orbishosting.com/public_html/includes/auth.php new file mode 100644 index 0000000..aaff6c8 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/includes/auth.php @@ -0,0 +1,62 @@ +query("DELETE FROM login_attempts WHERE ip_address = :ip", ['ip' => $ip]); + $_SESSION['wt_admin'] = true; + session_regenerate_id(true); + return true; + } + + self::recordFailure($ip); + return false; + } + + public static function isLockedOut(string $ip): bool { + $row = db()->fetch("SELECT * FROM login_attempts WHERE ip_address = :ip", ['ip' => $ip]); + if (!$row || (int) $row['attempts'] < self::MAX_ATTEMPTS) { + return false; + } + $lockoutUntil = strtotime($row['last_attempt']) + self::LOCKOUT_MINUTES * 60; + return time() < $lockoutUntil; + } + + private static function recordFailure(string $ip): void { + $row = db()->fetch("SELECT * FROM login_attempts WHERE ip_address = :ip", ['ip' => $ip]); + if ($row) { + $lockoutUntil = strtotime($row['last_attempt']) + self::LOCKOUT_MINUTES * 60; + // Reset the counter once the previous lockout window has fully expired. + $attempts = (time() < $lockoutUntil) ? (int) $row['attempts'] + 1 : 1; + db()->update('login_attempts', ['attempts' => $attempts, 'last_attempt' => date('Y-m-d H:i:s')], 'ip_address = :ip', ['ip' => $ip]); + } else { + db()->insert('login_attempts', ['ip_address' => $ip, 'attempts' => 1, 'last_attempt' => date('Y-m-d H:i:s')]); + } + } + + public static function isLoggedIn(): bool { + return !empty($_SESSION['wt_admin']); + } + + public static function require(): void { + if (!self::isLoggedIn()) { + header('Location: /admin/login.php'); + exit; + } + } + + public static function logout(): void { + unset($_SESSION['wt_admin']); + session_regenerate_id(true); + } +} diff --git a/sites/worktracking.orbishosting.com/public_html/includes/db.php b/sites/worktracking.orbishosting.com/public_html/includes/db.php new file mode 100644 index 0000000..9f5b9b4 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/includes/db.php @@ -0,0 +1,57 @@ + PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]); + } + return self::$pdo; + } + + public function query(string $sql, array $params = []): PDOStatement { + $stmt = self::get()->prepare($sql); + $stmt->execute($params); + return $stmt; + } + + public function fetch(string $sql, array $params = []): ?array { + $row = $this->query($sql, $params)->fetch(); + return $row ?: null; + } + + public function fetchAll(string $sql, array $params = []): array { + return $this->query($sql, $params)->fetchAll(); + } + + public function insert(string $table, array $data) { + $columns = implode(', ', array_keys($data)); + $placeholders = ':' . implode(', :', array_keys($data)); + $this->query("INSERT INTO {$table} ({$columns}) VALUES ({$placeholders})", $data); + return self::get()->lastInsertId(); + } + + public function update(string $table, array $data, string $where, array $whereParams = []) { + $set = []; + foreach (array_keys($data) as $column) { + $set[] = "{$column} = :{$column}"; + } + $sql = "UPDATE {$table} SET " . implode(', ', $set) . " WHERE {$where}"; + return $this->query($sql, array_merge($data, $whereParams))->rowCount(); + } +} + +function db(): Database { + static $instance = null; + if ($instance === null) { + $instance = new Database(); + } + return $instance; +} diff --git a/sites/worktracking.orbishosting.com/public_html/includes/footer.php b/sites/worktracking.orbishosting.com/public_html/includes/footer.php new file mode 100644 index 0000000..308b1d0 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/includes/footer.php @@ -0,0 +1,2 @@ + + diff --git a/sites/worktracking.orbishosting.com/public_html/includes/functions.php b/sites/worktracking.orbishosting.com/public_html/includes/functions.php new file mode 100644 index 0000000..caf7343 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/includes/functions.php @@ -0,0 +1,95 @@ +format('N'); // 1=Mon ... 5=Fri, 6=Sat, 7=Sun + if ($dow === 5) { + // Friday itself + return $d->format('Y-m-d'); + } elseif ($dow === 6) { + // Saturday - previous day is Friday + $d->modify('-1 day'); + return $d->format('Y-m-d'); + } elseif ($dow === 7) { + // Sunday - 2 days back is Friday + $d->modify('-2 days'); + return $d->format('Y-m-d'); + } else { + // Mon(1)->Fri is 3 days prior; Tue(2)->4; Wed(3)->5; Thu(4)->6 + $daysBack = $dow + 2; + $d->modify("-{$daysBack} days"); + return $d->format('Y-m-d'); + } +} + +/** + * Returns the 5 workdate strings (Y-m-d) for the week starting on $weekStart (a Friday), + * in order: Friday, Monday, Tuesday, Wednesday, Thursday. + */ +function getWeekDates(string $weekStart): array { + $fri = new DateTime($weekStart); + $dates = [$fri->format('Y-m-d')]; + $d = clone $fri; + $d->modify('+3 days'); // Monday + for ($i = 0; $i < 4; $i++) { + $dates[] = $d->format('Y-m-d'); + $d->modify('+1 day'); + } + return $dates; +} + +function dayLabel(string $dateStr): string { + $d = new DateTime($dateStr); + return $d->format('D, M j'); +} + +function currentWeekStart(): string { + return getWeekStart(date('Y-m-d')); +} + +function nextWeekStart(string $weekStart): string { + $d = new DateTime($weekStart); + $d->modify('+7 days'); + return $d->format('Y-m-d'); +} + +/** + * Compute the dollar amount owed for a set of day_entries rows. + */ +function calcOwed(array $entries): float { + $total = 0.0; + foreach ($entries as $e) { + if ($e['status'] === 'full') $total += FULL_DAY_RATE; + elseif ($e['status'] === 'half') $total += HALF_DAY_RATE; + } + return $total; +} + +function e(string $s): string { + return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); +} + +/** + * Validates a Y-m-d date string strictly (rejects malformed input that + * would otherwise throw when passed to `new DateTime()`). + */ +function isValidDateStr(?string $s): bool { + if (!$s) return false; + $d = DateTime::createFromFormat('Y-m-d', $s); + return $d !== false && $d->format('Y-m-d') === $s; +} diff --git a/sites/worktracking.orbishosting.com/public_html/includes/header.php b/sites/worktracking.orbishosting.com/public_html/includes/header.php new file mode 100644 index 0000000..5a66d96 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/includes/header.php @@ -0,0 +1,14 @@ + + + + + + + + + +<?= e($pageTitle) ?> + + + +
👷 ChuckCo Time Keeper
diff --git a/sites/worktracking.orbishosting.com/public_html/index.html b/sites/worktracking.orbishosting.com/public_html/index.html new file mode 100644 index 0000000..8402c68 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/index.html @@ -0,0 +1,85 @@ + + + + + + + + +ChuckCo Time Keeper + + + +
+
+
+
+
👷
+
ChuckCo Time Keeper
+
+ + diff --git a/sites/worktracking.orbishosting.com/public_html/p.php b/sites/worktracking.orbishosting.com/public_html/p.php new file mode 100644 index 0000000..55f6c8f --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/p.php @@ -0,0 +1,111 @@ +fetch("SELECT * FROM workers WHERE payer_token = :t AND active = 1", ['t' => $token]) : null; + +if (!$worker) { + http_response_code(404); + echo 'Link not found.'; + exit; +} + +$markPaidError = ''; +if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'mark_paid' && isValidDateStr($_POST['week_start'] ?? '')) { + $weekStart = $_POST['week_start']; + $weekDates = getWeekDates($weekStart); + $ph = implode(',', array_fill(0, count($weekDates), '?')); + $weekEntries = db()->query("SELECT work_date FROM day_entries WHERE worker_id = ? AND work_date IN ({$ph})", array_merge([$worker['id']], $weekDates))->fetchAll(); + $filledDates = array_column($weekEntries, 'work_date'); + $missing = array_diff($weekDates, $filledDates); + + if (!empty($missing)) { + $markPaidError = 'Cannot mark paid - ' . count($missing) . ' day(s) still need an entry.'; + } else { + $existing = db()->fetch("SELECT * FROM week_settlements WHERE worker_id = :wid AND week_start = :w", ['wid' => $worker['id'], 'w' => $weekStart]); + if ($existing) { + db()->update('week_settlements', ['paid' => 1, 'paid_at' => date('Y-m-d H:i:s')], 'id = :id', ['id' => $existing['id']]); + } else { + db()->insert('week_settlements', ['worker_id' => $worker['id'], 'week_start' => $weekStart, 'paid' => 1, 'paid_at' => date('Y-m-d H:i:s')]); + } + header('Location: /p.php?t=' . urlencode($token) . '&week=' . urlencode(nextWeekStart($weekStart))); + exit; + } +} + +$weekStart = $_GET['week'] ?? ''; +$weekStart = isValidDateStr($weekStart) ? $weekStart : currentWeekStart(); +$dates = getWeekDates($weekStart); +$detail = !empty($_GET['detail']); + +$placeholders = implode(',', array_fill(0, count($dates), '?')); +$entries = db()->query("SELECT * FROM day_entries WHERE worker_id = ? AND work_date IN ({$placeholders})", array_merge([$worker['id']], $dates))->fetchAll(); +$entriesByDate = []; +foreach ($entries as $en) { $entriesByDate[$en['work_date']] = $en; } + +$owed = calcOwed($entries); +$settlement = db()->fetch("SELECT * FROM week_settlements WHERE worker_id = :wid AND week_start = :w", ['wid' => $worker['id'], 'w' => $weekStart]); +$isPaid = $settlement ? (bool) $settlement['paid'] : false; + +$hasLongReason = false; +foreach ($entriesByDate as $en) { + if (!empty($en['absence_reason']) && strlen($en['absence_reason']) > 40) $hasLongReason = true; +} + +$pageTitle = 'Week Summary (Payer) - ChuckCo Time Keeper'; +require_once __DIR__ . '/includes/header.php'; +?> +
+
+
+
+
Week of ·
+
+ + +
+
+
+ +
+ + +
40 ? substr($reason, 0, 40) . '…' : $reason)) ?>
+ +
+ +
+ + +
+ Owed + +
+ + + + + + + + +
+ + +
+ + + +
+ + +
+
+ diff --git a/sites/worktracking.orbishosting.com/public_html/s.php b/sites/worktracking.orbishosting.com/public_html/s.php new file mode 100644 index 0000000..506facf --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/s.php @@ -0,0 +1,65 @@ +fetch("SELECT * FROM workers WHERE share_token = :t AND active = 1", ['t' => $token]) : null; + +if (!$worker) { + http_response_code(404); + echo 'Link not found.'; + exit; +} + +$weekStart = $_GET['week'] ?? ''; +$weekStart = isValidDateStr($weekStart) ? $weekStart : currentWeekStart(); +$dates = getWeekDates($weekStart); +$detail = !empty($_GET['detail']); + +$placeholders = implode(',', array_fill(0, count($dates), '?')); +$entries = db()->query("SELECT * FROM day_entries WHERE worker_id = ? AND work_date IN ({$placeholders})", array_merge([$worker['id']], $dates))->fetchAll(); +$entriesByDate = []; +foreach ($entries as $en) { $entriesByDate[$en['work_date']] = $en; } + +$hasLongReason = false; +foreach ($entriesByDate as $en) { + if (!empty($en['absence_reason']) && strlen($en['absence_reason']) > 40) $hasLongReason = true; +} + +$pageTitle = 'Week Summary - ChuckCo Time Keeper'; +require_once __DIR__ . '/includes/header.php'; +?> +
+
+
+
+
Week of
+
+ + +
+
+
+ +
+ + +
40 ? substr($reason, 0, 40) . '…' : $reason)) ?>
+ +
+ +
+ + + + + + + +
+
+ diff --git a/sites/worktracking.orbishosting.com/public_html/w-history.php b/sites/worktracking.orbishosting.com/public_html/w-history.php new file mode 100644 index 0000000..49d32c9 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/w-history.php @@ -0,0 +1,61 @@ +fetch("SELECT * FROM workers WHERE entry_token = :t AND active = 1", ['t' => $token]) : null; + +if (!$worker) { + http_response_code(404); + echo 'Link not found.'; + exit; +} + +$paidWeeks = db()->fetchAll(" + SELECT week_start, paid_at FROM week_settlements + WHERE worker_id = :wid AND paid = 1 + ORDER BY week_start DESC +", ['wid' => $worker['id']]); + +$pageTitle = 'My History - ChuckCo Time Keeper'; +require_once __DIR__ . '/includes/header.php'; +?> +
+

My History

+ ← Back +
+
+
+

Paid Weeks

+ +

No paid weeks yet.

+ + + query("SELECT * FROM day_entries WHERE worker_id = ? AND work_date IN ({$placeholders})", array_merge([$worker['id']], $dates))->fetchAll(); + $entriesByDate = []; + foreach ($entries as $en) { $entriesByDate[$en['work_date']] = $en; } + ?> +
+

Week of

+ +
+
+
+ +
+ +
+ +
+ +
+ + +
+
+ diff --git a/sites/worktracking.orbishosting.com/public_html/w.php b/sites/worktracking.orbishosting.com/public_html/w.php new file mode 100644 index 0000000..6cbbbd4 --- /dev/null +++ b/sites/worktracking.orbishosting.com/public_html/w.php @@ -0,0 +1,177 @@ +fetch("SELECT * FROM workers WHERE entry_token = :t AND active = 1", ['t' => $token]) : null; + +if (!$worker) { + http_response_code(404); + echo 'Link not found.'; + exit; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'set_day') { + $date = $_POST['date'] ?? ''; + $status = $_POST['status'] ?? ''; + $reason = trim($_POST['reason'] ?? ''); + $location = trim($_POST['location'] ?? ''); + $currentWeek = currentWeekStart(); + // Only allow editing the current week's dates via this self-entry page + if (in_array($status, ['full', 'half', 'absent'], true) && in_array($date, getWeekDates($currentWeek), true)) { + db()->query(" + INSERT INTO day_entries (worker_id, work_date, week_start, status, absence_reason, location) + VALUES (:wid, :date, :week, :status, :reason, :location) + ON DUPLICATE KEY UPDATE status = :status2, absence_reason = :reason2, location = :location2 + ", [ + 'wid' => $worker['id'], 'date' => $date, 'week' => $currentWeek, + 'status' => $status, 'reason' => $reason ?: null, 'location' => $location ?: null, + 'status2' => $status, 'reason2' => $reason ?: null, 'location2' => $location ?: null, + ]); + } + header('Location: /w.php?t=' . urlencode($token)); + exit; +} + +$markPaidError = ''; +if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'mark_paid' && ($_POST['week_start'] ?? '') === currentWeekStart()) { + $weekStart = currentWeekStart(); + $weekDates = getWeekDates($weekStart); + $ph = implode(',', array_fill(0, count($weekDates), '?')); + $weekEntries = db()->query("SELECT work_date FROM day_entries WHERE worker_id = ? AND work_date IN ({$ph})", array_merge([$worker['id']], $weekDates))->fetchAll(); + $filledDates = array_column($weekEntries, 'work_date'); + $missing = array_diff($weekDates, $filledDates); + + if (!empty($missing)) { + $markPaidError = 'Cannot mark paid - ' . count($missing) . ' day(s) still need an entry.'; + } else { + $existing = db()->fetch("SELECT * FROM week_settlements WHERE worker_id = :wid AND week_start = :w", ['wid' => $worker['id'], 'w' => $weekStart]); + if ($existing) { + db()->update('week_settlements', ['paid' => 1, 'paid_at' => date('Y-m-d H:i:s')], 'id = :id', ['id' => $existing['id']]); + } else { + db()->insert('week_settlements', ['worker_id' => $worker['id'], 'week_start' => $weekStart, 'paid' => 1, 'paid_at' => date('Y-m-d H:i:s')]); + } + header('Location: /w.php?t=' . urlencode($token)); + exit; + } +} + +$currentWeek = currentWeekStart(); +$currentDates = getWeekDates($currentWeek); + +$currentSettlement = db()->fetch("SELECT * FROM week_settlements WHERE worker_id = :wid AND week_start = :w", ['wid' => $worker['id'], 'w' => $currentWeek]); +$currentWeekPaid = $currentSettlement ? (bool) $currentSettlement['paid'] : false; + +$allEntries = db()->fetchAll("SELECT * FROM day_entries WHERE worker_id = :wid ORDER BY work_date DESC", ['wid' => $worker['id']]); +$entriesByDate = []; +foreach ($allEntries as $en) { $entriesByDate[$en['work_date']] = $en; } + +// Past 2 weeks (read-only), excluding current +$pastWeeks = []; +foreach ($allEntries as $en) { + if ($en['week_start'] !== $currentWeek && !in_array($en['week_start'], $pastWeeks, true)) { + $pastWeeks[] = $en['week_start']; + } +} +rsort($pastWeeks); +$pastWeeks = array_slice($pastWeeks, 0, 2); + +$pageTitle = 'My Work Week - ChuckCo Time Keeper'; +require_once __DIR__ . '/includes/header.php'; +?> +
+

Hi,

+
+
+ +
+
+

This Week —

+ + Paid + +
+ + + +
+
+
+ +
+ +
+ +
+ +

This week is locked in. Come back next week to enter new days.

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

Week of

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

Shopping Cart

+ + +
+ +
+ + +
+
+
+ +
+ + <?= htmlspecialchars($item['name']) ?> + +
+ +

+
+

each

+
+ +
+ + + +
+ +
+

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

Order Summary

+
+
+
+ Subtotal + +
+
+ Shipping + + + FREE + + + + +
+ + 0 && isset($shippingSettings['free_shipping_threshold'])): + $remaining = $shippingSettings['free_shipping_threshold'] - $subtotal; + ?> +

+ + Add more for FREE shipping! +

+ + +
+ +
+ Total + +
+ + + Proceed to Checkout + + + + Continue Shopping + +
+
+
+ +
+

9nQk2kh<>HgOZtfef;vdf?(X84k}Z$BaPmIMZY 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