summary refs log tree commit diff
Commit message (Expand)AuthorAgeFilesLines
* SYN-153: Fix formatting of federation error messageMark Haines2014-11-201-1/+1
* Fix tests from prev commitErik Johnston2014-11-191-1/+0
* Don't add a 'prev' key to m.room.member messagesErik Johnston2014-11-192-4/+0
* Initialise UserPresenceCache instances to always contain a 'presence' keyPaul "LeoNerd" Evans2014-11-192-6/+10
* Fix backfill requestErik Johnston2014-11-191-1/+1
* Only users can set state events which have their own user_idErik Johnston2014-11-191-0/+20
* Sometimes there isn't a current logging contextMark Haines2014-11-191-1/+1
* SYN-153: Raise 404 if room alias is not foundMark Haines2014-11-191-4/+8
* remove demo webserver since synapse serves up the webclient itselfMark Haines2014-11-191-3/+0
* remove unused importMark Haines2014-11-191-1/+1
* replace user_id with senderMark Haines2014-11-194-2/+11
* Preserve logging context in a few more places, drop the logging context after...Mark Haines2014-11-194-22/+37
* SYN-141: Encode query params as UTF-8.Mark Haines2014-11-181-1/+7
* more README fixesMatthew Hodgson2014-11-181-1/+3
* SYN-144: Remove bad keys from pdu json objects, convert age_ts to ageMark Haines2014-11-182-15/+29
* Remember also to UTF-8 decode bytes in room alias names in directory server URLsPaul "LeoNerd" Evans2014-11-181-3/+9
* Remember to URL decode the room_id in room initialSyncPaul "LeoNerd" Evans2014-11-181-1/+1
* SYN-141: Decode the query params as UTF-8Mark Haines2014-11-181-1/+2
* Remove unused variableMark Haines2014-11-181-1/+1
* SYN-104: When going backwards the end token should be before the last eventMark Haines2014-11-181-0/+3
* Merge pull request #17 from matrix-org/room-initial-syncPaul Evans2014-11-184-26/+175
|\
| * Ensure to parse a real pagination config object out of room initialSync reque...Paul "LeoNerd" Evans2014-11-181-2/+4
| * Rename message handler's new snapshot_room to room_initial_sync() as that bet...Paul "LeoNerd" Evans2014-11-182-2/+2
| * Merge remote-tracking branch 'origin/develop' into room-initial-syncPaul "LeoNerd" Evans2014-11-188-167/+209
| |\
| * | Include room members' presence in room initialSyncPaul "LeoNerd" Evans2014-11-182-1/+36
| * | Added ability to .get_state() from the PresenceHandler by returning a complet...Paul "LeoNerd" Evans2014-11-181-2/+15
| * | Don't expect all _user_cachemap entries to definitely contain a "last_active"...Paul "LeoNerd" Evans2014-11-181-3/+3
| * | Include 'messages' snapshot in room initialSyncPaul "LeoNerd" Evans2014-11-182-1/+24
| * | Merge branch 'develop' into room-initial-syncPaul "LeoNerd" Evans2014-11-17197-66999/+4442
| |\ \
| * | | Include room membership in room initialSyncPaul "LeoNerd" Evans2014-11-102-1/+8
| * | | Put room state in room initialSync output - I guess this is right; I really c...Paul "LeoNerd" Evans2014-11-102-2/+40
| * | | Have room initialSync return the room's room_idPaul "LeoNerd" Evans2014-11-103-21/+19
| * | | Initial (empty) test that room initialSync at least returns 200 OKPaul "LeoNerd" Evans2014-11-101-0/+53
* | | | Revert accidental commit of bad fileErik Johnston2014-11-181-37/+24
| |_|/ |/| |
* | | Null check when determining default power levelsMark Haines2014-11-181-1/+2
* | | SYN-149: Enable auth for events added during room creation since they should ...Mark Haines2014-11-181-1/+1
* | | Fix auth to correctly handle initial creation of roomsErik Johnston2014-11-182-27/+58
* | | SYN-149: Send join event immediately after the room create eventMark Haines2014-11-183-26/+31
* | | Split out sending the room alias events from creating the alias so that we ca...Mark Haines2014-11-184-27/+31
* | | warn about memoryMatthew Hodgson2014-11-171-0/+7
* | | update the README.rst to reflect the develop branchMatthew Hodgson2014-11-171-73/+40
* | | Stop before starting when restartingMark Haines2014-11-171-1/+1
* | | yet another installation gotchaMatthew Hodgson2014-11-171-7/+13
* | | Merge branch 'develop' of git+ssh://github.com/matrix-org/synapse into developMatthew Hodgson2014-11-172-9/+10
|\ \ \ | | |/ | |/|
| * | SYN-148: Add the alias after creating the roomMark Haines2014-11-171-9/+9
| * | Mark synapse as not zip-safe since it needs to be able to read schema files f...Mark Haines2014-11-171-0/+1
* | | clarify install instructions further stillMatthew Hodgson2014-11-171-17/+38
|/ /
* | Remove syweb directory. pull in syweb as a dependency from githubMark Haines2014-11-1792-50658/+4
* | SYWEB-152: Remove room join logic from RoomController and put it in eventHand...Kegan Dougal2014-11-172-145/+101
* | Add clearRooms() to wipe data when you logout.Kegan Dougal2014-11-173-16/+29
* | These lines aren't doing anythingMark Haines2014-11-171-5/+0
* | Merge pull request #14 from matrix-org/merge_pdu_event_objectsErik Johnston2014-11-1710-212/+91
|\ \
| * \ Merge remote-tracking branch 'origin/develop' into merge_pdu_event_objectsMark Haines2014-11-1718-251/+483
| |\ \ | |/ / |/| |
* | | Move getLastMessage to modelService.Kegan Dougal2014-11-175-31/+31
* | | s/eventHandlerService.getUsersCountInRoom/modelService.getUserCountInRoom/gKegan Dougal2014-11-175-65/+61
* | | do *not* depend on external websites to host our JS - if nothing else, it mak...Matthew Hodgson2014-11-152-6/+201
* | | docMatthew Hodgson2014-11-151-3/+3
* | | merge in msg.__room_member usage to new message display templateMatthew Hodgson2014-11-157-135/+182
* | | improve notif setting textMatthew Hodgson2014-11-151-1/+1
* | | spell useCaptcha right...Matthew Hodgson2014-11-151-1/+1
* | | do not use captcha by defaultMatthew Hodgson2014-11-151-11/+5
| * | Merge PDUs and Events into one objectMark Haines2014-11-1410-212/+91
|/ /
* | Fix PDU and event signaturesMark Haines2014-11-144-6/+16
* | Validate signatures on incoming eventsMark Haines2014-11-143-7/+52
* | Add event-stream-service unit tests.Kegan Dougal2014-11-142-0/+84
* | Unbreak tab complete...Kegan Dougal2014-11-141-5/+6
* | Add more modelService unit tests.Kegan Dougal2014-11-141-0/+132
* | Move getUserPowerLevel to modelService.Kegan Dougal2014-11-145-71/+58
* | Fix bug which caused notifications to appear for old messages.Kegan Dougal2014-11-142-9/+9
* | Tidy up room.html member list to use member again, now that scope.members is ...Kegan Dougal2014-11-141-6/+6
* | Add extra checks to duration filter.Kegan Dougal2014-11-142-0/+8
* | Actually look for last_active_ago in the right place..Kegan Dougal2014-11-143-70/+140
* | Remove scope.members from RoomController and use modelService instead. This m...Kegan Dougal2014-11-145-225/+237
* | Be more helpful and tell the user how to generate a config too.David Baker2014-11-141-1/+4
* | Adding --generate-config will not help if the user has not specified a config...David Baker2014-11-141-1/+1
* | Use modelService for getting current presence state rather than RoomControlle...Kegan Dougal2014-11-142-2/+23
* | Merge pull request #13 from matrix-org/request_loggingErik Johnston2014-11-1410-51/+247
|\ \
| * \ Merge branch 'develop' into request_loggingMark Haines2014-11-14208-19392/+8818
| |\ \
| * | | Remove unused 'context' variables to appease pyflakesMark Haines2014-10-301-2/+2
| * | | Merge branch 'develop' into request_loggingMark Haines2014-10-3046-199/+391
| |\ \ \
| * | | | Pep8 and a few doc stringsMark Haines2014-10-302-17/+40
| * | | | Add a request-id to each log lineMark Haines2014-10-3011-31/+205
* | | | | Use modelService to access room member power levels rather than RoomController.Kegan Dougal2014-11-143-48/+4
* | | | | Use mUserDisplayName filter in more places. Store power_level[norm] for each ...Kegan Dougal2014-11-142-17/+26
| |_|/ / |/| | |
* | | | Add notification-service unit tests.Kegan Dougal2014-11-141-0/+78
* | | | Add mUserDisplayName unit tests.Kegan Dougal2014-11-141-0/+141
* | | | Unskip unit tests; fix filter dependency.Kegan Dougal2014-11-141-12/+18
* | | | Remove getUserDisplayName and move that logic the filter mUserDisplayName. Up...Kegan Dougal2014-11-133-90/+76
* | | | Remove rootScope.presence and replaced with modelService.getUser/setUser.Kegan Dougal2014-11-133-13/+23
* | | | SYWEB-152: Move up/down history fully to a directive.Kegan Dougal2014-11-133-94/+101
* | | | SYN-103: Remove "origin" and "destination" keys from edusMark Haines2014-11-134-14/+4
* | | | Migrate random bits of desktop notification logic out of roomController and i...Kegan Dougal2014-11-132-32/+33
* | | | remove stray unmatched css commentDavid Baker2014-11-131-1/+1
* | | | remove now-unused stylesDavid Baker2014-11-131-12/+0
* | | | SYN-138: Rewrite synctl in python and include it in the python distributionMark Haines2014-11-133-35/+67
* | | | Merge with Matthew's killing of ng-animateDavid Baker2014-11-137-174/+329
|\ \ \ \
| * | | | Add commands-service unit tests.Kegan Dougal2014-11-131-0/+143
| * | | | remove nganimate dependency as it seems to feature disproportionately highly ...Matthew Hodgson2014-11-133-4/+7
| * | | | Wipe the selected room ID on the home screen.Kegan Dougal2014-11-131-2/+4
| * | | | SYWEB-152: Unbreak /meKegan Dougal2014-11-131-2/+6
| * | | | SYWEB-152: Migrate IRC command logic to commands-service.Kegan Dougal2014-11-134-168/+180
* | | | | Kill ng-animate with fire because it's terrible (was causing the page to be v...David Baker2014-11-136-9/+15
|/ / / /
* | | | This gives just enough space for the vertical scrollbar to be shown without a...David Baker2014-11-131-1/+1
* | | | suggest ~/.synapseMatthew Hodgson2014-11-131-3/+5
* | | | Merge branch 'develop' of git+ssh://github.com/matrix-org/synapse into developMatthew Hodgson2014-11-1322-112/+516
|\ \ \ \
| * | | | Detect OpenWebRTC and add workarounds, but comment out the turn server remova...David Baker2014-11-121-2/+16
| * | | | Oops, change videoElement / selector in audio call too.David Baker2014-11-121-1/+1
| * | | | Fix ability to invite users. Remove unused variables.Kegan Dougal2014-11-122-27/+17
| * | | | Store all signatures on events rather than just dropping themErik Johnston2014-11-124-21/+31
| * | | | Add more recents service unit tests.Kegan Dougal2014-11-121-0/+38
| * | | | Add test coverage to the webclient. Update .gitignoreKegan Dougal2014-11-123-3/+18
| * | | | Add a few more comments to the federation handlerErik Johnston2014-11-121-0/+32
| * | | | Update some of the docs in event_federationErik Johnston2014-11-121-11/+20
| * | | | Make earlier versions of jasmine happy by doing explicit object comparisonsKegan Dougal2014-11-121-1/+2
| * | | | Add recentsService unit tests.Kegan Dougal2014-11-121-0/+114
| * | | | comment typoDavid Baker2014-11-121-1/+1
| * | | | SYWEB-57: Highlight rooms which have had their bingers go off in blue.Kegan Dougal2014-11-125-7/+50
| * | | | Migrate unread messages logic to recentsService.Kegan Dougal2014-11-122-21/+36
| * | | | Add recents-service to store shared state between recents-controllers.Kegan Dougal2014-11-125-9/+65
| * | | | Document StateStore and use transactionsErik Johnston2014-11-121-28/+56
| * | | | Add indices to state group tablesErik Johnston2014-11-121-0/+13
| * | | | SYWEB-57: Highlight rooms where the history has changed.Kegan Dougal2014-11-124-7/+33
* | | | | various fixes based on truphone feedbackMatthew Hodgson2014-11-121-4/+17
|/ / / /
* | | | Remove getRoomAliasAndDisplayName: room name logic is in mRoomName filter, an...Kegan Dougal2014-11-122-40/+10
* | | | SYWEB-140: Redact button layout.Kegan Dougal2014-11-123-2/+11
* | | | Fix pyflake warnings and add a FIXME comment to deal with auth_chains receive...Erik Johnston2014-11-121-3/+6
* | | | Fix bugs with invites/joins across federatiom.Erik Johnston2014-11-127-39/+54
* | | | SYWEB-146: Fix room ID leaking on recents page when the name of the room is j...Kegan Dougal2014-11-122-3/+8
* | | | Move room alias/id mapping logic from matrixService to modelService.Kegan Dougal2014-11-127-74/+72
* | | | move model/ into matrix-doc/draftsMatthew Hodgson2014-11-126-940/+0
* | | | this got merged into matrix-doc/specification/00_basis.rst by someoneMatthew Hodgson2014-11-121-86/+0
* | | | move OLD_specification into matrix-doc/draftsMatthew Hodgson2014-11-121-1283/+0
* | | | vestigial readme for sphinxMatthew Hodgson2014-11-121-0/+1
* | | | hide crap from gitignoreMatthew Hodgson2014-11-121-0/+9
* | | | move swagger impl to matrix-docMatthew Hodgson2014-11-1217-10718/+0
* | | | move stuff out of implementation-notes - /everything/ here should be implemen...Matthew Hodgson2014-11-123-0/+0
* | | | typoMatthew Hodgson2014-11-121-1/+1
* | | | this is ancient and has been moved to matrix-doc/drafts/federated_versioning_...Matthew Hodgson2014-11-121-11/+0
* | | | haven't i already moved you to matrix-doc twice? :/Matthew Hodgson2014-11-121-151/+0
* | | | this is obsolete and lives in matrix-doc in specification/30_server_server_ap...Matthew Hodgson2014-11-121-59/+0
* | | | this has been merged into matrix-doc/specification/30_server_server_api.rstMatthew Hodgson2014-11-121-231/+0
* | | | PEP8ifyErik Johnston2014-11-111-9/+12
* | | | Only allow people in a room to look up room state.Erik Johnston2014-11-112-42/+12
* | | | synapse.state docs.Erik Johnston2014-11-111-0/+35
* | | | Rename annotate_state_groups to annotate_event_with_stateErik Johnston2014-11-116-22/+22
* | | | Merge pull request #12 from matrix-org/federation_authorizationMark Haines2014-11-1171-3913/+3774
|\ \ \ \
| * | | | Fix bugs which broke federation due to changes in function signatures.Erik Johnston2014-11-112-3/+3
| * | | | Fix state testsErik Johnston2014-11-111-517/+176
| * | | | Fix bug where we /always/ created a new state groupErik Johnston2014-11-113-31/+42
| * | | | Fix validation testsErik Johnston2014-11-111-12/+43
| * | | | Fix typo in validatorErik Johnston2014-11-111-2/+8
| * | | | Fix rest.test_roomsErik Johnston2014-11-111-90/+113
| * | | | Add EventValidator moduleErik Johnston2014-11-111-0/+81
| * | | | Add an EventValidator. Fix bugs in auth ++ storageErik Johnston2014-11-109-90/+64
| * | | | Fix rest.test_events. Convert to use SQLiteMemoryDbPoolErik Johnston2014-11-101-10/+5
| * | | | Fix SQLBaseStoreTestCaseErik Johnston2014-11-101-1/+1
| * | | | Fix stream test.Erik Johnston2014-11-101-5/+12
| * | | | Fix room_member storage testErik Johnston2014-11-101-0/+2
| * | | | Fix redaction storage testErik Johnston2014-11-101-0/+4
| * | | | Fix regression where we did not return redacted events.Erik Johnston2014-11-101-1/+2
| * | | | Fix room handler testErik Johnston2014-11-101-15/+40
| * | | | PEP8Erik Johnston2014-11-108-20/+22
| * | | | Remove useless commentsErik Johnston2014-11-101-23/+0
| * | | | Add auth to the various server-server APIsErik Johnston2014-11-103-9/+23
| * | | | Fix backfill to work. Add auth to backfill requestErik Johnston2014-11-106-18/+56
| * | | | Notify users about invites.Erik Johnston2014-11-103-10/+14
| * | | | Fix invite authErik Johnston2014-11-101-3/+5
| * | | | Tidy up some of the unused sql tablesErik Johnston2014-11-104-109/+9
| * | | | Finish redaction algorithm.Erik Johnston2014-11-105-25/+33
| * | | | Use current state to get room hosts, rather than querying the databaseErik Johnston2014-11-072-7/+32
| * | | | Add '/event_auth/' federation apiErik Johnston2014-11-074-7/+55
| * | | | Implement invite part of invite join danceErik Johnston2014-11-074-22/+75
| * | | | Remove /context/ requestErik Johnston2014-11-072-16/+0
| * | | | Add hash of current state to eventsErik Johnston2014-11-072-1/+11
| * | | | Return auth chain when handling send_joinErik Johnston2014-11-072-8/+27
| * | | | Fix bug in _get_auth_chain_txnErik Johnston2014-11-071-14/+11
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho...Erik Johnston2014-11-0787-744/+2155
| |\ \ \ \
| * | | | | Fix joining over federationErik Johnston2014-11-075-56/+55
| * | | | | Implement method to get auth_chain from a given event_idErik Johnston2014-11-071-0/+35
| * | | | | Start implementing auth chainsErik Johnston2014-11-078-6/+115
| * | | | | Neaten things up a bitErik Johnston2014-11-071-5/+2
| * | | | | Don't query the DB for user power levelsErik Johnston2014-11-071-10/+16
| * | | | | Amalgamate all power levels.Erik Johnston2014-11-068-395/+102
| * | | | | Update to use replaces_state rather than prev_stateErik Johnston2014-11-061-2/+4
| * | | | | Don't send prev_state to clients anymoreErik Johnston2014-11-061-1/+1
| * | | | | Implement new replace_state and changed prev_stateErik Johnston2014-11-0613-128/+220
| * | | | | Fix a couple more storage testsErik Johnston2014-11-052-16/+32
| * | | | | Remove stale testsErik Johnston2014-11-051-2/+2
| * | | | | Fix redaction storage testErik Johnston2014-11-051-0/+12
| * | | | | Get correct prev_eventsErik Johnston2014-11-052-15/+26
| * | | | | Fix typing testsErik Johnston2014-11-051-0/+1
| * | | | | Fix room testsErik Johnston2014-11-051-6/+0
| * | | | | Fix profile testsErik Johnston2014-11-051-1/+5
| * | | | | Fix presencelike testErik Johnston2014-11-051-1/+5
| * | | | | Don't execute empty tests. Formatting.Erik Johnston2014-11-051-17/+28
| * | | | | Fix presence testErik Johnston2014-11-051-0/+1
| * | | | | Fix Federation testErik Johnston2014-11-051-1/+1
| * | | | | Fix auth checks to all use the given old_event_stateErik Johnston2014-11-054-34/+54
| * | | | | PEP8Erik Johnston2014-11-041-4/+4
| * | | | | Fix room handler testsErik Johnston2014-11-042-128/+19
| * | | | | Fix federation handler tests. I've removed the invite/join dance ones as they...Erik Johnston2014-11-041-57/+27
| * | | | | Don't bother lockingErik Johnston2014-11-041-6/+5
| * | | | | PEP8Erik Johnston2014-11-041-1/+3
| * | | | | Fix tests.handlers.test_directoryErik Johnston2014-11-041-2/+5
| * | | | | event <-> pdu mappings are now trivial and will soon be scrappedErik Johnston2014-11-041-167/+0
| * | | | | Fix up federation testsErik Johnston2014-11-041-114/+124
| * | | | | Fix bug in replicationErik Johnston2014-11-041-1/+1
| * | | | | On AuthError, raise a FederationErrorErik Johnston2014-11-041-1/+9
| * | | | | Move FederationError to synapse.api.errorsErik Johnston2014-11-042-34/+34
| * | | | | PEP8Erik Johnston2014-11-041-4/+13
| * | | | | Add support for sending failuresErik Johnston2014-11-043-2/+63
| * | | | | Remove unused interfaceErik Johnston2014-11-041-8/+0
| * | | | | Remove unused importsErik Johnston2014-11-045-13/+2
| * | | | | Fix bugs in generating event signatures and hashingErik Johnston2014-11-036-88/+50
| * | | | | Merge branch 'event_signing' of github.com:matrix-org/synapse into federation...Erik Johnston2014-11-032-0/+117
| |\ \ \ \ \
| | * | | | | Script for checking event hashesMark Haines2014-11-031-0/+43
| | * | | | | handle server names with embeded portsMark Haines2014-11-031-0/+4
| | * | | | | script for checking signatures on signed jsonMark Haines2014-11-031-0/+70
| | * | | | | Merge branch 'develop' into event_signingMark Haines2014-10-2710-20/+9277
| | |\ \ \ \ \
| * | | | | | | Add option to not bind to HTTPS port. This is useful if running behind an ssl...Erik Johnston2014-11-033-2/+8
| * | | | | | | Rename PDU fields to match that of events.Erik Johnston2014-11-036-316/+80
| * | | | | | | For now, don't store txn -> pdu mappings.Erik Johnston2014-11-032-5/+3
| * | | | | | | FormattingErik Johnston2014-11-031-1/+4
| * | | | | | | Sign events we create.Erik Johnston2014-11-031-0/+9
| * | | | | | | Add 'origin' key to eventsErik Johnston2014-11-031-0/+4
| * | | | | | | Don't assume event has hashes key alreadyErik Johnston2014-11-031-0/+2
| * | | | | | | Remove dead code.Erik Johnston2014-11-031-84/+0
| * | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho...Erik Johnston2014-11-0310-101/+172
| |\ \ \ \ \ \ \
| * | | | | | | | Sign evnetsErik Johnston2014-10-312-0/+26
| * | | | | | | | Remove unused signature storage methodsErik Johnston2014-10-311-138/+1
| * | | | | | | | Remove unused sql file.Erik Johnston2014-10-311-31/+0
| * | | | | | | | Make prev_event signing work again.Erik Johnston2014-10-313-8/+18
| * | | | | | | | Remove more references to dead PDU tablesErik Johnston2014-10-314-94/+8
| * | | | | | | | Remove PDU tables.Erik Johnston2014-10-316-1230/+2
| * | | | | | | | Remove unused functions.Erik Johnston2014-10-311-90/+0
| * | | | | | | | Actually don't store any PDUsErik Johnston2014-10-313-14/+42
| * | | | | | | | old_state_events should be a dict not listErik Johnston2014-10-311-2/+4
| * | | | | | | | Don't store any PDUsErik Johnston2014-10-312-32/+33
| * | | | | | | | Move the impl of backfill to use events.Erik Johnston2014-10-313-5/+114
| * | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho...Erik Johnston2014-10-318-23/+356
| |\ \ \ \ \ \ \ \
| * | | | | | | | | Fix bug in redaction auth.Erik Johnston2014-10-311-2/+2
| * | | | | | | | | Convert event ids to be of the form :example.comErik Johnston2014-10-306-28/+54
| * | | | | | | | | Make federation return the old current state, so that we can use it to do authErik Johnston2014-10-302-10/+32
| * | | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho...Erik Johnston2014-10-3055-205/+9733
| |\ \ \ \ \ \ \ \ \
| * | | | | | | | | | Fix SQL so that accepts we may want to persist events twice.Erik Johnston2014-10-302-25/+47
| * | | | | | | | | | Add a run_on_reactor functionErik Johnston2014-10-291-0/+7
| * | | | | | | | | | Start filling out and using new events tablesErik Johnston2014-10-298-93/+159
| * | | | | | | | | | Don't reference PDU when persisting eventErik Johnston2014-10-282-4/+5
| * | | | | | | | | | Begin implementing all the PDU storage stuff in Events landErik Johnston2014-10-289-42/+485
| * | | | | | | | | | Add transaction level logging and timing information. Add a _simple_delete me...Erik Johnston2014-10-289-21/+91