Kevin Froman
865bc94ccb
+ flow plugin is now working
...
+ added escapeAnsi function to utils
2018-07-12 02:37:10 -05:00
Kevin Froman
d879383a8a
work on new flow plugin and block metadata caching
2018-07-11 14:45:38 -05:00
Kevin Froman
f918ae9b9c
started work on flow plugin
2018-07-11 02:35:22 -05:00
Kevin Froman
ba1b154f52
fixed bug where new communicator would download blocks it already has
2018-07-10 02:29:17 -05:00
Kevin Froman
7cf4cd9862
more bytes issues
2018-07-10 02:20:32 -05:00
Kevin Froman
e0618f3166
use var instead of direct call in hash comparison in block sync
2018-07-10 02:15:55 -05:00
Kevin Froman
2c70531a51
fixed invalid bytes concat when hash is invalid on some versions
2018-07-10 02:11:58 -05:00
Kevin Froman
33787ef39d
* fixed broken block metadata validation, incorrect time integer check and missing size value for encryptType
2018-07-10 01:17:30 -05:00
Kevin Froman
9083775887
* do not report inserted message if keyboard interrupt/failure
...
* do not crash on keyboard interrupt in pow
2018-07-09 22:09:45 -05:00
Kevin Froman
b3b5e5bb50
+ re-added old pow system as a different class for things like ed25519 keys
...
* no longer run communicator threads if they need peers and we have none connected
2018-07-09 02:02:33 -05:00
Kevin Froman
f027202ac9
* Pretty much done with new POW format
2018-07-08 02:51:23 -05:00
Kevin Froman
31236eea84
hopefully issues with keyboardinterrupt
2018-07-07 19:26:01 -05:00
Kevin Froman
8727dc2241
Merge branch 'refactoring2' of gitlab.com:beardog/Onionr into refactoring2
2018-07-07 19:03:46 -05:00
Arinerron
bdb9fa8cc4
Misc updates
2018-07-05 21:27:12 -07:00
Kevin Froman
06986d2703
* now use communicator2 by default
...
* fixed shutdown command crash
* now handle shutdown of api in communicator
* work on new POW system (block hash being the POW hash)
2018-07-05 02:31:47 -05:00
Arinerron
c083d54abb
Merge branch 'refactoring2' of https://gitlab.com/beardog/onionr into refactoring2
2018-07-04 12:07:27 -07:00
Arinerron
bd3a3bfeed
Fix type bug
2018-07-04 12:07:17 -07:00
Kevin Froman
bd819a3ba6
* fixed validateMetadata not having self
...
+ added isIntegerString
* other fixes
2018-07-04 13:49:43 -05:00
Kevin Froman
80648cc920
added kex command
2018-07-03 18:44:12 -05:00
Kevin Froman
6f761aaeff
do not have linebreak in own hsaddr
2018-07-03 16:27:42 -05:00
Kevin Froman
58110e461e
improving new communicator bootstrapping, do not connect to self
2018-07-03 16:24:14 -05:00
Kevin Froman
267220ad72
only attempt announce with online peers
2018-07-03 14:26:53 -05:00
Kevin Froman
f1c8c8b843
* changed how new communicator uses bootstrap (untested)
...
+ added function to calculate human readable strings from hex
2018-07-03 03:18:07 -05:00
Kevin Froman
efb049fddd
fixed indent in test
2018-07-02 16:20:19 -05:00
Kevin Froman
3a7cefbf53
* do not fail localCommand if host file does not exist
...
* disabled plugin tests
2018-07-02 16:15:59 -05:00
Kevin Froman
75bb8a11bd
do not fail on plugin import
2018-07-02 16:08:47 -05:00
Kevin Froman
45234588e2
* fixed broken insertblock with bytes
...
* some work on improving tests
* temporarily disabled testblockapi test
2018-07-02 03:13:18 -05:00
Kevin Froman
f5bd9220fc
improved communicator2 comments
2018-07-01 23:04:14 -05:00
Kevin Froman
5c49f544fe
documented communicator2 better and bootstrap better
2018-07-01 16:01:19 -05:00
Kevin Froman
a2ad90f2b9
fixed invalid conn commit
2018-06-30 22:38:57 -05:00
Kevin Froman
92b0ad975f
+ Now log running seconds in heartbeat
...
* Do not spam "could not connect to any peer" if we have a peer connected
2018-06-26 00:26:01 -05:00
Kevin Froman
6fd0f9aded
create daemon db table if it doesn't exist
2018-06-26 00:04:59 -05:00
Kevin Froman
65ea5cf6f0
completed validateMetadata function
2018-06-25 23:39:45 -05:00
Kevin Froman
956f720741
added call to new validateMetadata function
2018-06-25 02:34:43 -05:00
Kevin Froman
f148724e69
work on peer/address exchange in new communicator
2018-06-23 02:36:22 -05:00
Kevin Froman
a7d0d73b5b
add new block to hash db in communicator
2018-06-21 19:57:12 -05:00
Kevin Froman
232bc4932a
* fixed threadCount not lowering for getBlocks
...
* fixed onionrblockapi not properly converting bytes to string for block
hash
2018-06-21 19:34:42 -05:00
Kevin Froman
ff8128ae33
use bytes instead of str when inserting
2018-06-21 14:07:00 -05:00
Kevin Froman
3c8d1a5b7f
readded missing setdata in core
2018-06-21 13:56:07 -05:00
Kevin Froman
ca53da854e
readded forgotten setdata to insertblock
2018-06-21 02:34:42 -05:00
Kevin Froman
997e27b532
do not use blockapi for addmessage
2018-06-21 02:29:51 -05:00
Kevin Froman
9abb2f4f85
fixed undefined metadata in insertblock
2018-06-21 02:26:54 -05:00
Kevin Froman
9968a72fbc
+ added clear offline peers to new communicator
...
+ fixed unable to insert unencrypted block
2018-06-21 02:24:58 -05:00
Kevin Froman
829dba45cc
temporarily disabled onionrblockapi metadata
2018-06-21 02:17:20 -05:00
Kevin Froman
4bc5317b63
fixed leftover break in core
2018-06-21 01:48:54 -05:00
Kevin Froman
0087e04f57
work on new blocks and encryption
2018-06-20 15:56:28 -05:00
Kevin Froman
b3cbdbaceb
Merge branch 'refactoring2' of gitlab.com:beardog/Onionr into refactoring2
2018-06-20 14:02:17 -05:00
Kevin Froman
0a8052a9a4
* work on new block system, encryption
...
+ added new exception
+ encryption now anonymous by default, will probably remove anonymous
param in future
2018-06-20 02:40:49 -05:00
Arinerron
06b4094d45
misc changes
2018-06-19 21:51:03 -07:00
Arinerron
d77bb92e28
Refactor initializer
2018-06-19 21:36:07 -07:00
Kevin Froman
10ebdddb24
* work on new block system, working on encryption
...
* added onionrvalues file for onionr requirements
* added invalidmetadata exception
2018-06-19 02:01:59 -05:00
Kevin Froman
7864677498
+ added secrets.py
...
* work on communicator2, syncing blocks
* modify insertblock to use new pow metadata (may need more work for new
spec)
2018-06-16 15:54:56 -05:00
Kevin Froman
a4824d9b8c
work on new communicator with downloading new blocks
2018-06-16 02:33:54 -05:00
Kevin Froman
31a35472ce
* fixed broken local command
...
* work on communicator2 block syncing
2018-06-15 14:09:41 -05:00
Kevin Froman
e339b78e88
merge gitlab
2018-06-15 00:47:37 -05:00
Kevin Froman
21786c6885
work on getting new blocks in communicator2
2018-06-15 00:45:07 -05:00
Arinerron
debd123ffc
Don't sort config keys
2018-06-13 21:42:19 -07:00
Arinerron
b5c06ce64c
Add warning message to new communicator
2018-06-13 21:35:56 -07:00
Arinerron
af237eab0b
Refactor Onionr
2018-06-13 21:17:58 -07:00
Kevin Froman
6cb69c7187
work on new peer pool system in new communicator
2018-06-13 17:22:48 -05:00
Kevin Froman
effeddc536
Merge branch 'refactoring2' of gitlab.com:beardog/Onionr into refactoring2
2018-06-13 02:34:35 -05:00
Kevin Froman
083ffd8af3
work on new communicator, added some communication to peers and imported some old
...
communicator features
added powValue to address db, currently unused
2018-06-13 02:33:37 -05:00
Arinerron
d382fca524
Dynamically adjust stats menu size
2018-06-12 23:09:55 -07:00
Arinerron
25208e4374
Fix division-by-zero error
2018-06-12 22:50:55 -07:00
Kevin Froman
22aa3110d5
+ now exit in new daemon on command
...
+ no exit in new daemon on api crash
2018-06-12 22:43:39 -05:00
Kevin Froman
ed1d09a7b6
+ added timer object to new communicator
2018-06-12 18:32:33 -05:00
Kevin Froman
b6da3385cb
+ added onionrpeers file
...
+ added onionrexceptions file
+ work on new communicator
2018-06-12 02:34:33 -05:00
Kevin Froman
d73b69c9b4
work on new communicator, with nist beacon
2018-06-11 02:40:45 -05:00
Kevin Froman
7d3e7e7a30
started work on communicator2
2018-06-10 03:00:01 -05:00
Kevin Froman
77a847a0b7
* fixed addpeer command to work with pow
...
* improved stats screen to show pow token for your key
2018-06-09 01:21:14 -05:00
Kevin Froman
f8657deaa3
work on new block system
2018-06-08 02:47:14 -05:00
Kevin Froman
ee04c6d2bf
work on new block system
2018-06-08 02:46:05 -05:00
Kevin Froman
2703731053
Merge branch 'dev' of github.com:beardog108/onionr into refactoring2
2018-06-08 01:15:47 -05:00
Kevin Froman
8a16c972fd
work on new block system
2018-06-07 03:15:01 -05:00
Arinerron
0ca6480c79
silly me, missing type()
2018-06-06 18:58:40 -07:00
Arinerron
1a6fa19323
Fix 2 DOS vulns, improve Onionr efficiency
2018-06-06 18:54:35 -07:00
Arinerron
9e9595b4ec
Fix header colors
2018-06-04 23:17:17 -07:00
Arinerron
4ec3d037e9
Few misc changes
2018-06-04 22:26:11 -07:00
Arinerron
9c2acb7099
Add createChain and mergeChain
2018-06-04 19:26:04 -07:00
Kevin Froman
a25eca2818
merge import
2018-06-04 15:24:02 -05:00
20esaua
78f77c182d
Update onionrblockapi.py
2018-06-04 09:29:04 -07:00
Kevin Froman
640ce593f0
removed old commented out import
2018-06-02 00:05:46 -05:00
Arinerron
cdb199e74d
Add block "chains" (ex. parent->child mergable blocks)
2018-06-01 00:02:56 -07:00
Arinerron
8846dcc2c6
See details
...
- Completes support for repositories
- `./RUN-LINUX.sh create-repository [plugins...]`
- `./RUN-LINUX.sh add-repository <block hash>`
- `./RUN-LINUX.sh remove-repository <block hash>`
- Fixes several misc bugs
- Refactors code
- Some messy code was rewritten
- Variables renamed
- Migrated old block api (insertBlock) to new Block API (onionrblockapi)
- Kept to standards
- Made code more reusable in `onionrproofs.py`
- Improves logging messages
- Added error output for some features missing it
- Capitalized sentences
- Added punctuation where it is missing
- Switched `logger.info` and `logger.debug` in a few places, where it is logical
- Removed or added timestamps depending on the circumstance
- Added a few misc features
- Added command aliases for `add-file` and `import-blocks`
- Improved statistics menu
- Displays `Known Block Count`
- Calculates and displays `Percent Blocks Signed`
2018-05-31 21:25:28 -07:00
Arinerron
a232e663a7
Change pluginmanager to dependency
2018-05-19 15:52:24 -07:00
Arinerron
a611c7de34
Add tuple of onionr version
2018-05-19 15:27:26 -07:00
Arinerron
e03a47d7f8
Fix resource leaking
2018-05-19 15:22:35 -07:00
Arinerron
0ac27ad0e2
add block tests
2018-05-19 15:21:35 -07:00
Arinerron
007d7ad9fb
Update to new Block API
2018-05-19 15:11:51 -07:00
Kevin Froman
500658808f
Merge I2P Branch ( #19 )
...
* work on i2p support
* work on i2p support
* redid socks check
* redid socks check
* redid socks check
* work on i2p and fixed broken block processing
* fixed no newline delim on block list in api
* fixed no newline delim on block list in api
* fixed no newline delim on block list in api
* use extend instead of append for blocklist after newline changes
2018-05-19 21:32:21 +00:00
Kevin Froman
a38eb667ef
increased allowed pow id size
2018-05-18 23:06:22 -05:00
Kevin Froman
5b2e9f9265
fixed whitelist in setaddressinfo
2018-05-18 16:59:46 -05:00
Kevin Froman
78265990ab
fixed broken getepoch
2018-05-18 16:49:05 -05:00
Kevin Froman
16282d79d3
refactored timers and added lastconnect to address database
2018-05-18 01:22:16 -05:00
Arinerron
c1105c5f0f
Delete core
2018-05-16 11:26:15 -07:00
Arinerron
30f617c83e
Update plugins to use new Block API
2018-05-15 20:08:42 -07:00
Arinerron
3c8cbd2291
Refactor onionrpluginapi
2018-05-15 19:16:33 -07:00
Arinerron
e50659753a
complevit!
2018-05-15 19:12:23 -07:00
Arinerron
9fdb6d8609
Create block API (todo docs)
2018-05-15 18:47:58 -07:00
Arinerron
e95feb06db
Work on block api, finish later
2018-05-14 23:43:29 -07:00
Arinerron
93338e3fb9
Add repository support
2018-05-14 23:16:55 -07:00
Arinerron
bc60b6bfc0
Fix unit tests
2018-05-14 23:16:40 -07:00
Kevin Froman
03eb98fd16
fixed key pow verification
2018-05-15 00:16:00 -05:00
Kevin Froman
d02af9600a
removed btc and stopped delivering pow hash
2018-05-14 23:28:12 -05:00
Kevin Froman
c13a742335
removed btc and stopped delivering pow hash
2018-05-14 23:24:38 -05:00
Kevin Froman
973b8583b6
Fixed index error when checking for pow
2018-05-14 20:10:05 -05:00
Kevin Froman
0f455b50c9
Merge branch 'communicator-multithreading-newline' into communicator-multithreading
2018-05-14 19:45:15 -05:00
Kevin Froman
2e9af7a4a3
fix thread crash
2018-05-14 19:44:54 -05:00
Kevin Froman
361f1e3d54
Merge branch 'communicator-multithreading' of github.com:beardog108/onionr into communicator-multithreading
2018-05-14 11:32:01 -05:00
Kevin Froman
7098103445
small commit before merge
2018-05-14 11:31:55 -05:00
Arinerron
019f13fe8d
Fix bug involving plugin duplicate names
2018-05-13 21:22:28 -07:00
Arinerron
15d0e7c6fd
Fix small bug with description and authors
2018-05-13 21:19:33 -07:00
Arinerron
b1e9e61430
Make pluginmanager functional
2018-05-13 21:11:31 -07:00
Arinerron
f0e842eae4
Fix positional argument bug
2018-05-12 23:37:47 -07:00
Arinerron
f9b93fd491
Add newline delimiter to metadata+content
2018-05-12 20:55:34 -07:00
Arinerron
fe4261c4a2
Various improvements
...
- Adds a lot more to the pluginmanager
- Refactors code
- Relocates functions
2018-05-12 20:45:32 -07:00
Arinerron
adf007bf30
Make progress bar
2018-05-10 22:18:39 -07:00
Arinerron
adc85c76c4
Improve console output and status message
2018-05-10 20:19:48 -07:00
Arinerron
6b9f21fd08
Add color configuration to statistics command
2018-05-10 19:20:14 -07:00
Arinerron
2f7002fc67
Improve statistics command
2018-05-10 19:05:56 -07:00
Kevin Froman
193845104e
onionr can now import blocks from disk
2018-05-10 02:42:24 -05:00
Kevin Froman
5813190cc4
work on pow for public keys
2018-05-07 02:46:07 -05:00
Kevin Froman
d0994b8ef6
work on pow for public keys
2018-05-07 02:40:08 -05:00
Kevin Froman
5af0b5b7a5
Merge branch 'communicator-multithreading' of github.com:beardog108/onionr into communicator-multithreading
2018-05-07 01:55:28 -05:00
Kevin Froman
bc88e8107c
work on pow for public keys
2018-05-07 01:55:03 -05:00
Arinerron
07eb512977
Move default-plugins, debug gui
2018-05-06 16:00:28 -07:00
Kevin Froman
54a3557fd0
hopefully finished pow on blocks
2018-05-05 18:45:35 -05:00
Kevin Froman
9c3416e707
work on proof of work
2018-05-05 18:32:10 -05:00
Kevin Froman
1f8eb925c6
work on proof of work
2018-05-05 17:36:03 -05:00
Kevin Froman
7d9936e55c
work on proof of work
2018-05-05 16:50:15 -05:00
Kevin Froman
268cd10f34
work on proof of work
2018-05-05 15:20:48 -05:00
Kevin Froman
e2cc375b1a
work on proof of work
2018-05-05 15:07:32 -05:00
Kevin Froman
908ccbe664
hopefully fixed everything for new sig format
2018-05-05 03:03:05 -05:00
Kevin Froman
ff5bdd62f2
work on fixing mallable metadata & thread work
2018-05-05 01:19:25 -05:00
Kevin Froman
ab1cce3616
more work on thread logic
2018-05-04 22:39:00 -05:00
Kevin Froman
c3bf73d821
fixed thread crash in highfailurerate check in communicator
2018-05-04 21:09:54 -05:00
Kevin Froman
d8b5127845
improved communicator threading
2018-05-04 21:07:43 -05:00
Kevin Froman
72f104e447
fixed crash in communicator
2018-05-04 14:38:47 -05:00
Kevin Froman
ccea91e260
fixed merge issues
2018-05-04 12:44:35 -05:00
Kevin Froman
56ca0abc63
merge crypto
2018-05-04 12:36:58 -05:00
Arinerron
0af569acff
Move config to static-data
2018-05-04 00:14:27 -07:00
Kevin Froman
26fd456702
work on converting communicator to multithreads
2018-05-03 17:41:12 -05:00
Arinerron
c3d86eafa1
Add direct connection feature and multithreading to events
...
Add direct connection feature and multithreading to events
2018-05-03 03:22:07 +00:00
Kevin Froman
1a02124122
fixed broken shutdown command
2018-05-02 20:14:00 -05:00
Kevin Froman
98dac40139
Merge branch 'crypto' of github.com:beardog108/onionr into crypto
2018-05-02 02:40:35 -05:00
Kevin Froman
6bf8a56979
improved pow
2018-05-02 02:31:33 -05:00
Arinerron
7973d7c8a6
Fix bug involving runcheck
2018-05-01 23:50:29 -07:00
Arinerron
0a7c3aeaab
Improve daemon stopping error handling
2018-05-01 23:35:08 -07:00
Arinerron
cfb1986ad0
Add run check to node introduction function
2018-05-01 23:25:44 -07:00
Arinerron
c144bc40b3
Add status check function
2018-05-01 23:22:40 -07:00
Arinerron
7b7c4e01cb
Add debug info on exceptions
2018-05-01 23:01:20 -07:00
Kevin Froman
7fd9319cfc
changed http server to gevent from flask built in
2018-05-01 02:26:48 -05:00
Kevin Froman
0d9e0c7066
changed http server to gevent from flask built in
2018-05-01 02:25:31 -05:00
Kevin Froman
a7244b2a0a
fixed debug being enabled in web api
2018-05-01 02:01:57 -05:00
Kevin
b82486bff0
Added i2p file
2018-04-30 18:38:34 -05:00
Kevin Froman
c6c819bd28
PMs now disguise sender (needs testing)
2018-04-30 02:38:53 -05:00
Kevin Froman
a376e583e6
fixed missing import in crypto
2018-04-26 21:58:00 -05:00
Kevin Froman
717035a136
fixed missing import in crypto
2018-04-26 21:23:43 -05:00
Kevin Froman
e140e8560f
signed blocks related crashes fixed hopefully, wrong exception
2018-04-26 21:18:17 -05:00
Kevin Froman
5086a839ee
signed blocks related crashes fixed hopefully
2018-04-26 21:14:31 -05:00
Kevin Froman
28e080fe1a
signed blocks related crashes fixed hopefully
2018-04-26 21:08:56 -05:00
Kevin Froman
388b1b6e1f
signed blocks related crashes fixed hopefully
2018-04-26 20:37:48 -05:00
Kevin Froman
ac7bb63225
signed blocks related crashes fixed hopefully
2018-04-26 20:28:39 -05:00
Kevin Froman
8a9d1326fb
signed blocks related crashes fixed hopefully
2018-04-26 20:15:30 -05:00
Kevin Froman
3cba6b30c7
working on issue for hashid being bytes on some versions
2018-04-26 19:04:35 -05:00
Kevin Froman
9f4aef7465
do not encode prev if its already bytes
2018-04-26 15:39:02 -05:00
Kevin Froman
c9b7528db4
more work on block headers, PMs now signed/verified
2018-04-26 14:56:17 -05:00
Kevin Froman
ad56082271
work on new header system
2018-04-26 02:40:39 -05:00
Kevin Froman
acd5494979
fixed wrong var used for peer causing crash
2018-04-25 18:21:43 -05:00
Kevin Froman
c249a42bb7
added addres+pubkey to stats
2018-04-25 18:01:18 -05:00
Kevin Froman
66e55d5a50
efficiency improvements
2018-04-25 17:42:42 -05:00
Kevin Froman
3aa539ce82
added banner
2018-04-25 02:39:13 -05:00
Kevin Froman
c8fce63412
fixed invalid sqlite3
2018-04-25 02:20:10 -05:00
Kevin Froman
b0271e7779
removed secrets
2018-04-25 02:09:28 -05:00
Kevin Froman
1e32446f2a
fixed self issue
2018-04-25 01:56:40 -05:00
Kevin Froman
6b9d4f8fc6
work on new block metadata format and some small bug fixes
2018-04-24 23:04:12 -05:00
Kevin Froman
bbd881785d
More than halved time to keep invalid blocks during development
2018-04-23 01:46:05 -05:00
Kevin Froman
686e30f1ba
do not re merge ignored hash
2018-04-23 01:14:49 -05:00
Kevin Froman
0db21e2c32
onionr now removes and ignores blocks it cant get after a long time, added removeblock function
2018-04-23 01:03:10 -05:00
Arinerron
db2babac29
Fix this GUI bug once and for all
2018-04-22 21:54:51 -07:00
Arinerron
4052a91f35
Merge branch 'crypto' of https://github.com/beardog108/Onionr into crypto
2018-04-22 21:50:17 -07:00
Arinerron
4afe7e45c3
suppress tkinter
2018-04-22 21:50:07 -07:00
Kevin Froman
2dfe735aad
fixed arinerrons bootstrap address
2018-04-22 23:49:48 -05:00
Kevin Froman
f4da15c2f4
fixed arinerrons bootstrap address
2018-04-22 23:48:43 -05:00
Arinerron
3f6f981847
Change bootstrap node list
2018-04-22 21:47:14 -07:00
Arinerron
0d23d176ce
Move tkinter requirement to openGUI function
2018-04-22 21:42:34 -07:00
Arinerron
e820cc65ac
Fix bug involving removing enabled plugins
2018-04-22 21:25:54 -07:00
Kevin Froman
3e8d76e246
fixed exception caused by probably check for missing block
2018-04-22 23:17:16 -05:00
Arinerron
0dc6a0b6c5
Refactor code
2018-04-22 20:49:53 -07:00
Arinerron
a5dbf73df4
Simple fix for GUI plugin
2018-04-22 20:45:25 -07:00
Arinerron
36d9ebd4f1
Merge branch 'crypto' of https://github.com/beardog108/Onionr into crypto
2018-04-22 20:42:50 -07:00
Arinerron
654703d902
Start working on plugin manager
2018-04-22 20:42:37 -07:00
Kevin Froman
8300cd1c91
fixed messed up gethostname()
2018-04-22 22:20:52 -05:00
Kevin Froman
62737ea2c1
added bootstrap node and removed debug message
2018-04-22 22:15:20 -05:00
Kevin Froman
583480629a
hopefully working again, hopefully less block validation issues
2018-04-22 21:58:24 -05:00
Kevin Froman
c807056ef2
convert data to bytes if it isnt
2018-04-22 21:24:34 -05:00
Kevin Froman
7578ac874b
now only show block contents debug if txt
2018-04-22 21:19:57 -05:00
Kevin Froman
8853926287
bumped api version and removed encode on setdata since it is always bytes now
2018-04-22 21:16:11 -05:00
Kevin Froman
ae79b7ee3a
fixed stupid mistake
2018-04-22 21:13:55 -05:00
Kevin Froman
d41f86a27a
what
2018-04-22 21:10:09 -05:00