Jason Volk
|
695fb4c9b0
|
ircd::net: Ensure proper string() is resolved; minor cleanup.
|
2018-05-02 12:15:04 -07:00 |
|
Jason Volk
|
c84fe8d962
|
ircd::server: Fix preservation of nullity for in.content through cancellation.
|
2018-05-02 12:00:32 -07:00 |
|
Jason Volk
|
8f7a05c9ed
|
ircd::server: Minor cleanup / assertions / comments.
|
2018-05-02 12:00:26 -07:00 |
|
Jason Volk
|
4c61eeba89
|
ircd::net::dns: Use explicit static empty record instances.
|
2018-05-02 11:28:34 -07:00 |
|
Jason Volk
|
fb53069c6f
|
ircd::net::dns Include query in callback arguments to prevent any stale captures.
|
2018-05-01 18:56:22 -07:00 |
|
Jason Volk
|
9af649f739
|
ircd::db: Consolidate write(column) overloads.
|
2018-04-30 07:18:06 -07:00 |
|
Jason Volk
|
e80e34eddc
|
ircd:Ⓜ️ Fix fmt argument type.
|
2018-04-28 22:16:34 -07:00 |
|
Jason Volk
|
2b7358aa60
|
ircd:Ⓜ️:dbs: Conditional indexer; pass db::op from opts for indexer.
|
2018-04-28 19:05:17 -07:00 |
|
Jason Volk
|
6d771191fc
|
ircd::rfc1035: Fix any uninitialized gaps in the name buffer.
|
2018-04-28 18:47:17 -07:00 |
|
Jason Volk
|
3f2320c49e
|
ircd::net::dns: Strip the cached-error SRV target of its prefix; minor fixes.
|
2018-04-28 17:47:59 -07:00 |
|
Jason Volk
|
405fcdef23
|
ircd::rfc1035: Remove unnecessary ilist.
|
2018-04-28 17:47:59 -07:00 |
|
Jason Volk
|
30d8c0b961
|
ircd::net::dns: Allocate separate reply buffer in resolver.
|
2018-04-28 17:47:59 -07:00 |
|
Jason Volk
|
a3bea15eef
|
ircd::net::dns: Various send cleanup/asserts; fix hostport reference in eh.
|
2018-04-28 17:47:59 -07:00 |
|
Jason Volk
|
2b41672259
|
ircd::net::dns: Improve the SRV -> A callback chain.
|
2018-04-28 17:47:59 -07:00 |
|
Jason Volk
|
4e796c896a
|
ircd::net::dns: Allow an exception to calling back with nxdomain as an exception.
|
2018-04-28 17:47:58 -07:00 |
|
Jason Volk
|
1d408173dc
|
ircd::net: Return pointer to cached error record for put_error().
|
2018-04-28 16:25:20 -07:00 |
|
Jason Volk
|
48abece29b
|
ircd::net: Improve dns::resolver instance init/fini.
|
2018-04-28 15:31:07 -07:00 |
|
Jason Volk
|
0f161f98e8
|
ircd::ctx::list: Fix misleading reference.
|
2018-04-28 03:26:07 -07:00 |
|
Jason Volk
|
d3b1b0ff77
|
ircd:Ⓜ️🆔 Cleanup / fix error.
|
2018-04-27 21:48:14 -07:00 |
|
Jason Volk
|
46cf2ca559
|
ircd:Ⓜ️ Fix closure parameter rot.
|
2018-04-27 21:48:14 -07:00 |
|
Jason Volk
|
d8b14ade58
|
ircd:Ⓜ️ Fix narrowing conversion.
|
2018-04-27 21:48:14 -07:00 |
|
Jason Volk
|
dc5ac7c2ac
|
ircd::ctx: #ifdef away linkages for ctx assertions in NDEBUG builds.
|
2018-04-27 19:16:56 -07:00 |
|
Jason Volk
|
09c282fd8e
|
ircd::ctx: Add stack_usage_assertion; move stack_usage_here() into this_ctx::.
|
2018-04-27 19:09:26 -07:00 |
|
Jason Volk
|
70f962de4e
|
ircd:Ⓜ️ Elaborate presence interface to fetch full event from user's room.
|
2018-04-27 15:26:17 -07:00 |
|
Jason Volk
|
9c5b10fb61
|
ircd::server: Preserve nullity of cancellation tag's in.content.
|
2018-04-26 21:35:55 -07:00 |
|
Jason Volk
|
75b67e11fc
|
ircd:Ⓜ️ Add state_root() to room messages iterator.
|
2018-04-26 21:35:55 -07:00 |
|
Jason Volk
|
a734798100
|
ircd::db: Minor cleanup.
|
2018-04-26 17:52:24 -07:00 |
|
Jason Volk
|
8083a5d71c
|
ircd::db: Add WAL fflush; move table flushes to "sort()"; adjust interfaces.
|
2018-04-26 17:19:29 -07:00 |
|
Jason Volk
|
93ca1448d1
|
ircd::db: Verify SST checksums on db open.
|
2018-04-26 16:48:35 -07:00 |
|
Jason Volk
|
94439a334e
|
ircd::db: Cleanup/Simplify db open ptr construction.
|
2018-04-26 16:39:59 -07:00 |
|
Jason Volk
|
173093e45a
|
ircd::db: Fix default description to include default column.
|
2018-04-26 16:22:16 -07:00 |
|
Jason Volk
|
94b03cfe71
|
ircd:Ⓜ️ Fix my_node id generation.
|
2018-04-26 15:45:06 -07:00 |
|
Jason Volk
|
523bf19f30
|
ircd:Ⓜ️🪝 Add a set to track all hooks for a site.
|
2018-04-26 15:17:28 -07:00 |
|
Jason Volk
|
78a5442230
|
ircd:Ⓜ️ Increase stream buffer sizes for pretty(event).
|
2018-04-25 23:34:39 -07:00 |
|
Jason Volk
|
6add3e9952
|
ircd::server: Limit recursion of chunk head parses.
|
2018-04-25 20:52:27 -07:00 |
|
Jason Volk
|
e2568457f4
|
ircd::server: Add dynamic chunk vectoring.
|
2018-04-25 20:52:26 -07:00 |
|
Jason Volk
|
7e32d3cbaa
|
ircd::server: Checkpoint preliminary chunk vectoring; state, options.
|
2018-04-25 15:10:04 -07:00 |
|
Jason Volk
|
55632dee5e
|
ircd:Ⓜ️:dbs: Fix default value for event::idx to respect domain order.
|
2018-04-25 01:42:41 -07:00 |
|
Jason Volk
|
ba61369027
|
ircd:Ⓜ️:dbs: Use buffer size constants for query key generations.
|
2018-04-24 19:32:32 -07:00 |
|
Jason Volk
|
12592cd22c
|
ircd:Ⓜ️🆔 Improve size constants and range enforcements.
|
2018-04-24 19:22:07 -07:00 |
|
Jason Volk
|
bf445492db
|
ircd::fs: Use const_buffer rather than string_view in various returns.
|
2018-04-24 18:34:46 -07:00 |
|
Jason Volk
|
a13c11c93c
|
ircd::log: Fix showing the other name during duplicate snote check.
|
2018-04-24 18:00:12 -07:00 |
|
Jason Volk
|
f049bbf0d0
|
ircd: Split tokens.cc from lexical.cc
|
2018-04-24 17:01:11 -07:00 |
|
Jason Volk
|
db21df0c31
|
ircd: Move mapi.h into mods/.
|
2018-04-24 01:21:16 -07:00 |
|
Jason Volk
|
bff688bf64
|
ircd::openssl: Rename iteration until -> for_each.
|
2018-04-24 00:50:40 -07:00 |
|
Jason Volk
|
90348f4265
|
ircd:Ⓜ️ Add interface to get origin names of user's rooms.
|
2018-04-23 19:39:50 -07:00 |
|
Jason Volk
|
243b0b7918
|
ircd::resource: Fix resource false matching issue; cleanup.
|
2018-04-23 19:17:03 -07:00 |
|
Jason Volk
|
aa5681dab9
|
ircd:Ⓜ️:dbs: Throw exception for a null index here.
|
2018-04-23 18:14:30 -07:00 |
|
Jason Volk
|
7889d116f0
|
ircd::resource: Choose better log level based on HTTP response codes.
|
2018-04-23 17:47:10 -07:00 |
|
Jason Volk
|
2e3e8bc0d5
|
ircd::log: Add masking by name; various improvements.
|
2018-04-23 17:20:00 -07:00 |
|
Jason Volk
|
ca138a4338
|
ircd::log: Give log::log the instance list w/ construction checks.
|
2018-04-23 17:20:00 -07:00 |
|
Jason Volk
|
27ff5e9be1
|
ircd::log: Objectify mark / vlog related.
|
2018-04-23 17:20:00 -07:00 |
|
Jason Volk
|
e598a27d7a
|
ircd::log: Use string_view for named log instance due to dominant use-case.
|
2018-04-23 17:20:00 -07:00 |
|
Jason Volk
|
523ef5f1db
|
ircd:Ⓜ️ Show the hostname in the vm init/halt log message.
|
2018-04-22 16:26:54 -07:00 |
|
Jason Volk
|
f808a28664
|
ircd: Add m/m.h to stdinc.h
|
2018-04-22 16:22:02 -07:00 |
|
Jason Volk
|
87bd9bc429
|
ircd:Ⓜ️ Add conf init sequence for m::self related.
|
2018-04-22 15:18:05 -07:00 |
|
Jason Volk
|
f866c9a4de
|
ircd::db: Flush here does not mean what one might think it means.
|
2018-04-22 15:08:26 -07:00 |
|
Jason Volk
|
2325208ecd
|
ircd:Ⓜ️ Add more detailed content information in pretty(event).
|
2018-04-22 14:24:48 -07:00 |
|
Jason Volk
|
a3bcd2dbf3
|
ircd: Add b64 <-> b58 convenience conversion suite.
|
2018-04-22 14:24:37 -07:00 |
|
Jason Volk
|
2557834a96
|
ircd:Ⓜ️:dbs: Factor in the event_idx for a more stable messages sort.
|
2018-04-22 13:49:02 -07:00 |
|
Jason Volk
|
757f8f8209
|
ircd::client: Tweak timeout defaults; fix branch probability; additional assert.
|
2018-04-21 23:45:25 -07:00 |
|
Jason Volk
|
799f450b47
|
ircd:Ⓜ️ Fix content size sampling in pretty(event).
|
2018-04-20 23:48:39 -07:00 |
|
Jason Volk
|
6b32da764d
|
ircd::client: Remove the asynchronous longpoll state.
|
2018-04-20 19:54:18 -07:00 |
|
Jason Volk
|
784293e01f
|
ircd::client: Assertions for request context.
|
2018-04-20 19:53:36 -07:00 |
|
Jason Volk
|
ebea2e2385
|
ircd::db: Explicitly involve SST files in column compaction.
|
2018-04-20 17:03:20 -07:00 |
|
Jason Volk
|
6de7fb7b8c
|
ircd::db: Adjust destruction sequence for rocksdb DB::Close() call.
|
2018-04-20 17:03:20 -07:00 |
|
Jason Volk
|
f3b0fa3b4e
|
ircd::db: Additional option tweaks.
|
2018-04-20 17:03:20 -07:00 |
|
Jason Volk
|
e3b2bcf19d
|
ircd::db: Maintain SST file manager instance.
|
2018-04-20 15:45:57 -07:00 |
|
Jason Volk
|
532f987bd6
|
ircd::db: Move column compact()/flush() to more consistent place.
|
2018-04-20 15:22:50 -07:00 |
|
Jason Volk
|
666e509c97
|
ircd::db: Expose setoptions interface.
|
2018-04-20 15:22:50 -07:00 |
|
Jason Volk
|
f805344604
|
ircd::db: Options package for file growth, count and compaction related.
|
2018-04-20 15:22:50 -07:00 |
|
Jason Volk
|
88f5937559
|
ircd::log: Update the log::mark() argument to use string_view.
|
2018-04-20 15:22:50 -07:00 |
|
Jason Volk
|
1cd3e41e44
|
ircd::info: Distill out the logdump from init.
|
2018-04-20 15:22:50 -07:00 |
|
Jason Volk
|
09ff713743
|
ircd::info: Query the RLIMIT_NOFILE; minor fixes.
|
2018-04-20 15:22:50 -07:00 |
|
Jason Volk
|
fcf17db132
|
ircd: Various fixes / cleanup.
|
2018-04-20 15:22:49 -07:00 |
|
Jason Volk
|
2a7cb42c98
|
ircd::ctx: Minor ctx object semantic elaboration.
|
2018-04-20 00:44:45 -07:00 |
|
Jason Volk
|
7d64e6323b
|
ircd::client: Use conf::item's for client related.
|
2018-04-20 00:44:45 -07:00 |
|
Jason Volk
|
d2536c83a2
|
ircd::client: dwarning if client request pool exhausted.
|
2018-04-20 00:44:45 -07:00 |
|
Jason Volk
|
1dcfff91a5
|
ircd::ctx: Expose stack_max() to public interface.
|
2018-04-19 21:42:54 -07:00 |
|
Jason Volk
|
35a1c62b1f
|
ircd::ctx: Add ctx::running()/waiting() for interface completeness.
|
2018-04-19 21:42:54 -07:00 |
|
Jason Volk
|
3b32d2170e
|
ircd::ctx: Give ctx::ctx the instance_list.
|
2018-04-19 21:42:54 -07:00 |
|
Jason Volk
|
281a9e1cfd
|
ircd::ctx: Place ctx::list node pointers into structure in ctx.
|
2018-04-19 21:42:54 -07:00 |
|
Jason Volk
|
793c24ce9e
|
ircd::ctx: Simplify list iteration API.
|
2018-04-19 14:47:56 -07:00 |
|
Jason Volk
|
1d451ca3ff
|
ircd:Ⓜ️ Add additional filter convenience constructors.
|
2018-04-19 14:23:47 -07:00 |
|
Jason Volk
|
1397091b7c
|
ircd:Ⓜ️:events: Add a filtered iteration.
|
2018-04-19 14:23:47 -07:00 |
|
Jason Volk
|
e57b85cb36
|
ircd:Ⓜ️ Add developer convenience constructor to event_filter.
|
2018-04-19 13:47:51 -07:00 |
|
Jason Volk
|
328292ba0e
|
ircd|:Ⓜ️ Optimize path for head_idx()/depth() to avoid head id lookup.
|
2018-04-18 15:13:17 -07:00 |
|
Jason Volk
|
fbc78c9c60
|
ircd:Ⓜ️ Add head_idx(room) convenience to get one head event idx.
|
2018-04-18 15:09:13 -07:00 |
|
Jason Volk
|
02bc9032e8
|
ircd:Ⓜ️ Add event::idx to top() tuple.
|
2018-04-18 15:04:46 -07:00 |
|
Jason Volk
|
7659ef3acc
|
ircd:Ⓜ️ Reorder top() tuple; use strong type template std::get'ers.
|
2018-04-18 15:03:42 -07:00 |
|
Jason Volk
|
d64adf8916
|
ircd:Ⓜ️ Rename event id generator function.
|
2018-04-18 14:26:25 -07:00 |
|
Jason Volk
|
7f3919dd17
|
ircd:Ⓜ️ Split events iterations into namespace.
|
2018-04-18 01:25:54 -07:00 |
|
Jason Volk
|
5a3f105afc
|
ircd:Ⓜ️ Optimize away the event_seq column.
|
2018-04-18 00:28:05 -07:00 |
|
Jason Volk
|
03e8107b7b
|
ircd:Ⓜ️:dbs: Elaborate additional descriptor options for columns.
|
2018-04-17 22:10:28 -07:00 |
|
Jason Volk
|
eefc7430bc
|
ircd:Ⓜ️ Convert db column keys to binary integers over a continuous sequence space.
|
2018-04-17 21:13:16 -07:00 |
|
Jason Volk
|
e6a80082c8
|
ircd::db: Assertion for non-empty key seek.
|
2018-04-17 20:30:06 -07:00 |
|
Jason Volk
|
b95a588bc4
|
ircd::db: Comment/improve descriptor/column options.
|
2018-04-17 15:28:08 -07:00 |
|
Jason Volk
|
330fe74035
|
ircd::db: Add file_count and bytes aggregator for all columns in db.
|
2018-04-17 14:13:36 -07:00 |
|
Jason Volk
|
6ef68a8f4e
|
ircd:Ⓜ️ Show content bytes in pretty(event).
|
2018-04-17 02:51:44 -07:00 |
|
Jason Volk
|
8a829435cd
|
ircd:Ⓜ️:vm: Special case sequence number zero for iterator.
|
2018-04-16 23:30:57 -07:00 |
|
Jason Volk
|
bcd704826c
|
ircd:Ⓜ️:vm: Move db::txn to the stack; use automatic reserve option.
|
2018-04-16 17:28:26 -07:00 |
|
Jason Volk
|
b729338037
|
ircd:Ⓜ️:room: Move event::fetch outside loop to prevent constructions.
|
2018-04-16 15:58:26 -07:00 |
|
Jason Volk
|
d5cd5dea09
|
ircd:Ⓜ️:vm: Sequence iteration interface.
|
2018-04-16 15:58:02 -07:00 |
|
Jason Volk
|
b320d8ece1
|
ircd:Ⓜ️:vm: Integrate sequence counting.
|
2018-04-16 15:20:08 -07:00 |
|
Jason Volk
|
d5087f4e8f
|
ircd:Ⓜ️:dbs: Add event sequence column.
|
2018-04-16 15:20:08 -07:00 |
|
Jason Volk
|
dcacc5af0a
|
ircd:Ⓜ️:vm: Add db::txn allocation reservation options.
|
2018-04-16 15:20:08 -07:00 |
|
Jason Volk
|
e009d6763e
|
ircd::db: Fix issues with txn interface.
|
2018-04-16 15:20:08 -07:00 |
|
Jason Volk
|
cae6964fa5
|
ircd:Ⓜ️:vm: Add missing INTERRUPT fault to reflect switch.
|
2018-04-16 13:48:16 -07:00 |
|
Jason Volk
|
60b9960c3d
|
ircd:Ⓜ️ Tweaks to bootstrap / init task ordering.
|
2018-04-15 18:02:41 -07:00 |
|
Jason Volk
|
19d7e05605
|
ircd::resource: Allow each resource method to specify its timing.
|
2018-04-15 18:02:41 -07:00 |
|
Jason Volk
|
49d83de384
|
ircd::net: Propagate ctx interruption to socket.
|
2018-04-15 17:46:20 -07:00 |
|
Jason Volk
|
f4b2273a4b
|
ircd::net: Add a semaphore to the socket timer to invalidate queued callbacks.
|
2018-04-15 17:46:20 -07:00 |
|
Jason Volk
|
5be18475df
|
ircd::net: Move scope_timeout from socket:: to net:: w/ exposure.
|
2018-04-15 16:43:09 -07:00 |
|
Jason Volk
|
6d88ee339d
|
ircd:Ⓜ️:dbs: Rename room_origins to room_joined.
|
2018-04-15 16:43:09 -07:00 |
|
Jason Volk
|
7b54dba291
|
ircd::db: Expose an interface for some counters; add ticker command.
|
2018-04-15 16:43:09 -07:00 |
|
Jason Volk
|
416d199736
|
ircd:Ⓜ️ Fix pretty(event) formatting.
|
2018-04-15 04:16:40 -07:00 |
|
Jason Volk
|
2dad8d8832
|
ircd::net::dns: Empty cache key assertions.
|
2018-04-15 02:44:28 -07:00 |
|
Jason Volk
|
0c78bf7a9b
|
ircd::db: Add compaction interface.
|
2018-04-15 02:42:57 -07:00 |
|
Jason Volk
|
f7f2194745
|
ircd::db: Reenable the histogram collection.
|
2018-04-15 00:36:33 -07:00 |
|
Jason Volk
|
0a3259afae
|
ircd::db: Custom table opts; table cache; introduce the bloom filter.
|
2018-04-14 23:10:09 -07:00 |
|
Jason Volk
|
f37176d698
|
ircd::net::dns: Enforce min ttl for cache entries; add conf option.
|
2018-04-14 18:35:48 -07:00 |
|
Jason Volk
|
de295777d0
|
ircd::net::dns: Improve/fix cache management related.
|
2018-04-14 18:13:19 -07:00 |
|
Jason Volk
|
b9cf0c9796
|
ircd::rfc1035: Comparison operator suite for record types.
|
2018-04-14 17:34:07 -07:00 |
|
Jason Volk
|
1ad4d58e43
|
ircd::net::dns: Move cache interfaces into cache class.
|
2018-04-14 17:34:07 -07:00 |
|
Jason Volk
|
756840b42c
|
ircd::client: Add unique client id monotonic counter.
|
2018-04-14 17:15:06 -07:00 |
|
Jason Volk
|
69b0066c15
|
ircd::resource: Add routine to warmup caches after origin verification.
|
2018-04-14 17:15:06 -07:00 |
|
Jason Volk
|
cf22eacfd3
|
ircd::net::dns: Add static fire-and-forget callbacks for prefetching.
|
2018-04-14 17:15:06 -07:00 |
|
Jason Volk
|
e3b97871f9
|
ircd: Add function to return daemon's uptime.
|
2018-04-14 17:15:06 -07:00 |
|
Jason Volk
|
deb1a0a979
|
ircd::resource: Add chunked encoding response suite.
|
2018-04-13 23:19:43 -07:00 |
|
Jason Volk
|
3f72b7ce19
|
ircd::db: Update gopts; add seqnum option; fix missing readahead.
|
2018-04-13 22:46:31 -07:00 |
|
Jason Volk
|
7c92eb2757
|
ircd::server: Use system time for error time state.
|
2018-04-13 20:02:48 -07:00 |
|
Jason Volk
|
dc81d77c19
|
ircd::net: Improve/comment on various sundry DNS cache related.
|
2018-04-13 18:34:48 -07:00 |
|
Jason Volk
|
6ca4f6eec5
|
ircd::net: Expose interface for socket stat counter.
|
2018-04-13 17:24:07 -07:00 |
|
Jason Volk
|
69aeddad61
|
ircd::client: Reference the client's request handling context via class member.
|
2018-04-13 17:03:17 -07:00 |
|
Jason Volk
|
414133ba55
|
ircd::resource: Reset the client.request object after request.
|
2018-04-13 16:52:38 -07:00 |
|
Jason Volk
|
dd69acbad3
|
ircd::json::stack: Handle and properly propagate flusher exception out of stack.
|
2018-04-13 16:03:34 -07:00 |
|
Jason Volk
|
0b217b3474
|
ircd::client: Improve request exception propagation; propagate ctx::interrupted.
|
2018-04-13 15:46:16 -07:00 |
|
Jason Volk
|
14d90bf4a9
|
ircd:Ⓜ️:vm: Move temporary m.room.member effect to modules/m_room_member.
|
2018-04-13 14:54:11 -07:00 |
|
Jason Volk
|
45f8239f9b
|
ircd:Ⓜ️:vm: Properly propagate a context interruption to the evaluator.
|
2018-04-12 23:07:46 -07:00 |
|
Jason Volk
|
56234556e8
|
ircd:Ⓜ️ Real uses for this prefer to include the user in the iteration.
|
2018-04-12 23:07:46 -07:00 |
|
Jason Volk
|
bd4a16fab1
|
ircd::db: Tweak sundry open options.
|
2018-04-12 23:07:46 -07:00 |
|
Jason Volk
|
b5dd434e7c
|
ircd::db: Adjust db open and close log messages for where waiting happens.
|
2018-04-12 23:07:46 -07:00 |
|
Jason Volk
|
ae528af7cd
|
ircd::db: Reduce the offloading to a wieldy statement.
|
2018-04-12 23:07:46 -07:00 |
|
Jason Volk
|
9dfd9f8258
|
ircd::net: No propagation from accept/handshake handlers; use debug error.
|
2018-04-12 23:07:45 -07:00 |
|
Jason Volk
|
cee7a17330
|
ircd:Ⓜ️:dbs: Purge old cruft; add various \briefs.
|
2018-04-12 23:07:45 -07:00 |
|
Jason Volk
|
455ff99b93
|
ircd::db: Error reporting and fallbacks for db property queries.
|
2018-04-12 23:07:45 -07:00 |
|
Jason Volk
|
a628f88206
|
ircd:Ⓜ️:room: Adjust expectations for fetching event after index seek.
|
2018-04-12 14:10:45 -07:00 |
|
Jason Volk
|
0a1a35fdf4
|
ircd:Ⓜ️:room::members: Improve interface; add user::id specific iteration closure.
|
2018-04-12 14:10:03 -07:00 |
|
Jason Volk
|
f9ade26b24
|
ircd:Ⓜ️:dbs: Workaround issues with incorrect std::tuple references.
|
2018-04-12 14:08:48 -07:00 |
|
Jason Volk
|
8bf0b4d093
|
ircd::net: Assert proper socket object semantics.
|
2018-04-12 12:52:14 -07:00 |
|