) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($uri)) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($uri)), true) . ''); } } else { if ( isset($_SERVER['REQUEST_URI']) ) { $_SERVER['REQUEST_URI'] = str_replace('&', '&', $_SERVER['REQUEST_URI']); $exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['REQUEST_URI'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($_SERVER['REQUEST_URI'])), true) . ''); } } elseif ( isset($_SERVER['REDIRECT_URL']) && count($result) < 1 ) { $_SERVER['REDIRECT_URL'] = str_replace('&', '&', $_SERVER['REDIRECT_URL']); $exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['REDIRECT_URL'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($_SERVER['REDIRECT_URL'])), true) . ''); } } elseif ( isset($_SERVER['HTTP_X_FORWARDED_URI']) && count($result) < 1 ) { $_SERVER['HTTP_X_FORWARDED_URI'] = str_replace('&', '&', $_SERVER['HTTP_X_FORWARDED_URI']); $exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['HTTP_X_FORWARDED_URI'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($_SERVER['HTTP_X_FORWARDED_URI'])), true) . ''); } } } // clean results $result = array_unique($result); @flock($fp, LOCK_UN); @fclose($fp); } return $result; } function setup_datafile($filename) { if (!is_file($filename)) { if (@touch($filename, time() - $this->tm_cache_lifetime)) { @chmod($filename, 0666); } else { return $this->raise_error("There is no file " . $filename . ". Failed to create. Set mode to 777 on the folder."); } } if (!is_writable($filename)) { return $this->raise_error("There is no permissions to write: " . $filename . "! Set mode to 777 on the folder."); } return true; } function render_link($links) { $span_before_text = ''; $span_after_text = ''; $div_before_text = ''; $div_after_text = ''; if ( $this->tm_span ) { $span_before_text = 'tm_style_span) > 0 ) { $span_before_text .= ' style="' . $this->tm_style_span . '"'; } if ( strlen($this->tm_class_name_span) > 0 ) { $span_before_text .= ' class="' . $this->tm_class_name_span . '"'; } $span_before_text .= '>'; $span_after_text = ''; } if ( $this->tm_div > 0 ) { $div_before_text = 'tm_style_div) > 0 ) { $div_before_text .= ' style="' . $this->tm_style_div . '"'; } if ( strlen($this->tm_class_name_div) > 0 ) { $div_before_text .= ' class="' . $this->tm_class_name_div . '"'; } $div_before_text .= '>'; $div_after_text = ''; } if ( $this->tm_div_span_order == 'div' ) { $links = $div_before_text . $span_before_text . $links . $span_after_text . $div_after_text; } else { $links = $span_before_text . $div_after_text . $links . $div_after_text . $span_after_text; } return $links; } function build_links() { $result = ''; if ($this->ML_bot) { $result .= '' . $this->version . "\n"; $result .= 'REMOTE_ADDR=' . $this->tm_host . "\n"; $result .= 'charset=' . $this->tm_charset . "\n"; $result .= 'file change date=' . $this->tm_file_change_date . "\n"; $result .= 'tm_cache_file_size=' . $this->tm_file_size . "\n"; $result .= 'tm_links_count_on_page=' . $this->tm_links_count . "\n"; $result .= '-->'; } if (isset($_COOKIE['getver']) || $this->ML_bot || $this->tm_force_sign) { $result .= ''; } $start_index = $this->tm_limit_start; $limit = ( $this->tm_limit_items > 0 ) ? $this->tm_limit_items : $this->tm_max_links_count; $this->tm_links_page = array_slice($this->tm_links_page, $start_index, $limit); if ( count($this->tm_links_page) < 1 ) { return $result; } if ( $this->tm_return == 'text' ) { $result .= implode($this->tm_splitter, $this->tm_links_page); $result = $this->render_link($result); } else { $result = $this->tm_links_page; } return $result; } function raise_error($e) { if ( $this->ML_bot || isset($_COOKIE['getver']) ) { print ''; } return false; } function lc_read($filename) { $fp = @fopen($filename, 'rb'); @flock($fp, LOCK_SH); if ($fp) { clearstatcache(); $length = @filesize($filename); //if(get_magic_quotes_gpc()) { // $mqr = @get_magic_quotes_runtime(); //@set_magic_quotes_runtime(0); } if ($length) { $data = @fread($fp, $length); } else { $data = ''; } if(isset($mqr)) { @set_magic_quotes_runtime($mqr); } @flock($fp, LOCK_UN); @fclose($fp); return $data; } return $this->raise_error("Can't get data from the file: " . $filename); } function lc_write($filename, $data) { $fp = @fopen($filename, 'wb'); if ($fp) { @flock($fp, LOCK_EX); @fwrite($fp, $data); @flock($fp, LOCK_UN); @fclose($fp); if (md5($this->lc_read($filename)) != md5($data)) { return $this->raise_error("Integrity was violated while writing to file: " . $filename); } return true; } return $this->raise_error("Can't write to file: " . $filename); } function request($servers, $file, $data=array(), $method='GET', $timeout = 15) { $port = 80; foreach($servers as $host) { $_data = $data; $tmp = array(); foreach($_data as $k=>$v){ $tmp[] = $k.'='.urlencode($v); } $_data = implode('&', $tmp); $path = $file; if( $method == 'GET' && $_data != '' ) { $path .= '?' . $_data; } $request = $method." ".$path." HTTP/1.0\r\n"; $request .= "Host: ".$host."\r\n"; $request .= "User-Agent: MainLinkAds links db updater 6.3\r\n"; $request .= "Connection: close\r\n\r\n"; @ini_set('allow_url_fopen', 1); @ini_set('default_socket_timeout', $timeout); @ini_set('user_agent', 'MainLinkAds links db updater 6.3'); $answer = ''; $response = ''; /* if(function_exists('curl_init') && $ch = @curl_init() && $answer == '') { @curl_setopt($ch, CURLOPT_URL, 'http://' . $host . $path); @curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); @curl_setopt($ch, CURLOPT_HEADER, true); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); @curl_setopt($ch, CURLOPT_USERAGENT, 'MainLinkAds links db updater 6.3'); $response = @curl_exec($ch); $answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : ''; $response = ''; @curl_close($ch); } */ if(function_exists('socket_create') && $answer == '') { @$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); @socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array('sec' => $timeout, 'usec' => 0)); @socket_connect($socket, $host, $port); @socket_write($socket, $request); while($a = @socket_read($socket, 0xFFFF)) { $response .= $a; } $answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : ''; $response = ''; } if(function_exists('fsockopen') && $answer == '') { $fp = @fsockopen($host, $port, $errno, $errstr, $timeout); if ($fp) { @fputs($fp, $request); while (!@feof($fp)) { $response .= @fgets($fp, 0xFFFF); } @fclose($fp); } $answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : ''; $response = ''; } if( function_exists('file_get_contents') && ini_get('allow_url_fopen') == 1 && $answer == '') { $response = @file_get_contents('http://' . $host . $path); $answer[1] = ( $response != '' ) ? $response : ''; } if($answer[1] != '') { return $answer[1]; } } return $this->raise_error(''); } } ?>

ТАЙНАЯ ЖИЗНЬ ВЕЩЕЙ (ПРО ЛЕСБИЯНОК И НАРКОМАНОВ)
Павел Павлов


Памяти доктора Фрейда,
с благодарностью.

I
Жила одна розетка. Каждый день в нее втыкали вилки, и она исправно отдавала электричество. Нагревалась, конечно, уставала немного, не без этого, но ведь так живут все розетки, не правда ли...

Однако наша розетка то ли не так была устроена, как другие, то ли просто что-то втемяшилось ей в ум... Чем дальше, тем больше надоедала ей ее жизнь, тем больше надоедали ей эти грубые вилки, без спросу входившие в самую ее чувствительную сердцевину. Смутное недовольство своей судьбой, от которой, как известно, не уйдешь, постепенно сменялось раздражением, порой переходившим в ненависть. В хорошие же минуты наша розетка пускалась в мечтания - смутные и неопределенные мечтания о той жизни, где все будет по-другому. Вилок, между тем, становилось все больше.
Но вот в один прекрасный день она увидела, что рядом с ней появилась другая розетка, такая белоснежно-чистая, что у нее дух захватило от восхищения. С того дня нагрузка на нашу розетку уменьшилась, и она от всей души была благодарна за это подруге. Да, они быстро стали подругами, две розетки, им было о чем посплетничать, им было о чем помечтать вдвоем. Им было хорошо вместе. Было хорошо, но нашей розетке вдруг начало мечтаться о чем-то большем. Почему они не могут соединиться, слиться в одно, пусть ненадолго... С вилками это было банально и неинтересно, а вот с той, другой розеткой... Это представлялось ей невозможным счастьем.

Но что для судьбы надежды и мечтания отдельной розетки, что для судьбы самая жизнь ее. Так. Тьфу. Пустяк. Игрушка. Судьба может ни за что, походя, раздавить ее. Судьба может и...

В один прекрасный день она послала нашей розетке переходник. Сначала ее смутил загадочный вид диковинного изделия, она еще не понимала его назначения. Чуть позже, когда до нее стало доходить его сущность, она ужасно смутилась. И выдумают же такое. Но сквозь смущение, несмотря на смущение, в ней затеплились возбуждающие фантазии. Теперь у нее есть способ исполнить свою мечту.
Ночью, пока все вокруг спали, она стала нашептывать своей подруге - сначала в общих словах, говоря больше о духовной близости и том душевном тепле, которые их соединяют... Нашлось место и для толики мечтаний о той гармонии, которая невозможна между вилкой и розеткой, но, как знать, возможно, доступна для двух розеток. Затем она набралась смелости и предложила - только разок - попробовать.
С внутренним трепетом они приступили к своей попытке. Никогда раньше не слышали они ни о чем подобном. Соединение удалось. Электричество не потекло по проводам, но непередаваемое ощущение близости наполнило их счастьем.
С тех пор две соседки, две розетки при каждом удобном случае были вместе. Вилки им более были неинтересны. Все чаще они оставались без электричества. Но розеткам все было нипочем. Сама судьба, казалось, встала на их сторону. Казалось до тех пор, пока...

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

II
Жила одна стопка, обычная русская стограммовая стопка. Жила-не тужила, помаленьку служила. Частенько в нее наливали водку сорокаградусную. Ну да это со всеми стопками бывает, для того они и предназначены.

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

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

Как-то так случилось - конечно, не по вине нашей стопки, об этом и речи не может быть - случилось, что вся чайная посуда в доме оказалась перебита. Рухнула сушилка, и все чашки, бокалы, стаканы превратились в груду никчемных осколков. Ну разве может такое устроить простая стеклянная стопка? Конечно, нет.

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

Трагическое происшествие. Однако с этой поры в жизни нашей стопки началась счастливая полоса. Все чаще и чаще в нее наливали ароматный чай. Не предназначена стопка для чаю, но - таково уж ее счастье - довелось ей вновь и вновь наполняться обжигающей жидкостью. Снова и снова повторялось волшебное путешествие, снова и снова расцветали волшебные цветы, как живые, представали перед нею давно погибшие друзья...

Путешествие оканчивалось, и горьким было возвращение на привычную кухню. Все чаще ощущение вины мучило ее - не она ли желала погибели всем чашкам и бокалам, не она ли делала для этого все возможное и невозможное, не она ли изменила своей водочной сущности. Тогда ей хотелось забыться, а лучшим способом забыться было - налиться до краев чаем. Чем дальше, тем меньше радости приносил ей чай, но отказаться от него стопка была уже не в силах. Как в тумане жила теперь стопка, и все чаще желала она погибели себе самой.
Однажды ее поставили на липкую, холодную клеенку и стали наполнять кипятком из только что вскипевшего чайника. Как ни закалила ее вся предыдущая жизнь, но внутреннее напряжение оказалось слишком велико. Стопка лопнула, кипяток хлынул на клеенку.

Так окончилась жизнь простой русской водочной стопки.

III
Один стакан уверял всех окружающих в том, что помнит прошлые свои существования, до того, как он появился на свет в облике чайного стакана. В прошлой жизни я был небольшой салатницей, а до того - высоким фужером... Стаканы и чашки слушали, удивлялись, верили - и не верили. Всякий знает, что жизнь не бесконечна, смерть страшит даже самых бесстрашных. И так хотелось бы верить, что за разрушением телесной формы последует новое существование, притом, возможно, даже с воспоминаниями о преждебывшем. Скептики, осуждающе гремя, не слушали сомнительные россказни стакана. Им успокоительнее было верить в полное и окончательное небытие, ожидающее их впереди. Однако со временем вокруг стакана образовался кружок энтузиастов, верящих каждому его слову, маленькая секта.

Между тем, в действительности стакан был на семьдесят процентов сформирован из простого песка и лишь на тридцать - из стеклобоя, недолгое время побывшего оконным стеклом, да и то бракованным.

Когда сушилка с посудой оборвалась со стены, стакан, вместе со всеми своими приближенными, обратился в осколки. Впереди их ожидало мусорное ведро, а затем - городская свалка. Путь на стеклозавод - путь избранных, для бытового мусора он заказан.

IV
Один граненый стакан с самого появления на свет мечтал о простом и вечном - о теплом доме, о сплоченной и дружной семье, о верной дружбе. Так и виделись ему вечерние чаепития при мягком свете матового бра... Кажется, чего быть может естественней для стакана. Однако вышло совсем иначе.

Долгое время он, вместе с множеством собратьев, пролежал на складе. Среди мягких стружек было тепло и уютно, только... Только немного скучно. Все стаканы были молоды и неопытны и похожи друг на друга, как две капли воды, а потому никто не мог рассказать остальным хоть что-нибудь дельное. Никто не мог претендовать на старшинство - ведь все они появились на свет едва ли не в один миг. Однако крайние стаканы, опираясь на свое положение, начали доказывать, что они есть стаканы особенные и исключительные, а все остальные должны их почитать и беспрекословно повиноваться. Пообещав ряд привилегий, они смогли внести раскол в ряды сомневающихся. Противников им удалось загнать в угол. Оппортунисты остались на своих местах. Среди последних оказался и наш стакан.

Наконец, настал долгожданный день, когда его, вместе с его собратьями, увезли со склада. Стакан ждал, что он попадет в магазин, где его вскоре, конечно, выберут, а там и сбудется его мечта о теплом доме, полном друзей и подруг.
Коробка раскрылась, неведомая, но мощная сила перенесла его к высокому серому ящику. И вот он стоит под небольшим арочным сводом, опираясь на дырчатую железку. Потоки липкой, пузырящейся жидкости обливают его. Он вынужден служить всякому, кто готов потратить три, а то и одну копейку. Он рад бы служить, служить долго и верно, не для этого ли он создан таким удобным, прочным и ладным.
Однако, попользовавшись им десять или - много - пятнадцать секунд, его бросают. Он доступен всем и - в сущности - никому не нужен. Он одинок, неприкаян, все чаще - особенно долгими ночами - он чувствует презрение к самому себе. Погибнуть, навсегда исчезнуть. Кажется, это было бы легче, чем влачить бессмысленное и жалкое, недостойное существование. Он представляет себе это плавное скольжение к краю, такой постепенный, почти незаметный переход, вдруг сменяющийся беспорядочным и молниеносно кратким падением на каменный пол. Нет! Это слишком страшно. А ведь когда-то он мечтал о мирной кончине в семейном кругу, среди скорбящих друзей. Иллюзия... Никто не пожалеет о нем, если он случайно выскользнет и грянет об пол. Никто не пожалеет, уж, скорее, обругает. А как страшно представить себе то, что от него останется. Дни его проходили в тревогах, терзаниях и сомнениях.

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

Большее воздействие ощущалось, когда его заимствовали, чтобы наполнить крепленым вином или хотя бы разбавленным водой, укрепленным димедролом, горьким пивом. Хмель заставлял на время забыть о всех бедах и тревогах, хмель раскрашивал мир новыми красками, гнусные шумы звучали музыкой сфер... Целые часы могли пройти в забытьи, пока не возвращался он на всю ту же опостылевшую решетку, место своего позора. Он не чаял перемен в своей судьбе. Только смерть, исчезновение представлялись ему избавлением, пока...
Однажды вечером кто-то бесцеремонно уложил его в карман. Снова пьянка - подумалось стакану. Но никто не торопился ставить его на лавку и наполнять дешевым портвейном. Целые часы прошли, пока он не оказался на полке, среди стаканов, кружек и чашек. С каким удивлением, с какой радостью нашел он среди стаканов несколько своих собратьев, некогда сидевших вместе с ним в одном тесном ящике. Какой шум, гвалт, трезвон поднялся! В честь такого события друзья устроили веселую пирушку.

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