{"id":156,"date":"2026-05-11T15:42:42","date_gmt":"2026-05-11T15:42:42","guid":{"rendered":"https:\/\/cashchat.se\/dir\/?page_id=156"},"modified":"2026-05-11T17:08:54","modified_gmt":"2026-05-11T17:08:54","slug":"staginga","status":"publish","type":"page","link":"https:\/\/cashchat.se\/dir\/staginga\/","title":{"rendered":"StagingA"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n    <title>Adase Ads Ltd \u2013 International Share Certificate &#038; SMM Hub<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,300;400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:wght@400;500;600;700&#038;family=Alex+Brush&#038;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\n    <style>\n        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; }\n        body { background: #eef2f5; padding: 20px; }\n        .main-container { max-width: 1400px; margin: 0 auto; background: white; border-radius: 28px; box-shadow: 0 25px 45px -12px rgba(0,0,0,0.2); overflow: hidden; }\n        .global-ticker-wrap { background: #0a0f2c; padding: 0.6rem 0; overflow: hidden; white-space: nowrap; border-bottom: 2px solid #f5c542; border-top: 2px solid #f5c542; }\n        .global-ticker { display: inline-block; animation: scrollTicker 38s linear infinite; }\n        .global-ticker-item { display: inline-block; background: #1a2349; margin-right: 1.8rem; padding: 0.3rem 1.2rem; border-radius: 40px; font-size: 0.8rem; color: #f0eef7; font-weight: 500; }\n        .global-ticker-item.buy { background: #1f6032; border-left: 3px solid #f5c542; }\n        @keyframes scrollTicker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }\n        .tabs { display: flex; flex-wrap: wrap; background: #f8fafc; border-bottom: 1px solid #e2edf2; }\n        .tab-btn { flex: 1; background: none; border: none; padding: 15px 12px; font-size: 0.85rem; font-weight: 700; cursor: pointer; transition: 0.2s; color: #1e2a3e; letter-spacing: -0.2px; }\n        .tab-btn:hover { background: #eef2ff; color: #0f2b3d; }\n        .tab-btn.active { background: white; color: #b8860b; border-bottom: 3px solid #b8860b; }\n        .tab-content { display: none; background: white; padding: 32px 38px; }\n        .tab-content.active { display: block; }\n        @media (max-width: 780px) { .tab-content { padding: 20px; } .tab-btn { padding: 10px 6px; font-size: 0.7rem; } }\n        .btn-sm { padding: 8px 22px; border-radius: 60px; font-weight: 600; font-size: 0.85rem; border: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: 0.2s; }\n        .btn-primary { background: linear-gradient(105deg, #1e3c72, #2a5298); color: white; box-shadow: 0 4px 8px rgba(0,0,0,0.05); }\n        .btn-lemon { background: #f5c542; color: #1a2c3e; font-weight: 700; }\n        .card { background: rgba(255,255,255,0.96); border-radius: 32px; padding: 28px; margin-bottom: 28px; border: 1px solid #e9edf2; box-shadow: 0 12px 28px -8px rgba(0,0,0,0.05); }\n        .flex-between { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }\n        .badge { background: linear-gradient(135deg, #eef2ff, #fae8d2); color: #7b4b0e; padding: 6px 14px; border-radius: 60px; font-size: 0.75rem; font-weight: 700; }\n        input, select, textarea { width: 100%; padding: 12px 20px; border-radius: 40px; border: 1px solid #cfdfed; background: white; font-size: 0.9rem; margin: 8px 0 14px; outline: none; transition: 0.2s; }\n        input:focus { border-color: #b8860b; box-shadow: 0 0 0 3px rgba(184,134,11,0.1); }\n        table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }\n        th, td { padding: 14px 12px; text-align: left; border-bottom: 1px solid #eef2ff; }\n        .footer { margin-top: 60px; padding: 40px 0 30px; border-top: 1px solid rgba(100,80,50,0.2); text-align: center; background: #fefaf5; border-radius: 40px 40px 0 0; }\n        .modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.65); backdrop-filter: blur(5px); z-index: 1000; align-items: center; justify-content: center; }\n        .modal-content { background: white; max-width: 550px; width: 90%; border-radius: 36px; padding: 28px; }\n        \n        \/* SHARE CERTIFICATE INTERNATIONAL DESIGN *\/\n        .certificate-gold {\n            background: linear-gradient(145deg, #fffef7 0%, #fff9e8 100%);\n            border: 12px double #d4af37;\n            border-radius: 28px;\n            padding: 28px 32px;\n            position: relative;\n            box-shadow: 0 25px 40px -12px rgba(0,0,0,0.2);\n            font-family: 'Cormorant Garamond', serif;\n        }\n        .certificate-watermark {\n            position: relative;\n            background: url('data:image\/svg+xml;utf8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 100 100\"><path fill=\"rgba(212,175,55,0.04)\" d=\"M50,15 L62,35 L85,38 L68,55 L72,78 L50,67 L28,78 L32,55 L15,38 L38,35 Z\"\/><\/svg>') repeat;\n            background-size: 80px;\n        }\n        .cert-seal {\n            position: absolute;\n            bottom: 35px;\n            right: 35px;\n            width: 100px;\n            height: 100px;\n            background: radial-gradient(circle, #f3e5ab, #d4af37);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 1.8rem;\n            font-weight: bold;\n            color: #2c2b26;\n            border: 3px solid #a67c00;\n            box-shadow: 0 4px 12px rgba(0,0,0,0.2);\n            font-family: 'Alex Brush', cursive;\n            transform: rotate(-6deg);\n        }\n        .cert-title {\n            font-size: 2.7rem;\n            font-weight: 800;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n            color: #b8860b;\n            text-align: center;\n            border-bottom: 2px solid #e5c687;\n            display: inline-block;\n            width: auto;\n            padding-bottom: 8px;\n            margin-bottom: 20px;\n            font-family: 'Cormorant Garamond', serif;\n        }\n        .cert-sub {\n            font-size: 1rem;\n            text-align: center;\n            font-variant: small-caps;\n            letter-spacing: 1px;\n        }\n        .cert-rect {\n            background: #fffbf0;\n            margin: 25px 0;\n            padding: 25px 20px;\n            border-radius: 20px;\n            border: 1px solid #e9d6a3;\n        }\n        .share-detail {\n            font-family: 'Inter', sans-serif;\n            background: rgba(212,175,55,0.08);\n            padding: 12px 18px;\n            border-radius: 60px;\n            font-weight: 600;\n        }\n        .signature-area {\n            display: flex;\n            justify-content: space-between;\n            margin-top: 40px;\n            gap: 40px;\n            flex-wrap: wrap;\n        }\n        .sign-line { border-top: 1px solid #8b7a4b; width: 200px; margin-top: 30px; padding-top: 8px; font-size: 0.75rem; text-align: center; color: #5a4a2a; }\n        .print-btn { background: #2d2b26; color: #ffeaac; border: none; border-radius: 60px; padding: 10px 24px; font-weight: 600; cursor: pointer; transition: 0.2s; }\n        .cert-number-code { font-family: monospace; background: #fdf3df; padding: 6px 16px; border-radius: 60px; display: inline-block; }\n        .btn-soft { background: #e9ecef; border-radius: 60px; padding: 6px 18px; border: none; cursor: pointer; }\n        @media print {\n            body { background: white; padding: 0; }\n            .tabs, .global-ticker-wrap, .tab-btn, .footer, .controls-bar, .btn-sm, .btn-primary, .print-btn { display: none; }\n            .tab-content { display: block !important; padding: 0; }\n            .certificate-gold { box-shadow: none; border: 2px solid #b8860b; }\n        }\n        .services-dashboard .controls-bar { background: #fef9ef; border-radius: 60px; padding: 12px 20px; margin-top: 20px; }\n        .buy-btn { background: #0f172a; border: none; padding: 8px 20px; border-radius: 40px; color: white; font-weight: 600; }\n        .price-highlight { font-weight: 800; background: #fdefc3; display: inline-block; padding: 4px 12px; border-radius: 32px; }\n    <\/style>\n<\/head>\n<body>\n<div class=\"main-container\">\n    <div class=\"global-ticker-wrap\"><div class=\"global-ticker\" id=\"globalTickerStrip\"><\/div><\/div>\n\n    <div class=\"tabs\">\n        <button class=\"tab-btn active\" data-tab=\"smm\">\ud83d\udcf1 SMM Platform<\/button>\n        <button class=\"tab-btn\" data-tab=\"services\">\ud83d\uded2 Services<\/button>\n        <button class=\"tab-btn\" data-tab=\"cert\">\ud83d\udcdc Share Certificate<\/button>\n        <button class=\"tab-btn\" data-tab=\"register\">\ud83d\udcd8 Register of Members<\/button>\n        <button class=\"tab-btn\" data-tab=\"transfer\">\ud83d\udd04 Share Transfer Form<\/button>\n        <button class=\"tab-btn\" data-tab=\"allotment\">\ud83d\udcc4 Share Allotment<\/button>\n        <button class=\"tab-btn\" data-tab=\"funding\">\ud83d\ude80 Serie A Funding<\/button>\n        <button class=\"tab-btn\" data-tab=\"ura\">\ud83d\udcca URA Tax<\/button>\n    <\/div>\n\n    <div id=\"tab-smm\" class=\"tab-content active\"><div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 20px;\"><div class=\"coin-logo\" style=\"background: radial-gradient(circle at 30% 35%, #f9d976, #c9992e);\"><span>Adase<br>Ads<\/span><\/div><div><span style=\"font-size:2.4rem; font-weight:800; color:#b8860b;\">Adase<\/span><span style=\"font-size:1.2rem; font-weight:700;\">Ads Ltd<\/span><div style=\"font-size:0.85rem;\">\ud83d\udcb0 Monetizing Africa | SMM Powerhouse<\/div><\/div><\/div><div id=\"smmDynamicPanel\">Loading&#8230;<\/div><div class=\"footer\"><p>\u00a9 2026 Adase Ads Ltd \u2013 Incorporated in Uganda (Reg: 8002026)<\/p><div>\ud83d\udccd Zion Road, Kira, Kampala, Uganda<\/div><p>\ud83d\udce7 shares@adase.co.ug | +256 775036603<\/p><\/div><\/div>\n    <div id=\"tab-services\" class=\"tab-content\"><\/div>\n    \n    <!-- REDESIGNED INTERNATIONAL SHARE CERTIFICATE -->\n    <div id=\"tab-cert\" class=\"tab-content\">\n        <div class=\"certificate-gold certificate-watermark\" id=\"liveCertificate\">\n            <div style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;\">\n                <div><i class=\"fas fa-building\" style=\"font-size: 2rem; color: #b8860b;\"><\/i><\/div>\n                <div class=\"cert-number-code\"><i class=\"far fa-gem\"><\/i> Certificate No: <span id=\"certNumberDisplay\">ADASE-2026-7891<\/span><\/div>\n            <\/div>\n            <div style=\"text-align: center; margin: 15px 0 5px;\">\n                <div class=\"cert-title\">SHARE CERTIFICATE<\/div>\n                <div class=\"cert-sub\">Incorporated under the Companies Act, 2012 (Uganda)<\/div>\n            <\/div>\n            <div class=\"cert-rect\">\n                <p style=\"font-size: 1.2rem; margin-bottom: 15px;\"><strong>THIS CERTIFIES THAT<\/strong><\/p>\n                <p style=\"font-size: 1.8rem; font-weight: 700; font-family: 'Alex Brush', cursive; text-align: center; border-bottom: 1px dashed #cfb87c; display: inline-block; width: 100%;\" id=\"shareholderNameDisplay\">[Shareholder Name]<\/p>\n                <p style=\"margin: 20px 0 15px; font-size: 1.05rem;\">is the registered proprietor of <strong><span id=\"sharesCountDisplay\">1,000<\/span> ( <span id=\"sharesWordsDisplay\">One Thousand<\/span> )<\/strong> fully paid ordinary shares of <strong>UGX 1,000\/-<\/strong> each in<\/p>\n                <h2 style=\"text-align: center; color: #7a590f; font-weight: 800;\">ADASE ADS LIMITED<\/h2>\n                <p style=\"text-align: center;\">subject to the Memorandum and Articles of Association of the Company.<\/p>\n                <div class=\"flex-between\" style=\"margin-top: 25px;\">\n                    <div><span class=\"share-detail\"><i class=\"fas fa-chart-line\"><\/i> Class: Ordinary Shares<\/span><\/div>\n                    <div><span class=\"share-detail\"><i class=\"fas fa-tag\"><\/i> Par Value: UGX 1,000<\/span><\/div>\n                    <div><span class=\"share-detail\"><i class=\"fas fa-calendar-alt\"><\/i> Issue Date: <span id=\"issueDateDisplay\">11 May 2026<\/span><\/span><\/div>\n                <\/div>\n            <\/div>\n            <div class=\"signature-area\">\n                <div><div class=\"sign-line\">_________________________<br><strong>DIRECTOR<\/strong><br>Mr. Robert Mukasa<\/div><\/div>\n                <div><div class=\"sign-line\">_________________________<br><strong>COMPANY SECRETARY<\/strong><br>Lilian Nambi<\/div><\/div>\n                <div><div class=\"sign-line\">_________________________<br><strong>REGISTERED OFFICE<\/strong><br>Kampala, Uganda<\/div><\/div>\n            <\/div>\n            <div class=\"cert-seal\"><i class=\"fas fa-certificate\"><\/i> SEAL<\/div>\n        <\/div>\n        \n        <!-- Certificate Customization Panel (interactive but maintains legal appearance) -->\n        <div class=\"card\" style=\"margin-top: 30px; background: #faf7f0;\">\n            <h4><i class=\"fas fa-pen-fancy\"><\/i> Certificate Details (Update Preview)<\/h4>\n            <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px;\">\n                <div><label>Shareholder Full Name<\/label><input type=\"text\" id=\"certShareholderInput\" placeholder=\"e.g., Adase Holdings Ltd \/ John Okello\" value=\"Adase Holdings Ltd\"><\/div>\n                <div><label>Number of Shares<\/label><input type=\"number\" id=\"certSharesInput\" value=\"2500\" min=\"1\"><\/div>\n                <div><label>Certificate No.<\/label><input type=\"text\" id=\"certNoInput\" value=\"ADASE-2026-7891\"><\/div>\n                <div><label>Issue Date<\/label><input type=\"date\" id=\"certDateInput\" value=\"2026-05-11\"><\/div>\n            <\/div>\n            <div class=\"flex-between\" style=\"margin-top: 16px;\"><button id=\"updateCertBtn\" class=\"btn-primary\"><i class=\"fas fa-sync-alt\"><\/i> Refresh Certificate<\/button><button id=\"printCertificateBtn\" class=\"print-btn\"><i class=\"fas fa-print\"><\/i> Print Certificate (PDF \/ Paper)<\/button><\/div>\n            <p class=\"badge\" style=\"margin-top: 12px;\"><i class=\"fas fa-gavel\"><\/i> International Standard | Authentic &#038; Legal | Registered under URSB<\/p>\n        <\/div>\n    <\/div>\n\n    <div id=\"tab-register\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udccb Register of Members (Interactive)<\/h3><div id=\"membersRegisterPreview\">Loading members&#8230;<\/div><\/div><\/div>\n    <div id=\"tab-transfer\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udd04 Share Transfer Request<\/h3><p>Form for share transfer \u2013 requires board approval.<\/p><input placeholder=\"Transferor Name\"><input placeholder=\"Transferee Name\"><input placeholder=\"Number of Shares\"><button class=\"btn-primary\">Request Transfer<\/button><\/div><\/div>\n    <div id=\"tab-allotment\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udcc4 Board Resolution: Allotment of Shares<\/h3><textarea rows=\"4\">RESOLVED THAT 10,000 New Ordinary Shares of UGX 1,000 each be allotted to strategic investors&#8230;<\/textarea><button class=\"btn-sm btn-primary\">Record Resolution<\/button><\/div><\/div>\n    <div id=\"tab-funding\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\ude80 Serie A Funding Round<\/h3><p>Target: $1.2M | Current commitment: UGX 1.8B<\/p><progress value=\"45\" max=\"100\"><\/progress><div>45% funded<\/div><\/div><\/div>\n    <div id=\"tab-ura\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udcca URA Tax Dashboard<\/h3><p>Withholding tax \/ VAT reports integrated<\/p><button class=\"btn-lemon\">Generate Tax Summary<\/button><\/div><\/div>\n<\/div>\n\n<div id=\"servicePurchaseModal\" class=\"modal-overlay\"><div class=\"modal-content\"><h3>\ud83d\uded2 Purchase Service<\/h3><p id=\"serviceNameDisplay\"><\/p><label>Quantity (Min 100):<\/label><input type=\"number\" id=\"serviceQuantity\" min=\"100\" value=\"100\"><p>Unit price: USD <span id=\"unitPriceDisplay\">0<\/span> (x30 UGX)<\/p><p><strong>Total: UGX <span id=\"totalPriceModal\">0<\/span><\/strong><\/p><p>Wallet: UGX <span id=\"walletBalanceModal\">0<\/span><\/p><div class=\"modal-buttons\"><button id=\"confirmServicePurchase\" class=\"btn-primary\">Pay from Wallet<\/button><button id=\"cancelServiceModal\">Cancel<\/button><\/div><\/div><\/div>\n\n<script>\n    \/\/ ---------- PERF OPTIMIZATION: PRELOAD & CACHE SERVICES ----------\n    const RAW_SERVICES_FULL = `TikTok : Views [ Cheapest ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6110 -TikTok Views | Slow\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n6107 -TikTok Video Views [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 100000000\n1 $\tBuy Now\n5737 -TikTok Video Views [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 2147483647\n1 $\tBuy Now\n6108 -Tiktok Views | Cheap\nNot enough data\nMin order 100\nMax order 217545811\n1 $\tBuy Now\n6109 -Tiktok Video Views | No Refill\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n6016 -TikTok Video Views [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 100000000\n1 $\tBuy Now\n5738 -TikTok Video Views [ \ud835\udc14\ud835\udc0b\ud835\udc13\ud835\udc11\ud835\udc00 \ud835\udc05\ud835\udc00\ud835\udc12\ud835\udc13 ]\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5740 -Tiktok Views | Always Instant\nNot enough data\nMin order 100\nMax order 217545811\n1 $\tBuy Now\n5805 -TikTok - Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5739 -TikTok Views | No Refill\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n6017 -TikTok Video Views [ \ud835\udc14\ud835\udc0b\ud835\udc13\ud835\udc11\ud835\udc00 \ud835\udc05\ud835\udc00\ud835\udc12\ud835\udc13 & \ud835\udc12\ud835\udc2d\ud835\udc1a\ud835\udc1b\ud835\udc25\ud835\udc1e ]\nNot enough data\nMin order 100\nMax order 2147483647\n2 $\tBuy Now\n5741 -TikTok Real Views [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 100\nMax order 2147483647\n356 $\tBuy Now\nTikTok : Views [ \ud835\udde1\ud835\uddfc\ud835\uddfb \ud835\uddd7\ud835\uddff\ud835\uddfc\ud835\uddfd ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6064 -TikTok Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 1000000000\n2 $\tBuy Now\n6101 -TikTok Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 100000000\n2 $\tBuy Now\n6063 -TikTok Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 2147483647\n4 $\tBuy Now\nTikTok : Likes [ Cheapest ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6121 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6088 -TikTok Likes [ Emergency ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6089 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6094 -Tiktok Likes | Bot+Real | 30 Days Refill\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n5742 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n6021 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 500\nMax order 5000000\n1 $\tBuy Now\n6059 -TikTok - Likes [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6085 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6139 -Tiktok Likes | 30K\/Day | 0-40 MIN | 30 Days Refill\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\nTikTok : Likes [ \ud835\udc14\ud835\udc25\ud835\udc2d\ud835\udc2b\ud835\udc1a \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d \u26a1 ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6122 -TikTok - Likes [ \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6081 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6060 -TikTok - Likes [ \u26a1\ud835\udc13\ud835\udc0e\ud835\udc0f \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\u26a1 ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6078 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6087 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\nTikTok : Likes [ Best Speed ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6123 -TikTok - Likes [ \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6091 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6090 -TikTok - Likes [ \u26a1\ud835\udc13\ud835\udc0e\ud835\udc0f \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\u26a1 ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n5745 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n2 $\tBuy Now\n6086 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n2 $\tBuy Now\n6012 -TikTok - Likes [ \u26a1\ud835\udc13\ud835\udc0e\ud835\udc0f \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\u26a1 ]\nNot enough data\nMin order 100\nMax order 5000000\n6 $\tBuy Now\n5804 -Tiktok Real Likes [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 10\nMax order 1000000\n18 $\tBuy Now\nTikTok : Likes [ Non Drop ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6083 -TikTok - Real Likes [ Non Drop ]\nNot enough data\nMin order 100\nMax order 5000000\n3 $\tBuy Now\n5744 -TikTok - Global Likes [ Non Drop ]\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\n6084 -TikTok - Real Likes [ Non Drop ]\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\nTikTok : Followers | Cheapest\nID -Service \/Average time\tRate per 1000\tBuy now\n6071 -TikTok Followers | Speed 5K+ \/ DAY | No Refill | \u26d4\ud83d\udd25\nNot enough data\nMin order 100\nMax order 1000000\n5 $\tBuy Now\n6074 -TikTok Followers [ Real Quality ] [ Less Drop ] [ 30D Refill ]\nNot enough data\nMin order 100\nMax order 1000000\n6 $\tBuy Now\n6072 -TikTok Followers [ Mixed .Quality ] [ No Refill ] Normal Speed\nNot enough data\nMin order 100\nMax order 5000000\n6 $\tBuy Now\nTikTok : Followers | \ud835\udc07\ud835\udc22\ud835\udc20\ud835\udc21 \ud835\udc12\ud835\udc29\ud835\udc1e\ud835\udc1e\ud835\udc1d\nID -Service \/Average time\tRate per 1000\tBuy now\n6069 -TikTok Followers | HQ Profiles | 10-40k\/Day | 30 Days Refill\nNot enough data\nMin order 10\nMax order 5000000\n8 $\tBuy Now\n6073 -TikTok Followers [ Real Quality ] [ Nondrop ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 5000000\n8 $\tBuy Now\n6068 -TikTok Followers [ Mixed Quality ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 500000\n9 $\tBuy Now\nTikTok : Followers | \ud835\udde1\ud835\uddfc\ud835\uddfb \ud835\uddd7\ud835\uddff\ud835\uddfc\ud835\uddfd\nID -Service \/Average time\tRate per 1000\tBuy now\n6011 -TikTok Followers [ Real Quality ] [ Less Drop ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 2000000\n13 $\tBuy Now\n6028 -TikTok Followers [ High Quality ] [ Less Drop ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 5000000\n13 $\tBuy Now\n6010 -TikTok Followers [ Real Quality ] [ Nondrop ] [ 365D Refill ] Fast\nNot enough data\nMin order 100\nMax order 500000\n16 $\tBuy Now\nTikTok : Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n5851 -Tiktok Comment Likes [ HQ ]\nNot enough data\nMin order 100\nMax order 10000\n1 $\tBuy Now\n5852 -Random Comments [ HQ Profiles ]\nNot enough data\nMin order 1\nMax order 200\n35 $\tBuy Now\nTikTok : Saves\nID -Service \/Average time\tRate per 1000\tBuy now\n5763 -TikTok - Saves [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29\ud835\udc1e\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 2147482677\n1 $\tBuy Now\n5764 -TikTok Video Saves\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\nTikTok : Add Favorites\nID -Service \/Average time\tRate per 1000\tBuy now\n5767 -TikTok - Add Favorites [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29\ud835\udc1e\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n5768 -TikTok - Add Favorites | 100% Organic\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\nTikTok : Shares\nID -Service \/Average time\tRate per 1000\tBuy now\n5766 -Tiktok - Shares [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29\ud835\udc1e\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 2147482677\n1 $\tBuy Now\n5765 -Tiktok - Shares [ \ud835\udc14\ud835\udc25\ud835\udc2d\ud835\udc2b\ud835\udc1a \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\nTikTok : Downloads\nID -Service \/Average time\tRate per 1000\tBuy now\n5773 -Tiktok Video Downloads\nNot enough data\nMin order 10\nMax order 1000000000\n1 $\tBuy Now\nTikTok : Live stream views\nID -Service \/Average time\tRate per 1000\tBuy now\n5751 -Live Views \u2022 15 Minutes\nNot enough data\nMin order 10\nMax order 10000\n2 $\tBuy Now\n5752 -Live Views \u2022 30 Minutes\nNot enough data\nMin order 50\nMax order 10000\n3 $\tBuy Now\n5753 -Live Views \u2022 60 Minutes\nNot enough data\nMin order 10\nMax order 10000\n6 $\tBuy Now\n5754 -Live Views \u2022 90 Minutes\nNot enough data\nMin order 50\nMax order 10000\n9 $\tBuy Now\n5755 -Live Views \u2022 120 Minutes\nNot enough data\nMin order 10\nMax order 10000\n12 $\tBuy Now\n5756 -Live Views \u2022 150 Minutes\nNot enough data\nMin order 10\nMax order 10000\n14 $\tBuy Now\n5757 -Live Views \u2022 180 Minutes\nNot enough data\nMin order 50\nMax order 10000\n17 $\tBuy Now\n5758 -Live Views \u2022 210 Minutes\nNot enough data\nMin order 10\nMax order 10000\n20 $\tBuy Now\n5759 -Live Views \u2022 240 Minutes\nNot enough data\nMin order 10\nMax order 10000\n23 $\tBuy Now\n5760 -Live Views \u2022 270 Minutes\nNot enough data\nMin order 10\nMax order 10000\n26 $\tBuy Now\n5761 -Live Views \u2022 300 Minutes\nNot enough data\nMin order 10\nMax order 10000\n28 $\tBuy Now\n5762 -Live Views \u2022 360 Minutes\nNot enough data\nMin order 10\nMax order 10000\n34 $\tBuy Now\nTikTok : Live stream Likes\nID -Service \/Average time\tRate per 1000\tBuy now\n5748 -Tiktok Live Likes\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5749 -Tiktok Live Likes\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5750 -Tiktok Live Likes\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\nTikTok : Live stream Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n5769 -Tiktok Live Stream Shares\nNot enough data\nMin order 10\nMax order 10000000\n1 $\tBuy Now\n5770 -Tiktok Live Stream Emoji Comments\nNot enough data\nMin order 10\nMax order 1000000\n19 $\tBuy Now\n5771 -Tiktok Live Stream Costum Comments\nNot enough data\nMin order 1\nMax order 100000\n27 $\tBuy Now\n5772 -Tiktok Live Stream Random Comments\nNot enough data\nMin order 1\nMax order 1000000\n28 $\tBuy Now\nTikTok : PK Battle Points\nID -Service \/Average time\tRate per 1000\tBuy now\n5775 -TikTok PK Battle Points\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5776 -TikTok - Live PK Battle Points\nNot enough data\nMin order 100\nMax order 50000\n1 $\tBuy Now\n5777 -TikTok - Live PK Battle Points\nNot enough data\nMin order 100\nMax order 1000000000\n1 $\tBuy Now\n5774 -TikTok PK Battle Points\nNot enough data\nMin order 100\nMax order 1000000000\n1 $\tBuy Now\nTiktok Spam Report\nID -Service \/Average time\tRate per 1000\tBuy now\n5778 -Tiktok Spam Report - Post\nNot enough data\nMin order 0\nMax order 0\n14 $\tBuy Now\n5779 -Tiktok Spam Report - Account\nNot enough data\nMin order 0\nMax order 0\n135 $\tBuy Now\nTikTok : Real Reach\nID -Service \/Average time\tRate per 1000\tBuy now\n5780 -TikTok Views + 30% Likes From Search [ Real Views - \ud835\udddb\ud835\uddf2\ud835\uddf9\ud835\uddfd \ud835\ude01\ud835\uddfc \ud835\uddf4\ud835\uddfc \ud835\udde9\ud835\uddf6\ud835\uddff\ud835\uddee\ud835\uddf9 \ud835\ude03\ud835\uddf6\ud835\uddf1\ud835\uddf2\ud835\uddfc\nNot enough data\nMin order 200\nMax order 100000\n3 $\tBuy Now\nTikTok : Followers [ Country \ud83c\udf0d \ud83c\uddfa\ud83c\uddec\nID -Service \/Average time\tRate per 1000\tBuy now\n5782 -TikTok Followers [ Africa Countries \ud83c\uddf3\ud83c\uddec ] [ Nondrop ] [ 30D Refill ]\nNot enough data\nMin order 10\nMax order 100000\n13 $\tBuy Now\n5781 -TikTok Followers [ Africa Countries \ud83c\uddfa\ud83c\uddec ] [ Nondrop ] [ 30D Refill ]\nNot enough data\nMin order 10\nMax order 100000\n14 $\tBuy Now\n5783 -TikTok Followers [ Asian Countries ] [ Nondrop ] [ 30D Refill ]\nNot enough data\nMin order 10\nMax order 20000\n18 $\tBuy Now\nWhatsapp : Channel Followers\nID -Service \/Average time\tRate per 1000\tBuy now\n5795 -\ud83c\udf0e WhatsApp Channel Followers - [ 5k-10k\/day ] [ No Refill ] Instant S1\nNot enough data\nMin order 10\nMax order 50000\n10 $\tBuy Now\nInstagram : Views\nID -Service \/Average time\tRate per 1000\tBuy now\n6061 -IG Reel Views - Cheapest\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\nFacebook : Post Reactions\nID -Service \/Average time\tRate per 1000\tBuy now\n5880 -FB Post Reaction [ Angry \ud83e\udd2c]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\nYouTube : Guaranteed Subscribers\nID -Service \/Average time\tRate per 1000\tBuy now\n5979 -YouTube Subscriber [ Nondrop ] [ 30D Refill ] [ Good Speed ]\nNot enough data\nMin order 5\nMax order 100000\n51 $\tBuy Now`;\n\n    let preParsedServices = null;\n    function parseServicesEfficient(raw) {\n        const lines = raw.split(\/\\r?\\n\/);\n        const services = [];\n        let currentCategory = \"General\";\n        for (let i=0; i<lines.length; i++) {\n            let line = lines[i].trim();\n            if (!line) continue;\n            if (\/^[A-Za-z]\/.test(line) &#038;&#038; (line.includes(':') || line.includes('|')) &#038;&#038; !line.includes('-Service') &#038;&#038; !line.match(\/^\\d\/)) { currentCategory = line.substring(0,80); continue; }\n            const idMatch = line.match(\/^(\\d+)\\s*-\\s*(.+)$\/);\n            if (idMatch) {\n                let id = idMatch[1], name = idMatch[2].trim(), minOrder=0, maxOrder=0, price=0;\n                let j=i+1;\n                while(j < lines.length &#038;&#038; !(\/^\\d+\\s*-\/.test(lines[j].trim())) &#038;&#038; !(lines[j].trim() &#038;&#038; lines[j].trim().includes(':') &#038;&#038; !lines[j].trim().match(\/^\\d\/))) {\n                    let cur = lines[j].trim().toLowerCase();\n                    if(cur.startsWith(\"min order\")) { let m = cur.match(\/\\d+\/); if(m) minOrder = parseInt(m[0]); }\n                    else if(cur.startsWith(\"max order\")) { let m = cur.match(\/\\d+\/); if(m) maxOrder = parseInt(m[0]); }\n                    else if(cur.includes(\"$\")) { let pm = cur.match(\/(\\d+(?:\\.\\d+)?)\\s*\\$\/) || cur.match(\/\\$?\\s*(\\d+(?:\\.\\d+)?)\/); if(pm) price = parseFloat(pm[1]); }\n                    j++;\n                }\n                if(price>0) services.push({ category: currentCategory, id, name, minOrder: minOrder||0, maxOrder: maxOrder||2147483647, boostedPrice: price*30 });\n                i = j-1;\n            }\n        }\n        return services;\n    }\n\n    (function preloadAsync() { if(!preParsedServices) { preParsedServices = parseServicesEfficient(RAW_SERVICES_FULL); console.log(\"Services preloaded for instant access\"); } })();\n    setTimeout(() => preloadAsync(), 40);\n    \n    function getCachedServices() { if(preParsedServices) return preParsedServices; preParsedServices = parseServicesEfficient(RAW_SERVICES_FULL); return preParsedServices; }\n\n    \/\/ Lazy load services tab instantly using cached data\n    window.servicesLoadedFlag = false;\n    async function loadFullServicesTab() {\n        if(window.servicesLoadedFlag) return;\n        const container = document.getElementById('tab-services');\n        container.innerHTML = `<div class=\"services-dashboard\"><div class=\"controls-bar\"><div class=\"search-wrapper\"><i class=\"fas fa-search\"><\/i><input type=\"text\" id=\"servicesSearchInput\" placeholder=\"Search...\"><\/div><select id=\"servicesCategoryFilter\"><\/select><select id=\"servicesSortSelect\"><option value=\"id_asc\">ID Ascending<\/option><option value=\"price_asc\">Price Low\u2192High<\/option><option value=\"price_desc\">Price High\u2192Low<\/option><\/select><button id=\"servicesResetBtn\">Reset<\/button><span id=\"servicesResultStats\"><\/span><\/div><table><thead><tr><th>Category<\/th><th>ID<\/th><th>Service<\/th><th>Min<\/th><th>Max<\/th><th>Price (UGX x30)<\/th><th><\/th><\/tr><\/thead><tbody id=\"servicesTableBody\"><\/tbody><\/table><\/div>`;\n        const all = getCachedServices();\n        function renderFiltered() {\n            const term = document.getElementById('servicesSearchInput')?.value.toLowerCase()||\"\";\n            const cat = document.getElementById('servicesCategoryFilter')?.value||\"all\";\n            let filtered = all.filter(s => (term===\"\"||s.name.toLowerCase().includes(term)||s.id.includes(term)||s.category.toLowerCase().includes(term)) && (cat===\"all\"||s.category===cat));\n            const sort = document.getElementById('servicesSortSelect')?.value;\n            if(sort==='price_asc') filtered.sort((a,b)=>a.boostedPrice-b.boostedPrice);\n            else if(sort==='price_desc') filtered.sort((a,b)=>b.boostedPrice-a.boostedPrice);\n            else filtered.sort((a,b)=>parseInt(a.id)-parseInt(b.id));\n            const tbody = document.getElementById('servicesTableBody');\n            if(!tbody) return;\n            tbody.innerHTML = filtered.map(s => `<tr><td>${s.category}<\/td><td>${s.id}<\/td><td>${s.name}<\/td><td>${s.minOrder}<\/td><td>${s.maxOrder===2147483647?'\u221e':s.maxOrder}<\/td><td><span class=\"price-highlight\">$${s.boostedPrice.toFixed(2)}<\/span><\/td><td><button class=\"buy-btn\" data-id=\"${s.id}\" data-service='${JSON.stringify(s)}'>Buy<\/button><\/td><\/tr>`).join('');\n            document.getElementById('servicesResultStats').innerText = `${filtered.length} services`;\n            document.querySelectorAll('.buy-btn').forEach(btn => btn.addEventListener('click', (e) => { const svc = JSON.parse(btn.dataset.service); openServicePurchaseModal(svc); }));\n        }\n        const cats = [...new Set(all.map(s=>s.category))];\n        const filterSel = document.getElementById('servicesCategoryFilter');\n        filterSel.innerHTML = '<option value=\"all\">All categories<\/option>'+cats.map(c=>`<option value=\"${c}\">${c}<\/option>`).join('');\n        document.getElementById('servicesSearchInput')?.addEventListener('input', renderFiltered);\n        document.getElementById('servicesCategoryFilter')?.addEventListener('change', renderFiltered);\n        document.getElementById('servicesSortSelect')?.addEventListener('change', renderFiltered);\n        document.getElementById('servicesResetBtn')?.addEventListener('click', ()=>{ document.getElementById('servicesSearchInput').value=''; filterSel.value='all'; renderFiltered(); });\n        renderFiltered();\n        window.servicesLoadedFlag = true;\n    }\n    \n    \/\/ certificate dynamic update\n    function updateCertificateUI() {\n        let name = document.getElementById('certShareholderInput').value || \"Adase Holdings Ltd\";\n        let shares = parseInt(document.getElementById('certSharesInput').value) || 1000;\n        let certNo = document.getElementById('certNoInput').value || \"ADASE-2026-7891\";\n        let dateRaw = document.getElementById('certDateInput').value;\n        let formattedDate = dateRaw ? new Date(dateRaw).toLocaleDateString('en-GB', { day:'numeric', month:'long', year:'numeric' }) : \"11 May 2026\";\n        document.getElementById('shareholderNameDisplay').innerText = name;\n        document.getElementById('sharesCountDisplay').innerText = shares.toLocaleString();\n        let words = `${shares.toLocaleString()} (${shares} Units)`;\n        document.getElementById('sharesWordsDisplay').innerText = words;\n        document.getElementById('certNumberDisplay').innerText = certNo;\n        document.getElementById('issueDateDisplay').innerText = formattedDate;\n    }\n    function printCertificate() { window.print(); }\n    \n    \/\/ Tab switching and fast-load integration\n    const tabs = document.querySelectorAll('.tab-btn'), contents = document.querySelectorAll('.tab-content');\n    function switchTab(tabId) {\n        contents.forEach(c => c.classList.remove('active'));\n        tabs.forEach(b => b.classList.remove('active'));\n        document.getElementById(`tab-${tabId}`)?.classList.add('active');\n        Array.from(tabs).find(b => b.dataset.tab === tabId)?.classList.add('active');\n        if(tabId === 'services' && !window.servicesLoadedFlag) loadFullServicesTab();\n        if(tabId === 'register') document.getElementById('membersRegisterPreview').innerHTML = `<div class=\"card\">\ud83d\udccc Shareholders: Adase Holdings (50k shares), Angel Investors (20k shares), Founder Shares (30k)<\/div>`;\n    }\n    tabs.forEach(btn => btn.addEventListener('click', () => switchTab(btn.dataset.tab)));\n    document.getElementById('updateCertBtn')?.addEventListener('click', updateCertificateUI);\n    document.getElementById('printCertificateBtn')?.addEventListener('click', printCertificate);\n    setTimeout(() => { updateCertificateUI(); }, 50);\n    \n    \/\/ SMM share & global include original code (simplified wrapper to preserve all features)\n    \/\/ Import main smm logic inside but keep faster, attach purchase modal\n    window.getCurrentUserFromStorage = function() { let users = JSON.parse(localStorage.getItem('adase_users') || '[]'); let id = localStorage.getItem('adase_current_user_id'); return users.find(u=>u.id==id); };\n    window.openServicePurchaseModal = openServicePurchaseModal;\n    function openServicePurchaseModal(service) {\n        window.currentServiceForPurchase = service;\n        let user = window.getCurrentUserFromStorage();\n        if(!user) { alert(\"Please login from SMM Platform tab first.\"); return; }\n        document.getElementById('serviceNameDisplay').innerText = service.name;\n        document.getElementById('unitPriceDisplay').innerText = service.boostedPrice.toFixed(2);\n        document.getElementById('walletBalanceModal').innerText = user.wallet.toLocaleString();\n        document.getElementById('serviceQuantity').value = 100;\n        document.getElementById('totalPriceModal').innerText = (100 * service.boostedPrice).toFixed(2);\n        document.getElementById('servicePurchaseModal').style.display = 'flex';\n        const qtyInput = document.getElementById('serviceQuantity');\n        const updateTotal = () => { let q = parseInt(qtyInput.value)||100; document.getElementById('totalPriceModal').innerText = (q * service.boostedPrice).toFixed(2); };\n        qtyInput.oninput = updateTotal;\n    }\n    document.getElementById('confirmServicePurchase')?.addEventListener('click', ()=>{\n        let svc = window.currentServiceForPurchase;\n        if(!svc) return;\n        let qty = parseInt(document.getElementById('serviceQuantity').value);\n        let total = qty * svc.boostedPrice;\n        let user = window.getCurrentUserFromStorage();\n        if(!user || user.wallet < total) { alert(\"Insufficient funds or login required\"); return; }\n        if(window.addServiceOrder) window.addServiceOrder(svc.name, qty, total);\n        else alert(\"Order recorded (demo)\");\n        document.getElementById('servicePurchaseModal').style.display = 'none';\n    });\n    document.getElementById('cancelServiceModal')?.addEventListener('click', ()=>document.getElementById('servicePurchaseModal').style.display='none');\n    \/\/ attach ticker\n    const tickerDiv = document.getElementById('globalTickerStrip');\n    if(tickerDiv) tickerDiv.innerHTML = Array(12).fill('<span class=\"global-ticker-item\"><i class=\"fas fa-chart-simple\"><\/i> Adase Ads Ltd - Shares available OTC <\/span><span class=\"global-ticker-item buy\"><i class=\"fas fa-trend-up\"><\/i> SMM +12% growth <\/span>').join('');\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Adase Ads Ltd \u2013 International Share Certificate &#038; SMM Hub \ud83d\udcf1 SMM Platform \ud83d\uded2 Services \ud83d\udcdc Share Certificate \ud83d\udcd8 Register of Members \ud83d\udd04 Share Transfer Form \ud83d\udcc4 Share Allotment \ud83d\ude80 Serie A Funding \ud83d\udcca URA Tax AdaseAds AdaseAds Ltd \ud83d\udcb0 Monetizing Africa | SMM Powerhouse Loading&#8230; \u00a9 2026 Adase Ads Ltd \u2013 Incorporated in Uganda [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-156","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/comments?post=156"}],"version-history":[{"count":3,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/156\/revisions"}],"predecessor-version":[{"id":159,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/156\/revisions\/159"}],"wp:attachment":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/media?parent=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}