<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://vion.tail5ecd76.ts.net/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASports_table%2Ftotalscheck</id>
	<title>Модуль:Sports table/totalscheck - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://vion.tail5ecd76.ts.net/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASports_table%2Ftotalscheck"/>
	<link rel="alternate" type="text/html" href="https://vion.tail5ecd76.ts.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sports_table/totalscheck&amp;action=history"/>
	<updated>2026-11-07T23:10:17Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://vion.tail5ecd76.ts.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sports_table/totalscheck&amp;diff=7283&amp;oldid=prev</id>
		<title>wp&gt;ru.wikipedia: Импорт из русской Википедии, версия 155338179</title>
		<link rel="alternate" type="text/html" href="https://vion.tail5ecd76.ts.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sports_table/totalscheck&amp;diff=7283&amp;oldid=prev"/>
		<updated>2026-09-28T22:09:19Z</updated>

		<summary type="html">&lt;p&gt;Импорт из русской Википедии, версия 155338179&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Сверка итогов турнирной таблицы:&lt;br /&gt;
-- проверяет, согласуются ли между собой показатели команд, заданные вручную.&lt;br /&gt;
&lt;br /&gt;
-- tc.check сверяет между собой суммы показателей всех команд, tc.check_matches — показатели&lt;br /&gt;
-- каждой команды с результатами её матчей (match_ХХХ_УУУ), если они заданы тем же набором параметров.&lt;br /&gt;
-- Обе возвращают тексты предупреждений. tc.is_cross_group решает, осмысленна ли сверка сумм для данного набора команд.&lt;br /&gt;
&lt;br /&gt;
-- Вызывается из [[Модуль:Sports table]]: предупреждения он показывает только в предпросмотре,&lt;br /&gt;
-- а на сохранённую страницу ставит лишь отслеживающую категорию за расхождения у команд&lt;br /&gt;
-- с полностью заполненной шахматкой. tc.check_matches вызывает и [[Модуль:Sports group]] —&lt;br /&gt;
-- для итога полной сверки на странице шаблона. Описание проверок: [[Модуль:Sports table/doc]].&lt;br /&gt;
&lt;br /&gt;
local tc = {}&lt;br /&gt;
&lt;br /&gt;
-- Разбор счёта общий для семейства — ppp.score_pair в [[Модуль:Sports table/sub]].&lt;br /&gt;
local p_sub = require(&amp;#039;Модуль:Sports table/sub&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- Применяет tc.is_cross_group к выводимой части таблицы:&lt;br /&gt;
-- собирает group_ХХХ команд с позиций ii_start–ii_end, без строки итогов.&lt;br /&gt;
local function is_cross_group_selection(Args, team_list, ii_start, ii_end)&lt;br /&gt;
	local groups = {}&lt;br /&gt;
	for ii = ii_start, ii_end do&lt;br /&gt;
		local code = team_list[ii]&lt;br /&gt;
		if code and code ~= p_sub.total_row_code then&lt;br /&gt;
			groups[#groups + 1] = Args[&amp;#039;group_&amp;#039; .. code]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return tc.is_cross_group(groups)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Решает, собрана ли таблица из команд разных групп по одной — так строят рейтинги вида&lt;br /&gt;
-- «команды, занявшие третьи места в своих группах». В такой таблице команды между собой&lt;br /&gt;
-- не играли: их показатели взяты из матчей против команд, которых здесь нет, сумма побед&lt;br /&gt;
-- не обязана равняться сумме поражений, и предупреждение сверки было бы ложным всегда.&lt;br /&gt;
&lt;br /&gt;
-- groups — массив групп команд. Возвращает true, если в нём больше одного элемента и все&lt;br /&gt;
-- они непустые и попарно различны: когда хотя бы две команды делят группу, сыгранные между&lt;br /&gt;
-- собой пары в таблице есть, и сверка осмысленна. Команда без group_ХХХ в массив не попадает&lt;br /&gt;
-- (присваивание nil его не удлиняет), так что решают только команды с заданной группой.&lt;br /&gt;
&lt;br /&gt;
-- Функция открыта наружу: по тому же правилу [[Модуль:Sports table]] не включает строку итогов&lt;br /&gt;
-- в предпросмотре, а держать условие в двух местах значило бы рано или поздно их рассогласовать.&lt;br /&gt;
function tc.is_cross_group(groups)&lt;br /&gt;
	local seen, teams = {}, 0&lt;br /&gt;
	for _, g in ipairs(groups) do&lt;br /&gt;
		if not g or g == &amp;#039;&amp;#039; then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
		if seen[g] then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
		seen[g] = true&lt;br /&gt;
		teams = teams + 1&lt;br /&gt;
	end&lt;br /&gt;
	-- Из одной команды выборку не составить, и сверять нечего.&lt;br /&gt;
	return teams &amp;gt; 1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Сверяет суммы показателей команд с позиций ii_start–ii_end. При верных данных совпадают&lt;br /&gt;
-- суммы побед и поражений, побед дома и поражений на выезде, побед на выезде и поражений дома,&lt;br /&gt;
-- ничьих дома и на выезде, побед и поражений в овертайме и в серии пенальти (буллитов),&lt;br /&gt;
-- забитых и пропущенных, а общее число ничьих чётно. Строка итогов пропускается:&lt;br /&gt;
-- при show_totals подмодуль стиля записывает в неё суммы (ppp.add_to_totals), и она учлась бы&lt;br /&gt;
-- дважды. Возвращает массив предупреждений, по одному на каждое несовпадение.&lt;br /&gt;
&lt;br /&gt;
-- Последний аргумент — функция [[Модуль:Yesno]] вызывающего модуля: здесь она нужна только&lt;br /&gt;
-- для no_totals_check, и подключать модуль ради неё незачем. Без неё no_totals_check не действует.&lt;br /&gt;
function tc.check(Args, team_list, ii_start, ii_end, yesno)&lt;br /&gt;
	local warn = {}&lt;br /&gt;
	-- no_totals_check=yes отключает сверку вручную. Он нужен для таблиц из неполных групп —&lt;br /&gt;
	-- например, из вторых и третьих мест каждой группы. Там команды между собой играли, и&lt;br /&gt;
	-- tc.is_cross_group такую таблицу не распознаёт, но показатели всё равно включают матчи&lt;br /&gt;
	-- против команд, которых в таблице нет, и суммы не сойдутся.&lt;br /&gt;
	if yesno and yesno(Args[&amp;#039;no_totals_check&amp;#039;] or &amp;#039;no&amp;#039;) then&lt;br /&gt;
		return warn&lt;br /&gt;
	end&lt;br /&gt;
	-- Таблица из команд разных групп по одной — см. tc.is_cross_group.&lt;br /&gt;
	if is_cross_group_selection(Args, team_list, ii_start, ii_end) then&lt;br /&gt;
		return warn&lt;br /&gt;
	end&lt;br /&gt;
	local wtotal, dtotal, ltotal = 0, 0, 0&lt;br /&gt;
	local hwtotal, hdtotal, hltotal = 0, 0, 0&lt;br /&gt;
	local awtotal, adtotal, altotal = 0, 0, 0&lt;br /&gt;
	local pkwtotal, pkltotal, otwtotal, otltotal = 0, 0, 0, 0&lt;br /&gt;
	local gftotal, gatotal = 0, 0&lt;br /&gt;
	for ii = ii_start, ii_end do&lt;br /&gt;
		local team_code_ii = team_list[ii]&lt;br /&gt;
		if team_code_ii ~= p_sub.total_row_code then&lt;br /&gt;
			-- PKwin и SOwin — два имени одного показателя (серия пенальти или буллитов);&lt;br /&gt;
			-- pf и pa — очки в неголевых видах спорта, они складываются с gf и ga.&lt;br /&gt;
			wtotal = wtotal + (tonumber(Args[&amp;#039;win_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			dtotal = dtotal + (tonumber(Args[&amp;#039;draw_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			ltotal = ltotal + (tonumber(Args[&amp;#039;loss_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			hwtotal = hwtotal + (tonumber(Args[&amp;#039;hwin_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			hdtotal = hdtotal + (tonumber(Args[&amp;#039;hdraw_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			hltotal = hltotal + (tonumber(Args[&amp;#039;hloss_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			awtotal = awtotal + (tonumber(Args[&amp;#039;awin_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			adtotal = adtotal + (tonumber(Args[&amp;#039;adraw_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			altotal = altotal + (tonumber(Args[&amp;#039;aloss_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			pkwtotal = pkwtotal + (tonumber(Args[&amp;#039;PKwin_&amp;#039; .. team_code_ii] or Args[&amp;#039;SOwin_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			pkltotal = pkltotal + (tonumber(Args[&amp;#039;PKloss_&amp;#039; .. team_code_ii] or Args[&amp;#039;SOloss_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			otwtotal = otwtotal + (tonumber(Args[&amp;#039;OTwin_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			otltotal = otltotal + (tonumber(Args[&amp;#039;OTloss_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			gftotal = gftotal + (tonumber(Args[&amp;#039;gf_&amp;#039; .. team_code_ii]) or 0) + (tonumber(Args[&amp;#039;pf_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
			gatotal = gatotal + (tonumber(Args[&amp;#039;ga_&amp;#039; .. team_code_ii]) or 0) + (tonumber(Args[&amp;#039;pa_&amp;#039; .. team_code_ii]) or 0)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if wtotal ~= ltotal then&lt;br /&gt;
		table.insert(warn, wtotal .. &amp;#039; общее число побед ≠ &amp;#039; .. ltotal .. &amp;#039; общему числу поражений&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if hwtotal ~= altotal then&lt;br /&gt;
		table.insert(warn, hwtotal .. &amp;#039; число побед дома ≠ &amp;#039; .. altotal .. &amp;#039; числу поражений на выезде&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if awtotal ~= hltotal then&lt;br /&gt;
		table.insert(warn, awtotal .. &amp;#039; число побед на выезде ≠ &amp;#039; .. hltotal .. &amp;#039; числу поражений дома&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if dtotal % 2 ~= 0 then&lt;br /&gt;
		table.insert(warn, dtotal .. &amp;#039; общее число ничьих — нечётное&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if hdtotal ~= adtotal then&lt;br /&gt;
		table.insert(warn, hdtotal .. &amp;#039; число ничьих дома ≠ &amp;#039; .. adtotal .. &amp;#039; числу ничьих на выезде&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if pkwtotal ~= pkltotal then&lt;br /&gt;
		table.insert(warn, pkwtotal .. &amp;#039; число побед в послематчевых пенальти ≠ &amp;#039; .. pkltotal .. &amp;#039; числу поражений в послематчевых пенальти&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if otwtotal ~= otltotal then&lt;br /&gt;
		table.insert(warn, otwtotal .. &amp;#039; число побед в овертайме ≠ &amp;#039; .. otltotal .. &amp;#039; числу поражений в овертайме&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if gftotal ~= gatotal then&lt;br /&gt;
		table.insert(warn, gftotal .. &amp;#039; число забитых мячей ≠ &amp;#039; .. gatotal .. &amp;#039; числу пропущенных мячей&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return warn&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Сверяет показатели каждой команды с результатами её матчей: match_ХХХ_УУУ, а при legs&lt;br /&gt;
-- больше 1 — matchL_ХХХ_УУУ для каждого круга L. Заявленные победы — сумма win_, hwin_,&lt;br /&gt;
-- awin_, OTwin_, PKwin_ и SOwin_; поражения — loss_, hloss_, aloss_, OTloss_, PKloss_&lt;br /&gt;
-- и SOloss_; ничьи — draw_, hdraw_ и adraw_; забитые и пропущенные — gf_ и ga_ вместе&lt;br /&gt;
-- с вариантами h и a и очковыми pf_ и pa_. Пары перебираются только среди команд с позиций&lt;br /&gt;
-- ii_start–ii_end, без строки итогов. У команды с исходами в овертайме или серии победы,&lt;br /&gt;
-- ничьи и поражения сверяются по границам, а не на равенство: такой матч записывается&lt;br /&gt;
-- и ничейным счётом, и счётом с победителем.&lt;br /&gt;
&lt;br /&gt;
-- Нужна, когда показатели и результаты матчей заданы одним набором параметров —&lt;br /&gt;
-- для шахматки внутри таблицы или под ней либо в шаблоне, который выводит ту же шахматку&lt;br /&gt;
-- отдельным вызовом с show_matches=only. Команда без единого разобранного счёта не сверяется:&lt;br /&gt;
-- это не ошибка, а признак того, что матчи для этой таблицы не заданы.&lt;br /&gt;
&lt;br /&gt;
-- Возвращает массив предупреждений и число тех из них, что относятся к командам&lt;br /&gt;
-- с полностью заполненной шахматкой: за них Sports table ставит категорию.&lt;br /&gt;
function tc.check_matches(Args, team_list, ii_start, ii_end)&lt;br /&gt;
	local warn, confirmed = {}, 0&lt;br /&gt;
	local derived = {}&lt;br /&gt;
	local function ensure(code)&lt;br /&gt;
		if not derived[code] then&lt;br /&gt;
			derived[code] = {win = 0, draw = 0, loss = 0, gf = 0, ga = 0}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Показатели по результатам матчей: каждая упорядоченная пара —&lt;br /&gt;
	-- хозяева и гости — в каждом круге.&lt;br /&gt;
	local legs = tonumber(Args[&amp;#039;legs&amp;#039;]) or 1&lt;br /&gt;
	for ii = ii_start, ii_end do&lt;br /&gt;
		local a_code = team_list[ii]&lt;br /&gt;
		if a_code and a_code ~= p_sub.total_row_code then&lt;br /&gt;
			for jj = ii_start, ii_end do&lt;br /&gt;
				local b_code = team_list[jj]&lt;br /&gt;
				if b_code and b_code ~= p_sub.total_row_code and a_code ~= b_code then&lt;br /&gt;
					for l = 1, legs do&lt;br /&gt;
						local m = (legs == 1) and &amp;#039;match_&amp;#039; or &amp;#039;match&amp;#039; .. l .. &amp;#039;_&amp;#039;&lt;br /&gt;
						local sa, sb = p_sub.score_pair(Args[m .. a_code .. &amp;#039;_&amp;#039; .. b_code])&lt;br /&gt;
						if sa and sb then&lt;br /&gt;
							ensure(a_code)&lt;br /&gt;
							ensure(b_code)&lt;br /&gt;
							derived[a_code].gf = derived[a_code].gf + sa&lt;br /&gt;
							derived[a_code].ga = derived[a_code].ga + sb&lt;br /&gt;
							derived[b_code].gf = derived[b_code].gf + sb&lt;br /&gt;
							derived[b_code].ga = derived[b_code].ga + sa&lt;br /&gt;
							if sa &amp;gt; sb then&lt;br /&gt;
								derived[a_code].win = derived[a_code].win + 1&lt;br /&gt;
								derived[b_code].loss = derived[b_code].loss + 1&lt;br /&gt;
							elseif sa &amp;lt; sb then&lt;br /&gt;
								derived[a_code].loss = derived[a_code].loss + 1&lt;br /&gt;
								derived[b_code].win = derived[b_code].win + 1&lt;br /&gt;
							else&lt;br /&gt;
								derived[a_code].draw = derived[a_code].draw + 1&lt;br /&gt;
								derived[b_code].draw = derived[b_code].draw + 1&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Сверка с заявленными показателями — у команд, для которых разобран хотя бы один счёт.&lt;br /&gt;
	for ii = ii_start, ii_end do&lt;br /&gt;
		local code = team_list[ii]&lt;br /&gt;
		if code and derived[code] then&lt;br /&gt;
			local d = derived[code]&lt;br /&gt;
			-- Победы и поражения в основное время отдельно от решённых в овертайме или серией:&lt;br /&gt;
			-- такой матч в шахматке записан либо ничейным счётом (серия пенальти после ничьей&lt;br /&gt;
			-- в футболе), либо счётом с победителем (гол в овертайме, буллит в хоккее).&lt;br /&gt;
			local regular_win = (tonumber(Args[&amp;#039;win_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;hwin_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;awin_&amp;#039; .. code]) or 0)&lt;br /&gt;
			local extra_win = (tonumber(Args[&amp;#039;OTwin_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;PKwin_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;SOwin_&amp;#039; .. code]) or 0)&lt;br /&gt;
			local declared_draw = (tonumber(Args[&amp;#039;draw_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;hdraw_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;adraw_&amp;#039; .. code]) or 0)&lt;br /&gt;
			local regular_loss = (tonumber(Args[&amp;#039;loss_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;hloss_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;aloss_&amp;#039; .. code]) or 0)&lt;br /&gt;
			local extra_loss = (tonumber(Args[&amp;#039;OTloss_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;PKloss_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;SOloss_&amp;#039; .. code]) or 0)&lt;br /&gt;
			local declared_win = regular_win + extra_win&lt;br /&gt;
			local declared_loss = regular_loss + extra_loss&lt;br /&gt;
			local declared_gf = (tonumber(Args[&amp;#039;gf_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;hgf_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;agf_&amp;#039; .. code]) or 0)&lt;br /&gt;
				+ (tonumber(Args[&amp;#039;pf_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;hpf_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;apf_&amp;#039; .. code]) or 0)&lt;br /&gt;
			local declared_ga = (tonumber(Args[&amp;#039;ga_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;hga_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;aga_&amp;#039; .. code]) or 0)&lt;br /&gt;
				+ (tonumber(Args[&amp;#039;pa_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;hpa_&amp;#039; .. code]) or 0) + (tonumber(Args[&amp;#039;apa_&amp;#039; .. code]) or 0)&lt;br /&gt;
&lt;br /&gt;
			-- Шахматка команды заполнена настолько же, насколько её показатели:&lt;br /&gt;
			-- число разобранных результатов равно заявленному числу матчей.&lt;br /&gt;
			-- Только расхождения таких команд входят во второе возвращаемое значение и дают категорию.&lt;br /&gt;
			-- Остальные — обычно отставание шахматки или показателей на тур в середине сезона,&lt;br /&gt;
			-- либо технический результат, в котором нет чисел. Их видно в предпросмотре,&lt;br /&gt;
			-- но в категорию они не идут: иначе она заполнилась бы шумом.&lt;br /&gt;
			local complete = (d.win + d.draw + d.loss) == (declared_win + declared_draw + declared_loss)&lt;br /&gt;
			local before = #warn&lt;br /&gt;
&lt;br /&gt;
			if extra_win + extra_loss == 0 then&lt;br /&gt;
				if declared_win ~= d.win then&lt;br /&gt;
					table.insert(warn, code .. &amp;#039;: заявлено побед — &amp;#039; .. declared_win .. &amp;#039;, по результатам матчей — &amp;#039; .. d.win)&lt;br /&gt;
				end&lt;br /&gt;
				if declared_draw ~= d.draw then&lt;br /&gt;
					table.insert(warn, code .. &amp;#039;: заявлено ничьих — &amp;#039; .. declared_draw .. &amp;#039;, по результатам матчей — &amp;#039; .. d.draw)&lt;br /&gt;
				end&lt;br /&gt;
				if declared_loss ~= d.loss then&lt;br /&gt;
					table.insert(warn, code .. &amp;#039;: заявлено поражений — &amp;#039; .. declared_loss .. &amp;#039;, по результатам матчей — &amp;#039; .. d.loss)&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				-- Матч, решённый в овертайме или серией, мог записаться и победой, и ничьей,&lt;br /&gt;
				-- поэтому сверяются границы: победы по счёту — не меньше побед в основное время&lt;br /&gt;
				-- и не больше всех побед; то же для поражений; ничьи по счёту — не меньше&lt;br /&gt;
				-- заявленных ничьих и не больше их суммы с исходами в овертайме и серии.&lt;br /&gt;
				if d.win &amp;lt; regular_win or d.win &amp;gt; declared_win then&lt;br /&gt;
					table.insert(warn, code .. &amp;#039;: заявлено побед — &amp;#039; .. regular_win .. &amp;#039; в основное время и &amp;#039;&lt;br /&gt;
						.. extra_win .. &amp;#039; в овертайме или серии, по результатам матчей — &amp;#039; .. d.win)&lt;br /&gt;
				end&lt;br /&gt;
				if d.loss &amp;lt; regular_loss or d.loss &amp;gt; declared_loss then&lt;br /&gt;
					table.insert(warn, code .. &amp;#039;: заявлено поражений — &amp;#039; .. regular_loss .. &amp;#039; в основное время и &amp;#039;&lt;br /&gt;
						.. extra_loss .. &amp;#039; в овертайме или серии, по результатам матчей — &amp;#039; .. d.loss)&lt;br /&gt;
				end&lt;br /&gt;
				if d.draw &amp;lt; declared_draw or d.draw &amp;gt; declared_draw + extra_win + extra_loss then&lt;br /&gt;
					table.insert(warn, code .. &amp;#039;: заявлено ничьих — &amp;#039; .. declared_draw .. &amp;#039; и исходов в овертайме или серии — &amp;#039;&lt;br /&gt;
						.. (extra_win + extra_loss) .. &amp;#039;, ничьих по результатам матчей — &amp;#039; .. d.draw)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if declared_gf ~= d.gf then&lt;br /&gt;
				table.insert(warn, code .. &amp;#039;: заявлено забито — &amp;#039; .. declared_gf .. &amp;#039;, по результатам матчей — &amp;#039; .. d.gf)&lt;br /&gt;
			end&lt;br /&gt;
			if declared_ga ~= d.ga then&lt;br /&gt;
				table.insert(warn, code .. &amp;#039;: заявлено пропущено — &amp;#039; .. declared_ga .. &amp;#039;, по результатам матчей — &amp;#039; .. d.ga)&lt;br /&gt;
			end&lt;br /&gt;
			if complete then&lt;br /&gt;
				confirmed = confirmed + (#warn - before)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return warn, confirmed&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return tc&lt;/div&gt;</summary>
		<author><name>wp&gt;ru.wikipedia</name></author>
	</entry>
</feed>