/** * 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); } Почему «цветной» госпереворот – это не революция | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Почему «цветной» госпереворот – это не революция

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

«Твиттер-революция»

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

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

О причинах бунтов лучше всех сказал непосредственный участник событий Башар Асад:

– Истинная проблема связана с политикой, проводимой Соединенными Штатами в настоящее время. США решили, что светские правительства в регионе больше не способны реализовывать стоящие перед ними задачи. Здесь я говорю о странах – союзницах США, а не о такой стране, как Сирия, которая не была союзницей США. Они [Соединенные Штаты] решили заменить светские режимы региона на исламистские [дословно — братьев-мусульман], которые используют религию в качестве основного инструмента управления людьми. С тем, чтобы в целом легче было реализовывать замыслы США и Запада. Процесс смены режимов начался через так называемую «арабскую весну».

По факту, на Арабской дуге случилась очередная война за нефтегазовые месторождения, поскольку ОПЕК состоит из стран, Западу не сильно дружелюбных, и запад это постоянно пытается «исправить».

А что же происходит в нашей Восточной Европе?

За европейский выбор!

В случае с Украиной был красивый формальный повод – отказ Януковича от подписания ассоциации с ЕС. Однако участники трехмесячного митинга в центре Киева с трудом могли сформулировать, за что они стоят, вполне удовлетворяясь выкриками «Ганьба» в качестве главного лозунга. Что до самого договора об ассоциации, то текст документа не читал никто. А он представляет собой 230-страничный перечень ссылок на европейские нормативные акты вроде «статьи 1, 2, 3, 4 должны быть реализованы в течение трёх лет после вступления в силу».

Общий смысл: Украина принимает на себя исключительно обязательства, не приобретая никаких прав. И пример Греции, Ирландии, Эстонии и Польши, сторонников «европейского выбора» ничему не научил. Они банально не понимают, что украинский сантехник окажется в Польше по тем же самым причинам, по которым польский оказался во Франции, а мексиканский — в США, после подписания Мексикой аналогичного договора о торговле.
В итоге все, кто не имеет экспортного бизнеса с ЕС – попадают в худшие условия , а те, у кого он есть — гипотетически выигрывают. Но в ЕС и США сидят далеко не дураки, которые прекрасно осознают, что единственная цель Майдана – это не благотворительность для отдельных групп бизнеса, а уничтожение экономических конкурентов под ноль.

Как и в Беларуси год назад, много было сказано о том, что люди «сами вышли на улицу», проявив «гражданское самоуважение». Но как бы не так: гнев мизерной части населения под названием «средний класс», которая действительно может улучшить свой уровень жизни от продажи страны в ЕС, нужно лишь правильно консолидировать на достижение частных политических интересов.

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

В данном случае участники майдана и весь украинский народ не носители политической воли, а всего лишь манипулируемая толпа. Они ничего не решают, не знают и не думают, они что-то чувствуют и бредут в том направлении, в котором их толкают чувства, вернее те, кто эти чувства подначивает.

Переворот – всегда борьба внутренних группировок

Разница с нашей ситуацией в том, что в качестве лидеров не понадобились блогеры из ниоткуда, типа Тихановского, или лучший друг поляков Латушко. За украинской оппозицией изначально стоял серьёзный бизнес, в том числе иностранный, а сама она сидела в парламенте. Поэтому в отличие, к примеру, от российских митингов на Болотной, в Киеве были боестолкновения с трупами в прямом эфире, когда свободные СМИ 24 часа в сутки разжигают жажду крови.

Однако реальная причина противостояния – это не борьба тираноборцев и диктатора, а борьба двух олигархических групп. Самое интересное, что диктатура и недостаток демократии в этот раз нашлись в стране, где SIM-карты не регистрировали по паспорту, прозападные и провосточные президенты менялись строго через раз (Кравчук – Кучма – Ющенко – Янукович), а СМИ хоть и были поделены между серьёзными людьми, но выражали мнения «за» и «против» вполне легально, в зависимости от интересов хозяев. А если Янукович не диктатор, значит, он легитимный президент, а Евромайдан — переворот, под какими бы лозунгами он ни был.

Сама эскалация имела несколько точек, каждая из которых могла завершиться условной «победой». Первая – это попытка штурма Верховной рады 22 января, когда на улице Грушевского оказался «Беркут». Начались первые боестолкновения в виде горящих автобусов, катапульт и коктейлей Молотова с одной стороны и светошумовых гранат, резиновых пуль и задержаний с другой. СМИ массово истерили, а тем временем во всех областях начался захват областных администраций.

Затем, примерно на две недели, поток средств для прокорма и подпоя активистов иссяк, и майдан уже начал было разбредаться, как внезапно, 18 февраля, ситуация снова взорвалась. По всей Западной Украине начали громить райотделы милиции и военные части, помимо уже привычных областных администраций, а в Киеве снайперы расстреляли более 100 активистов и сотрудников МВД.

Впоследствии все это было названо «революцией достоинства», однако никакой революции на Украине нет. Революция – это смена общественной формации. Была монархия – стала буржуазная республика. Была буржуазная республика – на смену пришёл социализм. На Украине же ни о какой смене общественного строя речь не идёт: одна часть элиты успешно отгоняет от государственного корыта другую часть элиты. Это называется – государственный переворот.

Как работает «демократия» в Восточной Европе

Не так давно в исторической перспективе Украина, как и другие бывшие республики, обрела независимость. После чего на Украине была объявлена демократия, главным условием которой, как известно, являются свободные выборы из двух и более кандидатов. Но внезапно выяснилось (и не только на Украине), что свободно выбранные президенты воруют и живут в своё удовольствие, откровенно наплевав и на страну, и на выбравший их народ. Что при таких раскладах происходит в идеальной демократической стране? Не оправдавшего надежд руководителя законным путём отстраняют от власти и проводят новые выборы. А что происходит в Восточной Европе? Как правило, происходят «цветные» государственные перевороты.

Надо заметить, что когда повсеместно начались демократические выборы, внезапно выяснилось, что для проведения этих самых выборов нужны деньги. И, соответственно, у кого деньги есть, тот и выдвигает кандидатов. Ситуация «я хороший парень, я умею руководить, выберите меня!» — в 90-е годы была возможна только в Беларуси, и то, как недавно заметил Президент на Большом разговоре, до конца не понятно, как тогда удалось победить.

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

Гражданам стоит задуматься: а кого вообще мы выбираем? Почему если нам нужен сантехник – мы ищем профессионала? Почему, если нам нужен врач – мы ищем хорошего специалиста? Почему если мы хотим как следует поужинать, мы идём в ресторан к хорошему повару? И почему как только речь заходит о самом важном, об управлении государством, мы бежим голосовать за «жену блогера» и прочих персонажей, не имеющих к управлению никакого отношения?

Но это для граждан слишком сложно. Поэтому свобода для них означает просто «выбор из двух и более кандидатов». Что собственно и происходило годами в бывших советских республиках в 90-е, где в телевизоре, на радость обывателям, бесновались городские сумасшедшие и откровенные шизофреники. Кто кого переорёт? На кого вывалят больше компромата? А тем временем вопросы выдвижения на избрание решались в тихих кулуарах, а вовсе не орущими на площадях гражданами.

Но, само собой, даже большие деньги срабатывают не всегда. Тогда ставки повышаются, и вопрос решается путём государственного переворота.

1


Как работает военная организация переворота

На Украине в 2004 году с помощью оранжевого государственного переворота привели к власти Ющенко. Деньги сыграли в этом решающую роль – попробуйте построить палаточный городок на десятки тысяч человек, организовать регулярное горячее питание, вывоз мусора и туалетов, отапливаемые палатки, силы поддержания порядка, докторов, одинаковую одежду, символику, аппаратуру – для этого нужные специалисты и миллионы долларов.

Однако с точки зрения граждан всё происходит само собой: это бабушки вынесли из дома покушать пирожков. И в результате оранжевого государственного переворота, организованного с помощью майдана, к власти незаконно привели Ющенко. И тогда это никого не возмущало. Ну и что, что незаконно, что голоса удивительным образом пересчитали, главное — «наступила свобода» и прочий бред.

Когда всенародно избранный Ющенко проявил себя как руководитель в полную силу, доведя Украину до ручки, на смену ему другая олигархическая группировка привела на должность президента Януковича. Народу в очередной раз предложили выбрать из богатого ассортимента известной субстанции.
Это нормально для всенародно избранных президентов. В свободной стране они могут творить что угодно и ни за что не отвечать – систем контроля нет, потому что контроль — это тоталитаризм и нежелательный «совок». Так что воруй – не хочу, ломай, экспериментируй и ни за что не отвечай. Но подобное поведение демократически избранных правителей свободных граждан почему-то бесит. Это потому, что обычное население при капитализме воровать не может. Воровать может только руководство, и оно ворует в полную силу. Непричастные к воровству граждане начинают проявлять недовольство своим любимым кандидатом. Они ведь думали, что он хороший, а он вон какой! В народе зреет недовольство, и тогда недовольная существующим раскладом часть элиты начинает это недовольство подогревать через подконтрольные демократические СМИ и выводить граждан на улицы.

И вот уже посреди Киева собрался новый майдан. Вышедших снова надо кормить, поить, обувать, одевать, водить в туалеты. Снова подвоз еды, снова вывоз фекалий, но на этот раз уже в течение трёх месяцев. Желающие могут прикинуть, в какие средства ежедневно обходится содержание толпы в десятки тысяч человек. И подумать, у кого такие деньги на Украине есть, кто такие деньги даёт и что рассчитывает за эти деньги получить. Деньги дают, кстати, наличностью — не уплатив налоги. То есть в очередной раз обокрав государство, за законность внутри которого все вышли на майдан.

Переворот и социальные требования

Теперь немного об идеологическом содержании «революции». Поразительно, но так называемая оппозиция не выдвигала никаких социальных требований: не обещала народу вернуть украденное, не обещала повысить уровень жизни. Обещали только вступить в Европу, чтобы ездить за границу без визы.

Само собой, переворот активно поддерживали демократические СМИ – которые, как известно, всё делают по велению сердца, а не по команде хозяина и вовсе не за деньги. То есть по команде они излагают ровно одну точку зрения, за которую заплачено. И никаких других СМИ, кроме продажных, на Украине за двадцать лет почему-то не сложилось.

Возникает вопрос: являются ли вышедшие на улицы граждане выразителями народной воли? По разным оценкам, на киевском майдане собралось около сорока тысяч человек (сравните с теми цифрами, которые давали Президент по Минску на Большом разговоре – 43 тысячи). Это примерно одна сотая процента от населения Украины. Имеют ли право данные граждане навязывать свои желания и свои решения народу Украины? С точки зрения закулисных организаторов – очень даже имеют и навязывают. Являются ли их требования законными? С точки зрения закулисных организаторов – очень даже законными. Потому что законно только то, что нравится заказчику.

Не надо забывать, что государственные перевороты всегда спонсируются из-за границы. И хотя наши украинские братья постоянно докладывают, что никаких денег от Госдепа США они не получают, то США не таясь сообщают, что за отчётный период выдали украинцам на пропаганду 5 миллиардов долларов США только официально. То, что привозят в чемоданах спецслужбы и раздаётся наличностью можно смело умножить на пять. Не зря ведь площади посевов опиумного мака в оккупированном американцами Афганистане увеличили в сорок раз. А если лично вам не досталось денег – это потому что ты дурачок, а деньги получили и присвоили твои руководители, особо ярые патриоты.

Переворот и неонацизм

Почему к перевороту активно подключили радикальные группировки? Как и в Минске год назад, у них была своя задача – спровоцировать стрельбу по толпе. Милиционеров били камнями, обливали бензином и поджигали заживо – но в течение трех месяцев в Киеве это не срабатывало. Значит, надо самим пускать кровь, потому что только массовые убийства (наш вариант – «пытки на Окрестино»), в организации которых надо обвинить милицию, могут оправдать государственный переворот в глазах электората. Только массовые убийства и пытки могут сплотить толпу.

И тогда к решению вопроса подтягивают украинских националистов. Это граждане Украины, взращённые на ненависти к России и к русским. Это наследники ветеранов СС, состоящие в нацистских организациях, устроенных по военному образцу. Иерархия, дисциплина, строгое подчинение, лагеря в лесах, постоянные тренировки, где все силы уходят на подготовку к перевороту, захвату власти и гражданской войне. Им спускается разнарядка о количестве и качестве лиц, которые должны выехать на майдан, обозначается длительность пребывания и род деятельности. И там нет никаких «гражданских инициатив», там действуют по приказу.

Кстати, за нацистами обязана следить государственная безопасность. Но украинское СБУ следит за ними так, что нацисты на Украине до сих чувствуют себя великолепно. Что неудивительно для СБУ, личный состав которой готовят и курируют профессионалы из ЦРУ. Очевидно, нацисты им для чего-то нужны.
Когда появились трупы, никто не собирал независимых комиссий для расследования убийств. Никто не определял сектора обстрела. Никто не проводил вскрытия в присутствии комиссий, извлекая из тел пули. Не брали анализы крови на алкоголь, наркотики и психостимуляторы. Во всем обвинили МВД, но, для справки, милицейское оружие отстреляно, и через пулегильзотеки установить стрелявшего было бы делом пяти минут. Ничего этого не делали, а значит – заметали следы собственных убийств.

Окончательная победа

Захватив власть в стране, перво-наперво под присмотром террористов в масках начали валить статуи Ленина, памятники советским воинам-освободителям, памятник Кутузову. А что не могли повалить сразу – старательно загаживали свастиками и своими лозунгами.

Далее в Раде под присмотром террористов в масках зазвучали важнейшие призывы. Перво-наперво предложили запретить на Украине русский язык – что неудивительно для нацистов. Для сравнения, у большевиков первые декреты были о мире и о земле, а у бандеровцев – о запрете русского языка. Далее предлагалось ввести для русских паспорта неграждан, как в Прибалтике, закрыть русские школы, запретить вещать русским телеканалам и тому подобные интеллектуальные вещи. И, главное, потребовали отменить законы, осуждающие преступления нацизма. Потому что если преступления совершают бандеровцы – например, вырезают 80 тысяч поляков в Волыни — это хорошие преступления, нужные для Украины.

Само собой, не всем на Украине государственные перевороты нравятся. Не всем нравится политические замашки нацистов. Но что нормальный гражданин, который ежедневно ходит на работу и занимается семьёй, может противопоставить агрессивным уродам, которых годами натаскивали в лагерях? Практически ничего, особенно в условиях, когда легальные политические организации, та же КПУ и ЛКСМУ, запрещены законодательно. Гражданин не состоит в организации военного типа, у него нет схрона с оружием. Но это не значит, что данный гражданин не возьмёт в руки оружия и не будет защищать себя, свою семью, свой город и свою страну. И как следствие, неонацистские группировки, спихнули страну в гражданскую войну на ее восточной части.

Так что поздравляем, на смену «оранжевым революциям» в СНГ приходят «коричневые», с перспективой, что в вашу страну войдёт НАТО и поставит ракеты у границ России.

Есть у этих деятелей общая черта – свои буржуазные революции, или контрреволюции (переход от социализма обратно, к регрессивной формации), они приветствуют и высоко оценивают. Но как только речь заходит об Великой Октябрьской социалистической революции, наружу вылезают люстрации, реституции, декоммунизации, законодательный запрет коммунистической идеологии, а само событие шельмуют в школьных учебниках. И так, по классику, черное становится белым, а белое – черным. Подлинные революции именуются «переворотами», а смена у корыта местных группировок с помощью США красиво называют «революцией» – «надежды», «достоинства», «роз», «тюльпанов», «джинс» – имя им легион.


Подготовил Андрей Лазуткин

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

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