<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://bukvica.org/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidata%2FPlaces</id>
	<title>Модуль:Wikidata/Places - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://bukvica.org/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidata%2FPlaces"/>
	<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/Places&amp;action=history"/>
	<updated>2026-04-25T00:01:06Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/Places&amp;diff=238353&amp;oldid=prev</id>
		<title>Karaby: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/Places&amp;diff=238353&amp;oldid=prev"/>
		<updated>2025-07-27T15:36:11Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 15:36, 27 июля 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki:diff:1.41:old-238352:rev-238353 --&gt;
&lt;/table&gt;</summary>
		<author><name>Karaby</name></author>
	</entry>
	<entry>
		<id>https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/Places&amp;diff=238352&amp;oldid=prev</id>
		<title>Буквица&gt;Putnik: не выводить бывшие округа Парижа в геоцепочках</title>
		<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/Places&amp;diff=238352&amp;oldid=prev"/>
		<updated>2025-04-27T14:45:43Z</updated>

		<summary type="html">&lt;p&gt;не выводить бывшие округа Парижа в геоцепочках&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local categorizeByPlace = true;&lt;br /&gt;
&lt;br /&gt;
local WDS = require( &amp;#039;Module:WikidataSelectors&amp;#039; );&lt;br /&gt;
local Flags = require( &amp;#039;Module:Wikidata/Flags&amp;#039; );&lt;br /&gt;
local p = {&lt;br /&gt;
	config = {&lt;br /&gt;
		hideSameLabels = false,&lt;br /&gt;
		hidePartOfLabels = false,&lt;br /&gt;
		hideUnitsForCapitals = true,&lt;br /&gt;
		reverseOrder = false,&lt;br /&gt;
		catAmbiguousGeoChains = &amp;#039;Категория:Википедия:Страницы с неоднозначными геоцепочками&amp;#039;,&lt;br /&gt;
		catQualifierGeoChains = &amp;#039;Категория:Википедия:Страницы с геоцепочками в квалификаторах&amp;#039;,&lt;br /&gt;
		catLoopInGeoChains = &amp;#039;Категория:Википедия:Страницы с зацикливающимися геоцепочками&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
local function min( prev, next )&lt;br /&gt;
	if prev == nil then&lt;br /&gt;
		return next;&lt;br /&gt;
	elseif prev &amp;gt; next then&lt;br /&gt;
		return next;&lt;br /&gt;
	else&lt;br /&gt;
		return prev;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function max( prev, next )&lt;br /&gt;
	if prev == nil then&lt;br /&gt;
		return next;&lt;br /&gt;
	elseif prev &amp;lt; next then&lt;br /&gt;
		return next;&lt;br /&gt;
	else&lt;br /&gt;
		return prev;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getParentsInBoundariesSnak( context, entityId, boundaries, propertyId )&lt;br /&gt;
	if not entityId then error(&amp;#039;entityId must be specified&amp;#039;); end&lt;br /&gt;
	if type(entityId) ~= &amp;#039;string&amp;#039; then error(&amp;#039;entityId must be string&amp;#039;); end&lt;br /&gt;
	if not boundaries then error(&amp;#039;boundaries must be specified&amp;#039;); end&lt;br /&gt;
	if type(boundaries) ~= &amp;#039;table&amp;#039; then error(&amp;#039;boundaries must be table&amp;#039;); end&lt;br /&gt;
&lt;br /&gt;
	local results = context.getPropertyInBoundaries( context, entityId, boundaries, { propertyId } )&lt;br /&gt;
&lt;br /&gt;
	for r, result in pairs( results ) do&lt;br /&gt;
		if result.snaktype ~= &amp;#039;value&amp;#039; then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		local resultId = result.datavalue.value.id&lt;br /&gt;
		if resultId == entityId then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return results&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local unions = { &lt;br /&gt;
	Q1140229 = true, -- political union&lt;br /&gt;
	Q3623811 = true, -- Экономический союз&lt;br /&gt;
	Q4120211 = true -- региональная организация&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local countries = {&lt;br /&gt;
	Q6256 = true, -- страна&lt;br /&gt;
	Q7275 = true, -- государство&lt;br /&gt;
	Q3024240 = true, -- историческое государство&lt;br /&gt;
	Q3624078 = true -- суверенное государство&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function isSkipTopLevel( entity )&lt;br /&gt;
	local isCountry = false;&lt;br /&gt;
	local isUnion = false;&lt;br /&gt;
	if entity and&lt;br /&gt;
		entity.claims and&lt;br /&gt;
		entity.claims.P31&lt;br /&gt;
	then&lt;br /&gt;
		for c, claim in pairs( entity.claims.P31 ) do&lt;br /&gt;
			if claim and&lt;br /&gt;
				claim.mainsnak and&lt;br /&gt;
				claim.mainsnak.datavalue and&lt;br /&gt;
				claim.mainsnak.datavalue.value and&lt;br /&gt;
				claim.mainsnak.datavalue.value.id&lt;br /&gt;
			then&lt;br /&gt;
				local typeId = claim.mainsnak.datavalue.value.id;&lt;br /&gt;
				isCountry = isCountry or countries[ typeId ];&lt;br /&gt;
				isUnion = isUnion or unions[ typeId ];&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return isUnion and not isCountry;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function isPartOfNext( prevLabel, nextLabel )&lt;br /&gt;
	return ( mw.ustring.len( prevLabel ) &amp;gt; mw.ustring.len( nextLabel ) )&lt;br /&gt;
		and ( mw.ustring.sub( prevLabel, mw.ustring.len( prevLabel ) - mw.ustring.len( nextLabel ) + 1 ) == nextLabel );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function concatChain( context, options, chain )&lt;br /&gt;
	if p.config.reverseOrder then&lt;br /&gt;
		table.sort( chain, function( a, b ) return a &amp;gt; b end )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat( chain, &amp;#039;, &amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function formatPlaceFromQualifiers( context, options, qualifiers, entriesToLookupCategory )&lt;br /&gt;
	local allQualifiers = {}&lt;br /&gt;
&lt;br /&gt;
	-- parent divisions&lt;br /&gt;
	if qualifiers.P131 then&lt;br /&gt;
		for i, qualifier in ipairs( qualifiers.P131 ) do&lt;br /&gt;
			if qualifier.datavalue then&lt;br /&gt;
				table.insert( allQualifiers, qualifier )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- country&lt;br /&gt;
	if qualifiers.P17 then&lt;br /&gt;
		for i, qualifier in ipairs( qualifiers.P17 ) do&lt;br /&gt;
			if qualifier.datavalue then&lt;br /&gt;
				table.insert( allQualifiers, qualifier )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if #allQualifiers &amp;gt; 0 then&lt;br /&gt;
		local chain = {}&lt;br /&gt;
		if #allQualifiers then&lt;br /&gt;
			for i, qualifier in ipairs( allQualifiers ) do&lt;br /&gt;
				if qualifier.datavalue then&lt;br /&gt;
					local parentOptions = context.cloneOptions( options )&lt;br /&gt;
					local qualifierEntityId = qualifier.datavalue.value.id&lt;br /&gt;
					parentOptions[&amp;#039;text&amp;#039;] = getLabel( context, qualifierEntityId, boundaries )&lt;br /&gt;
					local link = context.formatSnak( parentOptions, qualifier )&lt;br /&gt;
&lt;br /&gt;
					table.insert( chain, link )&lt;br /&gt;
&lt;br /&gt;
					insertFromSnak( qualifier, entriesToLookupCategory )&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
		local result = &amp;#039;&amp;#039;&lt;br /&gt;
		if #chain then&lt;br /&gt;
			result = concatChain( context, options, chain )&lt;br /&gt;
			if p.config and p.config.catQualifierGeoChains then&lt;br /&gt;
				result = result .. &amp;#039;[[&amp;#039; .. p.config.catQualifierGeoChains .. &amp;#039;]]&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Property:P19, Property:P20, Property:P119&lt;br /&gt;
function p.formatPlaceWithQualifiers( context, options, statement )&lt;br /&gt;
	local property = mw.ustring.upper( options.property );&lt;br /&gt;
&lt;br /&gt;
	local actualDateBoundariesProperties = nil;&lt;br /&gt;
	if property == &amp;#039;P19&amp;#039; then&lt;br /&gt;
		actualDateBoundariesProperties = {&amp;#039;P569&amp;#039;,&amp;#039;P570&amp;#039;}&lt;br /&gt;
	elseif property == &amp;#039;P20&amp;#039; then&lt;br /&gt;
		actualDateBoundariesProperties = {&amp;#039;P570&amp;#039;,&amp;#039;P569&amp;#039;}&lt;br /&gt;
	elseif property == &amp;#039;P119&amp;#039; then&lt;br /&gt;
		actualDateBoundariesProperties = {&amp;#039;P570&amp;#039;,&amp;#039;P569&amp;#039;}&lt;br /&gt;
	elseif property == &amp;#039;P131&amp;#039; or property == &amp;#039;P159&amp;#039; then&lt;br /&gt;
		actualDateBoundariesProperties = {&amp;#039;P576&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local boundaries = nil;&lt;br /&gt;
	if actualDateBoundariesProperties ~= nil then&lt;br /&gt;
		boundaries = context.getTimeBoundariesFromProperties( context, actualDateBoundariesProperties );&lt;br /&gt;
		if (boundaries == nil) and (property == &amp;#039;P131&amp;#039; or property == &amp;#039;P159&amp;#039;) then&lt;br /&gt;
			boundaries = {os.time() * 1000, os.time() * 1000};&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local entriesToLookupCategory = {};&lt;br /&gt;
&lt;br /&gt;
	local circumstances = context.getSourcingCircumstances( statement )&lt;br /&gt;
	local result = &amp;#039;&amp;#039;&lt;br /&gt;
	local baseResult = context.formatSnak( options, statement.mainsnak, circumstances )&lt;br /&gt;
	local categories = &amp;#039;&amp;#039;&lt;br /&gt;
	if not baseResult then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	insertFromSnak( statement.mainsnak, entriesToLookupCategory )&lt;br /&gt;
&lt;br /&gt;
	local hasAdditionalQualifiers = false&lt;br /&gt;
	if statement.qualifiers then&lt;br /&gt;
		result = formatPlaceFromQualifiers( context, options, statement.qualifiers, entriesToLookupCategory )&lt;br /&gt;
		if result ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			hasAdditionalQualifiers = true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if statement.mainsnak and&lt;br /&gt;
		statement.mainsnak.datavalue and&lt;br /&gt;
		statement.mainsnak.datavalue.value and&lt;br /&gt;
		statement.mainsnak.datavalue.value.id&lt;br /&gt;
	then&lt;br /&gt;
		local entityId = statement.mainsnak.datavalue.value.id;&lt;br /&gt;
		local parentSnaks = { statement.mainsnak };&lt;br /&gt;
		local parentEntityIds = { entityId };&lt;br /&gt;
&lt;br /&gt;
		if actualDateBoundariesProperties ~= nil then&lt;br /&gt;
			local filterCapitalOf = {&lt;br /&gt;
				[ entityId ] = context.getPropertyInBoundaries( context, entityId, boundaries, {&amp;#039;P1376&amp;#039;} )&lt;br /&gt;
			};&lt;br /&gt;
			if boundaries then&lt;br /&gt;
				local entityOptions = context.cloneOptions( options );&lt;br /&gt;
				entityOptions[&amp;#039;text&amp;#039;] = getLabel( context, entityId, boundaries );&lt;br /&gt;
				baseResult = context.formatSnak( entityOptions, statement.mainsnak, circumstances );&lt;br /&gt;
&lt;br /&gt;
				local parentId = entityId&lt;br /&gt;
				local parentIsCountry = false&lt;br /&gt;
				local isAmbiguous = false&lt;br /&gt;
				while parentId ~= nil do&lt;br /&gt;
					-- get parent&lt;br /&gt;
					local propertyId = parentIsCountry and &amp;#039;P17&amp;#039; or &amp;#039;P131&amp;#039; -- country / located in&lt;br /&gt;
					local newParentSnaks = getParentsInBoundariesSnak( context, parentId, boundaries, propertyId )&lt;br /&gt;
&lt;br /&gt;
					if not newParentSnaks or #newParentSnaks == 0 then&lt;br /&gt;
						if not parentIsCountry then&lt;br /&gt;
							parentIsCountry = true&lt;br /&gt;
						else&lt;br /&gt;
							parentId = nil&lt;br /&gt;
						end&lt;br /&gt;
					elseif #newParentSnaks == 1 then&lt;br /&gt;
						local parentSnak = newParentSnaks[ 1 ]&lt;br /&gt;
						parentId = parentSnak.datavalue.value.id&lt;br /&gt;
						&lt;br /&gt;
						local hasLoop = false&lt;br /&gt;
						for _, parentEntityId in pairs(parentEntityIds) do&lt;br /&gt;
							if parentEntityId == parentId then&lt;br /&gt;
								hasLoop = true&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						if hasLoop then&lt;br /&gt;
							if p.config and p.config.catLoopInGeoChains then&lt;br /&gt;
								categories = categories .. &amp;#039;[[&amp;#039; .. p.config.catLoopInGeoChains .. &amp;#039;]]&amp;#039;;&lt;br /&gt;
							end&lt;br /&gt;
							break -- while parentId ~= nil do&lt;br /&gt;
						end&lt;br /&gt;
&lt;br /&gt;
						table.insert( parentSnaks, parentSnak )&lt;br /&gt;
						table.insert( parentEntityIds, parentId )&lt;br /&gt;
						filterCapitalOf[ parentId ] = context.getPropertyInBoundaries( context, parentId, boundaries, { &amp;#039;P1376&amp;#039; } );&lt;br /&gt;
						parentIsCountry = false&lt;br /&gt;
					else&lt;br /&gt;
						isAmbiguous = true&lt;br /&gt;
&lt;br /&gt;
						if not parentIsCountry then&lt;br /&gt;
							parentIsCountry = true&lt;br /&gt;
						else&lt;br /&gt;
							parentId = nil&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if isAmbiguous and p.config and p.config.catAmbiguousGeoChains then&lt;br /&gt;
					local countryId = parentEntityIds[ #parentEntityIds ]&lt;br /&gt;
					local countryName = getLabel( context, countryId, boundaries ) or countryId&lt;br /&gt;
					local countryCategoryName = p.config.catAmbiguousGeoChains .. &amp;#039; (&amp;#039; .. countryName .. &amp;#039;)&amp;#039;&lt;br /&gt;
					local categoryTitle = mw.title.new( countryCategoryName )&lt;br /&gt;
					if categoryTitle.exists then&lt;br /&gt;
						categories = categories .. &amp;#039;[[&amp;#039; .. countryCategoryName .. &amp;#039;]]&amp;#039;&lt;br /&gt;
					else&lt;br /&gt;
						categories = categories .. &amp;#039;[[&amp;#039; .. p.config.catAmbiguousGeoChains .. &amp;#039;]]&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if not hasAdditionalQualifiers then&lt;br /&gt;
					for i = 2, #parentSnaks, 1 do&lt;br /&gt;
						local parentSnak = parentSnaks[ i ];&lt;br /&gt;
						insertFromSnak( parentSnak, entriesToLookupCategory )&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- do not output similar countries like &amp;quot;Denmark, the Kingdom of Denmark&amp;quot;&lt;br /&gt;
				local simularCountries = {&lt;br /&gt;
					[&amp;#039;Q41304&amp;#039;] = &amp;#039;Q1206012&amp;#039;, -- Weimar Republic / German Reich&lt;br /&gt;
					[&amp;#039;Q7318&amp;#039;] = &amp;#039;Q1206012&amp;#039;, -- Weimar Republic / Nazi Germany&lt;br /&gt;
					[&amp;#039;Q35&amp;#039;] = &amp;#039;Q756617&amp;#039;, -- Denmark / Danish Realm&lt;br /&gt;
					[&amp;#039;Q55&amp;#039;] = &amp;#039;Q29999&amp;#039;, -- Netherlands / Kingdom of the Netherlands&lt;br /&gt;
					[&amp;#039;Q32081&amp;#039;] = &amp;#039;Q865&amp;#039;, -- Taiwan Province / Taiwan&lt;br /&gt;
				}&lt;br /&gt;
				if (#parentSnaks &amp;gt; 1) then&lt;br /&gt;
					for smallerCountryId, largerCountryId in pairs( simularCountries ) do&lt;br /&gt;
						if parentSnaks[ #parentSnaks ].datavalue.value.id == largerCountryId&lt;br /&gt;
							and parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == smallerCountryId&lt;br /&gt;
						then&lt;br /&gt;
							table.remove( parentSnaks, #parentSnaks );&lt;br /&gt;
							table.remove( parentEntityIds, #parentEntityIds );&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- optimization for capital regions&lt;br /&gt;
				if (#parentSnaks &amp;gt; 3) then&lt;br /&gt;
					if parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == &amp;#039;Q23939248&amp;#039; --Greater London, Greater London&lt;br /&gt;
						and parentSnaks[ #parentSnaks - 3 ].datavalue.value.id == &amp;#039;Q23306&amp;#039;&lt;br /&gt;
					then&lt;br /&gt;
						table.remove( parentSnaks, #parentSnaks - 2 );&lt;br /&gt;
						table.remove( parentEntityIds, #parentEntityIds - 2 );&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if (#parentSnaks &amp;gt; 2) then&lt;br /&gt;
					if parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == &amp;#039;Q240&amp;#039; --Brussels-Capital, Brussels&lt;br /&gt;
						and parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == &amp;#039;Q90870&amp;#039;&lt;br /&gt;
					then&lt;br /&gt;
						table.remove( parentSnaks, #parentSnaks - 2 );&lt;br /&gt;
						table.remove( parentEntityIds, #parentEntityIds - 2 );&lt;br /&gt;
					elseif parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == &amp;#039;Q1490&amp;#039; --Tokyo, Tokyo&lt;br /&gt;
						and parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == &amp;#039;Q7473516&amp;#039;&lt;br /&gt;
					then&lt;br /&gt;
						baseResult = &amp;#039;&amp;#039;;&lt;br /&gt;
					elseif parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == &amp;#039;Q633490&amp;#039; --Tadjik districts of Republican Subordination&lt;br /&gt;
					then&lt;br /&gt;
						table.remove( parentSnaks, #parentSnaks - 1 );&lt;br /&gt;
						table.remove( parentEntityIds, #parentEntityIds - 1 );&lt;br /&gt;
					elseif parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == &amp;#039;Q633490&amp;#039; --Tadjik SSR districts of Republican Subordination&lt;br /&gt;
					then&lt;br /&gt;
						table.remove( parentSnaks, #parentSnaks - 2 );&lt;br /&gt;
						table.remove( parentEntityIds, #parentEntityIds - 2 );&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- do not output (maternity) hospitals, houses and streets but do it for manor and English country houses&lt;br /&gt;
				local unignoredTypes = {&lt;br /&gt;
					&amp;#039;Q879050&amp;#039;, -- manor house&lt;br /&gt;
					&amp;#039;Q1343246&amp;#039;, -- English country house&lt;br /&gt;
				}&lt;br /&gt;
				local ignoredTypes = {&lt;br /&gt;
					&amp;#039;Q3947&amp;#039;, -- house&lt;br /&gt;
					&amp;#039;Q16917&amp;#039;, -- hospital&lt;br /&gt;
					&amp;#039;Q34442&amp;#039;, -- road&lt;br /&gt;
					&amp;#039;Q79007&amp;#039;, -- street&lt;br /&gt;
					&amp;#039;Q174782&amp;#039;, -- square&lt;br /&gt;
					&amp;#039;Q958822&amp;#039;, -- maternity hospital&lt;br /&gt;
					&amp;#039;Q1059324&amp;#039;, -- university hospital&lt;br /&gt;
					&amp;#039;Q2087181&amp;#039;, -- historic house museum&lt;br /&gt;
					&amp;#039;Q2845944&amp;#039;, -- former arrondissement of Paris&lt;br /&gt;
					&amp;#039;Q18629950&amp;#039;, -- private clinic&lt;br /&gt;
					&amp;#039;Q64578911&amp;#039;, -- former hospital&lt;br /&gt;
				}&lt;br /&gt;
				if (#parentSnaks &amp;gt; 1) then&lt;br /&gt;
					local p31 = mw.wikibase.getAllStatements( parentEntityIds[ 1 ], &amp;#039;P31&amp;#039; );&lt;br /&gt;
					local doignore = true;&lt;br /&gt;
					for _, iOf in ipairs( p31 ) do&lt;br /&gt;
						for _, unignoredTypeId in ipairs( unignoredTypes ) do&lt;br /&gt;
							if ( iOf.mainsnak.datavalue and iOf.mainsnak.datavalue.value.id == unignoredTypeId ) then&lt;br /&gt;
								doignore = false;&lt;br /&gt;
								unignoredTypes = {};&lt;br /&gt;
								ignoredTypes = {};&lt;br /&gt;
								break;&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					if (doignore) then&lt;br /&gt;
						for _, iOf in ipairs( p31 ) do&lt;br /&gt;
							for _, ignoredTypeId in ipairs( ignoredTypes ) do&lt;br /&gt;
								if ( iOf.mainsnak.datavalue and iOf.mainsnak.datavalue.value.id == ignoredTypeId ) then&lt;br /&gt;
									baseResult = &amp;#039;&amp;#039;;&lt;br /&gt;
									unignoredTypes = {};&lt;br /&gt;
									ignoredTypes = {};&lt;br /&gt;
									break;&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;
				do&lt;br /&gt;
					local capofstate = false;&lt;br /&gt;
					local i = #parentSnaks;&lt;br /&gt;
					while i &amp;gt; 1 do&lt;br /&gt;
						local prevEntityId = parentEntityIds[ i - 1 ];&lt;br /&gt;
						-- TODO: use English labels, if there is no current language labels&lt;br /&gt;
						local prevLabel = getLabel( context, prevEntityId, boundaries ) or &amp;#039;&amp;#039;;&lt;br /&gt;
						local nextEntityId = parentEntityIds[ i ];&lt;br /&gt;
						local nextLabel = getLabel( context, nextEntityId, boundaries ) or &amp;#039;&amp;#039;;&lt;br /&gt;
						if p.config and p.config.hideSameLabels == true and prevLabel == nextLabel then&lt;br /&gt;
							-- do not output same label twice (NY, NY, USA)&lt;br /&gt;
							table.remove( parentSnaks, i );&lt;br /&gt;
							table.remove( parentEntityIds, i );&lt;br /&gt;
						elseif p.config and p.config.hidePartOfLabels == true and isPartOfNext( prevLabel, &amp;#039; &amp;#039; .. nextLabel ) then&lt;br /&gt;
							-- do not output same label if it&amp;#039;s part of previos&lt;br /&gt;
							table.remove( parentSnaks, i - 1 );&lt;br /&gt;
							table.remove( parentEntityIds, i - 1 );&lt;br /&gt;
						elseif p.config and p.config.hideUnitsForCapitals == true then&lt;br /&gt;
							-- do not ouput items whose capital is the first item&lt;br /&gt;
							local capitalId = nil;&lt;br /&gt;
							for _capitalId, capitalSnaks in pairs( filterCapitalOf ) do&lt;br /&gt;
								if #capitalSnaks &amp;gt; 0 then&lt;br /&gt;
									for __, capitalSnak in pairs( capitalSnaks ) do&lt;br /&gt;
										if	capitalSnak.datavalue and &lt;br /&gt;
											parentSnaks[ i ].datavalue.value.id == capitalSnak.datavalue.value.id then&lt;br /&gt;
											capitalId = _capitalId;&lt;br /&gt;
											if (i == #parentSnaks) then&lt;br /&gt;
												capofstate = true;&lt;br /&gt;
											end&lt;br /&gt;
											break;&lt;br /&gt;
										end&lt;br /&gt;
									end&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
							if capitalId ~= nil then&lt;br /&gt;
								if i == #parentSnaks then&lt;br /&gt;
									i = i - 1;&lt;br /&gt;
								end&lt;br /&gt;
								-- always ouput constituent countries like England or Russian SFSR&lt;br /&gt;
								if (i == (#parentSnaks-1)) and (capofstate == false) then&lt;br /&gt;
									local p31 = mw.wikibase.getAllStatements(parentEntityIds[ i ], &amp;#039;P31&amp;#039;);&lt;br /&gt;
										for _, iOf in pairs (p31) do&lt;br /&gt;
											if (iOf.mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 236036) or (iOf.mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 3336843) or (iOf.mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 12959600) or (iOf.mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 56219758) or (iOf.mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 15304003) or (iOf.mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 66724388) then&lt;br /&gt;
												i = i - 1;&lt;br /&gt;
										end&lt;br /&gt;
									end&lt;br /&gt;
								end&lt;br /&gt;
								while i &amp;gt; 1 and parentEntityIds[ i ] ~= capitalId do&lt;br /&gt;
									table.remove( parentSnaks, i );&lt;br /&gt;
									table.remove( parentEntityIds, i );&lt;br /&gt;
									i = i - 1;&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						i = i - 1;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if isSkipTopLevel( parentEntityIds[ #parentEntityIds ] ) then&lt;br /&gt;
					table.remove( parentSnaks, #parentEntityIds );&lt;br /&gt;
					table.remove( parentEntityIds, #parentEntityIds );&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if not hasAdditionalQualifiers then&lt;br /&gt;
					for i = 2, #parentSnaks, 1 do&lt;br /&gt;
						local parentSnak = parentSnaks[ i ];&lt;br /&gt;
&lt;br /&gt;
						local parentOptions = context.cloneOptions( options );&lt;br /&gt;
						parentOptions[&amp;#039;text&amp;#039;] = getLabel( context, parentEntityIds[ i ], boundaries );&lt;br /&gt;
&lt;br /&gt;
						local comma = &amp;#039;&amp;#039;&lt;br /&gt;
						local subResult = context.formatSnak( parentOptions, parentSnak )&lt;br /&gt;
						if subResult ~= &amp;#039;&amp;#039; and result ~= &amp;#039;&amp;#039; then&lt;br /&gt;
							comma = &amp;#039;, &amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
&lt;br /&gt;
						if i == #parentSnaks and parentEntityIds[ i ] == &amp;#039;Q183&amp;#039; then&lt;br /&gt;
							if string.sub(subResult,-34) == &amp;#039;[[Германия|ФРГ]]&amp;lt;/span&amp;gt;&amp;#039; then&lt;br /&gt;
								subResult = &amp;#039;[[Федеративная Республика Германии (1949—1990)|ФРГ]]&amp;#039;&lt;br /&gt;
							else&lt;br /&gt;
								subResult = subResult&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
&lt;br /&gt;
						if p.config.reverseOrder then&lt;br /&gt;
							result = subResult .. comma .. result&lt;br /&gt;
						else&lt;br /&gt;
							result = result .. comma .. subResult&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;
	local comma = &amp;#039;&amp;#039;&lt;br /&gt;
	if baseResult ~= &amp;#039;&amp;#039; and result ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		comma = &amp;#039;, &amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if options[ &amp;#039;thisLocationOnly&amp;#039; ] then&lt;br /&gt;
		result = baseResult&lt;br /&gt;
	elseif p.config.reverseOrder then&lt;br /&gt;
		result = result .. comma .. baseResult&lt;br /&gt;
	else&lt;br /&gt;
		result = baseResult .. comma .. result&lt;br /&gt;
	end&lt;br /&gt;
	if options.references then&lt;br /&gt;
		result = result .. context.formatRefs( options, statement )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not options.nocat and options.nocat ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if categorizeByPlace then&lt;br /&gt;
			if property == &amp;#039;P19&amp;#039; then categories = categories .. getCategory( &amp;#039;P1464&amp;#039;, entriesToLookupCategory ); end&lt;br /&gt;
			if property == &amp;#039;P20&amp;#039; then categories = categories .. getCategory( &amp;#039;P1465&amp;#039;, entriesToLookupCategory ); end&lt;br /&gt;
			if property == &amp;#039;P119&amp;#039; then categories = categories .. getCategory( &amp;#039;P1791&amp;#039;, entriesToLookupCategory ); end&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. categories&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- append entity id from snak to result&lt;br /&gt;
function insertFromSnak( snak, result )&lt;br /&gt;
	if not categorizeByPlace then&lt;br /&gt;
		return;&lt;br /&gt;
	end&lt;br /&gt;
	if snak and&lt;br /&gt;
		snak.datavalue and&lt;br /&gt;
		snak.datavalue.type == &amp;#039;wikibase-entityid&amp;#039; and&lt;br /&gt;
		snak.datavalue.value and&lt;br /&gt;
		snak.datavalue.value[ &amp;#039;entity-type&amp;#039; ] == &amp;#039;item&amp;#039;&lt;br /&gt;
	then&lt;br /&gt;
		table.insert( result, snak.datavalue.value.id );&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getCategory( propertyId, entriesToLookupCategoryFor )&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
		for _, placeId in pairs( entriesToLookupCategoryFor ) do&lt;br /&gt;
			local claims = mw.wikibase.getBestStatements(placeId, propertyId);&lt;br /&gt;
	&lt;br /&gt;
			if claims then&lt;br /&gt;
				for _, claim in pairs( claims ) do&lt;br /&gt;
					if claim.mainsnak and&lt;br /&gt;
						claim.mainsnak and&lt;br /&gt;
						claim.mainsnak.datavalue and&lt;br /&gt;
						claim.mainsnak.datavalue.type == &amp;#039;wikibase-entityid&amp;#039;&lt;br /&gt;
					then&lt;br /&gt;
						local catEntityId = claim.mainsnak.datavalue.value.id;&lt;br /&gt;
						local catSitelink = mw.wikibase.getSitelink(catEntityId);&lt;br /&gt;
						if (catSitelink) then&lt;br /&gt;
							return &amp;#039;[[&amp;#039; .. catSitelink .. &amp;#039;]]&amp;#039;;&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;
	return &amp;#039;&amp;#039;;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local historicNamesProperties = { &amp;#039;P1813&amp;#039;, &amp;#039;P1448&amp;#039;, &amp;#039;P1705&amp;#039; };&lt;br /&gt;
&lt;br /&gt;
local langCode = mw.language.getContentLanguage():getCode();&lt;br /&gt;
local historicNamesPropertySelectors = {&lt;br /&gt;
		P1813 = &amp;#039;P1813[language:&amp;#039; .. langCode .. &amp;#039;][!P3831,P3831:Q105690470]&amp;#039;,&lt;br /&gt;
		P1448 = &amp;#039;P1448[language:&amp;#039; .. langCode .. &amp;#039;][!P3831,P3831:Q105690470]&amp;#039;,&lt;br /&gt;
		P1705 = &amp;#039;P1705[language:&amp;#039; .. langCode .. &amp;#039;][!P3831,P3831:Q105690470]&amp;#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
-- get current of historic name of place&lt;br /&gt;
function getLabel( context, entityId, boundaries )&lt;br /&gt;
	return context.getLabelWithLang( context, {}, entityId, boundaries, historicNamesProperties, historicNamesPropertySelectors )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.getLabel = getLabel;&lt;br /&gt;
&lt;br /&gt;
local function calculateEndDateTimestamp( context, options, statement )&lt;br /&gt;
	if not context then error( &amp;#039;context not specified&amp;#039; ) end;&lt;br /&gt;
	if not options then error( &amp;#039;options not specified&amp;#039; ) end;&lt;br /&gt;
	if not options.entity then error( &amp;#039;options.entity missing&amp;#039; ) end;&lt;br /&gt;
	if not statement then error( &amp;#039;statement not specified&amp;#039; ) end;&lt;br /&gt;
&lt;br /&gt;
	if statement.qualifiers and statement.qualifiers.P582 then&lt;br /&gt;
		for i, qualifier in ipairs( statement.qualifiers.P582 ) do&lt;br /&gt;
			local parsedTime = context.parseTimeFromSnak( qualifier );&lt;br /&gt;
			if parsedTime then&lt;br /&gt;
				return parsedTime;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- check death day... do we have it at all?&lt;br /&gt;
	for h, propertyId in pairs( { &amp;quot;P570&amp;quot;, &amp;quot;P577&amp;quot;, &amp;quot;P576&amp;quot; } ) do&lt;br /&gt;
		local dateClaims = context.selectClaims( options, propertyId );&lt;br /&gt;
		if dateClaims then&lt;br /&gt;
			for i, statement in ipairs( dateClaims ) do&lt;br /&gt;
				local parsedTime = context.parseTimeFromSnak( statement.mainsnak );&lt;br /&gt;
				if parsedTime then&lt;br /&gt;
					return parsedTime;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- TODO: check other &amp;quot;end&amp;quot; properties&lt;br /&gt;
&lt;br /&gt;
	-- no death day&lt;br /&gt;
	return os.time() * 1000;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function deleteTwinAncestors( countryEntityId, propertyId, entityId ) --do not display countries which have twin ancestors&lt;br /&gt;
	local badTwins&lt;br /&gt;
	if ( countryEntityId == &amp;#039;Q174193&amp;#039; ) then				--Great Britain and Ireland&lt;br /&gt;
		badTwins = {&amp;#039;Q145&amp;#039;}									--Great Brirani &amp;amp; NI&lt;br /&gt;
    elseif ( countryEntityId == &amp;#039;Q161885&amp;#039; ) then			--Great Britain&lt;br /&gt;
		badTwins = {&amp;#039;Q174193&amp;#039;}								--Great Britain and Ireland&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q43287&amp;#039; ) then				--German Impire&lt;br /&gt;
		badTwins = {&amp;#039;Q41304&amp;#039;, &amp;#039;Q7318&amp;#039;, &amp;#039;Q2415901&amp;#039;, &amp;#039;Q183&amp;#039;}	--Weimar Republic or Nazi Germany or Allied-occupied Germany or Germany&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q41304&amp;#039; ) then				--Weimar Republic&lt;br /&gt;
		badTwins = {&amp;#039;Q7318&amp;#039;, &amp;#039;Q2415901&amp;#039;, &amp;#039;Q183&amp;#039;}			--Nazi Germany or Allied-occupied Germany or Germany&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q7318&amp;#039; ) then				--Nazi Germany&lt;br /&gt;
		badTwins = {&amp;#039;Q2415901&amp;#039;, &amp;#039;Q183&amp;#039;}						--Allied-occupied Germany or Germany&lt;br /&gt;
    elseif ( countryEntityId == &amp;#039;Q2415901&amp;#039; ) then			--Allied-occupied Germany&lt;br /&gt;
		badTwins = {&amp;#039;Q183&amp;#039;}									--Germany&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q696908&amp;#039; ) then			--Kingdom of Poland&lt;br /&gt;
		badTwins = {&amp;#039;Q207272&amp;#039;, &amp;#039;Q211274&amp;#039;, &amp;#039;Q36&amp;#039;}			--Second Polish Republic or Polish People&amp;#039;s Republic or Poland&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q207272&amp;#039; ) then			--Second Polish Republic&lt;br /&gt;
		badTwins = {&amp;#039;Q211274&amp;#039;, &amp;#039;Q36&amp;#039;}						--Polish People&amp;#039;s Republic or Poland&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q211274&amp;#039; ) then			--Polish People&amp;#039;s Republic&lt;br /&gt;
		badTwins = {&amp;#039;Q36&amp;#039;}									--Poland&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q203493&amp;#039; ) then			--Kingdom of Romania&lt;br /&gt;
		badTwins = {&amp;#039;Q842794&amp;#039;, &amp;#039;Q218&amp;#039;}						--Socialist Republic of Romania or Romania&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q842794&amp;#039; ) then			--Socialist Republic of Romania&lt;br /&gt;
		badTwins = {&amp;#039;Q218&amp;#039;}									--Romania&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q838261&amp;#039; ) then			--FR of Yugoslavia&lt;br /&gt;
		badTwins = {&amp;#039;Q37024&amp;#039;}								--Serbia &amp;amp; Montenegro&lt;br /&gt;
	elseif ( countryEntityId == &amp;#039;Q7779&amp;#039; ) then				--Commonwealth of Independent States&lt;br /&gt;
		return false								&lt;br /&gt;
	else&lt;br /&gt;
		return true;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local listforcheck&lt;br /&gt;
	if propertyId == &amp;#039;P1532&amp;#039; then&lt;br /&gt;
		listforcheck = mw.wikibase.getAllStatements( entityId, propertyId );&lt;br /&gt;
	else&lt;br /&gt;
		listforcheck = mw.wikibase.getBestStatements( entityId, propertyId );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for _, claim in pairs( listforcheck ) do&lt;br /&gt;
		if ( claim and claim.mainsnak&lt;br /&gt;
			and claim.mainsnak.datavalue&lt;br /&gt;
			and claim.mainsnak.datavalue.value&lt;br /&gt;
			and claim.mainsnak.datavalue.value.id ) then&lt;br /&gt;
			local actualId = claim.mainsnak.datavalue.value.id;&lt;br /&gt;
			for index, value in ipairs(badTwins) do&lt;br /&gt;
				if ( value == actualId ) then&lt;br /&gt;
            		return false;&lt;br /&gt;
        		end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return true; &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatCountryClaimWithFlag( context, options, statement )&lt;br /&gt;
	if not context then error(&amp;#039;context not specified&amp;#039;) end;&lt;br /&gt;
	if not options then error(&amp;#039;options not specified&amp;#039;) end;&lt;br /&gt;
	if not options.entity then error(&amp;#039;options.entity is missing&amp;#039;) end;&lt;br /&gt;
	if not statement then error(&amp;#039;statement not specified&amp;#039;) end;&lt;br /&gt;
&lt;br /&gt;
	if not statement.mainsnak or&lt;br /&gt;
		not statement.mainsnak.datavalue or&lt;br /&gt;
		not statement.mainsnak.datavalue.value or&lt;br /&gt;
		not statement.mainsnak.datavalue.value.id&lt;br /&gt;
	then&lt;br /&gt;
		local result = context.formatStatementDefault( context, options, statement );&lt;br /&gt;
		if not result then&lt;br /&gt;
			return &amp;#039;&amp;#039;;&lt;br /&gt;
		end&lt;br /&gt;
		return &amp;#039;&amp;lt;span class=&amp;quot;country-name&amp;quot;&amp;gt;&amp;#039; .. result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local countryEntityId = statement.mainsnak.datavalue.value.id;&lt;br /&gt;
	local endDateTimestamp = calculateEndDateTimestamp( context, options, statement );&lt;br /&gt;
	local boundaries = context.getTimeBoundariesFromProperties( context, {&amp;#039;P570&amp;#039;, &amp;#039;P577&amp;#039;, &amp;#039;P571&amp;#039;} );&lt;br /&gt;
&lt;br /&gt;
	if deleteTwinAncestors( countryEntityId, string.upper(options.property), options.entity.id ) then&lt;br /&gt;
&lt;br /&gt;
		local countryOptions = context.cloneOptions( options );&lt;br /&gt;
		if not countryOptions[&amp;#039;text&amp;#039;] or countryOptions[&amp;#039;text&amp;#039;] == &amp;#039;&amp;#039; then&lt;br /&gt;
			countryOptions[&amp;#039;text&amp;#039;] = getLabel( context, countryEntityId, boundaries );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local flag = Flags.getFlag( context, countryEntityId, endDateTimestamp );	&lt;br /&gt;
		if not options.noflag and options.noflag ~= &amp;#039;&amp;#039; and  flag then&lt;br /&gt;
			return flag .. &amp;#039;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;country-name&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
				context.formatStatementDefault( context, countryOptions, statement ) ..&lt;br /&gt;
				&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		return &amp;#039;&amp;lt;span class=&amp;quot;country-name&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
			context.formatStatementDefault( context, countryOptions, statement ) ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
	else&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Буквица&gt;Putnik</name></author>
	</entry>
</feed>