diff --git a/src/components/structures/LeftPanel.js b/src/components/structures/LeftPanel.js
index c80c4818..7115685f 100644
--- a/src/components/structures/LeftPanel.js
+++ b/src/components/structures/LeftPanel.js
@@ -40,7 +40,7 @@ var LeftPanel = React.createClass({
 
     componentWillReceiveProps: function(newProps) {
         this._recheckCallElement(newProps.selectedRoom);
-    },    
+    },
 
     componentWillUnmount: function() {
         dis.unregister(this.dispatcherRef);
@@ -95,7 +95,7 @@ var LeftPanel = React.createClass({
         }
         else {
             // Hide the collapse button until we work out how to display it in the new skin
-            // collapseButton = <img className="mx_LeftPanel_hideButton" onClick={ this.onHideClick } src="img/hide.png" width="12" height="20" alt="<"/>   
+            // collapseButton = <img className="mx_LeftPanel_hideButton" onClick={ this.onHideClick } src="img/hide.png" width="12" height="20" alt="<"/>
         }
 
         var callPreview;
diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js
index dc4f606c..013ccfb3 100644
--- a/src/components/structures/RightPanel.js
+++ b/src/components/structures/RightPanel.js
@@ -38,7 +38,7 @@ module.exports = React.createClass({
     },
 
     componentWillUnmount: function() {
-        dis.unregister(this.dispatcherRef);        
+        dis.unregister(this.dispatcherRef);
         if (MatrixClientPeg.get()) {
             MatrixClientPeg.get().removeListener("RoomState.members", this.onRoomStateMember);
         }
diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js
index f0b20e3f..25489d74 100644
--- a/src/components/structures/RoomDirectory.js
+++ b/src/components/structures/RoomDirectory.js
@@ -47,7 +47,7 @@ module.exports = React.createClass({
         var self = this;
         MatrixClientPeg.get().publicRooms(function (err, data) {
             if (err) {
-                self.setState({ loading: false });                
+                self.setState({ loading: false });
                 console.error("Failed to get publicRooms: %s", JSON.stringify(err));
                 var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
                 Modal.createDialog(ErrorDialog, {
@@ -124,7 +124,7 @@ module.exports = React.createClass({
                     <div className="mx_RoomDirectory_perm">Guests can join</div>
                 );
             }
-            
+
             perms = null;
             if (guestRead || guestJoin) {
                 perms = <div className="mx_RoomDirectory_perms">{guestRead} {guestJoin}</div>;
@@ -169,7 +169,7 @@ module.exports = React.createClass({
 
     render: function() {
         if (this.state.loading) {
-            var Loader = sdk.getComponent("elements.Spinner");            
+            var Loader = sdk.getComponent("elements.Spinner");
             return (
                 <div className="mx_RoomDirectory">
                     <Loader />
diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js
index 2eeec2a6..0b96ed18 100644
--- a/src/components/structures/RoomSubList.js
+++ b/src/components/structures/RoomSubList.js
@@ -187,15 +187,15 @@ var RoomSubList = React.createClass({
         var rooms = this.state.sortedList;
         if (found.room) {
             rooms.splice(found.index, 1);
-        }        
+        }
         else {
             console.warn("Can't remove room " + room.roomId + " - can't find it");
         }
         this.setState({ sortedList: rooms });
     },
 
-    findRoomTile: function(room) {        
-        var index = this.state.sortedList.indexOf(room); 
+    findRoomTile: function(room) {
+        var index = this.state.sortedList.indexOf(room);
         if (index >= 0) {
             // console.log("found: room: " + room.roomId + " with index " + index);
         }
@@ -210,7 +210,7 @@ var RoomSubList = React.createClass({
     },
 
     calcManualOrderTagData: function(room) {
-        var index = this.state.sortedList.indexOf(room); 
+        var index = this.state.sortedList.indexOf(room);
 
         // we sort rooms by the lexicographic ordering of the 'order' metadata on their tags.
         // for convenience, we calculate this for now a floating point number between 0.0 and 1.0.
@@ -274,7 +274,7 @@ var RoomSubList = React.createClass({
     },
 
     _getHeaderJsx: function() {
-        var TintableSvg = sdk.getComponent("elements.TintableSvg");        
+        var TintableSvg = sdk.getComponent("elements.TintableSvg");
         return (
             <h2 onClick={ this.onClick } className="mx_RoomSubList_label">
                 { this.props.collapsed ? '' : this.props.label }
@@ -332,7 +332,7 @@ var RoomSubList = React.createClass({
             }
             else {
                 subList = <TruncatedList className={ classes }>
-                          </TruncatedList>;                
+                          </TruncatedList>;
             }
 
             return connectDropTarget(
@@ -356,7 +356,7 @@ var RoomSubList = React.createClass({
 
 // Export the wrapped version, inlining the 'collect' functions
 // to more closely resemble the ES7
-module.exports = 
+module.exports =
 DropTarget('RoomTile', roomListTarget, function(connect) {
     return {
         connectDropTarget: connect.dropTarget(),
diff --git a/src/components/structures/ViewSource.js b/src/components/structures/ViewSource.js
index 179f7553..1dbc5319 100644
--- a/src/components/structures/ViewSource.js
+++ b/src/components/structures/ViewSource.js
@@ -40,7 +40,7 @@ module.exports = React.createClass({
             this.props.onFinished();
         }
     },
-    
+
     render: function() {
         return (
             <div className="mx_ViewSource">
diff --git a/src/components/views/globals/GuestWarningBar.js b/src/components/views/globals/GuestWarningBar.js
index dcd92806..bd00aaff 100644
--- a/src/components/views/globals/GuestWarningBar.js
+++ b/src/components/views/globals/GuestWarningBar.js
@@ -23,7 +23,7 @@ module.exports = React.createClass({
     onRegisterClicked: function() {
         dis.dispatch({'action': 'start_upgrade_registration'});
     },
- 
+
     onLoginClicked: function() {
         dis.dispatch({'action': 'logout'});
         dis.dispatch({'action': 'start_login'});
diff --git a/src/components/views/rooms/RoomDNDView.js b/src/components/views/rooms/RoomDNDView.js
index e5c8fb33..e06af69e 100644
--- a/src/components/views/rooms/RoomDNDView.js
+++ b/src/components/views/rooms/RoomDNDView.js
@@ -38,7 +38,7 @@ var roomTileSource = {
         // Return the data describing the dragged item
         var item = {
             room: props.room,
-            originalList: props.roomSubList,            
+            originalList: props.roomSubList,
             originalIndex: props.roomSubList.findRoomTile(props.room).index,
             targetList: props.roomSubList, // at first target is same as original
             // lastTargetRoom: null,
@@ -145,10 +145,10 @@ var roomTileTarget = {
                 // shuffle the list to add our tile to that position.
                 props.roomSubList.moveRoomTile(item.room, roomTile.index);
             }
-            
+
             // stop us from flickering between our droptarget and the previous room.
             // whenever the cursor changes direction we have to reset the flicker-damping.
-/*            
+/*
             var yDelta = off.y - item.lastYOffset;
 
             if ((yDelta > 0 && item.lastYDelta < 0) ||
@@ -168,7 +168,7 @@ var roomTileTarget = {
 
             if (yDelta) item.lastYDelta = yDelta;
             item.lastYOffset = off.y;
-*/            
+*/
         }
         else if (switchedTarget) {
             if (!props.roomSubList.findRoomTile(item.room).room) {
@@ -183,7 +183,7 @@ var roomTileTarget = {
 
 // Export the wrapped version, inlining the 'collect' functions
 // to more closely resemble the ES7
-module.exports = 
+module.exports =
 DropTarget('RoomTile', roomTileTarget, function(connect, monitor) {
     return {
         // Call this function inside render()
diff --git a/src/components/views/rooms/RoomTooltip.js b/src/components/views/rooms/RoomTooltip.js
index e3cbc6ec..fbe2fa56 100644
--- a/src/components/views/rooms/RoomTooltip.js
+++ b/src/components/views/rooms/RoomTooltip.js
@@ -34,7 +34,7 @@ module.exports = React.createClass({
             });
         }
         else {
-            tooltip.style.top = tooltip.parentElement.getBoundingClientRect().top + "px"; 
+            tooltip.style.top = tooltip.parentElement.getBoundingClientRect().top + "px";
             tooltip.style.display = "block";
         }
     },
diff --git a/src/components/views/rooms/SearchBar.js b/src/components/views/rooms/SearchBar.js
index 955b4c51..99e77064 100644
--- a/src/components/views/rooms/SearchBar.js
+++ b/src/components/views/rooms/SearchBar.js
@@ -50,7 +50,7 @@ module.exports = React.createClass({
     onSearch: function() {
         this.props.onSearch(this.refs.search_term.value, this.state.scope);
     },
-    
+
     render: function() {
         var searchButtonClasses = classNames({ mx_SearchBar_searchButton : true, mx_SearchBar_searching: this.props.searchInProgress });
         var thisRoomClasses = classNames({ mx_SearchBar_button : true, mx_SearchBar_unselected : this.state.scope !== 'Room' });
diff --git a/src/components/views/settings/Notifications.js b/src/components/views/settings/Notifications.js
index afbd57b6..c098775e 100644
--- a/src/components/views/settings/Notifications.js
+++ b/src/components/views/settings/Notifications.js
@@ -120,7 +120,7 @@ var ACTION_DISABLED = null;
  */
 var VectorPushRulesDefinitions = {
 
-     // Messages containing user's display name 
+     // Messages containing user's display name
      // (skip contains_user_name which is too geeky)
      ".m.rule.contains_display_name": {
         kind: "underride",
@@ -225,7 +225,7 @@ module.exports = React.createClass({
         DISPLAY: "DISPLAY", // The component is ready and display data
         ERROR: "ERROR"      // There was an error
     },
-    
+
     getInitialState: function() {
         return {
             phase: this.phases.LOADING,
@@ -239,11 +239,11 @@ module.exports = React.createClass({
             externalContentRules: []        // Keyword push rules that have been defined outside Vector UI
         };
     },
-    
+
     componentWillMount: function() {
         this._refreshFromServer();
     },
-    
+
     onEnableNotificationsChange: function(event) {
         var self = this;
         this.setState({
@@ -254,15 +254,15 @@ module.exports = React.createClass({
            self._refreshFromServer();
         });
     },
-    
+
     onEnableDesktopNotificationsChange: function(event) {
         UserSettingsStore.setEnableNotifications(event.target.checked);
     },
-    
+
     onNotifStateButtonClicked: function(event) {
         var vectorRuleId = event.target.className.split("-")[0];
         var newPushRuleVectorState = event.target.className.split("-")[1];
-        
+
         if ("_keywords" === vectorRuleId) {
             this._setKeywordsPushRuleVectorState(newPushRuleVectorState)
         }
@@ -273,7 +273,7 @@ module.exports = React.createClass({
             }
         }
     },
-    
+
     onKeywordsClicked: function(event) {
         var self = this;
 
@@ -314,13 +314,13 @@ module.exports = React.createClass({
                         }
                         return array;
                     },[]);
-                    
+
                     self._setKeywords(newKeywords);
                 }
             }
         });
     },
-    
+
     getRule: function(vectorRuleId) {
         for (var i in this.state.vectorPushRules) {
             var rule = this.state.vectorPushRules[i];
@@ -329,7 +329,7 @@ module.exports = React.createClass({
             }
         }
     },
-    
+
     _actionsFor: function(pushRuleVectorState) {
         if (pushRuleVectorState === PushRuleVectorState.ON) {
             return ACTION_NOTIFY;
@@ -338,12 +338,12 @@ module.exports = React.createClass({
             return ACTION_HIGHLIGHT_DEFAULT_SOUND;
         }
     },
-    
+
     // Determine whether a content rule is in the PushRuleVectorState.ON category or in PushRuleVectorState.LOUD
     // regardless of its enabled state. Returns undefined if it does not match these categories.
     _contentRuleVectorStateKind: function(rule) {
         var stateKind;
- 
+
         // Count tweaks to determine if it is a ON or LOUD rule
         var tweaks = 0;
         for (var j in rule.actions) {
@@ -363,9 +363,9 @@ module.exports = React.createClass({
         }
         return stateKind;
     },
-    
-    _setPushRuleVectorState: function(rule, newPushRuleVectorState) {        
-        if (rule && rule.vectorState !== newPushRuleVectorState) {   
+
+    _setPushRuleVectorState: function(rule, newPushRuleVectorState) {
+        if (rule && rule.vectorState !== newPushRuleVectorState) {
 
             this.setState({
                 phase: this.phases.LOADING
@@ -401,14 +401,14 @@ module.exports = React.createClass({
             });
         }
     },
-    
+
     _setKeywordsPushRuleVectorState: function(newPushRuleVectorState) {
         // Is there really a change?
-        if (this.state.vectorContentRules.vectorState === newPushRuleVectorState 
+        if (this.state.vectorContentRules.vectorState === newPushRuleVectorState
             || this.state.vectorContentRules.rules.length === 0) {
             return;
         }
-        
+
         var self = this;
         var cli = MatrixClientPeg.get();
 
@@ -469,7 +469,7 @@ module.exports = React.createClass({
             });
         });
     },
-    
+
     _setKeywords: function(newKeywords) {
         this.setState({
             phase: this.phases.LOADING
@@ -517,9 +517,9 @@ module.exports = React.createClass({
             var pushRuleVectorStateKind = self.state.vectorContentRules.vectorState;
             if (pushRuleVectorStateKind === PushRuleVectorState.OFF) {
                 // When the current global keywords rule is OFF, we need to look at
-                // the flavor of rules in 'vectorContentRules' to apply the same actions 
+                // the flavor of rules in 'vectorContentRules' to apply the same actions
                 // when creating the new rule.
-                // Thus, this new rule will join the 'vectorContentRules' set. 
+                // Thus, this new rule will join the 'vectorContentRules' set.
                 if (self.state.vectorContentRules.rules.length) {
                     pushRuleVectorStateKind = self._contentRuleVectorStateKind(self.state.vectorContentRules.rules[0]);
                 }
@@ -610,7 +610,7 @@ module.exports = React.createClass({
     },
 
     _refreshFromServer: function() {
-        var self = this;  
+        var self = this;
         MatrixClientPeg.get().getPushRules().then(self._portRulesToNewAPI).done(function(rulesets) {
             MatrixClientPeg.get().pushRules = rulesets;
 
@@ -685,8 +685,8 @@ module.exports = React.createClass({
             // whereas Matrix has a push rule per keyword.
             // Vector can set the unique rule in ON, LOUD or OFF state.
             // Matrix has enabled/disabled plus a combination of (highlight, sound) tweaks.
-            
-            // The code below determines which set of user's content push rules can be 
+
+            // The code below determines which set of user's content push rules can be
             // displayed by the vector UI.
             // Push rules that does not fit, ie defined by another Matrix client, ends
             // in self.state.externalContentRules.
@@ -697,14 +697,14 @@ module.exports = React.createClass({
                 self.state.vectorContentRules = {
                     vectorState: PushRuleVectorState.LOUD,
                     rules: contentRules.loud
-                } 
+                }
                self.state.externalContentRules = [].concat(contentRules.loud_but_disabled, contentRules.on, contentRules.on_but_disabled, contentRules.other);
             }
             else if (contentRules.loud_but_disabled.length) {
                 self.state.vectorContentRules = {
                     vectorState: PushRuleVectorState.OFF,
                     rules: contentRules.loud_but_disabled
-                } 
+                }
                self.state.externalContentRules = [].concat(contentRules.on, contentRules.on_but_disabled, contentRules.other);
             }
             else if (contentRules.on.length) {
@@ -787,7 +787,7 @@ module.exports = React.createClass({
                         }
 
                         if (!vectorState) {
-                            console.error("Cannot translate rule actions into Vector rule state. Rule: " + rule); 
+                            console.error("Cannot translate rule actions into Vector rule state. Rule: " + rule);
                             vectorState = PushRuleVectorState.OFF;
                         }
                     }
@@ -803,7 +803,7 @@ module.exports = React.createClass({
                     });
                 }
             }
-            
+
             // Build the rules not managed by Vector UI
             var otherRulesDescriptions = {
                 '.m.rule.message': "Notify for all other messages/rooms",
@@ -814,7 +814,7 @@ module.exports = React.createClass({
             for (var i in defaultRules.others) {
                 var rule = defaultRules.others[i];
                 var ruleDescription = otherRulesDescriptions[rule.rule_id];
-                
+
                 // Show enabled default rules that was modified by the user
                 if (ruleDescription && rule.enabled && !rule.default) {
                     rule.description = ruleDescription;
@@ -827,7 +827,7 @@ module.exports = React.createClass({
             });
         });
     },
-    
+
     _updatePushRuleActions: function(rule, actions, enabled) {
         var cli = MatrixClientPeg.get();
         var deferred = q.defer();
@@ -874,7 +874,7 @@ module.exports = React.createClass({
             </tr>
         );
     },
-    
+
     renderNotifRulesTableRows: function() {
         var rows = [];
         for (var i in this.state.vectorPushRules) {
@@ -884,7 +884,7 @@ module.exports = React.createClass({
         return rows;
     },
 
-    render: function() { 
+    render: function() {
         var self = this;
 
         if (this.state.phase === this.phases.LOADING) {
@@ -958,7 +958,7 @@ module.exports = React.createClass({
                         { externalRules }
                     </ul>
                 </div>
-            ); 
+            );
         }
 
         return (
@@ -1022,7 +1022,7 @@ module.exports = React.createClass({
                     </div>
 
                     { advancedSettings }
- 
+
                 </div>
 
             </div>
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/CreateRoom.css b/src/skins/vector/css/matrix-react-sdk/structures/CreateRoom.css
index d9b121fe..88804409 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/CreateRoom.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/CreateRoom.css
@@ -18,7 +18,7 @@ limitations under the License.
     width: 960px;
     margin-left: auto;
     margin-right: auto;
-    color: #4a4a4a;    
+    color: #4a4a4a;
 }
 
 .mx_CreateRoom input,
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/MatrixChat.css b/src/skins/vector/css/matrix-react-sdk/structures/MatrixChat.css
index e8a5eb79..d28f4d94 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/MatrixChat.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/MatrixChat.css
@@ -31,7 +31,7 @@ limitations under the License.
     display: -moz-box;
     display: -ms-flexbox;
     display: -webkit-flex;
-    display: flex;    
+    display: flex;
 
     flex-direction: column;
     -webkit-flex-direction: column;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/RoomStatusBar.css b/src/skins/vector/css/matrix-react-sdk/structures/RoomStatusBar.css
index d36035e6..5b6804d7 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/RoomStatusBar.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/RoomStatusBar.css
@@ -14,12 +14,12 @@
     text-align: center;
 }
 
-.mx_RoomStatusBar_placeholderIndicator { 
+.mx_RoomStatusBar_placeholderIndicator {
     color: #4a4a4a;
     opacity: 0.5;
 }
 
-.mx_RoomStatusBar_scrollDownIndicator { 
+.mx_RoomStatusBar_scrollDownIndicator {
     cursor: pointer;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
index 74fa198d..9f0e35cd 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
@@ -121,7 +121,7 @@ limitations under the License.
 .mx_RoomView_messageListWrapper {
     max-width: 960px;
     margin: auto;
-    
+
     min-height: 100%;
 
     display: -webkit-box;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/UploadBar.css b/src/skins/vector/css/matrix-react-sdk/structures/UploadBar.css
index bff271a3..5a22e91c 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/UploadBar.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/UploadBar.css
@@ -32,12 +32,12 @@
     margin-right: 10px;
     position: relative;
     opacity: 0.6;
-    cursor: pointer;    
+    cursor: pointer;
     z-index: 1;
 }
 
 .mx_UploadBar_uploadBytes {
-    float: right;    
+    float: right;
     margin-top: 5px;
     margin-right: 30px;
     color: #76cfa6;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css b/src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css
index ea1710da..71a9b299 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css
@@ -26,7 +26,7 @@ limitations under the License.
     display: -webkit-flex;
     display: flex;
     flex-direction: column;
-    -webkit-flex-direction: column;    
+    -webkit-flex-direction: column;
 }
 
 .mx_UserSettings .mx_RoomHeader {
@@ -50,7 +50,7 @@ limitations under the License.
     -webkit-flex: 1 1 0;
     flex: 1 1 0;
 
-    overflow-y: auto;    
+    overflow-y: auto;
 }
 
 .mx_UserSettings_spinner {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/EntityTile.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/EntityTile.css
index be7b474d..d22015bd 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/EntityTile.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/EntityTile.css
@@ -47,7 +47,7 @@ limitations under the License.
     top: 0px;
     right: 6px;
 }
-  
+
 .mx_EntityTile_name {
     display: table-cell;
     vertical-align: middle;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css
index de220e3b..bda24d5e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css
@@ -97,10 +97,10 @@ limitations under the License.
 
 /* end of overrides */
 
-/* this is used for the tile for the event which is selected via the URL.  
- * TODO: ultimately we probably want some transition on here.  
+/* this is used for the tile for the event which is selected via the URL.
+ * TODO: ultimately we probably want some transition on here.
  */
-.mx_EventTile_selected { 
+.mx_EventTile_selected {
     border-left: #76cfa6 5px solid;
     margin-left: 53px;
     padding-left: 7px;
@@ -117,7 +117,7 @@ limitations under the License.
 
 .mx_EventTile_searchHighlight a {
     background-color: #76cfa6;
-    color: #fff;    
+    color: #fff;
 }
 
 .mx_EventTile_sending {
@@ -165,7 +165,7 @@ limitations under the License.
 .mx_EventTile_editButton {
     position: absolute;
     display: inline-block;
-    visibility: hidden; 
+    visibility: hidden;
 }
 
 .mx_EventTile:hover .mx_EventTile_editButton {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberInfo.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberInfo.css
index 4d421007..6ff57ba7 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberInfo.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberInfo.css
@@ -46,7 +46,7 @@ limitations under the License.
 }
 
 .mx_MemberInfo_profileField {
-    font-color: #999999;    
+    font-color: #999999;
     font-size: 13px;
     position: relative;
     background-color: #fff;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberList.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberList.css
index fb24cc3c..65624506 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberList.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberList.css
@@ -91,12 +91,12 @@ limitations under the License.
     padding-left: 3px;
     padding-right: 12px;
     margin-top: 8px;
-    margin-bottom: 4px;    
+    margin-bottom: 4px;
 }
 
 /* we have to have display: table in order for the horizontal wrapping to work */
 .mx_MemberList_wrapper {
-    display: table; 
+    display: table;
     table-layout: fixed;
     width: 100%;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomHeader.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomHeader.css
index cd8768a8..9182efcd 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomHeader.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomHeader.css
@@ -28,7 +28,7 @@ limitations under the License.
 
     -webkit-align-items: center;
     align-items: center;
-    
+
     display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
@@ -71,7 +71,7 @@ limitations under the License.
 
     cursor: pointer;
 
-/*  
+/*
     -webkit-flex: 0 0 90px;
     flex: 0 0 90px;
 */
@@ -203,12 +203,12 @@ limitations under the License.
     float: left;
     max-height: 42px;
     color: #454545;
-    font-weight: 300;  
+    font-weight: 300;
     margin-left: 19px;
     margin-right: 16px;
     overflow: hidden;
     text-overflow: ellipsis;
-    border-bottom: 1px solid transparent;    
+    border-bottom: 1px solid transparent;
 }
 
 .mx_RoomHeader_avatar {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css
index 5a6ee551..50a4fd52 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css
@@ -23,7 +23,7 @@ limitations under the License.
 
     flex-direction: column;
     -webkit-flex-direction: column;
-    
+
     justify-content: center;
     -webkit-justify-content: center;
 
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomSettings.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomSettings.css
index 43cc36d4..fc00cc24 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomSettings.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomSettings.css
@@ -107,7 +107,7 @@ limitations under the License.
 .mx_RoomSettings .mx_RoomSettings_alias {
     max-width: 400px;
     margin-bottom: 16px;
-    /* 
+    /*
     commented out so margin applies
     display: table-cell; */
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomTile.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomTile.css
index f562c76c..d62c5d17 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomTile.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomTile.css
@@ -39,7 +39,7 @@ limitations under the License.
     vertical-align: middle;
     overflow: hidden;
     text-overflow: ellipsis;
-    padding-right: 16px;    
+    padding-right: 16px;
     color: rgba(69, 69, 69, 0.8);
 }
 
@@ -70,7 +70,7 @@ limitations under the License.
     width: 26px;
 }
 
-.mx_RoomTile_badge {    
+.mx_RoomTile_badge {
     background-color: #76cfa6;
     color: #fff;
     border-radius: 26px;
@@ -84,7 +84,7 @@ limitations under the License.
 */
 
 /*
-.mx_RoomTile_badge {    
+.mx_RoomTile_badge {
     background-color: #ff0064;
     border: 3px solid #fff;
     border-radius: 16px;
@@ -103,7 +103,7 @@ limitations under the License.
     left: 0px;
     top: 5px;
     bottom: 5px;
-} 
+}
 
 .mx_RoomTile_unreadNotify .mx_RoomTile_badge {
     background-color: #454545;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/SearchableEntityList.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/SearchableEntityList.css
index bf5ebe84..b6fe0e62 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/SearchableEntityList.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/SearchableEntityList.css
@@ -51,13 +51,13 @@ limitations under the License.
     flex: 1;
     -webkit-flex: 1;
 
-    overflow-y: auto;    
+    overflow-y: auto;
 }
 
 .mx_SearchableEntityList_list {
     display: table;
     table-layout: fixed;
-    width: 100%;    
+    width: 100%;
 }
 
 .mx_SearchableEntityList_list .mx_EntityTile_chevron {
@@ -67,7 +67,7 @@ limitations under the License.
 .mx_SearchableEntityList_hrWrapper {
     width: 100%;
     flex: 0 0 auto;
-    -webkit-flex: 0 0 auto;    
+    -webkit-flex: 0 0 auto;
 }
 
 .mx_SearchableEntityList hr {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/TopUnreadMessagesBar.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/TopUnreadMessagesBar.css
index 35f68399..ef639e2e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/TopUnreadMessagesBar.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/TopUnreadMessagesBar.css
@@ -22,22 +22,22 @@ limitations under the License.
     border-bottom: 1px solid #eee;
 }
 
-.mx_TopUnreadMessagesBar_scrollUp { 
+.mx_TopUnreadMessagesBar_scrollUp {
     display: inline;
     cursor: pointer;
 }
 
-.mx_TopUnreadMessagesBar_scrollUp img { 
+.mx_TopUnreadMessagesBar_scrollUp img {
     padding-left: 10px;
     padding-right: 31px;
     vertical-align: middle;
 }
 
-.mx_TopUnreadMessagesBar_scrollUp span { 
+.mx_TopUnreadMessagesBar_scrollUp span {
     opacity: 0.5;
 }
 
-.mx_TopUnreadMessagesBar_close { 
+.mx_TopUnreadMessagesBar_close {
     float: right;
     padding-right: 14px;
     padding-top: 3px;
diff --git a/src/skins/vector/css/vector-web/structures/LeftPanel.css b/src/skins/vector/css/vector-web/structures/LeftPanel.css
index 68f689b6..4ee44426 100644
--- a/src/skins/vector/css/vector-web/structures/LeftPanel.css
+++ b/src/skins/vector/css/vector-web/structures/LeftPanel.css
@@ -35,7 +35,7 @@ limitations under the License.
 }
 
 .mx_LeftPanel_callView {
-    
+
 }
 
 .mx_LeftPanel .mx_RoomList_scrollbar {
@@ -48,7 +48,7 @@ limitations under the License.
     -webkit-flex: 1 1 0;
     flex: 1 1 0;
 
-    overflow-y: auto; 
+    overflow-y: auto;
 }
 
 .mx_LeftPanel .mx_BottomLeftMenu {
diff --git a/src/skins/vector/css/vector-web/structures/RightPanel.css b/src/skins/vector/css/vector-web/structures/RightPanel.css
index 12e101a3..7cad2649 100644
--- a/src/skins/vector/css/vector-web/structures/RightPanel.css
+++ b/src/skins/vector/css/vector-web/structures/RightPanel.css
@@ -49,7 +49,7 @@ limitations under the License.
 .mx_RightPanel_headerButton {
     cursor: pointer;
     display: table-cell;
-    vertical-align: middle;    
+    vertical-align: middle;
     padding-left: 15px;
     padding-right: 15px;
     position: relative;
@@ -72,7 +72,7 @@ limitations under the License.
     position: absolute;
     top: 4px;
     left: 28px;
-    font-size: 12px;    
+    font-size: 12px;
     background-color: #76cfa6;
     color: #fff;
     font-weight: bold;
diff --git a/src/skins/vector/css/vector-web/structures/RoomDirectory.css b/src/skins/vector/css/vector-web/structures/RoomDirectory.css
index a61e9e43..91c0e279 100644
--- a/src/skins/vector/css/vector-web/structures/RoomDirectory.css
+++ b/src/skins/vector/css/vector-web/structures/RoomDirectory.css
@@ -26,21 +26,21 @@ limitations under the License.
     display: -moz-box;
     display: -ms-flexbox;
     display: -webkit-flex;
-    display: flex;    
+    display: flex;
 
     flex-direction: column;
     -webkit-flex-direction: column;
 }
 
 .mx_RoomDirectory_list {
-    -webkit-flex: 1;    
+    -webkit-flex: 1;
     flex: 1;
 
     display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
     display: -webkit-flex;
-    display: flex;    
+    display: flex;
 
     flex-direction: column;
     -webkit-flex-direction: column;
@@ -59,7 +59,7 @@ limitations under the License.
 
 .mx_RoomDirectory_tableWrapper {
     overflow-y: auto;
-    -webkit-flex: 1 1 0;    
+    -webkit-flex: 1 1 0;
     flex: 1 1 0;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/rooms/SearchBar.css b/src/skins/vector/css/vector-web/views/rooms/SearchBar.css
index 37239a95..7ec1a17a 100644
--- a/src/skins/vector/css/vector-web/views/rooms/SearchBar.css
+++ b/src/skins/vector/css/vector-web/views/rooms/SearchBar.css
@@ -52,7 +52,7 @@ limitations under the License.
 
 .mx_SearchBar_searching img {
     animation: pulsate 0.5s ease-out;
-    animation-iteration-count: infinite; 
+    animation-iteration-count: infinite;
 }
 
 .mx_SearchBar_button {
@@ -77,7 +77,7 @@ limitations under the License.
     background-color: #fff;
     color: #76CFA6;
     border: #76CFA6 1px solid;
-} 
+}
 
 .mx_SearchBar_cancel {
     padding-left: 14px;
diff --git a/src/vector/index.js b/src/vector/index.js
index 5b5701a5..ed539412 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -184,7 +184,7 @@ function loadApp() {
             }} />,
             document.getElementById('matrixchat')
         );
-    }  
+    }
 }
 
 loadApp();