Граф коммитов

11446 Коммитов

Автор SHA1 Сообщение Дата
Avi Halachmi 8ba2f637aa Bug 838758: Cache GradientStops instead of gfxPattern. r=jrmuizel
Our gfxPattern cache is currently way too specific, which causes lots of
unnecessary cache misses. The only thing that we actually need to key on is the
color stops.

This switches the cache to hold GradientStops instead of gfxPatterns. This
improves our cache hit rate and is simpler. It also avoids doing caching when
not using Azure, which currently has no benefit.

Average paint times results (in ms)
(on windows 7 x64, i7-3630qm, HD4000)
-------------------------------------
m-c
open: 3.5 close: 3.3

m-c cache-key
open: 2.6 close: 2.4

ux
open: 7.3 close: 5.2

ux cache-key
open: 6.9 close: 5.3
2013-02-15 20:54:49 +02:00
Jonathan Kew 068fb3003a bug 841313 - update harfbuzz to upstream commit a0cb9f3... (v0.9.12+) to pick up Myanmar/SEAsian shapers and Indic fixes. r=jdaggett 2013-02-15 10:37:41 +00:00
Ryan VanderMeulen 0f9300ca00 Backed out changeset 38c7d7a7f586 (bug 716859) for B2G reftest failures on a CLOSED TREE. 2013-02-13 21:39:07 -05:00
Milan Sreckovic 8dbfb840d9 Bug 839621 - qcms_transform_create can return null, so indirect callers need to be ready for it as well. r=jmuizelaar 2013-02-08 15:46:26 -05:00
Jonathan Kew 581ef32c77 bug 836225 - handle supplementary-plane chars properly in graphite shaper. r=jdaggett 2013-02-13 23:40:24 +00:00
Jeff Gilbert c0a7597ab0 Bug 716859 - Streaming GLContext buffers (doublebuffering, etc) - r=bjacob,jrmuizel,vlad 2013-02-13 15:26:24 -08:00
Boris Zbarsky e4fca1d362 Bug 618479 part 1. Clean up the nsTArray binary-insert code a little bit. r=jlebar,kinetik 2013-02-13 10:11:53 -05:00
Jacek Caban 4e62476cba Bug 840577 - Fixed ANGLE cross compilation on case sensitive OSes r=bjacob 2013-02-13 13:33:39 +01:00
Benoit Girard 10098ad004 Bug 840856 - Check component alpha surface for allocation failure. r=mattwoodrow 2013-02-12 23:37:08 -05:00
Daniel Holbert 5f1e502515 Bug 839384: Fix build warnings for DrawTargetCG. r=jrmuizel 2013-02-12 20:00:54 -08:00
Chris Jones d87b9a4f0e Bug 840372: Don't let valid regions grow beyond 8 rects. r=roc 2013-02-12 13:13:16 -08:00
Nicholas Cameron b9dfd6c587 Bug 828531; fix scaling CSS pixels for animations; r=roc
--HG--
extra : rebase_source : 0e24bf2ee472a37b742efe3d142c2c25fef3e572
2013-02-13 10:00:54 +13:00
Robert O'Callahan 5f549df09b Bug 8203709. Handle failure to create a snapshot surface in GetImageDataArray. r=mattwoodrow 2013-02-12 17:56:28 +13:00
Jeff Muizelaar 554b778b0f Bug 787017. Die more verbosely on Android during Layers init. r=bjacob
This might give us some more information on what's happening.

--HG--
extra : rebase_source : f2865e0d59746170d8b258334673acbd301dca54
2013-02-11 15:56:26 -05:00
Milan Sreckovic 0e3443f780 Bug 722831 - qcms_transform_precacheLUT_float only works with RGB data, so only call it in that case. Grayscale images would fail. r=bgirard 2013-02-08 15:48:09 -05:00
Cameron McCormack 9aa8bf1721 Bug 655877 - Part 46: Paint SVG glyphs with new SVG text frame. r=roc,jwatt 2013-02-11 17:22:20 +11:00
Phil Ringnalda a567c335fc Back out 1b98c119cbfb (bug 8203709) for bustage
CLOSED TREE
2013-02-09 07:15:43 -08:00
Robert O'Callahan bcbd213cc7 Bug 8203709. Handle failure to create a snapshot surface in GetImageDataArray. r=mattwoodrow 2013-02-10 00:28:18 +13:00
Steven Michaud f38f05b834 Bug 684622 - Print scaling and shrink to fit page width does not work from page 2. r=matspal 2013-02-08 19:14:30 -06:00
Timothy Nikkel 28001fd23a Bug 827946. GCC 4.5 with PGO miscompiles the ConvolveHorizontally function, so add an annotation to tone down the optmization on that function with GCC 4.5 only. r=joe 2013-02-08 14:01:19 -06:00
Jonathan Kew c651d057a4 bug 837461 - backout parts 2 and 3 of bug 808288 because pdf.js may paint missing chars to canvas if it failed to load fonts, which looks really ugly; better to skip them for now. r=bas 2013-02-08 16:52:55 +00:00
Matt Woodrow d4453c2c2c Bug 836892 - Add new skia blending modes to GfxOpToSkiaOp. r=gw280 2013-02-08 10:54:59 +13:00
Rik Cabanier 2aa3ca907a Bug 836892 - Add new blending modes to SkXfermode. r=gw280 2013-02-08 10:54:59 +13:00
Matt Woodrow 4092ec62cc Bug 831529 - Stop using SkPath::contains for now since it doesn't match the canvas spec. r=jrmuizel 2013-02-08 10:54:59 +13:00
Benoit Girard 283e84505d Bug 823236 - ImageContainerParent should not release shmem which is retained by child. r=nical 2013-02-07 11:15:16 -05:00
Makoto Kato 1fa96e5710 Bug 838504 - Turn on SSSE3 opt on Skia for Windows. r=gw280 2013-02-07 17:13:03 +09:00
Jonathan Kew 4151979abe bug 838617 - don't assert equality with the key's hash unless it was actually initialized. r=roc 2013-02-07 00:24:52 +00:00
Jonathan Kew a19d1387a1 bug 808299 - scale missing-glyph hexbox digits depending on device resolution and zoom. r=roc 2013-02-07 00:19:46 +00:00
Benoit Jacob 17599d2cd7 Bug 827106 - Cherry-pick ANGLE r1638 - r=jgilbert 2013-02-05 20:53:38 -05:00
James Willcox 0ce09f5523 Bug 837687 - Use a case-insensitive comparison for OpenGL extension names r=jgilbert 2013-02-05 13:02:17 -05:00
James Willcox 4fb5b1abb0 backout caf13c3365f3 for Windows bustage CLOSED TREE 2013-02-05 12:38:02 -05:00
James Willcox 0508d1fe86 Bug 837687 - Use a case-insensitive comparison for OpenGL extension names r=jgilbert
--HG--
extra : rebase_source : 465e1c9ca5491a32432f4fb85eb96de473598348
2013-02-05 11:45:31 -05:00
Jeff Muizelaar 9142ba12cb Bug 836171. Update pixman to 0.27.4
Andrea Canciani (2):
      mmx: Fix x86 build on MSVC
      build: Improve win32 build system

Benny Siegert (1):
      configure.ac: PIXMAN_LINK_WITH_ENV fix

Matt Turner (3):
      build: Remove useless DEP_CFLAGS/DEP_LIBS variables
      sse2: mark pack_565_2x128_128 as static force_inline
      iwmmxt: Don't define dummy _mm_empty for >=gcc-4.8

Nemanja Lukic (7):
      MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_8888 - over_8888_8_8888
      MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_0565 - over_8888_8_0565
      MIPS: DSPr2: Added fast-paths for OVER operation: - over_0565_n_0565 - over_0565_8_0565
      MIPS: DSPr2: Added OVER combiner and two new fast paths: - over_8888_8888 - over_8888_8888_8888
      MIPS: DSPr2: Added fast-paths for ADD operation: - add_n_8_8 - add_n_8_8888 - add_8_8_8
      MIPS: DSPr2: Added more fast-paths for ADD operation: - add_0565_8_0565 - add_8888_8_8888 - add_8888_n_8888
      MIPS: DSPr2: Added more fast-paths for ADD operation: - add_8888_8888_8888 - add_8_8 - add_8888_8888

Siarhei Siamashka (4):
      Add scaled nearest repeat fast paths
      MIPS: skip runtime detection for DSPr2 if -mdspr2 option is in CFLAGS
      Add missing force_inline to in() function used for C fast paths
      Workaround for FTBFS with gcc 4.6 (http://gcc.gnu.org/PR54965)

Søren Sandmann Pedersen (44):
      Post-release version bump to 0.27.3
      Define TIMER_BEGIN and TIMER_END even when timers are not enabled
      Make show_image() cope with more formats
      demos: Add srgb_trap_test.c
      Remove pointless declaration of _pixman_image_get_scanline_generic_64()
      Remove obsolete TODO file
      pixel_checker: Move sRGB conversion into get_limits()
      test/utils.c: Use pow(), not powf() in sRGB conversion routines
      implementation: Write lookup_combiner() in a less convoluted way.
      Move blt delegation into pixman-implementation.c
      Move fill delegation into pixman-implementation.c
      Move delegation of src/dest iter init into pixman-implementation.c
      Rename _pixman_lookup_composite_function() to _pixman_implementation_lookup_composite()
      _pixman_implementation_create(): Initialize implementation with memset()
      implementation: Rename delegate to fallback
      Add PIXMAN_x8b8g8r8 and PIXMAN_a8b8g8r8 formats to scaling-test
      Fix bug in fast_composite_scaled_nearest()
      Fix bugs in component alpha combiners for separable PDF operators
      Add rotate-test.c test program
      Fix bugs in pixman-image.c
      pixman-combine.c.template: Formatting clean-ups
      affine-test: Print out the transformation matrix when verbose
      test: Add inifinite-loop test
      Fix for infinite-loop test
      rotate-test: Call image_endian_swap() in make_image()
      Make pixman.h more const-correct
      glyph-test: Prepare for floating point
      blitters-test: Prepare for floating point
      Add pixman-combine-float.c
      Add combiner test
      pixman-utils.c, pixman-private.h: Add floating point conversion routines
      pixman-access.c: Add floating point accessor functions
      Switch the wide pipeline over to using floating point
      Remove 64 bit pipeline
      Don't auto-generate pixman-combine32.[ch] anymore
      Speed up pixman_expand_to_float()
      Remove BUILT_SOURCES
      Only regard images as pixbufs if they have identity transformations
      region: Formatting fix
      region: Remove overlap argument from pixman_op()
      Add new pixman_image_create_bits_no_clear() API
      pixman_composite_trapezoids(): Factor out extents computation
      pixman_composite_trapezoids(): don't clip to extents for some operators
      Pre-release version bump to 0.27.4

--HG--
extra : rebase_source : ed5b5f0184dd19b2ae5caa43edee6effce14efaf
2013-02-04 15:16:01 -05:00
Kartikaya Gupta 1a5e3ee6dc Bug 832508 - When resuming Fennec and re-recreating the surface, force a first-paint notification from the compositor. r=Cwiiis 2013-02-04 15:13:17 -05:00
Benoit Girard 6071ec8fa9 Backed out changeset 3c4205be7191 (bug 823236) for M2 failures 2013-02-04 14:11:02 -05:00
Benoit Girard 475c33f546 Bug 823236 - Assert that the image is valid before inserting into the image pool. r=nical 2013-02-01 19:02:42 -05:00
Paul Adenot c4bcc40fde Bug 804875 - Reset media element when loading a new src. r=kinetik 2012-12-27 16:21:30 +01:00
Jeff Muizelaar 24e7f9e214 Bug 829035. Reduce pixman bilinear precision to match upstream. 2013-02-03 16:47:01 -05:00
Jeff Muizelaar 91cbf694b0 Bug 808785. Stop shipping d3dx9_43.dll. r=bjacob
Since ANGLE revision 1314 / issue 311:
http://code.google.com/p/angleproject/issues/detail?id=311 d3dx9_43.dll is no
longer needed.

--HG--
extra : rebase_source : cb02a61730f4a24f807662269693be2dde673ff0
2013-01-28 11:52:06 -05:00
Mounir Lamouri 53690f21aa Bug 833009 - Remove "nsContentUtils.h" inclusions from headers in gfx/. r=Ms2ger 2013-01-24 14:05:18 +00:00
Benoit Girard ad1107694f Bug 815602 - Fix invalid drawable error in console after starting Firefox. r=mattwoodrow
--HG--
extra : rebase_source : c24a03252404ac5d25d4fdb62c6f749ea34dab86
2013-01-28 16:57:33 -05:00
Milan Sreckovic 94700f7920 Bug 818241 - Initialize mCg to nullptr. r=jmuizelaar 2013-01-29 10:22:52 -05:00
Mats Palmgren 81ba64a395 Bug 834896 - Replace uses of gfx_min/gfx_max with std::min/std::max. r=joe 2013-01-30 17:02:27 +01:00
Mats Palmgren 1f5b357881 Bug 834896 - Remove the gfx_min/gfx_max templates. r=joe 2013-01-30 17:02:27 +01:00
Anthony Jones d19ecd5663 Bug 825987 - Backed out changesets 1b9a99a17afb and 74493ca34d5e (bug 691061) due to regression with saving PDFs. 2013-01-30 08:39:37 -05:00
Jonathan Kew 8654cf370d bug 829523 followup - use MOZ_WIDGET_GONK for the platform conditional, rather than MOZ_B2G. r=cjones 2013-01-30 12:03:39 +00:00
Nicholas Cameron b5263b1c6c Bug 836058; remove UseTiledThebes; r=BenWa 2013-01-29 14:38:46 +13:00
Randell Jesup 6c1ea9f313 bug 804875: backout due to regressions of various uses of .src/mozSrcObject (bugs 836011/835705) rs=kinetik 2013-01-29 18:07:29 -05:00
Jeff Muizelaar eb54374954 Bug 828789. Update to pixman 0.27.2.
Alan Coopersmith (2):
      Make mmx code compatible with Solaris Studio 12.3 compilers
      Just use xmmintrin.h when building with Solaris Studio compilers

Andrea Canciani (7):
      Remove useless checks for NULL before freeing
      test: Cleanup includes
      Use the ARRAY_LENGTH() macro when possible
      test: Reuse the ARRAY_LENGTH() macro
      demos: Consistently use G_N_ELEMENTS()
      test: Produce autotools-looking report in the win32 build system
      build: Fix compilation on win32

Antti S. Lankila (5):
      Faster unorm_to_unorm for wide processing.
      Remove unnecessary dst initialization
      Add support for sRGB surfaces
      Add sRGB blending demo program
      Add tests to validate new sRGB behavior

Bobby Salazar (2):
      Android Runtime Detection Support For ARM NEON
      iOS Runtime Detection Support For ARM NEON

Chun-wei Fan (1):
      Just include xmmintrin.h on MSVC as well

Colin Walters (1):
      autogen.sh: Support GNOME Build API

Ingmar Runge (1):
      Fix MSVC compilation

Jeremy Huddleston (7):
      configure.ac: Add an --enable-libpng option
      Revert "Disable MMX when Clang is being used."
      Silence a warning about unused pixman_have_mmx
      Disable MMX when incompatible clang is being used.
      Expand TLS support beyond __thread to __declspec(thread)
      Fix a false-negative in MMX check
      configure.ac: Fix a copy-paste-o in TLS detection

Matt Turner (60):
      Use AC_LANG_SOURCE for iwMMXt configure program
      Make sure to run AC_SUBST IWMMXT_CFLAGS
      Convert while (w) to if (w) when possible
      autoconf: use #error instead of error
      mmx: enable over_x888_8_8888 on ARM/iwMMXt
      mmx: Use _mm_mulhi_pu16
      mmx: Use _mm_shuffle_pi16
      mmx: fix typo in pix_add_mul on MSVC
      Update .gitignore with more demos and tests
      mmx: make store8888 take uint32_t *dest as argument
      mmx: make load8888 take a pointer to data instead of the data itself
      lowlevel-blt: add over_8888_8888
      lowlevel-blt: add over_x888_n_8888
      lowlevel-blt-bench: add in_8_8 and in_n_8_8
      Use AC_LANG_SOURCE for DSPr2 configure program
      mmx: enable over_n_0565 for b5g6r5
      mmx: Use force_inline instead of __inline__ (bug 46906)
      configure.ac: require >= gcc-4.5 for ARM iwMMXt
      mmx: fix _mm_shuffle_pi16 function when compiling without optimization
      configure.ac: fix iwMMXt/gcc version error message
      mmx: add store function and use it in add_8888_8888
      mmx: add load function and use it in add_8888_8888
      mmx: make ldq_u take __m64* directly
      mmx: compile on MIPS for Loongson MMI optimizations
      mmx: remove unnecessary uint64_t<->__m64 conversions
      mmx: simplify srcsrcsrcsrc calculation in over_n_8_0565
      mmx: introduce is_equal, is_opaque, and is_zero functions
      mmx: don't pack and unpack src unnecessarily
      mmx: Use Loongson pinsrh instruction in pack_565
      mmx: Use Loongson pextrh instruction in expand565
      mmx: add r5g6b5 fetcher
      mmx: add a8 fetcher
      mmx: add x8f8g8b8 fetcher
      mmx: add src_8888_0565
      mmx: Use wpackhus in src_x888_0565 on iwMMXt
      .gitignore: add demos/checkerboard and demos/quad2quad
      configure.ac: make -march=loongson2f come before CFLAGS
      mmx: add and use pack_4x565 function
      configure.ac: Fix loongson-mmi out-of-tree builds
      configure.ac: Rename loongson -> loongson-mmi
      configure.ac: Fail the ARM/iwMMXt test if not compiling with -march=iwmmxt
      mmx: add and use expand_4xpacked565 function
      mmx: implement expand_4x565 in terms of expand_4xpacked565
      fast: add add_0565_0565 function
      mmx: add add_0565_0565
      mmx: add over_reverse_n_8888
      mmx: add missing _mm_empty calls
      autotools: use custom build rule to build iwMMXt code
      configure.ac: add iwmmxt2 configure flag
      .gitignore: add test/glyph-test
      sse2: enable over_n_0565 for b5g6r5
      sse2: add src_x888_0565
      Fix distcheck due to custom iwMMXt rules
      mmx: Use expand_alpha instead of mask/shift
      mmx: add scaled bilinear src_8888_8888
      mmx: add scaled bilinear over_8888_8888
      mmx: add scaled bilinear over_8888_8_8888
      mmx: optimize bilinear function when using 7-bit precision
      loongson: optimize _mm_set_pi* functions with shuffle instructions
      sse2: add missing ABGR entires for bilinear src_8888_8888

Naohiro Aota (1):
      Don't use non-POSIX test

Nemanja Lukic (9):
      MIPS: DSPr2: Basic infrastructure for MIPS architecture
      MIPS: DSPr2: Added fast-paths for SRC operation.
      MIPS: DSPr2: Added mips_dspr2_blt and mips_dspr2_fill routines.
      MIPS: DSPr2: Added over_n_8888_8888_ca and over_n_8888_0565_ca fast paths.
      MIPS: DSPr2: Added over_n_8_8888 and over_n_8_0565 fast paths.
      MIPS: DSPr2: Fix bug in over_n_8888_8888_ca/over_n_8888_0565_ca routines
      MIPS: DSPr2: Added bilinear over_8888_8_8888 fast path.
      MIPS: DSPr2: Added several bilinear fast paths with a8 mask
      MIPS: DSPr2: Added more bilinear fast paths (without mask)

Sebastian Bauer (4):
      Qualify the static variables in pixman_f_transform_invert() with the const keyword.
      Changed the style of two function headers
      Added HAVE_CONFIG_H check before including config.h
      Use angle brackets form of including config.h

Siarhei Siamashka (8):
      test: OpenMP 2.5 requires signed loop iteration variables
      test: fix bisecting issue in fuzzer-find-diff.pl
      test: Fix for strict aliasing issue in 'get_random_seed'
      test: support nearest/bilinear scaling in lowlevel-blt-bench
      sse2: faster bilinear scaling (use _mm_loadl_epi64)
      Bilinear interpolation precision is now configurable at compile time
      sse2: _mm_madd_epi16 for faster bilinear scaling with 7-bit precision
      Change default bilinear interpolation precision to 7 bits

Søren Sandmann Pedersen (81):
      Post-release version bump to 0.25.1
      region: Add pixman_region{,32}_clear() functions.
      Modify gradient-test to show a bug in NONE processing
      gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
      pixman-image.c: Fix typo in pixman_image_set_transform()
      Fix some signed overflow bugs
      Add missing cast in _pixman_edge_multi_init()
      Fix a bunch of signed overflow issues
      In MUL_UNc() cast to comp2_t
      Reject trapezoids where top (botttom) is above (below) the edges
      Fix rounding for DIV_UNc()
      test: In the alphamap test, also test that we get the right red value
      Fix bugs with alpha maps
      test/alphamap.c: Make dst and orig_dst more independent of each other
      Get rid of delegates for combiners
      Move the color_correct() function from composite.c to utils.c
      Rename color_correct() to round_color()
      test: Add a new "pixel_checker_t" object.
      test: Port composite test over to use new pixel_checker_t object.
      Revert "Reject trapezoids where top (botttom) is above (below) the edges"
      mmx: Enable over_x888_8_8888() for x86 as well
      mmx: Delete unused function in_over_full_src_alpha()
      Disable MMX when Clang is being used.
      Disable implementations mentioned in the PIXMAN_DISABLE environment variable.
      Move fetching for solid bits images to pixman-noop.c
      pixman-accessors.h: Delete unused macros
      pixman-access.c: Remove some unused macros
      mmx: Squash a warning by making the argument to ldl_u() const
      Pre-release version bump to 0.25.2
      Post-release version bump to 0.25.3
      Use "=a" and "=d" constraints for rdtsc inline assembly
      demos: Add quad2quad program
      demos: Add checkerboard demo
      composite-test.c: Use similar gradient to the one in the PDF spec.
      composite-test.c: Add a parrot image
      Add the original parrot image.
      Rename fast_composite_add_1000_1000 to _add_1_1()
      gtk-utils.c: Don't include pixman-private.h
      test/utils.c: Rename and export the pngify_pixels() function.
      gtk-utils.c: In pixbuf_from_argb32() use a8r8g8b8_to_rgba_np()
      test/utils.c: Clip values to the [0, 255] interval
      bits_image_fetch_pixel_convolution(): Make sure channels are signed
      Add Makefile.win32 and Makefile.win32.common to EXTRA_DIST
      demos/Makefile.am: Add parrot.c to EXTRA_DIST
      Pre-release version bump to 0.25.6
      Post-release version bump to 0.25.7
      demos: Add parrot.jpg to EXTRA_DIST
      test: Composite with solid images instead of using pixman_image_fill_*
      Pre-release version bump to 0.26.0
      Post-release version bump to 0.27.1
      Pass the full image flags to iterators
      Make use of image flags in mmx and sse2 iterators
      Add doubly linked lists
      Add pixman_glyph_cache_t API
      Move CRC32 computation from blitters-test.c into utils.c
      Add support for alpha maps to compute_crc32_for_image().
      test: Add glyph-test
      Speed up pixman_composite_glyphs()
      Speed up _pixman_composite_glyphs_no_mask()
      Speed up _pixman_image_get_solid() in common cases
      bits-image: Turn all the fetchers into iterator getters
      test: Make glyph test pass on big endian
      test: Add missing break in stress-test.c
      test: Make stress-test more likely to actually composite something
      In fast_composite_tiled_repeat() don't clone images with a palette
      Use a compile-time constant for the "K" constraint in the MMX detection.
      pixman-cpu.c: Rename disabled to _pixman_disabled() and export it
      Move x86 specific CPU detection to a new file pixman-x86.c
      Move ARM specific CPU detection to a new file pixman-arm.c
      Move PowerPC specific CPU detection to its own file pixman-ppc.c
      Move MIPS specific CPU detection to its own file, pixman-mips.c
      Move the remaining bits of pixman-cpu into pixman-implementation.c
      Simplify MIPS CPU detection
      Simplifications to ARM CPU detection
      Simplify CPU detection on PPC.
      Cleanups and simplifications in x86 CPU feature detection
      Make pixman-mmx.c compile on x86-32 without optimization
      Add make-srgb.pl to EXTRA_DIST
      stress-test: Avoid overflows in clip rectangles
      glyph-test: Avoid setting solid images as alpha maps.
      Pre-release version bump to 0.27.2
* * *

--HG--
extra : rebase_source : d5b871a3b10fe0123f6e50cf98c3621532e5d914
2013-01-08 14:09:48 -05:00
Chris Jones 63f748e97c Bug 792966: Don't try to gralloc small buffers. r=kanru 2013-01-28 23:49:38 -08:00