1
0
Fork 0
forked from suyu/suyu
Commit graph

474 commits

Author SHA1 Message Date
bunnei
5d635986bf Merge pull request #1176 from lioncash/vs2015-code-junking-day
Obligatory "Throw out workarounds VS2013 once limited us to" PR
2015-10-03 13:19:03 -04:00
bunnei
11a64acf23 Merge pull request #1095 from archshift/game-list
Initial implementation of a game list
2015-10-01 23:35:19 -04:00
Lioncash
845ac621b3 bit_field: Re-enable code on MSVC 2015-10-01 15:43:42 -04:00
archshift
7134a17fc6 Split up FileUtil::ScanDirectoryTree to be able to use callbacks for custom behavior
Converted FileUtil::ScanDirectoryTree and FileUtil::DeleteDirRecursively
to use the new ScanDirectoryTreeAndCallback function internally.
2015-09-30 21:04:47 -07:00
Lioncash
8cb2bc748d symbols: Replace an insert call with emplace 2015-09-30 11:55:58 -04:00
Lioncash
65d7a82db4 symbols: Get rid of initial underscores in variable names 2015-09-30 11:54:44 -04:00
Lioncash
7e143d4422 symbols: Directly initialize TSymbol members 2015-09-30 11:53:01 -04:00
Lioncash
052eacc3b9 symbols: Simplify GetSymbol 2015-09-30 11:51:06 -04:00
Lioncash
543192e045 hash: Get rid of unused functions 2015-09-16 08:54:28 -04:00
Lioncash
751fbfdcc3 general: Silence some warnings when using clang 2015-09-16 08:51:53 -04:00
Lioncash
13683a6a11 memory_util: Remove unnecessary assignment in FreeMemoryPages 2015-09-11 23:16:34 -04:00
Lioncash
3972ac40ef memory_util: Remove commented out printf statements 2015-09-11 23:12:28 -04:00
Lioncash
07bfe0abbb general: Replace 0 literals with nullptr where applicable 2015-09-11 23:11:01 -04:00
Lioncash
b9fb46ac9d synchronized_wrapper: Add missing return in SynchronizedRef move assignment operator 2015-09-11 22:00:21 -04:00
bunnei
ef622a07ff Merge pull request #1144 from lioncash/remove
common: Get rid of debug_interface.h
2015-09-11 09:47:36 -04:00
Lioncash
bc886a7a03 common: Get rid of a cast in swap.h 2015-09-11 08:54:33 -04:00
Lioncash
5dc9950772 common: Get rid of debug_interface.h
This is technically unused. Also removes TMemChecks because it relies on this.
Whenever memory breakpoints are implemented for real, it should be designed to
match the codebase debugging mechanisms.
2015-09-11 08:12:08 -04:00
aroulin
179ad35c2e x64: Proper stack alignment in shader JIT function calls
Import Dolphin stack handling and register saving routines
Also removes the x86 parts from abi files
2015-09-01 23:39:52 +02:00
aroulin
0b6c0afeb7 Common: Import BitSet from Dolphin 2015-09-01 23:39:52 +02:00
Yuri Kunde Schlesner
656d824b20 Common: Fix MicroProfile compilation in MSVC2015 2015-08-28 06:12:12 -03:00
Yuri Kunde Schlesner
0fcabd2b11 Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
2015-08-24 22:16:28 -03:00
aroulin
16f39aa452 x64-emitter: add RCPSS SSE instruction 2015-08-23 15:42:58 +02:00
Lioncash
250d474280 Merge pull request #1058 from lioncash/ptr
emitter: Remove pointer casts
2015-08-22 18:42:47 -04:00
Yuri Kunde Schlesner
3efb205a68 Merge pull request #1025 from yuriks/heap-management
Kernel: Correct(er) handling of Heap and Linear Heap allocations
2015-08-22 14:01:57 -07:00
Lioncash
78e7c77ff5 emitter: Remove pointer casts
This should also technically silence quite a few ubsan warnings.
2015-08-21 17:09:33 -04:00
Lioncash
e85c5dbb54 emitter: Remove unnecessary defines 2015-08-20 04:45:32 -04:00
Lioncash
a796149c42 emitter: Remove unnecessary else keywords 2015-08-20 04:45:31 -04:00
Lioncash
e88dc7fc6d emitter: Remove unused code 2015-08-20 04:45:30 -04:00
Lioncash
8738963bce emitter: Remove unimplemented JMP prototype 2015-08-20 04:45:29 -04:00
Lioncash
55461125ba emitter: Pass OpArg by reference where possible 2015-08-20 04:45:28 -04:00
Lioncash
0609b89f74 emitter: Remove unnecessary inline specifiers
Functions implemented in a class definition are already implicitly inline.
2015-08-20 04:45:22 -04:00
bunnei
21ba05e5f1 Merge pull request #1035 from darkf/mingw-fix
Fix building under MinGW
2015-08-19 20:40:31 -04:00
darkf
e053d30bf7 Fix building under MinGW 2015-08-17 22:21:14 -07:00
Patrick Martin
5b65d95310 videocore: Added RG8 texture support 2015-08-16 02:21:50 -03:00
Yuri Kunde Schlesner
b9a9ad9742 VMManager: Make LogLayout log level configurable as a parameter 2015-08-16 01:03:43 -03:00
Yuri Kunde Schlesner
2e5696dba4 Merge pull request #1031 from bbarenblat/master
Handle invalid `Log::Class`
2015-08-15 15:34:12 -07:00
bunnei
b39c053785 Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. 2015-08-15 18:03:27 -04:00
bunnei
0ee00861f6 Common: Cleanup CPU capability detection code. 2015-08-15 18:03:26 -04:00
bunnei
a1942238f5 Common: Move cpu_detect to x64 directory. 2015-08-15 18:03:26 -04:00
bunnei
bd7e691f78 x64: Refactor to remove fake interfaces and general cleanups. 2015-08-15 18:03:25 -04:00
bunnei
d67e2f78b7 Common: Added MurmurHash3 hash function for general-purpose use. 2015-08-15 17:33:46 -04:00
bunnei
ddbeebb887 Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP. 2015-08-15 17:33:45 -04:00
bunnei
4d51792285 Common: Ported over Dolphin's code for x86 CPU capability detection. 2015-08-15 17:33:44 -04:00
Benjamin Barenblat
7cd5a653ff
Handle invalid Log::Class
Add a case of `Log::Class::Count` to the switch statement that
dispatches on `Log::Class`.  The case simply calls the `UNREACHABLE`
macro.
2015-08-15 15:39:45 -04:00
archshift
d1ae413ffd Stop defining GCC always_inline attributes as __forceinline
__forceinline is a MSVC extension, which may confuse some people working on the codebase.
Furthermore, the C++ standard dictates that all names which contain adjacent underscores are reserved.
2015-08-11 19:45:15 -07:00
bunnei
b6c241d667 Merge pull request #1018 from bbarenblat/master
Handle invalid `Log::Level::Count`
2015-08-05 11:59:06 -04:00
Benjamin Barenblat
0298b7bedd
Use UNREACHABLE macro for impossible cases in previous commit
Use the UNREACHABLE macro instead of `ASSERT(false, ...);`.
2015-08-02 18:30:24 -04:00
Yuri Kunde Schlesner
48393d452c Common: Work around bug in MSVC2015 standard library
The char16_t/char32_t implementations aren't present in the library and
cause linker errors. This is a known issue that wasn't fixed in VS2015
RTM.
2015-08-02 19:03:55 -03:00
Benjamin Barenblat
9ff23da255
Handle invalid Log::Level::Count
Add a case of `Log::Level::Count` to all switch statements that
dispatch on `Log::Level`.  The case simply asserts `false` and notes
the invalid log level.
2015-08-02 12:55:31 -04:00
zawata
6e9a6ca6bf Common : Fix Conversion Warnings 2015-07-19 03:59:46 -07:00
Emmanuel Gil Peyrot
fcdc8118eb Common: Remove the unused and commented GetThemeDir prototype from FileUtil. 2015-07-18 13:08:19 +01:00
Tony Wasserka
5e79706db2 Pica: Implement stencil testing. 2015-07-13 23:54:39 +02:00
Tony Wasserka
279e19732c FileUtil: Add a WriteObject method for writing a single, POD-type object. 2015-07-13 22:27:20 +02:00
Apology11
af18572491 don´t define snprintf on Visual Studio 2015
Visual Studio 2015 defines this in stdio now
2015-07-12 13:12:14 +02:00
Yuri Kunde Schlesner
b0d72e3de1 Merge pull request #914 from yuriks/bitfield-mask
Common: Fix mask generation in BitField
2015-07-11 19:01:57 -07:00
Lioncash
e5d90b5797 Common: Remove thunk.h
This isn't used, and there's no implementations of the member functions.
2015-07-10 20:09:41 -04:00
Yuri Kunde Schlesner
867c28ae03 Merge pull request #876 from linkmauve/include-cleanups
Cleanup includes, mostly in common
2015-07-10 16:36:12 -07:00
Yuri Kunde Schlesner
d5b5280501 Common: Remove redundant masking in BitField
For the signed case, the shifts already remove the rest of the value, so
ANDing by the mask is redundant.
2015-07-10 18:43:41 -03:00
Yuri Kunde Schlesner
d7f9529bdd Common: Fix mask generation in BitField
Fixes #913
2015-07-10 18:43:40 -03:00
Emmanuel Gil Peyrot
ab61e67c09 Common: Remove unused type unions breaking aliasing rules in horrible ways. 2015-06-28 10:48:42 +01:00
Emmanuel Gil Peyrot
e5fcabdd69 Core: Cleanup file_sys includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
aea15f5c73 Core: Cleanup core includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
45c4781544 CitraQt: Cleanup includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
22ae87530b Common: Cleanup emu_window includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
1775adc34c Common: Remove unused ROUND_UP_POW2 macro. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
596b7c4f63 Common: Cleanup key_map includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
2d044a67c9 Common: Cleanup memory and misc includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
3a771a13dc Common: Cleanup profiler includes. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot
2a36edfd86 Common: Cleanup thread includes. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot
13e6876463 Common: Fix string_util includes. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot
8cf9eb7f43 Common: Fix FileUtil includes, and everything relying on those. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot
ce0cfd62d9 Common: Remove now-unused EMU_PLATFORM define, fixes issue #373. 2015-06-27 14:43:57 +01:00
Emmanuel Gil Peyrot
82718c4a41 Common: Remove unused SSE version checking and a GCC macro. 2015-06-27 14:43:57 +01:00
Emmanuel Gil Peyrot
0aade9ad63 Common: Remove unused fifo_queue.h. 2015-06-27 14:43:56 +01:00
bunnei
9850f98339 Merge pull request #855 from purpasmart96/service_rearrangment
Services: Continue separation of services into their own folders
2015-06-21 10:55:02 -04:00
purpasmart96
7933dbe6a0 Services: Continue separation of services into their own folders 2015-06-11 20:41:59 -07:00
tfarley
66b0d799ee Render-to-texture flush, interval math fix 2015-06-08 19:18:20 -04:00
archshift
76690392bf Move video_core/color.h to common/color.h 2015-05-30 11:17:37 -07:00
archshift
5df2d1b5f7 Move video_core/math.h to common/vector_math.h
The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
2015-05-30 11:17:36 -07:00
Emmanuel Gil Peyrot
b1503b2020 Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
tfarley
05dc633a8c OpenGL renderer 2015-05-22 15:51:18 -07:00
Yuri Kunde Schlesner
9108482888 Service::Y2R: Support for grayscale decoding of specific formats
Implements unrotated planar YUV 4:2:0 -> RGB24 conversions in Y2R.
Currently only the Y (luma) channel is used, so the results don't
contain color. This will be added in a later PR at some point.

This is enough to get all currently know Moflex videos to decode. (Some
don't display on-screen due to seemingly unrelated reasons.)

Thanks to @archshift for doing the initial implementation which I
cleaned up and then fixed the 8x8 block mode.
2015-05-22 17:57:21 -03:00
Yuri Kunde Schlesner
ba2fe7f795 Merge pull request #758 from yuriks/sync-logging
Common: Remove async logging
2015-05-15 20:54:48 -07:00
Yuri Kunde Schlesner
7dbc27ff57 Remove unused concurrent_ring_buffer.h 2015-05-15 23:57:53 -03:00
Emmanuel Gil Peyrot
a31fd7f86b Common: Remove unused cruft from math_util, and remove a duplicated Rect class in common_types. 2015-05-14 16:16:15 +02:00
Yuri Kunde Schlesner
c8eae338a8 Common: Use the log system to print assert messages 2015-05-12 02:52:31 -03:00
Yuri Kunde Schlesner
b88c91dd3d Common: Remove async logging
It provided a large increase in complexity of the logging system while
having a negligible performance impact: the usage patterns of the ring
buffer meant that each log contended with the logging thread, causing
it to effectively act as a synchronous extra buffering.

Also removed some broken code related to filtering of subclasses which
was broken since it was introduced. (Which means no one ever used that
feature anyway, since, 8 months later, no one ever complained.)
2015-05-12 02:31:04 -03:00
Yuri Kunde Schlesner
b700b55696 Common: Remove the BIT macro
When the macro was introduced in 326ec51261
it wasn't noticed that it conflicted in name with a heavily used macro
inside of dyncom. This causes some compiler warnings. Since it's only
lightly used, it was opted to simply remove the new macro.
2015-05-09 18:16:46 -03:00
Yuri Kunde Schlesner
326ec51261 Common: Add BIT macro 2015-05-08 22:11:04 -03:00
Yuri Kunde Schlesner
8809d02db3 Common: Add StringFromFixedZeroTerminatedBuffer 2015-05-08 03:03:06 -03:00
Yuri Kunde Schlesner
4560178f66 Merge pull request #725 from yuriks/remove-common-crap
Remove unused hash and mem_arena from common
2015-05-07 16:18:03 -07:00
bunnei
10ef39624a Merge pull request #723 from lioncash/commonstr
string_util: Get rid of UriDecode/UriEncode
2015-05-07 18:55:18 -04:00
Yuri Kunde Schlesner
ed12b08e7a Profiler: Fix off-by-one error when computing average. 2015-05-07 19:48:31 -03:00
Yuri Kunde Schlesner
3396f352cb Common: Remove mem_arena.cpp/h
It is superfluous for Citra. (It's only really necessary if you're doing
JIT. We were using it but not taking any advantage from it.) This should
make 32-bit builds work again.
2015-05-07 19:01:09 -03:00
Yuri Kunde Schlesner
d9df5b575a Common: Remove hash.cpp/h
Currently unused and the code quality is pretty questionable.
2015-05-07 18:31:18 -03:00
Yuri Kunde Schlesner
fae5933ad6 Common: Add proper macros to test for architecture pointer size
The old system of just defining macros available in some other platform
was susceptible to silently using the wrong code if you forgot to
include a particular header. This fixes a crash on non-Windows platforms
introduced by e1fbac3ca1.
2015-05-07 18:22:36 -03:00
Lioncash
9adad45b0f string_util: Get rid of UriDecode/UriEncode 2015-05-07 17:10:55 -04:00
Yuri Kunde Schlesner
e1fbac3ca1 Common: Remove common.h 2015-05-07 15:45:22 -03:00
Yuri Kunde Schlesner
1bd1a13a02 Common: Move alignment macros to common_funcs.h 2015-05-07 15:45:21 -03:00
Yuri Kunde Schlesner
ae963d75f8 Common: Move SSE detection ifdefs to platform.h 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner
a594fdb66e Common: Remove more unused compatibility defines 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner
f3c096951b Common: Move IO-specific compatibility macros to file_util.cpp 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner
bf12f270b3 Common: Remove many unnecessary cross-platform compatibility macros 2015-05-06 23:50:08 -03:00
Yuri Kunde Schlesner
c0eaa662d4 Clean-up includes 2015-05-06 23:45:06 -03:00
Yuri Kunde Schlesner
c916bcf7b5 Move typedefs from kernel.h to more appropriate places 2015-05-06 23:45:05 -03:00
Yuri Kunde Schlesner
6ad71c216b Common: Move NonCopyable to common_types.h 2015-05-06 23:45:05 -03:00
Yuri Kunde Schlesner
7a4b717772 Common: Use C++11 deleted functions for NonCopyable 2015-05-06 23:45:04 -03:00
Yuri Kunde Schlesner
1fee769aa0 Common: Remove unused enums 2015-05-06 23:45:04 -03:00
Zaneo
b8328593fe EmuWindow: Clip mouse input coordinates to emulated screen dimensions.
If the mouse position for a mouse move/drag would take it outside the emulated screen dimensions, clip the coordinates to
the emulated screen dimensions.
Qt and GLFW will report negative coordinates for mouse positions to the left, or above citra window. Added restriction
to mouse coordinates passed to touchmoved by Qt/GLFW to be greater or equal to zero.
2015-05-01 23:52:33 -04:00
Yuri Kunde Schlesner
6402de9ae7 Common: thread.h cleanups
The helper classes are rendered obsolete by C++11 lambdas. Also made
formatting conform to our code style.
2015-04-16 17:55:30 -03:00
bunnei
7b9f428b23 Thread: Implement priority boost for starved threads.
SVC: Return correct error code on invalid CreateThread processor ID.

SVC: Assert when creating a thread with an invalid userland priority.
2015-04-09 19:05:21 -04:00
bunnei
3fd2cc566b Merge pull request #641 from purpasmart96/service_stubs
Services: Stubs and minor changes
2015-04-03 22:16:50 -04:00
purpasmart96
198c0ddc72 Services: Stubs and minor changes 2015-04-02 20:05:11 -07:00
Lioncash
e05d6220f5 disassembler: Get rid of a const_cast 2015-03-30 15:37:34 -04:00
Emmanuel Gil Peyrot
188b419586 Common: Fix logic for setting EMU_DATA_DIR. 2015-03-16 02:22:59 +01:00
Emmanuel Gil Peyrot
4c684fb274 Common: Make a #else more apparent. 2015-03-16 02:22:19 +01:00
Subv
c0d1a91017 EmuWindow: Fixed a reference to a temporary variable
in GetTouchState()
2015-03-14 15:01:02 -05:00
bunnei
ed5b275d21 Merge pull request #642 from bunnei/touchpad
Touchpad support
2015-03-11 21:28:57 -04:00
bunnei
d61b26b79f HID: Complete refactor of pad/touch input to fix threading issues. 2015-03-10 23:58:07 -04:00
bunnei
b56829df02 Merge pull request #629 from archshift/lcdfb
Implement SetLcdForceBlack and add implementation for color filling in the GPU code
2015-03-10 18:08:55 -04:00
bunnei
953e09ddb5 EmuWindow: Made pad/touch functions non-static. 2015-03-10 18:05:20 -04:00
bunnei
543232436f EmuWindow: Added infrastructure code to enable touchpad support. 2015-03-10 18:05:17 -04:00
archshift
041e99b613 Added LCD registers, and implementation for color filling in OGL code. 2015-03-09 15:51:41 -07:00
bunnei
3da94a597b Merge pull request #634 from linkmauve/logging-performances
Apply the logging filter before sending the message to the queue
2015-03-09 15:42:18 -04:00
bunnei
ba8ce6c8f5 Merge pull request #584 from yuriks/outline-asserts
Asserts: Use lambdas to keep assertion code away from the main code path
2015-03-08 22:25:04 -04:00
bunnei
25633b431d Fixed EmuWindow typo (fixes OSX build) 2015-03-07 18:26:28 -05:00
bunnei
06bf471581 Merge pull request #636 from bunnei/refactor-screen-win
Set framebuffer layout from EmuWindow.
2015-03-07 18:18:40 -05:00
bunnei
9960c49c21 Set framebuffer layout from EmuWindow. 2015-03-07 17:21:19 -05:00
Tony Wasserka
93e32bce72 Merge pull request #538 from yuriks/perf-stat
Add profiling infrastructure and widget
2015-03-07 15:30:40 +01:00
Emmanuel Gil Peyrot
0aa44e238d Logging: check for filter before sending to the queue, to skip all heavy formatting on the other thread. 2015-03-06 19:23:52 +01:00
archshift
e011acaa84 Removed swap code redundancy and moved common swap code to swap.h 2015-03-05 22:46:45 -08:00
Yuri Kunde Schlesner
dc8a3f8bc8 Profiler: Implement QPCClock to get better precision on Win32
MSVC 2013 (at least) doesn't use QueryPerformanceCounter to implement
std::chrono::high_resolution_clock, so it has bad precision. Manually
implementing our own clock type using it works around this for now.
2015-03-01 21:47:14 -03:00
Yuri Kunde Schlesner
cd1fbfcf1b Add profiling infrastructure and widget 2015-03-01 21:47:13 -03:00
Emmanuel Gil Peyrot
129ad721c1 Common: Switch to the XDG Base Directory Specification for directory selection.
This allows for easily movable and independent configuration and data directories, using standardized paths.
2015-02-25 05:27:13 +01:00
bunnei
50a0c4f14f Merge pull request #581 from archshift/tfe
Added information reporting from ThrowFatalError
2015-02-23 01:23:15 -05:00
archshift
0420a4d1de Added information reporting from ThrowFatalError
This was RE'd from the errdisp applet.
2015-02-22 12:19:30 -08:00
Emmanuel Gil Peyrot
54d6f6c82b Common: Change names containing “Dolphin” or “PPSSPP” to something more generic. 2015-02-20 16:54:10 +00:00
archshift
4fb75d220a Misc cleanup of common and related functions 2015-02-19 22:26:25 -08:00
archshift
302f0b32f5 Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h 2015-02-19 22:26:25 -08:00
archshift
49f94b82b4 Remove "super lame/broken" file_search compilation unit that was leftover from Dolphin 2015-02-18 23:23:18 -08:00
archshift
961f65d1fe Remove redundant utf8 compilation unit that was leftover from Dolphin 2015-02-18 22:34:32 -08:00
archshift
9f7f1a2272 Remove useless extended_trace compilation unit that was leftover from Dolphin 2015-02-18 22:30:31 -08:00
archshift
5efd149ad5 Remove the useless msg_handler compilation unit that was left over from Dolphin 2015-02-18 22:26:22 -08:00
bunnei
745b42d236 Merge pull request #570 from purpasmart96/config_mem
ConfigMem: Clean up the Config memory to be more like the shared page
2015-02-18 00:12:37 -05:00
Yuri Kunde Schlesner
714d507938 Asserts: Use lambdas to keep assertion code away from the main code path 2015-02-18 02:19:30 -02:00
purpasmart96
c3c309f33d ConfigMem: Clean up the Config memory to be more like the shared page and moved
the helper macro for padding to common_funcs.h
2015-02-16 15:12:05 -08:00
bunnei
12181c8a64 Merge pull request #529 from Subv/master
Build: Fixed some warnings
2015-02-14 15:50:26 -05:00
Lioncash
3c474a7d31 backend: Add logging subentry for ldr
Fixes an assertion upon executing citra in debug mode.
2015-02-12 20:46:13 -05:00
Subv
8e2b248e05 Build: Fixed some warnings 2015-02-12 09:25:35 -05:00
archshift
ef24e72b26 Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)

Also removed some GEKKO cruft.
2015-02-10 18:30:31 -08:00