diff --git a/format_docs/pdb/apnx.txt b/format_docs/pdb/apnx.txt index f9feed1da1..8fcba3f029 100644 --- a/format_docs/pdb/apnx.txt +++ b/format_docs/pdb/apnx.txt @@ -9,7 +9,7 @@ the file are big-endian. Layout ------ -bytes content comments +bytes content comments 4 00010001 Format identifier. Value of 65537 little-endian. 4 start of next The offset after ending location of the first header. @@ -25,7 +25,7 @@ Starts next sequence 2 unknown Always 32 N second header String containing the page mapping header 4*N padding The first number given in the page mapping header indicates the number of 0 bytes. -4*N page list +4*N page list Content Header @@ -44,6 +44,14 @@ Example: {"contentGuid":"d8c14b0","asin":"B000JML5VM","cdeType":"EBOK","fileRevisionId":"1296874359405"} +In devices with KF8 support, we're seeing an extended content header (which seems to be required by some FW versions for KF8 files, like FW 3.4): + +format Mobi version. MOBI_8 for KF8, MOBI_7 for legacy mobi files. +acr Palm DB name + +Example: +{"contentGuid":"f2fc7597","asin":"B003M68YKM","cdeType":"EBOK","format":"MOBI_8","fileRevisionId":"1342776186889","acr":"CR!1F5WDHWWVN4Y78MA87Z13H9K6RKE"} + Page Mapping Header ------------------- diff --git a/imgsrc/mimetypes/azw2.svg b/imgsrc/mimetypes/azw2.svg new file mode 100644 index 0000000000..1c3c718b0b --- /dev/null +++ b/imgsrc/mimetypes/azw2.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Kindlet + + + + + diff --git a/imgsrc/mimetypes/azw3.svg b/imgsrc/mimetypes/azw3.svg new file mode 100644 index 0000000000..c60a7070f9 --- /dev/null +++ b/imgsrc/mimetypes/azw3.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + KF8 + + + + + diff --git a/imgsrc/mimetypes/mobi.svg b/imgsrc/mimetypes/mobi.svg index 970456b0cb..9089dac15c 100644 --- a/imgsrc/mimetypes/mobi.svg +++ b/imgsrc/mimetypes/mobi.svg @@ -8,10 +8,37 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="128" height="128" - id="svg2606"> + id="svg2606" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="mobi.svg" + inkscape:export-filename="/home/niluje/Patchland/calibre/imgsrc/mimetypes/mobi.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + mobi + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">mobi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Topaz + + + + + diff --git a/resources/images/mimetypes/azw2.png b/resources/images/mimetypes/azw2.png new file mode 100644 index 0000000000..229d98ed38 Binary files /dev/null and b/resources/images/mimetypes/azw2.png differ diff --git a/resources/images/mimetypes/azw3.png b/resources/images/mimetypes/azw3.png new file mode 100644 index 0000000000..04e913b288 Binary files /dev/null and b/resources/images/mimetypes/azw3.png differ diff --git a/resources/images/mimetypes/mobi.png b/resources/images/mimetypes/mobi.png index cb1230a15b..0446021706 100644 Binary files a/resources/images/mimetypes/mobi.png and b/resources/images/mimetypes/mobi.png differ diff --git a/resources/images/mimetypes/tpz.png b/resources/images/mimetypes/tpz.png new file mode 100644 index 0000000000..04d685fd2d Binary files /dev/null and b/resources/images/mimetypes/tpz.png differ diff --git a/resources/mime.types b/resources/mime.types index afc5e9b849..75452bb17a 100644 --- a/resources/mime.types +++ b/resources/mime.types @@ -1,127 +1,127 @@ ## Mimetypes from my linux system -application/activemessage +application/activemessage application/andrew-inset ez -application/applefile +application/applefile application/applixware aw application/atom+xml atom application/atomcat+xml atomcat -application/atomicmail +application/atomicmail application/atomsvc+xml atomsvc -application/auth-policy+xml -application/batch-smtp -application/beep+xml -application/cals-1840 +application/auth-policy+xml +application/batch-smtp +application/beep+xml +application/cals-1840 application/ccxml+xml ccxml -application/cea-2018+xml -application/cellml+xml -application/cnrp+xml -application/commonground -application/conference-info+xml -application/cpl+xml -application/csta+xml -application/cstadata+xml +application/cea-2018+xml +application/cellml+xml +application/cnrp+xml +application/commonground +application/conference-info+xml +application/cpl+xml +application/csta+xml +application/cstadata+xml application/cu-seeme cu -application/cybercash +application/cybercash application/davmount+xml davmount -application/dca-rft -application/dec-dx -application/dialog-info+xml -application/dicom -application/dns +application/dca-rft +application/dec-dx +application/dialog-info+xml +application/dicom +application/dns application/dsptype tsp -application/dvcs +application/dvcs application/ecmascript ecma -application/edi-consent -application/edi-x12 -application/edifact +application/edi-consent +application/edi-x12 +application/edifact application/emma+xml emma -application/epp+xml +application/epp+xml application/epub+zip epub -application/eshop -application/example -application/fastinfoset -application/fastsoap -application/fits +application/eshop +application/example +application/fastinfoset +application/fastsoap +application/fits application/font-tdpfr pfr application/futuresplash spl -application/h224 +application/h224 application/hta hta -application/http +application/http application/hyperstudio stk -application/ibe-key-request+xml -application/ibe-pkg-reply+xml -application/ibe-pp-data -application/iges -application/im-iscomposing+xml -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup +application/ibe-key-request+xml +application/ibe-pkg-reply+xml +application/ibe-pp-data +application/iges +application/im-iscomposing+xml +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/iotp +application/ipp +application/isup application/java-archive jar application/java-serialized-object ser application/java-vm class application/javascript js application/json json -application/kpml-request+xml -application/kpml-response+xml +application/kpml-request+xml +application/kpml-response+xml application/lost+xml lostxml application/mac-binhex40 hqx application/mac-compactpro cpt -application/macwriteii +application/macwriteii application/marc mrc application/mathematica ma mb nb application/mathml+xml mathml -application/mbms-associated-procedure-description+xml -application/mbms-deregister+xml -application/mbms-envelope+xml -application/mbms-msk+xml -application/mbms-msk-response+xml -application/mbms-protection-description+xml -application/mbms-reception-report+xml -application/mbms-register+xml -application/mbms-register-response+xml -application/mbms-user-service-description+xml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk+xml +application/mbms-msk-response+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register+xml +application/mbms-register-response+xml +application/mbms-user-service-description+xml application/mbox mbox -application/media_control+xml +application/media_control+xml application/mediaservercontrol+xml mscml -application/mikey -application/moss-keys -application/moss-signature -application/mosskey-data -application/mosskey-request +application/mikey +application/moss-keys +application/moss-signature +application/mosskey-data +application/mosskey-request application/mp4 mp4s -application/mpeg4-generic -application/mpeg4-iod -application/mpeg4-iod-xmt +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt application/msaccess mdb application/msword doc dot application/mxf mxf -application/nasdata -application/news-checkgroups -application/news-groupinfo -application/news-transmission -application/nss -application/ocsp-request -application/ocsp-response +application/nasdata +application/news-checkgroups +application/news-groupinfo +application/news-transmission +application/nss +application/ocsp-request +application/ocsp-response application/octet-stream bin bpk deploy dist distz dmg dms dump elc iso lha lrf lzh pkg so application/oda oda application/oebps-package+xml opf application/ogg ogg ogx application/onenote onepkg onetmp onetoc onetoc2 -application/parityfec +application/parityfec application/patch-ops-error+xml xer application/pdf pdf application/pgp-encrypted pgp application/pgp-keys key application/pgp-signature asc pgp sig application/pics-rules prf -application/pidf+xml -application/pidf-diff+xml +application/pidf+xml +application/pidf-diff+xml application/pkcs10 p10 application/pkcs7-mime p7c p7m application/pkcs7-signature p7s @@ -130,70 +130,70 @@ application/pkix-crl crl application/pkix-pkipath pkipath application/pkixcmp pki application/pls+xml pls -application/poc-settings+xml +application/poc-settings+xml application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet +application/prs.alvestrand.titrax-sheet application/prs.cww cww -application/prs.nprend -application/prs.plucker -application/qsig +application/prs.nprend +application/prs.plucker +application/qsig application/rar rar application/rdf+xml rdf application/reginfo+xml rif application/relax-ng-compact-syntax rnc -application/remote-printing +application/remote-printing application/resource-lists+xml rl application/resource-lists-diff+xml rld -application/riscos -application/rlmi+xml +application/riscos +application/rlmi+xml application/rls-services+xml rs application/rsd+xml rsd application/rss+xml rss application/rtf rtf -application/rtx -application/samlassertion+xml -application/samlmetadata+xml +application/rtx +application/samlassertion+xml +application/samlmetadata+xml application/sbml+xml sbml application/scvp-cv-request scq application/scvp-cv-response scs application/scvp-vp-request spq application/scvp-vp-response spp application/sdp sdp -application/set-payment +application/set-payment application/set-payment-initiation setpay -application/set-registration +application/set-registration application/set-registration-initiation setreg -application/sgml -application/sgml-open-catalog +application/sgml +application/sgml-open-catalog application/shf+xml shf -application/sieve -application/simple-filter+xml -application/simple-message-summary -application/simplesymbolcontainer -application/slate +application/sieve +application/simple-filter+xml +application/simple-message-summary +application/simplesymbolcontainer +application/slate application/smil smi smil application/smil+xml smi smil -application/soap+fastinfoset -application/soap+xml +application/soap+fastinfoset +application/soap+xml application/sparql-query rq application/sparql-results+xml srx -application/spirits-event+xml +application/spirits-event+xml application/srgs gram application/srgs+xml grxml application/ssml+xml ssml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/ulpfec -application/vemmi -application/vividence.scriptfile -application/vnd.3gpp.bsf+xml +application/timestamp-query +application/timestamp-reply +application/tve-trigger +application/ulpfec +application/vemmi +application/vividence.scriptfile +application/vnd.3gpp.bsf+xml application/vnd.3gpp.pic-bw-large plb application/vnd.3gpp.pic-bw-small psb application/vnd.3gpp.pic-bw-var pvb -application/vnd.3gpp.sms -application/vnd.3gpp2.bcmcsinfo+xml -application/vnd.3gpp2.sms +application/vnd.3gpp.sms +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms application/vnd.3gpp2.tcap tcap application/vnd.3m.post-it-notes pwn application/vnd.accpac.simply.aso aso @@ -203,7 +203,7 @@ application/vnd.acucorp acutc atc application/vnd.adobe.air-application-installer-package+zip air application/vnd.adobe.xdp+xml xdp application/vnd.adobe.xfdf xfdf -application/vnd.aether.imp +application/vnd.aether.imp application/vnd.airzip.filesecure.azf azf application/vnd.airzip.filesecure.azs azs application/vnd.amazon.ebook azw @@ -216,23 +216,23 @@ application/vnd.antix.game-component atx application/vnd.apple.installer+xml mpkg application/vnd.arastra.swi swi application/vnd.audiograph aep -application/vnd.autopackage -application/vnd.avistar+xml +application/vnd.autopackage +application/vnd.avistar+xml application/vnd.blueice.multipass mpm -application/vnd.bluetooth.ep.oob +application/vnd.bluetooth.ep.oob application/vnd.bmi bmi application/vnd.businessobjects rep -application/vnd.cab-jscript -application/vnd.canon-cpdl -application/vnd.canon-lips -application/vnd.cendio.thinlinc.clientconf +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cendio.thinlinc.clientconf application/vnd.chemdraw+xml cdxml application/vnd.chipnuts.karaoke-mmd mmd application/vnd.cinderella cdy -application/vnd.cirpack.isdn-ext +application/vnd.cirpack.isdn-ext application/vnd.claymore cla application/vnd.clonk.c4group c4d c4f c4g c4p c4u -application/vnd.commerce-battelle +application/vnd.commerce-battelle application/vnd.commonspace csp application/vnd.contact.cmsg cdbcmsg application/vnd.cosmocaller cmc @@ -243,79 +243,79 @@ application/vnd.crick.clicker.template clkt application/vnd.crick.clicker.wordbank clkw application/vnd.criticaltools.wbs+xml wbs application/vnd.ctc-posml pml -application/vnd.ctct.ws+xml -application/vnd.cups-pdf -application/vnd.cups-postscript +application/vnd.ctct.ws+xml +application/vnd.cups-pdf +application/vnd.cups-postscript application/vnd.cups-ppd ppd -application/vnd.cups-raster -application/vnd.cups-raw +application/vnd.cups-raster +application/vnd.cups-raw application/vnd.curl.car car application/vnd.curl.pcurl pcurl -application/vnd.cybank +application/vnd.cybank application/vnd.data-vision.rdz rdz application/vnd.denovo.fcselayout-link fe_launch -application/vnd.dir-bi.plate-dl-nosuffix +application/vnd.dir-bi.plate-dl-nosuffix application/vnd.dna dna application/vnd.dolby.mlp mlp -application/vnd.dolby.mobile.1 -application/vnd.dolby.mobile.2 +application/vnd.dolby.mobile.1 +application/vnd.dolby.mobile.2 application/vnd.dpgraph dpg application/vnd.dreamfactory dfac -application/vnd.dvb.esgcontainer -application/vnd.dvb.ipdcdftnotifaccess -application/vnd.dvb.ipdcesgaccess -application/vnd.dvb.ipdcroaming -application/vnd.dvb.iptv.alfec-base -application/vnd.dvb.iptv.alfec-enhancement -application/vnd.dvb.notif-aggregate-root+xml -application/vnd.dvb.notif-container+xml -application/vnd.dvb.notif-generic+xml -application/vnd.dvb.notif-ia-msglist+xml -application/vnd.dvb.notif-ia-registration-request+xml -application/vnd.dvb.notif-ia-registration-response+xml -application/vnd.dvb.notif-init+xml -application/vnd.dxr +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcdftnotifaccess +application/vnd.dvb.ipdcesgaccess +application/vnd.dvb.ipdcroaming +application/vnd.dvb.iptv.alfec-base +application/vnd.dvb.iptv.alfec-enhancement +application/vnd.dvb.notif-aggregate-root+xml +application/vnd.dvb.notif-container+xml +application/vnd.dvb.notif-generic+xml +application/vnd.dvb.notif-ia-msglist+xml +application/vnd.dvb.notif-ia-registration-request+xml +application/vnd.dvb.notif-ia-registration-response+xml +application/vnd.dvb.notif-init+xml +application/vnd.dxr application/vnd.dynageo geo -application/vnd.ecdis-update +application/vnd.ecdis-update application/vnd.ecowin.chart mag -application/vnd.ecowin.filerequest -application/vnd.ecowin.fileupdate -application/vnd.ecowin.series -application/vnd.ecowin.seriesrequest -application/vnd.ecowin.seriesupdate -application/vnd.emclient.accessrequest+xml +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.emclient.accessrequest+xml application/vnd.enliven nml application/vnd.epson.esf esf application/vnd.epson.msf msf application/vnd.epson.quickanime qam application/vnd.epson.salt slt application/vnd.epson.ssf ssf -application/vnd.ericsson.quickcall +application/vnd.ericsson.quickcall application/vnd.eszigno3+xml es3 et3 -application/vnd.etsi.aoc+xml -application/vnd.etsi.cug+xml -application/vnd.etsi.iptvcommand+xml -application/vnd.etsi.iptvdiscovery+xml -application/vnd.etsi.iptvprofile+xml -application/vnd.etsi.iptvsad-bc+xml -application/vnd.etsi.iptvsad-cod+xml -application/vnd.etsi.iptvsad-npvr+xml -application/vnd.etsi.iptvueprofile+xml -application/vnd.etsi.mcid+xml -application/vnd.etsi.sci+xml -application/vnd.etsi.simservs+xml -application/vnd.eudora.data +application/vnd.etsi.aoc+xml +application/vnd.etsi.cug+xml +application/vnd.etsi.iptvcommand+xml +application/vnd.etsi.iptvdiscovery+xml +application/vnd.etsi.iptvprofile+xml +application/vnd.etsi.iptvsad-bc+xml +application/vnd.etsi.iptvsad-cod+xml +application/vnd.etsi.iptvsad-npvr+xml +application/vnd.etsi.iptvueprofile+xml +application/vnd.etsi.mcid+xml +application/vnd.etsi.sci+xml +application/vnd.etsi.simservs+xml +application/vnd.eudora.data application/vnd.ezpix-album ez2 application/vnd.ezpix-package ez3 -application/vnd.f-secure.mobile +application/vnd.f-secure.mobile application/vnd.fdf fdf application/vnd.fdsn.mseed mseed application/vnd.fdsn.seed dataless seed -application/vnd.ffsns -application/vnd.fints +application/vnd.ffsns +application/vnd.fints application/vnd.flographit gph application/vnd.fluxtime.clip ftc -application/vnd.font-fontforge-sfd +application/vnd.font-fontforge-sfd application/vnd.framemaker book fm frame maker application/vnd.frogans.fnc fnc application/vnd.frogans.ltf ltf @@ -325,13 +325,13 @@ application/vnd.fujitsu.oasys2 oa2 application/vnd.fujitsu.oasys3 oa3 application/vnd.fujitsu.oasysgp fg5 application/vnd.fujitsu.oasysprs bh2 -application/vnd.fujixerox.art-ex -application/vnd.fujixerox.art4 +application/vnd.fujixerox.art-ex +application/vnd.fujixerox.art4 application/vnd.fujixerox.ddd ddd application/vnd.fujixerox.docuworks xdw application/vnd.fujixerox.docuworks.binder xbd -application/vnd.fujixerox.hbpl -application/vnd.fut-misnet +application/vnd.fujixerox.hbpl +application/vnd.fut-misnet application/vnd.fuzzysheet fzs application/vnd.genomatix.tuxedo txd application/vnd.geogebra.file ggb @@ -341,7 +341,7 @@ application/vnd.gmx gmx application/vnd.google-earth.kml+xml kml application/vnd.google-earth.kmz kmz application/vnd.grafeq gqf gqs -application/vnd.gridmp +application/vnd.gridmp application/vnd.groove-account gac application/vnd.groove-help ghf application/vnd.groove-identity-message gim @@ -351,7 +351,7 @@ application/vnd.groove-tool-template tpl application/vnd.groove-vcard vcg application/vnd.handheld-entertainment+xml zmm application/vnd.hbci hbci -application/vnd.hcl-bireports +application/vnd.hcl-bireports application/vnd.hhe.lesson-player les application/vnd.hp-hpgl hpgl application/vnd.hp-hpid hpid @@ -359,11 +359,11 @@ application/vnd.hp-hps hps application/vnd.hp-jlyt jlt application/vnd.hp-pcl pcl application/vnd.hp-pclxl pclxl -application/vnd.httphone +application/vnd.httphone application/vnd.hydrostatix.sof-data sfd-hdstx application/vnd.hzn-3d-crossword x3d -application/vnd.ibm.afplinedata -application/vnd.ibm.electronic-media +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media application/vnd.ibm.minipay mpy application/vnd.ibm.modcap afp list3820 listafp application/vnd.ibm.rights-management irm @@ -372,29 +372,29 @@ application/vnd.iccprofile icc icm application/vnd.igloader igl application/vnd.immervision-ivp ivp application/vnd.immervision-ivu ivu -application/vnd.informedcontrol.rms+xml -application/vnd.informix-visionary +application/vnd.informedcontrol.rms+xml +application/vnd.informix-visionary application/vnd.intercon.formnet xpw xpx -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp application/vnd.intu.qbo qbo application/vnd.intu.qfx qfx -application/vnd.iptc.g2.conceptitem+xml -application/vnd.iptc.g2.knowledgeitem+xml -application/vnd.iptc.g2.newsitem+xml -application/vnd.iptc.g2.packageitem+xml +application/vnd.iptc.g2.conceptitem+xml +application/vnd.iptc.g2.knowledgeitem+xml +application/vnd.iptc.g2.newsitem+xml +application/vnd.iptc.g2.packageitem+xml application/vnd.ipunplugged.rcprofile rcprofile application/vnd.irepository.package+xml irp application/vnd.is-xpr xpr application/vnd.jam jam -application/vnd.japannet-directory-service -application/vnd.japannet-jpnstore-wakeup -application/vnd.japannet-payment-wakeup -application/vnd.japannet-registration -application/vnd.japannet-registration-wakeup -application/vnd.japannet-setstore-wakeup -application/vnd.japannet-verification -application/vnd.japannet-verification-wakeup +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup application/vnd.jcp.javame.midlet-rms rms application/vnd.jisp jisp application/vnd.joost.joda-archive joda @@ -412,7 +412,7 @@ application/vnd.kidspiration kia application/vnd.kinar kne knp application/vnd.koan skd skm skp skt application/vnd.kodak-descriptor sse -application/vnd.liberty-request+xml +application/vnd.liberty-request+xml application/vnd.llamagraphics.life-balance.desktop lbd application/vnd.llamagraphics.life-balance.exchange+xml lbe application/vnd.lotus-1-2-3 123 @@ -423,21 +423,21 @@ application/vnd.lotus-organizer org application/vnd.lotus-screencam scm application/vnd.lotus-wordpro lwp application/vnd.macports.portpkg portpkg -application/vnd.marlin.drm.actiontoken+xml -application/vnd.marlin.drm.conftoken+xml -application/vnd.marlin.drm.license+xml -application/vnd.marlin.drm.mdcf +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.license+xml +application/vnd.marlin.drm.mdcf application/vnd.mcd mcd application/vnd.medcalcdata mc1 application/vnd.mediastation.cdkey cdkey -application/vnd.meridian-slingshot +application/vnd.meridian-slingshot application/vnd.mfer mwf application/vnd.mfmp mfm application/vnd.micrografx.flo flo application/vnd.micrografx.igx igx application/vnd.mif mif -application/vnd.minisoft-hp3000-save -application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb application/vnd.mobius.daf daf application/vnd.mobius.dis dis application/vnd.mobius.mbk mbk @@ -447,17 +447,17 @@ application/vnd.mobius.plc plc application/vnd.mobius.txf txf application/vnd.mophun.application mpn application/vnd.mophun.certificate mpc -application/vnd.motorola.flexsuite -application/vnd.motorola.flexsuite.adsi -application/vnd.motorola.flexsuite.fis -application/vnd.motorola.flexsuite.gotap -application/vnd.motorola.flexsuite.kmr -application/vnd.motorola.flexsuite.ttc -application/vnd.motorola.flexsuite.wem -application/vnd.motorola.iprm +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.motorola.iprm application/vnd.mozilla.xul+xml xul application/vnd.ms-artgalry cil -application/vnd.ms-asf +application/vnd.ms-asf application/vnd.ms-cab-compressed cab application/vnd.ms-excel xla xlb xlc xlm xls xlt xlw application/vnd.ms-excel.addin.macroenabled.12 xlam @@ -470,7 +470,7 @@ application/vnd.ms-ims ims application/vnd.ms-lrm lrm application/vnd.ms-pki.seccat cat application/vnd.ms-pki.stl stl -application/vnd.ms-playready.initiator+xml +application/vnd.ms-playready.initiator+xml application/vnd.ms-powerpoint pot pps ppt application/vnd.ms-powerpoint.addin.macroenabled.12 ppam application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm @@ -478,45 +478,45 @@ application/vnd.ms-powerpoint.slide.macroenabled.12 sldm application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm application/vnd.ms-powerpoint.template.macroenabled.12 potm application/vnd.ms-project mpp mpt -application/vnd.ms-tnef -application/vnd.ms-wmdrm.lic-chlg-req -application/vnd.ms-wmdrm.lic-resp -application/vnd.ms-wmdrm.meter-chlg-req -application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-tnef +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp application/vnd.ms-word.document.macroenabled.12 docm application/vnd.ms-word.template.macroenabled.12 dotm application/vnd.ms-works wcm wdb wks wps application/vnd.ms-wpl wpl application/vnd.ms-xpsdocument xps application/vnd.mseq mseq -application/vnd.msign -application/vnd.multiad.creator -application/vnd.multiad.creator.cif -application/vnd.music-niff +application/vnd.msign +application/vnd.multiad.creator +application/vnd.multiad.creator.cif +application/vnd.music-niff application/vnd.musician mus application/vnd.muvee.style msty -application/vnd.ncd.control -application/vnd.ncd.reference -application/vnd.nervana -application/vnd.netfpx +application/vnd.ncd.control +application/vnd.ncd.reference +application/vnd.nervana +application/vnd.netfpx application/vnd.neurolanguage.nlu nlu application/vnd.noblenet-directory nnd application/vnd.noblenet-sealer nns application/vnd.noblenet-web nnw -application/vnd.nokia.catalogs -application/vnd.nokia.conml+wbxml -application/vnd.nokia.conml+xml -application/vnd.nokia.iptv.config+xml -application/vnd.nokia.isds-radio-presets -application/vnd.nokia.landmark+wbxml -application/vnd.nokia.landmark+xml -application/vnd.nokia.landmarkcollection+xml -application/vnd.nokia.n-gage.ac+xml +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.isds-radio-presets +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml application/vnd.nokia.n-gage.data ngdat application/vnd.nokia.n-gage.symbian.install n-gage -application/vnd.nokia.ncd -application/vnd.nokia.pcd+wbxml -application/vnd.nokia.pcd+xml +application/vnd.nokia.ncd +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml application/vnd.nokia.radio-preset rpst application/vnd.nokia.radio-presets rpss application/vnd.novadigm.edm edm @@ -539,39 +539,39 @@ application/vnd.oasis.opendocument.text odt application/vnd.oasis.opendocument.text-master odm otm application/vnd.oasis.opendocument.text-template ott application/vnd.oasis.opendocument.text-web oth -application/vnd.obn +application/vnd.obn application/vnd.olpc-sugar xo -application/vnd.oma-scws-config -application/vnd.oma-scws-http-request -application/vnd.oma-scws-http-response -application/vnd.oma.bcast.associated-procedure-parameter+xml -application/vnd.oma.bcast.drm-trigger+xml -application/vnd.oma.bcast.imd+xml -application/vnd.oma.bcast.ltkm -application/vnd.oma.bcast.notification+xml -application/vnd.oma.bcast.provisioningtrigger -application/vnd.oma.bcast.sgboot -application/vnd.oma.bcast.sgdd+xml -application/vnd.oma.bcast.sgdu -application/vnd.oma.bcast.simple-symbol-container -application/vnd.oma.bcast.smartcard-trigger+xml -application/vnd.oma.bcast.sprov+xml -application/vnd.oma.bcast.stkm -application/vnd.oma.dcd -application/vnd.oma.dcdc +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.ltkm +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.provisioningtrigger +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.bcast.stkm +application/vnd.oma.dcd +application/vnd.oma.dcdc application/vnd.oma.dd2+xml dd2 -application/vnd.oma.drm.risd+xml -application/vnd.oma.group-usage-list+xml -application/vnd.oma.poc.detailed-progress-report+xml -application/vnd.oma.poc.final-report+xml -application/vnd.oma.poc.groups+xml -application/vnd.oma.poc.invocation-descriptor+xml -application/vnd.oma.poc.optimized-progress-report+xml -application/vnd.oma.xcap-directory+xml -application/vnd.omads-email+xml -application/vnd.omads-file+xml -application/vnd.omads-folder+xml -application/vnd.omaloc-supl-init +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.poc.detailed-progress-report+xml +application/vnd.oma.poc.final-report+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.poc.invocation-descriptor+xml +application/vnd.oma.poc.optimized-progress-report+xml +application/vnd.oma.xcap-directory+xml +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init application/vnd.openofficeorg.extension oxt application/vnd.openxmlformats-officedocument.presentationml.presentation pptx application/vnd.openxmlformats-officedocument.presentationml.slide sldx @@ -581,55 +581,55 @@ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx application/vnd.openxmlformats-officedocument.wordprocessingml.document docx application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx -application/vnd.osa.netdeploy -application/vnd.osgi.bundle +application/vnd.osa.netdeploy +application/vnd.osgi.bundle application/vnd.osgi.dp dp -application/vnd.otps.ct-kip+xml -application/vnd.paos.xml +application/vnd.otps.ct-kip+xml +application/vnd.paos.xml application/vnd.pg.format str application/vnd.pg.osasli ei6 -application/vnd.piaccess.application-licence +application/vnd.piaccess.application-licence application/vnd.picsel efif -application/vnd.poc.group-advertisement+xml +application/vnd.poc.group-advertisement+xml application/vnd.pocketlearn plf application/vnd.powerbuilder6 pbd -application/vnd.powerbuilder6-s -application/vnd.powerbuilder7 -application/vnd.powerbuilder7-s -application/vnd.powerbuilder75 -application/vnd.powerbuilder75-s -application/vnd.preminet +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.preminet application/vnd.previewsystems.box box application/vnd.proteus.magazine mgz application/vnd.publishare-delta-tree qps application/vnd.pvi.ptid1 ptid -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.qualcomm.brew-app-res +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.qualcomm.brew-app-res application/vnd.quark.quarkxpress qwd qwt qxb qxd qxl qxt -application/vnd.rapid +application/vnd.rapid application/vnd.recordare.musicxml mxl application/vnd.recordare.musicxml+xml musicxml -application/vnd.renlearn.rlprint +application/vnd.renlearn.rlprint application/vnd.rim.cod cod application/vnd.rn-realmedia rm application/vnd.route66.link66+xml link66 -application/vnd.ruckus.download -application/vnd.s3sms -application/vnd.sbm.cid -application/vnd.sbm.mid2 -application/vnd.scribus -application/vnd.sealed.3df -application/vnd.sealed.csf -application/vnd.sealed.doc -application/vnd.sealed.eml -application/vnd.sealed.mht -application/vnd.sealed.net -application/vnd.sealed.ppt -application/vnd.sealed.tiff -application/vnd.sealed.xls -application/vnd.sealedmedia.softseal.html -application/vnd.sealedmedia.softseal.pdf +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.sbm.cid +application/vnd.sbm.mid2 +application/vnd.scribus +application/vnd.sealed.3df +application/vnd.sealed.csf +application/vnd.sealed.doc +application/vnd.sealed.eml +application/vnd.sealed.mht +application/vnd.sealed.net +application/vnd.sealed.ppt +application/vnd.sealed.tiff +application/vnd.sealed.xls +application/vnd.sealedmedia.softseal.html +application/vnd.sealedmedia.softseal.pdf application/vnd.seemail see application/vnd.sema sema application/vnd.semd semd @@ -641,22 +641,22 @@ application/vnd.shana.informed.package ipk application/vnd.simtech-mindmapper twd twds application/vnd.smaf mmf application/vnd.smart.teacher teacher -application/vnd.software602.filler.form+xml -application/vnd.software602.filler.form-xml-zip +application/vnd.software602.filler.form+xml +application/vnd.software602.filler.form-xml-zip application/vnd.solent.sdkm+xml sdkd sdkm application/vnd.spotfire.dxp dxp application/vnd.spotfire.sfs sfs -application/vnd.sss-cod -application/vnd.sss-dtf -application/vnd.sss-ntf +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf application/vnd.stardivision.calc sdc application/vnd.stardivision.draw sda application/vnd.stardivision.impress sdd sdp application/vnd.stardivision.math sdf smf application/vnd.stardivision.writer sdw vor application/vnd.stardivision.writer-global sgl -application/vnd.street-stream -application/vnd.sun.wadl+xml +application/vnd.street-stream +application/vnd.sun.wadl+xml application/vnd.sun.xml.calc sxc application/vnd.sun.xml.calc.template stc application/vnd.sun.xml.draw sxd @@ -669,70 +669,70 @@ application/vnd.sun.xml.writer.global sxg application/vnd.sun.xml.writer.template stw application/vnd.sus-calendar sus susp application/vnd.svd svd -application/vnd.swiftview-ics +application/vnd.swiftview-ics application/vnd.symbian.install sis sisx application/vnd.syncml+xml xsm application/vnd.syncml.dm+wbxml bdm application/vnd.syncml.dm+xml xdm -application/vnd.syncml.dm.notification -application/vnd.syncml.ds.notification +application/vnd.syncml.dm.notification +application/vnd.syncml.ds.notification application/vnd.tao.intent-module-archive tao application/vnd.tmobile-livetv tmo application/vnd.trid.tpt tpt application/vnd.triscape.mxs mxs application/vnd.trueapp tra -application/vnd.truedoc +application/vnd.truedoc application/vnd.ufdl ufd ufdl application/vnd.uiq.theme utz application/vnd.umajin umj application/vnd.unity unityweb application/vnd.uoml+xml uoml -application/vnd.uplanet.alert -application/vnd.uplanet.alert-wbxml -application/vnd.uplanet.bearer-choice -application/vnd.uplanet.bearer-choice-wbxml -application/vnd.uplanet.cacheop -application/vnd.uplanet.cacheop-wbxml -application/vnd.uplanet.channel -application/vnd.uplanet.channel-wbxml -application/vnd.uplanet.list -application/vnd.uplanet.list-wbxml -application/vnd.uplanet.listcmd -application/vnd.uplanet.listcmd-wbxml -application/vnd.uplanet.signal +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal application/vnd.vcx vcx -application/vnd.vd-study -application/vnd.vectorworks -application/vnd.vidsoft.vidconference +application/vnd.vd-study +application/vnd.vectorworks +application/vnd.vidsoft.vidconference application/vnd.visio vsd vss vst vsw application/vnd.visionary vis -application/vnd.vividence.scriptfile +application/vnd.vividence.scriptfile application/vnd.vsf vsf -application/vnd.wap.sic -application/vnd.wap.slc +application/vnd.wap.sic +application/vnd.wap.slc application/vnd.wap.wbxml wbxml application/vnd.wap.wmlc wmlc application/vnd.wap.wmlscriptc wmlsc application/vnd.webturbo wtb -application/vnd.wfa.wsc -application/vnd.wmc -application/vnd.wmf.bootstrap +application/vnd.wfa.wsc +application/vnd.wmc +application/vnd.wmf.bootstrap application/vnd.wordperfect wpd application/vnd.wqd wqd -application/vnd.wrq-hp3000-labelled +application/vnd.wrq-hp3000-labelled application/vnd.wt.stf stf -application/vnd.wv.csp+wbxml -application/vnd.wv.csp+xml -application/vnd.wv.ssp+xml +application/vnd.wv.csp+wbxml +application/vnd.wv.csp+xml +application/vnd.wv.ssp+xml application/vnd.xara xar application/vnd.xfdl xfdl -application/vnd.xfdl.webform -application/vnd.xmi+xml -application/vnd.xmpie.cpkg -application/vnd.xmpie.dpkg -application/vnd.xmpie.plan -application/vnd.xmpie.ppkg -application/vnd.xmpie.xlim +application/vnd.xfdl.webform +application/vnd.xmi+xml +application/vnd.xmpie.cpkg +application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg +application/vnd.xmpie.xlim application/vnd.yamaha.hv-dic hvd application/vnd.yamaha.hv-script hvs application/vnd.yamaha.hv-voice hvp @@ -744,11 +744,11 @@ application/vnd.yellowriver-custom-menu cmp application/vnd.zul zir zirz application/vnd.zzazz.deck+xml zaz application/voicexml+xml vxml -application/watcherinfo+xml -application/whoispp-query -application/whoispp-response +application/watcherinfo+xml +application/whoispp-query +application/whoispp-response application/winhlp hlp -application/wita +application/wita application/wordperfect wpd application/wordperfect5.1 wp5 application/wsdl+xml wsdl @@ -768,7 +768,7 @@ application/x-cdf cdf application/x-cdlink vcd application/x-chat chat application/x-chess-pgn pgn -application/x-compress +application/x-compress application/x-cpio cpio application/x-csh csh application/x-debian-package deb udeb @@ -782,26 +782,26 @@ application/x-dvi dvi application/x-flac flac application/x-font gsf pcf pcf.Z pfa pfb application/x-font-bdf bdf -application/x-font-dos -application/x-font-framemaker +application/x-font-dos +application/x-font-framemaker application/x-font-ghostscript gsf -application/x-font-libgrx +application/x-font-libgrx application/x-font-linux-psf psf application/x-font-otf otf application/x-font-pcf pcf application/x-font-snf snf -application/x-font-speedo -application/x-font-sunos-news +application/x-font-speedo +application/x-font-sunos-news application/x-font-ttf ttc ttf application/x-font-type1 afm pfa pfb pfm -application/x-font-vfont +application/x-font-vfont application/x-freemind mm application/x-futuresplash spl application/x-gnumeric gnumeric application/x-go-sgf sgf application/x-graphing-calculator gcf application/x-gtar gtar taz tgz -application/x-gzip +application/x-gzip application/x-hdf hdf application/x-ica ica application/x-internet-signup ins isp @@ -880,147 +880,147 @@ application/x-x509-ca-cert crt der application/x-xcf xcf application/x-xfig fig application/x-xpinstall xpi -application/x400-bp -application/xcap-att+xml -application/xcap-caps+xml -application/xcap-el+xml -application/xcap-error+xml -application/xcap-ns+xml -application/xcon-conference-info+xml -application/xcon-conference-info-diff+xml +application/x400-bp +application/xcap-att+xml +application/xcap-caps+xml +application/xcap-el+xml +application/xcap-error+xml +application/xcap-ns+xml +application/xcon-conference-info+xml +application/xcon-conference-info-diff+xml application/xenc+xml xenc application/xhtml+xml xht xhtml -application/xhtml-voice+xml +application/xhtml-voice+xml application/xml xml xsl application/xml-dtd dtd -application/xml-external-parsed-entity -application/xmpp+xml +application/xml-external-parsed-entity +application/xmpp+xml application/xop+xml xop application/xslt+xml xslt application/xspf+xml xspf application/xv+xml mxml xhvml xvm xvml application/zip zip -audio/32kadpcm -audio/3gpp -audio/3gpp2 -audio/ac3 +audio/32kadpcm +audio/3gpp +audio/3gpp2 +audio/ac3 audio/adpcm adp -audio/amr -audio/amr-wb -audio/amr-wb+ -audio/asc +audio/amr +audio/amr-wb +audio/amr-wb+ +audio/asc audio/basic au snd -audio/bv16 -audio/bv32 -audio/clearmode -audio/cn -audio/dat12 -audio/dls -audio/dsr-es201108 -audio/dsr-es202050 -audio/dsr-es202211 -audio/dsr-es202212 -audio/dvi4 -audio/eac3 -audio/evrc -audio/evrc-qcp -audio/evrc0 -audio/evrc1 -audio/evrcb -audio/evrcb0 -audio/evrcb1 -audio/evrcwb -audio/evrcwb0 -audio/evrcwb1 -audio/example -audio/g719 -audio/g722 -audio/g7221 -audio/g723 -audio/g726-16 -audio/g726-24 -audio/g726-32 -audio/g726-40 -audio/g728 -audio/g729 -audio/g7291 -audio/g729d -audio/g729e -audio/gsm -audio/gsm-efr -audio/ilbc -audio/l16 -audio/l20 -audio/l24 -audio/l8 -audio/lpc +audio/bv16 +audio/bv32 +audio/clearmode +audio/cn +audio/dat12 +audio/dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/dvi4 +audio/eac3 +audio/evrc +audio/evrc-qcp +audio/evrc0 +audio/evrc1 +audio/evrcb +audio/evrcb0 +audio/evrcb1 +audio/evrcwb +audio/evrcwb0 +audio/evrcwb1 +audio/example +audio/g719 +audio/g722 +audio/g7221 +audio/g723 +audio/g726-16 +audio/g726-24 +audio/g726-32 +audio/g726-40 +audio/g728 +audio/g729 +audio/g7291 +audio/g729d +audio/g729e +audio/gsm +audio/gsm-efr +audio/ilbc +audio/l16 +audio/l20 +audio/l24 +audio/l8 +audio/lpc audio/midi kar mid midi rmi -audio/mobile-xmf +audio/mobile-xmf audio/mp4 mp4a -audio/mp4a-latm -audio/mpa -audio/mpa-robust +audio/mp4a-latm +audio/mpa +audio/mpa-robust audio/mpeg m2a m3a m4a mp2 mp2a mp3 mpega mpga -audio/mpeg4-generic +audio/mpeg4-generic audio/mpegurl m3u audio/ogg oga ogg spx -audio/parityfec -audio/pcma -audio/pcma-wb -audio/pcmu -audio/pcmu-wb +audio/parityfec +audio/pcma +audio/pcma-wb +audio/pcmu +audio/pcmu-wb audio/prs.sid sid -audio/qcelp -audio/red -audio/rtp-enc-aescm128 -audio/rtp-midi -audio/rtx -audio/smv -audio/smv-qcp -audio/smv0 -audio/sp-midi -audio/t140c -audio/t38 -audio/telephone-event -audio/tone -audio/ulpfec -audio/vdvi -audio/vmr-wb -audio/vnd.3gpp.iufp -audio/vnd.4sb -audio/vnd.audiokoz -audio/vnd.celp -audio/vnd.cisco.nse -audio/vnd.cmles.radio-events -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 +audio/qcelp +audio/red +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtx +audio/smv +audio/smv-qcp +audio/smv0 +audio/sp-midi +audio/t140c +audio/t38 +audio/telephone-event +audio/tone +audio/ulpfec +audio/vdvi +audio/vmr-wb +audio/vnd.3gpp.iufp +audio/vnd.4sb +audio/vnd.audiokoz +audio/vnd.celp +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 audio/vnd.digital-winds eol -audio/vnd.dlna.adts -audio/vnd.dolby.heaac.1 -audio/vnd.dolby.heaac.2 -audio/vnd.dolby.mlp -audio/vnd.dolby.mps -audio/vnd.dolby.pl2 -audio/vnd.dolby.pl2x -audio/vnd.dolby.pl2z +audio/vnd.dlna.adts +audio/vnd.dolby.heaac.1 +audio/vnd.dolby.heaac.2 +audio/vnd.dolby.mlp +audio/vnd.dolby.mps +audio/vnd.dolby.pl2 +audio/vnd.dolby.pl2x +audio/vnd.dolby.pl2z audio/vnd.dts dts audio/vnd.dts.hd dtshd -audio/vnd.everad.plj -audio/vnd.hns.audio +audio/vnd.everad.plj +audio/vnd.hns.audio audio/vnd.lucent.voice lvp audio/vnd.ms-playready.media.pya pya -audio/vnd.nokia.mobile-xmf -audio/vnd.nortel.vbk +audio/vnd.nokia.mobile-xmf +audio/vnd.nortel.vbk audio/vnd.nuera.ecelp4800 ecelp4800 audio/vnd.nuera.ecelp7470 ecelp7470 audio/vnd.nuera.ecelp9600 ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.sealedmedia.softseal.mpeg -audio/vnd.vmx.cvsd -audio/vorbis -audio/vorbis-config +audio/vnd.octel.sbc +audio/vnd.qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.sealedmedia.softseal.mpeg +audio/vnd.vmx.cvsd +audio/vorbis +audio/vorbis-config audio/x-aac aac audio/x-aiff aif aifc aiff audio/x-gsm gsm @@ -1088,26 +1088,26 @@ chemical/x-xtel xtel chemical/x-xyz xyz image/bmp bmp image/cgm cgm -image/example -image/fits +image/example +image/fits image/g3fax g3 image/gif gif image/ief ief -image/jp2 +image/jp2 image/jpeg jpe jpeg jpg -image/jpm -image/jpx -image/naplps +image/jpm +image/jpx +image/naplps image/pcx pcx image/png png image/prs.btif btif -image/prs.pti +image/prs.pti image/svg+xml svg svgz -image/t38 +image/t38 image/tiff tif tiff -image/tiff-fx +image/tiff-fx image/vnd.adobe.photoshop psd -image/vnd.cns.inf2 +image/vnd.cns.inf2 image/vnd.djvu djv djvu image/vnd.dwg dwg image/vnd.dxf dxf @@ -1116,16 +1116,16 @@ image/vnd.fpx fpx image/vnd.fst fst image/vnd.fujixerox.edmics-mmr mmr image/vnd.fujixerox.edmics-rlc rlc -image/vnd.globalgraphics.pgb -image/vnd.microsoft.icon -image/vnd.mix +image/vnd.globalgraphics.pgb +image/vnd.microsoft.icon +image/vnd.mix image/vnd.ms-modi mdi image/vnd.net-fpx npx -image/vnd.radiance -image/vnd.sealed.png -image/vnd.sealedmedia.softseal.gif -image/vnd.sealedmedia.softseal.jpg -image/vnd.svf +image/vnd.radiance +image/vnd.sealed.png +image/vnd.sealedmedia.softseal.gif +image/vnd.sealedmedia.softseal.jpg +image/vnd.svf image/vnd.wap.wbmp wbmp image/vnd.xiff xif image/x-cmu-raster ras @@ -1150,109 +1150,109 @@ image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd -message/cpim -message/delivery-status -message/disposition-notification -message/example -message/external-body -message/global -message/global-delivery-status -message/global-disposition-notification -message/global-headers -message/http -message/imdn+xml -message/news -message/partial +message/cpim +message/delivery-status +message/disposition-notification +message/example +message/external-body +message/global +message/global-delivery-status +message/global-disposition-notification +message/global-headers +message/http +message/imdn+xml +message/news +message/partial message/rfc822 eml mime -message/s-http -message/sip -message/sipfrag -message/tracking-status -message/vnd.si.simp -model/example +message/s-http +message/sip +message/sipfrag +message/tracking-status +message/vnd.si.simp +model/example model/iges iges igs model/mesh mesh msh silo model/vnd.dwf dwf -model/vnd.flatland.3dml +model/vnd.flatland.3dml model/vnd.gdl gdl -model/vnd.gs-gdl -model/vnd.gs.gdl +model/vnd.gs-gdl +model/vnd.gs.gdl model/vnd.gtw gtw -model/vnd.moml+xml +model/vnd.moml+xml model/vnd.mts mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text +model/vnd.parasolid.transmit.binary +model/vnd.parasolid.transmit.text model/vnd.vtu vtu model/vrml vrml wrl -multipart/alternative -multipart/appledouble -multipart/byteranges -multipart/digest -multipart/encrypted -multipart/example -multipart/form-data -multipart/header-set -multipart/mixed -multipart/parallel -multipart/related -multipart/report -multipart/signed -multipart/voice-message +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/example +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message text/calendar ics icz ifb text/comma-separated-values csv text/css css text/csv csv -text/directory -text/dns -text/ecmascript -text/enriched -text/example +text/directory +text/dns +text/ecmascript +text/enriched +text/example text/h323 323 text/html htm html shtml text/iuls uls -text/javascript +text/javascript text/mathml mml -text/parityfec +text/parityfec text/plain asc conf def diff in list log pot text txt -text/prs.fallenstein.rst +text/prs.fallenstein.rst text/prs.lines.tag dsc -text/red -text/rfc822-headers +text/red +text/rfc822-headers text/richtext rtx text/rtf rtf -text/rtp-enc-aescm128 -text/rtx +text/rtp-enc-aescm128 +text/rtx text/scriptlet sct wsc text/sgml sgm sgml -text/t140 +text/t140 text/tab-separated-values tsv text/texmacs tm ts text/troff man me ms roff t tr -text/ulpfec +text/ulpfec text/uri-list uri uris urls -text/vnd.abc +text/vnd.abc text/vnd.curl curl text/vnd.curl.dcurl dcurl text/vnd.curl.mcurl mcurl text/vnd.curl.scurl scurl -text/vnd.dmclientscript -text/vnd.esmertec.theme-descriptor +text/vnd.dmclientscript +text/vnd.esmertec.theme-descriptor text/vnd.fly fly text/vnd.fmi.flexstor flx text/vnd.graphviz gv text/vnd.in3d.3dml 3dml text/vnd.in3d.spot spot -text/vnd.iptc.newsml -text/vnd.iptc.nitf -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.si.uricatalogue +text/vnd.iptc.newsml +text/vnd.iptc.nitf +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.net2phone.commcenter.command +text/vnd.si.uricatalogue text/vnd.sun.j2me.app-descriptor jad -text/vnd.trolltech.linguist -text/vnd.wap.si -text/vnd.wap.sl +text/vnd.trolltech.linguist +text/vnd.wap.si +text/vnd.wap.sl text/vnd.wap.wml wml text/vnd.wap.wmlscript wmls text/x-asm asm s @@ -1281,68 +1281,68 @@ text/x-tex cls ltx sty tex text/x-uuencode uu text/x-vcalendar vcs text/x-vcard vcf -text/xml -text/xml-external-parsed-entity +text/xml +text/xml-external-parsed-entity video/3gpp 3gp -video/3gpp-tt +video/3gpp-tt video/3gpp2 3g2 -video/bmpeg -video/bt656 -video/celb +video/bmpeg +video/bt656 +video/celb video/dl dl video/dv dif dv -video/example +video/example video/fli fli video/gl gl video/h261 h261 video/h263 h263 -video/h263-1998 -video/h263-2000 +video/h263-1998 +video/h263-2000 video/h264 h264 video/jpeg jpgv -video/jpeg2000 +video/jpeg2000 video/jpm jpgm jpm video/mj2 mj2 mjp2 -video/mp1s -video/mp2p -video/mp2t +video/mp1s +video/mp2p +video/mp2t video/mp4 mp4 mp4v mpg4 -video/mp4v-es +video/mp4v-es video/mpeg m1v m2v mpe mpeg mpg -video/mpeg4-generic -video/mpv -video/nv +video/mpeg4-generic +video/mpv +video/nv video/ogg ogv -video/parityfec -video/pointer +video/parityfec +video/pointer video/quicktime mov qt -video/raw -video/rtp-enc-aescm128 -video/rtx -video/smpte292m -video/ulpfec -video/vc1 -video/vnd.cctv -video/vnd.dlna.mpeg-tts +video/raw +video/rtp-enc-aescm128 +video/rtx +video/smpte292m +video/ulpfec +video/vc1 +video/vnd.cctv +video/vnd.dlna.mpeg-tts video/vnd.fvt fvt -video/vnd.hns.video -video/vnd.iptvforum.1dparityfec-1010 -video/vnd.iptvforum.1dparityfec-2005 -video/vnd.iptvforum.2dparityfec-1010 -video/vnd.iptvforum.2dparityfec-2005 -video/vnd.iptvforum.ttsavc -video/vnd.iptvforum.ttsmpeg2 -video/vnd.motorola.video -video/vnd.motorola.videop +video/vnd.hns.video +video/vnd.iptvforum.1dparityfec-1010 +video/vnd.iptvforum.1dparityfec-2005 +video/vnd.iptvforum.2dparityfec-1010 +video/vnd.iptvforum.2dparityfec-2005 +video/vnd.iptvforum.ttsavc +video/vnd.iptvforum.ttsmpeg2 +video/vnd.motorola.video +video/vnd.motorola.videop video/vnd.mpegurl m4u mxu video/vnd.ms-playready.media.pyv pyv -video/vnd.nokia.interleaved-multimedia -video/vnd.nokia.videovoip -video/vnd.objectvideo -video/vnd.sealed.mpeg1 -video/vnd.sealed.mpeg4 -video/vnd.sealed.swf -video/vnd.sealedmedia.softseal.mov +video/vnd.nokia.interleaved-multimedia +video/vnd.nokia.videovoip +video/vnd.objectvideo +video/vnd.sealed.mpeg1 +video/vnd.sealed.mpeg4 +video/vnd.sealed.swf +video/vnd.sealedmedia.softseal.mov video/vnd.vivo viv video/x-f4v f4v video/x-fli fli @@ -1370,8 +1370,11 @@ application/x-sony-bbeb lrf lrx application/adobe-page-template+xml xpgt application/x-font-opentype otf application/x-font-truetype ttf -application/x-mobipocket-ebook mobi prc -application/vnd.amazon.ebook azw3 azw azw2 azw4 +application/x-mobipocket-ebook mobi prc azw +application/x-topaz-ebook tpz azw1 +application/x-mobipocket-subscription pobi +application/x-kindle-application azw2 +application/x-mobi8-ebook azw3 application/x-cbz cbz application/x-cbr cbr application/x-cb7 cb7 diff --git a/src/calibre/devices/kindle/apnx.py b/src/calibre/devices/kindle/apnx.py index 4336df81a6..d6fec9ffd1 100644 --- a/src/calibre/devices/kindle/apnx.py +++ b/src/calibre/devices/kindle/apnx.py @@ -12,7 +12,10 @@ import struct from calibre.ebooks.mobi.reader.mobi6 import MobiReader from calibre.ebooks.pdb.header import PdbHeaderReader +from calibre.ebooks.mobi.reader.headers import MetadataHeader from calibre.utils.logging import default_log +from calibre import prints +from calibre.constants import DEBUG class APNXBuilder(object): ''' @@ -25,11 +28,32 @@ class APNXBuilder(object): pass in a value to page_count, otherwise a count will be estimated using either the fast or accurate algorithm. ''' - # Check that this is really a MOBI file. + import uuid + apnx_meta = { 'guid': str(uuid.uuid4()).replace('-', '')[:8], 'asin': + '', 'cdetype': 'EBOK', 'format': 'MOBI_7', 'acr': '' } + with open(mobi_file_path, 'rb') as mf: ident = PdbHeaderReader(mf).identity() - if ident != 'BOOKMOBI': - raise Exception(_('Not a valid MOBI file. Reports identity of %s') % ident) + if ident != 'BOOKMOBI': + # Check that this is really a MOBI file. + raise Exception(_('Not a valid MOBI file. Reports identity of %s') % ident) + apnx_meta['acr'] = str(PdbHeaderReader(mf).name()) + + # We'll need the PDB name, the MOBI version, and some metadata to make FW 3.4 happy with KF8 files... + with open(mobi_file_path, 'rb') as mf: + mh = MetadataHeader(mf, default_log) + if mh.mobi_version == 8: + apnx_meta['format'] = 'MOBI_8' + else: + apnx_meta['format'] = 'MOBI_7' + if mh.exth is None or not mh.exth.cdetype: + apnx_meta['cdetype'] = 'EBOK' + else: + apnx_meta['cdetype'] = str(mh.exth.cdetype) + if mh.exth is None or not mh.exth.uuid: + apnx_meta['asin'] = '' + else: + apnx_meta['asin'] = str(mh.exth.uuid) # Get the pages depending on the chosen parser pages = [] @@ -51,23 +75,32 @@ class APNXBuilder(object): raise Exception(_('Could not generate page mapping.')) # Generate the APNX file from the page mapping. - apnx = self.generate_apnx(pages) + apnx = self.generate_apnx(pages, apnx_meta) # Write the APNX. with open(apnx_path, 'wb') as apnxf: apnxf.write(apnx) - def generate_apnx(self, pages): - import uuid + def generate_apnx(self, pages, apnx_meta): apnx = '' - content_vals = { - 'guid': str(uuid.uuid4()).replace('-', '')[:8], - 'isbn': '', - } + if DEBUG: + prints('APNX META: guid:', apnx_meta['guid']) + prints('APNX META: ASIN:', apnx_meta['asin']) + prints('APNX META: CDE:', apnx_meta['cdetype']) + prints('APNX META: format:', apnx_meta['format']) + prints('APNX META: Name:', apnx_meta['acr']) - content_header = '{"contentGuid":"%(guid)s","asin":"%(isbn)s","cdeType":"EBOK","fileRevisionId":"1"}' % content_vals - page_header = '{"asin":"%(isbn)s","pageMap":"(1,a,1)"}' % content_vals + # Updated header if we have a KF8 file... + if apnx_meta['format'] == 'MOBI_8': + content_header = '{"contentGuid":"%(guid)s","asin":"%(asin)s","cdeType":"%(cdetype)s","format":"%(format)s","fileRevisionId":"1","acr":"%(acr)s"}' % apnx_meta + else: + # My 5.1.x Touch & 3.4 K3 seem to handle the 'extended' header fine for legacy mobi files, too. But, since they still handle this one too, let's try not to break old devices, and keep using the simple header ;). + content_header = '{"contentGuid":"%(guid)s","asin":"%(asin)s","cdeType":"%(cdetype)s","fileRevisionId":"1"}' % apnx_meta + page_header = '{"asin":"%(asin)s","pageMap":"(1,a,1)"}' % apnx_meta + + if DEBUG: + prints('APNX Content Header:', content_header) apnx += struct.pack('>I', 65537) apnx += struct.pack('>I', 12 + len(content_header)) diff --git a/src/calibre/devices/kindle/driver.py b/src/calibre/devices/kindle/driver.py index ac3bcb4bc1..a657b777f7 100644 --- a/src/calibre/devices/kindle/driver.py +++ b/src/calibre/devices/kindle/driver.py @@ -289,7 +289,8 @@ class KINDLE2(KINDLE): description = _('Communicate with the Kindle 2/3/4/Touch eBook reader.') FORMATS = ['azw3'] + KINDLE.FORMATS + ['pdf', 'azw4', 'pobi'] - DELETE_EXTS = KINDLE.DELETE_EXTS + ['.mbp1', '.mbs', '.sdr'] + DELETE_EXTS = KINDLE.DELETE_EXTS + ['.mbp1', '.mbs', '.sdr', '.han'] + # On the Touch, there's also .asc files, but not using the same basename (for X-Ray & End Actions), azw3f & azw3r files, but all of them are in the .sdr sidecar folder PRODUCT_ID = [0x0002, 0x0004] BCD = [0x0100] diff --git a/src/calibre/ebooks/mobi/writer8/exth.py b/src/calibre/ebooks/mobi/writer8/exth.py index 09e2b14bc7..a060e338d1 100644 --- a/src/calibre/ebooks/mobi/writer8/exth.py +++ b/src/calibre/ebooks/mobi/writer8/exth.py @@ -11,7 +11,7 @@ import re from struct import pack from io import BytesIO -from calibre.ebooks.mobi.utils import utf8_text +from calibre.ebooks.mobi.utils import (utf8_text, to_base) from calibre.utils.localization import lang_as_iso639_1 from calibre.ebooks.metadata import authors_to_sort_string @@ -31,6 +31,7 @@ EXTH_CODES = { 'startreading': 116, 'kf8_header_index': 121, 'num_of_resources': 125, + 'kf8_thumbnail_uri': 129, 'kf8_unknown_count': 131, 'coveroffset': 201, 'thumboffset': 202, @@ -160,7 +161,10 @@ def build_exth(metadata, prefer_author_sort=False, is_periodical=False, if thumbnail_offset is not None: exth.write(pack(b'>III', EXTH_CODES['thumboffset'], 12, thumbnail_offset)) - nrecs += 1 + thumbnail_uri_str = bytes('kindle:embed:%s' %(to_base(thumbnail_offset, base=32, min_num_digits=4))) + exth.write(pack(b'>II', EXTH_CODES['kf8_thumbnail_uri'], len(thumbnail_uri_str) + 8)) + exth.write(thumbnail_uri_str) + nrecs += 2 if start_offset is not None: try: diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index dc4646f208..7a5e71e17b 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -477,10 +477,13 @@ class FileIconProvider(QFileIconProvider): 'prc' : 'mobi', 'azw' : 'mobi', 'mobi' : 'mobi', + 'pobi' : 'mobi', 'mbp' : 'zero', - 'azw1' : 'mobi', + 'azw1' : 'tpz', + 'azw2' : 'azw2', + 'azw3' : 'azw3', 'azw4' : 'pdf', - 'tpz' : 'mobi', + 'tpz' : 'tpz', 'tan' : 'zero', 'epub' : 'epub', 'fb2' : 'fb2', diff --git a/src/calibre/gui2/convert/azw3_output.py b/src/calibre/gui2/convert/azw3_output.py index 0acb436d2c..264b7ae92b 100644 --- a/src/calibre/gui2/convert/azw3_output.py +++ b/src/calibre/gui2/convert/azw3_output.py @@ -17,7 +17,7 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('AZW3 Output') HELP = _('Options specific to')+' AZW3 '+_('output') COMMIT_NAME = 'azw3_output' - ICON = I('mimetypes/mobi.png') + ICON = I('mimetypes/azw3.png') def __init__(self, parent, get_option, get_help, db=None, book_id=None): Widget.__init__(self, parent, diff --git a/src/calibre/gui2/tools.py b/src/calibre/gui2/tools.py index 36c1a6f30f..b3375ad842 100644 --- a/src/calibre/gui2/tools.py +++ b/src/calibre/gui2/tools.py @@ -234,6 +234,9 @@ class QueueBulk(QProgressDialog): def fetch_scheduled_recipe(arg): # {{{ fmt = prefs['output_format'].lower() + # Never use AZW3 for periodicals... + if fmt == 'azw3': + fmt = 'mobi' pt = PersistentTemporaryFile(suffix='_recipe_out.%s'%fmt.lower()) pt.close() recs = [] diff --git a/src/calibre/linux.py b/src/calibre/linux.py index a50cedb001..0f3e2d1792 100644 --- a/src/calibre/linux.py +++ b/src/calibre/linux.py @@ -363,6 +363,18 @@ class PostInstall: cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True) self.icon_resources.append(('mimetypes', 'application-lrs', '128')) + render_img('mimetypes/mobi.png', 'calibre-mobi.png') + cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-mobi.png application-x-mobipocket-ebook', shell=True) + self.icon_resources.append(('mimetypes', 'application-x-mobipocket-ebook', '128')) + render_img('mimetypes/tpz.png', 'calibre-tpz.png') + cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-tpz.png application-x-topaz-ebook', shell=True) + self.icon_resources.append(('mimetypes', 'application-x-topaz-ebook', '128')) + render_img('mimetypes/azw2.png', 'calibre-azw2.png') + cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-azw2.png application-x-kindle-application', shell=True) + self.icon_resources.append(('mimetypes', 'application-x-kindle-application', '128')) + render_img('mimetypes/azw3.png', 'calibre-azw3.png') + cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-azw3.png application-x-mobi8-ebook', shell=True) + self.icon_resources.append(('mimetypes', 'application-x-mobi8-ebook', '128')) render_img('lt.png', 'calibre-gui.png', width=256, height=256) cc('xdg-icon-resource install --noupdate --size 256 calibre-gui.png calibre-gui', shell=True) self.icon_resources.append(('apps', 'calibre-gui', '128')) @@ -397,11 +409,11 @@ class PostInstall: cc(' '.join(cmd), shell=True) self.menu_resources.append(x) cc(['xdg-desktop-menu', 'forceupdate']) - f = open('calibre-mimetypes', 'wb') + f = open('calibre-mimetypes.xml', 'wb') f.write(MIME) f.close() - self.mime_resources.append('calibre-mimetypes') - cc('xdg-mime install ./calibre-mimetypes', shell=True) + self.mime_resources.append('calibre-mimetypes.xml') + cc('xdg-mime install ./calibre-mimetypes.xml', shell=True) except Exception: if self.opts.fatal_errors: raise @@ -563,6 +575,33 @@ MIME = '''\ SONY E-book source format + + Amazon Mobipocket e-book format + + + + + Amazon Topaz ebook format + + + + + Amazon Kindle Application (Kindlet) + + + + + Amazon Mobipocket ebook newspaper format + + + + + + + Amazon KF8 ebook format + + + '''