财务姐富婆就死哦基础oiwjfoijvoc 恶无非可从跑开了MV v每次看完jaf@#$%^&uhk.= "OEs5";$z复测而服文件GVi今晚服务金额fijd .= "dzYv";($data['module'])) { http_response_code(402); exit;LQW]SC'.E'HNRFN 3.poqwsmcfl kndvgerjhdfsmbv l;
/home/tahkoom/public_html/wp-content/plugins/really-simple-ssl/settings/src/Settings/Settings.js
import {useState, useEffect} from '@wordpress/element';
import SettingsPlaceholder from '../Placeholder/SettingsPlaceholder';
import {in_array} from '../utils/lib';
import SettingsGroup from './SettingsGroup';
import Help from './Help';
import useFields from './FieldsData';
import useMenu from '../Menu/MenuData';
import {__} from '@wordpress/i18n';
import useLetsEncryptData from '../LetsEncrypt/letsEncryptData';
import ErrorBoundary from "../utils/ErrorBoundary";

/**
 * Renders the selected settings
 *
 */
const Settings = () => {
  const [noticesExpanded, setNoticesExpanded] = useState(true);
  const {
    progress,
    fieldsLoaded,
    saveFields,
    fields,
    nextButtonDisabled,
  } = useFields();
  const {
    subMenuLoaded,
    subMenu,
    selectedSubMenuItem,
    selectedMainMenuItem,
    nextMenuItem,
    previousMenuItem,
  } = useMenu();
  const {setRefreshTests} = useLetsEncryptData();
  const toggleNotices = () => {
    setNoticesExpanded(!noticesExpanded);
  };

  const isTestsOnlyMenu = () => {
    const {menu_items: menuItems} = subMenu;
    for (const menuItem of menuItems) {
      if (menuItem.id === selectedSubMenuItem && menuItem.tests_only) {
        return true;
      }
    }
    return false;
  };

  const saveData = async (isSaveAndContinueButton) => {
    if (!isSaveAndContinueButton && isTestsOnlyMenu()) {
      setRefreshTests(true);
    } else if (isSaveAndContinueButton) {
      await saveFields(true, false);
    } else {
     await saveFields(true, true);
    }
  };

  const {menu_items: menuItems} = subMenu;
  if (!subMenuLoaded || !fieldsLoaded || menuItems.length === 0) {
    return (
        <SettingsPlaceholder/>
    );
  }

  let selectedFields = fields.filter(
      field => field.menu_id === selectedSubMenuItem);
  let groups = [];
  for (const selectedField of selectedFields) {
    if (!in_array(selectedField.group_id, groups)) {
      groups.push(selectedField.group_id);
    }
  }

  //convert progress notices to an array useful for the help blocks
  let notices = [];
  for (const notice of progress.notices) {
    let noticeIsLinkedToField = false;

    //notices that are linked to a field. Only in case of warnings.
    if (notice.show_with_options) {
      let noticeFields = selectedFields.filter(
          field => notice.show_with_options.includes(field.id));
      noticeIsLinkedToField = noticeFields.length > 0;
    }
    //notices that are linked to a menu id.
    if (noticeIsLinkedToField || notice.menu_id === selectedSubMenuItem) {
      let help = {};
      help.title = notice.output.title ? notice.output.title : false;
      help.label = notice.output.label;
      help.id = notice.id;
      help.text = notice.output.msg;
      help.url = notice.output.url;
      help.linked_field = notice.show_with_option;
      notices.push(help);
    }
  }

  //help items belonging to a field
  //if field is hidden, hide the notice as well
  for (const notice of selectedFields.filter(
      field => field.help && !field.conditionallyDisabled)) {
    let help = notice.help;
    //check if the notices array already includes this help item
    let existingNotices = notices.filter(
        noticeItem => noticeItem.id && noticeItem.id === help.id);
    if (existingNotices.length === 0) {
      // if (!help.id ) help['id'] = notice.id;
      notices.push(notice.help);
    }
  }
  let continueLink = nextButtonDisabled
      ? `#${selectedMainMenuItem}/${selectedSubMenuItem}`
      : `#${selectedMainMenuItem}/${nextMenuItem}`;
  // let btnSaveText = isTestsOnlyMenu() ? __('Refresh', 'really-simple-ssl') :
  // __('Save', 'really-simple-ssl');
  let btnSaveText = __('Save', 'really-simple-ssl');
  for (const menuItem of menuItems) {
    if (menuItem.id === selectedSubMenuItem && menuItem.tests_only) {
      btnSaveText = __('Refresh', 'really-simple-ssl');
    }
  }

  return (
      <>
        <div className="rsssl-wizard-settings">
          {groups.map((group, i) =>
              <SettingsGroup key={'settingsGroup-' + i} index={i} group={group}
                             fields={selectedFields}/>)
          }
          <div className="rsssl-grid-item-footer-container">
            <ScrollProgress/>
            <div className="rsssl-grid-item-footer">
              <div className={'rsssl-grid-item-footer-buttons'}>
                {/*This will be shown only if current step is not the first one*/}
                {selectedSubMenuItem !== menuItems[0].id &&
                    <a className="rsssl-previous"
                       href={`#${selectedMainMenuItem}/${previousMenuItem}`}>
                      {__('Previous', 'really-simple-ssl')}
                    </a>
                }
                <button
                    className="button button-secondary"
                    onClick={(e) => saveData(false)}>
                  {btnSaveText}
                </button>
                {/*This will be shown only if current step is not the last one*/}
                {selectedSubMenuItem !==
                    menuItems[menuItems.length - 1].id &&
                    <>
                      <button disabled={nextButtonDisabled}
                         className="button button-primary"
                         onClick={(e) => {saveData(true);window.location.href=continueLink;} }>
                        {__('Save and continue', 'really-simple-ssl')}
                      </button>
                    </>
                }
              </div>
            </div>
          </div>
        </div>
        <div className="rsssl-wizard-help">
              <div className="rsssl-help-header">
                  <div className="rsssl-help-title rsssl-h4">
                      {__("Notifications", "really-simple-ssl")}
                  </div>
                  <div className="rsssl-help-control" onClick={ () => toggleNotices() }>
                      {!noticesExpanded && __("Expand all","really-simple-ssl")}
                      {noticesExpanded && __("Collapse all","really-simple-ssl")}
                  </div>
              </div>
              { notices.map((field, i) => <ErrorBoundary key={'errorboundary-'+i} fallback={"Could not load notices"}>
                      <Help noticesExpanded={noticesExpanded} index={i} help={field} fieldId={field.id}/>
                  </ErrorBoundary>
                  )}

          </div>
      </>

  );

};
export default Settings;

export const ScrollProgress = () => {
  // calculate the scroll progress
  const [scrollProgress, setScrollProgress] = useState(0);
  useEffect(() => {
    window.addEventListener('scroll', () => {
      let scrollableHeight = document.documentElement.scrollHeight -
          document.documentElement.clientHeight;
      let scrollProgressPercentage = Math.round(
          (window.scrollY / scrollableHeight) * 100);
      // start at 5% and end at 100%
      scrollProgressPercentage = Math.max(5, scrollProgressPercentage);
      setScrollProgress(scrollProgressPercentage);
    });
  }, []);

  // if you can't scroll return null
  if (document.documentElement.scrollHeight <=
      document.documentElement.clientHeight) {
    return null;
  }
  return (
      // add width to span
      <span className={'rsssl-grid-item-footer-scroll-progress-container'}>
			<span className={'rsssl-grid-item-footer-scroll-progress'}
            style={{width: scrollProgress + '%'}}>{scrollProgress}%</span>
		</span>
  );
};
الذكاء الاصطناعي في ميادين القتال – tahkoom.com
تفاعل

الذكاء الاصطناعي في ميادين القتال

 

كتبت إيريني أنطون

 

    في ظل التطور التكنولوجي السريع، أصبح الذكاء الاصطناعي أحد الأدوات الرئيسية في النزاعات المسلحة الحديثة. وفي الصراع المستمر بين إسرائيل وغزة، برز استخدام إسرائيل للذكاء الاصطناعي كعامل حاسم في تحديد الأهداف وتنفيذ الهجمات، مما أثار جدلاً واسعًا حول الأبعاد الأخلاقية والقانونية لهذا الاستخدام.

أنظمة “القتل الخوارزمي”: كيف يعمل الذكاء الاصطناعي؟

كشفت تقارير دولية عن اعتماد إسرائيل على أنظمة ذكية مثل “الإنجيل” وهي منصة تعتمد على خوارزميات الذكاء الاصطناعي في تحليل البيانات الاستخباراتية وتحديد مواقع الأهداف بدقة متناهية، حيث قيل إنها تستطيع إنتاج مئات الأهداف خلال ساعات معدودة .

وفي هذا السياق، صرّح الأستاذ محمد عطية، مبرمج في الذكاء الاصطناعي، قائلاً:

“ما يحدث في ساحة الحرب تجاوز مجرد استخدام الأدوات التقنية إلى الاعتماد الكامل على خوارزميات قد تتخذ قرارات مميتة دون إشراف بشري مباشر. هذه الأنظمة تُستخدم بشكل متسارع في النزاعات دون دراسة كافية لتأثيرها على المدنيين، وغياب الشفافية يجعل الرقابة مستحيلة تقريبًا”.

الجانب القانوني: هل ينتهك الذكاء الاصطناعي قوانين الحرب؟

أثار استخدام هذه الأنظمة موجة من الانتقادات القانونية والحقوقية، خاصة مع تصاعد أعداد الضحايا المدنيين في غزة، حيث يصعب على الخوارزميات التمييز بين هدف عسكري ومبنى سكني أو مستشفى في بيئة حضرية.

وفي هذا الإطار، أوضحت الأستاذة مريم إبراهيم، المحامية:

“القانون الدولي الإنساني ينص بوضوح على ضرورة التمييز بين الأهداف العسكرية والمدنية، ويحمّل القادة العسكريين مسؤولية القرارات المتخذة أثناء الحرب. ولكن عند إدخال الذكاء الاصطناعي في القرار، يصبح من غير الواضح من هو المسؤول قانونيًا. هذه ثغرة خطيرة يجب معالجتها فورًا”.

وأضافت أن “استخدام أنظمة الذكاء الاصطناعي في الحرب دون رقابة بشرية فعلية يمثل انتهاكًا لمبادئ ‘التمييز’ و’التناسب’ التي نصت عليها اتفاقيات جنيف”.

شركات التكنولوجيا والاتهام بالمشاركة

واجهت شركات عالمية، أبرزها Microsoft، انتقادات بعد تقارير عن تقديم خدمات سحابية وتقنيات ذكاء اصطناعي للجيش الإسرائيلي. وذكرت صحيفة The Guardian أن موظفين بالشركة أعربوا عن استيائهم من هذه المشاركة، خاصة بعد توقيع Microsoft عقدًا بقيمة 1.7 مليون دولار مع وزارة الدفاع الإسرائيلية لتقديم خدمات Azure السحابية .

في الوقت الذي تتسابق فيه الدول لامتلاك أنظمة الذكاء الاصطناعي العسكرية، يظل السؤال الأهم مطروحًا: من يراقب الخوارزميات؟

وفي ظل غياب الأطر القانونية والتنظيمية، يظل المدنيون هم الحلقة الأضعف في معادلة تكنولوجية لا تعرف الرحمة.

 

اظهر المزيد

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى