artemp
|
39b07ccfcb
|
+ cairo : building_symbolizer - fix fill and stroke settings to match agg
|
2012-08-06 16:51:31 +01:00 |
|
Dane Springmeyer
|
3d91ca3821
|
sync agg/grid line symbolizer rendering - refs #1309
|
2012-08-06 08:29:08 -06:00 |
|
Dane Springmeyer
|
6acd352d40
|
workaround clang bug on oneiric - closes #1352
|
2012-08-03 17:13:09 -07:00 |
|
Dane Springmeyer
|
9284c6369d
|
correct rendering behavior of marker-opacity, which should not, as per svg, override fill-opacity and stroke-opacity but should combine with it
|
2012-08-03 14:14:03 -07:00 |
|
artemp
|
6fc8f3ab89
|
+ instantiate svg_renderer with pixfmt_comp_type
|
2012-08-03 15:39:44 +01:00 |
|
artemp
|
8c98d8a199
|
+ pre-multiply rendering buffer after applying background color and/or pattern
|
2012-08-03 15:37:05 +01:00 |
|
Dane Springmeyer
|
8ea21d866d
|
move more code to marker_helpers.hpp to set up for grid impl of new markers code - refs #1282
|
2012-08-02 22:52:21 -07:00 |
|
Dane Springmeyer
|
c1d124f6d9
|
Account for offset value to avoid severe clipping with large offsets - refs #1282
|
2012-08-02 21:00:52 -07:00 |
|
Dane Springmeyer
|
e62739d146
|
fix render_marker for grid renderer and other minor syncing - refs #1309
|
2012-08-02 13:10:05 -07:00 |
|
Dane Springmeyer
|
693cc88142
|
sync grid renderer with agg for point_symbolizer - refs #1309
|
2012-08-02 11:13:44 -07:00 |
|
Dane Springmeyer
|
c2c006f9c2
|
support setting opacity on bitmaps in render_marker - refs #1364
|
2012-08-02 10:52:09 -07:00 |
|
Dane Springmeyer
|
56e11423ef
|
inflate clipping extent for line patterns - refs #1282
|
2012-08-02 07:26:55 -07:00 |
|
Dane Springmeyer
|
7211436313
|
avoid clipping artifacts with line_symbolizer by using stroke sensitive clipping extent - refs #1282, #1185, #1215
|
2012-08-01 16:43:00 -07:00 |
|
Dane Springmeyer
|
092a1bf625
|
impl debug box drawing in geo extents
|
2012-08-01 16:40:48 -07:00 |
|
Dane Springmeyer
|
2351877cad
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-08-01 11:08:04 -07:00 |
|
artemp
|
8ff71a24bd
|
+ fixed naming (as per SVG)
|
2012-08-01 17:29:22 +01:00 |
|
artemp
|
3db39f2b78
|
+ revert using clip_poly_line to avoid rendering artifacts
(TODO: consider modifying agg::conv_clip_polyline)
|
2012-08-01 17:06:35 +01:00 |
|
artemp
|
6c173cd9d4
|
+ cleanup
|
2012-08-01 16:30:11 +01:00 |
|
Dane Springmeyer
|
e90ccb7a3a
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-08-01 08:00:55 -07:00 |
|
artemp
|
5541ea0271
|
+ layer : minimum-extent and buffer-size
+ agg::process_xxx : remove ad-hoc query_extent modifiers
+ ctrans : simplify vertex skipping
|
2012-08-01 15:44:36 +01:00 |
|
artemp
|
2dcf940853
|
Merge remote-tracking branch 'origin/master'
|
2012-08-01 14:00:36 +01:00 |
|
artemp
|
fc6a22c014
|
+ c++ style
|
2012-08-01 11:07:45 +01:00 |
|
Dane Springmeyer
|
295c661af2
|
start setting up to sync markers_symbolizer between agg and grid renderer
|
2012-07-31 19:19:45 -07:00 |
|
Dane Springmeyer
|
16084ff335
|
support both interior placement and point for markers - helps prepare for #952
|
2012-07-31 18:13:50 -07:00 |
|
Dane Springmeyer
|
3821afd74d
|
inherit default placement types from class instance
|
2012-07-31 18:06:52 -07:00 |
|
Dane Springmeyer
|
9d9c525de0
|
revert 1dfde78 and properly avoid clipping for point type geometries in markers_symbolizer while moving markers_placement to cpp file to avoid overhead of declaring all possible permutations of vertex convertors - closes #1341
|
2012-07-31 17:27:52 -07:00 |
|
Dane Springmeyer
|
c3c2902b92
|
move ellipse contruction code to marker_helpers
|
2012-07-31 16:40:30 -07:00 |
|
Dane Springmeyer
|
d5a6564fe2
|
Merge branch 'master' of github.com:mapnik/mapnik into marker-ellipse-fix
|
2012-07-31 13:46:35 -07:00 |
|
Dane Springmeyer
|
967589442c
|
serialize transform for points and sheild
|
2012-07-31 11:23:53 -07:00 |
|
artemp
|
d7d833dd13
|
+ cleanup/small fixes
|
2012-07-31 13:31:22 +01:00 |
|
artemp
|
c7af665cc7
|
+ process SEG_CLOSE
|
2012-07-31 10:59:09 +01:00 |
|
artemp
|
76569cccb8
|
+ select clipper based on geometry type
+ process SEG_CLOSE command
|
2012-07-31 10:57:42 +01:00 |
|
artemp
|
a3b7d07da0
|
+ select clipper based on geometry type
|
2012-07-31 10:56:13 +01:00 |
|
Dane Springmeyer
|
39a1477eb2
|
allow marker-width and marker-height to apply directly to ellipse rx/ry - maintaining ability to precisely control ellipse dimensions, combine with transforms, and avoid scaling line-widths - refs #1348 and #1347
|
2012-07-30 23:20:20 -07:00 |
|
Dane Springmeyer
|
e482998c51
|
rename path_ptr to the more explicit svg_path_ptr and set up markers_symbolizer rendering for upcoming changed
|
2012-07-30 21:45:46 -07:00 |
|
Dane Springmeyer
|
0d97b851fa
|
markers: support opacity on bitmaps, and move to supporting both opacity and fill-opacity
|
2012-07-30 18:31:21 -07:00 |
|
Dane Springmeyer
|
6f174287a2
|
amend 822531a which broke polygon geometry labeling - refs #1350
|
2012-07-30 18:29:26 -07:00 |
|
artemp
|
b963b6c2b3
|
Merge remote-tracking branch 'origin'
|
2012-07-30 18:35:03 +01:00 |
|
artemp
|
822531a114
|
+ filter on geometry type to use centroid (Polygon) or
middle_point (LineString) label placement
|
2012-07-30 18:32:42 +01:00 |
|
Dane Springmeyer
|
81937f7317
|
only allow restyling of svg paths that already have visible display of stroke/fill
|
2012-07-28 09:27:37 -07:00 |
|
Dane Springmeyer
|
e213f49d7c
|
re-implement conditional stroke application in markers_symbolizer initially added in 9d756165e0 , amended in 9f064960e3 , and wrongly disabled in bd74d18f6d
|
2012-07-27 19:21:46 -07:00 |
|
artemp
|
fe4cfea536
|
+ add call to close_path() if SEG_CLOSE
|
2012-07-26 15:49:58 +01:00 |
|
artemp
|
ec2d0cc210
|
+ wkb reader : close polygons
|
2012-07-26 15:20:56 +01:00 |
|
artemp
|
07ec5c31d0
|
+ turns off white space skipping
|
2012-07-26 11:45:34 +01:00 |
|
Dane Springmeyer
|
4fbe353d4a
|
make stock ellipse a true ellipse
|
2012-07-25 19:29:43 -07:00 |
|
Dane Springmeyer
|
bd74d18f6d
|
no need anymore to have parse_stroke return a bool
|
2012-07-25 18:26:34 -07:00 |
|
Dane Springmeyer
|
9f064960e3
|
load_map: a stroke-width=0 is valid for markers now (for restyling svg)
|
2012-07-25 18:19:41 -07:00 |
|
Dane Springmeyer
|
2680f941eb
|
clean up unused code and includes
|
2012-07-25 09:31:57 -07:00 |
|
artemp
|
774e1b1d77
|
+ avoid applying scaling_factor twice for raster markers
+ cleanup
|
2012-07-25 11:43:43 +01:00 |
|
artemp
|
f0ada2b284
|
+ remove colorizer (@springmeyer - was it intentional?)
|
2012-07-25 10:00:08 +01:00 |
|
Dane Springmeyer
|
ad90db2eb0
|
remove duplicate declaration
|
2012-07-24 23:40:28 -07:00 |
|
Dane Springmeyer
|
1dfde7846b
|
default to not clipping for markers_symbolizer as a temporarily workaround for #1341
|
2012-07-24 19:56:08 -07:00 |
|
Dane Springmeyer
|
6396b443ef
|
default to MARKER_POINT_PLACEMENT for markers
|
2012-07-24 19:48:22 -07:00 |
|
Dane Springmeyer
|
074b385999
|
include what you use
|
2012-07-24 19:08:26 -07:00 |
|
Dane Springmeyer
|
b4f3d6da11
|
include what you use
|
2012-07-24 18:35:41 -07:00 |
|
Hermann Kraus
|
3860ae9447
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-07-25 01:18:51 +02:00 |
|
Dane Springmeyer
|
ebf87969e4
|
move css_color and path_expression grammars to cpp
|
2012-07-24 15:43:32 -07:00 |
|
Hermann Kraus
|
3054145103
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-07-25 00:21:30 +02:00 |
|
Hermann Kraus
|
d35821d058
|
Fix deprecation warnings. Part 1
Refs #1340.
|
2012-07-25 00:20:58 +02:00 |
|
Dane Springmeyer
|
3f444302f0
|
move wkb_generator.cpp to cpp to reduce grammar compilation burden in the python bindings
|
2012-07-24 15:04:39 -07:00 |
|
Dane Springmeyer
|
ec12d02209
|
iterate image_filters by const& - refs #1330
|
2012-07-24 14:01:46 -07:00 |
|
artemp
|
5ac4d2ec93
|
+ add raster markers support
|
2012-07-24 14:04:25 +01:00 |
|
artemp
|
553e767169
|
+ remove const modifiers
|
2012-07-24 09:44:14 +01:00 |
|
Dane Springmeyer
|
29deca8db8
|
shave off 4 seconds from xml_node.cpp compile time (16 -> 12) by moving transform grammar to cpp - refs #1267
|
2012-07-23 18:12:10 -07:00 |
|
Dane Springmeyer
|
348dfff0c7
|
move feature_grammar to cpp file reducing compile time mem usage for feature_collection_parser.cpp - refs #1267
|
2012-07-23 17:03:06 -07:00 |
|
Dane Springmeyer
|
8f803b9897
|
reduce build time of xml_tree by half and memory usage by 1/3 - refs #1267
|
2012-07-23 16:15:27 -07:00 |
|
Dane Springmeyer
|
9c5dbc20c5
|
properly skip empty geometries - refs #1333 and #1305 an #1132
+ remove redundant ar.size() > 0 check
+ use std::auto_ptr<geometry_type> to avoid memory leaks and
improve exception safety.
|
2012-07-23 10:39:34 +01:00 |
|
Dane Springmeyer
|
e36081a5c0
|
change geometry_utils::from_wkb to return a bool that signifies if at least one wkb path was parsed - refs #1333 and #1305
|
2012-07-20 15:09:01 -07:00 |
|
Dane Springmeyer
|
a968150f6b
|
fix compile after geometry util namespacing
|
2012-07-20 11:18:33 -07:00 |
|
artemp
|
fd209b2958
|
+ put labeling routines into its owm 'label' namespace
|
2012-07-20 17:32:38 +01:00 |
|
artemp
|
516f7c75b1
|
+ expose geometry type in expression grammar to allow following
filter expressions : [mapnik::geometry_type] = Polygon (#546)
|
2012-07-20 12:28:25 +01:00 |
|
artemp
|
8e2774fe84
|
+ remove debug output
|
2012-07-19 16:59:33 +01:00 |
|
artemp
|
ab0722efce
|
+ AGG: refactor process_markers_symbolizer to use vertex_converters
|
2012-07-19 16:37:54 +01:00 |
|
artemp
|
7b10400be9
|
+ update rendering code to work with new labeling methods
+ rename num_points() to size()
+ rename get_vertex() to vertex()
|
2012-07-19 16:36:44 +01:00 |
|
artemp
|
710b7eb04b
|
+ instantiate all vertex_converters permutations
+ pass parameter by const reference
|
2012-07-19 16:26:10 +01:00 |
|
artemp
|
c0ecb7e980
|
+ use member variable in ctor
|
2012-07-19 16:24:29 +01:00 |
|
Dane Springmeyer
|
b7630a3eb8
|
default to fully opaque default marker svg - fixes #1326
|
2012-07-18 14:07:52 -07:00 |
|
artemp
|
560aca20fa
|
Merge remote-tracking branch 'origin/master'
|
2012-07-17 17:11:59 +01:00 |
|
artemp
|
195b8ad887
|
+ affine transform for raster markers - #1279
|
2012-07-17 17:10:24 +01:00 |
|
Dane Springmeyer
|
6d95076954
|
sync grid renderer with agg for text/shields/point - refs #1309
|
2012-07-16 11:51:14 -07:00 |
|
Dane Springmeyer
|
89668e7b26
|
map bilinear8 to bilinear for now (TODO - add bilinear8 to AGG)
|
2012-07-16 09:42:01 -07:00 |
|
Dane Springmeyer
|
8fcf10be12
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-07-15 20:39:21 -07:00 |
|
Dane Springmeyer
|
e9c5ab3d94
|
sync polygon rendering between agg and grid backends
|
2012-07-13 16:42:23 -07:00 |
|
artemp
|
0eddc2b5a0
|
+ apply scale_factor
|
2012-07-13 11:17:35 +01:00 |
|
artemp
|
1e6be7abc3
|
+ add accessor methods
|
2012-07-13 10:25:12 +01:00 |
|
Dane Springmeyer
|
bc8d6568f5
|
sync line rendering between grid and agg - refs #1309
|
2012-07-12 19:34:39 -07:00 |
|
Dane Springmeyer
|
214b24ed12
|
finish updating marker tests - closes #1304
|
2012-07-12 19:21:04 -07:00 |
|
Dane Springmeyer
|
fad8eff676
|
fix scaling of markers when render time resolution != 1
|
2012-07-12 19:01:59 -07:00 |
|
Dane Springmeyer
|
2fe306e34f
|
fix marker clamping and sync with agg renderer- refs #1309
|
2012-07-12 18:41:03 -07:00 |
|
artemp
|
461f5cfe08
|
+ use separate stroke-opacity and fill-opacity
|
2012-07-12 15:38:25 +01:00 |
|
artemp
|
279bfe7f0f
|
+ remove unused mutating methods
+ cleanup&style
|
2012-07-12 10:21:57 +01:00 |
|
artemp
|
c7960a2093
|
+ support clipping on/off in text_symbolizer_helper,
shield_symbolizer_helper and process_markers_symbolizer
TODO: revisit implementation to avoid code duplication
|
2012-07-11 14:47:39 +01:00 |
|
artemp
|
8cf9a5a082
|
+ more const correctness
|
2012-07-11 10:32:08 +01:00 |
|
artemp
|
35ab93667f
|
+ enforce const
+ pass arguments by const ref
|
2012-07-11 10:13:38 +01:00 |
|
Dane Springmeyer
|
3e895ac6b7
|
implement built in support for ellipse and arrow markers, make markers_symbolizer default to POINT placement and ellipse drawing, add back compatibility for deprecated marker-type property - refs #1285 and #1304
|
2012-07-10 22:38:53 -07:00 |
|
Dane Springmeyer
|
75d2d5bdca
|
remove duplicate variable
|
2012-07-10 22:34:46 -07:00 |
|
Dane Springmeyer
|
e67463661c
|
sync grid markers_symbolizer rendering with agg
|
2012-07-10 22:32:19 -07:00 |
|
Dane Springmeyer
|
bcc8da4dea
|
agg markers_symbolizer rendering: only create objects if actually rendering
|
2012-07-10 22:31:51 -07:00 |
|
Dane Springmeyer
|
3efab11bdb
|
start carrying through the geometry clipping extent in the grid renderer
|
2012-07-10 18:39:06 -07:00 |
|
Dane Springmeyer
|
c58cbe0341
|
remove reference to arrow.cpp
|
2012-07-10 18:12:06 -07:00 |
|
Dane Springmeyer
|
310ed4a05d
|
remove references to now unused mapnik::arrow
|
2012-07-10 18:11:43 -07:00 |
|
Dane Springmeyer
|
afa9dc3c7c
|
move svg marker modifiers to hpp file for re-use in other renderers
|
2012-07-10 18:09:19 -07:00 |
|
Dane Springmeyer
|
4f507e2fa3
|
expose the ability to parse an svg from an in-memory string
|
2012-07-10 08:59:35 -07:00 |
|
artemp
|
216768fbc0
|
+ output image-filters and direct-image-filters
|
2012-07-10 12:52:18 +01:00 |
|
Dane Springmeyer
|
79ef09d1a3
|
create grid feature context with correct sorting - closes #1306
|
2012-07-09 18:40:41 -07:00 |
|
Dane Springmeyer
|
cbf821c762
|
move key grid functions to cpp file
|
2012-07-09 17:32:36 -07:00 |
|
artemp
|
f656efaa49
|
+ apply dynamic width and/or height
+ make 'width/height' pair and 'transform' mutually exlusive
|
2012-07-09 10:22:19 +01:00 |
|
artemp
|
58bd55b075
|
+ allow independent width and height
+ better namings
|
2012-07-09 10:21:12 +01:00 |
|
artemp
|
20d935ea1e
|
+ remove explicit keyword
+ make width and height 'optional' - default init (0)
+ change members order
|
2012-07-09 10:18:41 +01:00 |
|
Dane Springmeyer
|
3823890b40
|
rollback 34c3128b0c , move 'scaling' to proper enum, and move image_scaling functions to new cpp/hpp
|
2012-07-06 16:45:58 -07:00 |
|
Dane Springmeyer
|
3ddd38116c
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-07-06 11:54:04 -07:00 |
|
Dane Springmeyer
|
b5dc59cabc
|
remove serialization of get_mode, no longer needed
|
2012-07-06 11:53:54 -07:00 |
|
artemp
|
ee7f72dcce
|
+ fix compilation issue
|
2012-07-06 14:03:44 +01:00 |
|
Dane Springmeyer
|
c44b92193f
|
serialize all properties shared by all symbolizers
|
2012-07-05 17:23:48 -07:00 |
|
Dane Springmeyer
|
9beceae298
|
shuffle base parsing for shields so it is clearer the call is being made
|
2012-07-05 17:10:00 -07:00 |
|
Dane Springmeyer
|
2f45de8fea
|
serialize comp-op in save_map - refs #1292
|
2012-07-05 17:06:41 -07:00 |
|
Dane Springmeyer
|
0de815ba03
|
remove raster mode serialization and a few std::clog references in save_map and load_map
|
2012-07-05 16:07:38 -07:00 |
|
Dane Springmeyer
|
9dd69d091b
|
merge with master
|
2012-07-05 15:40:16 -07:00 |
|
Dane Springmeyer
|
d8c719f05e
|
finish exposing scale_factor to cairo_renderer
|
2012-07-05 14:54:58 -07:00 |
|
Dane Springmeyer
|
f7383b81fb
|
properly pass the scale_factor to the cairo_renderer_base
|
2012-07-05 11:12:46 -07:00 |
|
artemp
|
59c1f9ac21
|
+ inherit stroke, stroke-width and fill if provided in markers_symbolizer
|
2012-07-05 17:17:35 +01:00 |
|
artemp
|
9d756165e0
|
+ update to work with optional stroke (markers)
|
2012-07-05 17:16:11 +01:00 |
|
artemp
|
847f284a97
|
+ make stroke and fill optional
+ return expression_ptr by const ref
+ change init order
|
2012-07-05 17:11:52 +01:00 |
|
Dane Springmeyer
|
c677b4f47c
|
ensure the bounds used for avoid-edges and minimum-padding is non-buffered - refs #1283
|
2012-07-04 18:34:04 -07:00 |
|
Hermann Kraus
|
6af5fd7151
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-07-04 21:00:59 +02:00 |
|
Hermann Kraus
|
82d7a63ef6
|
Replace remaining parse_expression() calls.
Closes #1168.
|
2012-07-04 20:59:36 +02:00 |
|
Hermann Kraus
|
dd9276b1ef
|
Reuse expression grammar for TextSymbolizer.
Refs #1168.
|
2012-07-04 20:55:03 +02:00 |
|
Hermann Kraus
|
7a967d7047
|
Correctly perform get_text() on <xmltext> nodes.
|
2012-07-04 20:51:34 +02:00 |
|
artemp
|
9b14a7206a
|
remove arrow/ellipse ad-hoc markers - see #1285
|
2012-07-04 14:50:11 +01:00 |
|
artemp
|
6bc3f06afd
|
+ remove arrow/ellipse
|
2012-07-04 14:22:44 +01:00 |
|
artemp
|
ab4e717813
|
+ fix stock markers transformations
FIXME : use markers cache to load and store stock markers
|
2012-07-04 11:56:52 +01:00 |
|
artemp
|
8ab8f7c420
|
+ add missing miterlimit (grid,cairo)
|
2012-07-04 10:07:37 +01:00 |
|
Dane Springmeyer
|
7d9b4ce0da
|
settle upon 'geometry-transform' naming - refs #1276
|
2012-07-03 18:34:11 -07:00 |
|
Dane Springmeyer
|
e4ff79d8d8
|
re-implement f866ab1f80 and da53af5c98 (re-closing #1277) since somehow these commits dissapeared from master
|
2012-07-03 18:04:35 -07:00 |
|
Dane Springmeyer
|
e93c5604a6
|
use detector extent for shields that is also sensitive to buffer_size - refs #1283
|
2012-07-03 13:32:27 -07:00 |
|
artemp
|
290bf735da
|
+ use BOOST_FOREACH
|
2012-07-03 13:38:07 +01:00 |
|
artemp
|
4b9346ab5f
|
+ better name for boolean member to avoid clashing with object name.
|
2012-07-03 12:45:07 +01:00 |
|
artemp
|
a6784270bb
|
+ pass args by const ref
|
2012-07-03 11:16:10 +01:00 |
|
artemp
|
134dc5bbf1
|
Merge branch 'master' into transform-rename
Conflicts:
src/load_map.cpp
|
2012-07-02 15:37:13 +01:00 |
|
artemp
|
7d2c695849
|
+ remove unused font_manager_
|
2012-07-02 13:28:40 +01:00 |
|
Dane Springmeyer
|
757816a1b8
|
respect scale_factor in affine transform used for collision detector in point_symbolizer - refs #1274
|
2012-06-29 17:25:34 -07:00 |
|
Dane Springmeyer
|
9888ff0d50
|
remove geometry type tests for postgis that are not longer valid with postgis 2.0
|
2012-06-29 16:52:54 -07:00 |
|
Dane Springmeyer
|
8412fdbbe6
|
Merge branch 'master' of github.com:mapnik/mapnik
|
2012-06-29 16:36:55 -07:00 |
|
Dane Springmeyer
|
da53af5c98
|
avoid passing empty file attributes into the renderer - closes #1277
|
2012-06-29 16:36:43 -07:00 |
|
Hermann Kraus
|
512a9af53f
|
Fix font scaling.
Refs #1273.
|
2012-06-30 01:28:56 +02:00 |
|
Dane Springmeyer
|
f866ab1f80
|
no need to catch image_reader_exception any more during load map because all errors are now at runtime due to path expressions
|
2012-06-29 16:21:52 -07:00 |
|
Dane Springmeyer
|
5c9186017b
|
rename 'image-transform' to just 'transform' (for backward compatibility) and call transforms applied to geometries 'view-transform'
|
2012-06-29 15:59:56 -07:00 |
|
Dane Springmeyer
|
7f531498c6
|
pass scale_factor to text_renderer in order to scale up halo_radius - refs #1273 and refs #695
|
2012-06-29 13:05:28 -07:00 |
|
Dane Springmeyer
|
ef893b5b5f
|
comment on why we use center for justify_alignment
|
2012-06-29 11:43:37 -07:00 |
|
artemp
|
caa50402dc
|
+ apply scale_factor to raster markers (bilinear)
|
2012-06-29 12:31:41 +01:00 |
|