بررسی اجمالی
گزارش تولید شده در 1405/06/04 در 10:31:27 (UTC +03:30). به‌روزرسانی گزارش
5 روز پیش
90
100
Online Khadamate | معماری دیجیتال و توسعه کسب‌وکار بین‌المللی
این گزارش سئو عملکرد https://fa.onlinekhadamate.com/ را با امتیاز 90 از 100 تحلیل می‌کند. این گزارش 1 مشکل با اولویت بالا، 2 مشکل با اولویت متوسط و 4 مشکل با اولویت پایین از مجموع 40 تست انجام‌شده را شناسایی کرده است.
سئو
عنوان
برچسب عنوان باید بین 1 و 60 کاراکتر باشد.
عنوان فعلی دارای 61 کاراکتر است.
برچسب عنوان عنصر HTML است که عنوان صفحه وب را مشخص می‌کند. برچسب عنوان در بالای مرورگر شما، در نتایج جستجو و همچنین در نوار بوک‌مارک‌ها نمایش داده می‌شود.
بیشتر بدانید
توضیحات متا
برچسب توضیحات متا خوب است.
تبدیل ترافیک به دارایی ارزشمند. ما اکوسیستم‌های وب اختصاصی را با ادغام سئو معنایی، GEO، هوش مصنوعی (LLMs) و تبلیغات گوگل برای تسلط بر بازارهای جهانی مهندسی می‌کنیم.
توضیحات متا یک برچسب HTML است که خلاصه‌ای کوتاه و دقیق از صفحه وب ارائه می‌دهد. توضیحات متا توسط موتورهای جستجو برای شناسایی موضوع صفحه وب و ارائه نتایج جستجوی مرتبط استفاده می‌شود.
بیشتر بدانید
کلمات کلیدی متا
برچسب کلمات کلیدی متا وجود ندارد یا خالی است.
برچسب کلمات کلیدی متا یک برچسب HTML است که کلمات مهم مربوط به صفحه وب را لیست می‌کند. کلمات کلیدی متا زمانی توسط موتورهای جستجو برای شناسایی موضوع صفحه وب و بهبود ارتباط جستجو استفاده می‌شدند، اما اکنون به طور عمده توسط موتورهای جستجوی اصلی نادیده گرفته می‌شوند.
بیشتر بدانید
متا رفرش
این صفحه متا رفرش ندارد.
تگ متا رفرش برای هدایت کاربران یا تازه‌سازی صفحه پس از بازه زمانی مشخص استفاده می‌شود. این روش توصیه نمی‌شود؛ زیرا تجربه کاربری ضعیفی ایجاد می‌کند و ممکن است از دید موتورهای جستجو تکنیک اسپم تلقی شود.
بیشتر بدانید
عناوین
عناوین به درستی تنظیم شده‌اند.
  1. آژانس دیجیتال مارکتینگ Online Khadamate
  1. چرا آنلاین خدمات (Online Khadamate)؟
  2. سیستم هوشمند تولید محتوا: ارتش ۱۰۰ نفره متخصصان سئو در سایت شما!
  3. سوالات متداول
برچسب‌های h نشان‌دهنده عناوین صفحه وب هستند. برچسب h1 مهم‌ترین برچسب h است و موضوع اصلی صفحه را توصیف می‌کند، در حالی که بقیه برچسب‌ها زیرموضوعات صفحه وب را توصیف می‌کنند.
بیشتر بدانید
کلمات کلیدی محتوا
محتوا دارای کلمات کلیدی مرتبط است.
online khadamate معماری دیجیتال و کسب وکار بین المللی
محتوای صفحه وب باید شامل کلمات کلیدی مرتبطی باشد که همچنین در عنوان صفحه وب یافت می‌شوند.
کلمات کلیدی تصویر
تمام تصاویر دارای ویژگی‌های alt تنظیم شده‌اند.
ویژگی alt متن جایگزینی را برای یک تصویر مشخص می‌کند، اگر تصویر قابل نمایش نباشد. ویژگی alt همچنین برای موتورهای جستجو مفید است تا موضوع تصویر را شناسایی کنند و به نرم‌افزارهای خواندن صفحه کمک می‌کند تا تصویر را توصیف کنند.
بیشتر بدانید
نشانی اینترنتی SEO دوستانه
نشانی اینترنتی SEO دوستانه است.
https://fa.onlinekhadamate.com/
نشانی‌های اینترنتی SEO دوستانه، نشانی‌هایی هستند که حاوی کلمات کلیدی مرتبط با موضوع صفحه وب هستند و هیچ کاراکتر خاصی به جز اسلش و خط تیره ندارند.
بیشتر بدانید
صفحه ۴۰۴
وب‌سایت دارای صفحات خطای ۴۰۴ است.
وضعیت صفحه وب ۴۰۴ به کاربران و موتورهای جستجو اطلاع می‌دهد که یک صفحه وب وجود ندارد.
بیشتر بدانید
Robots.txt
صفحه وب توسط موتورهای جستجو قابل دسترسی است.
فایل robots.txt به موتورهای جستجو اطلاع می‌دهد کدام پیوندهای وب‌سایت قابل دسترسی هستند.
بیشتر بدانید
بدون ایندکس
صفحه وب برچسب noindex تنظیم نشده است.
برچسب noindex به موتورهای جستجو دستور می‌دهد صفحه وب را ایندکس نکنند.
بیشتر بدانید
زبان
صفحه وب زبان اعلام شده دارد.
fa
ویژگی lang زبان صفحه وب را اعلام می‌کند، به موتورهای جستجو کمک می‌کند زبانی که محتوا به آن نوشته شده است را شناسایی کنند و به مرورگرها کمک می‌کند پیشنهادات ترجمه ارائه دهند.
بیشتر بدانید
فاوآیکون
صفحه وب دارای فاوآیکون است.
فاوآیکون آیکونی است که در تب مرورگر نمایش داده می‌شود، هنگامی که صفحه وب بوک‌مارک می‌شود و گاهی حتی در نتایج موتورهای جستجو.
بیشتر بدانید
عملکرد
فشرده‌سازی متن
فایل HTML فشرده شده است.
اندازه فایل HTML 28.85 KB است.
فشرده‌سازی متن با فشرده کردن محتوای HTML به سرعت بارگذاری صفحه وب کمک می‌کند.
بیشتر بدانید
زمان بارگذاری
صفحه وب در 0.37 ثانیه بارگذاری شد.
زمان بارگذاری نشان‌دهنده زمان کل بارگذاری HTML است و شامل منابع خارجی مانند تصاویر، اسکریپت‌ها یا سایر منابع نمی‌شود.
اندازه صفحه
اندازه صفحه وب HTML 28.85 KB است.
اندازه صفحه نشان‌دهنده اندازه کل HTML است و شامل منابع خارجی مانند تصاویر، اسکریپت‌ها یا سایر منابع نمی‌شود.
درخواست‌های HTTP
کمتر از 5 درخواست HTTP در صفحه وب وجود دارد.
  1. https://fa.onlinekhadamate.com/data:text/javascript;base64,KCgpPT57Y2xhc3MgUm9ja2V0TGF6eUxvYWRTY3JpcHRze2NvbnN0cnVjdG9yKCl7dGhpcy52PSIyLjAuNSIsdGhpcy51c2VyRXZlbnRzPVsia2V5ZG93biIsImtleXVwIiwibW91c2Vkb3duIiwibW91c2V1cCIsIm1vdXNlbW92ZSIsIm1vdXNlb3ZlciIsIm1vdXNlb3V0IiwidG91Y2htb3ZlIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiLCJ3aGVlbCIsImNsaWNrIiwiZGJsY2xpY2siLCJpbnB1dCJdLHRoaXMuYXR0cmlidXRlRXZlbnRzPVsib25ibHVyIiwib25jbGljayIsIm9uY29udGV4dG1lbnUiLCJvbmRibGNsaWNrIiwib25mb2N1cyIsIm9ubW91c2Vkb3duIiwib25tb3VzZWVudGVyIiwib25tb3VzZWxlYXZlIiwib25tb3VzZW1vdmUiLCJvbm1vdXNlb3V0Iiwib25tb3VzZW92ZXIiLCJvbm1vdXNldXAiLCJvbm1vdXNld2hlZWwiLCJvbnNjcm9sbCIsIm9uc3VibWl0Il19YXN5bmMgdCgpe3RoaXMuaSgpLHRoaXMubygpLC9pUChhZHxob25lKS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmdGhpcy5oKCksdGhpcy51KCksdGhpcy5sKHRoaXMpLHRoaXMubSgpLHRoaXMuayh0aGlzKSx0aGlzLnAodGhpcyksdGhpcy5fKCksYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuUigpLHRoaXMuTCgpXSksdGhpcy5sYXN0QnJlYXRoPURhdGUubm93KCksdGhpcy5TKHRoaXMpLHRoaXMuUCgpLHRoaXMuRCgpLHRoaXMuTygpLHRoaXMuTSgpLGF3YWl0IHRoaXMuQyh0aGlzLmRlbGF5ZWRTY3JpcHRzLm5vcm1hbCksYXdhaXQgdGhpcy5DKHRoaXMuZGVsYXllZFNjcmlwdHMuZGVmZXIpLGF3YWl0IHRoaXMuQyh0aGlzLmRlbGF5ZWRTY3JpcHRzLmFzeW5jKSxhd2FpdCB0aGlzLlQoKSxhd2FpdCB0aGlzLkYoKSxhd2FpdCB0aGlzLmooKSxhd2FpdCB0aGlzLkEoKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJvY2tldC1hbGxTY3JpcHRzTG9hZGVkIikpLHRoaXMuZXZlcnl0aGluZ0xvYWRlZD0hMCx0aGlzLmxhc3RUb3VjaEVuZCYmYXdhaXQgbmV3IFByb21pc2UodD0+c2V0VGltZW91dCh0LDUwMC1EYXRlLm5vdygpK3RoaXMubGFzdFRvdWNoRW5kKSksdGhpcy5JKCksdGhpcy5IKCksdGhpcy5VKCksdGhpcy5XKCl9aSgpe3RoaXMuQ1NQSXNzdWU9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgicm9ja2V0Q1NQSXNzdWUiKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsdD0+e3RoaXMuQ1NQSXNzdWV8fCJzY3JpcHQtc3JjLWVsZW0iIT09dC52aW9sYXRlZERpcmVjdGl2ZXx8ImRhdGEiIT09dC5ibG9ja2VkVVJJfHwodGhpcy5DU1BJc3N1ZT0hMCxzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJyb2NrZXRDU1BJc3N1ZSIsITApKX0se2lzUm9ja2V0OiEwfSl9bygpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsdD0+e3RoaXMucGVyc2lzdGVkPXQucGVyc2lzdGVkLHRoaXMucmVhbFdpbmRvd0xvYWRlZEZpcmVkPSEwfSx7aXNSb2NrZXQ6ITB9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCgpPT57dGhpcy5vbkZpcnN0VXNlckFjdGlvbj1udWxsfSx7aXNSb2NrZXQ6ITB9KX1oKCl7bGV0IHQ7ZnVuY3Rpb24gZShlKXt0PWV9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGUse2lzUm9ja2V0OiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmdW5jdGlvbiBpKG8pe28uY2hhbmdlZFRvdWNoZXNbMF0mJnQuY2hhbmdlZFRvdWNoZXNbMF0mJk1hdGguYWJzKG8uY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgtdC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWCk8MTAmJk1hdGguYWJzKG8uY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVktdC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSk8MTAmJm8udGltZVN0YW1wLXQudGltZVN0YW1wPDIwMCYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixlLHtpc1JvY2tldDohMH0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsaSx7aXNSb2NrZXQ6ITB9KSwiSU5QVVQiPT09by50YXJnZXQudGFnTmFtZSYmInRleHQiPT09by50YXJnZXQudHlwZXx8KG8udGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IFRvdWNoRXZlbnQoInRvdWNoZW5kIix7dGFyZ2V0Om8udGFyZ2V0LGJ1YmJsZXM6ITB9KSksby50YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgibW91c2VvdmVyIix7dGFyZ2V0Om8udGFyZ2V0LGJ1YmJsZXM6ITB9KSksby50YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgUG9pbnRlckV2ZW50KCJjbGljayIse3RhcmdldDpvLnRhcmdldCxidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsZGV0YWlsOjEsY2xpZW50WDpvLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsY2xpZW50WTpvLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFl9KSksZXZlbnQucHJldmVudERlZmF1bHQoKSkpfSx7aXNSb2NrZXQ6ITB9KX1xKHQpe3RoaXMudXNlckFjdGlvblRyaWdnZXJlZHx8KCJtb3VzZW1vdmUiIT09dC50eXBlfHx0aGlzLmZpcnN0TW91c2Vtb3ZlSWdub3JlZD8ia2V5dXAiPT09dC50eXBlfHwibW91c2VvdmVyIj09PXQudHlwZXx8Im1vdXNlb3V0Ij09PXQudHlwZXx8KHRoaXMudXNlckFjdGlvblRyaWdnZXJlZD0hMCx0aGlzLm9uRmlyc3RVc2VyQWN0aW9uJiZ0aGlzLm9uRmlyc3RVc2VyQWN0aW9uKCkpOnRoaXMuZmlyc3RNb3VzZW1vdmVJZ25vcmVkPSEwKSwiY2xpY2siPT09dC50eXBlJiZ0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLCJ0b3VjaHN0YXJ0Ij09PXRoaXMubGFzdEV2ZW50JiYidG91Y2hlbmQiPT09dC50eXBlJiYodGhpcy5sYXN0VG91Y2hFbmQ9RGF0ZS5ub3coKSksImNsaWNrIj09PXQudHlwZSYmKHRoaXMubGFzdFRvdWNoRW5kPTApLHRoaXMubGFzdEV2ZW50PXQudHlwZSx0LmNvbXBvc2VkUGF0aCYmdC5jb21wb3NlZFBhdGgoKVswXS5nZXRSb290Tm9kZSgpaW5zdGFuY2VvZiBTaGFkb3dSb290JiYodC5yb2NrZXRUYXJnZXQ9dC5jb21wb3NlZFBhdGgoKVswXSksdGhpcy5zYXZlZFVzZXJFdmVudHMucHVzaCh0KX11KCl7dGhpcy5zYXZlZFVzZXJFdmVudHM9W10sdGhpcy51c2VyRXZlbnRIYW5kbGVyPXRoaXMucS5iaW5kKHRoaXMpLHRoaXMudXNlckV2ZW50cy5mb3JFYWNoKHQ9PndpbmRvdy5hZGRFdmVudExpc3RlbmVyKHQsdGhpcy51c2VyRXZlbnRIYW5kbGVyLHtwYXNzaXZlOiExLGlzUm9ja2V0OiEwfSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMudXNlckV2ZW50SGFuZGxlcix7aXNSb2NrZXQ6ITB9KX1VKCl7dGhpcy51c2VyRXZlbnRzLmZvckVhY2godD0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLnVzZXJFdmVudEhhbmRsZXIse3Bhc3NpdmU6ITEsaXNSb2NrZXQ6ITB9KSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsdGhpcy51c2VyRXZlbnRIYW5kbGVyLHtpc1JvY2tldDohMH0pLHRoaXMuc2F2ZWRVc2VyRXZlbnRzLmZvckVhY2godD0+eyh0LnJvY2tldFRhcmdldHx8dC50YXJnZXQpLmRpc3BhdGNoRXZlbnQobmV3IHdpbmRvd1t0LmNvbnN0cnVjdG9yLm5hbWVdKHQudHlwZSx0KSl9KX1tKCl7Y29uc3QgdD0icmV0dXJuIGZhbHNlIixlPUFycmF5LmZyb20odGhpcy5hdHRyaWJ1dGVFdmVudHMsdD0+ImRhdGEtcm9ja2V0LSIrdCksaT0iWyIrdGhpcy5hdHRyaWJ1dGVFdmVudHMuam9pbigiXSxbIikrIl0iLG89IltkYXRhLXJvY2tldC0iK3RoaXMuYXR0cmlidXRlRXZlbnRzLmpvaW4oIl0sW2RhdGEtcm9ja2V0LSIpKyJdIixzPShlLGksbyk9PntvJiZvIT09dCYmKGUuc2V0QXR0cmlidXRlKCJkYXRhLXJvY2tldC0iK2ksbyksZVsicm9ja2V0IitpXT1uZXcgRnVuY3Rpb24oImV2ZW50IixvKSxlLnNldEF0dHJpYnV0ZShpLHQpKX07bmV3IE11dGF0aW9uT2JzZXJ2ZXIodD0+e2Zvcihjb25zdCBuIG9mIHQpImF0dHJpYnV0ZXMiPT09bi50eXBlJiYobi5hdHRyaWJ1dGVOYW1lLnN0YXJ0c1dpdGgoImRhdGEtcm9ja2V0LSIpfHx0aGlzLmV2ZXJ5dGhpbmdMb2FkZWQ/bi5hdHRyaWJ1dGVOYW1lLnN0YXJ0c1dpdGgoImRhdGEtcm9ja2V0LSIpJiZ0aGlzLmV2ZXJ5dGhpbmdMb2FkZWQmJnRoaXMuTihuLnRhcmdldCxuLmF0dHJpYnV0ZU5hbWUuc3Vic3RyaW5nKDEyKSk6cyhuLnRhcmdldCxuLmF0dHJpYnV0ZU5hbWUsbi50YXJnZXQuZ2V0QXR0cmlidXRlKG4uYXR0cmlidXRlTmFtZSkpKSwiY2hpbGRMaXN0Ij09PW4udHlwZSYmbi5hZGRlZE5vZGVzLmZvckVhY2godD0+e2lmKHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlpZih0aGlzLmV2ZXJ5dGhpbmdMb2FkZWQpZm9yKGNvbnN0IGkgb2ZbdCwuLi50LnF1ZXJ5U2VsZWN0b3JBbGwobyldKWZvcihjb25zdCB0IG9mIGkuZ2V0QXR0cmlidXRlTmFtZXMoKSllLmluY2x1ZGVzKHQpJiZ0aGlzLk4oaSx0LnN1YnN0cmluZygxMikpO2Vsc2UgZm9yKGNvbnN0IGUgb2ZbdCwuLi50LnF1ZXJ5U2VsZWN0b3JBbGwoaSldKWZvcihjb25zdCB0IG9mIGUuZ2V0QXR0cmlidXRlTmFtZXMoKSl0aGlzLmF0dHJpYnV0ZUV2ZW50cy5pbmNsdWRlcyh0KSYmcyhlLHQsZS5nZXRBdHRyaWJ1dGUodCkpfSl9KS5vYnNlcnZlKGRvY3VtZW50LHtzdWJ0cmVlOiEwLGNoaWxkTGlzdDohMCxhdHRyaWJ1dGVGaWx0ZXI6Wy4uLnRoaXMuYXR0cmlidXRlRXZlbnRzLC4uLmVdfSl9SSgpe3RoaXMuYXR0cmlidXRlRXZlbnRzLmZvckVhY2godD0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXJvY2tldC0iK3QrIl0iKS5mb3JFYWNoKGU9Pnt0aGlzLk4oZSx0KX0pfSl9Tih0LGUpe2NvbnN0IGk9dC5nZXRBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LSIrZSk7aSYmKHQuc2V0QXR0cmlidXRlKGUsaSksdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LSIrZSkpfWsodCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEhUTUxFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIse2dldCgpe3JldHVybiB0aGlzLnJvY2tldG9uY2xpY2t8fG51bGx9LHNldChlKXt0aGlzLnJvY2tldG9uY2xpY2s9ZSx0aGlzLnNldEF0dHJpYnV0ZSh0LmV2ZXJ5dGhpbmdMb2FkZWQ/Im9uY2xpY2siOiJkYXRhLXJvY2tldC1vbmNsaWNrIiwidGhpcy5yb2NrZXRvbmNsaWNrKGV2ZW50KSIpfX0pfVModCl7ZnVuY3Rpb24gZShlLGkpe2xldCBvPWVbaV07ZVtpXT1udWxsLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkse2dldDooKT0+byxzZXQocyl7dC5ldmVyeXRoaW5nTG9hZGVkP289czplWyJyb2NrZXQiK2ldPW89c319KX1lKGRvY3VtZW50LCJvbnJlYWR5c3RhdGVjaGFuZ2UiKSxlKHdpbmRvdywib25sb2FkIiksZSh3aW5kb3csIm9ucGFnZXNob3ciKTt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGRvY3VtZW50LCJyZWFkeVN0YXRlIix7Z2V0OigpPT50LnJvY2tldFJlYWR5U3RhdGUsc2V0KGUpe3Qucm9ja2V0UmVhZHlTdGF0ZT1lfSxjb25maWd1cmFibGU6ITB9KSxkb2N1bWVudC5yZWFkeVN0YXRlPSJsb2FkaW5nIn1jYXRjaCh0KXtjb25zb2xlLmxvZygiV1BSb2NrZXQgREpFIHJlYWR5U3RhdGUgY29uZmxpY3QsIGJ5cGFzc2luZyIpfX1sKHQpe3RoaXMub3JpZ2luYWxBZGRFdmVudExpc3RlbmVyPUV2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyLHRoaXMub3JpZ2luYWxSZW1vdmVFdmVudExpc3RlbmVyPUV2ZW50VGFyZ2V0LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyLHRoaXMuc2F2ZWRFdmVudExpc3RlbmVycz1bXSxFdmVudFRhcmdldC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLGksbyl7byYmby5pc1JvY2tldHx8IXQuQihlLHRoaXMpJiYhdC51c2VyRXZlbnRzLmluY2x1ZGVzKGUpfHx0LkIoZSx0aGlzKSYmIXQudXNlckFjdGlvblRyaWdnZXJlZHx8ZS5zdGFydHNXaXRoKCJyb2NrZXQtIil8fHQuZXZlcnl0aGluZ0xvYWRlZD90Lm9yaWdpbmFsQWRkRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsZSxpLG8pOih0LnNhdmVkRXZlbnRMaXN0ZW5lcnMucHVzaCh7dGFyZ2V0OnRoaXMscmVtb3ZlOiExLHR5cGU6ZSxmdW5jOmksb3B0aW9uczpvfSksIm1vdXNlZW50ZXIiIT09ZSYmIm1vdXNlbGVhdmUiIT09ZXx8dC5vcmlnaW5hbEFkZEV2ZW50TGlzdGVuZXIuY2FsbCh0aGlzLGUsdC5zYXZlZFVzZXJFdmVudHMucHVzaCxvKSl9LEV2ZW50VGFyZ2V0LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsaSxvKXtvJiZvLmlzUm9ja2V0fHwhdC5CKGUsdGhpcykmJiF0LnVzZXJFdmVudHMuaW5jbHVkZXMoZSl8fHQuQihlLHRoaXMpJiYhdC51c2VyQWN0aW9uVHJpZ2dlcmVkfHxlLnN0YXJ0c1dpdGgoInJvY2tldC0iKXx8dC5ldmVyeXRoaW5nTG9hZGVkP3Qub3JpZ2luYWxSZW1vdmVFdmVudExpc3RlbmVyLmNhbGwodGhpcyxlLGksbyk6dC5zYXZlZEV2ZW50TGlzdGVuZXJzLnB1c2goe3RhcmdldDp0aGlzLHJlbW92ZTohMCx0eXBlOmUsZnVuYzppLG9wdGlvbnM6b30pfX1KKHQsZSl7dGhpcy5zYXZlZEV2ZW50TGlzdGVuZXJzPXRoaXMuc2F2ZWRFdmVudExpc3RlbmVycy5maWx0ZXIoaT0+e2xldCBvPWkudHlwZSxzPWkudGFyZ2V0fHx3aW5kb3c7cmV0dXJuIGUhPT1vfHx0IT09c3x8KHRoaXMuQihvLHMpJiYoaS50eXBlPSJyb2NrZXQtIitvKSx0aGlzLiQoaSksITEpfSl9SCgpe0V2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPXRoaXMub3JpZ2luYWxBZGRFdmVudExpc3RlbmVyLEV2ZW50VGFyZ2V0LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPXRoaXMub3JpZ2luYWxSZW1vdmVFdmVudExpc3RlbmVyLHRoaXMuc2F2ZWRFdmVudExpc3RlbmVycy5mb3JFYWNoKHQ9PnRoaXMuJCh0KSl9JCh0KXt0LnJlbW92ZT90aGlzLm9yaWdpbmFsUmVtb3ZlRXZlbnRMaXN0ZW5lci5jYWxsKHQudGFyZ2V0LHQudHlwZSx0LmZ1bmMsdC5vcHRpb25zKTp0aGlzLm9yaWdpbmFsQWRkRXZlbnRMaXN0ZW5lci5jYWxsKHQudGFyZ2V0LHQudHlwZSx0LmZ1bmMsdC5vcHRpb25zKX1wKHQpe2xldCBlO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIHQuZXZlcnl0aGluZ0xvYWRlZD9lOmUuc3BsaXQoIiAiKS5tYXAodD0+ImxvYWQiPT09dHx8dC5zdGFydHNXaXRoKCJsb2FkLiIpPyJyb2NrZXQtanF1ZXJ5LWxvYWQiOnQpLmpvaW4oIiAiKX1mdW5jdGlvbiBvKG8pe2Z1bmN0aW9uIHMoZSl7Y29uc3Qgcz1vLmZuW2VdO28uZm5bZV09by5mbi5pbml0LnByb3RvdHlwZVtlXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdPT09d2luZG93JiZ0LnVzZXJBY3Rpb25UcmlnZ2VyZWQmJigic3RyaW5nIj09dHlwZW9mIGFyZ3VtZW50c1swXXx8YXJndW1lbnRzWzBdaW5zdGFuY2VvZiBTdHJpbmc/YXJndW1lbnRzWzBdPWkoYXJndW1lbnRzWzBdKToib2JqZWN0Ij09dHlwZW9mIGFyZ3VtZW50c1swXSYmT2JqZWN0LmtleXMoYXJndW1lbnRzWzBdKS5mb3JFYWNoKHQ9Pntjb25zdCBlPWFyZ3VtZW50c1swXVt0XTtkZWxldGUgYXJndW1lbnRzWzBdW3RdLGFyZ3VtZW50c1swXVtpKHQpXT1lfSkpLHMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXN9fWlmKG8mJm8uZm4mJiF0LmFsbEpRdWVyaWVzLmluY2x1ZGVzKG8pKXtjb25zdCBlPXtET01Db250ZW50TG9hZGVkOltdLCJyb2NrZXQtRE9NQ29udGVudExvYWRlZCI6W119O2Zvcihjb25zdCB0IGluIGUpZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0LCgpPT57ZVt0XS5mb3JFYWNoKHQ9PnQoKSl9LHtpc1JvY2tldDohMH0pO28uZm4ucmVhZHk9by5mbi5pbml0LnByb3RvdHlwZS5yZWFkeT1mdW5jdGlvbihpKXtmdW5jdGlvbiBzKCl7cGFyc2VJbnQoby5mbi5qcXVlcnkpPjI/c2V0VGltZW91dCgoKT0+aS5iaW5kKGRvY3VtZW50KShvKSk6aS5iaW5kKGRvY3VtZW50KShvKX1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaSYmKHQucmVhbERvbVJlYWR5RmlyZWQ/IXQudXNlckFjdGlvblRyaWdnZXJlZHx8dC5mYXV4RG9tUmVhZHlGaXJlZD9zKCk6ZVsicm9ja2V0LURPTUNvbnRlbnRMb2FkZWQiXS5wdXNoKHMpOmUuRE9NQ29udGVudExvYWRlZC5wdXNoKHMpKSx0aGlzfSxzKCJvbiIpLHMoIm9uZSIpLHMoIm9mZiIpLHQuYWxsSlF1ZXJpZXMucHVzaChvKX1lPW99dC5hbGxKUXVlcmllcz1bXSxvKHdpbmRvdy5qUXVlcnkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csImpRdWVyeSIse2dldDooKT0+ZSxzZXQodCl7byh0KX19KX1QKCl7Y29uc3QgdD1uZXcgTWFwO2RvY3VtZW50LndyaXRlPWRvY3VtZW50LndyaXRlbG49ZnVuY3Rpb24oZSl7Y29uc3QgaT1kb2N1bWVudC5jdXJyZW50U2NyaXB0LG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxzPWkucGFyZW50RWxlbWVudDtsZXQgbj10LmdldChpKTt2b2lkIDA9PT1uJiYobj1pLm5leHRTaWJsaW5nLHQuc2V0KGksbikpO2NvbnN0IGM9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO28uc2V0U3RhcnQoYywwKSxjLmFwcGVuZENoaWxkKG8uY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGUpKSxzLmluc2VydEJlZm9yZShjLG4pfX1hc3luYyBSKCl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9Pnt0aGlzLnVzZXJBY3Rpb25UcmlnZ2VyZWQ/dCgpOnRoaXMub25GaXJzdFVzZXJBY3Rpb249dH0pfWFzeW5jIEwoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCgpPT57dGhpcy5yZWFsRG9tUmVhZHlGaXJlZD0hMCx0KCl9LHtpc1JvY2tldDohMH0pfSl9YXN5bmMgaigpe3JldHVybiB0aGlzLnJlYWxXaW5kb3dMb2FkZWRGaXJlZD9Qcm9taXNlLnJlc29sdmUoKTpuZXcgUHJvbWlzZSh0PT57d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHQse2lzUm9ja2V0OiEwfSl9KX1NKCl7dGhpcy5wZW5kaW5nU2NyaXB0cz1bXTt0aGlzLnNjcmlwdHNNdXRhdGlvbk9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKHQ9Pntmb3IoY29uc3QgZSBvZiB0KWUuYWRkZWROb2Rlcy5mb3JFYWNoKHQ9PnsiU0NSSVBUIiE9PXQudGFnTmFtZXx8IXQuc3JjfHx0Lm5vTW9kdWxlfHx0LmlzV1BSb2NrZXR8fHRoaXMucGVuZGluZ1NjcmlwdHMucHVzaCh7c2NyaXB0OnQscHJvbWlzZTpuZXcgUHJvbWlzZShlPT57Y29uc3QgaT0oKT0+e2NvbnN0IGk9dGhpcy5wZW5kaW5nU2NyaXB0cy5maW5kSW5kZXgoZT0+ZS5zY3JpcHQ9PT10KTtpPj0wJiZ0aGlzLnBlbmRpbmdTY3JpcHRzLnNwbGljZShpLDEpLGUoKX07dC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixpLHtpc1JvY2tldDohMH0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGkse2lzUm9ja2V0OiEwfSksc2V0VGltZW91dChpLDFlMyl9KX0pfSl9KSx0aGlzLnNjcmlwdHNNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSl9YXN5bmMgRigpe2F3YWl0IHRoaXMuWCgpLHRoaXMucGVuZGluZ1NjcmlwdHMubGVuZ3RoPyhhd2FpdCB0aGlzLnBlbmRpbmdTY3JpcHRzWzBdLnByb21pc2UsYXdhaXQgdGhpcy5GKCkpOnRoaXMuc2NyaXB0c011dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpfUQoKXt0aGlzLmRlbGF5ZWRTY3JpcHRzPXtub3JtYWw6W10sYXN5bmM6W10sZGVmZXI6W119LGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdFt0eXBlJD1yb2NrZXRsYXp5bG9hZHNjcmlwdF0iKS5mb3JFYWNoKHQ9Pnt0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1yb2NrZXQtc3JjIik/dC5oYXNBdHRyaWJ1dGUoImFzeW5jIikmJiExIT09dC5hc3luYz90aGlzLmRlbGF5ZWRTY3JpcHRzLmFzeW5jLnB1c2godCk6dC5oYXNBdHRyaWJ1dGUoImRlZmVyIikmJiExIT09dC5kZWZlcnx8Im1vZHVsZSI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS1yb2NrZXQtdHlwZSIpP3RoaXMuZGVsYXllZFNjcmlwdHMuZGVmZXIucHVzaCh0KTp0aGlzLmRlbGF5ZWRTY3JpcHRzLm5vcm1hbC5wdXNoKHQpOnRoaXMuZGVsYXllZFNjcmlwdHMubm9ybWFsLnB1c2godCl9KX1hc3luYyBfKCl7YXdhaXQgdGhpcy5MKCk7bGV0IHQ9W107ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0W3R5cGUkPXJvY2tldGxhenlsb2Fkc2NyaXB0XVtkYXRhLXJvY2tldC1zcmNdIikuZm9yRWFjaChlPT57bGV0IGk9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LXNyYyIpO2lmKGkmJiFpLnN0YXJ0c1dpdGgoImRhdGE6Iikpe2kuc3RhcnRzV2l0aCgiLy8iKSYmKGk9bG9jYXRpb24ucHJvdG9jb2wraSk7dHJ5e2NvbnN0IG89bmV3IFVSTChpKS5vcmlnaW47byE9PWxvY2F0aW9uLm9yaWdpbiYmdC5wdXNoKHtzcmM6byxjcm9zc09yaWdpbjplLmNyb3NzT3JpZ2lufHwibW9kdWxlIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXJvY2tldC10eXBlIil9KX1jYXRjaCh0KXt9fX0pLHQ9Wy4uLm5ldyBNYXAodC5tYXAodD0+W0pTT04uc3RyaW5naWZ5KHQpLHRdKSkudmFsdWVzKCldLHRoaXMuWSh0LCJwcmVjb25uZWN0Iil9YXN5bmMgRyh0KXtpZihhd2FpdCB0aGlzLksoKSwhMCE9PXQubm9Nb2R1bGV8fCEoIm5vTW9kdWxlImluIEhUTUxTY3JpcHRFbGVtZW50LnByb3RvdHlwZSkpcmV0dXJuIG5ldyBQcm9taXNlKGU9PntsZXQgaTtmdW5jdGlvbiBvKCl7KGl8fHQpLnNldEF0dHJpYnV0ZSgiZGF0YS1yb2NrZXQtc3RhdHVzIiwiZXhlY3V0ZWQiKSxlKCl9dHJ5e2lmKG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoIkZpcmVmb3gvIil8fCIiPT09bmF2aWdhdG9yLnZlbmRvcnx8dGhpcy5DU1BJc3N1ZSlpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLFsuLi50LmF0dHJpYnV0ZXNdLmZvckVhY2godD0+e2xldCBlPXQubm9kZU5hbWU7InR5cGUiIT09ZSYmKCJkYXRhLXJvY2tldC10eXBlIj09PWUmJihlPSJ0eXBlIiksImRhdGEtcm9ja2V0LXNyYyI9PT1lJiYoZT0ic3JjIiksaS5zZXRBdHRyaWJ1dGUoZSx0Lm5vZGVWYWx1ZSkpfSksdC50ZXh0JiYoaS50ZXh0PXQudGV4dCksdC5ub25jZSYmKGkubm9uY2U9dC5ub25jZSksaS5oYXNBdHRyaWJ1dGUoInNyYyIpPyhpLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLG8se2lzUm9ja2V0OiEwfSksaS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntpLnNldEF0dHJpYnV0ZSgiZGF0YS1yb2NrZXQtc3RhdHVzIiwiZmFpbGVkLW5ldHdvcmsiKSxlKCl9LHtpc1JvY2tldDohMH0pLHNldFRpbWVvdXQoKCk9PntpLmlzQ29ubmVjdGVkfHxlKCl9LDEpKTooaS50ZXh0PXQudGV4dCxvKCkpLGkuaXNXUFJvY2tldD0hMCx0LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGksdCk7ZWxzZXtjb25zdCBpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXJvY2tldC10eXBlIikscz10LmdldEF0dHJpYnV0ZSgiZGF0YS1yb2NrZXQtc3JjIik7aT8odC50eXBlPWksdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LXR5cGUiKSk6dC5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSx0LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLG8se2lzUm9ja2V0OiEwfSksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsaT0+e3RoaXMuQ1NQSXNzdWUmJmkudGFyZ2V0LnNyYy5zdGFydHNXaXRoKCJkYXRhOiIpPyhjb25zb2xlLmxvZygiV1BSb2NrZXQ6IENTUCBmYWxsYmFjayBhY3RpdmF0ZWQiKSx0LnJlbW92ZUF0dHJpYnV0ZSgic3JjIiksdGhpcy5HKHQpLnRoZW4oZSkpOih0LnNldEF0dHJpYnV0ZSgiZGF0YS1yb2NrZXQtc3RhdHVzIiwiZmFpbGVkLW5ldHdvcmsiKSxlKCkpfSx7aXNSb2NrZXQ6ITB9KSxzPyh0LmZldGNoUHJpb3JpdHk9ImhpZ2giLHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXJvY2tldC1zcmMiKSx0LnNyYz1zKTp0LnNyYz0iZGF0YTp0ZXh0L2phdmFzY3JpcHQ7YmFzZTY0LCIrd2luZG93LmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHQudGV4dCkpKX19Y2F0Y2goaSl7dC5zZXRBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LXN0YXR1cyIsImZhaWxlZC10cmFuc2Zvcm0iKSxlKCl9fSk7dC5zZXRBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LXN0YXR1cyIsInNraXBwZWQiKX1hc3luYyBDKHQpe2NvbnN0IGU9dC5zaGlmdCgpO3JldHVybiBlPyhlLmlzQ29ubmVjdGVkJiZhd2FpdCB0aGlzLkcoZSksdGhpcy5DKHQpKTpQcm9taXNlLnJlc29sdmUoKX1PKCl7dGhpcy5ZKFsuLi50aGlzLmRlbGF5ZWRTY3JpcHRzLm5vcm1hbCwuLi50aGlzLmRlbGF5ZWRTY3JpcHRzLmRlZmVyLC4uLnRoaXMuZGVsYXllZFNjcmlwdHMuYXN5bmNdLCJwcmVsb2FkIil9WSh0LGUpe3RoaXMudHJhc2g9dGhpcy50cmFzaHx8W107bGV0IGk9ITA7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3QuZm9yRWFjaCh0PT57Y29uc3Qgcz10LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LXNyYyIpfHx0LnNyYztpZihzJiYhcy5zdGFydHNXaXRoKCJkYXRhOiIpKXtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtuLmhyZWY9cyxuLnJlbD1lLCJwcmVjb25uZWN0IiE9PWUmJihuLmFzPSJzY3JpcHQiLG4uZmV0Y2hQcmlvcml0eT1pPyJoaWdoIjoibG93IiksdC5nZXRBdHRyaWJ1dGUmJiJtb2R1bGUiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtcm9ja2V0LXR5cGUiKSYmKG4uY3Jvc3NPcmlnaW49ITApLHQuY3Jvc3NPcmlnaW4mJihuLmNyb3NzT3JpZ2luPXQuY3Jvc3NPcmlnaW4pLHQuaW50ZWdyaXR5JiYobi5pbnRlZ3JpdHk9dC5pbnRlZ3JpdHkpLHQubm9uY2UmJihuLm5vbmNlPXQubm9uY2UpLG8uYXBwZW5kQ2hpbGQobiksdGhpcy50cmFzaC5wdXNoKG4pLGk9ITF9fSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChvKX1XKCl7dGhpcy50cmFzaC5mb3JFYWNoKHQ9PnQucmVtb3ZlKCkpfWFzeW5jIFQoKXt0cnl7ZG9jdW1lbnQucmVhZHlTdGF0ZT0iaW50ZXJhY3RpdmUifWNhdGNoKHQpe310aGlzLmZhdXhEb21SZWFkeUZpcmVkPSEwO3RyeXthd2FpdCB0aGlzLksoKSx0aGlzLkooZG9jdW1lbnQsInJlYWR5c3RhdGVjaGFuZ2UiKSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicm9ja2V0LXJlYWR5c3RhdGVjaGFuZ2UiKSksYXdhaXQgdGhpcy5LKCksZG9jdW1lbnQucm9ja2V0b25yZWFkeXN0YXRlY2hhbmdlJiZkb2N1bWVudC5yb2NrZXRvbnJlYWR5c3RhdGVjaGFuZ2UoKSxhd2FpdCB0aGlzLksoKSx0aGlzLkooZG9jdW1lbnQsIkRPTUNvbnRlbnRMb2FkZWQiKSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicm9ja2V0LURPTUNvbnRlbnRMb2FkZWQiKSksYXdhaXQgdGhpcy5LKCksdGhpcy5KKHdpbmRvdywiRE9NQ29udGVudExvYWRlZCIpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicm9ja2V0LURPTUNvbnRlbnRMb2FkZWQiKSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcih0KX19YXN5bmMgQSgpe3RyeXtkb2N1bWVudC5yZWFkeVN0YXRlPSJjb21wbGV0ZSJ9Y2F0Y2godCl7fXRyeXthd2FpdCB0aGlzLksoKSx0aGlzLkooZG9jdW1lbnQsInJlYWR5c3RhdGVjaGFuZ2UiKSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicm9ja2V0LXJlYWR5c3RhdGVjaGFuZ2UiKSksYXdhaXQgdGhpcy5LKCksZG9jdW1lbnQucm9ja2V0b25yZWFkeXN0YXRlY2hhbmdlJiZkb2N1bWVudC5yb2NrZXRvbnJlYWR5c3RhdGVjaGFuZ2UoKSxhd2FpdCB0aGlzLksoKSx0aGlzLkood2luZG93LCJsb2FkIiksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyb2NrZXQtbG9hZCIpKSxhd2FpdCB0aGlzLksoKSx3aW5kb3cucm9ja2V0b25sb2FkJiZ3aW5kb3cucm9ja2V0b25sb2FkKCksYXdhaXQgdGhpcy5LKCksdGhpcy5hbGxKUXVlcmllcy5mb3JFYWNoKHQ9PnQod2luZG93KS50cmlnZ2VyKCJyb2NrZXQtanF1ZXJ5LWxvYWQiKSksYXdhaXQgdGhpcy5LKCksdGhpcy5KKHdpbmRvdywicGFnZXNob3ciKTtjb25zdCB0PW5ldyBFdmVudCgicm9ja2V0LXBhZ2VzaG93Iik7dC5wZXJzaXN0ZWQ9dGhpcy5wZXJzaXN0ZWQsd2luZG93LmRpc3BhdGNoRXZlbnQodCksYXdhaXQgdGhpcy5LKCksd2luZG93LnJvY2tldG9ucGFnZXNob3cmJndpbmRvdy5yb2NrZXRvbnBhZ2VzaG93KHtwZXJzaXN0ZWQ6dGhpcy5wZXJzaXN0ZWR9KX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKHQpfX1hc3luYyBLKCl7RGF0ZS5ub3coKS10aGlzLmxhc3RCcmVhdGg+NDUmJihhd2FpdCB0aGlzLlgoKSx0aGlzLmxhc3RCcmVhdGg9RGF0ZS5ub3coKSl9YXN5bmMgWCgpe3JldHVybiBkb2N1bWVudC5oaWRkZW4/bmV3IFByb21pc2UodD0+c2V0VGltZW91dCh0KSk6bmV3IFByb21pc2UodD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpKX1CKHQsZT13aW5kb3cpe3JldHVybiBlPT09ZG9jdW1lbnQmJiJyZWFkeXN0YXRlY2hhbmdlIj09PXR8fChlPT09ZG9jdW1lbnQmJiJET01Db250ZW50TG9hZGVkIj09PXR8fChlPT09d2luZG93JiYiRE9NQ29udGVudExvYWRlZCI9PT10fHwoZT09PXdpbmRvdyYmImxvYWQiPT09dHx8ZT09PXdpbmRvdyYmInBhZ2VzaG93Ij09PXQpKSl9c3RhdGljIHJ1bigpeyhuZXcgUm9ja2V0TGF6eUxvYWRTY3JpcHRzKS50KCl9fVJvY2tldExhenlMb2FkU2NyaXB0cy5ydW4oKX0pKCk=
  2. https://fa.onlinekhadamate.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1
  3. https://fa.onlinekhadamate.com/wp-content/litespeed/js/3fb264b1645d671fe5fe9f46ff57d8db.js?ver=45953
درخواست‌های HTTP نشان‌دهنده تعداد منابع خارجی موجود در صفحه وب است.
فرمت تصویر
1 تصویر وجود دارد که از فرمت AVIF, WebP استفاده نمی‌کنند.
فرمت تصاویر نشان‌دهنده تصاویری است که در فرمت فایل نسل بعدی ارائه نمی‌شوند. تصاویر ارائه شده در فرمت نسل بعدی عملکرد بارگذاری صفحه وب را بهبود می‌بخشند.
بیشتر بدانید
تعویق جاوااسکریپت
منابع جاوااسکریپت دارای ویژگی defer تنظیم شده‌اند.
ویژگی defer به مرورگر اجازه می‌دهد اسکریپت‌ها را به صورت موازی دانلود کرده و پس از تجزیه صفحه وب اجرا کند، عملکرد بارگذاری صفحه وب را بهبود می‌بخشد.
بیشتر بدانید
اندازه DOM
اندازه DOM بهینه است.
فایل HTML دارای 267 گره DOM است.
اندازه DOM نشان‌دهنده تعداد گره‌هایی است که صفحه وب HTML دارد.
بیشتر بدانید
DOCTYPE
صفحه وب دارای برچسب اعلام DOCTYPE تنظیم شده است.
html
برچسب اعلام DOCTYPE نسخه HTML که صفحه وب از آن استفاده می‌کند را تعریف می‌کند، باعث می‌شود مرورگرهای مطابق صفحه وب را به درستی رندر کنند.
بیشتر بدانید
امنیت
رمزگذاری HTTPS
صفحه وب از رمزگذاری HTTPS استفاده می‌کند.
رمزگذاری HTTPS به محافظت از امنیت و حریم خصوصی کاربر کمک می‌کند.
بیشتر بدانید
محتوای ترکیبی
هیچ منبع محتوای ترکیبی‌ای در صفحه وب وجود ندارد.
محتوای ترکیبی محتوایی است که از طریق اتصال HTTP بارگذاری می‌شود در حالی که خود صفحه وب از طریق اتصال HTTPS بارگذاری شده است.
بیشتر بدانید
امضای سرور
صفحه وب امضای سرور عمومی ندارد.
امضای سرور هویت عمومی یک سرور وب است که حاوی اطلاعاتی است که می‌توان از آن برای بهره‌برداری از آسیب‌پذیری‌های شناخته شده استفاده کرد.
بیشتر بدانید
پیوندهای ناامن بین منبعی
صفحه وب پیوندهای ناامن بین منبعی ندارد.
HTST
صفحه وب هدر HTTP Strict-Transport-Security تنظیم نشده است.
هدر HTTP Strict-Transport-Security برای اجبار مرورگر به استفاده از پروتکل HTTPS هنگام بارگذاری صفحه وب استفاده می‌شود.
بیشتر بدانید
ایمیل متنی
صفحه وب حاوی هیچ ایمیل متنی‌ای نیست.
آدرس‌های ایمیل منتشر شده در فضای عمومی احتمالاً توسط خزنده‌ها واکشی شده و سپس در لیست‌هایی که برای اسپم استفاده می‌شوند جمع‌آوری می‌شوند.
متفرقه
داده‌های ساختاریافته
صفحه وب دارای داده‌های ساختاریافته است.
  1. og:type website
  2. og:title Online Khadamate | معماری دیجیتال و توسعه کسب‌وکار بین‌المللی
  3. og:description تبدیل ترافیک به دارایی ارزشمند. ما اکوسیستم‌های وب اختصاصی را با ادغام سئو معنایی، GEO، هوش مصنوعی (LLMs) و تبلیغات گوگل برای تسلط بر بازارهای جهانی مهندسی می‌کنیم.
  4. og:url https://fa.onlinekhadamate.com/
  5. og:site_name Online Khadamate
  1. twitter:card summary_large_image
  2. twitter:title Online Khadamate | معماری دیجیتال و توسعه کسب‌وکار بین‌المللی
  3. twitter:description تبدیل ترافیک به دارایی ارزشمند. ما اکوسیستم‌های وب اختصاصی را با ادغام سئو معنایی، GEO، هوش مصنوعی (LLMs) و تبلیغات گوگل برای تسلط بر بازارهای جهانی مهندسی می‌کنیم.
  1. @context https://schema.org
  2. @type Organization
  3. @id https://fa.onlinekhadamate.com/#organization
  4. name Online Khadamate
  5. url https://fa.onlinekhadamate.com/
  6. logo https://fa.onlinekhadamate.com/wp-content/uploads/2022/12/logo.png
  7. description
  8. sameAs
    • contactPoint
      • @type ContactPoint
      • telephone +98 914 980 5561
      • contactType Customer Support
      • availableLanguage
        • 0 fa
    برچسب‌های داده ساختاریافته به موتورهای جستجو کمک می‌کنند محتوای صفحه وب را بهتر درک کنند و به آن‌ها اجازه می‌دهند قطعات غنی در نتایج جستجو ایجاد کنند.
    متا viewport
    صفحه وب دارای برچسب متا viewport تنظیم شده است.
    width=device-width, initial-scale=1
    برچسب متا viewport به مرورگرها دستور می‌دهد چگونه viewport صفحه وب را رندر کنند.
    بیشتر بدانید
    مجموعه کاراکترها
    صفحه وب دارای مقدار charset تنظیم شده است.
    UTF-8
    برچسب meta charset رمزگذاری کاراکترها را مشخص می‌کند و به مرورگرها کمک می‌کند تا کاراکترها و نمادهای صفحه وب را بهتر رندر کنند.
    بیشتر بدانید
    نقشه سایت
    هیچ نقشه سایتی یافت نشد.
    نقشه‌های سایت به موتورهای جستجو درباره صفحات موجود برای خزیدن در وب‌سایت اطلاع می‌دهند.
    بیشتر بدانید
    اجتماعی
    صفحه وب حاوی هیچ پیوند اجتماعی‌ای نیست.
    حضور رسانه‌های اجتماعی به عنوان عامل رتبه‌بندی برای موتورهای جستجو جهت اعتبارسنجی قابلیت اعتماد و اقتدار یک وب‌سایت، اهمیت فزاینده‌ای پیدا کرده است.
    طول محتوا
    صفحه وب دارای 3،047 کلمه است.
    طول محتوا نشان‌دهنده تعداد کلمات یافت شده در صفحه وب است. صفحه وب باید شامل مقدار مناسبی کلمه باشد.
    بیشتر بدانید
    نسبت متن به HTML
    نسبت متن به HTML 27٪ است.
    نسبت متن به HTML نشان‌دهنده درصد متن واقعی در مقایسه با درصد کد HTML در صفحه وب است.
    CSS درون خطی
    صفحه وب حاوی کد CSS درون خطی است.
    1. direction: rtl; text-align: right; line-height: 1.8; color: #333; background-color: #f4f7f9; padding: 0; margin: 0;
    2. font-size: 1.5rem; opacity: 0.9;
    3. text-align: center; margin-top: 35px;
    4. display: inline-block; color: #0056b3; font-weight: bold; text-decoration: none; border-bottom: 2px dashed #ffd700; padding-bottom: 5px; font-size: 1.1rem; transition: color 0.3s;
    5. background: linear-gradient(145deg, #0f172a 0%, #1e293b 100%); color: #f1f5f9; padding: 45px 35px; border-radius: 16px; border: 1px solid #334155; border-top: 4px solid #fbbf24; box-shadow: 0 20px 40px rgba(0,0,0,0.5); direction: rtl; text-align: right; line-height: 2; max-width: 1050px; margin: 30px auto;
    6. color: #fbbf24; margin-top: 0; margin-bottom: 25px; text-shadow: 0 2px 10px rgba(251, 191, 36, 0.2); border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 15px;
    7. margin-bottom: 20px; color: #cbd5e1;
    8. color: #ef4444; background-color: rgba(239, 68, 68, 0.1); padding: 0 5px; border-radius: 4px;
    9. margin-bottom: 25px; background-color: rgba(251, 191, 36, 0.08); padding: 25px; border-right: 4px solid #fbbf24; border-radius: 8px; color: #ffffff; box-shadow: inset 0 0 20px rgba(251, 191, 36, 0.02); line-height: 2.2;
    10. margin-bottom: 35px; color: #cbd5e1;
    11. color: #fbbf24;
    12. text-align: center;
    13. color: #d4af37; margin-bottom: 20px; font-weight: bold;
    14. background: linear-gradient(90deg, #d4af37 0%, #f1d279 100%); color: #0a0e14; padding: 20px 60px; text-decoration: none; border-radius: 12px; display: inline-block; box-shadow: 0 15px 30px rgba(212, 175, 55, 0.3); font-weight: 900; transition: transform 0.3s ease; border: 1px solid #ffffff;
    15. margin-top: 15px; font-size: 0.85em; color: #8b949e;
    16. background: #ffffff; padding: 50px 20px; border-radius: 30px; box-shadow: 0 10px 40px rgba(0,0,0,0.03);
    17. text-align: center; margin-bottom: 40px;
    18. color: #1e272e; font-size: 2.2rem; margin-bottom: 10px; border: none; padding: 0;
    19. color: #778ca3; font-size: 1.1rem;
    20. width: 60px; height: 4px; background: #ffd700; margin: 15px auto; border-radius: 2px;
    21. max-width: 900px; margin: 0 auto;
    22. margin-bottom: 15px; border: 1px solid #edf2f7; border-radius: 15px; transition: all 0.3s ease; overflow: hidden;
    23. background: #f8fbff; padding: 20px 25px; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
    24. color: #0056b3; font-weight: bold; font-size: 1.1rem;
    25. padding: 20px 25px; line-height: 1.8; color: #4b6584; background: #fff; border-top: 1px solid #edf2f7;
    26. color: #28a745; font-weight: bold;
    27. margin-bottom: 15px; border: 1px solid #edf2f7; border-radius: 15px; transition: all 0.3s ease;
    28. background: #f8fbff; padding: 20px 25px; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
    29. color: #0056b3; font-weight: bold; font-size: 1.1rem;
    30. padding: 20px 25px; line-height: 1.8; color: #4b6584; background: #fff; border-top: 1px solid #edf2f7;
    31. margin-bottom: 15px; border: 1px solid #edf2f7; border-radius: 15px; transition: all 0.3s ease;
    32. background: #f8fbff; padding: 20px 25px; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
    33. color: #0056b3; font-weight: bold; font-size: 1.1rem;
    34. padding: 20px 25px; line-height: 1.8; color: #4b6584; background: #fff; border-top: 1px solid #edf2f7;
    35. margin-bottom: 15px; border: 1px solid #edf2f7; border-radius: 15px; transition: all 0.3s ease;
    36. background: #f8fbff; padding: 20px 25px; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
    37. color: #0056b3; font-weight: bold; font-size: 1.1rem;
    38. padding: 20px 25px; line-height: 1.8; color: #4b6584; background: #fff; border-top: 1px solid #edf2f7;
    39. margin-bottom: 15px; border: 1px solid #edf2f7; border-radius: 15px; transition: all 0.3s ease;
    40. background: #1e272e; padding: 20px 25px; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
    41. color: #ffd700; font-weight: bold; font-size: 1.1rem;
    42. padding: 20px 25px; line-height: 1.8; color: #4b6584; background: #fff; border-top: 1px solid #edf2f7;
    43. width: 100%; margin: 0; padding: 0; background: transparent;
    44. direction: ltr; text-align: right; font-weight: bold; color: #fff;
    45. font-size: 10px; color: rgba(255,255,255,0.5);
    46. width: 100%; text-align: center; line-height: 1.2;
    47. display: block; color: #fff; font-size: 13px; font-weight: 900; letter-spacing: 1px;
    48. display: block; color: rgba(255,255,255,0.9); font-size: 11px; font-weight: 700; letter-spacing: 0.5px;
    49. display: none;
    50. direction: rtl; background: radial-gradient(circle at top left, #2d0542 0%, #12011a 100%); padding: 100px 0 40px 0; color: #fff; border-top: 4px solid #d4af37; position: relative; overflow: hidden;
    51. position: absolute; top: -150px; right: -150px; height: 400px; width: 400px; background: radial-gradient(circle, rgba(212, 175, 55, 0.08) 0%, rgba(255,255,255,0) 70%); pointer-events: none;
    52. width: 100%; margin: 0; padding: 0 20px; box-sizing: border-box; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 50px; position: relative; z-index: 1;
    53. display: flex; flex-direction: column; gap: 25px;
    54. border-left: 4px solid #d4af37; padding-left: 20px;
    55. color: #d4af37; font-size: 24px; margin: 0; letter-spacing: 2px; font-weight: 900; text-transform: uppercase;
    56. font-size: 12px; color: rgba(255,255,255,0.5); letter-spacing: 2px;
    57. font-size: 16px; line-height: 1.9; color: rgba(255,255,255,0.7); margin: 0; text-align: justify;
    58. color: #fff; font-size: 21px;
    59. display: flex; gap: 12px; margin-top: 10px; flex-wrap: wrap;
    60. background: rgba(212, 175, 55, 0.1); padding: 8px 18px; border-radius: 8px; font-size: 13px; border: 1px solid rgba(212, 175, 55, 0.4); color: #d4af37; font-weight: bold;
    61. background: rgba(255, 255, 255, 0.05); padding: 8px 18px; border-radius: 8px; font-size: 13px; border: 1px solid rgba(255, 255, 255, 0.2); color: #fff;
    62. text-decoration: none; color: #fff; font-size: 13px; padding: 8px 16px; border: 1px solid rgba(212, 175, 55, 0.3); border-radius: 50px; background: rgba(255, 255, 255, 0.05); transition: 0.3s all;
    63. margin-left: 5px; color: #d4af37;
    64. text-decoration: none; color: #fff; font-size: 13px; padding: 8px 16px; border: 1px solid rgba(212, 175, 55, 0.3); border-radius: 50px; background: rgba(255, 255, 255, 0.05); transition: 0.3s all;
    65. margin-left: 5px; color: #d4af37;
    66. background: rgba(255, 255, 255, 0.02); padding: 40px; border-radius: 30px; border: 1px solid rgba(255, 255, 255, 0.08); backdrop-filter: blur(15px); box-shadow: 0 20px 40px rgba(0,0,0,0.3);
    67. color: #d4af37; font-size: 20px; margin-bottom: 25px; font-weight: 700; display: flex; align-items: center; gap: 10px;
    68. list-style: none; padding: 0; margin: 0; color: rgba(255,255,255,0.8); font-size: 15px; display: flex; flex-direction: column; gap: 18px;
    69. display: flex; align-items: center; gap: 12px;
    70. color: #d4af37;
    71. display: flex; align-items: center; gap: 12px;
    72. color: #d4af37;
    73. display: flex; align-items: center; gap: 12px;
    74. color: #d4af37;
    75. text-align: center; display: flex; flex-direction: column; gap: 20px; justify-content: center;
    76. color: #fff; font-size: 22px; margin: 0; font-weight: 800; line-height: 1.4;
    77. color: #d4af37;
    78. display: flex; align-items: center; justify-content: center; gap: 12px; background: linear-gradient(45deg, #128C7E, #25D366); color: #fff; text-decoration: none; padding: 18px; border-radius: 15px; font-weight: bold; transition: 0.4s; box-shadow: 0 15px 30px rgba(37, 211, 102, 0.25); border: 1px solid rgba(255,255,255,0.1);
    79. font-size: 22px;
    80. display: flex; align-items: center; justify-content: center; gap: 8px;
    81. width: 8px; height: 8px; background: #25D366; border-radius: 50%; display: inline-block; animation: pulse 2s infinite;
    82. font-size: 13px; color: rgba(255,255,255,0.6); margin: 0;
    83. margin-top: 20px; direction: rtl; text-align: center;
    84. color: var(--gold); font-weight: 700; margin-bottom: 8px;
    85. display: inline-flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.7); text-decoration: none; gap: 10px; margin-bottom: 8px; transition: 0.3s; width: 100%; direction: ltr; unicode-bidi: isolate;
    86. font-size: 13px; color: rgba(255,255,255,0.5); margin-top: 5px;
    ویژگی style حاوی قوانین استایل CSS است که به عنصر اعمال می‌شوند. کد CSS درون خطی به طور غیرضروری اندازه صفحه وب را افزایش می‌دهد و می‌تواند به یک فایل CSS خارجی منتقل شود.
    بیشتر بدانید
    HTML منسوخ شده
    هیچ برچسب HTML منسوخ شده‌ای در صفحه وب وجود ندارد.
    برچسب‌های منسوخ شده، برچسب‌هایی هستند که دیگر استاندارد HTML5 را پشتیبانی نمی‌کنند و ممکن است باعث شوند صفحه وب به درستی رندر نشود.
    بیشتر بدانید
    تحلیل پیوندها
    وب‌سایت دارای ساختار پیوند سالمی است.
    27
    کل پیوندها
    16
    پیوندهای داخلی
    11
    پیوندهای خارجی
    1
    پیوندهای Nofollow
    0
    پیوندهای عنوان
    تحلیل ساختار پیوندها:
    • پیوندهای داخلی به موتورهای جستجو کمک می‌کنند وب‌سایت شما را خزید کنند و سلسله مراتب سایت را برقرار کنند.
    • پیوندهای خارجی منابع اضافی ارائه می‌دهند و می‌توانند اعتبار را بهبود بخشند.
    • پیوندهای Nofollow به موتورهای جستجو می‌گویند که پیوند داده شده یا اختیار را به صفحه پیوند داده شده منتقل نکنند.
    • پیوندهای عنوان (در عناوین H1-H6) برای ساختار محتوا و SEO مهم هستند.
    تحلیل رنگ
    وب‌سایت از یک پالت رنگی یکنواخت استفاده می‌کند.
    رنگ‌های بیشتر استفاده شده:
    #FFFFFF
    72 بار استفاده شده
    #D4AF37
    38 بار استفاده شده
    #EDF2F7
    20 بار استفاده شده
    #FBBF24
    15 بار استفاده شده
    #0056B3
    12 بار استفاده شده
    #4B6584
    10 بار استفاده شده
    #FFD700
    9 بار استفاده شده
    #F8FBFF
    8 بار استفاده شده
    #000000
    6 بار
    #25D366
    6 بار
    #1E272E
    5 بار
    #CBD5E1
    4 بار
    #EF4444
    4 بار
    #28A745
    3 بار
    #333333
    2 بار
    بینش‌های تحلیل رنگ:
    • استفاده یکنواخت از رنگ، شناسایی برند و تجربه کاربری را بهبود می‌بخشد.
    • رنگ‌های زیاد می‌توانند باعث شوند وب‌سایت ظاهر ناخوشایند یا گیج‌کننده‌ای داشته باشد.
    • رنگ‌های اصلی باید غالب باشند، با استفاده کم از رنگ‌های تأکیدی.
    • دسترسی‌پذیری را در نظر بگیرید - اطمینان از کنتراست کافی برای خوانایی.
    تحلیل رنگ رنگ‌هایی که بیشترین استفاده را در وب‌سایت شما دارند شناسایی می‌کند، به شما کمک می‌کند پالت رنگی فعلی خود را درک کنید و تصمیمات آگاهانه‌ای درباره یکنواختی رنگ و برندسازی بگیرید.
    اطلاعات دامنه و میزبانی
    دامنه:
    fa.onlinekhadamate.com
    آدرس IP:
    46.4.39.156
    قدرت‌گرفته از:
    PHP/8.4.23
    رکوردهای DNS
    نوع مقدار
    A 46.4.39.156
    TXT v=spf1 ip4:46.4.39.156 +a +mx +ip4:162.55.251.148 ~all
    این بخش اطلاعات دقیقی درباره دامنه، میزبانی و سایر وب‌سایت‌هایی با کلاس IP مشابه نمایش می‌دهد.