<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>markusbe.com &#187; practical</title>
	<atom:link href="http://www.markusbe.com/category/practical/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markusbe.com</link>
	<description>clear, concise, complete, correct</description>
	<lastBuildDate>Sun, 02 May 2010 14:27:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to apply a patch/diff and solve &#8220;hunk FAILED&#8221;, &#8220;can&#8217;t find file to patch&#8221; and others</title>
		<link>http://www.markusbe.com/2009/11/how-to-apply-a-patch-and-solve-hunk-failed-cant-find-file-to-patch-and-others/</link>
		<comments>http://www.markusbe.com/2009/11/how-to-apply-a-patch-and-solve-hunk-failed-cant-find-file-to-patch-and-others/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 06:48:50 +0000</pubDate>
		<dc:creator>Markus Bertheau</dc:creator>
				<category><![CDATA[practical]]></category>

		<guid isPermaLink="false">http://www.markusbe.com/?p=214</guid>
		<description><![CDATA[
 Deutsch

Hi  
After you read this article, you&#8217;ll be able to apply patch files/diffs and deal with possible errors in the process.
Let&#8217;s assume the patch is in the file fix-bug.patch (the extension doesn&#8217;t matter). The directory software-1.0 contains the files to patch. Applying a patch file/diff then works like this:

Make a backup. On Linux [...]]]></description>
			<content:encoded><![CDATA[<div class="language">
<a href="http://www.markusbe.de/2009/12/wie-man-einen-patch-anwendet-und-hunk-failed-cant-find-file-to-patch-und-andere-loest/"><img src="/wp-content/themes/violet-park-2/img/de.png" width="20" height="12" alt="de" title="Deutsch"/> Deutsch</a>
</div>
<p>Hi <img src='http://www.markusbe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>After you read this article, you&#8217;ll be able to apply patch files/diffs and deal with possible errors in the process.</p>
<p>Let&#8217;s assume the patch is in the file <tt>fix-bug.patch</tt> (the extension doesn&#8217;t matter). The directory <tt>software-1.0</tt> contains the files to patch. Applying a patch file/diff then works like this:</p>
<ol style="clear: both">
<li>Make a backup. On Linux you can use the command:
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>cp -a software-1.0 software-1.0.before-patch</strong></pre>
</li>
<li id="patch-command-line">Run patch (for Windows: <a href="http://gnuwin32.sourceforge.net/downlinks/patch.php">patch.exe</a>) like this:
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>patch -Np1 -d software-1.0 &lt; fix-bug.patch</strong></pre>
</li>
</ol>
<p>Attention: this is <em>patch minus N p <strong>digit one</strong> &#8230;</em>, not minus N p small letter L!<br />
<span id="more-214"></span></p>
<p>If the result looks something like this:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>patch -Np1 -d software-1.0 &lt; fix-bug.patch</strong>
patching file bar.h
patching file quux.c
patching file foo.txt
<span class="prompt">markus@ubuntu:~$</span></pre>
<p>then it worked and the patch file applied cleanly.</p>
<p>If you got different messages, they may be just warnings or they may be error messages. In any case the patch may have been applied incorrectly or only partially. To be safe, let&#8217;s restore from the backup first. Then we&#8217;ll figure out what the warning or error messages mean. To restore for Linux:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>rm -rf software-1.0</strong>
<span class="prompt">markus@ubuntu:~$</span> <strong>cp -a software-1.0.before-patch software-1.0</strong>
</pre>
<h5 id="error-message-list">Error messages and how to handle them</h5>
<p>And now, here&#8217;s a list of messages that may appear. Each message links to a paragraph about what to do when this message appears.</p>
<ul>
<li>
<pre><strong><a href="#no-file-to-patch">can't find file to patch at input line <em>nnn</em>. File to patch:</a></strong></pre>
</li>
<li>
<pre><strong><a href="#no-file-to-patch">No file to patch. Skipping patch. <em>n</em> out of <em>n</em> hunks ignored.</a></strong></pre>
</li>
<li>
<pre><strong><a href="#hunk-failed">Hunk <em>#n</em> FAILED at <em>nnn</em>. <em>n</em> out of <em>n</em> hunks FAILED -- saving rejects to file <em>file.rej</em></a></strong></pre>
</li>
<li>
<pre><strong><a href="#hunk-succeeded">Hunk <em>#n</em> succeeded at <em>nnn</em> (offset <em>n</em> lines).</a></strong></pre>
</li>
<li>
<pre><strong><a href="#hunk-succeeded">Hunk <em>#n</em> succeeded at <em>nnn</em> with fuzz <em>n</em>.</a></strong></pre>
</li>
<li>
<pre><strong><a href="#malformed-patch">malformed patch at line <em>nnn</em></a></strong></pre>
</li>
<li><!--
<pre><strong><a href="#broken">missing header for unified diff at line <em>nnn</em> of patch</a></strong>
    </li>
<li>
<pre><strong><a href="#broken">patch: **** only garbage was found in the patch input</a></strong></pre>
</li>
<li>&#8211;>
<pre><strong><a href="#reversed-patch">Reversed (or previously applied) patch detected!  Skipping patch.</a></strong></pre>
</li>
<li>
<pre><strong><a href="#reversed-patch">Reversed (or previously applied) patch detected!  Assume -R? [n]</a></strong></pre>
</li>
<li>
<pre><strong><a href="#stripping-trailing-crs">(Stripping trailing CRs from patch.)</a></strong></pre>
</li>
<li><strong><a href="#error-message-not-listed">error message not listed here</a></strong></li>
</ul>
<h6 id="no-file-to-patch">can&#8217;t find file to patch at input line <em>nnn</em>. File to patch: or<br />
No file to patch. Skipping patch. <em>n</em> out of <em>n</em> hunks ignored.</h6>
<p>At first make sure that you used the <a href="#patch-command-line">right patch command line, as shown above</a>.</p>
<p>If that still didn&#8217;t work, try with a higher <tt><strong>n</strong></tt> in <tt>-p<strong><em>n</em></strong></tt>, up until maybe 6 (you can try more, but the chances that the problem is the wrong <tt>-p</tt> number get slimmer and slimmer <img src='http://www.markusbe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). To try, add <tt>--dry-run</tt> to the command line. With it the patch isn&#8217;t actually applied, but you get all the messages as if the patch were really applied. That way you can tell whether there <em>would</em> be any errors, without having to restore from backup every time. Here&#8217;s an example for <tt>-p2</tt> and with <tt>--dry-run</tt>:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>patch --dry-run -Np2 -d software-1.0 &lt; fix-bug.patch</strong></pre>
<p><!-- (There's <a href="#broken">an explanation of the <tt>-p</tt> option further down.) &#8211;></p>
<p><tt>-p0</tt> is almost always wrong. It causes <tt>patch</tt> to ignore subdirectories and assume that all files to patch are in the same directory.</p>
<p>When you get a run <em>without</em> error messages about not finding the file to patch, then you have found the right number for <tt>-p</tt>. If there are other error messages, find them in the <a href="#error-message-list">list of error messages</a>. When you get a clean run without error messages, you can repeat without <tt>--dry-run</tt> to actually apply the patch.</p>
<p>If all the fiddling with <tt>-p</tt> didn&#8217;t help and you still get the same error message, leave a comment <img src='http://www.markusbe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h6 id="hunk-failed">Hunk <em>#n</em> FAILED at <em>nnn</em>. <em>n</em> out of <em>n</em> hunks FAILED &#8212; saving rejects to file <em>file.rej</em></h6>
<p>This means that one or more changes, called hunks, could not be introduced into the file. There&#8217;s one quite seldom reason, but it&#8217;s the easiest one to check: Try adding <tt>--ignore-whitespace</tt> to the command line like this:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>patch -Np1 --ignore-whitespace -d software-1.0 &lt; fix-bug.patch</strong>
</pre>
<p>If that still gives you errors, it&#8217;s probably for another reason: The patch file file was made for a different version of the software than you use. There are two ways to deal with that:</p>
<ul>
<li>Get a patch file for your software version, or use the software version the patch file was made for.</li>
<li>Ask patch to ignore the context of a change. Doing that will cause <tt>patch</tt> to take more risk of applying a change in the wrong place in a file. That means, that the patch may apply fine, but the software doesn&#8217;t work correctly after that. Add <tt>-F3</tt> to the command line to try that. The command looks like this:
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>patch -Np1 -F3 -d software-1.0 &lt; fix-bug.patch</strong>
</pre>
</li>
<li>Try to manually apply the changes that patch couldn&#8217;t apply. See the article <a href="/2009/12/how-to-read-a-patch-or-diff-and-understand-its-structure-to-apply-it-manually/">How to read a patch or diff and understand its structure to apply it manually</a> for an explanation how to do this.
</li>
</ul>
<h6 id="hunk-succeeded">Hunk <em>#n</em> succeeded at <em>nnn</em> (offset <em>n</em> lines) and<br />
Hunk <em>#n</em> succeeded at <em>nnn</em> with fuzz <em>n</em>.</h6>
<p>Usually there&#8217;s no problem here and the patch could be applied completely. This message means that the patch file was originally made for a slightly different version of the software than you used. Still, in some cases <tt>patch</tt> may think it got it right, but really didn&#8217;t. If something doesn&#8217;t work and you think that the patch may have been applied incorrectly, you can use the same software version that the patch file was made for, or you can try to get a patch file for the software version you&#8217;re using.</p>
<p>You can also manually apply the changes in the patch file and use your (uniquely human) capabilities to make sure that the end result still makes sense &#8211; something the patch program cannot do <img src='http://www.markusbe.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . For that see the article <a href="/2009/12/how-to-read-a-patch-or-diff-and-understand-its-structure-to-apply-it-manually/">How to read a patch or diff and understand its structure to apply it manually</a>.</p>
<h6 id="malformed-patch">malformed patch at line <em>nnn</em></h6>
<p>The patch file is damaged. If you copy-pasted the patch from somewhere, be careful not to damage it. A patch file contains spaces at the start of lines, and these often get lost in copy-paste. The safest bet is to download the patch file. If the browser doesn&#8217;t download the patch, but instead displays it, use File -&gt; Save.</p>
<p>If you want to create a patch, you don&#8217;t have to write the patch file manually. The program <tt>diff</tt> does that. Short instructions:</p>
<ol>
<li>Create a copy of the original version of the software. On Linux:
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>cp -a software-1.0 software-1.0.orig</strong></pre>
</li>
<li>Modify the software in <tt>software-1.0</tt>.</li>
<li>Create the patch with <tt>diff</tt>:
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>diff -Naur software-1.0.orig software-1.0 &gt; fix-bug.patch</strong></pre>
</li>
</ol>
<h6 id="reversed-patch">Reversed (or previously applied) patch detected!  Skipping patch.<br />
Reversed (or previously applied) patch detected!  Assume -R? [n]</h6>
<p>That means that a change in the patch is already in the file. There are several reasons why that could be:</p>
<ul>
<li>The patch author mixed up original and new version. The patch file is now backwards &#8211; it creates the old version from the new version. When it finds the old version, <tt>patch</tt> sees that all changes are already there. Fortunately, <tt>patch</tt> can apply a patch in reverse. Use the <tt>-R</tt> option. Here is an example command line:
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>patch -RNp1 -d software-1.0 &lt; fix-bug.patch</strong></pre>
</li>
<li>Your software version in fact already contains that patch. Maybe the software authors incorporated the patch already, and you downloaded a version that already contains the changes from that patch.</li>
</ul>
<h6 id="stripping-trailing-crs">(Stripping trailing CRs from patch.)</h6>
<p>Nothing to worry about here. The patch file applied cleanly and everything will work fine. The most probable cause of this message is that the patch was made on Windows and you are on Linux. Windows and Linux encode line endings differently &#8211; Windows ones have an additional <a href="http://en.wikipedia.org/wiki/Carriage_return">CR</a>. The message essentially means that Windows line endings have been converted to Linux line endings. Hackers just usually use hacker jargon when phrasing error messages <img src='http://www.markusbe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h6 id="error-message-not-listed">error message not listed here</h6>
<p>Please leave a comment with the error message and if possible a link to the patch and one to the software that you want to apply the patch to. I&#8217;ll add the error message with an explanation to this list then.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markusbe.com/2009/11/how-to-apply-a-patch-and-solve-hunk-failed-cant-find-file-to-patch-and-others/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing Flash® Media Server on Ubuntu Linux</title>
		<link>http://www.markusbe.com/2009/09/installing-flash-media-server-on-ubuntu-linux/</link>
		<comments>http://www.markusbe.com/2009/09/installing-flash-media-server-on-ubuntu-linux/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 10:00:41 +0000</pubDate>
		<dc:creator>Markus Bertheau</dc:creator>
				<category><![CDATA[practical]]></category>

		<guid isPermaLink="false">http://www.markusbe.com/?p=13</guid>
		<description><![CDATA[

 Deutsch  Русский

Run the following commands to install Flash® Media Server on Ubuntu:
markus@ubuntu:~$ wget markusbe.com/ifu
markus@ubuntu:~$ bash ./install-fms-3.5.3-ubuntu
These commands download and run the install script.
Ubuntu version support



Ubuntu version
32 Bit
64 Bit




10.04 LTS
Server
Supported
Supported


Desktop
Supported
Supported


9.10
Server
Supported
Supported


Desktop
Supported
Supported


9.04
Server
Supported
Supported


Desktop
Supported
Supported


8.10
Desktop
Supported
Supported, but*


8.04 LTS
Server
Supported
Supported, but*


Desktop
Supported
Supported, but*


6.06 LTS
Server
Supported
Supported, but*




* Files will be installed bypassing the package manager. That means these files won&#8217;t be kept up-to-date by the [...]]]></description>
			<content:encoded><![CDATA[<p><a id="2009-09-install-fms-ubuntu-top"></a></p>
<div class="language">
<a href="http://www.markusbe.de/2009/09/flash-media-server-auf-ubuntu-linux-installieren/"><img src="/wp-content/themes/violet-park-2/img/de.png" width="20" height="12" alt="de" title="Deutsch"/> Deutsch</a> <a href="http://www.markusbe.ru/2009/09/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-flash-media-server-%d0%bd%d0%b0-ubuntu/"><img src="/wp-content/themes/violet-park-2/img/ru.png" width="20" height="14" alt="ru" title="Русский"/> Русский</a>
</div>
<p>Run the following commands to install Flash<sup>®</sup> Media Server on Ubuntu:</p>
<pre style="clear: both"><span class="prompt">markus@ubuntu:~$</span> <strong>wget <a href="/ifu">markusbe.com/ifu</a></strong>
<span class="prompt">markus@ubuntu:~$</span> <strong>bash ./install-fms-3.5.3-ubuntu</strong></pre>
<p>These commands download and run the <a href="/wp-content/uploads/2009/09/install-fms-3.5.3-ubuntu">install script</a>.</p>
<h4>Ubuntu version support</h4>
<table border="0">
<thead>
<tr>
<th colspan="2">Ubuntu version</th>
<th>32 Bit</th>
<th>64 Bit</th>
</tr>
</thead>
<tbody>
<tr>
<th class="line" rowspan="2">10.04 LTS</th>
<th class="line">Server</th>
<td>Supported</td>
<td>Supported</td>
</tr>
<tr>
<th>Desktop</th>
<td>Supported</td>
<td>Supported</td>
</tr>
<tr>
<th class="line" rowspan="2">9.10</th>
<th class="line">Server</th>
<td>Supported</td>
<td>Supported</td>
</tr>
<tr>
<th>Desktop</th>
<td>Supported</td>
<td>Supported</td>
</tr>
<tr>
<th class="line" rowspan="2">9.04</th>
<th class="line">Server</th>
<td>Supported</td>
<td>Supported</td>
</tr>
<tr>
<th>Desktop</th>
<td>Supported</td>
<td>Supported</td>
</tr>
<tr>
<th class="line">8.10</th>
<th class="line">Desktop</th>
<td>Supported</td>
<td>Supported, but<sup>*</sup></td>
</tr>
<tr>
<th class="line" rowspan="2">8.04 LTS</th>
<th class="line">Server</th>
<td>Supported</td>
<td>Supported, but<sup>*</sup></td>
</tr>
<tr>
<th>Desktop</th>
<td>Supported</td>
<td>Supported, but<sup>*</sup></td>
</tr>
<tr>
<th>6.06 LTS</th>
<th>Server</th>
<td>Supported</td>
<td>Supported, but<sup>*</sup></td>
</tr>
</tbody>
</table>
<p><span id="more-13"></span></p>
<p><sup>*</sup> Files will be installed bypassing the package manager. That means these files won&#8217;t be kept up-to-date by the package manager.</p>
<h4>What will happen?</h4>
<p>The script</p>
<ol>
<li>checks whether your Linux version and architecture is supported</li>
<li>downloads Flash<sup>®</sup> Media Server 3.5.3 from <a href="http://www.adobe.com/support/flashmediaserver/downloads_updaters.html">this page on Adobe.com</a>, if it doesn&#8217;t find it locally</li>
<li>unpacks the archive and checks its version</li>
<li>installs dependencies for the running version and architecture (32 or 64 bit) of Ubuntu</li>
<li>downloads and applies a <a href="/wp-content/uploads/2009/09/flash-media-server-3.5.3-ubuntu.patch">patch</a> for the Flash<sup>®</sup> Media Server installer that allows it to run on Ubuntu</li>
<li>runs the Flash<sup>®</sup> Media Server installer</li>
</ol>
<h4>Starting and stopping, manually and automatically</h4>
<p>To restart, stop or start Flash<sup>®</sup> Media Server use the commands:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>sudo /etc/init.d/fms restart</strong>
</pre>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>sudo /etc/init.d/fms stop</strong>
</pre>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>sudo /etc/init.d/fms start</strong>
</pre>
<p>Flash<sup>®</sup> Media Server starts automatically at startup. You can disable automatic startup:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>sudo /usr/sbin/update-rc.d fms remove</strong>
</pre>
<p>You can later change Flash<sup>®</sup> Media Server to start automatically again:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>sudo /usr/sbin/update-rc.d fms defaults</strong>
</pre>
<h4>Uninstalling</h4>
<p>You can later uninstall Flash<sup>®</sup> Media Server:</p>
<pre><span class="prompt">markus@ubuntu:~$</span> <strong>cd /opt/adobe/fms</strong>
<span class="prompt">markus@ubuntu:/opt/adobe/fms$</span> <strong>sudo ./uninstallFMS</strong></pre>
<h4>Troubleshooting</h4>
<p>Things to look for if something doesn&#8217;t work:</p>
<ul>
<li><strong>Virtual Server limits:</strong> If you run Flash<sup>®</sup> Media Server on a virtual server, see if you have the file <tt>/proc/user_beancounters</tt>. This file exists if the server is virtualized with Virtuozzo or OpenVZ. It contains a list of resource parameters with their current values, maximum allowed values and the number of times the maximum value has been reached (<tt>failcnt</tt>). If the <tt>failcnt</tt> number increases for a resource when you try to start or use Flash<sup>®</sup> Media Server, increase the limit for the corresponding resource. This can only be done from outside the virtual server.</li>
</ul>
<p>I will add to this section whenever I find out about other causes of trouble.</p>
<h4>Symptoms</h4>
<p>When you try to install Flash<sup>®</sup> Media Server without the script, a number of warnings and error messages appear. I list them here so that people who search by the error message can find this article.</p>
<p>If you&#8217;re on 64 bit and haven&#8217;t installed 32-bit-support, this error message appears:</p>
<pre>./installFMS: 172: ./fmsini: not found
</pre>
<p>And then:</p>
<pre>./fmsini: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
</pre>
<p>Then, regardless of architecture, a warning from the installer:</p>
<pre>WARNING: Your distribution, unknown, is not supported by this
         Adobe Flash Media Server installer.
</pre>
<p>An error about the group nobody not existing, if you accept the default group:</p>
<pre>Please enter a valid user group for the "nobody" user: Default group [nobody]: 

ERROR: "nobody" is not in the user group "nobody"
</pre>
<p>If you solved that problem by entering <tt>nogroup</tt>, next is a syntax error:</p>
<pre>[: 1: ==: unexpected operator
</pre>
<p>or</p>
<pre>[: 1: nobody: unexpected operator
</pre>
<p>Then installation starts, but a number of errors appear:</p>
<pre>Proceed with the installation? (y/n/q): y

Installing Adobe Flash Media Server files...
Configuring Adobe Flash Media Server...
Adding "fms" service.
Setting default admin to "fms".
chgrp: invalid group: `nobody'
./installFMS: 1348: /sbin/chkconfig: not found
Setting autostart for "fms".
Server:fms command:start
ulimit: 30: Illegal option -u
[: 35: 32768: unexpected operator
NPTL 2.7
./server: 56: Bad substitution
Admin server:fmsadmin command:start
./adminserver: 41: Bad substitution

The Adobe Flash Media Server installation is complete.</pre>
<p>If you see one of these error messages, see the <a href="#2009-09-install-fms-ubuntu-top">top of this article</a>.</p>
<h4 id="2009-09-install-fms-ubuntu-background-article">Background article</h4>
<p>There is a background article <a href="http://www.markusbe.com/2009/09/about-running-32-bit-programs-on-64-bit-ubuntu-and-shared-libraries/">About running 32 bit programs on 64 bit Ubuntu and shared libraries</a> that explains in detail what needs to be done and why to make Flash<sup>®</sup> Media Server work on Ubuntu and how the patch and install script achieve that.</p>
<h4>Feedback</h4>
<p>I&#8217;m interested how everything worked out for you. Especially when it didn&#8217;t <img src='http://www.markusbe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  , so I can fix whatever is wrong. Please don&#8217;t hesitate to leave a comment and share your experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markusbe.com/2009/09/installing-flash-media-server-on-ubuntu-linux/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>
