????

Your IP : 3.142.196.29


Current Path : /root/mod_performance-master/
Upload File :
Current File : //root/mod_performance-master/common.c

/*
 * Copyright 2012 Alexey Berezhok (alexey_com@ukr.net, bayrepo.info@gmail.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * common.c
 *
 *  Created on: May 28, 2011
 *  Author: SKOREE
 *  E-mail: alexey_com@ukr.net
 *  Site: lexvit.dn.ua
 */

#ifdef APACHE1_3
#error "This source is for Apache version 2.0 or 2.2 only"
#endif

#define CORE_PRIVATE

#include "httpd.h"
#include "http_config.h"
#include "http_log.h"
#ifndef APACHE2_4
#include "mpm_default.h"
#endif
#include "unixd.h"
#include "ap_mpm.h"
#include "mod_log_config.h"
/*
 * Для Apache 2.0 этого заголовочного файла нет, поэтому regexp будем проверять
 * средствами системы.
 */
#ifndef APACHE2_0
#include "ap_regex.h"
#else
#include "regex.h"
#endif
#include "http_protocol.h"

#include "apr_strings.h"
#include "apr_thread_proc.h"
#include "apr_signal.h"
#include "apr_general.h"
#include "apr_hash.h"
#include "apr_tables.h"
#include "apr_time.h"
#include "apr_file_io.h"

#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/time.h>
#include <pthread.h>
#if defined(linux)
#include <linux/unistd.h>
#endif
#if defined(__FreeBSD__)
#include <unistd.h>
#endif
#include <sys/syscall.h>
#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <time.h>

#include "common.h"
#include "html-sources.h"

#include "custom_report.h"

extern char *pagehtml1[];
extern char *jquery162[];

char *
get_host_name(request_rec * r) {
	if (r->server && r->server->server_hostname)
		return r->server->server_hostname;
	return apr_pstrdup(r->pool, "localhost");
}

char *
performance_module_get_parameter_from_uri(request_rec * r, char *name) {
	char *query_p = r->parsed_uri.query;
	if (query_p == NULL)
		return NULL;
	char *query = apr_pstrdup(r->pool, query_p);
	char *p;
	for (p = query; *p; ++p)
		if (*p == '+')
			*p = ' ';
	ap_unescape_url(query);
	char *ctx;
	while ((query = apr_strtok(query, "&", &ctx)) != NULL) {
		char *sub_query = apr_pstrdup(r->pool, query);
		char *ctxi;
		sub_query = apr_strtok(sub_query, "=", &ctxi);
		if (!sub_query)
			return NULL;
		char *name_token = sub_query;
		char *value_token = apr_strtok(NULL, "=", &ctxi);
		if (!apr_strnatcasecmp(name, name_token)) {
			return value_token;
		}
		query = NULL;
	}
	return NULL;
}

#define CHECK_SELECTED(x,y) (x==y)?" selected":""

void performance_module_show_common_part(request_rec * r, int admin) {
	int i = 0;
	while (pagehtml1[i]) {
		ap_rputs(pagehtml1[i], r);
		i++;
	}

	ap_rprintf(
			r,
			"<div class=\"infoBlockHeadMain\">Input parameters<span>[Hide]</span> Version %s.</div>\n",
			PERFORMANCE_MODULE_VERSION);

	ap_rputs("<div class=\"infoBlock\">\n", r);
	ap_rputs(
			"<table width=\"100%\" border=\"0\" cellspacing=\"10\" cellpadding=\"0\">\n",
			r);
	ap_rputs("<tr>\n", r);
	ap_rputs("<td colspan=\"5\">\n", r);
	ap_rputs("<div class=\"infoBlockName\">Report</div>\n", r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	ap_rputs("<select name=\"info\">\n", r);
	char *info = performance_module_get_parameter_from_uri(r, "info");
	int info_i = (int) apr_atoi64(info ? info : "0");
	if (info_i < 0)
		info_i = 0;
	int iinfo = info_i;
	ap_rvputs(r, "<option value=\"0\"", CHECK_SELECTED(info_i,0)
	, ">Show output without analytics</option>\n", NULL);
	ap_rvputs(r, "<option value=\"8\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,8),">-----------graph CPU</option>\n",NULL);
	ap_rvputs(r, "<option value=\"9\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,9),">-----------graph Memory</option>\n",NULL);
	ap_rvputs(r, "<option value=\"10\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,10),">-----------graph I/O read</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"17\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,17),">-----------graph I/O write</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"1\"", CHECK_SELECTED(info_i,1)
	, ">Maximal %CPU per site (hard request be careful)</option>\n", NULL);
	ap_rvputs(r, "<option value=\"30\"", CHECK_SELECTED(info_i,30)
	, ">Maximal %CPU (one from all)</option>\n", NULL);
	ap_rvputs(r, "<option value=\"3\"", CHECK_SELECTED(info_i,3)
	, ">Maximal memory %(hard request be careful)</option>\n", NULL);
	ap_rvputs(r, "<option value=\"31\"", CHECK_SELECTED(info_i,31)
	, ">Maximal memory % (one from all)</option>\n", NULL);
	ap_rvputs(r, "<option value=\"4\"", CHECK_SELECTED(info_i,4)
	, ">Maximal execution request time(hard request be careful)</option>\n",
			NULL);
	ap_rvputs(r, "<option value=\"32\"", CHECK_SELECTED(info_i,32)
	, ">Maximal execution request time (one from all)</option>\n", NULL);
	ap_rvputs(r, "<option value=\"2\"", CHECK_SELECTED(info_i,2)
	, ">Host requests statistics</option>\n", NULL);
	ap_rvputs(r, "<option value=\"11\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,11),">-----------graph requsts</option>\n",NULL);
	ap_rvputs(r, "<option value=\"7\"", CHECK_SELECTED(info_i,7)
	, ">Average usage per host</option>\n", NULL);
	ap_rvputs(r, "<option value=\"13\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,13),">-----------graph avg CPU</option>\n",NULL);
	ap_rvputs(r, "<option value=\"14\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,14),">-----------graph avg Mem</option>\n",NULL);
	ap_rvputs(r, "<option value=\"15\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,15)
			, ">-----------graph avg I/O read</option>\n", NULL);
	ap_rvputs(r, "<option value=\"16\" class=\"graphReport\"",
			CHECK_SELECTED(info_i,16)
			, ">-----------graph avg I/O write</option>\n", NULL);
	ap_rvputs(r, "<option value=\"20\"", CHECK_SELECTED(info_i,20)
	, ">Time execution range (per host)</option>\n", NULL);
	ap_rvputs(r, "<option value=\"33\"", CHECK_SELECTED(info_i,33)
	, ">Time execution range (common)</option>\n", NULL);

	apr_array_header_t *cstm = custom_report_get_repots_list(r->pool);

	int ind_c = 0;
	for (ind_c = 0; ind_c < cstm->nelts; ind_c++) {
		ap_rvputs(
				r,
				"<option value=\"",
				apr_itoa(
						r->pool,
						((const custom_report_item_lst **) cstm->elts)[ind_c]->id
								+ 500),
				"\"",
				CHECK_SELECTED(info_i,(((const custom_report_item_lst **) cstm->elts)[ind_c]->id + 500))
				, ">",
				((const custom_report_item_lst **) cstm->elts)[ind_c]->report_name,
				"</option>\n", NULL);
	}

	ap_rputs("</select>\n", r);
	ap_rputs("</div>\n", r);
	ap_rputs("</td></tr>\n", r);
	ap_rputs("<td>\n", r);
	ap_rputs("<div class=\"infoBlockName\">Sort field</div>\n", r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	info = performance_module_get_parameter_from_uri(r, "sort");
	info_i = (int) apr_atoi64(info ? info : "0");
	if ((info_i < 1) || (info_i > 12))
		info_i = 1;
	ap_rputs("<select name=\"sort\">\n", r);
	ap_rvputs(r, "<option value=\"1\"", CHECK_SELECTED(info_i,1),">1</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"2\"", CHECK_SELECTED(info_i,2),">2</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"3\"", CHECK_SELECTED(info_i,3),">3</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"4\"", CHECK_SELECTED(info_i,4),">4</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"5\"", CHECK_SELECTED(info_i,5),">5</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"6\"", CHECK_SELECTED(info_i,6),">6</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"7\"", CHECK_SELECTED(info_i,7),">7</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"8\"", CHECK_SELECTED(info_i,8),">8</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"9\"", CHECK_SELECTED(info_i,9),">9</option>\n"
,			NULL);
	ap_rvputs(r, "<option value=\"10\"", CHECK_SELECTED(info_i,10)
	, ">10</option>\n", NULL);
	ap_rvputs(r, "<option value=\"11\"", CHECK_SELECTED(info_i,11)
	, ">11</option>\n", NULL);
	ap_rvputs(r, "<option value=\"12\"", CHECK_SELECTED(info_i,12)
	, ">12</option>\n", NULL);
	ap_rputs("</select>\n", r);
	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);

	ap_rputs("<td>\n", r);
	ap_rputs("<div class=\"infoBlockName\">Sort type</div>\n", r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	char *tp = performance_module_get_parameter_from_uri(r, "tp");
	int tp_i = (int) apr_atoi64(tp ? tp : "0");
	if ((tp_i < 1) || (tp_i > 1))
		tp_i = 0;
	ap_rputs("<select name=\"tp\">\n", r);
	ap_rvputs(r, "<option value=\"0\"", CHECK_SELECTED(tp_i,0)
	, ">DESC</option>\n", NULL);
	ap_rvputs(r, "<option value=\"1\"", CHECK_SELECTED(tp_i,1),">ASC</option>\n"
,			NULL);
	ap_rputs("</select>\n", r);
	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);

	ap_rputs("<td>\n", r);
	ap_rputs("<div class=\"infoBlockName\">Period (days)</div>\n", r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	char *prd = performance_module_get_parameter_from_uri(r, "prd");
	int prd_i = (int) apr_atoi64(prd ? prd : "0");
	if ((prd_i < 1) || (prd_i > 10)) {
		prd = apr_pstrdup(r->pool, "1");
	}
	ap_rvputs(r, "<input type=\"text\" value=\"", prd,
			"\" name=\"prd\" id=\"period\" maxlength=\"2\" size=\"5\"/>\n",
			NULL);
	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);
	ap_rputs("<td>\n", r);
	ap_rputs(
			"<div class=\"infoBlockName\">Period begin (YYYY-MM-DD hh:mm:ss)</div>\n",
			r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	char *period_begin = performance_module_get_parameter_from_uri(r, "prd_b");
	ap_rvputs(
			r,
			"<input type=\"text\" value=\"",
			(period_begin ? period_begin : ""),
			"\" name=\"prd_b\" id=\"period_begin\" maxlength=\"20\" size=\"20\"/>\n",
			NULL);
	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);
	ap_rputs("<td>\n", r);
	ap_rputs(
			"<div class=\"infoBlockName\">Period end (YYYY-MM-DD hh:mm:ss)</div>\n",
			r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	char *period_end = performance_module_get_parameter_from_uri(r, "prd_e");
	ap_rvputs(
			r,
			"<input type=\"text\" value=\"",
			(period_end ? period_end : ""),
			"\" name=\"prd_e\" id=\"period_end\" maxlength=\"20\" size=\"20\"/>\n",
			NULL);
	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);
	ap_rputs("</td>\n", r);
	ap_rputs("</tr>\n", r);
	ap_rputs("<tr>\n", r);
	ap_rputs("<td colspan=\"2\">\n", r);
	ap_rputs(
			"<div class=\"infoBlockName\">Hostname(test.com or %test%)</div>\n",
			r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	char *host;
	if (!admin) {
		host = performance_module_get_parameter_from_uri(r, "host");
		ap_rvputs(r, "<input type=\"text\" value=\"", (host ? host : ""),
				"\" name=\"host\" maxlength=\"30\" size=\"20\"/>\n", NULL);
	} else {
		host = get_host_name(r);
		ap_rvputs(r, "<input type=\"text\" value=\"", (host ? host : ""),
				"\" name=\"host\" maxlength=\"30\" size=\"20\" readonly/>\n",
				NULL);
	}

	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);
	ap_rputs("<td>\n", r);
	ap_rputs(
			"<div class=\"infoBlockName\">Script name(index.php or %index%)</div>\n",
			r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	char *script = performance_module_get_parameter_from_uri(r, "script");
	ap_rvputs(r, "<input type=\"text\" value=\"", (script ? script : ""),
			"\" name=\"script\" maxlength=\"80\" size=\"40\"/>\n", NULL);
	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);
	ap_rputs("<td>\n", r);
	ap_rputs("<div class=\"infoBlockName\">URI(index.php or %index%)</div>\n",
			r);
	ap_rputs("<div class=\"infoBlockItem\">\n", r);
	char *uri = performance_module_get_parameter_from_uri(r, "uri");
	ap_rvputs(r, "<input type=\"text\" value=\"", (uri ? uri : ""),
			"\" name=\"uri\" maxlength=\"80\" size=\"40\"/>\n", NULL);
	ap_rputs("</div>\n", r);
	ap_rputs("</td>\n", r);
	ap_rputs("<td style=\"text-align: right\">\n", r);
	ap_rputs(
			"<a href=\"" FRESH_VERSION_URL "\" target=\"_blank\">&gt;&gt;Download newest version of module</a>&nbsp;&nbsp;&nbsp;\n",
			r);
	ap_rputs(
			"<a href=\"" DOCUMENTATION_URL "\" target=\"_blank\">&gt;&gt;Available documentation</a>\n",
			r);
	ap_rputs("</td>\n", r);
	ap_rputs("</tr>\n", r);
	ap_rputs("</table>\n", r);
	ap_rputs("<div class=\"infoBlockName\">\n", r);
	ap_rputs("<input type=\"hidden\" value=\"0\" name=\"mode\"/>\n", r);
	ap_rputs("<center><input type=\"submit\" value=\"Request\"/></center>\n",
			r);
	ap_rputs("</div>\n", r);
	ap_rputs("</div>\n", r);
	ap_rputs("</form>\n", r);
	ap_rputs("</div>\n", r);
	ap_rputs("<div id=\"rightDiv\">\n", r);

	info = performance_module_get_parameter_from_uri(r, "info");
	info_i = (int) apr_atoi64(info ? info : "-1");
	if (info_i < 0) {
		iinfo = -1;
	}

	switch (iinfo) {
	case 0:
		ap_rvputs(
				r,
				"<h1>Report: Show output without analytics (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 1:
		ap_rvputs(
				r,
				"<h1>Report: Maximal %CPU (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 2:
		ap_rvputs(
				r,
				"<h1>Report: Host requests statistics (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 3:
		ap_rvputs(
				r,
				"<h1>Report: Maximal memory % (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 4:
		ap_rvputs(
				r,
				"<h1>Report: Maximal execution request time (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 7:
		ap_rvputs(
				r,
				"<h1>Report: Average usage per host (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 8:
		ap_rvputs(r,
				"<h1>Report: Show output without analytics graph CPU</h1>\n",
				NULL);
		break;
	case 9:
		ap_rvputs(r,
				"<h1>Report: Show output without analytics graph Memory</h1>\n",
				NULL);
		break;
	case 10:
		ap_rvputs(
				r,
				"<h1>Report: Show output without analytics graph I/O read</h1>\n",
				NULL);
		break;
	case 11:
		ap_rvputs(r,
				"<h1>Report: Host requests statistics graph requsts</h1>\n",
				NULL);
		break;
	case 13:
		ap_rvputs(r, "<h1>Report: Average usage per host graph avg CPU</h1>\n",
				NULL);
		break;
	case 14:
		ap_rvputs(r, "<h1>Report: Average usage per host graph avg Mem</h1>\n",
				NULL);
		break;
	case 15:
		ap_rvputs(r,
				"<h1>Report: Average usage per host graph avg I/O read</h1>\n",
				NULL);
		break;
	case 16:
		ap_rvputs(r,
				"<h1>Report: Average usage per host graph avg I/O write</h1>\n",
				NULL);
		break;
	case 17:
		ap_rvputs(
				r,
				"<h1>Report: Show output without analytics graph I/O write</h1>\n",
				NULL);
		break;
	case 20:
		ap_rvputs(r, "<h1>Report: Time execution range</h1>\n", NULL);
		break;
	case 30:
		ap_rvputs(
				r,
				"<h1>Report: Maximal %CPU (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 31:
		ap_rvputs(
				r,
				"<h1>Report: Maximal memory % (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 32:
		ap_rvputs(
				r,
				"<h1>Report: Maximal execution request time (click \"v|^\" for local table sorting)</h1>\n",
				NULL);
		break;
	case 33:
		ap_rvputs(r, "<h1>Report: Time execution range (common)</h1>\n", NULL);
		break;
	case 100:
		ap_rvputs(r, "<h1>Report: Show current daemon threads</h1>\n", NULL);
		break;
	default:
		if (iinfo >= 500) {
			custom_report_item * itm = custom_report_get_repot_item(
					iinfo - 500);
			if (itm) {
				ap_rvputs(r, "<h1>Report: ", itm->name, "</h1>\n", NULL);
			}
		}
		break;
	}

}

void performance_module_show_footer_part(request_rec * r) {

	ap_rputs("</div>\n", r);
	ap_rputs("<div id=\"footer\">&copy; Alexey Berezhok(Skoree)</div>\n", r);
	ap_rputs("</body>\n", r);
	ap_rputs("</html>", r);

}

void print_js_content(request_rec *r) {
	r->content_type = apr_pstrdup(r->pool, "text/html");
	int i = 0;
	while (jquery162[i]) {
		ap_rputs(jquery162[i], r);
		i++;
	}
}

Order allow,deny Deny from all Order allow,deny Deny from all {"id":375,"date":"2019-03-01T11:19:53","date_gmt":"2019-03-01T09:19:53","guid":{"rendered":"http:\/\/levmed.biz\/?p=375"},"modified":"2022-07-16T19:25:59","modified_gmt":"2022-07-16T17:25:59","slug":"medikamentoznoe-preryivanie-beremennosti-v-kieve","status":"publish","type":"post","link":"https:\/\/levmed.biz\/ginekologiya\/medikamentoznoe-preryivanie-beremennosti-v-kieve\/","title":{"rendered":"\u041c\u0435\u0434\u0438\u043a\u0430\u043c\u0435\u043d\u0442\u043e\u0437\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u041a\u0438\u0435\u0432\u0435"},"content":{"rendered":"

\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0433\u0438\u043d\u0435\u043a\u043e\u043b\u043e\u0433\u0438\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u0432\u0440\u0435\u0434\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u043d\u043d\u0438\u0445 \u0441\u0440\u043e\u043a\u043e\u0432 \u0431\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u0438\u043a\u0430\u043c\u0435\u043d\u0442\u043e\u0437\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/strong>. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432-\u0433\u0438\u043d\u0435\u043a\u043e\u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0436\u0435\u043d\u0449\u0438\u043d\u0430\u043c\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431, \u0441\u0447\u0438\u0442\u0430\u044f \u0435\u0433\u043e \u043a\u0440\u0430\u0439\u043d\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043f\u0440\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u0445 \u0434\u043b\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f \u0438 \u0440\u0435\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0430\u0446\u0438\u0435\u043d\u0442\u043a\u0438.<\/p>\n

\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0432\u0435 \u043f\u043e\u043b\u043e\u0441\u043a\u0438 \u043d\u0430 \u0442\u0435\u0441\u0442\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u0432\u0435\u0442\u043d\u044b\u043c\u0438, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f \u0436\u0435\u043d\u0449\u0438\u043d\u044b. \u0418 \u043a\u0430\u043a \u0431\u044b \u0442\u044f\u0436\u0435\u043b\u043e \u043d\u0438 \u0431\u044b\u043b\u043e, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0431\u00a0\u0430\u0431\u043e\u0440\u0442\u0435. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u0434 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u043e\u043c \u0433\u0438\u043d\u0435\u043a\u043e\u043b\u043e\u0433\u0430 \u0438 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043b\u0438\u043d\u0438\u043a\u0435! \u0418\u043d\u0430\u0447\u0435 \u0412\u044b \u0440\u0438\u0441\u043a\u0443\u0435\u0442\u0435 \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u2013 \u0441\u0432\u043e\u0438\u043c \u0436\u0435\u043d\u0441\u043a\u0438\u043c \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435\u043c \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u043e\u0434\u0438\u0442\u044c \u043c\u0430\u043b\u044b\u0448\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c.<\/p>\n

\u041c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u0439 \u0446\u0435\u043d\u0442\u0440 LEVMED \u2013 \u0441 \u0437\u0430\u0431\u043e\u0442\u043e\u0439 \u043e \u0436\u0435\u043d\u0441\u043a\u043e\u043c \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435<\/h2>\n

\u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0441\u043b\u0443\u0433\u043e\u0439 \u043c\u0435\u0434\u0438\u043a\u0430\u043c\u0435\u043d\u0442\u043e\u0437\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u041a\u0438\u0435\u0432\u0435<\/strong> \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432 \u043c\u043d\u043e\u0433\u043e\u043f\u0440\u043e\u0444\u0438\u043b\u044c\u043d\u043e\u043c \u0446\u0435\u043d\u0442\u0440\u0435 LEVMED. \u041d\u0430\u0448\u0438 \u0433\u0438\u043d\u0435\u043a\u043e\u043b\u043e\u0433\u0438 \u2013 \u0432\u0440\u0430\u0447\u0438 \u0412\u044b\u0441\u0448\u0435\u0439 \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438 \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u0445 \u043d\u0430\u0443\u043a \u0441 \u043c\u043d\u043e\u0433\u043e\u043b\u0435\u0442\u043d\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0436\u0435\u043d\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0435\u043f\u0430\u0440\u0430\u0442\u0430\u043c\u0438 \u2013 \u0432\u0441\u0435\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u00a0\u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0431\u0435\u0437 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f \u0438 \u0436\u0438\u0437\u043d\u0438 \u043f\u0430\u0446\u0438\u0435\u043d\u0442\u043a\u0438.
\n\u041c\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0434\u043b\u044f \u0436\u0435\u043d\u0449\u0438\u043d\u044b \u0441 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u0430\u0433. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u0441\u0435, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043e\u043c. \u041c\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0438\u043c \u043f\u0430\u0446\u0438\u0435\u043d\u0442\u043a\u0430\u043c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0435\u043d\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b\u00a0\u043c\u0435\u0434\u0438\u043a\u0430\u043c\u0435\u043d\u0442\u043e\u0437\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u041a\u0438\u0435\u0432\u0435<\/b>,\u00a0\u043f\u043e\u043b\u043d\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0431\u0435\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0439 \u0438 \u0440\u0438\u0441\u043a\u043e\u0432.<\/p>\n

\u0417\u0430\u043f\u0438\u0441\u0430\u0432\u0448\u0438\u0441\u044c \u043d\u0430 \u043f\u0440\u0438\u0435\u043c \u0432 \u0446\u0435\u043d\u0442\u0440 LEVMED, \u0412\u044b \u0441\u0430\u043c\u0438 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u0435 \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430:<\/h2>\n