<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://bsd.neuroinf.jp/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3AFile</id>
	<title>モジュール:File - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://bsd.neuroinf.jp/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3AFile"/>
	<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;action=history"/>
	<updated>2026-05-03T11:43:19Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=48080&amp;oldid=prev</id>
		<title>WikiSysop: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=48080&amp;oldid=prev"/>
		<updated>2023-05-08T00:09:08Z</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;ja&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;2023年5月8日 (月) 09:09時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ja&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-mw_:diff:1.41:old-48079:rev-48080 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=48079&amp;oldid=prev</id>
		<title>bsd&gt;Jonesey95: require strict per TPER</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=48079&amp;oldid=prev"/>
		<updated>2022-10-26T04:46:35Z</updated>

		<summary type="html">&lt;p&gt;require strict per TPER&lt;/p&gt;
&lt;a href=&quot;https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;amp;diff=48079&amp;amp;oldid=44210&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>bsd&gt;Jonesey95</name></author>
	</entry>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=44210&amp;oldid=prev</id>
		<title>WikiSysop: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=44210&amp;oldid=prev"/>
		<updated>2020-07-13T01:10:36Z</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;ja&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;2020年7月13日 (月) 10:10時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ja&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-mw_:diff:1.41:old-44209:rev-44210 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=44209&amp;oldid=prev</id>
		<title>bsd&gt;Perhelion: Fulfilling edit request by Speravir. Thanks for helping!</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:File&amp;diff=44209&amp;oldid=prev"/>
		<updated>2018-02-16T20:20:06Z</updated>

		<summary type="html">&lt;p&gt;Fulfilling edit request by Speravir. Thanks for helping!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Module for handling Media files (Origin: Wikimedia Commons)&lt;br /&gt;
&lt;br /&gt;
-- Helpers&lt;br /&gt;
local h = {}&lt;br /&gt;
h.expandPage = function(fullPageName, args)&lt;br /&gt;
	-- This expansion may fail, use it with pcall and inspect error status&lt;br /&gt;
	return mw.getCurrentFrame():expandTemplate{title = &amp;#039;:&amp;#039; .. fullPageName, args}&lt;br /&gt;
end&lt;br /&gt;
h.expandPageNoFail = function(fullPageName, args)&lt;br /&gt;
	local ok, wikiText = pcall(h.expandPage, fullPageName, args)&lt;br /&gt;
	if ok then&lt;br /&gt;
		return wikiText&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
-- Limits in megapixels are currently stored in Commons templates, they could be in this module.&lt;br /&gt;
-- There may be more limits for other supported mime types (djvu, flac, ogv, pdf, svg, webm, xcf).&lt;br /&gt;
h.maxthumbMap = {&lt;br /&gt;
--	[&amp;#039;image/gif&amp;#039;] = h.expandPageNoFail(&amp;#039;Template:LargeTIFF/limit&amp;#039;, {}), -- current value is &amp;#039;50&amp;#039; but higher now&lt;br /&gt;
	[&amp;#039;image/png&amp;#039; ] = h.expandPageNoFail(&amp;#039;Template:LargePNG/limit&amp;#039;, {}), -- current value is &amp;#039;2500&amp;#039;&lt;br /&gt;
	[&amp;#039;image/tiff&amp;#039;] = h.expandPageNoFail(&amp;#039;Template:LargeTIFF/limit&amp;#039;, {}), -- current value is &amp;#039;50&amp;#039; but higher now&lt;br /&gt;
}&lt;br /&gt;
h.maxthumbMap[&amp;#039;image/gif&amp;#039; ] = h.maxthumbMap[&amp;#039;image/tiff&amp;#039;] -- current value is &amp;#039;50&amp;#039; but higher now&lt;br /&gt;
h.extensionMap = {&lt;br /&gt;
	-- File types with full support in Commons (See [[c:Commons:File types]]).&lt;br /&gt;
	DJVU = &amp;#039;image/vnd.djvu&amp;#039;,&lt;br /&gt;
	FLAC = &amp;#039;audio/x-flac&amp;#039;,&lt;br /&gt;
	GIF  = &amp;#039;image/gif&amp;#039;,&lt;br /&gt;
	JPEG = &amp;#039;image/jpeg&amp;#039;,&lt;br /&gt;
	JPG  = &amp;#039;image/jpeg&amp;#039;,&lt;br /&gt;
	MID  = &amp;#039;audio/midi&amp;#039;,&lt;br /&gt;
	MP3  = &amp;#039;audio/mpeg&amp;#039;,&lt;br /&gt;
	OGA  = &amp;#039;audio/ogg&amp;#039;,&lt;br /&gt;
	OGG  = &amp;#039;audio/ogg&amp;#039;,&lt;br /&gt;
	OGV  = &amp;#039;video/ogg&amp;#039;,&lt;br /&gt;
	PDF  = &amp;#039;application/pdf&amp;#039;,&lt;br /&gt;
	PNG  = &amp;#039;image/png&amp;#039;,&lt;br /&gt;
	SVG  = &amp;#039;image/svg+xml&amp;#039;,&lt;br /&gt;
	TIF  = &amp;#039;image/tiff&amp;#039;,&lt;br /&gt;
	TIFF = &amp;#039;image/tiff&amp;#039;,&lt;br /&gt;
	WEBM = &amp;#039;video/webm&amp;#039;,&lt;br /&gt;
	WAV  = &amp;#039;audio/x-wav&amp;#039;,&lt;br /&gt;
	XCF  = &amp;#039;image/xcf&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
	-- Other file types with restrictions (not accepted in standard uploads on Commons but in &amp;#039;User:&amp;#039; namespace).&lt;br /&gt;
	-- They could be supported in Wiki pages by embedding their content in an &amp;lt;pre&amp;gt; or &amp;lt;source&amp;gt; elements.&lt;br /&gt;
	CSS  = &amp;#039;text/css&amp;#039;,&lt;br /&gt;
	CSV  = &amp;#039;text/csv&amp;#039;,&lt;br /&gt;
	JS   = &amp;#039;application/javascript&amp;#039;,&lt;br /&gt;
	JSON = &amp;#039;application/json&amp;#039;,&lt;br /&gt;
	TXT  = &amp;#039;text/plain&amp;#039;,&lt;br /&gt;
	XML  = &amp;#039;application/xml&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
	-- Only generated by MediaWiki on output of some queries, restricted in all uploads.&lt;br /&gt;
	GZ   = &amp;#039;application/gzip&amp;#039;, -- delivered only only for some wiki results&lt;br /&gt;
	ZIP  = &amp;#039;application/zip&amp;#039;, -- delivered only for some wiki data exports&lt;br /&gt;
&lt;br /&gt;
	-- Other file types not supported and to convert (a few of them may be in special administration namespaces).&lt;br /&gt;
	DOC  = &amp;#039;application/msword&amp;#039;, -- please convert to PDF, DJVU, or Wiki&lt;br /&gt;
	F4V  = &amp;#039;video/mpeg&amp;#039;, -- (deprecated, replaced by MP4) please convert to OGV or WEBM&lt;br /&gt;
	FLV  = &amp;#039;video/x-flv&amp;#039;, -- (deprecated, replaced by MP4) please convert to OGV or WEBM&lt;br /&gt;
	ICO  = &amp;#039;image/vnd.microsoft.icon&amp;#039;, -- used in MediaWiki resources for &amp;#039;website icons&amp;#039;&lt;br /&gt;
	MP4  = &amp;#039;video/mp4&amp;#039;, -- please convert to OGV or WEBM&lt;br /&gt;
	QT   = &amp;#039;video/quicktime&amp;#039;, -- (deprecated, replaced by MP4) please convert to OGV or WEBM&lt;br /&gt;
	RA   = &amp;#039;audio/vnd.rn-realaudio&amp;#039;, -- (deprecated, replaced by MP3) please convert to OGA&lt;br /&gt;
	SWF  = &amp;#039;video/x-flv&amp;#039;, -- (deprecated, replaced by MP4) please convert to OGV or WEBM&lt;br /&gt;
	WMA  = &amp;#039;audio/x-ms-wma&amp;#039;, -- please convert to OGA&lt;br /&gt;
	WMV  = &amp;#039;video/x-ms-wmv&amp;#039;, -- please convert to OGV or WEBM&lt;br /&gt;
	XLS  = &amp;#039;application/vnd.ms-excel&amp;#039;, -- please convert to PDF, DJVU, or Wiki&lt;br /&gt;
}&lt;br /&gt;
h.parse = require(&amp;quot;Module:HTMLParser&amp;quot;).parse&lt;br /&gt;
&lt;br /&gt;
local File = function(title)&lt;br /&gt;
	local funcs = {}&lt;br /&gt;
	local titleInstance, metadataInstance&lt;br /&gt;
&lt;br /&gt;
	function getTitle()&lt;br /&gt;
		if titleInstance == nil then&lt;br /&gt;
			titleInstance = mw.title.new(title, 6)&lt;br /&gt;
		end&lt;br /&gt;
		return titleInstance&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	function getFullName()&lt;br /&gt;
		return getTitle().prefixedText&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- =p.File(&amp;quot;Foo.bar.svg&amp;quot;).extension()&lt;br /&gt;
	-- @return &amp;quot;svg&amp;quot;&lt;br /&gt;
	funcs.extension = function()&lt;br /&gt;
		local parts = mw.text.split(title, &amp;#039;.&amp;#039;, true)&lt;br /&gt;
		return parts[#parts]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- =p.File(&amp;quot;Foo.bar.svg&amp;quot;).woExtension()&lt;br /&gt;
	-- @return &amp;quot;Foo.bar&amp;quot;&lt;br /&gt;
	-- Original author: Bawolff at [[Module:FileName]]&lt;br /&gt;
	funcs.woExtension = function()&lt;br /&gt;
		local parts = mw.text.split(title , &amp;#039;.&amp;#039;, true)&lt;br /&gt;
		local upTo = #parts - 1&lt;br /&gt;
		if upTo == 0 then upTo = 1 end&lt;br /&gt;
		return table.concat(parts, &amp;#039;.&amp;#039;, 1, upTo)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	function getMetadata()&lt;br /&gt;
		if metadataInstance == nil then&lt;br /&gt;
			metadataInstance = getTitle().file&lt;br /&gt;
		end&lt;br /&gt;
		return metadataInstance&lt;br /&gt;
	end&lt;br /&gt;
	funcs.metadata = function()&lt;br /&gt;
		return getMetadata()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Mapping file extensions to MIME-types (only MIME types accepted for files in Commons).&lt;br /&gt;
	-- Works even if file still does not exist.&lt;br /&gt;
	-- =p.File(&amp;#039;Foo.bar.svg&amp;#039;).extension()&lt;br /&gt;
	-- @return &amp;#039;image/svg+xml&amp;#039;&lt;br /&gt;
	funcs.mime = function()&lt;br /&gt;
		local ok, metadata = pcall(funcs.metadata())&lt;br /&gt;
		if ok and metadata.exists then&lt;br /&gt;
			-- Note: does not work if file does not exist, where metadata == {&amp;#039;exists&amp;#039;: false} only&lt;br /&gt;
			return metadata.mimeType&lt;br /&gt;
		end&lt;br /&gt;
		-- mw.log(&amp;#039;mime() is deprecated. Use metadata().mimeType.&amp;#039;)&lt;br /&gt;
		return h.extensionMap[funcs.extension():upper()] or &amp;#039;unknown&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- =p.File(&amp;#039;Foo.bar.tiff&amp;#039;).maxthumb()&lt;br /&gt;
	funcs.maxthumb = function()&lt;br /&gt;
		return h.maxthumbMap[funcs.mime()] or &amp;#039;unknown @Module:File&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	funcs.dateWorkCreated = function()&lt;br /&gt;
		-- Parse the expanded wiki text into an html root node and select a child node by specific ID.&lt;br /&gt;
		local root = h.parse(&amp;#039;&amp;lt;html&amp;gt;&amp;#039; ..&lt;br /&gt;
			h.expandPageNoFail(getFullName(), {})&lt;br /&gt;
				:gsub(&amp;#039;&amp;lt;nowiki&amp;gt;.*?&amp;lt;/nowiki&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			.. &amp;#039;&amp;lt;/html&amp;gt;&amp;#039;)&lt;br /&gt;
		local tdElem = root(&amp;#039;#fileinfotpl_date&amp;#039;)&lt;br /&gt;
		for td in pairs(tdElem) do -- We queried an ID so there should be only one result in this loop.&lt;br /&gt;
			-- We need the next sibling, which doesn&amp;#039;t seem to be directly supported by HTMLParser.&lt;br /&gt;
			-- ... so ask him for the parent &amp;lt;tr&amp;gt; node and find the first &amp;lt;time&amp;gt; element in it.&lt;br /&gt;
			local timeElem = td.parent(&amp;#039;time&amp;#039;)&lt;br /&gt;
			for t in pairs(timeElem) do&lt;br /&gt;
				return t.attributes[&amp;#039;datetime&amp;#039;]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return funcs&lt;br /&gt;
end&lt;br /&gt;
h.getFile = function(frame)&lt;br /&gt;
	return File(frame.args[1] or frame.args[&amp;quot;file&amp;quot;] or frame.args[&amp;quot;title&amp;quot;] or mw.title.getCurrentTitle().text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @exports&lt;br /&gt;
local p = {}&lt;br /&gt;
p.File = File&lt;br /&gt;
p.extension = function(frame)&lt;br /&gt;
	return h.getFile(frame).extension():lower()&lt;br /&gt;
end&lt;br /&gt;
p.extensionUpper = function(frame)&lt;br /&gt;
	return h.getFile(frame).extension():upper()&lt;br /&gt;
end&lt;br /&gt;
p.csExtension = function(frame)&lt;br /&gt;
	return h.getFile(frame).extension()&lt;br /&gt;
end&lt;br /&gt;
p.woExtension = function(frame)&lt;br /&gt;
	return h.getFile(frame).woExtension()&lt;br /&gt;
end&lt;br /&gt;
p.mime = function(frame)&lt;br /&gt;
	return h.getFile(frame).mime()&lt;br /&gt;
end&lt;br /&gt;
p.fileExists = function(frame)&lt;br /&gt;
	return h.getFile(frame).metadata().exists or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
-- This one won&amp;#039;t throw errors at you&lt;br /&gt;
p.fileExistsRelaxed = function(frame)&lt;br /&gt;
	local ok, metadata = pcall(h.getFile(frame).metadata)&lt;br /&gt;
	if ok then&lt;br /&gt;
		return metadata.exists or &amp;#039;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
p.mimeType = function(frame)&lt;br /&gt;
	return h.getFile(frame).metadata().mimeType&lt;br /&gt;
end&lt;br /&gt;
p.maxthumb = function(frame)&lt;br /&gt;
	return h.getFile(frame).maxthumb()&lt;br /&gt;
end&lt;br /&gt;
p.dateWorkCreated = function(frame)&lt;br /&gt;
	return h.getFile(frame).dateWorkCreated(frame) or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
p.width = function(frame)&lt;br /&gt;
	return h.getFile(frame).metadata().width&lt;br /&gt;
end&lt;br /&gt;
p.height = function(frame)&lt;br /&gt;
	return h.getFile(frame).metadata().height&lt;br /&gt;
end&lt;br /&gt;
p.dimensions = function(frame)&lt;br /&gt;
	local d = h.getFile(frame).metadata()&lt;br /&gt;
	return d.width .. &amp;#039; × &amp;#039; .. d.height&lt;br /&gt;
end&lt;br /&gt;
p.size = function(frame)&lt;br /&gt;
	return h.getFile(frame).metadata().size&lt;br /&gt;
end&lt;br /&gt;
p.pageCount = function(frame)&lt;br /&gt;
	local pages = h.getFile(frame).metadata().pages or {1}&lt;br /&gt;
	return #pages&lt;br /&gt;
end&lt;br /&gt;
-- Module autotest&lt;br /&gt;
p.runTests = function()&lt;br /&gt;
	local toTest = require(&amp;#039;Module:File/tests/all&amp;#039;)&lt;br /&gt;
	local result = true&lt;br /&gt;
	for i, t in ipairs(toTest) do&lt;br /&gt;
		local f = File(t.fileName)&lt;br /&gt;
		local stringResult = &amp;#039;&amp;#039;&lt;br /&gt;
		local ret = true&lt;br /&gt;
		local results = {&lt;br /&gt;
			extension = (t.extension == f.extension()),&lt;br /&gt;
			extensionLower = (t.extensionLower == f.extension():lower()),&lt;br /&gt;
			extensionUpper = (t.extensionUpper == f.extension():upper()),&lt;br /&gt;
			woExtension = (t.woExtension == f.woExtension()),&lt;br /&gt;
			mime = (t.mime == f.mime()),&lt;br /&gt;
			maxthumb = (not (tonumber(f.maxthumb()) == nil) == t.maxthumbIsNumber),&lt;br /&gt;
			dateWorkCreated = t.dateWorkCreated == f.dateWorkCreated()&lt;br /&gt;
		}&lt;br /&gt;
		for k, v in pairs(results) do&lt;br /&gt;
			stringResult = stringResult .. k .. &amp;#039;: &amp;#039; .. (v and &amp;#039;ok    &amp;#039; or &amp;#039;failed&amp;#039;) .. &amp;#039; &amp;#039;&lt;br /&gt;
			ret = ret and v&lt;br /&gt;
		end&lt;br /&gt;
		mw.log(i, ret and &amp;#039;passed&amp;#039; or &amp;#039;FAILED&amp;#039;, t.typeOfFileName, (not ret) and (&amp;#039;\n\t&amp;gt;&amp;gt;\t&amp;#039; .. t.fileName .. &amp;#039;\n\t&amp;gt;&amp;gt;\t&amp;#039; .. stringResult) or &amp;#039;&amp;#039;)&lt;br /&gt;
		result = result and ret&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
-- p.h = h -- if needed for running some tests&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>bsd&gt;Perhelion</name></author>
	</entry>
</feed>