Mathis Logemann
fe887a2c83
fix #4268 by adding mapped_memory_file
2022-01-24 10:45:32 +01:00
Mathis Logemann
26052486ee
remove cxx11_support.hpp
2022-01-20 23:07:17 +01:00
Mathis Logemann
4f95463c75
remove make_unique
2022-01-19 12:42:52 +01:00
Mathis Logemann
e626ba2688
replace _WINDOWS with _WIN32
2021-10-21 18:22:53 +02:00
Joshua Hintze
cab3ba345c
-Removed unneeded macro escapes
2021-10-15 19:33:50 -06:00
Joshua Hintze
15798e6ebb
-Fixed issue with VS2017 compiling
2021-10-15 19:31:45 -06:00
Mathis Logemann
bf6081b207
[unit-test] add std includes for external catch2
2021-10-09 13:46:24 +02:00
Mathis Logemann
8500b3cd69
remove not needed include of <warning.hpp>
2021-07-24 00:58:28 +02:00
Mathis Logemann
a7ec89a8a1
Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support
2021-05-29 22:43:59 +02:00
Artem Pavlenko
0efdcafe56
make from_u8string
inline
2021-05-17 16:11:53 +01:00
Artem Pavlenko
6fa2666747
Add convertion functions from_u8string
to support c++20 + update tests
2021-05-17 16:11:44 +01:00
Mathis Logemann
4879efce58
Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support
2021-04-22 19:41:35 +02:00
Artem Pavlenko
f293371a9d
SVG rendering improvements:
...
* process `font-size` attributes and use them to scale `em` units
* fix default `color-stop` value
* store `viewBox` and use it to calculate `%` values correctly
* add more absolute/relative values
* default `DPI`:96
* default `font-size`: 10
* process style attributes on `<svg>` element
* use viewBox `width`, `height` and `normalized_diagonal` for relevant length values
* apply scale factor to gradient transforms
2021-04-13 09:19:33 +01:00
Artem Pavlenko
9c2132f895
Fix gradient transform calc (apply scale factor)
2021-04-13 09:17:48 +01:00
Artem Pavlenko
ff8c411749
Use DPI=96 + add absolute and relative sizes + add missing value units
2021-04-12 14:16:39 +01:00
Mathis Logemann
b6d8f54779
Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support
2021-04-06 18:38:51 +02:00
Artem Pavlenko
6bab4e56fd
Move MAPNIK_DECL
to the front (ref https://github.com/mapnik/mapnik/pull/4220#issuecomment-814259514 )
2021-04-06 17:36:46 +01:00
Mathis Logemann
9049a7e58d
Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support
2021-04-06 17:27:28 +02:00
Artem Pavlenko
b974a4a683
Simplify proj_transform_cache implementation (ref https://github.com/mapnik/mapnik/pull/4191#issuecomment-813377082 )
2021-04-06 10:30:12 +01:00
Mathis Logemann
ee90425de1
fixes proj_transform_cache incomplete type for gcc
2021-04-01 17:57:20 +02:00
Mathis Logemann
b1e1ea66f5
try fix linux take II
2021-04-01 16:03:58 +02:00
Mathis Logemann
8cd78b6945
Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support
2021-03-26 20:04:30 +01:00
Artem Pavlenko
3489bdbe36
rename PROJ_VERSION to MAPNIK_PROJ_VERSION to avoid clashes with libproj
2021-03-25 16:38:21 +00:00
Mathis Logemann
f8b159f8ff
Merge branch 'proj6' of https://github.com/mapnik/mapnik into cmake-support
2021-03-25 13:26:30 +01:00
Artem Pavlenko
503b9c5bbf
Move proj_transform_cache declarations and implementaion into separate translation unit (ref VC++ C2492)
2021-03-25 12:16:15 +00:00
Mathis Logemann
4eed15f87a
Merge branch 'proj6' of https://github.com/mapnik/mapnik into cmake-support
2021-03-24 23:30:50 +01:00
Artem Pavlenko
6af16764aa
proj - add version check based on major*10000+minor*100+patch format
2021-03-19 13:22:16 +00:00
Artem Pavlenko
6b9b42f314
Declare proj_cache_
thread_local static
to allow mapnik::Map to be thread-safe under certain conditions + refactor
...
(benchmark/src/test_rendering_shared_map.cpp)
2021-03-18 16:05:58 +00:00
Artem Pavlenko
6099804559
Use POSIX definition of pi
constant (M_PI) + define tau
in terms of pi
+ better namings + remove deprecated proj4 style definitions
2021-03-15 18:06:26 +00:00
Mathis Logemann
79d369db1f
Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support
2021-03-15 08:52:15 +01:00
Artem Pavlenko
7cbbd7305b
Map::mapnik - restore non-const access to layers + create proj_transform and cache in get_proj_transform
+ declare proj_cache_
mutable
2021-03-09 10:48:32 +00:00
Artem Pavlenko
b532beccde
mapnik::Map ctor/operator= - initialise proj transforms
2021-03-04 10:19:44 +00:00
Artem Pavlenko
554556e4d5
Add support for libproj >=8
2021-03-04 10:18:42 +00:00
Artem Pavlenko
b75737fd6a
Implement proj_transform caching using boost::unordered_map which allows calling find
method with compatible key type.
...
In this case `std::pair<boost::string_view, boost::string_view>` avoiding potentially expensive temp string keys.
(TODO: In the future use c++20 `std::unordered_map::find` transparent keys facility)
2021-03-03 15:01:58 +00:00
Artem Pavlenko
11ff758c38
Add proj_transform::definition() method
2021-03-02 17:07:13 +00:00
Artem Pavlenko
a149ebed16
use std::size_t consistently (proj API)
2021-03-02 16:39:32 +00:00
Artem Pavlenko
cb75f00780
Move proj_transform initialisation to add_layer
method
2021-02-25 11:05:11 +00:00
Artem Pavlenko
e5c182591a
use unordered_map for proj_transform caching
2021-02-01 10:57:52 +00:00
Artem Pavlenko
5c086b0cd5
Add proj_transform caching to minimise expensive initialisations calls in libproj >= 6 [WIP]
2021-01-27 09:40:28 +00:00
Artem Pavlenko
db9829d702
Fix missing proj context and cleanup/simplify proj_transform
2021-01-22 15:23:11 +00:00
Artem Pavlenko
88241b32ee
Initial implementation of new proj7 APIs support
2021-01-15 15:21:09 +00:00
Artem Pavlenko
bd961c4da2
update copyright year [skip ci]
2021-01-05 14:39:07 +00:00
Mathis Logemann
8096bd869f
fix warning for unknown compiler
2020-11-25 08:47:51 +01:00
Mathis Logemann
b11ef9d44b
removed MAPNIK_DECL from feature_style_processor; conflicts with the feature_style_processor_impl.h
2020-11-21 18:18:21 +01:00
Mathis Logemann
5420ccd6af
now fix msvc compiler error. Why does msvc complain?
2020-11-20 20:16:27 +01:00
Mathis Logemann
621ab99961
Revert "fix mscv compiler errors"
...
This reverts commit fe3160ca99
.
2020-11-20 20:11:42 +01:00
Mathis Logemann
fe3160ca99
fix mscv compiler errors
2020-11-20 20:02:40 +01:00
Mathis Logemann
f6b7bc0867
add string to box2d which is required by msvc
2020-11-20 19:04:30 +01:00
Mathis Logemann
16b98fe3e7
more msvc warnings
2020-11-19 17:53:44 +01:00
Mathis Logemann
a2df8b7ad2
use absolute include
2020-11-19 17:45:40 +01:00
Mathis Logemann
64054fade4
compiler independent warning ignore
...
Signed-off-by: Mathis Logemann <mathisloge@gmail.com>
2020-11-19 17:25:10 +01:00
Artem Pavlenko
3a58dd89b5
Use mapnik::value_integer for id
type in feature generator
2020-10-19 12:09:42 +01:00
Artem Pavlenko
7d1a559ae2
GeoJSON - allow 'null' properties in Feature
objects [ #4177 ]
2020-10-08 10:53:12 +01:00
Artem Pavlenko
9cb1b7e37f
perfect forwarding in apply_visitor alias
2020-07-13 10:26:59 +01:00
Artem Pavlenko
cc78a5de78
Fix for boost < 1.70.0 (ref #4143 )
2020-05-12 12:14:18 +01:00
Artem Pavlenko
a14d27f090
Attempting to fix boost_1_65_1 compile (WIP)
2020-05-12 12:00:25 +01:00
Artem Pavlenko
8f3dded093
Re-implement feature_json_generator by adapting feature_impl into boost::fusion container and removing use semantic actions (simpler code + boost_1_73 support) (ref #4143 )
2020-05-11 22:18:55 +01:00
Artem Pavlenko
52ae365c66
fix operator== (ref #4137 )
2020-04-23 18:20:32 +01:00
Artem Pavlenko
cb638eaabf
color::swap
- add missing premultiplied_
(ref #4137 )
2020-04-23 18:20:32 +01:00
Martin Ždila
657442947b
add support for spacing-offset
2020-03-23 23:07:49 +01:00
Artem Pavlenko
8d73767949
css-parser-grammar: parse values into iterator_range via boost::spirit::x3::raw directive (no conversions) + cleanup
2020-02-06 11:23:02 +00:00
Artem Pavlenko
2ddbff46d5
add bool css_style_ member variable to control CSS style processing.
2020-02-04 17:30:58 +00:00
Artem Pavlenko
cc9e8e3db3
add missing headers
2020-02-04 15:15:32 +00:00
Artem Pavlenko
27bf941211
SVG CSS: refactor unit value symbols table into separate header + add css_data member to svg_parser
2020-02-04 15:02:41 +00:00
Artem Pavlenko
00b888c1ef
Add CSS parser grammar + move into separate include/css and src/css dirs.
2020-02-04 10:38:34 +00:00
Artem Pavlenko
0636734f8f
Revert "move sparsehash out of mapnik dir"
...
This reverts commit 720fbc74a1
.
2020-01-30 15:14:37 +00:00
Artem Pavlenko
720fbc74a1
move sparsehash out of mapnik dir
2020-01-29 14:16:47 +00:00
Artem Pavlenko
c7d29b826f
Add "darkslategray" and "rebeccapurple" named colors (ref: https://drafts.csswg.org/css-color/#typedef-color )
2020-01-24 15:26:10 +00:00
Artem Pavlenko
d87cf7db48
re-use code [skip ci]
2020-01-22 13:40:33 +00:00
Artem Pavlenko
cab05f1f2c
Only use reflection of the second control point on the previous command relative to the current point as first control point when both last and prev( NOTE: before last command in AGG logic!) are curve commands. This fixes long outstanding SVG rendering bug aka Octocat
bug (ref #4115 )
2020-01-21 15:49:00 +00:00
Artem Pavlenko
c30adf39c8
format
2020-01-21 15:48:32 +00:00
Artem Pavlenko
60a33a9b8f
use numeric parser for arc flags
2020-01-16 10:38:10 +00:00
Artem Pavlenko
222835e73a
Fix SVG path grammar - parse arc and sweep flags using special single digit parser, numeric int_
parser was over greedy and didn't handle compact notation produced by svgo ( https://github.com/svg/svgo ).
2020-01-14 14:38:10 +00:00
Artem Pavlenko
59e5f50e26
Use boost::spirit::x3::standard::char_ parser
2019-12-13 17:04:54 +00:00
Artem Pavlenko
44198d1ac2
more const-ness
2019-11-27 16:16:09 +00:00
Artem Pavlenko
94dd756669
Fix compiler warning
2019-11-20 09:43:31 +00:00
Artem Pavlenko
fc25053e8b
Set initial STACK_SIZE to 16 (plenty), make it private static member var (ref #4096 )
2019-11-18 09:59:26 +00:00
Artem Pavlenko
9e82006314
make ScriptRun
class visible
2019-11-06 15:08:30 +00:00
Artem Pavlenko
33fac6d47d
use std::vector to avoid limiting number of paired characters.
2019-11-04 13:59:23 +00:00
Artem Pavlenko
1edd3b7a93
use & mask
for array bounds clipping (provided array size is 2^n)
2019-11-01 16:16:57 +00:00
Artem Pavlenko
c9da5cbd8e
support for boost < 1.69
2019-10-21 18:21:51 +01:00
Artem Pavlenko
0b4f3dc497
fix support for BOOST 1_71
2019-10-21 16:42:58 +01:00
Mickey Rose
d1697efe6d
install mapbox includes into subdir mapnik/deps/
2019-09-20 20:15:53 +02:00
Mickey Rose
b541c3595f
rename MAPNIK_MAKE_VERSION to MAPNIK_VERSION_ENCODE
...
Both forms can be seen in various other libraries. However, I think that
macro names with common prefix serving as substitute for namespace are
the better convention. MAPNIK_MAKE_VERSION hasn't appeared in any Mapnik
release yet, so this shouldn't break anything.
I'm not renaming other MAPNIK_*_VERSION defines that don't have the same
prefix simply because they've been there for ages, so renaming those now
might break stuff outside of Mapnik.
2019-08-30 16:30:28 +02:00
Artem Pavlenko
f68a147ff4
don't log identical error messages
2019-08-08 11:42:45 +01:00
Artem Pavlenko
7d1bfaeb4b
Merge pull request #3999 from mapnik/test-placement-type
...
Tests of text_placements_simple and text_placements_list
2019-07-02 11:56:39 +01:00
Nikita Kniazev
c191e196c0
Replace MAPNIK_INIT_PRIORITY workaround
...
Spirit rules are just placeholders. They are cheap to construct and by doing
this static initialization order fiasco problem is effectively avoided.
Also had to fix name clash between geojson and generic json parsers.
2019-07-02 01:04:31 +03:00
Artem Pavlenko
e90a4fca7d
add missing image scaling
property meta type + replace to integer conversion with comparison operator in enumeration_wrapper + change order in value_base_type (ref #4045 )
2019-06-12 09:40:10 +01:00
Jiri Drbalek
a74543a145
New raster colorizer modes linear-rgba and linear-bgra
2019-05-17 21:54:24 +02:00
Michael Holloway
918e1a3a90
Ditch rint
...
Removes all usages of rint from the codebase, in favor of the standard
rounding and casting formula used throughout the codebase:
static_cast<int>(std::floor(<val> + .5))
Fixes #2392
2019-03-22 14:23:32 -04:00
Jiri Drbalek
2dde0eb257
Adaptive smooth
2019-02-09 15:24:12 +00:00
Artem Pavlenko
16ae1c0472
CSS parser - use appropriate storage type for hue
value (0..320) ( #4020 )
2019-01-14 16:21:53 +00:00
Artem Pavlenko
bcb1e67507
fix Boost.GIL includes for BOOST_VERSION >= 1.69 (ref #4000 )
2018-12-13 15:46:57 +00:00
Gaetano Checinski
e583063ab5
fix: makes serveral header definitions static to support static library builds
2018-12-03 09:58:18 +00:00
Jiri Drbalek
2344fe3ac2
Vector patterns with Cairo
2018-11-21 12:20:31 +00:00
Artem Pavlenko
940f0dc39d
bump version to 4.0.0
2018-11-21 11:03:00 +00:00
Artem Pavlenko
9406eb4c44
use c++-stype casts + compare the same types
2018-11-20 14:35:36 +00:00
Artem Pavlenko
c08b639902
fix compiler warnings e.g warning: class 'xxx' was previously declared as a struct [-Wmismatched-tags]
2018-11-20 14:13:25 +00:00
Artem Pavlenko
c6cd132c31
explicit cast to native enum type in switch statements to address error: case value is not a constant expression
...
(clang version 8.0.0 (trunk 347189))
2018-11-20 13:47:44 +00:00
talaj
7dcf5ee082
Merge pull request #3989 from mapycz/fix-pattern-alignment
...
True global pattern alignment, fixed local alignment
2018-11-02 14:31:31 +01:00
Jiri Drbalek
3b188b4c26
Remove method declaration that is not implemented
2018-10-20 20:59:20 +00:00
Tomek Dubrownik
c067eb7eec
Compatibility patch for Boost GIL v1.68
...
A number of basic typedef were removed in the Boost GIL 1.68 release,
notably `bits32` and `bits32f`. Additionally the
`GIL_DEFINE_ALL_TYPEDEFS` macro signature changed.
This commit introduces compatibility type aliases and conditionally
calls the new macro if `BOOST_VERSION` is high enough.
2018-09-29 13:43:44 +08:00
Jiri Drbalek
776fa0d2f8
True global pattern alignment, fixed local alignment
2018-09-19 13:21:59 +00:00
Jiri Drbalek
692fc7f107
render_pattern() needs its own rasterizer
2018-09-19 08:33:24 +00:00
Jiri Drbalek
d823378260
Polygon pattern on line geometries for Cairo backend
2018-09-18 12:12:21 +00:00
Jiri Drbalek
18c1a99604
Polygon pattern on line geometries for AGG backend
2018-09-18 12:12:21 +00:00
lightmare
a6e0b6b857
Merge pull request #3958 from mapycz/fix-buffer-size-with-scale-factor
...
Fix buffer-size with scale-factor
2018-08-14 17:11:31 +02:00
Mickey Rose
8a1fdb3900
dodge operator precedence warning
2018-08-13 19:11:58 +02:00
Mickey Rose
2b8226316f
topojson: fix parsing empty topology
2018-08-13 19:08:38 +02:00
Artem Pavlenko
c2251faa91
second time lucky
2018-08-07 14:58:21 +01:00
Artem Pavlenko
242c9eba3c
Revert "opps, adding lost change (re: boost>=1.67)"
...
This reverts commit 22f913d892
.
2018-08-07 14:26:34 +01:00
Artem Pavlenko
22f913d892
opps, adding lost change (re: boost>=1.67)
2018-08-07 14:09:30 +01:00
Jiri Drbalek
8a0dca38a3
Fix buffer-size with scale-factor
2018-08-01 08:06:37 +00:00
Artem Pavlenko
af842a8bf9
Merge branch 'pi-is-wrong' of https://github.com/lightmare/mapnik into lightmare-pi-is-wrong
2018-07-30 10:40:51 +01:00
Jiri Drbalek
4a93209423
render building symbolizer rewrite
...
- make projection and view transforms first
- removed dependency on segment_t
- no need for sorting faces
2018-07-27 10:23:33 +00:00
Artem Pavlenko
5eca7731e9
rely on implicit std::reference_wrapper<T> -> T conversions (thanks @lightmare)
2018-07-23 13:26:22 +01:00
Artem Pavlenko
93d0eea8af
Merge branch 'master' into boost_1_67
2018-07-23 11:35:14 +01:00
Artem Pavlenko
65080e2a95
add support for BOOST_VERSION < 106700
2018-07-23 10:58:27 +01:00
Emil Gedda
93c566638f
remove old render_box function declaration from cairo_renderer.hpp
2018-07-20 14:02:51 +02:00
Artem Pavlenko
5fe0dda890
Merge branch 'master' into boost_1_67
2018-07-20 11:53:47 +01:00
Artem Pavlenko
bdf7876652
const-ness
2018-07-19 15:36:00 +01:00
Artem Pavlenko
67dbb96580
use uint8_t to parse hex2 values to avoid overflowing (boost >= 1.67)
2018-07-19 15:34:40 +01:00
Artem Pavlenko
a98d1b8071
use std::uint8_t as an attribute for hex2 parser
2018-07-18 10:40:41 +01:00
Artem Pavlenko
4c31bd16d2
Merge branch 'master' into boost_1_67
2018-07-18 09:27:56 +01:00
Mickey Rose
f84191204e
eradicate M_PI
2018-07-16 14:18:49 +02:00
Mickey Rose
32e7202223
well_known_srs: move implementation to .cpp
...
- add lonlat2merc, merc2lonlat overloads for single point
- add stride argument to overloads for coordinate arrays
- make all functions exported
- change static string constants to exported
- change static numeric constants to constexpr
- remove superfluous numeric constants
2018-07-16 14:18:32 +02:00
Mickey Rose
e11f3a660a
offset_converter: minor refactoring
...
DRY: extract method for `joint_angle` calculation.
2018-07-14 12:46:53 +02:00
Mickey Rose
a0a2c78950
util/math: clamp, degrees, radians
...
Use common functions for degrees <-> radians conversions, except when
dealing with agg, where it makes sense to use available deg2rad/rad2deg
functions instead of including another header.
2018-07-13 12:34:25 +02:00
Mickey Rose
7c4ccf0209
make util::normalize_angle reasonably fast on large values
...
Because it simply calculates the remainder after division by full turn,
it shouldn't take time proportional to the magnitude of its operand.
2018-07-11 23:14:23 +02:00
Mickey Rose
c2c00570b3
define MAPNIK_MAKE_VERSION, MAPNIK_VERSION_AT_LEAST
2018-07-11 10:38:32 +02:00
Artem Pavlenko
2c2669d655
fixes typo ( #3930 )
2018-07-05 09:37:49 +02:00
Artem Pavlenko
9d44a73ad0
fix - add single quoted string escaped chars support + allow backtracking when escaped characters are not part of /u, /U. /x encodings (ref 3433397c30 (commitcomment-29512684)
)
2018-07-02 15:07:41 +02:00
Raul Marin
8e11ef3fd7
Improve padding calculation
2018-06-06 18:39:15 +02:00
Artem Pavlenko
95d5fabad0
Merge branch 'master' into boost_1_67
2018-05-21 15:58:24 +01:00
Raul Marin
0195047d7a
Marker symbolizer: Fix bug with lines with 0 length (division by zero)
2018-05-11 12:24:01 +02:00
Jiri Drbalek
89b5cb4f22
Remove useless ellipsoid.hpp
2018-05-08 15:39:13 +00:00
Artem Pavlenko
b7bdd08837
define BOOST_SPIRIT_INSTANTIATE_UNUSED once and re-use [skip-ci]
2018-04-18 14:18:40 +02:00
Artem Pavlenko
664d3508de
remove reference_wrapper usage when injecting attributes into grammar ( >= boost_1_67) [skip-ci]
2018-04-18 12:53:17 +02:00
Artem Pavlenko
9e79e1edf1
update const-ness in x3::context definitions to support boost 1_67 [skip-ci]
2018-04-17 15:41:17 +02:00
Artem Pavlenko
def0fd1f31
prepare for breaking change in spirit::x3 (from boost 1.67.0) - remove with_context
usage
...
(ref https://github.com/boostorg/spirit/pull/239 )
2018-04-16 15:25:39 +02:00
Artem Pavlenko
b392b8214e
add explicit instantiation declarations to DEFINE_ENUM macro to fix -Wundefined-var-template warnings.
2018-04-16 11:12:05 +02:00
Artem Pavlenko
fe5c4bb978
supress unused variable warning in boost state_machine
2018-04-16 11:08:08 +02:00
Raul Marin
1ddfe6c315
Qualify ICU types explicitly
...
ICU 61 has dropped the global `using namespace icu;`
http://site.icu-project.org/download/61#TOC-Migration-Issues
2018-04-03 13:18:43 +02:00
Blake Thompson
25e4bb3f6c
A fix for two distinct issues associated with gdal featuresets, the first is overviews were not properly being utilized based on the resolution of the final image requested. The second is that allocation of far too much memory could be possible in GDAL to attempt to do resampling internally in mapnik. This now has a hard cap so that we allocate less memory in these situations but are still able to resample internally in mapnik.
2018-03-30 15:10:29 -05:00
Artem Pavlenko
a8d7fc1cfb
Revert "avoid symbols duplication"
...
This reverts commit c737f4d56f
.
2018-03-15 15:58:23 +01:00
Artem Pavlenko
c737f4d56f
avoid symbols duplication
2018-03-09 09:57:49 +01:00
Artem Pavlenko
eb1a32eb79
fix dereferencing out-of-range iterator (caught by -fsanitize=undefined,integer) ( #3867 )
2018-03-01 11:54:41 +01:00
Artem Pavlenko
5b8b75e680
fix compiler warning
...
```include/mapnik/text/symbolizer_helpers.hpp:164:45: warning: template template parameter using 'typename' is a C++17 extension
[-Wc++17-extensions]
template <template <typename, typename> typename GridAdapter>
^~~~~~~~
class
```
2018-03-01 10:56:55 +01:00
Artem Pavlenko
3ad43a33ae
check language
variable to avoid SIGILL in '-fsanitize-trap=integer,undefined' builds.
2018-02-28 15:20:13 +01:00
Artem Pavlenko
37b7f05180
Merge branch 'offset-converter-topology' of https://github.com/mapycz/mapnik into mapycz-offset-converter-topology
2018-02-26 16:06:19 +01:00