Thomas Fussell
d2be054b7c
optimize shared strings and handle formula strings correctly
2017-05-10 08:44:25 -04:00
Thomas Fussell
237fdcc84b
ignore missing calcChain when comparing xlsx files during testing
2017-05-08 11:40:01 -04:00
Thomas Fussell
f32859b257
stop trying to read generated agile encryption info xml for now since it's not valid
2017-05-03 12:16:18 -04:00
Thomas Fussell
239c76659f
work on writing a valid compound document
2017-05-02 22:22:22 -04:00
Thomas Fussell
ee642fc6c1
getting there
2017-04-30 20:21:47 -04:00
Thomas Fussell
b7bf16d47c
implement input and output streambufs for compound document streams
2017-04-30 17:23:28 -04:00
Thomas Fussell
f42d3eee74
move vector_streambuf definitions to a separate file, fix zip buffer bug
2017-04-29 12:29:41 -04:00
Thomas Fussell
f5b5d67594
wip
2017-04-28 17:56:05 -04:00
Thomas Fussell
be37df3c86
intermediate commit
2017-04-28 12:42:42 -04:00
Thomas Fussell
6334907de7
work on short streams
2017-04-28 10:58:55 -04:00
Thomas Fussell
a90b32f386
switch to full in-memory approach, still working
2017-04-26 23:19:28 -04:00
Thomas Fussell
bb91308dd4
work in progress
2017-04-26 12:02:49 -04:00
Thomas Fussell
1e1e8272ae
coding is done finally. time to debug some compound files
2017-04-25 18:14:47 -04:00
Thomas Fussell
c642db6cc2
continue fleshing out cdf writing, getting close now...
2017-04-24 16:06:58 -04:00
Thomas Fussell
b2a5110939
organize detail files, start wiring up encryption logic
2017-04-20 14:03:03 -04:00
Thomas Fussell
adda7b877a
add meta tests (tests that test test functions), optimize sha calls, test incorrect passwords
2017-04-18 18:30:54 -04:00
Thomas Fussell
b3cc07e5db
include header for std::fabs
2017-04-13 22:38:26 -04:00
Thomas Fussell
05c1565a83
link in libstudxml for tests for some reason
2017-04-13 21:53:58 -04:00
Thomas Fussell
104e3bea25
clean up samples and benchmarks, data handling
2017-04-13 20:18:32 -04:00
Thomas Fussell
c68aa8fc84
finish wiring up tests
2017-04-13 19:24:20 -04:00
Thomas Fussell
185d108e82
delete some empty test suites
2017-04-13 19:03:59 -04:00
Thomas Fussell
b85680c5ed
start rewiring tests
2017-04-13 19:01:30 -04:00
Thomas Fussell
835e36d6ae
initial commit withou cxxtest
2017-04-13 14:51:35 -04:00
Thomas Fussell
46df18c12b
improve unicode tests
2017-04-13 10:58:40 -04:00
Thomas Fussell
5b9304960c
accept utf8 passwords for decrypting workbooks, #144
2017-04-12 19:21:21 -04:00
Thomas Fussell
fb59d5b880
fix windows build
2017-04-11 22:25:33 -04:00
Thomas Fussell
a7cd2c9ee5
link in libstudxml as object files
2017-04-11 16:04:17 -04:00
Thomas Fussell
fc4d284615
begin removing external dependencies
2017-04-11 11:08:16 -04:00
Thomas Fussell
8d04b6501c
keep debugging coverage
2017-03-21 22:34:49 -04:00
Thomas Fussell
d7ee03d620
Merge branch 'master' of github.com:tfussell/xlnt
2017-03-18 21:31:05 -04:00
Thomas Fussell
21d05c4572
remove tests requirement on threads, add setting to disable tests
2017-03-18 21:30:26 -04:00
Thomas Fussell
d7cd24c9f2
specify python interpreter for cxxtestgen
2017-03-17 00:13:58 -04:00
Thomas Fussell
c2365b3b31
set dll path before running tests, copy xlnt dll
2017-03-11 17:28:03 -05:00
Thomas Fussell
98d5b64706
link libstudxml to xlnt.test too
2017-03-11 14:57:08 -05:00
Thomas Fussell
5e60b61fe9
specify module path
2017-03-11 14:47:56 -05:00
Thomas Fussell
2bbcb9f7bf
link cryptopp to xlnt.test
2017-03-11 14:40:34 -05:00
Thomas Fussell
80c7664509
add cxxtest to the source tree, external depepdencies are giving me a headache
2017-03-11 14:05:50 -05:00
Thomas Fussell
92eaaeee85
I don't even know at this point
2017-03-11 11:25:03 -05:00
Thomas Fussell
3b35dbb901
specify cryptopp library name for appveyor
2017-03-11 11:15:35 -05:00
Thomas Fussell
f42a0008b7
still need to include libstudxml in xlnt.test, I forgot
2017-03-11 10:48:58 -05:00
Thomas Fussell
b4d84f29f1
link zlib in a better way
2017-03-11 10:37:28 -05:00
Thomas Fussell
4f47087d7e
correct cxxtestgen location
2017-03-11 10:13:42 -05:00
Thomas Fussell
77eeb3b567
fix cxxtestgen directory
2017-03-10 19:10:56 -05:00
Thomas Fussell
db259e9422
workaround for cxxtestgen
2017-03-10 19:08:03 -05:00
Thomas Fussell
e93e8ed091
fix linking
2017-03-10 19:00:10 -05:00
Thomas Fussell
daae577178
stop trying to build zlib and cryptopp locally
2017-03-10 18:33:20 -05:00
Thomas Fussell
0aa26019e2
clean up cmake lists
2017-03-05 22:39:27 -05:00
Thomas Fussell
3db6cc8f0f
use externalproject instead of git submodules for dependencies
2017-03-02 08:41:17 -05:00
Thomas Fussell
9cdf31065c
improve third-party lib handling for vcpkg
2017-02-28 00:00:25 -05:00
Thomas Fussell
767d498dac
separate crypto_helper into header file, fix lots of stuff
2017-02-17 23:11:06 -06:00
Thomas Fussell
84011553a8
rename some things and fix some formatting
2017-02-10 20:22:38 -08:00
Thomas Fussell
85a3f2d60a
add a custom property to the condensed file
2017-02-03 19:40:39 -06:00
Thomas Fussell
7a18c816b6
re-enable round-trip tests, continue condensing test files
2017-01-22 14:54:07 -05:00
Thomas Fussell
0c100e166a
fix up comments, hyperlinks, and formulae consumption tests
2017-01-21 19:12:26 -05:00
Thomas Fussell
e47baaf008
begin condensing test files, no reason to have so many [ci skip]
2017-01-21 11:35:47 -05:00
Thomas Fussell
e4ec1a2850
use system packages for zlib, cryptopp, and cxxtest. WIP [ci skip]
2017-01-21 10:12:08 -05:00
Thomas Fussell
a2bfdee2f2
intermediate commit
2017-01-21 09:04:10 -05:00
Thomas Fussell
cc5952ec19
rename zip to zstream in tests too
2017-01-04 21:14:37 -05:00
Thomas Fussell
cc1a5e15f6
clean up test xml_helper, rename zip to zstream
2017-01-04 19:02:31 -05:00
Thomas Fussell
c43561b4bd
remove calcChain when no formulae remain in any cell, correct calcChain relationship type string, closes #98
2017-01-02 19:13:38 -05:00
Thomas Fussell
78d67ec37d
add test xlsx for custom properties consumption
2017-01-02 17:42:54 -05:00
Thomas Fussell
42c9233ad9
compile and link third-party amalgamation as a static lib instead of object files and fix clang warnings in cryptopp
2017-01-02 17:41:39 -05:00
Thomas Fussell
7de0b05480
fix zip header error when unzipping for #103
2016-12-31 19:15:09 -05:00
Thomas Fussell
66b5187e73
stop trying to produce non-excel style xlsx files
2016-12-29 18:36:29 -05:00
Thomas Fussell
c637f412b6
continue working through xml problems as a result of fixing xml comparison
2016-12-26 09:38:26 -05:00
Thomas Fussell
c8f2ca204b
clang-format all source files, fix broken test helpers--lots of cleanup necessary as a result [ci skip]
2016-12-24 10:04:57 -05:00
Thomas Fussell
008461bf60
finish full header/footer implementation, add support for page breaks, clean up row/column properties interface
2016-12-22 18:57:22 -05:00
Thomas Fussell
886605d643
fix msvc build with some defines
2016-12-15 08:27:16 +01:00
Thomas Fussell
414fe5da39
suppress dev warnings in cryptopp cmake, locate python more flexibly using find_package
2016-12-14 08:27:09 +00:00
Thomas Fussell
e1157625a5
begin refining headers and footers, remove dependency on pugixml
2016-12-10 00:18:50 +00:00
Thomas Fussell
c55aac9ecf
rename getters and setters to the property name, many breaking changes\!
2016-12-02 14:37:50 +01:00
Thomas Fussell
a1ff8c0ed2
parse relationship mode and implement reading hyperlinks, closes #87
2016-11-30 01:05:47 +01:00
Thomas Fussell
2cc3f7947a
clean up xml parsing, fix numbers xlsx decryption, unskip some tests
2016-11-25 13:13:55 +00:00
Thomas Fussell
455be8fb5f
fix mingw build, closes #80
2016-11-19 19:41:21 -05:00
Thomas Fussell
f90e35e007
optimize format garbage collection and apply style fills to formats correctly, fixes #79 , fix cell iteration, closes #73 , add third-party licenses to LICENSE.md, update README, fix all clang and msvc warnings
2016-11-09 19:52:18 -05:00
Thomas Fussell
6c508845cc
link with gcov
2016-10-31 23:03:34 -04:00
Thomas Fussell
0d97105122
clean up zip.cpp, enable and fix compiler warnings, use equality instead of hashing for style components, compile all cpp files in sample directory, track remote branches for submodules
2016-10-31 20:48:43 -04:00
Thomas Fussell
dce2367524
fix clang build
2016-10-30 21:44:43 -04:00
Thomas Fussell
012dd0984e
initial implementation of wstring filenames
2016-10-30 21:17:51 -04:00
Thomas Fussell
5b4de6a150
use streams to access zip files and their contents instead of std::stringstream to reduce memory usage, replaces miniz with zlib, closes #66
2016-10-30 15:48:40 -04:00
Thomas Fussell
82311c96e4
implement reading of cell comments
2016-10-29 10:23:04 -04:00
Thomas Fussell
de23f63314
use pthreads on non-windows builds of xlnt tests
2016-10-27 22:44:08 -04:00
Thomas Fussell
3c7c40cdfa
make build system modular
2016-10-27 18:40:20 -04:00
Thomas Fussell
f0f0607638
revert to old cmake output directory method, fix travis build
2016-10-25 21:12:57 -04:00
Thomas Fussell
c49341c82f
clean up cmake build, fix warnings, improve configuration, general
...
housekeeping, fixes #72 , fixes #70
2016-10-25 20:22:22 -04:00
Thomas Fussell
9c8cba9f3f
finally figured out how to decrypt with botan--swapping back out for botan
2016-10-24 22:09:15 -04:00
Thomas Fussell
aea237a632
implement ooxml decryption (standard and agile)
2016-10-23 22:40:05 -04:00
Thomas Fussell
2d7ecafb67
add missing header
2016-10-18 19:27:26 -04:00
Thomas Fussell
a5d50b8ec6
commit in-progress work for reading/writing password protected workbooks, #69 (not working yet)
2016-10-10 07:28:49 -04:00
Thomas Fussell
941bd2a672
translate theme to libstudxml, ugh...
2016-09-18 21:49:37 -04:00
Thomas Fussell
a03805acbf
begin testing styles more extensively
2016-09-11 14:57:34 -04:00
Thomas Fussell
ba2186ff7b
uncomment/unskip some tests
2016-09-07 22:39:13 -04:00
Thomas Fussell
3d21a83c93
make xml comparisons in xml helper content-type aware, fix excel style workbook generation
2016-09-05 19:17:36 -07:00
Thomas Fussell
182e37958d
Merge branch 'master' of http://github.com/tfussell/xlnt
2016-08-16 00:24:01 -04:00
Thomas Fussell
94881ce660
begin correctly implementing styles and formats
2016-08-16 00:23:49 -04:00
Thomas Fussell
ae1667f58e
add basic numbers-style xlsx
2016-08-15 19:53:38 -04:00
Thomas Fussell
a7067db2ba
unskip a few more tests and fix xml helper node comparison
2016-08-13 19:44:45 -04:00
Thomas Fussell
31911b1afc
remove schemata, remove test xml data, implement minimal round-tripping
2016-08-13 14:45:26 -04:00
Thomas Fussell
1b5bdbeb18
improve manifest interface, work on round-tripping
2016-08-12 00:22:14 -04:00
Thomas Fussell
2fff29ba86
fix non-windows build errors
2016-08-06 10:50:29 -04:00
Thomas Fussell
6c829a235a
improve manifest, implement true thumbnail handling, being refactoring serialization tests
2016-08-06 10:40:17 -04:00
Thomas Fussell
cf80c46b66
a little refactoring
2016-08-05 01:52:05 -04:00
Thomas Fussell
461b9fa106
convert path_helper return to path
2016-08-03 09:00:58 -04:00
Thomas Fussell
ccc3995709
start correctly implementing opc
2016-08-03 00:12:18 -04:00
Thomas Fussell
4234a62b8b
clean up api and do more testing
2016-08-01 18:33:43 -04:00
Thomas Fussell
d39f5b2299
improve manifest
2016-07-29 17:50:33 -04:00
Adam Nielsen
22be565b92
Add new test to confirm read then write doesn't change worksheet order
2016-07-25 11:38:15 +10:00
Thomas Fussell
8ef1fe1a28
test and implement reading gradient fill
2016-07-23 20:41:55 -04:00
Thomas Fussell
d1d9471e15
test opening bad files
2016-07-22 23:21:53 -04:00
Thomas Fussell
ce0ae608ee
test inlinestr
2016-07-21 20:44:00 -04:00
Thomas Fussell
894c46c920
finish renaming test helpers and fix windows errors
2016-07-20 19:54:24 -04:00
Thomas Fussell
e222e1b268
fix warnings
2016-07-20 19:16:51 -04:00
Thomas Fussell
dec6aaa49a
test some stuff, rename some other stuff
2016-07-20 19:04:44 -04:00
Thomas Fussell
ef2b8de33d
fix windows bug
2016-07-20 10:28:12 +08:00
Thomas Fussell
f614c737f5
test text
2016-07-16 18:42:56 -04:00
Thomas Fussell
9f1ac60d20
start implementing complex number formats, test builtin formats
2016-07-05 21:27:35 -04:00
Thomas Fussell
627e6d438e
Merge remote-tracking branch 'xpol/remove-and-ignore-genreated-test-runner'
2016-07-04 12:21:46 -04:00
Thomas Fussell
9ae506c1ea
move serialization classes to detail, recouple with pugixml (no reason to abstract)
2016-07-03 19:22:08 -04:00
Xpol Wan
49e47a57a2
Remove and ignore generated test runner.
2016-06-29 17:30:26 +08:00
Thomas Fussell
135af6e6c9
fix styles -- Excel wanted to repair saved workbooks
2016-05-15 15:03:02 -04:00
Thomas Fussell
e1e29e1f30
Merge remote-tracking branch 'xpol/shared-string-with-different-formatted-parts' into styles-refactoring
2016-05-14 09:30:05 -04:00
Xpol Wan
c18110e282
add support for one cell with different formatted text nodes.
...
Eg, In one cell the text is abcdef, where abc and def have different format (e.g., different colours or fonts).
The the sharedString.xml in xlsx have multiple r node in si node:
```xml
<si>
<r>
<t>abc</t>
</r>
<r>
<rPr><sz val="10"/><color rgb="FFFF0000"/><rFont val="微软雅黑"/><charset val="134"/></rPr>
<t>def</t>
</r>
</si>
```
Currently `shared_strings_serializer::read_shared_strings()` only reads the first r node, and should consider as a bug.
This commit fixes this bug by read all `r.t.text` values in one `si` node and concat the text into one single string.
2016-05-14 16:24:21 +08:00
Thomas Fussell
739be9d850
merge changes from other computer
2016-05-13 12:32:44 -04:00
Thomas Fussell
31b546b1d5
general API improvements
2016-05-11 19:24:53 -04:00
Thomas Fussell
9bd6e92297
not done yet. I can't beleive how complicated this is
2016-04-30 16:19:45 -04:00
Adam Nielsen
62c00744b0
Add test for duplicate shared string
2016-04-26 13:28:57 +10:00
Adam Nielsen
c20795dd9f
Add test for charset error when opening valid .xlsx
2016-04-22 16:30:32 +10:00
Thomas Fussell
0649526796
improve build
2016-01-16 21:07:02 -08:00
Thomas Fussell
1ec1b2ac83
add test to reproduce issue #34
2015-12-22 14:39:06 -05:00
Thomas Fussell
c456c920cc
fix travis
2015-11-21 00:43:32 -05:00
Thomas Fussell
21315ce803
forgot to revert test helpers
2015-11-10 19:46:57 -05:00
Thomas Fussell
3e0c666263
add samples to be used in documentation and to be compiled
2015-11-10 19:16:50 -05:00
Thomas Fussell
7b5246f9dd
finish up custom string class implementation
2015-11-07 18:37:23 -05:00
Thomas Fussell
665f8fbebc
made a new string class for dll exports
2015-11-04 18:45:03 -05:00
Thomas Fussell
a2919dfed8
add missing runtime_error include and improperly located headers
2015-11-03 08:46:40 -05:00
Thomas Fussell
2c8ccdfcda
restructure source and clean up cmake scripts
2015-11-03 08:38:09 -05:00
Thomas Fussell
c9b6b9e473
fix windows errors
2015-11-02 14:22:13 -05:00
Thomas Fussell
e16d381b11
remove accidental inclusion of some debug code
2015-11-01 23:56:49 -05:00
Thomas Fussell
2f8032437c
fix all tests
2015-11-01 23:52:19 -05:00
Thomas Fussell
fef68e460f
restructure build system
2015-11-01 12:31:29 -05:00
Thomas Fussell
832294ace6
use new windows include in all files
2015-11-01 09:47:52 -05:00
Thomas Fussell
9dce7b8f0c
almost done. phew...
2015-10-30 18:54:04 -04:00
Thomas Fussell
84e9dd099e
keep refactoring serialization code, updating tests
2015-10-29 23:16:31 -04:00
Thomas Fussell
75ec0f8eee
keep refactoring serialization code
2015-10-29 19:37:07 -04:00
Thomas Fussell
c884ad7f82
start refactoring serialization code
2015-10-29 13:46:56 -04:00
Thomas Fussell
ea46558d2c
revert failing test
2015-10-26 18:13:42 -04:00
Thomas Fussell
c113bf0a98
try out failing test
2015-10-26 18:10:43 -04:00
Thomas Fussell
959ba08e4a
fix travis build
2015-10-26 17:35:47 -04:00
Thomas Fussell
0d53471ff7
fix cmake pre build step
2015-10-26 16:26:47 -04:00
Thomas Fussell
c07b97f3e8
improve printing cells to stream and round tripping
2015-10-26 00:26:48 -04:00
Thomas Fussell
c802a1f591
finished minimal styles implementation
2015-10-23 14:42:36 -04:00
Thomas Fussell
21b3d366d6
change some things
2015-10-20 23:30:10 -04:00
Thomas Fussell
3b56af6b8e
still working on styles, so close
2015-10-19 00:03:52 -04:00
Thomas Fussell
2f07e0ae62
continue implementing styles
2015-10-18 15:30:46 -04:00
Thomas Fussell
a63984969e
improve date handling and printing
2015-10-16 18:35:11 -04:00
Thomas Fussell
e3bb0be98e
work on writer
2015-10-14 18:05:13 -04:00
Thomas Fussell
89b1aca602
add wrapper scripts for building, switch from premake to genie
2015-10-14 12:21:18 -04:00
Thomas Fussell
6b3781d03b
begin refactoring writing code
2015-10-14 00:03:48 -04:00
Thomas Fussell
7316e2184c
replace pugiconfig.hpp with local header, fix some constness, dry up code
2015-10-13 16:35:22 -04:00
Thomas Fussell
301e81d698
integrate value into cell, continue synchronizing with openpyxl 2.4
2015-10-13 13:56:07 -04:00
Thomas Fussell
77d6bbb41b
fix precision on time to number, fix type guessing, fix long long on osx
2015-10-06 12:31:49 -04:00
Thomas Fussell
ffedc2cb33
literals should be long doubles to make float comparison exact
2015-10-02 10:02:54 -04:00
Thomas Fussell
c03f7d28e4
begin synchronizing tests with openpyxl 2.4 branch, fix type guessing logic
2015-10-01 23:09:25 -04:00
Thomas Fussell
6d39ac1d31
skip styles tests with less noise
2015-10-01 18:39:15 -04:00
Thomas Fussell
f25945172e
no need to have cxxtest autogenerated file in source control
2015-10-01 18:36:18 -04:00
Thomas Fussell
8f669c11db
update copyright, add overloads for all int sizes, fix line ending in zip_file test
2015-10-01 18:14:42 -04:00
Thomas Fussell
2831b25f09
add basic cmake support, not tested on windows, and clean up premake scripts
2015-09-23 19:24:43 -04:00
Thomas Fussell
cc1da90873
merge changes
2014-08-13 18:58:11 -04:00
Thomas Fussell
5ccc345f8c
some changes
2014-08-01 16:46:54 -04:00
Thomas Fussell
7829e2968c
fix weird merge artifact
2014-08-01 09:53:32 -04:00
Thomas Fussell
767b0708e2
merge
2014-08-01 09:51:28 -04:00
Thomas Fussell
57aa270f25
add new zip class to repo
2014-08-01 09:44:21 -04:00
Thomas Fussell
71e50ed70a
fix for windows build
2014-07-29 18:20:11 -04:00
Thomas Fussell
eb251f1e47
switch zlib to miniz, update documentation, update build system
2014-07-29 17:39:00 -04:00
Thomas Fussell
01b9a26510
actually produce a working spreadsheet now
2014-07-28 17:55:57 -04:00
Thomas Fussell
16f8c3223a
continue synchronizing tests and start implementing styles
2014-07-26 16:19:15 -04:00
Thomas Fussell
c5967686ff
implement remaining tests
2014-07-25 16:39:25 -04:00
Thomas Fussell
24fbb75a9e
fix some things
2014-07-24 17:31:46 -04:00
Thomas Fussell
bb064532ad
all tests pass now
2014-07-23 20:51:28 -04:00
Thomas Fussell
93bd3d9989
fix some things
2014-07-23 16:00:09 -04:00
Thomas Fussell
aec8b465d9
add support for column-major iteration of worksheet
2014-07-19 17:42:04 -04:00
Thomas Fussell
ac5e29b125
fix some things
2014-07-19 16:59:05 -04:00
Thomas Fussell
c7dbf12b51
Merge branch 'master' of github.com:tfussell/xlnt
2014-07-19 14:43:56 -04:00
Thomas Fussell
a7bb9f0e77
lots of fixes
2014-07-19 14:43:48 -04:00
Thomas Fussell
321fda99f0
sync test_worksheet
2014-07-18 16:20:41 -04:00
Thomas Fussell
fdb4796c62
sync test_read
2014-07-18 15:18:23 -04:00
Thomas Fussell
a87c144340
fix dates and props
2014-07-16 19:53:45 -04:00
Thomas Fussell
45b03c03ef
minor fixes for gcc build
2014-06-18 15:12:44 -04:00
Thomas Fussell
4d62e0bb75
remove optimization, test_dump, and start fixing relationships
2014-06-15 13:06:47 -04:00
Thomas Fussell
463bc3a677
make tweaks for visual studio 2014 compiler
2014-06-15 12:16:34 -04:00
Thomas Fussell
65962951f1
start making reader/writer actually use package structure
2014-06-13 17:06:23 -04:00
Thomas Fussell
ff84734e2d
fix problem from last commit
2014-06-13 15:05:24 -04:00
Thomas Fussell
21163cfb23
add some new functionality
2014-06-13 11:41:32 -04:00
Thomas Fussell
6d1eb3b149
all tests pass now, except for some strange nullptr errors in test_read_date_value()
2014-06-12 17:04:37 -04:00
Thomas Fussell
a7ead4ee18
work on datetime functionality
2014-06-11 16:41:34 -04:00
Thomas Fussell
f9ba11672d
add some new tests, break some things
2014-06-10 18:36:31 -04:00
Thomas Fussell
98f2c5f10a
still fixing things
2014-06-10 17:12:15 -04:00
Thomas Fussell
05e2bf251b
fix some things
2014-06-10 00:29:49 -04:00
Thomas Fussell
b2ddc13a95
fix some more tests
2014-06-07 11:49:19 -04:00
Thomas Fussell
0f923d3c12
start working through new tests
2014-06-05 17:42:15 -04:00