chart2/qa/extras/chart2import.cxx | 35 +++++++ chart2/qa/extras/data/xlsx/tdf140489.xlsx |binary icon-themes/colibre/cmd/32/ar/defaultbullet.png |binary icon-themes/colibre/cmd/32/ar/outlinebullet.png |binary icon-themes/colibre/cmd/32/ar/removebullets.png |binary icon-themes/colibre/cmd/32/ar/setoutline.png |binary icon-themes/colibre/cmd/32/defaultbullet.png |binary icon-themes/colibre/cmd/32/outlinebullet.png |binary icon-themes/colibre/cmd/32/removebullets.png |binary icon-themes/colibre/cmd/32/setoutline.png |binary icon-themes/colibre/cmd/ar/lc_removebullets.png |binary icon-themes/colibre/cmd/ar/sc_bulletsandnumberingdialog.png |binary icon-themes/colibre/cmd/ar/sc_chapternumberingdialog.png |binary icon-themes/colibre/cmd/ar/sc_defaultnumbering.png |binary icon-themes/colibre/cmd/ar/sc_linenumberingdialog.png |binary icon-themes/colibre/cmd/ar/sc_removebullets.png |binary icon-themes/colibre/cmd/ar/sc_setoutline.png |binary icon-themes/colibre/cmd/lc_removebullets.png |binary icon-themes/colibre/cmd/sc_bulletsandnumberingdialog.png |binary icon-themes/colibre/cmd/sc_chapternumberingdialog.png |binary icon-themes/colibre/cmd/sc_defaultnumbering.png |binary icon-themes/colibre/cmd/sc_linenumberingdialog.png |binary icon-themes/colibre/cmd/sc_removebullets.png |binary icon-themes/colibre/cmd/sc_setoutline.png |binary icon-themes/colibre/svx/res/marker-anchor.png |binary icon-themes/colibre/svx/res/markers.png |binary icon-themes/colibre_svg/cmd/32/ar/defaultbullet.svg | 2 icon-themes/colibre_svg/cmd/32/ar/outlinebullet.svg | 2 icon-themes/colibre_svg/cmd/32/ar/removebullets.svg | 2 icon-themes/colibre_svg/cmd/32/ar/setoutline.svg | 2 icon-themes/colibre_svg/cmd/32/defaultbullet.svg | 2 icon-themes/colibre_svg/cmd/32/outlinebullet.svg | 2 icon-themes/colibre_svg/cmd/32/removebullets.svg | 2 icon-themes/colibre_svg/cmd/32/setoutline.svg | 2 icon-themes/colibre_svg/cmd/ar/lc_removebullets.svg | 2 icon-themes/colibre_svg/cmd/ar/sc_bulletsandnumberingdialog.svg | 2 icon-themes/colibre_svg/cmd/ar/sc_chapternumberingdialog.svg | 2 icon-themes/colibre_svg/cmd/ar/sc_defaultnumbering.svg | 2 icon-themes/colibre_svg/cmd/ar/sc_linenumberingdialog.svg | 2 icon-themes/colibre_svg/cmd/ar/sc_removebullets.svg | 2 icon-themes/colibre_svg/cmd/ar/sc_setoutline.svg | 2 icon-themes/colibre_svg/cmd/lc_removebullets.svg | 2 icon-themes/colibre_svg/cmd/sc_bulletsandnumberingdialog.svg | 2 icon-themes/colibre_svg/cmd/sc_chapternumberingdialog.svg | 2 icon-themes/colibre_svg/cmd/sc_defaultnumbering.svg | 2 icon-themes/colibre_svg/cmd/sc_linenumberingdialog.svg | 2 icon-themes/colibre_svg/cmd/sc_removebullets.svg | 2 icon-themes/colibre_svg/cmd/sc_setoutline.svg | 2 icon-themes/colibre_svg/svx/res/marker-anchor.svg | 2 icon-themes/colibre_svg/svx/res/markers.svg | 2 icon-themes/sukapura/svx/res/markers.png |binary icon-themes/sukapura_svg/svx/res/markers.svg | 2 oox/source/drawingml/chart/plotareaconverter.cxx | 8 + sc/qa/extras/macros-test.cxx | 48 ++++++++++ sc/qa/extras/testdocuments/tdf138646.ods |binary sc/source/core/tool/rangeutl.cxx | 4 sc/source/ui/app/inputwin.cxx | 4 sd/xml/effects.xml | 16 +-- sfx2/source/control/unoctitm.cxx | 6 + sw/inc/dcontact.hxx | 4 sw/source/core/draw/dcontact.cxx | 42 +++++++- sw/source/core/layout/frmtool.cxx | 2 vcl/qt5/Qt5Clipboard.cxx | 9 + vcl/qt5/Qt5Frame.cxx | 8 - vcl/source/bitmap/BitmapSepiaFilter.cxx | 2 vcl/source/bitmap/BitmapSmoothenFilter.cxx | 2 vcl/source/bitmap/BitmapSolarizeFilter.cxx | 2 vcl/source/gdi/print2.cxx | 12 ++ 68 files changed, 199 insertions(+), 55 deletions(-)
New commits: commit 02269dc9cdb8b24108d4309ac221c62cac53a5c3 Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Tue Apr 13 17:14:57 2021 +0300 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:52:53 2021 +0200 Early return from ScInputWindow::setPosSizePixel() if no-op This seems to fix https://github.com/CollaboraOnline/online/issues/1988 Change-Id: I5fd826647ce85b7ad2d93085fb0c2fa9db69e745 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114056 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Michael Meeks <michael.me...@collabora.com> diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 60a759a1b1d7..b581b41e259f 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -476,6 +476,10 @@ void ScInputWindow::SetSizePixel( const Size& rNewSize ) void ScInputWindow::setPosSizePixel(long nX, long nY, long nWidth, long nHeight, PosSizeFlags nFlags) { + if ((!(nFlags & PosSizeFlags::Size) || GetSizePixel() == Size(nWidth, nHeight)) && + (!(nFlags & PosSizeFlags::Pos) || GetPosPixel() == Point(nX, nY))) + return; + ToolBox::setPosSizePixel(nX, nY, nWidth, nHeight, nFlags); if (const vcl::ILibreOfficeKitNotifier* pNotifier = GetLOKNotifier()) { commit 2b9b9468375f4656fd229245a42565987fec4de3 Author: Gabriel Masei <gabriel.ma...@1and1.ro> AuthorDate: Wed Apr 7 12:46:27 2021 +0300 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:52:00 2021 +0200 lok: intercept indentation and decimals state change events This solves some toolbar buttons enabling issues in online when dynamically changing UI mode to classic. Change-Id: I3301b92c35effce905f1283ae645d8ad2b168ece Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113723 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> (cherry picked from commit 8859e62d7dfaa71c35f80b5eff99b0788b49c9fa) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113766 Reviewed-by: Gabriel Masei <gabriel.ma...@1and1.ro> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx index ddccd885ab15..e9019fab2326 100644 --- a/sfx2/source/control/unoctitm.cxx +++ b/sfx2/source/control/unoctitm.cxx @@ -1170,7 +1170,11 @@ static void InterceptLOKStateChangeEvent(sal_uInt16 nSID, SfxViewFrame* pViewFra aEvent.FeatureURL.Path == "Substract" || aEvent.FeatureURL.Path == "DistributeSelection" || aEvent.FeatureURL.Path == "Intersect" || - aEvent.FeatureURL.Path == "ResetAttributes") + aEvent.FeatureURL.Path == "ResetAttributes" || + aEvent.FeatureURL.Path == "IncrementIndent" || + aEvent.FeatureURL.Path == "DecrementIndent" || + aEvent.FeatureURL.Path == "NumberFormatDecDecimals" || + aEvent.FeatureURL.Path == "NumberFormatIncDecimals") { aBuffer.append(aEvent.IsEnabled ? std::u16string_view(u"enabled") : std::u16string_view(u"disabled")); } commit f9044bab59f1491a392c2b72905690df9280148e Author: Katarina Behrens <bu...@bubli.org> AuthorDate: Mon Apr 12 14:56:12 2021 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:59 2021 +0200 tdf#131171: make Diagonal Squares animations behave as described All of these animations map to Waterfall transition left-to-bottom: horizontal left rotated 90° clockwise right-to-top: reverse of left-to-bottom right-to-bottom: horizontal right rotated 90° counterclockwise left-to-top: reverse of right-to-bottom This holds for entrance animations. For exit it is the same but reversed see also: https://www.w3.org/TR/SMIL2/smil-transitions.html#Table%205:%20SMPTE%20Matrix%20Wipes Change-Id: I9d1b05485727bb6f0e93ba78f10094055bfbaa70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113985 Tested-by: Jenkins Reviewed-by: Katarina Behrens <bu...@bubli.org> (cherry picked from commit 46fe595379a898ee7e537cbffd5d215d4a58aca5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113997 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/sd/xml/effects.xml b/sd/xml/effects.xml index 2846caaa9450..08a874d6a8c9 100644 --- a/sd/xml/effects.xml +++ b/sd/xml/effects.xml @@ -349,7 +349,7 @@ <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="left-to-bottom"> <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft"/> </anim:par> </anim:par> </anim:par> @@ -357,7 +357,7 @@ <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="left-to-top"> <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:direction="reverse"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:direction="reverse"/> </anim:par> </anim:par> </anim:par> @@ -365,7 +365,7 @@ <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="right-to-bottom"> <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight"/> </anim:par> </anim:par> </anim:par> @@ -373,7 +373,7 @@ <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="right-to-top"> <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:direction="reverse"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:direction="reverse"/> </anim:par> </anim:par> </anim:par> @@ -1655,7 +1655,7 @@ <anim:par smil:begin="indefinite" smil:fill="hold"> <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="left-to-bottom"> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:mode="out"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:mode="out" smil:direction="reverse"/> <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/> </anim:par> </anim:par> @@ -1663,7 +1663,7 @@ <anim:par smil:begin="indefinite" smil:fill="hold"> <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="left-to-top"> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:mode="out" smil:direction="reverse"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:mode="out"/> <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/> </anim:par> </anim:par> @@ -1671,7 +1671,7 @@ <anim:par smil:begin="indefinite" smil:fill="hold"> <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="right-to-bottom"> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:mode="out"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:mode="out" smil:direction="reverse"/> <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/> </anim:par> </anim:par> @@ -1679,7 +1679,7 @@ <anim:par smil:begin="indefinite" smil:fill="hold"> <anim:par smil:begin="0" smil:fill="hold"> <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="right-to-top"> - <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:mode="out" smil:direction="reverse"/> + <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:mode="out"/> <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/> </anim:par> </anim:par> commit bd97bfe5f6790d1ba0ae92a08d4e98d7c815a59d Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Apr 12 12:11:42 2021 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:59 2021 +0200 tdf#134736 move nLastBgAction to also include any trailing pops RemoveTransparenciesFromMetaFile is a very fragile thing Change-Id: I8feeb436426d16087ab5fbaddf6b39ac32574e5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113992 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/vcl/source/gdi/print2.cxx b/vcl/source/gdi/print2.cxx index 6094417d940d..4479ea39383d 100644 --- a/vcl/source/gdi/print2.cxx +++ b/vcl/source/gdi/print2.cxx @@ -790,6 +790,18 @@ bool OutputDevice::RemoveTransparenciesFromMetaFile( const GDIMetaFile& rInMtf, ++nActionNum; } + if (nLastBgAction != -1) + { + size_t nActionSize = rInMtf.GetActionSize(); + // tdf#134736 move nLastBgAction to also include any trailing pops + for (size_t nPostLastBgAction = nLastBgAction + 1; nPostLastBgAction < nActionSize; ++nPostLastBgAction) + { + if (rInMtf.GetAction(nPostLastBgAction)->GetType() != MetaActionType::POP) + break; + nLastBgAction = nPostLastBgAction; + } + } + aMapModeVDev->ClearStack(); // clean up aMapModeVDev // fast-forward until one after the last background action commit c5a24ae3058b6d07a89b570fe46170d53a2fea70 Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Fri Apr 9 12:08:24 2021 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:59 2021 +0200 tdf#141549 sw: fix ordering of virtual SdrObjects for textboxes In header/footer it turns out that not only can the text box be inserted after the shape, it can also be inserted before the shape. This is because SwDrawFrameFormat::MakeFrames() ends up first destroying all the SwDrawVirtObj and then creating them from scratch again, while the SwVirtFlyDrawObj survives. 4 SwDrawContact::DisconnectFromLayout(bool) (this=0x6ed0200, _bMoveMasterToInvisibleLayer=false) at sw/source/core/draw/dcontact.cxx:1664 5 SwDrawContact::ConnectToLayout(SwFormatAnchor const*) (this=0x6ed0200, pAnch=0x0) at sw/source/core/draw/dcontact.cxx:1791 6 SwDrawContact::SwClientNotify(SwModify const&, SfxHint const&) (this=0x6ed0200, rMod=..., rHint=...) at sw/source/core/draw/dcontact.cxx:1521 7 SwModify::CallSwClientNotify(SfxHint const&) const (this=0x6ecfd80, rHint=...) at sw/source/core/attr/calbck.cxx:321 8 sw::BroadcastingModify::CallSwClientNotify(SfxHint const&) const (this=0x6ecfd80, rHint=...) at sw/source/core/attr/calbck.cxx:326 9 SwDrawFrameFormat::MakeFrames() (this=0x6ecfd80) at sw/source/core/layout/atrfrm.cxx:3394 10 AppendAllObjs(SwFrameFormats const*, SwFrame const*) (pTable=0x69c1920, pSib=0x38c6100) at sw/source/core/layout/frmtool.cxx:1349 11 InsertCnt_(SwLayoutFrame*, SwDoc*, unsigned long, bool, unsigned long, SwFrame*, sw::FrameMode) (pLay=0x6be4320, pDoc=0x69af7c0, nIndex=157, bPages=true, nEndIndex=0, pPrv=0x6baedc0, eMode=sw::FrameMode::New) at sw/source/core/layout/frmtool.cxx:1927 Fix this by searching for the existing SwVirtFlyDrawObj in SwDrawVirtObj::AddToDrawingPage(). (regression from 3bc8f90e9693f710f12632f69b9348c1c833c906) Change-Id: Ic00878685ab16018c9331190f1e80f874c1a9a4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113844 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@allotropia.de> (cherry picked from commit c2eae4998b3ae79210ef0b5c064e9833218c22de) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113853 Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sw/inc/dcontact.hxx b/sw/inc/dcontact.hxx index 082c0fe8d77f..042ab4a4a8f5 100644 --- a/sw/inc/dcontact.hxx +++ b/sw/inc/dcontact.hxx @@ -248,7 +248,7 @@ class SwDrawVirtObj final : public SdrVirtObj void RemoveFromWriterLayout(); /// connection to drawing layer - void AddToDrawingPage(); + void AddToDrawingPage(SwFrame const& rAnchorFrame); void RemoveFromDrawingPage(); /** is 'virtual' drawing object connected to writer layout and @@ -398,7 +398,7 @@ class SAL_DLLPUBLIC_RTTI SwDrawContact final : public SwContact /// Moves all SW-connections to new Master) void ChangeMasterObject( SdrObject *pNewMaster ); - SwDrawVirtObj* AddVirtObj(); + SwDrawVirtObj* AddVirtObj(SwFrame const& rAnchorFrame); void NotifyBackgrdOfAllVirtObjs( const tools::Rectangle* pOldBoundRect ); diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index 2c4ab5e5b288..82934ce74aa7 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.cxx @@ -829,7 +829,7 @@ SwFrame* SwDrawContact::GetAnchorFrame(SdrObject const *const pDrawObj) /** add a 'virtual' drawing object to drawing page. */ -SwDrawVirtObj* SwDrawContact::AddVirtObj() +SwDrawVirtObj* SwDrawContact::AddVirtObj(SwFrame const& rAnchorFrame) { maDrawVirtObjs.push_back( SwDrawVirtObjPtr( @@ -837,7 +837,7 @@ SwDrawVirtObj* SwDrawContact::AddVirtObj() GetMaster()->getSdrModelFromSdrObject(), *GetMaster(), *this))); - maDrawVirtObjs.back()->AddToDrawingPage(); + maDrawVirtObjs.back()->AddToDrawingPage(rAnchorFrame); return maDrawVirtObjs.back().get(); } @@ -1928,7 +1928,7 @@ void SwDrawContact::ConnectToLayout( const SwFormatAnchor* pAnch ) else { // append 'virtual' drawing object - SwDrawVirtObj* pDrawVirtObj = AddVirtObj(); + SwDrawVirtObj* pDrawVirtObj = AddVirtObj(*pFrame); if ( pAnch->GetAnchorId() == RndStdIds::FLY_AS_CHAR ) { ClrContourCache( pDrawVirtObj ); @@ -2275,30 +2275,56 @@ void SwDrawVirtObj::RemoveFromWriterLayout() } } -void SwDrawVirtObj::AddToDrawingPage() +void SwDrawVirtObj::AddToDrawingPage(SwFrame const& rAnchorFrame) { // determine 'master' SdrObject* pOrgMasterSdrObj = mrDrawContact.GetMaster(); // insert 'virtual' drawing object into page, set layer and user call. SdrPage* pDrawPg = pOrgMasterSdrObj->getSdrPageFromSdrObject(); + // default: insert before master object + auto NOTM_nOrdNum(GetReferencedObj().GetOrdNum()); + + // maintain invariant that a shape's textbox immediately follows the shape + // also for the multiple SdrDrawVirtObj created for shapes in header/footer + if (SwFrameFormat const*const pFlyFormat = + SwTextBoxHelper::getOtherTextBoxFormat(mrDrawContact.GetFormat(), RES_DRAWFRMFMT)) + { + // this is for the case when the flyframe SdrVirtObj is created before the draw one + if (SwSortedObjs const*const pObjs = rAnchorFrame.GetDrawObjs()) + { + for (SwAnchoredObject const*const pAnchoredObj : *pObjs) + { + if (&pAnchoredObj->GetFrameFormat() == pFlyFormat) + { + assert(dynamic_cast<SwFlyFrame const*>(pAnchoredObj)); + NOTM_nOrdNum = pAnchoredObj->GetDrawObj()->GetOrdNum(); + // the master SdrObj should have the highest index + assert(NOTM_nOrdNum < GetReferencedObj().GetOrdNum()); + break; + } + } + } + // this happens on initial insertion, the draw object is created first + SAL_INFO_IF(GetReferencedObj().GetOrdNum() == NOTM_nOrdNum, "sw", "AddToDrawingPage: cannot find SdrObject for text box's shape"); + } + // #i27030# - apply order number of referenced object if ( nullptr != pDrawPg ) { // #i27030# - apply order number of referenced object - pDrawPg->InsertObject( this, GetReferencedObj().GetOrdNum() ); + pDrawPg->InsertObject(this, NOTM_nOrdNum); } else { pDrawPg = getSdrPageFromSdrObject(); if ( pDrawPg ) { - pDrawPg->SetObjectOrdNum( GetOrdNumDirect(), - GetReferencedObj().GetOrdNum() ); + pDrawPg->SetObjectOrdNum(GetOrdNumDirect(), NOTM_nOrdNum); } else { - SetOrdNum( GetReferencedObj().GetOrdNum() ); + SetOrdNum(NOTM_nOrdNum); } } SetUserCall( &mrDrawContact ); diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index c5e5a1896233..6b69e88fe982 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -1025,7 +1025,7 @@ void AppendObj(SwFrame *const pFrame, SwPageFrame *const pPage, SwFrameFormat *c pNew->GetAnchorFrame() != pFrame && !pNew->GetDrawObjectByAnchorFrame( *pFrame ) ) { - SwDrawVirtObj* pDrawVirtObj = pNew->AddVirtObj(); + SwDrawVirtObj* pDrawVirtObj = pNew->AddVirtObj(*pFrame); pFrame->AppendDrawObj( *(pNew->GetAnchoredObj( pDrawVirtObj )) ); pDrawVirtObj->ActionChanged(); commit 1f4561092bd67ede30c303e365bb455109258c76 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Thu Apr 8 15:08:38 2021 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:58 2021 +0200 tdf#140489 fix chart display in xlsx Commit 1147383: tdf#114181 XLSX combined chart: fix swapped primary and secondary axes etc. introduced regression by applying axis swaping not only for combined charts. Change-Id: I764399579ff922ddd495540fdd2a39675f2a8da5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113836 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> (cherry picked from commit be82f6313f298c13a2f040b218c6f2a33705ff8c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113871 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 8e38308ff56f..fe9ebb5bc502 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -120,6 +120,7 @@ public: void testAxisTitleRotationXLSX(); void testAxisTitlePositionDOCX(); void testCombinedChartAttachedAxisXLSX(); + void testTdf140489MultiSeriesChartAxisXLSX(); void testTdf90510(); // Pie chart label placement settings(XLS) void testTdf109858(); // Pie chart label placement settings(XLSX) @@ -242,6 +243,7 @@ public: CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisTitlePositionDOCX); CPPUNIT_TEST(testCombinedChartAttachedAxisXLSX); + CPPUNIT_TEST(testTdf140489MultiSeriesChartAxisXLSX); CPPUNIT_TEST(testTdf90510); CPPUNIT_TEST(testTdf109858); CPPUNIT_TEST(testTdf130105); @@ -1732,6 +1734,39 @@ void Chart2ImportTest::testCombinedChartAttachedAxisXLSX() CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex); } +void Chart2ImportTest::testTdf140489MultiSeriesChartAxisXLSX() +{ + load(u"/chart2/qa/extras/data/xlsx/", "tdf140489.xlsx"); + Reference< chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); + // First series + Reference<chart2::XDataSeries> xSeries = getDataSeriesFromDoc(xChartDoc, 0); + CPPUNIT_ASSERT(xSeries.is()); + + Reference<beans::XPropertySet> xPropSet(xSeries, uno::UNO_QUERY_THROW); + sal_Int32 nAxisIndex = -1; + uno::Any aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); + CPPUNIT_ASSERT(aAny >>= nAxisIndex); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex); + + // Second series + xSeries = getDataSeriesFromDoc(xChartDoc, 0, 1); + CPPUNIT_ASSERT(xSeries.is()); + + xPropSet.set(xSeries, uno::UNO_QUERY_THROW); + aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); + CPPUNIT_ASSERT(aAny >>= nAxisIndex); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex); + + // Third series + xSeries = getDataSeriesFromDoc(xChartDoc, 0, 2); + CPPUNIT_ASSERT(xSeries.is()); + + xPropSet.set(xSeries, uno::UNO_QUERY_THROW); + aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); + CPPUNIT_ASSERT(aAny >>= nAxisIndex); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nAxisIndex); +} + void Chart2ImportTest::testInternalDataProvider() { uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromImpress("/chart2/qa/extras/data/odp/", "chart.odp"), uno::UNO_QUERY_THROW); const uno::Reference< chart2::data::XDataProvider >& rxDataProvider = xChartDoc->getDataProvider(); diff --git a/chart2/qa/extras/data/xlsx/tdf140489.xlsx b/chart2/qa/extras/data/xlsx/tdf140489.xlsx new file mode 100644 index 000000000000..bd24f40be7b5 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf140489.xlsx differ diff --git a/oox/source/drawingml/chart/plotareaconverter.cxx b/oox/source/drawingml/chart/plotareaconverter.cxx index 80ea37c57d30..9a0f9d337c8a 100644 --- a/oox/source/drawingml/chart/plotareaconverter.cxx +++ b/oox/source/drawingml/chart/plotareaconverter.cxx @@ -420,9 +420,13 @@ void PlotAreaConverter::convertFromModel( View3DModel& rView3DModel ) // varying point colors only for single series in single chart type bool bSupportsVaryColorsByPoint = mrModel.maTypeGroups.size() == 1; + bool bIsCombinedChart = mrModel.maTypeGroups.size() == 2 && + mrModel.maTypeGroups[0]->mnTypeId != mrModel.maTypeGroups[1]->mnTypeId; + // convert all axes sets, and check which axis is attached to the first maTypeGroups - sal_Int32 nStartAxesSetIdx = (rValAxisIds.size() > 1 && aAxesSets.size() > 0 && aAxesSets[0]->maAxes.count( API_Y_AXIS ) - && aAxesSets[0]->maAxes[ API_Y_AXIS ]->mnAxisId != rValAxisIds[0] ) ? 1 : 0; + sal_Int32 nStartAxesSetIdx = bIsCombinedChart ? ((rValAxisIds.size() > 1 && aAxesSets.size() > 0 && aAxesSets[0]->maAxes.count( API_Y_AXIS ) + && aAxesSets[0]->maAxes[ API_Y_AXIS ]->mnAxisId != rValAxisIds[0] ) ? 1 : 0) + : 0; sal_Int32 nAxesSetIdx = nStartAxesSetIdx; bool bUseFixedInnerSize = false; commit dbbfb0dd81de70fd3e10258cdbd5f6452160209b Author: Andreas Heinisch <andreas.heini...@yahoo.de> AuthorDate: Wed Mar 17 10:33:05 2021 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:58 2021 +0200 tdf#138646 - consider the document's address convention When accessing a named range using getCellRangeByName, consider the document's address convention. Otherwise, an exception is raised, when the formula syntax is EXCEL R1C1 or EXCEL A1. Change-Id: I5df2546f1c3fd00ff30cb057dcf47f6bb01d501d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112602 Tested-by: Jenkins Reviewed-by: Eike Rathke <er...@redhat.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113984 diff --git a/sc/qa/extras/macros-test.cxx b/sc/qa/extras/macros-test.cxx index 2970a587ecc5..fce7684e53a4 100644 --- a/sc/qa/extras/macros-test.cxx +++ b/sc/qa/extras/macros-test.cxx @@ -52,6 +52,7 @@ public: void testTdf128218(); void testTdf71271(); void testTdf43003(); + void testTdf138646(); CPPUNIT_TEST_SUITE(ScMacrosTest); CPPUNIT_TEST(testStarBasic); @@ -70,6 +71,7 @@ public: CPPUNIT_TEST(testTdf128218); CPPUNIT_TEST(testTdf71271); CPPUNIT_TEST(testTdf43003); + CPPUNIT_TEST(testTdf138646); CPPUNIT_TEST_SUITE_END(); }; @@ -864,6 +866,52 @@ void ScMacrosTest::testTdf43003() xCloseable->close(true); } +void ScMacrosTest::testTdf138646() +{ + OUString aFileName; + createFileURL(u"tdf138646.ods", aFileName); + auto xComponent = loadFromDesktop(aFileName, "com.sun.star.sheet.SpreadsheetDocument"); + CPPUNIT_ASSERT_MESSAGE("Failed to load the doc", xComponent.is()); + + SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(xComponent); + CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell); + + ScDocShell* pDocSh = dynamic_cast<ScDocShell*>(pFoundShell); + CPPUNIT_ASSERT(pDocSh); + + // Without the fix in place, changing the grammar from GRAM_NATIVE to either GRAM_NATIVE_XL_A1 + // or GRAM_NATIVE_XL_R1C1 would cause a Basic exception/error in the following script. + pDocSh->GetDocument().SetGrammar(formula::FormulaGrammar::Grammar::GRAM_NATIVE_XL_R1C1); + + const std::vector<std::pair<OUString, OUString>> aTests({ + { "GlobalNamedCell", "GlobalNamedCell" }, + { "GlobalNamedCellSheet", "GlobalNamedCell" }, + { "LocalNamedCell", "LocalNamedCell" }, + { "LocalNamedCellAccessError", "Exception" } + }); + + { + Any aRet; + Sequence<sal_Int16> aOutParamIndex; + Sequence<Any> aOutParam; + Sequence<uno::Any> aParams; + + for (auto& [sTestName, sExpected] : aTests) + { + SfxObjectShell::CallXScript(xComponent, + "vnd.sun.Star.script:Standard.Module1." + sTestName + + "?language=Basic&location=document", + aParams, aRet, aOutParamIndex, aOutParam); + + OUString aReturnValue; + aRet >>= aReturnValue; + CPPUNIT_ASSERT_EQUAL_MESSAGE(sTestName.toUtf8().getStr(), sExpected, aReturnValue); + } + } + + pDocSh->DoClose(); +} + ScMacrosTest::ScMacrosTest() : UnoApiTest("/sc/qa/extras/testdocuments") { diff --git a/sc/qa/extras/testdocuments/tdf138646.ods b/sc/qa/extras/testdocuments/tdf138646.ods new file mode 100644 index 000000000000..9faa95a54334 Binary files /dev/null and b/sc/qa/extras/testdocuments/tdf138646.ods differ diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx index dfcdb30875ee..c8c8978ff348 100644 --- a/sc/source/core/tool/rangeutl.cxx +++ b/sc/source/core/tool/rangeutl.cxx @@ -276,7 +276,9 @@ bool ScRangeUtil::MakeRangeFromName ( ScRefAddress aStartPos; ScRefAddress aEndPos; - pData->GetSymbol( aStrArea ); + // tdf#138646 - consider the current grammar and address convention of the document + pData->GetSymbol(aStrArea, + FormulaGrammar::mergeToGrammar(rDoc.GetGrammar(), rDetails.eConv)); if ( IsAbsArea( aStrArea, rDoc, nTable, nullptr, &aStartPos, &aEndPos, rDetails ) ) commit 62d02c8728edca696165e913c533b336f2f54ac1 Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Sun Apr 11 17:21:57 2021 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:58 2021 +0200 tdf#141623 Qt5+cairo init surface with widget size The QFont based rendering path directly uses the widgets size to initialize the QImage buffer image, so do the same for the Cairo surface, instead of the arbitrarily size of 640x480. Change-Id: I91326dab67cbbb5e75b78b02c34eaca61ad26482 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113955 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> (cherry picked from commit 91c883e75436210ca8af95df1ca597caeeda8703) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113869 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx index cbe31b8b5409..b398e9a5cf3b 100644 --- a/vcl/qt5/Qt5Frame.cxx +++ b/vcl/qt5/Qt5Frame.cxx @@ -290,11 +290,11 @@ void Qt5Frame::Damage(sal_Int32 nExtentsX, sal_Int32 nExtentsY, sal_Int32 nExten void Qt5Frame::InitQt5SvpGraphics(Qt5SvpGraphics* pQt5SvpGraphics) { - int width = 640; - int height = 480; + QSize aSize = m_pQWidget->size() * devicePixelRatioF(); m_pSvpGraphics = pQt5SvpGraphics; - m_pSurface.reset(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height)); - m_pSvpGraphics->setSurface(m_pSurface.get(), basegfx::B2IVector(width, height)); + m_pSurface.reset( + cairo_image_surface_create(CAIRO_FORMAT_ARGB32, aSize.width(), aSize.height())); + m_pSvpGraphics->setSurface(m_pSurface.get(), basegfx::B2IVector(aSize.width(), aSize.height())); cairo_surface_set_user_data(m_pSurface.get(), Qt5SvpGraphics::getDamageKey(), &m_aDamageHandler, nullptr); } commit 5ba5357caf9276e7bd439468aff07326545229b7 Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Tue Apr 6 01:41:08 2021 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:57 2021 +0200 tdf#140404 Qt ignore "unchanged" clipboard events LO gets a Qt signal on all clipboard changes. For X11 you get one signal when you set the clipboard. Anything else normally signals lost of clipboard ownership. But on Wayland LO somehow gets a second notification without any actual change. AFAIK it's not triggered by any LO actions and isOwner still indicates, that LO has the ownership. This breaks the single notification assumption, the code was relying on. Initially I found it quite tricky to find a rule to identify the ignorable change signals. Change-Id: I744cdd3c4254533b01d909309ecc3967d789361e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113617 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakan...@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> Tested-by: Jenkins (cherry picked from commit 71471a36b125f6bdc915d5dbcae92ebcaa7ff5a4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113641 diff --git a/vcl/qt5/Qt5Clipboard.cxx b/vcl/qt5/Qt5Clipboard.cxx index 8720cfe44310..41881f0be4b6 100644 --- a/vcl/qt5/Qt5Clipboard.cxx +++ b/vcl/qt5/Qt5Clipboard.cxx @@ -150,6 +150,15 @@ void Qt5Clipboard::handleChanged(QClipboard::Mode aMode) osl::ClearableMutexGuard aGuard(m_aMutex); + // QtWayland will send a second change notification (seemingly without any + // trigger). And any C'n'P operation in the Qt file picker emits a signal, + // with LO still holding the clipboard ownership, but internally having lost + // it. So ignore any signal, which still delivers the internal Qt5MimeData + // as the clipboard content and is no "advertised" change. + if (!m_bOwnClipboardChange && isOwner(aMode) + && dynamic_cast<const Qt5MimeData*>(QApplication::clipboard()->mimeData(aMode))) + return; + css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner> xOldOwner(m_aOwner); css::uno::Reference<css::datatransfer::XTransferable> xOldContents(m_aContents); // ownership change from LO POV is handled in setContents commit 91db7039b8846288c648c47c3cf3f75b9f16755d Author: Rizal Muttaqin <riz_17_...@yahoo.co.id> AuthorDate: Sun Apr 11 12:37:15 2021 +0700 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:57 2021 +0200 Sukapura: tdf#141618 fix blured vertical line of Sukapura's anchor marker Change-Id: I11b3fca85ec00049dfe84df6cfb548a320e255cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113937 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <riz...@libreoffice.org> (cherry picked from commit d9f10d8f0f6bae31dd5ebd9fa00f989d17fc21da) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113865 Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/icon-themes/sukapura/svx/res/markers.png b/icon-themes/sukapura/svx/res/markers.png index 38c2f92c6047..0ce89a9f3275 100644 Binary files a/icon-themes/sukapura/svx/res/markers.png and b/icon-themes/sukapura/svx/res/markers.png differ diff --git a/icon-themes/sukapura_svg/svx/res/markers.svg b/icon-themes/sukapura_svg/svx/res/markers.svg index d6bedcbca334..ba34c35ad91d 100644 --- a/icon-themes/sukapura_svg/svx/res/markers.svg +++ b/icon-themes/sukapura_svg/svx/res/markers.svg @@ -1 +1 @@ -<svg viewBox="0 0 117 92" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a"><stop offset="0" stop-color="#848489"/><stop offset="1" stop-color="#98989d" stop-opacity=".949612"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="99" x2="99" xlink:href="#a" y1="78" y2="67"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="27" x2="27" xlink:href="#a" y1="87" y2="71"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#a" y1="62" y2="55"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#a" y1="63" y2="56"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#a" y1="65" y2="56"/><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="30" x2="30" xlink:href="#a" y1="62" y2="55"/><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="38" x2="38" xlink:href="#a" y1="63" y2="56"/><linearGradient id="i" gradientUnit s="userSpaceOnUse" x1="49" x2="48.5" xlink:href="#a" y1="65" y2="56.000019"/><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="57" x2="57" xlink:href="#a" y1="65" y2="55"/><linearGradient id="k" gradientUnits="userSpaceOnUse" x1="65" x2="65" xlink:href="#a" y1="65" y2="56"/><linearGradient id="l" gradientUnits="userSpaceOnUse" x1="74" x2="74" xlink:href="#a" y1="62" y2="55"/><linearGradient id="m" gradientUnits="userSpaceOnUse" x1="84" x2="84" xlink:href="#a" y1="63" y2="56"/><linearGradient id="n" gradientUnits="userSpaceOnUse" x1="90" x2="90" xlink:href="#a" y1="62" y2="55"/><linearGradient id="o" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#a" y1="64" y2="55"/><linearGradient id="p" gradientUnits="userSpaceOnUse" x1="106" x2="106" xlink:href="#a" y1="66" y2="55"/><linearGradient id="q" gradientUnits="userSpaceOnUse" x1="49" x2="49" xlink:href="#a" y1="90" y2="68"/><linearGradient id="r"><stop offset="0" stop-color="#f58b00"/><stop offset="1" stop-color="#ff 9f0a" stop-opacity=".74031"/></linearGradient><linearGradient id="s"><stop offset="0" stop-color="#f5c200"/><stop offset="1" stop-color="#ffd60a"/></linearGradient><linearGradient id="t"><stop offset="0" stop-color="#2a9240"/><stop offset="1" stop-color="#32d74b" stop-opacity=".755814"/></linearGradient><linearGradient id="u"><stop offset="0" stop-color="#d70015"/><stop offset="1" stop-color="#ff453a" stop-opacity=".976744"/></linearGradient><linearGradient id="v"><stop offset="0" stop-color="#0040dd"/><stop offset="1" stop-color="#0a84ff"/></linearGradient><linearGradient id="w" gradientUnits="userSpaceOnUse" x1="3" x2="3" xlink:href="#v" y1="7" y2="0"/><linearGradient id="x" gradientUnits="userSpaceOnUse" x1="102" x2="102" xlink:href="#v" y1="9" y2="0"/><linearGradient id="y" gradientUnits="userSpaceOnUse" x1="112" x2="112" xlink:href="#v" y1="11" y2="0"/><linearGradient id="z" gradientUnits="userSpaceOnUse" x1="94" x2="94" xlink:href="#v" y1="7" y2="0"/><linearGradient id="A" gra dientUnits="userSpaceOnUse" x1="12" x2="12" xlink:href="#v" y1="8" y2="2"/><linearGradient id="B" gradientUnits="userSpaceOnUse" x1="22" x2="22" xlink:href="#v" y1="10" y2="2"/><linearGradient id="C" gradientUnits="userSpaceOnUse" x1="30" x2="30.5" xlink:href="#v" y1="7" y2="0"/><linearGradient id="D" gradientUnits="userSpaceOnUse" x1="39" x2="39" xlink:href="#v" y1="8" y2="1"/><linearGradient id="E" gradientUnits="userSpaceOnUse" x1="48.5" x2="48.5" xlink:href="#v" y1="10" y2="1"/><linearGradient id="F" gradientUnits="userSpaceOnUse" x1="57.5" x2="57.5" xlink:href="#v" y1="10" y2="0"/><linearGradient id="G" gradientUnits="userSpaceOnUse" x1="65.5" x2="65.5" xlink:href="#v" y1="10" y2="1"/><linearGradient id="H" gradientUnits="userSpaceOnUse" x1="84" x2="84" xlink:href="#v" y1="8" y2="1"/><linearGradient id="I" gradientUnits="userSpaceOnUse" x1="75" x2="74.5" xlink:href="#v" y1="7" y2="0"/><linearGradient id="J" gradientUnits="userSpaceOnUse" x1="79" x2="79" xlink:href="#v" y1="78" y2="67"/><linearGradient id="K" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#u" y1="40" y2="33"/><linearGradient id="L" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#u" y1="41" y2="34"/><linearGradient id="M" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#u" y1="43" y2="34"/><linearGradient id="N" gradientUnits="userSpaceOnUse" x1="30.5" x2="30.5" xlink:href="#u" y1="40" y2="33"/><linearGradient id="O" gradientUnits="userSpaceOnUse" x1="39" x2="39" xlink:href="#u" y1="41" y2="34"/><linearGradient id="P" gradientUnits="userSpaceOnUse" x1="49" x2="49" xlink:href="#u" y1="43" y2="34"/><linearGradient id="Q" gradientUnits="userSpaceOnUse" x1="57.5" x2="57.5" xlink:href="#u" y1="43" y2="33"/><linearGradient id="R" gradientUnits="userSpaceOnUse" x1="65.5" x2="65.5" xlink:href="#u" y1="43" y2="34"/><linearGradient id="S" gradientUnits="userSpaceOnUse" x1="74.5" x2="74.5" xlink:href="#u" y1="40" y2="33"/><linearGradient id="T" gradientUnits="userSpaceOn Use" x1="84.5" x2="84.5" xlink:href="#u" y1="41" y2="34"/><linearGradient id="U" gradientUnits="userSpaceOnUse" x1="94" x2="94" xlink:href="#u" y1="40" y2="33"/><linearGradient id="V" gradientUnits="userSpaceOnUse" x1="102" x2="102" xlink:href="#u" y1="42" y2="33"/><linearGradient id="W" gradientUnits="userSpaceOnUse" x1="112" x2="112" xlink:href="#u" y1="44" y2="33"/><linearGradient id="X" gradientUnits="userSpaceOnUse" x1="86" x2="86" xlink:href="#u" y1="91" y2="80"/><linearGradient id="Y" gradientUnits="userSpaceOnUse" x1="19.5" x2="19.5" xlink:href="#u" y1="75" y2="68"/><linearGradient id="Z" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#t" y1="29" y2="22"/><linearGradient id="aa" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#t" y1="30" y2="23"/><linearGradient id="ab" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#t" y1="32" y2="23"/><linearGradient id="ac" gradientUnits="userSpaceOnUse" x1="30.5" x2="30.5" xlink:href="#t" y1="29" y2="22"/>< linearGradient id="ad" gradientUnits="userSpaceOnUse" x1="38.5" x2="38.5" xlink:href="#t" y1="30" y2="23"/><linearGradient id="ae" gradientUnits="userSpaceOnUse" x1="48.5" x2="48.5" xlink:href="#t" y1="32" y2="23"/><linearGradient id="af" gradientUnits="userSpaceOnUse" x1="57.5" x2="57.5" xlink:href="#t" y1="32" y2="22"/><linearGradient id="ag" gradientUnits="userSpaceOnUse" x1="65.5" x2="65.5" xlink:href="#t" y1="32" y2="23"/><linearGradient id="ah" gradientUnits="userSpaceOnUse" x1="74.5" x2="74.5" xlink:href="#t" y1="29" y2="22"/><linearGradient id="ai" gradientUnits="userSpaceOnUse" x1="84.5" x2="84.5" xlink:href="#t" y1="30" y2="23"/><linearGradient id="aj" gradientUnits="userSpaceOnUse" x1="90" x2="90" xlink:href="#t" y1="29" y2="22"/><linearGradient id="ak" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#t" y1="31" y2="22"/><linearGradient id="al" gradientUnits="userSpaceOnUse" x1="106" x2="106" xlink:href="#t" y1="33" y2="22"/><linearGradient id="am" gradientUnit s="userSpaceOnUse" x1="73" x2="74" xlink:href="#t" y1="91.000023" y2="80"/><linearGradient id="an" gradientUnits="userSpaceOnUse" x1="19.5" x2="19.5" xlink:href="#t" y1="84" y2="77"/><linearGradient id="ao" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#s" y1="18" y2="11"/><linearGradient id="ap" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#s" y1="19" y2="12"/><linearGradient id="aq" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#s" y1="21" y2="12"/><linearGradient id="ar" gradientUnits="userSpaceOnUse" x1="27" x2="34" xlink:href="#s" y1="14.50002" y2="14.50002"/><linearGradient id="as" gradientUnits="userSpaceOnUse" x1="39" x2="39" xlink:href="#s" y1="19" y2="12"/><linearGradient id="at" gradientUnits="userSpaceOnUse" x1="49" x2="49" xlink:href="#s" y1="21" y2="12"/><linearGradient id="au" gradientUnits="userSpaceOnUse" x1="58" x2="58" xlink:href="#s" y1="21" y2="11"/><linearGradient id="av" gradientUnits="userSpaceOnUse" x1="65" x2="65" xlink:h ref="#s" y1="21" y2="12"/><linearGradient id="aw" gradientUnits="userSpaceOnUse" x1="74.5" x2="74.5" xlink:href="#s" y1="18" y2="11"/><linearGradient id="ax" gradientUnits="userSpaceOnUse" x1="84.5" x2="84.5" xlink:href="#s" y1="19" y2="12"/><linearGradient id="ay" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#s" y1="18" y2="11"/><linearGradient id="az" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#s" y1="20" y2="11"/><linearGradient id="aA" gradientUnits="userSpaceOnUse" x1="106" x2="106" xlink:href="#s" y1="22" y2="11"/><linearGradient id="aB" gradientUnits="userSpaceOnUse" x1="99" x2="99" xlink:href="#s" y1="91" y2="80"/><linearGradient id="aC" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aD" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#r" y1="52" y2="45"/><linearGradient id="aE" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#r" y1="54" y2="45"/><linearGradient id="aF" gradi entUnits="userSpaceOnUse" x1="30" x2="30" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aG" gradientUnits="userSpaceOnUse" x1="38" x2="38" xlink:href="#r" y1="52" y2="45"/><linearGradient id="aH" gradientUnits="userSpaceOnUse" x1="48" x2="48.5" xlink:href="#r" y1="54" y2="45.000019"/><linearGradient id="aI" gradientUnits="userSpaceOnUse" x1="57" x2="57" xlink:href="#r" y1="54" y2="44"/><linearGradient id="aJ" gradientUnits="userSpaceOnUse" x1="66" x2="66" xlink:href="#r" y1="54" y2="45"/><linearGradient id="aK" gradientUnits="userSpaceOnUse" x1="75" x2="75" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aL" gradientUnits="userSpaceOnUse" x1="80" x2="89" xlink:href="#r" y1="48.50002" y2="48.50002"/><linearGradient id="aM" gradientUnits="userSpaceOnUse" x1="90" x2="90" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aN" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#r" y1="53" y2="44"/><linearGradient id="aO" gradientUnits="userSpaceOnUse" x1="112" x2="1 12" xlink:href="#r" y1="55" y2="44"/><linearGradient id="aP" gradientUnits="userSpaceOnUse" x1="92" x2="92" xlink:href="#r" y1="78" y2="67"/><linearGradient id="aQ" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#r" y1="79.9375" y2="72"/><path d="m99 67.00002h11v11h-11z" fill="url(#b)"/><path d="m25 68.00002h22v22h-22z" fill="#b3b3b3" opacity=".2"/><path d="m36 71.00002c-1.104569 0-2 .8954-2 2 0 .932.637301 1.7155 1.5 1.9375v2.0625h-2.5v1h2.5v7.9687c-2.53904-.1627-4.748393-1.5121-6.09375-3.5l.1875-.094.90625-.5-.5-.875c.000019 0-3 1.625-3 1.625l.5.875 1.03125-.5625c1.604162 2.4357 4.335597 4.0625 7.46875 4.0625s5.863905-1.6268 7.46875-4.0625l1.03125.5625.5-.875c.000014-.0006-3-1.625-3-1.625l-.5.875.90625.5.1875.094c-1.345357 1.9879-3.554711 3.3373-6.09375 3.5v-7.9687h2.5v-1h-2.5v-2.0625c.862699-.222 1.5-1.0055 1.5-1.9375 0-1.1046-.895431-2-2-2zm0 1c.552285 0 1 .4477 1 1s-.447715 1-1 1-1-.4477-1-1 .447715-1 1-1z" fill="url(#c)" fill-rule="evenodd"/><g fill="#2a9240" transfo rm="translate(0 11)"><path d="m0 22h7v7h-7z" fill="url(#Z)"/><path d="m8 23h7v7h-7z" fill="url(#aa)"/><path d="m17 23h9v9h-9z" fill="url(#ab)"/><path d="m34 25.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#ac)"/><path d="m42 26.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#ad)"/><path d="m53 27.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#ae)"/><path d="m61 27a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#af)"/><path d="m69 27.5a3.5 4.5 0 0 1 -3.5 4.5 3.5 4.5 0 0 1 -3.5-4.5 3.5 4.5 0 0 1 3.5-4.5 3.5 4.5 0 0 1 3.5 4.5z" fill="url(#ag)"/><path d="m79 25.5a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#ah)"/><path d="m89 26.5a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#ai)"/><path d="m90 22v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#aj)"/><path d="m97 22v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#ak)"/><path d="m106 22v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#al)"/></g><g fill="#0040dd"><path d="m97 0v9h9v-9zm4 1h1v1 2h2 1v1h-1-2v2 1h-1v-1-2h-2-1v-1h1 2v-2z" fill="url(#x)"/><path d="m106 0v11h11v-11zm5 1h1v1 3h3 1v1h-1-3v3 1h-1v-1-3h-3-1v-1h1 3v-3z" fill="url(#y)"/><path d="m90 0v7h7v-7zm3 1h1v1 1h1 1v1h-1-1v1 1h-1v-1-1h-1-1v-1h1 1v-1z" fill="url(#z)"/><path d="m0 0v7h7v-7z" fill="url(#w)"/><path d="m8 1v7h7v-7z" fill="url(#A)"/><path d="m17 1v9h9v-9z" fill="url(#B)"/><path d="m30.5 0c-1.932997 0-3.5 1.5670034-3.5 3.5s1.567003 3.5 3.5 3.5 3.5-1.5670034 3.5-3.5-1.567003-3.5-3.5-3.5z" fill="url(#C)"/><path d="m38.5 1c-1.932997 0-3.5 1.5670034-3.5 3.5s1.567003 3.5 3.5 3.5 3.5-1.5670034 3.5-3.5-1.567003-3.5-3.5-3.5z" fill="url(#D)"/><path d="m48.5 1c-2.485281 0-4.5 2.0147186-4.5 4.5s2.014719 4 .5 4.5 4.5 4.5-2.0147186 4.5-4.5-2.014719-4.5-4.5-4.5z" fill="url(#E)"/><path d="m57.5 0c-1.932997 0-3.5 2.2385763-3.5 5s1.567003 5 3.5 5 3.5-2.2385763 3.5-5-1.567003-5-3.5-5z" fill="url(#F)"/><path d="m65.5 1c-1.932997 0-3.5 2.01472-3.5 4.5s1.567003 4.5 3.5 4.5 3.5-2.01472 3.5-4.5-1.567003-4.5-3.5-4.5z" fill="url(#G)"/><path d="m84.5 1c-2.485281 0-4.5 1.5670034-4.5 3.5s2.014719 3.5 4.5 3.5 4.5-1.5670034 4.5-3.5-2.014719-3.5-4.5-3.5z" fill="url(#H)"/><path d="m74.5 0c-2.485281 0-4.5 1.5670034-4.5 3.5s2.014719 3.5 4.5 3.5 4.5-1.5670034 4.5-3.5-2.014719-3.5-4.5-3.5z" fill="url(#I)"/></g><g fill="#ffd60a"><path d="m0 11h7v7h-7z" fill="url(#ao)"/><path d="m8 12h7v7h-7z" fill="url(#ap)"/><path d="m17 12h9v9h-9z" fill="url(#aq)"/><path d="m34 14.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#ar)"/><path d="m42 15.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#as)"/>< path d="m53 16.50002a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#at)"/><path d="m61 16.00002a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#au)"/><path d="m69 16.50003a3.5 4.50001 0 0 1 -3.5 4.50001 3.5 4.50001 0 0 1 -3.5-4.50001 3.5 4.50001 0 0 1 3.5-4.50001 3.5 4.50001 0 0 1 3.5 4.50001z" fill="url(#av)"/><path d="m79 14.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#aw)"/><path d="m89 15.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#ax)"/><path d="m90 11v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#ay)"/><path d="m97 11v9h9c0-2.981105 0-5.990251 0-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#az)"/><path d="m106 11v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#aA)"/></g><g fill="#98989d"><path d="m0 55.00002h7v7h-7z" fill="url(# d)"/><path d="m8 56.00002h7v7h-7z" fill="url(#e)"/><path d="m17 56.00002h9v9h-9z" fill="url(#f)"/><path d="m34 58.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#g)"/><path d="m42 59.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#h)"/><path d="m53 60.50002a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#i)"/><path d="m61 60.00002a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#j)"/><path d="m69 60.50001a3.5 4.49999 0 0 1 -3.5 4.49999 3.5 4.49999 0 0 1 -3.5-4.49999 3.5 4.49999 0 0 1 3.5-4.49999 3.5 4.49999 0 0 1 3.5 4.49999z" fill="url(#k)"/><path d="m79 58.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#l)"/><path d="m89 59.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#m)"/><path d="m90 55v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#n)"/><path d="m97 55v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#o)"/><path d="m106 55v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#p)"/></g><g fill="#ff9500"><path d="m0 44.00002h7v7h-7z" fill="url(#aC)"/><path d="m8 45.00002h7v7h-7z" fill="url(#aD)"/><path d="m17 45.00002h9v9h-9z" fill="url(#aE)"/><path d="m34 47.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#aF)"/><path d="m42 48.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#aG)"/><path d="m53 49.50002a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#aH)"/><path d="m61 49.00002a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#aI)"/></g><path d="m65.5 44.00002c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z" fill="#c93400"/><g fill="#ff9500"><path d="m69 49.50002a3.5 4.5 0 0 1 -3.5 4.5 3.5 4.5 0 0 1 -3.5-4.5 3.5 4.5 0 0 1 3.5-4.5 3.5 4.5 0 0 1 3.5 4.5z" fill="url(#aJ)"/><path d="m79 47.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#aK)"/><path d="m89 48.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#aL)"/><path d="m90 44v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#aM)"/><path d="m97 44v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#aN)"/><path d="m106 44v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#aO)"/></g><g fill="#fff"><path d="m93 45.00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z"/><path d="m101 45.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z"/><path d="m111 45.00002v4h-4v 1h4v4h1v-4h4v-1h-4v-4z"/></g><g fill="#d70015" transform="translate(0 -11)"><path d="m0 33h7v7.00002h-7z" fill="url(#K)"/><path d="m8 34h7v7.00002h-7z" fill="url(#L)"/><path d="m17 34h9v9.00002h-9z" fill="url(#M)"/><path d="m34 36.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#N)"/><path d="m42 37.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#O)"/><path d="m53 38.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#P)"/><path d="m61 38a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#Q)"/><path d="m69 38.49999a3.5 4.49999 0 0 1 -3.5 4.49999 3.5 4.49999 0 0 1 -3.5-4.49999 3.5 4.49999 0 0 1 3.5-4.49999 3.5 4.49999 0 0 1 3.5 4.49999z" fill="url(#R)"/><path d="m79 36.5a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#S)"/><path d= "m89 37.5a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#T)"/><path d="m90 33v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#U)"/><path d="m97 33v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#V)"/><path d="m106 33v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#W)"/></g><g fill="#fff"><path d="m93 34v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 34v3h-3v1h3v3.00002h1v-3.00002h3v-1h-3v-3z" opacity=".9"/><path d="m111 34v4h-4v1h4v4.00002h1v-4.00002h4v-1h-4v-4z" opacity=".9"/></g><path d="m73 67.00002h11v11h-11z" fill="url(#J)"/><path d="m86 80.00002h11v11h-11z" fill="url(#X)"/><path d="m73 80.00002h11v11h-11z" fill="url(#am)"/><path d="m86 67.00002h11v11h-11z" fill="url(#aP)"/><path d="m99 80.00002h11v11h-11z" fill="url(#aB)"/><path d="m7.5 71c-2.485281 0-4.5 2.0147-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719-4.5-4.5-4.5z" fill="url(#aQ)"/><path d="m49 68v22h22v-22zm11 3c1. 104569 0 2 .89543 2 2 0 .93198-.637301 1.715537-1.5 1.9375v2.0625h2.5v1h-2.5v7.96875c2.539039-.16277 4.748393-1.51216 6.09375-3.5l-.1875-.09375-.90625-.5.5-.875s3.000014 1.62437 3 1.625l-.5.875-1.03125-.5625c-1.604845 2.43564-4.335597 4.0625-7.46875 4.0625s-5.864588-1.62686-7.46875-4.0625l-1.03125.5625-.5-.875s3.000019-1.624983 3-1.625l.5.875-.90625.5-.1875.09375c1.345357 1.98784 3.55471 3.33723 6.09375 3.5v-7.96875h-2.5v-1h2.5v-2.0625c-.862699-.221963-1.5-1.00552-1.5-1.9375 0-1.10457.895431-2 2-2zm0 1c-.552285 0-1 .447715-1 1s.447715 1 1 1 1-.447715 1-1-.447715-1-1-1z" fill="url(#q)"/><g fill="#fff"><path d="m93 23v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 23v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 23v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/><path d="m93 56.00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 56.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 56.00002v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/><path d="m7 6 8v2.03125c-2.6379251.238104-4.7306463 2.330825-4.96875 4.96875h-2.03125v1h2.03125c.2381037 2.637925 2.3308249 4.730646 4.96875 4.96875v2.03125h1v-2.03125c2.637925-.238104 4.730646-2.330825 4.96875-4.96875h2.03125v-1h-2.03125c-.238104-2.637925-2.330825-4.730646-4.96875-4.96875v-2.03125zm0 3.0625v.9375h1v-.9375c2.079314.233649 3.703851 1.858186 3.9375 3.9375h-.9375v1h.9375c-.233649 2.079314-1.858186 3.703851-3.9375 3.9375v-.9375h-1v.9375c-2.0793143-.233649-3.7038511-1.858186-3.9375-3.9375h.9375v-1h-.9375c.2336489-2.079314 1.8581857-3.703851 3.9375-3.9375z" opacity=".9"/><path d="m93 45.00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 45.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 45.00002v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/></g><g fill="#c93400"><path d="m7 44.00002v8 1h8 1v-9h-1-7zm1 1h7v7h-7z"/><path d="m16 44.00002v11h11v-11zm1 1h9v9h-9z"/><path d="m38.5 44.00002c-2.485281 0-4.5 2.0147-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719- 4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 44.00002c-3.037566 0-5.5 2.4624-5.5 5.5s2.462434 5.5 5.5 5.5 5.5-2.4624 5.5-5.5-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 44.00002c-3.037566 0-5.5 2.0147-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567-4.5-3.5 2.014719-3.5 4.5-3.5z"/></g><g fill="#fff"><path d="m93 12.00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 12.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 12.00002v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/></g><g fill="#d70015" transform="translate(0 -11.00001)"><path d="m16 33v11.00002h11v-11.00002zm1 1h9v9.00002h-9z"/><path d="m7 33v9.00002h9v-9.00002zm1 1h7v7.00002h-7z"/><path d="m38.5 33c-2.485281 0-4.5 2.0147-4.5 4.5 0 2.48532 2.014719 4. 50002 4.5 4.50002s4.5-2.0147 4.5-4.50002c0-2.4853-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.50002-3.5 3.50002-3.5-1.56702-3.5-3.50002 1.567003-3.5 3.5-3.5z"/><path d="m48.5 33c-3.037566 0-5.5 2.4624-5.5 5.5 0 3.03752 2.462434 5.50002 5.5 5.50002s5.5-2.4625 5.5-5.50002c0-3.0376-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5 0 2.48532-2.014719 4.50002-4.5 4.50002s-4.5-2.0147-4.5-4.50002c0-2.4853 2.014719-4.5 4.5-4.5z"/><path d="m84.5 33c-3.037566 0-5.5 2.0147-5.5 4.5 0 2.48532 2.462434 4.50002 5.5 4.50002s5.5-2.0147 5.5-4.50002c0-2.4853-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.50002-4.5 3.50002-4.5-1.56702-4.5-3.50002 2.014719-3.5 4.5-3.5z"/><path d="m65.5 33c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.03752 2.014719 5.50002 4.5 5.50002s4.5-2.4625 4.5-5.50002c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5 0 2.48532-1.567003 4.50002-3.5 4.50002s-3.5-2.0147-3.5-4.50002c0-2.4853 1.567003-4.5 3.5-4.5z"/></g><g fill="#004 0dd"><path d="m7 0v8 1h8 1v-9h-1-7zm1 1h7v7h-7z"/><path d="m16 0v11h11v-11zm1 1h9v9h-9z"/><path d="m38.5 0c-2.485281 0-4.5 2.0147186-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147186 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.5670034 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.5670034-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 0c-3.037566 0-5.5 2.4624339-5.5 5.5s2.462434 5.5 5.5 5.5 5.5-2.4624339 5.5-5.5-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147186 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147186-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 0c-3.037566 0-5.5 2.0147186-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147186 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.5670034 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.5670034-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 0c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z"/></g><g fill="#2a9 240" transform="translate(0 11.00001)"><path d="m16 22v11h11v-11zm1 1h9v9h-9z"/><path d="m7 22v9h9v-9zm1 1h7v7h-7z"/><path d="m38.5 22c-2.485281 0-4.5 2.0147-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 22c-3.037566 0-5.5 2.4624-5.5 5.5 0 3.0375 2.462434 5.5 5.5 5.5s5.5-2.4625 5.5-5.5c0-3.0376-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 22c-3.037566 0-5.5 2.0147-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 22c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z"/></g><g f ill="#69696e"><path d="m16 55.00002v11h11v-11zm1 1h9v9h-9z"/><path d="m7 55.00002v9h9v-9zm1 1h7v7h-7z"/><path d="m38.5 55.00002c-2.485281 0-4.5 2.0147-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 55.00002c-3.037566 0-5.5 2.4624-5.5 5.5 0 3.0375 2.462434 5.5 5.5 5.5s5.5-2.4625 5.5-5.5c0-3.0376-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 55.00002c-3.037566 0-5.5 2.0147-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 55.00002c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z "/></g><path d="m24 71.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="#fff"/><path d="m19.5 68a3.5 3.5 0 0 0 -3.5 3.5 3.5 3.5 0 0 0 3.5 3.5 3.5 3.5 0 0 0 3.5-3.5 3.5 3.5 0 0 0 -3.5-3.5zm-.5 1h1v2h2v1h-2v2h-1v-2h-2v-1h2z" fill="url(#Y)"/><path d="m19 69v2h-2v1h2v2h1v-2h2v-1h-2v-2z" fill="#fff" opacity=".9"/><path d="m24 80.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="#fff"/><path d="m19.5 77a3.5 3.5 0 0 0 -3.5 3.5 3.5 3.5 0 0 0 3.5 3.5 3.5 3.5 0 0 0 3.5-3.5 3.5 3.5 0 0 0 -3.5-3.5zm-.5 1h1v2h2v1h-2v2h-1v-2h-2v-1h2z" fill="url(#an)"/><path d="m19 78v2h-2v1h2v2h1v-2h2v-1h-2v-2z" fill="#fff" opacity=".9"/><path d="m60 71.00002c-1.104569 0-2 .8954-2 2 0 .932.637301 1.7155 1.5 1.9375v2.0625h-2.5v1h2.5v7.9687c-2.53904-.1627-4.748393-1.5121-6.09375-3.5l.1875-.094.90625-.5-.5-.875c.000019 0-3 1.625-3 1.625l.5.875 1.03125-.5625c1.604162 2.4357 4.335597 4.0625 7.46875 4.0625s5.863905-1.62 68 7.46875-4.0625l1.03125.5625.5-.875c.000014-.0006-3-1.625-3-1.625l-.5.875.90625.5.1875.094c-1.345357 1.9879-3.554711 3.3373-6.09375 3.5v-7.9687h2.5v-1h-2.5v-2.0625c.862699-.222 1.5-1.0055 1.5-1.9375 0-1.1046-.895431-2-2-2zm0 1c.552285 0 1 .4477 1 1s-.447715 1-1 1-1-.4477-1-1 .447715-1 1-1z" fill="#fff" fill-rule="evenodd" opacity=".9"/><g fill="#a05a00"><path d="m7 11v8 1h8 1v-9h-1-7zm1 1h7v7h-7z"/><path d="m16 11v11h11v-11zm1 1h9v9h-9z"/><path d="m38.5 11c-2.485281 0-4.5 2.014719-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.014719 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567003 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567003-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 11c-3.037566 0-5.5 2.462434-5.5 5.5s2.462434 5.5 5.5 5.5 5.5-2.462434 5.5-5.5-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.014719 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.014719-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 11c-3.037566 0-5.5 2.014719-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.014719 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567003 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567003-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 11c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z"/></g><g fill="#fff"><path d="m93 1v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 1v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 1v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/></g></svg> \ No newline at end of file +<svg viewBox="0 0 117 92" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a"><stop offset="0" stop-color="#848489"/><stop offset="1" stop-color="#98989d" stop-opacity=".949612"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="99" x2="99" xlink:href="#a" y1="78" y2="67"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="27" x2="27" xlink:href="#a" y1="87" y2="71"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#a" y1="62" y2="55"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#a" y1="63" y2="56"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#a" y1="65" y2="56"/><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="30" x2="30" xlink:href="#a" y1="62" y2="55"/><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="38" x2="38" xlink:href="#a" y1="63" y2="56"/><linearGradient id="i" gradientUnit s="userSpaceOnUse" x1="49" x2="48.5" xlink:href="#a" y1="65" y2="56.000019"/><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="57" x2="57" xlink:href="#a" y1="65" y2="55"/><linearGradient id="k" gradientUnits="userSpaceOnUse" x1="65" x2="65" xlink:href="#a" y1="65" y2="56"/><linearGradient id="l" gradientUnits="userSpaceOnUse" x1="74" x2="74" xlink:href="#a" y1="62" y2="55"/><linearGradient id="m" gradientUnits="userSpaceOnUse" x1="84" x2="84" xlink:href="#a" y1="63" y2="56"/><linearGradient id="n" gradientUnits="userSpaceOnUse" x1="90" x2="90" xlink:href="#a" y1="62" y2="55"/><linearGradient id="o" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#a" y1="64" y2="55"/><linearGradient id="p" gradientUnits="userSpaceOnUse" x1="106" x2="106" xlink:href="#a" y1="66" y2="55"/><linearGradient id="q" gradientUnits="userSpaceOnUse" x1="49" x2="49" xlink:href="#a" y1="90" y2="68"/><linearGradient id="r"><stop offset="0" stop-color="#f58b00"/><stop offset="1" stop-color="#ff 9f0a" stop-opacity=".74031"/></linearGradient><linearGradient id="s"><stop offset="0" stop-color="#f5c200"/><stop offset="1" stop-color="#ffd60a"/></linearGradient><linearGradient id="t"><stop offset="0" stop-color="#2a9240"/><stop offset="1" stop-color="#32d74b" stop-opacity=".755814"/></linearGradient><linearGradient id="u"><stop offset="0" stop-color="#d70015"/><stop offset="1" stop-color="#ff453a" stop-opacity=".976744"/></linearGradient><linearGradient id="v"><stop offset="0" stop-color="#0040dd"/><stop offset="1" stop-color="#0a84ff"/></linearGradient><linearGradient id="w" gradientUnits="userSpaceOnUse" x1="3" x2="3" xlink:href="#v" y1="7" y2="0"/><linearGradient id="x" gradientUnits="userSpaceOnUse" x1="102" x2="102" xlink:href="#v" y1="9" y2="0"/><linearGradient id="y" gradientUnits="userSpaceOnUse" x1="112" x2="112" xlink:href="#v" y1="11" y2="0"/><linearGradient id="z" gradientUnits="userSpaceOnUse" x1="94" x2="94" xlink:href="#v" y1="7" y2="0"/><linearGradient id="A" gra dientUnits="userSpaceOnUse" x1="12" x2="12" xlink:href="#v" y1="8" y2="2"/><linearGradient id="B" gradientUnits="userSpaceOnUse" x1="22" x2="22" xlink:href="#v" y1="10" y2="2"/><linearGradient id="C" gradientUnits="userSpaceOnUse" x1="30" x2="30.5" xlink:href="#v" y1="7" y2="0"/><linearGradient id="D" gradientUnits="userSpaceOnUse" x1="39" x2="39" xlink:href="#v" y1="8" y2="1"/><linearGradient id="E" gradientUnits="userSpaceOnUse" x1="48.5" x2="48.5" xlink:href="#v" y1="10" y2="1"/><linearGradient id="F" gradientUnits="userSpaceOnUse" x1="57.5" x2="57.5" xlink:href="#v" y1="10" y2="0"/><linearGradient id="G" gradientUnits="userSpaceOnUse" x1="65.5" x2="65.5" xlink:href="#v" y1="10" y2="1"/><linearGradient id="H" gradientUnits="userSpaceOnUse" x1="84" x2="84" xlink:href="#v" y1="8" y2="1"/><linearGradient id="I" gradientUnits="userSpaceOnUse" x1="75" x2="74.5" xlink:href="#v" y1="7" y2="0"/><linearGradient id="J" gradientUnits="userSpaceOnUse" x1="79" x2="79" xlink:href="#v" y1="78" y2="67"/><linearGradient id="K" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#u" y1="40" y2="33"/><linearGradient id="L" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#u" y1="41" y2="34"/><linearGradient id="M" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#u" y1="43" y2="34"/><linearGradient id="N" gradientUnits="userSpaceOnUse" x1="30.5" x2="30.5" xlink:href="#u" y1="40" y2="33"/><linearGradient id="O" gradientUnits="userSpaceOnUse" x1="39" x2="39" xlink:href="#u" y1="41" y2="34"/><linearGradient id="P" gradientUnits="userSpaceOnUse" x1="49" x2="49" xlink:href="#u" y1="43" y2="34"/><linearGradient id="Q" gradientUnits="userSpaceOnUse" x1="57.5" x2="57.5" xlink:href="#u" y1="43" y2="33"/><linearGradient id="R" gradientUnits="userSpaceOnUse" x1="65.5" x2="65.5" xlink:href="#u" y1="43" y2="34"/><linearGradient id="S" gradientUnits="userSpaceOnUse" x1="74.5" x2="74.5" xlink:href="#u" y1="40" y2="33"/><linearGradient id="T" gradientUnits="userSpaceOn Use" x1="84.5" x2="84.5" xlink:href="#u" y1="41" y2="34"/><linearGradient id="U" gradientUnits="userSpaceOnUse" x1="94" x2="94" xlink:href="#u" y1="40" y2="33"/><linearGradient id="V" gradientUnits="userSpaceOnUse" x1="102" x2="102" xlink:href="#u" y1="42" y2="33"/><linearGradient id="W" gradientUnits="userSpaceOnUse" x1="112" x2="112" xlink:href="#u" y1="44" y2="33"/><linearGradient id="X" gradientUnits="userSpaceOnUse" x1="86" x2="86" xlink:href="#u" y1="91" y2="80"/><linearGradient id="Y" gradientUnits="userSpaceOnUse" x1="19.5" x2="19.5" xlink:href="#u" y1="75" y2="68"/><linearGradient id="Z" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#t" y1="29" y2="22"/><linearGradient id="aa" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#t" y1="30" y2="23"/><linearGradient id="ab" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#t" y1="32" y2="23"/><linearGradient id="ac" gradientUnits="userSpaceOnUse" x1="30.5" x2="30.5" xlink:href="#t" y1="29" y2="22"/>< linearGradient id="ad" gradientUnits="userSpaceOnUse" x1="38.5" x2="38.5" xlink:href="#t" y1="30" y2="23"/><linearGradient id="ae" gradientUnits="userSpaceOnUse" x1="48.5" x2="48.5" xlink:href="#t" y1="32" y2="23"/><linearGradient id="af" gradientUnits="userSpaceOnUse" x1="57.5" x2="57.5" xlink:href="#t" y1="32" y2="22"/><linearGradient id="ag" gradientUnits="userSpaceOnUse" x1="65.5" x2="65.5" xlink:href="#t" y1="32" y2="23"/><linearGradient id="ah" gradientUnits="userSpaceOnUse" x1="74.5" x2="74.5" xlink:href="#t" y1="29" y2="22"/><linearGradient id="ai" gradientUnits="userSpaceOnUse" x1="84.5" x2="84.5" xlink:href="#t" y1="30" y2="23"/><linearGradient id="aj" gradientUnits="userSpaceOnUse" x1="90" x2="90" xlink:href="#t" y1="29" y2="22"/><linearGradient id="ak" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#t" y1="31" y2="22"/><linearGradient id="al" gradientUnits="userSpaceOnUse" x1="106" x2="106" xlink:href="#t" y1="33" y2="22"/><linearGradient id="am" gradientUnit s="userSpaceOnUse" x1="73" x2="74" xlink:href="#t" y1="91.000023" y2="80"/><linearGradient id="an" gradientUnits="userSpaceOnUse" x1="19.5" x2="19.5" xlink:href="#t" y1="84" y2="77"/><linearGradient id="ao" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#s" y1="18" y2="11"/><linearGradient id="ap" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#s" y1="19" y2="12"/><linearGradient id="aq" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#s" y1="21" y2="12"/><linearGradient id="ar" gradientUnits="userSpaceOnUse" x1="27" x2="34" xlink:href="#s" y1="14.50002" y2="14.50002"/><linearGradient id="as" gradientUnits="userSpaceOnUse" x1="39" x2="39" xlink:href="#s" y1="19" y2="12"/><linearGradient id="at" gradientUnits="userSpaceOnUse" x1="49" x2="49" xlink:href="#s" y1="21" y2="12"/><linearGradient id="au" gradientUnits="userSpaceOnUse" x1="58" x2="58" xlink:href="#s" y1="21" y2="11"/><linearGradient id="av" gradientUnits="userSpaceOnUse" x1="65" x2="65" xlink:h ref="#s" y1="21" y2="12"/><linearGradient id="aw" gradientUnits="userSpaceOnUse" x1="74.5" x2="74.5" xlink:href="#s" y1="18" y2="11"/><linearGradient id="ax" gradientUnits="userSpaceOnUse" x1="84.5" x2="84.5" xlink:href="#s" y1="19" y2="12"/><linearGradient id="ay" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#s" y1="18" y2="11"/><linearGradient id="az" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#s" y1="20" y2="11"/><linearGradient id="aA" gradientUnits="userSpaceOnUse" x1="106" x2="106" xlink:href="#s" y1="22" y2="11"/><linearGradient id="aB" gradientUnits="userSpaceOnUse" x1="99" x2="99" xlink:href="#s" y1="91" y2="80"/><linearGradient id="aC" gradientUnits="userSpaceOnUse" x1="0" x2="0" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aD" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#r" y1="52" y2="45"/><linearGradient id="aE" gradientUnits="userSpaceOnUse" x1="17" x2="17" xlink:href="#r" y1="54" y2="45"/><linearGradient id="aF" gradi entUnits="userSpaceOnUse" x1="30" x2="30" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aG" gradientUnits="userSpaceOnUse" x1="38" x2="38" xlink:href="#r" y1="52" y2="45"/><linearGradient id="aH" gradientUnits="userSpaceOnUse" x1="48" x2="48.5" xlink:href="#r" y1="54" y2="45.000019"/><linearGradient id="aI" gradientUnits="userSpaceOnUse" x1="57" x2="57" xlink:href="#r" y1="54" y2="44"/><linearGradient id="aJ" gradientUnits="userSpaceOnUse" x1="66" x2="66" xlink:href="#r" y1="54" y2="45"/><linearGradient id="aK" gradientUnits="userSpaceOnUse" x1="75" x2="75" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aL" gradientUnits="userSpaceOnUse" x1="80" x2="89" xlink:href="#r" y1="48.50002" y2="48.50002"/><linearGradient id="aM" gradientUnits="userSpaceOnUse" x1="90" x2="90" xlink:href="#r" y1="51" y2="44"/><linearGradient id="aN" gradientUnits="userSpaceOnUse" x1="97" x2="97" xlink:href="#r" y1="53" y2="44"/><linearGradient id="aO" gradientUnits="userSpaceOnUse" x1="112" x2="1 12" xlink:href="#r" y1="55" y2="44"/><linearGradient id="aP" gradientUnits="userSpaceOnUse" x1="92" x2="92" xlink:href="#r" y1="78" y2="67"/><linearGradient id="aQ" gradientUnits="userSpaceOnUse" x1="8" x2="8" xlink:href="#r" y1="79.9375" y2="72"/><path d="m99 67.00002h11v11h-11z" fill="url(#b)"/><path d="m25 68.00002h22v22h-22z" fill="#b3b3b3" opacity=".2"/><path d="m35.5 71a2.5 2.5 0 0 0 -2.5 2.5 2.5 2.5 0 0 0 2.037109 2.455078 2.5 2.5 0 0 1 -.037109-.005859v1.050781h-3v1h3v7.96875c-2.53904-.1627-4.248393-1.5121-5.59375-3.5l.1875-.09375.90625-.5-.5-.875c.000019 0-3 1.625-3 1.625l.5.875 1.03125-.5625c1.604162 2.4357 3.835597 4.0625 6.96875 4.0625s5.364588-1.6268 6.96875-4.0625l1.03125.5625.5-.875s-3.000019-1.625-3-1.625l-.5.875.90625.5.1875.09375c-1.345357 1.9879-3.05471 3.3373-5.59375 3.5v-7.96875h3v-1h-3v-1.050781a2.5 2.5 0 0 0 2-2.449219 2.5 2.5 0 0 0 -2.5-2.5zm0 1a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1 -1.5 1.5 1.5 1.5 0 0 1 -1.5-1.5 1.5 1.5 0 0 1 1.5-1.5zm-.349609 3.972656a2.5 2. 5 0 0 0 .140625.017578 2.5 2.5 0 0 1 -.140625-.017578z" fill="url(#c)" fill-rule="evenodd"/><g fill="#2a9240" transform="translate(0 11)"><path d="m0 22h7v7h-7z" fill="url(#Z)"/><path d="m8 23h7v7h-7z" fill="url(#aa)"/><path d="m17 23h9v9h-9z" fill="url(#ab)"/><path d="m34 25.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#ac)"/><path d="m42 26.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#ad)"/><path d="m53 27.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#ae)"/><path d="m61 27a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#af)"/><path d="m69 27.5a3.5 4.5 0 0 1 -3.5 4.5 3.5 4.5 0 0 1 -3.5-4.5 3.5 4.5 0 0 1 3.5-4.5 3.5 4.5 0 0 1 3.5 4.5z" fill="url(#ag)"/><path d="m79 25.5a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url (#ah)"/><path d="m89 26.5a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#ai)"/><path d="m90 22v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#aj)"/><path d="m97 22v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#ak)"/><path d="m106 22v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#al)"/></g><g fill="#0040dd"><path d="m97 0v9h9v-9zm4 1h1v1 2h2 1v1h-1-2v2 1h-1v-1-2h-2-1v-1h1 2v-2z" fill="url(#x)"/><path d="m106 0v11h11v-11zm5 1h1v1 3h3 1v1h-1-3v3 1h-1v-1-3h-3-1v-1h1 3v-3z" fill="url(#y)"/><path d="m90 0v7h7v-7zm3 1h1v1 1h1 1v1h-1-1v1 1h-1v-1-1h-1-1v-1h1 1v-1z" fill="url(#z)"/><path d="m0 0v7h7v-7z" fill="url(#w)"/><path d="m8 1v7h7v-7z" fill="url(#A)"/><path d="m17 1v9h9v-9z" fill="url(#B)"/><path d="m30.5 0c-1.932997 0-3.5 1.5670034-3.5 3.5s1.567003 3.5 3.5 3.5 3.5-1.5670034 3.5-3.5-1.567003-3.5-3.5-3.5z" fill="url(#C)"/><path d="m38.5 1c-1.932997 0-3.5 1.5670034-3.5 3.5s1.567003 3.5 3.5 3.5 3.5-1 .5670034 3.5-3.5-1.567003-3.5-3.5-3.5z" fill="url(#D)"/><path d="m48.5 1c-2.485281 0-4.5 2.0147186-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147186 4.5-4.5-2.014719-4.5-4.5-4.5z" fill="url(#E)"/><path d="m57.5 0c-1.932997 0-3.5 2.2385763-3.5 5s1.567003 5 3.5 5 3.5-2.2385763 3.5-5-1.567003-5-3.5-5z" fill="url(#F)"/><path d="m65.5 1c-1.932997 0-3.5 2.01472-3.5 4.5s1.567003 4.5 3.5 4.5 3.5-2.01472 3.5-4.5-1.567003-4.5-3.5-4.5z" fill="url(#G)"/><path d="m84.5 1c-2.485281 0-4.5 1.5670034-4.5 3.5s2.014719 3.5 4.5 3.5 4.5-1.5670034 4.5-3.5-2.014719-3.5-4.5-3.5z" fill="url(#H)"/><path d="m74.5 0c-2.485281 0-4.5 1.5670034-4.5 3.5s2.014719 3.5 4.5 3.5 4.5-1.5670034 4.5-3.5-2.014719-3.5-4.5-3.5z" fill="url(#I)"/></g><g fill="#ffd60a"><path d="m0 11h7v7h-7z" fill="url(#ao)"/><path d="m8 12h7v7h-7z" fill="url(#ap)"/><path d="m17 12h9v9h-9z" fill="url(#aq)"/><path d="m34 14.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#ar)"/><path d="m42 15 .50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#as)"/><path d="m53 16.50002a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#at)"/><path d="m61 16.00002a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#au)"/><path d="m69 16.50003a3.5 4.50001 0 0 1 -3.5 4.50001 3.5 4.50001 0 0 1 -3.5-4.50001 3.5 4.50001 0 0 1 3.5-4.50001 3.5 4.50001 0 0 1 3.5 4.50001z" fill="url(#av)"/><path d="m79 14.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#aw)"/><path d="m89 15.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#ax)"/><path d="m90 11v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#ay)"/><path d="m97 11v9h9c0-2.981105 0-5.990251 0-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#az)"/><path d="m106 11v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#aA)"/></g><g fill="#98989d"><path d="m0 55.00002h7v7h-7z" fill="url(#d)"/><path d="m8 56.00002h7v7h-7z" fill="url(#e)"/><path d="m17 56.00002h9v9h-9z" fill="url(#f)"/><path d="m34 58.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#g)"/><path d="m42 59.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#h)"/><path d="m53 60.50002a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#i)"/><path d="m61 60.00002a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#j)"/><path d="m69 60.50001a3.5 4.49999 0 0 1 -3.5 4.49999 3.5 4.49999 0 0 1 -3.5-4.49999 3.5 4.49999 0 0 1 3.5-4.49999 3.5 4.49999 0 0 1 3.5 4.49999z" fill="url(#k)"/><path d="m79 58.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fi ll="url(#l)"/><path d="m89 59.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#m)"/><path d="m90 55v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#n)"/><path d="m97 55v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#o)"/><path d="m106 55v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#p)"/></g><g fill="#ff9500"><path d="m0 44.00002h7v7h-7z" fill="url(#aC)"/><path d="m8 45.00002h7v7h-7z" fill="url(#aD)"/><path d="m17 45.00002h9v9h-9z" fill="url(#aE)"/><path d="m34 47.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#aF)"/><path d="m42 48.50002a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#aG)"/><path d="m53 49.50002a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#aH)"/><path d="m61 49.00002a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5- 5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#aI)"/></g><path d="m65.5 44.00002c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z" fill="#c93400"/><g fill="#ff9500"><path d="m69 49.50002a3.5 4.5 0 0 1 -3.5 4.5 3.5 4.5 0 0 1 -3.5-4.5 3.5 4.5 0 0 1 3.5-4.5 3.5 4.5 0 0 1 3.5 4.5z" fill="url(#aJ)"/><path d="m79 47.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#aK)"/><path d="m89 48.50002a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#aL)"/><path d="m90 44v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#aM)"/><path d="m97 44v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#aN)"/><path d="m106 44v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#aO)"/></g><g fill="#fff"><path d="m93 45. 00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z"/><path d="m101 45.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z"/><path d="m111 45.00002v4h-4v1h4v4h1v-4h4v-1h-4v-4z"/></g><g fill="#d70015" transform="translate(0 -11)"><path d="m0 33h7v7.00002h-7z" fill="url(#K)"/><path d="m8 34h7v7.00002h-7z" fill="url(#L)"/><path d="m17 34h9v9.00002h-9z" fill="url(#M)"/><path d="m34 36.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#N)"/><path d="m42 37.5a3.5 3.5 0 0 1 -3.5 3.5 3.5 3.5 0 0 1 -3.5-3.5 3.5 3.5 0 0 1 3.5-3.5 3.5 3.5 0 0 1 3.5 3.5z" fill="url(#O)"/><path d="m53 38.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="url(#P)"/><path d="m61 38a3.5 5 0 0 1 -3.5 5 3.5 5 0 0 1 -3.5-5 3.5 5 0 0 1 3.5-5 3.5 5 0 0 1 3.5 5z" fill="url(#Q)"/><path d="m69 38.49999a3.5 4.49999 0 0 1 -3.5 4.49999 3.5 4.49999 0 0 1 -3.5-4.49999 3.5 4.49999 0 0 1 3.5-4.49999 3.5 4.49999 0 0 1 3.5 4.49999z" fill="url(#R)"/><path d="m79 36.5 a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#S)"/><path d="m89 37.5a4.5 3.5 0 0 1 -4.5 3.5 4.5 3.5 0 0 1 -4.5-3.5 4.5 3.5 0 0 1 4.5-3.5 4.5 3.5 0 0 1 4.5 3.5z" fill="url(#T)"/><path d="m90 33v7h7v-7zm3 1h1v2h2v1h-2v2h-1v-1-1h-2v-1h2v-1z" fill="url(#U)"/><path d="m97 33v9h9v-9zm4 1h1v3h3v1h-3v3h-1v-1-2h-3v-1h3v-2z" fill="url(#V)"/><path d="m106 33v11h11v-11zm5 1h1v4h4v1h-4v4h-1v-1-3h-4v-1h4v-3z" fill="url(#W)"/></g><g fill="#fff"><path d="m93 34v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 34v3h-3v1h3v3.00002h1v-3.00002h3v-1h-3v-3z" opacity=".9"/><path d="m111 34v4h-4v1h4v4.00002h1v-4.00002h4v-1h-4v-4z" opacity=".9"/></g><path d="m73 67.00002h11v11h-11z" fill="url(#J)"/><path d="m86 80.00002h11v11h-11z" fill="url(#X)"/><path d="m73 80.00002h11v11h-11z" fill="url(#am)"/><path d="m86 67.00002h11v11h-11z" fill="url(#aP)"/><path d="m99 80.00002h11v11h-11z" fill="url(#aB)"/><path d="m7.5 71c-2.485281 0-4.5 2.0147-4.5 4 .5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719-4.5-4.5-4.5z" fill="url(#aQ)"/><path d="m49 68v22h22v-22zm10.5 3a2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1 -2 2.449219v1.050781h3v1h-3v7.96875c2.53904-.1627 4.248393-1.5121 5.59375-3.5l-.1875-.09375-.90625-.5.5-.875c-.000019 0 3 1.625 3 1.625l-.5.875-1.03125-.5625c-1.604162 2.4357-3.835597 4.0625-6.96875 4.0625s-5.364588-1.6268-6.96875-4.0625l-1.03125.5625-.5-.875s3.000019-1.625 3-1.625l.5.875-.90625.5-.1875.09375c1.345357 1.9879 3.054711 3.3373 5.59375 3.5v-7.96875h-3v-1h3v-1.050781a2.5 2.5 0 0 0 .037109.005859 2.5 2.5 0 0 1 -2.037109-2.455078 2.5 2.5 0 0 1 2.5-2.5zm0 1a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5z" fill="url(#q)"/><g fill="#fff"><path d="m93 23v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 23v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 23v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/><path d="m93 56.00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 56.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 56.00002v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/><path d="m7 68v2.03125c-2.6379251.238104-4.7306463 2.330825-4.96875 4.96875h-2.03125v1h2.03125c.2381037 2.637925 2.3308249 4.730646 4.96875 4.96875v2.03125h1v-2.03125c2.637925-.238104 4.730646-2.330825 4.96875-4.96875h2.03125v-1h-2.03125c-.238104-2.637925-2.330825-4.730646-4.96875-4.96875v-2.03125zm0 3.0625v.9375h1v-.9375c2.079314.233649 3.703851 1.858186 3.9375 3.9375h-.9375v1h.9375c-.233649 2.079314-1.858186 3.703851-3.9375 3.9375v-.9375h-1v.9375c-2.0793143-.233649-3.7038511-1.858186-3.9375-3.9375h.9375v-1h-.9375c.2336489-2.079314 1.8581857-3.703851 3.9375-3.9375z" opacity=".9"/><path d="m93 45.00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 45.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 45.00002v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/></g><g fill="#c93400"><path d="m7 44.00002v8 1h8 1v-9h-1-7zm1 1h7v7h-7z"/><path d="m16 44.00002v11h11v-11zm1 1h9v9h-9z"/><path d="m38.5 44.00002c-2.485281 0-4.5 2.0147-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 44.00002c-3.037566 0-5.5 2.4624-5.5 5.5s2.462434 5.5 5.5 5.5 5.5-2.4624 5.5-5.5-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 44.00002c-3.037566 0-5.5 2.0147-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567-4.5-3.5 2.014719-3.5 4.5-3.5z"/></g><g fill="#fff"><path d="m93 12.00002v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 12.00002v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 12.00002v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/></g><g fill="#d70015" transform="translate(0 -11.00001)"><path d="m16 33v11.00002h11v-11.00002zm1 1h9v 9.00002h-9z"/><path d="m7 33v9.00002h9v-9.00002zm1 1h7v7.00002h-7z"/><path d="m38.5 33c-2.485281 0-4.5 2.0147-4.5 4.5 0 2.48532 2.014719 4.50002 4.5 4.50002s4.5-2.0147 4.5-4.50002c0-2.4853-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.50002-3.5 3.50002-3.5-1.56702-3.5-3.50002 1.567003-3.5 3.5-3.5z"/><path d="m48.5 33c-3.037566 0-5.5 2.4624-5.5 5.5 0 3.03752 2.462434 5.50002 5.5 5.50002s5.5-2.4625 5.5-5.50002c0-3.0376-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5 0 2.48532-2.014719 4.50002-4.5 4.50002s-4.5-2.0147-4.5-4.50002c0-2.4853 2.014719-4.5 4.5-4.5z"/><path d="m84.5 33c-3.037566 0-5.5 2.0147-5.5 4.5 0 2.48532 2.462434 4.50002 5.5 4.50002s5.5-2.0147 5.5-4.50002c0-2.4853-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.50002-4.5 3.50002-4.5-1.56702-4.5-3.50002 2.014719-3.5 4.5-3.5z"/><path d="m65.5 33c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.03752 2.014719 5.50002 4.5 5.50002s4.5-2.4625 4.5-5.50002c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.93 2997 0 3.5 2.0147 3.5 4.5 0 2.48532-1.567003 4.50002-3.5 4.50002s-3.5-2.0147-3.5-4.50002c0-2.4853 1.567003-4.5 3.5-4.5z"/></g><g fill="#0040dd"><path d="m7 0v8 1h8 1v-9h-1-7zm1 1h7v7h-7z"/><path d="m16 0v11h11v-11zm1 1h9v9h-9z"/><path d="m38.5 0c-2.485281 0-4.5 2.0147186-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147186 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.5670034 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.5670034-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 0c-3.037566 0-5.5 2.4624339-5.5 5.5s2.462434 5.5 5.5 5.5 5.5-2.4624339 5.5-5.5-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147186 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147186-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 0c-3.037566 0-5.5 2.0147186-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147186 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.5670034 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.5670034-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 0c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376 -2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z"/></g><g fill="#2a9240" transform="translate(0 11.00001)"><path d="m16 22v11h11v-11zm1 1h9v9h-9z"/><path d="m7 22v9h9v-9zm1 1h7v7h-7z"/><path d="m38.5 22c-2.485281 0-4.5 2.0147-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 22c-3.037566 0-5.5 2.4624-5.5 5.5 0 3.0375 2.462434 5.5 5.5 5.5s5.5-2.4625 5.5-5.5c0-3.0376-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 22c-3.037566 0-5.5 2.0147-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 22c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5 c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z"/></g><g fill="#69696e"><path d="m16 55.00002v11h11v-11zm1 1h9v9h-9z"/><path d="m7 55.00002v9h9v-9zm1 1h7v7h-7z"/><path d="m38.5 55.00002c-2.485281 0-4.5 2.0147-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.0147 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 55.00002c-3.037566 0-5.5 2.4624-5.5 5.5 0 3.0375 2.462434 5.5 5.5 5.5s5.5-2.4625 5.5-5.5c0-3.0376-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.0147 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.0147-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 55.00002c-3.037566 0-5.5 2.0147-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.0147 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 55.00002c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4 625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z"/></g><path d="m24 71.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="#fff"/><path d="m19.5 68a3.5 3.5 0 0 0 -3.5 3.5 3.5 3.5 0 0 0 3.5 3.5 3.5 3.5 0 0 0 3.5-3.5 3.5 3.5 0 0 0 -3.5-3.5zm-.5 1h1v2h2v1h-2v2h-1v-2h-2v-1h2z" fill="url(#Y)"/><path d="m19 69v2h-2v1h2v2h1v-2h2v-1h-2v-2z" fill="#fff" opacity=".9"/><path d="m24 80.5a4.5 4.5 0 0 1 -4.5 4.5 4.5 4.5 0 0 1 -4.5-4.5 4.5 4.5 0 0 1 4.5-4.5 4.5 4.5 0 0 1 4.5 4.5z" fill="#fff"/><path d="m19.5 77a3.5 3.5 0 0 0 -3.5 3.5 3.5 3.5 0 0 0 3.5 3.5 3.5 3.5 0 0 0 3.5-3.5 3.5 3.5 0 0 0 -3.5-3.5zm-.5 1h1v2h2v1h-2v2h-1v-2h-2v-1h2z" fill="url(#an)"/><path d="m19 78v2h-2v1h2v2h1v-2h2v-1h-2v-2z" fill="#fff" opacity=".9"/><g fill="#a05a00"><path d="m7 11v8 1h8 1v-9h-1-7zm1 1h7v7h-7z"/><path d="m16 11v11h11v-11zm1 1h9v9h-9z"/><path d="m38.5 11c-2.485281 0-4.5 2.0 14719-4.5 4.5s2.014719 4.5 4.5 4.5 4.5-2.014719 4.5-4.5-2.014719-4.5-4.5-4.5zm0 1c1.932997 0 3.5 1.567003 3.5 3.5s-1.567003 3.5-3.5 3.5-3.5-1.567003-3.5-3.5 1.567003-3.5 3.5-3.5z"/><path d="m48.5 11c-3.037566 0-5.5 2.462434-5.5 5.5s2.462434 5.5 5.5 5.5 5.5-2.462434 5.5-5.5-2.462434-5.5-5.5-5.5zm0 1c2.485281 0 4.5 2.014719 4.5 4.5s-2.014719 4.5-4.5 4.5-4.5-2.014719-4.5-4.5 2.014719-4.5 4.5-4.5z"/><path d="m84.5 11c-3.037566 0-5.5 2.014719-5.5 4.5s2.462434 4.5 5.5 4.5 5.5-2.014719 5.5-4.5-2.462434-4.5-5.5-4.5zm0 1c2.485281 0 4.5 1.567003 4.5 3.5s-2.014719 3.5-4.5 3.5-4.5-1.567003-4.5-3.5 2.014719-3.5 4.5-3.5z"/><path d="m65.5 11c-2.485281 0-4.5 2.4624-4.5 5.5 0 3.0375 2.014719 5.5 4.5 5.5s4.5-2.4625 4.5-5.5c0-3.0376-2.014719-5.5-4.5-5.5zm0 1c1.932997 0 3.5 2.0147 3.5 4.5s-1.567003 4.5-3.5 4.5-3.5-2.0147-3.5-4.5 1.567003-4.5 3.5-4.5z"/></g><g fill="#fff"><g><path d="m93 1v2h-2v1h2v2h1v-2h2v-1h-2v-2z" opacity=".9"/><path d="m101 1v3h-3v1h3v3h1v-3h3v-1h-3v-3z" opacity=".9"/><path d="m111 1v4h-4v1h4v4h1v-4h4v-1h-4v-4z" opacity=".9"/></g><path d="m59.500001 71.000041a2.5 2.5 0 0 0 -2.5 2.5 2.5 2.5 0 0 0 2.037109 2.455078 2.5 2.5 0 0 1 -.03711-.0059v1.050781h-3v1h3v7.968791c-2.539039-.1627-4.248392-1.5121-5.593749-3.5l.1875-.09375.90625-.5-.5-.875c.000019 0-3 1.625-3 1.625l.5.875 1.03125-.5625c1.604162 2.4357 3.835597 4.0625 6.96875 4.0625s5.364588-1.6268 6.96875-4.0625l1.03125.5625.5-.875s-3.000019-1.625-3-1.625l-.5.875.90625.5.1875.09375c-1.345357 1.9879-3.05471 3.3373-5.59375 3.5v-7.96875h3v-1h-3v-1.050781a2.5 2.5 0 0 0 2-2.449219 2.5 2.5 0 0 0 -2.5-2.5zm0 1a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1 -1.5 1.5 1.5 1.5 0 0 1 -1.5-1.5 1.5 1.5 0 0 1 1.5-1.5zm-.349609 3.972656a2.5 2.5 0 0 0 .140625.01758 2.5 2.5 0 0 1 -.140625-.01758z" fill-opacity=".901961" fill-rule="evenodd"/></g></svg> \ No newline at end of file commit a90c9f59d8f2e9a24527ac86b0f8b8c6eaa29a07 Author: Julien Nabet <serval2...@yahoo.fr> AuthorDate: Sat Apr 10 19:09:41 2021 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:57 2021 +0200 Related tdf#117750: fix "Solarization" and "Aging" For solarization, regression from: https://cgit.freedesktop.org/libreoffice/core/commit/?id=c38485279cd36da96ac81107d567ea4e779b2b96 author Chris Sherlock <chris.sherloc...@gmail.com> 2018-04-20 20:27:41 +1000 committer Tomaž Vajngerl <qui...@gmail.com> 2018-04-22 05:33:11 +0200 commit c38485279cd36da96ac81107d567ea4e779b2b96 (patch) tree ad9843a17f87271f9e0cf89643e2e6c3ee8a8de1 parent bcbf767bcfc024e2be839e0c0886f942dd068e4f (diff) vcl: ImplSolarize() to BitmapSolarizeFilter For aging, regression from: https://cgit.freedesktop.org/libreoffice/core/commit/?id=1ab12471f3a69c4d502e6271e84ddf8a981f507f author Chris Sherlock <chris.sherloc...@gmail.com> 2018-04-20 20:32:23 +1000 committer Tomaž Vajngerl <qui...@gmail.com> 2018-04-22 05:33:39 +0200 commit 1ab12471f3a69c4d502e6271e84ddf8a981f507f (patch) tree 6652276229ad1c3ffca48f7a31e1b77d2ea04b07 parent c38485279cd36da96ac81107d567ea4e779b2b96 (diff) vcl: ImplSepia -> BitmapSepiaFilter Change-Id: I4f350aa8b494caf55c9c810ac7fa9ed8db349725 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113926 (cherry picked from commit f3151e62bcc7cb66313df70a2ec8eed8ca8f2c88) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113858 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/bitmap/BitmapSepiaFilter.cxx b/vcl/source/bitmap/BitmapSepiaFilter.cxx index cfac984b8fa3..9c1ff76672d3 100644 --- a/vcl/source/bitmap/BitmapSepiaFilter.cxx +++ b/vcl/source/bitmap/BitmapSepiaFilter.cxx @@ -103,7 +103,7 @@ BitmapEx BitmapSepiaFilter::execute(BitmapEx const& rBitmapEx) const } if (bRet) - return rBitmapEx; + return BitmapEx(aBitmap); return BitmapEx(); } diff --git a/vcl/source/bitmap/BitmapSolarizeFilter.cxx b/vcl/source/bitmap/BitmapSolarizeFilter.cxx index c4df366a65cb..0fc4ab6136cc 100644 --- a/vcl/source/bitmap/BitmapSolarizeFilter.cxx +++ b/vcl/source/bitmap/BitmapSolarizeFilter.cxx @@ -63,7 +63,7 @@ BitmapEx BitmapSolarizeFilter::execute(BitmapEx const& rBitmapEx) const } if (bRet) - return rBitmapEx; + return BitmapEx(aBitmap); return BitmapEx(); } commit c4913642e9f5ae77fdde206032a5429ea6ca9018 Author: Julien Nabet <serval2...@yahoo.fr> AuthorDate: Sat Apr 10 19:30:23 2021 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:56 2021 +0200 Related tdf#117750: fix UnsharpenFilter Change-Id: I372bb6baae747adb3b2d2a2b8fd39d1631b074ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113927 (cherry picked from commit 3d32e6a6ccfae56f379cb1dec6dcadf9aa8fa85f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113859 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/bitmap/BitmapSmoothenFilter.cxx b/vcl/source/bitmap/BitmapSmoothenFilter.cxx index 67cea0cb3dfa..e9c135f8ec59 100644 --- a/vcl/source/bitmap/BitmapSmoothenFilter.cxx +++ b/vcl/source/bitmap/BitmapSmoothenFilter.cxx @@ -24,7 +24,7 @@ BitmapEx BitmapSmoothenFilter::execute(BitmapEx const& rBitmapEx) const bRet = BitmapFilter::Filter(aBitmapEx, BitmapSeparableUnsharpenFilter(mfRadius)); if (bRet) - return rBitmapEx; + return aBitmapEx; return BitmapEx(); } commit b314d44dcb5ad4f3de81e83b85f18689d57350a7 Author: Rizal Muttaqin <riz_17_...@yahoo.co.id> AuthorDate: Sat Apr 10 16:09:09 2021 +0700 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 14 10:50:56 2021 +0200 tdf#141600 fix blured vertical line of Colibre anchor marker Change-Id: I5acab0328fd40e7eb4043a77197d78925c38237a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113861 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <riz...@libreoffice.org> diff --git a/icon-themes/colibre/svx/res/marker-anchor.png b/icon-themes/colibre/svx/res/marker-anchor.png index d565be7c2b7c..85d78d39be53 100644 Binary files a/icon-themes/colibre/svx/res/marker-anchor.png and b/icon-themes/colibre/svx/res/marker-anchor.png differ diff --git a/icon-themes/colibre/svx/res/markers.png b/icon-themes/colibre/svx/res/markers.png index ed78dc4ffb96..6ba31b765cfb 100644 Binary files a/icon-themes/colibre/svx/res/markers.png and b/icon-themes/colibre/svx/res/markers.png differ diff --git a/icon-themes/colibre_svg/svx/res/marker-anchor.svg b/icon-themes/colibre_svg/svx/res/marker-anchor.svg index 9d5325f0b7bc..4704a5b1b055 100644 --- a/icon-themes/colibre_svg/svx/res/marker-anchor.svg +++ b/icon-themes/colibre_svg/svx/res/marker-anchor.svg @@ -1 +1 @@ -<svg height="22" viewBox="0 0 22 22" width="22" xmlns="http://www.w3.org/2000/svg"><path d="m0 .00026h22v22h-22z" fill="#c8c6c4" opacity=".66"/><path d="m11 3c-1.1045687 0-2 .8954-2 2 0 .932.6373013 1.7155 1.5 1.9375v2.0625h-2.5v1h2.5v7.96875c-2.3033166-.147595-4.3276441-1.277241-5.6894531-2.96875h2.1894531v-1h-3-1v1 3h1v-2.435547c1.6390582 2.078797 4.1481571 3.435547 7 3.435547 2.851843 0 5.360528-1.35675 7-3.435547v2.435547h1v-3-1h-1-3v1h2.189453c-1.361809 1.691509-3.386137 2.821155-5.689453 2.96875v-7.96875h2.5v-1h-2.5v-2.0625c.862699-.222 1.5-1.0055 1.5-1.9375 0-1.1046-.895431-2-2-2zm0 1c.552285 0 1 .4477 1 1s-.447715 1-1 1-1-.4477-1-1 .447715-1 1-1z" fill="#3a3a38" fill-rule="evenodd"/></svg> \ No newline at end of file ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits