Commit Graph

11017 Commits

Author SHA1 Message Date
commit-bot@chromium.org
fd5c9a6e04 Begin making SkPerlinNoiseShader const.
The overall goal is to make SkShader itself immutable (BUG=skia:1976).
The fields cannot yet be made constant, due to the constructor which
takes an SkReadBuffer. Other than that constructor, the fields are now
unchanged.

Remove setTileSize and initPaint. Merge initPaint with the constructor
of PaintingData, since it is only ever used on a new PaintingData.
Merge setTileSize with the SkPerlinNoiseShader constructor, its only
call site.

BUG=skia:1976
R=reed@google.com, sugoi@google.com, dominikg@chromium.org, senorblanco@google.com, senorblanco@chromium.org

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/169973002

git-svn-id: http://skia.googlecode.com/svn/trunk@13682 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 15:13:53 +00:00
commit-bot@chromium.org
5b70e7e2df Manually set fFilterValues in SkConvolutionFilter1D.
Using fFilterValues.reset() or a loop of fFilterValues.push_back() is about 5x slower than calling fFilterValues.resize_back() and then looping using primitive [] and =.

This is only going to show up if you apply https://codereview.chromium.org/183763047/, where it yields about 2.5% speedup in the bitmap resize microbenchmarks on a Linux desktop. Ceteris paribus, it should actually improve rasterization time of drawBitmapRectToRect() with a resize by about 5% in Chromium.


BUG=skia:2258
R=humper@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/184323003

git-svn-id: http://skia.googlecode.com/svn/trunk@13681 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 14:57:46 +00:00
commit-bot@chromium.org
759cf48468 Now that the matching changes have landed in Chromium we can clean up the API on our side.
R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/187553003

git-svn-id: http://skia.googlecode.com/svn/trunk@13680 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 13:18:07 +00:00
skia.committer@gmail.com
06acb58074 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13679 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 03:02:32 +00:00
commit-bot@chromium.org
5bee0543f0 Give PictureTest more verbose error messages.
Motivation: On an odd build system I'm testing, we're triggering these
errors.  More verbose test output will help me diagnose the errors.

R=robertphillips@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/183023014

git-svn-id: http://skia.googlecode.com/svn/trunk@13678 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 20:59:45 +00:00
commit-bot@chromium.org
026ea9d1f1 Update baselines for Win7 perspective and Nexus4
BUG=skia:2146
NOTRY=true
R=epoger@google.com, bsalomon@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/185943007

git-svn-id: http://skia.googlecode.com/svn/trunk@13677 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 20:49:59 +00:00
commit-bot@chromium.org
61f1606236 rebaseline_server: add "show thumbnails" option, and skip display of nonexistent images
BUG=skia:2248,skia:2231
NOTRY=True
R=borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/183893030

git-svn-id: http://skia.googlecode.com/svn/trunk@13676 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 19:46:17 +00:00
commit-bot@chromium.org
0b98f67b90 Fix FontMgrTest to allow for unnamed fonts.
Motivation: we are testing on a system without fonts and are falling
back on SkTypeface_Empty.

R=bungeman@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/187933002

git-svn-id: http://skia.googlecode.com/svn/trunk@13675 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 19:41:10 +00:00
commit-bot@chromium.org
cabf4b2f36 Unify edge type enums across GrEffect subclasses that clip rendering to a geometry.
BUG=skia:
R=egdaniel@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/183893023

git-svn-id: http://skia.googlecode.com/svn/trunk@13674 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 18:27:43 +00:00
commit-bot@chromium.org
dcb8e54ffd This CL is motivated by the desire to make the skpinfo tool work a bit better. The main concern is that the assumptions made w.r.t. written bytes may not be valid for all SkWStream sub-classes.
R=bungeman@gmail.com, bungeman@google.com, reed@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/182733008

git-svn-id: http://skia.googlecode.com/svn/trunk@13673 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 18:25:20 +00:00
commit-bot@chromium.org
890b826fa3 Remove unused TimerData that generates errors
As far as I can tell all uses of TimerData::appendTimes were stripped out in https://chromiumcodereview.appspot.com/23121002 but the surrounding code was left in, causing it to print errors when there are none.

BUG=skia:2242
R=sglez@google.com, tomhudson@chromium.org, mtklein@google.com, tomhudson@google.com

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/187643002

git-svn-id: http://skia.googlecode.com/svn/trunk@13672 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 17:09:46 +00:00
bungeman@google.com
8d79f963b6 Prevent SkBlockMemoryStream::skip from writing to low memory.
SkBlockMemoryStream::read was modeled on SkDynamicMemoryWStream::read.
However, SkDynamicMemoryWStream::read does not allow passing a NULL buffer
and SkBlockMemoryStream::read must correctly handle this case for skips.
In the current code, if a 'skip' crosses a block boundary, 'read' may
attempt to write to low memory.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/187683003

git-svn-id: http://skia.googlecode.com/svn/trunk@13671 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 16:26:14 +00:00
senorblanco@chromium.org
968f1623af New baselines for offsetimagefilter GM.
TBR=rmistry@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/187883002

git-svn-id: http://skia.googlecode.com/svn/trunk@13670 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 15:38:21 +00:00
commit-bot@chromium.org
eef834f2be DM: read image files without an extra copy
BUG=skia:
R=halcanary@google.com, reed@google.com, bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/185263012

git-svn-id: http://skia.googlecode.com/svn/trunk@13669 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 15:37:11 +00:00
commit-bot@chromium.org
c4b3e75a7b Make arm64 test script comaptable with old versions of gsutil.
NOTRY=true
R=borenet@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/183883020

git-svn-id: http://skia.googlecode.com/svn/trunk@13668 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 14:16:36 +00:00
commit-bot@chromium.org
5e4112b33a Replace scaled bitmap if entry already exist in cache.
BUG=skia:2251
R=reed@google.com

Author: reveman@chromium.org

Review URL: https://codereview.chromium.org/185263009

git-svn-id: http://skia.googlecode.com/svn/trunk@13667 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 13:44:18 +00:00
commit-bot@chromium.org
8ef51b975c remove deprecated use of bitmap config from tests
BUG=skia:
R=halcanary@google.com, reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/184233003

git-svn-id: http://skia.googlecode.com/svn/trunk@13666 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 13:43:15 +00:00
skia.committer@gmail.com
f1f66c0c86 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13665 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 03:02:06 +00:00
commit-bot@chromium.org
fab349c0bf remove SK_SUPPORT_DEEPCOPYTO_CONFIG code -- no longer used
R=reed@google.com
TBR=bsalomon@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/183763035

git-svn-id: http://skia.googlecode.com/svn/trunk@13664 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 02:34:58 +00:00
commit-bot@chromium.org
1f6cf695b3 Counterproposal to 182733007: Add iterator to SkTDynamicHash
BUG=skia:
R=egdaniel@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/177263005

git-svn-id: http://skia.googlecode.com/svn/trunk@13663 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 01:00:50 +00:00
commit-bot@chromium.org
e492ac4fb6 Manual revert of https://code.google.com/p/skia/source/detail?r=13353 due to perf regression.
BUG=344020
R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/187023002

git-svn-id: http://skia.googlecode.com/svn/trunk@13662 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 22:37:29 +00:00
commit-bot@chromium.org
6e2be5dbe3 Fix error in barelinux_make build script
R=borenet@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/187093002

git-svn-id: http://skia.googlecode.com/svn/trunk@13661 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 22:32:49 +00:00
commit-bot@chromium.org
24e0496e8d Factor out a BaseContext from JsContext.
BUG=skia:
R=robertphillips@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/186783004

git-svn-id: http://skia.googlecode.com/svn/trunk@13660 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 20:44:32 +00:00
senorblanco@chromium.org
a100bb25a5 New baselines for imagefiltersclipped, imagefiltersscaled GMs.
Required after r13637.

TBR=rmistry@google.com

Review URL: https://codereview.chromium.org/186933002

git-svn-id: http://skia.googlecode.com/svn/trunk@13659 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 19:22:43 +00:00
commit-bot@chromium.org
e494dbdec3 The motivation for this CL is to de-clutter SkPicture's beginRecording method.
R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/186813003

git-svn-id: http://skia.googlecode.com/svn/trunk@13658 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 19:08:57 +00:00
commit-bot@chromium.org
cb336874e4 Start prototyping what DisplayList support will look like.
None of the new codepaths get executed yet since DisplayList doesn't exist, but that will happening in the new few CLs.

BUG=skia:
R=robertphillips@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/183883017

git-svn-id: http://skia.googlecode.com/svn/trunk@13657 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 19:05:50 +00:00
senorblanco@chromium.org
e09244d463 Apply the CTM to the offset in the slow SkOffsetImageFilter path.
This was being done in the fast path, but not the slow path.

Since I had to rebaseline the offsetimagefilter GM anyway (to accomodate
the new test case), I added a red border around the intersection
of the (transformed) crop rect and clip rect in each sample, beyond
which no pixels should be drawn.

Chrome bug: https://code.google.com/p/chromium/issues/detail?id=346362

BUG=skia:
R=sugoi@google.com

Review URL: https://codereview.chromium.org/186643003

git-svn-id: http://skia.googlecode.com/svn/trunk@13656 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 19:05:25 +00:00
bsalomon@google.com
707bd60203 Make rrects.cpp compile in no-gpu mode
TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/186663004

git-svn-id: http://skia.googlecode.com/svn/trunk@13655 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 16:52:20 +00:00
commit-bot@chromium.org
8cc39a6567 rebaseline_server: better reporting for bad URL fetch
context: https://codereview.chromium.org/183763025/ ('vm_run_skia_try/write_json_summary: run skpdiff within imagediffdb, not on its own')

NOTREECHECKS=True
NOTRY=True
R=rmistry@google.com
TBR=rmistry

Author: epoger@google.com

Review URL: https://codereview.chromium.org/183833019

git-svn-id: http://skia.googlecode.com/svn/trunk@13654 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 16:46:22 +00:00
commit-bot@chromium.org
fbde87f53d Add GM that directly tests GrRRectEffect and add inverse fill version of effect.
BUG=skia:
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/176843016

git-svn-id: http://skia.googlecode.com/svn/trunk@13653 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 16:25:34 +00:00
commit-bot@chromium.org
f23910b8e9 New baselines for perspective switch
BUG=skia:2245
R=epoger@google.com, bsalomon@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/186563004

git-svn-id: http://skia.googlecode.com/svn/trunk@13652 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 14:41:52 +00:00
skia.committer@gmail.com
ade9a3485e Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13651 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 03:02:32 +00:00
commit-bot@chromium.org
3b98759529 rebaseline_server: keep going on exception in ImagePair.__init__()
BUG=skia:2247
NOTREECHECKS=True
NOTRY=True
R=borenet@google.com
TBR=borenet

Author: epoger@google.com

Review URL: https://codereview.chromium.org/184103022

git-svn-id: http://skia.googlecode.com/svn/trunk@13650 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 00:58:21 +00:00
commit-bot@chromium.org
1643b2c9bc This adds cull rect visualization to the debugger's "mega" visualization mode.
R=fmalita@google.com, fmalita@chromium.org

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/177423013

git-svn-id: http://skia.googlecode.com/svn/trunk@13649 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 23:25:41 +00:00
commit-bot@chromium.org
5f6ac03b00 Don't emit declaration of gl_FragPos unless also changing the origin.
R=jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/182003002

git-svn-id: http://skia.googlecode.com/svn/trunk@13648 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 23:25:26 +00:00
commit-bot@chromium.org
b83ec64dde bench rebase after skp update.
BUG=skia:2163
NOTRY=true
R=rmistry@google.com
TBR=rmistry@google.com

Author: bensong@google.com

Review URL: https://codereview.chromium.org/182443005

git-svn-id: http://skia.googlecode.com/svn/trunk@13647 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 22:50:13 +00:00
senorblanco@chromium.org
6aa6fec0e3 Cleanup patch to move all of SkImageFilterUtils into SkImageFilter.
This was a utility class that dates from before GPU code was allowed
in core. Now that it is, there's no reason not to have this
functionality in SkImageFilter.

Covered by existing tests.

R=reed@google.com

Review URL: https://codereview.chromium.org/185973003

git-svn-id: http://skia.googlecode.com/svn/trunk@13646 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 22:13:56 +00:00
commit-bot@chromium.org
94e43ffae1 Baselines for skia:2146
BUG=skia:2146
R=epoger@google.com, bsalomon@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/180253004

git-svn-id: http://skia.googlecode.com/svn/trunk@13645 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 19:31:08 +00:00
commit-bot@chromium.org
085a6e476b Rename test files to end with Test.cpp.
DM builds all of {bench,gm,test}/*.cpp.  A Windows build warned us that we were
trying to link typeface.obj twice.  This must have something to do with there
existing gm/typeface.cpp and tests/Typeface.cpp.  To be safe, make sure tests
have a Test.cpp suffix to disambiguate.

BUG=skia:
R=rmistry@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/185923002

git-svn-id: http://skia.googlecode.com/svn/trunk@13644 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 19:23:28 +00:00
commit-bot@chromium.org
6f4fb0f129 Generating the 1M skps frequently yields truncated skps. This tool is intended to help automate weeding these out.
Please see skbug:1057

rmistry for tools, gyp
mtklein for src\core & include\core

BUG=skia:1057
R=rmistry@google.com, mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/176863004

git-svn-id: http://skia.googlecode.com/svn/trunk@13643 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 19:18:39 +00:00
commit-bot@chromium.org
1b94819fcb roll_deps: Return a tuple even when returning early
This fixes the bot going red when DEPS is already up-to-date.

BUG=skia:
R=halcanary@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/185413012

git-svn-id: http://skia.googlecode.com/svn/trunk@13642 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 17:57:41 +00:00
commit-bot@chromium.org
450d9ef4ac Add the ability to select bbh type, and include quadtree support.
This is a breaking change to tileGridSize flag added in 184543003, as it now defaults to a sensible value but does not implicitly turn on the tile grid bbh.

BUG=skia:2242
R=tomhudson@google.com, mtklein@google.com, skyostil@chromium.org, skyostil@google.com

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/183763022

git-svn-id: http://skia.googlecode.com/svn/trunk@13641 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 17:51:12 +00:00
commit-bot@chromium.org
768ac85655 The new "mega" viz mode both adds visualization and forces all drawing to the visible canvas (by replacing the active saveLayers with saves).
R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/185293007

git-svn-id: http://skia.googlecode.com/svn/trunk@13640 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 16:32:17 +00:00
commit-bot@chromium.org
a39874b636 DM: tweak output.
Show task name in verbose mode only, and add task runtime.

BUG=skia:
R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/185233004

git-svn-id: http://skia.googlecode.com/svn/trunk@13639 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 15:44:56 +00:00
commit-bot@chromium.org
1426c1e9b6 DM: fix -w/-r problems stemming from PM/UPM conversions.
DM will now read and write a custom image format, which begins first with a
normal PNG, but also includes the bitmap's raw pixels.  Most tools (file
browser, Preview, Chrome, Skia image decoder) will read the file as PNG.  DM
skips the encoded PNG and reads the raw pixels instead.

This scheme allows perfect pixel comparisons that never go through PM -> UPM or
UPM -> PM conversions, as long as you compare on a machine with the same native
pixel format as the machine which generated the images.  Since we've only ever
used this to do same-machine comparisons, that's more than good enough for now.
We could convert as needed to a standardized PM pixel format if we find we want
these files to be portable.

DM -w output now does increase to ~1.3G.  If that turns out to be annoyingly
big, I'm sure I can come up with a simple pixelwise RLE instead of writing
uncompressed pixels.

BUG=skia:
R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/185343002

git-svn-id: http://skia.googlecode.com/svn/trunk@13638 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 15:43:56 +00:00
senorblanco@chromium.org
47d98c8e85 Fix CTM scaling and clipping of SkRectShaderImageFilter.
Pass the CTM as part of the local matrix passed by
SkRectShaderImageFilter. Teach SkPerlinNoiseShader to respect the local
matrix. Embiggen imagefiltersscaled GM size to accommodate the new test
cases.

Note: will require rebaselines of imagefiltersscaled and imagefiltersclipped

R=sugoi@chromium.org
BUG=skia:

Review URL: https://codereview.chromium.org/184973007

git-svn-id: http://skia.googlecode.com/svn/trunk@13637 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 14:58:09 +00:00
commit-bot@chromium.org
c9b2c885be New approach for GPU font atlas
In the previous code, each GrTextStrike had exclusive access to one or more GrPlots in the texture atlas. This led to poor packing when only a few glyphs were used. This change allows GrTextStrikes to share GrPlots, thereby getting much better utilization of the entire texture.

BUG=skia:2224
R=robertphillips@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/177463003

git-svn-id: http://skia.googlecode.com/svn/trunk@13636 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 14:30:25 +00:00
commit-bot@chromium.org
0bc406df48 Adding code to calculate Underline Thickness from Font Metrics, this will be useful when Skia is used with Blink/Chrome. Blink changes are uploaded with code change in patch https://codereview.chromium.org/147703002/
BUG=skia:
R=reed@android.com, edisonn@google.com, reed@google.com, mtklein@google.com, mtklein@chromium.org, bungeman@google.com

Author: h.joshi@samsung.com

Review URL: https://codereview.chromium.org/152073003

git-svn-id: http://skia.googlecode.com/svn/trunk@13635 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-01 20:12:26 +00:00
skia.committer@gmail.com
370a89980b Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13634 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-01 03:02:09 +00:00
bsalomon@google.com
f4c06531dc Rebaseline convexclip2_aa gpu on win7
Review URL: https://codereview.chromium.org/184993004

git-svn-id: http://skia.googlecode.com/svn/trunk@13633 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 22:21:29 +00:00