/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } Байден лично предлагал бомбить Белград. Какие еще преступления против человечности совершали США | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Байден лично предлагал бомбить Белград. Какие еще преступления против человечности совершали США

В эти дни змагары отмечают годовщину несостоявшейся попытки государственного переворота, «ветераны» уличных беспорядков и адепты так называемой «новой Беларуси» собираются «на хате», чтобы выпить чарку и вспомнить свои самые удачные моменты сражений с силовиками, при этом потирая старые «боевые раны» и демонстрируя их друг другу.

Ну а их западные хозяева, не изменяя себе, продолжают, исходя из собственных геополитических интересов, вести свою агрессивную политику вмешательства во внутренние дела Республики Беларусь. Сонный дед Джо из Белого дома уже пообещал ввести новый пакет санкций, евробюрократ Боррель с завидным упорством продолжает декламировать заученный еще для укроаборигенов текст о помощи в стабилизации экономики и повышении уровня жизни людей, а в Сенате США объявили о создании двухпартийного кокуса «Свободная Беларусь».

Кстати, кокусы в Соединенных Штатах — это партийно-фракционные закрытые совещания для решения организационных или стратегических вопросов. Создание кокусов по Беларуси означает только одно: обладатели непомерных геополитических амбиций в Вашингтоне фактически признались в том, что попытка мятежа в Республике Беларусь была организована США и их сателлитами. И сегодня янки с Капитолийского холма нам открыто говорят, что они не смирились с поражением и будут дальше пытаться уничтожить белорусское социальное государство. Просто произошла ротация непосредственных кураторов за рубежом. Теперь проведение спецоперации против Беларуси будут курировать конгрессмены и сенаторы из обеих палат американского парламента.

В методах достижения своих меркантильных глобальных интересов цинизму этих «благодетелей» от международного капитала нет предела. В конце 2020 года мы стали свидетелями принятия официальным Вашингтоном решения о повторном включении Республики Куба в список государств, которые якобы оказывают поддержку международному терроризму. Справедливости ради нужно отметить, что вопреки бессовестной звездно-полосатой клевете политика Кубы всегда была направлена на неприятие и осуждение терроризма, борьбу с этим античеловеческим явлением во всех его формах и проявлениях. При этом кубинский народ сам является жертвой терроризма.

Следует отметить, что именно международный империализм во главе с США всегда рождал самые гнусные социальные явления: фашизм, исламский фундаментализм, расизм, холодные, религиозные и психологические войны, терроризм и пр. Капитал и сегодня активно использует эти явления для разжигания ненависти и вражды между народами, подчинения своим интересам суверенных государств.

Сегодня в Конгрессе Соединенных Штатов Америки призывают созвать международной трибунал по неким «преступлениям Лукашенко». А немногим ранее американские конгрессмены направили письмо в МВФ с призывом заблокировать выделение Беларуси 1 млрд долларов глобальной помощи странам мира на минимизацию последствий пандемии COVID-19. «Она должна пойти на восстановление экономики, но никакого контроля за тратами нет, и хунта в Беларуси может пустить деньги на новые теракты и поддержку убийц и палачей», — лицемерно заявили американские конгрессмены.

Еще раз следует повторить, еще вчера в пособничестве терроризму обвиняли мирную Кубу, а сегодня в терроризме обвиняют уже мирную Беларусь, при этом призывая создать в отношении политического руководства нашего суверенного государства какой-то международный трибунал. А что дальше? А дальше, логика подсказывает, что обвинят в пособничестве терроризму Российскую Федерацию, ведь стратегическая цель Запада — ослабить и уничтожить Россию. А предпосылки к этому есть. Не случайно уже мировому сообществу навязывали так называемое дело Скрипалей, «отравление» «новичком» Навального и прочее.

Данные лицемерные и циничные заявления морально дискредитировавшего себя руководства США нельзя рассматривать никак иначе, кроме как акт неприкрытой агрессии и попытку давления на трудолюбивый белорусский народ, желая подчинить его воле транснациональных корпораций и американского капитала. Прием, увы, не новый. Мы это уже видели. В Югославии.

Игнорируя все нормы международного права, США в очередной раз используют инструмент клеветы, психологического давления и экономических санкций с целью сломить народ Беларуси, который самостоятельно определяет свой путь развития и остается верным идеалам подлинного народовластия и социальной справедливости.

Исходя из сложившейся в настоящее время политической обстановки в мире, хочется посоветовать правительству Соединенных Штатов Америки в первую очередь обратить внимание на серьезные нарушения прав и свобод американцев и коренного индейского населения в своей собственной стране, а также на преступления против человечности, совершенные США во Вьетнаме, Югославии, Ираке, Ливии, Сирии и других странах.

Стоит только вспомнить многочисленные случаи насилия, плохого обращения и пренебрежения в отношении индейцев на территории самих Соединенных Штатов. Так, 28 мая 1830 года в США вступил в силу принятый по инициативе президента Эндрю Джексона закон о переселении индейцев, который позволил официальному Вашингтону легализовать политику насильственного захвата земель коренных народов Америки. Ученые отмечают, что закрепленные в законе нормы о добровольном характере переселения и компенсациях носили фиктивный характер. В большинстве случаев депортация осуществлялась с помощью грубой силы. Переселение происходило в нечеловеческих условиях. От голода, антисанитарии, болезней погибли сотни тысяч индейцев — до 25-30 % от общей численности некоторых племен. Среди индейцев эти события известны под названием «дорога слез». Результатом такой депортации стало создание своего рода лагерей — резерваций. А те индейцы, которые хотели сохранить свой образ жизни, были либо уничтожены в ходе «индейских войн», либо бежали в Канаду.

Вывод напрашивается сам собой: так называемый закон о переселении индейцев стал всего лишь красивой ширмой для жестокого грабежа и уничтожения индейцев. Фактически, большую часть территории современных США пришлые в Новый свет европейцы (в значительной мере это обанкротившиеся авантюристы, жертвы религиозных гонений, преступники) присоединили разбойным путем. А когда земли для грабежа на Западе закончились, они перешли к экспансии во всем мире.

75 лет назад Соединенные Штаты сбросили две атомные бомбы на японские города Хиросима и Нагасаки. Погибли до 250 тысяч человек. Таков был результат «проекта Манхэттен» по созданию ядерного оружия. Американцы знали, что были возможности закончить Вторую мировую войну. Атомные бомбардировки не были оправданы ничем. И это факт. Применение ядерного оружия было призвано стать бесчеловечным предупреждением Советскому Союзу. Разве это не преступление?

Следует обратить внимание на преступления США и их вассалов против человечности и во Вьетнаме. Один из таких ужасающих и общеизвестных примеров — резня в деревне Сонгми. 16 марта 1968 года, солдаты роты «Чарли» 1-го батальона 20-го пехотного полка армии США вошли во вьетнамскую деревню Сонгми и полностью ее уничтожили. Погибло 504 мирных жителя. Многих из них жестоко пытали, женщин — насиловали. Оружия в деревне не было. Резня в Сонгми стала одним из ужасающих символов вьетнамской войны. При этом, в США преступление сначала не признавали, сегодня тоже стараются об этом не вспоминать. В результате применения химического оружия, напалма, фосфорных бомб и наземных операций армии США погибло три миллиона вьетнамцев из числа мирного населения.

Без сомнения, во Вьетнаме официальный Вашингтон нарушил установленные положения международного права, закрепленные в Парижском Пакте и в Уставе ООН, а также положения Женевских соглашений о Вьетнаме 1954 года. По мнению ряда экспертов действия США там подпадают под юрисдикцию Нюрнбергского трибунала и подлежат рассмотрению в рамках международного права.

2 мая 1967 года британский ученый и общественный деятель Бертран Рассел показал прецедент и создал Международный трибунал по расследованию военных преступлений (так называемый трибунал Рассела), признавший США виновными в агрессии против Вьетнама и совершенных преступлениях против человечности, сродни преступлениям германского нацизма.

Позже аналогичные «трибуналы» прошли по Чили, Ираку, Палестине. Последний состоялся в 2014 году в Венеции и был посвящен событиям на юго-востоке Украины. На нем виновными в совершении военных преступлений на Донбассе были признаны президенты Украины Петр Порошенко и США Барак Обама, а также председатель Еврокомиссии Жозе Мануэль Баррозу и генсек НАТО Андерс Фог Расмуссен. Обвинительный приговор, вынесенный трибуналом, был направлен в разные международные организации, в том числе в ООН, ОБСЕ и Международный уголовный суд. Однако никаких юридических последствий все трибуналы Рассела, собравшие огромную доказательную базу преступлений, совершенных коллективным Западом, не имеют по сей день! И это не удивительно, ведь США ощущают себя мировым гегемоном.

США и НАТО совершили ряд преступлений против человечности и нанесли непоправимый ущерб экологии на Балканах. Юристы, врачи и независимые эксперты открыто называют действия Вашингтона и их марионеточных союзников в Союзной Республике Югославия — геноцидом и экоцидом. Они сознательно бомбили все объекты, которые отмечены как опасные для окружающей среды. Когда такой объект уничтожался, происходила экологическая катастрофа во всем районе. Эти изуверы это прекрасно знали и намеренно бомбили химическую промышленность, нефтепереработку, энергетическое производство. Множество технических масел, канцерогенных и отравляющих веществ ушло в воздух, землю и воду, что-то осталось на местах. Разливался бензин, нефтепродукты. Пять тонн ртути попало в Дунай.

Именно на Балканах впервые были использованы боеприпасы с обедненным ураном. Это стало первой такого рода операцией альянса. Рост числа раковых заболеваний и смертей на пораженных территориях фиксируется специалистами, в том числе и иностранными.

Бомбардировкам крылатыми ракетами, кассетными бомбами, снарядами с обедненным ураном подвергались преимущественно гражданские объекты: жилые районы Белграда, школы, детские сады, нефтеперерабатывающие предприятия.

При этом следует отметить, что операция проводилась в нарушение норм международного права, без одобрения Совета Безопасности ООН. Против нее выступили Россия, Китай и ряд других членов Совбеза. Запад впервые поставил себя и свои политические цели выше международного права, выше ООН и выше элементарных соображений гуманизма. Ракеты и кассетные бомбы ударили не только по жителям Югославии, но и по всей системе межгосударственных отношений в мире. Бомбардировки Югославии распахнули ящик Пандоры. Именно благодаря безнаказанности США на Балканах стали возможны позже агрессия в Ираке, Ливии и Сирии.

Показывая звериное лицо западного капитала, уместно показать налет на Югославский город Ниш. Его следы видны до сих пор. Удар был нанесен днем по самому центру города — улице Шуматовачка, автовокзалу и рынку. НАТОвцы не могли не знать, что в обед на улице будет много людей. Ниш — это город, где погибли больше всего мирных жителей от кассетных бомб НАТО.

В общей сложности, использование кассетных бомб США и Великобританией подтверждается в семи случаях в различных районах Югославии. Авиация НАТО, по данным Международного комитета Красного Креста, использовала около 2 тыс. кассетных бомб, в которых содержалось более 380 тыс. боевых элементов. По оценкам властей Сербии, в бомбардировках погибли порядка трех тысяч человек, в том числе 89 детей.

Нельзя не вспомнить цинизм нынешнего президента США Байдена, который в 1999 году был одним из самых ярых сторонников бомбардировок Югославии НАТО.

«Я предлагал бомбить Белград. Я предлагал отправить американских пилотов и взорвать все мосты на Дрине», — не так давно заявил Байден. Более того, вашингтонский дед ранее называл косовским Джорджем Вашингтоном полевого командира Армии освобождения Косова Хашима Тачи, который подозревается в совершении военных преступлений и торговле человеческими органами.

А сегодня Байден смеет говорить о том, что он поддерживает белорусский народ, что «режим Лукашенко» совершает теракты и преступления против человечности?!

Кстати, запрещенные международными конвенциями кассетные бомбы США применяли в 1991 году. По данным Human Rights Watch, от 60 до 80 тыс. кластерных бомб было сброшено авиацией США, Великобритании и Франции во время войны в Персидском заливе. В 2001-2002 гг., согласно данным исследовательской службы конгресса США, Пентагон сбросил в Афганистане 1,2 тыс. кассетных бомб, содержащих 248 тыс. суббоеприпасов.

Весной 2003 г. в первые три недели боевых действий в Ираке силами американо-британской коалиции было использовано почти 13 тыс. кассетных боеприпасов, содержащих примерно 1,8-2 млн суббоеприпасов. По данным Human Rights Watch, несколько раз коалиционные силы использовали кассетные боеприпасы в жилых районах. Кроме того, в апреле 2003 г. в Ираке США испытали кассетную бомбу нового образца весом 500 кг, имеющую лазерное наведение. До августа 2006 г. самолетами США было сброшено еще 63 кластерных бомбы (CBU-87). В 2004 г. Пентагон официально признал факт использования бомб с белым фосфором во время военной операции вблизи иракского города Эль-Фаллуджа.

Теперь мы наглядно видим, кто на самом деле наши судьи и учителя «демократии». Факты говорят о том, что международный капитал, США, коллективный Запад совершили огромное количество ужасающих преступлений. Миллионы жертв военных операций, десятки миллионов людей, оказавшихся в крайней нищете и обреченных на безысходность — таковы последствия преступных действий американцев. Все это красноречиво показывает, что янки игнорируют все мыслимые и немыслимые границы человечности, что ставит их на одну чашу весов с немецким фашизмом. И это не удивительно. Фашизм — это уродливое и бесчеловечное порождение капитализма. Это идеология превосходства капитала над всеми остальными, сирыми и убогими. Ибо, как говорил Карл Маркс: «Нет такого преступления, на которое не пойдет капитал ради 300% прибыли».

Теперь после того, как мы увидели истинное лицо американской демократии, давайте зададимся вопросом: какие такие «преступления против человечности» совершил Президент Республики Беларусь А.Г. Лукашенко? В августе 2020 года Глава государства, сотрудники правоохранительных органов, патриоты Беларуси сделали все возможное, чтобы сохранить страну. Белорусские силовики пресекли противоправные действия совершенно НЕмирных радикально настроенных молодчиков. Мы видели много примеров, когда эти далеко не мирные протестуны бросали в правоохранителей бутылки с коктейлями Молотова, камни, громили остановки общественного транспорта, пытались строить баррикады на дорогах. В свою очередь, бойцы ОМОН и внутренних войск защитили конституционный строй и обеспечили законность и правопорядок на улицах белорусских городов. Они с честью исполнили свой долг, оставаясь верными воинской присяге. При этом выполнили задачу гуманно и с минимально возможным применением спецсредств. Для сравнения стоит всего лишь посмотреть, как действуют силовики в тех же США, Германии, Франции, Великобритании.

В США, например, полицейским разрешено применение боевого огнестрельного оружия. Так, весь мир стал свидетелем, когда при защите Капитолия в Вашингтоне летальное оружие было применено в отношении безоружных граждан США, пожелавших высказать свое несогласие с официальными результатами выборов президента страны. При попытке выразить свое мнение в стенах Капитолия была убита (застрелена в упор) безоружная женщина, ветеран ВВС США, большой сторонник Дональда Трампа Эшли Бэбитт, которая не оказывала никакого сопротивления американским силовикам. Более того, действующие власти США данные события окрестили попыткой захвата власти неконституционным путем, а около половины своих граждан, которые являются сторонниками экс-президента Трампа, приравняли к террористам.

Поэтому международный трибунал нужно создавать не по белорусским событиям. Международному сообществу, Организации Объединенных Наций или Совету Европейского союза стоит создать международный трибунал по расследованию преступлений, совершенных Соединенными Штатами Америки!

Янки, помните, новый Нюрнберг не за горами!

Николай ВОЛОВИЧ,
член Центрального Комитета Коммунистической партии Беларуси,
заведующий отделом идеологической работы ЦК КПБ

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.