<?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>Harry Bailey &#187; The Web</title>
	<atom:link href="http://harrybailey.com/category/the-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://harrybailey.com</link>
	<description>just a little bit geeky</description>
	<lastBuildDate>Tue, 24 Aug 2010 12:15:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Validation of html within inline javascript</title>
		<link>http://harrybailey.com/2010/04/validation-html-inline-javascript/</link>
		<comments>http://harrybailey.com/2010/04/validation-html-inline-javascript/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:43:36 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=432</guid>
		<description><![CDATA[If you are finding you need to use javascript inside an html or xhtml file and it won&#8217;t validate, then here is a little tip for you.
If you surround all your javascript with &#60;![CDATA[ and  ]]&#62; tags, all will come good.
The CDATA is seen by the validator as data which doesn&#8217;t need checking. So [...]]]></description>
			<content:encoded><![CDATA[<p>If you are finding you need to use javascript inside an html or xhtml file and it won&#8217;t validate, then here is a little tip for you.</p>
<p>If you surround all your javascript with &lt;![CDATA[ and  ]]&gt; tags, all will come good.</p>
<p>The CDATA is seen by the validator as data which doesn&#8217;t need checking. So this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'container'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;p&gt;hello&lt;/p&gt;'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>becomes this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;!</span><span style="color: #009900;">&#91;</span>CDATA<span style="color: #009900;">&#91;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'container'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;p&gt;hello&lt;/p&gt;'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Another option is to escape < and > characters server-side / in the file and then unescape with javascript</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'container'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&amp;lt;p&amp;gt;hello&amp;lt;/p&amp;gt;'</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/&amp;lt;/'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'&lt;'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/&amp;gt;/'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2010/04/validation-html-inline-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making Facebook Share Button Fit In</title>
		<link>http://harrybailey.com/2010/03/making-facebook-share-button-fit-in/</link>
		<comments>http://harrybailey.com/2010/03/making-facebook-share-button-fit-in/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 16:28:01 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=420</guid>
		<description><![CDATA[The share buttons that are currently offered by sites such as Digg, Facebook and Tweetmeme all have something in common when it comes to their height. 61px seems to be a developing standard.
The problem is that when you line them all up the Facebook share button is actually wider than the others which seem to [...]]]></description>
			<content:encoded><![CDATA[<p>The share buttons that are currently offered by sites such as Digg, Facebook and Tweetmeme all have something in common when it comes to their height. 61px seems to be a developing standard.</p>
<p>The problem is that when you line them all up the Facebook share button is actually wider than the others which seem to come in at 52px.</p>
<p>Well you can make the Facebook button 52px in width without too much trouble. Facebook only use two classes to style the inner &#8216;Share&#8217; button which seems to be the decider when it comes to the buttons width.</p>
<p>By shaving a little off the left and right padding we can bring the Facebook share button back down to 52px in width and make it play nice with the other share buttons.</p>

<div class="wp_syntax"><div class="code"><pre class="css css" style="font-family:monospace;">&lt;style type<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span><span style="color: #00AA00;">&gt;</span>
span <span style="color: #6666ff;">.FBConnectButton_Small</span> .FBConnectButton_Text 
<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">3px</span> <span style="color: #933;">2px</span> <span style="color: #933;">2px</span>;
<span style="color: #00AA00;">&#125;</span>
&lt;/style<span style="color: #00AA00;">&gt;</span></pre></div></div>

<p>The extra span is just enough to beat the included Facebook css with a higher specificity score by 1 single point.</p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2010/03/making-facebook-share-button-fit-in/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WorldPay Response URL and Shopper Return for Thanks</title>
		<link>http://harrybailey.com/2010/02/worldpay-response-url-shopper-return/</link>
		<comments>http://harrybailey.com/2010/02/worldpay-response-url-shopper-return/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 23:39:03 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[The Web]]></category>
		<category><![CDATA[WorldPay]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=401</guid>
		<description><![CDATA[It took a while to get my head around it, so here it is incase I need it again.
Integrating with WorldPay is not the simplest of tasks. The documentation is poor at best.
I was integrating by using a form on my site, which posts the order total and an order id etc to WorldPay. WorldPay [...]]]></description>
			<content:encoded><![CDATA[<p>It took a while to get my head around it, so here it is incase I need it again.</p>
<p>Integrating with WorldPay is not the simplest of tasks. The documentation is poor at best.</p>
<p>I was integrating by using a form on my site, which posts the order total and an order id etc to WorldPay. WorldPay then deal with taking the money from the user. What I couldn&#8217;t understand was how to get the user back to my site for thanks after they had paid.</p>
<p>Turns out it&#8217;s quite simple.</p>
<p><span id="more-401"></span></p>
<p>In the WorldPay control panel, enable Payment Response and add a url to which Worldpay will ping information about the transaction (the user is not sent here, nore are they ever aware this url exists). Also Enable Shopper Response.</p>
<p>When WorldPay pings your Payment Response file with the details of the transaction, if you have enabled Shopper Response then you can send back some html which WorldPay shows to the user. I had a better solution for the thanks page on my own site and so simply sent a meta redirect tag back. Nothing more, nothing less.</p>
<p>So the user is redirected to a url of my choice, and because I send that url to them after the transaction completes, I can choose where to send the user at that moment using the data WorldPay have send me.</p>
<p>&lt;meta http-equiv=&#8221;refresh&#8221; content=&#8221;0;url=http://www.example.com/thanks.html&#8221; /&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2010/02/worldpay-response-url-shopper-return/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mime Type List and File Extensions</title>
		<link>http://harrybailey.com/2010/01/mime-type-list-and-file-extensions/</link>
		<comments>http://harrybailey.com/2010/01/mime-type-list-and-file-extensions/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 18:35:03 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=394</guid>
		<description><![CDATA[A lovely long list of mime types along with their extensions.
If you find any errors or know any extensions and mime type pairs missing be sure to let me know.
It&#8217;s in php array format for your convenience.
$mimetypes = array(
  &#8216;3dm&#8217;    => &#8216;x-world/x-3dmf&#8217;,
  &#8216;3dmf&#8217;   => &#8216;x-world/x-3dmf&#8217;,
  &#8216;a&#8217;  [...]]]></description>
			<content:encoded><![CDATA[<p>A lovely long list of mime types along with their extensions.</p>
<p>If you find any errors or know any extensions and mime type pairs missing be sure to let me know.</p>
<p>It&#8217;s in php array format for your convenience.</p>
<p>$mimetypes = array(<br />
  &#8216;3dm&#8217;    => &#8216;x-world/x-3dmf&#8217;,<br />
  &#8216;3dmf&#8217;   => &#8216;x-world/x-3dmf&#8217;,<br />
  &#8216;a&#8217;      => &#8216;application/octet-stream&#8217;,<br />
  &#8216;aab&#8217;    => &#8216;application/x-authorware-bin&#8217;,<br />
  &#8216;aam&#8217;    => &#8216;application/x-authorware-map&#8217;,<br />
  &#8216;aas&#8217;    => &#8216;application/x-authorware-seg&#8217;,<br />
<span id="more-394"></span>  &#8216;abc&#8217;    => &#8216;text/vnd.abc&#8217;,<br />
  &#8216;acgi&#8217;   => &#8216;text/html&#8217;,<br />
  &#8216;afl&#8217;    => &#8216;video/animaflex&#8217;,<br />
  &#8216;ai&#8217;     => &#8216;application/postscript&#8217;,<br />
  &#8216;aif&#8217;    => &#8216;audio/aiff&#8217;,<br />
  &#8216;aif&#8217;    => &#8216;audio/x-aiff&#8217;,<br />
  &#8216;aifc&#8217;   => &#8216;audio/aiff&#8217;,<br />
  &#8216;aifc&#8217;   => &#8216;audio/x-aiff&#8217;,<br />
  &#8216;aiff&#8217;   => &#8216;audio/aiff&#8217;,<br />
  &#8216;aiff&#8217;   => &#8216;audio/x-aiff&#8217;,<br />
  &#8216;aim&#8217;    => &#8216;application/x-aim&#8217;,<br />
  &#8216;aip&#8217;    => &#8216;text/x-audiosoft-intra&#8217;,<br />
  &#8216;ani&#8217;    => &#8216;application/x-navi-animation&#8217;,<br />
  &#8216;aos&#8217;    => &#8216;application/x-nokia-9000-communicator-add-on-software&#8217;,<br />
  &#8216;aps&#8217;    => &#8216;application/mime&#8217;,<br />
  &#8216;arc&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;arj&#8217;    => &#8216;application/arj&#8217;,<br />
  &#8216;arj&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;art&#8217;    => &#8216;image/x-jg&#8217;,<br />
  &#8216;asf&#8217;    => &#8216;video/x-ms-asf&#8217;,<br />
  &#8216;asm&#8217;    => &#8216;text/x-asm&#8217;,<br />
  &#8216;asp&#8217;    => &#8216;text/asp&#8217;,<br />
  &#8216;asx&#8217;    => &#8216;application/x-mplayer2&#8242;,<br />
  &#8216;asx&#8217;    => &#8216;video/x-ms-asf&#8217;,<br />
  &#8216;asx&#8217;    => &#8216;video/x-ms-asf-plugin&#8217;,<br />
  &#8216;au&#8217;     => &#8216;audio/basic&#8217;,<br />
  &#8216;au&#8217;     => &#8216;audio/x-au&#8217;,<br />
  &#8216;avi&#8217;    => &#8216;application/x-troff-msvideo&#8217;,<br />
  &#8216;avi&#8217;    => &#8216;video/avi&#8217;,<br />
  &#8216;avi&#8217;    => &#8216;video/msvideo&#8217;,<br />
  &#8216;avi&#8217;    => &#8216;video/x-msvideo&#8217;,<br />
  &#8216;avs&#8217;    => &#8216;video/avs-video&#8217;,<br />
  &#8216;bcpio&#8217;  => &#8216;application/x-bcpio&#8217;,<br />
  &#8216;bin&#8217;    => &#8216;application/mac-binary&#8217;,<br />
  &#8216;bin&#8217;    => &#8216;application/macbinary&#8217;,<br />
  &#8216;bin&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;bin&#8217;    => &#8216;application/x-binary&#8217;,<br />
  &#8216;bin&#8217;    => &#8216;application/x-macbinary&#8217;,<br />
  &#8216;bm&#8217;     => &#8216;image/bmp&#8217;,<br />
  &#8216;bmp&#8217;    => &#8216;image/bmp&#8217;,<br />
  &#8216;bmp&#8217;    => &#8216;image/x-windows-bmp&#8217;,<br />
  &#8216;boo&#8217;    => &#8216;application/book&#8217;,<br />
  &#8216;book&#8217;   => &#8216;application/book&#8217;,<br />
  &#8216;boz&#8217;    => &#8216;application/x-bzip2&#8242;,<br />
  &#8216;bsh&#8217;    => &#8216;application/x-bsh&#8217;,<br />
  &#8216;bz&#8217;     => &#8216;application/x-bzip&#8217;,<br />
  &#8216;bz2&#8242;    => &#8216;application/x-bzip2&#8242;,<br />
  &#8216;c&#8217;      => &#8216;text/plain&#8217;,<br />
  &#8216;c&#8217;      => &#8216;text/x-c&#8217;,<br />
  &#8216;c++&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;cat&#8217;    => &#8216;application/vnd.ms-pki.seccat&#8217;,<br />
  &#8216;cc&#8217;     => &#8216;text/plain&#8217;,<br />
  &#8216;cc&#8217;     => &#8216;text/x-c&#8217;,<br />
  &#8216;ccad&#8217;   => &#8216;application/clariscad&#8217;,<br />
  &#8216;cco&#8217;    => &#8216;application/x-cocoa&#8217;,<br />
  &#8216;cdf&#8217;    => &#8216;application/cdf&#8217;,<br />
  &#8216;cdf&#8217;    => &#8216;application/x-cdf&#8217;,<br />
  &#8216;cdf&#8217;    => &#8216;application/x-netcdf&#8217;,<br />
  &#8216;cer&#8217;    => &#8216;application/pkix-cert&#8217;,<br />
  &#8216;cer&#8217;    => &#8216;application/x-x509-ca-cert&#8217;,<br />
  &#8216;cha&#8217;    => &#8216;application/x-chat&#8217;,<br />
  &#8216;chat&#8217;   => &#8216;application/x-chat&#8217;,<br />
  &#8216;class&#8217;  => &#8216;application/java&#8217;,<br />
  &#8216;class&#8217;  => &#8216;application/java-byte-code&#8217;,<br />
  &#8216;class&#8217;  => &#8216;application/x-java-class&#8217;,<br />
  &#8216;com&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;com&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;conf&#8217;   => &#8216;text/plain&#8217;,<br />
  &#8216;cpio&#8217;   => &#8216;application/x-cpio&#8217;,<br />
  &#8216;cpp&#8217;    => &#8216;text/x-c&#8217;,<br />
  &#8216;cpt&#8217;    => &#8216;application/mac-compactpro&#8217;,<br />
  &#8216;cpt&#8217;    => &#8216;application/x-compactpro&#8217;,<br />
  &#8216;cpt&#8217;    => &#8216;application/x-cpt&#8217;,<br />
  &#8216;crl&#8217;    => &#8216;application/pkcs-crl&#8217;,<br />
  &#8216;crl&#8217;    => &#8216;application/pkix-crl&#8217;,<br />
  &#8216;crt&#8217;    => &#8216;application/pkix-cert&#8217;,<br />
  &#8216;crt&#8217;    => &#8216;application/x-x509-ca-cert&#8217;,<br />
  &#8216;crt&#8217;    => &#8216;application/x-x509-user-cert&#8217;,<br />
  &#8216;csh&#8217;    => &#8216;application/x-csh&#8217;,<br />
  &#8216;csh&#8217;    => &#8216;text/x-script.csh&#8217;,<br />
  &#8216;css&#8217;    => &#8216;application/x-pointplus&#8217;,<br />
  &#8216;css&#8217;    => &#8216;text/css&#8217;,<br />
  &#8216;cxx&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;dcr&#8217;    => &#8216;application/x-director&#8217;,<br />
  &#8216;deepv&#8217;  => &#8216;application/x-deepv&#8217;,<br />
  &#8216;def&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;der&#8217;    => &#8216;application/x-x509-ca-cert&#8217;,<br />
  &#8216;dif&#8217;    => &#8216;video/x-dv&#8217;,<br />
  &#8216;dir&#8217;    => &#8216;application/x-director&#8217;,<br />
  &#8216;dl&#8217;     => &#8216;video/dl&#8217;,<br />
  &#8216;dl&#8217;     => &#8216;video/x-dl&#8217;,<br />
  &#8216;doc&#8217;    => &#8216;application/msword&#8217;,<br />
  &#8216;dot&#8217;    => &#8216;application/msword&#8217;,<br />
  &#8216;dp&#8217;     => &#8216;application/commonground&#8217;,<br />
  &#8216;drw&#8217;    => &#8216;application/drafting&#8217;,<br />
  &#8216;dump&#8217;   => &#8216;application/octet-stream&#8217;,<br />
  &#8216;dv&#8217;     => &#8216;video/x-dv&#8217;,<br />
  &#8216;dvi&#8217;    => &#8216;application/x-dvi&#8217;,<br />
  &#8216;dwf&#8217;    => &#8216;model/vnd.dwf&#8217;,<br />
  &#8216;dwg&#8217;    => &#8216;application/acad&#8217;,<br />
  &#8216;dwg&#8217;    => &#8216;image/vnd.dwg&#8217;,<br />
  &#8216;dwg&#8217;    => &#8216;image/x-dwg&#8217;,<br />
  &#8216;dxf&#8217;    => &#8216;application/dxf&#8217;,<br />
  &#8216;dxf&#8217;    => &#8216;image/vnd.dwg&#8217;,<br />
  &#8216;dxf&#8217;    => &#8216;image/x-dwg&#8217;,<br />
  &#8216;dxr&#8217;    => &#8216;application/x-director&#8217;,<br />
  &#8216;el&#8217;     => &#8216;text/x-script.elisp&#8217;,<br />
  &#8216;elc&#8217;    => &#8216;application/x-bytecode.elisp&#8217;,<br />
  &#8216;elc&#8217;    => &#8216;application/x-elc&#8217;,<br />
  &#8216;env&#8217;    => &#8216;application/x-envoy&#8217;,<br />
  &#8216;eps&#8217;    => &#8216;application/postscript&#8217;,<br />
  &#8216;es&#8217;     => &#8216;application/x-esrehber&#8217;,<br />
  &#8216;etx&#8217;    => &#8216;text/x-setext&#8217;,<br />
  &#8216;evy&#8217;    => &#8216;application/envoy&#8217;,<br />
  &#8216;evy&#8217;    => &#8216;application/x-envoy&#8217;,<br />
  &#8216;exe&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;f&#8217;      => &#8216;text/plain&#8217;,<br />
  &#8216;f&#8217;      => &#8216;text/x-fortran&#8217;,<br />
  &#8216;f77&#8242;    => &#8216;text/x-fortran&#8217;,<br />
  &#8216;f90&#8242;    => &#8216;text/plain&#8217;,<br />
  &#8216;f90&#8242;    => &#8216;text/x-fortran&#8217;,<br />
  &#8216;fdf&#8217;    => &#8216;application/vnd.fdf&#8217;,<br />
  &#8216;fif&#8217;    => &#8216;application/fractals&#8217;,<br />
  &#8216;fif&#8217;    => &#8216;image/fif&#8217;,<br />
  &#8216;fli&#8217;    => &#8216;video/fli&#8217;,<br />
  &#8216;fli&#8217;    => &#8216;video/x-fli&#8217;,<br />
  &#8216;flo&#8217;    => &#8216;image/florian&#8217;,<br />
  &#8216;flx&#8217;    => &#8216;text/vnd.fmi.flexstor&#8217;,<br />
  &#8216;fmf&#8217;    => &#8216;video/x-atomic3d-feature&#8217;,<br />
  &#8216;for&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;for&#8217;    => &#8216;text/x-fortran&#8217;,<br />
  &#8216;fpx&#8217;    => &#8216;image/vnd.fpx&#8217;,<br />
  &#8216;fpx&#8217;    => &#8216;image/vnd.net-fpx&#8217;,<br />
  &#8216;frl&#8217;    => &#8216;application/freeloader&#8217;,<br />
  &#8216;funk&#8217;   => &#8216;audio/make&#8217;,<br />
  &#8216;g&#8217;      => &#8216;text/plain&#8217;,<br />
  &#8216;g3&#8242;     => &#8216;image/g3fax&#8217;,<br />
  &#8216;gif&#8217;    => &#8216;image/gif&#8217;,<br />
  &#8216;gl&#8217;     => &#8216;video/gl&#8217;,<br />
  &#8216;gl&#8217;     => &#8216;video/x-gl&#8217;,<br />
  &#8216;gsd&#8217;    => &#8216;audio/x-gsm&#8217;,<br />
  &#8216;gsm&#8217;    => &#8216;audio/x-gsm&#8217;,<br />
  &#8216;gsp&#8217;    => &#8216;application/x-gsp&#8217;,<br />
  &#8216;gss&#8217;    => &#8216;application/x-gss&#8217;,<br />
  &#8216;gtar&#8217;   => &#8216;application/x-gtar&#8217;,<br />
  &#8216;gz&#8217;     => &#8216;application/x-compressed&#8217;,<br />
  &#8216;gz&#8217;     => &#8216;application/x-gzip&#8217;,<br />
  &#8216;gzip&#8217;   => &#8216;application/x-gzip&#8217;,<br />
  &#8216;gzip&#8217;   => &#8216;multipart/x-gzip&#8217;,<br />
  &#8216;h&#8217;      => &#8216;text/plain&#8217;,<br />
  &#8216;h&#8217;      => &#8216;text/x-h&#8217;,<br />
  &#8216;hdf&#8217;    => &#8216;application/x-hdf&#8217;,<br />
  &#8216;help&#8217;   => &#8216;application/x-helpfile&#8217;,<br />
  &#8216;hgl&#8217;    => &#8216;application/vnd.hp-hpgl&#8217;,<br />
  &#8216;hh&#8217;     => &#8216;text/plain&#8217;,<br />
  &#8216;hh&#8217;     => &#8216;text/x-h&#8217;,<br />
  &#8216;hlb&#8217;    => &#8216;text/x-script&#8217;,<br />
  &#8216;hlp&#8217;    => &#8216;application/hlp&#8217;,<br />
  &#8216;hlp&#8217;    => &#8216;application/x-helpfile&#8217;,<br />
  &#8216;hlp&#8217;    => &#8216;application/x-winhelp&#8217;,<br />
  &#8216;hpg&#8217;    => &#8216;application/vnd.hp-hpgl&#8217;,<br />
  &#8216;hpgl&#8217;   => &#8216;application/vnd.hp-hpgl&#8217;,<br />
  &#8216;hqx&#8217;    => &#8216;application/binhex&#8217;,<br />
  &#8216;hqx&#8217;    => &#8216;application/binhex4&#8242;,<br />
  &#8216;hqx&#8217;    => &#8216;application/mac-binhex&#8217;,<br />
  &#8216;hqx&#8217;    => &#8216;application/mac-binhex40&#8242;,<br />
  &#8216;hqx&#8217;    => &#8216;application/x-binhex40&#8242;,<br />
  &#8216;hqx&#8217;    => &#8216;application/x-mac-binhex40&#8242;,<br />
  &#8216;hta&#8217;    => &#8216;application/hta&#8217;,<br />
  &#8216;htc&#8217;    => &#8216;text/x-component&#8217;,<br />
  &#8216;htm&#8217;    => &#8216;text/html&#8217;,<br />
  &#8216;html&#8217;   => &#8216;text/html&#8217;,<br />
  &#8216;htmls&#8217;  => &#8216;text/html&#8217;,<br />
  &#8216;htt&#8217;    => &#8216;text/webviewhtml&#8217;,<br />
  &#8216;htx&#8217;    => &#8216;text/html&#8217;,<br />
  &#8216;ice&#8217;    => &#8216;x-conference/x-cooltalk&#8217;,<br />
  &#8216;ico&#8217;    => &#8216;image/x-icon&#8217;,<br />
  &#8216;idc&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;ief&#8217;    => &#8216;image/ief&#8217;,<br />
  &#8216;iefs&#8217;   => &#8216;image/ief&#8217;,<br />
  &#8216;iges&#8217;   => &#8216;application/iges&#8217;,<br />
  &#8216;iges&#8217;   => &#8216;model/iges&#8217;,<br />
  &#8216;igs&#8217;    => &#8216;application/iges&#8217;,<br />
  &#8216;igs&#8217;    => &#8216;model/iges&#8217;,<br />
  &#8216;ima&#8217;    => &#8216;application/x-ima&#8217;,<br />
  &#8216;imap&#8217;   => &#8216;application/x-httpd-imap&#8217;,<br />
  &#8216;inf&#8217;    => &#8216;application/inf&#8217;,<br />
  &#8216;ins&#8217;    => &#8216;application/x-internett-signup&#8217;,<br />
  &#8216;ip&#8217;     => &#8216;application/x-ip2&#8242;,<br />
  &#8216;isu&#8217;    => &#8216;video/x-isvideo&#8217;,<br />
  &#8216;it&#8217;     => &#8216;audio/it&#8217;,<br />
  &#8216;iv&#8217;     => &#8216;application/x-inventor&#8217;,<br />
  &#8216;ivr&#8217;    => &#8216;i-world/i-vrml&#8217;,<br />
  &#8216;ivy&#8217;    => &#8216;application/x-livescreen&#8217;,<br />
  &#8216;jam&#8217;    => &#8216;audio/x-jam&#8217;,<br />
  &#8216;jav&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;jav&#8217;    => &#8216;text/x-java-source&#8217;,<br />
  &#8216;java&#8217;   => &#8216;text/plain&#8217;,<br />
  &#8216;java&#8217;   => &#8216;text/x-java-source&#8217;,<br />
  &#8216;jcm&#8217;    => &#8216;application/x-java-commerce&#8217;,<br />
  &#8216;jfif&#8217;   => &#8216;image/jpeg&#8217;,<br />
  &#8216;jfif&#8217;   => &#8216;image/pjpeg&#8217;,<br />
  &#8216;jfif-tbnl&#8217; => &#8216;image/jpeg&#8217;,<br />
  &#8216;jpe&#8217;    => &#8216;image/jpeg&#8217;,<br />
  &#8216;jpe&#8217;    => &#8216;image/pjpeg&#8217;,<br />
  &#8216;jpeg&#8217;   => &#8216;image/jpeg&#8217;,<br />
  &#8216;jpeg&#8217;   => &#8216;image/pjpeg&#8217;,<br />
  &#8216;jpg&#8217;    => &#8216;image/jpeg&#8217;,<br />
  &#8216;jpg&#8217;    => &#8216;image/pjpeg&#8217;,<br />
  &#8216;jps&#8217;    => &#8216;image/x-jps&#8217;,<br />
  &#8216;js&#8217;     => &#8216;application/x-javascript&#8217;,<br />
  &#8216;jut&#8217;    => &#8216;image/jutvision&#8217;,<br />
  &#8216;kar&#8217;    => &#8216;audio/midi&#8217;,<br />
  &#8216;kar&#8217;    => &#8216;music/x-karaoke&#8217;,<br />
  &#8216;ksh&#8217;    => &#8216;application/x-ksh&#8217;,<br />
  &#8216;ksh&#8217;    => &#8216;text/x-script.ksh&#8217;,<br />
  &#8216;la&#8217;     => &#8216;audio/nspaudio&#8217;,<br />
  &#8216;la&#8217;     => &#8216;audio/x-nspaudio&#8217;,<br />
  &#8216;lam&#8217;    => &#8216;audio/x-liveaudio&#8217;,<br />
  &#8216;latex&#8217;  => &#8216;application/x-latex&#8217;,<br />
  &#8216;lha&#8217;    => &#8216;application/lha&#8217;,<br />
  &#8216;lha&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;lha&#8217;    => &#8216;application/x-lha&#8217;,<br />
  &#8216;lhx&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;list&#8217;   => &#8216;text/plain&#8217;,<br />
  &#8216;lma&#8217;    => &#8216;audio/nspaudio&#8217;,<br />
  &#8216;lma&#8217;    => &#8216;audio/x-nspaudio&#8217;,<br />
  &#8216;log&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;lsp&#8217;    => &#8216;application/x-lisp&#8217;,<br />
  &#8216;lsp&#8217;    => &#8216;text/x-script.lisp&#8217;,<br />
  &#8216;lst&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;lsx&#8217;    => &#8216;text/x-la-asf&#8217;,<br />
  &#8216;ltx&#8217;    => &#8216;application/x-latex&#8217;,<br />
  &#8216;lzh&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;lzh&#8217;    => &#8216;application/x-lzh&#8217;,<br />
  &#8216;lzx&#8217;    => &#8216;application/lzx&#8217;,<br />
  &#8216;lzx&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;lzx&#8217;    => &#8216;application/x-lzx&#8217;,<br />
  &#8216;m&#8217;      => &#8216;text/plain&#8217;,<br />
  &#8216;m&#8217;      => &#8216;text/x-m&#8217;,<br />
  &#8216;m1v&#8217;    => &#8216;video/mpeg&#8217;,<br />
  &#8216;m2a&#8217;    => &#8216;audio/mpeg&#8217;,<br />
  &#8216;m2v&#8217;    => &#8216;video/mpeg&#8217;,<br />
  &#8216;m3u&#8217;    => &#8216;audio/x-mpequrl&#8217;,<br />
  &#8216;man&#8217;    => &#8216;application/x-troff-man&#8217;,<br />
  &#8216;map&#8217;    => &#8216;application/x-navimap&#8217;,<br />
  &#8216;mar&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;mbd&#8217;    => &#8216;application/mbedlet&#8217;,<br />
  &#8216;mc$&#8217;    => &#8216;application/x-magic-cap-package-1.0&#8242;,<br />
  &#8216;mcd&#8217;    => &#8216;application/mcad&#8217;,<br />
  &#8216;mcd&#8217;    => &#8216;application/x-mathcad&#8217;,<br />
  &#8216;mcf&#8217;    => &#8216;image/vasa&#8217;,<br />
  &#8216;mcf&#8217;    => &#8216;text/mcf&#8217;,<br />
  &#8216;mcp&#8217;    => &#8216;application/netmc&#8217;,<br />
  &#8216;me&#8217;     => &#8216;application/x-troff-me&#8217;,<br />
  &#8216;mht&#8217;    => &#8216;message/rfc822&#8242;,<br />
  &#8216;mhtml&#8217;  => &#8216;message/rfc822&#8242;,<br />
  &#8216;mid&#8217;    => &#8216;application/x-midi&#8217;,<br />
  &#8216;mid&#8217;    => &#8216;audio/midi&#8217;,<br />
  &#8216;mid&#8217;    => &#8216;audio/x-mid&#8217;,<br />
  &#8216;mid&#8217;    => &#8216;audio/x-midi&#8217;,<br />
  &#8216;mid&#8217;    => &#8216;music/crescendo&#8217;,<br />
  &#8216;mid&#8217;    => &#8216;x-music/x-midi&#8217;,<br />
  &#8216;midi&#8217;   => &#8216;application/x-midi&#8217;,<br />
  &#8216;midi&#8217;   => &#8216;audio/midi&#8217;,<br />
  &#8216;midi&#8217;   => &#8216;audio/x-mid&#8217;,<br />
  &#8216;midi&#8217;   => &#8216;audio/x-midi&#8217;,<br />
  &#8216;midi&#8217;   => &#8216;music/crescendo&#8217;,<br />
  &#8216;midi&#8217;   => &#8216;x-music/x-midi&#8217;,<br />
  &#8216;mif&#8217;    => &#8216;application/x-frame&#8217;,<br />
  &#8216;mif&#8217;    => &#8216;application/x-mif&#8217;,<br />
  &#8216;mime&#8217;   => &#8216;message/rfc822&#8242;,<br />
  &#8216;mime&#8217;   => &#8216;www/mime&#8217;,<br />
  &#8216;mjf&#8217;    => &#8216;audio/x-vnd.audioexplosion.mjuicemediafile&#8217;,<br />
  &#8216;mjpg&#8217;   => &#8216;video/x-motion-jpeg&#8217;,<br />
  &#8216;mm&#8217;     => &#8216;application/base64&#8242;,<br />
  &#8216;mm&#8217;     => &#8216;application/x-meme&#8217;,<br />
  &#8216;mme&#8217;    => &#8216;application/base64&#8242;,<br />
  &#8216;mod&#8217;    => &#8216;audio/mod&#8217;,<br />
  &#8216;mod&#8217;    => &#8216;audio/x-mod&#8217;,<br />
  &#8216;moov&#8217;   => &#8216;video/quicktime&#8217;,<br />
  &#8216;mov&#8217;    => &#8216;video/quicktime&#8217;,<br />
  &#8216;movie&#8217;  => &#8216;video/x-sgi-movie&#8217;,<br />
  &#8216;mp2&#8242;    => &#8216;audio/mpeg&#8217;,<br />
  &#8216;mp2&#8242;    => &#8216;audio/x-mpeg&#8217;,<br />
  &#8216;mp2&#8242;    => &#8216;video/mpeg&#8217;,<br />
  &#8216;mp2&#8242;    => &#8216;video/x-mpeg&#8217;,<br />
  &#8216;mp2&#8242;    => &#8216;video/x-mpeq2a&#8217;,<br />
  &#8216;mp3&#8242;    => &#8216;audio/mpeg3&#8242;,<br />
  &#8216;mp3&#8242;    => &#8216;audio/x-mpeg-3&#8242;,<br />
  &#8216;mp3&#8242;    => &#8216;video/mpeg&#8217;,<br />
  &#8216;mp3&#8242;    => &#8216;video/x-mpeg&#8217;,<br />
  &#8216;mpa&#8217;    => &#8216;audio/mpeg&#8217;,<br />
  &#8216;mpa&#8217;    => &#8216;video/mpeg&#8217;,<br />
  &#8216;mpc&#8217;    => &#8216;application/x-project&#8217;,<br />
  &#8216;mpe&#8217;    => &#8216;video/mpeg&#8217;,<br />
  &#8216;mpeg&#8217;   => &#8216;video/mpeg&#8217;,<br />
  &#8216;mpg&#8217;    => &#8216;audio/mpeg&#8217;,<br />
  &#8216;mpg&#8217;    => &#8216;video/mpeg&#8217;,<br />
  &#8216;mpga&#8217;   => &#8216;audio/mpeg&#8217;,<br />
  &#8216;mpp&#8217;    => &#8216;application/vnd.ms-project&#8217;,<br />
  &#8216;mpt&#8217;    => &#8216;application/x-project&#8217;,<br />
  &#8216;mpv&#8217;    => &#8216;application/x-project&#8217;,<br />
  &#8216;mpx&#8217;    => &#8216;application/x-project&#8217;,<br />
  &#8216;mrc&#8217;    => &#8216;application/marc&#8217;,<br />
  &#8216;ms&#8217;     => &#8216;application/x-troff-ms&#8217;,<br />
  &#8216;mv&#8217;     => &#8216;video/x-sgi-movie&#8217;,<br />
  &#8216;my&#8217;     => &#8216;audio/make&#8217;,<br />
  &#8216;mzz&#8217;    => &#8216;application/x-vnd.audioexplosion.mzz&#8217;,<br />
  &#8216;nap&#8217;    => &#8216;image/naplps&#8217;,<br />
  &#8216;naplps&#8217; => &#8216;image/naplps&#8217;,<br />
  &#8216;nc&#8217;     => &#8216;application/x-netcdf&#8217;,<br />
  &#8216;ncm&#8217;    => &#8216;application/vnd.nokia.configuration-message&#8217;,<br />
  &#8216;nif&#8217;    => &#8216;image/x-niff&#8217;,<br />
  &#8216;niff&#8217;   => &#8216;image/x-niff&#8217;,<br />
  &#8216;nix&#8217;    => &#8216;application/x-mix-transfer&#8217;,<br />
  &#8216;nsc&#8217;    => &#8216;application/x-conference&#8217;,<br />
  &#8216;nvd&#8217;    => &#8216;application/x-navidoc&#8217;,<br />
  &#8216;o&#8217;      => &#8216;application/octet-stream&#8217;,<br />
  &#8216;oda&#8217;    => &#8216;application/oda&#8217;,<br />
  &#8216;omc&#8217;    => &#8216;application/x-omc&#8217;,<br />
  &#8216;omcd&#8217;   => &#8216;application/x-omcdatamaker&#8217;,<br />
  &#8216;omcr&#8217;   => &#8216;application/x-omcregerator&#8217;,<br />
  &#8216;p&#8217;      => &#8216;text/x-pascal&#8217;,<br />
  &#8216;p10&#8242;    => &#8216;application/pkcs10&#8242;,<br />
  &#8216;p10&#8242;    => &#8216;application/x-pkcs10&#8242;,<br />
  &#8216;p12&#8242;    => &#8216;application/pkcs-12&#8242;,<br />
  &#8216;p12&#8242;    => &#8216;application/x-pkcs12&#8242;,<br />
  &#8216;p7a&#8217;    => &#8216;application/x-pkcs7-signature&#8217;,<br />
  &#8216;p7c&#8217;    => &#8216;application/pkcs7-mime&#8217;,<br />
  &#8216;p7c&#8217;    => &#8216;application/x-pkcs7-mime&#8217;,<br />
  &#8216;p7m&#8217;    => &#8216;application/pkcs7-mime&#8217;,<br />
  &#8216;p7m&#8217;    => &#8216;application/x-pkcs7-mime&#8217;,<br />
  &#8216;p7r&#8217;    => &#8216;application/x-pkcs7-certreqresp&#8217;,<br />
  &#8216;p7s&#8217;    => &#8216;application/pkcs7-signature&#8217;,<br />
  &#8216;part&#8217;   => &#8216;application/pro_eng&#8217;,<br />
  &#8216;pas&#8217;    => &#8216;text/pascal&#8217;,<br />
  &#8216;pbm&#8217;    => &#8216;image/x-portable-bitmap&#8217;,<br />
  &#8216;pcl&#8217;    => &#8216;application/vnd.hp-pcl&#8217;,<br />
  &#8216;pcl&#8217;    => &#8216;application/x-pcl&#8217;,<br />
  &#8216;pct&#8217;    => &#8216;image/x-pict&#8217;,<br />
  &#8216;pcx&#8217;    => &#8216;image/x-pcx&#8217;,<br />
  &#8216;pdb&#8217;    => &#8216;chemical/x-pdb&#8217;,<br />
  &#8216;pdf&#8217;    => &#8216;application/pdf&#8217;,<br />
  &#8216;pfunk&#8217;  => &#8216;audio/make&#8217;,<br />
  &#8216;pfunk&#8217;  => &#8216;audio/make.my.funk&#8217;,<br />
  &#8216;pgm&#8217;    => &#8216;image/x-portable-graymap&#8217;,<br />
  &#8216;pgm&#8217;    => &#8216;image/x-portable-greymap&#8217;,<br />
  &#8216;pic&#8217;    => &#8216;image/pict&#8217;,<br />
  &#8216;pict&#8217;   => &#8216;image/pict&#8217;,<br />
  &#8216;pkg&#8217;    => &#8216;application/x-newton-compatible-pkg&#8217;,<br />
  &#8216;pko&#8217;    => &#8216;application/vnd.ms-pki.pko&#8217;,<br />
  &#8216;pl&#8217;     => &#8216;text/plain&#8217;,<br />
  &#8216;pl&#8217;     => &#8216;text/x-script.perl&#8217;,<br />
  &#8216;plx&#8217;    => &#8216;application/x-pixclscript&#8217;,<br />
  &#8216;pm&#8217;     => &#8216;image/x-xpixmap&#8217;,<br />
  &#8216;pm&#8217;     => &#8216;text/x-script.perl-module&#8217;,<br />
  &#8216;pm4&#8242;    => &#8216;application/x-pagemaker&#8217;,<br />
  &#8216;pm5&#8242;    => &#8216;application/x-pagemaker&#8217;,<br />
  &#8216;png&#8217;    => &#8216;image/png&#8217;,<br />
  &#8216;pnm&#8217;    => &#8216;application/x-portable-anymap&#8217;,<br />
  &#8216;pnm&#8217;    => &#8216;image/x-portable-anymap&#8217;,<br />
  &#8216;pot&#8217;    => &#8216;application/mspowerpoint&#8217;,<br />
  &#8216;pot&#8217;    => &#8216;application/vnd.ms-powerpoint&#8217;,<br />
  &#8216;pov&#8217;    => &#8216;model/x-pov&#8217;,<br />
  &#8216;ppa&#8217;    => &#8216;application/vnd.ms-powerpoint&#8217;,<br />
  &#8216;ppm&#8217;    => &#8216;image/x-portable-pixmap&#8217;,<br />
  &#8216;pps&#8217;    => &#8216;application/mspowerpoint&#8217;,<br />
  &#8216;pps&#8217;    => &#8216;application/vnd.ms-powerpoint&#8217;,<br />
  &#8216;ppt&#8217;    => &#8216;application/mspowerpoint&#8217;,<br />
  &#8216;ppt&#8217;    => &#8216;application/powerpoint&#8217;,<br />
  &#8216;ppt&#8217;    => &#8216;application/vnd.ms-powerpoint&#8217;,<br />
  &#8216;ppt&#8217;    => &#8216;application/x-mspowerpoint&#8217;,<br />
  &#8216;ppz&#8217;    => &#8216;application/mspowerpoint&#8217;,<br />
  &#8216;pre&#8217;    => &#8216;application/x-freelance&#8217;,<br />
  &#8216;prt&#8217;    => &#8216;application/pro_eng&#8217;,<br />
  &#8216;ps&#8217;     => &#8216;application/postscript&#8217;,<br />
  &#8216;psd&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;pvu&#8217;    => &#8216;paleovu/x-pv&#8217;,<br />
  &#8216;pwz&#8217;    => &#8216;application/vnd.ms-powerpoint&#8217;,<br />
  &#8216;py&#8217;     => &#8216;text/x-script.phyton&#8217;,<br />
  &#8216;pyc&#8217;    => &#8216;applicaiton/x-bytecode.python&#8217;,<br />
  &#8216;qcp&#8217;    => &#8216;audio/vnd.qcelp&#8217;,<br />
  &#8216;qd3&#8242;    => &#8216;x-world/x-3dmf&#8217;,<br />
  &#8216;qd3d&#8217;   => &#8216;x-world/x-3dmf&#8217;,<br />
  &#8216;qif&#8217;    => &#8216;image/x-quicktime&#8217;,<br />
  &#8216;qt&#8217;     => &#8216;video/quicktime&#8217;,<br />
  &#8216;qtc&#8217;    => &#8216;video/x-qtc&#8217;,<br />
  &#8216;qti&#8217;    => &#8216;image/x-quicktime&#8217;,<br />
  &#8216;qtif&#8217;   => &#8216;image/x-quicktime&#8217;,<br />
  &#8216;ra&#8217;     => &#8216;audio/x-pn-realaudio&#8217;,<br />
  &#8216;ra&#8217;     => &#8216;audio/x-pn-realaudio-plugin&#8217;,<br />
  &#8216;ra&#8217;     => &#8216;audio/x-realaudio&#8217;,<br />
  &#8216;ram&#8217;    => &#8216;audio/x-pn-realaudio&#8217;,<br />
  &#8216;ras&#8217;    => &#8216;application/x-cmu-raster&#8217;,<br />
  &#8216;ras&#8217;    => &#8216;image/cmu-raster&#8217;,<br />
  &#8216;ras&#8217;    => &#8216;image/x-cmu-raster&#8217;,<br />
  &#8216;rast&#8217;   => &#8216;image/cmu-raster&#8217;,<br />
  &#8216;rexx&#8217;   => &#8216;text/x-script.rexx&#8217;,<br />
  &#8216;rf&#8217;     => &#8216;image/vnd.rn-realflash&#8217;,<br />
  &#8216;rgb&#8217;    => &#8216;image/x-rgb&#8217;,<br />
  &#8216;rm&#8217;     => &#8216;application/vnd.rn-realmedia&#8217;,<br />
  &#8216;rm&#8217;     => &#8216;audio/x-pn-realaudio&#8217;,<br />
  &#8216;rmi&#8217;    => &#8216;audio/mid&#8217;,<br />
  &#8216;rmm&#8217;    => &#8216;audio/x-pn-realaudio&#8217;,<br />
  &#8216;rmp&#8217;    => &#8216;audio/x-pn-realaudio&#8217;,<br />
  &#8216;rmp&#8217;    => &#8216;audio/x-pn-realaudio-plugin&#8217;,<br />
  &#8216;rng&#8217;    => &#8216;application/ringing-tones&#8217;,<br />
  &#8216;rng&#8217;    => &#8216;application/vnd.nokia.ringing-tone&#8217;,<br />
  &#8216;rnx&#8217;    => &#8216;application/vnd.rn-realplayer&#8217;,<br />
  &#8216;roff&#8217;   => &#8216;application/x-troff&#8217;,<br />
  &#8216;rp&#8217;     => &#8216;image/vnd.rn-realpix&#8217;,<br />
  &#8216;rpm&#8217;    => &#8216;audio/x-pn-realaudio-plugin&#8217;,<br />
  &#8216;rt&#8217;     => &#8216;text/richtext&#8217;,<br />
  &#8216;rt&#8217;     => &#8216;text/vnd.rn-realtext&#8217;,<br />
  &#8216;rtf&#8217;    => &#8216;application/rtf&#8217;,<br />
  &#8216;rtf&#8217;    => &#8216;application/x-rtf&#8217;,<br />
  &#8216;rtf&#8217;    => &#8216;text/richtext&#8217;,<br />
  &#8216;rtx&#8217;    => &#8216;application/rtf&#8217;,<br />
  &#8216;rtx&#8217;    => &#8216;text/richtext&#8217;,<br />
  &#8216;rv&#8217;     => &#8216;video/vnd.rn-realvideo&#8217;,<br />
  &#8217;s&#8217;      => &#8216;text/x-asm&#8217;,<br />
  &#8217;s3m&#8217;    => &#8216;audio/s3m&#8217;,<br />
  &#8217;saveme&#8217; => &#8216;application/octet-stream&#8217;,<br />
  &#8217;sbk&#8217;    => &#8216;application/x-tbook&#8217;,<br />
  &#8217;scm&#8217;    => &#8216;application/x-lotusscreencam&#8217;,<br />
  &#8217;scm&#8217;    => &#8216;text/x-script.guile&#8217;,<br />
  &#8217;scm&#8217;    => &#8216;text/x-script.scheme&#8217;,<br />
  &#8217;scm&#8217;    => &#8216;video/x-scm&#8217;,<br />
  &#8217;sdml&#8217;   => &#8216;text/plain&#8217;,<br />
  &#8217;sdp&#8217;    => &#8216;application/sdp&#8217;,<br />
  &#8217;sdp&#8217;    => &#8216;application/x-sdp&#8217;,<br />
  &#8217;sdr&#8217;    => &#8216;application/sounder&#8217;,<br />
  &#8217;sea&#8217;    => &#8216;application/sea&#8217;,<br />
  &#8217;sea&#8217;    => &#8216;application/x-sea&#8217;,<br />
  &#8217;set&#8217;    => &#8216;application/set&#8217;,<br />
  &#8217;sgm&#8217;    => &#8216;text/sgml&#8217;,<br />
  &#8217;sgm&#8217;    => &#8216;text/x-sgml&#8217;,<br />
  &#8217;sgml&#8217;   => &#8216;text/sgml&#8217;,<br />
  &#8217;sgml&#8217;   => &#8216;text/x-sgml&#8217;,<br />
  &#8217;sh&#8217;     => &#8216;application/x-bsh&#8217;,<br />
  &#8217;sh&#8217;     => &#8216;application/x-sh&#8217;,<br />
  &#8217;sh&#8217;     => &#8216;application/x-shar&#8217;,<br />
  &#8217;sh&#8217;     => &#8216;text/x-script.sh&#8217;,<br />
  &#8217;shar&#8217;   => &#8216;application/x-bsh&#8217;,<br />
  &#8217;shar&#8217;   => &#8216;application/x-shar&#8217;,<br />
  &#8217;shtml&#8217;  => &#8216;text/html&#8217;,<br />
  &#8217;shtml&#8217;  => &#8216;text/x-server-parsed-html&#8217;,<br />
  &#8217;sid&#8217;    => &#8216;audio/x-psid&#8217;,<br />
  &#8217;sit&#8217;    => &#8216;application/x-sit&#8217;,<br />
  &#8217;sit&#8217;    => &#8216;application/x-stuffit&#8217;,<br />
  &#8217;skd&#8217;    => &#8216;application/x-koan&#8217;,<br />
  &#8217;skm&#8217;    => &#8216;application/x-koan&#8217;,<br />
  &#8217;skp&#8217;    => &#8216;application/x-koan&#8217;,<br />
  &#8217;skt&#8217;    => &#8216;application/x-koan&#8217;,<br />
  &#8217;sl&#8217;     => &#8216;application/x-seelogo&#8217;,<br />
  &#8217;smi&#8217;    => &#8216;application/smil&#8217;,<br />
  &#8217;smil&#8217;   => &#8216;application/smil&#8217;,<br />
  &#8217;snd&#8217;    => &#8216;audio/basic&#8217;,<br />
  &#8217;snd&#8217;    => &#8216;audio/x-adpcm&#8217;,<br />
  &#8217;sol&#8217;    => &#8216;application/solids&#8217;,<br />
  &#8217;spc&#8217;    => &#8216;application/x-pkcs7-certificates&#8217;,<br />
  &#8217;spc&#8217;    => &#8216;text/x-speech&#8217;,<br />
  &#8217;spl&#8217;    => &#8216;application/futuresplash&#8217;,<br />
  &#8217;spr&#8217;    => &#8216;application/x-sprite&#8217;,<br />
  &#8217;sprite&#8217; => &#8216;application/x-sprite&#8217;,<br />
  &#8217;src&#8217;    => &#8216;application/x-wais-source&#8217;,<br />
  &#8217;ssi&#8217;    => &#8216;text/x-server-parsed-html&#8217;,<br />
  &#8217;ssm&#8217;    => &#8216;application/streamingmedia&#8217;,<br />
  &#8217;sst&#8217;    => &#8216;application/vnd.ms-pki.certstore&#8217;,<br />
  &#8217;step&#8217;   => &#8216;application/step&#8217;,<br />
  &#8217;stl&#8217;    => &#8216;application/sla&#8217;,<br />
  &#8217;stl&#8217;    => &#8216;application/vnd.ms-pki.stl&#8217;,<br />
  &#8217;stl&#8217;    => &#8216;application/x-navistyle&#8217;,<br />
  &#8217;stp&#8217;    => &#8216;application/step&#8217;,<br />
  &#8217;sv4cpio&#8217;=> &#8216;application/x-sv4cpio&#8217;,<br />
  &#8217;sv4crc&#8217; => &#8216;application/x-sv4crc&#8217;,<br />
  &#8217;svf&#8217;    => &#8216;image/vnd.dwg&#8217;,<br />
  &#8217;svf&#8217;    => &#8216;image/x-dwg&#8217;,<br />
  &#8217;svr&#8217;    => &#8216;application/x-world&#8217;,<br />
  &#8217;svr&#8217;    => &#8216;x-world/x-svr&#8217;,<br />
  &#8217;swf&#8217;    => &#8216;application/x-shockwave-flash&#8217;,<br />
  &#8216;t&#8217;      => &#8216;application/x-troff&#8217;,<br />
  &#8216;talk&#8217;   => &#8216;text/x-speech&#8217;,<br />
  &#8216;tar&#8217;    => &#8216;application/x-tar&#8217;,<br />
  &#8216;tbk&#8217;    => &#8216;application/toolbook&#8217;,<br />
  &#8216;tbk&#8217;    => &#8216;application/x-tbook&#8217;,<br />
  &#8216;tcl&#8217;    => &#8216;application/x-tcl&#8217;,<br />
  &#8216;tcl&#8217;    => &#8216;text/x-script.tcl&#8217;,<br />
  &#8216;tcsh&#8217;   => &#8216;text/x-script.tcsh&#8217;,<br />
  &#8216;tex&#8217;    => &#8216;application/x-tex&#8217;,<br />
  &#8216;texi&#8217;   => &#8216;application/x-texinfo&#8217;,<br />
  &#8216;texinfo&#8217;=> &#8216;application/x-texinfo&#8217;,<br />
  &#8216;text&#8217;   => &#8216;application/plain&#8217;,<br />
  &#8216;text&#8217;   => &#8216;text/plain&#8217;,<br />
  &#8216;tgz&#8217;    => &#8216;application/gnutar&#8217;,<br />
  &#8216;tgz&#8217;    => &#8216;application/x-compressed&#8217;,<br />
  &#8216;tif&#8217;    => &#8216;image/tiff&#8217;,<br />
  &#8216;tif&#8217;    => &#8216;image/x-tiff&#8217;,<br />
  &#8216;tiff&#8217;   => &#8216;image/tiff&#8217;,<br />
  &#8216;tiff&#8217;   => &#8216;image/x-tiff&#8217;,<br />
  &#8216;tr&#8217;     => &#8216;application/x-troff&#8217;,<br />
  &#8216;tsi&#8217;    => &#8216;audio/tsp-audio&#8217;,<br />
  &#8216;tsp&#8217;    => &#8216;application/dsptype&#8217;,<br />
  &#8216;tsp&#8217;    => &#8216;audio/tsplayer&#8217;,<br />
  &#8216;tsv&#8217;    => &#8216;text/tab-separated-values&#8217;,<br />
  &#8216;turbot&#8217; => &#8216;image/florian&#8217;,<br />
  &#8216;txt&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;uil&#8217;    => &#8216;text/x-uil&#8217;,<br />
  &#8216;uni&#8217;    => &#8216;text/uri-list&#8217;,<br />
  &#8216;unis&#8217;   => &#8216;text/uri-list&#8217;,<br />
  &#8216;unv&#8217;    => &#8216;application/i-deas&#8217;,<br />
  &#8216;uri&#8217;    => &#8216;text/uri-list&#8217;,<br />
  &#8216;uris&#8217;   => &#8216;text/uri-list&#8217;,<br />
  &#8216;ustar&#8217;  => &#8216;application/x-ustar&#8217;,<br />
  &#8216;ustar&#8217;  => &#8216;multipart/x-ustar&#8217;,<br />
  &#8216;uu&#8217;     => &#8216;application/octet-stream&#8217;,<br />
  &#8216;uu&#8217;     => &#8216;text/x-uuencode&#8217;,<br />
  &#8216;uue&#8217;    => &#8216;text/x-uuencode&#8217;,<br />
  &#8216;vcd&#8217;    => &#8216;application/x-cdlink&#8217;,<br />
  &#8216;vcs&#8217;    => &#8216;text/x-vcalendar&#8217;,<br />
  &#8216;vda&#8217;    => &#8216;application/vda&#8217;,<br />
  &#8216;vdo&#8217;    => &#8216;video/vdo&#8217;,<br />
  &#8216;vew&#8217;    => &#8216;application/groupwise&#8217;,<br />
  &#8216;viv&#8217;    => &#8216;video/vivo&#8217;,<br />
  &#8216;viv&#8217;    => &#8216;video/vnd.vivo&#8217;,<br />
  &#8216;vivo&#8217;   => &#8216;video/vivo&#8217;,<br />
  &#8216;vivo&#8217;   => &#8216;video/vnd.vivo&#8217;,<br />
  &#8216;vmd&#8217;    => &#8216;application/vocaltec-media-desc&#8217;,<br />
  &#8216;vmf&#8217;    => &#8216;application/vocaltec-media-file&#8217;,<br />
  &#8216;voc&#8217;    => &#8216;audio/voc&#8217;,<br />
  &#8216;voc&#8217;    => &#8216;audio/x-voc&#8217;,<br />
  &#8216;vos&#8217;    => &#8216;video/vosaic&#8217;,<br />
  &#8216;vox&#8217;    => &#8216;audio/voxware&#8217;,<br />
  &#8216;vqe&#8217;    => &#8216;audio/x-twinvq-plugin&#8217;,<br />
  &#8216;vqf&#8217;    => &#8216;audio/x-twinvq&#8217;,<br />
  &#8216;vql&#8217;    => &#8216;audio/x-twinvq-plugin&#8217;,<br />
  &#8216;vrml&#8217;   => &#8216;application/x-vrml&#8217;,<br />
  &#8216;vrml&#8217;   => &#8216;model/vrml&#8217;,<br />
  &#8216;vrml&#8217;   => &#8216;x-world/x-vrml&#8217;,<br />
  &#8216;vrt&#8217;    => &#8216;x-world/x-vrt&#8217;,<br />
  &#8216;vsd&#8217;    => &#8216;application/x-visio&#8217;,<br />
  &#8216;vst&#8217;    => &#8216;application/x-visio&#8217;,<br />
  &#8216;vsw&#8217;    => &#8216;application/x-visio&#8217;,<br />
  &#8216;w60&#8242;    => &#8216;application/wordperfect6.0&#8242;,<br />
  &#8216;w61&#8242;    => &#8216;application/wordperfect6.1&#8242;,<br />
  &#8216;w6w&#8217;    => &#8216;application/msword&#8217;,<br />
  &#8216;wav&#8217;    => &#8216;audio/wav&#8217;,<br />
  &#8216;wav&#8217;    => &#8216;audio/x-wav&#8217;,<br />
  &#8216;wb1&#8242;    => &#8216;application/x-qpro&#8217;,<br />
  &#8216;wbmp&#8217;   => &#8216;image/vnd.wap.wbmp&#8217;,<br />
  &#8216;web&#8217;    => &#8216;application/vnd.xara&#8217;,<br />
  &#8216;wiz&#8217;    => &#8216;application/msword&#8217;,<br />
  &#8216;wk1&#8242;    => &#8216;application/x-123&#8242;,<br />
  &#8216;wmf&#8217;    => &#8216;windows/metafile&#8217;,<br />
  &#8216;wml&#8217;    => &#8216;text/vnd.wap.wml&#8217;,<br />
  &#8216;wmlc&#8217;   => &#8216;application/vnd.wap.wmlc&#8217;,<br />
  &#8216;wmls&#8217;   => &#8216;text/vnd.wap.wmlscript&#8217;,<br />
  &#8216;wmlsc&#8217;  => &#8216;application/vnd.wap.wmlscriptc&#8217;,<br />
  &#8216;word&#8217;   => &#8216;application/msword&#8217;,<br />
  &#8216;wp&#8217;     => &#8216;application/wordperfect&#8217;,<br />
  &#8216;wp5&#8242;    => &#8216;application/wordperfect&#8217;,<br />
  &#8216;wp5&#8242;    => &#8216;application/wordperfect6.0&#8242;,<br />
  &#8216;wp6&#8242;    => &#8216;application/wordperfect&#8217;,<br />
  &#8216;wpd&#8217;    => &#8216;application/wordperfect&#8217;,<br />
  &#8216;wpd&#8217;    => &#8216;application/x-wpwin&#8217;,<br />
  &#8216;wq1&#8242;    => &#8216;application/x-lotus&#8217;,<br />
  &#8216;wri&#8217;    => &#8216;application/mswrite&#8217;,<br />
  &#8216;wri&#8217;    => &#8216;application/x-wri&#8217;,<br />
  &#8216;wrl&#8217;    => &#8216;application/x-world&#8217;,<br />
  &#8216;wrl&#8217;    => &#8216;model/vrml&#8217;,<br />
  &#8216;wrl&#8217;    => &#8216;x-world/x-vrml&#8217;,<br />
  &#8216;wrz&#8217;    => &#8216;model/vrml&#8217;,<br />
  &#8216;wrz&#8217;    => &#8216;x-world/x-vrml&#8217;,<br />
  &#8216;wsc&#8217;    => &#8216;text/scriplet&#8217;,<br />
  &#8216;wsrc&#8217;   => &#8216;application/x-wais-source&#8217;,<br />
  &#8216;wtk&#8217;    => &#8216;application/x-wintalk&#8217;,<br />
  &#8216;xbm&#8217;    => &#8216;image/x-xbitmap&#8217;,<br />
  &#8216;xbm&#8217;    => &#8216;image/x-xbm&#8217;,<br />
  &#8216;xbm&#8217;    => &#8216;image/xbm&#8217;,<br />
  &#8216;xdr&#8217;    => &#8216;video/x-amt-demorun&#8217;,<br />
  &#8216;xgz&#8217;    => &#8216;xgl/drawing&#8217;,<br />
  &#8216;xif&#8217;    => &#8216;image/vnd.xiff&#8217;,<br />
  &#8216;xl&#8217;     => &#8216;application/excel&#8217;,<br />
  &#8216;xla&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xla&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xla&#8217;    => &#8216;application/x-msexcel&#8217;,<br />
  &#8216;xlb&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xlb&#8217;    => &#8216;application/vnd.ms-excel&#8217;,<br />
  &#8216;xlb&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xlc&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xlc&#8217;    => &#8216;application/vnd.ms-excel&#8217;,<br />
  &#8216;xlc&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xld&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xld&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xlk&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xlk&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xll&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xll&#8217;    => &#8216;application/vnd.ms-excel&#8217;,<br />
  &#8216;xll&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xlm&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xlm&#8217;    => &#8216;application/vnd.ms-excel&#8217;,<br />
  &#8216;xlm&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xls&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xls&#8217;    => &#8216;application/vnd.ms-excel&#8217;,<br />
  &#8216;xls&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xls&#8217;    => &#8216;application/x-msexcel&#8217;,<br />
  &#8216;xlt&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xlt&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xlv&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xlv&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xlw&#8217;    => &#8216;application/excel&#8217;,<br />
  &#8216;xlw&#8217;    => &#8216;application/vnd.ms-excel&#8217;,<br />
  &#8216;xlw&#8217;    => &#8216;application/x-excel&#8217;,<br />
  &#8216;xlw&#8217;    => &#8216;application/x-msexcel&#8217;,<br />
  &#8216;xm&#8217;     => &#8216;audio/xm&#8217;,<br />
  &#8216;xml&#8217;    => &#8216;application/xml&#8217;,<br />
  &#8216;xml&#8217;    => &#8216;text/xml&#8217;,<br />
  &#8216;xmz&#8217;    => &#8216;xgl/movie&#8217;,<br />
  &#8216;xpix&#8217;   => &#8216;application/x-vnd.ls-xpix&#8217;,<br />
  &#8216;xpm&#8217;    => &#8216;image/x-xpixmap&#8217;,<br />
  &#8216;xpm&#8217;    => &#8216;image/xpm&#8217;,<br />
  &#8216;x-png&#8217;  => &#8216;image/png&#8217;,<br />
  &#8216;xsr&#8217;    => &#8216;video/x-amt-showrun&#8217;,<br />
  &#8216;xwd&#8217;    => &#8216;image/x-xwd&#8217;,<br />
  &#8216;xwd&#8217;    => &#8216;image/x-xwindowdump&#8217;,<br />
  &#8216;xyz&#8217;    => &#8216;chemical/x-pdb&#8217;,<br />
  &#8216;z&#8217;      => &#8216;application/x-compress&#8217;,<br />
  &#8216;z&#8217;      => &#8216;application/x-compressed&#8217;,<br />
  &#8216;zip&#8217;    => &#8216;application/x-compressed&#8217;,<br />
  &#8216;zip&#8217;    => &#8216;application/x-zip-compressed&#8217;,<br />
  &#8216;zip&#8217;    => &#8216;application/zip&#8217;,<br />
  &#8216;zip&#8217;    => &#8216;multipart/x-zip&#8217;,<br />
  &#8216;zoo&#8217;    => &#8216;application/octet-stream&#8217;,<br />
  &#8216;zsh&#8217;    => &#8216;text/x-script.zsh&#8217;,<br />
  &#8216;txt&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;htm&#8217;    => &#8216;text/html&#8217;,<br />
  &#8216;html&#8217;   => &#8216;text/html&#8217;,<br />
  &#8216;php&#8217;    => &#8216;application/x-httpd-php&#8217;,<br />
  &#8216;phps&#8217;   => &#8216;application/x-httpd-phps&#8217;,<br />
  &#8216;css&#8217;    => &#8216;text/css&#8217;,<br />
  &#8216;js&#8217;     => &#8216;application/javascript&#8217;,<br />
  &#8216;json&#8217;   => &#8216;application/json&#8217;,<br />
  &#8216;xml&#8217;    => &#8216;application/xml&#8217;,<br />
  &#8217;swf&#8217;    => &#8216;application/x-shockwave-flash&#8217;,<br />
  &#8216;flv&#8217;    => &#8216;video/x-flv&#8217;,<br />
  &#8216;asc&#8217;    => &#8216;text/plain&#8217;,<br />
  &#8216;atom&#8217;   => &#8216;application/atom+xml&#8217;,<br />
  &#8216;bcpio&#8217;  => &#8216;application/x-bcpio&#8217;,<br />
  &#8216;png&#8217;    => &#8216;image/png&#8217;,<br />
  &#8216;jpe&#8217;    => &#8216;image/jpeg&#8217;,<br />
  &#8216;jpeg&#8217;   => &#8216;image/jpeg&#8217;,<br />
  &#8216;jpg&#8217;    => &#8216;image/jpeg&#8217;,<br />
  &#8216;gif&#8217;    => &#8216;image/gif&#8217;,<br />
  &#8216;bmp&#8217;    => &#8216;image/bmp&#8217;,<br />
  &#8216;ico&#8217;    => &#8216;image/vnd.microsoft.icon&#8217;,<br />
  &#8216;tiff&#8217;   => &#8216;image/tiff&#8217;,<br />
  &#8216;tif&#8217;    => &#8216;image/tiff&#8217;,<br />
  &#8217;svg&#8217;    => &#8216;image/svg+xml&#8217;,<br />
  &#8217;svgz&#8217;   => &#8216;image/svg+xml&#8217;,<br />
  &#8216;zip&#8217;    => &#8216;application/zip&#8217;,<br />
  &#8216;rar&#8217;    => &#8216;application/x-rar-compressed&#8217;,<br />
  &#8216;exe&#8217;    => &#8216;application/x-msdownload&#8217;,<br />
  &#8216;msi&#8217;    => &#8216;application/x-msdownload&#8217;,<br />
  &#8216;cab&#8217;    => &#8216;application/vnd.ms-cab-compressed&#8217;,<br />
  &#8216;mp3&#8242;    => &#8216;audio/mpeg&#8217;,<br />
  &#8216;qt&#8217;     => &#8216;video/quicktime&#8217;,<br />
  &#8216;mov&#8217;    => &#8216;video/quicktime&#8217;,<br />
  &#8216;au&#8217;     => &#8216;audio/basic&#8217;,<br />
  &#8216;avi&#8217;    => &#8216;video/x-msvideo&#8217;,<br />
  &#8216;pdf&#8217;    => &#8216;application/pdf&#8217;,<br />
  &#8216;psd&#8217;    => &#8216;image/vnd.adobe.photoshop&#8217;,<br />
  &#8216;ai&#8217;     => &#8216;application/postscript&#8217;,<br />
  &#8216;eps&#8217;    => &#8216;application/postscript&#8217;,<br />
  &#8216;ps&#8217;     => &#8216;application/postscript&#8217;,<br />
  &#8216;aif&#8217;    => &#8216;audio/x-aiff&#8217;,<br />
  &#8216;aifc&#8217;   => &#8216;audio/x-aiff&#8217;,<br />
  &#8216;aiff&#8217;   => &#8216;audio/x-aiff&#8217;,<br />
  &#8216;doc&#8217;    => &#8216;application/msword&#8217;,<br />
  &#8216;rtf&#8217;    => &#8216;application/rtf&#8217;,<br />
  &#8216;xls&#8217;    => &#8216;application/vnd.ms-excel&#8217;,<br />
  &#8216;ppt&#8217;    => &#8216;application/vnd.ms-powerpoint&#8217;,<br />
  &#8216;odt&#8217;    => &#8216;application/vnd.oasis.opendocument.text&#8217;,<br />
  &#8216;ods&#8217;    => &#8216;application/vnd.oasis.opendocument.spreadsheet&#8217;,<br />
  &#8217;swf&#8217;    => &#8216;application/x-shockwave-flash&#8217;,<br />
  &#8217;swf&#8217;    => &#8216;application/x-shockwave-flash2-preview&#8217;,<br />
  &#8217;swf&#8217;    => &#8216;application/futuresplash&#8217;,<br />
  &#8217;swf&#8217;    => &#8216;image/vnd.rn-realflash&#8217;<br />
);</p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2010/01/mime-type-list-and-file-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using PHP_SELF Safely and submitting forms to the same page</title>
		<link>http://harrybailey.com/2009/12/using-php_self-safely-and-submitting-forms-to-the-same-page/</link>
		<comments>http://harrybailey.com/2009/12/using-php_self-safely-and-submitting-forms-to-the-same-page/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 00:54:55 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Methods]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=374</guid>
		<description><![CDATA[I&#8217;ve lost count of the number of times i&#8217;ve seen this bit of HTML / PHP:

&#60;form method=&#34;post&#34; action=&#34;&#60;?php print $_SERVER&#91;'PHP_SELF&#34;]; ?&#62;&#34;&#62;

Looks pretty harmless doesn&#8217;t it, but it is a pretty dangerous shortcut to use. Imagin I get a user to visit the page the form is on by following this link, maybe hiding it in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve lost count of the number of times i&#8217;ve seen this bit of HTML / PHP:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;">&lt;form method=&quot;post&quot; action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">print</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="">'PHP_SELF&quot;]; ?&gt;&quot;&gt;</span></pre></div></div>

<p>Looks pretty harmless doesn&#8217;t it, but it is a pretty dangerous shortcut to use. Imagin I get a user to visit the page the form is on by following this link, maybe hiding it in a short url:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">http<span style="color: #339933;">:</span><span style="color: #006600; font-style: italic;">//example.com/formpage.php?&quot;&gt;&lt;script&gt;alert(document.cookie);&lt;/script&gt;</span></pre></div></div>

<p>where I&#8217;ve added some html into the url which contains a script tag.</p>
<p>I could use this method to grab all your cookies and log in as you, or send ajax requests back to the site on your behalf. All very frightening. The quick solution is to turn html characters into their harmless entities using the php function htmlspecialchars. So the code would be</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;">&lt;form method=&quot;post&quot; action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">print</span> <span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>; <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;</pre></div></div>

<p>But wait! The best way to submit to the same page with a form is to use and empty action attribute. It&#8217;s valid and it works.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;form method=&quot;post&quot; action=&quot;&quot;&gt;</pre></div></div>

<p> Don&#8217;t believe me? Go tell Jesse. He also wrote about <a href="http://www.thefutureoftheweb.com/blog/use-empty-form-action-submit-to-current">empty action attributes</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2009/12/using-php_self-safely-and-submitting-forms-to-the-same-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing a PHP Coda Plugin</title>
		<link>http://harrybailey.com/2009/06/writing-a-php-coda-plugin/</link>
		<comments>http://harrybailey.com/2009/06/writing-a-php-coda-plugin/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 01:16:06 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[apps]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=337</guid>
		<description><![CDATA[Sound like a right pain in the arse? It&#8217;s surprisingly simple actually&#8230;.
The steps to creating a simple locally run php Coda plugin:
You must have php installed and running locally.
Start the plugin file with theses lines:

#!/usr/bin/php -q
&#60;?php

(no space between < and ?php)
Where /use/bin/php is the path to you local php install

This is an example of replacing [...]]]></description>
			<content:encoded><![CDATA[<p>Sound like a right pain in the arse? It&#8217;s surprisingly simple actually&#8230;.</p>
<p>The steps to creating a simple locally run php Coda plugin:</p>
<p>You must have php installed and running locally.<br />
Start the plugin file with theses lines:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;">#!/usr/bin/php -q
<span style="color: #000000; font-weight: bold;">&lt;?php</span></pre></div></div>

<p>(no space between < and ?php)</p>
<p>Where /use/bin/php is the path to you local php install</p>
<p><span id="more-337"></span></p>
<p>This is an example of replacing a text string with an imaginary tag &#8216;harry&#8217; around it.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;">#!/usr/bin/php
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* a coda plugin */</span>
&nbsp;
<span style="color: #000088;">$input</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span>;
&nbsp;
<span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;php://stdin&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$line</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fgets</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$input</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$line</span>;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span>;
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;">// so now we have input text in $input</span>
&nbsp;
<span style="color: #990000;">print</span> <span style="">'&lt;harry&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$input</span> <span style="color: #339933;">.</span> <span style="">'&lt;/harry&gt;'</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>For much more information:<br />
<a href="http://www.panic.com/coda/developer/howto/plugins.php">http://www.panic.com/coda/developer/howto/plugins.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2009/06/writing-a-php-coda-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sending To Multiple Twitter Accounts From One Device using SMS (text message)</title>
		<link>http://harrybailey.com/2009/05/sending-to-multiple-twitter-accounts-from-one-device-using-sms-text-message/</link>
		<comments>http://harrybailey.com/2009/05/sending-to-multiple-twitter-accounts-from-one-device-using-sms-text-message/#comments</comments>
		<pubDate>Tue, 19 May 2009 16:14:20 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[The Web]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=314</guid>
		<description><![CDATA[Update: You can now signup and help in testing. http://bucket.harrybailey.com
I have been working on something recently to make my Twitter life a lot easier.
I don&#8217;t have an iPhone and I&#8217;m not planning one getting on in the near future, so I send sms messages to Twitter to update my status. Simple enough when you have [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update: You can now signup and help in testing.</strong> <a href="http://bucket.harrybailey.com">http://bucket.harrybailey.com</a></p>
<p>I have been working on something recently to make my Twitter life a lot easier.</p>
<p>I don&#8217;t have an iPhone and I&#8217;m not planning one getting on in the near future, so I send sms messages to Twitter to update my status. Simple enough when you have one Twitter account. You just add your device ( phone ) to Twitter, tell it when to send you sms messages, and what to send you and off you go.</p>
<p>Sadly you can only apply a device to one Twitter account and can only send updated to one account from your device via sms.</p>
<p>Until now!</p>
<p><span id="more-314"></span></p>
<p>I sat down one evening with a lovely cup of tea and had a good think. The twitter api allows access to account updates, @replies and direct messages so their must be a way to allow the update of many accounts from one device.</p>
<p>What I came up with is called bucket. You can add as multiple Twitter accounts to bucket and then can update them by sending sms to your bucket account.</p>
<p>You bucket account is just another Twitter account with no followers and set to private, so if ( like me ) you are on Vodafone in the UK, it is <del datetime="2010-01-04T19:46:18+00:00">still completely free</del> just the price of a text ( or part of your monthly allowance ).</p>
<p>Additionally you can ask bucket to collect any @replies sent to your registered accounts and send them to you ( using your bucket accounts direct message ) using sms.</p>
<p>So you can send to multiple accounts, can receive @replies from multiple accounts and can use the standard Twitter sms methods to get any updates you want from your friends accounts.</p>
<p>Facebook status support should be added soon, and then from there the sky is the limit.</p>
<p>Bucket is currently very young and needs some testing, so if you would like an account, add a comment to this post which includes your Twitter account, and I&#8217;ll send an invite to you via direct message on Twitter.</p>
<p><strong>Update: You can now signup and help in testing.</strong> <a href="http://bucket.harrybailey.com">http://bucket.harrybailey.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2009/05/sending-to-multiple-twitter-accounts-from-one-device-using-sms-text-message/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Facebook Preload FQL Help</title>
		<link>http://harrybailey.com/2009/05/facebook-preload-fql-help/</link>
		<comments>http://harrybailey.com/2009/05/facebook-preload-fql-help/#comments</comments>
		<pubDate>Thu, 07 May 2009 00:16:00 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=300</guid>
		<description><![CDATA[Facebook have a beta feature on their platform api called Preload FQL. It allows you to specify an FQL call to take place before the request for the page is made from your servers. This could save a full round trip of api request if you&#8217;re clever about it.
Well the wiki article is quite large [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook have a beta feature on their platform api called <a href="http://wiki.developers.facebook.com/index.php/Preload_FQL">Preload FQL</a>. It allows you to specify an FQL call to take place before the request for the page is made from your servers. This could save a full round trip of api request if you&#8217;re clever about it.</p>
<p>Well the wiki article is quite large but misses a few points I thought it worth noting&#8230;</p>
<p><span id="more-300"></span></p>
<h3>1) You need to escape all forward slashes with a backslash</h3>
<p>In the regexp / always needs to be submitted as \/</p>
<h3>2) The url they match again is the full callback url you submitted for your app not the canvas url</h3>
<p>You aren&#8217;t matching just the file names, you can match back down the folders.<br />
So if you use a folder called myapp/ for your index page then your url regexp could be &#8216;myapp\/$&#8217; for the home page<br />
You could then do &#8216;myapp\/anotherpage\.php$ for a different file and &#8216;myapp\/folder\/$ for another folder</p>
<h3>3) Whatever keys you use in the submitted array are used as the new $_POST var keys</h3>
<p>They take your array key &#8216;user_app_friends&#8217; below and append &#8216;fb_sig_&#8217; to it. The final key would be &#8216;fb_sig_user_app_friends&#8217; in this case</p>
<h3>4) You can submit multiple matches in one api request</h3>
<p>Although the examples only show:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$fetch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="">'user_app_friends'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
				<span style="">'pattern'</span> <span style="color: #339933;">=&gt;</span> <span style="">'myapp\/$'</span><span style="color: #339933;">,</span> 
				<span style="">'query'</span> <span style="color: #339933;">=&gt;</span> <span style="">'SELECT uid FROM user WHERE has_added_app=1 and uid IN (SELECT uid2 FROM friend WHERE uid1 = {*user*})'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#41;</span>;
<span style="color: #000088;">$facebook</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api_client</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">admin_setAppProperties</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="">'preload_fql'</span> <span style="color: #339933;">=&gt;</span> json_encode<span style="color: #009900;">&#40;</span><span style="color: #000088;">$fetch</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>You could submit:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$fetch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="">'user_app_friends'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
				<span style="">'pattern'</span> <span style="color: #339933;">=&gt;</span> <span style="">'myapp\/$'</span><span style="color: #339933;">,</span> 
				<span style="">'query'</span> <span style="color: #339933;">=&gt;</span> <span style="">'SELECT uid FROM user WHERE has_added_app=1 and uid IN (SELECT uid2 FROM friend WHERE uid1 = {*user*})'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="">'user_friends'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
				<span style="">'pattern'</span> <span style="color: #339933;">=&gt;</span> <span style="">'myapp\/.+$'</span><span style="color: #339933;">,</span>
				<span style="">'query'</span> <span style="color: #339933;">=&gt;</span> <span style="">'SELECT uid2 FROM friend WHERE uid1 = {*user*}'</span>
				<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#41;</span>;
<span style="color: #000088;">$facebook</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api_client</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">admin_setAppProperties</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="">'preload_fql'</span> <span style="color: #339933;">=&gt;</span> json_encode<span style="color: #009900;">&#40;</span><span style="color: #000088;">$fetch</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<h3>5) The easiest way to get data back from the new $_POST variables in json_decode</h3>
<p>Stick the $_POST variable into json_decode(); and then use var_dump to see what you get. It&#8217;s usually pretty obvious.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$user_app_friends</span> <span style="color: #339933;">=</span> json_decode<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="">'fb_sig_user_app_friends'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user_app_friends</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2009/05/facebook-preload-fql-help/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Internet Banking and Webhooks Part 2</title>
		<link>http://harrybailey.com/2009/05/internet-banking-and-webhooks-part-2/</link>
		<comments>http://harrybailey.com/2009/05/internet-banking-and-webhooks-part-2/#comments</comments>
		<pubDate>Wed, 06 May 2009 09:00:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=294</guid>
		<description><![CDATA[On the 1st May I wrote a quick article about how Internet Banking Drags it&#8217;s heals when it comes to new technology. See the first Internet Banking and Webhooks article.
To sidetrack for a second. When I post or update this blog, a twitter tweet is sent automatically to my twitter account to inform anyone who [...]]]></description>
			<content:encoded><![CDATA[<p>On the 1st May I wrote a quick article about how Internet Banking Drags it&#8217;s heals when it comes to new technology. See the first <a href="http://harrybailey.com/2009/05/internet-banking-and-webhooks/">Internet Banking and Webhooks</a> article.</p>
<p>To sidetrack for a second. When I post or update this blog, a twitter tweet is sent automatically to my <a href="https://twitter.com/alittlebitgeeky">twitter account</a> to inform anyone who cares. Well just this morning <a href="http://twitter.com/anzmoneymanager" rel="external nofollow">ANZMoneyManager</a> &#8216;followed me&#8217; ( is that the right term? ). I can only assume it&#8217;s because of the previous post and me tweeting about it on there. They seem to be pretty pro-active when it comes to twitter and blog comments.</p>
<p><span id="more-294"></span></p>
<p>Anyhow, back on track. ANZ Money Manager is a financial aggregator. It takes the login details for all your bank accounts and stores them securely online. It then logs into those accounts regularly and using some clever black magic, mashes all the information together and uses it to offer you a view of all your accounts in one place. It also offers email alerts for some events for those accounts. ANZ is based in Australia and New Zealand, but their Money Manager is available to anyone worldwide and covers most of the major banks in it&#8217;s services.</p>
<p>The truth however is that ANZ Money Manager is actually just the monkey, while the organ grinder, and the creator of the tool is <a href="http://www.yodlee.com" rel="external nofollow">Yodlee</a>.</p>
<p>I signed up for an accounts with both ANZ and Yodlee to compare. Both sets of terms say they might sell some information anonymously, but there is nothing particularly scary in them.</p>
<p>After having a poke around I can tell you that I think ANZ is quite nice, but has it&#8217;s fair share of bugs.<br />
I added an account. The system added it twice. This also happened at Yodlee. Deactivating (hiding) one copy solved the issue quickly.<br />
Their are multiple browser specific design issues on the ANZ site. I took screens and will send to their feedback address.<br />
Many of the features are in Australian Dollars ( AUD ) only. Yodlee offers a selection of currencies when you sign-up.</p>
<p>As for Yodlee, they don&#8217;t seem to offer Virgin UK credit card accounts, while ANZ do. Strange? I have requested it be added to Yodlee as they must offer it for it to appear on ANZ.</p>
<p>So this is a step forward from <a href="http://egg.com" rel="external nofollow">Egg Money Manager</a>, which stores account details on your computer in a &#8217;safe&#8217;, but can&#8217;t offer alerts or update without your input, but email alerts can only go so far. </p>
<p>I suppose you could use email alerts in combination with a <a href="http://harrybailey.com/2009/02/send-or-pipe-an-email-to-a-php-script/">Pipe Email to PHP Script</a> to make them more flexible, but you are still only getting limited information to act on, and it&#8217;s likely to break as soon as the email layout is changed.</p>
<p>So next I plan to send Yodlee a list of nice developer tools they could consider, which would include webhooks and a possible limited API. Lets push the limits!</p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2009/05/internet-banking-and-webhooks-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Create A Fluid Facebook Publisher Interface</title>
		<link>http://harrybailey.com/2009/05/how-to-create-a-fluid-facebook-publisher-interface/</link>
		<comments>http://harrybailey.com/2009/05/how-to-create-a-fluid-facebook-publisher-interface/#comments</comments>
		<pubDate>Mon, 04 May 2009 21:20:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://harrybailey.com/?p=290</guid>
		<description><![CDATA[Facebook recently changed their publisher inface, again.
The publisher interface is what you see on all profile pages and on your home page. It is how you change your status, and can use it to publish link and photos too. The final option is to use one of you applications who offer a publisher.
Because the publisher [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook recently changed their publisher inface, again.</p>
<p>The publisher interface is what you see on all profile pages and on your home page. It is how you change your status, and can use it to publish link and photos too. The final option is to use one of you applications who offer a publisher.</p>
<p>Because the publisher is now used on the home and profile pages which have different widths, and Facebook have yet to document any explanation of how to make your publisher interface inline easily I spend a bit of time tinkering.</p>
<p><span id="more-290"></span></p>
<p>So if your apps publisher interface is currently popping up in a dialog, and you want it inline, there are the steps I know to work. You may need to do more or less.</p>
<p>1) Use a containing div with no width set to it<br />
2) Ensure any tables have width:100% on them<br />
3) Ensure the total maximum width is less than 376px<br />
4) Use as few fixes width as possible</p>
<p>Only once you have completed the steps above, go to your app settings and on the profile tab, change the option to inline instead of dialog. If you are already on inline, switch to dialog, save, and then switch back.</p>
<p>Currently, one big pain in the backside.</p>
]]></content:encoded>
			<wfw:commentRss>http://harrybailey.com/2009/05/how-to-create-a-fluid-facebook-publisher-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
