Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mimemagic
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ikcrm_common
mimemagic
Commits
e51cc73f
Commit
e51cc73f
authored
May 28, 2010
by
minad
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switch to nokogiri for table generation
parent
3d465c9b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
525 additions
and
525 deletions
+525
-525
lib/mimemagic_tables.rb
+508
-508
script/generate-mime.rb
+17
-17
No files found.
lib/mimemagic_tables.rb
View file @
e51cc73f
...
@@ -696,514 +696,514 @@ class MimeMagic
...
@@ -696,514 +696,514 @@ class MimeMagic
'zoo'
=>
'application/x-zoo'
,
'zoo'
=>
'application/x-zoo'
,
}
}
TYPES
=
{
TYPES
=
{
'application/andrew-inset'
=>
[
[
"ez"
],
[]
],
'application/andrew-inset'
=>
[
%w(ez)
,
%w()
],
'application/annodex'
=>
[
[
"anx"
],
[]
],
'application/annodex'
=>
[
%w(anx)
,
%w()
],
'application/atom+xml'
=>
[
[
"atom"
],
[
"application/xml"
]
],
'application/atom+xml'
=>
[
%w(atom)
,
%w(application/xml)
],
'application/dicom'
=>
[
[
"dcm"
],
[]
],
'application/dicom'
=>
[
%w(dcm)
,
%w()
],
'application/docbook+xml'
=>
[
[
"docbook"
],
[
"application/xml"
]
],
'application/docbook+xml'
=>
[
%w(docbook)
,
%w(application/xml)
],
'application/ecmascript'
=>
[
[
"es"
],
[
"text/plain"
]
],
'application/ecmascript'
=>
[
%w(es)
,
%w(text/plain)
],
'application/epub+zip'
=>
[
[
"epub"
],
[]
],
'application/epub+zip'
=>
[
%w(epub)
,
%w()
],
'application/gnunet-directory'
=>
[
[
"gnd"
],
[]
],
'application/gnunet-directory'
=>
[
%w(gnd)
,
%w()
],
'application/illustrator'
=>
[
[
"ai"
],
[]
],
'application/illustrator'
=>
[
%w(ai)
,
%w()
],
'application/javascript'
=>
[
[
"js"
],
[
"text/x-csrc"
]
],
'application/javascript'
=>
[
%w(js)
,
%w(text/x-csrc)
],
'application/mathematica'
=>
[
[
"nb"
],
[
"text/plain"
]
],
'application/mathematica'
=>
[
%w(nb)
,
%w(text/plain)
],
'application/mathml+xml'
=>
[
[
"mml"
],
[
"application/xml"
]
],
'application/mathml+xml'
=>
[
%w(mml)
,
%w(application/xml)
],
'application/mbox'
=>
[
[
"mbox"
],
[
"text/plain"
]
],
'application/mbox'
=>
[
%w(mbox)
,
%w(text/plain)
],
'application/metalink+xml'
=>
[
[
"metalink"
],
[
"application/xml"
]
],
'application/metalink+xml'
=>
[
%w(metalink)
,
%w(application/xml)
],
'application/msword'
=>
[
[
"doc"
],
[
"application/x-ole-storage"
]
],
'application/msword'
=>
[
%w(doc)
,
%w(application/x-ole-storage)
],
'application/msword-template'
=>
[
[
"dot"
],
[
"application/msword"
]
],
'application/msword-template'
=>
[
%w(dot)
,
%w(application/msword)
],
'application/mxf'
=>
[
[
"mxf"
],
[]
],
'application/mxf'
=>
[
%w(mxf)
,
%w()
],
'application/octet-stream'
=>
[
[
"bin"
],
[]
],
'application/octet-stream'
=>
[
%w(bin)
,
%w()
],
'application/oda'
=>
[
[
"oda"
],
[]
],
'application/oda'
=>
[
%w(oda)
,
%w()
],
'application/ogg'
=>
[
[
"ogx"
],
[]
],
'application/ogg'
=>
[
%w(ogx)
,
%w()
],
'application/pdf'
=>
[
[
"pdf"
],
[]
],
'application/pdf'
=>
[
%w(pdf)
,
%w()
],
'application/pgp-encrypted'
=>
[
[
"asc"
,
"gpg"
,
"pgp"
],
[]
],
'application/pgp-encrypted'
=>
[
%w(asc gpg pgp)
,
%w()
],
'application/pgp-keys'
=>
[
[
"asc"
,
"pkr"
,
"skr"
],
[
"text/plain"
]
],
'application/pgp-keys'
=>
[
%w(asc pkr skr)
,
%w(text/plain)
],
'application/pkcs10'
=>
[
[
"p10"
],
[]
],
'application/pkcs10'
=>
[
%w(p10)
,
%w()
],
'application/pkcs7-signature'
=>
[
[
"p7s"
],
[
"text/plain"
]
],
'application/pkcs7-signature'
=>
[
%w(p7s)
,
%w(text/plain)
],
'application/pkix-cert'
=>
[
[
"cer"
],
[]
],
'application/pkix-cert'
=>
[
%w(cer)
,
%w()
],
'application/pkix-crl'
=>
[
[
"crl"
],
[]
],
'application/pkix-crl'
=>
[
%w(crl)
,
%w()
],
'application/pkix-pkipath'
=>
[
[
"pkipath"
],
[]
],
'application/pkix-pkipath'
=>
[
%w(pkipath)
,
%w()
],
'application/postscript'
=>
[
[
"ps"
],
[
"text/plain"
]
],
'application/postscript'
=>
[
%w(ps)
,
%w(text/plain)
],
'application/ram'
=>
[
[
"ram"
],
[
"text/plain"
]
],
'application/ram'
=>
[
%w(ram)
,
%w(text/plain)
],
'application/rdf+xml'
=>
[
[
"owl"
,
"rdf"
,
"rdfs"
],
[
"application/xml"
]
],
'application/rdf+xml'
=>
[
%w(owl rdf rdfs)
,
%w(application/xml)
],
'application/rss+xml'
=>
[
[
"rss"
],
[
"application/xml"
]
],
'application/rss+xml'
=>
[
%w(rss)
,
%w(application/xml)
],
'application/rtf'
=>
[
[
"rtf"
],
[
"text/plain"
]
],
'application/rtf'
=>
[
%w(rtf)
,
%w(text/plain)
],
'application/sdp'
=>
[
[
"sdp"
],
[]
],
'application/sdp'
=>
[
%w(sdp)
,
%w()
],
'application/sieve'
=>
[
[
"siv"
],
[
"application/xml"
]
],
'application/sieve'
=>
[
%w(siv)
,
%w(application/xml)
],
'application/smil'
=>
[
[
"kino"
,
"smi"
,
"smil"
,
"sml"
],
[
"application/xml"
]
],
'application/smil'
=>
[
%w(kino smi smil sml)
,
%w(application/xml)
],
'application/vnd.apple.mpegurl'
=>
[
[
"m3u"
,
"m3u8"
],
[]
],
'application/vnd.apple.mpegurl'
=>
[
%w(m3u m3u8)
,
%w()
],
'application/vnd.corel-draw'
=>
[
[
"cdr"
],
[]
],
'application/vnd.corel-draw'
=>
[
%w(cdr)
,
%w()
],
'application/vnd.emusic-emusic_package'
=>
[
[
"emp"
],
[]
],
'application/vnd.emusic-emusic_package'
=>
[
%w(emp)
,
%w()
],
'application/vnd.google-earth.kml+xml'
=>
[
[
"kml"
],
[
"application/xml"
]
],
'application/vnd.google-earth.kml+xml'
=>
[
%w(kml)
,
%w(application/xml)
],
'application/vnd.google-earth.kmz'
=>
[
[
"kmz"
],
[
"application/zip"
]
],
'application/vnd.google-earth.kmz'
=>
[
%w(kmz)
,
%w(application/zip)
],
'application/vnd.hp-hpgl'
=>
[
[
"hpgl"
],
[]
],
'application/vnd.hp-hpgl'
=>
[
%w(hpgl)
,
%w()
],
'application/vnd.hp-pcl'
=>
[
[
"pcl"
],
[]
],
'application/vnd.hp-pcl'
=>
[
%w(pcl)
,
%w()
],
'application/vnd.iccprofile'
=>
[
[
"icc"
,
"icm"
],
[]
],
'application/vnd.iccprofile'
=>
[
%w(icc icm)
,
%w()
],
'application/vnd.lotus-1-2-3'
=>
[
[
"123"
,
"wk1"
,
"wk3"
,
"wk4"
,
"wks"
],
[]
],
'application/vnd.lotus-1-2-3'
=>
[
%w(123 wk1 wk3 wk4 wks)
,
%w()
],
'application/vnd.mozilla.xul+xml'
=>
[
[
"xul"
],
[
"application/xml"
]
],
'application/vnd.mozilla.xul+xml'
=>
[
%w(xul)
,
%w(application/xml)
],
'application/vnd.ms-access'
=>
[
[
"mdb"
],
[]
],
'application/vnd.ms-access'
=>
[
%w(mdb)
,
%w()
],
'application/vnd.ms-cab-compressed'
=>
[
[
"cab"
],
[]
],
'application/vnd.ms-cab-compressed'
=>
[
%w(cab)
,
%w()
],
'application/vnd.ms-excel'
=>
[
[
"xla"
,
"xlc"
,
"xld"
,
"xll"
,
"xlm"
,
"xls"
,
"xlt"
,
"xlw"
],
[]
],
'application/vnd.ms-excel'
=>
[
%w(xla xlc xld xll xlm xls xlt xlw)
,
%w()
],
'application/vnd.ms-powerpoint'
=>
[
[
"pot"
,
"pps"
,
"ppt"
,
"ppz"
],
[]
],
'application/vnd.ms-powerpoint'
=>
[
%w(pot pps ppt ppz)
,
%w()
],
'application/vnd.ms-tnef'
=>
[
[
"tnef"
,
"tnf"
],
[]
],
'application/vnd.ms-tnef'
=>
[
%w(tnef tnf)
,
%w()
],
'application/vnd.ms-works'
=>
[
[
"wcm"
,
"wdb"
,
"wks"
,
"wps"
],
[
"application/x-ole-storage"
]
],
'application/vnd.ms-works'
=>
[
%w(wcm wdb wks wps)
,
%w(application/x-ole-storage)
],
'application/vnd.ms-wpl'
=>
[
[
"wpl"
],
[]
],
'application/vnd.ms-wpl'
=>
[
%w(wpl)
,
%w()
],
'application/vnd.ms-xpsdocument'
=>
[
[
"xps"
],
[
"application/zip"
]
],
'application/vnd.ms-xpsdocument'
=>
[
%w(xps)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.chart'
=>
[
[
"odc"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.chart'
=>
[
%w(odc)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.chart-template'
=>
[
[
"otc"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.chart-template'
=>
[
%w(otc)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.database'
=>
[
[
"odb"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.database'
=>
[
%w(odb)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.formula'
=>
[
[
"odf"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.formula'
=>
[
%w(odf)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.formula-template'
=>
[
[
"otf"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.formula-template'
=>
[
%w(otf)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.graphics'
=>
[
[
"odg"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.graphics'
=>
[
%w(odg)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.graphics-flat-xml'
=>
[
[
"fodg"
],
[
"application/xml"
]
],
'application/vnd.oasis.opendocument.graphics-flat-xml'
=>
[
%w(fodg)
,
%w(application/xml)
],
'application/vnd.oasis.opendocument.graphics-template'
=>
[
[
"otg"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.graphics-template'
=>
[
%w(otg)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.image'
=>
[
[
"odi"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.image'
=>
[
%w(odi)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.presentation'
=>
[
[
"odp"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.presentation'
=>
[
%w(odp)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.presentation-flat-xml'
=>
[
[
"fodp"
],
[
"application/xml"
]
],
'application/vnd.oasis.opendocument.presentation-flat-xml'
=>
[
%w(fodp)
,
%w(application/xml)
],
'application/vnd.oasis.opendocument.presentation-template'
=>
[
[
"otp"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.presentation-template'
=>
[
%w(otp)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.spreadsheet'
=>
[
[
"ods"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.spreadsheet'
=>
[
%w(ods)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.spreadsheet-flat-xml'
=>
[
[
"fods"
],
[
"application/xml"
]
],
'application/vnd.oasis.opendocument.spreadsheet-flat-xml'
=>
[
%w(fods)
,
%w(application/xml)
],
'application/vnd.oasis.opendocument.spreadsheet-template'
=>
[
[
"ots"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.spreadsheet-template'
=>
[
%w(ots)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.text'
=>
[
[
"odt"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.text'
=>
[
%w(odt)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.text-flat-xml'
=>
[
[
"fodt"
],
[
"application/xml"
]
],
'application/vnd.oasis.opendocument.text-flat-xml'
=>
[
%w(fodt)
,
%w(application/xml)
],
'application/vnd.oasis.opendocument.text-master'
=>
[
[
"odm"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.text-master'
=>
[
%w(odm)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.text-template'
=>
[
[
"ott"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.text-template'
=>
[
%w(ott)
,
%w(application/zip)
],
'application/vnd.oasis.opendocument.text-web'
=>
[
[
"oth"
],
[
"application/zip"
]
],
'application/vnd.oasis.opendocument.text-web'
=>
[
%w(oth)
,
%w(application/zip)
],
'application/vnd.openofficeorg.extension'
=>
[
[
"oxt"
],
[
"application/zip"
]
],
'application/vnd.openofficeorg.extension'
=>
[
%w(oxt)
,
%w(application/zip)
],
'application/vnd.openxmlformats-officedocument.presentationml.presentation'
=>
[
[
"pptm"
,
"pptx"
],
[
"application/zip"
]
],
'application/vnd.openxmlformats-officedocument.presentationml.presentation'
=>
[
%w(pptm pptx)
,
%w(application/zip)
],
'application/vnd.openxmlformats-officedocument.presentationml.slideshow'
=>
[
[
"ppsx"
],
[
"application/zip"
]
],
'application/vnd.openxmlformats-officedocument.presentationml.slideshow'
=>
[
%w(ppsx)
,
%w(application/zip)
],
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
=>
[
[
"xlsm"
,
"xlsx"
],
[
"application/zip"
]
],
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
=>
[
%w(xlsm xlsx)
,
%w(application/zip)
],
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
=>
[
[
"docm"
,
"docx"
],
[
"application/zip"
]
],
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
=>
[
%w(docm docx)
,
%w(application/zip)
],
'application/vnd.rn-realmedia'
=>
[
[
"rm"
,
"rmj"
,
"rmm"
,
"rms"
,
"rmvb"
,
"rmx"
],
[]
],
'application/vnd.rn-realmedia'
=>
[
%w(rm rmj rmm rms rmvb rmx)
,
%w()
],
'application/vnd.stardivision.calc'
=>
[
[
"sdc"
],
[]
],
'application/vnd.stardivision.calc'
=>
[
%w(sdc)
,
%w()
],
'application/vnd.stardivision.chart'
=>
[
[
"sds"
],
[]
],
'application/vnd.stardivision.chart'
=>
[
%w(sds)
,
%w()
],
'application/vnd.stardivision.draw'
=>
[
[
"sda"
],
[]
],
'application/vnd.stardivision.draw'
=>
[
%w(sda)
,
%w()
],
'application/vnd.stardivision.impress'
=>
[
[
"sdd"
,
"sdp"
],
[]
],
'application/vnd.stardivision.impress'
=>
[
%w(sdd sdp)
,
%w()
],
'application/vnd.stardivision.mail'
=>
[
[
"smd"
],
[]
],
'application/vnd.stardivision.mail'
=>
[
%w(smd)
,
%w()
],
'application/vnd.stardivision.math'
=>
[
[
"smf"
],
[]
],
'application/vnd.stardivision.math'
=>
[
%w(smf)
,
%w()
],
'application/vnd.stardivision.writer'
=>
[
[
"sdw"
,
"sgl"
,
"vor"
],
[]
],
'application/vnd.stardivision.writer'
=>
[
%w(sdw sgl vor)
,
%w()
],
'application/vnd.sun.xml.calc'
=>
[
[
"sxc"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.calc'
=>
[
%w(sxc)
,
%w(application/zip)
],
'application/vnd.sun.xml.calc.template'
=>
[
[
"stc"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.calc.template'
=>
[
%w(stc)
,
%w(application/zip)
],
'application/vnd.sun.xml.draw'
=>
[
[
"sxd"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.draw'
=>
[
%w(sxd)
,
%w(application/zip)
],
'application/vnd.sun.xml.draw.template'
=>
[
[
"std"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.draw.template'
=>
[
%w(std)
,
%w(application/zip)
],
'application/vnd.sun.xml.impress'
=>
[
[
"sxi"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.impress'
=>
[
%w(sxi)
,
%w(application/zip)
],
'application/vnd.sun.xml.impress.template'
=>
[
[
"sti"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.impress.template'
=>
[
%w(sti)
,
%w(application/zip)
],
'application/vnd.sun.xml.math'
=>
[
[
"sxm"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.math'
=>
[
%w(sxm)
,
%w(application/zip)
],
'application/vnd.sun.xml.writer'
=>
[
[
"sxw"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.writer'
=>
[
%w(sxw)
,
%w(application/zip)
],
'application/vnd.sun.xml.writer.global'
=>
[
[
"sxg"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.writer.global'
=>
[
%w(sxg)
,
%w(application/zip)
],
'application/vnd.sun.xml.writer.template'
=>
[
[
"stw"
],
[
"application/zip"
]
],
'application/vnd.sun.xml.writer.template'
=>
[
%w(stw)
,
%w(application/zip)
],
'application/vnd.symbian.install'
=>
[
[
"sis"
],
[]
],
'application/vnd.symbian.install'
=>
[
%w(sis)
,
%w()
],
'application/vnd.wordperfect'
=>
[
[
"wp"
,
"wp4"
,
"wp5"
,
"wp6"
,
"wpd"
,
"wpp"
],
[]
],
'application/vnd.wordperfect'
=>
[
%w(wp wp4 wp5 wp6 wpd wpp)
,
%w()
],
'application/x-7z-compressed'
=>
[
[
"7z"
],
[]
],
'application/x-7z-compressed'
=>
[
%w(7z)
,
%w()
],
'application/x-abiword'
=>
[
[
"abw"
,
"abw.crashed"
,
"abw.gz"
,
"zabw"
],
[
"application/xml"
]
],
'application/x-abiword'
=>
[
%w(abw abw.crashed abw.gz zabw)
,
%w(application/xml)
],
'application/x-ace'
=>
[
[
"ace"
],
[]
],
'application/x-ace'
=>
[
%w(ace)
,
%w()
],
'application/x-alz'
=>
[
[
"alz"
],
[]
],
'application/x-alz'
=>
[
%w(alz)
,
%w()
],
'application/x-amipro'
=>
[
[
"sam"
],
[]
],
'application/x-amipro'
=>
[
%w(sam)
,
%w()
],
'application/x-aportisdoc'
=>
[
[
"pdb"
,
"pdc"
],
[
"application/x-palm-database"
]
],
'application/x-aportisdoc'
=>
[
%w(pdb pdc)
,
%w(application/x-palm-database)
],
'application/x-applix-spreadsheet'
=>
[
[
"as"
],
[]
],
'application/x-applix-spreadsheet'
=>
[
%w(as)
,
%w()
],
'application/x-applix-word'
=>
[
[
"aw"
],
[]
],
'application/x-applix-word'
=>
[
%w(aw)
,
%w()
],
'application/x-archive'
=>
[
[
"a"
],
[]
],
'application/x-archive'
=>
[
%w(a)
,
%w()
],
'application/x-arj'
=>
[
[
"arj"
],
[]
],
'application/x-arj'
=>
[
%w(arj)
,
%w()
],
'application/x-asp'
=>
[
[
"asp"
],
[
"text/plain"
]
],
'application/x-asp'
=>
[
%w(asp)
,
%w(text/plain)
],
'application/x-awk'
=>
[
[
"awk"
],
[
"application/x-executable"
,
"text/plain"
]
],
'application/x-awk'
=>
[
%w(awk)
,
%w(application/x-executable text/plain)
],
'application/x-bcpio'
=>
[
[
"bcpio"
],
[]
],
'application/x-bcpio'
=>
[
%w(bcpio)
,
%w()
],
'application/x-bittorrent'
=>
[
[
"torrent"
],
[]
],
'application/x-bittorrent'
=>
[
%w(torrent)
,
%w()
],
'application/x-blender'
=>
[
[
"blend"
,
"blend"
,
"blender"
],
[]
],
'application/x-blender'
=>
[
%w(blend blend blender)
,
%w()
],
'application/x-bzdvi'
=>
[
[
"dvi.bz2"
],
[]
],
'application/x-bzdvi'
=>
[
%w(dvi.bz2)
,
%w()
],
'application/x-bzip'
=>
[
[
"bz"
,
"bz2"
],
[]
],
'application/x-bzip'
=>
[
%w(bz bz2)
,
%w()
],
'application/x-bzip-compressed-tar'
=>
[
[
"tar.bz"
,
"tar.bz2"
,
"tbz"
,
"tbz2"
],
[
"application/x-bzip"
]
],
'application/x-bzip-compressed-tar'
=>
[
%w(tar.bz tar.bz2 tbz tbz2)
,
%w(application/x-bzip)
],
'application/x-bzpdf'
=>
[
[
"pdf.bz2"
],
[]
],
'application/x-bzpdf'
=>
[
%w(pdf.bz2)
,
%w()
],
'application/x-bzpostscript'
=>
[
[
"ps.bz2"
],
[]
],
'application/x-bzpostscript'
=>
[
%w(ps.bz2)
,
%w()
],
'application/x-cb7'
=>
[
[
"cb7"
],
[
"application/x-7z-compressed"
]
],
'application/x-cb7'
=>
[
%w(cb7)
,
%w(application/x-7z-compressed)
],
'application/x-cbr'
=>
[
[
"cbr"
],
[
"application/x-rar"
]
],
'application/x-cbr'
=>
[
%w(cbr)
,
%w(application/x-rar)
],
'application/x-cbt'
=>
[
[
"cbt"
],
[
"application/x-tar"
]
],
'application/x-cbt'
=>
[
%w(cbt)
,
%w(application/x-tar)
],
'application/x-cbz'
=>
[
[
"cbz"
],
[
"application/zip"
]
],
'application/x-cbz'
=>
[
%w(cbz)
,
%w(application/zip)
],
'application/x-cd-image'
=>
[
[
"iso"
,
"iso9660"
],
[]
],
'application/x-cd-image'
=>
[
%w(iso iso9660)
,
%w()
],
'application/x-cdrdao-toc'
=>
[
[
"toc"
],
[
"text/plain"
]
],
'application/x-cdrdao-toc'
=>
[
%w(toc)
,
%w(text/plain)
],
'application/x-chess-pgn'
=>
[
[
"pgn"
],
[
"text/plain"
]
],
'application/x-chess-pgn'
=>
[
%w(pgn)
,
%w(text/plain)
],
'application/x-chm'
=>
[
[
"chm"
],
[]
],
'application/x-chm'
=>
[
%w(chm)
,
%w()
],
'application/x-cisco-vpn-settings'
=>
[
[
"pcf"
],
[]
],
'application/x-cisco-vpn-settings'
=>
[
%w(pcf)
,
%w()
],
'application/x-compress'
=>
[
[
"z"
],
[]
],
'application/x-compress'
=>
[
%w(z)
,
%w()
],
'application/x-compressed-tar'
=>
[
[
"tar.gz"
,
"tgz"
],
[]
],
'application/x-compressed-tar'
=>
[
%w(tar.gz tgz)
,
%w()
],
'application/x-cpio'
=>
[
[
"cpio"
],
[]
],
'application/x-cpio'
=>
[
%w(cpio)
,
%w()
],
'application/x-cpio-compressed'
=>
[
[
"cpio.gz"
],
[]
],
'application/x-cpio-compressed'
=>
[
%w(cpio.gz)
,
%w()
],
'application/x-csh'
=>
[
[
"csh"
],
[
"application/x-shellscript"
,
"text/plain"
]
],
'application/x-csh'
=>
[
%w(csh)
,
%w(application/x-shellscript text/plain)
],
'application/x-cue'
=>
[
[
"cue"
],
[
"text/plain"
]
],
'application/x-cue'
=>
[
%w(cue)
,
%w(text/plain)
],
'application/x-dar'
=>
[
[
"dar"
],
[]
],
'application/x-dar'
=>
[
%w(dar)
,
%w()
],
'application/x-dbf'
=>
[
[
"dbf"
],
[]
],
'application/x-dbf'
=>
[
%w(dbf)
,
%w()
],
'application/x-dc-rom'
=>
[
[
"dc"
],
[]
],
'application/x-dc-rom'
=>
[
%w(dc)
,
%w()
],
'application/x-deb'
=>
[
[
"deb"
],
[]
],
'application/x-deb'
=>
[
%w(deb)
,
%w()
],
'application/x-designer'
=>
[
[
"ui"
],
[]
],
'application/x-designer'
=>
[
%w(ui)
,
%w()
],
'application/x-desktop'
=>
[
[
"desktop"
,
"kdelnk"
],
[
"text/plain"
]
],
'application/x-desktop'
=>
[
%w(desktop kdelnk)
,
%w(text/plain)
],
'application/x-dia-diagram'
=>
[
[
"dia"
],
[
"application/xml"
]
],
'application/x-dia-diagram'
=>
[
%w(dia)
,
%w(application/xml)
],
'application/x-dvi'
=>
[
[
"dvi"
],
[]
],
'application/x-dvi'
=>
[
%w(dvi)
,
%w()
],
'application/x-e-theme'
=>
[
[
"etheme"
],
[]
],
'application/x-e-theme'
=>
[
%w(etheme)
,
%w()
],
'application/x-egon'
=>
[
[
"egon"
],
[]
],
'application/x-egon'
=>
[
%w(egon)
,
%w()
],
'application/x-fictionbook+xml'
=>
[
[
"fb2"
],
[
"application/xml"
]
],
'application/x-fictionbook+xml'
=>
[
%w(fb2)
,
%w(application/xml)
],
'application/x-fluid'
=>
[
[
"fl"
],
[
"text/plain"
]
],
'application/x-fluid'
=>
[
%w(fl)
,
%w(text/plain)
],
'application/x-font-afm'
=>
[
[
"afm"
],
[]
],
'application/x-font-afm'
=>
[
%w(afm)
,
%w()
],
'application/x-font-bdf'
=>
[
[
"bdf"
],
[]
],
'application/x-font-bdf'
=>
[
%w(bdf)
,
%w()
],
'application/x-font-linux-psf'
=>
[
[
"psf"
],
[]
],
'application/x-font-linux-psf'
=>
[
%w(psf)
,
%w()
],
'application/x-font-otf'
=>
[
[
"otf"
],
[]
],
'application/x-font-otf'
=>
[
%w(otf)
,
%w()
],
'application/x-font-pcf'
=>
[
[
"pcf"
,
"pcf.gz"
,
"pcf.z"
],
[]
],
'application/x-font-pcf'
=>
[
%w(pcf pcf.gz pcf.z)
,
%w()
],
'application/x-font-speedo'
=>
[
[
"spd"
],
[]
],
'application/x-font-speedo'
=>
[
%w(spd)
,
%w()
],
'application/x-font-ttf'
=>
[
[
"ttc"
,
"ttf"
],
[]
],
'application/x-font-ttf'
=>
[
%w(ttc ttf)
,
%w()
],
'application/x-font-ttx'
=>
[
[
"ttx"
],
[
"text/xml"
]
],
'application/x-font-ttx'
=>
[
%w(ttx)
,
%w(text/xml)
],
'application/x-font-type1'
=>
[
[
"gsf"
,
"pfa"
,
"pfb"
],
[
"application/postscript"
]
],
'application/x-font-type1'
=>
[
%w(gsf pfa pfb)
,
%w(application/postscript)
],
'application/x-gameboy-rom'
=>
[
[
"gb"
],
[]
],
'application/x-gameboy-rom'
=>
[
%w(gb)
,
%w()
],
'application/x-gba-rom'
=>
[
[
"gba"
],
[]
],
'application/x-gba-rom'
=>
[
%w(gba)
,
%w()
],
'application/x-gedcom'
=>
[
[
"ged"
,
"gedcom"
],
[]
],
'application/x-gedcom'
=>
[
%w(ged gedcom)
,
%w()
],
'application/x-genesis-rom'
=>
[
[
"gen"
,
"md"
],
[]
],
'application/x-genesis-rom'
=>
[
%w(gen md)
,
%w()
],
'application/x-gettext-translation'
=>
[
[
"gmo"
,
"mo"
],
[]
],
'application/x-gettext-translation'
=>
[
%w(gmo mo)
,
%w()
],
'application/x-glade'
=>
[
[
"glade"
],
[
"application/xml"
]
],
'application/x-glade'
=>
[
%w(glade)
,
%w(application/xml)
],
'application/x-gnucash'
=>
[
[
"gnc"
,
"gnucash"
,
"xac"
],
[]
],
'application/x-gnucash'
=>
[
%w(gnc gnucash xac)
,
%w()
],
'application/x-gnumeric'
=>
[
[
"gnumeric"
],
[]
],
'application/x-gnumeric'
=>
[
%w(gnumeric)
,
%w()
],
'application/x-gnuplot'
=>
[
[
"gnuplot"
,
"gp"
,
"gplt"
],
[
"text/plain"
]
],
'application/x-gnuplot'
=>
[
%w(gnuplot gp gplt)
,
%w(text/plain)
],
'application/x-go-sgf'
=>
[
[
"sgf"
],
[
"text/plain"
]
],
'application/x-go-sgf'
=>
[
%w(sgf)
,
%w(text/plain)
],
'application/x-graphite'
=>
[
[
"gra"
],
[]
],
'application/x-graphite'
=>
[
%w(gra)
,
%w()
],
'application/x-gz-font-linux-psf'
=>
[
[
"psf.gz"
],
[
"application/x-gzip"
]
],
'application/x-gz-font-linux-psf'
=>
[
%w(psf.gz)
,
%w(application/x-gzip)
],
'application/x-gzdvi'
=>
[
[
"dvi.gz"
],
[
"application/x-gzip"
]
],
'application/x-gzdvi'
=>
[
%w(dvi.gz)
,
%w(application/x-gzip)
],
'application/x-gzip'
=>
[
[
"gz"
],
[]
],
'application/x-gzip'
=>
[
%w(gz)
,
%w()
],
'application/x-gzpdf'
=>
[
[
"pdf.gz"
],
[
"application/x-gzip"
]
],
'application/x-gzpdf'
=>
[
%w(pdf.gz)
,
%w(application/x-gzip)
],
'application/x-gzpostscript'
=>
[
[
"ps.gz"
],
[
"application/x-gzip"
]
],
'application/x-gzpostscript'
=>
[
%w(ps.gz)
,
%w(application/x-gzip)
],
'application/x-hdf'
=>
[
[
"hdf"
],
[]
],
'application/x-hdf'
=>
[
%w(hdf)
,
%w()
],
'application/x-hwp'
=>
[
[
"hwp"
],
[]
],
'application/x-hwp'
=>
[
%w(hwp)
,
%w()
],
'application/x-hwt'
=>
[
[
"hwt"
],
[]
],
'application/x-hwt'
=>
[
%w(hwt)
,
%w()
],
'application/x-ica'
=>
[
[
"ica"
],
[
"text/plain"
]
],
'application/x-ica'
=>
[
%w(ica)
,
%w(text/plain)
],
'application/x-it87'
=>
[
[
"it87"
],
[
"text/plain"
]
],
'application/x-it87'
=>
[
%w(it87)
,
%w(text/plain)
],
'application/x-java'
=>
[
[
"class"
],
[]
],
'application/x-java'
=>
[
%w(class)
,
%w()
],
'application/x-java-archive'
=>
[
[
"jar"
],
[]
],
'application/x-java-archive'
=>
[
%w(jar)
,
%w()
],
'application/x-java-jce-keystore'
=>
[
[
"jceks"
],
[]
],
'application/x-java-jce-keystore'
=>
[
%w(jceks)
,
%w()
],
'application/x-java-jnlp-file'
=>
[
[
"jnlp"
],
[
"application/xml"
]
],
'application/x-java-jnlp-file'
=>
[
%w(jnlp)
,
%w(application/xml)
],
'application/x-java-keystore'
=>
[
[
"jks"
,
"ks"
],
[]
],
'application/x-java-keystore'
=>
[
%w(jks ks)
,
%w()
],
'application/x-java-pack200'
=>
[
[
"pack"
],
[]
],
'application/x-java-pack200'
=>
[
%w(pack)
,
%w()
],
'application/x-jbuilder-project'
=>
[
[
"jpr"
,
"jpx"
],
[]
],
'application/x-jbuilder-project'
=>
[
%w(jpr jpx)
,
%w()
],
'application/x-karbon'
=>
[
[
"karbon"
],
[]
],
'application/x-karbon'
=>
[
%w(karbon)
,
%w()
],
'application/x-kchart'
=>
[
[
"chrt"
],
[]
],
'application/x-kchart'
=>
[
%w(chrt)
,
%w()
],
'application/x-kexi-connectiondata'
=>
[
[
"kexic"
],
[]
],
'application/x-kexi-connectiondata'
=>
[
%w(kexic)
,
%w()
],
'application/x-kexiproject-shortcut'
=>
[
[
"kexis"
],
[]
],
'application/x-kexiproject-shortcut'
=>
[
%w(kexis)
,
%w()
],
'application/x-kexiproject-sqlite2'
=>
[
[
"kexi"
],
[
"application/x-sqlite2"
]
],
'application/x-kexiproject-sqlite2'
=>
[
%w(kexi)
,
%w(application/x-sqlite2)
],
'application/x-kexiproject-sqlite3'
=>
[
[
"kexi"
],
[
"application/x-sqlite3"
]
],
'application/x-kexiproject-sqlite3'
=>
[
%w(kexi)
,
%w(application/x-sqlite3)
],
'application/x-kformula'
=>
[
[
"kfo"
],
[]
],
'application/x-kformula'
=>
[
%w(kfo)
,
%w()
],
'application/x-killustrator'
=>
[
[
"kil"
],
[]
],
'application/x-killustrator'
=>
[
%w(kil)
,
%w()
],
'application/x-kivio'
=>
[
[
"flw"
],
[]
],
'application/x-kivio'
=>
[
%w(flw)
,
%w()
],
'application/x-kontour'
=>
[
[
"kon"
],
[]
],
'application/x-kontour'
=>
[
%w(kon)
,
%w()
],
'application/x-kpovmodeler'
=>
[
[
"kpm"
],
[]
],
'application/x-kpovmodeler'
=>
[
%w(kpm)
,
%w()
],
'application/x-kpresenter'
=>
[
[
"kpr"
,
"kpt"
],
[]
],
'application/x-kpresenter'
=>
[
%w(kpr kpt)
,
%w()
],
'application/x-krita'
=>
[
[
"kra"
],
[]
],
'application/x-krita'
=>
[
%w(kra)
,
%w()
],
'application/x-kspread'
=>
[
[
"ksp"
],
[]
],
'application/x-kspread'
=>
[
%w(ksp)
,
%w()
],
'application/x-kugar'
=>
[
[
"kud"
],
[]
],
'application/x-kugar'
=>
[
%w(kud)
,
%w()
],
'application/x-kword'
=>
[
[
"kwd"
,
"kwt"
],
[]
],
'application/x-kword'
=>
[
%w(kwd kwt)
,
%w()
],
'application/x-lha'
=>
[
[
"lha"
,
"lzh"
],
[]
],
'application/x-lha'
=>
[
%w(lha lzh)
,
%w()
],
'application/x-lhz'
=>
[
[
"lhz"
],
[]
],
'application/x-lhz'
=>
[
%w(lhz)
,
%w()
],
'application/x-linguist'
=>
[
[
"ts"
],
[]
],
'application/x-linguist'
=>
[
%w(ts)
,
%w()
],
'application/x-lyx'
=>
[
[
"lyx"
],
[
"text/plain"
]
],
'application/x-lyx'
=>
[
%w(lyx)
,
%w(text/plain)
],
'application/x-lzip'
=>
[
[
"lz"
],
[]
],
'application/x-lzip'
=>
[
%w(lz)
,
%w()
],
'application/x-lzma'
=>
[
[
"lzma"
],
[]
],
'application/x-lzma'
=>
[
%w(lzma)
,
%w()
],
'application/x-lzma-compressed-tar'
=>
[
[
"tar.lzma"
,
"tlz"
],
[]
],
'application/x-lzma-compressed-tar'
=>
[
%w(tar.lzma tlz)
,
%w()
],
'application/x-lzop'
=>
[
[
"lzo"
],
[]
],
'application/x-lzop'
=>
[
%w(lzo)
,
%w()
],
'application/x-m4'
=>
[
[
"m4"
],
[
"text/plain"
]
],
'application/x-m4'
=>
[
%w(m4)
,
%w(text/plain)
],
'application/x-magicpoint'
=>
[
[
"mgp"
],
[
"text/plain"
]
],
'application/x-magicpoint'
=>
[
%w(mgp)
,
%w(text/plain)
],
'application/x-markaby'
=>
[
[
"mab"
],
[
"application/x-ruby"
]
],
'application/x-markaby'
=>
[
%w(mab)
,
%w(application/x-ruby)
],
'application/x-mif'
=>
[
[
"mif"
],
[]
],
'application/x-mif'
=>
[
%w(mif)
,
%w()
],
'application/x-ms-dos-executable'
=>
[
[
"exe"
],
[]
],
'application/x-ms-dos-executable'
=>
[
%w(exe)
,
%w()
],
'application/x-msi'
=>
[
[
"msi"
],
[
"application/x-ole-storage"
]
],
'application/x-msi'
=>
[
%w(msi)
,
%w(application/x-ole-storage)
],
'application/x-mswrite'
=>
[
[
"wri"
],
[]
],
'application/x-mswrite'
=>
[
%w(wri)
,
%w()
],
'application/x-msx-rom'
=>
[
[
"msx"
],
[]
],
'application/x-msx-rom'
=>
[
%w(msx)
,
%w()
],
'application/x-n64-rom'
=>
[
[
"n64"
],
[]
],
'application/x-n64-rom'
=>
[
%w(n64)
,
%w()
],
'application/x-navi-animation'
=>
[
[
"ani"
],
[]
],
'application/x-navi-animation'
=>
[
%w(ani)
,
%w()
],
'application/x-nes-rom'
=>
[
[
"nes"
],
[]
],
'application/x-nes-rom'
=>
[
%w(nes)
,
%w()
],
'application/x-netcdf'
=>
[
[
"cdf"
,
"nc"
],
[]
],
'application/x-netcdf'
=>
[
%w(cdf nc)
,
%w()
],
'application/x-netshow-channel'
=>
[
[
"nsc"
],
[
"video/x-ms-asf"
]
],
'application/x-netshow-channel'
=>
[
%w(nsc)
,
%w(video/x-ms-asf)
],
'application/x-nintendo-ds-rom'
=>
[
[
"nds"
],
[]
],
'application/x-nintendo-ds-rom'
=>
[
%w(nds)
,
%w()
],
'application/x-object'
=>
[
[
"o"
],
[]
],
'application/x-object'
=>
[
%w(o)
,
%w()
],
'application/x-oleo'
=>
[
[
"oleo"
],
[]
],
'application/x-oleo'
=>
[
%w(oleo)
,
%w()
],
'application/x-pak'
=>
[
[
"pak"
],
[]
],
'application/x-pak'
=>
[
%w(pak)
,
%w()
],
'application/x-palm-database'
=>
[
[
"pdb"
,
"prc"
],
[]
],
'application/x-palm-database'
=>
[
%w(pdb prc)
,
%w()
],
'application/x-par2'
=>
[
[
"par2"
,
"par2"
],
[]
],
'application/x-par2'
=>
[
%w(par2 par2)
,
%w()
],
'application/x-perl'
=>
[
[
"al"
,
"perl"
,
"pl"
,
"pm"
],
[
"application/x-executable"
,
"text/plain"
]
],
'application/x-perl'
=>
[
%w(al perl pl pm)
,
%w(application/x-executable text/plain)
],
'application/x-php'
=>
[
[
"php"
,
"php3"
,
"php4"
],
[
"text/plain"
]
],
'application/x-php'
=>
[
%w(php php3 php4)
,
%w(text/plain)
],
'application/x-pkcs12'
=>
[
[
"p12"
,
"pfx"
],
[]
],
'application/x-pkcs12'
=>
[
%w(p12 pfx)
,
%w()
],
'application/x-pkcs7-certificates'
=>
[
[
"p7b"
,
"spc"
],
[]
],
'application/x-pkcs7-certificates'
=>
[
%w(p7b spc)
,
%w()
],
'application/x-planperfect'
=>
[
[
"pln"
],
[]
],
'application/x-planperfect'
=>
[
%w(pln)
,
%w()
],
'application/x-pocket-word'
=>
[
[
"psw"
],
[]
],
'application/x-pocket-word'
=>
[
%w(psw)
,
%w()
],
'application/x-pw'
=>
[
[
"pw"
],
[]
],
'application/x-pw'
=>
[
%w(pw)
,
%w()
],
'application/x-python-bytecode'
=>
[
[
"pyc"
,
"pyo"
],
[]
],
'application/x-python-bytecode'
=>
[
%w(pyc pyo)
,
%w()
],
'application/x-quattropro'
=>
[
[
"wb1"
,
"wb2"
,
"wb3"
],
[]
],
'application/x-quattropro'
=>
[
%w(wb1 wb2 wb3)
,
%w()
],
'application/x-quicktime-media-link'
=>
[
[
"qtl"
],
[
"video/quicktime"
]
],
'application/x-quicktime-media-link'
=>
[
%w(qtl)
,
%w(video/quicktime)
],
'application/x-qw'
=>
[
[
"qif"
],
[]
],
'application/x-qw'
=>
[
%w(qif)
,
%w()
],
'application/x-rar'
=>
[
[
"rar"
],
[]
],
'application/x-rar'
=>
[
%w(rar)
,
%w()
],
'application/x-reject'
=>
[
[
"rej"
],
[
"text/plain"
]
],
'application/x-reject'
=>
[
%w(rej)
,
%w(text/plain)
],
'application/x-rpm'
=>
[
[
"rpm"
],
[]
],
'application/x-rpm'
=>
[
%w(rpm)
,
%w()
],
'application/x-ruby'
=>
[
[
"rb"
],
[
"application/x-executable"
,
"text/plain"
]
],
'application/x-ruby'
=>
[
%w(rb)
,
%w(application/x-executable text/plain)
],
'application/x-sami'
=>
[
[
"sami"
,
"smi"
],
[
"text/plain"
]
],
'application/x-sami'
=>
[
%w(sami smi)
,
%w(text/plain)
],
'application/x-shar'
=>
[
[
"shar"
],
[]
],
'application/x-shar'
=>
[
%w(shar)
,
%w()
],
'application/x-shared-library-la'
=>
[
[
"la"
],
[
"text/plain"
]
],
'application/x-shared-library-la'
=>
[
%w(la)
,
%w(text/plain)
],
'application/x-sharedlib'
=>
[
[
"so"
],
[]
],
'application/x-sharedlib'
=>
[
%w(so)
,
%w()
],
'application/x-shellscript'
=>
[
[
"sh"
],
[
"application/x-executable"
,
"text/plain"
]
],
'application/x-shellscript'
=>
[
%w(sh)
,
%w(application/x-executable text/plain)
],
'application/x-shockwave-flash'
=>
[
[
"spl"
,
"swf"
],
[]
],
'application/x-shockwave-flash'
=>
[
%w(spl swf)
,
%w()
],
'application/x-shorten'
=>
[
[
"shn"
],
[]
],
'application/x-shorten'
=>
[
%w(shn)
,
%w()
],
'application/x-siag'
=>
[
[
"siag"
],
[]
],
'application/x-siag'
=>
[
%w(siag)
,
%w()
],
'application/x-smaf'
=>
[
[
"mmf"
,
"smaf"
],
[]
],
'application/x-smaf'
=>
[
%w(mmf smaf)
,
%w()
],
'application/x-sms-rom'
=>
[
[
"gg"
,
"sms"
],
[]
],
'application/x-sms-rom'
=>
[
%w(gg sms)
,
%w()
],
'application/x-snes-rom'
=>
[
[
"smc"
],
[]
],
'application/x-snes-rom'
=>
[
%w(smc)
,
%w()
],
'application/x-spss-por'
=>
[
[
"por"
],
[]
],
'application/x-spss-por'
=>
[
%w(por)
,
%w()
],
'application/x-spss-sav'
=>
[
[
"sav"
],
[]
],
'application/x-spss-sav'
=>
[
%w(sav)
,
%w()
],
'application/x-stuffit'
=>
[
[
"sit"
],
[]
],
'application/x-stuffit'
=>
[
%w(sit)
,
%w()
],
'application/x-subrip'
=>
[
[
"srt"
],
[
"text/plain"
]
],
'application/x-subrip'
=>
[
%w(srt)
,
%w(text/plain)
],
'application/x-sv4cpio'
=>
[
[
"sv4cpio"
],
[]
],
'application/x-sv4cpio'
=>
[
%w(sv4cpio)
,
%w()
],
'application/x-sv4crc'
=>
[
[
"sv4crc"
],
[]
],
'application/x-sv4crc'
=>
[
%w(sv4crc)
,
%w()
],
'application/x-t602'
=>
[
[
"602"
],
[]
],
'application/x-t602'
=>
[
%w(602)
,
%w()
],
'application/x-tar'
=>
[
[
"gtar"
,
"tar"
],
[]
],
'application/x-tar'
=>
[
%w(gtar tar)
,
%w()
],
'application/x-tarz'
=>
[
[
"tar.z"
],
[]
],
'application/x-tarz'
=>
[
%w(tar.z)
,
%w()
],
'application/x-tex-gf'
=>
[
[
"gf"
],
[]
],
'application/x-tex-gf'
=>
[
%w(gf)
,
%w()
],
'application/x-tex-pk'
=>
[
[
"pk"
],
[]
],
'application/x-tex-pk'
=>
[
%w(pk)
,
%w()
],
'application/x-tgif'
=>
[
[
"obj"
],
[]
],
'application/x-tgif'
=>
[
%w(obj)
,
%w()
],
'application/x-theme'
=>
[
[
"theme"
],
[
"application/x-desktop"
]
],
'application/x-theme'
=>
[
%w(theme)
,
%w(application/x-desktop)
],
'application/x-trash'
=>
[
[
"bak"
,
"old"
,
"sik"
],
[]
],
'application/x-trash'
=>
[
%w(bak old sik)
,
%w()
],
'application/x-troff-man'
=>
[
[
"man"
],
[
"text/plain"
]
],
'application/x-troff-man'
=>
[
%w(man)
,
%w(text/plain)
],
'application/x-tzo'
=>
[
[
"tar.lzo"
,
"tzo"
],
[]
],
'application/x-tzo'
=>
[
%w(tar.lzo tzo)
,
%w()
],
'application/x-ufraw'
=>
[
[
"ufraw"
],
[
"text/xml"
]
],
'application/x-ufraw'
=>
[
%w(ufraw)
,
%w(text/xml)
],
'application/x-ustar'
=>
[
[
"ustar"
],
[]
],
'application/x-ustar'
=>
[
%w(ustar)
,
%w()
],
'application/x-wais-source'
=>
[
[
"src"
],
[]
],
'application/x-wais-source'
=>
[
%w(src)
,
%w()
],
'application/x-windows-themepack'
=>
[
[
"themepack"
],
[
"application/vnd.ms-cab-compressed"
]
],
'application/x-windows-themepack'
=>
[
%w(themepack)
,
%w(application/vnd.ms-cab-compressed)
],
'application/x-wpg'
=>
[
[
"wpg"
],
[]
],
'application/x-wpg'
=>
[
%w(wpg)
,
%w()
],
'application/x-x509-ca-cert'
=>
[
[
"cert"
,
"crt"
,
"der"
,
"pem"
],
[]
],
'application/x-x509-ca-cert'
=>
[
%w(cert crt der pem)
,
%w()
],
'application/x-xbel'
=>
[
[
"xbel"
],
[
"application/xml"
]
],
'application/x-xbel'
=>
[
%w(xbel)
,
%w(application/xml)
],
'application/x-xliff'
=>
[
[
"xlf"
,
"xliff"
],
[
"application/xml"
]
],
'application/x-xliff'
=>
[
%w(xlf xliff)
,
%w(application/xml)
],
'application/x-xz'
=>
[
[
"xz"
],
[]
],
'application/x-xz'
=>
[
%w(xz)
,
%w()
],
'application/x-xz-compressed-tar'
=>
[
[
"tar.xz"
,
"txz"
],
[]
],
'application/x-xz-compressed-tar'
=>
[
%w(tar.xz txz)
,
%w()
],
'application/x-zoo'
=>
[
[
"zoo"
],
[]
],
'application/x-zoo'
=>
[
%w(zoo)
,
%w()
],
'application/xhtml+xml'
=>
[
[
"xhtml"
],
[
"application/xml"
]
],
'application/xhtml+xml'
=>
[
%w(xhtml)
,
%w(application/xml)
],
'application/xml'
=>
[
[
"xbl"
,
"xml"
],
[
"text/plain"
]
],
'application/xml'
=>
[
%w(xbl xml)
,
%w(text/plain)
],
'application/xml-dtd'
=>
[
[
"dtd"
],
[
"text/plain"
]
],
'application/xml-dtd'
=>
[
%w(dtd)
,
%w(text/plain)
],
'application/xml-external-parsed-entity'
=>
[
[
"ent"
],
[
"application/xml"
]
],
'application/xml-external-parsed-entity'
=>
[
%w(ent)
,
%w(application/xml)
],
'application/xslt+xml'
=>
[
[
"xsl"
,
"xslt"
],
[
"application/xml"
]
],
'application/xslt+xml'
=>
[
%w(xsl xslt)
,
%w(application/xml)
],
'application/xspf+xml'
=>
[
[
"xspf"
],
[
"application/xml"
]
],
'application/xspf+xml'
=>
[
%w(xspf)
,
%w(application/xml)
],
'application/zip'
=>
[
[
"zip"
],
[]
],
'application/zip'
=>
[
%w(zip)
,
%w()
],
'audio/AMR'
=>
[
[
"amr"
],
[]
],
'audio/AMR'
=>
[
%w(amr)
,
%w()
],
'audio/AMR-WB'
=>
[
[
"awb"
],
[]
],
'audio/AMR-WB'
=>
[
%w(awb)
,
%w()
],
'audio/ac3'
=>
[
[
"ac3"
],
[]
],
'audio/ac3'
=>
[
%w(ac3)
,
%w()
],
'audio/annodex'
=>
[
[
"axa"
],
[
"application/annodex"
]
],
'audio/annodex'
=>
[
%w(axa)
,
%w(application/annodex)
],
'audio/basic'
=>
[
[
"au"
,
"snd"
],
[]
],
'audio/basic'
=>
[
%w(au snd)
,
%w()
],
'audio/midi'
=>
[
[
"kar"
,
"mid"
,
"midi"
],
[]
],
'audio/midi'
=>
[
%w(kar mid midi)
,
%w()
],
'audio/mp2'
=>
[
[
"mp2"
],
[]
],
'audio/mp2'
=>
[
%w(mp2)
,
%w()
],
'audio/mp4'
=>
[
[
"aac"
,
"m4a"
],
[]
],
'audio/mp4'
=>
[
%w(aac m4a)
,
%w()
],
'audio/mpeg'
=>
[
[
"mp3"
,
"mpga"
],
[]
],
'audio/mpeg'
=>
[
%w(mp3 mpga)
,
%w()
],
'audio/ogg'
=>
[
[
"oga"
,
"ogg"
,
"spx"
],
[
"application/ogg"
]
],
'audio/ogg'
=>
[
%w(oga ogg spx)
,
%w(application/ogg)
],
'audio/prs.sid'
=>
[
[
"psid"
,
"sid"
],
[]
],
'audio/prs.sid'
=>
[
%w(psid sid)
,
%w()
],
'audio/vnd.rn-realaudio'
=>
[
[
"ra"
,
"rax"
],
[]
],
'audio/vnd.rn-realaudio'
=>
[
%w(ra rax)
,
%w()
],
'audio/x-aiff'
=>
[
[
"aif"
,
"aifc"
,
"aiff"
],
[]
],
'audio/x-aiff'
=>
[
%w(aif aifc aiff)
,
%w()
],
'audio/x-ape'
=>
[
[
"ape"
],
[]
],
'audio/x-ape'
=>
[
%w(ape)
,
%w()
],
'audio/x-flac'
=>
[
[
"flac"
],
[]
],
'audio/x-flac'
=>
[
%w(flac)
,
%w()
],
'audio/x-flac+ogg'
=>
[
[
"ogg"
],
[
"audio/ogg"
]
],
'audio/x-flac+ogg'
=>
[
%w(ogg)
,
%w(audio/ogg)
],
'audio/x-gsm'
=>
[
[
"gsm"
],
[]
],
'audio/x-gsm'
=>
[
%w(gsm)
,
%w()
],
'audio/x-iriver-pla'
=>
[
[
"pla"
],
[]
],
'audio/x-iriver-pla'
=>
[
%w(pla)
,
%w()
],
'audio/x-it'
=>
[
[
"it"
],
[]
],
'audio/x-it'
=>
[
%w(it)
,
%w()
],
'audio/x-m4b'
=>
[
[
"m4b"
],
[
"audio/mp4"
]
],
'audio/x-m4b'
=>
[
%w(m4b)
,
%w(audio/mp4)
],
'audio/x-matroska'
=>
[
[
"mka"
],
[
"application/x-matroska"
]
],
'audio/x-matroska'
=>
[
%w(mka)
,
%w(application/x-matroska)
],
'audio/x-minipsf'
=>
[
[
"minipsf"
],
[
"audio/x-psf"
]
],
'audio/x-minipsf'
=>
[
%w(minipsf)
,
%w(audio/x-psf)
],
'audio/x-mo3'
=>
[
[
"mo3"
],
[]
],
'audio/x-mo3'
=>
[
%w(mo3)
,
%w()
],
'audio/x-mod'
=>
[
[
"669"
,
"m15"
,
"med"
,
"mod"
,
"mtm"
,
"ult"
,
"uni"
],
[]
],
'audio/x-mod'
=>
[
%w(669 m15 med mod mtm ult uni)
,
%w()
],
'audio/x-mpegurl'
=>
[
[
"m3u"
,
"m3u8"
,
"vlc"
],
[
"text/plain"
]
],
'audio/x-mpegurl'
=>
[
%w(m3u m3u8 vlc)
,
%w(text/plain)
],
'audio/x-ms-asx'
=>
[
[
"asx"
,
"wax"
,
"wmx"
,
"wvx"
],
[]
],
'audio/x-ms-asx'
=>
[
%w(asx wax wmx wvx)
,
%w()
],
'audio/x-ms-wma'
=>
[
[
"wma"
],
[
"video/x-ms-asf"
]
],
'audio/x-ms-wma'
=>
[
%w(wma)
,
%w(video/x-ms-asf)
],
'audio/x-musepack'
=>
[
[
"mp+"
,
"mpc"
,
"mpp"
],
[]
],
'audio/x-musepack'
=>
[
%w(mp+ mpc mpp)
,
%w()
],
'audio/x-psf'
=>
[
[
"psf"
],
[]
],
'audio/x-psf'
=>
[
%w(psf)
,
%w()
],
'audio/x-psflib'
=>
[
[
"psflib"
],
[
"audio/x-psf"
]
],
'audio/x-psflib'
=>
[
%w(psflib)
,
%w(audio/x-psf)
],
'audio/x-s3m'
=>
[
[
"s3m"
],
[]
],
'audio/x-s3m'
=>
[
%w(s3m)
,
%w()
],
'audio/x-scpls'
=>
[
[
"pls"
],
[]
],
'audio/x-scpls'
=>
[
%w(pls)
,
%w()
],
'audio/x-speex'
=>
[
[
"spx"
],
[]
],
'audio/x-speex'
=>
[
%w(spx)
,
%w()
],
'audio/x-speex+ogg'
=>
[
[
"ogg"
],
[
"audio/ogg"
]
],
'audio/x-speex+ogg'
=>
[
%w(ogg)
,
%w(audio/ogg)
],
'audio/x-stm'
=>
[
[
"stm"
],
[]
],
'audio/x-stm'
=>
[
%w(stm)
,
%w()
],
'audio/x-tta'
=>
[
[
"tta"
],
[]
],
'audio/x-tta'
=>
[
%w(tta)
,
%w()
],
'audio/x-voc'
=>
[
[
"voc"
],
[]
],
'audio/x-voc'
=>
[
%w(voc)
,
%w()
],
'audio/x-vorbis+ogg'
=>
[
[
"ogg"
],
[
"audio/ogg"
]
],
'audio/x-vorbis+ogg'
=>
[
%w(ogg)
,
%w(audio/ogg)
],
'audio/x-wav'
=>
[
[
"wav"
],
[]
],
'audio/x-wav'
=>
[
%w(wav)
,
%w()
],
'audio/x-wavpack'
=>
[
[
"wv"
,
"wvp"
],
[]
],
'audio/x-wavpack'
=>
[
%w(wv wvp)
,
%w()
],
'audio/x-wavpack-correction'
=>
[
[
"wvc"
],
[]
],
'audio/x-wavpack-correction'
=>
[
%w(wvc)
,
%w()
],
'audio/x-xi'
=>
[
[
"xi"
],
[]
],
'audio/x-xi'
=>
[
%w(xi)
,
%w()
],
'audio/x-xm'
=>
[
[
"xm"
],
[]
],
'audio/x-xm'
=>
[
%w(xm)
,
%w()
],
'audio/x-xmf'
=>
[
[
"xmf"
],
[]
],
'audio/x-xmf'
=>
[
%w(xmf)
,
%w()
],
'image/bmp'
=>
[
[
"bmp"
],
[]
],
'image/bmp'
=>
[
%w(bmp)
,
%w()
],
'image/cgm'
=>
[
[
"cgm"
],
[]
],
'image/cgm'
=>
[
%w(cgm)
,
%w()
],
'image/fax-g3'
=>
[
[
"g3"
],
[]
],
'image/fax-g3'
=>
[
%w(g3)
,
%w()
],
'image/fits'
=>
[
[
"fits"
],
[]
],
'image/fits'
=>
[
%w(fits)
,
%w()
],
'image/gif'
=>
[
[
"gif"
],
[]
],
'image/gif'
=>
[
%w(gif)
,
%w()
],
'image/ief'
=>
[
[
"ief"
],
[]
],
'image/ief'
=>
[
%w(ief)
,
%w()
],
'image/jp2'
=>
[
[
"j2k"
,
"jp2"
,
"jpc"
,
"jpf"
,
"jpx"
],
[]
],
'image/jp2'
=>
[
%w(j2k jp2 jpc jpf jpx)
,
%w()
],
'image/jpeg'
=>
[
[
"jpe"
,
"jpeg"
,
"jpg"
],
[]
],
'image/jpeg'
=>
[
%w(jpe jpeg jpg)
,
%w()
],
'image/openraster'
=>
[
[
"ora"
],
[]
],
'image/openraster'
=>
[
%w(ora)
,
%w()
],
'image/png'
=>
[
[
"png"
],
[]
],
'image/png'
=>
[
%w(png)
,
%w()
],
'image/rle'
=>
[
[
"rle"
],
[]
],
'image/rle'
=>
[
%w(rle)
,
%w()
],
'image/svg+xml'
=>
[
[
"svg"
],
[
"application/xml"
]
],
'image/svg+xml'
=>
[
%w(svg)
,
%w(application/xml)
],
'image/svg+xml-compressed'
=>
[
[
"svgz"
],
[
"application/x-gzip"
]
],
'image/svg+xml-compressed'
=>
[
%w(svgz)
,
%w(application/x-gzip)
],
'image/tiff'
=>
[
[
"tif"
,
"tiff"
],
[]
],
'image/tiff'
=>
[
%w(tif tiff)
,
%w()
],
'image/vnd.adobe.photoshop'
=>
[
[
"psd"
],
[]
],
'image/vnd.adobe.photoshop'
=>
[
%w(psd)
,
%w()
],
'image/vnd.djvu'
=>
[
[
"djv"
,
"djvu"
],
[]
],
'image/vnd.djvu'
=>
[
%w(djv djvu)
,
%w()
],
'image/vnd.dwg'
=>
[
[
"dwg"
],
[]
],
'image/vnd.dwg'
=>
[
%w(dwg)
,
%w()
],
'image/vnd.dxf'
=>
[
[
"dxf"
],
[]
],
'image/vnd.dxf'
=>
[
%w(dxf)
,
%w()
],
'image/vnd.microsoft.icon'
=>
[
[
"ico"
],
[]
],
'image/vnd.microsoft.icon'
=>
[
%w(ico)
,
%w()
],
'image/vnd.ms-modi'
=>
[
[
"mdi"
],
[]
],
'image/vnd.ms-modi'
=>
[
%w(mdi)
,
%w()
],
'image/vnd.rn-realpix'
=>
[
[
"rp"
],
[]
],
'image/vnd.rn-realpix'
=>
[
%w(rp)
,
%w()
],
'image/vnd.wap.wbmp'
=>
[
[
"wbmp"
],
[]
],
'image/vnd.wap.wbmp'
=>
[
%w(wbmp)
,
%w()
],
'image/x-3ds'
=>
[
[
"3ds"
],
[]
],
'image/x-3ds'
=>
[
%w(3ds)
,
%w()
],
'image/x-adobe-dng'
=>
[
[
"dng"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-adobe-dng'
=>
[
%w(dng)
,
%w(image/tiff image/x-dcraw)
],
'image/x-applix-graphics'
=>
[
[
"ag"
],
[]
],
'image/x-applix-graphics'
=>
[
%w(ag)
,
%w()
],
'image/x-bzeps'
=>
[
[
"eps.bz2"
,
"epsf.bz2"
,
"epsi.bz2"
],
[]
],
'image/x-bzeps'
=>
[
%w(eps.bz2 epsf.bz2 epsi.bz2)
,
%w()
],
'image/x-canon-cr2'
=>
[
[
"cr2"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-canon-cr2'
=>
[
%w(cr2)
,
%w(image/tiff image/x-dcraw)
],
'image/x-canon-crw'
=>
[
[
"crw"
],
[
"image/x-dcraw"
]
],
'image/x-canon-crw'
=>
[
%w(crw)
,
%w(image/x-dcraw)
],
'image/x-cmu-raster'
=>
[
[
"ras"
],
[]
],
'image/x-cmu-raster'
=>
[
%w(ras)
,
%w()
],
'image/x-compressed-xcf'
=>
[
[
"xcf.bz2"
,
"xcf.gz"
],
[]
],
'image/x-compressed-xcf'
=>
[
%w(xcf.bz2 xcf.gz)
,
%w()
],
'image/x-dds'
=>
[
[
"dds"
],
[]
],
'image/x-dds'
=>
[
%w(dds)
,
%w()
],
'image/x-emf'
=>
[
[
"emf"
],
[]
],
'image/x-emf'
=>
[
%w(emf)
,
%w()
],
'image/x-eps'
=>
[
[
"eps"
,
"epsf"
,
"epsi"
],
[
"application/postscript"
]
],
'image/x-eps'
=>
[
%w(eps epsf epsi)
,
%w(application/postscript)
],
'image/x-exr'
=>
[
[
"exr"
],
[]
],
'image/x-exr'
=>
[
%w(exr)
,
%w()
],
'image/x-fuji-raf'
=>
[
[
"raf"
],
[
"image/x-dcraw"
]
],
'image/x-fuji-raf'
=>
[
%w(raf)
,
%w(image/x-dcraw)
],
'image/x-gzeps'
=>
[
[
"eps.gz"
,
"epsf.gz"
,
"epsi.gz"
],
[]
],
'image/x-gzeps'
=>
[
%w(eps.gz epsf.gz epsi.gz)
,
%w()
],
'image/x-icns'
=>
[
[
"icns"
],
[]
],
'image/x-icns'
=>
[
%w(icns)
,
%w()
],
'image/x-iff'
=>
[
[
"iff"
],
[]
],
'image/x-iff'
=>
[
%w(iff)
,
%w()
],
'image/x-ilbm'
=>
[
[
"ilbm"
],
[]
],
'image/x-ilbm'
=>
[
%w(ilbm)
,
%w()
],
'image/x-jng'
=>
[
[
"jng"
],
[]
],
'image/x-jng'
=>
[
%w(jng)
,
%w()
],
'image/x-kodak-dcr'
=>
[
[
"dcr"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-kodak-dcr'
=>
[
%w(dcr)
,
%w(image/tiff image/x-dcraw)
],
'image/x-kodak-k25'
=>
[
[
"k25"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-kodak-k25'
=>
[
%w(k25)
,
%w(image/tiff image/x-dcraw)
],
'image/x-kodak-kdc'
=>
[
[
"kdc"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-kodak-kdc'
=>
[
%w(kdc)
,
%w(image/tiff image/x-dcraw)
],
'image/x-lwo'
=>
[
[
"lwo"
,
"lwob"
],
[]
],
'image/x-lwo'
=>
[
%w(lwo lwob)
,
%w()
],
'image/x-lws'
=>
[
[
"lws"
],
[]
],
'image/x-lws'
=>
[
%w(lws)
,
%w()
],
'image/x-macpaint'
=>
[
[
"pntg"
],
[]
],
'image/x-macpaint'
=>
[
%w(pntg)
,
%w()
],
'image/x-minolta-mrw'
=>
[
[
"mrw"
],
[
"image/x-dcraw"
]
],
'image/x-minolta-mrw'
=>
[
%w(mrw)
,
%w(image/x-dcraw)
],
'image/x-msod'
=>
[
[
"msod"
],
[]
],
'image/x-msod'
=>
[
%w(msod)
,
%w()
],
'image/x-nikon-nef'
=>
[
[
"nef"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-nikon-nef'
=>
[
%w(nef)
,
%w(image/tiff image/x-dcraw)
],
'image/x-olympus-orf'
=>
[
[
"orf"
],
[
"image/x-dcraw"
]
],
'image/x-olympus-orf'
=>
[
%w(orf)
,
%w(image/x-dcraw)
],
'image/x-panasonic-raw'
=>
[
[
"raw"
],
[
"image/x-dcraw"
]
],
'image/x-panasonic-raw'
=>
[
%w(raw)
,
%w(image/x-dcraw)
],
'image/x-pcx'
=>
[
[
"pcx"
],
[]
],
'image/x-pcx'
=>
[
%w(pcx)
,
%w()
],
'image/x-pentax-pef'
=>
[
[
"pef"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-pentax-pef'
=>
[
%w(pef)
,
%w(image/tiff image/x-dcraw)
],
'image/x-photo-cd'
=>
[
[
"pcd"
],
[]
],
'image/x-photo-cd'
=>
[
%w(pcd)
,
%w()
],
'image/x-pict'
=>
[
[
"pict"
,
"pict1"
,
"pict2"
],
[]
],
'image/x-pict'
=>
[
%w(pict pict1 pict2)
,
%w()
],
'image/x-portable-anymap'
=>
[
[
"pnm"
],
[]
],
'image/x-portable-anymap'
=>
[
%w(pnm)
,
%w()
],
'image/x-portable-bitmap'
=>
[
[
"pbm"
],
[
"image/x-portable-anymap"
]
],
'image/x-portable-bitmap'
=>
[
%w(pbm)
,
%w(image/x-portable-anymap)
],
'image/x-portable-graymap'
=>
[
[
"pgm"
],
[
"image/x-portable-anymap"
]
],
'image/x-portable-graymap'
=>
[
%w(pgm)
,
%w(image/x-portable-anymap)
],
'image/x-portable-pixmap'
=>
[
[
"ppm"
],
[
"image/x-portable-anymap"
]
],
'image/x-portable-pixmap'
=>
[
%w(ppm)
,
%w(image/x-portable-anymap)
],
'image/x-quicktime'
=>
[
[
"qif"
,
"qtif"
],
[]
],
'image/x-quicktime'
=>
[
%w(qif qtif)
,
%w()
],
'image/x-rgb'
=>
[
[
"rgb"
],
[]
],
'image/x-rgb'
=>
[
%w(rgb)
,
%w()
],
'image/x-sgi'
=>
[
[
"sgi"
],
[]
],
'image/x-sgi'
=>
[
%w(sgi)
,
%w()
],
'image/x-sigma-x3f'
=>
[
[
"x3f"
],
[
"image/x-dcraw"
]
],
'image/x-sigma-x3f'
=>
[
%w(x3f)
,
%w(image/x-dcraw)
],
'image/x-skencil'
=>
[
[
"sk"
,
"sk1"
],
[]
],
'image/x-skencil'
=>
[
%w(sk sk1)
,
%w()
],
'image/x-sony-arw'
=>
[
[
"arw"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-sony-arw'
=>
[
%w(arw)
,
%w(image/tiff image/x-dcraw)
],
'image/x-sony-sr2'
=>
[
[
"sr2"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-sony-sr2'
=>
[
%w(sr2)
,
%w(image/tiff image/x-dcraw)
],
'image/x-sony-srf'
=>
[
[
"srf"
],
[
"image/tiff"
,
"image/x-dcraw"
]
],
'image/x-sony-srf'
=>
[
%w(srf)
,
%w(image/tiff image/x-dcraw)
],
'image/x-sun-raster'
=>
[
[
"sun"
],
[]
],
'image/x-sun-raster'
=>
[
%w(sun)
,
%w()
],
'image/x-tga'
=>
[
[
"icb"
,
"tga"
,
"tpic"
,
"vda"
,
"vst"
],
[]
],
'image/x-tga'
=>
[
%w(icb tga tpic vda vst)
,
%w()
],
'image/x-win-bitmap'
=>
[
[
"cur"
],
[]
],
'image/x-win-bitmap'
=>
[
%w(cur)
,
%w()
],
'image/x-wmf'
=>
[
[
"wmf"
],
[]
],
'image/x-wmf'
=>
[
%w(wmf)
,
%w()
],
'image/x-xbitmap'
=>
[
[
"xbm"
],
[]
],
'image/x-xbitmap'
=>
[
%w(xbm)
,
%w()
],
'image/x-xcf'
=>
[
[
"xcf"
],
[]
],
'image/x-xcf'
=>
[
%w(xcf)
,
%w()
],
'image/x-xfig'
=>
[
[
"fig"
],
[]
],
'image/x-xfig'
=>
[
%w(fig)
,
%w()
],
'image/x-xpixmap'
=>
[
[
"xpm"
],
[]
],
'image/x-xpixmap'
=>
[
%w(xpm)
,
%w()
],
'image/x-xwindowdump'
=>
[
[
"xwd"
],
[]
],
'image/x-xwindowdump'
=>
[
%w(xwd)
,
%w()
],
'message/rfc822'
=>
[
[
"eml"
],
[
"text/plain"
]
],
'message/rfc822'
=>
[
%w(eml)
,
%w(text/plain)
],
'model/vrml'
=>
[
[
"wrl"
],
[
"text/plain"
]
],
'model/vrml'
=>
[
%w(wrl)
,
%w(text/plain)
],
'text/calendar'
=>
[
[
"ics"
,
"vcs"
],
[
"text/plain"
]
],
'text/calendar'
=>
[
%w(ics vcs)
,
%w(text/plain)
],
'text/css'
=>
[
[
"css"
,
"cssl"
],
[
"text/x-csrc"
]
],
'text/css'
=>
[
%w(css cssl)
,
%w(text/x-csrc)
],
'text/csv'
=>
[
[
"csv"
],
[
"text/plain"
]
],
'text/csv'
=>
[
%w(csv)
,
%w(text/plain)
],
'text/directory'
=>
[
[
"gcrd"
,
"vcf"
,
"vct"
],
[
"text/plain"
]
],
'text/directory'
=>
[
%w(gcrd vcf vct)
,
%w(text/plain)
],
'text/html'
=>
[
[
"htm"
,
"html"
],
[
"text/plain"
]
],
'text/html'
=>
[
%w(htm html)
,
%w(text/plain)
],
'text/plain'
=>
[
[
"asc"
,
"txt"
],
[]
],
'text/plain'
=>
[
%w(asc txt)
,
%w()
],
'text/richtext'
=>
[
[
"rtx"
],
[
"text/plain"
]
],
'text/richtext'
=>
[
%w(rtx)
,
%w(text/plain)
],
'text/sgml'
=>
[
[
"sgm"
,
"sgml"
],
[
"text/plain"
]
],
'text/sgml'
=>
[
%w(sgm sgml)
,
%w(text/plain)
],
'text/spreadsheet'
=>
[
[
"slk"
,
"sylk"
],
[
"text/plain"
]
],
'text/spreadsheet'
=>
[
%w(slk sylk)
,
%w(text/plain)
],
'text/tab-separated-values'
=>
[
[
"tsv"
],
[
"text/plain"
]
],
'text/tab-separated-values'
=>
[
%w(tsv)
,
%w(text/plain)
],
'text/troff'
=>
[
[
"roff"
,
"t"
,
"tr"
],
[
"text/plain"
]
],
'text/troff'
=>
[
%w(roff t tr)
,
%w(text/plain)
],
'text/vnd.graphviz'
=>
[
[
"dot"
,
"gv"
],
[]
],
'text/vnd.graphviz'
=>
[
%w(dot gv)
,
%w()
],
'text/vnd.rn-realtext'
=>
[
[
"rt"
],
[]
],
'text/vnd.rn-realtext'
=>
[
%w(rt)
,
%w()
],
'text/vnd.sun.j2me.app-descriptor'
=>
[
[
"jad"
],
[]
],
'text/vnd.sun.j2me.app-descriptor'
=>
[
%w(jad)
,
%w()
],
'text/vnd.wap.wml'
=>
[
[
"wml"
],
[
"application/xml"
]
],
'text/vnd.wap.wml'
=>
[
%w(wml)
,
%w(application/xml)
],
'text/vnd.wap.wmlscript'
=>
[
[
"wmls"
],
[]
],
'text/vnd.wap.wmlscript'
=>
[
%w(wmls)
,
%w()
],
'text/x-adasrc'
=>
[
[
"adb"
,
"ads"
],
[
"text/plain"
]
],
'text/x-adasrc'
=>
[
%w(adb ads)
,
%w(text/plain)
],
'text/x-bibtex'
=>
[
[
"bib"
],
[
"text/plain"
]
],
'text/x-bibtex'
=>
[
%w(bib)
,
%w(text/plain)
],
'text/x-c++hdr'
=>
[
[
"h++"
,
"hh"
,
"hp"
,
"hpp"
,
"hxx"
],
[
"text/x-chdr"
]
],
'text/x-c++hdr'
=>
[
%w(h++ hh hp hpp hxx)
,
%w(text/x-chdr)
],
'text/x-c++src'
=>
[
[
"c"
,
"c++"
,
"cc"
,
"cpp"
,
"cxx"
],
[
"text/x-csrc"
]
],
'text/x-c++src'
=>
[
%w(c c++ cc cpp cxx)
,
%w(text/x-csrc)
],
'text/x-chdr'
=>
[
[
"h"
],
[
"text/x-csrc"
]
],
'text/x-chdr'
=>
[
%w(h)
,
%w(text/x-csrc)
],
'text/x-cmake'
=>
[
[
"cmake"
],
[]
],
'text/x-cmake'
=>
[
%w(cmake)
,
%w()
],
'text/x-csharp'
=>
[
[
"cs"
],
[
"text/x-csrc"
]
],
'text/x-csharp'
=>
[
%w(cs)
,
%w(text/x-csrc)
],
'text/x-csrc'
=>
[
[
"c"
],
[
"text/plain"
]
],
'text/x-csrc'
=>
[
%w(c)
,
%w(text/plain)
],
'text/x-dcl'
=>
[
[
"dcl"
],
[
"text/plain"
]
],
'text/x-dcl'
=>
[
%w(dcl)
,
%w(text/plain)
],
'text/x-dsl'
=>
[
[
"dsl"
],
[
"text/plain"
]
],
'text/x-dsl'
=>
[
%w(dsl)
,
%w(text/plain)
],
'text/x-dsrc'
=>
[
[
"d"
],
[
"text/x-csrc"
]
],
'text/x-dsrc'
=>
[
%w(d)
,
%w(text/x-csrc)
],
'text/x-eiffel'
=>
[
[
"e"
,
"eif"
],
[
"text/plain"
]
],
'text/x-eiffel'
=>
[
%w(e eif)
,
%w(text/plain)
],
'text/x-emacs-lisp'
=>
[
[
"el"
],
[
"text/plain"
]
],
'text/x-emacs-lisp'
=>
[
%w(el)
,
%w(text/plain)
],
'text/x-erlang'
=>
[
[
"erl"
],
[
"text/plain"
]
],
'text/x-erlang'
=>
[
%w(erl)
,
%w(text/plain)
],
'text/x-fortran'
=>
[
[
"f"
,
"f90"
,
"f95"
,
"for"
],
[
"text/plain"
]
],
'text/x-fortran'
=>
[
%w(f f90 f95 for)
,
%w(text/plain)
],
'text/x-gettext-translation'
=>
[
[
"po"
],
[
"text/plain"
]
],
'text/x-gettext-translation'
=>
[
%w(po)
,
%w(text/plain)
],
'text/x-gettext-translation-template'
=>
[
[
"pot"
],
[
"text/plain"
]
],
'text/x-gettext-translation-template'
=>
[
%w(pot)
,
%w(text/plain)
],
'text/x-google-video-pointer'
=>
[
[
"gvp"
],
[]
],
'text/x-google-video-pointer'
=>
[
%w(gvp)
,
%w()
],
'text/x-haskell'
=>
[
[
"hs"
],
[
"text/plain"
]
],
'text/x-haskell'
=>
[
%w(hs)
,
%w(text/plain)
],
'text/x-iMelody'
=>
[
[
"ime"
,
"imy"
],
[]
],
'text/x-iMelody'
=>
[
%w(ime imy)
,
%w()
],
'text/x-idl'
=>
[
[
"idl"
],
[
"text/plain"
]
],
'text/x-idl'
=>
[
%w(idl)
,
%w(text/plain)
],
'text/x-iptables'
=>
[
[
"iptables"
],
[
"text/plain"
]
],
'text/x-iptables'
=>
[
%w(iptables)
,
%w(text/plain)
],
'text/x-java'
=>
[
[
"java"
],
[
"text/x-csrc"
]
],
'text/x-java'
=>
[
%w(java)
,
%w(text/x-csrc)
],
'text/x-ldif'
=>
[
[
"ldif"
],
[
"text/plain"
]
],
'text/x-ldif'
=>
[
%w(ldif)
,
%w(text/plain)
],
'text/x-lilypond'
=>
[
[
"ly"
],
[
"text/plain"
]
],
'text/x-lilypond'
=>
[
%w(ly)
,
%w(text/plain)
],
'text/x-literate-haskell'
=>
[
[
"lhs"
],
[
"text/plain"
]
],
'text/x-literate-haskell'
=>
[
%w(lhs)
,
%w(text/plain)
],
'text/x-log'
=>
[
[
"log"
],
[
"text/plain"
]
],
'text/x-log'
=>
[
%w(log)
,
%w(text/plain)
],
'text/x-lua'
=>
[
[
"lua"
],
[
"application/x-executable"
,
"text/plain"
]
],
'text/x-lua'
=>
[
%w(lua)
,
%w(application/x-executable text/plain)
],
'text/x-matlab'
=>
[
[
"m"
],
[
"text/plain"
]
],
'text/x-matlab'
=>
[
%w(m)
,
%w(text/plain)
],
'text/x-microdvd'
=>
[
[
"sub"
],
[
"text/plain"
]
],
'text/x-microdvd'
=>
[
%w(sub)
,
%w(text/plain)
],
'text/x-moc'
=>
[
[
"moc"
],
[
"text/plain"
]
],
'text/x-moc'
=>
[
%w(moc)
,
%w(text/plain)
],
'text/x-mof'
=>
[
[
"mof"
],
[
"text/x-csrc"
]
],
'text/x-mof'
=>
[
%w(mof)
,
%w(text/x-csrc)
],
'text/x-mpsub'
=>
[
[
"sub"
],
[
"text/plain"
]
],
'text/x-mpsub'
=>
[
%w(sub)
,
%w(text/plain)
],
'text/x-mrml'
=>
[
[
"mrl"
,
"mrml"
],
[]
],
'text/x-mrml'
=>
[
%w(mrl mrml)
,
%w()
],
'text/x-ms-regedit'
=>
[
[
"reg"
],
[
"text/plain"
]
],
'text/x-ms-regedit'
=>
[
%w(reg)
,
%w(text/plain)
],
'text/x-mup'
=>
[
[
"mup"
,
"not"
],
[
"text/plain"
]
],
'text/x-mup'
=>
[
%w(mup not)
,
%w(text/plain)
],
'text/x-nfo'
=>
[
[
"nfo"
],
[
"text/x-readme"
]
],
'text/x-nfo'
=>
[
%w(nfo)
,
%w(text/x-readme)
],
'text/x-objcsrc'
=>
[
[
"m"
],
[
"text/x-csrc"
]
],
'text/x-objcsrc'
=>
[
%w(m)
,
%w(text/x-csrc)
],
'text/x-ocaml'
=>
[
[
"ml"
,
"mli"
],
[]
],
'text/x-ocaml'
=>
[
%w(ml mli)
,
%w()
],
'text/x-ocl'
=>
[
[
"ocl"
],
[
"text/plain"
]
],
'text/x-ocl'
=>
[
%w(ocl)
,
%w(text/plain)
],
'text/x-opml+xml'
=>
[
[
"opml"
],
[
"application/xml"
]
],
'text/x-opml+xml'
=>
[
%w(opml)
,
%w(application/xml)
],
'text/x-pascal'
=>
[
[
"p"
,
"pas"
],
[
"text/plain"
]
],
'text/x-pascal'
=>
[
%w(p pas)
,
%w(text/plain)
],
'text/x-patch'
=>
[
[
"diff"
,
"patch"
],
[
"text/plain"
]
],
'text/x-patch'
=>
[
%w(diff patch)
,
%w(text/plain)
],
'text/x-python'
=>
[
[
"py"
],
[
"application/x-executable"
,
"text/plain"
]
],
'text/x-python'
=>
[
%w(py)
,
%w(application/x-executable text/plain)
],
'text/x-rpm-spec'
=>
[
[
"spec"
],
[
"text/plain"
]
],
'text/x-rpm-spec'
=>
[
%w(spec)
,
%w(text/plain)
],
'text/x-scheme'
=>
[
[
"scm"
],
[
"text/plain"
]
],
'text/x-scheme'
=>
[
%w(scm)
,
%w(text/plain)
],
'text/x-setext'
=>
[
[
"etx"
],
[
"text/plain"
]
],
'text/x-setext'
=>
[
%w(etx)
,
%w(text/plain)
],
'text/x-sql'
=>
[
[
"sql"
],
[
"text/plain"
]
],
'text/x-sql'
=>
[
%w(sql)
,
%w(text/plain)
],
'text/x-ssa'
=>
[
[
"ass"
,
"ssa"
],
[
"text/plain"
]
],
'text/x-ssa'
=>
[
%w(ass ssa)
,
%w(text/plain)
],
'text/x-subviewer'
=>
[
[
"sub"
],
[
"text/plain"
]
],
'text/x-subviewer'
=>
[
%w(sub)
,
%w(text/plain)
],
'text/x-tcl'
=>
[
[
"tcl"
,
"tk"
],
[
"text/plain"
]
],
'text/x-tcl'
=>
[
%w(tcl tk)
,
%w(text/plain)
],
'text/x-tex'
=>
[
[
"cls"
,
"dtx"
,
"ins"
,
"latex"
,
"ltx"
,
"sty"
,
"tex"
],
[
"text/plain"
]
],
'text/x-tex'
=>
[
%w(cls dtx ins latex ltx sty tex)
,
%w(text/plain)
],
'text/x-texinfo'
=>
[
[
"texi"
,
"texinfo"
],
[
"text/plain"
]
],
'text/x-texinfo'
=>
[
%w(texi texinfo)
,
%w(text/plain)
],
'text/x-troff-me'
=>
[
[
"me"
],
[
"text/plain"
]
],
'text/x-troff-me'
=>
[
%w(me)
,
%w(text/plain)
],
'text/x-troff-mm'
=>
[
[
"mm"
],
[
"text/plain"
]
],
'text/x-troff-mm'
=>
[
%w(mm)
,
%w(text/plain)
],
'text/x-troff-ms'
=>
[
[
"ms"
],
[
"text/plain"
]
],
'text/x-troff-ms'
=>
[
%w(ms)
,
%w(text/plain)
],
'text/x-txt2tags'
=>
[
[
"t2t"
],
[
"text/plain"
]
],
'text/x-txt2tags'
=>
[
%w(t2t)
,
%w(text/plain)
],
'text/x-uil'
=>
[
[
"uil"
],
[
"text/plain"
]
],
'text/x-uil'
=>
[
%w(uil)
,
%w(text/plain)
],
'text/x-uri'
=>
[
[
"uri"
,
"url"
],
[
"text/plain"
]
],
'text/x-uri'
=>
[
%w(uri url)
,
%w(text/plain)
],
'text/x-vala'
=>
[
[
"vala"
,
"vapi"
],
[
"text/x-csrc"
]
],
'text/x-vala'
=>
[
%w(vala vapi)
,
%w(text/x-csrc)
],
'text/x-vhdl'
=>
[
[
"vhd"
,
"vhdl"
],
[
"text/plain"
]
],
'text/x-vhdl'
=>
[
%w(vhd vhdl)
,
%w(text/plain)
],
'text/x-xmi'
=>
[
[
"xmi"
],
[
"application/xml"
]
],
'text/x-xmi'
=>
[
%w(xmi)
,
%w(application/xml)
],
'text/x-xslfo'
=>
[
[
"fo"
,
"xslfo"
],
[
"application/xml"
]
],
'text/x-xslfo'
=>
[
%w(fo xslfo)
,
%w(application/xml)
],
'video/3gpp'
=>
[
[
"3g2"
,
"3ga"
,
"3gp"
,
"3gpp"
],
[
"video/mp4"
]
],
'video/3gpp'
=>
[
%w(3g2 3ga 3gp 3gpp)
,
%w(video/mp4)
],
'video/annodex'
=>
[
[
"axv"
],
[
"application/annodex"
]
],
'video/annodex'
=>
[
%w(axv)
,
%w(application/annodex)
],
'video/dv'
=>
[
[
"dv"
],
[]
],
'video/dv'
=>
[
%w(dv)
,
%w()
],
'video/mp4'
=>
[
[
"m4v"
,
"mp4"
],
[]
],
'video/mp4'
=>
[
%w(m4v mp4)
,
%w()
],
'video/mpeg'
=>
[
[
"m2t"
,
"mp2"
,
"mpe"
,
"mpeg"
,
"mpg"
,
"vob"
],
[]
],
'video/mpeg'
=>
[
%w(m2t mp2 mpe mpeg mpg vob)
,
%w()
],
'video/ogg'
=>
[
[
"ogv"
],
[
"application/ogg"
]
],
'video/ogg'
=>
[
%w(ogv)
,
%w(application/ogg)
],
'video/quicktime'
=>
[
[
"moov"
,
"mov"
,
"qt"
,
"qtvr"
],
[]
],
'video/quicktime'
=>
[
%w(moov mov qt qtvr)
,
%w()
],
'video/vivo'
=>
[
[
"viv"
,
"vivo"
],
[]
],
'video/vivo'
=>
[
%w(viv vivo)
,
%w()
],
'video/vnd.rn-realvideo'
=>
[
[
"rv"
,
"rvx"
],
[]
],
'video/vnd.rn-realvideo'
=>
[
%w(rv rvx)
,
%w()
],
'video/x-flic'
=>
[
[
"flc"
,
"fli"
],
[]
],
'video/x-flic'
=>
[
%w(flc fli)
,
%w()
],
'video/x-flv'
=>
[
[
"flv"
],
[]
],
'video/x-flv'
=>
[
%w(flv)
,
%w()
],
'video/x-matroska'
=>
[
[
"mkv"
],
[
"application/x-matroska"
]
],
'video/x-matroska'
=>
[
%w(mkv)
,
%w(application/x-matroska)
],
'video/x-mng'
=>
[
[
"mng"
],
[]
],
'video/x-mng'
=>
[
%w(mng)
,
%w()
],
'video/x-ms-asf'
=>
[
[
"asf"
],
[]
],
'video/x-ms-asf'
=>
[
%w(asf)
,
%w()
],
'video/x-ms-wmv'
=>
[
[
"wmv"
],
[
"video/x-ms-asf"
]
],
'video/x-ms-wmv'
=>
[
%w(wmv)
,
%w(video/x-ms-asf)
],
'video/x-msvideo'
=>
[
[
"avi"
,
"divx"
],
[]
],
'video/x-msvideo'
=>
[
%w(avi divx)
,
%w()
],
'video/x-nsv'
=>
[
[
"nsv"
],
[]
],
'video/x-nsv'
=>
[
%w(nsv)
,
%w()
],
'video/x-ogm+ogg'
=>
[
[
"ogm"
],
[
"video/ogg"
]
],
'video/x-ogm+ogg'
=>
[
%w(ogm)
,
%w(video/ogg)
],
'video/x-sgi-movie'
=>
[
[
"movie"
],
[]
],
'video/x-sgi-movie'
=>
[
%w(movie)
,
%w()
],
'video/x-theora+ogg'
=>
[
[
"ogg"
],
[
"video/ogg"
]
],
'video/x-theora+ogg'
=>
[
%w(ogg)
,
%w(video/ogg)
],
'x-epoc/x-sisx-app'
=>
[
[
"sisx"
],
[]
],
'x-epoc/x-sisx-app'
=>
[
%w(sisx)
,
%w()
],
}
}
MAGIC
=
[
MAGIC
=
[
[
'application/vnd.stardivision.writer'
,
[[
2089
,
"StarWriter"
]]],
[
'application/vnd.stardivision.writer'
,
[[
2089
,
"StarWriter"
]]],
...
...
script/generate-mime.rb
View file @
e51cc73f
#!/usr/bin/ruby
#!/usr/bin/ruby
require
'rexml/document'
gem
'nokogiri'
,
'>= 0'
require
'nokogiri'
def
str2int
(
s
)
def
str2int
(
s
)
return
s
.
to_i
(
16
)
if
s
[
0
..
1
].
downcase
==
'0x'
return
s
.
to_i
(
16
)
if
s
[
0
..
1
].
downcase
==
'0x'
...
@@ -9,13 +10,13 @@ def str2int(s)
...
@@ -9,13 +10,13 @@ def str2int(s)
end
end
def
get_matches
(
parent
)
def
get_matches
(
parent
)
parent
.
get_elements
(
'match'
)
.
map
{
|
match
|
parent
.
elements
.
map
{
|
match
|
if
match
.
attributes
[
'mask'
]
if
match
[
'mask'
]
nil
nil
else
else
type
=
match
.
attributes
[
'type'
]
type
=
match
[
'type'
]
value
=
match
.
attributes
[
'value'
]
value
=
match
[
'value'
]
offset
=
match
.
attributes
[
'offset'
].
split
(
':'
).
map
{
|
x
|
x
.
to_i
}
offset
=
match
[
'offset'
].
split
(
':'
).
map
{
|
x
|
x
.
to_i
}
offset
=
offset
.
size
==
2
?
offset
[
0
]
..
offset
[
1
]
:
offset
[
0
]
offset
=
offset
.
size
==
2
?
offset
[
0
]
..
offset
[
1
]
:
offset
[
0
]
case
type
case
type
when
'string'
when
'string'
...
@@ -55,16 +56,16 @@ end
...
@@ -55,16 +56,16 @@ end
FILE
=
ARGV
[
0
]
FILE
=
ARGV
[
0
]
file
=
File
.
new
(
FILE
)
file
=
File
.
new
(
FILE
)
doc
=
REXML
::
Document
.
new
(
file
)
doc
=
Nokogiri
::
XML
(
file
)
extensions
=
{}
extensions
=
{}
types
=
{}
types
=
{}
magics
=
[]
magics
=
[]
doc
.
each_element
(
'mime-info/mime-type'
)
do
|
mime
|
(
doc
/
'mime-info/mime-type'
).
each
do
|
mime
|
type
=
mime
.
attributes
[
'type'
]
type
=
mime
[
'type'
]
subclass
=
mime
.
get_elements
(
'sub-class-of'
).
map
{
|
x
|
x
.
attributes
[
'type'
]}
subclass
=
(
mime
/
'sub-class-of'
).
map
{
|
x
|
x
[
'type'
]}
exts
=
mime
.
get_elements
(
'glob'
).
map
{
|
x
|
x
.
attributes
[
'pattern'
]
=~
/^\*\.([^\[\]]+)$/
?
$1
.
downcase
:
nil
}.
compact
exts
=
(
mime
/
'glob'
).
map
{
|
x
|
x
[
'pattern'
]
=~
/^\*\.([^\[\]]+)$/
?
$1
.
downcase
:
nil
}.
compact
mime
.
get_elements
(
'magic'
).
each
do
|
magic
|
(
mime
/
'magic'
).
each
do
|
magic
|
priority
=
magic
.
attributes
[
'priority'
].
to_i
priority
=
magic
[
'priority'
].
to_i
matches
=
get_matches
(
magic
)
matches
=
get_matches
(
magic
)
magics
<<
[
priority
,
type
,
matches
]
magics
<<
[
priority
,
type
,
matches
]
end
end
...
@@ -88,9 +89,9 @@ end
...
@@ -88,9 +89,9 @@ end
puts
" }"
puts
" }"
puts
" TYPES = {"
puts
" TYPES = {"
types
.
keys
.
sort
.
each
do
|
key
|
types
.
keys
.
sort
.
each
do
|
key
|
exts
=
types
[
key
][
0
].
sort
.
inspect
exts
=
types
[
key
][
0
].
sort
.
join
(
' '
)
parents
=
types
[
key
][
1
].
sort
.
inspect
parents
=
types
[
key
][
1
].
sort
.
join
(
' '
)
puts
" '
#{
key
}
' => [
#{
exts
}
,
#{
parents
}
],"
puts
" '
#{
key
}
' => [
%w(
#{
exts
}
), %w(
#{
parents
}
)
],"
end
end
puts
" }"
puts
" }"
puts
" MAGIC = ["
puts
" MAGIC = ["
...
@@ -99,4 +100,3 @@ magics.each do |type, matches|
...
@@ -99,4 +100,3 @@ magics.each do |type, matches|
end
end
puts
" ]"
puts
" ]"
puts
"end"
puts
"end"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment