PageSourceSearch

https://karmand.app/translator-app/

html karmand.app collected 2026-09-24 13:54:22 UTC 47,336 bytes, 620 lines download raw bytes

1<!DOCTYPE html><html lang="fa-IR"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>معرفی بهترین برنامه ترجمه انگلیسی به فارسی رایگان و بدون نیاز به اینترنت - کارمند</title><meta name="description" content="مشاهده سوابق بیمه با موبایل با کد ملی
2مشاهده سوابق بیمه تامین اجتماعی با کد ملی"><meta name="generator" content="Publii Open-Source CMS for Static Site"><link rel="canonical" href="https://karmand.app/translator-app/"><link rel="alternate" type="application/atom+xml" href="https://karmand.app/feed.xml" title="کارمند - RSS"><link rel="alternate" type="application/json" href="https://karmand.app/feed.json" title="کارمند - JSON"><meta property="og:title" content="معرفی بهترین برنامه ترجمه انگلیسی به فارسی رایگان و بدون نیاز به اینترنت"><meta property="og:image" content="https://karmand.app/media/posts/151/brnmh-mtrjm-1.png"><meta property="og:image:width" content="1000"><meta property="og:image:height" content="500"><meta property="og:site_name" content="کارمند"><meta property="og:description" content="مشاهده سوابق بیمه با موبایل با کد ملی
3مشاهده سوابق بیمه تامین اجتماعی با کد ملی"><meta property="og:url" content="https://karmand.app/translator-app/"><meta property="og:type" content="article"><link rel="shortcut icon" href="https://karmand.app/media/website/70x70-2.png" type="image/png"><link rel="stylesheet" href="https://karmand.app/assets/css/style.css?v=d76c035c11caf64e31b7507838d45275">
3<script type="application/ld+json">{"@context":"http://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://karmand.app/translator-app/"},"headline":"معرفی بهترین برنامه ترجمه انگلیسی به فارسی رایگان و بدون نیاز به اینترنت","datePublished":"2024-12-01T13:56+03:30","dateModified":"2024-12-01T13:57+03:30","image":{"@type":"ImageObject","url":"https://karmand.app/media/posts/151/brnmh-mtrjm-1.png","height":500,"width":1000},"description":"مشاهده سوابق بیمه با موبایل با کد ملی\nمشاهده سوابق بیمه تامین اجتماعی با کد ملی","author":{"@type":"Person","name":"وادا","url":"https://karmand.app/authors/wd/"},"publisher":{"@type":"Organization","name":"وادا","logo":{"@type":"ImageObject","url":"https://karmand.app/media/website/70x70.png","height":70,"width":70}}}</script>
3<style>.u-tag--d8a7d9bed984db8cdaa9db8cd8b4d986-d8aad8a7d985db8cd986-d8a7d8acd8aad985d8a7d8b9db8c-d985d986{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d8a7d8b3d8aad8b9d984d8a7d985-d8a8db8cd985d987-d8aad8a7d985db8cd986-d8a7d8acd8aad985d8a7d8b9db8c{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d8a8d8afd987db8c-d9bed984d8a7daa9-da86db8cd8b3d8aa{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d8a8d8afd987db8c-d8b9d988d8a7d8b1d8b6-d9bed984d8a7daa9{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d9bed8b1d8afd8a7d8aed8aa-d8a8d8afd987db8c-d9bed984d8a7daa9-d8aed988d8afd8b1d988{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d9bed8b1d8afd8a7d8aed8aa-d8b9d988d8a7d8b1d8b6-d8a7d984daa9d8aad8b1d988d986db8cdaa9db8c-d8aed988d8afd8b1d988{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d9bed8b1d8afd8a7d8aed8aa-d8b9d988d8a7d8b1d8b6-d8aed988d8afd8b1d988{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d8aad8a7d985db8cd986-d8a7d8acd8aad985d8a7d8b9db8c-d985d986{--badge-bg:#84888E;--badge-txt:#FFFFFF;}.u-tag--d985d8b4d8a7d987d8afd987-d8b3d988d8a7d8a8d982-d8a8db8cd985d987{--badge-bg:#84888E;--badge-txt:#FFFFFF;}</style><noscript><style>img[loading]{opacity:1;}</style></noscript>
3<script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-N6XHF232DG&amp;cx=c&amp;_slc=1"></script>
3<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
3<script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-N6XHF232DG&amp;l=dataLayer&amp;cx=c"></script>
3</head><body><header class="topbar" id="js-header"><div class="topbar__inner"><a class="logo" href="https://karmand.app/"><img src="https://karmand.app/media/website/70x70.png" alt="کارمند" width="70" height="70"></a><nav class="navbar"><button class="navbar__toggle" aria-label="Menu" aria-haspopup="true" aria-expanded="false"><span class="navbar__toggle-box"><span class="navbar__toggle-inner">Menu</span></span></button><ul class="navbar__menu"><li><a href="https://play.google.com/store/apps/details?id&#x3D;com.vada.karpardaz" title="دانلود برنامه کارمند" target="_self">دانلود برنامه کارمند</a></li></ul></nav></div></header><div class="content"><main class="main"><div class="banner banner--before-post"><a href="https://play.google.com/store/apps/details?id=com.vada.karpardaz&gl=GB" class="btn hero__btn">استعلام سوابق بیمه</a></div><article class="post"><figure class="post__featured-image"><img src="https://karmand.app/media/posts/151/brnmh-mtrjm-1.png" srcset="https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-1-xs.png 300w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-1-sm.png 480w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-1-md.png 768w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-1-lg.png 1024w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-1-xl.png 1360w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-1-2xl.png 1600w" sizes="(max-width: 1600px) 100vw, 1600px" loading="eager" height="500" width="1000" alt="معرفی بهترین برنامه ترجمه انگلیسی به فارسی رایگان و بدون نیاز به اینترنت"></figure><header class="u-header post__header"><h1>معرفی بهترین برنامه ترجمه انگلیسی به فارسی رایگان و بدون نیاز به اینترنت</h1><div class="u-header__meta u-small"><div><a href="https://karmand.app/authors/wd/" title="وادا">وادا</a> <time datetime="۲۰۲۴-۱۲-۰۱T۱۳:۵۶">دسامبر ۱، ۲۰۲۴</time></div></div></header><div class="post__entry u-inner"><div dir="rtl"><p>امروزه داشتن یک برنامه مترجم قدرتمند و خوب برای افرادی که به زبان‌های مختلف نیاز دارند، از جمله <a href="https://cam-dic.ir/">ترجمه انگلیسی به فارسی</a>، به یک ضرورت تبدیل شده است. همچنین با پیشرفت تکنولوژی ابزار‌های متعددی در دسترس هستند اما همه آن‌ها کارآمد، رایگان و بدون نیاز به اینترنت نیستند. یکی از بهترین برنامه‌ها در زمینه ترجمه انگلیسی به فارسی، برنامه مترجم تصویری و صوتی هوشمند است. در این مطلب، به معرفی ویژگی‌ها و مزایای این برنامه می‌پردازیم.</p><h2><strong>معرفی برنامه مترجم تصویری و صوتی هوشمند</strong></h2><p>برنامه مترجم تصویری و صوتی هوشمند به‌عنوان یکی از بهترین گزینه‌های موجود در زمینه ترجمه انگلیسی به فارسی شناخته می‌شود. این برنامه ترجمه انگلیسی به فارسی با بهره‌گیری از تکنولوژی هوش مصنوعی این قابلیت را دارد که کاربران به راحتی می‌توانند با استفاده از دوربین و میکروفون گوشی خود مکالمات و متن مورد نظر خود را به زبان‌های مختلف ترجمه کنند وبرای این کار کافیست که از متن ها عکس بگیرند یا حتی با استفاده از مترجم صوتی هوشمند می‌توانند  مکالمات خود را ترجمه کنند. در ادامه ویژگی‌های منحصربه‌فرد این برنامه را بررسی می‌کنیم.</p><h3><strong>ترجمه تصویری</strong></h3><p>
3یکی از بهترین قابلیت‌های ای برنامه قابلیت ترجمه تصویری آن است. به این صورت که شما می‌توانید تنها با عکس گرفتن از متن مورد نظر خود و بارگذاری آن در برنامه، برنامه به ‌صورت خودکار متن را شناسایی کرده ترجمه آن را به فارسی یا هر زبانی که می‌خواهید دریافت کنید. این ویژگی برای افرادی که با اسناد، کتاب‌ها یا تابلوهای نوشته شده به زبان انگلیسی و یا هر زبان دیگر سر و کار دارند، بسیار کاربردی است.</p><h3><strong>ترجمه صوتی</strong></h3><p>این برنامه همچنین قابلیت تشخیص گفتار هم دارد. به این صورت که با دانلود و نصب این برنامه شما می‌توانید مکالمات صوتی مورد نظر خود را به راحتی به هر زبانی که می‌خواهید ترجمه کنید. این قابلیت برای مکالمات روزمره یا یادگیری زبان بسیار مفید است.</p><h3><strong>پشتیبانی از حالت آفلاین</strong></h3><p>برنامه مترجم تصویری و صوتی هوشمند بر خلاف دیگر برنامه‌های مترجم که برای ترجمه انگلیسی به فارسی یا هر زبانی دیگر به اینترنت نیاز دارند برنامه مترجم تصویری و صوتی هوشمند بدون اینترنت و به صورت کاملا آفلاین هم کار می‌کند و این یکی قابلیت‌های مهم این برنامه است که آن را با دیگر برنامه‌های ترجمه متمایز کرده است.</p><h3><strong>پشتیبانی از اصطلاحات تخصصی</strong></h3><p>این برنامه علاوه بر ترجمه کلمات و جملات عادی، از اصطلاحات تخصصی نیز پشتیبانی می‌کند. این قابلیت آن را برای دانشجویان، پژوهشگران و متخصصان حوزه‌های مختلف بسیار مناسب می‌کند.</p><h3><strong>پشتیبانی از اکثر زبان‌ها</strong></h3><p>برنامه <a href="https://cam-dic.ir/">ترجمه انگلیسی به فارسی</a> نه تنها قابلیت ترجمه انگلیسی به فارسی و برعکس آن را دارد بلکه این برنامه دارای ویژگی ترجمه چند زبانه است، بدین معنا که کاربران برای ترجمه متون به هر زبانی که نیاز دارند، میتوانند از برنامه ترجمه انگلیسی به فارسی استفاده کنند.</p><figure class="post__image post__image--center"><a href="https://cam-dic.ir/"><img loading="lazy" src="https://karmand.app/media/posts/151/brnmh-mtrjm-2.png" alt="برنامه ترجمه انگلیسی به فارسی " width="1251" height="391" sizes="(max-width: 48em) 100vw, 768px" srcset="https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-2-xs.png 300w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-2-sm.png 480w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-2-md.png 768w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-2-lg.png 1024w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-2-xl.png 1360w, https://karmand.app/media/posts/151/responsive/brnmh-mtrjm-2-2xl.png 1600w"></a></figure><p></p><h3><strong>مقایسه با سایر برنامه‌های ترجمه انگلیسی به فارسی</strong></h3><p>این برنامه پیشرفته و چند کاره در مقایسه با برنامه‌های دیگری مانند Google Translate و Microsoft Translator، برنامه مترجم تصویری و صوتی هوشمند به دلیل عملکرد کاملاً آفلاین، رابط کاربری ساده‌تر و دقت بالای ترجمه، گزینه بهتری بخصوص برای کاربران فارسی زبان است.</p><h3><strong>کاربردهای برنامه مترجم تصویری و صوتی هوشمند</strong></h3><p>مسافرت‌های بین‌المللی: برای ترجمه تابلوها، منوها یا مکالمات سریع.</p><p>یادگیری زبان: به‌عنوان یک ابزار کمک‌آموزشی برای زبان‌آموزان.</p><p>کاربردهای روزمره: ترجمه اسناد، پیام‌ها یا متون انگلیسی در زندگی روزمره.</p><p>استفاده در محیط کار: برای افرادی که با متون تخصصی یا ارتباطات بین‌المللی سروکار دارند.</p><p>
3اگر به دنبال بهترین برنامه برای <a href="https://cam-dic.ir/"><strong>ترجمه انگلیسی به فارسی</strong></a><strong> رایگان و بدون نیاز به اینترنت</strong> هستید، <strong>برنامه مترجم تصویری و صوتی هوشمند</strong> یک انتخاب ایده‌آل است. این برنامه با قابلیت‌های منحصربه‌فرد خود مانند ترجمه تصویری، صوتی و آفلاین، می‌تواند نیازهای مختلف کاربران را برطرف کند. با استفاده از این ابزار قدرتمند، تجربه‌ای سریع، دقیق و راحت از ترجمه متون و مکالمات خود خواهید داشت.</p><h4><strong>همین حالا این برنامه را دانلود کنید و از امکانات فوق‌العاده آن بهره‌مند شوید</strong><strong>!</strong></h4><p> </p></div></div><aside class="post__aside"><div class="post__last-updated u-small">This article was updated on دسامبر ۱، ۲۰۲۴</div><div class="post__share"></div></aside><footer class="post__footer"><div class="post__bio box"><div><h4 class="h6"><a href="https://karmand.app/authors/wd/" title="وادا">وادا</a></h4></div></div><nav class="post__nav box"><div class="post__nav__prev"><a href="https://karmand.app/convert-pic-to-pdf/" class="post__nav__link" rel="prev"><img src="https://karmand.app/media/posts/150/responsive/Vmake-1732961945-xs.jpg" loading="lazy" alt="تبدیل عکس به پی دی اف" height="1080" width="1920"><div class="u-small">Previous Post<h5>تبدیل عکس به پی دی اف آنلاین در گوشی</h5></div></a></div><div class="post__nav__next"><a href="https://karmand.app/nmwnh-swlt-ayyn-nmh-maarfy-bhtryn-syt-swlt-ayyn-nmh/" class="post__nav__link" rel="next"><div class="u-small">Next Post<h5>نمونه سوالات آیین نامه + معرفی بهترین سایت سوالات آیین نامه</h5></div><img src="https://karmand.app/media/posts/152/responsive/Frame-53-xs.png" loading="lazy" alt="نمونه سوالات آیین نامه" height="504" width="1024"></a></div></nav><div class="post__related box"><h3 class="box__title">Related posts</h3><div class="post__related-wrap"><figure class="post__related-item"><a href="https://karmand.app/mshhdh-swbq-bymh-bdwn-gdhrwjh/" class="c-card__image"><img src="https://karmand.app/media/posts/115/responsive/gozar-xs.jpg" loading="lazy" height="400" width="600" alt=""></a><figcaption><h4 class="post__related-title"><a href="https://karmand.app/mshhdh-swbq-bymh-bdwn-gdhrwjh/" class="inverse">مشاهده سوابق بیمه بدون گذرواژه</a></h4><time datetime="۲۰۲۱-۰۴-۱۹T۱۲:۰۱" class="u-small">آوریل ۱۹، ۲۰۲۱</time></figcaption></figure><figure class="post__related-item"><a href="https://karmand.app/rhnmy-thbt-nm-bry-prdkht-yntrnty-hq-bymh-tmyn-jtmaay/" class="c-card__image"><img src="https://karmand.app/media/posts/81/responsive/aghbime-xs.jpg" loading="lazy" height="400" width="600" alt=""></a><figcaption><h4 class="post__related-title"><a href="https://karmand.app/rhnmy-thbt-nm-bry-prdkht-yntrnty-hq-bymh-tmyn-jtmaay/" class="inverse">راهنمای ثبت نام برای پرداخت اینترنتی حق بیمه تامین اجتماعی</a></h4><time datetime="۲۰۲۰-۱۱-۰۲T۱۳:۲۹" class="u-small">نوامبر ۲، ۲۰۲۰</time></figcaption></figure><figure class="post__related-item"><a href="https://karmand.app/bsth-hy-rzn-yntrnt-yrnsl-w-bsth-hy-mqrwn-bh-srfh-khdmnd/" class="c-card__image"><img src="https://karmand.app/media/posts/15/responsive/4d0a00bb7f5de67bd1381eeaeb1538f6_xl-xs.jpg" loading="lazy" height="500" width="750" alt=""></a><figcaption><h4 class="post__related-title"><a href="https://karmand.app/bsth-hy-rzn-yntrnt-yrnsl-w-bsth-hy-mqrwn-bh-srfh-khdmnd/" class="inverse">بسته های ارزان اینترنت ایرانسل و بسته های مقرون به صرفه کدامند؟</a></h4><time datetime="۲۰۲۰-۰۳-۲۰T۰۱:۰۰" class="u-small">مارس ۲۰، ۲۰۲۰</time></figcaption></figure></div></div></footer></article><div class="banner banner--after-post"><a href="https://play.google.com/store/apps/details?id=com.vada.karpardaz&gl=GB" class="btn hero__btn">مشاهده آنلاین سوابق بیمه</a></div></main><div class="sidebar"><section class="box featured"><h3 class="box__title">Featured</h3><ul class="featured__container"><li class="featured__item"><a href="https://karmand.app/aatrd-bh-swbq-bymh-dry-khsry-khrkhrd-y-shkhl-tmyn-jtmaay/" class="featured__image-link"><img src="https://karmand.app/media/posts/143/responsive/esk-xs.jpg" class="lazyload" loading="lazy" alt="" height="400" width="400"></a><div><a href="https://karmand.app/aatrd-bh-swbq-bymh-dry-khsry-khrkhrd-y-shkhl-tmyn-jtmaay/" class="featured__title">اعتراض به سوابق بیمه دارای کسری کارکرد یا اشکال تامین اجتماعی</a> <time class="u-small" datetime="۲۰۲۲-۱۰-۱۹T۱۴:۰۱">اکتبر ۱۹، ۲۰۲۲</time></div></li><li class="featured__item"><a href="https://karmand.app/syt-swbq-bymh-tmyn-jtmaay-sabeghetaminir/" class="featured__image-link"><img src="https://karmand.app/media/posts/141/responsive/sabeghe-xs.jpg" class="lazyload" loading="lazy" alt="" height="400" width="400"></a><div><a href="https://karmand.app/syt-swbq-bymh-tmyn-jtmaay-sabeghetaminir/" class="featured__title">سایت سوابق بیمه تامین اجتماعی sabeghe.tamin.ir</a> <time class="u-small" datetime="۲۰۲۲-۱۰-۰۳T۱۴:۳۹">اکتبر ۳، ۲۰۲۲</time></div></li><li class="featured__item">
3<a href="https://karmand.app/syt-khlfy-khwdrw-or-staalm-khlfy-khwdrw-w-mwtwr-anlyn-1402/" class="featured__image-link"><img src="https://karmand.app/media/posts/116/responsive/khalafi-xs.jpg" class="lazyload" loading="lazy" alt="" height="400" width="400"></a><div><a href="https://karmand.app/syt-khlfy-khwdrw-or-staalm-khlfy-khwdrw-w-mwtwr-anlyn-1402/" class="featured__title">سایت خلافی خودرو | استعلام خلافی خودرو و موتور آنلاین ( ۱۴۰۳ )</a> <time class="u-small" datetime="۲۰۲۱-۰۴-۲۵T۱۶:۱۴">آوریل ۲۵، ۲۰۲۱</time></div></li><li class="featured__item"><a href="https://karmand.app/mshhdh-swbq-bymh-bdwn-gdhrwjh/" class="featured__image-link"><img src="https://karmand.app/media/posts/115/responsive/gozar-xs.jpg" class="lazyload" loading="lazy" alt="" height="400" width="400"></a><div><a href="https://karmand.app/mshhdh-swbq-bymh-bdwn-gdhrwjh/" class="featured__title">مشاهده سوابق بیمه بدون گذرواژه</a> <time class="u-small" datetime="۲۰۲۱-۰۴-۱۹T۱۲:۰۱">آوریل ۱۹، ۲۰۲۱</time></div></li><li class="featured__item"><a href="https://karmand.app/lyst-mshgl-skht-w-zyn-awr-sl-1402/" class="featured__image-link"><img src="https://karmand.app/media/posts/70/responsive/madan-xs.jpg" class="lazyload" loading="lazy" alt="" height="400" width="400"></a><div><a href="https://karmand.app/lyst-mshgl-skht-w-zyn-awr-sl-1402/" class="featured__title">لیست مشاغل سخت و زیان آور سال 1402</a> <time class="u-small" datetime="۲۰۲۰-۰۷-۲۶T۱۱:۴۸">ژوئیه ۲۶، ۲۰۲۰</time></div></li></ul></section><section class="box"><h3 class="box__title">Tags</h3><ul class="tags"><li><a href="https://karmand.app/tags/d8a7d9bed984db8cdaa9db8cd8b4d986-d8aad8a7d985db8cd986-d8a7d8acd8aad985d8a7d8b9db8c-d985d986/">اپلیکیشن تامین اجتماعی من</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d8a7d8b3d8aad8b9d984d8a7d985-d8a8db8cd985d987-d8aad8a7d985db8cd986-d8a7d8acd8aad985d8a7d8b9db8c/">استعلام بیمه تامین اجتماعی</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d8a8d8afd987db8c-d9bed984d8a7daa9-da86db8cd8b3d8aa/">بدهی پلاک چیست</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d8a8d8afd987db8c-d8b9d988d8a7d8b1d8b6-d9bed984d8a7daa9/">بدهی عوارض پلاک</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d9bed8b1d8afd8a7d8aed8aa-d8a8d8afd987db8c-d9bed984d8a7daa9-d8aed988d8afd8b1d988/">پرداخت بدهی پلاک خودرو</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d9bed8b1d8afd8a7d8aed8aa-d8b9d988d8a7d8b1d8b6-d8a7d984daa9d8aad8b1d988d986db8cdaa9db8c-d8aed988d8afd8b1d988/">پرداخت عوارض الکترونیکی خودرو</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d9bed8b1d8afd8a7d8aed8aa-d8b9d988d8a7d8b1d8b6-d8aed988d8afd8b1d988/">پرداخت عوارض خودرو</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d8aad8a7d985db8cd986-d8a7d8acd8aad985d8a7d8b9db8c-d985d986/">تامین اجتماعی من</a> <span class="u-small">(1)</span></li><li><a href="https://karmand.app/tags/d985d8b4d8a7d987d8afd987-d8b3d988d8a7d8a8d982-d8a8db8cd985d987/">مشاهده سوابق بیمه</a> <span class="u-small">(1)</span></li></ul></section></div><footer class="footer"><a class="footer__logo" href="https://karmand.app/"><img src="https://karmand.app/media/website/70x70.png" alt="کارمند" width="70" height="70"></a><nav><ul class="footer__nav"></ul></nav><div class="footer__copyright"><p>Powered by Publii</p></div></footer></div>
3<script>window.publiiThemeMenuConfig = {    
4        mobileMenuMode: 'sidebar',
5        animationSpeed: 300,
6        submenuWidth: 'auto',
7        doubleClickTime: 500,
8        mobileMenuExpandableSubmenus: true, 
9        relatedContainerForOverlayMenuSelector: '.navbar',
10   };</script>
10<script defer="defer" src="https://karmand.app/assets/js/scripts.min.js?v=ef33954c8f912e6c18ee116825aadc90"></script>
10<script>var images = document.querySelectorAll('img[loading]');
11
12      for (var i = 0; i < images.length; i++) {
13         if (images[i].complete) {
14               images[i].classList.add('is-loaded');
15         } else {
16               images[i].addEventListener('load', function () {
17                  this.classList.add('is-loaded');
18               }, false);
19         }
20      }</script>
20<div class="pcb" data-behaviour="badge" data-behaviour-link="#cookie-settings" data-revision="1" data-config-ttl="1" data-debug-mode="false"><div role="dialog" aria-modal="true" aria-hidden="true" aria-labelledby="pcb-title" aria-describedby="pcb-txt" class="pcb__banner"><div class="pcb__inner"><div id="pcb-title" role="heading" aria-level="2" class="pcb__title"><p class="align-center" style="font-family: 'IRAN Sans Regular'">دانلود اپ کارمند</p></div><div id="pcb-txt" class="pcb__txt"><p class="align-center" style="font-family: 'IRAN Sans Regular'">استعلام سوابق بیمه تامین اجتماعی با اپ کارمند</p><br><p class="align-center"><a href="https://play.google.com/store/apps/details?id=com.vada.karpardaz"><img src="https://karmand.app/assets/svg/play.png" width="200"></a></p><br></div><div class="pcb__buttons"><button type="button" class="pcb__btn pcb__btn--solid pcb__btn--accept">بستن</button></div></div></div><button class="pcb__badge" aria-label="Cookie Policy" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" width="40" height="40" viewBox="0 0 23 23" fill="currentColor"><path d="M21.41 12.71c-.08-.01-.15 0-.22 0h-.03c-.03 0-.05 0-.08.01-.07 0-.13.01-.19.04-.52.21-1.44.19-2.02-.22-.44-.31-.65-.83-.62-1.53a.758.758 0 0 0-.27-.61.73.73 0 0 0-.65-.14c-1.98.51-3.49.23-4.26-.78-.82-1.08-.73-2.89.24-4.49.14-.23.14-.52 0-.75a.756.756 0 0 0-.67-.36c-.64.03-1.11-.1-1.31-.35-.19-.26-.13-.71-.01-1.29.04-.18.06-.38.03-.59-.05-.4-.4-.7-.81-.66C5.1 1.54 1 6.04 1 11.48 1 17.28 5.75 22 11.6 22c5.02 0 9.39-3.54 10.39-8.42.08-.4-.18-.78-.58-.87Zm-9.81 7.82c-5.03 0-9.12-4.06-9.12-9.06 0-4.34 3.05-8 7.25-8.86-.08.7.05 1.33.42 1.81.24.32.66.67 1.38.84-.76 1.86-.65 3.78.36 5.11.61.81 2.03 2 4.95 1.51.18.96.71 1.54 1.18 1.87.62.43 1.38.62 2.1.62.05 0 .09 0 .13-.01-1.23 3.64-4.7 6.18-8.64 6.18ZM13 17c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1Zm5.29-12.3a.99.99 0 0 1-.29-.71c0-.55.45-.99 1-.99a1 1 0 0 1 .71.3c.19.19.29.44.29.71 0 .55-.45.99-1 .99a1 1 0 0 1-.71-.3ZM9 13.5c0 .83-.67 1.5-1.5 1.5S6 14.33 6 13.5 6.67 12 7.5 12s1.5.67 1.5 1.5Zm3.25.81a.744.744 0 0 1-.06-1.05c.28-.32.75-.34 1.05-.06.31.28.33.75.05 1.06-.15.16-.35.25-.56.25-.18 0-.36-.06-.5-.19ZM8.68 7.26c.41.37.44 1 .07 1.41-.2.22-.47.33-.75.33a.96.96 0 0 1-.67-.26c-.41-.37-.44-1-.07-1.41.37-.42 1-.45 1.41-.08Zm11.48 1.88c.18-.19.52-.19.7 0 .05.04.09.1.11.16.03.06.04.12.04.19 0 .13-.05.26-.15.35-.09.1-.22.15-.35.15s-.26-.05-.35-.15a.355.355 0 0 1-.11-.16.433.433 0 0 1-.04-.19c0-.13.05-.26.15-.35Zm-4.93-1.86a.75.75 0 1 1 1.059-1.06.75.75 0 0 1-1.059 1.06Z"/></svg></button></div>
20<script>(function(win) {
21    if (!document.querySelector('.pcb')) {
22        return;
23    }
24
25    var cbConfig = {
26        behaviour: document.querySelector('.pcb').getAttribute('data-behaviour'),
27        behaviourLink: document.querySelector('.pcb').getAttribute('data-behaviour-link'),
28        revision: document.querySelector('.pcb').getAttribute('data-revision'),
29        configTTL: parseInt(document.querySelector('.pcb').getAttribute('data-config-ttl'), 10),
30        debugMode: document.querySelector('.pcb').getAttribute('data-debug-mode') === 'true',
31        initialState: null,
32        initialLsState: null,
33        previouslyAccepted: []
34    };
35
36    var cbUI = {
37        wrapper: document.querySelector('.pcb'),
38        banner: {
39            element: null,
40            btnAccept: null,
41            btnReject: null,
42            btnConfigure: null
43        },
44        popup: {
45            element: null,
46            btnClose: null,
47            btnSave: null,
48            btnAccept: null,
49            btnReject: null,
50            checkboxes: null,
51        },
52        overlay: null,
53        badge: null,
54        blockedScripts: document.querySelectorAll('script[type^="gdpr-blocker/"]'),
55        triggerLinks: cbConfig.behaviourLink ? document.querySelectorAll('a[href*="' + cbConfig.behaviourLink + '"]') : null
56    };
57
58    function initUI () {
59        // setup banner elements
60        cbUI.banner.element = cbUI.wrapper.querySelector('.pcb__banner');
61        cbUI.banner.btnAccept = cbUI.banner.element.querySelector('.pcb__btn--accept');
62        cbUI.banner.btnReject = cbUI.banner.element.querySelector('.pcb__btn--reject');
63        cbUI.banner.btnConfigure = cbUI.banner.element.querySelector('.pcb__btn--configure');
64
65        // setup popup elements
66        if (cbUI.wrapper.querySelector('.pcb__popup')) {
67            cbUI.popup.element = cbUI.wrapper.querySelector('.pcb__popup');
68            cbUI.popup.btnClose = cbUI.wrapper.querySelector('.pcb__popup__close');
69            cbUI.popup.btnSave = cbUI.popup.element.querySelector('.pcb__btn--save');
70            cbUI.popup.btnAccept = cbUI.popup.element.querySelector('.pcb__btn--accept');
71            cbUI.popup.btnReject = cbUI.popup.element.querySelector('.pcb__btn--reject');
72            cbUI.popup.checkboxes = cbUI.popup.element.querySelector('input[type="checkbox"]');
73            // setup overlay
74            cbUI.overlay = cbUI.wrapper.querySelector('.pcb__overlay');
75        }
76
77        cbUI.badge = cbUI.wrapper.querySelector('.pcb__badge');
78
79        if (cbConfig.behaviour.indexOf('link') > -1) {
80            for (var i = 0; i < cbUI.triggerLinks.length; i++) {
81                cbUI.triggerLinks[i].addEventListener('click', function(e) {
82                    e.preventDefault();
83                    showBannerOrPopup();
84                });
85            }
86        }
87    }
88
89    function initState () {
90        var lsKeyName = getConfigName();
91        var currentConfig = localStorage.getItem(lsKeyName);
92        var configIsFresh = checkIfConfigIsFresh();
93
94        if (!configIsFresh || currentConfig === null) {
95            if (cbConfig.debugMode) {
96                console.log('🍪 Config not found, or configuration expired');
97            }
98
99            if (window.publiiCBGCM) {
100                gtag('consent', 'default', {
101                    'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied',
102                    'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied',
103                    'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied',
104                    'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied',
105                    'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied',
106                    'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied',
107                    'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied'
108                });  
109                
110                if (cbConfig.debugMode) {
111                    console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({
112                        'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied',
113                        'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied',
114                        'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied',
115                        'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied',
116                        'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied',
117                        'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied',
118                        'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied'
119                    }));
120                }
121            }
122
123            showBanner();
124        } else if (typeof currentConfig === 'string') {
125            if (cbConfig.debugMode) {
126                console.log('🍪 Config founded');
127            }
128
129            cbConfig.initialLsState = currentConfig.split(',');
130
131            if (window.publiiCBGCM) {
132                gtag('consent', 'default', {
133                    'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'),
134                    'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'),
135                    'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'),
136                    'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'),
137                    'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'),
138                    'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'),
139                    'security_storage': getDefaultConsentState(currentConfig, 'security_storage')
140                });
141                
142                if (cbConfig.debugMode) {
143                    console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({
144                        'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'),
145                        'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'),
146                        'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'),
147                        'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'),
148                        'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'),
149                        'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'),
150                        'security_storage': getDefaultConsentState(currentConfig, 'security_storage')
151                    }));
152                }
153            }
154
155            showBadge();
156
157            if (cbUI.popup.element) {
158                var allowedGroups = currentConfig.split(',');
159                var checkedCheckboxes = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked');
160
161                for (var j = 0; j < checkedCheckboxes.length; j++) {
162                    var name = checkedCheckboxes[j].getAttribute('data-group-name');
163
164                    if (name && name !== '-' && allowedGroups.indexOf(name) === -1) {
165                        checkedCheckboxes[j].checked = false;
166                    }
167                }
168
169                for (var i = 0; i < allowedGroups.length; i++) {
170                    var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + allowedGroups[i] + '"]');
171
172                    if (checkbox) {
173                        checkbox.checked = true;
174                    }
175
176                    allowCookieGroup(allowedGroups[i]);
177                }
178            }
179        }
180
181        setTimeout(function () {
182            cbConfig.initialState = getInitialStateOfConsents();
183        }, 0);
184    }
185
186    function checkIfConfigIsFresh () {
187        var lastConfigSave = localStorage.getItem('publii-gdpr-cookies-config-save-date');
188
189        if (lastConfigSave === null) {
190            return false;
191        }
192
193        lastConfigSave = parseInt(lastConfigSave, 10);
194
195        if (lastConfigSave === 0) {
196            return true;
197        }
198
199        if (+new Date() - lastConfigSave < cbConfig.configTTL * 24 * 60 * 60 * 1000) {
200            return true;
201        }
202
203        return false;
204    }
205
206    function getDefaultConsentState (currentConfig, consentGroup) {
207        let configGroups = currentConfig.split(',');
208
209        for (let i = 0; i < configGroups.length; i++) {
210            let groupName = configGroups[i];
211            let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === groupName);
212
213            if (group && group[consentGroup]) {
214                return 'granted';
215            }
216        }  
217        
218        if (window.publiiCBGCM.defaultState[consentGroup]) {
219            return 'granted'; 
220        }
221        
222        return 'denied';
223    }
224
225    function initBannerEvents () {
226        cbUI.banner.btnAccept.addEventListener('click', function (e) {
227            e.preventDefault();
228            acceptAllCookies('banner');
229            showBadge();
230        }, false);
231
232        if (cbUI.banner.btnReject) {
233            cbUI.banner.btnReject.addEventListener('click', function (e) {
234                e.preventDefault();
235                rejectAllCookies();
236                showBadge();
237            }, false);
238        }
239
240        if (cbUI.banner.btnConfigure) {
241            cbUI.banner.btnConfigure.addEventListener('click', function (e) {
242                e.preventDefault();
243                hideBanner();
244                showAdvancedPopup();
245                showBadge();
246            }, false);
247        }
248    }
249
250    function initPopupEvents () {
251        if (!cbUI.popup.element) {
252            return;
253        }
254
255        cbUI.overlay.addEventListener('click', function (e) {
256            hideAdvancedPopup();
257        }, false);
258
259        cbUI.popup.element.addEventListener('click', function (e) {
260            e.stopPropagation();
261        }, false);
262
263        cbUI.popup.btnAccept.addEventListener('click', function (e) {
264            e.preventDefault();
265            acceptAllCookies('popup');
266        }, false);
267
268        cbUI.popup.btnReject.addEventListener('click', function (e) {
269            e.preventDefault();
270            rejectAllCookies();
271        }, false);
272
273        cbUI.popup.btnSave.addEventListener('click', function (e) {
274            e.preventDefault();
275            saveConfiguration();
276        }, false);
277
278        cbUI.popup.btnClose.addEventListener('click', function (e) {
279            e.preventDefault();
280            hideAdvancedPopup();
281        }, false);
282    }
283
284    function initBadgeEvents () {
285        if (!cbUI.badge) {
286            return;
287        }
288
289        cbUI.badge.addEventListener('click', function (e) {
290            showBannerOrPopup();
291        }, false);
292    }
293
294    initUI();
295    initState();
296    initBannerEvents();
297    initPopupEvents();
298    initBadgeEvents();
299
300    /**
301     * API
302     */
303    function addScript (src, inline) {
304        var newScript = document.createElement('script');
305
306        if (src) {
307            newScript.setAttribute('src', src);
308        }
309
310        if (inline) {
311            newScript.text = inline;
312        }
313
314        document.body.appendChild(newScript);
315    }
316
317    function allowCookieGroup (allowedGroup) {
318        var scripts = document.querySelectorAll('script[type="gdpr-blocker/' + allowedGroup + '"]');
319        cbConfig.previouslyAccepted.push(allowedGroup);
320    
321        for (var j = 0; j < scripts.length; j++) {
322            addScript(scripts[j].src, scripts[j].text);
323        }
324
325        var groupEvent = new Event('publii-cookie-banner-unblock-' + allowedGroup);
326        document.body.dispatchEvent(groupEvent);
327        unlockEmbeds(allowedGroup);
328
329        if (cbConfig.debugMode) {
330            console.log('🍪 Allowed group: ' + allowedGroup);
331        }
332
333        if (window.publiiCBGCM && (!cbConfig.initialLsState || cbConfig.initialLsState.indexOf(allowedGroup) === -1)) {
334            let consentResult = {};
335            let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === allowedGroup);
336
337            if (group) {
338                let foundSomeConsents = false;
339
340                Object.keys(group).forEach(key => {
341                    if (key !== 'cookieGroup' && group[key] === true) {
342                        consentResult[key] = 'granted';
343                        foundSomeConsents = true;
344                    }
345                });
346
347                if (foundSomeConsents) {
348                    gtag('consent', 'update', consentResult);   
349
350                    if (cbConfig.debugMode) {
351                        console.log('🍪 GCMv2 UPDATE: ' + JSON.stringify(consentResult));
352                    }
353                }
354            }
355        }
356    }
357
358    function showBannerOrPopup () {
359        if (cbUI.popup.element) {
360            showAdvancedPopup();
361        } else {
362            showBanner();
363        }
364    }
365
366    function showAdvancedPopup () {
367        cbUI.popup.element.classList.add('is-visible');
368        cbUI.overlay.classList.add('is-visible');
369        cbUI.popup.element.setAttribute('aria-hidden', 'false');
370        cbUI.overlay.setAttribute('aria-hidden', 'false');
371    }
372
373    function hideAdvancedPopup () {
374        cbUI.popup.element.classList.remove('is-visible');
375        cbUI.overlay.classList.remove('is-visible');
376        cbUI.popup.element.setAttribute('aria-hidden', 'true');
377        cbUI.overlay.setAttribute('aria-hidden', 'true');
378    }
379
380    function showBanner () {
381        cbUI.banner.element.classList.add('is-visible');
382        cbUI.banner.element.setAttribute('aria-hidden', 'false');
383    }
384
385    function hideBanner () {
386        cbUI.banner.element.classList.remove('is-visible');
387        cbUI.banner.element.setAttribute('aria-hidden', 'true');
388    }
389
390    function showBadge () {
391        if (!cbUI.badge) {
392            return;
393        }
394
395        cbUI.badge.classList.add('is-visible');
396        cbUI.badge.setAttribute('aria-hidden', 'false');
397    }
398
399    function getConfigName () {
400        var lsKeyName = 'publii-gdpr-allowed-cookies';
401
402        if (cbConfig.revision) {
403            lsKeyName = lsKeyName + '-v' + parseInt(cbConfig.revision, 10);
404        }
405
406        return lsKeyName;
407    }
408
409    function storeConfiguration (allowedGroups) {
410        var lsKeyName = getConfigName();
411        var dataToStore = allowedGroups.join(',');
412        localStorage.setItem(lsKeyName, dataToStore);
413
414        if (cbConfig.configTTL === 0) {
415            localStorage.setItem('publii-gdpr-cookies-config-save-date', 0);
416
417            if (cbConfig.debugMode) {
418                console.log('🍪 Store never expiring configuration');
419            }
420        } else {
421            localStorage.setItem('publii-gdpr-cookies-config-save-date', +new Date());
422        }
423    }
424
425    function getInitialStateOfConsents () {
426        if (!cbUI.popup.element) {
427            return [];
428        }
429
430        var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked');
431        var groups = [];
432
433        for (var i = 0; i < checkedGroups.length; i++) {
434            var allowedGroup = checkedGroups[i].getAttribute('data-group-name');
435
436            if (allowedGroup !== '') {
437                groups.push(allowedGroup);
438            }
439        }
440
441        if (cbConfig.debugMode) {
442            console.log('🍪 Initial state: ' + groups.join(', '));
443        }
444
445        return groups;
446    }
447
448    function getCurrentStateOfConsents () {
449        if (!cbUI.popup.element) {
450            return [];
451        }
452
453        var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked');
454        var groups = [];
455
456        for (var i = 0; i < checkedGroups.length; i++) {
457            var allowedGroup = checkedGroups[i].getAttribute('data-group-name');
458
459            if (allowedGroup !== '') {
460                groups.push(allowedGroup);
461            }
462        }
463
464        if (cbConfig.debugMode) {
465            console.log('🍪 State to save: ' + groups.join(', '));
466        }
467
468        return groups;
469    }
470
471    function getAllGroups () {
472        if (!cbUI.popup.element) {
473            return [];
474        }
475
476        var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]');
477        var groups = [];
478
479        for (var i = 0; i < checkedGroups.length; i++) {
480            var allowedGroup = checkedGroups[i].getAttribute('data-group-name');
481
482            if (allowedGroup !== '') {
483                groups.push(allowedGroup);
484            }
485        }
486
487        return groups;
488    }
489
490    function acceptAllCookies (source) {
491        var groupsToAccept = getAllGroups();
492        storeConfiguration(groupsToAccept);
493
494        for (var i = 0; i < groupsToAccept.length; i++) {
495            var group = groupsToAccept[i];
496
497            if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) {
498                if (cbConfig.debugMode) {
499                    console.log('🍪 Skip previously activated group: ' + group);
500                }
501
502                continue;
503            }
504
505            allowCookieGroup(group);
506        }
507
508        if (cbUI.popup.element) {
509            var checkboxesToCheck = cbUI.popup.element.querySelectorAll('input[type="checkbox"]');
510
511            for (var j = 0; j < checkboxesToCheck.length; j++) {
512                checkboxesToCheck[j].checked = true;
513            }
514        }
515
516        if (cbConfig.debugMode) {
517            console.log('🍪 Accept all cookies: ', groupsToAccept.join(', '));
518        }
519
520        if (source === 'popup') {
521            hideAdvancedPopup();
522        } else if (source === 'banner') {
523            hideBanner();
524        }
525    }
526
527    function rejectAllCookies () {
528        if (cbConfig.debugMode) {
529            console.log('🍪 Reject all cookies');
530        }
531
532        storeConfiguration([]);
533        setTimeout(function () {
534            window.location.reload();
535        }, 100);
536    }
537
538    function saveConfiguration () {
539        var groupsToAccept = getCurrentStateOfConsents();
540        storeConfiguration(groupsToAccept);
541
542        if (cbConfig.debugMode) {
543            console.log('🍪 Save new config: ', groupsToAccept.join(', '));
544        }
545
546        if (reloadIsNeeded(groupsToAccept)) {
547            setTimeout(function () {
548                window.location.reload();
549            }, 100);
550            return;
551        }
552
553        for (var i = 0; i < groupsToAccept.length; i++) {
554            var group = groupsToAccept[i];
555
556            if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) {
557                if (cbConfig.debugMode) {
558                    console.log('🍪 Skip previously activated group: ' + group);
559                }
560
561                continue;
562            }
563
564            allowCookieGroup(group);
565        }
566
567        hideAdvancedPopup();
568    }
569
570    function reloadIsNeeded (groupsToAccept) {
571        // check if user rejected consent for initial groups
572        var initialGroups = cbConfig.initialState;
573        var previouslyAcceptedGroups = cbConfig.previouslyAccepted;
574        var groupsToCheck = initialGroups.concat(previouslyAcceptedGroups);
575
576        for (var i = 0; i < groupsToCheck.length; i++) {
577            var groupToCheck = groupsToCheck[i];
578
579            if (groupToCheck !== '' && groupsToAccept.indexOf(groupToCheck) === -1) {
580                if (cbConfig.debugMode) {
581                    console.log('🍪 Reload is needed due lack of: ', groupToCheck);
582                }
583
584                return true;
585            }
586        }
587
588        return false;
589    }
590
591    function unlockEmbeds (cookieGroup) {
592        var iframesToUnlock = document.querySelectorAll('.pec-wrapper[data-consent-group-id="' + cookieGroup + '"]');
593
594        for (var i = 0; i < iframesToUnlock.length; i++) {
595            var iframeWrapper = iframesToUnlock[i];
596            iframeWrapper.querySelector('.pec-overlay').classList.remove('is-active');
597            iframeWrapper.querySelector('.pec-overlay').setAttribute('aria-hidden', 'true');
598            var iframe = iframeWrapper.querySelector('iframe');
599            iframe.setAttribute('src', iframe.getAttribute('data-consent-src'));
600        }
601    }
602
603    win.publiiEmbedConsentGiven = function (cookieGroup) {
604        // it will unlock embeds
605        allowCookieGroup(cookieGroup);
606
607        var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + cookieGroup + '"]');
608
609        if (checkbox) {
610            checkbox.checked = true;
611        }
612
613        var groupsToAccept = getCurrentStateOfConsents();
614        storeConfiguration(groupsToAccept);
615
616        if (cbConfig.debugMode) {
617            console.log('🍪 Save new config: ', groupsToAccept.join(', '));
618        }
619    }
620})(window);</script>
620</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.