Commit Graph

2088 Commits

Author SHA1 Message Date
Shahram Najm 97b9c1847f parse_keyval_string: Check number of tokens 2020-06-30 20:05:12 +01:00
Shahram Najm 5185171123 ECC-440: reduce number of open/close in tools 2020-06-29 16:11:19 +01:00
Shahram Najm 03feb61043 ECC-1127: Crash: Trying to print expandedOriginalCodes with bufr_ls 2020-06-28 21:33:35 +01:00
Shahram Najm b264ec902f ECC-440: grib_index_release/grib_index_delete does not close the file 2020-06-28 17:22:15 +01:00
Shahram Najm fb0b601757 ECC-1126: Clean up special cases 2020-06-27 14:35:58 +01:00
Shahram Najm 1dd1500e91 ECC-1126: run with valgrind 2020-06-27 12:53:15 +01:00
Shahram Najm f78f19c2e5 ECC-1126: Simplify keys 2020-06-27 12:52:54 +01:00
Shahram Najm ff95bd30bc ECC-1126: BUFR: ECMWF Local use section key 'ident' should be trimmed (Part 2) 2020-06-26 22:18:08 +01:00
Shahram Najm 8e8a5eb2b8 ECC-1126: BUFR: ECMWF Local use section key 'ident' should be trimmed (Part 1) 2020-06-26 19:37:53 +01:00
Shahram Najm 41f44aa18a Clean up 2020-06-25 15:25:19 +01:00
Shahram Najm 8bd6ce1bdb ECC-1125: Code contribution to improve performance on NEC 2020-06-25 15:03:20 +01:00
Shahram Najm d3d2c94448 SUP-3134: Code contribution to improve performance of ecCodes on NEC 2020-06-25 14:47:14 +01:00
Johannes Schick f7a05d6e79
Add files via upload 2020-06-25 08:50:00 +02:00
Johannes Schick ff30b5697a
Merge branch 'develop' into develop 2020-06-25 07:52:28 +02:00
Shahram Najm df3e8430ed Refactoring and DebugAssert 2020-06-23 20:49:04 +01:00
Shahram Najm 84943a6534 SUP-3196: tests fail when compiling eccodes with -DVECTOR 2020-06-23 13:20:26 +01:00
Shahram Najm e78d510b2a Invalid message: Improved debug info 2020-06-22 15:20:02 +01:00
Shahram Najm 8a51acde19 Message offsets: get count of product 2020-06-21 14:20:32 +01:00
Shahram Najm 56eb012366 Message offsets: first draft 2020-06-21 13:13:32 +01:00
Shahram Najm c438c13c84 Formatting 2020-06-20 14:04:04 +01:00
Shahram Najm 8fe5635d9d Fix comments 2020-06-20 13:59:23 +01:00
Shahram Najm 70a616ba08 Nearest: projections on an ellipsoid 2020-06-20 13:25:07 +01:00
Shahram Najm 622fb168b0 Refactoring 2020-06-14 20:10:44 +01:00
Shahram Najm 49ca0c0167 Space view: iterator/nearest test 2020-06-14 19:52:53 +01:00
Shahram Najm 3d745626a6 Performance: prune nearest neighbours 2020-06-14 13:34:05 +01:00
Shahram Najm defe48fe6c Geographic distance calculations (spherical and ellipsoid) 2020-06-13 19:34:13 +01:00
Shahram Najm 915abc3b2b Space view: implement nearest 2020-06-13 15:20:17 +01:00
Shahram Najm 9e66dd4494 Lambert azimuthal equal area: implement nearest 2020-06-12 22:14:02 +01:00
Shahram Najm 13ba76f3a8 Mercator: implement nearest 2020-06-12 21:44:04 +01:00
Shahram Najm c4da64d8a7 grib_ls with nearest: check indexes 2020-06-12 21:39:52 +01:00
Shahram Najm cd54df6b34 Refactoring: nearest functionality 2020-06-12 20:02:13 +01:00
Shahram Najm 4fea161216 ECC-1115: Return value for invalid grids 2020-06-09 21:13:11 +01:00
Shahram Najm 429524daa5 ECC-1115: Use accessor for both proj source and target strings 2020-06-09 19:44:19 +01:00
Shahram Najm 35e828dda9 ECC-1115: Remove the proj string for regular lat/lon 2020-06-09 17:35:19 +01:00
Shahram Najm 593ec4055f Comments 2020-06-09 17:34:41 +01:00
Shahram Najm 8ab83fae9a ECC-1115: New keys: projSourceString and projTargetString 2020-06-09 15:17:23 +01:00
Shahram Najm fb41fb9c2b Fix Windows build (iwyu) 2020-06-09 14:01:10 +01:00
Shahram Najm ffac26957d Clang: warning: macro name is a reserved identifier 2020-06-09 13:37:39 +01:00
Shahram Najm f952d632c4 Clang: Include what you use 2020-06-09 13:21:21 +01:00
Shahram Najm c1e414116d Merge branch 'develop' into bugfix/memory_leaks 2020-06-07 13:58:36 +01:00
Shahram Najm 4f506043f5 Reformatting 2020-06-06 17:46:47 +01:00
Shahram Najm 784279afff ECC-1115: fix units for LAEA 2020-06-05 15:21:21 +01:00
Shahram Najm be65a9693d ECC-1077: Crash when reopening a previously saved index 2020-06-04 17:57:30 +01:00
Shahram Najm 7aad6175c7 Performance: Don't call grib_value_count if key is not to be dumped 2020-06-02 16:41:06 +01:00
Shahram Najm f0bcda9252 Refactoring: function signature 2020-06-01 16:22:57 +01:00
Shahram Najm 64256ba799 Refactoring: type casts, scope etc 2020-06-01 15:32:53 +01:00
Shahram Najm 7b8b63e1a6 ECC-1118: Crash: substr function called with invalid indexes 2020-05-31 13:39:21 +01:00
Shahram Najm 9e302f2807 Clean up spaces 2020-05-30 22:40:03 +01:00
Shahram Najm a4f499f7eb Refactoring: make local function static 2020-05-28 21:54:25 +01:00
Shahram Najm 43126e1270 Refactoring: make functions static. Also pass in context 2020-05-26 15:26:45 +01:00
Shahram Najm 5478d10505 Memory leaks: grib_dumper_class. Use context directly rather than via handle 2020-05-22 19:43:38 +01:00
Shahram Najm df441ee764 Clang static analyzer: unused variable 2020-05-22 12:58:21 +01:00
Shahram Najm bcba912835 Add comments 2020-05-21 19:31:43 +01:00
Shahram Najm 3d42f57521 Fix missing grib_context 2020-05-21 18:34:18 +01:00
Shahram Najm 5fbb2c3891 ECC-1115: Use +R for spherical earth rather than +a/+b 2020-05-21 16:20:16 +01:00
Shahram Najm c208987e75 Refactoring: remove unused function grib_iarray_get 2020-05-19 15:30:04 +01:00
Shahram Najm 1cf0892c42 Refactoring: remove unused function grib_iarray_set 2020-05-19 15:16:05 +01:00
Shahram Najm 4dd4ea4b18 Refactoring: remove unused function grib_iarray_is_constant 2020-05-19 14:59:33 +01:00
Shahram Najm c1887a46dd Update list of keys and hash (projString) 2020-05-19 13:08:44 +01:00
Shahram Najm dcdaee094f ECC-1115: Refactoring 2020-05-19 10:55:41 +01:00
Shahram Najm 32915f4b7d ECC-1115: Refactor. Use lookup and dispatch 2020-05-18 22:11:29 +01:00
Shahram Najm 620d167afd ECC-1115: Cleaning up 2020-05-18 21:23:23 +01:00
Shahram Najm 27550f1787 ECC-1115: Error messages 2020-05-18 19:59:00 +01:00
Shahram Najm 5ed4876e64 ECC-1115: Added basic test 2020-05-18 18:16:11 +01:00
Shahram Najm b468a914d7 ECC-1115: Lambert azimuthal 2020-05-18 17:56:38 +01:00
Shahram Najm cbcb52c6a1 ECC-1115: Lambert conformal conic 2020-05-18 17:05:37 +01:00
Shahram Najm 8aea24d72a ECC-1115: fix value count 2020-05-18 16:45:34 +01:00
Shahram Najm 8114b9a6b3 ECC-1115: Polar stereo support 2020-05-18 16:40:47 +01:00
Shahram Najm 722b75a6fa ECC-1115: mercator support 2020-05-18 16:19:45 +01:00
Shahram Najm 633e37ce1a ECC-1115: GRIB: Add new key to get the proj string for a grid 2020-05-18 15:58:40 +01:00
Shahram Najm 770cb95baf Memory leak 2020-05-18 15:51:33 +01:00
Shahram Najm f3381a4e79 Cppcheck: address of local variable 'value' is accessed at non-zero index 2020-05-18 13:07:33 +01:00
Shahram Najm 4ab73a2b5f Cppcheck: Initialise buffer 2020-05-18 12:04:12 +01:00
Shahram Najm 94df6d6f1c Error messages 2020-05-17 19:51:40 +01:00
Shahram Najm ae936516c0 Const correctness 2020-05-17 17:22:32 +01:00
Shahram Najm 95b0a7ed6e Fix signature 2020-05-17 17:19:46 +01:00
Shahram Najm cc2c99a96a Update list of keys and hash 2020-05-17 16:59:36 +01:00
Shahram Najm f0c1c57fa1 ECC-1114: Official request for Mercator grid support (geoiterator) 2020-05-15 16:49:12 +01:00
Shahram Najm 5383768bfd Merge branch 'feature/Mercator' into develop 2020-05-15 14:54:44 +01:00
Shahram Najm 15a2a3ab86 Memory leak in BUFR key splitting 2020-05-14 21:25:46 +01:00
Shahram Najm 558f1c4afa Function signatures 2020-05-14 19:54:51 +01:00
Shahram Najm c5bd2b55de Merge branch 'develop' into bugfix/memory_leaks 2020-05-14 18:22:02 +01:00
Shahram Najm f3338ad249 ECC-1111: Performance: Lock overhead when threads process different files 2020-05-12 16:58:50 +01:00
Shahram Najm c22ad00a42 Memory leak in BUFR subset list 2020-05-12 14:11:36 +01:00
Johannes Schick 10da9afcc8
Merge branch 'develop' into develop 2020-05-11 08:18:20 +02:00
Shahram Najm 36c8f78057 Merge branch 'develop' into feature/Mercator 2020-05-09 17:20:34 +01:00
Shahram Najm 7b89c30e8f Memory leak in read GRIB (unsupported edition) 2020-05-09 17:20:15 +01:00
Shahram Najm 23ed45eb33 Mercator geoiterator. Formatting 2020-05-09 15:04:24 +01:00
Shahram Najm b2904121aa Mercator geoiterator. Formatting 2020-05-09 15:00:00 +01:00
Shahram Najm 525924d616 Mercator geoiterator. First working version 2020-05-09 13:09:58 +01:00
Shahram Najm e356498fb2 Mercator geoiterator (part 1) 2020-05-08 23:45:17 +01:00
Shahram Najm 475032bf84 Mercator geoiterator (part 1) 2020-05-08 23:36:55 +01:00
Johannes Schick a929a1dde6
Add files via upload 2020-05-08 13:50:35 +02:00
Shahram Najm f67fe2567f Merge branch 'develop' into bison_upgrade 2020-05-06 15:05:17 +01:00
Shahram Najm bfa7dedf49 ECC-1109: Upgrade versions of flex and bison 2020-05-06 15:04:55 +01:00
Shahram Najm 739318e1a7 ECC-1109: Upgrade versions of flex and bison 2020-05-06 15:04:00 +01:00
Shahram Najm 44d8ab1d28 Memory leak in inputBitmap 2020-05-06 13:39:04 +01:00
Shahram Najm 910a0bad7d Bison upgrade to version 3.5.4 (2019) 2020-05-05 17:35:54 +01:00
Shahram Najm e6d8cbc15b Memory leak in expanded descriptors 2020-05-05 10:52:05 +01:00
Shahram Najm 8bcaa15726 Missing files 2020-05-04 16:32:35 +01:00
Shahram Najm 69ffc752a2 Missing files 2020-05-04 16:09:01 +01:00
Shahram Najm 269b025311 Memory leak in grib_filter actions 2020-05-04 12:41:33 +01:00
Shahram Najm 9db69507ce Clang 9.0.1 warnings 2020-04-30 15:57:21 +01:00
Shahram Najm fe6334d069 ECC-1107: bufr_dump -E: should set the 'messageLength' ECMF local section key 2020-04-30 13:52:43 +01:00
Shahram Najm bf1e1aee6a Clean up 2020-04-28 20:42:45 +01:00
Shahram Najm 6399a71547 Clean up 2020-04-28 19:50:28 +01:00
Shahram Najm d47064e0af GRIB2 legacy ECMWF parameters: Switch to using the legacy concepts 2020-04-28 16:12:02 +01:00
Shahram Najm 1b3cd98549 GRIB2 legacy ECMWF parameters: Code cleanup 2020-04-25 18:32:38 +01:00
Shahram Najm 186b2e8b41 Merge branch 'develop' into feature/GRIB2-discipline192-legacy 2020-04-23 17:42:46 +01:00
Shahram Najm 06deb515d5 ECC-1053: Renamed key to stepHumanReadable 2020-04-22 12:51:04 +01:00
Shahram Najm 2d7d8d1240 ECC-1053: Add key to get forecast step in human-readable format 2020-04-22 12:36:02 +01:00
Shahram Najm 10a5cbfbcf ECC-1053: Pass in stepUnits and stepRange 2020-04-21 18:28:26 +01:00
Shahram Najm 5762054216 ECC-1053: Add key 2020-04-21 17:57:14 +01:00
Shahram Najm a9ae4a88aa ECC-1053: Add ability to get forecast step in human-readable format 2020-04-21 15:16:08 +01:00
Shahram Najm 4bc134ec2f Memory leak: BUFR 2020-04-17 19:10:32 +01:00
Shahram Najm ead17c58e4 Memory leak: BUFR 2020-04-17 18:09:52 +01:00
Shahram Najm 32f7646789 Memory leak: smart table 2020-04-17 17:06:37 +01:00
Shahram Najm 36cd38a833 Merge branch 'develop' into feature/GRIB2-discipline192-legacy 2020-04-17 11:10:39 +01:00
Shahram Najm bd519d74d9 Rename macro 2020-04-16 19:09:06 +01:00
Shahram Najm 53a2900723 Memory leak: grib_dump on index file 2020-04-14 12:52:19 +01:00
Shahram Najm 6541872ca3 Memory leak 2020-04-09 21:14:56 +01:00
Shahram Najm b86f47e43c Memory leak 2020-04-09 20:59:25 +01:00
Shahram Najm 31429e7744 Add test for memory leaks 2020-04-09 18:05:17 +01:00
Shahram Najm c33fa153be Memory leaks associated with grib_accessor_class_bufr_elements_table.c and string_split 2020-04-09 13:11:58 +01:00
Shahram Najm 9b163f5308 Memory leaks 2020-04-08 23:02:52 +01:00
Shahram Najm 7b8a892508 ECC-1101: BUFR decoding: error message issued if numberOfSubsets==0 and empty data section 2020-04-08 12:51:08 +01:00
Shahram Najm f0f1fec2a8 Memory leak 2020-04-01 13:54:28 +01:00
Shahram Najm a175bf9d7b Refactoring 2020-03-31 17:03:57 +01:00
Shahram Najm e12bfac0aa Rename function 2020-03-31 16:38:00 +01:00
Shahram Najm 5702fab77d Refactoring: utility function to normalise longitudes 2020-03-31 15:00:14 +01:00
Shahram Najm e1d5f7cd52 ECC-1055: Add reference to Map Projections book 2020-03-31 14:08:46 +01:00
Shahram Najm 18b424cd41 Merge branch 'develop' into feature/GRIB2-discipline192-legacy 2020-03-30 17:06:51 +01:00
Shahram Najm 4f5511599e Memory leak 2020-03-29 22:08:53 +01:00
Shahram Najm 8a307f2b95 Memory leak in GTS headers 2020-03-29 19:53:10 +01:00
Shahram Najm 06aa37b701 ECC-1055: Clean up 2020-03-29 13:00:14 +01:00
Shahram Najm 7c5fe41298 Clang static analyser warnings 2020-03-29 12:50:34 +01:00
Shahram Najm 3c299a8d59 ECC-1055: Clean up 2020-03-28 21:11:26 +00:00
Shahram Najm 9e209abfd7 ECC-1055: First working version 2020-03-28 20:30:00 +00:00
Shahram Najm 6cb27aaf37 ECC-1055: Shape of the earth not taken into account for Lambert Conformal Conic (part 5) 2020-03-28 17:52:19 +00:00
Shahram Najm 0f898f4336 ECC-1055: Clean up 2020-03-28 14:21:05 +00:00
Shahram Najm 7bf61fac96 ECC-1055: Shape of the earth not taken into account for Lambert Conformal Conic (part 4) 2020-03-27 21:17:24 +00:00
Shahram Najm 79994551b8 ECC-1055: Shape of the earth not taken into account for Lambert Conformal Conic (part 3) 2020-03-27 17:56:21 +00:00
Shahram Najm e810f04f70 ECC-1055: Shape of the earth not taken into account for Lambert Conformal Conic (part 2) 2020-03-27 16:45:00 +00:00
Shahram Najm 26cbacdbe7 ECC-1055: Compiler warnings 2020-03-27 15:19:31 +00:00
Shahram Najm 4d7df8a97b Merge branch 'develop' into feature/ECC-1055-LambertConformalOblate 2020-03-27 15:17:02 +00:00
Shahram Najm 72d3d49f88 ECC-1100: Function grib_context_log(): errno value can potentially be overwritten 2020-03-27 14:36:16 +00:00
Shahram Najm 97360e6e5c ECC-1055: Shape of the earth not taken into account for Lambert Conformal Conic (part 1) 2020-03-26 18:41:58 +00:00
Shahram Najm 0a1f7fb903 Clang tidy warning: Call to 'calloc' has an allocation size of 0 bytes 2020-03-26 15:33:14 +00:00
Shahram Najm 56ad3dbe72 ECC-1099: grib_file_open: errno from fopen overwritten by call to strdup 2020-03-26 11:30:25 +00:00
Shahram Najm a45df08da7 CMake style 2020-03-25 18:13:32 +00:00
Shahram Najm 7d42718609 BUFR: protection against descriptors being NULL 2020-03-24 20:06:52 +00:00
Shahram Najm d9a71af208 GRIB2: setting mars type 2020-03-24 12:49:06 +00:00
Shahram Najm c1c3d10620 Clang static analyser warnings 2020-03-23 11:52:50 +00:00
Shahram Najm e40f3f5c5a Clang static analyser warnings 2020-03-22 12:38:57 +00:00
Shahram Najm cb8a9d3291 Clang static analyser warnings 2020-03-22 12:13:43 +00:00
Shahram Najm 21976f57a0 Refactoring: latlon iterator and rotation keys 2020-03-21 15:18:21 +00:00
Shahram Najm 3269b850e1 Clang static analyser warnings 2020-03-20 20:55:04 +00:00
Shahram Najm aa7685d431 GRIB2 legacy ECMWF parameters: Added definitions files. Only supports paramId 210 2020-03-20 20:38:29 +00:00
Shahram Najm b8cb4e0394 Clang static analyser warnings 2020-03-20 12:27:16 +00:00
Shahram Najm 6df011e687 ECC-1096: bufr_dump shows '2147483647' instead of 'null' 2020-03-19 12:44:17 +00:00
Shahram Najm ed3130298f Clang static analyser warnings 2020-03-18 18:47:08 +00:00
Shahram Najm 678c8eea86 Memory leak 2020-03-18 14:48:15 +00:00
shahramn 57c3d8fa8b
Merge branch 'develop' into encode-unsigned-long-pointer-increment 2020-03-17 14:41:45 +00:00
Shahram Najm 6f1e6dfdea ECC-1093: Add ability to detect when flags has lowercase but not string_type 2020-03-14 21:40:10 +00:00
Shahram Najm 003b3809bf Refactoring: cryptic variable names 2020-03-14 13:07:01 +00:00
Shahram Najm 816f5419f4 ECC-1092: Rename key 'is_rotated_grid' 2020-03-14 12:31:20 +00:00
Shahram Najm a1132473c1 ECC-1092: Rename key 'is_rotated_grid' 2020-03-14 12:20:54 +00:00
Shahram Najm eb629dd260 Windows: fix directory tokenizing in path 2020-03-13 16:46:11 +00:00
Shahram Najm 21ce4268a3 Refactoring: remove repeated code 2020-03-13 15:17:35 +00:00
Shahram Najm 63afc5af33 Debugging 2020-03-13 15:16:23 +00:00
Shahram Najm d78693bb34 Legacy ECMWF parameters 2020-03-11 12:35:59 +00:00
Matthew Krupcale c950c6f968 bits: grib_encode_unsigned_long: increment pointer, not the pointed-to-value
This fixes a long-standing (i.e. at least since 1.9.5 ca. Oct 2010) bug in grib_encode_unsigned_long where the first byte was incorrectly incremented instead of incrementing the pointer to the next byte. This would only happen if the bit position / offset was not aligned on a byte boundary (i.e. *bitp % 8 != 0), though. Fortunately, as far as I can tell, no grib_api/eccodes functions invoked grib_encode_unsigned_long such that this bug was manifested.

 * src/grib_bits_any_endian.c: increment pointer, not the pointed-to-value
 * src/grib_bits_ibmpow.c: likewise.
2020-03-09 19:16:32 -04:00
Shahram Najm ef3ae79931 ECC-1090: Create a new MARS type 'eme' for ensemble data assimilation model errors 2020-03-08 16:47:22 +00:00
Shahram Najm 458d20311d ECC-1088: Samples path 2020-03-04 22:15:10 +00:00
Shahram Najm 9f1e9db4e0 ECC-1088: Definitions path: Core extensions added to end of path implicitly 2020-03-04 18:00:40 +00:00
Shahram Najm 20a0d75ba1 Clang static analyser warnings 2020-03-03 16:00:52 +00:00
Shahram Najm 4cf02d70bd Clang static analyser warnings 2020-03-02 13:42:07 +00:00
Shahram Najm d5f1febca2 Make function grib_hash_keys_insert private 2020-03-02 13:41:30 +00:00
Shahram Najm f719d72feb Clang-analyzer-security: Replace call to insecure function 'strcpy' 2020-03-02 13:26:09 +00:00
Shahram Najm ab0ec2387e Clang static analyser warnings 2020-02-28 11:46:39 +00:00
Shahram Najm 76dfc35268 Clang static analyser warnings 2020-02-27 13:12:49 +00:00
Shahram Najm 6d94d93aa9 Clang static analyser warnings 2020-02-26 21:25:12 +00:00
Shahram Najm 8e37991003 Debugging: show setting of P1 as two octets 2020-02-26 15:36:02 +00:00
Shahram Najm 2759f71f4c Documentation: Setting of P1 and P2 when timeRangeIndicator=10 2020-02-26 14:53:58 +00:00
Shahram Najm 68d0980e8b ECC-1083: codes_bufr_extract_headers_malloc: Infinite loop when invalid file passed in 2020-02-26 12:11:15 +00:00
Shahram Najm cb54cd1ee1 Clang static analyser warnings 2020-02-26 12:10:53 +00:00
Shahram Najm d5a7d4dfc6 Clang static analyser warnings 2020-02-25 13:53:06 +00:00
Shahram Najm 73b815bce7 Clang static analyser warnings 2020-02-24 15:35:09 +00:00
Shahram Najm 3ebc9baabc Debugging: print min/max in debug mode 2020-02-24 12:34:20 +00:00
Shahram Najm e4fd126f5d Angular precision 2020-02-23 18:21:40 +00:00
Shahram Najm 3d61659dfa Clang static analyser warnings 2020-02-21 18:28:17 +00:00
Shahram Najm 6dc79a4a78 GRIB-364: Memory fault when packing GRIB2 files with 'log preprocessing' 2020-02-20 13:58:23 +00:00
Shahram Najm 0820f37b4a Fix typo 2020-02-20 13:07:44 +00:00
Shahram Najm da23aa8db4 Merge develop 2020-02-20 13:05:36 +00:00
Shahram Najm 9222fe2873 ECC-992: Adjust min. limit for 247 2020-02-20 12:03:49 +00:00
Shahram Najm a6ad6990ca Performance: do not decode keys which are not to be dumped 2020-02-19 16:39:40 +00:00
Shahram Najm 08e73e71e5 Clang static analyser warnings 2020-02-19 16:39:06 +00:00
Shahram Najm 55139ff1f6 ECC-805: rebuild key hash 2020-02-19 14:19:22 +00:00
Shahram Najm 514e84ab75 Clang static analyser warnings 2020-02-19 12:07:34 +00:00
Shahram Najm c190be37de Remove key angularPrecision. Also move true/false down to metar/taf 2020-02-19 11:49:50 +00:00