diff options
author | Andreas Grapentin <andreas@grapentin.org> | 2018-01-05 22:09:51 +0100 |
---|---|---|
committer | Andreas Grapentin <andreas@grapentin.org> | 2018-01-05 22:11:09 +0100 |
commit | dfa8445443da05c43824811751233f789e72c609 (patch) | |
tree | 35117822289c5ae6102d374603fb5eb43295de82 /libre/calibre | |
parent | 52922a1c30c8f00f8326db3ca20284ab4faa8712 (diff) | |
download | abslibre-dfa8445443da05c43824811751233f789e72c609.tar.gz abslibre-dfa8445443da05c43824811751233f789e72c609.tar.bz2 abslibre-dfa8445443da05c43824811751233f789e72c609.zip |
libre/calibre: updated to 3.15.0
Diffstat (limited to 'libre/calibre')
-rw-r--r-- | libre/calibre/PKGBUILD | 10 | ||||
-rw-r--r-- | libre/calibre/libre.patch | 4729 |
2 files changed, 5 insertions, 4734 deletions
diff --git a/libre/calibre/PKGBUILD b/libre/calibre/PKGBUILD index 123df5c85..b1d5f819b 100644 --- a/libre/calibre/PKGBUILD +++ b/libre/calibre/PKGBUILD @@ -11,8 +11,8 @@ # Contributor: Isaac David <isacdaavid@at@isacdaavid@dot@info> pkgname=calibre -pkgver=3.13.0 -pkgrel=1.parabola2 +pkgver=3.15.0 +pkgrel=1.parabola1 arch=(x86_64 i686 armv7h) pkgdesc="Ebook management application, without nonfree decompression engine for RAR archives" @@ -37,13 +37,13 @@ replaces=($pkgname-libre) conflicts=($pkgname-libre) # for updated libre.patch commit id see: https://gitlab.com/libreforks/calibre/tags -_commit='ce5c919653b60aa8aea611b3ee19dba8' +_commit='11f261b5db0b2f0d23e5067368ce73d6' source=("https://download.calibre-ebook.com/$pkgver/calibre-$pkgver.tar.xz" "https://calibre-ebook.com/signatures/$pkgname-$pkgver.tar.xz.sig" "https://gitlab.com/libreforks/calibre/uploads/$_commit/libre.patch") -sha256sums=('84c980e80b61d12797c91bfa0b6ba81926e2fef49ca3082c3e5ea80d161e13a9' +sha256sums=('8746f52315561d606fd7120fec8284c2e4433f6ead14639c40b4b5f1522273ff' 'SKIP' - '87b55892d8ba896dd1b29949769001fa5521f85f664b675eb118bba66a42dc5e') + 'b218de451ac29081071b6ba965c543bfeb6fb9c5a1bdcedfa02b27811c986dd6') validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') prepare() { diff --git a/libre/calibre/libre.patch b/libre/calibre/libre.patch deleted file mode 100644 index 33f2c2bbd..000000000 --- a/libre/calibre/libre.patch +++ /dev/null @@ -1,4729 +0,0 @@ -diff --git a/COPYRIGHT b/COPYRIGHT -index 933e771..3ac5369 100644 ---- a/COPYRIGHT -+++ b/COPYRIGHT -@@ -16,11 +16,6 @@ Files: resources/rapydscript/* - Copyright: Various - License: BSD - --Files: src/unrar/* --Copyright: Various --License: Non-free -- Code can be distributed freely. -- - Files: src/html5lib/* - Copyright: Copyright (c) 2006-2013 James Graham and other contributors - License: Expat -diff --git a/Changelog.yaml b/Changelog.yaml -index e4e041d..8105931 100644 ---- a/Changelog.yaml -+++ b/Changelog.yaml -@@ -67,7 +67,7 @@ - - - title: "Save to disk: Dont error out if the user deletes all formats to be saved." - -- - title: "Linux binary: Fix calibre not starting on systems where QT_QPA_PLATFORM is set to use wayland" -+ - title: "GNU/Linux binary: Fix calibre not starting on systems where QT_QPA_PLATFORM is set to use wayland" - - improved recipes: - - The Economist -@@ -94,7 +94,7 @@ - bug fixes: - - title: "Fix a regression that caused clicking the clear button in the main search bar to not unapply the current search until enter is pressed." - -- - title: "Linux: Fix a regression causing calibre to fail to start on systems with no DBUS session bus" -+ - title: "GNU/Linux: Fix a regression causing calibre to fail to start on systems with no DBUS session bus" - - - title: "Browser viewer: Fix body font being forced to sans-serif, overriding in book and user stylesheet settings" - -@@ -134,7 +134,7 @@ - - - title: "Book details panel: Fix metadata field titles not being top aligned" - -- - title: "Linux: Fix long startup delay on systems that do not have a desktop notification service running" -+ - title: "GNU/Linux: Fix long startup delay on systems that do not have a desktop notification service running" - - - title: "3.11.1 fixes a couple of regression in 3.11.0 that broke configuring Get books and creating catalogs" - -@@ -245,12 +245,12 @@ - - title: "Book details popup window: Show the cover size in the bottom right corner if the option to show cover size in the Book details panel is set." - tickets: [1716520] - -- - title: "Linux: Fix regression that broke using calibre on some older VNC servers" -+ - title: "GNU/Linux: Fix regression that broke using calibre on some older VNC servers" - - - title: "Browser viewer: Do not fail if the book contains javascript that has errors." - tickets: [1715781] - -- - title: "Linux: Fix file open dialog on older KDE desktops not working correctly." -+ - title: "GNU/Linux: Fix file open dialog on older KDE desktops not working correctly." - tickets: [1715648] - - - title: "Update Ozon.ru metadata plugin for website changes." -@@ -262,7 +262,7 @@ - - title: "Conversion: Expand -epub-writing-mode to -webkit-writing-mode and writing-mode properties for maximum compatibility." - tickets: [1713509] - -- - title: "Linux: Fix SONY PRS-650 not being detected" -+ - title: "GNU/Linux: Fix SONY PRS-650 not being detected" - - improved recipes: - - The Hindu -@@ -313,9 +313,9 @@ - - - title: "Workaround for Qt bug that prevented using the shift and ctrl keys with the touchscreen" - -- - title: "Linux: fix native KDE file dialog not working on older systems" -+ - title: "GNU/Linux: fix native KDE file dialog not working on older systems" - -- - title: "Linux: Fix KDE dialogs not supporting multiple file name filter groups" -+ - title: "GNU/Linux: Fix KDE dialogs not supporting multiple file name filter groups" - - - title: "Fix libraries being sorted alphabetically by full path rather than just library name" - -@@ -340,7 +340,7 @@ - date: 2017-08-04 - - new features: -- - title: "Linux: Use native file dialogs via zenity or kdialog, if available" -+ - title: "GNU/Linux: Use native file dialogs via zenity or kdialog, if available" - - - title: "Copy to library: Add an action to show a dialog that allows for easy selection of libraries for copy/move. Useful when there are a large number of libraries to choose from." - tickets: [1706198] -@@ -519,7 +519,7 @@ - - - title: "Server: Fix timeout errors when using SSL (particularly common when running the server on windows)" - -- - title: "Linux: Fix slow mouse wheel scrolling in Cover grid because of Qt bug" -+ - title: "GNU/Linux: Fix slow mouse wheel scrolling in Cover grid because of Qt bug" - - - title: "Blacklist the iOS Reader applications and Marvin XD plugins as they were preventing calibre from starting up and they have not worked in a long time anyway, since Apple restricted USB access to their iOS devices" - -@@ -555,8 +555,6 @@ - - title: "Edit metadata dialog: Add buttons to easily set/clear Yes/no columns" - tickets: [1698331] - -- - title: "Support for RAR 5.0 format RAR and CBR files" -- - bug fixes: - - title: "Version 3.1.1 fixes a regression in 3.1.0 that prevented the standalone calibre-server.exe from working on Windows and macOS" - -@@ -3720,7 +3718,7 @@ - - - title: "Add books: Improve performance when adding large numbers of books at once" - -- - title: "Add books: Allow adding books from multiple ZIP/RAR archives, each containing many books, by right clicking on the Add books and choosing 'Add from archive'" -+ - title: "Add books: Allow adding books from multiple ZIP archives, each containing many books, by right clicking on the Add books and choosing 'Add from archive'" - - - title: "Metadata download: Prioritize results that have the same language as the current calibre user interface language" - -diff --git a/README.md b/README.md -index 584157f..df775a7 100644 ---- a/README.md -+++ b/README.md -@@ -3,17 +3,22 @@ calibre - - <img align="left" src="resources/images/lt.png?raw=true"/> - --calibre is an e-book manager. It can view, convert, edit and catalog e-books --in all of the major e-book formats. It can also talk to e-book reader --devices. It can go out to the internet and fetch metadata for your books. --It can download newspapers and convert them into e-books for convenient --reading. It is cross platform, running on Linux, Windows and OS X. -+This is a fully-libre fork of calibre, an e-book manager. -+It can view, convert, edit and catalog e-books in all of the major e-book formats. -+It can also talk to e-book reader devices. It can go out to the internet and fetch -+metadata for your books. -+It can download newspapers and convert them into e-books for convenient -+reading. It is cross platform, running on GNU/Linux, Windows and OS X. - - For more information, see the [calibre About page](https://calibre-ebook.com/about) - - [![Build Status](https://api.travis-ci.org/kovidgoyal/calibre.svg)](https://travis-ci.org/kovidgoyal/calibre) - [![Build status](https://ci.appveyor.com/api/projects/status/v3nkfq0t3pse8lep?svg=true&passingText=windows%20OK&failingText=windows%20KO)](https://ci.appveyor.com/project/kovidgoyal/calibre) - -+<br> -+<br> -+<br> -+ - Screenshots - ------------- - [Screenshots page](https://calibre-ebook.com/demo) -@@ -34,12 +39,5 @@ Bugs - ------ - - Bug reports and feature requests should be made in the calibre bug tracker at [launchpad](https://bugs.launchpad.net/calibre). --GitHub is only used for code hosting and pull requests. -- --Support calibre ------------------ -- --calibre is a result of the efforts of many volunteers from all over the world. --If you find it useful, please consider contributing to support its development. --[Donate to support calibre development](https://calibre-ebook.com/donate). -+If the bug is particular to this fork, then report it in the [Parabola Bug Tracker](https://labs.parabola.nu/projects) - -diff --git a/imgsrc/mimetypes/rar.svg a/imgsrc/mimetypes/rar.svg -deleted file mode 100644 -index 9b1f34e..0000000 ---- a/imgsrc/mimetypes/rar.svg -+++ /dev/null -@@ -1,2765 +0,0 @@ --<?xml version="1.0" encoding="UTF-8" standalone="no"?> --<!-- Created with Inkscape (http://www.inkscape.org/) --> --<svg -- xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" -- xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" -- xmlns:dc="http://purl.org/dc/elements/1.1/" -- xmlns:cc="http://web.resource.org/cc/" -- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" -- 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" -- width="128" -- height="128" -- id="svg2606" -- sodipodi:version="0.32" -- inkscape:version="0.45.1" -- version="1.0" -- sodipodi:docname="application-x-ace.svg" -- inkscape:output_extension="org.inkscape.output.svg.inkscape" -- sodipodi:docbase="/home/david/sandbox"> -- <defs -- id="defs2608"> -- <linearGradient -- id="linearGradient4360"> -- <stop -- style="stop-color:#ffdfbf;stop-opacity:1;" -- offset="0" -- id="stop4362" /> -- <stop -- style="stop-color:#ffdfbf;stop-opacity:0;" -- offset="1" -- id="stop4364" /> -- </linearGradient> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient4360" -- id="linearGradient4366" -- x1="52.25" -- y1="97.514183" -- x2="52.25" -- y2="22.061335" -- gradientUnits="userSpaceOnUse" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient6548" -- id="linearGradient2422" -- gradientUnits="userSpaceOnUse" -- x1="13.769808" -- y1="5.4544477" -- x2="50.6035" -- y2="26.3501" -- gradientTransform="translate(100.96362,-31.039526)" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient6534" -- id="linearGradient4378" -- gradientUnits="userSpaceOnUse" -- x1="90.050995" -- y1="4.5991001" -- x2="62.9014" -- y2="21.1523" -- gradientTransform="translate(100.96362,-31.039526)" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient6524" -- id="linearGradient3400" -- gradientUnits="userSpaceOnUse" -- gradientTransform="translate(100.96362,-31.039526)" -- x1="63.573593" -- y1="16.737045" -- x2="59.166992" -- y2="24.58" /> -- <filter -- inkscape:collect="always" -- x="-0.073966118" -- width="1.1479322" -- y="-0.17647055" -- height="1.3529411" -- id="filter3400"> -- <feGaussianBlur -- inkscape:collect="always" -- stdDeviation="3.1565288" -- id="feGaussianBlur3402" /> -- </filter> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient6524" -- id="linearGradient9793" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(1.0024038,0,0,1,-0.2163407,0)" -- x1="64.25" -- y1="45.3125" -- x2="73.5625" -- y2="43.8125" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_26_" -- id="linearGradient9791" -- gradientUnits="userSpaceOnUse" -- x1="0.6016" -- y1="60.5801" -- x2="1.1021" -- y2="60.5801" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_25_" -- id="linearGradient9789" -- gradientUnits="userSpaceOnUse" -- x1="2.1997" -- y1="60.7158" -- x2="3.198" -- y2="60.6601" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_24_" -- id="linearGradient9787" -- gradientUnits="userSpaceOnUse" -- x1="103.8984" -- y1="60.5801" -- x2="103.3984" -- y2="60.5801" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_23_" -- id="linearGradient9785" -- gradientUnits="userSpaceOnUse" -- x1="101.3027" -- y1="60.6592" -- x2="102.3008" -- y2="60.7148" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient3329" -- id="linearGradient9779" -- gradientUnits="userSpaceOnUse" -- x1="45.35817" -- y1="9.0646334" -- x2="45.35817" -- y2="25.815258" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_17_" -- id="linearGradient9777" -- gradientUnits="userSpaceOnUse" -- x1="0.25" -- y1="13.2949" -- x2="104.25" -- y2="13.2949" /> -- <radialGradient -- inkscape:collect="always" -- xlink:href="#XMLID_15_" -- id="radialGradient9773" -- gradientUnits="userSpaceOnUse" -- cx="7.5" -- cy="8.3301" -- r="126.4133" /> -- <linearGradient -- id="XMLID_166_" -- gradientUnits="userSpaceOnUse" -- x1="63.106" -- y1="71.9766" -- x2="65.1059" -- y2="80.9765"> -- <stop -- offset="0.0506" -- style="stop-color:#FFFFFF" -- id="stop2629" /> -- <stop -- offset="1" -- style="stop-color:#D3D7CF" -- id="stop2631" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#D3D7CF" /> -- </linearGradient> -- <linearGradient -- id="XMLID_165_" -- gradientUnits="userSpaceOnUse" -- x1="62" -- y1="76" -- x2="66" -- y2="76"> -- <stop -- offset="0.0506" -- style="stop-color:#FFFFFF" -- id="stop2620" /> -- <stop -- offset="0.9326" -- style="stop-color:#D3D7CF" -- id="stop2622" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2624" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="0.9326" -- style="stop-color:#D3D7CF" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#D3D7CF" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_164_" -- gradientUnits="userSpaceOnUse" -- x1="61.7065" -- y1="77.5322" -- x2="67.7616" -- y2="107.8077"> -- <stop -- offset="0" -- style="stop-color:#EEEEEC" -- id="stop2613" /> -- <stop -- offset="1" -- style="stop-color:#BABDB6" -- id="stop2615" /> -- <a:midPointStop -- offset="0" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#BABDB6" /> -- </linearGradient> -- <linearGradient -- id="XMLID_163_" -- gradientUnits="userSpaceOnUse" -- x1="61.3159" -- y1="83.0986" -- x2="68.3162" -- y2="101.0992"> -- <stop -- offset="0.0056" -- style="stop-color:#FFFFFF" -- id="stop2600" /> -- <stop -- offset="0.1352" -- style="stop-color:#F0F0F0" -- id="stop2602" /> -- <stop -- offset="0.384" -- style="stop-color:#CACAC9" -- id="stop2604" /> -- <stop -- offset="0.7233" -- style="stop-color:#8C8D8B" -- id="stop2606" /> -- <stop -- offset="1" -- style="stop-color:#555753" -- id="stop2608" /> -- <a:midPointStop -- offset="0.0056" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="0.5618" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#555753" /> -- </linearGradient> -- <linearGradient -- id="XMLID_162_" -- gradientUnits="userSpaceOnUse" -- x1="63.542" -- y1="74.0918" -- x2="64.5422" -- y2="79.093"> -- <stop -- offset="0" -- style="stop-color:#a9ada4;stop-opacity:1;" -- id="stop2593" /> -- <stop -- offset="1" -- style="stop-color:#3f403d;stop-opacity:1;" -- id="stop2595" /> -- <a:midPointStop -- offset="0" -- style="stop-color:#BABDB6" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#BABDB6" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#555753" /> -- </linearGradient> -- <linearGradient -- id="XMLID_161_" -- gradientUnits="userSpaceOnUse" -- x1="62.0503" -- y1="69.625" -- x2="67.0498" -- y2="83.6237"> -- <stop -- offset="0" -- style="stop-color:#FFFFFF" -- id="stop2574" /> -- <stop -- offset="0.1332" -- style="stop-color:#FAFAFA" -- id="stop2576" /> -- <stop -- offset="0.2876" -- style="stop-color:#ECEDEC" -- id="stop2578" /> -- <stop -- offset="0.4525" -- style="stop-color:#D5D6D5" -- id="stop2580" /> -- <stop -- offset="0.6249" -- style="stop-color:#B5B6B4" -- id="stop2582" /> -- <stop -- offset="0.8032" -- style="stop-color:#8C8D8A" -- id="stop2584" /> -- <stop -- offset="0.9838" -- style="stop-color:#5A5C58" -- id="stop2586" /> -- <stop -- offset="1" -- style="stop-color:#555753" -- id="stop2588" /> -- <a:midPointStop -- offset="0" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="0.6765" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#555753" /> -- </linearGradient> -- <linearGradient -- id="XMLID_160_" -- gradientUnits="userSpaceOnUse" -- x1="56.8906" -- y1="67.8857" -- x2="68.8911" -- y2="82.8864"> -- <stop -- offset="0" -- style="stop-color:#FFFFFF" -- id="stop2567" /> -- <stop -- offset="1" -- style="stop-color:#373836;stop-opacity:1;" -- id="stop2569" /> -- <a:midPointStop -- offset="0" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#555753" /> -- </linearGradient> -- <linearGradient -- id="XMLID_159_" -- gradientUnits="userSpaceOnUse" -- x1="60.3325" -- y1="67.6123" -- x2="68.4149" -- y2="103.9829"> -- <stop -- offset="0.0506" -- style="stop-color:#515151;stop-opacity:1;" -- id="stop2560" /> -- <stop -- offset="1" -- style="stop-color:#343633;stop-opacity:1;" -- id="stop2562" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#FFFFFF" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#555753" /> -- </linearGradient> -- <linearGradient -- id="XMLID_143_" -- gradientUnits="userSpaceOnUse" -- x1="33.7886" -- y1="57.9995" -- x2="33.7886" -- y2="119.0001"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2497" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2499" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_115_" -- gradientUnits="userSpaceOnUse" -- x1="84.0117" -- y1="28.52" -- x2="85.3436" -- y2="35.1793" -- gradientTransform="matrix(-0.2556 0.9668 0.9668 0.2556 25.5372 -35.9141)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2301" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2303" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_142_" -- gradientUnits="userSpaceOnUse" -- x1="41.0347" -- y1="58" -- x2="41.0347" -- y2="119.0007"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2490" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2492" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_114_" -- gradientUnits="userSpaceOnUse" -- x1="83.3877" -- y1="36.4746" -- x2="84.7196" -- y2="43.1339" -- gradientTransform="matrix(-0.4243 0.9055 0.9055 0.4243 41.46 -36.3299)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2294" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2296" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_141_" -- gradientUnits="userSpaceOnUse" -- x1="48.5864" -- y1="57.9995" -- x2="48.5864" -- y2="118.9997"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2483" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2485" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_113_" -- gradientUnits="userSpaceOnUse" -- x1="83.0635" -- y1="44.9131" -- x2="84.3951" -- y2="51.5712" -- gradientTransform="matrix(-0.5962 0.8028 0.8028 0.5962 60.4483 -34.8312)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2287" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2289" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_140_" -- gradientUnits="userSpaceOnUse" -- x1="55.313" -- y1="57.9995" -- x2="55.313" -- y2="119.0003"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2476" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2478" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_112_" -- gradientUnits="userSpaceOnUse" -- x1="54.8887" -- y1="61.9019" -- x2="55.8886" -- y2="70.9013"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2280" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2282" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_139_" -- gradientUnits="userSpaceOnUse" -- x1="59.3667" -- y1="57.9995" -- x2="59.3667" -- y2="119.0002"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2469" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2471" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_111_" -- gradientUnits="userSpaceOnUse" -- x1="81.4268" -- y1="64.792" -- x2="82.7584" -- y2="71.4501" -- gradientTransform="matrix(-0.894 0.4481 0.4481 0.894 102.4965 -24.3783)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2273" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2275" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="linearGradient3567"> -- <stop -- id="stop3569" -- offset="0" -- style="stop-color:#bbbecc;stop-opacity:0.94117647;" /> -- <stop -- id="stop3571" -- offset="1" -- style="stop-color:#363a52;stop-opacity:1;" /> -- </linearGradient> -- <linearGradient -- id="XMLID_123_" -- gradientUnits="userSpaceOnUse" -- x1="66.5293" -- y1="114.6494" -- x2="67.8614" -- y2="121.3099"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2357" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2359" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_120_" -- gradientUnits="userSpaceOnUse" -- x1="72.5303" -- y1="110.6504" -- x2="73.8621" -- y2="117.3097" -- gradientTransform="matrix(-1 0 0 1 134 0)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2336" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2338" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_119_" -- gradientUnits="userSpaceOnUse" -- x1="66.5303" -- y1="106.6494" -- x2="67.8624" -- y2="113.3099"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2329" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2331" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_122_" -- gradientUnits="userSpaceOnUse" -- x1="72.5293" -- y1="102.6484" -- x2="73.8619" -- y2="109.3113" -- gradientTransform="matrix(-1 0 0 1 134 0)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2350" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2352" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_121_" -- gradientUnits="userSpaceOnUse" -- x1="66.5303" -- y1="98.6494" -- x2="67.8624" -- y2="105.3099"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2343" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2345" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_130_" -- gradientUnits="userSpaceOnUse" -- x1="72.5303" -- y1="94.6514" -- x2="73.8621" -- y2="101.3107" -- gradientTransform="matrix(-1 0 0 1 134 0)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2406" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2408" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_147_" -- gradientUnits="userSpaceOnUse" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009"> -- <stop -- offset="0.0506" -- style="stop-color:#bdbec4;stop-opacity:1;" -- id="stop2525" /> -- <stop -- offset="1" -- style="stop-color:#ffffff;stop-opacity:1;" -- id="stop2527" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_129_" -- gradientUnits="userSpaceOnUse" -- x1="66.5303" -- y1="90.6494" -- x2="67.8624" -- y2="97.3099"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2399" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2401" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_148_" -- gradientUnits="userSpaceOnUse" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2532" /> -- <stop -- offset="1" -- style="stop-color:#f3f3f2;stop-opacity:1;" -- id="stop2534" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="XMLID_126_" -- gradientUnits="userSpaceOnUse" -- x1="72.5293" -- y1="86.6494" -- x2="73.8614" -- y2="93.3099" -- gradientTransform="matrix(-1 0 0 1 134 0)"> -- <stop -- offset="0.0506" -- style="stop-color:#EEEEEC" -- id="stop2378" /> -- <stop -- offset="1" -- style="stop-color:#888A85" -- id="stop2380" /> -- <a:midPointStop -- offset="0.0506" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="0.5" -- style="stop-color:#EEEEEC" /> -- <a:midPointStop -- offset="1" -- style="stop-color:#888A85" /> -- </linearGradient> -- <linearGradient -- id="linearGradient6642"> -- <stop -- style="stop-color:#616881;stop-opacity:0.94117647;" -- offset="0" -- id="stop6644" /> -- <stop -- style="stop-color:#c2c5d7;stop-opacity:1;" -- offset="1" -- id="stop6646" /> -- </linearGradient> -- <linearGradient -- y2="26.3501" -- x2="50.6035" -- y1="4.1035" -- x1="12.0713" -- gradientUnits="userSpaceOnUse" -- id="linearGradient6548"> -- <stop -- id="stop6550" -- style="stop-color:#AD9C80" -- offset="0.0118" /> -- <stop -- id="stop6552" -- style="stop-color:#FFE6BC" -- offset="0.04393823" /> -- <stop -- id="stop6554" -- style="stop-color:#C4B091" -- offset="0.07207061" /> -- <stop -- id="stop6556" -- style="stop-color:#DEC8A4" -- offset="0.1025845" /> -- <stop -- id="stop6558" -- style="stop-color:#B39E7C" -- offset="1" /> -- </linearGradient> -- <linearGradient -- y2="21.1523" -- x2="62.9014" -- y1="4.5991" -- x1="91.5723" -- gradientUnits="userSpaceOnUse" -- id="linearGradient6534"> -- <stop -- id="stop6536" -- style="stop-color:#AD9C80" -- offset="0.0118" /> -- <stop -- id="stop6538" -- style="stop-color:#FFE6BC" -- offset="0.05232069" /> -- <stop -- id="stop6540" -- style="stop-color:#C4B091" -- offset="0.06798933" /> -- <stop -- id="stop6542" -- style="stop-color:#DEC8A4" -- offset="0.11206073" /> -- <stop -- id="stop6544" -- style="stop-color:#B39E7C" -- offset="1" /> -- </linearGradient> -- <linearGradient -- inkscape:collect="always" -- id="linearGradient6524"> -- <stop -- style="stop-color:#000000;stop-opacity:1;" -- offset="0" -- id="stop6526" /> -- <stop -- style="stop-color:#000000;stop-opacity:0;" -- offset="1" -- id="stop6528" /> -- </linearGradient> -- <linearGradient -- id="linearGradient6505"> -- <stop -- style="stop-color:#000000;stop-opacity:1;" -- offset="0" -- id="stop6507" /> -- <stop -- id="stop6513" -- offset="1" -- style="stop-color:#000000;stop-opacity:0.49803922;" /> -- <stop -- style="stop-color:#000000;stop-opacity:0;" -- offset="1" -- id="stop6509" /> -- </linearGradient> -- <clipPath -- id="XMLID_27_"> -- <path -- d="M 53.057,56.968 C 53.067,56.925 53.076,56.882 53.082,56.839 C 53.09,56.795 53.096,56.752 53.1,56.707 C 53.105,56.663 53.109,56.619 53.112,56.574 C 53.114,56.529 53.115,56.483 53.115,56.438 C 53.115,56.483 53.114,56.529 53.112,56.574 C 53.109,56.619 53.105,56.663 53.1,56.707 C 53.096,56.752 53.09,56.795 53.082,56.839 C 53.075,56.882 53.066,56.925 53.057,56.968 z" -- enable-background="new " -- id="use189" /> -- </clipPath> -- <linearGradient -- id="XMLID_26_" -- gradientUnits="userSpaceOnUse" -- x1="0.6016" -- y1="60.5801" -- x2="1.1021" -- y2="60.5801"> -- <stop -- offset="0" -- style="stop-color:#544C3E" -- id="stop175" /> -- <stop -- offset="1" -- style="stop-color:#000000" -- id="stop177" /> -- </linearGradient> -- <linearGradient -- id="XMLID_25_" -- gradientUnits="userSpaceOnUse" -- x1="2.1997" -- y1="60.7158" -- x2="3.198" -- y2="60.6601"> -- <stop -- offset="0" -- style="stop-color:#B39E7C" -- id="stop168" /> -- <stop -- offset="1" -- style="stop-color:#544C3E" -- id="stop170" /> -- </linearGradient> -- <linearGradient -- id="XMLID_24_" -- gradientUnits="userSpaceOnUse" -- x1="103.8984" -- y1="60.5801" -- x2="103.3984" -- y2="60.5801"> -- <stop -- offset="0" -- style="stop-color:#544C3E" -- id="stop151" /> -- <stop -- offset="0.2162" -- style="stop-color:#50483B" -- id="stop153" /> -- <stop -- offset="0.4356" -- style="stop-color:#443D32" -- id="stop155" /> -- <stop -- offset="0.6567" -- style="stop-color:#2F2B23" -- id="stop157" /> -- <stop -- offset="0.8775" -- style="stop-color:#13110E" -- id="stop159" /> -- <stop -- offset="1" -- style="stop-color:#000000" -- id="stop161" /> -- </linearGradient> -- <linearGradient -- id="XMLID_23_" -- gradientUnits="userSpaceOnUse" -- x1="101.3027" -- y1="60.6592" -- x2="102.3008" -- y2="60.7148"> -- <stop -- offset="0" -- style="stop-color:#544C3E" -- id="stop144" /> -- <stop -- offset="1" -- style="stop-color:#B39E7C" -- id="stop146" /> -- </linearGradient> -- <linearGradient -- id="linearGradient3329"> -- <stop -- style="stop-color:#000000;stop-opacity:1;" -- offset="0" -- id="stop3331" /> -- <stop -- style="stop-color:#000000;stop-opacity:0;" -- offset="1" -- id="stop3333" /> -- </linearGradient> -- <linearGradient -- id="XMLID_17_" -- gradientUnits="userSpaceOnUse" -- x1="0.25" -- y1="13.2949" -- x2="104.25" -- y2="13.2949"> -- <stop -- offset="0" -- style="stop-color:#8F6B32" -- id="stop28" /> -- <stop -- offset="0.5" -- style="stop-color:#3e2e15;stop-opacity:1;" -- id="stop30" /> -- <stop -- offset="1" -- style="stop-color:#8F6B32" -- id="stop32" /> -- </linearGradient> -- <radialGradient -- id="XMLID_15_" -- cx="7.5" -- cy="8.3301" -- r="126.4133" -- gradientUnits="userSpaceOnUse"> -- <stop -- offset="0.2722" -- style="stop-color:#DBC298" -- id="stop4" /> -- <stop -- offset="0.4545" -- style="stop-color:#C7B08A" -- id="stop6" /> -- <stop -- offset="0.71829998" -- style="stop-color:#b99c6f;stop-opacity:1;" -- id="stop8" /> -- <stop -- offset="0.88169998" -- style="stop-color:#b09469;stop-opacity:1;" -- id="stop10" /> -- <stop -- offset="1" -- style="stop-color:#a48a5f;stop-opacity:1;" -- id="stop12" /> -- </radialGradient> -- <linearGradient -- id="linearGradient10207"> -- <stop -- style="stop-color:#a2a2a2;stop-opacity:1;" -- offset="0" -- id="stop10209" /> -- <stop -- style="stop-color:#ffffff;stop-opacity:1;" -- offset="1" -- id="stop10211" /> -- </linearGradient> -- <radialGradient -- id="XMLID_8_" -- cx="102" -- cy="112.3047" -- r="139.55859" -- gradientUnits="userSpaceOnUse"> -- <stop -- offset="0" -- style="stop-color:#b7b8b9;stop-opacity:1;" -- id="stop41" /> -- <stop -- offset="0.18851049" -- style="stop-color:#ECECEC" -- id="stop47" /> -- <stop -- offset="0.25718147" -- style="stop-color:#FAFAFA" -- id="stop49" /> -- <stop -- offset="0.30111277" -- style="stop-color:#FFFFFF" -- id="stop51" /> -- <stop -- offset="0.5313" -- style="stop-color:#FAFAFA" -- id="stop53" /> -- <stop -- offset="0.8449" -- style="stop-color:#EBECEC" -- id="stop55" /> -- <stop -- offset="1" -- style="stop-color:#E1E2E3" -- id="stop57" /> -- </radialGradient> -- <filter -- inkscape:collect="always" -- x="-0.19200002" -- width="1.3839999" -- y="-0.19199999" -- height="1.3839999" -- id="filter6697"> -- <feGaussianBlur -- inkscape:collect="always" -- stdDeviation="1.9447689" -- id="feGaussianBlur6699" /> -- </filter> -- <clipPath -- clipPathUnits="userSpaceOnUse" -- id="clipPath7084"> -- <path -- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" -- d="M 72,88 L 40,120 L 32,120 L 32,80 L 72,80 L 72,88 z" -- id="path7086" /> -- </clipPath> -- <radialGradient -- inkscape:collect="always" -- xlink:href="#XMLID_8_" -- id="radialGradient9437" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(1,0,0,0.9996653,2e-6,3.0160848e-3)" -- cx="102" -- cy="112.3047" -- r="139.55859" /> -- <filter -- inkscape:collect="always" -- id="filter2770"> -- <feGaussianBlur -- inkscape:collect="always" -- stdDeviation="2.0786429" -- id="feGaussianBlur2772" /> -- </filter> -- <radialGradient -- inkscape:collect="always" -- xlink:href="#linearGradient6505" -- id="radialGradient6633" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(1,0,0,0.2156863,0,82.352941)" -- cx="64" -- cy="105" -- fx="64" -- fy="105" -- r="51" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient6642" -- id="linearGradient8163" -- gradientUnits="userSpaceOnUse" -- x1="68.325905" -- y1="36" -- x2="64" -- y2="120" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_126_" -- id="linearGradient8165" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" -- x1="72.5293" -- y1="86.6494" -- x2="73.8614" -- y2="93.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8167" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_129_" -- id="linearGradient8169" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="66.5303" -- y1="90.6494" -- x2="67.8624" -- y2="97.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8171" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_130_" -- id="linearGradient8173" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" -- x1="72.5303" -- y1="94.6514" -- x2="73.8621" -- y2="101.3107" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8175" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_121_" -- id="linearGradient8177" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="66.5303" -- y1="98.6494" -- x2="67.8624" -- y2="105.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8179" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_122_" -- id="linearGradient8181" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" -- x1="72.5293" -- y1="102.6484" -- x2="73.8619" -- y2="109.3113" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8183" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_119_" -- id="linearGradient8185" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="66.5303" -- y1="106.6494" -- x2="67.8624" -- y2="113.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8187" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_120_" -- id="linearGradient8189" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" -- x1="72.5303" -- y1="110.6504" -- x2="73.8621" -- y2="117.3097" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8191" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_123_" -- id="linearGradient8193" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="66.5293" -- y1="114.6494" -- x2="67.8614" -- y2="121.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8195" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_130_" -- id="linearGradient8197" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-3.96145)" -- x1="72.5303" -- y1="94.6514" -- x2="73.8621" -- y2="101.3107" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8199" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_121_" -- id="linearGradient8201" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="66.5303" -- y1="98.6494" -- x2="67.8624" -- y2="105.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8203" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_122_" -- id="linearGradient8205" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-3.96145)" -- x1="72.5293" -- y1="102.6484" -- x2="73.8619" -- y2="109.3113" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8207" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_119_" -- id="linearGradient8209" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="66.5303" -- y1="106.6494" -- x2="67.8624" -- y2="113.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8211" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_120_" -- id="linearGradient8213" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-3.96145)" -- x1="72.5303" -- y1="110.6504" -- x2="73.8621" -- y2="117.3097" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8215" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_123_" -- id="linearGradient8217" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="66.5293" -- y1="114.6494" -- x2="67.8614" -- y2="121.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8219" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_120_" -- id="linearGradient8221" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,2.03855)" -- x1="72.5303" -- y1="110.6504" -- x2="73.8621" -- y2="117.3097" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8223" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,2.03855)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_123_" -- id="linearGradient8225" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,2.03855)" -- x1="66.5293" -- y1="114.6494" -- x2="67.8614" -- y2="121.3099" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_147_" -- id="linearGradient8227" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,2.03855)" -- x1="67" -- y1="58.0005" -- x2="67" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_120_" -- id="linearGradient8229" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,8.03855)" -- x1="72.5303" -- y1="110.6504" -- x2="73.8621" -- y2="117.3097" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_148_" -- id="linearGradient8231" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,8.03855)" -- x1="60.9995" -- y1="58.0005" -- x2="60.9995" -- y2="119.0009" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient3567" -- id="linearGradient8233" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(1,0,0,-1,0,140)" -- x1="64" -- y1="58.807674" -- x2="64" -- y2="96.377762" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_111_" -- id="linearGradient8235" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.686825,0.344258,0.344258,0.686825,93.45016,-41.69035)" -- x1="81.4268" -- y1="64.792" -- x2="82.7584" -- y2="71.4501" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_139_" -- id="linearGradient8237" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="59.3667" -- y1="57.9995" -- x2="59.3667" -- y2="119.0002" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_112_" -- id="linearGradient8239" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="54.8887" -- y1="61.9019" -- x2="55.8886" -- y2="70.9013" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_140_" -- id="linearGradient8241" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="55.313" -- y1="57.9995" -- x2="55.313" -- y2="119.0003" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_113_" -- id="linearGradient8243" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.458037,0.61676,0.61676,0.458037,61.14617,-49.7209)" -- x1="83.0635" -- y1="44.9131" -- x2="84.3951" -- y2="51.5712" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_141_" -- id="linearGradient8245" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="48.5864" -- y1="57.9995" -- x2="48.5864" -- y2="118.9997" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_114_" -- id="linearGradient8247" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.325973,0.69566,0.69566,0.325973,46.5582,-50.8723)" -- x1="83.3877" -- y1="36.4746" -- x2="84.7196" -- y2="43.1339" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_142_" -- id="linearGradient8249" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="41.0347" -- y1="58" -- x2="41.0347" -- y2="119.0007" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_111_" -- id="linearGradient8251" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.686825,0.344258,0.344258,0.686825,93.45016,-41.69035)" -- x1="81.4268" -- y1="64.792" -- x2="82.7584" -- y2="71.4501" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_139_" -- id="linearGradient8253" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="59.3667" -- y1="57.9995" -- x2="59.3667" -- y2="119.0002" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_112_" -- id="linearGradient8255" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="54.8887" -- y1="61.9019" -- x2="55.8886" -- y2="70.9013" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_140_" -- id="linearGradient8257" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="55.313" -- y1="57.9995" -- x2="55.313" -- y2="119.0003" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_113_" -- id="linearGradient8259" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.458037,0.61676,0.61676,0.458037,61.14617,-49.7209)" -- x1="83.0635" -- y1="44.9131" -- x2="84.3951" -- y2="51.5712" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_141_" -- id="linearGradient8261" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="48.5864" -- y1="57.9995" -- x2="48.5864" -- y2="118.9997" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_114_" -- id="linearGradient8263" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.325973,0.69566,0.69566,0.325973,46.5582,-50.8723)" -- x1="83.3877" -- y1="36.4746" -- x2="84.7196" -- y2="43.1339" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_142_" -- id="linearGradient8265" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="41.0347" -- y1="58" -- x2="41.0347" -- y2="119.0007" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_115_" -- id="linearGradient8267" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(-0.196368,0.742755,0.742755,0.196368,34.3253,-50.55285)" -- x1="84.0117" -- y1="28.52" -- x2="85.3436" -- y2="35.1793" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_143_" -- id="linearGradient8269" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="33.7886" -- y1="57.9995" -- x2="33.7886" -- y2="119.0001" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_159_" -- id="linearGradient8271" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="60.3325" -- y1="67.6123" -- x2="68.4149" -- y2="103.9829" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_160_" -- id="linearGradient8273" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="56.8906" -- y1="67.8857" -- x2="68.8911" -- y2="82.8864" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_161_" -- id="linearGradient8275" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="62.0503" -- y1="69.625" -- x2="67.0498" -- y2="83.6237" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_162_" -- id="linearGradient8277" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="63.542" -- y1="74.0918" -- x2="64.5422" -- y2="79.093" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_163_" -- id="linearGradient8279" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="61.3159" -- y1="83.0986" -- x2="68.3162" -- y2="101.0992" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_164_" -- id="linearGradient8281" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="61.7065" -- y1="77.5322" -- x2="67.7616" -- y2="107.8077" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_165_" -- id="linearGradient8283" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="62" -- y1="76" -- x2="66" -- y2="76" /> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#XMLID_166_" -- id="linearGradient8285" -- gradientUnits="userSpaceOnUse" -- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" -- x1="63.106" -- y1="71.9766" -- x2="65.1059" -- y2="80.9765" /> -- <filter -- inkscape:collect="always" -- id="filter8342"> -- <feGaussianBlur -- inkscape:collect="always" -- stdDeviation="0.41168267" -- id="feGaussianBlur8344" /> -- </filter> -- <filter -- inkscape:collect="always" -- x="-0.059497853" -- width="1.1189957" -- y="-0.35594591" -- height="1.7118918" -- id="filter8354"> -- <feGaussianBlur -- inkscape:collect="always" -- stdDeviation="0.2278828" -- id="feGaussianBlur8356" /> -- </filter> -- <linearGradient -- inkscape:collect="always" -- xlink:href="#linearGradient10207" -- id="linearGradient3416" -- gradientUnits="userSpaceOnUse" -- gradientTransform="translate(10,0)" -- x1="98.617439" -- y1="106.41443" -- x2="91.228737" -- y2="99.254974" /> -- </defs> -- <sodipodi:namedview -- id="base" -- pagecolor="#ffffff" -- bordercolor="#666666" -- borderopacity="1.0" -- inkscape:pageopacity="0.0" -- inkscape:pageshadow="2" -- inkscape:zoom="2.8284271" -- inkscape:cx="63.894445" -- inkscape:cy="73.240566" -- inkscape:document-units="px" -- inkscape:current-layer="layer1" -- width="128px" -- height="128px" -- gridspacingx="4px" -- gridspacingy="4px" -- gridempspacing="2" -- showgrid="true" -- inkscape:grid-points="true" -- showguides="true" -- inkscape:guide-bbox="true" -- inkscape:window-width="1016" -- inkscape:window-height="692" -- inkscape:window-x="1" -- inkscape:window-y="1" -- objecttolerance="10000" /> -- <metadata -- id="metadata2611"> -- <rdf:RDF> -- <cc:Work -- rdf:about=""> -- <dc:format>image/svg+xml</dc:format> -- <dc:type -- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> -- </cc:Work> -- </rdf:RDF> -- </metadata> -- <g -- inkscape:label="Livello 1" -- inkscape:groupmode="layer" -- id="layer1"> -- <path -- style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)" -- d="M 16,8 L 16,120 C 16,120 79.15625,120 79.15625,120 L 79.1875,120 C 79.187503,120 91.09375,110.09375 96.59375,104.59375 C 102.09375,99.09375 112,87.1875 112,87.1875 L 112,87.15625 L 112,8 L 16,8 z" -- id="path7865" -- sodipodi:nodetypes="csccscccc" -- transform="matrix(1.0416667,0,0,1.0267857,-2.6666667,-1.2142891)" /> -- <path -- style="fill:#ffffff;fill-opacity:1" -- d="M 16.000001,8 L 16,120 C 16,120 79.146418,120 79.146418,120 L 112,87.14642 L 112,8 L 16.000001,8 z" -- id="path34" -- sodipodi:nodetypes="cccccc" /> -- <path -- style="fill:url(#radialGradient9437);fill-opacity:1" -- d="M 18.000002,9.0000034 C 17.449002,9.0000034 17.000002,9.4488534 17.000002,9.9996684 L 17.000002,117.96352 C 17.000002,118.51533 17.449002,118.96318 18.000002,118.96318 L 77.171999,118.96318 C 77.434999,118.96318 79.934679,119.08131 80.12068,118.89438 L 110.707,88.094202 C 110.894,87.907264 111,85.40942 111,85.146508 L 111,9.9996684 C 111,9.4488534 110.552,9.0000034 110,9.0000034 L 18.000002,9.0000034 z" -- id="path59" -- sodipodi:nodetypes="ccccccccccc" /> -- <g -- id="g3298" -- transform="translate(-7.2118459e-7,7.4211846e-6)"> -- <path -- style="opacity:0.6;fill:url(#radialGradient6633);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter3400)" -- d="M 18.520833,73.665304 L 109.47917,73.665304 L 115,112.75 C 115,114.5505 113.42971,116 111.47917,116 L 16.520833,116 C 14.570292,116 13,114.5505 13,112.75 C 13,112.75 16.570292,73.665304 18.520833,73.665304 z " -- id="rect4744" -- sodipodi:nodetypes="ccccccc" -- transform="matrix(0.6251619,0,0,0.3488041,23.989638,50.421975)" /> -- <g -- transform="matrix(1.1428571,0,0,1.1428571,-11.42857,-12.571431)" -- id="g9722"> -- <g -- id="g9650" -- transform="matrix(1.0769231,0,0,1.0769231,-2.9230769,-6.7692307)"> -- <g -- transform="matrix(0.5,0,0,0.4969956,-12.60681,55.426509)" -- id="g6413"> -- <polygon -- points="104.25,24.795 100.25,96.58 4.25,96.58 0.25,24.795 104.25,24.795 " -- id="polygon14" -- style="fill:url(#radialGradient9773)" -- transform="translate(100.96362,-31.039526)" /> -- <path -- sodipodi:nodetypes="cccccc" -- id="polygon34" -- d="M 52.25,25.795 L 0.25,24.795 L 32.5,0.795 L 72,0.795 L 104.25,24.795 L 52.25,25.795 z " -- style="fill:url(#linearGradient9777)" -- transform="translate(100.96362,-31.039526)" /> -- <path -- sodipodi:nodetypes="cccccc" -- id="polygon6516" -- d="M 52.25,25.795 L 0.25,24.795 L 47.125,5.6994701 L 52.499999,5.6994701 L 104.25,24.795 L 52.25,25.795 z " -- style="fill:url(#linearGradient9779);fill-opacity:1" -- transform="translate(100.96362,-31.039526)" /> -- <path -- id="path2427" -- d="M 153.21362,-16.326115 L 189.05962,-12.476469 L 205.21362,-6.459526 L 153.21362,-9.1743493 L 153.21362,-16.326115 z " -- style="fill:url(#linearGradient3400);fill-opacity:1" -- sodipodi:nodetypes="ccccc" /> -- <path -- sodipodi:nodetypes="ccccc" -- style="fill:url(#linearGradient4378)" -- d="M 153.21362,-34.309172 L 189.05962,-30.459526 L 205.21362,-6.459526 L 153.21362,-12.443996 L 153.21362,-34.309172 z " -- id="polygon49" /> -- <path -- sodipodi:nodetypes="ccccc" -- id="polygon69" -- d="M 153.21362,-17.22271 L 101.21362,-6.459526 L 117.36962,-30.459526 L 153.21362,-39.087885 L 153.21362,-17.22271 z " -- style="fill:url(#linearGradient2422)" /> -- <path -- d="" -- id="path71" -- style="fill:#eeeeec" /> -- <g -- id="g141" -- transform="translate(100.96362,-31.039526)"> -- <linearGradient -- id="linearGradient2496" -- gradientUnits="userSpaceOnUse" -- x1="101.3027" -- y1="60.659199" -- x2="102.3008" -- y2="60.714802"> -- <stop -- offset="0" -- style="stop-color:#544C3E" -- id="stop2498" /> -- <stop -- offset="1" -- style="stop-color:#B39E7C" -- id="stop2500" /> -- </linearGradient> -- <path -- d="M 99.36,95.555 C 99.33,96.104 99.529,96.566 99.803,96.58 C 100.077,96.594 100.327,96.158 100.358,95.609 L 104.247,25.821 C 104.277,25.272 104.078,24.81 103.804,24.795 C 103.53,24.78 103.28,25.216 103.249,25.766 L 99.36,95.555 z " -- id="path148" -- style="fill:url(#linearGradient9785)" /> -- <linearGradient -- id="linearGradient2503" -- gradientUnits="userSpaceOnUse" -- x1="103.8984" -- y1="60.580101" -- x2="103.3984" -- y2="60.580101"> -- <stop -- offset="0" -- style="stop-color:#544C3E" -- id="stop2505" /> -- <stop -- offset="0.2162" -- style="stop-color:#50483B" -- id="stop2507" /> -- <stop -- offset="0.4356" -- style="stop-color:#443D32" -- id="stop2509" /> -- <stop -- offset="0.6567" -- style="stop-color:#2F2B23" -- id="stop2511" /> -- <stop -- offset="0.8775" -- style="stop-color:#13110E" -- id="stop2513" /> -- <stop -- offset="1" -- style="stop-color:#000000" -- id="stop2515" /> -- </linearGradient> -- <path -- d="M 101.281,65.58 L 101.781,65.58 C 101.818,64.915 101.855,64.248 101.892,63.58 L 101.392,63.58 L 101.281,65.58 z M 100.612,77.58 L 101.113,77.58 C 101.149,76.923 101.186,76.256 101.224,75.58 L 100.723,75.58 L 100.612,77.58 z M 101.058,69.58 L 101.559,69.58 C 101.596,68.917 101.633,68.25 101.67,67.58 L 101.17,67.58 L 101.058,69.58 z M 100.835,73.58 L 101.336,73.58 C 101.372,72.92 101.41,72.253 101.447,71.58 L 100.946,71.58 L 100.835,73.58 z M 99.943,89.58 L 100.444,89.58 C 100.478,88.952 100.515,88.285 100.555,87.58 L 100.054,87.58 L 99.943,89.58 z M 99.721,93.58 L 100.221,93.58 C 100.252,93.018 100.29,92.346 100.332,91.58 L 99.832,91.58 L 99.721,93.58 z M 100.166,85.58 L 100.667,85.58 C 100.703,84.935 100.74,84.268 100.778,83.58 L 100.277,83.58 L 100.166,85.58 z M 100.39,81.58 L 100.89,81.58 C 100.926,80.928 100.963,80.261 101.001,79.58 L 100.501,79.58 L 100.39,81.58 z M 101.727,57.58 L 102.227,57.58 C 102.265,56.911 102.302,56.244 102.339,55.58 L 101.838,55.58 L 101.727,57.58 z M 101.504,61.58 L 102.004,61.58 C 102.041,60.913 102.078,60.246 102.115,59.58 L 101.615,59.58 L 101.504,61.58 z M 102.841,37.58 L 103.342,37.58 C 103.38,36.891 103.417,36.223 103.453,35.58 L 102.952,35.58 L 102.841,37.58 z M 103.064,33.58 L 103.564,33.58 C 103.603,32.873 103.64,32.205 103.675,31.58 L 103.175,31.58 L 103.064,33.58 z M 103.398,27.58 L 103.287,29.58 L 103.787,29.58 C 103.83,28.802 103.868,28.132 103.898,27.58 L 103.398,27.58 z M 102.618,41.58 L 103.119,41.58 C 103.156,40.898 103.193,40.231 103.23,39.58 L 102.729,39.58 L 102.618,41.58 z M 101.949,53.58 L 102.45,53.58 C 102.487,52.909 102.524,52.242 102.561,51.58 L 102.06,51.58 L 101.949,53.58 z M 102.396,45.58 L 102.896,45.58 C 102.934,44.903 102.971,44.236 103.008,43.58 L 102.507,43.58 L 102.396,45.58 z M 102.172,49.58 L 102.673,49.58 C 102.711,48.906 102.748,48.24 102.784,47.58 L 102.283,47.58 L 102.172,49.58 z " -- id="path163" -- style="opacity:0.5;fill:url(#linearGradient9787)" /> -- </g> -- <g -- id="g165" -- transform="translate(100.96362,-31.039526)"> -- <linearGradient -- id="linearGradient2519" -- gradientUnits="userSpaceOnUse" -- x1="2.1997001" -- y1="60.715801" -- x2="3.198" -- y2="60.660099"> -- <stop -- offset="0" -- style="stop-color:#B39E7C" -- id="stop2521" /> -- <stop -- offset="1" -- style="stop-color:#544C3E" -- id="stop2523" /> -- </linearGradient> -- <path -- d="M 5.14,95.555 C 5.171,96.104 4.971,96.566 4.697,96.58 C 4.423,96.594 4.174,96.158 4.142,95.609 L 0.253,25.821 C 0.223,25.272 0.422,24.81 0.696,24.795 C 0.97,24.78 1.22,25.216 1.251,25.766 L 5.14,95.555 z " -- id="path172" -- style="fill:url(#linearGradient9789)" /> -- <linearGradient -- id="linearGradient2526" -- gradientUnits="userSpaceOnUse" -- x1="0.60159999" -- y1="60.580101" -- x2="1.1021" -- y2="60.580101"> -- <stop -- offset="0" -- style="stop-color:#544C3E" -- id="stop2528" /> -- <stop -- offset="1" -- style="stop-color:#000000" -- id="stop2530" /> -- </linearGradient> -- <path -- d="M 3.331,67.58 L 2.831,67.58 C 2.868,68.25 2.905,68.917 2.942,69.58 L 3.442,69.58 L 3.331,67.58 z M 3.554,71.58 L 3.054,71.58 C 3.092,72.253 3.129,72.92 3.166,73.58 L 3.666,73.58 L 3.554,71.58 z M 3.108,63.58 L 2.608,63.58 C 2.645,64.248 2.683,64.915 2.719,65.58 L 3.219,65.58 L 3.108,63.58 z M 3.776,75.58 L 3.276,75.58 C 3.314,76.256 3.351,76.923 3.387,77.58 L 3.887,77.58 L 3.776,75.58 z M 4,79.58 L 3.5,79.58 C 3.538,80.261 3.575,80.928 3.611,81.58 L 4.111,81.58 L 4,79.58 z M 2.885,59.58 L 2.385,59.58 C 2.422,60.246 2.459,60.913 2.496,61.58 L 2.996,61.58 L 2.885,59.58 z M 4.222,83.58 L 3.722,83.58 C 3.761,84.268 3.798,84.935 3.834,85.58 L 4.334,85.58 L 4.222,83.58 z M 4.445,87.58 L 3.945,87.58 C 3.985,88.285 4.022,88.952 4.056,89.58 L 4.556,89.58 L 4.445,87.58 z M 4.668,91.58 L 4.168,91.58 C 4.21,92.346 4.248,93.018 4.279,93.58 L 4.779,93.58 L 4.668,91.58 z M 1.771,39.58 L 1.271,39.58 C 1.307,40.231 1.344,40.898 1.382,41.58 L 1.882,41.58 L 1.771,39.58 z M 2.662,55.58 L 2.162,55.58 C 2.199,56.244 2.236,56.911 2.274,57.58 L 2.774,57.58 L 2.662,55.58 z M 1.548,35.58 L 1.048,35.58 C 1.084,36.223 1.121,36.891 1.159,37.58 L 1.659,37.58 L 1.548,35.58 z M 1.102,27.58 L 0.602,27.58 C 0.633,28.132 0.67,28.802 0.713,29.58 L 1.213,29.58 L 1.102,27.58 z M 1.325,31.58 L 0.825,31.58 C 0.86,32.205 0.897,32.873 0.937,33.58 L 1.437,33.58 L 1.325,31.58 z M 2.439,51.58 L 1.939,51.58 C 1.976,52.242 2.013,52.909 2.05,53.58 L 2.55,53.58 L 2.439,51.58 z M 1.993,43.58 L 1.493,43.58 C 1.53,44.236 1.567,44.903 1.604,45.58 L 2.104,45.58 L 1.993,43.58 z M 2.216,47.58 L 1.716,47.58 C 1.753,48.24 1.79,48.906 1.827,49.58 L 2.327,49.58 L 2.216,47.58 z " -- id="path179" -- style="opacity:0.5;fill:url(#linearGradient9791)" /> -- </g> -- <g -- enable-background="new " -- id="g183" -- transform="translate(100.96362,-31.039526)"> -- <defs -- id="defs185"> -- <path -- id="XMLID_13_" -- enable-background="new " -- d="M 53.057,56.968 C 53.067,56.925 53.076,56.882 53.082,56.839 C 53.09,56.795 53.096,56.752 53.1,56.707 C 53.105,56.663 53.109,56.619 53.112,56.574 C 53.114,56.529 53.115,56.483 53.115,56.438 C 53.115,56.483 53.114,56.529 53.112,56.574 C 53.109,56.619 53.105,56.663 53.1,56.707 C 53.096,56.752 53.09,56.795 53.082,56.839 C 53.075,56.882 53.066,56.925 53.057,56.968 z " /> -- </defs> -- <clipPath -- id="clipPath2537"> -- <use -- xlink:href="#XMLID_13_" -- id="use2539" -- x="0" -- y="0" -- width="128" -- height="128" /> -- </clipPath> -- <g -- clip-path="url(#XMLID_27_)" -- enable-background="new " -- id="g191"> -- <path -- d="M 53.057,56.968 C 53.067,56.925 53.076,56.882 53.082,56.839 C 53.09,56.795 53.096,56.752 53.1,56.707 C 53.105,56.663 53.109,56.619 53.112,56.574 C 53.114,56.529 53.115,56.483 53.115,56.438 C 53.115,56.483 53.114,56.529 53.112,56.574 C 53.109,56.619 53.105,56.663 53.1,56.707 C 53.096,56.752 53.09,56.795 53.082,56.839 C 53.075,56.882 53.066,56.925 53.057,56.968" -- id="path193" -- style="fill:#828282" /> -- </g> -- </g> -- <polygon -- transform="matrix(0.9497077,0,0,0.9497077,103.5914,-27.069162)" -- style="opacity:0.5;fill:none;stroke:url(#linearGradient4366);stroke-width:1.86274767;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" -- id="polygon2416" -- points="104.25,24.795 100.25,96.58 4.25,96.58 0.25,24.795 104.25,24.795 " /> -- </g> -- <path -- sodipodi:nodetypes="ccccc" -- id="rect6520" -- d="M 64.00015,38.4375 L 74.713341,39.5 L 78.722956,51.875 L 63.9375,49.3125 L 64.00015,38.4375 z " -- style="opacity:0.6;fill:url(#linearGradient9793);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> -- </g> -- </g> -- </g> -- <g -- id="g7919"> -- <path -- sodipodi:nodetypes="ccccccccccc" -- id="path7921" -- d="M 16,49.743875 L 16,118 C 16,119.104 16.896,120 18,120 L 77.1875,120 C 77.7175,120 78.21875,119.78125 78.59375,119.40625 C 78.59375,119.40625 88,106.25 88,96 C 98.25,96 111.40625,86.593751 111.40625,86.59375 C 111.78125,86.218751 112,85.7175 112,85.1875 L 112,49.743875 C 112,49.743875 82.12374,46.708365 62,66.832106 C 40.46834,45.300451 16,49.743875 16,49.743875 z" -- style="opacity:0.4;fill:url(#linearGradient8163);fill-opacity:1" /> -- <path -- id="path7923" -- d="M 80.625,54.6875 C 75.78382,56.640966 70.86735,59.294441 66.28125,62.96875 L 97.34375,94.03125 C 100.01217,93.047758 102.56719,91.830207 104.75,90.65625 C 104.86778,90.592559 104.97821,90.53206 105.09375,90.46875 C 105.66574,90.157314 106.17527,89.858234 106.6875,89.5625 C 106.87456,89.454094 107.0093,89.386533 107.1875,89.28125 C 107.95471,88.830952 108.6041,88.430249 109.1875,88.0625 C 109.64167,87.775104 109.92588,87.589778 110.25,87.375 C 110.60575,87.141487 110.61832,87.132882 110.8125,87 C 111.19226,86.742798 111.40625,86.59375 111.40625,86.59375 C 111.59375,86.40625 111.74219,86.175938 111.84375,85.9375 C 111.84756,85.928559 111.84007,85.915245 111.84375,85.90625 L 80.625,54.6875 z" -- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7925"> -- <path -- id="path7927" -- d="M 62.348269,44.488024 C 62.329831,44.448843 62.257615,44.305178 62.257615,44.305178 C 62.127778,44.045506 61.861192,43.88033 61.570021,43.88033 L 57.728716,43.88033 C 57.304636,43.88033 56.960455,44.223743 56.960455,44.648591 L 56.960455,47.721635 C 56.960455,48.146483 57.304636,48.489896 57.728716,48.489896 L 65.411326,48.489896 C 65.836174,48.489896 66.179587,48.146483 66.179587,47.721635 L 66.179587,46.185113 C 66.179587,44.914409 65.145508,43.88033 63.874804,43.88033 C 63.283243,43.88033 62.756216,44.120027 62.348269,44.488024 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7929" -- d="M 61.570021,43.877257 L 62.338282,45.413779 C 62.338282,44.564851 63.026644,43.877257 63.874804,43.877257 C 64.723732,43.877257 65.411326,44.564851 65.411326,45.413779 L 65.411326,46.950301 L 57.728716,46.950301 L 57.728716,43.877257 L 61.570021,43.877257 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8165)" /> -- <path -- id="path7931" -- d="M 63.106543,45.413779 C 63.106543,45.770252 62.861468,46.079861 62.514982,46.162065 C 62.455826,46.175126 62.397438,46.18204 62.338282,46.18204 C 63.444578,46.18204 64.227436,46.18204 64.643065,46.18204 C 64.643065,45.79791 64.643065,45.413779 64.643065,45.413779 C 64.643065,44.989699 64.298116,44.645518 63.874804,44.645518 C 63.451492,44.645518 63.106543,44.989699 63.106543,45.413779 z M 58.496977,44.645518 C 58.496977,45.221714 58.496977,45.605844 58.496977,46.18204 C 59.188412,46.18204 60.494456,46.18204 62.338282,46.18204 C 62.052489,46.18204 61.783598,46.021473 61.651457,45.757192 C 61.651457,45.757192 61.318031,45.090341 61.095236,44.645518 C 60.5321,44.645518 59.328235,44.645518 58.496977,44.645518 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8167)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7933"> -- <path -- id="path7935" -- d="M 66.179587,46.953374 C 65.888416,46.953374 65.622598,47.11855 65.491993,47.378222 C 65.491993,47.378222 65.419777,47.522655 65.401339,47.561068 C 64.992624,47.193071 64.465597,46.953374 63.874804,46.953374 C 62.6041,46.953374 61.570021,47.987453 61.570021,49.258157 L 61.570021,50.794679 C 61.570021,51.219527 61.914202,51.56294 62.338282,51.56294 L 70.020892,51.56294 C 70.44574,51.56294 70.789153,51.219527 70.789153,50.794679 L 70.789153,47.721635 C 70.789153,47.296787 70.44574,46.953374 70.020892,46.953374 L 66.179587,46.953374 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7937" -- d="M 66.179587,46.950301 L 65.411326,48.486823 C 65.411326,47.637895 64.722964,46.950301 63.874804,46.950301 C 63.025876,46.950301 62.338282,47.637895 62.338282,48.486823 L 62.338282,50.023345 L 70.020892,50.023345 L 70.020892,46.950301 L 66.179587,46.950301 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8169)" /> -- <path -- id="path7939" -- d="M 66.654372,47.718562 C 66.431577,48.163385 66.098151,48.830236 66.098151,48.830236 C 65.966779,49.094517 65.697887,49.255084 65.412094,49.255084 C 67.255152,49.255084 68.561964,49.255084 69.252631,49.255084 C 69.252631,48.678888 69.252631,48.294758 69.252631,47.718562 C 68.421373,47.718562 67.217508,47.718562 66.654372,47.718562 z M 63.106543,48.486823 C 63.106543,48.486823 63.106543,48.870953 63.106543,49.255084 C 63.521404,49.255084 64.30503,49.255084 65.410558,49.255084 C 65.352938,49.255084 65.293782,49.24817 65.234626,49.235109 C 64.88814,49.152905 64.643065,48.843296 64.643065,48.486823 C 64.643065,48.062743 64.298116,47.718562 63.874804,47.718562 C 63.451492,47.718562 63.106543,48.062743 63.106543,48.486823 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8171)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7941"> -- <path -- id="path7943" -- d="M 62.348269,50.634112 C 62.329831,50.594931 62.257615,50.451266 62.257615,50.451266 C 62.127778,50.191594 61.861192,50.026418 61.570021,50.026418 L 57.728716,50.026418 C 57.304636,50.026418 56.960455,50.369831 56.960455,50.794679 L 56.960455,53.867723 C 56.960455,54.292571 57.304636,54.635984 57.728716,54.635984 L 65.411326,54.635984 C 65.836174,54.635984 66.179587,54.292571 66.179587,53.867723 L 66.179587,52.331201 C 66.179587,51.060497 65.145508,50.026418 63.874804,50.026418 C 63.283243,50.026418 62.756216,50.266115 62.348269,50.634112 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7945" -- d="M 61.570021,50.023345 L 62.338282,51.559867 C 62.338282,50.710939 63.026644,50.023345 63.874804,50.023345 C 64.723732,50.023345 65.411326,50.710939 65.411326,51.559867 L 65.411326,53.096389 L 57.728716,53.096389 L 57.728716,50.023345 L 61.570021,50.023345 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8173)" /> -- <path -- id="path7947" -- d="M 63.106543,51.559867 C 63.106543,51.91634 62.861468,52.225949 62.514982,52.308153 C 62.455826,52.321214 62.397438,52.328128 62.338282,52.328128 C 63.444578,52.328128 64.227436,52.328128 64.643065,52.328128 C 64.643065,51.943997 64.643065,51.559867 64.643065,51.559867 C 64.643065,51.135787 64.298116,50.791606 63.874804,50.791606 C 63.451492,50.791606 63.106543,51.135787 63.106543,51.559867 z M 58.496977,50.791606 C 58.496977,51.367802 58.496977,51.751932 58.496977,52.328128 C 59.188412,52.328128 60.494456,52.328128 62.338282,52.328128 C 62.052489,52.328128 61.783598,52.167561 61.651457,51.90328 C 61.651457,51.90328 61.318031,51.236429 61.095236,50.791606 C 60.5321,50.791606 59.328235,50.791606 58.496977,50.791606 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8175)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7949"> -- <path -- id="path7951" -- d="M 66.179587,53.099462 C 65.888416,53.099462 65.622598,53.264638 65.491993,53.52431 C 65.491993,53.52431 65.419777,53.668743 65.401339,53.707156 C 64.992624,53.339159 64.465597,53.099462 63.874804,53.099462 C 62.6041,53.099462 61.570021,54.133541 61.570021,55.404245 L 61.570021,56.940767 C 61.570021,57.365615 61.914202,57.709028 62.338282,57.709028 L 70.020892,57.709028 C 70.44574,57.709028 70.789153,57.365615 70.789153,56.940767 L 70.789153,53.867723 C 70.789153,53.442875 70.44574,53.099462 70.020892,53.099462 L 66.179587,53.099462 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7953" -- d="M 66.179587,53.096389 L 65.411326,54.632911 C 65.411326,53.783983 64.722964,53.096389 63.874804,53.096389 C 63.025876,53.096389 62.338282,53.783983 62.338282,54.632911 L 62.338282,56.169433 L 70.020892,56.169433 L 70.020892,53.096389 L 66.179587,53.096389 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8177)" /> -- <path -- id="path7955" -- d="M 66.654372,53.86465 C 66.431577,54.309473 66.098151,54.976324 66.098151,54.976324 C 65.96601,55.240605 65.697887,55.401172 65.411326,55.401172 C 67.254384,55.401172 68.561196,55.401172 69.251863,55.401172 C 69.251863,54.824976 69.251863,54.440846 69.251863,53.86465 C 68.421373,53.86465 67.217508,53.86465 66.654372,53.86465 z M 63.106543,54.632911 C 63.106543,54.632911 63.106543,55.017042 63.106543,55.401172 C 63.521404,55.401172 64.30503,55.401172 65.410558,55.401172 C 65.352938,55.401172 65.293782,55.394258 65.234626,55.381197 C 64.88814,55.298993 64.643065,54.989384 64.643065,54.632911 C 64.643065,54.208831 64.298116,53.86465 63.874804,53.86465 C 63.451492,53.86465 63.106543,54.208831 63.106543,54.632911 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8179)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7957"> -- <path -- id="path7959" -- d="M 62.348269,56.7802 C 62.329831,56.741019 62.257615,56.597354 62.257615,56.597354 C 62.127778,56.337682 61.861192,56.172506 61.570021,56.172506 L 57.728716,56.172506 C 57.304636,56.172506 56.960455,56.515919 56.960455,56.940767 L 56.960455,60.013811 C 56.960455,60.438659 57.304636,60.782072 57.728716,60.782072 L 65.411326,60.782072 C 65.836174,60.782072 66.179587,60.438659 66.179587,60.013811 L 66.179587,58.477289 C 66.179587,57.206585 65.145508,56.172506 63.874804,56.172506 C 63.283243,56.172506 62.756216,56.412203 62.348269,56.7802 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7961" -- d="M 61.570021,56.169433 L 62.338282,57.705955 C 62.338282,56.857027 63.026644,56.169433 63.874804,56.169433 C 64.723732,56.169433 65.411326,56.857027 65.411326,57.705955 L 65.411326,59.242477 L 57.728716,59.242477 L 57.728716,56.169433 L 61.570021,56.169433 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8181)" /> -- <path -- id="path7963" -- d="M 63.106543,57.705955 C 63.106543,58.062428 62.861468,58.372037 62.514982,58.454241 C 62.455826,58.467302 62.397438,58.474216 62.338282,58.474216 C 63.444578,58.474216 64.227436,58.474216 64.643065,58.474216 C 64.643065,58.090086 64.643065,57.705955 64.643065,57.705955 C 64.643065,57.281875 64.298116,56.937694 63.874804,56.937694 C 63.451492,56.937694 63.106543,57.281875 63.106543,57.705955 z M 58.496977,56.937694 C 58.496977,57.51389 58.496977,57.89802 58.496977,58.474216 C 59.188412,58.474216 60.494456,58.474216 62.338282,58.474216 C 62.052489,58.474216 61.783598,58.313649 61.651457,58.049368 C 61.651457,58.049368 61.318031,57.382517 61.095236,56.937694 C 60.5321,56.937694 59.328235,56.937694 58.496977,56.937694 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8183)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7965"> -- <path -- id="path7967" -- d="M 66.179587,59.24555 C 65.888416,59.24555 65.622598,59.410726 65.491993,59.670398 C 65.491993,59.670398 65.419777,59.814831 65.401339,59.853244 C 64.992624,59.485247 64.465597,59.24555 63.874804,59.24555 C 62.6041,59.24555 61.570021,60.279629 61.570021,61.550333 L 61.570021,63.086855 C 61.570021,63.511703 61.914202,63.855116 62.338282,63.855116 L 70.020892,63.855116 C 70.44574,63.855116 70.789153,63.511703 70.789153,63.086855 L 70.789153,60.013811 C 70.789153,59.588963 70.44574,59.24555 70.020892,59.24555 L 66.179587,59.24555 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7969" -- d="M 66.179587,59.242477 L 65.411326,60.778999 C 65.411326,59.930071 64.722964,59.242477 63.874804,59.242477 C 63.025876,59.242477 62.338282,59.930071 62.338282,60.778999 L 62.338282,62.315521 L 70.020892,62.315521 L 70.020892,59.242477 L 66.179587,59.242477 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8185)" /> -- <path -- id="path7971" -- d="M 66.654372,60.010738 C 66.431577,60.455561 66.098151,61.122412 66.098151,61.122412 C 65.96601,61.386693 65.697887,61.54726 65.411326,61.54726 C 67.254384,61.54726 68.561196,61.54726 69.251863,61.54726 C 69.251863,60.971064 69.251863,60.586934 69.251863,60.010738 C 68.421373,60.010738 67.217508,60.010738 66.654372,60.010738 z M 63.106543,60.778999 C 63.106543,60.778999 63.106543,61.163129 63.106543,61.54726 C 63.521404,61.54726 64.30503,61.54726 65.410558,61.54726 C 65.352938,61.54726 65.293782,61.540346 65.234626,61.527285 C 64.88814,61.445081 64.643065,61.135472 64.643065,60.778999 C 64.643065,60.354919 64.298116,60.010738 63.874804,60.010738 C 63.451492,60.010738 63.106543,60.354919 63.106543,60.778999 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8187)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7973"> -- <path -- id="path7975" -- d="M 62.348269,62.926288 C 62.329831,62.887107 62.257615,62.743442 62.257615,62.743442 C 62.127778,62.48377 61.861192,62.318594 61.570021,62.318594 L 57.728716,62.318594 C 57.304636,62.318594 56.960455,62.662007 56.960455,63.086855 L 56.960455,66.159899 C 56.960455,66.584747 57.304636,66.92816 57.728716,66.92816 L 65.411326,66.92816 C 65.836174,66.92816 66.179587,66.584747 66.179587,66.159899 L 66.179587,64.623377 C 66.179587,63.352673 65.145508,62.318594 63.874804,62.318594 C 63.283243,62.318594 62.756216,62.558291 62.348269,62.926288 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7977" -- d="M 61.570021,62.315521 L 62.338282,63.852043 C 62.338282,63.003115 63.026644,62.315521 63.874804,62.315521 C 64.723732,62.315521 65.411326,63.003115 65.411326,63.852043 L 65.411326,65.388565 L 57.728716,65.388565 L 57.728716,62.315521 L 61.570021,62.315521 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8189)" /> -- <path -- id="path7979" -- d="M 63.106543,63.852043 C 63.106543,64.208516 62.861468,64.518125 62.514982,64.600329 C 62.455826,64.61339 62.397438,64.620304 62.338282,64.620304 C 63.444578,64.620304 64.227436,64.620304 64.643065,64.620304 C 64.643065,64.236173 64.643065,63.852043 64.643065,63.852043 C 64.643065,63.427963 64.298116,63.083782 63.874804,63.083782 C 63.451492,63.083782 63.106543,63.427963 63.106543,63.852043 z M 58.496977,63.083782 C 58.496977,63.659978 58.496977,64.044108 58.496977,64.620304 C 59.188412,64.620304 60.494456,64.620304 62.338282,64.620304 C 62.052489,64.620304 61.783598,64.459737 61.651457,64.195456 C 61.651457,64.195456 61.318031,63.528605 61.095236,63.083782 C 60.5321,63.083782 59.328235,63.083782 58.496977,63.083782 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8191)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7981"> -- <path -- id="path7983" -- d="M 66.179587,65.391638 C 65.888416,65.391638 65.622598,65.556814 65.491993,65.816486 C 65.491993,65.816486 65.419777,65.960919 65.401339,65.999332 C 64.992624,65.631335 64.465597,65.391638 63.874804,65.391638 C 62.6041,65.391638 61.570021,66.425717 61.570021,67.696421 L 61.570021,69.232943 C 61.570021,69.657791 61.914202,70.001204 62.338282,70.001204 L 70.020892,70.001204 C 70.44574,70.001204 70.789153,69.657791 70.789153,69.232943 L 70.789153,66.159899 C 70.789153,65.735051 70.44574,65.391638 70.020892,65.391638 L 66.179587,65.391638 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7985" -- d="M 66.179587,65.388565 L 65.411326,66.925087 C 65.411326,66.076159 64.722964,65.388565 63.874804,65.388565 C 63.025876,65.388565 62.338282,66.076159 62.338282,66.925087 L 62.338282,68.461609 L 70.020892,68.461609 L 70.020892,65.388565 L 66.179587,65.388565 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8193)" /> -- <path -- id="path7987" -- d="M 66.654372,66.156826 C 66.431577,66.601649 66.098151,67.2685 66.098151,67.2685 C 65.96601,67.532781 65.697887,67.693348 65.411326,67.693348 C 67.254384,67.693348 68.561196,67.693348 69.251863,67.693348 C 69.251863,67.117152 69.251863,66.733022 69.251863,66.156826 C 68.421373,66.156826 67.217508,66.156826 66.654372,66.156826 z M 63.106543,66.925087 C 63.106543,66.925087 63.106543,67.309218 63.106543,67.693348 C 63.521404,67.693348 64.30503,67.693348 65.410558,67.693348 C 65.352938,67.693348 65.293782,67.686434 65.234626,67.673373 C 64.88814,67.591169 64.643065,67.28156 64.643065,66.925087 C 64.643065,66.501007 64.298116,66.156826 63.874804,66.156826 C 63.451492,66.156826 63.106543,66.501007 63.106543,66.925087 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8195)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7989"> -- <path -- id="path7991" -- d="M 62.348269,69.63411 C 62.329831,69.59493 62.257615,69.45127 62.257615,69.45127 C 62.127778,69.19159 61.861192,69.02642 61.570021,69.02642 L 57.728716,69.02642 C 57.304636,69.02642 56.960455,69.36983 56.960455,69.79468 L 56.960455,72.86772 C 56.960455,73.29257 57.304636,73.63598 57.728716,73.63598 L 65.411326,73.63598 C 65.836174,73.63598 66.179587,73.29257 66.179587,72.86772 L 66.179587,71.3312 C 66.179587,70.0605 65.145508,69.02642 63.874804,69.02642 C 63.283243,69.02642 62.756216,69.26612 62.348269,69.63411 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path7993" -- d="M 61.570021,69.02335 L 62.338282,70.55987 C 62.338282,69.71094 63.026644,69.02335 63.874804,69.02335 C 64.723732,69.02335 65.411326,69.71094 65.411326,70.55987 L 65.411326,72.09639 L 57.728716,72.09639 L 57.728716,69.02335 L 61.570021,69.02335 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8197)" /> -- <path -- id="path7995" -- d="M 63.106543,70.55987 C 63.106543,70.91634 62.861468,71.22595 62.514982,71.30815 C 62.455826,71.32121 62.397438,71.32813 62.338282,71.32813 C 63.444578,71.32813 64.227436,71.32813 64.643065,71.32813 C 64.643065,70.944 64.643065,70.55987 64.643065,70.55987 C 64.643065,70.13579 64.298116,69.79161 63.874804,69.79161 C 63.451492,69.79161 63.106543,70.13579 63.106543,70.55987 z M 58.496977,69.79161 C 58.496977,70.3678 58.496977,70.75193 58.496977,71.32813 C 59.188412,71.32813 60.494456,71.32813 62.338282,71.32813 C 62.052489,71.32813 61.783598,71.16756 61.651457,70.90328 C 61.651457,70.90328 61.318031,70.23643 61.095236,69.79161 C 60.5321,69.79161 59.328235,69.79161 58.496977,69.79161 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8199)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g7997"> -- <path -- id="path7999" -- d="M 66.179587,72.09946 C 65.888416,72.09946 65.622598,72.26464 65.491993,72.52431 C 65.491993,72.52431 65.419777,72.66874 65.401339,72.70716 C 64.992624,72.33916 64.465597,72.09946 63.874804,72.09946 C 62.6041,72.09946 61.570021,73.13354 61.570021,74.40425 L 61.570021,75.94077 C 61.570021,76.36562 61.914202,76.70903 62.338282,76.70903 L 70.020892,76.70903 C 70.44574,76.70903 70.789153,76.36562 70.789153,75.94077 L 70.789153,72.86772 C 70.789153,72.44287 70.44574,72.09946 70.020892,72.09946 L 66.179587,72.09946 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path8001" -- d="M 66.179587,72.09639 L 65.411326,73.63291 C 65.411326,72.78398 64.722964,72.09639 63.874804,72.09639 C 63.025876,72.09639 62.338282,72.78398 62.338282,73.63291 L 62.338282,75.16943 L 70.020892,75.16943 L 70.020892,72.09639 L 66.179587,72.09639 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8201)" /> -- <path -- id="path8003" -- d="M 66.654372,72.86465 C 66.431577,73.30947 66.098151,73.97632 66.098151,73.97632 C 65.96601,74.24061 65.697887,74.40117 65.411326,74.40117 C 67.254384,74.40117 68.561196,74.40117 69.251863,74.40117 C 69.251863,73.82498 69.251863,73.44085 69.251863,72.86465 C 68.421373,72.86465 67.217508,72.86465 66.654372,72.86465 z M 63.106543,73.63291 C 63.106543,73.63291 63.106543,74.01704 63.106543,74.40117 C 63.521404,74.40117 64.30503,74.40117 65.410558,74.40117 C 65.352938,74.40117 65.293782,74.39426 65.234626,74.3812 C 64.88814,74.29899 64.643065,73.98938 64.643065,73.63291 C 64.643065,73.20883 64.298116,72.86465 63.874804,72.86465 C 63.451492,72.86465 63.106543,73.20883 63.106543,73.63291 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8203)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g8005"> -- <path -- id="path8007" -- d="M 62.348269,75.7802 C 62.329831,75.74102 62.257615,75.59735 62.257615,75.59735 C 62.127778,75.33768 61.861192,75.17251 61.570021,75.17251 L 57.728716,75.17251 C 57.304636,75.17251 56.960455,75.51592 56.960455,75.94077 L 56.960455,79.01381 C 56.960455,79.43866 57.304636,79.78207 57.728716,79.78207 L 65.411326,79.78207 C 65.836174,79.78207 66.179587,79.43866 66.179587,79.01381 L 66.179587,77.47729 C 66.179587,76.20659 65.145508,75.17251 63.874804,75.17251 C 63.283243,75.17251 62.756216,75.4122 62.348269,75.7802 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path8009" -- d="M 61.570021,75.16943 L 62.338282,76.70596 C 62.338282,75.85703 63.026644,75.16943 63.874804,75.16943 C 64.723732,75.16943 65.411326,75.85703 65.411326,76.70596 L 65.411326,78.24248 L 57.728716,78.24248 L 57.728716,75.16943 L 61.570021,75.16943 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8205)" /> -- <path -- id="path8011" -- d="M 63.106543,76.70596 C 63.106543,77.06243 62.861468,77.37204 62.514982,77.45424 C 62.455826,77.4673 62.397438,77.47422 62.338282,77.47422 C 63.444578,77.47422 64.227436,77.47422 64.643065,77.47422 C 64.643065,77.09009 64.643065,76.70596 64.643065,76.70596 C 64.643065,76.28187 64.298116,75.93769 63.874804,75.93769 C 63.451492,75.93769 63.106543,76.28187 63.106543,76.70596 z M 58.496977,75.93769 C 58.496977,76.51389 58.496977,76.89802 58.496977,77.47422 C 59.188412,77.47422 60.494456,77.47422 62.338282,77.47422 C 62.052489,77.47422 61.783598,77.31365 61.651457,77.04937 C 61.651457,77.04937 61.318031,76.38252 61.095236,75.93769 C 60.5321,75.93769 59.328235,75.93769 58.496977,75.93769 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8207)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g8013"> -- <path -- id="path8015" -- d="M 66.179587,78.24555 C 65.888416,78.24555 65.622598,78.41073 65.491993,78.6704 C 65.491993,78.6704 65.419777,78.81483 65.401339,78.85324 C 64.992624,78.48525 64.465597,78.24555 63.874804,78.24555 C 62.6041,78.24555 61.570021,79.27963 61.570021,80.55033 L 61.570021,82.08686 C 61.570021,82.5117 61.914202,82.85512 62.338282,82.85512 L 70.020892,82.85512 C 70.44574,82.85512 70.789153,82.5117 70.789153,82.08686 L 70.789153,79.01381 C 70.789153,78.58896 70.44574,78.24555 70.020892,78.24555 L 66.179587,78.24555 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- id="path8017" -- d="M 66.179587,78.24248 L 65.411326,79.779 C 65.411326,78.93007 64.722964,78.24248 63.874804,78.24248 C 63.025876,78.24248 62.338282,78.93007 62.338282,79.779 L 62.338282,81.31552 L 70.020892,81.31552 L 70.020892,78.24248 L 66.179587,78.24248 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8209)" /> -- <path -- id="path8019" -- d="M 66.654372,79.01074 C 66.431577,79.45556 66.098151,80.12241 66.098151,80.12241 C 65.96601,80.38669 65.697887,80.54726 65.411326,80.54726 C 67.254384,80.54726 68.561196,80.54726 69.251863,80.54726 C 69.251863,79.97106 69.251863,79.58693 69.251863,79.01074 C 68.421373,79.01074 67.217508,79.01074 66.654372,79.01074 z M 63.106543,79.779 C 63.106543,79.779 63.106543,80.16313 63.106543,80.54726 C 63.521404,80.54726 64.30503,80.54726 65.410558,80.54726 C 65.352938,80.54726 65.293782,80.54035 65.234626,80.52729 C 64.88814,80.44508 64.643065,80.13547 64.643065,79.779 C 64.643065,79.35492 64.298116,79.01074 63.874804,79.01074 C 63.451492,79.01074 63.106543,79.35492 63.106543,79.779 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8211)" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g8021"> -- <path -- id="path8023" -- d="M 62.348269,81.92629 C 62.329831,81.88711 62.257615,81.74344 62.257615,81.74344 C 62.127778,81.48377 61.861192,81.31859 61.570021,81.31859 L 57.728716,81.31859 C 57.304636,81.31859 56.960455,81.66201 56.960455,82.08686 L 56.960455,85.1599 C 56.960455,85.58475 57.304636,85.92816 57.728716,85.92816 L 65.411326,85.92816 C 65.836174,85.92816 66.179587,85.58475 66.179587,85.1599 L 66.179587,83.62338 C 66.179587,82.35267 65.145508,81.31859 63.874804,81.31859 C 63.283243,81.31859 62.756216,81.55829 62.348269,81.92629 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> -- <path -- id="path8025" -- d="M 61.570021,81.31552 L 62.338282,82.85204 C 62.338282,82.00311 63.026644,81.31552 63.874804,81.31552 C 64.723732,81.31552 65.411326,82.00311 65.411326,82.85204 L 65.411326,84.38856 L 57.728716,84.38856 L 57.728716,81.31552 L 61.570021,81.31552 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8213);display:inline" /> -- <path -- id="path8027" -- d="M 63.106543,82.85204 C 63.106543,83.20852 62.861468,83.51813 62.514982,83.60033 C 62.455826,83.61339 62.397438,83.6203 62.338282,83.6203 C 63.444578,83.6203 64.227436,83.6203 64.643065,83.6203 C 64.643065,83.23617 64.643065,82.85204 64.643065,82.85204 C 64.643065,82.42796 64.298116,82.08378 63.874804,82.08378 C 63.451492,82.08378 63.106543,82.42796 63.106543,82.85204 z M 58.496977,82.08378 C 58.496977,82.65998 58.496977,83.04411 58.496977,83.6203 C 59.188412,83.6203 60.494456,83.6203 62.338282,83.6203 C 62.052489,83.6203 61.783598,83.45974 61.651457,83.19546 C 61.651457,83.19546 61.318031,82.52861 61.095236,82.08378 C 60.5321,82.08378 59.328235,82.08378 58.496977,82.08378 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8215);display:inline" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g8029"> -- <path -- id="path8031" -- d="M 66.179587,84.39164 C 65.888416,84.39164 65.622598,84.55681 65.491993,84.81649 C 65.491993,84.81649 65.419777,84.96092 65.401339,84.99933 C 64.992624,84.63134 64.465597,84.39164 63.874804,84.39164 C 62.6041,84.39164 61.570021,85.42572 61.570021,86.69642 L 61.570021,88.23294 C 61.570021,88.65779 61.914202,89.0012 62.338282,89.0012 L 70.020892,89.0012 C 70.44574,89.0012 70.789153,88.65779 70.789153,88.23294 L 70.789153,85.1599 C 70.789153,84.73505 70.44574,84.39164 70.020892,84.39164 L 66.179587,84.39164 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> -- <path -- id="path8033" -- d="M 66.179587,84.38856 L 65.411326,85.92509 C 65.411326,85.07616 64.722964,84.38856 63.874804,84.38856 C 63.025876,84.38856 62.338282,85.07616 62.338282,85.92509 L 62.338282,87.46161 L 70.020892,87.46161 L 70.020892,84.38856 L 66.179587,84.38856 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8217);display:inline" /> -- <path -- id="path8035" -- d="M 66.654372,85.15683 C 66.431577,85.60165 66.098151,86.2685 66.098151,86.2685 C 65.96601,86.53278 65.697887,86.69335 65.411326,86.69335 C 67.254384,86.69335 68.561196,86.69335 69.251863,86.69335 C 69.251863,86.11715 69.251863,85.73302 69.251863,85.15683 C 68.421373,85.15683 67.217508,85.15683 66.654372,85.15683 z M 63.106543,85.92509 C 63.106543,85.92509 63.106543,86.30922 63.106543,86.69335 C 63.521404,86.69335 64.30503,86.69335 65.410558,86.69335 C 65.352938,86.69335 65.293782,86.68643 65.234626,86.67337 C 64.88814,86.59117 64.643065,86.28156 64.643065,85.92509 C 64.643065,85.50101 64.298116,85.15683 63.874804,85.15683 C 63.451492,85.15683 63.106543,85.50101 63.106543,85.92509 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8219);display:inline" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g8037"> -- <path -- id="path8039" -- d="M 62.348269,87.92629 C 62.329831,87.88711 62.257615,87.74344 62.257615,87.74344 C 62.127778,87.48377 61.861192,87.31859 61.570021,87.31859 L 57.728716,87.31859 C 57.304636,87.31859 56.960455,87.66201 56.960455,88.08686 L 56.960455,91.1599 C 56.960455,91.58475 57.304636,91.92816 57.728716,91.92816 L 65.411326,91.92816 C 65.836174,91.92816 66.179587,91.58475 66.179587,91.1599 L 66.179587,89.62338 C 66.179587,88.35267 65.145508,87.31859 63.874804,87.31859 C 63.283243,87.31859 62.756216,87.55829 62.348269,87.92629 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> -- <path -- id="path8041" -- d="M 61.570021,87.31552 L 62.338282,88.85204 C 62.338282,88.00311 63.026644,87.31552 63.874804,87.31552 C 64.723732,87.31552 65.411326,88.00311 65.411326,88.85204 L 65.411326,90.38856 L 57.728716,90.38856 L 57.728716,87.31552 L 61.570021,87.31552 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8221);display:inline" /> -- <path -- id="path8043" -- d="M 63.106543,88.85204 C 63.106543,89.20852 62.861468,89.51813 62.514982,89.60033 C 62.455826,89.61339 62.397438,89.6203 62.338282,89.6203 C 63.444578,89.6203 64.227436,89.6203 64.643065,89.6203 C 64.643065,89.23617 64.643065,88.85204 64.643065,88.85204 C 64.643065,88.42796 64.298116,88.08378 63.874804,88.08378 C 63.451492,88.08378 63.106543,88.42796 63.106543,88.85204 z M 58.496977,88.08378 C 58.496977,88.65998 58.496977,89.04411 58.496977,89.6203 C 59.188412,89.6203 60.494456,89.6203 62.338282,89.6203 C 62.052489,89.6203 61.783598,89.45974 61.651457,89.19546 C 61.651457,89.19546 61.318031,88.52861 61.095236,88.08378 C 60.5321,88.08378 59.328235,88.08378 58.496977,88.08378 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8223);display:inline" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g8045"> -- <path -- id="path8047" -- d="M 66.179587,90.39164 C 65.888416,90.39164 65.622598,90.55681 65.491993,90.81649 C 65.491993,90.81649 65.419777,90.96092 65.401339,90.99933 C 64.992624,90.63134 64.465597,90.39164 63.874804,90.39164 C 62.6041,90.39164 61.570021,91.42572 61.570021,92.69642 L 61.570021,94.23294 C 61.570021,94.65779 61.914202,95.0012 62.338282,95.0012 L 70.020892,95.0012 C 70.44574,95.0012 70.789153,94.65779 70.789153,94.23294 L 70.789153,91.1599 C 70.789153,90.73505 70.44574,90.39164 70.020892,90.39164 L 66.179587,90.39164 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> -- <path -- id="path8049" -- d="M 66.179587,90.38856 L 65.411326,91.92509 C 65.411326,91.07616 64.722964,90.38856 63.874804,90.38856 C 63.025876,90.38856 62.338282,91.07616 62.338282,91.92509 L 62.338282,93.46161 L 70.020892,93.46161 L 70.020892,90.38856 L 66.179587,90.38856 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8225);display:inline" /> -- <path -- id="path8051" -- d="M 66.654372,91.15683 C 66.431577,91.60165 66.098151,92.2685 66.098151,92.2685 C 65.96601,92.53278 65.697887,92.69335 65.411326,92.69335 C 67.254384,92.69335 68.561196,92.69335 69.251863,92.69335 C 69.251863,92.11715 69.251863,91.73302 69.251863,91.15683 C 68.421373,91.15683 67.217508,91.15683 66.654372,91.15683 z M 63.106543,91.92509 C 63.106543,91.92509 63.106543,92.30922 63.106543,92.69335 C 63.521404,92.69335 64.30503,92.69335 65.410558,92.69335 C 65.352938,92.69335 65.293782,92.68643 65.234626,92.67337 C 64.88814,92.59117 64.643065,92.28156 64.643065,91.92509 C 64.643065,91.50101 64.298116,91.15683 63.874804,91.15683 C 63.451492,91.15683 63.106543,91.50101 63.106543,91.92509 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8227);display:inline" /> -- </g> -- <g -- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" -- id="g8053"> -- <path -- id="path8055" -- d="M 62.348269,93.92629 C 62.329831,93.88711 62.257615,93.74344 62.257615,93.74344 C 62.127778,93.48377 61.861192,93.31859 61.570021,93.31859 L 57.728716,93.31859 C 57.304636,93.31859 56.960455,93.66201 56.960455,94.08686 L 56.960455,97.1599 C 56.960455,97.58475 57.304636,97.92816 57.728716,97.92816 L 65.411326,97.92816 C 65.836174,97.92816 66.179587,97.58475 66.179587,97.1599 L 66.179587,95.62338 C 66.179587,94.35267 65.145508,93.31859 63.874804,93.31859 C 63.283243,93.31859 62.756216,93.55829 62.348269,93.92629 z" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> -- <path -- id="path8057" -- d="M 61.570021,93.31552 L 62.338282,94.85204 C 62.338282,94.00311 63.026644,93.31552 63.874804,93.31552 C 64.723732,93.31552 65.411326,94.00311 65.411326,94.85204 L 65.411326,96.38856 L 57.728716,96.38856 L 57.728716,93.31552 L 61.570021,93.31552 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8229);display:inline" /> -- <path -- id="path8059" -- d="M 63.106543,94.85204 C 63.106543,95.20852 62.861468,95.51813 62.514982,95.60033 C 62.455826,95.61339 62.397438,95.6203 62.338282,95.6203 C 63.444578,95.6203 64.227436,95.6203 64.643065,95.6203 C 64.643065,95.23617 64.643065,94.85204 64.643065,94.85204 C 64.643065,94.42796 64.298116,94.08378 63.874804,94.08378 C 63.451492,94.08378 63.106543,94.42796 63.106543,94.85204 z M 58.496977,94.08378 C 58.496977,94.65998 58.496977,95.04411 58.496977,95.6203 C 59.188412,95.6203 60.494456,95.6203 62.338282,95.6203 C 62.052489,95.6203 61.783598,95.45974 61.651457,95.19546 C 61.651457,95.19546 61.318031,94.52861 61.095236,94.08378 C 60.5321,94.08378 59.328235,94.08378 58.496977,94.08378 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8231);display:inline" /> -- </g> -- <path -- id="path8061" -- d="M 107.03125,49.59375 C 104.81868,49.614953 101.93733,49.735658 98.6875,50.125 L 112,63.4375 L 112,49.75 C 112,49.75 110.14658,49.563895 107.03125,49.59375 z" -- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> -- <path -- id="path8063" -- d="M 16,80.5625 L 16,103.1875 L 32.8125,120 L 55.4375,120 L 16,80.5625 z" -- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> -- <path -- id="path8065" -- d="M 20.15625,49.375 C 17.52591,49.455139 16,49.75 16,49.75 L 16,57.9375 L 77.90625,119.84375 L 77.9375,119.84375 C 78.17594,119.74219 78.40625,119.59375 78.59375,119.40625 C 78.59375,119.40625 78.85859,119.01914 79,118.8125 C 79.08955,118.68027 79.26027,118.42314 79.375,118.25 C 79.57047,117.9522 79.81163,117.58548 80.0625,117.1875 C 80.10708,117.11705 80.17271,117.01083 80.21875,116.9375 C 80.61846,116.29684 81.08169,115.52028 81.5625,114.6875 C 81.84462,114.20068 82.1723,113.63477 82.46875,113.09375 C 82.52778,112.98533 82.5969,112.86036 82.65625,112.75 C 83.83021,110.56719 85.04776,108.01217 86.03125,105.34375 L 30.9375,50.21875 C 30.92693,50.216854 30.91681,50.220638 30.90625,50.21875 C 26.51577,49.433564 22.78028,49.295053 20.15625,49.375 z" -- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> -- <path -- style="opacity:0.5;fill:#ffffff;fill-opacity:1" -- d="M 20.15625,49.375 C 17.52591,49.455139 16,49.75 16,49.75 L 16,53.75 C 16,53.75 40.46834,49.312093 62,70.84375 C 82.12374,50.720009 112,53.750001 112,53.75 L 112,49.75 C 112,49.750001 82.12374,46.720009 62,66.84375 C 45.85126,50.695008 28.04727,49.134583 20.15625,49.375 z" -- id="path8358" /> -- <path -- id="path8067" -- d="M 20.15625,47.375 C 17.52591,47.455139 16,47.75 16,47.75 L 16,51.75 C 16,51.75 40.46834,47.312093 62,68.84375 C 82.12374,48.720009 112,51.750001 112,51.75 L 112,47.75 C 112,47.750001 82.12374,44.720009 62,64.84375 C 45.85126,48.695008 28.04727,47.134583 20.15625,47.375 z" -- style="opacity:1;fill:url(#linearGradient8233);fill-opacity:1" /> -- <g -- transform="matrix(0.7942217,0,0,0.9648535,8.53772,34.056506)" -- id="g8069" -- style="display:inline"> -- <g -- id="g8071"> -- <path -- style="opacity:1;fill:#000000;fill-opacity:0.65490196" -- i:knockout="Off" -- d="M 61.342616,30.297476 C 60.814052,30.561757 60.450665,31.011958 60.250149,31.52362 C 60.216345,31.498268 60.087277,31.400698 60.087277,31.400698 C 59.854494,31.226303 59.543348,31.199414 59.282908,31.330018 L 55.848781,33.050923 C 55.666703,33.14081 55.528416,33.301376 55.463883,33.494978 C 55.400117,33.68858 55.415482,33.898315 55.506137,34.081929 L 56.882861,36.829231 C 57.073389,37.207215 57.534346,37.361635 57.913867,37.171107 L 64.78212,33.729297 C 65.160873,33.538769 65.314525,33.077812 65.123996,32.698291 L 64.435635,31.323872 C 64.159829,30.773029 63.685812,30.363546 63.101933,30.168408 C 62.518055,29.974806 61.892691,30.020133 61.342616,30.297476 z" -- id="path8073" /> -- <path -- style="fill:url(#linearGradient8235)" -- i:knockout="Off" -- d="M 59.626321,31.244741 L 61.002276,32.274211 C 60.621987,31.515169 60.929291,30.593256 61.687565,30.212199 C 62.446607,29.831141 63.369288,30.136909 63.749577,30.897487 L 64.437939,32.271138 L 57.569686,35.712947 L 56.192194,32.965646 L 59.626321,31.244741 z" -- id="path8075" /> -- <path -- style="fill:url(#linearGradient8237)" -- i:knockout="Off" -- d="M 62.031746,30.898256 L 62.031746,30.898256 C 61.652993,31.088016 61.499341,31.551278 61.688333,31.929262 C 61.848131,32.24809 61.767464,32.634526 61.494731,32.863467 C 61.221231,33.091641 60.826344,33.102396 60.54132,32.88882 C 60.54132,32.88882 59.944381,32.441692 59.545653,32.143607 C 59.042442,32.395596 57.966109,32.934916 57.2232,33.30829 C 57.481336,33.823025 57.653426,34.166438 57.911562,34.681941 C 58.901082,34.185644 62.417413,32.424022 63.406165,31.927725 C 63.234074,31.585081 63.061984,31.2409 63.061984,31.2409 C 62.969793,31.056517 62.812299,30.919767 62.617929,30.855233 C 62.423559,30.791467 62.21536,30.806064 62.031746,30.898256 z" -- id="path8077" /> -- </g> -- <g -- id="g8079"> -- <path -- id="path8081" -- d="M 57.588124,25.064082 C 57.120253,25.43131 56.885934,25.955264 56.793742,26.499961 C 56.742269,26.475377 56.577861,26.398551 56.577861,26.398551 C 56.314347,26.274093 56.00397,26.309433 55.775028,26.489206 L 52.755763,28.861596 C 52.422337,29.124341 52.364718,29.607577 52.626695,29.940234 L 54.525836,32.357183 C 54.651831,32.516213 54.836213,32.619929 55.038266,32.645281 C 55.241087,32.669097 55.444676,32.612246 55.604474,32.486251 L 61.643774,27.736862 C 61.803572,27.610867 61.907288,27.426484 61.931872,27.223663 C 61.955688,27.020842 61.898837,26.818021 61.772842,26.657455 L 60.823271,25.450517 C 60.442214,24.966512 59.89598,24.659208 59.285213,24.586223 C 58.675214,24.514007 58.072129,24.683024 57.588124,25.064082 z" -- a:adobe-blending-mode="multiply" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- style="fill:url(#linearGradient8239)" -- i:knockout="Off" -- d="M 56.250582,26.320957 L 57.804774,27.053878 C 57.280052,26.385491 57.395291,25.420555 58.06291,24.895832 C 58.72976,24.37111 59.695464,24.486349 60.220955,25.154736 L 61.170525,26.361674 L 55.131226,31.111064 L 53.232084,28.694115 L 56.250582,26.320957 z" -- id="path8083" /> -- <path -- style="fill:url(#linearGradient8241)" -- i:knockout="Off" -- d="M 58.537695,25.499686 C 58.537695,25.500454 58.537695,25.500454 58.537695,25.499686 C 58.20427,25.761663 58.14665,26.246435 58.408627,26.579861 C 58.62835,26.860276 58.626813,27.254394 58.404786,27.532504 C 58.182758,27.811383 57.798628,27.900501 57.476726,27.748386 C 57.476726,27.748386 56.802193,27.430326 56.351992,27.218285 C 55.909474,27.566308 54.963745,28.309984 54.309955,28.823183 C 54.665659,29.276457 54.903052,29.578383 55.259525,30.031657 C 56.129197,29.347137 59.221447,26.916359 60.091119,26.232607 C 59.853726,25.931448 59.616333,25.629522 59.616333,25.629522 C 59.488802,25.467419 59.306724,25.36524 59.103135,25.340656 C 58.900314,25.31684 58.69903,25.372923 58.537695,25.499686 z" -- id="path8085" /> -- </g> -- <g -- id="g8087"> -- <path -- id="path8089" -- d="M 53.071518,20.089592 C 52.463055,20.179478 51.925272,20.50138 51.558044,20.995371 C 51.252276,21.407159 51.104001,21.888859 51.104001,22.366717 C 51.104001,22.442775 51.147792,22.51115 51.154707,22.587208 C 51.10477,22.577989 50.932679,22.548027 50.932679,22.548027 C 50.646118,22.497322 50.356483,22.612561 50.182088,22.84688 L 47.891902,25.929144 C 47.639144,26.269483 47.709824,26.750415 48.050164,27.003941 L 50.51705,28.837011 C 50.68069,28.958397 50.885815,29.011407 51.087868,28.981444 C 51.289152,28.951482 51.47123,28.843157 51.592615,28.679518 L 56.173756,22.510382 C 56.295141,22.346742 56.346614,22.141617 56.317421,21.939564 C 56.287458,21.73828 56.179134,21.556202 56.014726,21.434817 L 54.781667,20.519818 C 54.287675,20.152589 53.680749,19.999705 53.071518,20.089592 z" -- a:adobe-blending-mode="multiply" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- style="fill:url(#linearGradient8243)" -- i:knockout="Off" -- d="M 50.79977,22.532662 L 52.491481,22.831515 C 51.810033,22.323695 51.668673,21.3626 52.174957,20.681921 C 52.681241,20.000473 53.643104,19.858345 54.324552,20.364629 L 55.55761,21.279628 L 50.97647,27.447996 L 48.509584,25.614925 L 50.79977,22.532662 z" -- id="path8091" /> -- <path -- style="fill:url(#linearGradient8245)" -- i:knockout="Off" -- d="M 53.29585,20.837878 C 53.093029,20.86784 52.914024,20.974628 52.791103,21.139804 L 52.791103,21.139804 C 52.538345,21.479376 52.609793,21.961844 52.950133,22.21537 C 53.235926,22.428178 53.337336,22.808467 53.196744,23.135747 C 53.055384,23.462257 52.70813,23.649713 52.357803,23.587484 C 52.357803,23.587484 51.622578,23.457648 51.133195,23.370834 C 50.797465,23.822572 50.079909,24.788276 49.584381,25.455126 C 50.046874,25.798539 50.354947,26.028249 50.81744,26.371662 C 51.477376,25.483552 53.822109,22.325999 54.482045,21.43789 C 54.173972,21.209716 53.866668,20.980774 53.866668,20.980774 C 53.701492,20.859389 53.498671,20.807916 53.29585,20.837878 z" -- id="path8093" /> -- </g> -- <g -- id="g8095"> -- <path -- id="path8097" -- d="M 46.422987,16.637027 C 45.844487,16.845994 45.382762,17.269306 45.12309,17.826295 C 44.975583,18.141282 44.904903,18.473171 44.904903,18.799681 C 44.904903,19.027087 44.942548,19.251419 45.00785,19.4673 C 44.970974,19.468069 44.819626,19.47191 44.819626,19.47191 C 44.529224,19.479592 44.267247,19.650146 44.144325,19.91366 L 42.514075,23.390809 C 42.464906,23.496061 42.44109,23.607459 42.44109,23.716552 C 42.44109,24.00465 42.60473,24.281992 42.883609,24.412596 L 45.66625,25.717103 C 45.850633,25.803917 46.061904,25.813136 46.25397,25.743993 C 46.446035,25.674849 46.601992,25.531953 46.688037,25.34757 L 49.947769,18.38943 C 50.033814,18.205047 50.043801,17.993007 49.974658,17.80171 C 49.904746,17.610413 49.762618,17.453688 49.577467,17.367643 L 48.186914,16.716926 C 47.629925,16.455717 47.003024,16.427291 46.422987,16.637027 z" -- a:adobe-blending-mode="multiply" -- i:knockout="Off" -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> -- <path -- style="fill:url(#linearGradient8247)" -- i:knockout="Off" -- d="M 44.840369,19.468837 L 46.558201,19.424278 C 45.789172,19.063195 45.458051,18.148964 45.819134,17.380703 C 46.17868,16.612442 47.092911,16.280554 47.862708,16.642405 L 49.253261,17.293122 L 45.993529,24.251261 L 43.210888,22.946754 L 44.840369,19.468837 z" -- id="path8099" /> -- <path -- style="fill:url(#linearGradient8249)" -- i:knockout="Off" -- d="M 46.946941,17.310023 C 46.754876,17.379935 46.601224,17.519759 46.515178,17.70491 C 46.515178,17.705678 46.515178,17.706446 46.51441,17.706446 C 46.465241,17.811698 46.442194,17.921559 46.442194,18.030652 C 46.442194,18.319518 46.605833,18.597629 46.88548,18.729001 C 47.158213,18.857301 47.326462,19.130802 47.326462,19.423509 C 47.326462,19.475751 47.321084,19.528761 47.310329,19.581771 C 47.237344,19.930562 46.934649,20.182551 46.578176,20.19177 C 46.578176,20.19177 45.831426,20.210977 45.334361,20.224037 C 45.095432,20.733394 44.584539,21.823557 44.231907,22.575684 C 44.753556,22.819991 45.10081,22.983631 45.623227,23.227938 C 46.092635,22.226125 47.761298,18.664468 48.230705,17.661887 C 47.883451,17.499784 47.536197,17.336912 47.536197,17.336912 C 47.348742,17.249331 47.139775,17.240112 46.946941,17.310023 z" -- id="path8101" /> -- </g> -- </g> -- <g -- style="display:inline" -- id="g8103" -- transform="matrix(-0.7942217,0,0,0.9648535,112.65125,36.056506)"> -- <g -- id="g8105"> -- <path -- id="path8107" -- d="M 61.342616,30.297476 C 60.814052,30.561757 60.450665,31.011958 60.250149,31.52362 C 60.216345,31.498268 60.087277,31.400698 60.087277,31.400698 C 59.854494,31.226303 59.543348,31.199414 59.282908,31.330018 L 55.848781,33.050923 C 55.666703,33.14081 55.528416,33.301376 55.463883,33.494978 C 55.400117,33.68858 55.415482,33.898315 55.506137,34.081929 L 56.882861,36.829231 C 57.073389,37.207215 57.534346,37.361635 57.913867,37.171107 L 64.78212,33.729297 C 65.160873,33.538769 65.314525,33.077812 65.123996,32.698291 L 64.435635,31.323872 C 64.159829,30.773029 63.685812,30.363546 63.101933,30.168408 C 62.518055,29.974806 61.892691,30.020133 61.342616,30.297476 z" -- i:knockout="Off" -- style="opacity:1;fill:#000000;fill-opacity:0.65490196" /> -- <path -- id="path8109" -- d="M 59.626321,31.244741 L 61.002276,32.274211 C 60.621987,31.515169 60.929291,30.593256 61.687565,30.212199 C 62.446607,29.831141 63.369288,30.136909 63.749577,30.897487 L 64.437939,32.271138 L 57.569686,35.712947 L 56.192194,32.965646 L 59.626321,31.244741 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8251)" /> -- <path -- id="path8111" -- d="M 62.031746,30.898256 L 62.031746,30.898256 C 61.652993,31.088016 61.499341,31.551278 61.688333,31.929262 C 61.848131,32.24809 61.767464,32.634526 61.494731,32.863467 C 61.221231,33.091641 60.826344,33.102396 60.54132,32.88882 C 60.54132,32.88882 59.944381,32.441692 59.545653,32.143607 C 59.042442,32.395596 57.966109,32.934916 57.2232,33.30829 C 57.481336,33.823025 57.653426,34.166438 57.911562,34.681941 C 58.901082,34.185644 62.417413,32.424022 63.406165,31.927725 C 63.234074,31.585081 63.061984,31.2409 63.061984,31.2409 C 62.969793,31.056517 62.812299,30.919767 62.617929,30.855233 C 62.423559,30.791467 62.21536,30.806064 62.031746,30.898256 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8253)" /> -- </g> -- <g -- id="g8113"> -- <path -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" -- i:knockout="Off" -- a:adobe-blending-mode="multiply" -- d="M 57.588124,25.064082 C 57.120253,25.43131 56.885934,25.955264 56.793742,26.499961 C 56.742269,26.475377 56.577861,26.398551 56.577861,26.398551 C 56.314347,26.274093 56.00397,26.309433 55.775028,26.489206 L 52.755763,28.861596 C 52.422337,29.124341 52.364718,29.607577 52.626695,29.940234 L 54.525836,32.357183 C 54.651831,32.516213 54.836213,32.619929 55.038266,32.645281 C 55.241087,32.669097 55.444676,32.612246 55.604474,32.486251 L 61.643774,27.736862 C 61.803572,27.610867 61.907288,27.426484 61.931872,27.223663 C 61.955688,27.020842 61.898837,26.818021 61.772842,26.657455 L 60.823271,25.450517 C 60.442214,24.966512 59.89598,24.659208 59.285213,24.586223 C 58.675214,24.514007 58.072129,24.683024 57.588124,25.064082 z" -- id="path8115" /> -- <path -- id="path8117" -- d="M 56.250582,26.320957 L 57.804774,27.053878 C 57.280052,26.385491 57.395291,25.420555 58.06291,24.895832 C 58.72976,24.37111 59.695464,24.486349 60.220955,25.154736 L 61.170525,26.361674 L 55.131226,31.111064 L 53.232084,28.694115 L 56.250582,26.320957 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8255)" /> -- <path -- id="path8119" -- d="M 58.537695,25.499686 C 58.537695,25.500454 58.537695,25.500454 58.537695,25.499686 C 58.20427,25.761663 58.14665,26.246435 58.408627,26.579861 C 58.62835,26.860276 58.626813,27.254394 58.404786,27.532504 C 58.182758,27.811383 57.798628,27.900501 57.476726,27.748386 C 57.476726,27.748386 56.802193,27.430326 56.351992,27.218285 C 55.909474,27.566308 54.963745,28.309984 54.309955,28.823183 C 54.665659,29.276457 54.903052,29.578383 55.259525,30.031657 C 56.129197,29.347137 59.221447,26.916359 60.091119,26.232607 C 59.853726,25.931448 59.616333,25.629522 59.616333,25.629522 C 59.488802,25.467419 59.306724,25.36524 59.103135,25.340656 C 58.900314,25.31684 58.69903,25.372923 58.537695,25.499686 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8257)" /> -- </g> -- <g -- id="g8121"> -- <path -- style="fill:#000000;fill-opacity:0.65680476;stroke:none" -- i:knockout="Off" -- a:adobe-blending-mode="multiply" -- d="M 53.071518,20.089592 C 52.463055,20.179478 51.925272,20.50138 51.558044,20.995371 C 51.252276,21.407159 51.104001,21.888859 51.104001,22.366717 C 51.104001,22.442775 51.147792,22.51115 51.154707,22.587208 C 51.10477,22.577989 50.932679,22.548027 50.932679,22.548027 C 50.646118,22.497322 50.356483,22.612561 50.182088,22.84688 L 47.891902,25.929144 C 47.639144,26.269483 47.709824,26.750415 48.050164,27.003941 L 50.51705,28.837011 C 50.68069,28.958397 50.885815,29.011407 51.087868,28.981444 C 51.289152,28.951482 51.47123,28.843157 51.592615,28.679518 L 56.173756,22.510382 C 56.295141,22.346742 56.346614,22.141617 56.317421,21.939564 C 56.287458,21.73828 56.179134,21.556202 56.014726,21.434817 L 54.781667,20.519818 C 54.287675,20.152589 53.680749,19.999705 53.071518,20.089592 z" -- id="path8123" /> -- <path -- id="path8125" -- d="M 50.79977,22.532662 L 52.491481,22.831515 C 51.810033,22.323695 51.668673,21.3626 52.174957,20.681921 C 52.681241,20.000473 53.643104,19.858345 54.324552,20.364629 L 55.55761,21.279628 L 50.97647,27.447996 L 48.509584,25.614925 L 50.79977,22.532662 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8259)" /> -- <path -- id="path8127" -- d="M 53.29585,20.837878 C 53.093029,20.86784 52.914024,20.974628 52.791103,21.139804 L 52.791103,21.139804 C 52.538345,21.479376 52.609793,21.961844 52.950133,22.21537 C 53.235926,22.428178 53.337336,22.808467 53.196744,23.135747 C 53.055384,23.462257 52.70813,23.649713 52.357803,23.587484 C 52.357803,23.587484 51.622578,23.457648 51.133195,23.370834 C 50.797465,23.822572 50.079909,24.788276 49.584381,25.455126 C 50.046874,25.798539 50.354947,26.028249 50.81744,26.371662 C 51.477376,25.483552 53.822109,22.325999 54.482045,21.43789 C 54.173972,21.209716 53.866668,20.980774 53.866668,20.980774 C 53.701492,20.859389 53.498671,20.807916 53.29585,20.837878 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8261)" /> -- </g> -- <g -- id="g8129"> -- <path -- style="fill:#4a4a4a;fill-opacity:1;stroke:none" -- i:knockout="Off" -- a:adobe-blending-mode="multiply" -- d="M 46.422987,16.637027 C 45.844487,16.845994 45.382762,17.269306 45.12309,17.826295 C 44.975583,18.141282 44.904903,18.473171 44.904903,18.799681 C 44.904903,19.027087 44.942548,19.251419 45.00785,19.4673 C 44.970974,19.468069 44.819626,19.47191 44.819626,19.47191 C 44.529224,19.479592 44.267247,19.650146 44.144325,19.91366 L 42.514075,23.390809 C 42.464906,23.496061 42.44109,23.607459 42.44109,23.716552 C 42.44109,24.00465 42.60473,24.281992 42.883609,24.412596 L 45.66625,25.717103 C 45.850633,25.803917 46.061904,25.813136 46.25397,25.743993 C 46.446035,25.674849 46.601992,25.531953 46.688037,25.34757 L 49.947769,18.38943 C 50.033814,18.205047 50.043801,17.993007 49.974658,17.80171 C 49.904746,17.610413 49.762618,17.453688 49.577467,17.367643 L 48.186914,16.716926 C 47.629925,16.455717 47.003024,16.427291 46.422987,16.637027 z" -- id="path8131" /> -- <path -- id="path8133" -- d="M 44.840369,19.468837 L 46.558201,19.424278 C 45.789172,19.063195 45.458051,18.148964 45.819134,17.380703 C 46.17868,16.612442 47.092911,16.280554 47.862708,16.642405 L 49.253261,17.293122 L 45.993529,24.251261 L 43.210888,22.946754 L 44.840369,19.468837 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8263)" /> -- <path -- id="path8135" -- d="M 46.946941,17.310023 C 46.754876,17.379935 46.601224,17.519759 46.515178,17.70491 C 46.515178,17.705678 46.515178,17.706446 46.51441,17.706446 C 46.465241,17.811698 46.442194,17.921559 46.442194,18.030652 C 46.442194,18.319518 46.605833,18.597629 46.88548,18.729001 C 47.158213,18.857301 47.326462,19.130802 47.326462,19.423509 C 47.326462,19.475751 47.321084,19.528761 47.310329,19.581771 C 47.237344,19.930562 46.934649,20.182551 46.578176,20.19177 C 46.578176,20.19177 45.831426,20.210977 45.334361,20.224037 C 45.095432,20.733394 44.584539,21.823557 44.231907,22.575684 C 44.753556,22.819991 45.10081,22.983631 45.623227,23.227938 C 46.092635,22.226125 47.761298,18.664468 48.230705,17.661887 C 47.883451,17.499784 47.536197,17.336912 47.536197,17.336912 C 47.348742,17.249331 47.139775,17.240112 46.946941,17.310023 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8265)" /> -- </g> -- <g -- id="g8137"> -- <path -- style="fill:#4a4a4a;fill-opacity:1;stroke:none" -- i:knockout="Off" -- a:adobe-blending-mode="multiply" -- d="M 40.094821,14.81087 C 39.56318,15.12048 39.1829,15.618313 39.02617,16.213715 C 38.97393,16.41039 38.94858,16.609369 38.94858,16.807581 C 38.94858,17.168663 39.06151,17.516686 39.22976,17.843965 C 39.1852,17.853184 39.02233,17.886987 39.02233,17.886987 C 38.7373,17.946143 38.51067,18.161257 38.43615,18.44244 L 37.45431,22.154677 C 37.43741,22.220748 37.42819,22.286818 37.42819,22.351352 C 37.42819,22.691692 37.65559,23.002837 38.00054,23.093492 L 40.971407,23.879423 C 41.168082,23.931665 41.377817,23.902471 41.554517,23.800292 C 41.730449,23.698114 41.858749,23.529864 41.91099,23.332421 L 43.874665,15.904106 C 43.926907,15.707431 43.898481,15.497696 43.795535,15.321764 C 43.692588,15.145832 43.524338,15.017533 43.327664,14.965291 L 41.843383,14.573478 C 41.248749,14.416752 40.626458,14.500493 40.094821,14.81087 z" -- id="path8139" /> -- <path -- id="path8141" -- d="M 39.17905,17.867781 L 40.860777,17.516686 C 40.039506,17.299268 39.55089,16.45879 39.76831,15.638287 C 39.98419,14.817785 40.824669,14.328402 41.646708,14.546589 L 43.131757,14.937633 L 41.168082,22.365949 L 38.19722,21.580018 L 39.17905,17.867781 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8267)" /> -- <path -- id="path8143" -- d="M 40.867692,15.367091 C 40.690992,15.470038 40.564229,15.635983 40.511987,15.834194 L 40.511987,15.834962 C 40.494317,15.900264 40.485866,15.967103 40.485866,16.033174 C 40.485866,16.166851 40.521206,16.298992 40.59035,16.417304 C 40.693297,16.594772 40.860009,16.721535 41.058221,16.773777 C 41.395487,16.863664 41.629807,17.168663 41.629807,17.515917 C 41.629807,17.522832 41.629807,17.529746 41.629807,17.53666 C 41.620588,17.892365 41.36783,18.19506 41.019039,18.268045 C 41.019039,18.268045 40.288423,18.420161 39.80135,18.522339 C 39.65768,19.066268 39.34961,20.229415 39.13757,21.033016 C 39.69456,21.180522 40.065627,21.27886 40.622617,21.426366 C 40.905337,20.356178 41.910222,16.554055 42.192942,15.484635 C 41.82264,15.387066 41.452338,15.288729 41.452338,15.288729 C 41.251822,15.235719 41.04516,15.263376 40.867692,15.367091 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8269)" /> -- </g> -- </g> -- <g -- transform="matrix(1.7389025,0,0,1.4755998,-47.048677,13.909947)" -- id="g8145"> -- <path -- id="path8147" -- d="M 63.86789,28.512037 L 63.86789,28.512037 C 63.86789,28.512037 63.867121,28.512037 63.861744,28.512037 C 60.193297,28.512037 57.162508,31.701088 56.963528,35.772872 C 56.961223,35.810516 56.960455,35.847393 56.960455,35.885038 C 56.960455,36.680956 57.372243,37.424633 58.052922,37.846408 C 58.203501,37.939368 58.351776,38.125287 58.496977,38.315047 C 58.496977,38.871268 58.496977,54.632911 58.496977,54.632911 C 58.496977,55.903615 59.531056,56.937694 60.80176,56.937694 L 66.947848,56.937694 C 68.218552,56.937694 69.252631,55.903615 69.252631,54.632911 C 69.252631,54.632911 69.252631,38.844379 69.252631,38.281244 C 69.39015,38.106849 69.529205,37.933222 69.669797,37.846408 C 70.351244,37.425401 70.762264,36.681724 70.762264,35.885806 C 70.762264,35.84893 70.761496,35.811285 70.759959,35.774408 C 70.574808,31.989186 67.875907,28.881571 64.480962,28.54584 C 64.478657,28.54584 63.874804,28.512037 63.874804,28.512037 C 63.869426,28.512037 63.86789,28.511269 63.86789,28.512037 z M 64.643065,43.108996 C 64.643065,43.450104 64.643065,43.536149 64.643065,43.877257 C 64.066869,43.877257 63.682739,43.877257 63.106543,43.877257 C 63.106543,43.536149 63.106543,43.450104 63.106543,43.108996 C 63.682739,43.108996 64.066869,43.108996 64.643065,43.108996 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8271);filter:url(#filter8342)" /> -- <path -- id="path8149" -- d="M 57.730253,35.810516 C 57.730253,35.810516 57.730253,35.810516 57.730253,35.810516 C 57.703363,36.369811 57.982242,36.898374 58.457027,37.192618 C 59.392001,37.77035 60.01967,39.222364 60.01967,40.804213 C 60.01967,41.651605 60.7088,42.340735 61.556192,42.340735 L 66.165758,42.340735 C 67.013918,42.340735 67.70228,41.651605 67.70228,40.804213 C 67.70228,39.221595 68.330718,37.77035 69.265691,37.192618 C 69.741245,36.898374 70.018587,36.369811 69.991698,35.811285 C 69.813462,32.148216 67.120707,29.280298 63.861744,29.280298 C 60.60278,29.280298 57.910026,32.148216 57.730253,35.810516 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8273)" /> -- <path -- id="path8151" -- d="M 58.511574,35.0799 C 58.497745,35.358779 58.637569,35.623829 58.874961,35.770567 C 60.045791,36.495037 60.80176,38.16831 60.80176,40.035952 C 60.80176,40.4608 61.145941,40.804213 61.570021,40.804213 L 66.179587,40.804213 C 66.604435,40.804213 66.947848,40.4608 66.947848,40.035952 C 66.947848,38.16831 67.703817,36.495037 68.875415,35.770567 C 69.113576,35.623829 69.251863,35.358779 69.238802,35.0799 C 69.079004,31.827083 66.723516,29.280298 63.874804,29.280298 C 61.026092,29.280298 58.670604,31.827083 58.511574,35.0799 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8275)" /> -- <path -- id="path8153" -- d="M 68.054144,36.194647 C 68.18859,36.082481 68.326108,35.974924 68.470541,35.885806 C 68.449798,35.460958 68.382191,35.051475 68.281549,34.658125 L 59.467291,34.658125 C 59.367417,35.051475 59.299041,35.460958 59.278298,35.885806 C 59.422732,35.974924 59.56025,36.082481 59.694696,36.194647 L 68.054144,36.194647 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8277);filter:url(#filter8354)" /> -- <path -- id="path8155" -- d="M 60.80176,36.194647 C 59.954368,36.194647 59.265238,36.883777 59.265238,37.731169 L 59.265238,54.632911 C 59.265238,55.480303 59.954368,56.169433 60.80176,56.169433 L 66.947848,56.169433 C 67.79524,56.169433 68.48437,55.480303 68.48437,54.632911 L 68.48437,37.731169 C 68.48437,36.883777 67.79524,36.194647 66.947848,36.194647 L 60.80176,36.194647 z M 62.338282,39.267691 L 65.411326,39.267691 L 65.411326,44.645518 L 62.338282,44.645518 L 62.338282,39.267691 z M 65.411326,51.559867 C 65.411326,51.772675 65.411326,52.11532 65.411326,52.328128 C 65.088656,52.328128 62.660952,52.328128 62.338282,52.328128 C 62.338282,52.11532 62.338282,51.772675 62.338282,51.559867 C 62.660952,51.559867 65.088656,51.559867 65.411326,51.559867 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8279)" /> -- <path -- id="path8157" -- d="M 66.947848,36.194647 L 60.80176,36.194647 C 60.37768,36.194647 60.033499,36.53806 60.033499,36.962908 L 60.033499,53.86465 C 60.033499,54.289498 60.37768,54.632911 60.80176,54.632911 L 66.947848,54.632911 C 67.372696,54.632911 67.716109,54.289498 67.716109,53.86465 L 67.716109,36.962908 C 67.716109,36.53806 67.372696,36.194647 66.947848,36.194647 z M 66.179587,52.520193 C 66.179587,52.838253 65.921451,53.096389 65.603391,53.096389 L 62.146217,53.096389 C 61.828157,53.096389 61.570021,52.838253 61.570021,52.520193 L 61.570021,51.367802 C 61.570021,51.049742 61.828157,50.791606 62.146217,50.791606 L 65.603391,50.791606 C 65.921451,50.791606 66.179587,51.049742 66.179587,51.367802 L 66.179587,52.520193 z M 66.179587,44.645518 C 66.179587,45.070366 65.836174,45.413779 65.411326,45.413779 L 62.338282,45.413779 C 61.914202,45.413779 61.570021,45.070366 61.570021,44.645518 L 61.570021,38.49943 C 61.570021,38.074582 61.914202,37.731169 62.338282,37.731169 L 65.411326,37.731169 C 65.836174,37.731169 66.179587,38.074582 66.179587,38.49943 L 66.179587,44.645518 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8281)" /> -- <path -- id="path8159" -- d="M 65.411326,39.267691 C 65.411326,39.692539 65.067913,40.035952 64.643065,40.035952 L 63.106543,40.035952 C 62.682463,40.035952 62.338282,39.692539 62.338282,39.267691 L 62.338282,31.585081 C 62.338282,31.160233 62.682463,30.81682 63.106543,30.81682 L 64.643065,30.81682 C 65.067913,30.81682 65.411326,31.160233 65.411326,31.585081 L 65.411326,39.267691 z" -- i:knockout="Off" -- style="fill:url(#linearGradient8283)" /> -- <rect -- id="rect8161" -- height="7.68261" -- width="1.536522" -- i:knockout="Off" -- y="31.585079" -- x="63.106544" -- style="fill:url(#linearGradient8285)" /> -- </g> -- </g> -- <g -- id="g3412" -- transform="translate(-10,0)"> -- <path -- transform="translate(50,0)" -- clip-path="url(#clipPath7084)" -- sodipodi:nodetypes="cccc" -- style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)" -- id="path5540" -- d="M 41.879531,115.98249 C 41.879531,115.98249 66.18914,91.672876 66.18914,91.672876 C 66.18914,91.672876 56.836,94.586 46.586,94.586 C 46.586,104.836 41.879531,115.98249 41.879531,115.98249 z " /> -- <path -- sodipodi:nodetypes="csccc" -- d="M 89.172,120 C 89.172,120 101.086,110.086 106.586,104.586 C 112.086,99.086 122,87.172 122,87.172 C 122,87.172 108.25,96 98,96 C 98,106.25 89.172,120 89.172,120 z " -- id="path14523" -- style="fill:url(#linearGradient3416);fill-opacity:1" /> -- </g> -- </g> --</svg> -diff --git a/manual/conversion.rst b/manual/conversion.rst -index 8fa28e6..6eca538 100644 ---- a/manual/conversion.rst -+++ b/manual/conversion.rst -@@ -735,7 +735,7 @@ output ranging anywhere from decent to unusable, depending on the input PDF. - Comic book collections - ~~~~~~~~~~~~~~~~~~~~~~~~~ - --A comic book collection is a .cbc file. A .cbc file is a ZIP file that contains other CBZ/CBR files. In addition the -+A comic book collection is a .cbc file. A .cbc file is a ZIP file that contains other CBZ files. In addition the - .cbc file must contain a simple text file called comics.txt, encoded in UTF-8. The comics.txt file must contain - a list of the comics files inside the .cbc file, in the form filename:title, as shown below:: - -diff --git a/manual/faq.rst b/manual/faq.rst -index 0637394..adb2e84 100644 ---- a/manual/faq.rst -+++ b/manual/faq.rst -@@ -18,7 +18,7 @@ What formats does calibre support conversion to/from? - calibre supports the conversion of many input formats to many output formats. - It can convert every input format in the following list, to every output format. - --*Input Formats:* AZW, AZW3, AZW4, CBZ, CBR, CBC, CHM, DJVU, DOCX, EPUB, FB2, HTML, HTMLZ, LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, SNB, TCR, TXT, TXTZ -+*Input Formats:* AZW, AZW3, AZW4, CBZ, CBC, CHM, DJVU, DOCX, EPUB, FB2, HTML, HTMLZ, LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, SNB, TCR, TXT, TXTZ - - *Output Formats:* AZW3, EPUB, DOCX, FB2, HTMLZ, OEB, LIT, LRF, MOBI, PDB, PMLZ, RB, PDF, RTF, SNB, TCR, TXT, TXTZ, ZIP - -diff --git a/manual/gui.rst b/manual/gui.rst -index 0c38741..54418f7 100644 ---- a/manual/gui.rst -+++ b/manual/gui.rst -@@ -51,7 +51,7 @@ Add books - - 3. **Add books from directories, including sub-directories (Multiple books per directory, assumes every e-book file is a different book)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any e-books found are added to the library. calibre assumes that each directory contains many books. All e-book files with the same name in a directory are assumed to be the same book in different formats. E-books with different names are added as different books. - -- 4. **Add multiple books from archive (ZIP/RAR)**: Allows you to add multiple e-books that are stored inside the selected ZIP or RAR files. It is a convenient shortcut that avoids having to first unzip the archive and then add the books via one of the above two options. -+ 4. **Add multiple books from archive (ZIP)**: Allows you to add multiple e-books that are stored inside the selected ZIP files. It is a convenient shortcut that avoids having to first unzip the archive and then add the books via one of the above two options. - - 5. **Add empty book (Book Entry with no formats)**: Allows you to create a blank book record. This can be used to then manually fill out the information about a book that you may not have yet in your collection. - -diff --git a/recipes/economist.recipe b/recipes/economist.recipe -index 0116528..4766232 100644 ---- a/recipes/economist.recipe -+++ b/recipes/economist.recipe -@@ -39,7 +39,7 @@ class Economist(BasicNewsRecipe): - INDEX = 'https://www.economist.com/printedition' - description = ( - 'Global news and current affairs from a European' -- ' perspective. Best downloaded on Friday mornings (GMT)' -+ ' perspective. Best downloaded on Saturday mornings (GMT)' - ) - extra_css = ''' - .headline {font-size: x-large;} -diff --git a/resources/calibre-portable.bat a/resources/calibre-portable.bat -deleted file mode 100644 -index e30cb26..0000000 ---- a/resources/calibre-portable.bat -+++ /dev/null -@@ -1,207 +0,0 @@ --@echo OFF
--REM Calibre-Portable.bat
--REM ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
--REM
--REM Batch File to start a Calibre configuration on Windows
--REM giving explicit control of the location of:
--REM - Calibre Program Files
--REM - Calibre Library Files
--REM - Calibre Config Files
--REM - Calibre Metadata database
--REM - Calibre Source files
--REM - Calibre Temp Files
--REM By setting the paths correctly it can be used to run:
--REM - A "portable calibre" off a USB stick.
--REM - A network installation with local metadata database
--REM (for performance) and books stored on a network share
--REM - A local installation using customised settings
--REM
--REM If trying to run off a USB stick then the folder structure
--REM shown below is recommended (relative to the location of
--REM this batch file). This can structure can also be used
--REM when running of a local hard disk if you want to get the
--REM level of control this batch file provides.
--REM - Calibre2 Location of program files
--REM - CalibreConfig Location of Configuration files
--REM - CalibreLibrary Location of Books and metadata
--REM - CalibreSource Location of Calibre Source files (Optional)
--REM
--REM This batch file is designed so that if you create the recommended
--REM folder structure then it can be used 'as is' without modification.
--REM
--REM More information on the Environment Variables used by Calibre can
--REM be found at:
--REM https://manual.calibre-ebook.com/customize.html#environment-variables
--REM
--REM The documentation for this file in the Calibre manual can be found at:
--REM https://manual.calibre-ebook.com/portable.html
--REM
--REM CHANGE HISTORY
--REM ¬¬¬¬¬¬¬¬¬¬¬¬¬¬
--REM 22 Jan 2012 itimpi - Updated to keep it in line with the calibre-portable.sh
--REM file for Linux systems
--
--
--REM -------------------------------------
--REM Set up Calibre Config folder
--REM
--REM This is where user specific settings
--REM are stored.
--REM -------------------------------------
--
--IF EXIST CalibreConfig (
-- SET CALIBRE_CONFIG_DIRECTORY=%cd%\CalibreConfig
-- ECHO CONFIG FILES: %cd%\CalibreConfig
--)
--
--
--REM --------------------------------------------------------------
--REM Specify Location of ebooks
--REM
--REM Location where Book files are located
--REM Either set explicit path, or if running from a USB stick
--REM a relative path can be used to avoid need to know the
--REM drive letter of the USB stick.
--REM
--REM Comment out any of the following that are not to be used
--REM (although leaving them in does not really matter)
--REM --------------------------------------------------------------
--
--IF EXIST U:\eBooks\CalibreLibrary (
-- SET CALIBRE_LIBRARY_DIRECTORY=U:\eBOOKS\CalibreLibrary
-- ECHO LIBRARY FILES: U:\eBOOKS\CalibreLibrary
--)
--IF EXIST CalibreLibrary (
-- SET CALIBRE_LIBRARY_DIRECTORY=%cd%\CalibreLibrary
-- ECHO LIBRARY FILES: %cd%\CalibreLibrary
--)
--
--
--REM --------------------------------------------------------------
--REM Specify Location of metadata database (optional)
--REM
--REM Location where the metadata.db file is located. If not set
--REM the same location as Books files will be assumed. This.
--REM option is typically set to get better performance when the
--REM Library is on a (slow) network drive. Putting the metadata.db
--REM file locally then makes gives a big performance improvement.
--REM
--REM NOTE. If you use this option, then the ability to switch
--REM libraries within Calibre will be disabled. Therefore
--REM you do not want to set it if the metadata.db file
--REM is at the same location as the book files.
--REM
--REM Another point to watch is that plugins can cause problems
--REM as they often store absolute path information
--REM --------------------------------------------------------------
--
--IF EXIST %cd%\CalibreMetadata\metadata.db (
-- IF NOT "%CALIBRE_LIBRARY_DIRECTORY%" == "%cd%\CalibreMetadata" (
-- SET CALIBRE_OVERRIDE_DATABASE_PATH=%cd%\CalibreMetadata\metadata.db
-- ECHO DATABASE: %cd%\CalibreMetadata\metadata.db
-- ECHO '
-- ECHO ***CAUTION*** Library Switching will be disabled
-- ECHO '
-- )
--)
--
--REM --------------------------------------------------------------
--REM Specify Location of source (optional)
--REM
--REM It is easy to run Calibre from source
--REM Just set the environment variable to where the source is located
--REM When running from source the GUI will have a '*' after the version.
--REM number that is displayed at the bottom of the Calibre main screen.
--REM
--REM More information on setting up a development environment can
--REM be found at:
--REM https://manual.calibre-ebook.com/develop.html#develop
--REM --------------------------------------------------------------
--
--IF EXIST CalibreSource\src (
-- SET CALIBRE_DEVELOP_FROM=%cd%\CalibreSource\src
-- ECHO SOURCE FILES: %cd%\CalibreSource\src
--) ELSE (
-- ECHO SOURCE FILES: *** Not being Used ***
--)
--
--
--REM --------------------------------------------------------------
--REM Specify Location of calibre Windows binaries (optional)
--REM
--REM To avoid needing Calibre to be set in the search path, ensure
--REM that Calibre Program Files is current directory when starting.
--REM The following test falls back to using search path .
--REM This folder can be populated by copying the Calibre2 folder from
--REM an existing installation or by installing direct to here.
--REM
--REM NOTE. Do not try and put both Windows and Linux binaries into
--REM same folder as this can cause problems.
--REM --------------------------------------------------------------
--
--IF EXIST %cd%\Calibre2 (
-- CD %cd%\Calibre2
-- ECHO PROGRAM FILES: %cd%
--) ELSE (
-- ECHO PROGRAM FILES: *** Use System search PATH ***
--)
--
--
--REM --------------------------------------------------------------
--REM Location of Calibre Temporary files (optional)
--REM
--REM Calibre creates a lot of temporary files while running
--REM In theory these are removed when Calibre finishes, but
--REM in practise files can be left behind (particularily if
--REM any errors occur). Using this option allows some
--REM explicit clean-up of these files.
--REM If not set Calibre uses the normal system TEMP location
--REM --------------------------------------------------------------
--
--SET CALIBRE_TEMP_DIR=%TEMP%\CALIBRE_TEMP
--ECHO TEMPORARY FILES: %CALIBRE_TEMP_DIR%
--
--IF EXIST "%CALIBRE_TEMP_DIR%" RMDIR /s /q "%CALIBRE_TEMP_DIR%"
--MKDIR "%CALIBRE_TEMP_DIR%"
--REM set the following for any components that do
--REM not obey the CALIBRE_TEMP_DIR setting
--SET TMP=%CALIBRE_TEMP_DIR%
--SET TEMP=%CALIBRE_TEMP_DIR%
--
--
--REM --------------------------------------------------------------
--REM Set the Interface language (optional)
--REM
--REM If not set Calibre uses the language set in Preferences
--REM --------------------------------------------------------------
--
--SET CALIBRE_OVERRIDE_LANG=EN
--ECHO INTERFACE LANGUAGE: %CALIBRE_OVERRIDE_LANG%
--
--REM ----------------------------------------------------------
--REM The following gives a chance to check the settings before
--REM starting Calibre. It can be commented out if not wanted.
--REM ----------------------------------------------------------
--
--ECHO '
--ECHO Press CTRL-C if you do not want to continue
--PAUSE
--
--
--REM --------------------------------------------------------
--REM Start up the calibre program.
--REM
--REM The use of 'belownormal' priority helps keep the system
--REM responsive while Calibre is running. Within Calibre itself
--REM the backgound processes should be set to run with 'low' priority.
--
--REM Using the START command starts up Calibre in a separate process.
--REM If used without /WAIT option it launches Calibre and contines batch file.
--REM normally this would simply run off the end and close the Command window.
--REM Use with /WAIT to wait until Calibre completes to run a task on exit
--REM --------------------------------------------------------
--
--ECHO "Starting up Calibre"
--ECHO OFF
--ECHO %cd%
--START /belownormal Calibre --with-library "%CALIBRE_LIBRARY_DIRECTORY%"
-diff --git a/resources/calibre-portable.sh a/resources/calibre-portable.sh -deleted file mode 100755 -index beafb10..0000000 ---- a/resources/calibre-portable.sh -+++ /dev/null -@@ -1,395 +0,0 @@ --#!/bin/bash --# Calibre-Portable.sh --# ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ --# --# Shell script File to start a Calibre configuration on Linux --# giving explicit control of the location of: --# - Calibre Program Files --# - Calibre Library Files --# - Calibre Config Files --# - Calibre Metadata database --# - Calibre Source files --# - Calibre Temp Files --# By setting the paths correctly it can be used to run: --# - A "portable calibre" off a USB stick. --# - A network installation with local metadata database --# (for performance) and books stored on a network share --# - A local installation using customised settings --# --# If trying to run off a USB stick then the folder structure --# shown below is recommended (relative to the location of --# this script file). This structure can also be used when --# running of a local hard disk if you want to get the level --# of control this script file provides. --# - Calibre Location of linux program files --# - CalibreConfig Location of Configuration files --# - CalibreLibrary Location of Books and metadata --# - CalibreSource Location of Calibre Source files (Optional) --# --# This script file is designed so that if you create the recommended --# folder structure then it can be used 'as is' without modification. --# To use your own structure, simply set the variables in the generated configuration file. --# --# More information on the Environment Variables used by Calibre can --# be found at: --# https://manual.calibre-ebook.com/customize.html#environment-variables --# --# NOTE: It is quite possible to have both Windows and Linux binaries on the same --# USB stick but set up to use the same calibre settings otherwise. --# In this case you use: --# - calibre-portable.bat to run the Windows version --# - calibre-portable.sh to run the Linux version --# --# CHANGE HISTORY --# ¬¬¬¬¬¬¬¬¬¬¬¬¬¬ --# 22 Jan 2012 itimpi ----- First version based on the calibre-portable.bat file for Windows --# It should have identical functionality but for a linux environment. --# It might work on MacOS but that has not been validated. --# --# 02 Feb 2015 eschwartz -- Fix path issues, allow setting each location in one variable, allow --# specifying a list of libraries in descending order of priority. --# --# 01 Apr 2015 eschwartz -- Fix temp dir and permissions, migrate settings to configuration file. -- --# ----------------------------------------------------- --# On exit, make sure all files are marked world-writable. --# This allows you to use calibre on other computers --# without changing fstab rules and suchlike. --# You can now use an ext3 drive instead of vfat so the --# binaries and script will be executable. --# ----------------------------------------------------- -- --cleanup() { -- # Check if user has disabled cleanup -- if [[ "${CALIBRE_NO_CLEANUP}" = "1" ]]; then -- return -- fi -- -- for i in "${CONFIG_DIR}" "${CALIBRE_LIBRARY_DIRECTORY}" \ -- "${METADATA_DIR}" "${SRC_DIR}" "${BIN_DIR}"; do -- if [[ -d "${i}" ]]; then -- chmod a+rwX "${i}" -- fi -- done -- rm -rf "${CALIBRE_TEMP_DIR}" --} -- --trap cleanup EXIT -- --# ------------------------------------------------ --# Interactive options. --# ------------------------------------------------ -- --usage() --{ -- cat <<- _EOF_ -- Usage: calibre-portable.sh [OPTIONS] -- Run a portable instance of calibre. -- -- OPTIONS -- -u, --upgrade-install upgrade or install the portable calibre binaries -- -h, --help show this usage message then exit --_EOF_ --} -- --do_upgrade() --{ -- wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py \ -- | python -c "import sys; main=lambda x,y:sys.stderr.write('Download failed\n'); \ -- exec(sys.stdin.read()); main('$(pwd)', True)" --} -- --while [[ "${#}" -gt 0 ]]; do -- case "${1}" in -- -h|--help) -- usage -- exit -- ;; -- -u|--upgrade-install) -- do_upgrade -- exit -- ;; -- *) -- echo "calibre-portable.sh: unecognzed option '${1}'" -- echo "Try 'calibre-portable.sh --help' for more information." -- exit 1 -- esac -- shift --done -- --# ------------------------------------------------ --# Create or read configuration file. --# ------------------------------------------------ -- --if [[ -f "$(pwd)/calibre-portable.conf" ]]; then -- source "$(pwd)/calibre-portable.conf" --else -- cat <<- _EOF_ > $(pwd)/calibre-portable.conf -- # Configuration file for calibre-portable. Generated on $(date) -- # Settings in here will override the defaults specified in the portable launcher. -- -- ################################################## -- # Set up calibre config folder. -- # -- # This is where user specific settings are stored. -- ################################################## -- -- # CONFIG_DIR="\$(pwd)/CalibreConfig" -- -- ################################################################ -- # -- Specify the location of your calibre library. -- # -- # -- Either set an explicit path, or if running from a USB stick -- # -- a relative path can be used to avoid needing to know the -- # -- mount point of the USB stick. -- # -- # -- Specify a list of libraries here, by adding new elements to the -- # -- array. The first value of LIBRARY_DIRS that is an existing directory -- # -- will be used as the current calibre library. -- ################################################################ -- -- # LIBRARY_DIRS[0]="/path/to/first/CalibreLibrary" -- # LIBRARY_DIRS[1]="/path/to/second/CalibreLibrary" -- # LIBRARY_DIRS[2]="\$(pwd)/CalibreLibrary" -- -- ################################################################ -- # -- Specify location of metadata database (optional). -- # -- # -- Location where the metadata.db file is located. If not set -- # -- then the same location as the library folder will be assumed. -- # -- This option is typically used to get better performance when the -- # -- library is on a (slow) network drive. Putting the metadata.db -- # -- file locally then makes gives a big performance improvement. -- # -- # -- NOTE. If you use this option, then the ability to switch -- # -- libraries within calibre will be disabled. Therefore -- # -- you do not want to set it if the metadata.db file -- # -- is at the same location as the book files. -- # -- # -- Another point to watch is that plugins can cause problems -- # -- as they often store absolute path information. -- ################################################################ -- -- # METADATA_DIR="\$(pwd)/CalibreMetadata" -- -- ################################################################ -- # -- Specify location of source (optional). -- # -- # -- It is easy to run calibre from source. Just set the environment -- # -- variable to where the source is located. When running from source -- # -- the GUI will have a '*' after the version number that is displayed -- # -- at the bottom of the calibre main screen. -- # -- # -- More information on setting up a development environment can -- # -- be found at: -- # -- https://manual.calibre-ebook.com/develop.html#develop -- ################################################################ -- -- # SRC_DIR="$\(pwd)/CalibreSource/src" -- -- ################################################################ -- # -- Specify location of calibre linux binaries (optional). -- # -- # -- To avoid needing Calibre to be set in the search path, ensure -- # -- that if Calibre Program Files exists, we manually specify the -- # -- location of the binary. -- # -- The following test falls back to using the search path, or you -- # -- can specifically use the search path by leaving the BIN_DIR blank. -- # -- # -- This folder can be populated by copying the /opt/calibre folder -- # -- from an existing installation or by installing direct to here. -- # -- # -- NOTE. Do not try and put both Windows and Linux binaries into -- # -- the same folder as this can cause problems. -- ################################################################ -- -- # BIN_DIR="$\(pwd)/calibre" -- -- ################################################################ -- # -- Location of calibre temporary files (optional). -- # -- # -- calibre creates a lot of temporary files while running -- # -- In theory these are removed when calibre finishes, but -- # -- in practice files can be left behind (particularly if -- # -- a crash occurs). Using this option allows some -- # -- explicit clean-up of these files. -- # -- If not set calibre uses the normal system TEMP location -- ################################################################ -- -- # CALIBRE_TEMP_DIR="/tmp/CALIBRE_TEMP_\$(tr -dc 'A-Za-z0-9'</dev/urandom |fold -w 7 | head -n1)" -- -- ################################################################ -- # -- Set the Interface language (optional). -- # -- # -- Defaults to whatever is stored in Preferences -- ################################################################ -- -- # CALIBRE_OVERRIDE_LANG="EN" -- -- ################################################################## -- # -- Wait until user can check the settings before starting calibre. -- # -- (default=yes) -- # -- # -- Set CALIBRE_NOCONFIRM_START to "1" to disable. -- # -- Set CALIBRE_NOCONFIRM_START to "0" to enable. -- ################################################################## -- -- # CALIBRE_NOCONFIRM_START=0 -- -- ################################################################## -- # -- Cleanup all files when done (default=yes). -- # -- # -- On launcher termination, change all library, configuration, -- # -- source, binary, etc. files to world-writable, and remove the -- # -- temporary folder. -- # -- # -- Technically this is a security risk. This is a portableapp, so -- # -- we don't care. Disable this if *you* do. -- # -- # -- Set CALIBRE_NO_CLEANUP to "1" to disable. -- # -- Set CALIBRE_NO_CLEANUP to "0" to enable. -- ################################################################## -- -- # CALIBRE_NO_CLEANUP=0 -- -- ################################################################## -- # -- Set and export any other environment variables needed. More -- # -- information can be found at: -- # https://manual.calibre-ebook.com/customize.html#environment-variables -- ################################################################## -- -- # some other example variables calibre recognizes: -- # export CALIBRE_NO_NATIVE_FILEDIALOGS= -- # export CALIBRE_NO_NATIVE_MENUBAR= -- # export CALIBRE_IGNORE_SYSTEM_THEME= -- # export http_proxy= -- _EOF_ -- -- echo "Generating default configuration file at $(pwd)/calibre-portable.conf" -- echo "Set any non-default options here." --fi -- --# ------------------------------------------------ --# Set up calibre config folder. --# ------------------------------------------------ -- --: ${CONFIG_DIR:="$(pwd)/CalibreConfig"} -- --if [[ -d "${CONFIG_DIR}" ]]; then -- export CALIBRE_CONFIG_DIRECTORY="${CONFIG_DIR}" -- echo "CONFIG FILES: ${CONFIG_DIR}" --else -- echo -e "\033[0;31mCONFIG FILES: Not found\033[0m" --fi --echo "--------------------------------------------------" -- --# -------------------------------------------------------------- --# Specify the location of your calibre library. --# -------------------------------------------------------------- -- --: ${LIBRARY_DIRS[0]:="/path/to/first/CalibreLibrary"} --: ${LIBRARY_DIRS[1]:="/path/to/second/CalibreLibrary"} --: ${LIBRARY_DIRS[2]:="$(pwd)/CalibreLibrary"} -- --for LIBRARY_DIR in "${LIBRARY_DIRS[@]}"; do -- if [[ -d "${LIBRARY_DIR}" ]]; then -- CALIBRE_LIBRARY_DIRECTORY="${LIBRARY_DIR}" -- echo "LIBRARY FILES: ${CALIBRE_LIBRARY_DIRECTORY}" -- break -- fi --done -- --[[ -z "${CALIBRE_LIBRARY_DIRECTORY}" ]] && echo -e "\033[0;31mLIBRARY FILES: Not found\033[0m" --echo "--------------------------------------------------" -- --# -------------------------------------------------------------- --# Specify location of metadata database (optional). --# -------------------------------------------------------------- -- --: ${METADATA_DIR:="$(pwd)/CalibreMetadata"} -- --if [[ -f "${METADATA_DIR}/metadata.db" && "${CALIBRE_LIBRARY_DIRECTORY}" != "${METADATA_DIR}" ]]; then -- export CALIBRE_OVERRIDE_DATABASE_PATH="${METADATA_DIR}/metadata.db" -- echo "DATABASE: ${METADATA_DIR}/metadata.db" -- echo -- echo -e "\033[0;31m***CAUTION*** Library Switching will be disabled\033[0m" -- echo -- echo "--------------------------------------------------" --fi -- --# -------------------------------------------------------------- --# Specify location of source (optional). --# -------------------------------------------------------------- -- --: ${SRC_DIR:="$(pwd)/CalibreSource/src"} -- --if [[ -d "${SRC_DIR}" ]]; then -- export CALIBRE_DEVELOP_FROM="${SRC_DIR}" -- echo "SOURCE FILES: ${SRC_DIR}" --else -- echo "SOURCE FILES: *** Not being Used ***" --fi --echo "--------------------------------------------------" -- --# -------------------------------------------------------------- --# Specify location of calibre linux binaries (optional). --# -------------------------------------------------------------- -- --: ${BIN_DIR:="$(pwd)/calibre"} -- --if [[ -d "${BIN_DIR}" ]]; then -- CALIBRE="${BIN_DIR}/calibre" -- echo "PROGRAM FILES: ${BIN_DIR}" --elif [[ -z "${BIN_DIR}" ]]; then -- CALIBRE="calibre" -- echo "PROGRAM FILES: Using System search path" --else -- CALIBRE="calibre" -- echo "PROGRAM FILES: No portable copy found." -- echo "To intall a portable copy, run './calibre-portable.sh --upgrade-install'" -- echo -e "\033[0;31m*** Using System search path instead***\033[0m" --fi --echo "--------------------------------------------------" -- --# -------------------------------------------------------------- --# Location of calibre temporary files (optional). --# -------------------------------------------------------------- -- --: ${CALIBRE_TEMP_DIR:="/tmp/CALIBRE_TEMP_$(tr -dc 'A-Za-z0-9'</dev/urandom |fold -w 7 | head -n1)"} -- --if [[ ! -z "${CALIBRE_TEMP_DIR}" ]]; then -- export CALIBRE_TEMP_DIR -- export CALIBRE_CACHE_DIRECTORY="${CALIBRE_TEMP_DIR}/calibre_cache" -- echo "TEMPORARY FILES: ${CALIBRE_TEMP_DIR}" -- echo "--------------------------------------------------" -- rm -rf "${CALIBRE_TEMP_DIR}" -- mkdir "${CALIBRE_TEMP_DIR}" -- mkdir "${CALIBRE_CACHE_DIRECTORY}" --fi -- --# -------------------------------------------------------------- --# Set the Interface language (optional). --# -------------------------------------------------------------- -- --if [[ "${CALIBRE_OVERRIDE_LANG}" != "" ]]; then -- export CALIBRE_OVERRIDE_LANG -- echo "INTERFACE LANGUAGE: ${CALIBRE_OVERRIDE_LANG}" --fi -- --# --------------------------------------------------------------- --# Wait until user can check the settings before starting calibre. --# --------------------------------------------------------------- -- --if [[ "${CALIBRE_NOCONFIRM_START}" != "1" ]]; then -- echo -- echo "Press CTRL-C if you do not want to continue" -- echo "Press ENTER to continue and start Calibre" -- read DUMMY --fi -- --# -------------------------------------------------------- --# Start up the calibre program. --# -------------------------------------------------------- -- --echo "Starting up Calibre from portable directory \"$(pwd)\"" --$CALIBRE --with-library "${CALIBRE_LIBRARY_DIRECTORY}" -diff --git a/resources/images/lt.png b/resources/images/lt.png -index 81adc85..ee24bd6 100644 -Binary files a/resources/images/lt.png and b/resources/images/lt.png differ -diff --git a/resources/images/mimetypes/cbr.png a/resources/images/mimetypes/cbr.png -deleted file mode 100644 -index 34052fa..0000000 -Binary files a/resources/images/mimetypes/cbr.png and /dev/null differ -diff --git a/resources/images/mimetypes/rar.png a/resources/images/mimetypes/rar.png -deleted file mode 100644 -index b320d28..0000000 -Binary files a/resources/images/mimetypes/rar.png and /dev/null differ -diff --git a/resources/mime.types b/resources/mime.types -index b8acaaa..9ea4742 100644 ---- a/resources/mime.types -+++ b/resources/mime.types -@@ -138,7 +138,6 @@ application/prs.cww cww - 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 -@@ -849,7 +848,6 @@ application/x-pkcs7-certreqresp p7r - application/x-pkcs7-crl crl - application/x-python-code pyc pyo - application/x-quicktimeplayer qtl --application/x-rar-compressed rar - application/x-redhat-package-manager rpm - application/x-sh sh - application/x-shar shar -@@ -1372,7 +1370,6 @@ 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 - application/x-cbc cbc - application/x-koboreader-ebook kobo -diff --git a/session.vim b/session.vim -index d5ecb06..b3e40d0 100644 ---- a/session.vim -+++ b/session.vim -@@ -11,7 +11,6 @@ let g:syntastic_cpp_include_dirs = [ - \'/usr/include/freetype2', - \'/usr/include/fontconfig', - \'src/qtcurve/common', 'src/qtcurve', -- \'src/unrar', - \'src/qt-harfbuzz/src', - \'/usr/include/ImageMagick', - \] -diff --git a/setup/resources.py b/setup/resources.py -index 7fb34bd..3e5ef3b 100644 ---- a/setup/resources.py -+++ b/setup/resources.py -@@ -341,7 +341,7 @@ class Resources(Command): # {{{ - log = Log() - # log.outputs = [] - for inf in supported_input_formats(): -- if inf in ('zip', 'rar', 'oebzip'): -+ if inf in ('zip', 'oebzip'): - continue - for ouf in available_output_formats(): - of = ouf if ouf == 'oeb' else 'dummy.'+ouf -diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py -index d96f48f..d0855ec 100644 ---- a/src/calibre/__init__.py -+++ b/src/calibre/__init__.py -@@ -292,10 +292,7 @@ def extract(path, dir): - # First use the file header to identify its type - with open(path, 'rb') as f: - id_ = f.read(3) -- if id_ == b'Rar': -- from calibre.utils.unrar import extract as rarextract -- extractor = rarextract -- elif id_.startswith(b'PK'): -+ if id_.startswith(b'PK'): - from calibre.libunzip import extract as zipextract - extractor = zipextract - if extractor is None: -@@ -304,9 +301,6 @@ def extract(path, dir): - if ext in ['zip', 'cbz', 'epub', 'oebzip']: - from calibre.libunzip import extract as zipextract - extractor = zipextract -- elif ext in ['cbr', 'rar']: -- from calibre.utils.unrar import extract as rarextract -- extractor = rarextract - if extractor is None: - raise Exception('Unknown archive type') - extractor(path, dir) -diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py -index f870de8..0474068 100644 ---- a/src/calibre/customize/builtins.py -+++ b/src/calibre/customize/builtins.py -@@ -132,7 +132,7 @@ plugins += [HTML2ZIP, PML2PMLZ, TXT2TXTZ, ArchiveExtract,] - class ComicMetadataReader(MetadataReaderPlugin): - - name = 'Read comic metadata' -- file_types = set(['cbr', 'cbz']) -+ file_types = set(['cbz']) - description = _('Extract cover from comic files') - - def customization_help(self, gui=False): -@@ -143,19 +143,14 @@ class ComicMetadataReader(MetadataReaderPlugin): - pos = stream.tell() - id_ = stream.read(3) - stream.seek(pos) -- if id_ == b'Rar': -- ftype = 'cbr' -- elif id_.startswith(b'PK'): -+ if id_.startswith(b'PK'): - ftype = 'cbz' -- if ftype == 'cbr': -- from calibre.utils.unrar import extract_cover_image -- else: - from calibre.libunzip import extract_cover_image - from calibre.ebooks.metadata import MetaInformation - ret = extract_cover_image(stream) - mi = MetaInformation(None, None) - stream.seek(0) -- if ftype in {'cbr', 'cbz'}: -+ if ftype in {'cbz'}: - series_index = self.site_customization - if series_index not in {'volume', 'issue'}: - series_index = 'volume' -@@ -354,17 +349,6 @@ class PMLMetadataReader(MetadataReaderPlugin): - return get_metadata(stream) - - --class RARMetadataReader(MetadataReaderPlugin): -- -- name = 'Read RAR metadata' -- file_types = set(['rar']) -- description = _('Read metadata from e-books in RAR archives') -- -- def get_metadata(self, stream, ftype): -- from calibre.ebooks.metadata.rar import get_metadata -- return get_metadata(stream) -- -- - class RBMetadataReader(MetadataReaderPlugin): - - name = 'Read RB metadata' -diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py -index cea6dee..6e3e531 100644 ---- a/src/calibre/customize/ui.py -+++ b/src/calibre/customize/ui.py -@@ -527,7 +527,7 @@ def available_input_formats(): - if not is_disabled(plugin): - for format in plugin.file_types: - formats.add(format) -- formats.add('zip'), formats.add('rar') -+ formats.add('zip') - return formats - - -diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py -index 6b3566a..ca75d58 100644 ---- a/src/calibre/devices/kobo/driver.py -+++ b/src/calibre/devices/kobo/driver.py -@@ -78,7 +78,7 @@ class KOBO(USBMS): - book_class = Book - - # Ordered list of supported formats -- FORMATS = ['kepub', 'epub', 'pdf', 'txt', 'cbz', 'cbr'] -+ FORMATS = ['kepub', 'epub', 'pdf', 'txt', 'cbz'] - CAN_SET_METADATA = ['collections'] - - VENDOR_ID = [0x2237] -diff --git a/src/calibre/devices/misc.py b/src/calibre/devices/misc.py -index d27348a..874c078 100644 ---- a/src/calibre/devices/misc.py -+++ b/src/calibre/devices/misc.py -@@ -448,7 +448,7 @@ class WAYTEQ(USBMS): - EBOOK_DIR_MAIN = 'Documents' - SCAN_FROM_ROOT = True - -- VENDOR_NAME = ['ROCKCHIP', 'CBR'] -+ VENDOR_NAME = ['ROCKCHIP'] - WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['RK28_SDK_DEMO', 'EINK_EBOOK_READE'] - SUPPORTS_SUB_DIRS = True - -diff --git a/src/calibre/devices/mtp/filesystem_cache.py b/src/calibre/devices/mtp/filesystem_cache.py -index ffc5280..79be51e 100644 ---- a/src/calibre/devices/mtp/filesystem_cache.py -+++ b/src/calibre/devices/mtp/filesystem_cache.py -@@ -18,7 +18,7 @@ from calibre.utils.date import local_tz, as_utc - from calibre.utils.icu import sort_key, lower - from calibre.ebooks import BOOK_EXTENSIONS - --bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'rar', 'zip', 'xml'} -+bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'zip', 'xml'} - - - class FileOrFolder(object): -diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py -index 699be34..5604e5d 100644 ---- a/src/calibre/ebooks/__init__.py -+++ b/src/calibre/ebooks/__init__.py -@@ -30,9 +30,9 @@ class ParserError(ValueError): - pass - - --BOOK_EXTENSIONS = ['lrf', 'rar', 'zip', 'rtf', 'lit', 'txt', 'txtz', 'text', 'htm', 'xhtm', -+BOOK_EXTENSIONS = ['lrf', 'zip', 'rtf', 'lit', 'txt', 'txtz', 'text', 'htm', 'xhtm', - 'html', 'htmlz', 'xhtml', 'pdf', 'pdb', 'updb', 'pdr', 'prc', 'mobi', 'azw', 'doc', -- 'epub', 'fb2', 'djv', 'djvu', 'lrx', 'cbr', 'cbz', 'cbc', 'oebzip', -+ 'epub', 'fb2', 'djv', 'djvu', 'lrx', 'cbz', 'cbc', 'oebzip', - 'rb', 'imp', 'odt', 'chm', 'tpz', 'azw1', 'pml', 'pmlz', 'mbp', 'tan', 'snb', - 'xps', 'oxps', 'azw4', 'book', 'zbf', 'pobi', 'docx', 'docm', 'md', - 'textile', 'markdown', 'ibook', 'ibooks', 'iba', 'azw3', 'ps', 'kepub', 'kfx'] -diff --git a/src/calibre/ebooks/comic/__init__.py b/src/calibre/ebooks/comic/__init__.py -index f47e177..1767826 100644 ---- a/src/calibre/ebooks/comic/__init__.py -+++ b/src/calibre/ebooks/comic/__init__.py -@@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' - __docformat__ = 'restructuredtext en' - - ''' --Convert CBR/CBZ files to LRF. -+Convert CBZ files to LRF. - ''' - - import sys -diff --git a/src/calibre/ebooks/conversion/plugins/comic_input.py b/src/calibre/ebooks/conversion/plugins/comic_input.py -index f64acc5..2020bae 100644 ---- a/src/calibre/ebooks/conversion/plugins/comic_input.py -+++ b/src/calibre/ebooks/conversion/plugins/comic_input.py -@@ -18,8 +18,8 @@ class ComicInput(InputFormatPlugin): - - name = 'Comic Input' - author = 'Kovid Goyal' -- description = 'Optimize comic files (.cbz, .cbr, .cbc) for viewing on portable devices' -- file_types = set(['cbz', 'cbr', 'cbc']) -+ description = 'Optimize comic files (.cbz, .cbc) for viewing on portable devices' -+ file_types = set(['cbz', 'cbc']) - is_image_collection = True - core_usage = -1 - -diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py -index 8131e99..060a75f 100644 ---- a/src/calibre/ebooks/conversion/plumber.py -+++ b/src/calibre/ebooks/conversion/plumber.py -@@ -43,7 +43,7 @@ various stages of conversion. The stages are: - - def supported_input_formats(): - fmts = available_input_formats() -- for x in ('zip', 'rar', 'oebzip'): -+ for x in ('zip', 'oebzip'): - fmts.add(x) - return fmts - -@@ -64,7 +64,7 @@ class CompositeProgressReporter(object): - self.global_reporter(global_frac, msg) - - --ARCHIVE_FMTS = ('zip', 'rar', 'oebzip') -+ARCHIVE_FMTS = ('zip', 'oebzip') - - - class Plumber(object): -diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py -index bf85e58..5a1d03b 100644 ---- a/src/calibre/ebooks/metadata/archive.py -+++ b/src/calibre/ebooks/metadata/archive.py -@@ -29,8 +29,6 @@ def archive_type(stream): - ans = None - if id_ == stringFileHeader: - ans = 'zip' -- elif id_.startswith('Rar'): -- ans = 'rar' - try: - stream.seek(pos) - except: -@@ -42,24 +40,16 @@ class ArchiveExtract(FileTypePlugin): - name = 'Archive Extract' - author = 'Kovid Goyal' - description = _('Extract common e-book formats from archive files ' -- '(ZIP/RAR). Also try to autodetect if they are actually ' -- 'CBZ/CBR files.') -- file_types = set(['zip', 'rar']) -+ '(ZIP). Also try to autodetect if they are actually ' -+ 'CBZ files.') -+ file_types = set(['zip']) - supported_platforms = ['windows', 'osx', 'linux'] - on_import = True - - def run(self, archive): - from calibre.utils.zipfile import ZipFile -- is_rar = archive.lower().endswith('.rar') -- if is_rar: -- from calibre.utils.unrar import extract_member, names -- else: -- zf = ZipFile(archive, 'r') -- -- if is_rar: -- fnames = list(names(archive)) -- else: -- fnames = zf.namelist() -+ zf = ZipFile(archive, 'r') -+ fnames = zf.namelist() - - def fname_ok(fname): - bn = os.path.basename(fname).lower() -@@ -75,7 +65,7 @@ class ArchiveExtract(FileTypePlugin): - - fnames = list(filter(fname_ok, fnames)) - if is_comic(fnames): -- ext = '.cbr' if is_rar else '.cbz' -+ ext = '.cbz' - of = self.temporary_file('_archive_extract'+ext) - with open(archive, 'rb') as f: - of.write(f.read()) -@@ -92,11 +82,7 @@ class ArchiveExtract(FileTypePlugin): - - of = self.temporary_file('_archive_extract.'+ext) - with closing(of): -- if is_rar: -- data = extract_member(archive, match=None, name=fname)[1] -- of.write(data) -- else: -- of.write(zf.read(fname)) -+ of.write(zf.read(fname)) - return of.name - - -@@ -159,9 +145,6 @@ def get_comic_metadata(stream, stream_type, series_index='volume'): - from calibre.utils.zipfile import ZipFile - zf = ZipFile(stream) - comment = zf.comment -- elif stream_type == 'cbr': -- from calibre.utils.unrar import comment as get_comment -- comment = get_comment(stream) - - if comment: - import json -diff --git a/src/calibre/ebooks/metadata/rar.py a/src/calibre/ebooks/metadata/rar.py -deleted file mode 100644 -index 1e7d058..0000000 ---- a/src/calibre/ebooks/metadata/rar.py -+++ /dev/null -@@ -1,38 +0,0 @@ --#!/usr/bin/env python2 --__license__ = 'GPL v3' --__copyright__ = '2009, Kovid Goyal kovid@kovidgoyal.net' --__docformat__ = 'restructuredtext en' -- --''' --Read metadata from RAR archives --''' -- --import os --from io import BytesIO -- --from calibre.utils.unrar import extract_member, names -- -- --def get_metadata(stream): -- from calibre.ebooks.metadata.archive import is_comic -- from calibre.ebooks.metadata.meta import get_metadata -- -- file_names = list(names(stream)) -- if is_comic(file_names): -- return get_metadata(stream, 'cbr') -- for f in file_names: -- stream_type = os.path.splitext(f)[1].lower() -- if stream_type: -- stream_type = stream_type[1:] -- if stream_type in {'lit', 'opf', 'prc', 'mobi', 'fb2', 'epub', -- 'rb', 'imp', 'pdf', 'lrf', 'azw', 'azw1', -- 'azw3'}: -- name, data = extract_member(stream, match=None, name=f) -- stream = BytesIO(data) -- stream.name = os.path.basename(name) -- mi = get_metadata(stream, stream_type) -- mi.timestamp = None -- return mi -- raise ValueError('No ebook found in RAR archive') -- -- -diff --git a/src/calibre/ebooks/oeb/iterator/book.py b/src/calibre/ebooks/oeb/iterator/book.py -index 08208c9..ff37b80 100644 ---- a/src/calibre/ebooks/oeb/iterator/book.py -+++ b/src/calibre/ebooks/oeb/iterator/book.py -@@ -152,7 +152,7 @@ class EbookIterator(BookmarksMixin): - self.spine = [] - Spiny = partial(SpineItem, read_anchor_map=read_anchor_map, read_links=read_links, - run_char_count=run_char_count, from_epub=self.book_format == 'EPUB') -- is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cbr', 'cb7'} -+ is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cb7'} - for i in ordered: - spath = i.path - mt = None -diff --git a/src/calibre/ebooks/pdf/from_comic.py b/src/calibre/ebooks/pdf/from_comic.py -index c39b660..26f3627 100644 ---- a/src/calibre/ebooks/pdf/from_comic.py -+++ b/src/calibre/ebooks/pdf/from_comic.py -@@ -3,7 +3,7 @@ __license__ = 'GPL v3' - __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' - __docformat__ = 'restructuredtext en' - --'Convert a comic in CBR/CBZ format to pdf' -+'Convert a comic in CBZ format to pdf' - - import sys - from functools import partial -diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py -index 55ba50a..a5609e6 100644 ---- a/src/calibre/gui2/__init__.py -+++ b/src/calibre/gui2/__init__.py -@@ -177,8 +177,6 @@ def _config(): # {{{ - help=_('Confirm before deleting')) - c.add_opt('main_window_geometry', default=None, - help=_('Main window geometry')) -- c.add_opt('new_version_notification', default=True, -- help=_('Notify when a new version is available')) - c.add_opt('use_roman_numerals_for_series_number', default=True, - help=_('Use Roman numerals for series number')) - c.add_opt('sort_tags_by', default='name', -diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py -index d602f31..4020fcc 100644 ---- a/src/calibre/gui2/actions/add.py -+++ b/src/calibre/gui2/actions/add.py -@@ -36,8 +36,8 @@ def get_filters(): - (_('HTML books'), ['htm', 'html', 'xhtm', 'xhtml']), - (_('LIT books'), ['lit']), - (_('Text books'), ['txt', 'text', 'rtf', 'md', 'markdown', 'textile', 'txtz']), -- (_('Comics'), ['cbz', 'cbr', 'cbc']), -- (_('Archives'), ['zip', 'rar']), -+ (_('Comics'), ['cbz', 'cbc']), -+ (_('Archives'), ['zip']), - (_('Wordprocessor files'), ['odt', 'doc', 'docx']), - ] - -@@ -64,7 +64,7 @@ class AddAction(InterfaceAction): - 'sub-directories (Multiple books per directory, assumes every ' - 'e-book file is a different book)')).triggered.connect( - self.add_recursive_multiple) -- arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP/RAR)')) -+ arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP)')) - self.create_menu_action(arm, 'recursive-single-archive', _( - 'One book per directory in the archive')).triggered.connect(partial(self.add_archive, True)) - self.create_menu_action(arm, 'recursive-multiple-archive', _( -@@ -199,7 +199,7 @@ class AddAction(InterfaceAction): - def add_archive(self, single): - paths = choose_files( - self.gui, 'recursive-archive-add', _('Choose archive file'), -- filters=[(_('Archives'), ('zip', 'rar'))], all_files=False, select_only_single_file=False) -+ filters=[(_('Archives'), ('zip'))], all_files=False, select_only_single_file=False) - if paths: - self.do_add_recursive(paths, single, list_of_archives=True) - -diff --git a/src/calibre/gui2/actions/preferences.py b/src/calibre/gui2/actions/preferences.py -index 4d561c0..b9a9b1f 100644 ---- a/src/calibre/gui2/actions/preferences.py -+++ b/src/calibre/gui2/actions/preferences.py -@@ -29,8 +29,6 @@ class PreferencesAction(InterfaceAction): - pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config) - cm('welcome wizard', _('Run welcome &wizard'), - icon='wizard.png', triggered=self.gui.run_wizard) -- cm('plugin updater', _('Get plugins to enhance calibre'), -- icon='plugins/plugin_updater.png', triggered=self.get_plugins) - if not DEBUG: - pm.addSeparator() - cm('restart', _('Restart in debug mode'), icon='debug.png', -diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py -index 2aee3ce..a125939 100644 ---- a/src/calibre/gui2/add.py -+++ b/src/calibre/gui2/add.py -@@ -162,9 +162,6 @@ class Adder(QObject): - prints('Corrupt ZIP file, trying to use local headers') - from calibre.utils.localunzip import extractall - extractall(source, tdir) -- elif source.lower().endswith('.rar'): -- from calibre.utils.unrar import extract -- extract(source, tdir) - return tdir - - try: -diff --git a/src/calibre/gui2/dialogs/comicconf.py b/src/calibre/gui2/dialogs/comicconf.py -index 0793132..ccdb863 100644 ---- a/src/calibre/gui2/dialogs/comicconf.py -+++ b/src/calibre/gui2/dialogs/comicconf.py -@@ -33,7 +33,7 @@ def get_conversion_options(window, defaults, title, author): - class ComicConf(QDialog, Ui_Dialog): - - def __init__(self, window, config_defaults=None, generic=True, -- title=_('Set defaults for conversion of comics (CBR/CBZ files)')): -+ title=_('Set defaults for conversion of comics (CBZ files)')): - QDialog.__init__(self, window) - Ui_Dialog.__init__(self) - self.setupUi(self) -diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py -index 55b7589..f21f909 100644 ---- a/src/calibre/gui2/library/alternate_views.py -+++ b/src/calibre/gui2/library/alternate_views.py -@@ -19,7 +19,7 @@ from PyQt5.Qt import ( - QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent, - QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView, - QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush, qRed, qGreen, -- qBlue, QItemSelectionModel, QIcon, QFont) -+ qBlue, QItemSelectionModel, QIcon, QFont, QKeyEvent) - - from calibre import fit_image, prints, prepare_string_for_xml, human_readable - from calibre.constants import DEBUG, config_dir, islinux -@@ -42,29 +42,27 @@ class EncodeError(ValueError): - pass - - --def handle_enter_press(self, ev, special_action=None, has_edit_cell=True): -+def handle_enter_press(self, ev, special_action=None): - if ev.key() in (Qt.Key_Enter, Qt.Key_Return): -- mods = ev.modifiers() -- if mods & Qt.CTRL or mods & Qt.ALT or mods & Qt.SHIFT or mods & Qt.META: -- return - if self.state() != self.EditingState and self.hasFocus() and self.currentIndex().isValid(): - from calibre.gui2.ui import get_gui - ev.ignore() - tweak = tweaks['enter_key_behavior'] -+ if tweak != 'down_arrow' and special_action is not None: -+ # Don't animate (or whatever) if emulating the down arrow -+ # Could be that this should check == 'do nothing', but the -+ # animation is nice when opening the viewer. -+ special_action(self.currentIndex()) - gui = get_gui() -- if tweak == 'edit_cell': -- if has_edit_cell: -- self.edit(self.currentIndex(), self.EditKeyPressed, ev) -- else: -- gui.iactions['Edit Metadata'].edit_metadata(False) -+ if tweak == 'viewer': -+ gui.iactions['View'].view_triggered(self.currentIndex()) -+ elif tweak == 'down_arrow': -+ nev = QKeyEvent(QEvent.KeyPress, Qt.Key_Down, ev.modifiers(), ev.text()) -+ self.keyPressEvent(nev) - elif tweak == 'edit_metadata': - gui.iactions['Edit Metadata'].edit_metadata(False) -- elif tweak == 'do_nothing': -+ elif tweak == 'do_nothing': # for completeness - pass -- else: -- if special_action is not None: -- special_action(self.currentIndex()) -- gui.iactions['View'].view_triggered(self.currentIndex()) - return True - - -@@ -1029,7 +1027,7 @@ class GridView(QListView): - return self._ncols - - def keyPressEvent(self, ev): -- if handle_enter_press(self, ev, self.start_view_animation, False): -+ if handle_enter_press(self, ev, self.start_view_animation): - return - k = ev.key() - if ev.modifiers() & Qt.ShiftModifier and k in (Qt.Key_Left, Qt.Key_Right, Qt.Key_Up, Qt.Key_Down): -diff --git a/src/calibre/gui2/preferences/behavior.py b/src/calibre/gui2/preferences/behavior.py -index 6db4cb1..cc9b897 100644 ---- a/src/calibre/gui2/preferences/behavior.py -+++ b/src/calibre/gui2/preferences/behavior.py -@@ -40,7 +40,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): - - r('network_timeout', prefs) - -- r('new_version_notification', config) - r('upload_news_to_device', config) - r('delete_news_from_library_on_upload', config) - -@@ -140,7 +139,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): - input_map = prefs['input_format_order'] - all_formats = set() - self.opt_input_order.clear() -- for fmt in all_input_formats().union(set(['ZIP', 'RAR'])): -+ for fmt in all_input_formats().union(set(['ZIP'])): - all_formats.add(fmt.upper()) - for format in input_map + list(all_formats.difference(input_map)): - item = QListWidgetItem(format, self.opt_input_order) -diff --git a/src/calibre/gui2/preferences/behavior.ui b/src/calibre/gui2/preferences/behavior.ui -index 8100d05..f6b529f 100644 ---- a/src/calibre/gui2/preferences/behavior.ui -+++ b/src/calibre/gui2/preferences/behavior.ui -@@ -16,13 +16,6 @@ - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <layout class="QFormLayout" name="formLayout"> -- <item row="0" column="0" colspan="2"> -- <widget class="QCheckBox" name="opt_new_version_notification"> -- <property name="text"> -- <string>Show notification when &new version is available</string> -- </property> -- </widget> -- </item> - <item row="3" column="0" colspan="2"> - <widget class="QCheckBox" name="opt_upload_news_to_device"> - <property name="text"> -diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui -index baa4a30..5636ef3 100644 ---- a/src/calibre/gui2/preferences/look_feel.ui -+++ b/src/calibre/gui2/preferences/look_feel.ui -@@ -1200,7 +1200,7 @@ column being examined (the left-hand pane)</string> - </property> - </widget> - </item> -- </layout> -+ </layout> - </item> - <item row="3" column="0" rowspan="2"> - <widget class="QGroupBox" name="groupBox"> -diff --git a/src/calibre/gui2/update.py b/src/calibre/gui2/update.py -index 9ea0993..9f59a9d 100644 ---- a/src/calibre/gui2/update.py -+++ b/src/calibre/gui2/update.py -@@ -1,20 +1,18 @@ - __license__ = 'GPL v3' - __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>' - --import re, binascii, cPickle, ssl, json -+import binascii, cPickle - from future_builtins import map - from threading import Thread, Event - - from PyQt5.Qt import (QObject, pyqtSignal, Qt, QUrl, QDialog, QGridLayout, -- QLabel, QCheckBox, QDialogButtonBox, QIcon) -+ QLabel, QCheckBox, QIcon) - --from calibre.constants import (__appname__, __version__, iswindows, isosx, -+from calibre.constants import (__appname__, iswindows, isosx, - isportable, is64bit, numeric_version) - from calibre import prints, as_unicode --from calibre.utils.config import prefs - from calibre.utils.localization import localize_website_link --from calibre.utils.https import get_https_resource_securely --from calibre.gui2 import config, dynamic, open_url -+from calibre.gui2 import dynamic, open_url - from calibre.gui2.dialogs.plugin_updater import get_plugin_updates_available - - URL = 'https://code.calibre-ebook.com/latest' -@@ -31,35 +29,7 @@ def get_download_url(): - - - def get_newest_version(): -- try: -- icon_theme_name = json.loads(I('icon-theme.json', data=True))['name'] -- except Exception: -- icon_theme_name = '' -- headers={ -- 'CALIBRE-VERSION':__version__, -- 'CALIBRE-OS': ('win' if iswindows else 'osx' if isosx else 'oth'), -- 'CALIBRE-INSTALL-UUID': prefs['installation_uuid'], -- 'CALIBRE-ICON-THEME': icon_theme_name, -- } -- try: -- version = get_https_resource_securely(URL, headers=headers) -- except ssl.SSLError as err: -- if getattr(err, 'reason', None) != 'CERTIFICATE_VERIFY_FAILED': -- raise -- # certificate verification failed, since the version check contains no -- # critical information, ignore and proceed -- # We have to do this as if the calibre CA certificate ever -- # needs to be revoked, then we wont be able to do version checks -- version = get_https_resource_securely(URL, headers=headers, cacerts=None) -- try: -- version = version.decode('utf-8').strip() -- except UnicodeDecodeError: -- version = u'' -- ans = NO_CALIBRE_UPDATE -- m = re.match(ur'(\d+)\.(\d+).(\d+)$', version) -- if m is not None: -- ans = tuple(map(int, (m.group(1), m.group(2), m.group(3)))) -- return ans -+ return NO_CALIBRE_UPDATE - - - class Signal(QObject): -@@ -82,12 +52,6 @@ class CheckForUpdates(Thread): - calibre_update_version = NO_CALIBRE_UPDATE - plugins_update_found = 0 - try: -- version = get_newest_version() -- if version[:2] > numeric_version[:2]: -- calibre_update_version = version -- except Exception as e: -- prints('Failed to check for calibre update:', as_unicode(e)) -- try: - update_plugins = get_plugin_updates_available(raise_error=True) - if update_plugins is not None: - plugins_update_found = len(update_plugins) -@@ -126,11 +90,6 @@ class UpdateNotification(QDialog): - self.setWindowIcon(QIcon(I('lt.png'))) - self.l.addWidget(self.logo, 0, 0) - self.l.addWidget(self.label, 0, 1) -- self.cb = QCheckBox( -- _('Show this notification for future updates'), self) -- self.l.addWidget(self.cb, 1, 0, 1, -1) -- self.cb.setChecked(config.get('new_version_notification')) -- self.cb.stateChanged.connect(self.show_future) - self.bb = QDialogButtonBox(self) - b = self.bb.addButton(_('&Get update'), self.bb.AcceptRole) - b.setDefault(True) -@@ -152,9 +111,6 @@ class UpdateNotification(QDialog): - initial_filter=FILTER_UPDATE_AVAILABLE) - d.exec_() - -- def show_future(self, *args): -- config.set('new_version_notification', bool(self.cb.isChecked())) -- - def accept(self): - open_url(QUrl(get_download_url())) - -@@ -202,8 +158,7 @@ class UpdateMixin(object): - self.status_bar.update_label.setVisible(True) - - if has_calibre_update: -- if (force or (config.get('new_version_notification') and -- dynamic.get('update to version %s'%calibre_version, True))): -+ if force: - if not no_show_popup: - self._update_notification__ = UpdateNotification(calibre_version, - number_of_plugin_updates, parent=self) -diff --git a/src/calibre/linux.py b/src/calibre/linux.py -index 17b55cb..f9b06ea 100644 ---- a/src/calibre/linux.py -+++ b/src/calibre/linux.py -@@ -317,7 +317,7 @@ class ZshCompleter(object): # {{{ - ): - for fmt in fmts: - is_input = group_title == input_group -- if is_input and fmt in {'rar', 'zip', 'oebzip'}: -+ if is_input and fmt in {'zip', 'oebzip'}: - continue - p = (get_parser(input_fmt=fmt) if is_input - else get_parser(output_fmt=fmt)) -diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py -index 897e6b5..2af959d 100644 ---- a/src/calibre/test_build.py -+++ b/src/calibre/test_build.py -@@ -205,10 +205,6 @@ class BuildTest(unittest.TestCase): - from calibre.gui2.win_file_dialogs import test - test() - -- def test_unrar(self): -- from calibre.utils.unrar import test_basic -- test_basic() -- - @unittest.skipUnless(iswindows, 'WPD is windows only') - def test_wpd(self): - wpd = plugins['wpd'][0] -diff --git a/src/calibre/utils/search_query_parser.py b/src/calibre/utils/search_query_parser.py -index 9fac662..f9d1535 100644 ---- a/src/calibre/utils/search_query_parser.py -+++ b/src/calibre/utils/search_query_parser.py -@@ -456,16 +456,16 @@ class Tester(SearchQueryParser): - u'Tor Books', - u'lrf'], - 8: [u'Stalky and Co.', u'Rudyard Kipling', u'manybooks.net', u'lrf'], -- 9: [u'A Game of Thrones', u'George R. R. Martin', None, u'lrf,rar'], -- 10: [u'A Clash of Kings', u'George R. R. Martin', None, u'lrf,rar'], -- 11: [u'A Storm of Swords', u'George R. R. Martin', None, u'lrf,rar'], -+ 9: [u'A Game of Thrones', u'George R. R. Martin', None, u'lrf'], -+ 10: [u'A Clash of Kings', u'George R. R. Martin', None, u'lrf'], -+ 11: [u'A Storm of Swords', u'George R. R. Martin', None, u'lrf'], - 12: [u'Biggles - Pioneer Air Fighter', u'W. E. Johns', None, u'lrf,rtf'], - 13: [u'Biggles of the Camel Squadron', - u'W. E. Johns', - u'London:Thames, (1977)', - u'lrf,rtf'], -- 14: [u'A Feast for Crows', u'George R. R. Martin', None, u'lrf,rar'], -- 15: [u'Cryptonomicon', u'Neal Stephenson', None, u'lrf,rar'], -+ 14: [u'A Feast for Crows', u'George R. R. Martin', None, u'lrf'], -+ 15: [u'Cryptonomicon', u'Neal Stephenson', None, u'lrf'], - 16: [u'Quicksilver', u'Neal Stephenson', None, u'lrf,zip'], - 17: [u'The Comedies of William Shakespeare', - u'William Shakespeare', -@@ -480,15 +480,15 @@ class Tester(SearchQueryParser): - None, - u'lrf'], - 20: [u'An Ideal Husband', u'Oscar Wilde', u'manybooks.net', u'lrf'], -- 21: [u'Flight of the Nighthawks', u'Raymond E. Feist', None, u'lrf,rar'], -- 22: [u'Into a Dark Realm', u'Raymond E. Feist', None, u'lrf,rar'], -- 23: [u'The Sundering', u'Walter Jon Williams', None, u'lrf,rar'], -- 24: [u'The Praxis', u'Walter Jon Williams', None, u'lrf,rar'], -- 25: [u'Conventions of War', u'Walter Jon Williams', None, u'lrf,rar'], -- 26: [u'Banewreaker', u'Jacqueline Carey', None, u'lrf,rar'], -- 27: [u'Godslayer', u'Jacqueline Carey', None, u'lrf,rar'], -- 28: [u"Kushiel's Scion", u'Jacqueline Carey', None, u'lrf,rar'], -- 29: [u'Underworld', u'Don DeLillo', None, u'lrf,rar'], -+ 21: [u'Flight of the Nighthawks', u'Raymond E. Feist', None, u'lrf'], -+ 22: [u'Into a Dark Realm', u'Raymond E. Feist', None, u'lrf'], -+ 23: [u'The Sundering', u'Walter Jon Williams', None, u'lrf'], -+ 24: [u'The Praxis', u'Walter Jon Williams', None, u'lrf'], -+ 25: [u'Conventions of War', u'Walter Jon Williams', None, u'lrf'], -+ 26: [u'Banewreaker', u'Jacqueline Carey', None, u'lrf'], -+ 27: [u'Godslayer', u'Jacqueline Carey', None, u'lrf'], -+ 28: [u"Kushiel's Scion", u'Jacqueline Carey', None, u'lrf'], -+ 29: [u'Underworld', u'Don DeLillo', None, u'lrf'], - 30: [u'Genghis Khan and The Making of the Modern World', - u'Jack Weatherford Orc', - u'Three Rivers Press', -@@ -499,9 +499,9 @@ class Tester(SearchQueryParser): - u'lrf,zip'], - 32: [u'The Killer Angels', u'Michael Shaara', None, u'html,lrf'], - 33: [u'Band Of Brothers', u'Stephen E Ambrose', None, u'lrf,txt'], -- 34: [u'The Gates of Rome', u'Conn Iggulden', None, u'lrf,rar'], -+ 34: [u'The Gates of Rome', u'Conn Iggulden', None, u'lrf'], - 35: [u'The Death of Kings', u'Conn Iggulden', u'Bantam Dell', u'lit,lrf'], -- 36: [u'The Field of Swords', u'Conn Iggulden', None, u'lrf,rar'], -+ 36: [u'The Field of Swords', u'Conn Iggulden', None, u'lrf'], - 37: [u'Masterman Ready', u'Marryat, Captain Frederick', None, u'lrf'], - 38: [u'With the Lightnings', - u'David Drake', -@@ -514,16 +514,16 @@ class Tester(SearchQueryParser): - 40: [u'The Far Side of The Stars', - u'David Drake', - u'Baen Publishing Enterprises', -- u'lrf,rar'], -+ u'lrf'], - 41: [u'The Way to Glory', - u'David Drake', - u'Baen Publishing Enterprises', -- u'lrf,rar'], -- 42: [u'Some Golden Harbor', u'David Drake', u'Baen Books', u'lrf,rar'], -+ u'lrf'], -+ 42: [u'Some Golden Harbor', u'David Drake', u'Baen Books', u'lrf'], - 43: [u'Harry Potter And The Half-Blood Prince', - u'J. K. Rowling', - None, -- u'lrf,rar'], -+ u'lrf'], - 44: [u'Harry Potter and the Order of the Phoenix', - u'J. K. Rowling', - None, -@@ -532,12 +532,12 @@ class Tester(SearchQueryParser): - 46: [u'The Stars at War II', - u'Steve White', - u'Baen Publishing Enterprises', -- u'lrf,rar'], -- 47: [u'Exodus', u'Steve White,Shirley Meier', u'Baen Books', u'lrf,rar'], -+ u'lrf'], -+ 47: [u'Exodus', u'Steve White,Shirley Meier', u'Baen Books', u'lrf'], - 48: [u'Harry Potter and the Goblet of Fire', - u'J. K. Rowling', - None, -- u'lrf,rar'], -+ u'lrf'], - 49: [u'Harry Potter and the Prisoner of Azkaban', - u'J. K. Rowling', - None, -@@ -550,20 +550,20 @@ class Tester(SearchQueryParser): - u'J.K. Rowling', - None, - u'lit,lrf,pdf'], -- 52: [u"His Majesty's Dragon", u'Naomi Novik', None, u'lrf,rar'], -+ 52: [u"His Majesty's Dragon", u'Naomi Novik', None, u'lrf'], - 53: [u'Throne of Jade', u'Naomi Novik', u'Del Rey', u'lit,lrf'], -- 54: [u'Black Powder War', u'Naomi Novik', u'Del Rey', u'lrf,rar'], -+ 54: [u'Black Powder War', u'Naomi Novik', u'Del Rey', u'lrf'], - 55: [u'War and Peace', u'Leo Tolstoy', u'gutenberg.org', u'lrf,txt'], - 56: [u'Anna Karenina', u'Leo Tolstoy', u'gutenberg.org', u'lrf,txt'], - 57: [u'A Shorter History of Rome', - u'Eugene Lawrence,Sir William Smith', - u'gutenberg.org', - u'lrf,zip'], -- 58: [u'The Name of the Rose', u'Umberto Eco', None, u'lrf,rar'], -+ 58: [u'The Name of the Rose', u'Umberto Eco', None, u'lrf'], - 71: [u"Wind Rider's Oath", u'David Weber', u'Baen', u'lrf'], - 74: [u'Rally Cry', u'William R Forstchen', None, u'htm,lrf'], -- 86: [u'Empire of Ivory', u'Naomi Novik', None, u'lrf,rar'], -- 87: [u"Renegade's Magic", u'Robin Hobb', None, u'lrf,rar'], -+ 86: [u'Empire of Ivory', u'Naomi Novik', None, u'lrf'], -+ 87: [u"Renegade's Magic", u'Robin Hobb', None, u'lrf'], - 89: [u'Master and commander', - u"Patrick O'Brian", - u'Fontana,\n1971', -@@ -571,7 +571,7 @@ class Tester(SearchQueryParser): - 91: [u'A Companion to Wolves', - u'Sarah Monette,Elizabeth Beär', - None, -- u'lrf,rar'], -+ u'lrf'], - 92: [u'The Lions of al-Rassan', u'Guy Gavriel Kay', u'Eos', u'lit,lrf'], - 93: [u'Gardens of the Moon', u'Steven Erikson', u'Tor Fantasy', u'lit,lrf'], - 95: [u'The Master and Margarita', -@@ -595,7 +595,7 @@ class Tester(SearchQueryParser): - 144: [u'Atonement', - u'Ian McEwan', - u'New York : Nan A. Talese/Doubleday, 2002.', -- u'lrf,rar'], -+ u'lrf'], - 146: [u'1632', u'Eric Flint', u'Baen Books', u'lit,lrf'], - 147: [u'1633', u'David Weber,Eric Flint,Dru Blair', u'Baen', u'lit,lrf'], - 148: [u'1634: The Baltic War', -@@ -648,7 +648,7 @@ class Tester(SearchQueryParser): - 253: [u"Hunter's Run", - u'George R. R. Martin,Gardner Dozois,Daniel Abraham', - u'Eos', -- u'lrf,rar'], -+ u'lrf'], - 257: [u'Knife of Dreams', u'Robert Jordan', None, u'lit,lrf'], - 258: [u'Saturday', - u'Ian McEwan', -@@ -668,7 +668,7 @@ class Tester(SearchQueryParser): - u'New York : Random House, 2005.', - u'lit,lrf'], - 269: [u'Reap the Whirlwind', u'David Mack', u'Star Trek', u'lit,lrf'], -- 272: [u'Mistborn', u'Brandon Sanderson', u'Tor Fantasy', u'lrf,rar'], -+ 272: [u'Mistborn', u'Brandon Sanderson', u'Tor Fantasy', u'lrf'], - 273: [u'The Thousandfold Thought', - u'R. Scott Bakker', - u'Overlook TP', -@@ -676,17 +676,17 @@ class Tester(SearchQueryParser): - 276: [u'Elantris', - u'Brandon Sanderson', - u'New York : Tor, 2005.', -- u'lrf,rar'], -+ u'lrf'], - 291: [u'Sundiver', - u'David Brin', - u'New York : Bantam Books, 1995.', - u'lit,lrf'], -- 299: [u'Imperium', u'Robert Harris', u'Arrow', u'lrf,rar'], -+ 299: [u'Imperium', u'Robert Harris', u'Arrow', u'lrf'], - 300: [u'Startide Rising', u'David Brin', u'Bantam', u'htm,lrf'], - 301: [u'The Uplift War', u'David Brin', u'Spectra', u'lit,lrf'], -- 304: [u'Brightness Reef', u'David Brin', u'Orbit', u'lrf,rar'], -+ 304: [u'Brightness Reef', u'David Brin', u'Orbit', u'lrf'], - 305: [u"Infinity's Shore", u'David Brin', u'Spectra', u'txt'], -- 306: [u"Heaven's Reach", u'David Brin', u'Spectra', u'lrf,rar'], -+ 306: [u"Heaven's Reach", u'David Brin', u'Spectra', u'lrf'], - 325: [u"Foundation's Triumph", u'David Brin', u'Easton Press', u'lit,lrf'], - 327: [u'I am Charlotte Simmons', u'Tom Wolfe', u'Vintage', u'htm,lrf'], - 335: [u'The Currents of Space', u'Isaac Asimov', None, u'lit,lrf'], -@@ -716,15 +716,15 @@ class Tester(SearchQueryParser): - u'Aspect', - u'lit,lrf'], - 356: [u'The Naked God', u'Peter F. Hamilton', u'Aspect', u'lit,lrf'], -- 421: [u'A Shadow in Summer', u'Daniel Abraham', u'Tor Fantasy', u'lrf,rar'], -+ 421: [u'A Shadow in Summer', u'Daniel Abraham', u'Tor Fantasy', u'lrf'], - 427: [u'Lonesome Dove', u'Larry M\\cMurtry', None, u'lit,lrf'], - 440: [u'Ghost', u'John Ringo', u'Baen', u'lit,lrf'], - 441: [u'Kildar', u'John Ringo', u'Baen', u'lit,lrf'], -- 443: [u'Hidden Empire ', u'Kevin J. Anderson', u'Aspect', u'lrf,rar'], -+ 443: [u'Hidden Empire ', u'Kevin J. Anderson', u'Aspect', u'lrf'], - 444: [u'The Gun Seller', - u'Hugh Laurie', - u'Washington Square Press', -- u'lrf,rar'] -+ u'lrf'] - } - - tests = { -diff --git a/src/calibre/utils/unrar.py a/src/calibre/utils/unrar.py -deleted file mode 100644 -index 2fd0af3..0000000 ---- a/src/calibre/utils/unrar.py -+++ /dev/null -@@ -1,158 +0,0 @@ --#!/usr/bin/env python2 --# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:fdm=marker:ai --from __future__ import (unicode_literals, division, absolute_import, print_function) -- --__license__ = 'GPL v3' --__copyright__ = '2012, Kovid Goyal <kovid at kovidgoyal.net>' --__docformat__ = 'restructuredtext en' -- --import os --import shutil --import re --from io import BytesIO -- --from calibre.constants import filesystem_encoding, iswindows --from calibre.ptempfile import PersistentTemporaryFile, TemporaryDirectory -- -- --def as_unicode(x): -- if isinstance(x, bytes): -- x = x.decode(filesystem_encoding) -- return x -- -- --class StreamAsPath(object): -- -- def __init__(self, stream): -- self.stream = stream -- -- def __enter__(self): -- self.temppath = None -- if isinstance(self.stream, basestring): -- return as_unicode(self.stream) -- name = getattr(self.stream, 'name', None) -- if name and os.access(name, os.R_OK): -- return as_unicode(name) -- pos = self.stream.tell() -- with PersistentTemporaryFile('for-unar', 'wb') as f: -- shutil.copyfileobj(self.stream, f) -- self.stream.seek(pos) -- self.temppath = f.name -- return as_unicode(f.name) -- -- def __exit__(self, *a): -- if self.temppath is not None: -- try: -- os.remove(self.temppath) -- except EnvironmentError: -- pass -- self.temppath = None -- -- --def extract(path_or_stream, location): -- from unrardll import extract -- with StreamAsPath(path_or_stream) as path: -- return extract(path, location) -- -- --def names(path_or_stream): -- from unrardll import names -- with StreamAsPath(path_or_stream) as path: -- for name in names(path, only_useful=True): -- yield name -- -- --def comment(path_or_stream): -- from unrardll import comment -- with StreamAsPath(path_or_stream) as path: -- return comment(path) -- -- --def extract_member( -- path_or_stream, match=re.compile(r'\.(jpg|jpeg|gif|png)\s*$', re.I), name=None): -- from unrardll import extract_member -- if iswindows and name is not None: -- name = name.replace(os.sep, '/') -- -- def is_match(header): -- fname = header['filename'] -- if iswindows: -- fname = fname.replace(os.sep, '/') -- return (name is not None and fname == name) or \ -- (match is not None and match.search(fname) is not None) -- -- with StreamAsPath(path_or_stream) as path: -- name, data = extract_member(path, is_match) -- if name is not None: -- return name, data -- -- --def extract_first_alphabetically(stream): -- from calibre.libunzip import sort_key -- names_ = sorted([ -- x for x in names(stream) -- if os.path.splitext(x)[1][1:].lower() in { -- 'png', 'jpg', 'jpeg', 'gif', 'webp'}], -- key=sort_key) -- return extract_member(stream, name=names_[0], match=None) -- -- --def extract_cover_image(stream): -- from calibre.libunzip import sort_key, name_ok -- for name in sorted(names(stream), key=sort_key): -- if name_ok(name): -- return extract_member(stream, name=name, match=None) -- -- --# Test normal RAR file {{{ -- -- --def test_basic(): -- -- stream = BytesIO( # {{{ -- b"Rar!\x1a\x07\x00\xcf\x90s\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x14\xe7z\x00\x80#\x00\x17\x00\x00\x00\r\x00\x00\x00\x03\xc2\xb3\x96o\x00\x00\x00\x00\x1d3\x03\x00\x00\x00\x00\x00CMT\x0c\x00\x8b\xec\x8e\xef\x14\xf6\xe6h\x04\x17\xff\xcd\x0f\xffk9b\x11]^\x80\xd3dt \x90+\x00\x14\x00\x00\x00\x08\x00\x00\x00\x03\xf1\x84\x93\\\xb9]yA\x1d3\t\x00\xa4\x81\x00\x001\\sub-one\x00\xc0\x0c\x00\x8f\xec\x89\xfe.JM\x86\x82\x0c_\xfd\xfd\xd7\x11\x1a\xef@\x9eHt \x80'\x00\x0e\x00\x00\x00\x04\x00\x00\x00\x03\x9f\xa8\x17\xf8\xaf]yA\x1d3\x07\x00\xa4\x81\x00\x00one.txt\x00\x08\xbf\x08\xae\xf3\xca\x87\xfeo\xfe\xd2n\x80-Ht \x82:\x00\x18\x00\x00\x00\x10\x00\x00\x00\x03\xa86\x81\xdf\xf9fyA\x1d3\x1a\x00\xa4\x81\x00\x00\xe8\xaf\xb6\xe6\xaf\x94\xe5\xb1\x81.txt\x00\x8bh\xf6\xd4kA\\.\x00txt\x0c\x00\x8b\xec\x8e\xef\x14\xf6\xe2l\x91\x189\xff\xdf\xfe\xc2\xd3:g\x9a\x19F=cYt \x928\x00\x11\x00\x00\x00\x08\x00\x00\x00\x03\x7f\xd6\xb6\x7f\xeafyA\x1d3\x16\x00\xa4\x81\x00\x00F\xc3\xbc\xc3\x9fe.txt\x00\x01\x00F\xfc\xdfe\x00.txt\x00\xc0<D\xfe\xc8\xef\xbc\xd1\x04I?\xfd\xff\xdbF)]\xe8\xb9\xe1t \x90/\x00\x13\x00\x00\x00\x08\x00\x00\x00\x03\x1a$\x932\xc2]yA\x1d3\r\x00\xa4\x81\x00\x002\\sub-two.txt\x00\xc0\x10\x00S\xec\xcb\x7f\x8b\xa5(\x0b\x01\xcb\xef\xdf\xf6t\x89\x97z\x0eft \x90)\x00\r\x00\x00\x00\r\x00\x00\x00\x03c\x89K\xd3\xc8fyA\x140\x07\x00\xff\xa1\x00\x00symlink\x00\xc02/sub-two.txt\xeb\x86t\xe0\x90#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\xb9]yA\x140\x01\x00\xedA\x00\x001\x00\xc0\xe0Dt\xe0\x90#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\xc2]yA\x140\x01\x00\xedA\x00\x002\x00\xc0u\xa1t \x80,\x00\r\x00\x00\x00\r\x00\x00\x00\x03T\xea\x04\xca\xe6\x84yA\x140\x0c\x00\xa4\x81\x00\x00uncompresseduncompressed\n\xda\x10t \x900\x00\x0e\x00\x00\x00\x04\x00\x00\x00\x035K.\xa6\x18\x85yA\x1d5\x0e\x00\xa4\x81\x00\x00max-compressed\x00\xc0\x00\x08\xbf\x08\xae\xf2\xcc\x01s\xf8\xff\xec\x96\xe8\xc4={\x00@\x07\x00") # noqa }}} -- -- tdata = { -- u'1': b'', -- u'1/sub-one': b'sub-one\n', -- u'2': b'', -- u'2/sub-two.txt': b'sub-two\n', -- u'F\xfc\xdfe.txt': b'unicode\n', -- u'max-compressed': b'max\n', -- u'one.txt': b'one\n', -- u'symlink': b'2/sub-two.txt', -- u'uncompressed': b'uncompressed\n', -- u'\u8bf6\u6bd4\u5c41.txt': b'chinese unicode\n'} -- -- def do_test(stream): -- c = comment(stream) -- if c != b'some comment\n': -- raise ValueError('Comment not read: %r != %r' % (c, b'some comment\n')) -- if set(names(stream)) != { -- '1/sub-one', 'one.txt', '2/sub-two.txt', '诶比屁.txt', 'Füße.txt', -- 'uncompressed', 'max-compressed'}: -- raise ValueError('Name list does not match') -- with TemporaryDirectory('test-unrar') as tdir: -- extract(stream, tdir) -- for name in tdata: -- if name not in '1 2 symlink'.split(): -- with open(os.path.join(tdir, name), 'rb') as s: -- if s.read() != tdata[name]: -- raise ValueError('Did not extract %s properly' % name) -- for name in tdata: -- if name not in '1 2 symlink'.split(): -- d = extract_member(stream, name=name) -- if d is None or d[1] != tdata[name]: -- raise ValueError( -- 'Failed to extract %s %r != %r' % (name, d, tdata[name])) -- -- do_test(stream) -- with PersistentTemporaryFile('test-unrar') as f: -- shutil.copyfileobj(stream, f) -- with open(f.name, 'rb') as stream: -- do_test(stream) -- os.remove(f.name) -- -- --if __name__ == '__main__': -- test_basic() -diff --git a/src/calibre/web/feeds/feedparser.py b/src/calibre/web/feeds/feedparser.py -index 16085cf..420efaa 100755 ---- a/src/calibre/web/feeds/feedparser.py -+++ b/src/calibre/web/feeds/feedparser.py -@@ -2081,7 +2081,7 @@ class _MicroformatsParser: - EMAIL = 5 - - known_xfn_relationships = set(['contact', 'acquaintance', 'friend', 'met', 'co-worker', 'coworker', 'colleague', 'co-resident', 'coresident', 'neighbor', 'child', 'parent', 'sibling', 'brother', 'sister', 'spouse', 'wife', 'husband', 'kin', 'relative', 'muse', 'crush', 'date', 'sweetheart', 'me']) -- known_binary_extensions = set(['zip','rar','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','rar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv']) -+ known_binary_extensions = set(['zip','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv']) - - def __init__(self, data, baseuri, encoding): - self.document = BeautifulSoup.BeautifulSoup(data) |