From 70d383fb1bfb65516d52e209354434a78e267ef7 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Sun, 13 Nov 2016 23:06:57 +0000
Subject: [PATCH 001/243] Fix changelog dialog to  read new version format

Remove the 'vector' from the start of the version (otherwise the
tarballs are called vector-vector-[...].tar.gz). The jenkins
script already creates these files, so update accordingly.
---
 src/components/views/dialogs/ChangelogDialog.js | 5 +++--
 src/components/views/globals/NewVersionBar.js   | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/components/views/dialogs/ChangelogDialog.js b/src/components/views/dialogs/ChangelogDialog.js
index 6bc6de60..d14d8dc2 100644
--- a/src/components/views/dialogs/ChangelogDialog.js
+++ b/src/components/views/dialogs/ChangelogDialog.js
@@ -31,9 +31,10 @@ export default class ChangelogDialog extends React.Component {
         const version = this.props.newVersion.split('-');
         const version2 = this.props.version.split('-');
         if(version == null || version2 == null) return;
+        // parse versions of form: [vectorversion]-react-[react-sdk-version]-js-[js-sdk-version]
         for(let i=0; i<REPOS.length; i++) {
-            const oldVersion = version2[2*i+1];
-            const newVersion = version[2*i+1];
+            const oldVersion = version2[2*i];
+            const newVersion = version[2*i];
             request(`https://api.github.com/repos/${REPOS[i]}/compare/${oldVersion}...${newVersion}`, (a, b, body) => {
                 if(body == null) return;
                 this.setState({[REPOS[i]]: JSON.parse(body).commits});
diff --git a/src/components/views/globals/NewVersionBar.js b/src/components/views/globals/NewVersionBar.js
index 36d6bc71..3e03be72 100644
--- a/src/components/views/globals/NewVersionBar.js
+++ b/src/components/views/globals/NewVersionBar.js
@@ -23,11 +23,11 @@ import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
 
 /**
  * Check a version string is compatible with the Changelog
- * dialog
+ * dialog ([vectorversion]-react-[react-sdk-version]-js-[js-sdk-version])
  */
 function checkVersion(ver) {
     const parts = ver.split('-');
-    return parts[0] == 'vector' && parts[2] == 'react' && parts[4] == 'js';
+    return parts.length == 5 && parts[1] == 'react' && parts[3] == 'js';
 }
 
 export default React.createClass({

From 81d70a921df18ac86291a95b3b95f725668647c7 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Wed, 16 Nov 2016 23:10:51 +0000
Subject: [PATCH 002/243] Add a 'View decrypted source' button

---
 src/components/structures/ViewSource.js       |  6 +++---
 .../views/context_menus/MessageContextMenu.js | 21 ++++++++++++++++++-
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/components/structures/ViewSource.js b/src/components/structures/ViewSource.js
index 1dbc5319..a0e198ce 100644
--- a/src/components/structures/ViewSource.js
+++ b/src/components/structures/ViewSource.js
@@ -22,7 +22,8 @@ module.exports = React.createClass({
     displayName: 'ViewSource',
 
     propTypes: {
-        onFinished: React.PropTypes.func.isRequired
+        content: React.PropTypes.object.isRequired,
+        onFinished: React.PropTypes.func.isRequired,
     },
 
     componentDidMount: function() {
@@ -45,10 +46,9 @@ module.exports = React.createClass({
         return (
             <div className="mx_ViewSource">
                 <pre>
-                    {JSON.stringify(this.props.mxEvent.event, null, 2)}
+                    {JSON.stringify(this.props.content, null, 2)}
                 </pre>
             </div>
         );
     }
 });
-
diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js
index 7786b9bd..4b62b87e 100644
--- a/src/components/views/context_menus/MessageContextMenu.js
+++ b/src/components/views/context_menus/MessageContextMenu.js
@@ -47,7 +47,16 @@ module.exports = React.createClass({
     onViewSourceClick: function() {
         var ViewSource = sdk.getComponent('structures.ViewSource');
         Modal.createDialog(ViewSource, {
-            mxEvent: this.props.mxEvent
+            content: this.props.mxEvent.event,
+        }, 'mx_Dialog_viewsource');
+        if (this.props.onFinished) this.props.onFinished();
+    },
+
+    onViewClearSourceClick: function() {
+        var ViewSource = sdk.getComponent('structures.ViewSource');
+        Modal.createDialog(ViewSource, {
+            // FIXME: _clearEvent is private
+            content: this.props.mxEvent._clearEvent,
         }, 'mx_Dialog_viewsource');
         if (this.props.onFinished) this.props.onFinished();
     },
@@ -97,6 +106,7 @@ module.exports = React.createClass({
         var eventStatus = this.props.mxEvent.status;
         var resendButton;
         var viewSourceButton;
+        var viewClearSourceButton;
         var redactButton;
         var cancelButton;
         var permalinkButton;
@@ -133,6 +143,14 @@ module.exports = React.createClass({
             </div>
         );
 
+        if (this.props.mxEvent.getType() !== this.props.mxEvent.getWireType()) {
+            viewClearSourceButton = (
+                <div className="mx_MessageContextMenu_field" onClick={this.onViewClearSourceClick}>
+                    View Decrypted Source
+                </div>
+            );
+        }
+
         if (this.props.eventTileOps) {
             if (this.props.eventTileOps.isWidgetHidden()) {
                 unhidePreviewButton = (
@@ -174,6 +192,7 @@ module.exports = React.createClass({
                 {redactButton}
                 {cancelButton}
                 {viewSourceButton}
+                {viewClearSourceButton}
                 {unhidePreviewButton}
                 {permalinkButton}
                 {UserSettingsStore.isFeatureEnabled('rich_text_editor') ? quoteButton : null}

From 5d02c72687c7007c2914a6afb09e9b52af5aefab Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 17 Nov 2016 10:34:12 +0000
Subject: [PATCH 003/243] Bump to react 15.4

Add dependencies on react 15.4. Some of the things we pull in from
matrix-react-sdk won't work properly against 15.2 / 15.0.
---
 package.json | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/package.json b/package.json
index 173b9e1d..9ef377a9 100644
--- a/package.json
+++ b/package.json
@@ -70,10 +70,10 @@
     "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
-    "react": "^15.2.1",
+    "react": "^15.4.0",
     "react-dnd": "^2.1.4",
     "react-dnd-html5-backend": "^2.1.2",
-    "react-dom": "^15.2.1",
+    "react-dom": "^15.4.0",
     "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
     "sanitize-html": "^1.11.1",
     "ua-parser-js": "^0.7.10",
@@ -115,8 +115,8 @@
     "mocha": "^2.4.5",
     "parallelshell": "^1.2.0",
     "phantomjs-prebuilt": "^2.1.7",
-    "react-addons-perf": "^15.0",
-    "react-addons-test-utils": "^15.0.1",
+    "react-addons-perf": "^15.4.0",
+    "react-addons-test-utils": "^15.4.0",
     "rimraf": "^2.4.3",
     "source-map-loader": "^0.1.5",
     "webpack": "^1.12.14",

From 7577d2eb0570a396fe68036b7e865170516a5898 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 17 Nov 2016 10:51:09 +0000
Subject: [PATCH 004/243] s/var/const/

---
 src/components/views/context_menus/MessageContextMenu.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js
index 4b62b87e..e3640f77 100644
--- a/src/components/views/context_menus/MessageContextMenu.js
+++ b/src/components/views/context_menus/MessageContextMenu.js
@@ -53,7 +53,7 @@ module.exports = React.createClass({
     },
 
     onViewClearSourceClick: function() {
-        var ViewSource = sdk.getComponent('structures.ViewSource');
+        const ViewSource = sdk.getComponent('structures.ViewSource');
         Modal.createDialog(ViewSource, {
             // FIXME: _clearEvent is private
             content: this.props.mxEvent._clearEvent,

From be90badc8dff9d452a631fd9da83bee1bb1a1e5d Mon Sep 17 00:00:00 2001
From: Mark Haines <mjark@negativecurvature.net>
Date: Thu, 17 Nov 2016 11:36:46 +0000
Subject: [PATCH 005/243] Add css for the iframes for e2e attachments

---
 .../matrix-react-sdk/views/messages/MImageBody.css | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/MImageBody.css b/src/skins/vector/css/matrix-react-sdk/views/messages/MImageBody.css
index 1134f2f6..003ef103 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/messages/MImageBody.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/messages/MImageBody.css
@@ -44,3 +44,17 @@ limitations under the License.
     vertical-align: middle;
     pointer-events: none;
 }
+
+/* Remove the border and padding for iframes for download links. */
+.mx_MImageBody_download iframe {
+    margin: 0px;
+    padding: 0px;
+    border: none;
+    width: 100%;
+    /* Set the height of the iframe to be 1 line of text.
+     * Iframes don't automatically size themselves to fit their content.
+     * So either we have to fix the height of the iframe using CSS or
+     * use javascript's cross-origin postMessage API to communicate how
+     * big the content of the iframe is. */
+    height: 1.5em;
+}

From 646608bf8b6e824ef2ecc45d017831f7c4840a1e Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 17 Nov 2016 17:27:21 +0000
Subject: [PATCH 006/243] Add a cachebuster to /version

---
 src/vector/platform/WebPlatform.js | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index b5459aec..dec15869 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -128,8 +128,18 @@ export default class WebPlatform extends VectorBasePlatform {
 
     _getVersion() {
         const deferred = q.defer();
+
+        // We add a cachebuster to the request to make sure that we know about
+        // the most recent version on the origin server. That might not
+        // actually be the version we'd get on a reload (particularly in the
+        // presence of intermediate caching proxies), but still: we're trying
+        // to tell the user that there is a new version.
         request(
-            { method: "GET", url: "version" },
+            {
+                method: "GET",
+                url: "version",
+                qs: { cachebuster: Date.now() },
+            },
             (err, response, body) => {
                 if (err || response.status < 200 || response.status >= 300) {
                     if (err == null) err = { status: response.status };

From 8b0390f354a7e079878c72f221784932fb603579 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <github@rvanderhoff.org.uk>
Date: Fri, 18 Nov 2016 17:32:01 +0000
Subject: [PATCH 007/243] Fix a race which took us to the directory on load
 sometimes (#2602)

Sometimes window.onload would run before loadApp had finished (specifically, if
the browser had to wait for config.json to load). Avoid the race by moving all
of the onload logic into loadApp.
---
 src/vector/index.js | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index 9c9d48fa..0ced93d5 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -120,6 +120,8 @@ var lastLoadedScreen = null;
 // so a web page can update the URL bar appropriately.
 var onNewScreen = function(screen) {
     console.log("newscreen "+screen);
+    // just remember the most recent screen while we are loading, so that the
+    // user doesn't see the URL bar doing a dance
     if (!loaded) {
         lastLoadedScreen = screen;
     } else {
@@ -156,19 +158,6 @@ function getDefaultDeviceDisplayName() {
 }
 
 window.addEventListener('hashchange', onHashChange);
-window.onload = function() {
-    console.log("window.onload");
-    if (!validBrowser) {
-        return;
-    }
-    UpdateChecker.start();
-    routeUrl(window.location);
-    loaded = true;
-    if (lastLoadedScreen) {
-        onNewScreen(lastLoadedScreen);
-        lastLoadedScreen = null;
-    }
-}
 
 function getConfig() {
     let deferred = q.defer();
@@ -259,6 +248,8 @@ async function loadApp() {
             Unable to load config file: please refresh the page to try again.
         </div>, document.getElementById('matrixchat'));
     } else if (validBrowser) {
+        UpdateChecker.start();
+
         var MatrixChat = sdk.getComponent('structures.MatrixChat');
 
         window.matrixChat = ReactDOM.render(
@@ -275,6 +266,15 @@ async function loadApp() {
             />,
             document.getElementById('matrixchat')
         );
+
+        routeUrl(window.location);
+
+        // we didn't propagate screen changes to the URL bar while we were loading; do it now.
+        loaded = true;
+        if (lastLoadedScreen) {
+            onNewScreen(lastLoadedScreen);
+            lastLoadedScreen = null;
+        }
     }
     else {
         console.error("Browser is missing required features.");
@@ -285,7 +285,6 @@ async function loadApp() {
                 validBrowser = true;
                 console.log("User accepts the compatibility risks.");
                 loadApp();
-                window.onload(); // still do the same code paths for compatible clients
             }} />,
             document.getElementById('matrixchat')
         );

From 67c882648f7ab6e94785acc1783951dd582d6493 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <github@rvanderhoff.org.uk>
Date: Fri, 18 Nov 2016 17:52:44 +0000
Subject: [PATCH 008/243] Make sure we only pack one copy of react-dom (#2603)

Fixes https://github.com/vector-im/vector-web/issues/2601
---
 webpack.config.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/webpack.config.js b/webpack.config.js
index 4f350dd4..cad7b9a3 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -57,7 +57,8 @@ module.exports = {
         alias: {
             // alias any requires to the react module to the one in our path, otherwise
             // we tend to get the react source included twice when using npm link.
-            react: path.resolve('./node_modules/react'),
+            "react": path.resolve('./node_modules/react'),
+            "react-dom": path.resolve('./node_modules/react-dom'),
             "react-addons-perf": path.resolve('./node_modules/react-addons-perf'),
 
             // same goes for js-sdk

From 683ecb3326f22a118674701605e9b919f7593930 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 19 Nov 2016 02:04:31 +0200
Subject: [PATCH 009/243] Prepare changelog for v0.9.0

---
 CHANGELOG.md | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 12ebad99..31973282 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,48 @@
+Changes in [0.9.0](https://github.com/vector-im/vector-web/releases/tag/v0.9.0) (2016-11-19)
+============================================================================================
+[Full Changelog](https://github.com/vector-im/vector-web/compare/v0.8.4...v0.9.0)
+
+ * Add a cachebuster to /version
+   [\#2596](https://github.com/vector-im/vector-web/pull/2596)
+ * Add a 'View decrypted source' button
+   [\#2587](https://github.com/vector-im/vector-web/pull/2587)
+ * Fix changelog dialog to  read new version format
+   [\#2577](https://github.com/vector-im/vector-web/pull/2577)
+ * Build all of the vector dir in the build process
+   [\#2558](https://github.com/vector-im/vector-web/pull/2558)
+ * Support for get_app_version
+   [\#2553](https://github.com/vector-im/vector-web/pull/2553)
+ * Add CSS for mlist truncation
+   [\#2565](https://github.com/vector-im/vector-web/pull/2565)
+ * Add menu option for `external_url` if present
+   [\#2560](https://github.com/vector-im/vector-web/pull/2560)
+ * Make auto-update configureable
+   [\#2555](https://github.com/vector-im/vector-web/pull/2555)
+ * Missed files electron windows fixes
+   [\#2556](https://github.com/vector-im/vector-web/pull/2556)
+ * Add some CSS for  scalar error popup
+   [\#2554](https://github.com/vector-im/vector-web/pull/2554)
+ * Catch unhandled errors in the electron process
+   [\#2552](https://github.com/vector-im/vector-web/pull/2552)
+ * Slight grab-bag of fixes for electron on Windows
+   [\#2551](https://github.com/vector-im/vector-web/pull/2551)
+ * Electron app (take 3)
+   [\#2535](https://github.com/vector-im/vector-web/pull/2535)
+ * Use webpack-dev-server instead of http-server
+   [\#2542](https://github.com/vector-im/vector-web/pull/2542)
+ * Better support no-config when loading from file
+   [\#2541](https://github.com/vector-im/vector-web/pull/2541)
+ * Fix loading with no config from HTTP
+   [\#2540](https://github.com/vector-im/vector-web/pull/2540)
+ * Move 'new version' support into Platform
+   [\#2532](https://github.com/vector-im/vector-web/pull/2532)
+ * Add Notification support to the Web Platform
+   [\#2533](https://github.com/vector-im/vector-web/pull/2533)
+ * Use the defaults if given a blank config file
+   [\#2534](https://github.com/vector-im/vector-web/pull/2534)
+ * Implement Platforms
+   [\#2531](https://github.com/vector-im/vector-web/pull/2531)
+
 hanges in [0.8.4](https://github.com/vector-im/vector-web/releases/tag/v0.8.4) (2016-11-04)
 ============================================================================================
 [Full Changelog](https://github.com/vector-im/vector-web/compare/v0.8.4-rc.2...v0.8.4)

From 5cd4f88b8c6dd5348a8414c0c9cb04d7e4ab8509 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 19 Nov 2016 02:04:32 +0200
Subject: [PATCH 010/243] v0.9.0

---
 package.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package.json b/package.json
index 9ef377a9..c1441cf4 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "vector-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.8.4",
+  "version": "0.9.0",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {
@@ -66,8 +66,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
-    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
+    "matrix-js-sdk": "0.7.0",
+    "matrix-react-sdk": "0.8.0",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 9ce2adceef2851ed2b262c4ed54bfae3e58c1e2f Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Mon, 21 Nov 2016 10:40:35 +0000
Subject: [PATCH 011/243] Include config.sample.json in dist tarball

Fixes https://github.com/vector-im/vector-web/issues/2607
---
 scripts/package.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/scripts/package.sh b/scripts/package.sh
index 05227e1b..5c1fdd5e 100755
--- a/scripts/package.sh
+++ b/scripts/package.sh
@@ -15,6 +15,11 @@ fi
 
 npm run clean
 npm run build$dev
+
+# include the sample config in the tarball. Arguably this should be done by
+# `npm run build`, but it's just too painful.
+cp config.sample.json webapp/
+
 mkdir -p dist
 cp -r webapp vector-$version
 echo $version > vector-$version/version

From 10650d2cd1813d2a18d6e58c2d07507ec18e650b Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 22 Nov 2016 22:14:05 +0000
Subject: [PATCH 012/243] Unpin js-sdk and react-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index c1441cf4..509e0e94 100644
--- a/package.json
+++ b/package.json
@@ -66,8 +66,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "0.7.0",
-    "matrix-react-sdk": "0.8.0",
+    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
+    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 0df242e0e9ebd60b7d6877f0ae641d2da735ce86 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 24 Nov 2016 16:20:58 +0000
Subject: [PATCH 013/243] Add Freenode & Mozilla domains

So the join button works for them
---
 config.sample.json | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/config.sample.json b/config.sample.json
index 49303769..a25bdb11 100644
--- a/config.sample.json
+++ b/config.sample.json
@@ -31,6 +31,8 @@
                 "nativePattern": "[^\\s]+/[^\\s]+$"
             },
             "irc:freenode": {
+                "protocol": "irc",
+                "domain": "chat.freenode.net",
                 "portalRoomPattern": "#freenode_.*:matrix.org",
                 "name": "Freenode",
                 "icon": "//matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
@@ -38,6 +40,8 @@
                 "nativePattern": "^#[^\\s]+$"
             },
             "irc:mozilla": {
+                "protocol": "irc",
+                "domain": "irc.mozilla.org",
                 "portalRoomPattern": "#mozilla_.*:matrix.org",
                 "name": "Mozilla",
                 "icon": "//matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",

From c786980454f6648de45a8193f0ec08d41ed71c0f Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 24 Nov 2016 16:46:15 +0000
Subject: [PATCH 014/243] Move getDefaultDeviceName into the Platforms

So we can have a sensible device name on Electron
---
 src/vector/index.js                       | 16 +--------------
 src/vector/platform/ElectronPlatform.js   | 25 +++++++++++++++++++++++
 src/vector/platform/VectorBasePlatform.js |  8 ++++++++
 src/vector/platform/WebPlatform.js        | 15 ++++++++++++++
 4 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index 0ced93d5..b791783b 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -54,7 +54,6 @@ var UpdateChecker = require("./updater");
 var q = require('q');
 var request = require('browser-request');
 
-import UAParser from 'ua-parser-js';
 import url from 'url';
 
 import {parseQs, parseQsFromFragment} from './url_utils';
@@ -144,19 +143,6 @@ var makeRegistrationUrl = function() {
            '#/register';
 }
 
-
-function getDefaultDeviceDisplayName() {
-    // strip query-string and fragment from uri
-    let u = url.parse(window.location.href);
-    u.search = "";
-    u.hash = "";
-    let app_name = u.format();
-
-    let ua = new UAParser();
-    return app_name + " via " + ua.getBrowser().name +
-        " on " + ua.getOS().name;
-}
-
 window.addEventListener('hashchange', onHashChange);
 
 function getConfig() {
@@ -262,7 +248,7 @@ async function loadApp() {
                 startingFragmentQueryParams={fragparts.params}
                 enableGuest={true}
                 onLoadCompleted={onLoadCompleted}
-                defaultDeviceDisplayName={getDefaultDeviceDisplayName()}
+                defaultDeviceDisplayName={PlatformPeg.get().getDefaultDeviceDisplayName()}
             />,
             document.getElementById('matrixchat')
         );
diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index c7455a71..3894896a 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -35,6 +35,27 @@ function onUpdateDownloaded(ev, releaseNotes, ver, date, updateURL) {
     });
 }
 
+function platformFriendlyName() {
+    console.log(window.process);
+    switch (window.process.platform) {
+        case 'darwin':
+            return 'macOS';
+        case 'freebsd':
+            return 'FreeBSD';
+        case 'openbsd':
+            return 'OpenBSD';
+        case 'sunos':
+            return 'SunOS';
+        case 'win32':
+            return 'Windows';
+        default:
+            // Sorry, Linux users: you get lumped into here,
+            // but only because Linux's capitalisation is
+            // normal. We do care about you.
+            return window.process.platform[0].toUpperCase + window.process.platform.slice(1);
+    }
+}
+
 export default class ElectronPlatform extends VectorBasePlatform {
     setNotificationCount(count: number) {
         super.setNotificationCount(count);
@@ -101,4 +122,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
         // it should exit.
         electron.ipcRenderer.send('install_update');
     }
+
+    getDefaultDeviceDisplayName() {
+        return "Riot Desktop on " + platformFriendlyName();
+    }
 }
diff --git a/src/vector/platform/VectorBasePlatform.js b/src/vector/platform/VectorBasePlatform.js
index d2ed8c34..5240f3f5 100644
--- a/src/vector/platform/VectorBasePlatform.js
+++ b/src/vector/platform/VectorBasePlatform.js
@@ -39,4 +39,12 @@ export default class VectorBasePlatform extends BasePlatform {
      */
     installUpdate() {
     }
+
+    /**
+     * Get a sensible default display name for the
+     * device Vector is running on
+     */
+    getDefaultDeviceDisplayName() {
+        return "Unknown device";
+    }
 }
diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index dec15869..9998f7c7 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -23,6 +23,9 @@ import request from 'browser-request';
 import dis from 'matrix-react-sdk/lib/dispatcher.js';
 import q from 'q';
 
+import url from 'url';
+import UAParser from 'ua-parser-js';
+
 export default class WebPlatform extends VectorBasePlatform {
     constructor() {
         super();
@@ -180,4 +183,16 @@ export default class WebPlatform extends VectorBasePlatform {
     installUpdate() {
         window.location.reload();
     }
+
+    getDefaultDeviceDisplayName() {
+        // strip query-string and fragment from uri
+        let u = url.parse(window.location.href);
+        u.search = "";
+        u.hash = "";
+        let app_name = u.format();
+
+        let ua = new UAParser();
+        return app_name + " via " + ua.getBrowser().name +
+            " on " + ua.getOS().name;
+    }
 }

From a870ea2389d4b9c38d5bd8ac3567b6ee34fcccda Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 24 Nov 2016 17:24:11 +0000
Subject: [PATCH 015/243] Add electron config

Which has the update URL in it
---
 electron/config.json | 72 ++++++++++++++++++++++++++++++++++++++++++++
 package.json         |  2 +-
 2 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 electron/config.json

diff --git a/electron/config.json b/electron/config.json
new file mode 100644
index 00000000..7bf4c4d8
--- /dev/null
+++ b/electron/config.json
@@ -0,0 +1,72 @@
+{
+    "update_url": "https://riot.im/download/desktop/",
+    "default_hs_url": "https://matrix.org",
+    "default_is_url": "https://vector.im",
+    "brand": "Riot",
+    "integrations_ui_url": "https://scalar.vector.im/",
+    "integrations_rest_url": "https://scalar.vector.im/api",
+    "enableLabs": true,
+    "roomDirectory": {
+        "servers": [
+            "matrix.org"
+        ],
+        "serverConfig": {
+            "matrix.org": {
+                "networks": [
+                    "_matrix",
+                    "gitter",
+                    "irc:freenode",
+                    "irc:mozilla",
+                    "irc:snoonet",
+                    "irc:oftc"
+                ]
+            }
+        },
+        "networks": {
+            "gitter": {
+                "protocol": "gitter",
+                "portalRoomPattern": "#gitter_.*:matrix.org",
+                "name": "Gitter",
+                "icon": "https://gitter.im/favicon.ico",
+                "example": "org/community",
+                "nativePattern": "[^\\s]+/[^\\s]+$"
+            },
+            "irc:freenode": {
+                "protocol": "irc",
+                "domain": "chat.freenode.net",
+                "portalRoomPattern": "#freenode_.*:matrix.org",
+                "name": "Freenode",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            },
+            "irc:mozilla": {
+                "protocol": "irc",
+                "domain": "chat.freenode.net",
+                "portalRoomPattern": "#mozilla_.*:matrix.org",
+                "name": "Mozilla",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            },
+            "irc:snoonet": {
+                "protocol": "irc",
+                "domain": "ipv6-irc.snoonet.org",
+                "portalRoomPattern": "#_snoonet_.*:matrix.org",
+                "name": "Snoonet",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            },
+            "irc:oftc": {
+                "protocol": "irc",
+                "domain": "irc.oftc.net",
+                "portalRoomPattern": "#_oftc_.*:matrix.org",
+                "name": "OFTC",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            }
+        }
+    }
+}
diff --git a/package.json b/package.json
index 509e0e94..fde6fbaa 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
-    "build:electron": "build -lwm",
+    "build:electron": "npm run clean && npm run build && cpx electron/config.json webapp/ && build -lwm",
     "build": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle",
     "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle:dev",
     "dist": "scripts/package.sh",

From 693867f0746af51548f8932bc6113b74b8041abd Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 25 Nov 2016 19:57:08 +0000
Subject: [PATCH 016/243] Final bits to prepare electron distribtion:

 * Remove the config: nobody else wants our update URL so we'll
   keep it separately. Don't copy the config.
 * Script to yell at you if you've build a package with auto
   update turned off.
 * s/vector/webapp/ when looking for config
 * Use different update URLs for the various platforms
---
 scripts/check-electron.sh | 13 ++++++++++
 scripts/electron-dist.sh  | 54 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)
 create mode 100755 scripts/check-electron.sh
 create mode 100755 scripts/electron-dist.sh

diff --git a/scripts/check-electron.sh b/scripts/check-electron.sh
new file mode 100755
index 00000000..82b24a6c
--- /dev/null
+++ b/scripts/check-electron.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+update_url=`jq .update_url webapp/config.json`
+echo "***************************************************"
+echo
+if [ $? = 0 ]; then
+    echo "Built electron package with update url: $update_url"
+else
+    echo "Built electron package with no update url"
+    echo "This build will not auto-update."
+fi
+echo
+echo "***************************************************"
diff --git a/scripts/electron-dist.sh b/scripts/electron-dist.sh
new file mode 100755
index 00000000..36f60c9e
--- /dev/null
+++ b/scripts/electron-dist.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+set -e
+set -x
+
+if [ $# = 0 ]; then
+    echo "Usage: $0 <target directory>"
+    echo ""
+    echo "Adds the build in electron/dist/ to a given Riot electron"
+    echo "download tree. If target directory is empty, create a new"
+    echo "download tree. This tree can be placed on a web server to"
+    echo "serve auto-updates (although auto-update for Mac requires"
+    echo "additional logic)."
+    exit
+fi
+
+ver=`basename electron/dist/mac/*.dmg | cut -d '-' -f 2 | sed -e 's/\.dmg$//'`
+dir=$1
+
+echo "Copying files for version $ver to $dir"
+
+# Install packages: what the user downloads the first time,
+# (DMGs for mac, exe installer for windows)
+mkdir -p "$dir/install/macos"
+cp electron/dist/mac/*.dmg "$dir/install/macos/"
+echo "$ver" > "$dir/install/macos/latest"
+
+mkdir -p "$dir/install/win32/ia32"
+cp electron/dist/win-ia32/*.exe "$dir/install/win32/ia32/"
+
+mkdir -p "$dir/install/win32/x64"
+cp electron/dist/win/*.exe "$dir/install/win32/ia32/"
+
+
+# Packages for auto-update. It would be nice if squirrel's
+# auto update used the installer packages, but it doesn't
+# for Reasons. zip for mac, nupkg for windows.
+mkdir -p "$dir/update/macos"
+cp electron/dist/mac/*.zip "$dir/update/macos/"
+echo "$ver" > "$dir/update/macos/latest"
+
+mkdir -p "$dir/update/win32/ia32"
+cp electron/dist/win-ia32/*.nupkg "$dir/update/win32/ia32/"
+cat electron/dist/win-ia32/RELEASES >> "$dir/update/win32/ia32/RELEASES"
+echo >> "$dir/update/win32/ia32/RELEASES"
+
+mkdir -p "$dir/update/win32/x64"
+cp electron/dist/win/*.nupkg "$dir/update/win32/x64/"
+cat electron/dist/win/RELEASES >> "$dir/update/win32/x64/RELEASES"
+echo >> "$dir/update/win32/x64/RELEASES"
+
+
+echo "All done!"
+echo "$dir can now be copied to your web server."

From 4073688ba618b8400c9f220791830eb41aa37281 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 25 Nov 2016 20:07:12 +0000
Subject: [PATCH 017/243] Missed an x64

---
 scripts/electron-dist.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/electron-dist.sh b/scripts/electron-dist.sh
index 36f60c9e..0e8efd56 100755
--- a/scripts/electron-dist.sh
+++ b/scripts/electron-dist.sh
@@ -29,7 +29,7 @@ mkdir -p "$dir/install/win32/ia32"
 cp electron/dist/win-ia32/*.exe "$dir/install/win32/ia32/"
 
 mkdir -p "$dir/install/win32/x64"
-cp electron/dist/win/*.exe "$dir/install/win32/ia32/"
+cp electron/dist/win/*.exe "$dir/install/win32/x64/"
 
 
 # Packages for auto-update. It would be nice if squirrel's

From dfa7c3b72eb29fe8ab37a8231a625fd723e51a0f Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 25 Nov 2016 20:07:38 +0000
Subject: [PATCH 018/243] Animated install logo from Ben

---
 electron/build/install-spinner.gif | Bin 4460 -> 23967 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/electron/build/install-spinner.gif b/electron/build/install-spinner.gif
index c4f832c34230af5d0267962c7e1d0fab4bab5dd0..4a89337be40cf202fe232bca49c1c0c84b278463 100644
GIT binary patch
literal 23967
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
T>|@V>heO2~5&w^bLiPUwJMS@r

literal 4460
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


From 97c0e2dfcd595f109e992157e7203dbccc821ac5 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 25 Nov 2016 20:08:05 +0000
Subject: [PATCH 019/243] Delete electron config from here

It just has our update URL in it which only we care about
---
 electron/config.json | 72 --------------------------------------------
 1 file changed, 72 deletions(-)
 delete mode 100644 electron/config.json

diff --git a/electron/config.json b/electron/config.json
deleted file mode 100644
index 7bf4c4d8..00000000
--- a/electron/config.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-    "update_url": "https://riot.im/download/desktop/",
-    "default_hs_url": "https://matrix.org",
-    "default_is_url": "https://vector.im",
-    "brand": "Riot",
-    "integrations_ui_url": "https://scalar.vector.im/",
-    "integrations_rest_url": "https://scalar.vector.im/api",
-    "enableLabs": true,
-    "roomDirectory": {
-        "servers": [
-            "matrix.org"
-        ],
-        "serverConfig": {
-            "matrix.org": {
-                "networks": [
-                    "_matrix",
-                    "gitter",
-                    "irc:freenode",
-                    "irc:mozilla",
-                    "irc:snoonet",
-                    "irc:oftc"
-                ]
-            }
-        },
-        "networks": {
-            "gitter": {
-                "protocol": "gitter",
-                "portalRoomPattern": "#gitter_.*:matrix.org",
-                "name": "Gitter",
-                "icon": "https://gitter.im/favicon.ico",
-                "example": "org/community",
-                "nativePattern": "[^\\s]+/[^\\s]+$"
-            },
-            "irc:freenode": {
-                "protocol": "irc",
-                "domain": "chat.freenode.net",
-                "portalRoomPattern": "#freenode_.*:matrix.org",
-                "name": "Freenode",
-                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            },
-            "irc:mozilla": {
-                "protocol": "irc",
-                "domain": "chat.freenode.net",
-                "portalRoomPattern": "#mozilla_.*:matrix.org",
-                "name": "Mozilla",
-                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            },
-            "irc:snoonet": {
-                "protocol": "irc",
-                "domain": "ipv6-irc.snoonet.org",
-                "portalRoomPattern": "#_snoonet_.*:matrix.org",
-                "name": "Snoonet",
-                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            },
-            "irc:oftc": {
-                "protocol": "irc",
-                "domain": "irc.oftc.net",
-                "portalRoomPattern": "#_oftc_.*:matrix.org",
-                "name": "OFTC",
-                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            }
-        }
-    }
-}

From c7635a362f0a096d56007343e01cb26b0e421f59 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 25 Nov 2016 20:08:45 +0000
Subject: [PATCH 020/243] Don't copy config, check update url

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index fde6fbaa..3cb36125 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
-    "build:electron": "npm run clean && npm run build && cpx electron/config.json webapp/ && build -lwm",
+    "build:electron": "rimraf electron/dist && npm run clean && npm run build && build -wm --ia32 --x64 && scripts/check-electron.sh",
     "build": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle",
     "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle:dev",
     "dist": "scripts/package.sh",

From a1347e7bf1da37b00972e6c25e62b42803399d69 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 25 Nov 2016 20:09:21 +0000
Subject: [PATCH 021/243] Correct vector to webapp & platform update URLs

---
 electron/src/electron-main.js | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 18758eee..fe083930 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -30,7 +30,7 @@ const VectorMenu = require('./vectormenu');
 
 let vectorConfig = {};
 try {
-    vectorConfig = require('../../vector/config.json');
+    vectorConfig = require('../../webapp/config.json');
 } catch (e) {
     // it would be nice to check the error code here and bail if the config
     // is unparseable, but we get MODULE_NOT_FOUND in the case of a missing
@@ -112,9 +112,11 @@ function startAutoUpdate(update_url) {
         // 204 No Content. On windows it takes a base path and looks for
         // files under that path.
         if (process.platform == 'darwin') {
-            electron.autoUpdater.setFeedURL(update_url);
+            // macos only has 64 bit
+            electron.autoUpdater.setFeedURL(update_url + 'macos/');
         } else if (process.platform == 'win32') {
-            electron.autoUpdater.setFeedURL(update_url + 'win32/');
+            // We split by 32/64 bit too: the builds are different and entirely separate
+            electron.autoUpdater.setFeedURL(update_url + 'win32/' + process.arch + '/');
         } else {
             // Squirrel / electron only supports auto-update on these two platforms.
             // I'm not even going to try to guess which feed style they'd use if they

From 55062c7ec547636270f318740fa7427475818c18 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 28 Nov 2016 16:37:43 +0000
Subject: [PATCH 022/243] Update to electron 1.4.8

Which uses a new enough build of chromium that it accepts our SSL
certs.
---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index fde6fbaa..c672af5c 100644
--- a/package.json
+++ b/package.json
@@ -128,7 +128,7 @@
   "build": {
     "appId": "im.riot.app",
     "category": "Network",
-    "electronVersion": "1.4.2",
+    "electronVersion": "1.4.8",
     "//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
     "asar": false,
     "dereference": true,

From f20219754523080b187c7e577ac8bd592ad7f754 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 29 Nov 2016 18:49:23 +0000
Subject: [PATCH 023/243] CSS updates for s/block/blacklist for e2e

CSS for https://github.com/matrix-org/matrix-react-sdk/pull/574
---
 .../views/rooms/MemberDeviceInfo.css            | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberDeviceInfo.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberDeviceInfo.css
index 44cba9d1..53379ac4 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberDeviceInfo.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberDeviceInfo.css
@@ -44,14 +44,23 @@ limitations under the License.
     border-bottom: 1px solid rgba(0,0,0,0.1);
 }
 
-.mx_MemberDeviceInfo_block,
-.mx_MemberDeviceInfo_unblock {
+.mx_MemberDeviceInfo_blacklist,
+.mx_MemberDeviceInfo_unblacklist {
     float: right;
 }
 
+/* "Unblacklist" is too long for a regular button: make it wider and
+   reduce the padding. */  
+.mx_EncryptedEventDialog .mx_MemberDeviceInfo_blacklist,
+.mx_EncryptedEventDialog .mx_MemberDeviceInfo_unblacklist {
+    width: 8em;
+    padding-left: 1em;
+    padding-right: 1em;
+}    
+
 .mx_MemberDeviceInfo div.mx_MemberDeviceInfo_verified,
 .mx_MemberDeviceInfo div.mx_MemberDeviceInfo_unverified,
-.mx_MemberDeviceInfo div.mx_MemberDeviceInfo_blocked {
+.mx_MemberDeviceInfo div.mx_MemberDeviceInfo_blacklisted {
     float: right;
     padding-left: 1em;
 }
@@ -64,6 +73,6 @@ limitations under the License.
     color: #e8bf37;
 }
 
-.mx_MemberDeviceInfo div.mx_MemberDeviceInfo_blocked {
+.mx_MemberDeviceInfo div.mx_MemberDeviceInfo_blacklisted {
     color: #ba6363;
 }

From 6a944d3e7dca1c7c7c99ac9cce67bbb77254cfc9 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 30 Nov 2016 18:09:51 +0000
Subject: [PATCH 024/243] Fix config location in some more places

---
 README.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 9d1fb48c..0bbac7a5 100644
--- a/README.md
+++ b/README.md
@@ -59,16 +59,16 @@ to build.
    web server.
 
 Note that `npm run dist` is not supported on Windows, so Windows users can run `npm
-run build`, which will build all the necessary files into the `vector`
-directory. The version of Vector will not appear in Settings without
-using the dist script. You can then mount the vector directory on your
+run build`, which will build all the necessary files into the `webapp`
+directory. The version of Riot will not appear in Settings without
+using the dist script. You can then mount the `webapp` directory on your
 webserver to actually serve up the app, which is entirely static content.
 
 config.json
 ===========
 
-You can configure the app by copying `vector/config.sample.json` to
-`vector/config.json` and customising it:
+You can configure the app by copying `config.sample.json` to
+`config.json` and customising it:
 
 1. `default_hs_url` is the default home server url.
 1. `default_is_url` is the default identity server url (this is the server used

From e3290c1117a47dbf7c6cf160c7c75420b9c46147 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 1 Dec 2016 11:35:26 +0000
Subject: [PATCH 025/243] Switch to new auto-update & add linux build

 * Remove squirrel hooks (the installing & uninstalling is now
   done by the, er, installer)
 * Switch to electron-auto-update
 * Shorten initial update delay because we no longer need to wait
   for squirrel to release a lock file
 * Change update URLs because windows is now one installer for
   both 32 & 64 bit.
 * Update electron-builder to 10 where NSIS is now the default
   target for Windows.
 * Add linux to the target list, building a deb.
 * Remove sqirrel-specific installation spinner
 * Remove redundant !**/*  from files
---
 electron/build/install-spinner.gif | Bin 23967 -> 0 bytes
 electron/src/electron-main.js      |  41 ++++++++++-------------------
 electron/src/squirrelhooks.js      |  30 ---------------------
 package.json                       |  12 +++++----
 4 files changed, 21 insertions(+), 62 deletions(-)
 delete mode 100644 electron/build/install-spinner.gif
 delete mode 100644 electron/src/squirrelhooks.js

diff --git a/electron/build/install-spinner.gif b/electron/build/install-spinner.gif
deleted file mode 100644
index 4a89337be40cf202fe232bca49c1c0c84b278463..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 23967
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
T>|@V>heO2~5&w^bLiPUwJMS@r

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index fe083930..044eca56 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -17,13 +17,11 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-// Squirrel on windows starts the app with various flags
-// as hooks to tell us when we've been installed/uninstalled
-// etc.
-const check_squirrel_hooks = require('./squirrelhooks');
-if (check_squirrel_hooks()) return;
-
 const electron = require('electron');
+
+// Auto updater from the 'electron-auto-updater' package for NSIS
+// auto-update support (not the one that comes with electron).
+const autoUpdater = require('electron-auto-updater').autoUpdater;
 const url = require('url');
 
 const VectorMenu = require('./vectormenu');
@@ -45,7 +43,7 @@ const PERMITTED_URL_SCHEMES = [
 ];
 
 const UPDATE_POLL_INTERVAL_MS = 60 * 60 * 1000;
-const INITIAL_UPDATE_DELAY_MS = 30 * 1000;
+const INITIAL_UPDATE_DELAY_MS = 5 * 1000;
 
 let mainWindow = null;
 let appQuitting = false;
@@ -90,12 +88,12 @@ function installUpdate() {
     // for some reason, quitAndInstall does not fire the
     // before-quit event, so we need to set the flag here.
     appQuitting = true;
-    electron.autoUpdater.quitAndInstall();
+    autoUpdater.quitAndInstall();
 }
 
 function pollForUpdates() {
     try {
-        electron.autoUpdater.checkForUpdates();
+        autoUpdater.checkForUpdates();
     } catch (e) {
         console.log("Couldn't check for update", e);
     }
@@ -106,30 +104,19 @@ function startAutoUpdate(update_url) {
         update_url = update_url + '/';
     }
     try {
-        // For reasons best known to Squirrel, the way it checks for updates
-        // is completely different between macOS and windows. On macOS, it
-        // hits a URL that either gives it a 200 with some json or
-        // 204 No Content. On windows it takes a base path and looks for
-        // files under that path.
+        // Since writing, the electron auto update process has changed from being
+        // completely different between platforms to being differently completely
+        // different. On Mac, we set the feed URL here. On Windows, it uses a
+        // yaml file bundled at build time from the 'publish' entry in the
+        // package.json. There is no autoupdate for Linux: it's expected that
+        // the distro will provide it.
         if (process.platform == 'darwin') {
-            // macos only has 64 bit
-            electron.autoUpdater.setFeedURL(update_url + 'macos/');
-        } else if (process.platform == 'win32') {
-            // We split by 32/64 bit too: the builds are different and entirely separate
-            electron.autoUpdater.setFeedURL(update_url + 'win32/' + process.arch + '/');
-        } else {
-            // Squirrel / electron only supports auto-update on these two platforms.
-            // I'm not even going to try to guess which feed style they'd use if they
-            // implemented it on Linux, or if it would be different again.
-            console.log("Auto update not supported on this platform");
+            autoUpdater.setFeedURL(update_url + 'macos/');
         }
         // We check for updates ourselves rather than using 'updater' because we need to
         // do it in the main process (and we don't really need to check every 10 minutes:
         // every hour should be just fine for a desktop app)
         // However, we still let the main window listen for the update events.
-        // We also wait a short time before checking for updates the first time because
-        // of squirrel on windows and it taking a small amount of time to release a
-        // lock file.
         setTimeout(pollForUpdates, INITIAL_UPDATE_DELAY_MS);
         setInterval(pollForUpdates, UPDATE_POLL_INTERVAL_MS);
     } catch (err) {
diff --git a/electron/src/squirrelhooks.js b/electron/src/squirrelhooks.js
deleted file mode 100644
index 10fb8d9e..00000000
--- a/electron/src/squirrelhooks.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const path = require('path');
-const spawn = require('child_process').spawn;
-const app = require('electron').app;
-
-function run_update_exe(args, done) {
-    const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
-    spawn(updateExe, args, {
-      detached: true
-    }).on('close', done);
-};
-
-function check_squirrel_hooks() {
-    if (process.platform != 'win32') return false;
-
-    const cmd = process.argv[1];
-    const target = path.basename(process.execPath);
-    if (cmd === '--squirrel-install' || cmd === '--squirrel-updated') {
-        run_update_exe(['--createShortcut=' + target + ''], app.quit);
-        return true;
-    } else if (cmd === '--squirrel-uninstall') {
-        run_update_exe(['--removeShortcut=' + target + ''], app.quit);
-        return true;
-    } else if (cmd === '--squirrel-obsolete') {
-        app.quit();
-        return true;
-    }
-    return false;
-}
-
-module.exports = check_squirrel_hooks;
diff --git a/package.json b/package.json
index 54de856b..0f16ce71 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
-    "build:electron": "rimraf electron/dist && npm run clean && npm run build && build -wm --ia32 --x64 && scripts/check-electron.sh",
+    "build:electron": "rimraf electron/dist && npm run clean && npm run build && build -wml --ia32 --x64 && scripts/check-electron.sh",
     "build": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle",
     "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle:dev",
     "dist": "scripts/package.sh",
@@ -58,6 +58,7 @@
     "browser-request": "^0.3.3",
     "classnames": "^2.1.2",
     "draft-js": "^0.8.1",
+    "electron-auto-updater": "^0.6.2",
     "extract-text-webpack-plugin": "^0.9.1",
     "favico.js": "^0.3.10",
     "filesize": "^3.1.2",
@@ -97,7 +98,7 @@
     "catw": "^1.0.1",
     "cpx": "^1.3.2",
     "css-raw-loader": "^0.1.1",
-    "electron-builder": "^7.23.2",
+    "electron-builder": "^10.4.1",
     "emojione": "^2.2.3",
     "expect": "^1.16.0",
     "fs-extra": "^0.30.0",
@@ -134,14 +135,15 @@
     "dereference": true,
     "//files": "We bundle everything, so we only need to include webapp/",
     "files": [
-      "!**/*",
       "electron/src/**",
       "electron/img/**",
+      "node_modules/electron-auto-updater/**",
       "webapp/**",
       "package.json"
     ],
-    "squirrelWindows": {
-      "iconUrl": "https://riot.im/favicon.ico"
+    "linux": {
+      "target": "deb",
+      "maintainer": "support@riot.im"
     }
   },
   "directories": {

From 2930a94c791c0db13493f413ad4e487a7c6f63bd Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 1 Dec 2016 18:01:23 +0000
Subject: [PATCH 026/243] Change to update_base_url

---
 electron/src/electron-main.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 044eca56..3fabd01b 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -111,7 +111,7 @@ function startAutoUpdate(update_url) {
         // package.json. There is no autoupdate for Linux: it's expected that
         // the distro will provide it.
         if (process.platform == 'darwin') {
-            autoUpdater.setFeedURL(update_url + 'macos/');
+            autoUpdater.setFeedURL(update_base_url + 'update/macos/');
         }
         // We check for updates ourselves rather than using 'updater' because we need to
         // do it in the main process (and we don't really need to check every 10 minutes:

From 9f51e2c4075460a7b3882e59238576c28064a234 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 1 Dec 2016 19:33:42 +0000
Subject: [PATCH 027/243] Auto-update & build process with NSIS for windows

Amalgamate the electron build packaging into one script.
Use update_base_url so we can compute the actual URL in the
script for windows (because we need to put it in the build) and
at runtime for mac os.
---
 README.md                     |   3 +
 electron/src/electron-main.js |  27 ++++---
 package.json                  |   2 +-
 scripts/check-electron.sh     |  13 ----
 scripts/electron-dist.sh      |  54 --------------
 scripts/electron-package.sh   | 133 ++++++++++++++++++++++++++++++++++
 6 files changed, 154 insertions(+), 78 deletions(-)
 delete mode 100755 scripts/check-electron.sh
 delete mode 100755 scripts/electron-dist.sh
 create mode 100755 scripts/electron-package.sh

diff --git a/README.md b/README.md
index 9d1fb48c..1bccbca5 100644
--- a/README.md
+++ b/README.md
@@ -107,6 +107,9 @@ You can configure the app by copying `vector/config.sample.json` to
    valid location on this network. This is used as a hint to the user to indicate
    when a valid location has been entered so it's not necessary for this to be
    exactly correct. Optional.
+1. `update_base_url` (electron app only): HTTPS URL to a web server to download
+   updates from. This should be the path to the directory containing `install`
+   and `update`.
 
 Running as a Desktop app
 ========================
diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 3fabd01b..a8bdc7f9 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -99,9 +99,9 @@ function pollForUpdates() {
     }
 }
 
-function startAutoUpdate(update_url) {
-    if (update_url.slice(-1) !== '/') {
-        update_url = update_url + '/';
+function startAutoUpdate() {
+    if (process.platform != 'darwin' && process.platform != 'win32') {
+        return;
     }
     try {
         // Since writing, the electron auto update process has changed from being
@@ -111,7 +111,19 @@ function startAutoUpdate(update_url) {
         // package.json. There is no autoupdate for Linux: it's expected that
         // the distro will provide it.
         if (process.platform == 'darwin') {
-            autoUpdater.setFeedURL(update_base_url + 'update/macos/');
+            const update_base_url = vectorConfig.update_base_url;
+            if (!update_base_url) {
+                console.log("No update_base_url: disabling auto-update");
+                return;
+            }
+            if (update_base_url.slice(-1) !== '/') {
+                update_base_url = update_url + '/';
+            }
+            const update_url = update_base_url + 'update/macos/tmp/';
+            console.log("Starting auto update with URL: " + update_url);
+            autoUpdater.setFeedURL(update_url);
+        } else {
+            console.log("Starting auto update with baked-in URL");
         }
         // We check for updates ourselves rather than using 'updater' because we need to
         // do it in the main process (and we don't really need to check every 10 minutes:
@@ -138,12 +150,7 @@ process.on('uncaughtException', function (error) {
 electron.ipcMain.on('install_update', installUpdate);
 
 electron.app.on('ready', () => {
-    if (vectorConfig.update_url) {
-        console.log("Starting auto update with URL: " + vectorConfig.update_url);
-        startAutoUpdate(vectorConfig.update_url);
-    } else {
-        console.log("No update_url is defined: auto update is disabled");
-    }
+    startAutoUpdate();
 
     mainWindow = new electron.BrowserWindow({
         icon: `${__dirname}/../img/riot.ico`,
diff --git a/package.json b/package.json
index 0f16ce71..2ffb5773 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
-    "build:electron": "rimraf electron/dist && npm run clean && npm run build && build -wml --ia32 --x64 && scripts/check-electron.sh",
+    "build:electron": "rimraf electron/dist && npm run clean && npm run build && build -wml --ia32 --x64",
     "build": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle",
     "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle:dev",
     "dist": "scripts/package.sh",
diff --git a/scripts/check-electron.sh b/scripts/check-electron.sh
deleted file mode 100755
index 82b24a6c..00000000
--- a/scripts/check-electron.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-update_url=`jq .update_url webapp/config.json`
-echo "***************************************************"
-echo
-if [ $? = 0 ]; then
-    echo "Built electron package with update url: $update_url"
-else
-    echo "Built electron package with no update url"
-    echo "This build will not auto-update."
-fi
-echo
-echo "***************************************************"
diff --git a/scripts/electron-dist.sh b/scripts/electron-dist.sh
deleted file mode 100755
index 0e8efd56..00000000
--- a/scripts/electron-dist.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-
-set -e
-set -x
-
-if [ $# = 0 ]; then
-    echo "Usage: $0 <target directory>"
-    echo ""
-    echo "Adds the build in electron/dist/ to a given Riot electron"
-    echo "download tree. If target directory is empty, create a new"
-    echo "download tree. This tree can be placed on a web server to"
-    echo "serve auto-updates (although auto-update for Mac requires"
-    echo "additional logic)."
-    exit
-fi
-
-ver=`basename electron/dist/mac/*.dmg | cut -d '-' -f 2 | sed -e 's/\.dmg$//'`
-dir=$1
-
-echo "Copying files for version $ver to $dir"
-
-# Install packages: what the user downloads the first time,
-# (DMGs for mac, exe installer for windows)
-mkdir -p "$dir/install/macos"
-cp electron/dist/mac/*.dmg "$dir/install/macos/"
-echo "$ver" > "$dir/install/macos/latest"
-
-mkdir -p "$dir/install/win32/ia32"
-cp electron/dist/win-ia32/*.exe "$dir/install/win32/ia32/"
-
-mkdir -p "$dir/install/win32/x64"
-cp electron/dist/win/*.exe "$dir/install/win32/x64/"
-
-
-# Packages for auto-update. It would be nice if squirrel's
-# auto update used the installer packages, but it doesn't
-# for Reasons. zip for mac, nupkg for windows.
-mkdir -p "$dir/update/macos"
-cp electron/dist/mac/*.zip "$dir/update/macos/"
-echo "$ver" > "$dir/update/macos/latest"
-
-mkdir -p "$dir/update/win32/ia32"
-cp electron/dist/win-ia32/*.nupkg "$dir/update/win32/ia32/"
-cat electron/dist/win-ia32/RELEASES >> "$dir/update/win32/ia32/RELEASES"
-echo >> "$dir/update/win32/ia32/RELEASES"
-
-mkdir -p "$dir/update/win32/x64"
-cp electron/dist/win/*.nupkg "$dir/update/win32/x64/"
-cat electron/dist/win/RELEASES >> "$dir/update/win32/x64/RELEASES"
-echo >> "$dir/update/win32/x64/RELEASES"
-
-
-echo "All done!"
-echo "$dir can now be copied to your web server."
diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
new file mode 100755
index 00000000..8b1ccd4b
--- /dev/null
+++ b/scripts/electron-package.sh
@@ -0,0 +1,133 @@
+#!/bin/bash
+
+set -e
+
+usage() {
+    echo "Usage: $0 -v <version> -c <config file> [-n]"
+    echo
+    echo "version: commit-ish to check out and build"
+    echo "config file: a path to a json config file to"
+    echo "ship with the build. In addition, update_base_url:"
+    echo "from this file is used to set up auto-update."
+    echo "-n: build with no config file."
+    echo
+    echo "Values may also be passed as environment variables"
+}
+
+conffile=
+version=
+skipcfg=0
+while getopts "c:v:n" opt; do
+    case $opt in
+        c)
+            conffile=$OPTARG
+            ;;
+        v)
+            version=$OPTARG
+            ;;
+        n)
+            skipcfg=1
+            ;;
+        \?)
+            echo "Invalid option: -$OPTARG" >&2
+            usage
+            exit
+            ;;
+    esac
+done
+
+if [ -z "$version" ]; then
+    echo "No version supplied"
+    usage
+    exit
+fi
+
+if [ -z "$conffile" ] && [ "$skipcfg" = 0 ]; then
+    echo "No config file given. Use -c to supply a config file or"
+    echo "-n to build with no config file (and no auto update)."
+    exit
+fi
+
+if [ -n "$conffile" ]; then
+    update_base_url=`jq -r .update_base_url $conffile`
+
+    if [ -z "$update_base_url" ]; then
+        echo "No update URL supplied. Use update_base_url: null if you really"
+        echo "want a build with no auto-update."
+        usage
+        exit
+    fi
+    # Make sure the base URL ends in a slash if it doesn't already
+    update_base_url=`echo $update_base_url | sed -e 's#\([^\/]\)$#\1\/#'`
+fi
+
+if [ ! -f package.json ]; then
+    echo "No package.json found. This script must be run from"
+    echo "the vector-web directory."
+    exit
+fi
+
+echo "Building $version using Update base URL $update_base_url"
+
+projdir=`pwd`
+builddir=`mktemp -d 2>/dev/null || mktemp -d -t 'buildtmp'`
+pushd "$builddir"
+git clone "$projdir" .
+git checkout "$version"
+
+if [ -n "$conffile" ]; then
+    popd
+    cp "$conffile" "$builddir/"
+    pushd "$builddir"
+fi
+
+if [ "$update_base_url" != "null" ]; then
+    # Inject a 'publish' configuration into the package.json.  This is what
+    # electron-builder needs for auto-update on windows but we don't want to
+    # keep it in the package.json as we don't want everyone cloning the source
+    # and building it for themselves to get our auto-update URL.
+    update_url=$update_base_url/install/win32/
+    jq '.build.publish.provider="generic"' package.json \
+        | jq '.build.publish.url="$update_url"' \
+        > package.json.tmp
+    mv package.json.tmp package.json
+fi
+
+npm install
+npm run build:electron
+
+popd
+
+distdir="$builddir/electron/dist"
+pubdir="$projdir/electron/pub"
+rm -r "$pubdir" || true
+mkdir -p "$pubdir"
+
+# figure out what version this build is known as
+# (since we could be building from a branch or indeed
+# any commit-ish, not just a version tag)
+vername=`python -c 'import yaml; import sys; print yaml.load(sys.stdin)["version"]' < $builddir/electron/dist/latest.yml`
+
+# Install packages: what the user downloads the first time,
+# (DMGs for mac, exe installer for windows)
+mkdir -p "$pubdir/install/macos"
+cp $distdir/mac/*.dmg "$pubdir/install/macos/"
+
+mkdir -p "$pubdir/install/win32/"
+cp $distdir/*.exe "$pubdir/install/win32/"
+cp $distdir/latest.yml "$pubdir/install/win32/"
+
+# Packages for auto-update on mac (Windows (NSIS) uses the installer exe)
+mkdir -p "$pubdir/update/macos"
+cp $distdir/mac/*.zip "$pubdir/update/macos/"
+echo "$ver" > "$pubdir/update/macos/latest"
+
+# Move the debs to the main project dir's dist folder
+rm -r "$projdir/electron/dist" || true
+mkdir -p "$projdir/electron/dist"
+cp $distdir/*.deb "$projdir/electron/dist/"
+
+rm -rf "$builddir"
+
+echo "Riot Desktop $vername is ready to go in $pubdir: this directory can be hosted on your web server."
+echo "deb archives are in electron/dist/ - these should be added into your debian repository"

From 7871a3edb5aaf1822355ea9841434818eba93015 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 1 Dec 2016 19:43:04 +0000
Subject: [PATCH 028/243] Just rm dist in the clean step

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 2ffb5773..e8377a0d 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
-    "build:electron": "rimraf electron/dist && npm run clean && npm run build && build -wml --ia32 --x64",
+    "build:electron": "npm run clean && npm run build && build -wml --ia32 --x64",
     "build": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle",
     "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle:dev",
     "dist": "scripts/package.sh",
@@ -47,7 +47,7 @@
     "start:skins:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css",
     "start": "node scripts/babelcheck.js && parallelshell \"npm run start:emojione\" \"npm run start:res\" \"npm run start:config\" \"npm run start:js\" \"npm run start:skins:css\"",
     "start:prod": "parallelshell \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\"",
-    "clean": "rimraf build lib webapp",
+    "clean": "rimraf build lib webapp electron/dist",
     "prepublish": "npm run build:compile",
     "test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
     "test:multi": "karma start"

From d0c2ab4cf10ef3700c69540467122174c6cfbcaa Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 2 Dec 2016 13:43:41 +0000
Subject: [PATCH 029/243] Document cross_origin_renderer_url

---
 README.md | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/README.md b/README.md
index 0bbac7a5..20812add 100644
--- a/README.md
+++ b/README.md
@@ -107,6 +107,15 @@ You can configure the app by copying `config.sample.json` to
    valid location on this network. This is used as a hint to the user to indicate
    when a valid location has been entered so it's not necessary for this to be
    exactly correct. Optional.
+1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
+   encrypted file attachments. This MUST be hosted on a completely separate domain to
+   anything else since it is used to isolate the privileges of file attachments to this
+   domain. Default: `usercontent.riot.im`. The HTML this page needs to contain is:
+   ```
+   <html><head><script>
+   window.onmessage=function(e){eval("("+e.data.code+")")(e)}
+   </script></head><body></body></html>
+   ```
 
 Running as a Desktop app
 ========================

From f1998497f20acffa4ad8c7be8e4fe5d67e7652b7 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 2 Dec 2016 14:21:33 +0000
Subject: [PATCH 030/243] Put the riot.im config back in this repo

---
 electron/riot.im/README      |  4 ++
 electron/riot.im/config.json | 72 ++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 electron/riot.im/README
 create mode 100644 electron/riot.im/config.json

diff --git a/electron/riot.im/README b/electron/riot.im/README
new file mode 100644
index 00000000..09c21874
--- /dev/null
+++ b/electron/riot.im/README
@@ -0,0 +1,4 @@
+This directory contains the config file for the official riot.im distribution
+of Riot Desktop. You probably do not want to build with this config unless
+you're building the official riot.im distribution, or you'll find your builds
+will replace themselves with the riot.im build.
diff --git a/electron/riot.im/config.json b/electron/riot.im/config.json
new file mode 100644
index 00000000..8ed2a3e8
--- /dev/null
+++ b/electron/riot.im/config.json
@@ -0,0 +1,72 @@
+{
+    "update_base_url": "https://riot.im/download/desktop/",
+    "default_hs_url": "https://matrix.org",
+    "default_is_url": "https://vector.im",
+    "brand": "Riot",
+    "integrations_ui_url": "https://scalar.vector.im/",
+    "integrations_rest_url": "https://scalar.vector.im/api",
+    "enableLabs": true,
+    "roomDirectory": {
+        "servers": [
+            "matrix.org"
+        ],
+        "serverConfig": {
+            "matrix.org": {
+                "networks": [
+                    "_matrix",
+                    "gitter",
+                    "irc:freenode",
+                    "irc:mozilla",
+                    "irc:snoonet",
+                    "irc:oftc"
+                ]
+            }
+        },
+        "networks": {
+            "gitter": {
+                "protocol": "gitter",
+                "portalRoomPattern": "#gitter_.*:matrix.org",
+                "name": "Gitter",
+                "icon": "https://gitter.im/favicon.ico",
+                "example": "org/community",
+                "nativePattern": "[^\\s]+/[^\\s]+$"
+            },
+            "irc:freenode": {
+                "protocol": "irc",
+                "domain": "chat.freenode.net",
+                "portalRoomPattern": "#freenode_.*:matrix.org",
+                "name": "Freenode",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            },
+            "irc:mozilla": {
+                "protocol": "irc",
+                "domain": "chat.freenode.net",
+                "portalRoomPattern": "#mozilla_.*:matrix.org",
+                "name": "Mozilla",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            },
+            "irc:snoonet": {
+                "protocol": "irc",
+                "domain": "ipv6-irc.snoonet.org",
+                "portalRoomPattern": "#_snoonet_.*:matrix.org",
+                "name": "Snoonet",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            },
+            "irc:oftc": {
+                "protocol": "irc",
+                "domain": "irc.oftc.net",
+                "portalRoomPattern": "#_oftc_.*:matrix.org",
+                "name": "OFTC",
+                "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
+                "example": "#channel",
+                "nativePattern": "^#[^\\s]+$"
+            }
+        }
+    }
+}

From 749d26c8f4a773c5dcb2ee6d4f9f99632327cd9f Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 2 Dec 2016 14:25:20 +0000
Subject: [PATCH 031/243] Link to the repo which it turns out is a thing

---
 README.md | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index 20812add..5df8b433 100644
--- a/README.md
+++ b/README.md
@@ -110,12 +110,8 @@ You can configure the app by copying `config.sample.json` to
 1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
    encrypted file attachments. This MUST be hosted on a completely separate domain to
    anything else since it is used to isolate the privileges of file attachments to this
-   domain. Default: `usercontent.riot.im`. The HTML this page needs to contain is:
-   ```
-   <html><head><script>
-   window.onmessage=function(e){eval("("+e.data.code+")")(e)}
-   </script></head><body></body></html>
-   ```
+   domain. Default: `usercontent.riot.im`. This needs to contain v1.html from
+   https://github.com/matrix-org/usercontent/blob/master/v1.html
 
 Running as a Desktop app
 ========================

From 72de35a2a11f1be25a10f8e40b4eca7dd3570e98 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 14:08:27 +0000
Subject: [PATCH 033/243] Switch back to Squirrel installer

which it turns out is by far the lesser of two evils.

 * Auto-update works with a proxy
 * The update process is reasonably atomic & faster, rather than
   running the uninstaller then the installer, leaving you with a
   broken install if you shut down your machine at the wrong time
 * Gets the update URL the same way as on mac, rather than baking
   it into the app at build time from package.json. We don't want
   it in package.json because only our builds want our update URL.
---
 electron/src/electron-main.js | 62 +++++++++++++++++++----------------
 package.json                  |  5 +--
 scripts/electron-package.sh   | 30 ++++++++---------
 3 files changed, 50 insertions(+), 47 deletions(-)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index a8bdc7f9..2ca0b9d3 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -17,11 +17,13 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-const electron = require('electron');
+// Squirrel on windows starts the app with various flags
+// as hooks to tell us when we've been installed/uninstalled
+// etc.
+const check_squirrel_hooks = require('./squirrelhooks');
+if (check_squirrel_hooks()) return;
 
-// Auto updater from the 'electron-auto-updater' package for NSIS
-// auto-update support (not the one that comes with electron).
-const autoUpdater = require('electron-auto-updater').autoUpdater;
+const electron = require('electron');
 const url = require('url');
 
 const VectorMenu = require('./vectormenu');
@@ -43,7 +45,7 @@ const PERMITTED_URL_SCHEMES = [
 ];
 
 const UPDATE_POLL_INTERVAL_MS = 60 * 60 * 1000;
-const INITIAL_UPDATE_DELAY_MS = 5 * 1000;
+const INITIAL_UPDATE_DELAY_MS = 30 * 1000;
 
 let mainWindow = null;
 let appQuitting = false;
@@ -88,47 +90,44 @@ function installUpdate() {
     // for some reason, quitAndInstall does not fire the
     // before-quit event, so we need to set the flag here.
     appQuitting = true;
-    autoUpdater.quitAndInstall();
+    electron.autoUpdater.quitAndInstall();
 }
 
 function pollForUpdates() {
     try {
-        autoUpdater.checkForUpdates();
+        electron.autoUpdater.checkForUpdates();
     } catch (e) {
         console.log("Couldn't check for update", e);
     }
 }
 
-function startAutoUpdate() {
-    if (process.platform != 'darwin' && process.platform != 'win32') {
-        return;
+function startAutoUpdate(update_base_url) {
+    if (update_base_url.slice(-1) !== '/') {
+        update_base_url = update_base_url + '/';
     }
     try {
-        // Since writing, the electron auto update process has changed from being
-        // completely different between platforms to being differently completely
-        // different. On Mac, we set the feed URL here. On Windows, it uses a
-        // yaml file bundled at build time from the 'publish' entry in the
-        // package.json. There is no autoupdate for Linux: it's expected that
-        // the distro will provide it.
+        // For reasons best known to Squirrel, the way it checks for updates
+        // is completely different between macOS and windows. On macOS, it
+        // hits a URL that either gives it a 200 with some json or
+        // 204 No Content. On windows it takes a base path and looks for
+        // files under that path.
         if (process.platform == 'darwin') {
-            const update_base_url = vectorConfig.update_base_url;
-            if (!update_base_url) {
-                console.log("No update_base_url: disabling auto-update");
-                return;
-            }
-            if (update_base_url.slice(-1) !== '/') {
-                update_base_url = update_url + '/';
-            }
-            const update_url = update_base_url + 'update/macos/tmp/';
-            console.log("Starting auto update with URL: " + update_url);
-            autoUpdater.setFeedURL(update_url);
+            electron.autoUpdater.setFeedURL(update_base_url + 'macos/');
+        } else if (process.platform == 'win32') {
+            electron.autoUpdater.setFeedURL(update_base_url + 'win32/' + process.arch + '/');
         } else {
-            console.log("Starting auto update with baked-in URL");
+            // Squirrel / electron only supports auto-update on these two platforms.
+            // I'm not even going to try to guess which feed style they'd use if they
+            // implemented it on Linux, or if it would be different again.
+            console.log("Auto update not supported on this platform");
         }
         // We check for updates ourselves rather than using 'updater' because we need to
         // do it in the main process (and we don't really need to check every 10 minutes:
         // every hour should be just fine for a desktop app)
         // However, we still let the main window listen for the update events.
+        // We also wait a short time before checking for updates the first time because
+        // of squirrel on windows and it taking a small amount of time to release a
+        // lock file.
         setTimeout(pollForUpdates, INITIAL_UPDATE_DELAY_MS);
         setInterval(pollForUpdates, UPDATE_POLL_INTERVAL_MS);
     } catch (err) {
@@ -150,7 +149,12 @@ process.on('uncaughtException', function (error) {
 electron.ipcMain.on('install_update', installUpdate);
 
 electron.app.on('ready', () => {
-    startAutoUpdate();
+    if (vectorConfig.update_base_url) {
+        console.log("Starting auto update with base URL: " + vectorConfig.update_base_url);
+        startAutoUpdate(vectorConfig.update_base_url);
+    } else {
+        console.log("No update_base_url is defined: auto update is disabled");
+    }
 
     mainWindow = new electron.BrowserWindow({
         icon: `${__dirname}/../img/riot.ico`,
diff --git a/package.json b/package.json
index e8377a0d..ea9d3203 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,6 @@
     "browser-request": "^0.3.3",
     "classnames": "^2.1.2",
     "draft-js": "^0.8.1",
-    "electron-auto-updater": "^0.6.2",
     "extract-text-webpack-plugin": "^0.9.1",
     "favico.js": "^0.3.10",
     "filesize": "^3.1.2",
@@ -137,13 +136,15 @@
     "files": [
       "electron/src/**",
       "electron/img/**",
-      "node_modules/electron-auto-updater/**",
       "webapp/**",
       "package.json"
     ],
     "linux": {
       "target": "deb",
       "maintainer": "support@riot.im"
+    },
+    "win": {
+        "target": "squirrel"
     }
   },
   "directories": {
diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
index 8b1ccd4b..5830c62d 100755
--- a/scripts/electron-package.sh
+++ b/scripts/electron-package.sh
@@ -81,18 +81,6 @@ if [ -n "$conffile" ]; then
     pushd "$builddir"
 fi
 
-if [ "$update_base_url" != "null" ]; then
-    # Inject a 'publish' configuration into the package.json.  This is what
-    # electron-builder needs for auto-update on windows but we don't want to
-    # keep it in the package.json as we don't want everyone cloning the source
-    # and building it for themselves to get our auto-update URL.
-    update_url=$update_base_url/install/win32/
-    jq '.build.publish.provider="generic"' package.json \
-        | jq '.build.publish.url="$update_url"' \
-        > package.json.tmp
-    mv package.json.tmp package.json
-fi
-
 npm install
 npm run build:electron
 
@@ -113,15 +101,25 @@ vername=`python -c 'import yaml; import sys; print yaml.load(sys.stdin)["version
 mkdir -p "$pubdir/install/macos"
 cp $distdir/mac/*.dmg "$pubdir/install/macos/"
 
-mkdir -p "$pubdir/install/win32/"
-cp $distdir/*.exe "$pubdir/install/win32/"
-cp $distdir/latest.yml "$pubdir/install/win32/"
+mkdir -p "$pubdir/install/win32/ia32/"
+cp $distdir/win-ia32/*.exe "$pubdir/install/win32/ia32/"
 
-# Packages for auto-update on mac (Windows (NSIS) uses the installer exe)
+mkdir -p "$pubdir/install/win32/x64/"
+cp $distdir/win/*.exe "$pubdir/install/win32/x64/"
+
+# Packages for auto-update
 mkdir -p "$pubdir/update/macos"
 cp $distdir/mac/*.zip "$pubdir/update/macos/"
 echo "$ver" > "$pubdir/update/macos/latest"
 
+mkdir -p "$pubdir/update/win32/ia32/"
+cp $distdir/win-ia32/*.nupkg "$pubdir/update/win32/ia32/"
+cp $distdir/win-ia32/RELEASES "$pubdir/install/win32/ia32/"
+
+mkdir -p "$pubdir/update/win32/x64/"
+cp $distdir/win/*.nupkg "$pubdir/update/win32/x64/"
+cp $distdir/win/RELEASES "$pubdir/update/win32x64ia32/"
+
 # Move the debs to the main project dir's dist folder
 rm -r "$projdir/electron/dist" || true
 mkdir -p "$projdir/electron/dist"

From b613a742f53bb8498c42dec4fb872faf5a6d0011 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 14:17:22 +0000
Subject: [PATCH 034/243] Forgot to re-add squirrelhooks

---
 electron/src/squirrelhooks.js | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 electron/src/squirrelhooks.js

diff --git a/electron/src/squirrelhooks.js b/electron/src/squirrelhooks.js
new file mode 100644
index 00000000..10fb8d9e
--- /dev/null
+++ b/electron/src/squirrelhooks.js
@@ -0,0 +1,30 @@
+const path = require('path');
+const spawn = require('child_process').spawn;
+const app = require('electron').app;
+
+function run_update_exe(args, done) {
+    const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
+    spawn(updateExe, args, {
+      detached: true
+    }).on('close', done);
+};
+
+function check_squirrel_hooks() {
+    if (process.platform != 'win32') return false;
+
+    const cmd = process.argv[1];
+    const target = path.basename(process.execPath);
+    if (cmd === '--squirrel-install' || cmd === '--squirrel-updated') {
+        run_update_exe(['--createShortcut=' + target + ''], app.quit);
+        return true;
+    } else if (cmd === '--squirrel-uninstall') {
+        run_update_exe(['--removeShortcut=' + target + ''], app.quit);
+        return true;
+    } else if (cmd === '--squirrel-obsolete') {
+        app.quit();
+        return true;
+    }
+    return false;
+}
+
+module.exports = check_squirrel_hooks;

From 37b4734bbe0b1d26d33cd51c069614be57991c08 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 14:19:49 +0000
Subject: [PATCH 035/243] Also re-add installer spinner

---
 electron/build/install-spinner.gif | Bin 0 -> 4460 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 electron/build/install-spinner.gif

diff --git a/electron/build/install-spinner.gif b/electron/build/install-spinner.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c4f832c34230af5d0267962c7e1d0fab4bab5dd0
GIT binary patch
literal 4460
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

literal 0
HcmV?d00001


From 3d813e68e9e889a25351f82fe0b843e433bbcd51 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 14:20:26 +0000
Subject: [PATCH 036/243] gitignore electron/pub

---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index 2e34b6c1..1f18d9a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@
 .DS_Store
 npm-debug.log
 electron/dist
+electron/pub

From ec959f005230158aaf87bcbe5d20868ccfeaa260 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 14:40:06 +0000
Subject: [PATCH 037/243] Update name & repo to reflect renamed repository

Unsure whether we want to go through doing a complete
s/vector/riot/ - I'm not sure there's a whole lot of point.
---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index c672af5c..4f4a75cb 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "vector-web",
+  "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
   "version": "0.9.0",
@@ -7,7 +7,7 @@
   "author": "Vector Creations Ltd.",
   "repository": {
     "type": "git",
-    "url": "https://github.com/vector-im/vector-web"
+    "url": "https://github.com/vector-im/riot-web"
   },
   "license": "Apache-2.0",
   "files": [

From 189c8aca79e35d27313831fc3bf63a0529f11b3c Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 17:15:48 +0000
Subject: [PATCH 038/243] Remove redundant line getting version

As there is no latest.yml now
---
 scripts/electron-package.sh | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
index 5830c62d..2d93bbe1 100755
--- a/scripts/electron-package.sh
+++ b/scripts/electron-package.sh
@@ -91,11 +91,6 @@ pubdir="$projdir/electron/pub"
 rm -r "$pubdir" || true
 mkdir -p "$pubdir"
 
-# figure out what version this build is known as
-# (since we could be building from a branch or indeed
-# any commit-ish, not just a version tag)
-vername=`python -c 'import yaml; import sys; print yaml.load(sys.stdin)["version"]' < $builddir/electron/dist/latest.yml`
-
 # Install packages: what the user downloads the first time,
 # (DMGs for mac, exe installer for windows)
 mkdir -p "$pubdir/install/macos"
@@ -127,5 +122,5 @@ cp $distdir/*.deb "$projdir/electron/dist/"
 
 rm -rf "$builddir"
 
-echo "Riot Desktop $vername is ready to go in $pubdir: this directory can be hosted on your web server."
+echo "Riot Desktop is ready to go in $pubdir: this directory can be hosted on your web server."
 echo "deb archives are in electron/dist/ - these should be added into your debian repository"

From 987822bd5a390aae699fb2882fdaef2b0d26ddf4 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 17:27:30 +0000
Subject: [PATCH 039/243] typo in cp destination

---
 scripts/electron-package.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
index 2d93bbe1..c8dc92f9 100755
--- a/scripts/electron-package.sh
+++ b/scripts/electron-package.sh
@@ -113,7 +113,7 @@ cp $distdir/win-ia32/RELEASES "$pubdir/install/win32/ia32/"
 
 mkdir -p "$pubdir/update/win32/x64/"
 cp $distdir/win/*.nupkg "$pubdir/update/win32/x64/"
-cp $distdir/win/RELEASES "$pubdir/update/win32x64ia32/"
+cp $distdir/win/RELEASES "$pubdir/update/win32/x64/"
 
 # Move the debs to the main project dir's dist folder
 rm -r "$projdir/electron/dist" || true

From 6934b7ed562a2c6b6676d4a3ce276f9961407323 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 17:53:06 +0000
Subject: [PATCH 040/243] released js-sdk & react-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 4fed9c8a..234ec094 100644
--- a/package.json
+++ b/package.json
@@ -66,8 +66,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
-    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
+    "matrix-js-sdk": "0.7.1-rc.1",
+    "matrix-react-sdk": "0.8.1-rc.1",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From ca6a3a2ad94694ac614de0db6fc19362eb10b643 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 18:02:03 +0000
Subject: [PATCH 041/243] Prepare changelog for v0.9.1-rc.1

---
 CHANGELOG.md | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 31973282..c1914c2b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,30 @@
+Changes in [0.9.1-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.1-rc.1) (2016-12-05)
+====================================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.0...v0.9.1-rc.1)
+
+ * Final bits to prepare electron distribtion:
+   [\#2653](https://github.com/vector-im/riot-web/pull/2653)
+ * Update name & repo to reflect renamed repository
+   [\#2692](https://github.com/vector-im/riot-web/pull/2692)
+ * Document cross_origin_renderer_url
+   [\#2680](https://github.com/vector-im/riot-web/pull/2680)
+ * Add css for the iframes for e2e attachments
+   [\#2659](https://github.com/vector-im/riot-web/pull/2659)
+ * Fix config location in some more places
+   [\#2670](https://github.com/vector-im/riot-web/pull/2670)
+ * CSS updates for s/block/blacklist for e2e
+   [\#2662](https://github.com/vector-im/riot-web/pull/2662)
+ * Update to electron 1.4.8
+   [\#2660](https://github.com/vector-im/riot-web/pull/2660)
+ * Add electron config
+   [\#2644](https://github.com/vector-im/riot-web/pull/2644)
+ * Move getDefaultDeviceName into the Platforms
+   [\#2643](https://github.com/vector-im/riot-web/pull/2643)
+ * Add Freenode & Mozilla domains
+   [\#2641](https://github.com/vector-im/riot-web/pull/2641)
+ * Include config.sample.json in dist tarball
+   [\#2614](https://github.com/vector-im/riot-web/pull/2614)
+
 Changes in [0.9.0](https://github.com/vector-im/vector-web/releases/tag/v0.9.0) (2016-11-19)
 ============================================================================================
 [Full Changelog](https://github.com/vector-im/vector-web/compare/v0.8.4...v0.9.0)

From df5143c818761427e590aa18f161d115f211e300 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 5 Dec 2016 18:02:03 +0000
Subject: [PATCH 042/243] v0.9.1-rc.1

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 234ec094..e6d8fcf7 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.0",
+  "version": "0.9.1-rc.1",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {
@@ -144,7 +144,7 @@
       "maintainer": "support@riot.im"
     },
     "win": {
-        "target": "squirrel"
+      "target": "squirrel"
     }
   },
   "directories": {

From 8d06b540916d4d6cdcc6e7f4f5c3f1f65d3e7ae8 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 6 Dec 2016 09:45:31 +0000
Subject: [PATCH 043/243] Only show window when ready

Avoids it sitting there for a short period with no spinner while
it parses the js.
---
 electron/src/electron-main.js | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 2ca0b9d3..57f4f66d 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -159,10 +159,14 @@ electron.app.on('ready', () => {
     mainWindow = new electron.BrowserWindow({
         icon: `${__dirname}/../img/riot.ico`,
         width: 1024, height: 768,
+        show: false,
     });
     mainWindow.loadURL(`file://${__dirname}/../../webapp/index.html`);
     electron.Menu.setApplicationMenu(VectorMenu);
 
+    mainWindow.once('ready-to-show', () => {
+        mainWindow.show();
+    });
     mainWindow.on('closed', () => {
         mainWindow = null;
     });

From 5fa0f62ccc948473f68a3e4790ece29adb97944a Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 6 Dec 2016 13:28:59 +0000
Subject: [PATCH 044/243] Fix clicking on notifications

 * Dismiss the notification when it's clicked
 * Accept the room object: we need it to view_room
 * Desktop app: Un-minimise when notification clicked
 * Desktop App: Set App User Model ID so notifications work on
   Windows 8!
---
 electron/src/electron-main.js           | 6 ++++++
 src/vector/platform/ElectronPlatform.js | 3 ++-
 src/vector/platform/WebPlatform.js      | 3 ++-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 57f4f66d..788d4602 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -202,3 +202,9 @@ electron.app.on('activate', () => {
 electron.app.on('before-quit', () => {
     appQuitting = true;
 });
+
+// Set the App User Model ID to match what the squirrel
+// installer uses for the shortcut icon.
+// This makes notifications work on windows 8.1 (and is
+// a noop on other platforms).
+electron.app.setAppUserModelId('com.squirrel.riot-web.Riot');
diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index 3894896a..d6f4013a 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -79,7 +79,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
         return true;
     }
 
-    displayNotification(title: string, msg: string, avatarUrl: string): Notification {
+    displayNotification(title: string, msg: string, avatarUrl: string, room: Object): Notification {
         // Notifications in Electron use the HTML5 notification API
         const notification = new global.Notification(
             title,
@@ -97,6 +97,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
                 room_id: room.roomId
             });
             global.focus();
+            electron.remote.getCurrentWindow().restore();
         };
 
         return notification;
diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index 9998f7c7..c4ed4d55 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -103,7 +103,7 @@ export default class WebPlatform extends VectorBasePlatform {
         return defer.promise;
     }
 
-    displayNotification(title: string, msg: string, avatarUrl: string) {
+    displayNotification(title: string, msg: string, avatarUrl: string, room: Object) {
         const notification = new global.Notification(
             title,
             {
@@ -120,6 +120,7 @@ export default class WebPlatform extends VectorBasePlatform {
                 room_id: room.roomId
             });
             global.focus();
+            notification.close();
         };
 
         // Chrome only dismisses notifications after 20s, which

From d4ac5f829fc4b7436281cd24f0ef31cef09f308a Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 6 Dec 2016 16:04:46 +0000
Subject: [PATCH 045/243] react-sdk rc.2

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index e6d8fcf7..bef21004 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
     "matrix-js-sdk": "0.7.1-rc.1",
-    "matrix-react-sdk": "0.8.1-rc.1",
+    "matrix-react-sdk": "0.8.1-rc.2",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 0f47c9956c2cd56a4a6868f0c53c959c9ac56bf9 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 6 Dec 2016 16:06:14 +0000
Subject: [PATCH 046/243] Prepare changelog for v0.9.1-rc.2

---
 CHANGELOG.md | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c1914c2b..2cdba7ad 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+Changes in [0.9.1-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.9.1-rc.2) (2016-12-06)
+====================================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.1-rc.1...v0.9.1-rc.2)
+
+ * Fix clicking on notifications
+   [\#2700](https://github.com/vector-im/riot-web/pull/2700)
+ * Desktop app: Only show window when ready
+   [\#2697](https://github.com/vector-im/riot-web/pull/2697)
+
 Changes in [0.9.1-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.1-rc.1) (2016-12-05)
 ====================================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.0...v0.9.1-rc.1)

From a9fcf106abc93096d98f7a33f8dc38e44201a049 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 6 Dec 2016 16:06:15 +0000
Subject: [PATCH 047/243] v0.9.1-rc.2

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index bef21004..f1c46b76 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.1-rc.1",
+  "version": "0.9.1-rc.2",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From ad79f67ab6d3b6cbea1605f9e123e017448cbf14 Mon Sep 17 00:00:00 2001
From: Hubert Chathi <hubert@uhoreg.ca>
Date: Tue, 6 Dec 2016 17:59:17 -0500
Subject: [PATCH 048/243] Add missing brackets to call to toUpperCase

---
 src/vector/platform/ElectronPlatform.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index d6f4013a..3b41822b 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -52,7 +52,7 @@ function platformFriendlyName() {
             // Sorry, Linux users: you get lumped into here,
             // but only because Linux's capitalisation is
             // normal. We do care about you.
-            return window.process.platform[0].toUpperCase + window.process.platform.slice(1);
+            return window.process.platform[0].toUpperCase() + window.process.platform.slice(1);
     }
 }
 

From 737f912abb3567f7318439d2dc275aecb6caea74 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 7 Dec 2016 11:19:51 +0000
Subject: [PATCH 049/243] Use a PNG for the icon on non-Windows

MATE desktop env (and presumably other GNOMEs don't support ICOs,
so use a PNG.

Fixes https://github.com/vector-im/riot-web/issues/2705
---
 electron/src/electron-main.js | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 788d4602..2b135a03 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -156,8 +156,12 @@ electron.app.on('ready', () => {
         console.log("No update_base_url is defined: auto update is disabled");
     }
 
+    const icon_path = `${__dirname}/../img/riot.` + (
+        process.platform == 'win32' ? 'ico' : 'png'
+    );
+
     mainWindow = new electron.BrowserWindow({
-        icon: `${__dirname}/../img/riot.ico`,
+        icon: icon_path,
         width: 1024, height: 768,
         show: false,
     });

From 2b51cda6da95b93d47d536fcd86e2fa8f4d8719f Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 7 Dec 2016 14:07:31 +0000
Subject: [PATCH 050/243] talk to jenkins via https for the /dev redeployer

---
 scripts/redeploy.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/redeploy.py b/scripts/redeploy.py
index 6e6e64aa..fddd5da9 100755
--- a/scripts/redeploy.py
+++ b/scripts/redeploy.py
@@ -127,7 +127,7 @@ def on_receive_jenkins_poke():
 if __name__ == "__main__":
     parser = argparse.ArgumentParser("Runs a Vector redeployment server.")
     parser.add_argument(
-        "-j", "--jenkins", dest="jenkins", default="http://matrix.org/jenkins/", help=(
+        "-j", "--jenkins", dest="jenkins", default="https://matrix.org/jenkins/", help=(
             "The base URL of the Jenkins web server. This will be hit to get the\
             built artifacts (the .gz file) for redeploying."
         )

From 5e8e6f4c8bb2a01de959b233e190cb363340d1d4 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 8 Dec 2016 11:40:33 +0000
Subject: [PATCH 051/243] Add icon missed from #2708

---
 electron/img/riot.png | Bin 0 -> 14677 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 electron/img/riot.png

diff --git a/electron/img/riot.png b/electron/img/riot.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe13aa99c3aac79efe1ce0e4dd549656f7e0451f
GIT binary patch
literal 14677
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
S$^gy`peU;*^X08Y#Qz7B`o*;X

literal 0
HcmV?d00001


From 229693dd714c3cdb52ffc59ebe86f07b103221cb Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 8 Dec 2016 11:41:31 +0000
Subject: [PATCH 052/243] gitignore .npmrc

(We now require a .npmrc in the riot-web dir to use the right
account when releasing)
---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index 1f18d9a1..c28df64c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@
 /node_modules
 /packages/
 /webapp
+/.npmrc
 .DS_Store
 npm-debug.log
 electron/dist

From e55845ac528194d92a4f43f40b7aadfff18b67d2 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 8 Dec 2016 16:21:37 +0000
Subject: [PATCH 053/243] Makeover!

Also add script for generating the PNGs and add pre-rendered PNGs
for the Linux electron build which means you don't need icns2png
to build it and the Linux icons are straight from the SVG rather
than resized bitmaps.
---
 electron/build/icon.icns                      | Bin 180819 -> 244823 bytes
 electron/build/icon.ico                       | Bin 21650 -> 90022 bytes
 electron/build/icons/128x128.png              | Bin 0 -> 7348 bytes
 electron/build/icons/16x16.png                | Bin 0 -> 673 bytes
 electron/build/icons/24x24.png                | Bin 0 -> 1118 bytes
 electron/build/icons/256x256.png              | Bin 0 -> 14743 bytes
 electron/build/icons/48x48.png                | Bin 0 -> 2620 bytes
 electron/build/icons/512x512.png              | Bin 0 -> 30435 bytes
 electron/build/icons/64x64.png                | Bin 0 -> 3652 bytes
 electron/build/icons/96x96.png                | Bin 0 -> 5628 bytes
 res/vector-icons/android-chrome-144x144.png   | Bin 11585 -> 8265 bytes
 res/vector-icons/android-chrome-192x192.png   | Bin 15761 -> 11002 bytes
 res/vector-icons/android-chrome-36x36.png     | Bin 2814 -> 1880 bytes
 res/vector-icons/android-chrome-48x48.png     | Bin 3789 -> 2620 bytes
 res/vector-icons/android-chrome-72x72.png     | Bin 5571 -> 4175 bytes
 res/vector-icons/android-chrome-96x96.png     | Bin 7536 -> 5628 bytes
 res/vector-icons/apple-touch-icon-114x114.png | Bin 8992 -> 6596 bytes
 res/vector-icons/apple-touch-icon-120x120.png | Bin 9531 -> 6872 bytes
 res/vector-icons/apple-touch-icon-144x144.png | Bin 11585 -> 8265 bytes
 res/vector-icons/apple-touch-icon-152x152.png | Bin 12185 -> 8751 bytes
 res/vector-icons/apple-touch-icon-180x180.png | Bin 14677 -> 10430 bytes
 res/vector-icons/apple-touch-icon-57x57.png   | Bin 4464 -> 3272 bytes
 res/vector-icons/apple-touch-icon-60x60.png   | Bin 4715 -> 3427 bytes
 res/vector-icons/apple-touch-icon-72x72.png   | Bin 5571 -> 4175 bytes
 res/vector-icons/apple-touch-icon-76x76.png   | Bin 5953 -> 4438 bytes
 .../apple-touch-icon-precomposed.png          | Bin 14677 -> 10430 bytes
 res/vector-icons/apple-touch-icon.png         | Bin 14677 -> 10430 bytes
 res/vector-icons/favicon-16x16.png            | Bin 1343 -> 673 bytes
 res/vector-icons/favicon-32x32.png            | Bin 2512 -> 1581 bytes
 res/vector-icons/favicon-96x96.png            | Bin 7536 -> 5628 bytes
 res/vector-icons/favicon.ico                  | Bin 4286 -> 90022 bytes
 res/vector-icons/mstile-144x144.png           | Bin 7541 -> 8265 bytes
 res/vector-icons/mstile-150x150.png           | Bin 7635 -> 8575 bytes
 res/vector-icons/mstile-310x150.png           | Bin 8213 -> 9067 bytes
 res/vector-icons/mstile-310x310.png           | Bin 57648 -> 17902 bytes
 res/vector-icons/mstile-70x70.png             | Bin 10149 -> 3999 bytes
 scripts/make-icons.sh                         |  93 ++++++++++++++++++
 37 files changed, 93 insertions(+)
 create mode 100644 electron/build/icons/128x128.png
 create mode 100644 electron/build/icons/16x16.png
 create mode 100644 electron/build/icons/24x24.png
 create mode 100644 electron/build/icons/256x256.png
 create mode 100644 electron/build/icons/48x48.png
 create mode 100644 electron/build/icons/512x512.png
 create mode 100644 electron/build/icons/64x64.png
 create mode 100644 electron/build/icons/96x96.png
 create mode 100755 scripts/make-icons.sh

diff --git a/electron/build/icon.icns b/electron/build/icon.icns
index 55c03d96cd21f61fbd5da9d659266a8324bb3754..d74e97e738eebf762f9183dd459e8c7287436d58 100644
GIT binary patch
literal 244823
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
F|39V_ya@mR

literal 180819
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
ZgL})B$0x1deiGww?dWFrQEe}}{|nO~|11Ci

diff --git a/electron/build/icon.ico b/electron/build/icon.ico
index 8b681ffba3c1fbc6af4ad68fc41449ce017d9b53..a1a73e6cfdc4befddf4b5b9f1afb9429d24055d4 100644
GIT binary patch
literal 90022
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
aIa1I|(;NR_{&n<De83DV+{(}@?f(N)0L3E!

literal 21650
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
Mnuf@?>b4R81I3T|A^-pY

diff --git a/electron/build/icons/128x128.png b/electron/build/icons/128x128.png
new file mode 100644
index 0000000000000000000000000000000000000000..54149b1ae2bb1c34630a4978dd7936115ca3e25b
GIT binary patch
literal 7348
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
a2>w4Vw%njRv!0;<0000<MNUMnLSTZ!FD>l=

literal 0
HcmV?d00001

diff --git a/electron/build/icons/16x16.png b/electron/build/icons/16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..def4ec5eee34eb864994e5b7f6034563f6ad12f3
GIT binary patch
literal 673
zcmV;S0$%-zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x0#->xK~y-6eUnW{ltCEBf6u({yPx9fb}-k3q#*3$R-^^h$&*(*L}Av!
zLx)HVL4+2G$_ffPL=c1>qmT{}(WOq+#ZD<mC8T8wn(Mml$NMqUL3eXa`W^rC%x|7~
zh7r~o8oc#T=E{8{s6_V;qWc>F5X1yVXIH)A8yy5!)17A~*?<5HUA%pa+5B5$)>B((
z8rX-5TZpVxg~UNbOs23rknT8rw<1sgD#nrOW&q#dXUia901+W#JN))b(i}_P8Tl~Y
zT_bRg)_=4c!qxqurYMn?7)k_7gt!$Z=N3tZ>nH_f;&$|2jld)$rPltvG@eM2=t_}1
zw~P94jF55&D+duFY}qWA^N0uuC%$v!-Q#uuyJE5vAsV|{a03r*3@cud=4d0@7&66W
zlqf7wge(VzfY1g^R|T7~fN%3Zalhn9v?kHp6&gdJH7JFFTulcX@wAVg_gEbNjPW!p
z@}1Pl-GmP`QVL2)Ag*H<C#y5qNGb4W2-T5)zliblT4-Ql;w%1AiG&j)=NIp%5B3+f
z6r^I?P$JlIrzSV9X6flHi-pxGRDQVT6>2+h35+3myag*_)vnFu`878EymI=M0stlO
z!&!M?+T-K@4#->{>>lm>uV9_mH%14}3Ow7C+e-AKo}MSxUx6hW0b@X;F-AbN22ggW
zA6VEV+0#~<I#d+|#+oSvW$gtX1;31IJfq+f!1amYCDGEy+PA1)1fTh;;9AG2%wi#T
z-ZlPGp!G_okiC>X+&fdL9(!@+m55vbvcQ5tdT+i=&jb7c_aE>Ewv+3A00000NkvXX
Hu0mjf4VW>J

literal 0
HcmV?d00001

diff --git a/electron/build/icons/24x24.png b/electron/build/icons/24x24.png
new file mode 100644
index 0000000000000000000000000000000000000000..6fe144ea13d65f90b075f89d3d8bbc13fe526bee
GIT binary patch
literal 1118
zcmV-k1flzhP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x1QSU_K~zYIm6TnGRAm^)fA2YG=FF!%v$M|Zy11G~-yc>65kePH5mK=b
zdm|c@)kSobQW?}lL0J-F1SQdhNEewwMhVtU7luUHRpoBzuDj~)?Ck8$*ZG=r&ii(e
zPV0`d>H{yl@ciHZ?|IMroJX)I-gsrtny?l8pr%{50Ge@I8uO8r2vb`uLn_(ur93MH
zKOxnDcOHD^54wc7w0ZgQeP*JsURKp0y;zXCIm4P~Z@=u2jzAX%R_Ic8Ysw0|gRQ`S
z>4QzrHI@R}r6t!pJC>RQG)JpcPS4Tw9h$yFqvcTc8cbLvDsG)s@jkICk=+{8Bfk`n
zAINtFD2)x>uGy-(1WFPpNr)t>8x&$029r5v+<63o!DQbZQs?jszkL?DB0$SWX1W2g
z16eZBWP8Q6C=K6Xyjh|@p2ZGabRp=8CO75%#P%x!%!m7akFD+aLPR$7FuTHLvRQ7g
zl3OKiL|K;}V6rhwf1;New?-k6MMJ%YQth`jE^VZyRAK9ll#fjjp0V&FlKzc@$otX^
zrE-KywV_fe=Da$tTW28IOUbE{Gt=0<ODtjz6;B+zrwAu60|00-ofVr`(I3xnx;{fL
zRbbAmQ*vrFe4B_CK>$wZvO1Y(+F4*_tcUaV9Qjy=S+`13H*rJvPOb!4F7mMqSu+Jd
zwPjQFERu#vAVWZ42#r97#Ed8s+TC=`fcaJvJ8+TBfM)2?-<PA}HOQH1lvIQ$bfFQb
z5TU4C7ogWnQJtLU!q=mC(>4h3Z_1Dy9>6tQq@yt`-yvzlsQDHsHG1i+*3DF0?1Ng%
zV(k1B6Z`-C&m2I3HCn~~>H_Di3Wa!<vR5Y+iD89q`P5Y6#8m+RQQhFy%xZd0DU>HW
z^35|f%wHWUZiC)viaD==Qey9+k&*DKfVgh9`+i}e-nEFzk5jZR*u?ZG^KSibUAOlx
z&UXdekSetQ+@7`Bt^g&W_RSRI^V72u{i)){7wu~Tgi2C!s{o|#$`Kz*b%nHM9o&y6
zkG}iBmVcJ!mVJYWreo?6YQ9B$cn}d?M(%{$UVZZI&DRA0@MS<fa6WQ-<a)Bk>&r-m
zQtFEx!^O)+_EiA@NVQPBf6JNOpYM8K!MDpO^IFI!*AG|}Mi6}-=sMa_JiYUY;=P>!
zC8WAIF+-`4N&x}|C_%fg-#faiEQHt&{6Aiogb-}(0EC)6YlR-!Xo^W|j`8LU*=PzY
zaL|O9SZuKS$Xnkl__XUKl-4;a#wHTSYc2bvCw<nX3JfJzq6<OAYmD15b)>_@OYRi#
zS4Z`5?8EQg{J8^gXk;Wb4CAr$R%QQa?ObWBK0QCtnEf&o!9#oQ-exT|+H-8D)l$Zz
k0uBQnumJ3f!|-C=zby&fX8FOv>Hq)$07*qoM6N<$f&)t&(f|Me

literal 0
HcmV?d00001

diff --git a/electron/build/icons/256x256.png b/electron/build/icons/256x256.png
new file mode 100644
index 0000000000000000000000000000000000000000..563e6d5edc95a311527467d5b2a4c5d2b600ce47
GIT binary patch
literal 14743
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

literal 0
HcmV?d00001

diff --git a/electron/build/icons/48x48.png b/electron/build/icons/48x48.png
new file mode 100644
index 0000000000000000000000000000000000000000..9cd225d40238c5f2ecfc101793df154f3961c820
GIT binary patch
literal 2620
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

literal 0
HcmV?d00001

diff --git a/electron/build/icons/512x512.png b/electron/build/icons/512x512.png
new file mode 100644
index 0000000000000000000000000000000000000000..328a723c97e0f41b6c9035443b54ab52e15a4d46
GIT binary patch
literal 30435
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

literal 0
HcmV?d00001

diff --git a/electron/build/icons/64x64.png b/electron/build/icons/64x64.png
new file mode 100644
index 0000000000000000000000000000000000000000..20a7a6cff341f7163a41130d2fdb1391a33ab302
GIT binary patch
literal 3652
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
Wm?wS4k}V7X0000<MNUMnLSTY<u>YO_

literal 0
HcmV?d00001

diff --git a/electron/build/icons/96x96.png b/electron/build/icons/96x96.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb48c2c91e919f8308c9af3509422173105ca0bc
GIT binary patch
literal 5628
zcmV<Y6$9#tP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00006VoOIv0RI60
z0RN!9r;`8x6|qS~K~#90-JN-q9aWvjKewvhzVw=OchcDtAjmSKFa*ZIgL6jI!3ZcB
z=U~VY7(F`UpbijFgh#^2BBL`p+fm1n#Zk$4ki|hA7j%vwxPV9^Ng$9;(%tFx_1oX8
zs(a^;*Zp4AOE>-2?uPF<eNJBL)~#RN-@U*4+wQLfO~eh?-Su`X@wepdH>#}NMpk<9
zYZ^fvt;>U0A4Fdl0KeAE$5tXe{g)DgVX4%9fjFR)*k^0<=eM7;W4x6QuN9&heeC?3
zyRKuRaI;EUp?O>D0`1H&#(5oxHlqoTuL%;tZ-wH=N~mw|K4-_13r#>J8e+iC_wPDW
z2<`haZuQiBvo0{+(t*CE4Ma2ML0veYQ1=^}{BrD%J}|r(1l0ZJ*I)gaOT~osEoI7v
zrg8Yx4wk=n1G-;tq#FPfU@M6&ZES4vwnf%9v7|NMtpx?&GNjlQJ8%1o4HHrW>SDkR
z@4NjkWTx;9lxoV<Z9A!x%^!RtLTk-Ru$4{H%#$?JB+M*%+nlSZDHQ*lv&~!Xdh=Du
zmJm~cn&0@w_ry-ImG&H_^fZ%@<y%&=VcV(A>~c<|tvnO?B$I_CmXx!!P=iA8iCyRJ
z_*ScFsfhuXUG{*!PJiJQ(z3r5#B99sblOhsZmbgpn$XaNHt*JABN@vk7|F#kr9E3$
z_ZeCLM`9OjOEpH++^C5GH@s)pm9ilJqh-W&dGLO)ADSSF1mM*@_%she!$-suAY}N_
zX5ordl9B8b!?{VMQk9oq&~+}0oqfgg4HGp7omC+gi)opC+7MZ}ycLAZ!1M0qXs3l+
z(zg(THcyaFUz9d)08#P!dE4YjdW?jbsl0VcDRJ>_=Wc(z*)&yc5v88d&TjSK1K9i0
zE$dq;MZA#aP;!X9lLL(8;z(8A1AMxN4beVUhPo<eW}DE|_dfmPecPH%Q`IV@=2MrD
zZT915!7EwT`+Ly5^;yeGDQqOBZIhQKIlDl{%AX)w3ew_edYs{GoRz^YI(-oYMUl|s
zZzp8<Ig}j6n%Nr^K7{(Oo1ePJ+;z^52OE3IGOA{P5c;1f=GCVghBPIfaY<-(^Td!;
zvZ(nKQpEEqY{#s(q|M>f2xIvqYeUQM=|$x(Z1_1jx{`y*K?-*1y>+F;H*b3Ko<G0s
z+#Nq`25r?(GbwAgcI!lbD%aHhG@%jk1XvSV#u*)JS>qV!8KliDFH9X}GGA7Be7c8|
zqbn=hdW8`GebbZoZf*u`Rd2#OFTFLXOx2p*u>yS;ucv)WJ^U7ELZAyBuWsNGb6eL+
z!FVCTU}pRTTc9`4PG7LR59FoAf%s8OWjpVG-tc74iJkSK6L#!cP`w*LV>XMWB^XmF
zCYoS}>Ov#r@e}a`X!nNkY30`y0=j)s+C3o#(qqI6<(WU6E!qXE!^;tXPczsM?c-o#
zuq3{O;55q&d;z$+5gMx&LCU93HS(aE5NO;l1Vz74qLATOdYpZehdGcKBw=Q7ZpVhE
zvo6v@f3Vx7mX7C>98Qgt+6E0Dt3z%jPzbKN>B;-HHbP_73=ly*-pGS$f#_<gmjfs|
z>QZKw7ZXDqm^w<@D(^D_SRQC&L$nuNl!s&@pJXUg4j***LUj3}Zdy@ay!N;E&hLhw
z1J$dcYXb-E;r!|KKB!vwy92yo-G;jFmr7zPyQqGed6H(9LWMUpZROcNHAqjOjTOPp
z(#(%~f^3NN@nUkQWFHJ?;{*&J9p2*h*B|a8X=TcqkzjQoqdp0Isvdf)UIF?Wqx+lT
zBA5>yo0s9$jJp5)x|fI%V41ItHR0vFp<@l3qAO_khH&c~isRWh2c`zgx;_y0_*oz6
zafzdW)M$x`IvV}K3V)RlpZMgj?(3`PeXAEi?M6mBrS6qh-7_>n@A<2n+b0n51Xv&G
zWpi6UVZ-mbp0;xAPaJctlBg%hieP8yx2+_vIQD~fZ-}TT=<LR?o9bir&{tD1#dvEc
zh5acw(Q()mg#WOccrXvyeBFI`G##(z!Ebm@P(uTTmrZRe8OcpCm>x$>4{6>uIhYva
zr07aKTJfIcfp$_>mZ?Hf%S@SB;`tOEzM?4V3wDy2a%iA}567PP%AK+EuAZoc-kKO7
z+6;^>9auk~tmU@q5Y{QYImlq9IWcnq1Pwp!zA)XsNNIB|x*FOD>Rt{dhf8W@-ZptT
zHO!{y%92ZBO=uZ=%_F5Y$1>xz`$7l=p=l3m(k%IBB9`Xc4*XLsbk^)}(cjX6zNyKg
zNE3K3>49)_)K4gCJ!vb)vGf?vPYy7gjhALT6vfiU=n8a)tWTLam)2uw27SSf((i(_
zn8=k4l;!?**E0odua(Z)JzfI5m-G@^9i6{zHPFG>x(sbi07KIn`g5v~PT0z3Ff-19
z#E@&l4H-VxM0#CY^YL7qj8zta%lvJ49R}QRE)LU-jCz6?np23VH^qK=?`gHXeq8}|
z;T4?z*JtzcgD-IW7su-9qS#MB$9QiK+G;;N{&v^KS1+Ven93$)W|+*UNjeO#w3%gp
z;uxDEEAZ;YS8w+QSsrNTc(!QfC<R9|W1JLSS)>s`PoSM6=`o-vs*+}oh$ny$(CG~`
zk}I1?w#CIj)xn#(Go*w^WBs;M*>w5o7#-f)?$w}Y%Sr+tT7$OQKmQFiKobI=X3*t}
zvN77n$!-0FJb}{nylwJQY8cz$S?LROy4(~gGv}1;bowG_6$aW2I=n7z2n27fiQZZo
z&xY<d_0oOKW{iuLp{)xbjJa(Ez1>US`D-}i+Vfby?Nmgh^@&+Q!^cU{K9>30O8=L&
z@(iR#OTRTCSP|@U-8Zu$py*R-bEuv1LYkTILeS%P?IQ@z`}h+NlsP^Rnlb`H1O3bh
z`k4{J%13WJL?M~SOqq<DQxrl9(e9yRMLTOFz4P{GBRQ6?PaD#OMo{+=^#&c9k6=}(
z8>JLu`2+xy`4rv0D3R&aQFPXglb^N+l4b@=S|u6Z;R`c4?Xa_zBxC0Z8NQ-M<O!6+
zm<nIe$ea!QtQvZoJ_UtW5ZzeT98yy{mQ`aYO)185iH7LVh0cm#him4q3U`yW3nf3$
zvCKFpxAhm*P63_%C_|Z|8n1wOAw##nsBA<$eu~Ozaq6e6EFr@OK*;dB;>eoRPoYW%
zv@}Z=aH)O^30v75Nsn<PT^2P0L4T;bBrq~oo~%RTneq3`AnBMmy3h$2WhY_QDwO{1
zuL$lSIJsInTP}nvGY{&4PczW9>THC9v|Xu)qqzh@-AC8-Ob!`7LY@Gr=}k6XNE4i%
z$v)kKp&6z7ogPyt4)n~x=j<{Ayp;@4YUwbb8R!dj(&>#<-F~W&;c)tRDbjT;J5da}
zPv-=+dqX7#B+LveD5}2#2<l!E(+n_e3#nvD1M+J=ika_FkmdA7ujU>`0n4hTwe=!s
z5fY!<yg`@8(vmg_t1P1<4u@RccDt&b@m~cL9AQYOp=T>u60Vg7pn|GrOUoG`7H12f
z!xwR7!DY>|$nZF3tW-A2k+M=bn6@KctZU_KN`aiVB{Xq@pj|o)Sd0|_MRB4zyrI%z
zcsUuPz-5%3kh<tdVL2hI(ZM+3W?a>lY0DX~SSU!#wHbS~vS@K8;tGmc6f>|ZG9;W9
zu#{@nYf6DquKTJ^=6zi<KvC53orroIa^JCmdUTf^>q<QVT-ulIS`DJ4;YnnrvR!pf
z$7@0hDp(d7ZT=vQLQ#+w<M||sLV44TdV=`$vQ(IITnp+xS07IGQWF|p2Lqf@Gmj__
zouy95*s0ozTmU<u@m+W@JHcSKra)5(hNiJ9RMv>3l1vuL3BYaMkn5V$zzXOdoN;95
z$r`8em3J_$2ywV-`l@YMFH}<wV$RmFLJbwL4`m>3p%NBKf(Yt}u#UFMk7q-K4a-)z
zRLhavRB3O}gm5t+Y35v(d)VPcRY1lruR>>^IjiExlT!PueT~<|3UHyIu%3z|pG}|=
zvz}@J!2abFmUf&Yo8zo{+eSjGB4q76!wxU!GG7~p)6HCPi*9G&J!co(*%J<1B3H2j
zgvQcgKt0fe&M9pto`RbE%?Lw}9m1ZfT=KI+NtoO_Mtt8G?WZrpys!=FEy`;{)94MB
zLyD%fi08|q$s=^aMtKD|oo&TTi!uX}6)p>@^k=IgkOg5t?INfcP%m$eO2WV+`x*S{
zKwT6l1(VN>B96rIyr&1P$II%_a+mr!l$msipDusIrT0%bvZnpIujHmSl}*9D0*>9b
z<?@5o(zXC<XoDh1DGuKI+qwte)zzeldEX#i$-s1?RuNe%&v>D%xM)Ii1>7sWrk%dB
z*ECsh=b9=dYC1QtWL7}d&d(YH82{l>CY~E<8Z{~}8N262davok+wR9k@^b39)2L;+
zzYW8oembLLLKH)kGjOg901f`P7J8P<9xzqNxb$-Xc_@qdlcA<RD?gRz;Qhbj)Q_CS
zKzfv%?e=W;2Fd}YoHU7><w0)uhD*s?rm{&|E}GLhyYO%=v@BgqSShR@k2fsA=0f67
zoPFQlTM9Em(Jiqy+~e{G9ZijuR)+w39inMGm%x4WOgvcY3Hv3>0Qo`&b-X%lr(Ps}
zG>jT7%l7_I7h#8X6ECD)+E1G|Oki3$kV-O=b03*dO5Rf|4T~y*&gfV(=e6JOdxn-D
zNRSHikrBLC_0t=1$B#{EF_0?nJ(|$ycVteC<r6NuKp~#JZOir_!H$|pSduG1T8iYM
z`dkmSLXDaDewuQnr6{F%Id$CS<LL`@l#;n@Wiy;{=f`Sr8>05;$C6|~Y9NkXSg<2$
zB%c~3{=$s+RPl0Zgp^q}t|Fd*OD!EtPr8_+6whntyj0iO;RO{zS-VhG_H%l8VP^jf
zl!BMOxtBApKbK>2(sf|ZqZzCV_mqsXw3%fzU!g8*ToV(qx@OFRG9Yi8E?>-Cu%{NJ
zRF4aVM4sP${WoxF*>kE3jg8UXl1*Sq$;+uxoT`};eEqg_uK01i&s~xtXpvHh$p1cp
z{akVO>j>6IdkIX(3lwlTJ>trS0LBbqU)#ttTfPE3(`UD8f!Xd`fT9Sq!}{JBp4CA%
zuI?w~aK;U0#+fR(3W+GC#8r*fnrk@&)`n{@u#)Ug@H~Sppr#6#68*7Bf*;vb`md2(
z+~tk{5OBxtbGO%I_0EPRDT2cN5scvCnJB44Qw;s&WdKI9QyfiKC<Tf~wd|^!oAInA
z$pE1V+Ba97T-Fi{JoXZ=96Z9&%or7$(o@+W?~7e<K~tpUf=;uPnPWIx-2p%I4L<mF
ziwSxaD5*HU=MbK&R>Jg|2ZeankokAsedg6ot17ji46u|vTRE`Vu}VW*A3z>jh$>OD
zLyi@&el(78VK>0zrs2EzwzIZ3wPwbW6hSl4|Fo+)#g!X?{p$qw?~*@@PsHDT=ULmD
zUa(|QopE8q@5($o0V{)~|0GZ5XQOksX*CpB507pP8{RNb{|WLru&4}J7wIhpH|B!c
z+RNToo+dfa*om12u|nE~F9Vl0yW=G-f}p4oZQOnanzwm}xa)yZTyot-u`8P0?~-Q#
zfWIri+N~!oHW>)Pzud4jwy~LgE}59{XfDC=S5Z;bDGFm#2<u?$>WWr@uvC2QvdbQL
z%bq>kno_c4$*cfdNea@M^UqW^+C|+ET3k^C{PFtSzU!LR*^*&EH4s4^&pQ{_LIzN<
z>xOsjI=dNtEg2Eyf*>zY|2W$v{p0|0b>JQLK=zD<Cd&bjMBel9%Rcv}&+qv}Lzd#w
zWPl>SYs-!s=DK|C+djKn^YIL@X|6U4fX$v<;tt@NMml*-iJ%$W{e$b$QfWJAS?#W>
z@zI^{y7e86bnu#F0Knak-u$Ex+`h<U2!;B}jhB3;YyPIQ<2B0wfIxy<1w6ILWXxE}
zb>TJ5fY{?PO9<Xi4W|-Yfkv$4*E9nF?sz!%BCvC@>CgmUynbtJMa}oMf|!NIU5~{6
z4fyV2(x4zJB)e<9?{&cdKq;H6fw4s;La^i7t+ATylh+Fa`0W40h6SRbQu0lJuB+P0
z*}rZW0C49cw>%^iUtMG}E~SPz-s_4107?sd3^=rC&xe&e-@U8q+M%yI2Hf@V&ZN-T
z&LUdLO38KAwtd|(0N~DtVov~fEY|ad6sxLjTm2_YG*t>nSLV(-%N5xtehRPzSy9x&
zc@EcA?nN{n{0=6G0Z%vDPd$*L1@(e7B}z%CQb||o7H9Hp&MvsFIpI7}u2<CQah3){
zHJ%t6dpu@og3DP1D_PW_4p%RNG|e?A&dMRqWBXF6={n2qm5?^GOgPQ~N4x=-s^C6t
zE}D{=d&k4E7ljgYy0u#cA*uRcbJYwmbA{({Y;04G47ZRc;3_RJkxz0UG013sig+Q-
z(exMx5<@PQEOQ+Bv6UocI;4)0&s0m-e7N(`TmF@WwURA@zF$<^xM~L6e*TrC0`c>i
z-xK*{X+UQ_cHm61N|`y1q{cXu9A+dpRZ)kbTr#-amxDdJ{+(*+ssc(HTnQX+VxMzE
z@Z_C)Zm2qgt|l!=DfR7{f9GwJafe6=7(O;cdR=mTHgx%-tacSpQVh9s?+@=j`|@Aa
zLf3q_`@z_VRN}+U>~k&%#5ZbbUlRjT%Kv5H$jt9!nTd+MAi$~ZtEOu$IKEmpeQjf;
zk2T?CF0JWEdel{1Patls=eXy5xckvt9t8fg+5J{vsNjoyt(F^VV!-Fm+m=O%T{FLJ
zW%E*UxS~3tPJgJIGdk9AddFH$YhS}3bgpMpbOq6hTKmJ9NyhW819^LYKj6E!7Mf~;
z2wX!8tz@CZEwu*eYtKDaN__h1d%uYirH>nXG=mM1Ue`waYA9+-qm_f7m4fsC{+uhC
zDt;<){npr7C>{rz`XL+vd+vNBR`Um+>-dI@P<keCm4fGH{>zjWFH9ZdaB9RQk}4sU
zWIUf_Uwoi)@Rd;N1Far>fV&=!{YoG%ho*j<^m!!$SJiW4-P!jyK6Ou*p~N2Gg34<F
z-Al;u<JAp>(6FRM&MuHNvnPDn8pwhAtKD06++Qy(_2Bx8ZoM3#z61p4ZTu=w@VG90
zm)`N+8|(VES3}1iVtXI(%4F_y3O-DIex?0L^_RQP+tD<=zZUGgXxEua$UW4TUu2>9
z_h5j(i|vWkUDl;3=TAQU#QmqE$=iW<R@vu}QeyXrC-apro%Nx)W!3`Vqwn~FFX)-P
zQYm#KP>mB!0*~1m*Z;#qv3-p`zo`d+KK1lhR|#os6@m+uWStQ70%2gN=w492R7yOw
z|A_DZ_H1iTc5$;1yDa9-WW}GLsS8oO8CU^y114}3#UX+CK>__cpMUhG`oG;(f&T{$
W375=kO9c!70000<MNUMnLSTZb2m0dx

literal 0
HcmV?d00001

diff --git a/res/vector-icons/android-chrome-144x144.png b/res/vector-icons/android-chrome-144x144.png
index 2a83f5216943004f4fe4517cc160f4becadc1ae3..30c8cf18dc56e12f06ab42e97d0989b84f1d6516 100644
GIT binary patch
literal 8265
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
Hu0mjf1S1JS

literal 11585
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
E1=A$_a{vGU

diff --git a/res/vector-icons/android-chrome-192x192.png b/res/vector-icons/android-chrome-192x192.png
index 5794bdb0e48afa65075bd937ae19bd8f33b8b316..560e20ad8cdd2ae13374609541d890908b9434d5 100644
GIT binary patch
literal 11002
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
X3&y1Fm|Q@MSpjlV%91tWrlJ1_X|-Ni

literal 15761
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
ZA5V5TwDl~BJ{%c9K~`0!O3M7h{{dIvlxP3|

diff --git a/res/vector-icons/android-chrome-36x36.png b/res/vector-icons/android-chrome-36x36.png
index 17b6fe83b602a8fc3cf4e0182843d8e65025a8a1..ee41772f4df498245e3597ad8ef2efe26cb5889a 100644
GIT binary patch
delta 1877
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
P00000NkvXXu0mjfwrP(>

literal 2814
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
Jw!+ji{y$xQ6;S{H

diff --git a/res/vector-icons/android-chrome-48x48.png b/res/vector-icons/android-chrome-48x48.png
index 7435fbd84443938833750b4619a30436fe28151d..9cd225d40238c5f2ecfc101793df154f3961c820 100644
GIT binary patch
literal 2620
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

literal 3789
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
DZB+gE

diff --git a/res/vector-icons/android-chrome-72x72.png b/res/vector-icons/android-chrome-72x72.png
index 9fdbbefb64581da9bf265586c751920318f3a34b..d9de0c57152baa47984d816bfaabe9d78087791e 100644
GIT binary patch
literal 4175
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
Z{{uvUaU0hh!*Boq002ovPDHLkV1hiu6ea)w

literal 5571
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
M>IQ1HD)y2810DcRyZ`_I

diff --git a/res/vector-icons/android-chrome-96x96.png b/res/vector-icons/android-chrome-96x96.png
index b9d4326942168849f8cb3c561f2aec69e6026bf8..eb48c2c91e919f8308c9af3509422173105ca0bc 100644
GIT binary patch
literal 5628
zcmV<Y6$9#tP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00006VoOIv0RI60
z0RN!9r;`8x6|qS~K~#90-JN-q9aWvjKewvhzVw=OchcDtAjmSKFa*ZIgL6jI!3ZcB
z=U~VY7(F`UpbijFgh#^2BBL`p+fm1n#Zk$4ki|hA7j%vwxPV9^Ng$9;(%tFx_1oX8
zs(a^;*Zp4AOE>-2?uPF<eNJBL)~#RN-@U*4+wQLfO~eh?-Su`X@wepdH>#}NMpk<9
zYZ^fvt;>U0A4Fdl0KeAE$5tXe{g)DgVX4%9fjFR)*k^0<=eM7;W4x6QuN9&heeC?3
zyRKuRaI;EUp?O>D0`1H&#(5oxHlqoTuL%;tZ-wH=N~mw|K4-_13r#>J8e+iC_wPDW
z2<`haZuQiBvo0{+(t*CE4Ma2ML0veYQ1=^}{BrD%J}|r(1l0ZJ*I)gaOT~osEoI7v
zrg8Yx4wk=n1G-;tq#FPfU@M6&ZES4vwnf%9v7|NMtpx?&GNjlQJ8%1o4HHrW>SDkR
z@4NjkWTx;9lxoV<Z9A!x%^!RtLTk-Ru$4{H%#$?JB+M*%+nlSZDHQ*lv&~!Xdh=Du
zmJm~cn&0@w_ry-ImG&H_^fZ%@<y%&=VcV(A>~c<|tvnO?B$I_CmXx!!P=iA8iCyRJ
z_*ScFsfhuXUG{*!PJiJQ(z3r5#B99sblOhsZmbgpn$XaNHt*JABN@vk7|F#kr9E3$
z_ZeCLM`9OjOEpH++^C5GH@s)pm9ilJqh-W&dGLO)ADSSF1mM*@_%she!$-suAY}N_
zX5ordl9B8b!?{VMQk9oq&~+}0oqfgg4HGp7omC+gi)opC+7MZ}ycLAZ!1M0qXs3l+
z(zg(THcyaFUz9d)08#P!dE4YjdW?jbsl0VcDRJ>_=Wc(z*)&yc5v88d&TjSK1K9i0
zE$dq;MZA#aP;!X9lLL(8;z(8A1AMxN4beVUhPo<eW}DE|_dfmPecPH%Q`IV@=2MrD
zZT915!7EwT`+Ly5^;yeGDQqOBZIhQKIlDl{%AX)w3ew_edYs{GoRz^YI(-oYMUl|s
zZzp8<Ig}j6n%Nr^K7{(Oo1ePJ+;z^52OE3IGOA{P5c;1f=GCVghBPIfaY<-(^Td!;
zvZ(nKQpEEqY{#s(q|M>f2xIvqYeUQM=|$x(Z1_1jx{`y*K?-*1y>+F;H*b3Ko<G0s
z+#Nq`25r?(GbwAgcI!lbD%aHhG@%jk1XvSV#u*)JS>qV!8KliDFH9X}GGA7Be7c8|
zqbn=hdW8`GebbZoZf*u`Rd2#OFTFLXOx2p*u>yS;ucv)WJ^U7ELZAyBuWsNGb6eL+
z!FVCTU}pRTTc9`4PG7LR59FoAf%s8OWjpVG-tc74iJkSK6L#!cP`w*LV>XMWB^XmF
zCYoS}>Ov#r@e}a`X!nNkY30`y0=j)s+C3o#(qqI6<(WU6E!qXE!^;tXPczsM?c-o#
zuq3{O;55q&d;z$+5gMx&LCU93HS(aE5NO;l1Vz74qLATOdYpZehdGcKBw=Q7ZpVhE
zvo6v@f3Vx7mX7C>98Qgt+6E0Dt3z%jPzbKN>B;-HHbP_73=ly*-pGS$f#_<gmjfs|
z>QZKw7ZXDqm^w<@D(^D_SRQC&L$nuNl!s&@pJXUg4j***LUj3}Zdy@ay!N;E&hLhw
z1J$dcYXb-E;r!|KKB!vwy92yo-G;jFmr7zPyQqGed6H(9LWMUpZROcNHAqjOjTOPp
z(#(%~f^3NN@nUkQWFHJ?;{*&J9p2*h*B|a8X=TcqkzjQoqdp0Isvdf)UIF?Wqx+lT
zBA5>yo0s9$jJp5)x|fI%V41ItHR0vFp<@l3qAO_khH&c~isRWh2c`zgx;_y0_*oz6
zafzdW)M$x`IvV}K3V)RlpZMgj?(3`PeXAEi?M6mBrS6qh-7_>n@A<2n+b0n51Xv&G
zWpi6UVZ-mbp0;xAPaJctlBg%hieP8yx2+_vIQD~fZ-}TT=<LR?o9bir&{tD1#dvEc
zh5acw(Q()mg#WOccrXvyeBFI`G##(z!Ebm@P(uTTmrZRe8OcpCm>x$>4{6>uIhYva
zr07aKTJfIcfp$_>mZ?Hf%S@SB;`tOEzM?4V3wDy2a%iA}567PP%AK+EuAZoc-kKO7
z+6;^>9auk~tmU@q5Y{QYImlq9IWcnq1Pwp!zA)XsNNIB|x*FOD>Rt{dhf8W@-ZptT
zHO!{y%92ZBO=uZ=%_F5Y$1>xz`$7l=p=l3m(k%IBB9`Xc4*XLsbk^)}(cjX6zNyKg
zNE3K3>49)_)K4gCJ!vb)vGf?vPYy7gjhALT6vfiU=n8a)tWTLam)2uw27SSf((i(_
zn8=k4l;!?**E0odua(Z)JzfI5m-G@^9i6{zHPFG>x(sbi07KIn`g5v~PT0z3Ff-19
z#E@&l4H-VxM0#CY^YL7qj8zta%lvJ49R}QRE)LU-jCz6?np23VH^qK=?`gHXeq8}|
z;T4?z*JtzcgD-IW7su-9qS#MB$9QiK+G;;N{&v^KS1+Ven93$)W|+*UNjeO#w3%gp
z;uxDEEAZ;YS8w+QSsrNTc(!QfC<R9|W1JLSS)>s`PoSM6=`o-vs*+}oh$ny$(CG~`
zk}I1?w#CIj)xn#(Go*w^WBs;M*>w5o7#-f)?$w}Y%Sr+tT7$OQKmQFiKobI=X3*t}
zvN77n$!-0FJb}{nylwJQY8cz$S?LROy4(~gGv}1;bowG_6$aW2I=n7z2n27fiQZZo
z&xY<d_0oOKW{iuLp{)xbjJa(Ez1>US`D-}i+Vfby?Nmgh^@&+Q!^cU{K9>30O8=L&
z@(iR#OTRTCSP|@U-8Zu$py*R-bEuv1LYkTILeS%P?IQ@z`}h+NlsP^Rnlb`H1O3bh
z`k4{J%13WJL?M~SOqq<DQxrl9(e9yRMLTOFz4P{GBRQ6?PaD#OMo{+=^#&c9k6=}(
z8>JLu`2+xy`4rv0D3R&aQFPXglb^N+l4b@=S|u6Z;R`c4?Xa_zBxC0Z8NQ-M<O!6+
zm<nIe$ea!QtQvZoJ_UtW5ZzeT98yy{mQ`aYO)185iH7LVh0cm#him4q3U`yW3nf3$
zvCKFpxAhm*P63_%C_|Z|8n1wOAw##nsBA<$eu~Ozaq6e6EFr@OK*;dB;>eoRPoYW%
zv@}Z=aH)O^30v75Nsn<PT^2P0L4T;bBrq~oo~%RTneq3`AnBMmy3h$2WhY_QDwO{1
zuL$lSIJsInTP}nvGY{&4PczW9>THC9v|Xu)qqzh@-AC8-Ob!`7LY@Gr=}k6XNE4i%
z$v)kKp&6z7ogPyt4)n~x=j<{Ayp;@4YUwbb8R!dj(&>#<-F~W&;c)tRDbjT;J5da}
zPv-=+dqX7#B+LveD5}2#2<l!E(+n_e3#nvD1M+J=ika_FkmdA7ujU>`0n4hTwe=!s
z5fY!<yg`@8(vmg_t1P1<4u@RccDt&b@m~cL9AQYOp=T>u60Vg7pn|GrOUoG`7H12f
z!xwR7!DY>|$nZF3tW-A2k+M=bn6@KctZU_KN`aiVB{Xq@pj|o)Sd0|_MRB4zyrI%z
zcsUuPz-5%3kh<tdVL2hI(ZM+3W?a>lY0DX~SSU!#wHbS~vS@K8;tGmc6f>|ZG9;W9
zu#{@nYf6DquKTJ^=6zi<KvC53orroIa^JCmdUTf^>q<QVT-ulIS`DJ4;YnnrvR!pf
z$7@0hDp(d7ZT=vQLQ#+w<M||sLV44TdV=`$vQ(IITnp+xS07IGQWF|p2Lqf@Gmj__
zouy95*s0ozTmU<u@m+W@JHcSKra)5(hNiJ9RMv>3l1vuL3BYaMkn5V$zzXOdoN;95
z$r`8em3J_$2ywV-`l@YMFH}<wV$RmFLJbwL4`m>3p%NBKf(Yt}u#UFMk7q-K4a-)z
zRLhavRB3O}gm5t+Y35v(d)VPcRY1lruR>>^IjiExlT!PueT~<|3UHyIu%3z|pG}|=
zvz}@J!2abFmUf&Yo8zo{+eSjGB4q76!wxU!GG7~p)6HCPi*9G&J!co(*%J<1B3H2j
zgvQcgKt0fe&M9pto`RbE%?Lw}9m1ZfT=KI+NtoO_Mtt8G?WZrpys!=FEy`;{)94MB
zLyD%fi08|q$s=^aMtKD|oo&TTi!uX}6)p>@^k=IgkOg5t?INfcP%m$eO2WV+`x*S{
zKwT6l1(VN>B96rIyr&1P$II%_a+mr!l$msipDusIrT0%bvZnpIujHmSl}*9D0*>9b
z<?@5o(zXC<XoDh1DGuKI+qwte)zzeldEX#i$-s1?RuNe%&v>D%xM)Ii1>7sWrk%dB
z*ECsh=b9=dYC1QtWL7}d&d(YH82{l>CY~E<8Z{~}8N262davok+wR9k@^b39)2L;+
zzYW8oembLLLKH)kGjOg901f`P7J8P<9xzqNxb$-Xc_@qdlcA<RD?gRz;Qhbj)Q_CS
zKzfv%?e=W;2Fd}YoHU7><w0)uhD*s?rm{&|E}GLhyYO%=v@BgqSShR@k2fsA=0f67
zoPFQlTM9Em(Jiqy+~e{G9ZijuR)+w39inMGm%x4WOgvcY3Hv3>0Qo`&b-X%lr(Ps}
zG>jT7%l7_I7h#8X6ECD)+E1G|Oki3$kV-O=b03*dO5Rf|4T~y*&gfV(=e6JOdxn-D
zNRSHikrBLC_0t=1$B#{EF_0?nJ(|$ycVteC<r6NuKp~#JZOir_!H$|pSduG1T8iYM
z`dkmSLXDaDewuQnr6{F%Id$CS<LL`@l#;n@Wiy;{=f`Sr8>05;$C6|~Y9NkXSg<2$
zB%c~3{=$s+RPl0Zgp^q}t|Fd*OD!EtPr8_+6whntyj0iO;RO{zS-VhG_H%l8VP^jf
zl!BMOxtBApKbK>2(sf|ZqZzCV_mqsXw3%fzU!g8*ToV(qx@OFRG9Yi8E?>-Cu%{NJ
zRF4aVM4sP${WoxF*>kE3jg8UXl1*Sq$;+uxoT`};eEqg_uK01i&s~xtXpvHh$p1cp
z{akVO>j>6IdkIX(3lwlTJ>trS0LBbqU)#ttTfPE3(`UD8f!Xd`fT9Sq!}{JBp4CA%
zuI?w~aK;U0#+fR(3W+GC#8r*fnrk@&)`n{@u#)Ug@H~Sppr#6#68*7Bf*;vb`md2(
z+~tk{5OBxtbGO%I_0EPRDT2cN5scvCnJB44Qw;s&WdKI9QyfiKC<Tf~wd|^!oAInA
z$pE1V+Ba97T-Fi{JoXZ=96Z9&%or7$(o@+W?~7e<K~tpUf=;uPnPWIx-2p%I4L<mF
ziwSxaD5*HU=MbK&R>Jg|2ZeankokAsedg6ot17ji46u|vTRE`Vu}VW*A3z>jh$>OD
zLyi@&el(78VK>0zrs2EzwzIZ3wPwbW6hSl4|Fo+)#g!X?{p$qw?~*@@PsHDT=ULmD
zUa(|QopE8q@5($o0V{)~|0GZ5XQOksX*CpB507pP8{RNb{|WLru&4}J7wIhpH|B!c
z+RNToo+dfa*om12u|nE~F9Vl0yW=G-f}p4oZQOnanzwm}xa)yZTyot-u`8P0?~-Q#
zfWIri+N~!oHW>)Pzud4jwy~LgE}59{XfDC=S5Z;bDGFm#2<u?$>WWr@uvC2QvdbQL
z%bq>kno_c4$*cfdNea@M^UqW^+C|+ET3k^C{PFtSzU!LR*^*&EH4s4^&pQ{_LIzN<
z>xOsjI=dNtEg2Eyf*>zY|2W$v{p0|0b>JQLK=zD<Cd&bjMBel9%Rcv}&+qv}Lzd#w
zWPl>SYs-!s=DK|C+djKn^YIL@X|6U4fX$v<;tt@NMml*-iJ%$W{e$b$QfWJAS?#W>
z@zI^{y7e86bnu#F0Knak-u$Ex+`h<U2!;B}jhB3;YyPIQ<2B0wfIxy<1w6ILWXxE}
zb>TJ5fY{?PO9<Xi4W|-Yfkv$4*E9nF?sz!%BCvC@>CgmUynbtJMa}oMf|!NIU5~{6
z4fyV2(x4zJB)e<9?{&cdKq;H6fw4s;La^i7t+ATylh+Fa`0W40h6SRbQu0lJuB+P0
z*}rZW0C49cw>%^iUtMG}E~SPz-s_4107?sd3^=rC&xe&e-@U8q+M%yI2Hf@V&ZN-T
z&LUdLO38KAwtd|(0N~DtVov~fEY|ad6sxLjTm2_YG*t>nSLV(-%N5xtehRPzSy9x&
zc@EcA?nN{n{0=6G0Z%vDPd$*L1@(e7B}z%CQb||o7H9Hp&MvsFIpI7}u2<CQah3){
zHJ%t6dpu@og3DP1D_PW_4p%RNG|e?A&dMRqWBXF6={n2qm5?^GOgPQ~N4x=-s^C6t
zE}D{=d&k4E7ljgYy0u#cA*uRcbJYwmbA{({Y;04G47ZRc;3_RJkxz0UG013sig+Q-
z(exMx5<@PQEOQ+Bv6UocI;4)0&s0m-e7N(`TmF@WwURA@zF$<^xM~L6e*TrC0`c>i
z-xK*{X+UQ_cHm61N|`y1q{cXu9A+dpRZ)kbTr#-amxDdJ{+(*+ssc(HTnQX+VxMzE
z@Z_C)Zm2qgt|l!=DfR7{f9GwJafe6=7(O;cdR=mTHgx%-tacSpQVh9s?+@=j`|@Aa
zLf3q_`@z_VRN}+U>~k&%#5ZbbUlRjT%Kv5H$jt9!nTd+MAi$~ZtEOu$IKEmpeQjf;
zk2T?CF0JWEdel{1Patls=eXy5xckvt9t8fg+5J{vsNjoyt(F^VV!-Fm+m=O%T{FLJ
zW%E*UxS~3tPJgJIGdk9AddFH$YhS}3bgpMpbOq6hTKmJ9NyhW819^LYKj6E!7Mf~;
z2wX!8tz@CZEwu*eYtKDaN__h1d%uYirH>nXG=mM1Ue`waYA9+-qm_f7m4fsC{+uhC
zDt;<){npr7C>{rz`XL+vd+vNBR`Um+>-dI@P<keCm4fGH{>zjWFH9ZdaB9RQk}4sU
zWIUf_Uwoi)@Rd;N1Far>fV&=!{YoG%ho*j<^m!!$SJiW4-P!jyK6Ou*p~N2Gg34<F
z-Al;u<JAp>(6FRM&MuHNvnPDn8pwhAtKD06++Qy(_2Bx8ZoM3#z61p4ZTu=w@VG90
zm)`N+8|(VES3}1iVtXI(%4F_y3O-DIex?0L^_RQP+tD<=zZUGgXxEua$UW4TUu2>9
z_h5j(i|vWkUDl;3=TAQU#QmqE$=iW<R@vu}QeyXrC-apro%Nx)W!3`Vqwn~FFX)-P
zQYm#KP>mB!0*~1m*Z;#qv3-p`zo`d+KK1lhR|#os6@m+uWStQ70%2gN=w492R7yOw
z|A_DZ_H1iTc5$;1yDa9-WW}GLsS8oO8CU^y114}3#UX+CK>__cpMUhG`oG;(f&T{$
W375=kO9c!70000<MNUMnLSTZb2m0dx

literal 7536
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

diff --git a/res/vector-icons/apple-touch-icon-114x114.png b/res/vector-icons/apple-touch-icon-114x114.png
index 0f0ba555bc5967774087dbe8030569b90dc6d653..e07fa437524d07ba46de85aae009ae2332756a48 100644
GIT binary patch
literal 6596
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
C0_wH^

literal 8992
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

diff --git a/res/vector-icons/apple-touch-icon-120x120.png b/res/vector-icons/apple-touch-icon-120x120.png
index bd524795531f69f510bb90c2ef84d4a735f27aa1..8265091318032af8e9c66a8032a0cddfdcf3e3b6 100644
GIT binary patch
literal 6872
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
SgZMH40000<MNUMnLSTXs5>_Vw

literal 9531
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
HE9CzJ*dysb

diff --git a/res/vector-icons/apple-touch-icon-144x144.png b/res/vector-icons/apple-touch-icon-144x144.png
index 2a83f5216943004f4fe4517cc160f4becadc1ae3..30c8cf18dc56e12f06ab42e97d0989b84f1d6516 100644
GIT binary patch
literal 8265
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
Hu0mjf1S1JS

literal 11585
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
E1=A$_a{vGU

diff --git a/res/vector-icons/apple-touch-icon-152x152.png b/res/vector-icons/apple-touch-icon-152x152.png
index 04ed2d47ac755cc32d25457ab9beadd21e565c0f..5bc63546c8635bd0ce5592a27bbef0dad4cc990a 100644
GIT binary patch
literal 8751
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
Z|37I8GJCX~=urRw002ovPDHLkV1k-Vpr8N%

literal 12185
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
BA@%?O

diff --git a/res/vector-icons/apple-touch-icon-180x180.png b/res/vector-icons/apple-touch-icon-180x180.png
index fe13aa99c3aac79efe1ce0e4dd549656f7e0451f..85e9f8ca74a6cd79a8a1fed0ea06be3d11ffc46c 100644
GIT binary patch
literal 10430
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

literal 14677
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
S$^gy`peU;*^X08Y#Qz7B`o*;X

diff --git a/res/vector-icons/apple-touch-icon-57x57.png b/res/vector-icons/apple-touch-icon-57x57.png
index 3d7055c52dc0b0828aa4995308439de9a3e01286..253c3db70a35bc8240dc781929ad025e0ae4f67e 100644
GIT binary patch
literal 3272
zcmV;(3^((MP)<h;3K|Lk000e1NJLTq0021v0021%1^@s6j2MH300006VoOIv0RI60
z0RN!9r;`8x41GyNK~!jg#hPo7T*Y<Ae|=vwbLYA5U9H~O0)q^8z?Q5kL#kW}E(a6G
zh4djds8SBNQYix|Koqed6A33ok`tGml;gNeVdR7Y!UrQiuuWVcMcK#?DkLa+fFw(+
z-PJy3cV2fM_tp7uXI3j|@67CI1^=r4Fw>_`pa1RC-KS5tphG<J!2WA}yuTND_anaL
zC4>|TNfl*%4CVSH%AnDys>QGx<rHv43i%pR``P1LKl4^M%EBPp31qWbrJ9R9Bgbmn
z@#NC-0+jbB(QoYsqpixeknlQEK2<ZtllyPD%eq{BEiKx<{W*1G>g`|4Y5N16D2tCK
zx$e(zLXB!|WhD~N_wl4h&2y-FHbtj`<<^jLL2OnExp!Kvef3{%`n=PL4NF03Rk^X}
z?eBI<5WpHQas0slbR;VfXo^ZiHAowAhGRW!N{zC)XFa24FS<|x`h^sGhuqj3U;O!Z
zKHRAtm-ZEcFYVlWRXtyQOZXu!+5*uXBdAx$+sY{@C_*8s>X=%Tlpe#>A^=D!nXVT&
zXU*Xu0c<JdgO7h?=hv5OPv}Uxy0fnvf&lej=5c+$ZLxiqnrD-@EhZ{Cjuy^xI6uZr
zt%wAMq8Z+oSxa1t0vJMwuRZqK)BBOjvnzD+NXx&a8-f6wsj)e}7R69o2uU2@!|`2g
z-=*kODcKfv&t}Y;VX8XM>UcjHBhIGuD$bN=$<>QUc;K-^2iOe{c4|)ONXn|0Sr)Oy
zZGDMbu+bEyMNx@q1}Vd&Kbm4=a)|f$ZeU$v5JS<heV3D^bDS<uBPFa&3@{i?H$D#!
zJo<~L@9or{C5JuxyIHN0r0dlTAb$5cl;KEA8BI~q6_uD4A+5(TwFrV>K2FsNOjdG8
zAfZLMDm8*46i%0>nX^j(w(rZ2etFx@U$(O))VFu-*j=aUceTR<827D1BwD%arHH6H
zqh>E@BY^<QZjF<rbGW`oQjhVT)GCmYqs4KmZXMuwelCCg*FSM@y_Me3IjO9Q6#Ns_
zfn{0QKy<+5x-}bH%19}(eGl7rC^{92c7?j<aI!Q-LNBs0F+@U(vMD{v@%%U?r^>jM
zV|Bcbb@2g?70)6in=*Zw`+&Wz`U;(s>gMEBHv|C&Z(4<+Xe~=b)k*46`XWg-B!<}B
zvyS0d21N+UPL-p@vs68ssG_qmHH<(oUCWcVEle#!e<a=bT0Fe#)o&+T*%LaF>gME}
z``;zx>FTlwDk+WP4JxI=*|xH}q7qdMGLblOEy^mhj~*k*iSi`2=W?Pn$u+6fB(x|a
zW-k+!9AnljDcxiwmSMJDL`vBk(e%#&Uk$aXr4fHPh@Nh}cw7KYpnZCfs_Ia2>upQH
zt}s>0bF47V+r>%ho<mGC*pwPYS5$1z<z#s(*fV2k3`N87U1n=VG)1G=NB|%aJ6o9*
zy6`;q+JRRj^5(T}590@pQJE;W<fq0plskqPylQ~{XsV-c;z$?EsgbLfaC{F<C|s3V
zMO=$uxpj^g&LV*giD7yoadPz%r_0ksRGn)xYbiTb-YQN6{R??@cFWG=OZC$>k~Vsy
zTz}sd-hAZ<)}a|>?!ui#OBoD)XcT2@iWy26s<sfCwMVdZ499vnYvq`&7dcs)<eKzq
z;#!2hNQ&8dk%?-KOe9W^k>ISDrS1iulF(wPLcx<huCIIy=#C_S&=t%reK;SCvc~Np
zQWi{E^Aw{tYu1b~7)vv5<)C)H&AeSES1YyDs|tmT5vL~-XKi8tAz-FfWZar#eR7at
zvxl5rY>=uE*P^6!lX<&L$*B_8BE+>QMW=!gYy-a0HOa-$dm^NU;>=qvqE-xb_`2s(
zbSiE2&D&)Pc9QkUK}OAf@^*zeyUZ%T7emo7wHTIDrC?hDNh2Uxaf2^vYDPd3c}-X!
z%O<&8WQ_RIb5w%m)tRc!GiR6Ru@j^XlfFojbJckYw#7g+O{zh%;@SWhN?>x$YyLKx
z>eh$ZaK%X)s!mEbm#j-+A|y;y=g8Y-(uPSwk3tn{UNHA{C5W0_>0R*KlRf~dBF?J|
zLCY=Voj|m)NI8B$LKPR05P^yAMfH9oebB52jP1`ow`3gou9B2M-VU~=h^hnN_$~lO
zW5k@s2pVeObZ(=*NzU{Arn<`WJ9c<W_0zSxc6w?pITg-W{w4n_LSQ*HEVqt8FxZ&4
zMJLExnZZFB+Yj7UYmA^R1Cm<vBlruv=EH2b;&Za<+Eg2hhRiwm$1VI>2dX~8R8Uq$
zS#!f`BC0{%cgfYus6rvB#{ekU!3v$wg5S-#8dZY@r|#R$u0qq8SBzv*4`NXOw_r2(
z!!uM4&o9oz0pPt+;?z%al(&rF+>$^lk|DDfRVY|am3o6zCK4=O`3C7^W27s=kqZHb
z!)&=?B;#6?xE94aQ{>2#M{$bbM?UHKO#gfwaa<>T=LUxQf)mC>bq;`(VPYscuJ2KC
ztAHS7n0V4(Ac^3WF#Rh|vglOs8!Mw%u$lbUQ9R4-sI8oJu%Dek-n*I^zeLHY0fJGp
z7l5f+0VyG+$IumxT)jlYF&qc^voO8gFFYX$v$9j8>;%z>d+=Px1e>T#lsWdoVQRl0
zq%?<PX<}*w$M=}26#y8F1tXoSH^N5AkN<Y-&Rm$z6&uN<9z!hR?M&C0Jk~y}TMGGK
zO`)$JCUadsBe6atFlNo*OP{13Bc+>IZk@6doOLDQTdnl17|E1jk}}RmHWQ~#U$V$7
z2i^~6S##}s5dtQwbL4FcMF`f$`;ovzWwt4LSlfEy`>k|cHp!AxS%^LsBR3Z6JsrWX
zxSV|U{}{OIJxo^e2w;6;kceuKt2gH>NMAgd71>KS;zj71q-;$2f?ZkI%NE12mX|hJ
z3i+cs%Ks%$Z%i=~>m_3(sCy1$)=Wb}{QKkE?tH18o~}tI^;pZWXFi#yLU(g=G2H*i
zG5o#}hWmPOrN@clWYcrbs+#&|o#^PAWKSePPb3jqZ>+0w>h-y9)t`qWnSbFl!(SNS
zWO<TW5av~o+>yQMk7wI8hZUHUWv8}qwz~kEOi%>)m$CXZV4W%Qzc0Q4H>Uw?A;gZ|
zTkky7Y5U72nYYVKH}<cKHLD*?;{B$0xm^HIe>I1(&Zx1*{G&Y`%)^UJSsBDMgNSnB
zt%Co1F>=R_;g^>e5G)A^_A}>ZOkKXZ+@>o=vd2g=9J}ZuEC~ajjdJ9hzqzbEa{-=Q
zQ}Or*;O^x#Tk%74)w9Xl<%J^G8)UW)uVfd0y6d*=9m{F3;w1C+GABz@7nI7)v2LHh
zEDgao9{NPK<1cq5(;vSDUIt!96EABY?>~ehT1F<zK)=v<iVhPLSL{3~;F;Z9@A}Kd
z|LwZ{uO9*aW<@%X+`8+w?C1A>Kl{(^MBmXwmiasK?;!keyKD%)vg`IeSGN;;M@eS0
zS>H$f69Fr;d4dVvzut4tH}zIR?|4db|G`I3`EcKgDU{rpnK*ZUE0K34@4D|`_9+1`
zte8R}zj*(rvZ1e4-nHbi@FRBvV=JUCt-IVFR{5@xeBuX>%uB&Nz)HkI2*J%^b(c-D
zX<;+JvmA@}y_kIo$v<7L4GoNjRfNCD!q3C`y9TXs_t4B>H_=S~HtT%?d0)uTwEbe3
zWgY_F>_oN|gdj8((PAXUZvm=aki1PBL5gsyI?udartUeMtIkt&DyRsOjqACJQ*S5^
z+P6dYKeIInJK^$PfFTL(FO;N^@+E*dyNoX-X(LX?h~r70Q>7^m=g%-v2~Pg2;{6zk
zM$LDyyc&RG+v>}m+PCju_H_x_PUV+`FMb?W6-x5RSnMaj5!-V)SDQx=yuw&*_F-xf
zG({z;#n_k}VIZ19N*F88G>=pVp7`izI&#-0;y3aH-A6-5Vjq$}4XbP!;68Tf>071b
zhXRxlvyY)zX2}M=^f_(KFkdeN%=*6kz?Zk}9AB=b4}Nmb1_kfeK<_e|dA`EO_kS-N
z>N#zr_%9uL`Y(j!D}ab=Q3j%^;Ax4X;P}Dghv{koJGdOR@cDy1+wST*K7HtuyKfQr
zKLTPMh)dx9y$7>jYbDgtQRUHJ9N2*({}D;(gF-2JQz+uId$!#9MkhL3;o;kM-+=J{
zO~SP;#HOSWU)cBJUp?PWU&qg!v#)(O<qH3EiWHxc$g2rlY8v<zg6EH(jy@Z9o!t$#
zZ+}i*UpulxAn!o%VI=)P9ylU}_?{s8<lYw_Zv9ZGf&T{+lwlP@XdLeV0000<MNUMn
GLSTZW<48sT

literal 4464
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

diff --git a/res/vector-icons/apple-touch-icon-60x60.png b/res/vector-icons/apple-touch-icon-60x60.png
index 0dc6bcb53449a943ed83856dbbbc64e0b1de5d67..192a34675bb2f00141cc3050c3a84acc95aea6fd 100644
GIT binary patch
literal 3427
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
FV1n+tm$d)@

literal 4715
zcmZvgcQD*t)W?77u3i(OuHIP^q6E8oiB6R0eX)9pzC@Ijup&B9Qf#7kqL=7I3zF!T
zh?)>Jme(`yU+>I&XU_f3xig=0&YYP$_smT))YqgUXCVgwfJ$3S&G<$i{AaYJH@k-y
ziR6tCyTSF~08o=kap^#E;}ZlJYpMX1<7~ff9Eg*au^s?~@dE%V4gfB0j!;_w5CjE)
zZF>Na&jtV{-~3NT|3xKr)YVkG(VKOy+8TW$WWHLK0RTXBL)=(Tgd-jR=oqxs;HFQ$
z?-hhvo0_o>bp9NNK1HDk(SnZX%~;*!m#&$XnS{BzIdUGk8C5>v9>1D#QoqU&mbu3s
zndn@X%AyRHmNwyc?=!jgOA?C`YpLrNj;{RNJ~r7Z%k=`r_$#>uiZ8)Yr}^RI0bk_6
z5zqNzj`pq7p9($kew1Atx<1MM5YN=Emq_-v*e~@YFjEAK%vT5JoRN4N(QNNhLb|Q^
ze#ZvT;Zi=}V-$(SkE=qe#BQO*&HgQYAe`Lgq1}Sa88H}6az$>QL{<3iPYw43R*ZJU
z!MbXoW3#7lL9Ka78WPr&NQr=FEHi_0ZaECBPTNCy9hG0ERL*oJa}xv(bja_|Oqkah
z(1rZH*0)Y$4gGyfp&iH8lSf_5pTpee-RI-}!9dsy_BYdqj@m!|ERn$;$#RzQiC!w5
zMZ7j8Za2ti8i|Lue^h`J0%3!paqFHX*WiW*?gJ;7iU%b<0c$BwTD5#u*%@8-r=>&h
zUF3V)@qGWIT^2#<?lRZ*jwh-#o$CF3pIdaUwx~)<zh^o)fqVr#v3DjwAX3u_;Whc9
z-WWjgad3$omgm*&hfha$H6qJz%eIyxY8n)<Zh=fVNKwIpRyF8igjA#<LG(y>EZx8W
zf|33CWm7neJk_gy^aaxM0<=EzqsG{L_#&GuE1ev4O9)wDT%Nt0b7g^Lt!8C4Gt@1%
z_$sd|Ul(hLx#K8Yw(`94^Y66^jNB)qjv&Dat$hJnsBxU}($`Z>*&I?-eh^1YtVKRD
zhvmntvv5Rx+k@Y^E7C?L+X7~(O67KjwealOMuxB!Ox*2rMkA_H8bwp-?|qElp7I;g
zvrgDFz&*<5ok)~b9GbR83Y1Y#3>u4FLe26@s}npA4l^XdFzM9lhe=2`mRC!q<znIZ
zQ4te1pQACSguZBJ4))x=cX24=hI!9$Ea701Bb8?NmS~v%2a@9OyW-5^s6@UT`>v!8
zw&l+pJqNKTDKe4I&}zJu(y6-I+Sc>|B{u=}s@=sB60gY41D&O%Gx#?QyRCc}M%6Ei
zF79WY>=cqNwx0MJF`U5zS3NAvv#PjTJjv({mD=oON_X|GXAd)Kr8X41lcdnI_vgAh
z^Oqwzp)UfVq9WtQyDK3daSkrLgVGPaJoEqCE706d1X)>B-y{=S=Bsq4UG=0`GMPpd
zg2A7dVys@Tn}=HU8Bz}W1-;6qLJzg1^RCD?8Jk8$oylNRzG1aYb>l)KhAaDA;OUX?
zzI(=g<<W^@gHWpZ6JH;eQ5Yo$QbL;0yh?=USbxrRlze`d#SO|vk4ep+eIKs+_@7S2
z9Pwi!qUo=xu)dK~o9XLA#6arc9W@m4Wv4nj_#~!Z^Q$^!E$2XA)zo%Nf}3uTsZ%ml
z`=(E~18VD8+WF6h2O2=%Sy2&|5hD(;)QX2fnc{Xo>Rz*8s%95{VrfzWJNf(te6y_e
z#-!@)D&2p-f0V^TKgwegED%+W3oRS+jFs50Y#nwbDU*ci;(uq2riU+W-))vMExCVl
zrBYVoK^u;Pq1Ba(w@D5;R=<dMX|2A<+7cuohJ@2}1G0|`|2%pzXJ)+c{(Idx?clw8
zUM>YB+mz~3po(WCN4m*JxA$k9*!3NWDH-3u8atx0_xJ`SD$}+TiPHpk0!F@=9SW%K
zWzm6WI*!`Dt|*e}X>);Vn=}>OSc#dQ-`^9{CL&D?i~=N8lr$M%GwkUb1#j^5SaWi1
zcfISS+uK`QS=i`@f0lzJXV8@sSwF2*mR4&T+pG~1N*d__JrUkk>@L6wtH2iDwrZcm
z|GgL+XPS$zyK|pYc%P~fe-(t&qIJWa1`^af)bOM5Rn`TQ<klsB?6Qf_(4!4-23es5
zF|1pp<BJ!oQh-#M3|c&gs+7aStP~5d#q={G2;v9*)Qm4)mlzjm%L28?w$hhjRme|w
z&GER-MBq3I4?~~=obv9~MS;vyp4s>@bBP`-aQE&Q?p@`7y=b)0MpV4<B65k(?RPi4
z+sF7QCbGgWd6$Sp(Ni?Iujlif<F{f&hij@5-#UR73pu@eQ25C^rTb4jrslv4#Tg+@
zQ^QnqV!sr-y_-cYY+LeaA<t+lVNpl9kJ+h;yDWM7CmAnYe{`5%#4Nkb+B&jtiOXrC
z&x^*5Jx1KRu6(W~{qN4}-%&QQBRQ|o+T@}A=Kr9OpciMvO;B1!aa{%n7GAG?B5$^>
znPS+D4>vT;7}<iCzvNmVwIJ&w2>$#;tAJ3Z^$(W}L4h2Mj<(y6KjsW0Q%|HZ)WSw;
zq_;WIeH^ZLZC506#iPa)F1)G`8%^`VH>6S?K3*!5c&m9%-8v9&69hbLo({;0L0_Sw
zpK|Y_O6jAU&^jclA_ja{{LTJceI_xTWR=zy>mOj29Z!8In?Y{cYlvD{irPqlTaus`
zjG-k9wn9iHNN}ho7`(zK_dFhA`_f>77ONv3Cj7+9K61n)Ntv^|(kv%}E8dq5r}3JX
zm6G$-gQ8IsYTUeOdmn{TIxh`sh5OWX3V9QleU0QPB=k%`;kP{m*_an5YM9G=i4JF~
zU`xW>^VE*H5vcdK=yT%A3tp4sL&3pxB6f6n+9Y`2@HBTahr?ZtUVH4Z*M)9BCHAG+
zglZE}AQSsPSuo`WWg1KvKLk3q*<c@!*(-{UzaYa=S59|zkchusG;MIEVYC5D$(qro
zI~#bD5;mi$1^-z$qv}s83!Ch!3^xSk^>&jT6%x9xcY30Q+l%0v#Yh5^;?2s@^Qd!3
zERM}JrkvaHoDOF#nQDUKjWy{K%O{~#a8_dPidLI+c}Fmlr0}Qy4;;I+x+c?(nm)4n
zE64#dS1QAoC^9@z8|RI!wQW=|504103b3&|O_&^381z5DSU_Ac)bVDs`or?>*+IYC
zQCeWRkdCBf`V~tJUxq<YoDR7!I+M|FF9gBCB@5GMN@4?rHeq}8!PvApIOyK@2zxIS
z*~b^HGsepxXXUgZTUfVcF!F3$7MMXYC}xzm5!>-Gf~p@qDiu>JS4{J`Wb}AA7B(dT
zayIAsM&&#O7J;-`&+J@uh&ie21*2*_jWF~?MrAbrNbZrYU#yv`6HfQ}ryLzg*%hi>
z&45Xg0+!cbqaRttZUi_oDZ}lT+tNQ7f<2>T2Im=~mW=$KLD`h<VW+LIULrm7)MlqP
zGCR~Ni@5bSm&x$#8TZ$u`cuO{ldo|X8JR;hA=&Y`rOglSF1!{y;JTz9((b!;q!$~p
z4pq_?5oG?w+4}OA-syQ&_I$LroO9iExn|HxbxX~FM@N?24=4lf$Wb66!euv*S(vaT
z_<a+LFlTqmOb_+2RS<hR1gq{Hji+A`(g<tl>N08O%-{RV2MW~JynTmOPOM@uT8jAZ
zXs1CF18#Z^0R6dI6ivf4s}{uM<fVw8&MppX`hIfPkQDq_SC&l^FU0remD&nuIK=H~
zvaFmbn}afO{%E*f7U=jB`-`J!j=(ZD{AUjPCM^h4S31YWiWSmiR|S91ZP(RAfV?fF
zuC^PGmy2gNCAk=xO9I%Kg>ecsWdj)3nzVc1q%ke22$F`)e0HBF)bstlxUS>9Mp0`r
z@XRmQkyrC4{L?vGQ=iPw!6~m0rUVVoq;iZ_wwxlYY{2!7B433ks@^PUa0woi{gYH(
zoNx-gDyC&DP<VLFHE6p=9)1>DebR|3t4}z>7sv|1%dJ*Knr^yO>}(G-bnLUA6Ea?w
zUfBQiUja^6j<+2+yV@xZrEB8vL4$?JA6dbiN7JC!yuVpp(@O+?e_$R8jZy?NR)=AN
zjk|a39={)0a$#}roDT6elWG20C*ZD1XPsja{#ucEcb!UXgS<$A0&5m?CG_1^?3*sG
z78LuYuI}<g^~r$Ahkk_^&3b7sXF7H5LuCR(yKMIyj__85eae^q<<4dkZLZrx@9X1Z
zWxB`MT$|bMq<OFsuaU{cYYofR1+q7**?2)Vhkm$|tvVUBZx#X$;p6QN?yaHWLn$bV
z?X=Qd3(=arhfl}btsZ%sTE#Brjm;$KK<gk*4+B-S#RS>xkcmgciE7_aGOtd##5%ja
zl8k(Ilyd8?dW(DH5Z_;T@Pj3rbG~{6)u&o~?3`B{(yN<2cJt^Z9mZQO3$~Ie2+_*_
zzVwVQpp8692p||LvJRT>L)cTKrm248gI$5WTf=q*QS8du>j_=(jI_^x{4($OoyuND
zAR7-GSC(O-7|Hth5%_9=*9cdcr)k_CbrJdb778%8H1dsJsBYC~CycpJ^W>E;Z$HV*
z_@+$Nt@aYFJUBi4P$}j)-=xE=28NTFepQyzF?Ltgsq0OgswIy*4a88O15@99>2bKp
zkB>wazhu~5c#cM2);w!ejru8Qi%~^X@5ua6Fbn=z+!`zOZ}G3o(A2BYZ6TZ6L`PvJ
zsZJX$4tRM8Ml6`i(D!+(0wO&$@GuhvwG*mpBi4m6z9<GmAKb;LjQiD$+-3BA)>a9c
z?-t8%z5e}<Kd9_GVe37&rqOrnqs+BQeeW~nRZU50v3L!hNh7H($6sGtGQyI`Ii0m(
zI7>lTcjt)3%|wpWi#)MDiqW%j<H%|&)}UhK9iBR|!ubu|+PrRn0OOR?o70hD{ULP^
zlXp6r5}LM!eJHNXf>39@t0oZ!BQwo$3)Z~k+iH7S@X*b7XzG;^3}8gjfUHmN=R-=R
zYA-S8?^k>p)~_B&JaEXN&#G=xEP|9qmoGLfJ}C{?LU}j%a$|bUc_TeIUS7&^2&i4%
zOqRm_Bm?xwB_Z>x){@1R`1Cvig6oNO0~_34-2<8<3G~^1rnX-@ddiRR<U^t705f}7
zQ3?Ly8e7$_lm9eUG2?QCepe&HAepanZt@fZp3(O4455%Wt+(rZ3R4e-ESuEa6cp}j
zcEMQ4u9zaNS0C_ENvmwD>xzcBHfBIKL`T;bPfleytod8>b0vp(#m6(H%(=BN1;#z%
zn4Bmp4?pu`@)rjo(1raEYC>e<%}qUyw}9EeON=Z<yOQfxQ)2X>l$<yh55=t*c`ohN
z@L$i!laHbecmHTFEHQ`@O!b?2b^TP*RELip;@#p#m<P|p-ZXjzrR)?Uu>m4b3xa{L
zaABNcH(`?2Hr8ekElX<J)#N5N?f4^ybhBgCbK{Sy==wTG)-(Z;|7*{*F(wIfSU$>{
z96Lx=7%pr%JiV2v_yO-bzkY7{%U6jN2s%%9K?-#wxTsjGcq_tUk_sAHe;s7{v>{Hp
zXcPM=4fxvm=N*&Ud!6NF%vy7Q=`b=%i~oSJ?*Rlp%Fm00{q3B;eg8-D=TGL4-=F1Z
z0<CNrc&le*r&q;oh5GAbsAp(I{%3lo5ZogJ=~q#?Z`V*8sYHaLU)=8}N904Rm&^IM
zH*a$j1bHit%*?yK@4k0fQLuwH=T>5?v}r45{}U%Y*Q8N?3J|)=VzwqFe(hB77mDfL
zP1XHYaF(=e0KEEpkgNu=C7X@<F%#4nM;}$NZGH6JB!tT-&F5C}N?!+bN=mx%4Z?j=
zc=-|br<RoyM_$`dHkz}DTE-(tZYs#b^>3<`5J#I5@-PTF5hlutf!-xGq|?nB5U_YZ
z5F~Nl|5!P)V}IgOL&vowCw!2nfPb>ok8s$j5HTC(HA&cV{?S#=_Z7d(-iHhUc>?+t
zMBe5PV+B$)t@1M~{{CQ@9GtuXUdWRdDMe$T?@ANgW0)%h=G`v(M?mI>ua|wJfQYtH
zS76Foqx-(}#)$<ag~)514@Q9eCr$nhPMi&hRef%7@kQYONu0!c)E3RESls-X@CB+{
z1Ufqey2v~EyW9vM1(lQ$gUX3X%9ujs<nPMJOUZ~pCFP;e#D##C{{tX>oDr^}{||8Y
ze}S?VT*(ap|1U#8u$#Q2Lx77|kUs)&MR>W$OGrq#`ygE;T>KH99ukHKr@$b8mjDTW
ngij!!6x7Sd&F4m(e7t;u{Kao*=dXAED;LmK*H^1lv5);9+HJfY

diff --git a/res/vector-icons/apple-touch-icon-72x72.png b/res/vector-icons/apple-touch-icon-72x72.png
index 9fdbbefb64581da9bf265586c751920318f3a34b..d9de0c57152baa47984d816bfaabe9d78087791e 100644
GIT binary patch
literal 4175
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
Z{{uvUaU0hh!*Boq002ovPDHLkV1hiu6ea)w

literal 5571
zcmZvgbx;&e*vId<0||jc8csO6JEVl8J0wL?LOANEqa^MCDUlEa>6DOC`lu5`N~A-O
z_6R{hQb6M6H}7BX%)2wse&*So?>@87?#xEKk%1;TDHACG03g@aQZv4#)_(>ex~&Pr
zkl<T@U6l2e0f3LmWS36~Z+)Pjv8D>3b_DwC)`2-{8S4W8A>04}IvN1DxNSmj0RSjb
z0ASl50FZkN0ML8qwmnj~?I3c{)l|FXZ8=wMkGKVix0a<J006pG+*(hl!xaEP<F2iy
zY#KDbn-^?Pqdp&7u$`r6@Y)+M8tte~u}+h!3_b>#iYi0EwA`em2|R_c539sIFm~8l
z(^fsK7i0=~T>*U=R0zhu=0Kz2_eP>217a3|VG+lP?R!I{S%Z3a6>j{?%8zEOq;R$G
zYkzuT3LeWw93Bp{I%e>aHFi39)Twl(bT{r>S(K(|I9N&S;@yfJ@BGQz>bLw%x!uy2
zDo!)>jfxv3n)`#<YIK^EH0qv5(w)L;eSCwPkUi@zA0bOdnl{)paX@F(pe)?z?^b`k
z(beN17JyG9kO0#xKoyVvy}>XBQR>nV<w|EYXfDfcw~UdMyQsPpAbVsPli5-r4ReeV
z6WikX=juGXD5d6k&K}m!DfWb-=+Qq%>wbzJeO;2CBtT~&ki!5xmiuZ7kSchiAvh3T
zjIOb_W1_3wMVowO?r>lQl-nX15Dy}c)J;sVcY8g8nIEi(uw7BDUvz)eA6*>W1dwB$
zg_ua$Cu6|)HhCXkpsH;dDg)c@3_Bs%J$tw22NW`VD=qD4qZI{1;4HIb+%g#oo7N6|
z{*I^NsF|@$<b(k7&s^7^+LFDB;^Pk$v(dTyiW>l$PDb1;mOMObd~L42%f5;_zeEUl
z5aVG;_C6s+II>Mu={h%=DDIuan30&Etf4426y=IOQ9ruMIM*X?ET{kMLJ*=9u-76$
zeOKp|n2VBBMzUp1u6gXAC-aCsdoi(YkPjqsBPv=!%1jXZ7G9k)-WXN<(Ptm))?JkS
zpqY1<B&i|==XxLGf=`nKms+)&<<z313nouGx}?bB;bDeP%5%PDbgTP;c2^?SB!D%X
z-?GoWCcecytJQmyyOj69`S}wy!}46>DV<?u@(~B{f61rH6}7XnkDyOVZ<H~TCM{(r
zN+q=Z{4`Pk2M>EWuc>rB84bs1b4QXm>IQV6im}*rsb_cQRqOVLk~2H}**O{mOt@@2
zZ3RPYf1>6v8{v?o*rTaFLf?|s%m#>`r&nSny;>h#ElC>*9<(N71$=~Ju7Bxxrl+)o
zy&F%&n%u3-x66{Bot<$Nb`kpX0{(of2_4BT@7o*paG&aAJ?J9v`|rQdpy&gxWN)U#
zraZ%V3dkgHOHw60uWA!GADj^P<yYW-s9xuct5z>_mA3=Tzghxid|Gy_&c;lzo;pi#
z?`Dcl>|`m2L5OvA-iT2Csp794>u>`}uxKnHG-jZV%!+}!`#5@+Ze8*Nd>Hls5N<|F
z^>-&YUy_tuR1cbQG5dRea+%U{18LYnpQ0Mh8PeGP224S<hWvZOjD4)fMj5&E;bEy@
zRLT<9OY%zCG9Hx#o|m_CoR3n2X~dS;qc`;{O&S8ra7gI32xSNTm}!<;+L<SB_^*RY
zF&;!5c{=SAB82_C*Gq^y#!gLlh+x;+`RROZGS90YFF^7=^*wfc&u?6FR5f+<#26Mp
zXpF`eVt8PN(VcX$Y~@7aMw4rH2Lh&ho<kQ?By%|v%MUEtQab2TLOR7Pq}S<~8s2!{
z&`jQNz7?lg0j7>hdwY^G34T6D!48KC!vz5N^n=Q@h6t^j4;wje-n^bAsLvy<tL!8%
zZnsuRWc|A3&^T5OpOPnccV_-jKzwEWl~8Wbu#(nw^D<5i{?{Xy*OijBy4tCO&dA4h
zm}f*A*8frp4<NF}bWEyecVu$g%QLc+bP_f%Qq@dhVSN&DeV8KwQ3m#tpVY5R`kx`S
zZz>)Y)tUTx0)Js>eU$4cDbpNnFp-UB5H2VI8pTsL;q1)4R<G6QM^wjK4v=z`kvohg
z53t}Zex<@@yNB<Yh~d(~1R$o`bc;~WC3oN(=|s8r;UL0-*{cyBV1+6RH!Rv1H>`-|
zasHy@B=JNwxF(Kb{>pnJtG6sk6=wK|RUTN!2ucF9-gvvY-EN%Y5Jl?Ovq~TJ=$t(;
z)EsqJ?N=r;xH5A;3z@jQL*f=Q2TV}(WPv3o`l9iG%j?A@N`LR;{g}g5s^v-!<<h|}
z$x1b)Yg0+aC_tlp=#14#IMlWN8Z?Kb+^w$k#-C?Me0{Dm7pc_{0_}Z@O{<0L8&LJ)
zo=plQJeQ5*v8ibg&pk+qDDz3Lfs80*eIE*k^hWv0k)R_()MpiN%7|FCLe5#e`#E`e
zU6N<EbwVM#Y31CHVRhxS)^8s*lvVLuE>!Iby?f*>EGXSS&G=p2MHqc%O*F~kI>4eL
z(jCsr#Q?wi#<7x;-O#I;Sw=^7KgDx(;Pr;fkRtlBwXfYXAjK-3QtJ*=LygW|0aNYy
z-EM$P?ao>aSIKCo@A5B)e91`yof!3f3zr^DaZVS%CArv(U`oP348!w1nKVWfcWVas
z@8Fo0X|qt0yU*B90MycK=%@wWuW%N+220Y@-J+k3UPieLIh)(0Jh4)tQ%hhS4Ru4G
zFoN`i<SeoU?o6r|wkB63o6A?K9k${<3br>L<vkgpJTS_=IiG`k4>e|QA<8`w`kn(M
z^GU-=Ok{Vwo%}PEGnX%wG1rg`v&+I&4q`7y0i#n)MNMb#=1PJz`J1D{4s*3GIe<=v
z`U7KDBC8*NzHF<E<(nP`ll8I(r$AtOUY`K25hE{{uerABLK>EyW?rAOvYJi3-Y3L&
zH#jvV=V~g%S@QNqNl2gh>^k!@LI1sKrccP|;~xow8GKB0$A~W3vkp8si%k0@m)gT=
zp8|!0Ape}8%aM<{&E|_A_^gC2Zzq(lv;So^GlJj5dy5=yaV>LG^a4*If04^dUnJ1N
zU=jyerjGz|GPK3w?DSf1-K@>KH7#_^Xo!1X1i=M|0(o*PKRFHtaAQ5487_EQbZ*A~
zs_@OylUDvhfgDjJxi#&WS;yLYwDA2-mkma{_jC`X5PxQR%z(jv6u4N5rJP~=w3}yC
zPK^_3BFc(F(hbayMTm@v#q~q`fGHn`cB_GN+Eex%AIuiC#UfsNs%`!YaxdCecyZ30
zY=4MIB*(*3`vXLw#_jQ}u*TgNH8CZSgA?pb%qE+YHX=hDd^gWV|I4E>7ICK(f>WWV
zL@1^7>LeYD$)aj?ys;Fk^<pGV7RZ6ZrWNSQG25;=AcE2jbmmw+qg-Ob9)j_fGY4I7
zwG`t5=HY@y66eQXm8IjDy*cGt6{jBC1Wjy#e=d$F7jwkzJBy*v&+zf!6@sQxvd5ah
z_D?8b*WwOF9lw$S;|HHBw=SOlez@Y1={_R2iI(n@Q4S#D9t@W(;{QEI|6#OqW%yyU
zIj|NA433tt5?m2wu#(G%*c9&JK^rMSanFBlC9F7!*81ktlfc>&GCb~dttpc#_r=3z
zw#uBiA%vkMg3n0NY~3eKagh}PE?$ydccnJ+@7qI(36t~Zc3kiDC)pNQ*@AvQEsCG_
zg4FH!#bBsj`zI?PWq;PZ+ZKTtnlzavuFEh)L0J=;$Gm&?uAd69X>9amOBR+XJ{NK9
z6%7Eni}*0c@yriM?-epQnG}5hswsJLj4J<r*`F^hML5ZC#rlp4I*g=#A_w}N*0bUI
zPgyUu6OmAm)9e>m1WR4MSyQAkd!##!qYld^l7Z*WivJ=ZIlqIvE2gaH?<Fv4a}%&g
zuQ0^eVW(8uO4y#6l#Yf9QhcB;eqLbfrEr(LZR1i%lHqQSwdWVF75VYZ20-}hWB^`K
zl-(%sYSPMY+5)~;4hzP~beqRnTc)rc6Za;|7}Hc^TJw@CK+rN;XVX5DG_Sho>{fUZ
zt@|Km-tP!0wTt=g*w3y%iP`lpVemdf=(e(qZHw(VHOz^hdDtPpnb`r?$HC0JByOq)
zEWPT`Ft#&#(E#5C!L~^25iNriT>mbpv4keQzfmSXvTd0KdT%W<?q32EqY`jVljexS
zzM_{lz1}-rxG<5WOWe|vkdr4t?^M+_AYRpyIMr>H&5_K$^?SGQC2neZv2n1{f$<Kk
zRbwtn$EJe5sm^4eA95UBqIV2bq$`n4+J7MgoGDx3r1>#|==y4oa?WD->_d#J48k4&
zi7yte-v>dRhzz~?(c##VxF90_68&;_BG1UP5M11fG#q&@cK{a?YYly~b^aqot2fef
z#$vceFj+q7Ojv&U%@4e|o2qNogy#@3L`Ari9xQk{9AON%fx<Sv&NN24%XG-%3FC$Y
z9@9upbpCLb=&Io3s{WqvDgNx)$GV0`S73a8$-TkLS2CiHbCXHX8o&R9@6E*q$(@sZ
zk@RJ&i0@Pzjt&v}J54eOHevqpbx6^^HYoP<rMt{p{m`109SzNttes_fj=U9-Y}W}&
z`h5X<A+Ty;^jkVwTDg+LrAUd~>=i%~_hk`rIwd2ek!xdb3S+x0<ig8Ciso~Ui4IR<
zBXvLfl!xb@$D!V1JJ(kW<}EV*O&h}V`!^}o_|I2@r2NYhf!qzRuS|a%oZfL(yKevV
zGl|8<d7e;e(m*{+4jrlmb+{9;fSm!*;iB*J2<lXLv{aR#{kMk-NH7zd#Tr-&^n72d
z-4a03QGyB+uow7;*pWO+7SxxS_f3sv>c@xul9XAtQr%xn&UXjK*93ge_PbKmK4ph;
z65;VIGnN|$8R>^P{6BWx1YlyZ!jiG|B&n*?sz%)GneG~p{eg_e;_cc^A2L<Niv9<r
zBK#C${!zWbcS52Az+XxO==K5aYAz$suYdhpy&yi4ps$t~-WBBQC%fGALapE6HK&MN
zvMaN!NnM~PT@7_8q^UJgZ)+6X)NCQGdg4A*a^r=<bUHw6{Jie1b#5jf^y$ACg#@in
zVv?h7QY|f|(AK48FLOH}_MZy-3%;or1geXeBvIa_dkx=C2;$7dBXcTscKpH%?)$%E
zNPptyM+d(;%grlFny{#qK(bPGp*D_YT82*qlkrZ3L!H}#u)Owl`Cg1)Ze`vj!1rfP
z=MzPS-zF-4&XRHCzM`)x+UivPNFt8D2qs~EMc2SXsTHM0e2=v!57`h|GgBv)0&WZI
zVJft!y0)Jr*MBOj_2pZQtasuBsFGZ)%jdEqn>B-DDKQs#YvT{G@YV2_sn*@Z25s__
z?fYQ~Gu0gUaUjOG>Vj-Qm6wZmOWsP~JH$Gw^OVIX9ilXdrRiN>C*LaKt9rJ15hzxB
z2kh&gJUl$*W9ja79*cX}>I=pPZ*TK2ms7N6FuUl0@MV(jCW=Hu1&QAaUx5$acf8p!
zz3LiA9-7bICqWFo9!{L1ub-K{p0m@olO;G@K};-VlDAUnXlf*xQ^IW*xo3Z5L|wG{
zP_zJM8{(NT0jKp4*F{<|5p*<n!1|4xf_uvci-6+k2<<9r@`Hm;VyMha)=63nBQB;0
z(M=z{D)^oi=~F#s>qq_#!8}o_nZ&2PTbsKr!TdLUpaArd!e}gi=|yTb{>DgC3D<UL
zd^`hpa|;LvX{&B~6DCVA85cYwyK$NUJh~Qr7WPcT&CR^8>7t7N&AR*XJ-0B!!Umr?
zVorxig~SSmJ?6KenJ4R|?T2A3ga338J@-UTdhoX9?#6YWi$dOJ@y-5n8AX!%6A3fN
z!vlioXhGX=$+Fx{`klk5@JH}|iv+YVtGsdrBVR~wL*T>Cq7qENPW?D!Kr{9i)y_Y?
z<EHZ}f;Qs8tD3a5koM+Zc@uLyK+M8fXyMg+2CAK7R7#qTxW&6`DS@3f)vo$bGk65t
zS7ax>w2P;0XCG6rKmrIZQy2?3OQfshB@Wta7_Oe;v$SJu335NUy=>4Dg34!+8U*tS
ze;3kDy$ToKGhAsDt`&Eb%!-t?^B3xJV#}q35EYjY9@5hm7G?G^^M0cFx&$hBIBcBA
z<9KGm3~0kW7*=DFc2UrYCaOT#0bqWa;Q6|*8ihsvVZ&Auw=)b?w9j7nAtzKhx^aH7
zbe45~Vd+u;cR3b^4B&z~@zWLrLnPi$t)U>8<rBoI4Z|4SQcZGu=#$l;uNb!89r75(
zdnpoJW9mMS^jup#Y&AJL8E!)&wEw0zYp56M+f*B-{Qld9TxFH4%fy^%!OO!*{U2Q_
zj%-{AhF<p!8Sr6~QEn3tpR;PJ7V7)q0G%EYg}N&duoZvW3JfPK{P+E>iL)>RDe$Kz
zT-EYxfBR1#t3NK43I#tL<NBkN@?m=CFJrI>45L<krgvk{%(7*C{>sGz`ho<ry0v(%
zBZ<YKbc~fWY3x--WGXVpr0eYXR;+%@1LB(<+FCL~C!+_eQ5UQ^@3na9@j!U7P(D&$
zqNU|=ZqC)N^6g@kmfC8XgGfus$4BWbQfW1;5~$E@B~2|Ew~xVTw>^7C)1Y=+=g}vn
z1rHxQK)>TyiQ+?3ee`+^xcUQ88{Cutq#%)FhJ$1npLG>Y8k)C9>b|d0Arp(`owbZ%
z4=9}Q3afS$V+AU<*TzbSzjo8NN2B2^h*#g!ttlH>Un)b;Y}KvmTaR*>0BwuI)rVPX
z3T!NcKa=8KHr#<h8um5TdQwt%1->d$r<|z!1?t*O$HVR(Y&(Eq6WiO%bpJvbF-g^A
zTKG-XlgbzU?@(>nPA;yxA)!P=gXR$}9sciyWLH`F7YAvI7cFjFyPQIdRjlQKDv)UR
zjW|5#j;{7YYv#~5k)xW$HRgW0Ut!Oo%IU>j6D9?IjFQ^RA^%><e@X~5|5B~n$+t2<
z2xsTvDPB{1F7xB!_3hbJ6h$4H$7+|h@YPLUXGm9#eLUt1=w2Ty2)t(0CSM>V@N6+S
zPk5Ns!xhbN$#;*L$ld%lJH8VS*HdX5p8H$|l$RNdETwmSFbFdR$CUDN79L-{%wNs9
z*s}OSKK)R9OQhgus9z_V(rJs}(zmq>?q+GB7tMCc{djU%NQm!AD(-OAT|BeQ;Ojg)
z3kR5o@Eg04cM-){VCT#Hqmx6|jjr($F96te9Icjr4vvrB{c(IGV5_DMvq;k2bIi+_
z+A+lqo!;C4-#I6KCgB~fyZwvg@>hTC@ATB)S<cbd`4#|iQ88&DQCT4|X;V>IISFYw
zacKcjF*#AuxCKA#{}Fg1oe<B0{~v+G{|c(G_~KiE@_!Nh0$k)Ap87cpp?nd5X9y2x
zIS~;NSEQ%2h_f%k-A%*@;pmU@b@mhSMIimT#6>-jF34LrB0Z2OU*TJ|(=_Ab+ra?Z
M>IQ1HD)y2810DcRyZ`_I

diff --git a/res/vector-icons/apple-touch-icon-76x76.png b/res/vector-icons/apple-touch-icon-76x76.png
index 5724b6b80b065195432b5873e43d3d9ab9cdfe90..b94716457bd5a9070db4f67b73dc238287fa6b60 100644
GIT binary patch
literal 4438
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

literal 5953
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

diff --git a/res/vector-icons/apple-touch-icon-precomposed.png b/res/vector-icons/apple-touch-icon-precomposed.png
index fe13aa99c3aac79efe1ce0e4dd549656f7e0451f..85e9f8ca74a6cd79a8a1fed0ea06be3d11ffc46c 100644
GIT binary patch
literal 10430
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

literal 14677
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
S$^gy`peU;*^X08Y#Qz7B`o*;X

diff --git a/res/vector-icons/apple-touch-icon.png b/res/vector-icons/apple-touch-icon.png
index fe13aa99c3aac79efe1ce0e4dd549656f7e0451f..85e9f8ca74a6cd79a8a1fed0ea06be3d11ffc46c 100644
GIT binary patch
literal 10430
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

literal 14677
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
S$^gy`peU;*^X08Y#Qz7B`o*;X

diff --git a/res/vector-icons/favicon-16x16.png b/res/vector-icons/favicon-16x16.png
index cc7e01e3da459b31a00eeeb7b9d2bc59248fd01f..def4ec5eee34eb864994e5b7f6034563f6ad12f3 100644
GIT binary patch
delta 661
zcmV;G0&4xg3ZVs%7=H)`0000V^Z#K0000JJOGiWi{{a60|De66lK=n$R!KxbR5*=&
zlTApJK^Vt>&%E!upW^CvFxP~nAnfB-qy^Q<lUF-LVb;Mzhe!-Tgcga)3JN+z5QH70
zkPZ>irB2nwPANzwq-6`5>$>g7`!Ul&cXLhp9sl#pZ=QLE5r5Vh8oc#T=E{8{s6_V;
zqWc>F5X1yVXIH)A8yy5!)17A~*?<5HUA%pa+5B5$)>B((8rX-5TZpVxg~UNbOs23r
zknT8rw<1sgD#nrOW&q#dXUia901+W#JN))b(i}_P8Tl~YT_bRg)_=4c!qxqurYMn?
z7)k_7gt!$Z=YJMShU+K=W#V@9UX8#cBc;~<y)>Rkk?2a1JhzMbaEy?02rCB>A#B+!
zm-C1S2`9dD<lW<T0J~zc6CoPAT5tmoZ44`3k>+S4+88p$Wt1o^QG_f9g@DioOjiY)
zv4C&$KXJe0NVF!=+Z7r^pfxCkfm}@o8}YP{p7&TB|9_0}G%NC*)XCk14>VE=N=P8C
zV;3i@GuTKe@Ms9tk$=C4@$_0~U}54b{!)pA6C>vr@23y;7q%3nV%tz6*m0*OH?C&s
z=`4$d)hSedxaJjVJ8%h%A$hz7D`M5I&E@$uHvPPE`j!F!CGf*pd0^V(<NprGTpsKm
z?fkD`oqyLiMhDIcJlmApO7x?io+s8{fh8INV?d)ZMnJR%P<E&vSlA@l(^i@~R22lq
znkfWj?FAkMzl>`<qu>+3^@-sn(bC7-x2RqOpZTibTF0r(Vj*|lHU3hd^-89Yy_7!O
vJ5#A1dvWEJh+F`&z=A<~Z@x^=1N;H^AMggYlMd^C00000NkvXXu0mjf_C7N-

delta 1336
zcmV-81;_fK1-}ZA7=I830000_V<RE}000DMK}|sb0I`n?{9y$E0004VQb$4nuFf3k
z0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv
z00000008+zyMF)x010qNS#tmY1Lyz%1Ly$4d}93o00ZYqM1Mh4NXM0we@xV69LHY|
zcgG<&ehf5Jgh<3>AQZw#Y^W9D2AZp(t<WI<C@dAnkCwo!j0kJaEp3HHYk^3#v^rd6
zmaIgK-;hv{{17h;F@6Yl+;MkLe|%v&wiEgM^V;)#Kkw&x?elD3!Hm*ta(7j}wdFyM
z%TU4!PRecK27e7JoJYOqzh?b_$S(Kr%<&$W7}p7V5wJ(@;-TrZ?Ma1wBMQ$<C_J_%
zKR-G;Ir;CRnfE!(+~6g-AHTve7H}Qs6)~b!b`wjaXYxR?x)*$w^rUJHKn&mD1z2%L
zPKQ<J6$aEPOgAemH{|48zFbnW=9O6mWUJGsoD8~3D1X1=2J{n%8OV{_L=b4pj0LKV
zAbydPJO-F?!H%QqR1l$8cyyB@68xS+fm_Xs*IG6T57Na&+CT)@v&2@g?bY<!hhgZ8
zg;kaou=j~~sQ_HLjf(rMM?w|u+wV}I`=gb~#w6$(4LfdZ2ZJfdZW@Np(N+5K+b|g5
z8)@+dk$){;WEmjtJivXFzk<Z;(;MoU9o7$>-R0MC<3K>H*$ntlK@O0^^B6&t$xI@E
z8j;8l$TZPND`1&=icFbGAc#DfM35toh2;(>K)n2n1t4nVe>@K2gbX1Z#05D)3~)g_
z$1TvDo>=YlE%<cw{HSe)MYgLA+Dw>tbF5ZX4u6!2JPeKmOeu~99Mw-^2RA{z*7B%$
z3Ig{u_qoPFU|v(Y>oHjRTT8907d#wL*QVP6uGY~cl?CJr;u?*B3L9eju=>?=7LaK)
z&<eUsBkR=B;CX2vO```U(IP?a7MJ-0bO(oHRq5b&uKk&LU7&87tPz30S7IOiBim77
zMSmQvnEM1msKyPfb()=02e$Xs$ubVaa%$1tC9+PqPz_!?|Bcdw!=k~ie_ZxX_LC}e
z@jKjO&Cqnp;nQ!-SwMU&!&wQ&6!${w6&UdL$D9T7P0r8(xG{tp=w~Tr;FMg<Dp+!;
zV~b0)<w%s}`vaa$jg5sK5h>eWoz%~L0)IaApapxGQ#(a%s=+be-4;#875mSs2jsIg
z+04g)1`t!fr6$%h3gWE2oVRs_>dh8^u^}&B|7Fgh%I}tq&s{(&y&_j`WqEhy#o)NC
zp~FWks`IudL~}+JJ%nH~L~-Y2MdTX6n1EhFFh+Uc$_P#c-LnWttK+vof;<&wu7CG;
zFLP>1u;q^=L{|T<d@SftXxZQ(U94d9%d-e{K79`XknQmW>m&P;+pH;fO-LY%+m%IW
z$-T$fTRMwC_U8)!%v5MQq3~Rj!cXdFCK5O0zmt$?@>Ny`&no<3s?Ro+`)f$y>s8aa
z{{aU@f6pyBC$s<n03~!qSaf7zbbn<!V{&C-bY%cCFfleQFgYzTHdHV<Ix{vpGBztP
zF*-0Xh}?6z0000bbVXQnWMOn=I&E)cX=Zr<GB7bVEigGPF*Z~%IXW{oIx;gWFflqX
zFsr%bq5uE@L3Bk}baQrRI$~jSWi54bX#i$vY-KtxFE40sZDlWIa%pR7FELPQV{~<L
uWpgibX>W8TGB9j!XKy7kFk^3QZ*_7mb9QHB)frd-0000<MNUMnLSTaVdQhnV

diff --git a/res/vector-icons/favicon-32x32.png b/res/vector-icons/favicon-32x32.png
index a0089a4ea966d8ef35f9641f2b3a9b4ba561b3ba..c999923ac149a91ae0553c7525cd0fb6e817a9b8 100644
GIT binary patch
delta 1576
zcmV+@2G{w}6Rix87=H)`0001UdV2H#000JJOGiWi{{a60|De66lK=n(;z>k7R9J<r
zms^ZoRT;;BYwdmRx6ZAHIql4}bXw%08i~+q6od5&JQ)ZNN*is|2MtQ3L{k_KwMs=y
zd{84s6Dco5f(-*i5)(}%vGSr+O9wl4+Bq|2F6W${`(<B0AAfAhoS8W@$CfWy5BuBy
z^?kqft-aSpv5tLr;>U;mW#>s*u!lgQw}&te44^Zi_2d9;U=g?^qFyt#e=580(D`oS
zm8MoZzH{X1pZfo<e-l|HG&JLf-%oN+-<lwv_}HFH+q0=S4eE|1g8w{99X-D9;KiN+
zj(+vTN1cWC>wn$EI&RYc&>mD!cls3sv`N$mkqSm}e2@8Nk($%0D<uby?K^a;Ys{4o
zF7o(Bw0_;in6}swjCHhFAc{tjx2l{i&$8UEup^OXTXY~UqF;RMjc32s69BI4*a!f?
zT5jTs-_bORL@>(kWQJQ)BY5I5Rh}mv2s0KRQcBd%9)COi>?bz`P%&NE48V;Db*I(Q
z%65%hJ<q>Nm&jXH#^Pzx;S|%=cZeE6hQcXRDRuIZGbdxK<Cz^aA4r~&+4k)st7TUK
z1Dc&5x|v{n?cWg41`Vgpe6z^g_GR`Yhw<>4sV{L$ayuovF&t^S4+F=$RzUAf%t!VO
zcF7LLXMYDdFN>Tl&8}(xymE<(-DEtGA*4-aYKz<y?nk32+BMSQ6ezxtm25{&b9J7?
z=Q1QyF&6(k2euDDI1?lKi8RUg^)VdnU&AH>O|Q-6W|3TDiLrQ^sdA2zRV5wS!eXn;
zcw(5#&0^YlWBd-_Z(RYDf~^NesofS}mp#aIdw+rP(NPLk6@ZG}V6IW<=wm2Ne>lN-
zBEwtd98I^)U?fS=uCXgI%xrxbQ4lf$Sg!q%4FTS*jUqObK$nUgZeIkYG$XNrYd+8S
znQIgX>mY;SBz31nG8kp4S;kO`fDT}JHbHG-D<`wz6!c=IQX~V>4qw@B(7KwW>NPR7
zfqx))A{biZ`GTP|KGHFV*9GAE9)))G-DmNrIt{i)Qk1O*AsxW+T(nYXrSW`^fY!L;
zp-@XV1Yl}|kP)P~RHFHM9($^aSRRqF1no~JC=AsZPiDAcRf(GsT=8&xkB}L}@?22r
z^2&I+TcUMGE<Pb6Kz|`b<(Uh#|6amxd4Grx&5Je8|LRS`=NwFJP_$|ch7**n22nGJ
z>v=f7iy`Vy*Ij{pyF$KH!v0MTY5Qvh0_DjZ(?bS{Oq6&q%2X-Gw%7nAy9UT~cK;X8
zT~`Hm#J6(Wz%I7sB1mhU<X6pih1RKe7!3_EUn>yQ0g`5fe7g#wpIWW&sR9@4i+`xA
zJGV8T-&F4|w|RT=EF9RvEvfC~8bv(u&l&BJ-~QhKI}>SS#pX~La9E<WDMbBrp51%5
zQ3zEi+x41Z@IdyiyWG{fO{XAXMre69WxGMyZlG?Bpv*M~skJ6B^ZZ*ZTq(7b$OGBi
z51w65*3&mou^U*P1AvhV62CLuOMf@Kii7>jxxXCy@S#6+)Aali_J<OrBYkWM#u)k3
z%|u7yy>)E5pLz7&C%$mQ001Sc#($~{^$YdI8Rwq9IRd)-@37L8{QTQ@A0NA6004x^
z@9#gj>j(E79>w;*-ea$nVY<)VfB)}{8wXfnPrZ_T26(k6vGB2-*3`G&Q-1(JOcgi`
zY`!=Eh&*xR?(9wPB>+F1Ji4S%U+GaEQzrLy2k^xe5i|-Bxpq1F-(Ifp#RtWj#pFjX
zfA1yW*F8dvb_LLiT+_7(nL!MtnXN4|-zZ@F4skO~)3s5k+4Z7E!#oUJ*ett3bzIdt
z036$W&Gy|!v0Y_PDuY%ESATqVCo?oXo0`+~wRV5MUf}Et*}5<KL0DU%6;^gdUg!$&
z<egv6gFH0fDELdQGJT;qL*XQ4yTMFt5fM3&z2i%7c8mV>D-)+hsYklJZlcuZfAVs+
z<3zjeqW<__PktQD5s(jp3IS&n>KDiMKltJXqq}C0-kZG-#RRYyupxjyYNaPmOiuh`
awf4UfETK&%+H<l10000<MNUMnLSTYFE&YN3

literal 2512
zcmZvec{J2t8^FI~Ft+R=`<`tWBWsh!I+jfHLn2#f8e?ggAxq}hSYk+#l6`C?HKi!Z
z9+9DB$rd5|maQ1s>YdK}*L%);&w1|WJoi4Id(V0Pxi=YuMjhdi<N*NSh^>vKBa8BX
zLy(g-D=nA3W`P}N=3oW@m1(>OJ{+tZL~=x#0~Md7m;P4z**H1?K(s0VP!a%OkF`Wu
z1b}cD04!ew0F!J05D&?(`v<|=;PkaeS+d9)yB77=S>O(_aU%f$m}Rh{HOBW40JtJ;
zEzO+$C%SW@!j2BgbexWu$PgD6&UlfK0F)th*<&5K9IY-b35oEjxde&a83Zr?BPtsC
zwAI4-KA46H<mEv3zHn8X?L=29ZmL^-aACw1DXX_Br_ZSna%vC#ytdTH-ROhgKMV9C
zb`R(E^mZm{mC7G6$6xy=lbxN*Lb?PZBiH<8Ggp%He<{d*WH4%JR`X5p_`rvA1*>Zg
zn4+x)Hz$yOK)TZyyKkekogA{Ax+OKAdSy*|{P|Ar;RnAaEoKR*)pU#*ZEoHrm-2ql
z@cMP(@N*+$cw3B%oAZPIe^#Lek8a_TV^Y03b@~&Dd?n&Ml7LcV8j}(y4w}2OTDVye
z+i(obJnsM+-ZLQULtyUc1#RSz%>LCV#hCoBb&sC0u@e`}^PoN<b^(LkiOli=+eL-o
zH`$1e_76mj$~0HJ1xL!_jYJT4q^?4&1;RmhgIh!`ws*H3cPp>>r~U4smQ*abAIXL>
zlL+uz&w6aR6MM9-ndE?~-Mq45o}@%}-}>3jPdQ<n@N05aCD%jC?nLgS!Ct(lm6}FK
zdZ(zx$m|NfEb!vQg}V=8fbYU2wID4@Vb?+3+Svk2wyyeuXS_1Ew^sW)a*t4`MS#<Q
zh{P7Ez9~a4dFd-q+VaxlfG71K4XP+R8>;Hq?*aV#BxykjR9nTUV{E$ZF^jG^aDMBA
zduKu{LGMN!A`hK}z;iz4W-?fW#(wN*UwN0S;Nk8`1t>?6i^xo$AS2l?kFV&X<kHnb
zb|H!g_+pD&nmA;L*i4Q8F}qPZ;Tw{tb@+;1{+xEHy*(H<S-SsGo<2Bbb2iOu$RFVF
zi+&o;VZJ*vwcjuqTb_~Q%SX+cbM}n|Nh^uAiPlmi1Qm$SBm~eXYKJ?wmB5ySi=OPO
zb~}kc3V+Pa+J~TlWtwN*@!Eqy*wCQWHmL<Q_$56e>MeF5jQXjY{GnfFv|7_ENDKUq
zyXU2%;E8Udgcb}<rfJL*%yD>aG*H<&Gr^^NANlldbFqN@?;ee!FW9c(!#m8nKaZz?
zHcsP&$Z{_+k8*V42m1aw=WYr>2yYVRdmp&=tjiUn?{qsgDc3F5=K`uXKhe7jFHg&~
zNQNX38hbS)VXYA_=q*6N!nI0QbkT7}NZ*ZkOrz3b+|{E-l3UlF>4fBf6XGJ#?}d03
ztu<UP?6(FER%SJ4)PV+`T%8-Dv3-;mTS5Ycr($Oo@70Gap|)3+*EPr?Y`Auq21R@J
zB4~Q<G#BX18>yF<4=VXIV<0t!_XltYg6uJj&|CFQK|`}LDm{kVF5LhV#O6ey=T(XF
z2}HZ_if<%mBh@!*Mi|4C>A*>~s0rrz{vSYq$fSx_85bX_@m>2dsx<jw#9QcM!Rm-$
zz5v<RG_xg2@U`BU)Bz%F`}f$<NM1H;6N^k!`K**P+WKOaKFAf25!9N*doOrmsTJhO
zt0T>KhT^)DgAMjA9@jJ!llTJ;e)Xf{$QA#SWn13X$HR^h@hMobt<+tdIYxrL>HIOA
z4S2U9B&4EP-gKv)859Z-LHo5_LYX&K&#YTKD$!hr<U_Q(?D-&H(5X}M4E!_#hvXNN
zF#^HezD|oK9F!=(Gh(m%)bOiv&I#tRnRwIVTS8>2<Eex{i-UwkeYoBlf+7{x&S6)5
zU(3L}t*)dwdlHxn46bqIjp;J#+Bj`LAehQSyeAmLIR)W)l>ND=bR`e|Q}UbEjuZbI
z|C#Hw&{u<yv3RoxS!B~<nh2lm1cFJ43fYFMK#bZxS4lKYqRL;&?M<;`%fvpB1j%s2
z_7d}rl&a^qP)OCAJWbz{%)}^m^ff8;sEaBe+7{Z`^b;`Yq_b0M(4m!}f$lP>BY4`_
z%ze38VH&Iw><g(C#5e{!waU-aZVKJkf;G-e=%|9$Z|;iv@9v3gcW~G!UvN1$KK}Y%
z9qBd_gOeEUEDrg3DT$X>`_}QdHUGupCuV)*c$)O_u3ffKnKzZa_qYpAHy}nbo@8!j
z<lBAsUe8jy%eb)XKGv0>pnf(A?k+&l@e#5z1z{SXm$R?&I)6Np=7ggB!X(0|bxbb8
zdG3NupyvnMxWaN~Ll2arq6S=Yo5tV$BB{bdSM9jU%zWqGqc8or3JbkQJmT3z^bKR`
z=@Dtmke0hrg38_;vhzJ*LCEXXa!&lh>fkxsZ4#415^6!et*O)9%@_?Jk2UF-tS*3&
z?<mfNqGMQb&iwH4{NX9k*?^k*S56BLX{jW9Ni)K_+~i5iBwzIk#h$OEN{rEXNG;-e
z_f^(S&ds}8PWMKQDZov&J1N6Z@}Jkh;Tf`n##LGHo_+14ju=&Mk@`+!m!UVF(|^=s
z^Y>(h!E2!+7vw1DVu-93^@;e9L;XJ8R)qfCRK`#fd(a!Wl>OLDOP!Nlv|$9X8TVRV
zh+!3h#kz@)tcEgOI5!T*8=+qPu45@}555z^(FAg7;kE~X_JaH@`g_#p>oq`AR!UsN
z=hD53HQMC~0|&&oB|!AQtL+(ZO;@q+M6-SWgG*yS+CnoQ@40S_svib@nwkd*)>I?|
zDJJ^R*#1)zK=oEmU4ZH-U-vuNVgF|T=70WT5l7FH_!Es60e!a_^4zZo<(B@M5(lc@
zxXF0}t`K1g;u>LInVIfV9*@{NG;=%)(8X7phKKJUoKf-caZ}mH-fwf~YUa3`(K!#u
z=Ozd4z8}4>d^`LoNI0m;+Y>dqmm)CGhp>MAG>DyTLVE4FZ{vd3-`DBXsby1gdM>GO
zBD!Q<95s7&+<tzARx8(=PDhUgaqpBpm_NBJ)lpc*{M(;#!zJ+(Jv#x28n+!Pv~H5|
zc{uqbZt2^^Q?z8Ddro%bYD)9Je|Y`6^(E(e<TY6z6O}M4*RV@IVOSGCB9;XJ4%0P&
z!i=H12F@^J6FmbHxPc~2*8~QmekIlZj}T0_gufj1e+0e%3iR695|&{0_Xg5coQbaw
z2@4G;;(^QfAgqawj*dSe7^{ON;sXP8FnGVPa3YqZL&OupRN$~60*=6fA0dbkPSj@E
Umj;iyvJL}mt<aVg<`?7s1Ez?5mH+?%

diff --git a/res/vector-icons/favicon-96x96.png b/res/vector-icons/favicon-96x96.png
index b9d4326942168849f8cb3c561f2aec69e6026bf8..eb48c2c91e919f8308c9af3509422173105ca0bc 100644
GIT binary patch
literal 5628
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
W375=kO9c!70000<MNUMnLSTZb2m0dx

literal 7536
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

diff --git a/res/vector-icons/favicon.ico b/res/vector-icons/favicon.ico
index 1b40e1747a4fb5c4d6ad347137f31318cc7f2e1b..a1a73e6cfdc4befddf4b5b9f1afb9429d24055d4 100644
GIT binary patch
literal 90022
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
aIa1I|(;NR_{&n<De83DV+{(}@?f(N)0L3E!

literal 4286
zcmb`K&ubGw6vwxU6cMQ)cxWpYy$A~8Q9S6s;K7UFK@>cS*Z%%psoI~~+Q!yKvq{>f
zo21!*Eov)j)aa>#AYO{pDoV8|me|sc-?y73o5^H%Oq=k{{MecIdGF26>_$<F@U5s&
z=vN8uQIvg(q8x_MrJRPS-}vBKa=?_?A^!Eft}2B(phajM`VM)ZL*g0Pz40o&0=ffz
zgEpYAP!Cj|Ju<fi2C+4017e(J(LR_vE7JqUerOtEoXC$T<mdzJQ`{6Y&$imPaBW+L
zn5n^bF+_3mY^%MFYu%X{xi#2caA1=UA0c53uzeo-<G?3B7IUeY9@ut@o%l=8vCIs!
z2D?Y04=!xtuk&;5ZP>Q*oUi<WF~{w5U~@M#D#0fHl6@{;FOYu)c2_0&UY==h|1TfR
z6VQSrdk*7{*m-<ig8vg^PI}*8-5Ks1DTlo&N%k*{JInL<wgi6-W9FcQHZc4yUa7B1
z^1Co@2hZc%5`5-MR<cq3I@22>*1mQt6JVF|EK%E)pR8j3rwuH6Bgo>FaW^j0YbRG?
zt)Vj_mZ(pLAM*8qo%f8(@+ow`pUx8xa)zgm`^Sy1CTdu;Q+1CWxruc9nEJeq&JpsV
z9oqEzlfB9IQD;7K6Km2~@L`*AucTx8jnZ`;(qr?Tea!c=nnijaIP<GxY&_TtcFtKk
z1N(cOR>75zdw(p{#o}NH_Z{+%bAi!132d#P@7$*Ncs`JA&2!iEf%bq+(VGG0f6`>n
zJMYKXX89DCny6*tV?8X=rLxIu<HmlR7#U#x*+x;`?LN$J1>eXm)`D`OKC5Tyi&~SB
zyXJN_)mOKS@BXaj*+yHMPq83ILj|&oJY~;abLA8FRkd*+1*h6r;Bm9D@3zQ~&yIY=
zOZP9HZ7kNTF}*HooF(DgUKW^cb-TBO`Q~z<JMoE4d&t~V=`)_rdh9W}&rKh&CfPZa
zZU4o*%T9c4a9Dh<&^tAqE&cb5wJDJQ7V{jR!+K-bfsb>&WkP0;i}FFSUv!F{uHjsz
z{|I?~pm&bIqn1MUgctl>68!w{lE^>aC5-nE!Lvmav(*;|Tlk-a_a|Nx>p=YC9DuJ4
zc`TbUWeQx1+i}h9K48C<VhzIZf&MRMtpmMx_-9<tck+wY`VDjea?QD&Pj%#=3_f&%
z|AqX}8^TN*97?nE?mc3Df}+qRsFb%WYNtw4CCkP5Zl6zU7G-@}O7XIyl%#b4<td0t
RtB<bB%9>-@sY@wE>>s&hK41U<

diff --git a/res/vector-icons/mstile-144x144.png b/res/vector-icons/mstile-144x144.png
index 4e130472349c454e40c6aeb02000cc0d283cb8f8..30c8cf18dc56e12f06ab42e97d0989b84f1d6516 100644
GIT binary patch
literal 8265
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
Hu0mjf1S1JS

literal 7541
zcmZ{Jby$>9)AxdefS^bT(k+ej(nxnVNUe14E&@^#QqtWDNVrRPBOTK064DJzr-0zQ
zKF|C9@%{1L*LCllJ#%J$b7uBBGiNqRTT_V;p9&uU01&Du%j=?P!oT+!4*IhZDRqY?
zSoX3SvH(DJJi#ApZ1i_}TV-7h0KktG00<5P0B+G!!Mgweln(&dw*mlw82|u<M^1~5
z1e$?kqoyQ}rs(J9O=}RE;CU#UfYH?SKd%Q<QviB^3sKQfz+J^7d5S4OlI9)*08rzr
z$jj>cEF3QRnx`Nha8Jg4--TKe%j(NxiA*d`c+FP$36V?=tLhQIIc&)Iw#D;~J;YaN
zWTuE&SD9plCH-x2ahgNqdIx}k<1xn<ms);-@tb>oNzY0VJz~+?oNMV0zxLrBfkJ=3
z?Vs0T5nVt06LVyelS4y6d_;zB{`b&S6KNc4E$MQ01T37gqhna+O;}YA!k}T&SP_XI
za?*D5=n0EFDd@E-My&}CE}(t6ug?Xi&QwICmXe+K`a&=>cuLpZJsGbQ4)J=ffUHE~
z)3BUZ)fQkz?2(?CDPUVFN^nm*I55sf5VNqz%SKE=$;f&M#D_)~%{_T*o(0^zp8w=O
zB_N<D`Z08!H#4)_^3X-kTv3s9Pm3|qa{LzLiFjj-Tgpv$t*oi3>Fs^hWZqzq*6xyd
zt3QPAJHI<wL7{3mayL`?RNGYCh!qPkJc61P$qfG0m@OpmBDjF@?aHvK40;2|<5-Ic
z8x}cv;?O}^3Eu~a@-F<d%^#s5*-a_MfBw{-e(^6qOYVt~HoeuKO)OMZGa1-=$XX(u
zz-$TD<#;?A?Z44*|KZRy-lS0>T$oW#NbdccU8iPeYn2wJ;SmD-sXeYfeG@!w)r0Nv
zuJ7t>YwW_=Wy(s0wtherHdo?yD9oQeH)c&mMW^V4_gt&5FWeRg%>Fw<N6{EKcFk~q
zH`@yS5WGIs;95bWN;G7MfDHg=LmdP!_cKRj3=PwHs0hDIn@A0N)~mOGZ^>p)hR3Cu
zGLKkiMO^s&SKB819Z*P+N^V+&2-3lL075EkCgbUe_ohKJKGrqI?_LSi2REr9P6ZF~
z{c6pArXc%;bZ}^IP6t-rBCx(c7bqH<k}4ak>Ek#`bu(V9x4uNiS)hEpdeYzMUK?j$
z>2icCyk=*<*g(;7)89%jVkGAHGh@MQ#F~khmruJA*9-isZgS7K#M6r8l!1{DCneGQ
z;_UWPnE|#LQBX*sb@ZL?-o=dv<#W~j4xe4>I;Pg_sq4bb$;G8z>UOHp<Lb)w=JYzl
zl<b$Jy`3A?n7+S>GgDI?9<$81I;DC>cqRq*M$qw$9&AW@8v2T%d>V%L3D|jf820ZH
z!U?hkhlGI|dD1J(F*}y?^FMw}DG7vrgi;-8sh(l_ZuAoh(!byBxL$cH(F~J<?`)64
zZRe?A++PeVl9L;;FAw%+*QVIFr1f;|m^gN9N)O9VC3qZTcmLdU1dNQp$ScJ-YblOx
zdmipLLAS*o2jz_g_LncjizPT?pj^&uRYWJ9?B7zJRUS1{V0q5+C~?z9(MK{e$iNIs
zG@G0B?*;5ZIJRQlxI{(L_;@zTez%M7r!bQi!o#cMK!@;(;12!Dpdi@J*_PY*GXIeD
z>4jbHfN3cL1bR(5(R7;1$w7t^TnxA@h~fW<NNtMB=4a#g%rn~m#+(mD71Ky=XXhLo
z`~>FJS7-fA?=O!v`@pF2^#q^YEn}srpnIrD?3Fl7zh(^Ns?Pc?Nq2Q~NH$bejXN0;
zSI_aT5QiZzELU0!5+ZWxyZ3FE!Ga=!%+9VVt}p9y5reoy$S9u6d@yF`cxWp%H4G3-
zWzpKd!t%1_DT$-*-Bq1F^=I2xufRCe?lsi`<9Tq~>UToeo4_`o!u4D{662jJvj0d(
zN6&u&Yp+G7r?09TO?2Pi?O1B$Cir;nY9p(Stu1A$t5+KTb_B$byE(E9ozcA%MmxYz
zR6IR>#LmF^O-?MHBEX`;Fq!3dMwt7GROPx)a*@$Mygd!9f}fXuyo^QXB2{Gh8P>y=
z7u3gxl)NTrCJiRcYiIS{oQN_vHY6-e`O-a~C6I>r2hh+0jrV<ZIM%D=;ofAY%HZgz
zuMZy^MY?Dkqxk+aQ`o0uPdfy~+n*$H`HOQO=J=4+PA|_fbrn&JkrMR5P$Dyy0Md<v
zFo+T)&M)Riw#fK=CQ!&zZKVTliy+^|E_&f;u8cJKdqs&<{Wj%<jZxJY;YG8oNcyFu
zwpM0{KdIApASYxdO(kFI6bof66zhvI)Nh#g{Px7)^L|oZZ1RW(s}zH4gzlcI52BLy
z4?((z_1zV=U_EH6<md>ELAs4CZ%N8j_DI@EM-S_V%l2^r4JuO4rv>UfO|Yx-*0S~!
zG$*UOEf^s8`{~$5GOg*>fw{OkgLFKN`1Ss&R1^i9h7HY*C)#t#DrK7`N)kkB0q07u
zsR<@0V(l)6Q^DfJu5%u>0UwaQ-(!3+D4&dtwFQ44cc_zi*{}7>gD;3nH<^!LGvfta
zXRvNdF#gY=JUX)TE~?m8aXMMJR5@~V)XpY1#I~4}&KA<>_U`Y7G!{=)JBH#mw!V(F
zm~;#*@61a}%W{?4fIh|TZ3_fLGO^*b9*59)$Jh8LL1|r`?4#tU{CES4Z{L=e6`4?^
z)ZofhtapBXS$5k-y;uDF@C^yBZEQPXPSO-i78b&nXLLmo_JXG5$KRN~iV*>{)i=As
z@Dl%~3-b=Ku}4C4aM2-8>Xwt1?%2ES*<gct1vyeK0eCY%6FrM(w7POZdeZhf;qQ*o
z(9snVPoON!e`odItAvA5hUeRDRn2!C{VvRLG%x45paY+>N3(0=z|w|#GE+|tEor53
zQOAodWY4VlPEN6pFbsPhb-p4M#B=MO$`mjeXr_a`qF2#LtaJylXd7;C_00-@&rnaR
ze{DIj$mAFuWa}*7i<#x+*Q0^@buzw>uiQe?;`Pl|DHew>d&^5|&DmGFZsB{MecT83
z)8Ee~Ia2p%ZeqH(`E88{n$r<v3GyXiFo^;^+rU}qPO00{*|o@v;B}jkT!sOIk>nz7
zoY<EG!2Wi4LojoAxJI_2A*QeI$B%IrlZ8dSuUEjAP7y>v8kAtp=t#kN;_|nVKVNJ+
zR6Y^W7!M>G2VkiD_ec-^^Cyk_@a7ktV-+7$p_xeRC+V#*1Xp!?6^TIkPOoA1EBc{&
z=fefZ`Yr_Q@RxJ_l>jc&=%snbVmUhd2estFST5;pwnunt;~1)&F_TD1>m02402DkI
zM;4YuyO&P&+}vZTF({)7$bJz5^WW*6CQkdHFK!g$Z`J=}d$b%RHTaG|nNc#@<I1Ho
z5CrOqeOYdXx<vjCb!pa1CQsJNr{((shdU)^ZtQ2dj0R)C1?K!QREor-QM11q5PQKF
z7at#~sd9xEO=Bn)sv4xzITpohPbtBsOSrK!GjBGNsR*@A_BQR*-n--ke6^@j@DIKB
zH1=+#Y||H=t!#9K&6<%{U;1?|wU;XM;O@_MLe;(k78j2e6Gvd0FUYWT{4)$#ZU?rt
zfVnW(ym@_j<i#OksWp}=Q{A6CqE<Kb<dun_2Yth|{0NYPVG08mI^;&MYdK{Dbu4Ra
z9MZo;wUgq9%02^x7t~Ch4cIhmB|dy`WSn=XTl_IM!YI09b#^N5C*maNysg4e9iG3U
zq=vD2d)X4V#)o}T^;t1hm6W@)W~|$@UZYrqn=LTN<yWHKHMX6IvkdisB+x6at_yr{
zMYxXL>lx?5Xu`O8hPf^p7jEf8B>mq}R2{bk0!|4VIY%>;$T6AZz3oT;Gj52;k!#C-
z`M;co2qLAZ7=r&>7kl(#z%3(<;@N=b&y#;DDJ^BFcLs}-JxFWCqvFx?Vl^ZXs=(4x
zE2!^3R+oeQlkVO#FT>d#v@JxRC1M5r4NZslZ`*=J#}XB6#qalq$qdtX?l3%sR2K}i
z7Unc~M5z9PZAGH$!Yd&C?R7oOMgvy~C0|De0Vmus|LmoW(&sxmQc%FhUR~2MW=}VA
zg~ANe)6E(hgtF<}+D6aZ_t3ww`6nsqvz6|`k3b+osu!_cx#Ch%ina*N6!X!7#JR}z
z&rjgC-~daR#g(KHZnNpz-<zAI`Z7JAW-H3{gLTVhXMak@d^60+5v0n5?;E)vw@G|^
z?y&slz(f@my}PY3;;Fv1l_uHLJn*Kb_iGJVI`1RV?sfFGn*K7n4zCoc7^WqYtfKDj
zjyVv8i<2{&c{qe_i`pEp!1fP~I!uL=UfSO@ji91{Ylq&e?@MPNDJcQLyr_qNjsXP2
zP)n`oQs6tHOpk{rxE8DsUY`rU$}iH>*hkd*W2I<HH~ZEq5VYsfk)Ozr=%^M52-pSy
z=_q}hs}c;Jbe!z0QVG@g7dg!y?dph#pm_5>sJvIkz@Xp}6@T>cqoZR*#lg{>3pUwF
zdDCSV22#uiL#(t|LqH%mCzzajEJp`+xPyzFKHt^|FZizg&3&!uuVP16XV^t3uF1|S
z_NJA8Ky8gaN7wlA8OYuq>F5-Hk@%W@_qV5!kqoOqrVlYjq&&y-S7asZC7h%YMAdOU
z1cS0Ze&nR=scGvvFq4up@qbC!t9eT^eyPFCu!xpuJ$<_5KU)xsURsC`qe#frD}w-K
z0j3QS0jA{@SsR{$gj9=7U$p_TFU|V#sF678J>T3jpU^yzS;}}<fJUZE(5JX*Wbew~
zb%pvCC#xxIhwA4H1?+U;j}PXW5~0+1y!7HM-2JL=^}ysIR+;2Z2oA}mzO5iS;%YO!
z$g~Tf2YobToaloHZ~T83GX?aXowq`U@+dOt(qq&d%hYjx-+=5y`|p?o37J`IG(CCI
z(A&%QHBFs6|01oaX%K_(-Z7I1|Mvdqg_MV-gH#=q6D4}Rj%{b()(!^K_$6K@njF0_
zYi#gmu5GM;?MDuaIv!3PNdj^|b%#$@je-BElr#O6fDCL>D%3aa;C}L0G-#QppY*DS
zvIwqju0Ky{&1qDFPDpLR2VpR0l_>Ku+#}lb#`kU&x_CamCbWL_2J&hR)*Jf>wX};v
zaqokrR`~hiQ}piF_WiCaEGn$|rV9F+!A|ucTcK=@3*xyj9IDtGwmvD)?`Se~rhSZF
zYVG_q(Nx@#uIPIu%GEwNIc=cVc%<k&^aQhpWU5!ds8&J(pTN~7<dzG#kq(E~nB^6>
zo{pr~#+_IFerqDmkW3kiK9g(Tjq+GRyc?EJalSKEH=S;0=ZDu>UXI1%JVHr4jX?)F
z;i_-VDdOV6bO{SeyZ5GB#5H<;#Z`9B?dtAMg5#erNU?u-8@_T$N2qImSQQuKVowNi
zRTtRN${oH9DC0q|=yuRA^T9ymvTD50(EfX>{c4`aoW8NAr||#oGJ(?H|3UG+;2K!)
zfWEmkgjcYY?zP%IZ@*cKn0#e%{h9DrXa42gNs|x8JYG3+X-U<Pg<3UNLwlTo*Xr+&
zP!oX)^6z5<y;XrrLg8pl|8BvXJ9gE2&LlI1{A4Q@9bE5;y&p#>GBvtTig|4+-!;!}
z)z*5;!JuG)?2p5$Y-~F4q0mRoN(>s>YHY2B?_J{*leXsa^4+~()1|t;d~L_Sr>U4+
zz=*7@EI#cl@GdSbb(|hnMZTh*wbjzT?s>(Wk~W-Im|JGAJg8K}MyXL@3A%4_B0xt9
zeAkel4|)=-g<X9yNHP;7(StqFDi<>`p&$*-7dVO$us80ETj(bk9NUGsxfMJnr4VuZ
zc^o$PVHN9=?&YVbU*R_n0zN0}vXa}MZ_XYkgBMIzvF%FE&O$<d6Zah~xrdmVZV+$U
z2oznSC|XNlM#eI#_^3AM!$TEO7lP=YyIgS2&dnNTP$ng7MR-ns69@<q+0oI1Mw__v
zMYNLSpo=!*V&MBYsFWev!D4%w$|YcEeLk<dYkItMT*>~*CF=U;d`q8ekPHAN0YAm8
z0T-|*>)_jgByWlod-5r5kAP_mN~}zscuIrrEB>|4vj_97-iXR^AUS7SFm;%sUS;0=
zlf|aVmij{%q*dpx%OL;2csx9TmyJ{ECJai8#udwGYwME9C1U41KU+_pKA3cbur3ok
zT@edf-j_U%qv``{S!`f$dT^~ogY0o}odtvExzf+$?GEs&jbk*NXWiZkyI(FF-TyJ(
zDXX0w1p)>>Sst%5MtA+Ig!UltX%C3_r)jLGPj48W@Q3#g=<UB?B1IdAu8AHVa2|Q=
z#Kk|QGq1yRr>7kY#W{@16>-u!NO=X{m=Q+jNdUcgs~%f9^6Z3p1sN*2@TB^&c?%@o
zFK~hu8bJg<pCSLZsLM{5;}v$`-*&KlY(Kx--|{Tn^)<L|l&lR=fb0G3<|u)~**h~S
zj?>Ch%=HH~6_uV(tRx<H4O@kj19OZ&y99E@VN4p2%$W)bj0egb(YdM<a`_$PnWd#|
zhHE3kM>U$$oIF-2?${ZKhMYs$&{!?E&7d1k4+<x?zmymUXVlVni8m*9>K3wYU6<Z+
z3Xf2IM;z+E+B*8?x{$C2Vfb_wZx2sk;bRaMNgop?0k-OuOiZw-$-ODRKDfqR6K7n&
zv#$D0CPgFSmRO?{UscVfg}gZKgbgf)NIu#bAMn5gLe}Jvm9skc16Y^3XVrqTl7SK^
zb3~tXi04z5!;Efe=*oKETpa9K;7vG`R>_{1WCp#Di029g%A~{!67E-p+mVkU-Onz#
zdF^vYCg*Rlgm~$X5{;4673K^^4thC$$C5~2>fCZIZFDK|9keTLgZb&fb_w`8m8idU
zC13y;-%~q@=Y%c{Y>Ai10u-)AR(dUZ<pR!GQ4(=uNY+wc49|Fwu^%aAnx%dib4xUj
z@1?<k9JBX%HU2vnmyj%qXGTnN*Zpl|E$@#l85s$Sn?%uod9mvM0G(3SGu8<Ds`sY(
z36&BP5`UoK?r6>Sq9_Hty)zq+|GvB0>j93n`=INg{Y>ykQl41Jq_#*Fy(Ogp&Sb{t
z_|J;SX6m#$T&S2$FDD9lIFwUkueJS#Ce@e?EmLn}?5EyUb#Va+HhjKSpa4G?Z6n(a
zkNiT<KYdu7AqM3@i9WZKF)v>ynL&oPDa~{zp@A>5D4Pn?vtObl(5^IP(a<Ikh>EJq
z;rr+xT$u4z=Layouz+rZI(K7><*5NAEkaSgYOIGK5=O%CaWeZ2W^HYC2&+|Jo#Q_=
z&<nY#IqBYEG+S>9OQ=KPng9C(tK0#dNy5Q`<QB-hC&c?Ge%7qsCN&gYE@HK_)3Ir0
z2u5jX*Rm|8VaGheC9?AlK)M5VG9Gfi&?;9>2q&|i;yDQqK7kbFU+(w)r*tfq3$VeI
z3-CVPCYkw+wZUTU_$v*ug^rBjM=foEDGaB<KldgUc@)p=$<Qa#soomP*SjW9|B#lr
zgCADRzCKkg5_gzW=+@wG9iRA-McJlLt_?wfeJ2SD$q_%5)iy|Gpv=!<{Ayp(W$YC;
zBx|udTj+gsXyNk?3e#b?xpDHcf4VLdXmM)9Q?dgvE_)PeTI*7vPt5FjNF!dpOG&93
z)6x4)I|B`^`|3P2t)Kv}7;g(6RJsry?eq$V5@laLGTdlRN}9`W-HNBvG5-nF)Y$l-
zJ<EgtT<w=d=h*)3PXgsOm6k+S3f`JAYnU>I?g=8C01loJ?!bj|JF1r0u4M|qdC*Fg
z6MgVB^mNg!7lWDf-N>U8Yoypd{`?!WWJ&k-a0~~z{^gcFV0<~#!*61}pu1SaWhO;J
zTXUK2uJ0<~uP{7IGuu6~_Uh1<rm!LmtN%6(i=2ENTebISW8fTbf1kl!R&AMFA(L{+
zZoB=1$(EI+j80Mf^={Z7e=bJc)4Yv8`F}hom20Sfou3ORZM*5X-dq|XefP8KaD~Vx
z%pea7_3-mKs+P=N+5DulgNBS?`$jU-s^K4P!4D9kX=QVN3Dk=QxyJ>z#JLGoppn5u
zCZ&akKU&bqulPa06fJG(nxLsiqCX!dDPXU@bXSH2lHm;vu?Ii72YVUsRGTtY;SmZ_
z%?l-W?pAxTphV#&v`z@88?4JW3tA-%oV;4u^v61$P9x+<Pk3=~$M3VUipoxFK^qpz
zIA7$4&yT_5YtNTWsu`m%h=|<%?}SmJ$PhFr^V@a#*hI7~3W<q@bA<G&Xkq3Ui`L~A
z*;Uq$q6e{lih7|l3+!|t_p5|agYkKw3l~~+cq^lO#rLfX7p3C!p`C%a>M>iPxT)FI
ztgI|yi=!lANq%%C8igQxCi9pfCF!|!yTmHOX!2=E!fIFYRNv!nHdYeF>45HtwKbj1
zvJ%UnT<I1s>3bD)Yh0bRWm-_tpNZ?UL_D2x*u8qBbj_O=A4#YP1N7#&8eWJTjpKni
zt;4bHh}&<_qGD;e8m7tV%ISC{)K|`abZ1yg;?Btbrun25Vks`ikgPzNv}kwn)!ECS
zHp}NS`JZOP@Ou6f*b|<Q4BOD4EDg<Ml6HgL2>TyCpbV3=WNMZJv!Qvw=|}DSkkPC@
zf|jlL^V{FHNKY4oUEIkxa?-!oaH(Y;JD!b+qw~iSK}oj5V2;?EmAJ_#0penr(44#K
zTg)VR_oJ)Pxug6b&1grq*O!NlhgWf>c-z+V!>MNzZv9;Guk?%uswuvj#60~ZUty|{
zmhdhz;8@b}Sv<6YisBOyvo{hxF_D4y^($RKFK{gM84}|==b8NeLNCv_v=);`3bm$k
zmxp>kk@rhZgJ1Igk;<VTe=_9Ro!2?)PS(VMj=f)Q$F8{goGM)OLNET@I=4J)uNp+8
zLMxOEpO#F@!&r{386SikrzYz9m_8M|F7yJCJvH-a!-dtBs@L9~ZwqD|JR9!3#i!Xt
zDId<F&B8S$c>hES{3(x=cd8qY#0Jx^L-Z)>0)nijj)ic=x};kP?=Z7`rMP)cw$xfX
zb}93*REd>Nng@&Ev`NxYH_}^2G4g6r3|UQ^I!d8UruvG-?g%`<*-=I<nbn(U?;*y4
zpFgSP5x3N=6m-`0-oaQ~=E#b_BPKSr&w;GNGe3w{;Wqi9*UpA!e3JVM!7e7pW3AEG
ztq}LuffAIO_LFrAG1?)jIj5JPTrDbkX8jkjIlH?X`GbMLhoSVhroS3Z<A>w$cRSnv
zc%h#fb@I7NU!QL)YP?@7n+TE_8CR89H{L$NwfRpE4c^a79i`8#8?9`Y&@&J>X$&Mf
zMa^=Owj8C}3cExy-m73uqD(ra7gyAl+k#o$4LL0Aim55)OLZ>vrU;GR2IZO;ZVc|{
zN$ydV?s0tGo<(0UQT-&mHHU-5KS{4QPG;W{oNlpniL8WS1(H91?!Z?S7~~YaL_Tr<
z^OY!q&9}Bu#1VAh;BmZ?-)mi7)#(1VcUn*MvX^Aj$X_+c2@%~8j+c6L6jZ@Y$nZ#6
z-d8McvT^q)8vl>xm6gA@@ViM0mG+VJJ-jKRLp@z(21;Iapoi7zX2tE~`1W>9V7vL~
z0>aPouSI!4z#aj!L8;F+<+^I_8nRVHYQS!x#6lbr`f}#sVfT~E?++geN!m`r%;TP`
zhmBbQ6gYjB+SR&M^lBv7A{2E9U-Mcr+wbkvZ6q==E1tfNn(vfm=8F!)+TN-TY_C83
zi-AHMqWr6<{Lp_CvOpA!A$Haf5YW~OgeHL3eEh=Pd}7@EV*30-K)%;NA%0Fiejp#8
z<!<}>|0Ce)Zs+*U_x~@zTaRst7SQ~M0QR;A+E{}@+)yt^z&l455RjLb*8mLi0`uBg
zdxLmgts!2HKD^!_TZp?C_j{1d{|^6e#?jW@4b1E1=nmmQs~SN}BhZ=wDhitN6>?S~
F{{vs_nB@Qf

diff --git a/res/vector-icons/mstile-150x150.png b/res/vector-icons/mstile-150x150.png
index 7222a40cd73a92ca2003ccfd11b9b9b0153cc864..5b8fca8a486d4566fe154d8da10e1f6fb4780f8a 100644
GIT binary patch
literal 8575
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
FV1hrqfp!1@

literal 7635
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

diff --git a/res/vector-icons/mstile-310x150.png b/res/vector-icons/mstile-310x150.png
index af5ec1b3d9bdeed45f54ae30c5ae9eb6c43d27db..d809f00a05ef317db800a821cf11d043494c906b 100644
GIT binary patch
literal 9067
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

literal 8213
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
F{vUk(ht&W8

diff --git a/res/vector-icons/mstile-310x310.png b/res/vector-icons/mstile-310x310.png
index f5fecd426c63dc63f7ff5ac5e5aa0e394c13035a..ec62f8ee9d3639a410d71459390e7f7ad0dcb19b 100644
GIT binary patch
literal 17902
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

literal 57648
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
YbS`stXUo;o)c^nh07*qoM6N<$f@1-Pd;kCd

diff --git a/res/vector-icons/mstile-70x70.png b/res/vector-icons/mstile-70x70.png
index d45b51fb330ce075a3ee49dff048ca7c8a4d021b..820a909e21e217dc1bda15ba4cf110095abfa586 100644
GIT binary patch
literal 3999
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
FV1hdw&Y=JR

literal 10149
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
WL!lk#sLW8x0O~3_%5{o%ul^5ersj13

diff --git a/scripts/make-icons.sh b/scripts/make-icons.sh
new file mode 100755
index 00000000..d9d00d97
--- /dev/null
+++ b/scripts/make-icons.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+if [ $# != 1 ]
+then
+    echo "Usage: $0 <svg file>"
+    exit
+fi
+
+set -e
+set -x
+
+tmpdir=`mktemp -d 2>/dev/null || mktemp -d -t 'icontmp'`
+
+for i in 1024 512 256 192 310 180 144 152 150 128 120 114 96 76 72 70 64 60 57 48 36 32 24 16
+do
+    #convert -background none -density 1000 -resize $i -extent $i -gravity center "$1" "$tmpdir/$i.png"
+
+    # Above is the imagemagick command to render an svg to png. Unfortunately, its support for SVGs
+    # with CSS isn't very good (with rsvg and even moreso the built in renderer) so we use cairosvg.
+    # This can be installed with:
+    #    pip install cairosvg==1.0.22 # Version 2 doesn't support python 2
+    #    pip install tinycss
+    #    pip install cssselect # These are necessary for CSS support
+    # You'll also need xmlstarlet from your favourite package manager
+    #
+    # Cairosvg doesn't suport rendering at a specific size (https://github.com/Kozea/CairoSVG/issues/83#issuecomment-215720176)
+    # so we have to 'resize the svg' first (add width and height attributes to the svg element) to make it render at the
+    # size we need.
+    # XXX: This will break if the svg already has width and height attributes
+    cp "$1" "$tmpdir/tmp.svg"
+    xmlstarlet ed -N x="http://www.w3.org/2000/svg" --insert "/x:svg" --type attr -n width -v $i "$tmpdir/tmp.svg" > "$tmpdir/tmp2.svg"
+    xmlstarlet ed -N x="http://www.w3.org/2000/svg" --insert "/x:svg" --type attr -n height -v $i "$tmpdir/tmp2.svg" > "$tmpdir/tmp3.svg"
+    cairosvg -f png -o "$tmpdir/$i.png"  "$tmpdir/tmp3.svg"
+    rm "$tmpdir/tmp.svg" "$tmpdir/tmp2.svg" "$tmpdir/tmp3.svg"
+done
+
+# one more for the non-square mstile
+cp "$1" "$tmpdir/tmp.svg"
+xmlstarlet ed -N x="http://www.w3.org/2000/svg" --insert "/x:svg" --type attr -n width -v 310 "$tmpdir/tmp.svg" > "$tmpdir/tmp2.svg"
+xmlstarlet ed -N x="http://www.w3.org/2000/svg" --insert "/x:svg" --type attr -n height -v 150 "$tmpdir/tmp2.svg" > "$tmpdir/tmp3.svg"
+cairosvg -f png -o "$tmpdir/310x150.png"  "$tmpdir/tmp3.svg"
+rm "$tmpdir/tmp.svg" "$tmpdir/tmp2.svg" "$tmpdir/tmp3.svg"
+
+mkdir "$tmpdir/Riot.iconset"
+cp "$tmpdir/16.png" "$tmpdir/Riot.iconset/icon_16x16.png"
+cp "$tmpdir/32.png" "$tmpdir/Riot.iconset/icon_16x16@2x.png"
+cp "$tmpdir/32.png" "$tmpdir/Riot.iconset/icon_32x32.png"
+cp "$tmpdir/64.png" "$tmpdir/Riot.iconset/icon_32x32@2x.png"
+cp "$tmpdir/128.png" "$tmpdir/Riot.iconset/icon_128x128.png"
+cp "$tmpdir/256.png" "$tmpdir/Riot.iconset/icon_128x128@2x.png"
+cp "$tmpdir/256.png" "$tmpdir/Riot.iconset/icon_256x256.png"
+cp "$tmpdir/512.png" "$tmpdir/Riot.iconset/icon_256x256@2x.png"
+cp "$tmpdir/512.png" "$tmpdir/Riot.iconset/icon_512x512.png"
+cp "$tmpdir/1024.png" "$tmpdir/Riot.iconset/icon_512x512@2x.png"
+iconutil -c icns -o electron/build/icon.icns "$tmpdir/Riot.iconset"
+
+cp "$tmpdir/36.png" "res/vector-icons/android-chrome-36x36.png"
+cp "$tmpdir/48.png" "res/vector-icons/android-chrome-48x48.png"
+cp "$tmpdir/72.png" "res/vector-icons/android-chrome-72x72.png"
+cp "$tmpdir/96.png" "res/vector-icons/android-chrome-96x96.png"
+cp "$tmpdir/144.png" "res/vector-icons/android-chrome-144x144.png"
+cp "$tmpdir/192.png" "res/vector-icons/android-chrome-192x192.png"
+cp "$tmpdir/180.png" "res/vector-icons/apple-touch-icon.png"
+cp "$tmpdir/180.png" "res/vector-icons/apple-touch-icon-precomposed.png"
+cp "$tmpdir/57.png" "res/vector-icons/apple-touch-icon-57x57.png"
+cp "$tmpdir/60.png" "res/vector-icons/apple-touch-icon-60x60.png"
+cp "$tmpdir/72.png" "res/vector-icons/apple-touch-icon-72x72.png"
+cp "$tmpdir/76.png" "res/vector-icons/apple-touch-icon-76x76.png"
+cp "$tmpdir/114.png" "res/vector-icons/apple-touch-icon-114x114.png"
+cp "$tmpdir/120.png" "res/vector-icons/apple-touch-icon-120x120.png"
+cp "$tmpdir/144.png" "res/vector-icons/apple-touch-icon-144x144.png"
+cp "$tmpdir/152.png" "res/vector-icons/apple-touch-icon-152x152.png"
+cp "$tmpdir/180.png" "res/vector-icons/apple-touch-icon-180x180.png"
+cp "$tmpdir/16.png" "res/vector-icons/favicon-16x16.png"
+cp "$tmpdir/32.png" "res/vector-icons/favicon-32x32.png"
+cp "$tmpdir/96.png" "res/vector-icons/favicon-96x96.png"
+cp "$tmpdir/70.png" "res/vector-icons/mstile-70x70.png"
+cp "$tmpdir/144.png" "res/vector-icons/mstile-144x144.png"
+cp "$tmpdir/150.png" "res/vector-icons/mstile-150x150.png"
+cp "$tmpdir/310.png" "res/vector-icons/mstile-310x310.png"
+cp "$tmpdir/310x150.png" "res/vector-icons/mstile-310x150.png"
+
+convert "$tmpdir/16.png" "$tmpdir/32.png" "$tmpdir/64.png" "$tmpdir/128.png"  "res/vector-icons/favicon.ico"
+
+cp "res/vector-icons/favicon.ico" "electron/build/icon.ico"
+
+# https://github.com/electron-userland/electron-builder/blob/3f97b86993d4ea5172e562b182230a194de0f621/src/targets/LinuxTargetHelper.ts#L127
+for i in 24 96 16 48 64 128 256 512
+do
+    cp "$tmpdir/$i.png" "electron/build/icons/${i}x${i}.png"
+done
+
+rm -r "$tmpdir"

From f0b0999f65d6398d8f0cbf8b4d84a0266df59420 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 8 Dec 2016 18:04:44 +0000
Subject: [PATCH 054/243] Numeracy

---
 scripts/make-icons.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/make-icons.sh b/scripts/make-icons.sh
index d9d00d97..ae987bd7 100755
--- a/scripts/make-icons.sh
+++ b/scripts/make-icons.sh
@@ -11,7 +11,7 @@ set -x
 
 tmpdir=`mktemp -d 2>/dev/null || mktemp -d -t 'icontmp'`
 
-for i in 1024 512 256 192 310 180 144 152 150 128 120 114 96 76 72 70 64 60 57 48 36 32 24 16
+for i in 1024 512 310 256 192 180 152 150 144 128 120 114 96 76 72 70 64 60 57 48 36 32 24 16
 do
     #convert -background none -density 1000 -resize $i -extent $i -gravity center "$1" "$tmpdir/$i.png"
 

From d65374f7f9feb599a478cc7a092ee73af63665aa Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 10:31:26 +0000
Subject: [PATCH 055/243] Make the 'loading' tests work in isolation

The 'loading' tests only worked when run with the other tests and
failed if you just ran the file by itself, because the skin was
loading in the 'joining' tests, but not here.
---
 test/app-tests/loading.js | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js
index 892ba852..1c6211d4 100644
--- a/test/app-tests/loading.js
+++ b/test/app-tests/loading.js
@@ -16,6 +16,8 @@ limitations under the License.
 
 /* loading.js: test the myriad paths we have for loading the application */
 
+import 'skin-sdk';
+
 import React from 'react';
 import ReactDOM from 'react-dom';
 import ReactTestUtils from 'react-addons-test-utils';

From 67cf4230ac3bfbe4355539c34ad0f5aa9df8e2a9 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 14:27:41 +0000
Subject: [PATCH 056/243] Fix broken tests

Promises are now not being resolved within the same tick, so give
another tick for the UI to update after all the HTTP calls have
flushed through. This is fairly terrible, but I can't immediately
see a better way of doing this.
---
 test/app-tests/loading.js | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js
index 1c6211d4..03a4d11e 100644
--- a/test/app-tests/loading.js
+++ b/test/app-tests/loading.js
@@ -154,6 +154,9 @@ describe('loading:', function () {
                 }).respond(403, "Guest access is disabled");
 
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // we expect a single <Login> component
                 ReactTestUtils.findRenderedComponentWithType(
@@ -177,6 +180,9 @@ describe('loading:', function () {
                 }).respond(403, "Guest access is disabled");
 
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // we expect a single <Login> component
                 let login = ReactTestUtils.findRenderedComponentWithType(
@@ -191,6 +197,9 @@ describe('loading:', function () {
                 });
                 login.onPasswordLogin("user", "pass")
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // we expect a spinner
                 ReactTestUtils.findRenderedComponentWithType(
@@ -200,6 +209,9 @@ describe('loading:', function () {
                 httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
                 httpBackend.when('GET', '/sync').respond(200, {});
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // once the sync completes, we should have a room view
                 httpBackend.verifyNoOutstandingExpectation();
@@ -287,6 +299,9 @@ describe('loading:', function () {
                 });
 
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // now we should have a spinner with a logout link
                 assertAtSyncingSpinner(matrixChat);
@@ -322,6 +337,9 @@ describe('loading:', function () {
                 });
 
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // now we should have a spinner with a logout link
                 assertAtSyncingSpinner(matrixChat);
@@ -358,12 +376,18 @@ describe('loading:', function () {
                 });
 
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // now we should have a spinner with a logout link
                 assertAtSyncingSpinner(matrixChat);
 
                 httpBackend.when('GET', '/sync').respond(200, {});
                 return httpBackend.flush();
+            }).then(() => {
+                // Wait for another trip around the event loop for the UI to update
+                return q.delay(1);
             }).then(() => {
                 // once the sync completes, we should have a room view
                 httpBackend.verifyNoOutstandingExpectation();

From 48ca0254fe50c144781ba25390f3438d391b438c Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 17:13:20 +0000
Subject: [PATCH 057/243] Add signing ID in release_config.yaml

Read by release script in js-sdk
---
 release_config.yaml | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 release_config.yaml

diff --git a/release_config.yaml b/release_config.yaml
new file mode 100644
index 00000000..2be2a0de
--- /dev/null
+++ b/release_config.yaml
@@ -0,0 +1 @@
+signing_id: packages@riot.im

From f7cd5cb76fe253c870175ef59750648fb5c3a9af Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 18:29:06 +0000
Subject: [PATCH 058/243] Update README to say how to build the desktop app

---
 README.md | 44 ++++++++++++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 12 deletions(-)

diff --git a/README.md b/README.md
index 6d2731d0..e7e13ac3 100644
--- a/README.md
+++ b/README.md
@@ -119,24 +119,44 @@ You can configure the app by copying `config.sample.json` to
 Running as a Desktop app
 ========================
 
-In future we'll do an official distribution of Riot as an desktop app.  Meanwhile,
-there are a few options:
-
-@asdf:matrix.org points out that you can use nativefier and it just works(tm):
+Riot can also be run as a desktop app, wrapped in electron. You can download a
+pre-built version from https://riot.im/download/desktop/ or, if you prefer,
+built it yourself.
 
+To run as a desktop app:
 ```
-sudo npm install nativefier -g
-nativefier https://riot.im/app/
+npm install
+npm install electron
+node_modules/.bin/electron .
 ```
 
-krisa has a dedicated electron project at
-https://github.com/krisak/vector-electron-desktop (although you should swap out
-the 'vector' folder for the latest vector tarball you want to run.  Get a
-tarball from https://github.com/vector-im/vector-web/releases or build your own
-- see Building From Source above).
+To build packages, use electron-builder. This is configured to output:
+ * dmg + zip for macOS
+ * exe + nupkg for Windows
+ * deb for Linux
+But this can be customised by editing the `build` section of package.json
+as per https://github.com/electron-userland/electron-builder/wiki/Options
 
-There's also a (much) older electron distribution at https://github.com/stevenhammerton/vector-desktop
+See https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build
+for dependencies required for building packages for various platforms.
 
+The only platform that can build packages for all three platforms is macOS:
+```
+brew install wine --without-x11
+brew install mono
+npm install
+npm run build:electron
+```
+
+For other packages, use electron-builder manually. For example, to build a package
+for 64 bit Linux:
+```
+npm install
+npm run build
+node_modules/.bin/build -l --x64
+```
+
+All electron packages go into `electron/dist/`
 
 Development
 ===========

From 6acbdc442d3b74c88308e73342c2fa8bb7f0832c Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 18:29:54 +0000
Subject: [PATCH 059/243] Actually write latest version into `latest`

---
 scripts/electron-package.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
index c8dc92f9..6faad2bb 100755
--- a/scripts/electron-package.sh
+++ b/scripts/electron-package.sh
@@ -72,6 +72,10 @@ echo "Building $version using Update base URL $update_base_url"
 projdir=`pwd`
 builddir=`mktemp -d 2>/dev/null || mktemp -d -t 'buildtmp'`
 pushd "$builddir"
+
+# Figure out what version we're building
+vername=`jq -r .version package.json`
+
 git clone "$projdir" .
 git checkout "$version"
 
@@ -105,7 +109,7 @@ cp $distdir/win/*.exe "$pubdir/install/win32/x64/"
 # Packages for auto-update
 mkdir -p "$pubdir/update/macos"
 cp $distdir/mac/*.zip "$pubdir/update/macos/"
-echo "$ver" > "$pubdir/update/macos/latest"
+echo "$vername" > "$pubdir/update/macos/latest"
 
 mkdir -p "$pubdir/update/win32/ia32/"
 cp $distdir/win-ia32/*.nupkg "$pubdir/update/win32/ia32/"

From fe574b008bb29b134a916213920641cf87dcb0d1 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 19:05:25 +0000
Subject: [PATCH 060/243] Credit aviral & other options for native riot

---
 README.md | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/README.md b/README.md
index e7e13ac3..308213a1 100644
--- a/README.md
+++ b/README.md
@@ -158,6 +158,16 @@ node_modules/.bin/build -l --x64
 
 All electron packages go into `electron/dist/`
 
+Many thanks to @aviraldg for the initial work on the electron integration.
+
+Other options for running as a desktop app:
+ * https://github.com/krisak/vector-electron-desktop
+ * @asdf:matrix.org points out that you can use nativefier and it just works(tm)
+   ```
+   sudo npm install nativefier -g
+   nativefier https://riot.im/app/
+   ```
+
 Development
 ===========
 

From b4e362d70081b4627194b38db482dc1036a20468 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 19:14:37 +0000
Subject: [PATCH 061/243] Bump to electron 1.4.11

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 4fed9c8a..00b453b8 100644
--- a/package.json
+++ b/package.json
@@ -128,7 +128,7 @@
   "build": {
     "appId": "im.riot.app",
     "category": "Network",
-    "electronVersion": "1.4.8",
+    "electronVersion": "1.4.11",
     "//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
     "asar": false,
     "dereference": true,

From 5414b5d189e91b762778e7e214bcf929b9333861 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 19:58:33 +0000
Subject: [PATCH 062/243] Released js-sdk & react-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index f1c46b76..5fe81cf9 100644
--- a/package.json
+++ b/package.json
@@ -66,8 +66,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "0.7.1-rc.1",
-    "matrix-react-sdk": "0.8.1-rc.2",
+    "matrix-js-sdk": "0.7.1",
+    "matrix-react-sdk": "0.8.1",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 598b841bf761a98518de42211b04553fd2616f8b Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 20:05:41 +0000
Subject: [PATCH 063/243] Prepare changelog for v0.9.1

---
 CHANGELOG.md | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2cdba7ad..806113ab 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,22 @@
+Changes in [0.9.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.1) (2016-12-09)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.1-rc.2...v0.9.1)
+
+ * Update README to say how to build the desktop app
+   [\#2732](https://github.com/vector-im/riot-web/pull/2732)
+ * Add signing ID in release_config.yaml
+   [\#2731](https://github.com/vector-im/riot-web/pull/2731)
+ * Makeover!
+   [\#2722](https://github.com/vector-im/riot-web/pull/2722)
+ * Fix broken tests
+   [\#2730](https://github.com/vector-im/riot-web/pull/2730)
+ * Make the 'loading' tests work in isolation
+   [\#2727](https://github.com/vector-im/riot-web/pull/2727)
+ * Use a PNG for the icon on non-Windows
+   [\#2708](https://github.com/vector-im/riot-web/pull/2708)
+ * Add missing brackets to call to toUpperCase
+   [\#2703](https://github.com/vector-im/riot-web/pull/2703)
+
 Changes in [0.9.1-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.9.1-rc.2) (2016-12-06)
 ====================================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.1-rc.1...v0.9.1-rc.2)

From b9ba795cb0b1329520ed4c374b7bd9477b358277 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 20:05:41 +0000
Subject: [PATCH 064/243] v0.9.1

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index affdfe4b..99e34b45 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.1-rc.2",
+  "version": "0.9.1",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From c80d1c15d23d73776d6c7c0c28caa9a249cd777a Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 20:12:37 +0000
Subject: [PATCH 065/243] dev js-sdk & react-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 99e34b45..73c4b467 100644
--- a/package.json
+++ b/package.json
@@ -66,8 +66,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "0.7.1",
-    "matrix-react-sdk": "0.8.1",
+    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
+    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From feb3a13a71758ee3cf38e5b9d4c50fb6975789ec Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 20:23:19 +0000
Subject: [PATCH 066/243] Get version after we've checked out...

---
 scripts/electron-package.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
index 6faad2bb..1403b1b2 100755
--- a/scripts/electron-package.sh
+++ b/scripts/electron-package.sh
@@ -73,12 +73,12 @@ projdir=`pwd`
 builddir=`mktemp -d 2>/dev/null || mktemp -d -t 'buildtmp'`
 pushd "$builddir"
 
-# Figure out what version we're building
-vername=`jq -r .version package.json`
-
 git clone "$projdir" .
 git checkout "$version"
 
+# Figure out what version we're building
+vername=`jq -r .version package.json`
+
 if [ -n "$conffile" ]; then
     popd
     cp "$conffile" "$builddir/"

From c6dbeee24589a346114c82a8a74d7c2406fd9b7b Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 9 Dec 2016 22:33:20 +0000
Subject: [PATCH 067/243] ico needs to be at least 256x256

---
 electron/build/icon.ico      | Bin 90022 -> 104772 bytes
 res/vector-icons/favicon.ico | Bin 90022 -> 104772 bytes
 scripts/make-icons.sh        |   2 +-
 3 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/electron/build/icon.ico b/electron/build/icon.ico
index a1a73e6cfdc4befddf4b5b9f1afb9429d24055d4..8f8ff94eea677e966568bc2a264d1c0fe708dcf4 100644
GIT binary patch
delta 14950
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

delta 83
zcmX@IiEY__R#yfFMg|rJ0Ra%Lz>vYhz~IKfz@VT2;jaLSuLFuXI6(LsP7DlTq6`cT
U4NyJ@BST#{Lu2UHP{zb~0O^_xEdT%j

diff --git a/res/vector-icons/favicon.ico b/res/vector-icons/favicon.ico
index a1a73e6cfdc4befddf4b5b9f1afb9429d24055d4..8f8ff94eea677e966568bc2a264d1c0fe708dcf4 100644
GIT binary patch
delta 14950
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

delta 83
zcmX@IiEY__R#yfFMg|rJ0Ra%Lz>vYhz~IKfz@VT2;jaLSuLFuXI6(LsP7DlTq6`cT
U4NyJ@BST#{Lu2UHP{zb~0O^_xEdT%j

diff --git a/scripts/make-icons.sh b/scripts/make-icons.sh
index ae987bd7..c77064ab 100755
--- a/scripts/make-icons.sh
+++ b/scripts/make-icons.sh
@@ -80,7 +80,7 @@ cp "$tmpdir/150.png" "res/vector-icons/mstile-150x150.png"
 cp "$tmpdir/310.png" "res/vector-icons/mstile-310x310.png"
 cp "$tmpdir/310x150.png" "res/vector-icons/mstile-310x150.png"
 
-convert "$tmpdir/16.png" "$tmpdir/32.png" "$tmpdir/64.png" "$tmpdir/128.png"  "res/vector-icons/favicon.ico"
+convert "$tmpdir/16.png" "$tmpdir/32.png" "$tmpdir/64.png" "$tmpdir/128.png"  "$tmpdir/256.png" "res/vector-icons/favicon.ico"
 
 cp "res/vector-icons/favicon.ico" "electron/build/icon.ico"
 

From 119e03b64f567e93d0e1e6235ddec9337efccd5e Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 12 Dec 2016 17:24:22 +0000
Subject: [PATCH 068/243] Get the update base URL right

and update the text in the README.
---
 README.md                    | 4 ++--
 electron/riot.im/config.json | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 308213a1..9a410529 100644
--- a/README.md
+++ b/README.md
@@ -108,8 +108,8 @@ You can configure the app by copying `config.sample.json` to
    when a valid location has been entered so it's not necessary for this to be
    exactly correct. Optional.
 1. `update_base_url` (electron app only): HTTPS URL to a web server to download
-   updates from. This should be the path to the directory containing `install`
-   and `update`.
+   updates from. This should be the path to the directory containing `macos`
+   and `win32` (for update packages, not installer packages).
 1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
    encrypted file attachments. This MUST be hosted on a completely separate domain to
    anything else since it is used to isolate the privileges of file attachments to this
diff --git a/electron/riot.im/config.json b/electron/riot.im/config.json
index 8ed2a3e8..e129e5bf 100644
--- a/electron/riot.im/config.json
+++ b/electron/riot.im/config.json
@@ -1,5 +1,5 @@
 {
-    "update_base_url": "https://riot.im/download/desktop/",
+    "update_base_url": "https://riot.im/download/desktop/update/",
     "default_hs_url": "https://matrix.org",
     "default_is_url": "https://vector.im",
     "brand": "Riot",

From 2740013625b4084419b8196e7cb102fddae12785 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 13 Dec 2016 10:24:32 +0000
Subject: [PATCH 069/243] RELEASES is for update, not install

---
 scripts/electron-package.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
index 1403b1b2..87e353f7 100755
--- a/scripts/electron-package.sh
+++ b/scripts/electron-package.sh
@@ -113,7 +113,7 @@ echo "$vername" > "$pubdir/update/macos/latest"
 
 mkdir -p "$pubdir/update/win32/ia32/"
 cp $distdir/win-ia32/*.nupkg "$pubdir/update/win32/ia32/"
-cp $distdir/win-ia32/RELEASES "$pubdir/install/win32/ia32/"
+cp $distdir/win-ia32/RELEASES "$pubdir/update/win32/ia32/"
 
 mkdir -p "$pubdir/update/win32/x64/"
 cp $distdir/win/*.nupkg "$pubdir/update/win32/x64/"

From 8be72e6c275a9a93b75b4aed412ab3a7e499d848 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Wed, 14 Dec 2016 11:59:37 +0000
Subject: [PATCH 070/243] Configure olm memory size

16M is somewhat excessive: configure olm to use a bit less.

Requires changes to the olm library to do anything useful, but will be harmless
without them.

Partial fix to vector-im/riot-web#2726.
---
 src/vector/olm-loader.js | 41 ++++++++++++++++++++++++++++++++++++++++
 webpack.config.js        |  2 +-
 2 files changed, 42 insertions(+), 1 deletion(-)
 create mode 100644 src/vector/olm-loader.js

diff --git a/src/vector/olm-loader.js b/src/vector/olm-loader.js
new file mode 100644
index 00000000..a62d05b4
--- /dev/null
+++ b/src/vector/olm-loader.js
@@ -0,0 +1,41 @@
+/*
+Copyright 2016 OpenMarket Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/* a very thin shim for loading olm.js: just sets the global OLM_OPTIONS and
+ * requires the actual olm.js library.
+ *
+ * olm.js reads global.OLM_OPTIONS and defines global.Olm. The latter is fine for us,
+ * but we need to prepare the former.
+ *
+ * We can't use webpack's definePlugin to do this, because we tell webpack not
+ * to parse olm.js. We also can't put this code in index.js, because olm and
+ * index.js are loaded in parallel, and we need to make sure OLM_OPTIONS is set
+ * before olm.js is loaded.
+ */
+
+/* total_memory must be a power of two, and at least twice the stack.
+ *
+ * We don't need a lot of stack, but we do need about 128K of heap to encrypt a
+ * 64K event (enough to store the ciphertext and the plaintext, bearing in mind
+ * that the plaintext can only be 48K because base64). We also have about 36K
+ * of statics. So let's have 256K of memory.
+ */
+global.OLM_OPTIONS = {
+    TOTAL_STACK: 64*1024,
+    TOTAL_MEMORY: 256*1024,
+};
+
+require('olm/olm.js');
diff --git a/webpack.config.js b/webpack.config.js
index cad7b9a3..3500fedc 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -14,7 +14,7 @@ module.exports = {
         // (we should probably make js-sdk load it asynchronously at some
         // point, so that it doesn't block the pageload, but that is a separate
         // problem)
-        "olm": "olm/olm.js",
+        "olm": "./src/vector/olm-loader.js",
     },
     module: {
         preLoaders: [

From f5bd8abfdac612b4fddad343b92c31db86302b33 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 14 Dec 2016 15:41:15 +0000
Subject: [PATCH 071/243] Support room dir 3rd party network filtering

As per https://github.com/matrix-org/synapse/pull/1676

The existing local config system still exists and is used for
remote home server directories (since /thirdparty/protocols
doesn't support listing remote home servers, and also because
people are using it).
---
 README.md                                     |  3 +-
 src/components/structures/RoomDirectory.js    | 10 ++-
 .../views/directory/NetworkDropdown.js        | 87 ++++++++++++++++++-
 3 files changed, 93 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index 9a410529..066802c0 100644
--- a/README.md
+++ b/README.md
@@ -89,7 +89,8 @@ You can configure the app by copying `config.sample.json` to
    down list. Optional.
 1. `roomDirectory.serverConfig`: Config for each server in `roomDirectory.servers`. Optional.
 1. `roomDirectory.serverConfig.<server_name>.networks`: List of networks (named
-   in `roomDirectory.networks`) to include for this server. Optional.
+   in `roomDirectory.networks`) to include for this server. Optional. If set, this will
+   override any networks sent by the Home Server (eg. if ASes are configured).
 1. `roomDirectory.networks`: config for each network type. Optional.
 1. `roomDirectory.<network_type>.name`: Human-readable name for the network. Required.
 1. `roomDirectory.<network_type>.protocol`: Protocol as given by the server in
diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js
index e369a26e..2483247c 100644
--- a/src/components/structures/RoomDirectory.js
+++ b/src/components/structures/RoomDirectory.js
@@ -131,6 +131,11 @@ module.exports = React.createClass({
         if (my_server != MatrixClientPeg.getHomeServerName()) {
             opts.server = my_server;
         }
+        if (this.state.instance_id) {
+            opts.third_party_instance_id = this.state.instance_id;
+        } else if (this.state.network !== '_matrix') {
+            opts.include_all_networks = true;
+        }
         if (this.nextBatch) opts.since = this.nextBatch;
         if (my_filter_string) opts.filter = { generic_search_term: my_filter_string } ;
         return MatrixClientPeg.get().publicRooms(opts).then((data) => {
@@ -231,7 +236,7 @@ module.exports = React.createClass({
         }
     },
 
-    onOptionChange: function(server, network) {
+    onOptionChange: function(server, network, instance_id) {
         // clear next batch so we don't try to load more rooms
         this.nextBatch = null;
         this.setState({
@@ -241,6 +246,7 @@ module.exports = React.createClass({
             publicRooms: [],
             roomServer: server,
             network: network,
+            instance_id: instance_id,
         }, this.refreshRoomList);
         // We also refresh the room list each time even though this
         // filtering is client-side. It hopefully won't be client side
@@ -615,7 +621,7 @@ module.exports = React.createClass({
                             onChange={this.onFilterChange} onClear={this.onFilterClear} onJoinClick={this.onJoinClick}
                             placeholder={placeholder} showJoinButton={showJoinButton}
                         />
-                        <NetworkDropdown config={this.props.config} onOptionChange={this.onOptionChange} />
+                        <NetworkDropdown config={this.props.config} protocols={this.protocols} onOptionChange={this.onOptionChange} />
                     </div>
                     {content}
                 </div>
diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index eb60c4a5..ad49264f 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -17,6 +17,8 @@ limitations under the License.
 import React from 'react';
 import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
 
+const DEFAULT_ICON_URL = "img/network-matrix.svg";
+
 export default class NetworkDropdown extends React.Component {
     constructor(props) {
         super(props);
@@ -28,6 +30,7 @@ export default class NetworkDropdown extends React.Component {
         this.onRootClick = this.onRootClick.bind(this);
         this.onDocumentClick = this.onDocumentClick.bind(this);
         this.onMenuOptionClick = this.onMenuOptionClick.bind(this);
+        this.onMenuOptionClickProtocolInstance = this.onMenuOptionClickProtocolInstance.bind(this);
         this.onInputKeyUp = this.onInputKeyUp.bind(this);
         this.collectRoot = this.collectRoot.bind(this);
         this.collectInputTextBox = this.collectInputTextBox.bind(this);
@@ -103,10 +106,21 @@ export default class NetworkDropdown extends React.Component {
             expanded: false,
             selectedServer: server,
             selectedNetwork: network,
+            selectedInstanceId: null,
         });
         this.props.onOptionChange(server, network);
     }
 
+    onMenuOptionClickProtocolInstance(server, instance_id, ev) {
+        this.setState({
+            expanded: false,
+            selectedServer: server,
+            selectedNetwork: null,
+            selectedInstanceId: instance_id,
+        });
+        this.props.onOptionChange(server, null, instance_id);
+    }
+
     onInputKeyUp(e) {
         if (e.key == 'Enter') {
             this.setState({
@@ -144,18 +158,55 @@ export default class NetworkDropdown extends React.Component {
             servers.unshift(MatrixClientPeg.getHomeServerName());
         }
 
+        // if the thirdparty/protocols entries have instance_ids,
+        // we can get the local server listings from here. If not,
+        // the server is too old.
+        let use_protocols = true;
+        for (const proto of Object.keys(this.props.protocols)) {
+            if (!this.props.protocols[proto].instances) continue;
+            for (const instance of this.props.protocols[proto].instances) {
+                if (!instance.instance_id) use_protocols = false;
+            }
+        }
+
+        // For our own HS, we can use the instance_ids given in the third party protocols
+        // response to get the server to filter the room list by network for us (if the
+        // server is new enough), although for now we prefer the config if it exists.
+        // For remote HSes, we use the data from the config.
         for (const server of servers) {
             options.push(this._makeMenuOption(server, null));
             if (this.props.config.serverConfig && this.props.config.serverConfig[server] && this.props.config.serverConfig[server].networks) {
                 for (const network of this.props.config.serverConfig[server].networks) {
                     options.push(this._makeMenuOption(server, network));
                 }
+            } else if (server == MatrixClientPeg.getHomeServerName() && use_protocols) {
+                options.push(this._makeMenuOption(server, '_matrix'));
+                for (const proto of Object.keys(this.props.protocols)) {
+                    if (!this.props.protocols[proto].instances) continue;
+                    for (const instance of this.props.protocols[proto].instances) {
+                        options.push(this._makeMenuOptionFromProtocolInstance(server, this.props.protocols[proto], instance));
+                    }
+                }
             }
         }
 
         return options;
     }
 
+    _makeMenuOptionFromProtocolInstance(server, protocol, instance, wire_onclick) {
+        if (wire_onclick === undefined) wire_onclick = true;
+
+        const name = instance.desc;
+        const icon = <img src={protocol.icon || DEFAULT_ICON_URL} width="16" />;
+        const key = instance.instance_id;
+        const click_handler = wire_onclick ? this.onMenuOptionClickProtocolInstance.bind(this, server, instance.instance_id) : null;
+        
+        return <div key={key} className="mx_NetworkDropdown_networkoption" onClick={click_handler}>
+            {icon}
+            <span className="mx_NetworkDropdown_menu_network">{name}</span>
+        </div>;
+    }
+
     _makeMenuOption(server, network, wire_onclick) {
         if (wire_onclick === undefined) wire_onclick = true;
         let icon;
@@ -202,6 +253,24 @@ export default class NetworkDropdown extends React.Component {
         </div>;
     }
 
+    protocolNameForInstanceId(instance_id) {
+        for (const proto of Object.keys(this.props.protocols)) {
+            if (!this.props.protocols[proto].instances) continue;
+            for (const instance of this.props.protocols[proto].instances) {
+                if (instance.instance_id == instance_id) return proto;
+            }
+        }
+    }
+
+    instanceForInstanceId(instance_id) {
+        for (const proto of Object.keys(this.props.protocols)) {
+            if (!this.props.protocols[proto].instances) continue;
+            for (const instance of this.props.protocols[proto].instances) {
+                if (instance.instance_id == instance_id) return instance;
+            }
+        }
+    }
+
     render() {
         let current_value;
 
@@ -216,9 +285,17 @@ export default class NetworkDropdown extends React.Component {
                 placeholder="matrix.org" // 'matrix.org' as an example of an HS name
             />
         } else {
-            current_value = this._makeMenuOption(
-                this.state.selectedServer, this.state.selectedNetwork, false
-            );
+            if (this.state.selectedInstanceId) {
+                const protocolName = this.protocolNameForInstanceId(this.state.selectedInstanceId);
+                const instance = this.instanceForInstanceId(this.state.selectedInstanceId);
+                current_value = this._makeMenuOptionFromProtocolInstance(
+                    this.state.selectedServer, this.props.protocols[protocolName], instance
+                );
+            } else {
+                current_value = this._makeMenuOption(
+                    this.state.selectedServer, this.state.selectedNetwork, false
+                );
+            }
         }
 
         return <div className="mx_NetworkDropdown" ref={this.collectRoot}>
@@ -234,11 +311,13 @@ export default class NetworkDropdown extends React.Component {
 NetworkDropdown.propTypes = {
     onOptionChange: React.PropTypes.func.isRequired,
     config: React.PropTypes.object,
+    protocols: React.PropTypes.object,
 };
 
 NetworkDropdown.defaultProps = {
     config: {
         networks: [],
-    }
+    },
+    protocols: {},
 };
 

From fc597ba86ead5560f2d4241c3e2359d19ec83127 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 15 Dec 2016 10:41:22 +0000
Subject: [PATCH 072/243] Underscore for private method

---
 src/components/views/directory/NetworkDropdown.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index ad49264f..2c0b73ba 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -253,7 +253,7 @@ export default class NetworkDropdown extends React.Component {
         </div>;
     }
 
-    protocolNameForInstanceId(instance_id) {
+    _protocolNameForInstanceId(instance_id) {
         for (const proto of Object.keys(this.props.protocols)) {
             if (!this.props.protocols[proto].instances) continue;
             for (const instance of this.props.protocols[proto].instances) {
@@ -286,7 +286,7 @@ export default class NetworkDropdown extends React.Component {
             />
         } else {
             if (this.state.selectedInstanceId) {
-                const protocolName = this.protocolNameForInstanceId(this.state.selectedInstanceId);
+                const protocolName = this._protocolNameForInstanceId(this.state.selectedInstanceId);
                 const instance = this.instanceForInstanceId(this.state.selectedInstanceId);
                 current_value = this._makeMenuOptionFromProtocolInstance(
                     this.state.selectedServer, this.props.protocols[protocolName], instance

From 98cad8779c47b7dabbe1605738fea93e0f609411 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 15 Dec 2016 10:42:11 +0000
Subject: [PATCH 073/243] Add instance_id to initial state

---
 src/components/structures/RoomDirectory.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js
index 2483247c..7960b4cf 100644
--- a/src/components/structures/RoomDirectory.js
+++ b/src/components/structures/RoomDirectory.js
@@ -53,6 +53,7 @@ module.exports = React.createClass({
             publicRooms: [],
             loading: true,
             network: null,
+            instance_id: null,
             roomServer: null,
             filterString: null,
         }

From 901c0e7e41b86c581fb9eade5083bab28a92f2bd Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 15 Dec 2016 14:24:55 +0000
Subject: [PATCH 074/243] Remove unused event params

---
 src/components/views/directory/NetworkDropdown.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index 2c0b73ba..717fc007 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -101,7 +101,7 @@ export default class NetworkDropdown extends React.Component {
         ev.preventDefault();
     }
 
-    onMenuOptionClick(server, network, ev) {
+    onMenuOptionClick(server, network) {
         this.setState({
             expanded: false,
             selectedServer: server,
@@ -111,7 +111,7 @@ export default class NetworkDropdown extends React.Component {
         this.props.onOptionChange(server, network);
     }
 
-    onMenuOptionClickProtocolInstance(server, instance_id, ev) {
+    onMenuOptionClickProtocolInstance(server, instance_id) {
         this.setState({
             expanded: false,
             selectedServer: server,

From 5f7cdb8d425956d84b7e783148d4d5eeb6890524 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 15 Dec 2016 14:29:16 +0000
Subject: [PATCH 075/243] s/wire_onclick/handleClicks/

and actually pass handleClicks false as appropriate
---
 src/components/views/directory/NetworkDropdown.js | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index 717fc007..0de48bf6 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -193,13 +193,13 @@ export default class NetworkDropdown extends React.Component {
         return options;
     }
 
-    _makeMenuOptionFromProtocolInstance(server, protocol, instance, wire_onclick) {
-        if (wire_onclick === undefined) wire_onclick = true;
+    _makeMenuOptionFromProtocolInstance(server, protocol, instance, handleClicks) {
+        if (handleClicks === undefined) handleClicks = true;
 
         const name = instance.desc;
         const icon = <img src={protocol.icon || DEFAULT_ICON_URL} width="16" />;
         const key = instance.instance_id;
-        const click_handler = wire_onclick ? this.onMenuOptionClickProtocolInstance.bind(this, server, instance.instance_id) : null;
+        const click_handler = handleClicks ? this.onMenuOptionClickProtocolInstance.bind(this, server, instance.instance_id) : null;
         
         return <div key={key} className="mx_NetworkDropdown_networkoption" onClick={click_handler}>
             {icon}
@@ -207,8 +207,8 @@ export default class NetworkDropdown extends React.Component {
         </div>;
     }
 
-    _makeMenuOption(server, network, wire_onclick) {
-        if (wire_onclick === undefined) wire_onclick = true;
+    _makeMenuOption(server, network, handleClicks) {
+        if (handleClicks === undefined) wire_onclick = true;
         let icon;
         let name;
         let span_class;
@@ -240,7 +240,7 @@ export default class NetworkDropdown extends React.Component {
             span_class = 'mx_NetworkDropdown_menu_network';
         }
 
-        const click_handler = wire_onclick ? this.onMenuOptionClick.bind(this, server, network) : null;
+        const click_handler = handleClicks ? this.onMenuOptionClick.bind(this, server, network) : null;
 
         let key = server;
         if (network !== null) {
@@ -289,7 +289,7 @@ export default class NetworkDropdown extends React.Component {
                 const protocolName = this._protocolNameForInstanceId(this.state.selectedInstanceId);
                 const instance = this.instanceForInstanceId(this.state.selectedInstanceId);
                 current_value = this._makeMenuOptionFromProtocolInstance(
-                    this.state.selectedServer, this.props.protocols[protocolName], instance
+                    this.state.selectedServer, this.props.protocols[protocolName], instance, false
                 );
             } else {
                 current_value = this._makeMenuOption(

From 52cf1f6a4b6537e07c5a495688b900e634294876 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 15 Dec 2016 16:36:14 +0000
Subject: [PATCH 076/243] Missed a wire_onclick

---
 src/components/views/directory/NetworkDropdown.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index 0de48bf6..fa16cfdb 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -208,7 +208,7 @@ export default class NetworkDropdown extends React.Component {
     }
 
     _makeMenuOption(server, network, handleClicks) {
-        if (handleClicks === undefined) wire_onclick = true;
+        if (handleClicks === undefined) handleClicks = true;
         let icon;
         let name;
         let span_class;

From fb08910db377f9108028403c014e7bfa18cf5ca9 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 10:12:49 +0000
Subject: [PATCH 077/243] Read the icon from the right place

Also don't define image widths in the HTML as it's done in the CSS.
---
 src/components/views/directory/NetworkDropdown.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index fa16cfdb..4b6de26e 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -197,7 +197,7 @@ export default class NetworkDropdown extends React.Component {
         if (handleClicks === undefined) handleClicks = true;
 
         const name = instance.desc;
-        const icon = <img src={protocol.icon || DEFAULT_ICON_URL} width="16" />;
+        const icon = <img src={instance.icon || DEFAULT_ICON_URL} />;
         const key = instance.instance_id;
         const click_handler = handleClicks ? this.onMenuOptionClickProtocolInstance.bind(this, server, instance.instance_id) : null;
         
@@ -218,7 +218,7 @@ export default class NetworkDropdown extends React.Component {
             span_class = 'mx_NetworkDropdown_menu_all';
         } else if (network == '_matrix') {
             name = 'Matrix';
-            icon = <img src="img/network-matrix.svg" width="16" height="16" />;
+            icon = <img src="img/network-matrix.svg" />;
             span_class = 'mx_NetworkDropdown_menu_network';
         } else {
             if (this.props.config.networks[network] === undefined) {
@@ -232,9 +232,9 @@ export default class NetworkDropdown extends React.Component {
             if (this.props.config.networks[network].icon) {
                 // omit height here so if people define a non-square logo in the config, it
                 // will keep the aspect when it scales
-                icon = <img src={this.props.config.networks[network].icon} width="16" />;
+                icon = <img src={this.props.config.networks[network].icon} />;
             } else {
-                icon = <img src={iconPath} width="16" height="16" />;
+                icon = <img src={iconPath} />;
             }
 
             span_class = 'mx_NetworkDropdown_menu_network';

From 994bc9279fe29a226ce72dc31620fb4a14f7bed7 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 14:17:13 +0000
Subject: [PATCH 078/243] Remove the client side filtering from the room dir

This removes the ability for the client to filter remote room
directories by network, since the /thirdparty/protocols API does
not yet work for remote servers. They would only get the main list
now though anyway, so there is no point in us continuing to support
it.
---
 README.md                                     |  26 +--
 config.sample.json                            |  60 +----
 src/components/structures/RoomDirectory.js    | 215 ++++++------------
 .../views/directory/NetworkDropdown.js        | 165 ++++----------
 src/utils/DirectoryUtils.js                   |  23 ++
 5 files changed, 134 insertions(+), 355 deletions(-)
 create mode 100644 src/utils/DirectoryUtils.js

diff --git a/README.md b/README.md
index 066802c0..b0ea2124 100644
--- a/README.md
+++ b/README.md
@@ -81,33 +81,9 @@ You can configure the app by copying `config.sample.json` to
    and https://vector.im.  In future identity servers will be decentralised.
 1. `integrations_ui_url`: URL to the web interface for the integrations server.
 1. `integrations_rest_url`: URL to the REST interface for the integrations server.
-1. `roomDirectory`: config for the public room directory. This section encodes behaviour
-   on the room directory screen for filtering the list by server / network type and joining
-   third party networks. This config section will disappear once APIs are available to
-   get this information for home servers. This section is optional.
+1. `roomDirectory`: config for the public room directory. This section is optional.
 1. `roomDirectory.servers`: List of other Home Servers' directories to include in the drop
    down list. Optional.
-1. `roomDirectory.serverConfig`: Config for each server in `roomDirectory.servers`. Optional.
-1. `roomDirectory.serverConfig.<server_name>.networks`: List of networks (named
-   in `roomDirectory.networks`) to include for this server. Optional. If set, this will
-   override any networks sent by the Home Server (eg. if ASes are configured).
-1. `roomDirectory.networks`: config for each network type. Optional.
-1. `roomDirectory.<network_type>.name`: Human-readable name for the network. Required.
-1. `roomDirectory.<network_type>.protocol`: Protocol as given by the server in
-   `/_matrix/client/unstable/thirdparty/protocols` response. Required to be able to join
-   this type of third party network.
-1. `roomDirectory.<network_type>.domain`: Domain as given by the server in
-   `/_matrix/client/unstable/thirdparty/protocols` response, if present. Required to be
-   able to join this type of third party network, if present in `thirdparty/protocols`.
-1. `roomDirectory.<network_type>.portalRoomPattern`: Regular expression matching aliases
-   for portal rooms to locations on this network. Required.
-1. `roomDirectory.<network_type>.icon`: URL to an icon to be displayed for this network. Required.
-1. `roomDirectory.<network_type>.example`: Textual example of a location on this network,
-   eg. '#channel' for an IRC network. Optional.
-1. `roomDirectory.<network_type>.nativePattern`: Regular expression that matches a
-   valid location on this network. This is used as a hint to the user to indicate
-   when a valid location has been entered so it's not necessary for this to be
-   exactly correct. Optional.
 1. `update_base_url` (electron app only): HTTPS URL to a web server to download
    updates from. This should be the path to the directory containing `macos`
    and `win32` (for update packages, not installer packages).
diff --git a/config.sample.json b/config.sample.json
index a25bdb11..e6384221 100644
--- a/config.sample.json
+++ b/config.sample.json
@@ -8,64 +8,6 @@
     "roomDirectory": {
         "servers": [
             "matrix.org"
-        ],
-        "serverConfig": {
-            "matrix.org": {
-                "networks": [
-                    "_matrix",
-                    "gitter",
-                    "irc:freenode",
-                    "irc:mozilla",
-                    "irc:snoonet",
-                    "irc:oftc"
-                ]
-            }
-        },
-        "networks": {
-            "gitter": {
-                "protocol": "gitter",
-                "portalRoomPattern": "#gitter_.*:matrix.org",
-                "name": "Gitter",
-                "icon": "//gitter.im/favicon.ico",
-                "example": "org/community",
-                "nativePattern": "[^\\s]+/[^\\s]+$"
-            },
-            "irc:freenode": {
-                "protocol": "irc",
-                "domain": "chat.freenode.net",
-                "portalRoomPattern": "#freenode_.*:matrix.org",
-                "name": "Freenode",
-                "icon": "//matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            },
-            "irc:mozilla": {
-                "protocol": "irc",
-                "domain": "irc.mozilla.org",
-                "portalRoomPattern": "#mozilla_.*:matrix.org",
-                "name": "Mozilla",
-                "icon": "//matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            },
-            "irc:snoonet": {
-                "protocol": "irc",
-                "domain": "ipv6-irc.snoonet.org",
-                "portalRoomPattern": "#_snoonet_.*:matrix.org",
-                "name": "Snoonet",
-                "icon": "//matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            },
-            "irc:oftc": {
-                "protocol": "irc",
-                "domain": "irc.oftc.net",
-                "portalRoomPattern": "#_oftc_.*:matrix.org",
-                "name": "OFTC",
-                "icon": "//matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
-                "example": "#channel",
-                "nativePattern": "^#[^\\s]+$"
-            }
-        }
+        ]
     }
 }
diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js
index 7960b4cf..372b1cda 100644
--- a/src/components/structures/RoomDirectory.js
+++ b/src/components/structures/RoomDirectory.js
@@ -31,6 +31,8 @@ var linkifyMatrix = require('matrix-react-sdk/lib/linkify-matrix');
 var sanitizeHtml = require('sanitize-html');
 var q = require('q');
 
+import {instanceForInstanceId, protocolNameForInstanceId} from '../../utils/DirectoryUtils';
+
 linkifyMatrix(linkify);
 
 module.exports = React.createClass({
@@ -42,9 +44,7 @@ module.exports = React.createClass({
 
     getDefaultProps: function() {
         return {
-            config: {
-                networks: [],
-            },
+            config: {},
         }
     },
 
@@ -52,37 +52,26 @@ module.exports = React.createClass({
         return {
             publicRooms: [],
             loading: true,
-            network: null,
-            instance_id: null,
+            protocolsLoading: true,
+            instanceId: null,
+            includeAll: false,
             roomServer: null,
             filterString: null,
         }
     },
 
     componentWillMount: function() {
-        // precompile Regexps
-        this.portalRoomPatterns = {};
-        this.nativePatterns = {};
-        if (this.props.config.networks) {
-            for (const network of Object.keys(this.props.config.networks)) {
-                const network_info = this.props.config.networks[network];
-                if (network_info.portalRoomPattern) {
-                    this.portalRoomPatterns[network] = new RegExp(network_info.portalRoomPattern);
-                }
-                if (network_info.nativePattern) {
-                    this.nativePatterns[network] = new RegExp(network_info.nativePattern);
-                }
-            }
-        }
-
         this.nextBatch = null;
         this.filterTimeout = null;
         this.scrollPanel = null;
         this.protocols = null;
 
+        this.setState({protocolsLoading: true});
         MatrixClientPeg.get().getThirdpartyProtocols().done((response) => {
             this.protocols = response;
+            this.setState({protocolsLoading: false});
         }, (err) => {
+            this.setState({protocolsLoading: false});
             if (MatrixClientPeg.get().isGuest()) {
                 // Guests currently aren't allowed to use this API, so
                 // ignore this as otherwise this error is literally the
@@ -132,9 +121,9 @@ module.exports = React.createClass({
         if (my_server != MatrixClientPeg.getHomeServerName()) {
             opts.server = my_server;
         }
-        if (this.state.instance_id) {
-            opts.third_party_instance_id = this.state.instance_id;
-        } else if (this.state.network !== '_matrix') {
+        if (this.state.instanceId) {
+            opts.third_party_instanceId = this.state.instanceId;
+        } else if (this.state.includeAll) {
             opts.include_all_networks = true;
         }
         if (this.nextBatch) opts.since = this.nextBatch;
@@ -237,7 +226,7 @@ module.exports = React.createClass({
         }
     },
 
-    onOptionChange: function(server, network, instance_id) {
+    onOptionChange: function(server, instanceId, includeAll) {
         // clear next batch so we don't try to load more rooms
         this.nextBatch = null;
         this.setState({
@@ -246,8 +235,8 @@ module.exports = React.createClass({
             // to clear the list anyway.
             publicRooms: [],
             roomServer: server,
-            network: network,
-            instance_id: instance_id,
+            instanceId: instanceId,
+            includeAll: includeAll,
         }, this.refreshRoomList);
         // We also refresh the room list each time even though this
         // filtering is client-side. It hopefully won't be client side
@@ -278,7 +267,7 @@ module.exports = React.createClass({
         this.filterTimeout = setTimeout(() => {
             this.filterTimeout = null;
             this.refreshRoomList();
-        }, 300);
+        }, 700);
     },
 
     onFilterClear: function() {
@@ -295,12 +284,19 @@ module.exports = React.createClass({
     onJoinClick: function(alias) {
         // If we're on the 'Matrix' network (or all networks),
         // just show that rooms alias
-        if (this.state.network == null || this.state.network == '_matrix') {
+        if (!this.state.instanceId) {
+            // If the user specified an alias without a domain, add on whichever server is selected
+            // in the dropdown
+            if (alias.indexOf(':') == -1) {
+                alias = alias + ':' + this.state.roomServer;
+            }
             this.showRoomAlias(alias);
         } else {
             // This is a 3rd party protocol. Let's see if we
             // can join it
-            const fields = this._getFieldsForThirdPartyLocation(alias, this.state.network);
+            const protocol_name = protocolNameForInstanceId(this.protocols, this.state.instanceId);
+            const instance = instanceForInstanceId(this.protocols, this.state.instanceId);
+            const fields = this._getFieldsForThirdPartyLocation(alias, this.protocols[protocol_name], instance);
             if (!fields) {
                 const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
                 Modal.createDialog(ErrorDialog, {
@@ -309,8 +305,7 @@ module.exports = React.createClass({
                 });
                 return;
             }
-            const protocol = this._protocolForThirdPartyNetwork(this.state.network);
-            MatrixClientPeg.get().getThirdpartyLocation(protocol, fields).done((resp) => {
+            MatrixClientPeg.get().getThirdpartyLocation(protocol_name, fields).done((resp) => {
                 if (resp.length > 0 && resp[0].alias) {
                     this.showRoomAlias(resp[0].alias);
                 } else {
@@ -379,13 +374,7 @@ module.exports = React.createClass({
 
         if (!this.state.publicRooms) return [];
 
-        var rooms = this.state.publicRooms.filter((a) => {
-            if (this.state.network) {
-                if (!this._isRoomInNetwork(a, this.state.roomServer, this.state.network)) return false;
-            }
-
-            return true;
-        });
+        var rooms = this.state.publicRooms;
         var rows = [];
         var self = this;
         var guestRead, guestJoin, perms;
@@ -447,119 +436,46 @@ module.exports = React.createClass({
         this.scrollPanel = element;
     },
 
-    /**
-     * Terrible temporary function that guess what network a public room
-     * entry is in, until synapse is able to tell us
-     */
-    _isRoomInNetwork: function(room, server, network) {
-        // We carve rooms into two categories here. 'portal' rooms are
-        // rooms created by a user joining a bridge 'portal' alias to
-        // participate in that room or a foreign network. A room is a
-        // portal room if it has exactly one alias and that alias matches
-        // a pattern defined in the config. Its network is the key
-        // of the pattern that it matches.
-        // All other rooms are considered 'native matrix' rooms, and
-        // go into the special '_matrix' network.
-
-        let roomNetwork = '_matrix';
-        if (room.aliases && room.aliases.length == 1) {
-            if (this.props.config.serverConfig && this.props.config.serverConfig[server] && this.props.config.serverConfig[server].networks) {
-                for (const n of this.props.config.serverConfig[server].networks) {
-                    const pat = this.portalRoomPatterns[n];
-                    if (pat && pat.test(room.aliases[0])) {
-                        roomNetwork = n;
-                    }
-                }
-            }
-        }
-        return roomNetwork == network;
-    },
-
-    _stringLooksLikeId: function(s, network) {
+    _stringLooksLikeId: function(s, field_type) {
         let pat = /^#[^\s]+:[^\s]/;
-        if (
-            network && network != '_matrix' &&
-            this.nativePatterns[network]
-        ) {
-            pat = this.nativePatterns[network];
+        if (field_type && field_type.regexp) {
+            pat = new RegExp(field_type.regexp);
         }
 
         return pat.test(s);
     },
 
-    _protocolForThirdPartyNetwork: function(network) {
-        if (
-            this.props.config.networks &&
-            this.props.config.networks[network] &&
-            this.props.config.networks[network].protocol
-        ) {
-            return this.props.config.networks[network].protocol;
-        }
-    },
-
-    _getFieldsForThirdPartyLocation: function(user_input, network) {
-        if (!this.props.config.networks || !this.props.config.networks[network]) return null;
-
-        const network_info = this.props.config.networks[network];
-        if (!network_info.protocol) return null;
-
-        if (!this.protocols) return null;
-
-        let matched_instance;
-        // Try to find which instance in the 'protocols' response
-        // matches this network. We look for a matching protocol
-        // and the existence of a 'domain' field and if present,
-        // its value.
-        if (
-            this.protocols[network_info.protocol] &&
-            this.protocols[network_info.protocol].instances &&
-            this.protocols[network_info.protocol].instances.length == 1
-        ) {
-            const the_instance = this.protocols[network_info.protocol].instances[0];
-            // If there's only one instance in this protocol, use it
-            // as long as it has no domain (which we assume to mean it's
-            // there is only one possible instance).
-            if (
-                (
-                    the_instance.fields.domain === undefined &&
-                    network_info.domain === undefined
-                ) ||
-                (
-                    the_instance.fields.domain !== undefined &&
-                    the_instance.fields.domain == network_info.domain
-                )
-            ) {
-                matched_instance = the_instance;
-            }
-        } else if (network_info.domain) {
-            // otherwise, we look for one with a matching domain.
-            for (const this_instance of this.protocols[network_info.protocol].instances) {
-                if (this_instance.fields.domain == network_info.domain) {
-                    matched_instance = this_instance;
-                }
-            }
-        }
-
-        if (matched_instance === undefined) return null;
-
-        // now make an object with the fields specified by that protocol. We
+    _getFieldsForThirdPartyLocation: function(user_input, protocol, instance) {
+        // make an object with the fields specified by that protocol. We
         // require that the values of all but the last field come from the
         // instance. The last is the user input.
-        const required_fields = this.protocols[network_info.protocol].location_fields;
+        const required_fields = protocol.location_fields;
+        if (!required_fields) return null;
         const fields = {};
         for (let i = 0; i < required_fields.length - 1; ++i) {
             const this_field = required_fields[i];
-            if (matched_instance.fields[this_field] === undefined) return null;
-            fields[this_field] = matched_instance.fields[this_field];
+            if (instance.fields[this_field] === undefined) return null;
+            fields[this_field] = instance.fields[this_field];
         }
         fields[required_fields[required_fields.length - 1]] = user_input;
         return fields;
     },
 
     render: function() {
+        const SimpleRoomHeader = sdk.getComponent('rooms.SimpleRoomHeader');
+        const Loader = sdk.getComponent("elements.Spinner");
+
+        if (this.state.protocolsLoading) {
+            return (
+                <div className="mx_RoomDirectory">
+                    <SimpleRoomHeader title="Directory" />
+                    <Loader />
+                </div>
+            );
+        }
+
         let content;
         if (this.state.loading) {
-            const Loader = sdk.getComponent("elements.Spinner");
             content = <div className="mx_RoomDirectory">
                 <Loader />
             </div>;
@@ -590,26 +506,35 @@ module.exports = React.createClass({
             </ScrollPanel>;
         }
 
-        let placeholder = 'Search for a room';
-        if (this.state.network === null || this.state.network === '_matrix') {
-            placeholder = '#example:' + this.state.roomServer;
-        } else if (
-            this.props.config.networks &&
-            this.props.config.networks[this.state.network] &&
-            this.props.config.networks[this.state.network].example &&
-            this._getFieldsForThirdPartyLocation(this.state.filterString, this.state.network)
+        const protocol_name = protocolNameForInstanceId(this.protocols, this.state.instanceId);
+        let instance_expected_field_type;
+        if (
+            protocol_name &&
+            this.protocols &&
+            this.protocols[protocol_name] &&
+            this.protocols[protocol_name].location_fields.length > 0 &&
+            this.protocols[protocol_name].field_types
         ) {
-            placeholder = this.props.config.networks[this.state.network].example;
+            const last_field = this.protocols[protocol_name].location_fields.slice(-1)[0];
+            instance_expected_field_type = this.protocols[protocol_name].field_types[last_field];
         }
 
-        let showJoinButton = this._stringLooksLikeId(this.state.filterString, this.state.network);
-        if (this.state.network && this.state.network != '_matrix') {
-            if (this._getFieldsForThirdPartyLocation(this.state.filterString, this.state.network) === null) {
+
+        let placeholder = 'Search for a room';
+        if (!this.state.instanceId) {
+            placeholder = '#example:' + this.state.roomServer;
+        } else if (instance_expected_field_type) {
+            placeholder = instance_expected_field_type.placeholder;
+        }
+
+        let showJoinButton = this._stringLooksLikeId(this.state.filterString, instance_expected_field_type);
+        if (protocol_name) {
+            const instance = instanceForInstanceId(this.protocols, this.state.instanceId);
+            if (this._getFieldsForThirdPartyLocation(this.state.filterString, this.protocols[protocol_name], instance) === null) {
                 showJoinButton = false;
             }
         }
 
-        const SimpleRoomHeader = sdk.getComponent('rooms.SimpleRoomHeader');
         const NetworkDropdown = sdk.getComponent('directory.NetworkDropdown');
         const DirectorySearchBox = sdk.getComponent('elements.DirectorySearchBox');
         return (
diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index 4b6de26e..155dd01a 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -16,6 +16,7 @@ limitations under the License.
 
 import React from 'react';
 import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
+import {instanceForInstanceId} from '../../../utils/DirectoryUtils';
 
 const DEFAULT_ICON_URL = "img/network-matrix.svg";
 
@@ -30,7 +31,6 @@ export default class NetworkDropdown extends React.Component {
         this.onRootClick = this.onRootClick.bind(this);
         this.onDocumentClick = this.onDocumentClick.bind(this);
         this.onMenuOptionClick = this.onMenuOptionClick.bind(this);
-        this.onMenuOptionClickProtocolInstance = this.onMenuOptionClickProtocolInstance.bind(this);
         this.onInputKeyUp = this.onInputKeyUp.bind(this);
         this.collectRoot = this.collectRoot.bind(this);
         this.collectInputTextBox = this.collectInputTextBox.bind(this);
@@ -38,20 +38,11 @@ export default class NetworkDropdown extends React.Component {
         this.inputTextBox = null;
 
         const server = MatrixClientPeg.getHomeServerName();
-        let defaultNetwork = null;
-        if (
-            this.props.config.serverConfig &&
-            this.props.config.serverConfig[server] &&
-            this.props.config.serverConfig[server].networks &&
-            this.props.config.serverConfig[server].networks.indexOf('_matrix') > -1
-        ) {
-            defaultNetwork = '_matrix';
-        }
-
         this.state = {
             expanded: false,
             selectedServer: server,
-            selectedNetwork: defaultNetwork,
+            selectedInstance: null,
+            includeAllNetworks: false,
         };
     }
 
@@ -61,7 +52,7 @@ export default class NetworkDropdown extends React.Component {
         document.addEventListener('click', this.onDocumentClick, false);
 
         // fire this now so the defaults can be set up
-        this.props.onOptionChange(this.state.selectedServer, this.state.selectedNetwork);
+        this.props.onOptionChange(this.state.selectedServer, this.state.selectedInstance, this.state.includeAllNetworks);
     }
 
     componentWillUnmount() {
@@ -101,24 +92,14 @@ export default class NetworkDropdown extends React.Component {
         ev.preventDefault();
     }
 
-    onMenuOptionClick(server, network) {
+    onMenuOptionClick(server, instance, includeAll) {
         this.setState({
             expanded: false,
             selectedServer: server,
-            selectedNetwork: network,
-            selectedInstanceId: null,
+            selectedInstanceId: instance ? instance.instance_id : null,
+            includeAll: includeAll,
         });
-        this.props.onOptionChange(server, network);
-    }
-
-    onMenuOptionClickProtocolInstance(server, instance_id) {
-        this.setState({
-            expanded: false,
-            selectedServer: server,
-            selectedNetwork: null,
-            selectedInstanceId: instance_id,
-        });
-        this.props.onOptionChange(server, null, instance_id);
+        this.props.onOptionChange(server, instance ? instance.instance_id : null, includeAll);
     }
 
     onInputKeyUp(e) {
@@ -158,33 +139,21 @@ export default class NetworkDropdown extends React.Component {
             servers.unshift(MatrixClientPeg.getHomeServerName());
         }
 
-        // if the thirdparty/protocols entries have instance_ids,
-        // we can get the local server listings from here. If not,
-        // the server is too old.
-        let use_protocols = true;
-        for (const proto of Object.keys(this.props.protocols)) {
-            if (!this.props.protocols[proto].instances) continue;
-            for (const instance of this.props.protocols[proto].instances) {
-                if (!instance.instance_id) use_protocols = false;
-            }
-        }
-
         // For our own HS, we can use the instance_ids given in the third party protocols
-        // response to get the server to filter the room list by network for us (if the
-        // server is new enough), although for now we prefer the config if it exists.
-        // For remote HSes, we use the data from the config.
+        // response to get the server to filter the room list by network for us.
+        // We can't get thirdparty protocols for remote server yet though, so for those
+        // we can only show the default room list.
         for (const server of servers) {
-            options.push(this._makeMenuOption(server, null));
-            if (this.props.config.serverConfig && this.props.config.serverConfig[server] && this.props.config.serverConfig[server].networks) {
-                for (const network of this.props.config.serverConfig[server].networks) {
-                    options.push(this._makeMenuOption(server, network));
-                }
-            } else if (server == MatrixClientPeg.getHomeServerName() && use_protocols) {
-                options.push(this._makeMenuOption(server, '_matrix'));
-                for (const proto of Object.keys(this.props.protocols)) {
-                    if (!this.props.protocols[proto].instances) continue;
-                    for (const instance of this.props.protocols[proto].instances) {
-                        options.push(this._makeMenuOptionFromProtocolInstance(server, this.props.protocols[proto], instance));
+            options.push(this._makeMenuOption(server, null, true));
+            if (server == MatrixClientPeg.getHomeServerName()) {
+                options.push(this._makeMenuOption(server, null, false));
+                if (this.props.protocols) {
+                    for (const proto of Object.keys(this.props.protocols)) {
+                        if (!this.props.protocols[proto].instances) continue;
+                        for (const instance of this.props.protocols[proto].instances) {
+                            if (!instance.instance_id) continue;
+                            options.push(this._makeMenuOption(server, instance, false));
+                        }
                     }
                 }
             }
@@ -193,82 +162,36 @@ export default class NetworkDropdown extends React.Component {
         return options;
     }
 
-    _makeMenuOptionFromProtocolInstance(server, protocol, instance, handleClicks) {
+    _makeMenuOption(server, instance, includeAll, handleClicks) {
         if (handleClicks === undefined) handleClicks = true;
 
-        const name = instance.desc;
-        const icon = <img src={instance.icon || DEFAULT_ICON_URL} />;
-        const key = instance.instance_id;
-        const click_handler = handleClicks ? this.onMenuOptionClickProtocolInstance.bind(this, server, instance.instance_id) : null;
-        
-        return <div key={key} className="mx_NetworkDropdown_networkoption" onClick={click_handler}>
-            {icon}
-            <span className="mx_NetworkDropdown_menu_network">{name}</span>
-        </div>;
-    }
-
-    _makeMenuOption(server, network, handleClicks) {
-        if (handleClicks === undefined) handleClicks = true;
         let icon;
         let name;
         let span_class;
+        let key;
 
-        if (network === null) {
+        if (!instance && includeAll) {
+            key = server;
             name = server;
             span_class = 'mx_NetworkDropdown_menu_all';
-        } else if (network == '_matrix') {
+        } else if (!instance) {
+            key = server + '_all';
             name = 'Matrix';
             icon = <img src="img/network-matrix.svg" />;
             span_class = 'mx_NetworkDropdown_menu_network';
         } else {
-            if (this.props.config.networks[network] === undefined) {
-                throw new Error(network + ' network missing from config');
-            }
-            if (this.props.config.networks[network].name) {
-                name = this.props.config.networks[network].name;
-            } else {
-                name = network;
-            }
-            if (this.props.config.networks[network].icon) {
-                // omit height here so if people define a non-square logo in the config, it
-                // will keep the aspect when it scales
-                icon = <img src={this.props.config.networks[network].icon} />;
-            } else {
-                icon = <img src={iconPath} />;
-            }
-
+            key = server + '_inst_'+instance.instance_id;
+            icon = <img src={instance.icon || DEFAULT_ICON_URL} />;
+            name = instance.desc;
             span_class = 'mx_NetworkDropdown_menu_network';
         }
 
-        const click_handler = handleClicks ? this.onMenuOptionClick.bind(this, server, network) : null;
-
-        let key = server;
-        if (network !== null) {
-            key += '_' + network;
-        }
+        const click_handler = handleClicks ? this.onMenuOptionClick.bind(this, server, instance, includeAll) : null;
 
         return <div key={key} className="mx_NetworkDropdown_networkoption" onClick={click_handler}>
             {icon}
-            <span className={span_class}>{name}</span>
-        </div>;
-    }
-
-    _protocolNameForInstanceId(instance_id) {
-        for (const proto of Object.keys(this.props.protocols)) {
-            if (!this.props.protocols[proto].instances) continue;
-            for (const instance of this.props.protocols[proto].instances) {
-                if (instance.instance_id == instance_id) return proto;
-            }
-        }
-    }
-
-    instanceForInstanceId(instance_id) {
-        for (const proto of Object.keys(this.props.protocols)) {
-            if (!this.props.protocols[proto].instances) continue;
-            for (const instance of this.props.protocols[proto].instances) {
-                if (instance.instance_id == instance_id) return instance;
-            }
-        }
+            <span className="mx_NetworkDropdown_menu_network">{name}</span>
+        </div>
     }
 
     render() {
@@ -285,17 +208,10 @@ export default class NetworkDropdown extends React.Component {
                 placeholder="matrix.org" // 'matrix.org' as an example of an HS name
             />
         } else {
-            if (this.state.selectedInstanceId) {
-                const protocolName = this._protocolNameForInstanceId(this.state.selectedInstanceId);
-                const instance = this.instanceForInstanceId(this.state.selectedInstanceId);
-                current_value = this._makeMenuOptionFromProtocolInstance(
-                    this.state.selectedServer, this.props.protocols[protocolName], instance, false
-                );
-            } else {
-                current_value = this._makeMenuOption(
-                    this.state.selectedServer, this.state.selectedNetwork, false
-                );
-            }
+            const instance = instanceForInstanceId(this.props.protocols, this.state.selectedInstanceId);
+            current_value = this._makeMenuOption(
+                this.state.selectedServer, instance, this.state.includeAll, false
+            );
         }
 
         return <div className="mx_NetworkDropdown" ref={this.collectRoot}>
@@ -310,14 +226,11 @@ export default class NetworkDropdown extends React.Component {
 
 NetworkDropdown.propTypes = {
     onOptionChange: React.PropTypes.func.isRequired,
-    config: React.PropTypes.object,
     protocols: React.PropTypes.object,
+    config: React.PropTypes.object,
 };
 
 NetworkDropdown.defaultProps = {
-    config: {
-        networks: [],
-    },
     protocols: {},
+    config: {},
 };
-
diff --git a/src/utils/DirectoryUtils.js b/src/utils/DirectoryUtils.js
new file mode 100644
index 00000000..9dc4d926
--- /dev/null
+++ b/src/utils/DirectoryUtils.js
@@ -0,0 +1,23 @@
+// Find a protocol 'instance' with a given instance_id
+// in the supplied protocols dict
+export function instanceForInstanceId(protocols, instance_id) {
+    if (!instance_id) return null;
+    for (const proto of Object.keys(protocols)) {
+        if (!protocols[proto].instances) continue;
+        for (const instance of protocols[proto].instances) {
+            if (instance.instance_id == instance_id) return instance;
+        }
+    }
+}
+
+// given an instance_id, return the name of the protocol for
+// that instance ID in the supplied protocols dict
+export function protocolNameForInstanceId(protocols, instance_id) {
+    if (!instance_id) return null;
+    for (const proto of Object.keys(protocols)) {
+        if (!protocols[proto].instances) continue;
+        for (const instance of protocols[proto].instances) {
+            if (instance.instance_id == instance_id) return proto;
+        }
+    }
+}

From 161978ab05c5541d405acce7cd7ea23d3d4d8b71 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 15:20:52 +0000
Subject: [PATCH 079/243] Fix tests

---
 test/app-tests/joining.js | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/test/app-tests/joining.js b/test/app-tests/joining.js
index 989effa3..442b67c2 100644
--- a/test/app-tests/joining.js
+++ b/test/app-tests/joining.js
@@ -77,6 +77,7 @@ describe('joining a room', function () {
             httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
             httpBackend.when('GET', '/sync').respond(200, {});
             httpBackend.when('POST', '/publicRooms').respond(200, {chunk: []});
+            httpBackend.when('GET', '/thirdparty/protocols').respond(200, {});
             httpBackend.when('GET', '/directory/room/'+encodeURIComponent(ROOM_ALIAS)).respond(200, { room_id: ROOM_ID });
 
             // start with a logged-in client
@@ -132,6 +133,12 @@ describe('joining a room', function () {
                 httpBackend.when('POST', '/join/'+encodeURIComponent(ROOM_ALIAS))
                     .respond(200, {room_id: ROOM_ID});
                 return httpBackend.flush();
+            }).then(() => {
+                // wait for the join request to be made
+                return q.delay(1);
+            }).then(() => {
+                // flush it through
+                return httpBackend.flush();
             }).then(() => {
                 httpBackend.verifyNoOutstandingExpectation();
 

From 2e73cd6c4d520fc78d7bd101bd4b4bd1ec00b82c Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 16:24:24 +0000
Subject: [PATCH 080/243] PR feedback

---
 src/components/structures/RoomDirectory.js    | 48 +++++++++----------
 .../views/directory/NetworkDropdown.js        |  3 +-
 src/utils/DirectoryUtils.js                   |  4 +-
 3 files changed, 27 insertions(+), 28 deletions(-)

diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js
index 372b1cda..79ae349d 100644
--- a/src/components/structures/RoomDirectory.js
+++ b/src/components/structures/RoomDirectory.js
@@ -122,7 +122,7 @@ module.exports = React.createClass({
             opts.server = my_server;
         }
         if (this.state.instanceId) {
-            opts.third_party_instanceId = this.state.instanceId;
+            opts.third_party_instance_id = this.state.instanceId;
         } else if (this.state.includeAll) {
             opts.include_all_networks = true;
         }
@@ -282,8 +282,7 @@ module.exports = React.createClass({
     },
 
     onJoinClick: function(alias) {
-        // If we're on the 'Matrix' network (or all networks),
-        // just show that rooms alias
+        // If we don't have a prticular instance id selected, just show that rooms alias
         if (!this.state.instanceId) {
             // If the user specified an alias without a domain, add on whichever server is selected
             // in the dropdown
@@ -292,11 +291,10 @@ module.exports = React.createClass({
             }
             this.showRoomAlias(alias);
         } else {
-            // This is a 3rd party protocol. Let's see if we
-            // can join it
-            const protocol_name = protocolNameForInstanceId(this.protocols, this.state.instanceId);
+            // This is a 3rd party protocol. Let's see if we can join it
+            const protocolName = protocolNameForInstanceId(this.protocols, this.state.instanceId);
             const instance = instanceForInstanceId(this.protocols, this.state.instanceId);
-            const fields = this._getFieldsForThirdPartyLocation(alias, this.protocols[protocol_name], instance);
+            const fields = protocolName ? this._getFieldsForThirdPartyLocation(alias, this.protocols[protocolName], instance) : null;
             if (!fields) {
                 const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
                 Modal.createDialog(ErrorDialog, {
@@ -305,7 +303,7 @@ module.exports = React.createClass({
                 });
                 return;
             }
-            MatrixClientPeg.get().getThirdpartyLocation(protocol_name, fields).done((resp) => {
+            MatrixClientPeg.get().getThirdpartyLocation(protocolName, fields).done((resp) => {
                 if (resp.length > 0 && resp[0].alias) {
                     this.showRoomAlias(resp[0].alias);
                 } else {
@@ -445,19 +443,19 @@ module.exports = React.createClass({
         return pat.test(s);
     },
 
-    _getFieldsForThirdPartyLocation: function(user_input, protocol, instance) {
+    _getFieldsForThirdPartyLocation: function(userInput, protocol, instance) {
         // make an object with the fields specified by that protocol. We
         // require that the values of all but the last field come from the
         // instance. The last is the user input.
-        const required_fields = protocol.location_fields;
-        if (!required_fields) return null;
+        const requiredFields = protocol.location_fields;
+        if (!requiredFields) return null;
         const fields = {};
-        for (let i = 0; i < required_fields.length - 1; ++i) {
-            const this_field = required_fields[i];
-            if (instance.fields[this_field] === undefined) return null;
-            fields[this_field] = instance.fields[this_field];
+        for (let i = 0; i < requiredFields.length - 1; ++i) {
+            const thisField = requiredFields[i];
+            if (instance.fields[thisField] === undefined) return null;
+            fields[thisField] = instance.fields[thisField];
         }
-        fields[required_fields[required_fields.length - 1]] = user_input;
+        fields[requiredFields[requiredFields.length - 1]] = userInput;
         return fields;
     },
 
@@ -506,17 +504,17 @@ module.exports = React.createClass({
             </ScrollPanel>;
         }
 
-        const protocol_name = protocolNameForInstanceId(this.protocols, this.state.instanceId);
+        const protocolName = protocolNameForInstanceId(this.protocols, this.state.instanceId);
         let instance_expected_field_type;
         if (
-            protocol_name &&
+            protocolName &&
             this.protocols &&
-            this.protocols[protocol_name] &&
-            this.protocols[protocol_name].location_fields.length > 0 &&
-            this.protocols[protocol_name].field_types
+            this.protocols[protocolName] &&
+            this.protocols[protocolName].location_fields.length > 0 &&
+            this.protocols[protocolName].field_types
         ) {
-            const last_field = this.protocols[protocol_name].location_fields.slice(-1)[0];
-            instance_expected_field_type = this.protocols[protocol_name].field_types[last_field];
+            const last_field = this.protocols[protocolName].location_fields.slice(-1)[0];
+            instance_expected_field_type = this.protocols[protocolName].field_types[last_field];
         }
 
 
@@ -528,9 +526,9 @@ module.exports = React.createClass({
         }
 
         let showJoinButton = this._stringLooksLikeId(this.state.filterString, instance_expected_field_type);
-        if (protocol_name) {
+        if (protocolName) {
             const instance = instanceForInstanceId(this.protocols, this.state.instanceId);
-            if (this._getFieldsForThirdPartyLocation(this.state.filterString, this.protocols[protocol_name], instance) === null) {
+            if (this._getFieldsForThirdPartyLocation(this.state.filterString, this.protocols[protocolName], instance) === null) {
                 showJoinButton = false;
             }
         }
diff --git a/src/components/views/directory/NetworkDropdown.js b/src/components/views/directory/NetworkDropdown.js
index 155dd01a..4ce094bc 100644
--- a/src/components/views/directory/NetworkDropdown.js
+++ b/src/components/views/directory/NetworkDropdown.js
@@ -180,7 +180,7 @@ export default class NetworkDropdown extends React.Component {
             icon = <img src="img/network-matrix.svg" />;
             span_class = 'mx_NetworkDropdown_menu_network';
         } else {
-            key = server + '_inst_'+instance.instance_id;
+            key = server + '_inst_' + instance.instance_id;
             icon = <img src={instance.icon || DEFAULT_ICON_URL} />;
             name = instance.desc;
             span_class = 'mx_NetworkDropdown_menu_network';
@@ -227,6 +227,7 @@ export default class NetworkDropdown extends React.Component {
 NetworkDropdown.propTypes = {
     onOptionChange: React.PropTypes.func.isRequired,
     protocols: React.PropTypes.object,
+    // The room directory config. May have a 'servers' key that is a list of server names to include in the dropdown
     config: React.PropTypes.object,
 };
 
diff --git a/src/utils/DirectoryUtils.js b/src/utils/DirectoryUtils.js
index 9dc4d926..72e44681 100644
--- a/src/utils/DirectoryUtils.js
+++ b/src/utils/DirectoryUtils.js
@@ -3,7 +3,7 @@
 export function instanceForInstanceId(protocols, instance_id) {
     if (!instance_id) return null;
     for (const proto of Object.keys(protocols)) {
-        if (!protocols[proto].instances) continue;
+        if (!protocols[proto].instances && protocols[proto].instances instanceof Array) continue;
         for (const instance of protocols[proto].instances) {
             if (instance.instance_id == instance_id) return instance;
         }
@@ -15,7 +15,7 @@ export function instanceForInstanceId(protocols, instance_id) {
 export function protocolNameForInstanceId(protocols, instance_id) {
     if (!instance_id) return null;
     for (const proto of Object.keys(protocols)) {
-        if (!protocols[proto].instances) continue;
+        if (!protocols[proto].instances && protocols[proto].instances instanceof Array) continue;
         for (const instance of protocols[proto].instances) {
             if (instance.instance_id == instance_id) return proto;
         }

From 42357dee0bc34da18a6275ae435441889f645df6 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 16:36:24 +0000
Subject: [PATCH 081/243] Typo

---
 src/components/structures/RoomDirectory.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js
index 79ae349d..5fb0324c 100644
--- a/src/components/structures/RoomDirectory.js
+++ b/src/components/structures/RoomDirectory.js
@@ -282,7 +282,7 @@ module.exports = React.createClass({
     },
 
     onJoinClick: function(alias) {
-        // If we don't have a prticular instance id selected, just show that rooms alias
+        // If we don't have a particular instance id selected, just show that rooms alias
         if (!this.state.instanceId) {
             // If the user specified an alias without a domain, add on whichever server is selected
             // in the dropdown

From 4745b3efebf10e11b6a47899bda22de451e48aae Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 17:40:37 +0000
Subject: [PATCH 082/243] released js-sdk & react-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 73c4b467..66eeab35 100644
--- a/package.json
+++ b/package.json
@@ -66,8 +66,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
-    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
+    "matrix-js-sdk": "0.7.2",
+    "matrix-react-sdk": "0.8.2",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 8bbc16ed4b77bea3b7422ab6464d0ea59a7bebae Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 17:44:22 +0000
Subject: [PATCH 083/243] Prepare changelog for v0.9.2

---
 CHANGELOG.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 806113ab..8c31a693 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,14 @@
+Changes in [0.9.2](https://github.com/vector-im/riot-web/releases/tag/v0.9.2) (2016-12-16)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.1...v0.9.2)
+
+ * Remove the client side filtering from the room dir
+   [\#2750](https://github.com/vector-im/riot-web/pull/2750)
+ * Configure olm memory size
+   [\#2745](https://github.com/vector-im/riot-web/pull/2745)
+ * Support room dir 3rd party network filtering
+   [\#2747](https://github.com/vector-im/riot-web/pull/2747)
+
 Changes in [0.9.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.1) (2016-12-09)
 ==========================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.1-rc.2...v0.9.1)

From 1e7e9d6101d72728d9560e6dbea5dd46a2ce86ea Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 16 Dec 2016 17:44:22 +0000
Subject: [PATCH 084/243] v0.9.2

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 66eeab35..efd44b04 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.1",
+  "version": "0.9.2",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From 9ae86f258578c39ebdd72cbf070a625768760d2b Mon Sep 17 00:00:00 2001
From: Mikaela Suomalainen <mikaela+git@mikaela.info>
Date: Sat, 17 Dec 2016 21:17:58 +0200
Subject: [PATCH 085/243] README.md: fix GFMD for nativefier

GitHub Flavoured MarkDown parsed this as
`sudo npm install nativefier -g nativefier https://riot.im/app/` which
is incorrect.
---
 README.md | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index b0ea2124..50a8ff04 100644
--- a/README.md
+++ b/README.md
@@ -140,10 +140,11 @@ Many thanks to @aviraldg for the initial work on the electron integration.
 Other options for running as a desktop app:
  * https://github.com/krisak/vector-electron-desktop
  * @asdf:matrix.org points out that you can use nativefier and it just works(tm)
-   ```
-   sudo npm install nativefier -g
-   nativefier https://riot.im/app/
-   ```
+
+```
+sudo npm install nativefier -g
+nativefier https://riot.im/app/
+```
 
 Development
 ===========

From 57641f722831f5882cda78b2bfca064d468cc5db Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 20 Dec 2016 00:05:49 +0000
Subject: [PATCH 086/243] typo

---
 CHANGELOG.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c31a693..b56ef6cc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -109,7 +109,7 @@ Changes in [0.9.0](https://github.com/vector-im/vector-web/releases/tag/v0.9.0)
  * Implement Platforms
    [\#2531](https://github.com/vector-im/vector-web/pull/2531)
 
-hanges in [0.8.4](https://github.com/vector-im/vector-web/releases/tag/v0.8.4) (2016-11-04)
+Changes in [0.8.4](https://github.com/vector-im/vector-web/releases/tag/v0.8.4) (2016-11-04)
 ============================================================================================
 [Full Changelog](https://github.com/vector-im/vector-web/compare/v0.8.4-rc.2...v0.8.4)
 

From d34cb80b687caa8347211878c498e55e3083a6c7 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 21 Dec 2016 18:50:35 +0000
Subject: [PATCH 087/243] CSS for the delete threepid button

---
 .../vector/css/matrix-react-sdk/structures/UserSettings.css     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 f48a88a9..427369a5 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css
@@ -174,7 +174,7 @@ limitations under the License.
     font-size: 16px;
 }
 
-.mx_UserSettings_addThreepid {
+.mx_UserSettings_threepidButton {
     display: table-cell;
     padding-left: 0.5em;
     position: relative;

From c6c4aff8ae5190e4a6681b0999dfbb40fd5488f6 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <github@rvanderhoff.org.uk>
Date: Thu, 22 Dec 2016 12:02:54 +0000
Subject: [PATCH 088/243] Redeploy script: put each build in a separate
 directory (#2790)

* Redeploy script: put each build in a separate directory

Hopefully this will fix the problem whereby we can overwrite the live
deployment.
---
 scripts/redeploy.py | 37 ++++++++++++++++++++++++++++---------
 1 file changed, 28 insertions(+), 9 deletions(-)

diff --git a/scripts/redeploy.py b/scripts/redeploy.py
index fddd5da9..36585f53 100755
--- a/scripts/redeploy.py
+++ b/scripts/redeploy.py
@@ -13,7 +13,7 @@ def download_file(url):
     local_filename = url.split('/')[-1]
     r = requests.get(url, stream=True)
     with open(local_filename, 'wb') as f:
-        for chunk in r.iter_content(chunk_size=1024): 
+        for chunk in r.iter_content(chunk_size=1024):
             if chunk: # filter out keep-alive new chunks
                 f.write(chunk)
     return local_filename
@@ -107,21 +107,40 @@ def on_receive_jenkins_poke():
     )
 
     print("Retrieving .tar.gz file: %s" % tar_gz_url)
+
+    # we rely on the fact that flask only serves one request at a time to
+    # ensure that we do not overwrite a tarball from a concurrent request.
     filename = download_file(tar_gz_url)
     print("Downloaded file: %s" % filename)
+
+    try:
+        # we extract into a directory based on the build number. This avoids the
+        # problem of multiple builds building the same git version and thus having
+        # the same tarball name. That would lead to two potential problems:
+        #   (a) sometimes jenkins serves corrupted artifacts; we would replace
+        #       a good deploy with a bad one
+        #   (b) we'll be overwriting the live deployment, which means people might
+        #       see half-written files.
+        build_dir = os.path.join(arg_extract_path, "%s-#%s" % (job_name, build_num))
+        if os.path.exists(build_dir):
+            abort(400, "Not deploying. We have previously deployed this build.")
+            return
+        os.mkdir(build_dir)
+
+        untar_to(filename, build_dir)
+        print("Extracted to: %s" % build_dir)
+    finally:
+        if arg_should_clean:
+            os.remove(filename)
+
     name_str = filename.replace(".tar.gz", "")
-    untar_to(filename, arg_extract_path)
-
-    extracted_dir = os.path.join(arg_extract_path, name_str)
-
-    if arg_should_clean:
-        os.remove(filename)
-
-    create_symlink(source=extracted_dir, linkname=arg_symlink)
+    extracted_dir = os.path.join(build_dir, name_str)
 
     if arg_config_location:
         create_symlink(source=arg_config_location, linkname=os.path.join(extracted_dir, 'config.json'))
 
+    create_symlink(source=extracted_dir, linkname=arg_symlink)
+
     return jsonify({})
 
 if __name__ == "__main__":

From 519af6a5d037248b4186b8f87eca581a1480de6b Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 22 Dec 2016 14:14:44 +0000
Subject: [PATCH 089/243] Bump to matrix-react-sdk 0.8.3

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index efd44b04..64598893 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
     "matrix-js-sdk": "0.7.2",
-    "matrix-react-sdk": "0.8.2",
+    "matrix-react-sdk": "0.8.3",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From e6f600bb4774b3c5ddd48e4a3f2cf909bf5e6d36 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 22 Dec 2016 14:18:22 +0000
Subject: [PATCH 090/243] Prepare changelog for v0.9.3

---
 CHANGELOG.md | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b56ef6cc..03f2bf2f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+Changes in [0.9.3](https://github.com/vector-im/riot-web/releases/tag/v0.9.3) (2016-12-22)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.2...v0.9.3)
+
+ * (from matrix-react-sdk) Fix regression where the date separator would be displayed
+   at the wrong time of day.
+ * README.md: fix GFMD for nativefier
+   [\#2755](https://github.com/vector-im/riot-web/pull/2755)
+
 Changes in [0.9.2](https://github.com/vector-im/riot-web/releases/tag/v0.9.2) (2016-12-16)
 ==========================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.1...v0.9.2)

From d8bce0f20200bd31e634bc87497cd9e17bbd9750 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 22 Dec 2016 14:18:23 +0000
Subject: [PATCH 091/243] v0.9.3

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 64598893..26f939df 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.2",
+  "version": "0.9.3",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From ed35a90cfb2749439a98d5963ab1cf1598fbed97 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 22 Dec 2016 14:36:05 +0000
Subject: [PATCH 092/243] Back to develop js & react sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 26f939df..3bf4c868 100644
--- a/package.json
+++ b/package.json
@@ -66,8 +66,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "0.7.2",
-    "matrix-react-sdk": "0.8.3",
+    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
+    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From ab8420f5a94ca81e89023020b7fc3433cfdd3590 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 22 Dec 2016 16:30:14 +0000
Subject: [PATCH 093/243] Bump to olm 2.1.0

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 3bf4c868..7a9a82bb 100644
--- a/package.json
+++ b/package.json
@@ -123,7 +123,7 @@
     "webpack-dev-server": "^1.16.2"
   },
   "optionalDependencies": {
-    "olm": "https://matrix.org/packages/npm/olm/olm-2.0.0.tgz"
+    "olm": "https://matrix.org/packages/npm/olm/olm-2.1.0.tgz"
   },
   "build": {
     "appId": "im.riot.app",

From 35a541c824a2c22bd608f3e24d4da8560c1cce99 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 22 Dec 2016 16:30:14 +0000
Subject: [PATCH 094/243] Bump to olm 2.1.0

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 26f939df..e27e946f 100644
--- a/package.json
+++ b/package.json
@@ -123,7 +123,7 @@
     "webpack-dev-server": "^1.16.2"
   },
   "optionalDependencies": {
-    "olm": "https://matrix.org/packages/npm/olm/olm-2.0.0.tgz"
+    "olm": "https://matrix.org/packages/npm/olm/olm-2.1.0.tgz"
   },
   "build": {
     "appId": "im.riot.app",

From 3803c642262819129a4a955cc8793ba4d50f0064 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 22 Dec 2016 18:15:00 +0000
Subject: [PATCH 095/243] prep 0.9.4 changelog

---
 CHANGELOG.md | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 03f2bf2f..5427b8dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+Changes in [0.9.4](https://github.com/vector-im/riot-web/releases/tag/v0.9.4) (2016-12-22)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.3...v0.9.4)
+
+ * Update to libolm 2.1.0. This should help resolve a problem with browser
+   sessions being logged out ([\#2726](https://github.com/vector-im/riot-web/issues/2726)).
+
 Changes in [0.9.3](https://github.com/vector-im/riot-web/releases/tag/v0.9.3) (2016-12-22)
 ==========================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.2...v0.9.3)

From ff70b0a2c89d32a175a565a2113861cc35cbe4f9 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 22 Dec 2016 18:24:04 +0000
Subject: [PATCH 096/243] v0.9.4

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index e27e946f..34df1c4e 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.3",
+  "version": "0.9.4",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From e741a4f294c69bd3925584b2972394b92aef3792 Mon Sep 17 00:00:00 2001
From: joelostblom <joelostblom@users.noreply.github.com>
Date: Thu, 22 Dec 2016 14:53:03 -0500
Subject: [PATCH 097/243] Update desktop build instructions fixes #2792

This is based on what I had to do to get the desktop app running, as per the advice in https://github.com/vector-im/riot-web/issues/2792. I am not familiar with `npm`, so please change this pull request if there is a more appropriate way of achieving the same result.
---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 50a8ff04..a468955b 100644
--- a/README.md
+++ b/README.md
@@ -104,6 +104,7 @@ To run as a desktop app:
 ```
 npm install
 npm install electron
+npm run build
 node_modules/.bin/electron .
 ```
 

From bb28903c8e6370ce65e86365926df7da63e943c0 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 01:36:00 +0000
Subject: [PATCH 098/243] fix warning page

---
 src/components/structures/CompatibilityPage.js | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/components/structures/CompatibilityPage.js b/src/components/structures/CompatibilityPage.js
index dd139e65..bae33803 100644
--- a/src/components/structures/CompatibilityPage.js
+++ b/src/components/structures/CompatibilityPage.js
@@ -45,10 +45,8 @@ module.exports = React.createClass({
                 available or experimental in your current browser.
                 </p>
                 <p>
-                Please install <a href="https://www.google.com/chrome">Chrome</a> or
-                <a href="https://getfirefox.com">Firefox</a> for the best experience.
-                <a href="http://apple.com/safari">Safari</a> and
-                <a href="http://opera.com">Opera</a> work too.
+                Please install <a href="https://www.google.com/chrome">Chrome</a> or <a href="https://getfirefox.com">Firefox</a> for
+                the best experience. <a href="http://apple.com/safari">Safari</a> and <a href="http://opera.com">Opera</a> work too.
                 </p>
                 <p>
                 With your current browser, the look and feel of the application may

From 9a861f46d028d4194666e65ba16633a3505a015f Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 03:18:12 +0000
Subject: [PATCH 099/243] make electron send email validation URLs with a
 nextlink of riot.im rather than file:///

---
 src/vector/index.js | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index b791783b..8231950b 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -136,11 +136,20 @@ var onNewScreen = function(screen) {
 // click back to the client having registered.
 // It's up to us to recognise if we're loaded with
 // this URL and tell MatrixClient to resume registration.
+//
+// If we're in electron, we should never pass through a file:// URL otherwise
+// the identity server will try to 302 the browser to it, which breaks horribly.
+// so in that instance, hardcode to use riot.im/app for now instead.
 var makeRegistrationUrl = function() {
-    return window.location.protocol + '//' +
-           window.location.host +
-           window.location.pathname +
-           '#/register';
+    if (window.location.protocol === "file:") {
+        return 'https://riot.im/app/#/register';
+    }
+    else {
+        return window.location.protocol + '//' +
+               window.location.host +
+               window.location.pathname +
+               '#/register';
+    }
 }
 
 window.addEventListener('hashchange', onHashChange);

From 2b70cb436eb52f450a063a36dbb2b98d22d9d733 Mon Sep 17 00:00:00 2001
From: Kevin McDonald <k3vmcd@gmail.com>
Date: Fri, 23 Dec 2016 22:32:16 -0700
Subject: [PATCH 100/243] add Debian Stretch install steps to readme

---
 README.md | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/README.md b/README.md
index a468955b..f99afca1 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,14 @@ Note that Chrome does not allow microphone or webcam access for sites served
 over http (except localhost), so for working VoIP you will need to serve Riot
 over https.
 
+### Installation Steps for Debian Stretch
+1. Add the repository to your sources.list using either of the following two options:
+  - Directly to sources.list: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee -a /etc/apt/sources.list`
+  - As a separate entry in sources.list.d: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee /etc/apt/sources.list.d/riot.list`
+2. Add the gpg signing key for the riot repository: `curl -s https://riot.im/packages/debian/repo-key.asc | sudo apt-key add -`
+3. Update your package lists: `sudo apt-get update`
+4. Install Riot: `sudo apt-get install riot-web`
+
 Important Security Note
 =======================
 

From f2afcc0bc89cebe9b2220fc75a537f2f91bf91bc Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 18:13:20 +0000
Subject: [PATCH 101/243] add gnu-tar to debian electron build deps

---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 50a8ff04..54709e08 100644
--- a/README.md
+++ b/README.md
@@ -121,6 +121,7 @@ The only platform that can build packages for all three platforms is macOS:
 ```
 brew install wine --without-x11
 brew install mono
+brew install gnu-tar
 npm install
 npm run build:electron
 ```

From 79d164309f7926cb1c24008e464a516d7a872325 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 18:13:33 +0000
Subject: [PATCH 102/243] empirically fix win32 shortcut in start menu

---
 electron/src/squirrelhooks.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/electron/src/squirrelhooks.js b/electron/src/squirrelhooks.js
index 10fb8d9e..295ef5cf 100644
--- a/electron/src/squirrelhooks.js
+++ b/electron/src/squirrelhooks.js
@@ -3,7 +3,7 @@ const spawn = require('child_process').spawn;
 const app = require('electron').app;
 
 function run_update_exe(args, done) {
-    const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
+    const updateExe = path.resolve(path.dirname(process.execPath), 'Update.exe');
     spawn(updateExe, args, {
       detached: true
     }).on('close', done);

From bba6664b1cf685d9666da63eacb4d8bbcb0ac764 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 18:58:42 +0000
Subject: [PATCH 103/243] bump to dep on react-sdk 0.8.3-electron

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 34df1c4e..a8197c22 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
     "matrix-js-sdk": "0.7.2",
-    "matrix-react-sdk": "0.8.3",
+    "matrix-react-sdk": "0.8.3-electron",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From cbf105f2a0c448dcd27302be13de299fb43e7d4b Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 18:59:41 +0000
Subject: [PATCH 104/243] Revert "bump to dep on react-sdk 0.8.3-electron"

This reverts commit bba6664b1cf685d9666da63eacb4d8bbcb0ac764.
---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index a8197c22..34df1c4e 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
     "matrix-js-sdk": "0.7.2",
-    "matrix-react-sdk": "0.8.3-electron",
+    "matrix-react-sdk": "0.8.3",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 078493912c97f83971ca225e962077daa0e2dd79 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 03:18:12 +0000
Subject: [PATCH 105/243] make electron send email validation URLs with a
 nextlink of riot.im rather than file:///

---
 src/vector/index.js | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index b791783b..8231950b 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -136,11 +136,20 @@ var onNewScreen = function(screen) {
 // click back to the client having registered.
 // It's up to us to recognise if we're loaded with
 // this URL and tell MatrixClient to resume registration.
+//
+// If we're in electron, we should never pass through a file:// URL otherwise
+// the identity server will try to 302 the browser to it, which breaks horribly.
+// so in that instance, hardcode to use riot.im/app for now instead.
 var makeRegistrationUrl = function() {
-    return window.location.protocol + '//' +
-           window.location.host +
-           window.location.pathname +
-           '#/register';
+    if (window.location.protocol === "file:") {
+        return 'https://riot.im/app/#/register';
+    }
+    else {
+        return window.location.protocol + '//' +
+               window.location.host +
+               window.location.pathname +
+               '#/register';
+    }
 }
 
 window.addEventListener('hashchange', onHashChange);

From 8c523be6f52189ea0b731e6b0181d09f0b1f2a62 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 18:13:20 +0000
Subject: [PATCH 106/243] add gnu-tar to debian electron build deps

---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 50a8ff04..54709e08 100644
--- a/README.md
+++ b/README.md
@@ -121,6 +121,7 @@ The only platform that can build packages for all three platforms is macOS:
 ```
 brew install wine --without-x11
 brew install mono
+brew install gnu-tar
 npm install
 npm run build:electron
 ```

From 4de042bf587f42a9f91df4db22c536a6f8a6c0b6 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 18:13:33 +0000
Subject: [PATCH 107/243] empirically fix win32 shortcut in start menu

---
 electron/src/squirrelhooks.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/electron/src/squirrelhooks.js b/electron/src/squirrelhooks.js
index 10fb8d9e..295ef5cf 100644
--- a/electron/src/squirrelhooks.js
+++ b/electron/src/squirrelhooks.js
@@ -3,7 +3,7 @@ const spawn = require('child_process').spawn;
 const app = require('electron').app;
 
 function run_update_exe(args, done) {
-    const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
+    const updateExe = path.resolve(path.dirname(process.execPath), 'Update.exe');
     spawn(updateExe, args, {
       detached: true
     }).on('close', done);

From 3f3772463b4c304d6d790b54a5c2d825e900facb Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 19:04:00 +0000
Subject: [PATCH 108/243] bump react dep

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 34df1c4e..1d2bb886 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
     "matrix-js-sdk": "0.7.2",
-    "matrix-react-sdk": "0.8.3",
+    "matrix-react-sdk": "0.8.4",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 0129da4dd6990e965a5572073c05ea4e767f7dc3 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 19:07:30 +0000
Subject: [PATCH 109/243] Prepare changelog for v0.9.5

---
 CHANGELOG.md | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5427b8dc..265cbe80 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+Changes in [0.9.5](https://github.com/vector-im/riot-web/releases/tag/v0.9.5) (2016-12-24)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.4...v0.9.5)
+
+ * make electron send email validation URLs with a nextlink of riot.im rather than file:///
+ * add gnu-tar to debian electron build deps
+ * fix win32 shortcut in start menu
+
 Changes in [0.9.4](https://github.com/vector-im/riot-web/releases/tag/v0.9.4) (2016-12-22)
 ==========================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.3...v0.9.4)

From 747408871d71c8d020672e39140725c136a3b709 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 19:07:31 +0000
Subject: [PATCH 110/243] v0.9.5

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 1d2bb886..02e280a5 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.4",
+  "version": "0.9.5",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From b0319ec0f10f870a778dccb3fe71e18cb686ac43 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 24 Dec 2016 19:32:29 +0000
Subject: [PATCH 111/243] merge

---
 CHANGELOG.md | 8 ++++++++
 package.json | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5427b8dc..265cbe80 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+Changes in [0.9.5](https://github.com/vector-im/riot-web/releases/tag/v0.9.5) (2016-12-24)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.4...v0.9.5)
+
+ * make electron send email validation URLs with a nextlink of riot.im rather than file:///
+ * add gnu-tar to debian electron build deps
+ * fix win32 shortcut in start menu
+
 Changes in [0.9.4](https://github.com/vector-im/riot-web/releases/tag/v0.9.4) (2016-12-22)
 ==========================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.3...v0.9.4)
diff --git a/package.json b/package.json
index 456874a7..3f9f46e2 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.4",
+  "version": "0.9.5",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From bacb284415a90811fbad2bae74b1921bf92a8fd9 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 28 Dec 2016 02:01:28 +0000
Subject: [PATCH 112/243] basic jig for SASS-based themed CSS (one bundle per
 theme)

---
 package.json                                               | 6 ++++--
 src/skins/vector/css/{common.css => _common.scss}          | 0
 .../{ContextualMenu.css => _ContextualMenu.scss}           | 0
 .../structures/{CreateRoom.css => _CreateRoom.scss}        | 0
 .../structures/{FilePanel.css => _FilePanel.scss}          | 0
 .../structures/{MatrixChat.css => _MatrixChat.scss}        | 0
 .../{NotificationPanel.css => _NotificationPanel.scss}     | 0
 .../structures/{RoomStatusBar.css => _RoomStatusBar.scss}  | 0
 .../structures/{RoomView.css => _RoomView.scss}            | 0
 .../structures/{SearchBox.css => _SearchBox.scss}          | 0
 .../structures/{UploadBar.css => _UploadBar.scss}          | 0
 .../structures/{UserSettings.css => _UserSettings.scss}    | 0
 .../structures/login/{Login.css => _Login.scss}            | 0
 .../views/avatars/{BaseAvatar.css => _BaseAvatar.scss}     | 0
 .../{ChatInviteDialog.css => _ChatInviteDialog.scss}       | 0
 ...EncryptedEventDialog.css => _EncryptedEventDialog.scss} | 0
 ...SetDisplayNameDialog.css => _SetDisplayNameDialog.scss} | 0
 .../{AddressSelector.css => _AddressSelector.scss}         | 0
 .../views/elements/{AddressTile.css => _AddressTile.scss}  | 0
 .../{DirectorySearchBox.css => _DirectorySearchBox.scss}   | 0
 ...erEventListSummary.css => _MemberEventListSummary.scss} | 0
 .../views/elements/{ProgressBar.css => _ProgressBar.scss}  | 0
 .../views/elements/{RichText.css => _RichText.scss}        | 0
 .../views/login/{ServerConfig.css => _ServerConfig.scss}   | 0
 .../views/messages/{MImageBody.css => _MImageBody.scss}    | 0
 .../views/messages/{MNoticeBody.css => _MNoticeBody.scss}  | 0
 .../views/messages/{MTextBody.css => _MTextBody.scss}      | 0
 .../messages/{TextualEvent.css => _TextualEvent.scss}      | 0
 .../views/messages/{UnknownBody.css => _UnknownBody.scss}  | 0
 .../views/rooms/{Autocomplete.css => _Autocomplete.scss}   | 0
 .../views/rooms/{EntityTile.css => _EntityTile.scss}       | 0
 .../views/rooms/{EventTile.css => _EventTile.scss}         | 0
 .../{LinkPreviewWidget.css => _LinkPreviewWidget.scss}     | 0
 .../rooms/{MemberDeviceInfo.css => _MemberDeviceInfo.scss} | 0
 .../views/rooms/{MemberInfo.css => _MemberInfo.scss}       | 0
 .../views/rooms/{MemberList.css => _MemberList.scss}       | 0
 .../rooms/{MessageComposer.css => _MessageComposer.scss}   | 0
 .../views/rooms/{PresenceLabel.css => _PresenceLabel.scss} | 0
 .../views/rooms/{RoomHeader.css => _RoomHeader.scss}       | 0
 .../views/rooms/{RoomList.css => _RoomList.scss}           | 0
 .../rooms/{RoomPreviewBar.css => _RoomPreviewBar.scss}     | 0
 .../views/rooms/{RoomSettings.css => _RoomSettings.scss}   | 0
 .../views/rooms/{RoomTile.css => _RoomTile.scss}           | 0
 ...SearchableEntityList.css => _SearchableEntityList.scss} | 0
 .../rooms/{TabCompleteBar.css => _TabCompleteBar.scss}     | 0
 ...TopUnreadMessagesBar.css => _TopUnreadMessagesBar.scss} | 0
 .../settings/{DevicesPanel.css => _DevicesPanel.scss}      | 0
 .../{IntegrationsManager.css => _IntegrationsManager.scss} | 0
 .../views/voip/{CallView.css => _CallView.scss}            | 0
 .../voip/{IncomingCallbox.css => _IncomingCallbox.scss}    | 0
 .../views/voip/{VideoView.css => _VideoView.scss}          | 0
 src/skins/vector/css/themes/dark.scss                      | 7 +++++++
 src/skins/vector/css/themes/light.scss                     | 4 ++++
 src/skins/vector/css/vector-web/{fonts.css => _fonts.scss} | 0
 .../{CompatibilityPage.css => _CompatibilityPage.scss}     | 0
 .../structures/{LeftPanel.css => _LeftPanel.scss}          | 0
 .../structures/{RightPanel.css => _RightPanel.scss}        | 0
 .../structures/{RoomDirectory.css => _RoomDirectory.scss}  | 0
 .../structures/{RoomSubList.css => _RoomSubList.scss}      | 0
 .../structures/{ViewSource.css => _ViewSource.scss}        | 0
 .../{MessageContextMenu.css => _MessageContextMenu.scss}   | 0
 ...eContextMenu.css => _NotificationStateContextMenu.scss} | 0
 .../{RoomTagContextMenu.css => _RoomTagContextMenu.scss}   | 0
 .../dialogs/{ChangelogDialog.css => _ChangelogDialog.scss} | 0
 .../{NetworkDropdown.css => _NetworkDropdown.scss}         | 0
 .../views/elements/{ImageView.css => _ImageView.scss}      | 0
 .../views/elements/{Spinner.css => _Spinner.scss}          | 0
 .../globals/{GuestWarningBar.css => _GuestWarningBar.scss} | 0
 .../globals/{MatrixToolbar.css => _MatrixToolbar.scss}     | 0
 .../{MessageTimestamp.css => _MessageTimestamp.scss}       | 0
 .../messages/{SenderProfile.css => _SenderProfile.scss}    | 0
 .../rooms/{RoomDropTarget.css => _RoomDropTarget.scss}     | 0
 .../views/rooms/{RoomTooltip.css => _RoomTooltip.scss}     | 0
 .../views/rooms/{SearchBar.css => _SearchBar.scss}         | 0
 .../settings/{Notifications.css => _Notifications.scss}    | 0
 src/vector/index.js                                        | 2 +-
 webpack.config.js                                          | 1 +
 77 files changed, 17 insertions(+), 3 deletions(-)
 rename src/skins/vector/css/{common.css => _common.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{ContextualMenu.css => _ContextualMenu.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{CreateRoom.css => _CreateRoom.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{FilePanel.css => _FilePanel.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{MatrixChat.css => _MatrixChat.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{NotificationPanel.css => _NotificationPanel.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{RoomStatusBar.css => _RoomStatusBar.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{RoomView.css => _RoomView.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{SearchBox.css => _SearchBox.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{UploadBar.css => _UploadBar.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/{UserSettings.css => _UserSettings.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/structures/login/{Login.css => _Login.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/avatars/{BaseAvatar.css => _BaseAvatar.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/dialogs/{ChatInviteDialog.css => _ChatInviteDialog.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/dialogs/{EncryptedEventDialog.css => _EncryptedEventDialog.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/dialogs/{SetDisplayNameDialog.css => _SetDisplayNameDialog.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/elements/{AddressSelector.css => _AddressSelector.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/elements/{AddressTile.css => _AddressTile.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/elements/{DirectorySearchBox.css => _DirectorySearchBox.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/elements/{MemberEventListSummary.css => _MemberEventListSummary.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/elements/{ProgressBar.css => _ProgressBar.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/elements/{RichText.css => _RichText.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/login/{ServerConfig.css => _ServerConfig.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/messages/{MImageBody.css => _MImageBody.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/messages/{MNoticeBody.css => _MNoticeBody.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/messages/{MTextBody.css => _MTextBody.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/messages/{TextualEvent.css => _TextualEvent.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/messages/{UnknownBody.css => _UnknownBody.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{Autocomplete.css => _Autocomplete.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{EntityTile.css => _EntityTile.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{EventTile.css => _EventTile.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{LinkPreviewWidget.css => _LinkPreviewWidget.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{MemberDeviceInfo.css => _MemberDeviceInfo.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{MemberInfo.css => _MemberInfo.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{MemberList.css => _MemberList.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{MessageComposer.css => _MessageComposer.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{PresenceLabel.css => _PresenceLabel.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{RoomHeader.css => _RoomHeader.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{RoomList.css => _RoomList.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{RoomPreviewBar.css => _RoomPreviewBar.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{RoomSettings.css => _RoomSettings.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{RoomTile.css => _RoomTile.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{SearchableEntityList.css => _SearchableEntityList.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{TabCompleteBar.css => _TabCompleteBar.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/rooms/{TopUnreadMessagesBar.css => _TopUnreadMessagesBar.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/settings/{DevicesPanel.css => _DevicesPanel.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/settings/{IntegrationsManager.css => _IntegrationsManager.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/voip/{CallView.css => _CallView.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/voip/{IncomingCallbox.css => _IncomingCallbox.scss} (100%)
 rename src/skins/vector/css/matrix-react-sdk/views/voip/{VideoView.css => _VideoView.scss} (100%)
 create mode 100644 src/skins/vector/css/themes/dark.scss
 create mode 100644 src/skins/vector/css/themes/light.scss
 rename src/skins/vector/css/vector-web/{fonts.css => _fonts.scss} (100%)
 rename src/skins/vector/css/vector-web/structures/{CompatibilityPage.css => _CompatibilityPage.scss} (100%)
 rename src/skins/vector/css/vector-web/structures/{LeftPanel.css => _LeftPanel.scss} (100%)
 rename src/skins/vector/css/vector-web/structures/{RightPanel.css => _RightPanel.scss} (100%)
 rename src/skins/vector/css/vector-web/structures/{RoomDirectory.css => _RoomDirectory.scss} (100%)
 rename src/skins/vector/css/vector-web/structures/{RoomSubList.css => _RoomSubList.scss} (100%)
 rename src/skins/vector/css/vector-web/structures/{ViewSource.css => _ViewSource.scss} (100%)
 rename src/skins/vector/css/vector-web/views/context_menus/{MessageContextMenu.css => _MessageContextMenu.scss} (100%)
 rename src/skins/vector/css/vector-web/views/context_menus/{NotificationStateContextMenu.css => _NotificationStateContextMenu.scss} (100%)
 rename src/skins/vector/css/vector-web/views/context_menus/{RoomTagContextMenu.css => _RoomTagContextMenu.scss} (100%)
 rename src/skins/vector/css/vector-web/views/dialogs/{ChangelogDialog.css => _ChangelogDialog.scss} (100%)
 rename src/skins/vector/css/vector-web/views/directory/{NetworkDropdown.css => _NetworkDropdown.scss} (100%)
 rename src/skins/vector/css/vector-web/views/elements/{ImageView.css => _ImageView.scss} (100%)
 rename src/skins/vector/css/vector-web/views/elements/{Spinner.css => _Spinner.scss} (100%)
 rename src/skins/vector/css/vector-web/views/globals/{GuestWarningBar.css => _GuestWarningBar.scss} (100%)
 rename src/skins/vector/css/vector-web/views/globals/{MatrixToolbar.css => _MatrixToolbar.scss} (100%)
 rename src/skins/vector/css/vector-web/views/messages/{MessageTimestamp.css => _MessageTimestamp.scss} (100%)
 rename src/skins/vector/css/vector-web/views/messages/{SenderProfile.css => _SenderProfile.scss} (100%)
 rename src/skins/vector/css/vector-web/views/rooms/{RoomDropTarget.css => _RoomDropTarget.scss} (100%)
 rename src/skins/vector/css/vector-web/views/rooms/{RoomTooltip.css => _RoomTooltip.scss} (100%)
 rename src/skins/vector/css/vector-web/views/rooms/{SearchBar.css => _SearchBar.scss} (100%)
 rename src/skins/vector/css/vector-web/views/settings/{Notifications.css => _Notifications.scss} (100%)

diff --git a/package.json b/package.json
index 3f9f46e2..c657aad6 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
     "build:config": "cpx config.json webapp/",
     "build:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/",
     "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
-    "build:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css --no-watch",
+    "build:css": "mkdirp build && node-sass --recursive --source-map true --output build \"src/skins/vector/css\"",
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
@@ -44,7 +44,7 @@
     "start:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/ -w",
     "start:js": "webpack-dev-server -w --progress",
     "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
-    "start:skins:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css",
+    "start:skins:css": "mkdirp build && node-sass --recursive --watch --source-map true --output build \"src/skins/vector/css\"",
     "start": "node scripts/babelcheck.js && parallelshell \"npm run start:emojione\" \"npm run start:res\" \"npm run start:config\" \"npm run start:js\" \"npm run start:skins:css\"",
     "start:prod": "parallelshell \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\"",
     "clean": "rimraf build lib webapp electron/dist",
@@ -113,11 +113,13 @@
     "karma-webpack": "^1.7.0",
     "mkdirp": "^0.5.1",
     "mocha": "^2.4.5",
+    "node-sass": "^4.1.1",
     "parallelshell": "^1.2.0",
     "phantomjs-prebuilt": "^2.1.7",
     "react-addons-perf": "^15.4.0",
     "react-addons-test-utils": "^15.4.0",
     "rimraf": "^2.4.3",
+    "sass-loader": "^4.1.1",
     "source-map-loader": "^0.1.5",
     "webpack": "^1.12.14",
     "webpack-dev-server": "^1.16.2"
diff --git a/src/skins/vector/css/common.css b/src/skins/vector/css/_common.scss
similarity index 100%
rename from src/skins/vector/css/common.css
rename to src/skins/vector/css/_common.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/ContextualMenu.css b/src/skins/vector/css/matrix-react-sdk/structures/_ContextualMenu.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/ContextualMenu.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_ContextualMenu.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/CreateRoom.css b/src/skins/vector/css/matrix-react-sdk/structures/_CreateRoom.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/CreateRoom.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_CreateRoom.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/FilePanel.css b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/FilePanel.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/MatrixChat.css b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/MatrixChat.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/NotificationPanel.css b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/NotificationPanel.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/RoomStatusBar.css b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/RoomStatusBar.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/SearchBox.css b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/SearchBox.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/UploadBar.css b/src/skins/vector/css/matrix-react-sdk/structures/_UploadBar.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/UploadBar.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_UploadBar.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/UserSettings.css
rename to src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/Login.css b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/structures/login/Login.css
rename to src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/avatars/BaseAvatar.css b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/avatars/BaseAvatar.css
rename to src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/ChatInviteDialog.css b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/dialogs/ChatInviteDialog.css
rename to src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/EncryptedEventDialog.css b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/dialogs/EncryptedEventDialog.css
rename to src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/SetDisplayNameDialog.css b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/dialogs/SetDisplayNameDialog.css
rename to src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/AddressSelector.css b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressSelector.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/elements/AddressSelector.css
rename to src/skins/vector/css/matrix-react-sdk/views/elements/_AddressSelector.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/AddressTile.css b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/elements/AddressTile.css
rename to src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css b/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css
rename to src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/MemberEventListSummary.css b/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/elements/MemberEventListSummary.css
rename to src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/ProgressBar.css b/src/skins/vector/css/matrix-react-sdk/views/elements/_ProgressBar.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/elements/ProgressBar.css
rename to src/skins/vector/css/matrix-react-sdk/views/elements/_ProgressBar.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/RichText.css b/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/elements/RichText.css
rename to src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/login/ServerConfig.css b/src/skins/vector/css/matrix-react-sdk/views/login/_ServerConfig.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/login/ServerConfig.css
rename to src/skins/vector/css/matrix-react-sdk/views/login/_ServerConfig.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/MImageBody.css b/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/messages/MImageBody.css
rename to src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/MNoticeBody.css b/src/skins/vector/css/matrix-react-sdk/views/messages/_MNoticeBody.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/messages/MNoticeBody.css
rename to src/skins/vector/css/matrix-react-sdk/views/messages/_MNoticeBody.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/MTextBody.css b/src/skins/vector/css/matrix-react-sdk/views/messages/_MTextBody.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/messages/MTextBody.css
rename to src/skins/vector/css/matrix-react-sdk/views/messages/_MTextBody.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/TextualEvent.css b/src/skins/vector/css/matrix-react-sdk/views/messages/_TextualEvent.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/messages/TextualEvent.css
rename to src/skins/vector/css/matrix-react-sdk/views/messages/_TextualEvent.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/UnknownBody.css b/src/skins/vector/css/matrix-react-sdk/views/messages/_UnknownBody.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/messages/UnknownBody.css
rename to src/skins/vector/css/matrix-react-sdk/views/messages/_UnknownBody.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/Autocomplete.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/Autocomplete.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/EntityTile.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/LinkPreviewWidget.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/LinkPreviewWidget.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/MemberDeviceInfo.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/MemberDeviceInfo.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/MemberInfo.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/MemberList.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/MessageComposer.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/MessageComposer.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/PresenceLabel.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/_PresenceLabel.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/PresenceLabel.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_PresenceLabel.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/RoomHeader.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomList.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/RoomList.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/RoomSettings.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/RoomTile.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/SearchableEntityList.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/TabCompleteBar.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/_TabCompleteBar.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/TabCompleteBar.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_TabCompleteBar.scss
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.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/rooms/TopUnreadMessagesBar.css
rename to src/skins/vector/css/matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/settings/DevicesPanel.css b/src/skins/vector/css/matrix-react-sdk/views/settings/_DevicesPanel.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/settings/DevicesPanel.css
rename to src/skins/vector/css/matrix-react-sdk/views/settings/_DevicesPanel.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/settings/IntegrationsManager.css b/src/skins/vector/css/matrix-react-sdk/views/settings/_IntegrationsManager.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/settings/IntegrationsManager.css
rename to src/skins/vector/css/matrix-react-sdk/views/settings/_IntegrationsManager.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/voip/CallView.css b/src/skins/vector/css/matrix-react-sdk/views/voip/_CallView.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/voip/CallView.css
rename to src/skins/vector/css/matrix-react-sdk/views/voip/_CallView.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/voip/IncomingCallbox.css b/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/voip/IncomingCallbox.css
rename to src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
diff --git a/src/skins/vector/css/matrix-react-sdk/views/voip/VideoView.css b/src/skins/vector/css/matrix-react-sdk/views/voip/_VideoView.scss
similarity index 100%
rename from src/skins/vector/css/matrix-react-sdk/views/voip/VideoView.css
rename to src/skins/vector/css/matrix-react-sdk/views/voip/_VideoView.scss
diff --git a/src/skins/vector/css/themes/dark.scss b/src/skins/vector/css/themes/dark.scss
new file mode 100644
index 00000000..19ab2cde
--- /dev/null
+++ b/src/skins/vector/css/themes/dark.scss
@@ -0,0 +1,7 @@
+// typical text (dark-on-white in light skin)
+$primary-fg-color: #dddddd;
+$primary-bg-color: #2d2d2d;
+
+// button UI (white-on-green in light skin)
+
+@import "../_components"
\ No newline at end of file
diff --git a/src/skins/vector/css/themes/light.scss b/src/skins/vector/css/themes/light.scss
new file mode 100644
index 00000000..e0ad84f6
--- /dev/null
+++ b/src/skins/vector/css/themes/light.scss
@@ -0,0 +1,4 @@
+$primary-fg-color: #454545;
+$primary-bg-color: #ffffff;
+
+@import "../_components"
\ No newline at end of file
diff --git a/src/skins/vector/css/vector-web/fonts.css b/src/skins/vector/css/vector-web/_fonts.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/fonts.css
rename to src/skins/vector/css/vector-web/_fonts.scss
diff --git a/src/skins/vector/css/vector-web/structures/CompatibilityPage.css b/src/skins/vector/css/vector-web/structures/_CompatibilityPage.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/structures/CompatibilityPage.css
rename to src/skins/vector/css/vector-web/structures/_CompatibilityPage.scss
diff --git a/src/skins/vector/css/vector-web/structures/LeftPanel.css b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/structures/LeftPanel.css
rename to src/skins/vector/css/vector-web/structures/_LeftPanel.scss
diff --git a/src/skins/vector/css/vector-web/structures/RightPanel.css b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/structures/RightPanel.css
rename to src/skins/vector/css/vector-web/structures/_RightPanel.scss
diff --git a/src/skins/vector/css/vector-web/structures/RoomDirectory.css b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/structures/RoomDirectory.css
rename to src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
diff --git a/src/skins/vector/css/vector-web/structures/RoomSubList.css b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/structures/RoomSubList.css
rename to src/skins/vector/css/vector-web/structures/_RoomSubList.scss
diff --git a/src/skins/vector/css/vector-web/structures/ViewSource.css b/src/skins/vector/css/vector-web/structures/_ViewSource.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/structures/ViewSource.css
rename to src/skins/vector/css/vector-web/structures/_ViewSource.scss
diff --git a/src/skins/vector/css/vector-web/views/context_menus/MessageContextMenu.css b/src/skins/vector/css/vector-web/views/context_menus/_MessageContextMenu.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/context_menus/MessageContextMenu.css
rename to src/skins/vector/css/vector-web/views/context_menus/_MessageContextMenu.scss
diff --git a/src/skins/vector/css/vector-web/views/context_menus/NotificationStateContextMenu.css b/src/skins/vector/css/vector-web/views/context_menus/_NotificationStateContextMenu.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/context_menus/NotificationStateContextMenu.css
rename to src/skins/vector/css/vector-web/views/context_menus/_NotificationStateContextMenu.scss
diff --git a/src/skins/vector/css/vector-web/views/context_menus/RoomTagContextMenu.css b/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/context_menus/RoomTagContextMenu.css
rename to src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
diff --git a/src/skins/vector/css/vector-web/views/dialogs/ChangelogDialog.css b/src/skins/vector/css/vector-web/views/dialogs/_ChangelogDialog.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/dialogs/ChangelogDialog.css
rename to src/skins/vector/css/vector-web/views/dialogs/_ChangelogDialog.scss
diff --git a/src/skins/vector/css/vector-web/views/directory/NetworkDropdown.css b/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/directory/NetworkDropdown.css
rename to src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
diff --git a/src/skins/vector/css/vector-web/views/elements/ImageView.css b/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/elements/ImageView.css
rename to src/skins/vector/css/vector-web/views/elements/_ImageView.scss
diff --git a/src/skins/vector/css/vector-web/views/elements/Spinner.css b/src/skins/vector/css/vector-web/views/elements/_Spinner.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/elements/Spinner.css
rename to src/skins/vector/css/vector-web/views/elements/_Spinner.scss
diff --git a/src/skins/vector/css/vector-web/views/globals/GuestWarningBar.css b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/globals/GuestWarningBar.css
rename to src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
diff --git a/src/skins/vector/css/vector-web/views/globals/MatrixToolbar.css b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/globals/MatrixToolbar.css
rename to src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
diff --git a/src/skins/vector/css/vector-web/views/messages/MessageTimestamp.css b/src/skins/vector/css/vector-web/views/messages/_MessageTimestamp.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/messages/MessageTimestamp.css
rename to src/skins/vector/css/vector-web/views/messages/_MessageTimestamp.scss
diff --git a/src/skins/vector/css/vector-web/views/messages/SenderProfile.css b/src/skins/vector/css/vector-web/views/messages/_SenderProfile.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/messages/SenderProfile.css
rename to src/skins/vector/css/vector-web/views/messages/_SenderProfile.scss
diff --git a/src/skins/vector/css/vector-web/views/rooms/RoomDropTarget.css b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/rooms/RoomDropTarget.css
rename to src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
diff --git a/src/skins/vector/css/vector-web/views/rooms/RoomTooltip.css b/src/skins/vector/css/vector-web/views/rooms/_RoomTooltip.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/rooms/RoomTooltip.css
rename to src/skins/vector/css/vector-web/views/rooms/_RoomTooltip.scss
diff --git a/src/skins/vector/css/vector-web/views/rooms/SearchBar.css b/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/rooms/SearchBar.css
rename to src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
diff --git a/src/skins/vector/css/vector-web/views/settings/Notifications.css b/src/skins/vector/css/vector-web/views/settings/_Notifications.scss
similarity index 100%
rename from src/skins/vector/css/vector-web/views/settings/Notifications.css
rename to src/skins/vector/css/vector-web/views/settings/_Notifications.scss
diff --git a/src/vector/index.js b/src/vector/index.js
index 8231950b..96c6a971 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -30,7 +30,7 @@ require('babel-polyfill');
 
 // CSS requires: just putting them here for now as CSS is going to be
 // refactored "soon" anyway
-require('../../build/components.css');
+require('../../build/themes/light.css');
 require('gemini-scrollbar/gemini-scrollbar.css');
 require('gfm.css/gfm.css');
 require('highlight.js/styles/github.css');
diff --git a/webpack.config.js b/webpack.config.js
index 3500fedc..1c408b70 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -25,6 +25,7 @@ module.exports = {
             { test: /\.js$/, loader: "babel", include: path.resolve('./src') },
             // css-raw-loader loads CSS but doesn't try to treat url()s as require()s
             { test: /\.css$/, loader: ExtractTextPlugin.extract("css-raw-loader") },
+            { test: /\.scss$/, loaders: ["style-loader", "css-loader?sourceMap", "sass-loader?sourceMap"] },
         ],
         noParse: [
             // don't parse the languages within highlight.js. They cause stack

From c5fa84cd28e7e0dcd389d98fd307728e0e2d896e Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 28 Dec 2016 02:02:05 +0000
Subject: [PATCH 113/243] autogenerate the _components.scss index

---
 src/skins/vector/css/rethemendex.sh | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100755 src/skins/vector/css/rethemendex.sh

diff --git a/src/skins/vector/css/rethemendex.sh b/src/skins/vector/css/rethemendex.sh
new file mode 100755
index 00000000..27c47224
--- /dev/null
+++ b/src/skins/vector/css/rethemendex.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+echo "// autogenerated by rethemendex.sh" > _components.scss
+
+for i in `find */* -iname _\*.scss`;
+do
+    echo "@import \"`dirname $i`/`basename $i .scss`\";" >> _components.scss
+done

From 33f0eaada0b6348305ab86b4f6557ae344dc42c2 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 28 Dec 2016 02:02:23 +0000
Subject: [PATCH 114/243] autogen _components.css

---
 src/skins/vector/css/_components.scss | 72 +++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 src/skins/vector/css/_components.scss

diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss
new file mode 100644
index 00000000..1106f249
--- /dev/null
+++ b/src/skins/vector/css/_components.scss
@@ -0,0 +1,72 @@
+// autogenerated by rethemendex.sh
+@import "matrix-react-sdk/structures/_ContextualMenu";
+@import "matrix-react-sdk/structures/_CreateRoom";
+@import "matrix-react-sdk/structures/_FilePanel";
+@import "matrix-react-sdk/structures/_MatrixChat";
+@import "matrix-react-sdk/structures/_NotificationPanel";
+@import "matrix-react-sdk/structures/_RoomStatusBar";
+@import "matrix-react-sdk/structures/_RoomView";
+@import "matrix-react-sdk/structures/_SearchBox";
+@import "matrix-react-sdk/structures/_UploadBar";
+@import "matrix-react-sdk/structures/_UserSettings";
+@import "matrix-react-sdk/structures/login/_Login";
+@import "matrix-react-sdk/views/avatars/_BaseAvatar";
+@import "matrix-react-sdk/views/dialogs/_ChatInviteDialog";
+@import "matrix-react-sdk/views/dialogs/_EncryptedEventDialog";
+@import "matrix-react-sdk/views/dialogs/_SetDisplayNameDialog";
+@import "matrix-react-sdk/views/elements/_AddressSelector";
+@import "matrix-react-sdk/views/elements/_AddressTile";
+@import "matrix-react-sdk/views/elements/_DirectorySearchBox";
+@import "matrix-react-sdk/views/elements/_MemberEventListSummary";
+@import "matrix-react-sdk/views/elements/_ProgressBar";
+@import "matrix-react-sdk/views/elements/_RichText";
+@import "matrix-react-sdk/views/login/_ServerConfig";
+@import "matrix-react-sdk/views/messages/_MImageBody";
+@import "matrix-react-sdk/views/messages/_MNoticeBody";
+@import "matrix-react-sdk/views/messages/_MTextBody";
+@import "matrix-react-sdk/views/messages/_TextualEvent";
+@import "matrix-react-sdk/views/messages/_UnknownBody";
+@import "matrix-react-sdk/views/rooms/_Autocomplete";
+@import "matrix-react-sdk/views/rooms/_EntityTile";
+@import "matrix-react-sdk/views/rooms/_EventTile";
+@import "matrix-react-sdk/views/rooms/_LinkPreviewWidget";
+@import "matrix-react-sdk/views/rooms/_MemberDeviceInfo";
+@import "matrix-react-sdk/views/rooms/_MemberInfo";
+@import "matrix-react-sdk/views/rooms/_MemberList";
+@import "matrix-react-sdk/views/rooms/_MessageComposer";
+@import "matrix-react-sdk/views/rooms/_PresenceLabel";
+@import "matrix-react-sdk/views/rooms/_RoomHeader";
+@import "matrix-react-sdk/views/rooms/_RoomList";
+@import "matrix-react-sdk/views/rooms/_RoomPreviewBar";
+@import "matrix-react-sdk/views/rooms/_RoomSettings";
+@import "matrix-react-sdk/views/rooms/_RoomTile";
+@import "matrix-react-sdk/views/rooms/_SearchableEntityList";
+@import "matrix-react-sdk/views/rooms/_TabCompleteBar";
+@import "matrix-react-sdk/views/rooms/_TopUnreadMessagesBar";
+@import "matrix-react-sdk/views/settings/_DevicesPanel";
+@import "matrix-react-sdk/views/settings/_IntegrationsManager";
+@import "matrix-react-sdk/views/voip/_CallView";
+@import "matrix-react-sdk/views/voip/_IncomingCallbox";
+@import "matrix-react-sdk/views/voip/_VideoView";
+@import "vector-web/_fonts";
+@import "vector-web/structures/_CompatibilityPage";
+@import "vector-web/structures/_LeftPanel";
+@import "vector-web/structures/_RightPanel";
+@import "vector-web/structures/_RoomDirectory";
+@import "vector-web/structures/_RoomSubList";
+@import "vector-web/structures/_ViewSource";
+@import "vector-web/views/context_menus/_MessageContextMenu";
+@import "vector-web/views/context_menus/_NotificationStateContextMenu";
+@import "vector-web/views/context_menus/_RoomTagContextMenu";
+@import "vector-web/views/dialogs/_ChangelogDialog";
+@import "vector-web/views/directory/_NetworkDropdown";
+@import "vector-web/views/elements/_ImageView";
+@import "vector-web/views/elements/_Spinner";
+@import "vector-web/views/globals/_GuestWarningBar";
+@import "vector-web/views/globals/_MatrixToolbar";
+@import "vector-web/views/messages/_MessageTimestamp";
+@import "vector-web/views/messages/_SenderProfile";
+@import "vector-web/views/rooms/_RoomDropTarget";
+@import "vector-web/views/rooms/_RoomTooltip";
+@import "vector-web/views/rooms/_SearchBar";
+@import "vector-web/views/settings/_Notifications";

From c6beaa16318d005f0548f19f2dc956e17c60f1de Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 28 Dec 2016 04:04:43 +0000
Subject: [PATCH 115/243] initial stab at an official dark theme via the magic
 of SASS. SVGs are all broken, and some of the more exotic colours haven't
 been updated. There's been no attempt to use SASS to remove duplication from
 the CSS yet. no attempt to switch it at runtime yet.

---
 src/skins/vector/css/_common.scss             | 51 +++++++-------
 src/skins/vector/css/_components.scss         |  1 +
 .../structures/_ContextualMenu.scss           | 14 ++--
 .../structures/_CreateRoom.scss               |  4 +-
 .../structures/_FilePanel.scss                | 10 +--
 .../structures/_MatrixChat.scss               |  4 +-
 .../structures/_NotificationPanel.scss        |  7 +-
 .../structures/_RoomStatusBar.scss            | 16 ++---
 .../structures/_RoomView.scss                 | 24 +++----
 .../structures/_UploadBar.scss                |  6 +-
 .../structures/_UserSettings.scss             |  6 +-
 .../structures/login/_Login.scss              | 14 ++--
 .../views/avatars/_BaseAvatar.scss            |  2 +-
 .../views/dialogs/_ChatInviteDialog.scss      |  4 +-
 .../views/dialogs/_EncryptedEventDialog.scss  |  6 +-
 .../views/dialogs/_SetDisplayNameDialog.scss  |  6 +-
 .../views/elements/_AddressSelector.scss      | 16 ++---
 .../views/elements/_AddressTile.scss          |  8 +--
 .../views/elements/_DirectorySearchBox.scss   |  2 +-
 .../elements/_MemberEventListSummary.scss     |  2 +-
 .../views/elements/_RichText.scss             |  6 +-
 .../views/login/_ServerConfig.scss            |  2 +-
 .../views/messages/_MImageBody.scss           |  8 +--
 .../views/rooms/_Autocomplete.scss            | 12 ++--
 .../views/rooms/_EntityTile.scss              |  6 +-
 .../views/rooms/_EventTile.scss               | 34 +++++-----
 .../views/rooms/_MemberDeviceInfo.scss        | 14 ++--
 .../views/rooms/_MemberInfo.scss              |  4 +-
 .../views/rooms/_MemberList.scss              | 10 +--
 .../views/rooms/_MessageComposer.scss         | 10 +--
 .../views/rooms/_RoomHeader.scss              | 16 ++---
 .../views/rooms/_RoomPreviewBar.scss          |  4 +-
 .../views/rooms/_RoomSettings.scss            | 18 ++---
 .../views/rooms/_RoomTile.scss                | 14 ++--
 .../views/rooms/_SearchableEntityList.scss    | 10 +--
 .../views/rooms/_TabCompleteBar.scss          |  6 +-
 .../views/rooms/_TopUnreadMessagesBar.scss    |  2 +-
 .../views/settings/_IntegrationsManager.scss  |  2 +-
 .../views/voip/_CallView.scss                 |  4 +-
 .../views/voip/_IncomingCallbox.scss          |  4 +-
 src/skins/vector/css/rethemendex.sh           |  2 +-
 src/skins/vector/css/themes/_base.scss        | 68 +++++++++++++++++++
 src/skins/vector/css/themes/dark.scss         | 66 +++++++++++++++++-
 src/skins/vector/css/themes/light.scss        |  6 +-
 .../vector-web/structures/_RightPanel.scss    | 10 +--
 .../vector-web/structures/_RoomDirectory.scss |  6 +-
 .../vector-web/structures/_RoomSubList.scss   | 36 +++++-----
 .../context_menus/_RoomTagContextMenu.scss    |  2 +-
 .../views/directory/_NetworkDropdown.scss     |  6 +-
 .../vector-web/views/elements/_ImageView.scss |  8 +--
 .../views/globals/_GuestWarningBar.scss       |  6 +-
 .../views/globals/_MatrixToolbar.scss         |  6 +-
 .../views/rooms/_RoomDropTarget.scss          |  6 +-
 .../vector-web/views/rooms/_RoomTooltip.scss  | 12 ++--
 .../vector-web/views/rooms/_SearchBar.scss    | 14 ++--
 .../views/settings/_Notifications.scss        |  2 +-
 src/vector/index.js                           |  2 +-
 57 files changed, 388 insertions(+), 259 deletions(-)
 create mode 100644 src/skins/vector/css/themes/_base.scss

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index bb00bbd8..e81ea2fa 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -29,7 +29,8 @@ body {
        Arial here. */
     font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
     font-size: 15px;
-    color: #454545;
+    background-color: $primary-bg-color;
+    color: $primary-fg-color;
     border: 0px;
     margin: 0px;
     /* This should render the fonts the same accross browsers */
@@ -41,7 +42,7 @@ div.error {
 }
 
 h2 {
-    color: #454545;
+    color: $primary-fg-color;
     font-weight: 400;
     font-size: 18px;
     margin-top: 16px;
@@ -51,7 +52,7 @@ h2 {
 a:hover,
 a:link,
 a:visited {
-    color: #76cfa6;
+    color: $accent-color;
 }
 
 input[type=text].error, input[type=password].error {
@@ -59,7 +60,7 @@ input[type=text].error, input[type=password].error {
 }
 
 input[type=text]:focus, textarea:focus {
-    border: 1px solid #76CFA6;
+    border: 1px solid $accent-color;
     outline: none;
     box-shadow: none;
 }
@@ -148,8 +149,8 @@ textarea {
 }
 
 .mx_Dialog {
-    background-color: #fff;
-    color: #747474;
+    background-color: $primary-bg-color;
+    color: $light-fg-color;
     z-index: 4010;
     font-weight: 300;
     font-size: 15px;
@@ -190,7 +191,7 @@ textarea {
 .mx_Dialog_content {
     margin: 24px 58px 68px 0;
     font-size: 14px;
-    color: #4a4a4a;
+    color: $primary-fg-color;
     word-wrap: break-word;
 }
 
@@ -202,7 +203,7 @@ textarea {
     border: 0px;
     height: 36px;
     border-radius: 40px;
-    border: solid 1px #76cfa6;
+    border: solid 1px $accent-color;
     font-weight: 600;
     font-size: 14px;
     font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
@@ -212,26 +213,26 @@ textarea {
     padding-right: 1.5em;
     outline: none;
     cursor: pointer;
-    color: #76cfa6;
-    background-color: #fff;
+    color: $accent-color;
+    background-color: $primary-bg-color;
 
     /* align images in buttons (eg spinners) */
     vertical-align: middle;
 }
 
 .mx_Dialog button.mx_Dialog_primary, .mx_Dialog  input[type="submit"].mx_Dialog_primary {
-    color: #fff;
-    background-color: #76cfa6;
+    color: $accent-fg-color;
+    background-color: $accent-color;
 }
 
 .mx_Dialog button.danger, .mx_Dialog input[type="submit"].danger {
-    background-color: #ff0064;
-    border: solid 1px #ff0064;
+    background-color: $warning-color;
+    border: solid 1px $warning-color;
 }
 
 .mx_Dialog button:disabled, .mx_Dialog input[type="submit"]:disabled {
-    background-color: #777777;
-    border: solid 1px #777777;
+    background-color: $light-fg-color;
+    border: solid 1px $light-fg-color;
     opacity: 0.7;
 }
 
@@ -241,11 +242,11 @@ textarea {
     font-weight: bold;
     font-size: 22px;
     line-height: 1.4;
-    color: #454545;
+    color: $primary-fg-color;
 }
 
 .mx_Dialog_title.danger {
-    color: #ff0064;
+    color: $warning-color;
 }
 
 .mx_TextInputDialog_label {
@@ -256,10 +257,10 @@ textarea {
 .mx_TextInputDialog_input {
     font-size: 15px;
     border-radius: 3px;
-    border: 1px solid #f0f0f0;
+    border: 1px solid $input-border-color;
     padding: 9px;
-    color: #454545;
-    background-color: #fff;
+    color: $primary-fg-color;
+    background-color: $primary-bg-color;
 }
 
 .mx_emojione {
@@ -268,19 +269,19 @@ textarea {
 }
 
 ::-moz-selection {
-    background-color: #76CFA6;
+    background-color: $accent-color;
     color: white;
 }
 
 ::selection {
-    background-color: #76CFA6;
+    background-color: $accent-color;
     color: white;
 }
 
 /** green button with rounded corners */
 .mx_textButton {
-    color: #fff;
-    background-color: #76cfa6;
+    color: $accent-fg-color;
+    background-color: $accent-color;
     border-radius: 17px;
     text-align: center;
     padding-left: 1em;
diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss
index 1106f249..532e0a36 100644
--- a/src/skins/vector/css/_components.scss
+++ b/src/skins/vector/css/_components.scss
@@ -1,4 +1,5 @@
 // autogenerated by rethemendex.sh
+@import "_common";
 @import "matrix-react-sdk/structures/_ContextualMenu";
 @import "matrix-react-sdk/structures/_CreateRoom";
 @import "matrix-react-sdk/structures/_FilePanel";
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_ContextualMenu.scss b/src/skins/vector/css/matrix-react-sdk/structures/_ContextualMenu.scss
index d317363d..d3e73a9a 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_ContextualMenu.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_ContextualMenu.scss
@@ -30,10 +30,10 @@ limitations under the License.
 }
 
 .mx_ContextualMenu {
-    border: solid 1px rgba(187, 187, 187, 0.5);
+    border: solid 1px $menu-border-color;
     border-radius: 4px;
-    background-color: #f6f6f6;
-    color: #4a4a4a;
+    background-color: $menu-bg-color;
+    color: $primary-fg-color;
     position: absolute;
     padding: 6px;
 	font-size: 14px;
@@ -51,7 +51,7 @@ limitations under the License.
     width: 0;
     height: 0;
     border-top: 8px solid transparent;
-    border-left: 8px solid rgba(187, 187, 187, 0.5);
+    border-left: 8px solid $menu-border-color;
     border-bottom: 8px solid transparent;
 }
 
@@ -60,7 +60,7 @@ limitations under the License.
     width: 0;
     height: 0;
     border-top: 7px solid transparent;
-    border-left: 7px solid #f6f6f6;
+    border-left: 7px solid $menu-bg-color;
     border-bottom: 7px solid transparent;
     position:absolute;
     top: -7px;
@@ -78,7 +78,7 @@ limitations under the License.
     width: 0;
     height: 0;
     border-top: 8px solid transparent;
-    border-right: 8px solid rgba(187, 187, 187, 0.5);
+    border-right: 8px solid $menu-border-color;
     border-bottom: 8px solid transparent;
 }
 
@@ -87,7 +87,7 @@ limitations under the License.
     width: 0;
     height: 0;
     border-top: 7px solid transparent;
-    border-right: 7px solid #f6f6f6;
+    border-right: 7px solid $menu-bg-color;
     border-bottom: 7px solid transparent;
     position:absolute;
     top: -7px;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_CreateRoom.scss b/src/skins/vector/css/matrix-react-sdk/structures/_CreateRoom.scss
index 88804409..2be19352 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_CreateRoom.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_CreateRoom.scss
@@ -18,13 +18,13 @@ limitations under the License.
     width: 960px;
     margin-left: auto;
     margin-right: auto;
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_CreateRoom input,
 .mx_CreateRoom textarea  {
     border-radius: 3px;
-    border: 1px solid #c7c7c7;
+    border: 1px solid $strong-input-border-color;
     font-weight: 300;
     font-size: 13px;
     padding: 9px;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
index fca53b1d..2f4a00ad 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
@@ -58,12 +58,12 @@ limitations under the License.
 .mx_FilePanel .mx_EventTile .mx_MImageBody_download {
     display: flex;
     font-size: 14px;
-    color: #acacac;
+    color: $event-timestamp-color;
 }
 
 .mx_FilePanel .mx_EventTile .mx_MImageBody_downloadLink {
     flex: 1 1 auto;
-    color: #747474;
+    color: $light-fg-color;
 }
 
 .mx_FilePanel .mx_EventTile .mx_MImageBody_size {
@@ -90,7 +90,7 @@ limitations under the License.
     padding: 0px;
     font-size: 11px;
     opacity: 1.0;
-    color: #acacac;
+    color: $event-timestamp-color;
 }
 
 .mx_FilePanel .mx_EventTile .mx_MessageTimestamp {
@@ -100,7 +100,7 @@ limitations under the License.
     position: initial;
     font-size: 11px;
     opacity: 1.0;
-    color: #acacac;
+    color: $event-timestamp-color;
 }
 
 /* Overrides for the wrappers around the body tile */
@@ -111,7 +111,7 @@ limitations under the License.
 }
 
 .mx_FilePanel .mx_EventTile:hover .mx_EventTile_line {
-    background-color: #fff;
+    background-color: $primary-bg-color;
 }
 
 .mx_FilePanel .mx_EventTile_selected .mx_EventTile_line {
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
index f1cc7d4a..5587a609 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
@@ -91,7 +91,7 @@ limitations under the License.
     -webkit-order: 1;
     order: 1;
 
-    background-color: #eaf5f0;
+    background-color: $secondary-accent-color;
 
     -webkit-flex: 0 0 235px;
     flex: 0 0 235px;
@@ -111,7 +111,7 @@ limitations under the License.
 
     padding-left: 20px;
     padding-right: 22px;
-    background-color: #fff;
+    background-color: $primary-bg-color;
 
     -webkit-flex: 1;
     flex: 1;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
index 83b0a033..06dd92f3 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
@@ -51,7 +51,7 @@ limitations under the License.
 }
 
 .mx_NotificationPanel .mx_EventTile_roomName a {
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_NotificationPanel .mx_EventTile_avatar {
@@ -61,8 +61,7 @@ limitations under the License.
 
 .mx_NotificationPanel .mx_EventTile .mx_SenderProfile, 
 .mx_NotificationPanel .mx_EventTile .mx_MessageTimestamp {
-    color: #000;
-    opacity: 0.3;
+    color: $primary-fg-color;
     font-size: 12px;
     display: inline;
     padding-left: 0px;
@@ -94,7 +93,7 @@ limitations under the License.
 }
 
 .mx_NotificationPanel .mx_EventTile:hover .mx_EventTile_line {
-    background-color: #fff;
+    background-color: $primary-bg-color;
 }
 
 .mx_NotificationPanel .mx_EventTile_selected .mx_EventTile_line {
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
index ef0b69c4..d0ac5a60 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
@@ -36,7 +36,7 @@ limitations under the License.
 }
 
 .mx_RoomStatusBar_placeholderIndicator span {
-    color: #4a4a4a;
+    color: $primary-fg-color;
     opacity: 0.5;
     position: relative;
     top: -4px;
@@ -76,7 +76,7 @@ limitations under the License.
 
 .mx_RoomStatusBar_unreadMessagesBar {
     padding-top: 10px;
-    color: #ff0064;
+    color: $warning-color;
     cursor: pointer;
 }
 
@@ -93,29 +93,29 @@ limitations under the License.
 }
 
 .mx_RoomStatusBar_connectionLostBar_title {
-    color: #ff0064;
+    color: $warning-color;
 }
 
 .mx_RoomStatusBar_connectionLostBar_desc {
-    color: #454545;
+    color: $primary-fg-color;
     font-size: 13px;
     opacity: 0.5;
 }
 
 .mx_RoomStatusBar_resend_link {
-    color: #454545 ! important;
+    color: $primary-fg-color ! important;
     text-decoration: underline ! important;
     cursor: pointer;
 }
 
 .mx_RoomStatusBar_tabCompleteBar {
     padding-top: 10px;
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_RoomStatusBar_typingBar {
     padding-top: 10px;
-    color: #4a4a4a;
+    color: $primary-fg-color;
     opacity: 0.5;
     overflow-y: hidden;
     display: block;
@@ -135,7 +135,7 @@ limitations under the License.
 .mx_RoomStatusBar_tabCompleteEol {
     flex: 0 0 auto;
     -webkit-flex: 0 0 auto;
-    color: #76CFA6;
+    color: $accent-color;
 }
 
 .mx_RoomStatusBar_tabCompleteEol object {
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
index c3f7ceed..182d690c 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
@@ -89,7 +89,7 @@ limitations under the License.
     margin: auto;
 
     overflow: auto;
-    border-bottom: 1px solid #e5e5e5;
+    border-bottom: 1px solid $primary-hairline-color;
 
     -webkit-flex: 0 0 auto;
     flex: 0 0 auto;
@@ -158,7 +158,7 @@ limitations under the License.
     margin-bottom: 8px;
     margin-left: 63px;
     padding-bottom: 6px;
-    border-bottom: 1px solid #e5e5e5;
+    border-bottom: 1px solid $primary-hairline-color;
 }
 
 .mx_RoomView_invitePrompt {
@@ -185,8 +185,8 @@ li.mx_RoomView_myReadMarker_container {
 }
 
 hr.mx_RoomView_myReadMarker {
-    border-top: solid 1px #76cfa6;
-    border-bottom: solid 1px #76cfa6;
+    border-top: solid 1px $accent-color;
+    border-bottom: solid 1px $accent-color;
     margin-top: 0px;
     position: relative;
     top: 5px;
@@ -212,16 +212,16 @@ hr.mx_RoomView_myReadMarker {
 
 .mx_RoomView_statusAreaBox_line {
     margin-left: 65px;
-    border-top: 1px solid #e5e5e5;
+    border-top: 1px solid $primary-hairline-color;
     height: 1px;
 }
 
 .mx_RoomView_callStatusBar .mx_UploadBar_uploadProgressInner {
-    background-color: #fff;
+    background-color: $primary-bg-color;
 }
 
 .mx_RoomView_callStatusBar .mx_UploadBar_uploadFilename {
-    color: #fff;
+    color: $accent-fg-color;
     opacity: 1.0;
 }
 
@@ -234,8 +234,8 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView_inCall .mx_RoomView_statusAreaBox {
-    background-color: #76CFA6;
-    color: #fff;
+    background-color: $accent-color;
+    color: $accent-fg-color;
     position: relative;
 }
 
@@ -272,13 +272,13 @@ hr.mx_RoomView_myReadMarker {
 .mx_RoomView_ongoingConfCallNotification {
     width: 100%;
     text-align: center;
-    background-color: #ff0064;
-    color: #fff;
+    background-color: $warning-color;
+    color: $accent-fg-color;
     font-weight: bold;
     padding: 6px 0;
     cursor: pointer;
 }
 
 .mx_RoomView_ongoingConfCallNotification a {
-    color: #fff ! important;
+    color: $accent-fg-color ! important;
 }
\ No newline at end of file
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UploadBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UploadBar.scss
index b489e132..d76c8166 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_UploadBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_UploadBar.scss
@@ -26,7 +26,7 @@ limitations under the License.
 }
 
 .mx_UploadBar_uploadProgressInner {
-    background-color: #76cfa6;
+    background-color: $accent-color;
     height: 5px;
 }
 
@@ -34,7 +34,7 @@ limitations under the License.
     margin-top: 5px;
     margin-left: 65px;
     opacity: 0.5;
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_UploadBar_uploadIcon {
@@ -57,5 +57,5 @@ limitations under the License.
     float: right;
     margin-top: 5px;
     margin-right: 30px;
-    color: #76cfa6;
+    color: $accent-color;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
index 427369a5..6ba1002b 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
@@ -84,8 +84,8 @@ limitations under the License.
     border-radius: 36px;
     font-weight: 400;
     font-size: 16px;
-    color: #fff;
-    background-color: #76cfa6;
+    color: $accent-fg-color;
+    background-color: $accent-color;
     width: auto;
     margin: auto;
     padding: 7px;
@@ -95,7 +95,7 @@ limitations under the License.
 }
 
 .mx_UserSettings_button.danger {
-    background-color: #ff0064;
+    background-color: $warning-color;
 }
 
 .mx_UserSettings_section {
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 0f610b25..5f4164e8 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -32,7 +32,7 @@ limitations under the License.
 }
 
 .mx_Login h2 {
-    color: #4a4a4a;
+    color: $primary-fg-color;
     font-weight: 300;
     margin-top: 32px;
     margin-bottom: 20px;
@@ -53,7 +53,7 @@ limitations under the License.
 .mx_Login_field {
     width: 100%;
     border-radius: 3px;
-    border: 1px solid #c7c7c7;
+    border: 1px solid $strong-input-border-color;
     font-weight: 300;
     font-size: 13px;
     padding: 9px;
@@ -75,9 +75,9 @@ limitations under the License.
     border-radius: 40px;
     height: 40px;
     border: 0px;
-    background-color: #76cfa6;
+    background-color: $accent-color;
     font-size: 15px;
-    color: #fff;
+    color: $accent-fg-color;
 }
 
 .mx_Login_label {
@@ -99,7 +99,7 @@ limitations under the License.
 }
 
 .mx_Login_create:link {
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_Login_links {
@@ -112,7 +112,7 @@ limitations under the License.
 }
 
 .mx_Login_links a:link {
-   color: #4a4a4a;
+   color: $primary-fg-color;
 }
 
 .mx_Login_prompt {
@@ -127,7 +127,7 @@ limitations under the License.
 }
 
 .mx_Login_forgot:link {
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_Login_loader {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
index 901a2959..d481e5c1 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
@@ -21,7 +21,7 @@ limitations under the License.
 .mx_BaseAvatar_initial {
     position: absolute;
     z-index: 1;
-    color: #fff;
+    color: $avatar-initial-color;
     text-align: center;
     speak: none;
     pointer-events: none;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
index aa1dced8..6bf9adce 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
@@ -36,7 +36,7 @@ limitations under the License.
 
 .mx_ChatInviteDialog_inputContainer {
     border-radius: 3px;
-    border: solid 1px #f0f0f0;
+    border: solid 1px $input-border-color;
     line-height: 36px;
     padding-left: 4px;
     padding-right: 4px;
@@ -49,7 +49,7 @@ limitations under the License.
 
 .mx_ChatInviteDialog_error {
     position: absolute;
-    color: #ff0064;
+    color: $warning-color;
     line-height: 36px;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
index 5e72d7f8..cbc0195c 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
@@ -24,7 +24,7 @@ limitations under the License.
     border: 0px;
     height: 36px;
     border-radius: 40px;
-    border: solid 1px #76cfa6;
+    border: solid 1px $accent-color;
     font-weight: 600;
     font-size: 14px;
     font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
@@ -34,6 +34,6 @@ limitations under the License.
     padding-right: 1.5em;
     outline: none;
     cursor: pointer;
-    color: #76cfa6;
-    background-color: #fff;
+    color: $accent-color;
+    background-color: $primary-bg-color;
 }
\ No newline at end of file
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss
index 68409a80..2f0750ad 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss
@@ -16,9 +16,9 @@ limitations under the License.
 
 .mx_SetDisplayNameDialog_input {
     border-radius: 3px;
-    border: 1px solid #f0f0f0;
+    border: 1px solid $input-border-color;
     padding: 9px;
-    color: #454545;
-    background-color: #fff;
+    color: $primary-fg-color;
+    background-color: $primary-bg-color;
     font-size: 15px;
 }
\ No newline at end of file
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressSelector.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressSelector.scss
index aa0f8c6a..9871a7e8 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressSelector.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressSelector.scss
@@ -16,13 +16,13 @@ limitations under the License.
 
 .mx_AddressSelector {
     position: absolute;
-    background-color: #fff;
+    background-color: $primary-bg-color;
     width: 485px;
     max-height: 116px;
     overflow-y: auto;
 	border-radius: 3px;
-	background-color: #fff;
-	border: solid 1px #76cfa6;
+	background-color: $primary-bg-color;
+	border: solid 1px $accent-color;
     cursor: pointer;
 }
 
@@ -31,15 +31,15 @@ limitations under the License.
 }
 
 .mx_AddressSelector_addressListElement .mx_AddressTile {
-    background-color: #fff;
-    border: solid 1px #fff;
+    background-color: $primary-bg-color;
+    border: solid 1px $primary-bg-color;
 }
 
 .mx_AddressSelector_addressListElement.mx_AddressSelector_selected {
-     background-color: #eaf5f0; /* selected colour */
+    background-color: $selected-color;
 }
 
 .mx_AddressSelector_addressListElement.mx_AddressSelector_selected .mx_AddressTile {
-    background-color: #eaf5f0; /* selected colour */
-    border: solid 1px #eaf5f0; /* selected colour */
+    background-color: $selected-color;
+    border: solid 1px $selected-color;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
index 76c0e603..59c0b68d 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
@@ -18,9 +18,9 @@ limitations under the License.
     display: inline-block;
     border-radius: 3px;
     background-color: rgba(74, 73, 74, 0.1);
-    border: solid 1px #f0f0f0;
+    border: solid 1px $input-border-color;
     line-height: 26px;
-    color: #454545;
+    color: $primary-fg-color;
     font-size: 14px;
     font-weight: normal;
     margin-right: 4px;
@@ -28,8 +28,8 @@ limitations under the License.
 
 .mx_AddressTile.mx_AddressTile_error {
     background-color: rgba(255, 0, 100, 0.1);
-    color: #ff0064;
-    border-color: #ff0064;
+    color: $warning-color;
+    border-color: $warning-color;
 }
 
 .mx_AddressTile_network {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
index 3a0922bc..dd953ab9 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
@@ -17,7 +17,7 @@ limitations under the License.
 .mx_DirectorySearchBox {
     position: relative;
     border-radius: 3px;
-    border: 1px solid #c7c7c7;
+    border: 1px solid $strong-input-border-color;
 }
 
 .mx_DirectorySearchBox_container {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
index b8197805..7d1b059b 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
@@ -31,6 +31,6 @@ limitations under the License.
 }
 
 .mx_MemberEventListSummary_toggle {
-    color:#76cfa6;
+    color:$accent-color;
     cursor:pointer;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
index f0b3c046..72a4c0b7 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
@@ -1,14 +1,14 @@
 .mx_UserPill {
     color: white;
-    background-color: #76cfa6;
+    background-color: $accent-color;
     padding: 2px 8px;
     border-radius: 16px;
 }
 
 .mx_RoomPill {
     background-color: white;
-    color: #76cfa6;
-    border: 1px solid #76cfa6;
+    color: $accent-color;
+    border: 1px solid $accent-color;
     padding: 2px 8px;
     border-radius: 16px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/login/_ServerConfig.scss b/src/skins/vector/css/matrix-react-sdk/views/login/_ServerConfig.scss
index 75cd4170..1ad195de 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/login/_ServerConfig.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/login/_ServerConfig.scss
@@ -27,5 +27,5 @@ limitations under the License.
     opacity: 0.8;
     font-size: 13px;
     font-weight: 300;
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
\ No newline at end of file
diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss b/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss
index 003ef103..83ae0616 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss
@@ -22,18 +22,18 @@ limitations under the License.
 .mx_MImageBody_thumbnail {
     max-width: 100%;
 /*
-    background-color: #fff;
-    border: 2px solid #fff;
+    background-color: $primary-bg-color;
+    border: 2px solid $primary-bg-color;
     border-radius: 1px;
 */
 }
 
 .mx_MImageBody_download {
-    color: #76cfa6;
+    color: $accent-color;
 }
 
 .mx_MImageBody_download a {
-    color: #76cfa6;
+    color: $accent-color;
     text-decoration: none;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
index 6d611b5e..9265d4dc 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
@@ -3,7 +3,7 @@
     bottom: 0;
     z-index: 1000;
     width: 100%;
-    border: 1px solid #e5e5e5;
+    border: 1px solid $primary-hairline-color;
     background: white;
     border-bottom: none;
     border-radius: 4px 4px 0 0;
@@ -12,7 +12,7 @@
 }
 
 .mx_Autocomplete_ProviderSection {
-    border-bottom: 1px solid #e5e5e5;
+    border-bottom: 1px solid $primary-hairline-color;
 }
 
 .mx_Autocomplete_Completion_container_pill {
@@ -28,7 +28,7 @@
     user-select: none;
     cursor: pointer;
     align-items: center;
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_Autocomplete_Completion_block * {
@@ -42,7 +42,7 @@
     user-select: none;
     cursor: pointer;
     align-items: center;
-    color: #4a4a4a;
+    color: $primary-fg-color;
 }
 
 .mx_Autocomplete_Completion_pill * {
@@ -57,13 +57,13 @@
 }
 
 .mx_Autocomplete_Completion.selected {
-    background: #f6f6f6;
+    background: $menu-bg-color;
     outline: none;
 }
 
 .mx_Autocomplete_provider_name {
     margin: 12px;
-    color: #454545;
+    color: $primary-fg-color;
     font-weight: 400;
     opacity: 0.4;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss
index e52ece77..2511f07d 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss
@@ -17,7 +17,7 @@ limitations under the License.
 .mx_EntityTile {
     display: table-row;
     position: relative;
-    color: #454545;
+    color: $primary-fg-color;
     cursor: pointer;
 }
 
@@ -77,12 +77,12 @@ limitations under the License.
 
 .mx_EntityTile_ellipsis .mx_EntityTile_name {
     font-style: italic;
-    font-color: #454545;
+    font-color: $primary-fg-color;
 }
 
 .mx_EntityTile_invitePlaceholder .mx_EntityTile_name {
     font-style: italic;
-    font-color: #454545;
+    font-color: $primary-fg-color;
 }
 
 .mx_EntityTile_unavailable .mx_EntityTile_avatar,
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
index fd3f486b..a6b10e24 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
@@ -44,7 +44,7 @@ limitations under the License.
 }
 
 .mx_EventTile .mx_SenderProfile {
-    color: #454545;
+    color: $primary-fg-color;
     opacity: 0.5;
     font-size: 14px;
     display: block; /* anti-zalgo, with overflow hidden */
@@ -61,7 +61,7 @@ limitations under the License.
     display: block;
     visibility: hidden;
     white-space: nowrap;
-    color: #acacac;
+    color: $event-timestamp-color;
     font-size: 11px;
     left: 8px;
     position: absolute;
@@ -93,20 +93,20 @@ limitations under the License.
  * TODO: ultimately we probably want some transition on here.
  */
 .mx_EventTile_selected .mx_EventTile_line {
-    border-left: #76cfa6 5px solid;
+    border-left: $accent-color 5px solid;
     padding-left: 60px;
-    background-color: #f7f7f7;
+    background-color: $event-selected-color;
 }
 
 .mx_EventTile:hover .mx_EventTile_line,
 .mx_EventTile.menu .mx_EventTile_line
 {
-    background-color: #f7f7f7;
+    background-color: $event-selected-color;
 }
 
 .mx_EventTile_searchHighlight {
-    background-color: #76cfa6;
-    color: #fff;
+    background-color: $accent-color;
+    color: $accent-fg-color;
     border-radius: 5px;
     padding-left: 2px;
     padding-right: 2px;
@@ -114,26 +114,26 @@ limitations under the License.
 }
 
 .mx_EventTile_searchHighlight a {
-    background-color: #76cfa6;
-    color: #fff;
+    background-color: $accent-color;
+    color: $accent-fg-color;
 }
 
 .mx_EventTile_encrypting {
-    color: #abddbc ! important;
+    color: $event-encrypting-color ! important;
 }
 
 .mx_EventTile_sending {
-    color: #ddd;
+    color: $event-sending-color;
 }
 
 .mx_EventTile_notSent {
-    color: #f44;
+    color: $event-notsent-color;
 }
 
 .mx_EventTile_highlight,
 .mx_EventTile_highlight .markdown-body
  {
-    color: #FF0064;
+    color: $warning-color;
 }
 
 .mx_EventTile_contextual {
@@ -204,7 +204,7 @@ limitations under the License.
 }
 
 .mx_EventTile_readAvatarRemainder {
-    color: #acacac;
+    color: $event-timestamp-color;
     font-size: 11px;
     position: absolute;
 }
@@ -244,10 +244,10 @@ limitations under the License.
 }
 
 .mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_line {
-    border-left: #76cfa5 5px solid;
+    border-left: $e2e-verified-color 5px solid;
 }
 .mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_line {
-    border-left: #e8bf37 5px solid;
+    border-left: $e2e-unverified-color 5px solid;
 }
 
 .mx_EventTile:hover.mx_EventTile_verified .mx_MessageTimestamp,
@@ -297,7 +297,7 @@ limitations under the License.
 }
 
 .mx_EventTile_content .markdown-body a {
-    color: #76cfa6;
+    color: $accent-color;
 }
 
 .mx_EventTile_content .markdown-body .hljs {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
index 53379ac4..f1584d4e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
@@ -20,8 +20,8 @@ limitations under the License.
 
 
 .mx_MemberDeviceInfo_textButton {
-    color: #fff;
-    background-color: #76cfa6;
+    color: $accent-fg-color;
+    background-color: $accent-color;
     border-radius: 17px;
     text-align: center;
     padding-left: 1em;
@@ -50,13 +50,13 @@ limitations under the License.
 }
 
 /* "Unblacklist" is too long for a regular button: make it wider and
-   reduce the padding. */  
+   reduce the padding. */
 .mx_EncryptedEventDialog .mx_MemberDeviceInfo_blacklist,
 .mx_EncryptedEventDialog .mx_MemberDeviceInfo_unblacklist {
     width: 8em;
     padding-left: 1em;
     padding-right: 1em;
-}    
+}
 
 .mx_MemberDeviceInfo div.mx_MemberDeviceInfo_verified,
 .mx_MemberDeviceInfo div.mx_MemberDeviceInfo_unverified,
@@ -66,13 +66,13 @@ limitations under the License.
 }
 
 .mx_MemberDeviceInfo div.mx_MemberDeviceInfo_verified {
-    color: #76cfa5;
+    color: $e2e-verified-color;
 }
 
 .mx_MemberDeviceInfo div.mx_MemberDeviceInfo_unverified {
-    color: #e8bf37;
+    color: $e2e-unverified-color;
 }
 
 .mx_MemberDeviceInfo div.mx_MemberDeviceInfo_blacklisted {
-    color: #ba6363;
+    color: $e2e-warning-color;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
index 40b1524c..3b4b653e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
@@ -72,7 +72,7 @@ limitations under the License.
     font-color: #999999;
     font-size: 13px;
     position: relative;
-    background-color: #fff;
+    background-color: $primary-bg-color;
 }
 
 .mx_MemberInfo_buttons {
@@ -82,7 +82,7 @@ limitations under the License.
 .mx_MemberInfo_field {
     cursor: pointer;
     font-size: 13px;
-    color: #76cfa6;
+    color: $accent-color;
     margin-left: 8px;
     line-height: 23px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
index 7d383606..3c7e3ec5 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
@@ -55,10 +55,10 @@ limitations under the License.
 .mx_MemberList_query {
     font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
     border-radius: 3px;
-    border: 1px solid #f0f0f0;
+    border: 1px solid $input-border-color;
     padding: 9px;
-    color: #454545;
-    background-color: #fff;
+    color: $primary-fg-color;
+    background-color: $primary-bg-color;
     margin-left: 3px;
     font-size: 14px;
     margin-bottom: 8px;
@@ -66,13 +66,13 @@ limitations under the License.
 }
 
 .mx_MemberList_query::-moz-placeholder {
-    color: #454545;
+    color: $primary-fg-color;
     opacity: 0.5;
     font-size: 14px;
 }
 
 .mx_MemberList_query::-webkit-input-placeholder {
-    color: #454545;
+    color: $primary-fg-color;
     opacity: 0.5;
     font-size: 14px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
index 842f8db6..e5ffd220 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
@@ -18,7 +18,7 @@ limitations under the License.
     max-width: 960px;
     vertical-align: middle;
     margin: auto;
-    border-top: 1px solid #e5e5e5;
+    border-top: 1px solid $primary-hairline-color;
     position: relative;
 }
 
@@ -108,8 +108,8 @@ limitations under the License.
     -webkit-box-shadow: none;
     -moz-box-shadow: none;
     box-shadow: none;
-    color: #454545;
-    background-color: #fff;
+    color: $primary-fg-color;
+    background-color: $primary-bg-color;
     font-size: 14px;
     max-height: 120px;
     overflow: auto;
@@ -120,11 +120,11 @@ limitations under the License.
 /* hack for FF as vertical alignment of custom placeholder text is broken */
 .mx_MessageComposer_input textarea::-moz-placeholder {
     line-height: 100%;
-    color: #76cfa6;
+    color: $accent-color;
     opacity: 1.0;
 }
 .mx_MessageComposer_input textarea::-webkit-input-placeholder {
-    color: #76cfa6;
+    color: $accent-color;
 }
 
 .mx_MessageComposer_upload,
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
index 056fa879..a26f12ee 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
@@ -63,10 +63,10 @@ limitations under the License.
 
 .mx_RoomHeader_textButton {
     height: 36px;
-    background-color: #76cfa6;
+    background-color: $accent-color;
     border-radius: 36px;
     margin-right: 8px;
-    color: #fff;
+    color: $accent-fg-color;
     line-height: 34px;
     margin-top: -2px;
     text-align: center;
@@ -102,7 +102,7 @@ limitations under the License.
 
 .mx_RoomHeader_rightRow {
     margin-top: 4px;
-    background-color: #fff;
+    background-color: $primary-bg-color;
     display: flex;
     align-items: center;
     -webkit-box-ordinal-group: 3;
@@ -120,7 +120,7 @@ limitations under the License.
 
 .mx_RoomHeader_simpleHeader {
     line-height: 70px;
-    color: #454545;
+    color: $primary-fg-color;
     font-size: 22px;
     font-weight: bold;
     overflow: hidden;
@@ -138,7 +138,7 @@ limitations under the License.
     width: 100%;
     height: 31px;
     overflow: hidden;
-    color: #454545;
+    color: $primary-fg-color;
     font-weight: bold;
     font-size: 22px;
     padding-left: 19px;
@@ -174,7 +174,7 @@ limitations under the License.
 }
 
 .mx_RoomHeader_name:hover div:not(.mx_RoomHeader_editable) {
-    color: #76cfa6;
+    color: $accent-color;
 }
 
 .mx_RoomHeader_placeholder {
@@ -182,13 +182,13 @@ limitations under the License.
 }
 
 .mx_RoomHeader_editable {
-    border-bottom: 1px solid #c7c7c7 ! important;
+    border-bottom: 1px solid $strong-input-border-color ! important;
     min-width: 150px;
     cursor: text;
 }
 
 .mx_RoomHeader_editable:focus {
-    border-bottom: 1px solid #76CFA6 ! important;
+    border-bottom: 1px solid $accent-color ! important;
     outline: none;
     box-shadow: none;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
index 286a39f7..6b71f96d 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
@@ -38,11 +38,11 @@ limitations under the License.
 }
 
 .mx_RoomPreviewBar_invite_text {
-    color: #454545;
+    color: $primary-fg-color;
 }
 
 .mx_RoomPreviewBar_join_text {
-    color: #ff0064;
+    color: $warning-color;
 }
 
 .mx_RoomPreviewBar_preview_text {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
index 6a3b1ac8..132c9792 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
@@ -24,10 +24,10 @@ limitations under the License.
 .mx_RoomSettings_integrationsButton_error {
     position: relative;
     height: 36px;
-    background-color: #76cfa6;
+    background-color: $accent-color;
     border-radius: 36px;
     margin-right: 8px;
-    color: #fff;
+    color: $accent-fg-color;
     line-height: 34px;
     text-align: center;
     float: right;
@@ -47,8 +47,8 @@ limitations under the License.
     font-size: 10pt;
     line-height: 1.5em;
     border-radius: 5px;
-    background-color: #000;
-    color: #fff;
+    background-color: $accent-color;
+    color: $accent-fg-color;
 }
 
 .mx_RoomSettings_e2eIcon {
@@ -174,7 +174,7 @@ limitations under the License.
 }
 
 .mx_RoomSettings_warning {
-    color: #ff0064;
+    color: $warning-color;
     font-weight: bold;
     margin-top: 8px;
     margin-bottom: 8px;
@@ -182,13 +182,13 @@ limitations under the License.
 
 .mx_RoomSettings_editable {
     border: 0px;
-    border-bottom: 1px solid #c7c7c7;
+    border-bottom: 1px solid $strong-input-border-color;
     padding: 0px;
     min-width: 240px;
 }
 
 .mx_RoomSettings_editable:focus {
-    border-bottom: 1px solid #76CFA6;
+    border-bottom: 1px solid $accent-color;
     outline: none;
     box-shadow: none;
 }
@@ -220,8 +220,8 @@ limitations under the License.
     border-radius: 36px;
     font-weight: 400;
     font-size: 15px;
-    color: #fff;
-    background-color: #76cfa6;
+    color: $accent-fg-color;
+    background-color: $accent-color;
     width: auto;
     margin: auto;
     padding: 6px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
index 2822d82e..22364043 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
@@ -78,7 +78,7 @@ limitations under the License.
     position: absolute;
     content: "";
     border-radius: 40px;
-    background: #4A4A4A;
+    background: $primary-fg-color;
     bottom: 0;
     width: 24px;
     height: 24px;
@@ -103,7 +103,7 @@ limitations under the License.
     padding-right: 6px;
     padding-top: 2px;
     padding-bottom: 3px;
-    color: rgba(69, 69, 69, 0.8);
+    color: $roomtile-name-color;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
@@ -142,7 +142,7 @@ limitations under the License.
     width: 0;
     height: 0;
     margin-left: 5px;
-    border-top: 5px solid #ff0064;
+    border-top: 5px solid $warning-color;
     border-right: 7px solid transparent;
 }
 
@@ -154,7 +154,7 @@ limitations under the License.
     right: 8px; /*gutter */
     top: 9px;
     border-radius: 8px;
-    color: #fff;
+    color: $accent-fg-color;
     font-weight: 600;
     font-size: 10px;
     text-align: center;
@@ -175,11 +175,11 @@ limitations under the License.
 }
 
 .mx_RoomTile_unreadNotify .mx_RoomTile_badge {
-    background-color: #76cfa6;
+    background-color: $accent-color;
 }
 
 .mx_RoomTile_highlight .mx_RoomTile_badge {
-    background-color: #ff0064;
+    background-color: $warning-color;
 }
 
 .mx_RoomTile_unread, .mx_RoomTile_highlight {
@@ -187,7 +187,7 @@ limitations under the License.
 }
 
 .mx_RoomTile_selected {
-    background-color: rgba(255, 255, 255, 0.8);
+    background-color: $roomtile-selected-bg-color;
 }
 
 .mx_RoomTile .mx_RoomTile_name.mx_RoomTile_badgeShown {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
index 76d9e216..9a24868d 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
@@ -25,10 +25,10 @@ limitations under the License.
 .mx_SearchableEntityList_query {
     font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
     border-radius: 3px;
-    border: 1px solid #f0f0f0;
+    border: 1px solid $input-border-color;
     padding: 9px;
-    color: #454545;
-    background-color: #fff;
+    color: $primary-fg-color;
+    background-color: $primary-bg-color;
     margin-left: 3px;
     font-size: 15px;
     margin-bottom: 8px;
@@ -36,13 +36,13 @@ limitations under the License.
 }
 
 .mx_SearchableEntityList_query::-moz-placeholder {
-    color: #454545;
+    color: $primary-fg-color;
     opacity: 0.5;
     font-size: 12px;
 }
 
 .mx_SearchableEntityList_query::-webkit-input-placeholder {
-    color: #454545;
+    color: $primary-fg-color;
     opacity: 0.5;
     font-size: 12px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_TabCompleteBar.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_TabCompleteBar.scss
index 1f8a3450..5dcbd21a 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_TabCompleteBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_TabCompleteBar.scss
@@ -27,7 +27,7 @@ limitations under the License.
 
 .mx_TabCompleteBar_command {
     margin-right: 8px;
-    background-color: #76CFA6;
+    background-color: $accent-color;
     padding-left: 8px;
     padding-right: 8px;
     padding-top: 2px;
@@ -41,7 +41,7 @@ limitations under the License.
 .mx_TabCompleteBar_command .mx_TabCompleteBar_text {
     opacity: 1.0;
     vertical-align: initial;
-    color: #fff;
+    color: $accent-fg-color;
 }
 
 .mx_TabCompleteBar_item img {
@@ -50,7 +50,7 @@ limitations under the License.
 }
 
 .mx_TabCompleteBar_text {
-    color: #4a4a4a;
+    color: $primary-fg-color;
     vertical-align: middle;
     opacity: 0.5;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss
index 77184d42..7bbafcbe 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss
@@ -19,7 +19,7 @@ limitations under the License.
     max-width: 960px;
     padding-top: 5px;
     padding-bottom: 5px;
-    border-bottom: 1px solid #e5e5e5;
+    border-bottom: 1px solid $primary-hairline-color;
 }
 
 .mx_TopUnreadMessagesBar_scrollUp {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/settings/_IntegrationsManager.scss b/src/skins/vector/css/matrix-react-sdk/views/settings/_IntegrationsManager.scss
index 93ee0e20..13fc9b22 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/settings/_IntegrationsManager.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/settings/_IntegrationsManager.scss
@@ -24,7 +24,7 @@ limitations under the License.
 }
 
 .mx_IntegrationsManager iframe {
-    background-color: #fff;
+    background-color: $primary-bg-color;
     border: 0px;
     width: 100%;
     height: 100%;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/voip/_CallView.scss b/src/skins/vector/css/matrix-react-sdk/views/voip/_CallView.scss
index 8051b4d0..deb89a83 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/voip/_CallView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/voip/_CallView.scss
@@ -15,8 +15,8 @@ limitations under the License.
 */
 
 .mx_CallView_voice {
-    background-color: #76cfa6;
-    color: #fff;
+    background-color: $accent-color;
+    color: $accent-fg-color;
     cursor: pointer;
     text-align: center;
     padding: 6px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss b/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
index 5cf62091..97a82a03 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
@@ -18,7 +18,7 @@ limitations under the License.
     text-align: center;
     border: 1px solid #a4a4a4;
     border-radius: 8px;
-    background-color: #fff;
+    background-color: $primary-bg-color;
     position: fixed;
     z-index: 1000;
     padding: 6px;
@@ -58,7 +58,7 @@ limitations under the License.
     height: 36px;
     line-height: 36px;
     border-radius: 36px;
-    color: #fff;
+    color: $accent-fg-color;
     margin: auto;
 }
 
diff --git a/src/skins/vector/css/rethemendex.sh b/src/skins/vector/css/rethemendex.sh
index 27c47224..29e34382 100755
--- a/src/skins/vector/css/rethemendex.sh
+++ b/src/skins/vector/css/rethemendex.sh
@@ -2,7 +2,7 @@
 
 echo "// autogenerated by rethemendex.sh" > _components.scss
 
-for i in `find */* -iname _\*.scss`;
+for i in `find . -iname _\*.scss | fgrep -v _components.scss`;
 do
     echo "@import \"`dirname $i`/`basename $i .scss`\";" >> _components.scss
 done
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
new file mode 100644
index 00000000..0fb25a6a
--- /dev/null
+++ b/src/skins/vector/css/themes/_base.scss
@@ -0,0 +1,68 @@
+
+
+// typical text (dark-on-white in light skin)
+$primary-fg-color: #454545;
+$primary-bg-color: #ffffff;
+
+// used for dialog box text
+$light-fg-color: #747474;
+
+// button UI (white-on-green in light skin)
+$accent-fg-color: #ffffff;
+$accent-color: #76CFA6;
+
+// red warning colour
+$warning-color: #ff0064;
+
+// left-panel style muted accent color
+$secondary-accent-color: #eaf5f0;
+
+// used by AddressSelector
+$selected-color: #eaf5f0;
+
+// selected for hoverover & selected event tiles
+$event-selected-color: #f7f7f7;
+
+// used for the hairline dividers in RoomView
+$primary-hairline-color: #e5e5e5;
+
+// used for the border of input text fields
+$input-border-color: #f0f0f0;
+
+// apart from login forms, which have stronger border
+$strong-input-border-color: #c7c7c7;
+
+// context menus
+$menu-border-color: rgba(187, 187, 187, 0.5);
+$menu-bg-color: #f6f6f6;
+
+$avatar-initial-color: #ffffff;
+
+// ********************
+
+$roomtile-name-color: rgba(69, 69, 69, 0.8);
+$roomtile-selected-bg-color: rgba(255, 255, 255, 0.8);
+
+$roomsublist-label-fg-color: #3d3b39;
+$roomsublist-label-bg-color: #d3efe1;
+
+// ********************
+
+// event tile lifecycle
+$event-encrypting-color: #abddbc;
+$event-sending-color: #ddd;
+$event-notsent-color: #f44;
+
+// event timestamp
+$event-timestamp-color: #acacac;
+
+// e2e
+$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
+$e2e-unverified-color: #e8bf37;
+$e2e-warning-color: #ba6363;
+
+// ********************
+
+$lightbox-bg-color: #454545;
+$lightbox-fg-color: #ffffff;
+$lightbox-border-color: #ffffff;
\ No newline at end of file
diff --git a/src/skins/vector/css/themes/dark.scss b/src/skins/vector/css/themes/dark.scss
index 19ab2cde..e5602402 100644
--- a/src/skins/vector/css/themes/dark.scss
+++ b/src/skins/vector/css/themes/dark.scss
@@ -1,7 +1,69 @@
+@import "_base";
+
 // typical text (dark-on-white in light skin)
 $primary-fg-color: #dddddd;
 $primary-bg-color: #2d2d2d;
 
-// button UI (white-on-green in light skin)
+// used for dialog box text
+$light-fg-color: #747474;
 
-@import "../_components"
\ No newline at end of file
+// button UI (white-on-green in light skin)
+$accent-fg-color: $primary-bg-color;
+$accent-color: #76CFA6;
+
+// red warning colour
+$warning-color: #ff0064;
+
+// left-panel style muted accent color
+$secondary-accent-color: $primary-bg-color;
+
+// used by AddressSelector
+$selected-color: #eaf5f0;
+
+// selected for hoverover & selected event tiles
+$event-selected-color: #353535;
+
+// used for the hairline dividers in RoomView
+$primary-hairline-color: #474747;
+
+// used for the border of input text fields
+$input-border-color: #3a3a3a;
+
+// apart from login forms, which have stronger border
+$strong-input-border-color: #656565;
+
+// context menus
+$menu-border-color: rgba(187, 187, 187, 0.5);
+$menu-bg-color: #373737;
+
+$avatar-initial-color: #2d2d2d;
+
+// ********************
+
+$roomtile-name-color: rgba(186, 186, 186, 0.8);
+$roomtile-selected-bg-color: rgba(0, 0, 0, 0.8);
+
+$roomsublist-label-fg-color: $primary-fg-color;
+$roomsublist-label-bg-color: #454545;
+
+// ********************
+
+// event tile lifecycle
+$event-encrypting-color: #abddbc;
+$event-sending-color: #ddd;
+$event-notsent-color: #f44;
+
+// event timestamp
+$event-timestamp-color: #acacac;
+
+// e2e
+$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
+$e2e-unverified-color: #e8bf37;
+$e2e-warning-color: #ba6363;
+
+/*** ImageView ***/
+$lightbox-bg-color: #454545;
+$lightbox-fg-color: #ffffff;
+$lightbox-border-color: #ffffff;
+
+@import "../_components";
\ No newline at end of file
diff --git a/src/skins/vector/css/themes/light.scss b/src/skins/vector/css/themes/light.scss
index e0ad84f6..8b951e27 100644
--- a/src/skins/vector/css/themes/light.scss
+++ b/src/skins/vector/css/themes/light.scss
@@ -1,4 +1,2 @@
-$primary-fg-color: #454545;
-$primary-bg-color: #ffffff;
-
-@import "../_components"
\ No newline at end of file
+@import "_base";
+@import "../_components";
\ No newline at end of file
diff --git a/src/skins/vector/css/vector-web/structures/_RightPanel.scss b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
index 5da4c4ab..b9dbf1cd 100644
--- a/src/skins/vector/css/vector-web/structures/_RightPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
@@ -33,7 +33,7 @@ limitations under the License.
     -webkit-order: 1;
     order: 1;
 
-    border-bottom: 1px solid #e5e5e5;
+    border-bottom: 1px solid $primary-hairline-color;
     margin-right: 20px;
 
     -webkit-flex: 0 0 70px;
@@ -45,7 +45,7 @@ limitations under the License.
 .mx_RightPanel_headerButtonGroup {
     margin-top: 6px;
     float: left;
-    background-color: #fff;
+    background-color: $primary-bg-color;
     margin-left: 0px;
 }
 
@@ -73,7 +73,7 @@ limitations under the License.
 
 .mx_RightPanel_headerButton_badge {
     font-size: 11px;
-    color: #76cfa6;
+    color: $accent-color;
     font-weight: bold;
     padding-bottom: 2px;
 }
@@ -97,7 +97,7 @@ limitations under the License.
     -webkit-order: 3;
     order: 3;
 
-    border-top: 1px solid #e5e5e5;
+    border-top: 1px solid $primary-hairline-color;
     margin-right: 20px;
 
     -webkit-flex: 0 0 60px;
@@ -107,7 +107,7 @@ limitations under the License.
 .mx_RightPanel_footer .mx_RightPanel_invite {
     line-height: 35px;
     font-size: 14px;
-	color: #4A4A4A;
+	color: $primary-fg-color;
     padding-top: 13px;
     padding-left: 5px;
     cursor: pointer;
diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
index 563b1772..e5df8741 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
@@ -20,7 +20,7 @@ limitations under the License.
     margin-left: auto;
     margin-right: auto;
     margin-bottom: 12px;
-    color: #4a4a4a;
+    color: $primary-fg-color;
 
     display: -webkit-box;
     display: -moz-box;
@@ -78,7 +78,7 @@ limitations under the License.
 
 .mx_RoomDirectory_table {
     font-size: 14px;
-    color: #4a4a4a;
+    color: $primary-fg-color;
     width: 100%;
     text-align: left;
     table-layout: fixed;
@@ -110,7 +110,7 @@ limitations under the License.
     padding-right: 5px;
     height: 15px;
     border-radius: 11px;
-    background-color: #eaf5f0;
+    background-color: $secondary-accent-color;
     text-transform: uppercase;
     font-weight: 600;
     font-size: 11px;
diff --git a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss
index e6e81aef..0d56d6c3 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss
@@ -29,7 +29,7 @@ limitations under the License.
 .mx_RoomSubList_label {
     position: relative;
     text-transform: uppercase;
-    color: #3d3b39;
+    color: $roomsublist-label-fg-color;
     font-weight: 600;
     font-size: 12px;
     width: 203px; /* padding + width = LHS Panel width */
@@ -39,8 +39,8 @@ limitations under the License.
     padding-top: 6px;
     padding-bottom: 6px;
     cursor: pointer;
-    background-color: #d3efe1;
-    border-top: solid 2px #eaf5f0;
+    background-color: $roomsublist-label-bg-color;
+    border-top: solid 2px $secondary-accent-color;
 }
 
 .mx_RoomSubList_label.mx_RoomSubList_fixed {
@@ -63,7 +63,7 @@ limitations under the License.
     display: inline-block;
     font-size: 12px;
     font-weight: normal;
-    color: #76cfa6;
+    color: $accent-color;
     padding-left: 5px;
     text-transform: none;
 }
@@ -80,14 +80,14 @@ limitations under the License.
     right: 8px; /*gutter */
     top: 7px;
     border-radius: 8px;
-    color: #fff;
+    color: $accent-fg-color;
     font-weight: 600;
     font-size: 10px;
     text-align: center;
     padding-top: 1px;
     padding-left: 4px;
     padding-right: 4px;
-    background-color: #76cfa6;
+    background-color: $accent-color;
 }
 
 /*
@@ -97,7 +97,7 @@ limitations under the License.
 */
 
 .mx_RoomSubList_badgeHighlight {
-    background-color: #ff0064;
+    background-color: $warning-color;
 }
 
 /* This is the bottom of the speech bubble */
@@ -108,7 +108,7 @@ limitations under the License.
     width: 0;
     height: 0;
     margin-left: 5px;
-    border-top: 5px solid #ff0064;
+    border-top: 5px solid $warning-color;
     border-right: 7px solid transparent;
 }
 
@@ -129,7 +129,7 @@ limitations under the License.
     height: 0;
     border-left: 5px solid transparent;
     border-right: 5px solid transparent;
-    border-top: 6px solid #76cfa6;
+    border-top: 6px solid $accent-color;
 }
 
 .mx_RoomSubList_chevronUp {
@@ -137,14 +137,14 @@ limitations under the License.
     height: 0;
     border-left: 5px solid transparent;
     border-right: 5px solid transparent;
-    border-bottom: 6px solid #76cfa6;
+    border-bottom: 6px solid $accent-color;
 }
 
 .mx_RoomSubList_chevronRight {
     width: 0;
     height: 0;
     border-top: 5px solid transparent;
-    border-left: 6px solid #76cfa6;
+    border-left: 6px solid $accent-color;
     border-bottom: 5px solid transparent;
 }
 
@@ -165,7 +165,7 @@ limitations under the License.
 .mx_RoomSubList_line {
     display: inline-block;
     width: 159px;
-    border-top: dotted 2px #76cfa6;
+    border-top: dotted 2px $accent-color;
     vertical-align: middle;
 }
 
@@ -179,7 +179,7 @@ limitations under the License.
     font-size: 10px;
     font-weight: 600;
     text-align: left;
-    color: #76cfa6;
+    color: $accent-color;
     padding-left: 7px;
     padding-right: 7px;
     padding-left: 7px;
@@ -198,20 +198,20 @@ limitations under the License.
     right: 8px; /*gutter */
     top: -2px;
     border-radius: 8px;
-    border: solid 1px #76cfa6;
-    color: #fff;
+    border: solid 1px $accent-color;
+    color: $accent-fg-color;
     font-weight: 600;
     font-size: 10px;
     text-align: center;
     padding-top: 1px;
     padding-left: 3px;
     padding-right: 3px;
-    background-color: #fff;
+    background-color: $primary-bg-color;
     vertical-align: middle;
 }
 
 .mx_RoomSubList_moreBadge.mx_RoomSubList_moreBadgeNotify {
-    background-color: #76cfa6;
+    background-color: $accent-color;
     border: 0;
     padding-top: 3px;
     padding-left: 4px;
@@ -219,7 +219,7 @@ limitations under the License.
 }
 
 .mx_RoomSubList_moreBadge.mx_RoomSubList_moreBadgeHighlight {
-    background-color: #ff0064;
+    background-color: $warning-color;
     border: 0;
     padding-top: 3px;
     padding-left: 4px;
diff --git a/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss b/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
index 947fd480..0a2e7605 100644
--- a/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
+++ b/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
@@ -31,7 +31,7 @@ limitations under the License.
 
 .mx_RoomTagContextMenu_field:last-child {
     padding-bottom: 4px;
-    color: #ff0064;
+    color: $warning-color;
 }
 
 .mx_RoomTagContextMenu_field.mx_RoomTagContextMenu_fieldSet {
diff --git a/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss b/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
index 8b4c4459..9147fdb7 100644
--- a/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
+++ b/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
@@ -21,14 +21,14 @@ limitations under the License.
 .mx_NetworkDropdown_input {
     position: relative;
     border-radius: 3px;
-    border: 1px solid #c7c7c7;
+    border: 1px solid $strong-input-border-color;
     font-weight: 300;
     font-size: 13px;
     user-select: none;
 }
 
 .mx_NetworkDropdown_arrow {
-    border-color: #4a4a4a transparent transparent;
+    border-color: $primary-fg-color transparent transparent;
     border-style: solid;
     border-width: 5px 5px 0;
     display: block;
@@ -67,7 +67,7 @@ input.mx_NetworkDropdown_networkoption, input.mx_NetworkDropdown_networkoption:f
     margin: 0;
     padding: 0px;
     border-radius: 3px;
-    border: 1px solid #76cfa6;
+    border: 1px solid $accent-color;
     background-color: white;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/elements/_ImageView.scss b/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
index 03223f25..d66d9c7d 100644
--- a/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
+++ b/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
@@ -87,7 +87,7 @@ limitations under the License.
     padding-right: 30px;
     min-height: 100%;
     max-width: 240px;
-    color: #fff;
+    color: $lightbox-fg-color;
 }
 
 .mx_ImageView_cancel {
@@ -114,10 +114,10 @@ limitations under the License.
     margin-top: 24px;
     margin-bottom: 6px;
     border-radius: 5px;
-    background-color: #454545;
+    background-color: $lightbox-bg-color;
     font-size: 14px;
     padding: 9px;
-    border: 1px solid #fff;
+    border: 1px solid $lightbox-border-color;
 }
 
 .mx_ImageView_size {
@@ -125,7 +125,7 @@ limitations under the License.
 }
 
 .mx_ImageView_link {
-    color: #fff ! important;
+    color: $lightbox-fg-color ! important;
     text-decoration: none ! important;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
index 717d75af..e8b5aebb 100644
--- a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
@@ -15,8 +15,8 @@ limitations under the License.
 */
 
 .mx_GuestWarningBar {
-    background-color: #76cfa6;
-    color: #fff;
+    background-color: $accent-color;
+    color: $accent-fg-color;
 
     display: -webkit-box;
     display: -moz-box;
@@ -34,7 +34,7 @@ limitations under the License.
 }
 
 .mx_GuestWarningBar a {
-    color: #fff ! important;
+    color: $accent-fg-color ! important;
     text-decoration: underline ! important;
     cursor: pointer;
 }
diff --git a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
index 4e214e11..9bd70bb9 100644
--- a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
@@ -15,8 +15,8 @@ limitations under the License.
 */
 
 .mx_MatrixToolbar {
-    background-color: #76cfa6;
-    color: #fff;
+    background-color: $accent-color;
+    color: $accent-fg-color;
 
     display: -webkit-box;
     display: -moz-box;
@@ -40,7 +40,7 @@ limitations under the License.
 
 .mx_MatrixToolbar_link
 {
-    color: #fff ! important;
+    color: $accent-fg-color ! important;
     text-decoration: underline ! important;
     cursor: pointer;
 }
diff --git a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
index 003215af..2fe16ca9 100644
--- a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
+++ b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
@@ -22,8 +22,8 @@ limitations under the License.
     margin-bottom: 7px;
     padding-top: 5px;
     padding-bottom: 5px;
-    border: 1px dashed #76cfa6;
-    color: #454545;
+    border: 1px dashed $accent-color;
+    color: $primary-fg-color;
     background-color: rgba(255,255,255,0.5);
     border-radius: 4px;
 }
@@ -39,7 +39,7 @@ limitations under the License.
 }
 
 .mx_RoomDropTarget_avatar {
-    background-color: #fff;
+    background-color: $primary-bg-color;
     border-radius: 24px;
     width: 24px;
     height: 24px;
diff --git a/src/skins/vector/css/vector-web/views/rooms/_RoomTooltip.scss b/src/skins/vector/css/vector-web/views/rooms/_RoomTooltip.scss
index 192fa77b..5469a9e6 100644
--- a/src/skins/vector/css/vector-web/views/rooms/_RoomTooltip.scss
+++ b/src/skins/vector/css/vector-web/views/rooms/_RoomTooltip.scss
@@ -21,16 +21,16 @@ limitations under the License.
     width: 0;
     height: 0;
     border-top: 8px solid transparent;
-    border-right: 8px solid rgba(187, 187, 187, 0.5);
+    border-right: 8px solid $menu-border-color;
     border-bottom: 8px solid transparent;
 }
 
-.mx_RoomTooltip_chevron:after{
+.mx_RoomTooltip_chevron:after {
     content:'';
     width: 0;
     height: 0;
     border-top: 7px solid transparent;
-    border-right: 7px solid #fff;
+    border-right: 7px solid $primary-bg-color;
     border-bottom: 7px solid transparent;
     position:absolute;
     top: -7px;
@@ -40,14 +40,14 @@ limitations under the License.
 .mx_RoomTooltip {
     display: none;
     position: fixed;
-    border: 1px solid rgba(187, 187, 187, 0.5);
+    border: 1px solid $menu-border-color;
     border-radius: 5px;
-    background-color: #fff;
+    background-color: $primary-bg-color;
     z-index: 2000;
     padding: 5px;
     pointer-events: none;
     line-height: 14px;
     font-size: 13px;
-    color: rgba(0, 0, 0, 0.7);
+    color: $primary-fg-color;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss b/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
index 7ec1a17a..5d195322 100644
--- a/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
+++ b/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
@@ -26,7 +26,7 @@ limitations under the License.
 .mx_SearchBar_input {
     display: inline block;
     border-radius: 3px 0px 0px 3px;
-    border: 1px solid #f0f0f0;
+    border: 1px solid $input-border-color;
     font-size: 15px;
     padding: 9px;
     padding-left: 11px;
@@ -41,7 +41,7 @@ limitations under the License.
     width: 37px;
     height: 37px;
     border-radius: 0px 3px 3px 0px;
-    background-color: #76CFA6;
+    background-color: $accent-color;
 }
 
 @keyframes pulsate {
@@ -61,8 +61,8 @@ limitations under the License.
     border-radius: 36px;
     font-weight: 400;
     font-size: 15px;
-    color: #fff;
-    background-color: #76cfa6;
+    color: $accent-fg-color;
+    background-color: $accent-color;
     width: auto;
     margin: auto;
     margin-left: 7px;
@@ -74,9 +74,9 @@ limitations under the License.
 }
 
 .mx_SearchBar_unselected {
-    background-color: #fff;
-    color: #76CFA6;
-    border: #76CFA6 1px solid;
+    background-color: $primary-bg-color;
+    color: $accent-color;
+    border: $accent-color 1px solid;
 }
 
 .mx_SearchBar_cancel {
diff --git a/src/skins/vector/css/vector-web/views/settings/_Notifications.scss b/src/skins/vector/css/vector-web/views/settings/_Notifications.scss
index 7a93f3f7..4c88e449 100644
--- a/src/skins/vector/css/vector-web/views/settings/_Notifications.scss
+++ b/src/skins/vector/css/vector-web/views/settings/_Notifications.scss
@@ -58,7 +58,7 @@ limitations under the License.
 
 .mx_UserNotifSettings_keywords {
     cursor: pointer;
-    color: #76cfa6;
+    color: $accent-color;
 }
 
 .mx_UserSettings_devicesTable td {
diff --git a/src/vector/index.js b/src/vector/index.js
index 96c6a971..47509887 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -30,7 +30,7 @@ require('babel-polyfill');
 
 // CSS requires: just putting them here for now as CSS is going to be
 // refactored "soon" anyway
-require('../../build/themes/light.css');
+require('../../build/themes/dark.css');
 require('gemini-scrollbar/gemini-scrollbar.css');
 require('gfm.css/gfm.css');
 require('highlight.js/styles/github.css');

From d1a9695a353aec38762fcde749e852cfc3a5c3b5 Mon Sep 17 00:00:00 2001
From: Hubert Chathi <hubert@uhoreg.ca>
Date: Wed, 28 Dec 2016 20:57:31 -0500
Subject: [PATCH 116/243] update README to point to new names/locations

---
 README.md | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index 41f307d3..f82572fb 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ https://riot.im/develop for those who like living dangerously.
 To host your own copy of Riot, the quickest bet is to use a pre-built
 released version of Riot:
 
-1. Download the latest version from https://github.com/vector-im/vector-web/releases
+1. Download the latest version from https://github.com/vector-im/riot-web/releases
 1. Untar the tarball on your web server
 1. Move (or symlink) the vector-x.x.x directory to an appropriate name
 1. If desired, copy `config.sample.json` to `config.json` and edit it
@@ -36,7 +36,7 @@ access to Riot (or other apps) due to sharing the same domain.
 
 We have put some coarse mitigations into place to try to protect against this
 situation, but it's still not good practice to do it in the first place.  See
-https://github.com/vector-im/vector-web/issues/1977 for more details.
+https://github.com/vector-im/riot-web/issues/1977 for more details.
 
 Building From Source
 ====================
@@ -45,7 +45,7 @@ Riot is a modular webapp built with modern ES6 and requires a npm build system
 to build.
 
 1. Install or update `node.js` so that your `npm` is at least at version `2.0.0`
-1. Clone the repo: `git clone https://github.com/vector-im/vector-web.git`
+1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`
 1. Switch to the vector-web directory: `cd vector-web`
 1. Install the prerequisites: `npm install`
 1. If you are using the `develop` branch of vector-web, you will probably need
@@ -97,7 +97,7 @@ Running as a Desktop app
 ========================
 
 Riot can also be run as a desktop app, wrapped in electron. You can download a
-pre-built version from https://riot.im/download/desktop/ or, if you prefer,
+pre-built version from https://riot.im/desktop.html or, if you prefer,
 built it yourself.
 
 To run as a desktop app:
@@ -167,13 +167,13 @@ the `component-index.js` for the app (used in future for skinning)
 development on Riot forcing `matrix-react-sdk` to move fast at the expense of
 maintaining a clear abstraction between the two.**  Hacking on Riot inevitably
 means hacking equally on `matrix-react-sdk`, and there are bits of
-`matrix-react-sdk` behaviour incorrectly residing in the `vector-web` project
+`matrix-react-sdk` behaviour incorrectly residing in the `riot-web` project
 (e.g. matrix-react-sdk specific CSS), and a bunch of Riot specific behaviour
 in the `matrix-react-sdk` (grep for `vector` / `riot`).  This separation problem will be
 solved asap once development on Riot (and thus matrix-react-sdk) has
 stabilised.  Until then, the two projects should basically be considered as a
 single unit.  In particular, `matrix-react-sdk` issues are currently filed
-against `vector-web` in github.
+against `riot-web` in github.
 
 Please note that Riot is intended to run correctly without access to the public
 internet.  So please don't depend on resources (JS libs, CSS, images, fonts)
@@ -208,8 +208,8 @@ Then similarly with `matrix-react-sdk`:
 
 Finally, build and start Riot itself:
 
-1. `git clone git@github.com:vector-im/vector-web.git`
-1. `cd vector-web`
+1. `git clone git@github.com:vector-im/riot-web.git`
+1. `cd riot-web`
 1. `git checkout develop`
 1. `npm install`
 1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`

From 35b301338643dcabafb43653e6da17de9c9fdcd2 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sat, 31 Dec 2016 14:27:44 +0000
Subject: [PATCH 117/243] fix up a few more colours

---
 src/skins/vector/css/_common.scss                          | 7 ++++++-
 src/skins/vector/css/themes/_base.scss                     | 3 +++
 src/skins/vector/css/themes/dark.scss                      | 3 +++
 .../css/vector-web/views/directory/_NetworkDropdown.scss   | 4 ++--
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index e81ea2fa..ed96b48c 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -55,8 +55,13 @@ a:visited {
     color: $accent-color;
 }
 
+input[type=text] {
+    background-color: $primary-bg-color;
+    color: $primary-fg-color;
+}
+
 input[type=text].error, input[type=password].error {
-    border: 1px solid red;
+    border: 1px solid $warning-color;
 }
 
 input[type=text]:focus, textarea:focus {
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index 0fb25a6a..b9fd2d12 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -7,6 +7,9 @@ $primary-bg-color: #ffffff;
 // used for dialog box text
 $light-fg-color: #747474;
 
+// used for focusing form controls
+$focus-bg-color: #dddddd;
+
 // button UI (white-on-green in light skin)
 $accent-fg-color: #ffffff;
 $accent-color: #76CFA6;
diff --git a/src/skins/vector/css/themes/dark.scss b/src/skins/vector/css/themes/dark.scss
index e5602402..5449b90e 100644
--- a/src/skins/vector/css/themes/dark.scss
+++ b/src/skins/vector/css/themes/dark.scss
@@ -4,6 +4,9 @@
 $primary-fg-color: #dddddd;
 $primary-bg-color: #2d2d2d;
 
+// used for focusing form controls
+$focus-bg-color: #101010;
+
 // used for dialog box text
 $light-fg-color: #747474;
 
diff --git a/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss b/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
index 9147fdb7..84aa896a 100644
--- a/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
+++ b/src/skins/vector/css/vector-web/views/directory/_NetworkDropdown.scss
@@ -68,11 +68,11 @@ input.mx_NetworkDropdown_networkoption, input.mx_NetworkDropdown_networkoption:f
     padding: 0px;
     border-radius: 3px;
     border: 1px solid $accent-color;
-    background-color: white;
+    background-color: $primary-bg-color;
 }
 
 .mx_NetworkDropdown_menu .mx_NetworkDropdown_networkoption:hover {
-    background-color: #ddd;
+    background-color: $focus-bg-color;
 }
 
 .mx_NetworkDropdown_menu_network {

From 6a1af891b77f1b0c63bd1df32d0ac8c87b59dff7 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <github@rvanderhoff.org.uk>
Date: Fri, 6 Jan 2017 10:43:13 +0000
Subject: [PATCH 118/243] Use a custom script to copy resources (#2893)

All of those cpx invocations were getting unwieldy, and I suspect the exotic
quoting needed to run them under parallelshell was breaking things on windows.

Replace the unwieldy cpx invocations with an unwieldy custom script.
---
 package.json        | 20 +++++------
 scripts/copy-res.js | 81 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+), 11 deletions(-)
 create mode 100755 scripts/copy-res.js

diff --git a/package.json b/package.json
index 3f9f46e2..52cc41be 100644
--- a/package.json
+++ b/package.json
@@ -27,26 +27,22 @@
   "matrix-react-parent": "matrix-react-sdk",
   "scripts": {
     "reskindex": "reskindex -h src/header",
-    "build:res": "cpx \"{src/skins/vector/fonts,src/skins/vector/img}/**\" webapp/ && cpx \"{res/media,res/vector-icons}/**\" webapp/",
-    "build:config": "cpx config.json webapp/",
-    "build:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/",
+    "build:res": "node scripts/copy-res.js",
     "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
     "build:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css --no-watch",
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
     "build:electron": "npm run clean && npm run build && build -wml --ia32 --x64",
-    "build": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle",
-    "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:config && npm run build:emojione && npm run build:css && npm run build:bundle:dev",
+    "build": "node scripts/babelcheck.js && npm run build:res && npm run build:css && npm run build:bundle",
+    "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:css && npm run build:bundle:dev",
     "dist": "scripts/package.sh",
-    "start:res": "parallelshell \"cpx -w \\\"{src/skins/vector/fonts,src/skins/vector/img}/**\\\" webapp/\" \"cpx -w \\\"{res/media,res/vector-icons}/**\\\" webapp/\"",
-    "start:config": "cpx -w config.json webapp/",
-    "start:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/ -w",
+    "start:res": "node scripts/copy-res.js -w",
     "start:js": "webpack-dev-server -w --progress",
     "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
-    "start:skins:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css",
-    "start": "node scripts/babelcheck.js && parallelshell \"npm run start:emojione\" \"npm run start:res\" \"npm run start:config\" \"npm run start:js\" \"npm run start:skins:css\"",
-    "start:prod": "parallelshell \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\"",
+    "start:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css",
+    "start": "node scripts/babelcheck.js && parallelshell \"npm run start:res\" \"npm run start:js\" \"npm run start:css\"",
+    "start:prod": "parallelshell \"npm run start:res\" \"npm run start:js:prod\" \"npm run start:css\"",
     "clean": "rimraf build lib webapp electron/dist",
     "prepublish": "npm run build:compile",
     "test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
@@ -95,6 +91,7 @@
     "babel-preset-react": "^6.16.0",
     "babel-preset-stage-2": "^6.17.0",
     "catw": "^1.0.1",
+    "chokidar": "^1.6.1",
     "cpx": "^1.3.2",
     "css-raw-loader": "^0.1.1",
     "electron-builder": "^10.4.1",
@@ -111,6 +108,7 @@
     "karma-phantomjs-launcher": "^1.0.0",
     "karma-sourcemap-loader": "^0.3.7",
     "karma-webpack": "^1.7.0",
+    "minimist": "^1.2.0",
     "mkdirp": "^0.5.1",
     "mocha": "^2.4.5",
     "parallelshell": "^1.2.0",
diff --git a/scripts/copy-res.js b/scripts/copy-res.js
new file mode 100755
index 00000000..826d9a96
--- /dev/null
+++ b/scripts/copy-res.js
@@ -0,0 +1,81 @@
+#!/usr/bin/env node
+
+// copies the resources into the webapp directory.
+//
+
+// cpx includes globbed parts of the filename in the destination, but excludes
+// common parents. Hence, "res/{a,b}/**": the output will be "dest/a/..." and
+// "dest/b/...".
+const COPY_LIST = [
+    ["res/{media,vector-icons}/**", "webapp"],
+    ["src/skins/vector/{fonts,img}/**", "webapp"],
+    ["node_modules/emojione/assets/svg/*", "webapp/emojione/svg/"],
+    ["./config.json", "webapp", {directwatch: 1}],
+];
+
+const parseArgs = require('minimist');
+const Cpx = require('cpx');
+const chokidar = require('chokidar');
+
+const argv = parseArgs(
+    process.argv.slice(2), {}
+);
+
+var watch = argv.w;
+var verbose = argv.v;
+
+function errCheck(err) {
+    if (err) {
+        console.error(err.message);
+        process.exit(1);
+    }
+}
+
+function next(i, err) {
+    errCheck(err);
+
+    if (i >= COPY_LIST.length) {
+        return;
+    }
+
+    const ent = COPY_LIST[i];
+    const source = ent[0];
+    const dest = ent[1];
+    const opts = ent[2] || {};
+
+    const cpx = new Cpx.Cpx(source, dest);
+
+    if (verbose) {
+        cpx.on("copy", (event) => {
+            console.log(`Copied: ${event.srcPath} --> ${event.dstPath}`);
+        });
+        cpx.on("remove", (event) => {
+            console.log(`Removed: ${event.path}`);
+        });
+    }
+
+    const cb = (err) => {next(i+1, err)};
+
+    if (watch) {
+        if (opts.directwatch) {
+            // cpx -w creates a watcher for the parent of any files specified,
+            // which in the case of config.json is '.', which inevitably takes
+            // ages to crawl. So we create our own watcher on the files
+            // instead.
+            const copy = () => {cpx.copy(errCheck)};
+            chokidar.watch(source)
+                .on('add', copy)
+                .on('change', copy)
+                .on('ready', cb)
+                .on('error', errCheck);
+        } else {
+            cpx.on('watch-ready', cb);
+            cpx.on("watch-error", cb);
+            cpx.watch();
+        }
+    } else {
+        cpx.copy(cb);
+    }
+}
+
+next(0);

From 691fe611d6141f6c43f9e966ab135a721f248482 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 10 Jan 2017 11:06:09 +0000
Subject: [PATCH 119/243] experimental postcss

---
 package.json                           |  14 ++-
 src/skins/vector/css/_components.scss  | 145 +++++++++++++------------
 src/skins/vector/css/rethemendex.sh    |   2 +-
 src/skins/vector/css/themes/dark.scss  |  76 +------------
 src/skins/vector/css/themes/light.scss |   4 +-
 src/vector/index.js                    |   2 +-
 webpack.config.js                      |   4 +-
 7 files changed, 94 insertions(+), 153 deletions(-)

diff --git a/package.json b/package.json
index c657aad6..8eb562d3 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
     "build:config": "cpx config.json webapp/",
     "build:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/",
     "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
-    "build:css": "mkdirp build && node-sass --recursive --source-map true --output build \"src/skins/vector/css\"",
+    "build:css": "mkdirp build && postcss -c postcss.config.json",
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
@@ -44,7 +44,7 @@
     "start:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/ -w",
     "start:js": "webpack-dev-server -w --progress",
     "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
-    "start:skins:css": "mkdirp build && node-sass --recursive --watch --source-map true --output build \"src/skins/vector/css\"",
+    "start:skins:css": "mkdirp build && postcss -c postcss.config.json -w",
     "start": "node scripts/babelcheck.js && parallelshell \"npm run start:emojione\" \"npm run start:res\" \"npm run start:config\" \"npm run start:js\" \"npm run start:skins:css\"",
     "start:prod": "parallelshell \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\"",
     "clean": "rimraf build lib webapp electron/dist",
@@ -80,6 +80,7 @@
     "url": "^0.11.0"
   },
   "devDependencies": {
+    "autoprefixer": "^6.6.0",
     "babel-cli": "^6.5.2",
     "babel-core": "^6.14.0",
     "babel-eslint": "^6.1.0",
@@ -116,10 +117,17 @@
     "node-sass": "^4.1.1",
     "parallelshell": "^1.2.0",
     "phantomjs-prebuilt": "^2.1.7",
+    "postcss-cli": "^2.6.0",
+    "postcss-extend": "^1.0.5",
+    "postcss-import": "^9.0.0",
+    "postcss-mixins": "^5.4.1",
+    "postcss-nested": "^1.0.0",
+    "postcss-scss": "^0.4.0",
+    "postcss-simple-vars": "^3.0.0",
+    "postcss-strip-inline-comments": "^0.1.5",
     "react-addons-perf": "^15.4.0",
     "react-addons-test-utils": "^15.4.0",
     "rimraf": "^2.4.3",
-    "sass-loader": "^4.1.1",
     "source-map-loader": "^0.1.5",
     "webpack": "^1.12.14",
     "webpack-dev-server": "^1.16.2"
diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss
index 532e0a36..88435236 100644
--- a/src/skins/vector/css/_components.scss
+++ b/src/skins/vector/css/_components.scss
@@ -1,73 +1,74 @@
 // autogenerated by rethemendex.sh
-@import "_common";
-@import "matrix-react-sdk/structures/_ContextualMenu";
-@import "matrix-react-sdk/structures/_CreateRoom";
-@import "matrix-react-sdk/structures/_FilePanel";
-@import "matrix-react-sdk/structures/_MatrixChat";
-@import "matrix-react-sdk/structures/_NotificationPanel";
-@import "matrix-react-sdk/structures/_RoomStatusBar";
-@import "matrix-react-sdk/structures/_RoomView";
-@import "matrix-react-sdk/structures/_SearchBox";
-@import "matrix-react-sdk/structures/_UploadBar";
-@import "matrix-react-sdk/structures/_UserSettings";
-@import "matrix-react-sdk/structures/login/_Login";
-@import "matrix-react-sdk/views/avatars/_BaseAvatar";
-@import "matrix-react-sdk/views/dialogs/_ChatInviteDialog";
-@import "matrix-react-sdk/views/dialogs/_EncryptedEventDialog";
-@import "matrix-react-sdk/views/dialogs/_SetDisplayNameDialog";
-@import "matrix-react-sdk/views/elements/_AddressSelector";
-@import "matrix-react-sdk/views/elements/_AddressTile";
-@import "matrix-react-sdk/views/elements/_DirectorySearchBox";
-@import "matrix-react-sdk/views/elements/_MemberEventListSummary";
-@import "matrix-react-sdk/views/elements/_ProgressBar";
-@import "matrix-react-sdk/views/elements/_RichText";
-@import "matrix-react-sdk/views/login/_ServerConfig";
-@import "matrix-react-sdk/views/messages/_MImageBody";
-@import "matrix-react-sdk/views/messages/_MNoticeBody";
-@import "matrix-react-sdk/views/messages/_MTextBody";
-@import "matrix-react-sdk/views/messages/_TextualEvent";
-@import "matrix-react-sdk/views/messages/_UnknownBody";
-@import "matrix-react-sdk/views/rooms/_Autocomplete";
-@import "matrix-react-sdk/views/rooms/_EntityTile";
-@import "matrix-react-sdk/views/rooms/_EventTile";
-@import "matrix-react-sdk/views/rooms/_LinkPreviewWidget";
-@import "matrix-react-sdk/views/rooms/_MemberDeviceInfo";
-@import "matrix-react-sdk/views/rooms/_MemberInfo";
-@import "matrix-react-sdk/views/rooms/_MemberList";
-@import "matrix-react-sdk/views/rooms/_MessageComposer";
-@import "matrix-react-sdk/views/rooms/_PresenceLabel";
-@import "matrix-react-sdk/views/rooms/_RoomHeader";
-@import "matrix-react-sdk/views/rooms/_RoomList";
-@import "matrix-react-sdk/views/rooms/_RoomPreviewBar";
-@import "matrix-react-sdk/views/rooms/_RoomSettings";
-@import "matrix-react-sdk/views/rooms/_RoomTile";
-@import "matrix-react-sdk/views/rooms/_SearchableEntityList";
-@import "matrix-react-sdk/views/rooms/_TabCompleteBar";
-@import "matrix-react-sdk/views/rooms/_TopUnreadMessagesBar";
-@import "matrix-react-sdk/views/settings/_DevicesPanel";
-@import "matrix-react-sdk/views/settings/_IntegrationsManager";
-@import "matrix-react-sdk/views/voip/_CallView";
-@import "matrix-react-sdk/views/voip/_IncomingCallbox";
-@import "matrix-react-sdk/views/voip/_VideoView";
-@import "vector-web/_fonts";
-@import "vector-web/structures/_CompatibilityPage";
-@import "vector-web/structures/_LeftPanel";
-@import "vector-web/structures/_RightPanel";
-@import "vector-web/structures/_RoomDirectory";
-@import "vector-web/structures/_RoomSubList";
-@import "vector-web/structures/_ViewSource";
-@import "vector-web/views/context_menus/_MessageContextMenu";
-@import "vector-web/views/context_menus/_NotificationStateContextMenu";
-@import "vector-web/views/context_menus/_RoomTagContextMenu";
-@import "vector-web/views/dialogs/_ChangelogDialog";
-@import "vector-web/views/directory/_NetworkDropdown";
-@import "vector-web/views/elements/_ImageView";
-@import "vector-web/views/elements/_Spinner";
-@import "vector-web/views/globals/_GuestWarningBar";
-@import "vector-web/views/globals/_MatrixToolbar";
-@import "vector-web/views/messages/_MessageTimestamp";
-@import "vector-web/views/messages/_SenderProfile";
-@import "vector-web/views/rooms/_RoomDropTarget";
-@import "vector-web/views/rooms/_RoomTooltip";
-@import "vector-web/views/rooms/_SearchBar";
-@import "vector-web/views/settings/_Notifications";
+@import "./_common.scss";
+@import "./matrix-react-sdk/structures/_ContextualMenu.scss";
+@import "./matrix-react-sdk/structures/_CreateRoom.scss";
+@import "./matrix-react-sdk/structures/_FilePanel.scss";
+@import "./matrix-react-sdk/structures/_MatrixChat.scss";
+@import "./matrix-react-sdk/structures/_NotificationPanel.scss";
+@import "./matrix-react-sdk/structures/_RoomStatusBar.scss";
+@import "./matrix-react-sdk/structures/_RoomView.scss";
+@import "./matrix-react-sdk/structures/_SearchBox.scss";
+@import "./matrix-react-sdk/structures/_UploadBar.scss";
+@import "./matrix-react-sdk/structures/_UserSettings.scss";
+@import "./matrix-react-sdk/structures/login/_Login.scss";
+@import "./matrix-react-sdk/views/avatars/_BaseAvatar.scss";
+@import "./matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss";
+@import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss";
+@import "./matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss";
+@import "./matrix-react-sdk/views/elements/_AddressSelector.scss";
+@import "./matrix-react-sdk/views/elements/_AddressTile.scss";
+@import "./matrix-react-sdk/views/elements/_DirectorySearchBox.scss";
+@import "./matrix-react-sdk/views/elements/_MemberEventListSummary.scss";
+@import "./matrix-react-sdk/views/elements/_ProgressBar.scss";
+@import "./matrix-react-sdk/views/elements/_RichText.scss";
+@import "./matrix-react-sdk/views/login/_ServerConfig.scss";
+@import "./matrix-react-sdk/views/messages/_MImageBody.scss";
+@import "./matrix-react-sdk/views/messages/_MNoticeBody.scss";
+@import "./matrix-react-sdk/views/messages/_MTextBody.scss";
+@import "./matrix-react-sdk/views/messages/_TextualEvent.scss";
+@import "./matrix-react-sdk/views/messages/_UnknownBody.scss";
+@import "./matrix-react-sdk/views/rooms/_Autocomplete.scss";
+@import "./matrix-react-sdk/views/rooms/_EntityTile.scss";
+@import "./matrix-react-sdk/views/rooms/_EventTile.scss";
+@import "./matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss";
+@import "./matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss";
+@import "./matrix-react-sdk/views/rooms/_MemberInfo.scss";
+@import "./matrix-react-sdk/views/rooms/_MemberList.scss";
+@import "./matrix-react-sdk/views/rooms/_MessageComposer.scss";
+@import "./matrix-react-sdk/views/rooms/_PresenceLabel.scss";
+@import "./matrix-react-sdk/views/rooms/_RoomHeader.scss";
+@import "./matrix-react-sdk/views/rooms/_RoomList.scss";
+@import "./matrix-react-sdk/views/rooms/_RoomPreviewBar.scss";
+@import "./matrix-react-sdk/views/rooms/_RoomSettings.scss";
+@import "./matrix-react-sdk/views/rooms/_RoomTile.scss";
+@import "./matrix-react-sdk/views/rooms/_SearchableEntityList.scss";
+@import "./matrix-react-sdk/views/rooms/_TabCompleteBar.scss";
+@import "./matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss";
+@import "./matrix-react-sdk/views/settings/_DevicesPanel.scss";
+@import "./matrix-react-sdk/views/settings/_IntegrationsManager.scss";
+@import "./matrix-react-sdk/views/voip/_CallView.scss";
+@import "./matrix-react-sdk/views/voip/_IncomingCallbox.scss";
+@import "./matrix-react-sdk/views/voip/_VideoView.scss";
+@import "./themes/_base.scss";
+@import "./vector-web/_fonts.scss";
+@import "./vector-web/structures/_CompatibilityPage.scss";
+@import "./vector-web/structures/_LeftPanel.scss";
+@import "./vector-web/structures/_RightPanel.scss";
+@import "./vector-web/structures/_RoomDirectory.scss";
+@import "./vector-web/structures/_RoomSubList.scss";
+@import "./vector-web/structures/_ViewSource.scss";
+@import "./vector-web/views/context_menus/_MessageContextMenu.scss";
+@import "./vector-web/views/context_menus/_NotificationStateContextMenu.scss";
+@import "./vector-web/views/context_menus/_RoomTagContextMenu.scss";
+@import "./vector-web/views/dialogs/_ChangelogDialog.scss";
+@import "./vector-web/views/directory/_NetworkDropdown.scss";
+@import "./vector-web/views/elements/_ImageView.scss";
+@import "./vector-web/views/elements/_Spinner.scss";
+@import "./vector-web/views/globals/_GuestWarningBar.scss";
+@import "./vector-web/views/globals/_MatrixToolbar.scss";
+@import "./vector-web/views/messages/_MessageTimestamp.scss";
+@import "./vector-web/views/messages/_SenderProfile.scss";
+@import "./vector-web/views/rooms/_RoomDropTarget.scss";
+@import "./vector-web/views/rooms/_RoomTooltip.scss";
+@import "./vector-web/views/rooms/_SearchBar.scss";
+@import "./vector-web/views/settings/_Notifications.scss";
diff --git a/src/skins/vector/css/rethemendex.sh b/src/skins/vector/css/rethemendex.sh
index 29e34382..915b235d 100755
--- a/src/skins/vector/css/rethemendex.sh
+++ b/src/skins/vector/css/rethemendex.sh
@@ -4,5 +4,5 @@ echo "// autogenerated by rethemendex.sh" > _components.scss
 
 for i in `find . -iname _\*.scss | fgrep -v _components.scss`;
 do
-    echo "@import \"`dirname $i`/`basename $i .scss`\";" >> _components.scss
+    echo "@import \"$i\";" >> _components.scss
 done
diff --git a/src/skins/vector/css/themes/dark.scss b/src/skins/vector/css/themes/dark.scss
index 5449b90e..0c51486b 100644
--- a/src/skins/vector/css/themes/dark.scss
+++ b/src/skins/vector/css/themes/dark.scss
@@ -1,72 +1,4 @@
-@import "_base";
-
-// typical text (dark-on-white in light skin)
-$primary-fg-color: #dddddd;
-$primary-bg-color: #2d2d2d;
-
-// used for focusing form controls
-$focus-bg-color: #101010;
-
-// used for dialog box text
-$light-fg-color: #747474;
-
-// button UI (white-on-green in light skin)
-$accent-fg-color: $primary-bg-color;
-$accent-color: #76CFA6;
-
-// red warning colour
-$warning-color: #ff0064;
-
-// left-panel style muted accent color
-$secondary-accent-color: $primary-bg-color;
-
-// used by AddressSelector
-$selected-color: #eaf5f0;
-
-// selected for hoverover & selected event tiles
-$event-selected-color: #353535;
-
-// used for the hairline dividers in RoomView
-$primary-hairline-color: #474747;
-
-// used for the border of input text fields
-$input-border-color: #3a3a3a;
-
-// apart from login forms, which have stronger border
-$strong-input-border-color: #656565;
-
-// context menus
-$menu-border-color: rgba(187, 187, 187, 0.5);
-$menu-bg-color: #373737;
-
-$avatar-initial-color: #2d2d2d;
-
-// ********************
-
-$roomtile-name-color: rgba(186, 186, 186, 0.8);
-$roomtile-selected-bg-color: rgba(0, 0, 0, 0.8);
-
-$roomsublist-label-fg-color: $primary-fg-color;
-$roomsublist-label-bg-color: #454545;
-
-// ********************
-
-// event tile lifecycle
-$event-encrypting-color: #abddbc;
-$event-sending-color: #ddd;
-$event-notsent-color: #f44;
-
-// event timestamp
-$event-timestamp-color: #acacac;
-
-// e2e
-$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
-$e2e-unverified-color: #e8bf37;
-$e2e-warning-color: #ba6363;
-
-/*** ImageView ***/
-$lightbox-bg-color: #454545;
-$lightbox-fg-color: #ffffff;
-$lightbox-border-color: #ffffff;
-
-@import "../_components";
\ No newline at end of file
+@import "_base.scss";
+@import "_dark.scss";
+@import "../_components.scss";
+// moofleasdadsasdadsa
\ No newline at end of file
diff --git a/src/skins/vector/css/themes/light.scss b/src/skins/vector/css/themes/light.scss
index 8b951e27..ea0f93d5 100644
--- a/src/skins/vector/css/themes/light.scss
+++ b/src/skins/vector/css/themes/light.scss
@@ -1,2 +1,2 @@
-@import "_base";
-@import "../_components";
\ No newline at end of file
+@import "_base.scss";
+@import "../_components.scss";
\ No newline at end of file
diff --git a/src/vector/index.js b/src/vector/index.js
index 47509887..64b87698 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -30,7 +30,7 @@ require('babel-polyfill');
 
 // CSS requires: just putting them here for now as CSS is going to be
 // refactored "soon" anyway
-require('../../build/themes/dark.css');
+require('../../build/dark.scss');
 require('gemini-scrollbar/gemini-scrollbar.css');
 require('gfm.css/gfm.css');
 require('highlight.js/styles/github.css');
diff --git a/webpack.config.js b/webpack.config.js
index 1c408b70..1f2a8a60 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -24,8 +24,8 @@ module.exports = {
             { test: /\.json$/, loader: "json" },
             { test: /\.js$/, loader: "babel", include: path.resolve('./src') },
             // css-raw-loader loads CSS but doesn't try to treat url()s as require()s
-            { test: /\.css$/, loader: ExtractTextPlugin.extract("css-raw-loader") },
-            { test: /\.scss$/, loaders: ["style-loader", "css-loader?sourceMap", "sass-loader?sourceMap"] },
+            // we're assuming that postcss has already preprocessed SCSS by this point
+            { test: /\.s?css$/, loader: ExtractTextPlugin.extract("css-raw-loader") },
         ],
         noParse: [
             // don't parse the languages within highlight.js. They cause stack

From c1d4a0dd2826b8ec7dad6fcbd946c2ef4cd985b6 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 10 Jan 2017 11:06:45 +0000
Subject: [PATCH 120/243] postcss experiment

---
 postcss.config.json                    | 18 +++++++
 src/skins/vector/css/themes/_dark.scss | 69 ++++++++++++++++++++++++++
 2 files changed, 87 insertions(+)
 create mode 100644 postcss.config.json
 create mode 100644 src/skins/vector/css/themes/_dark.scss

diff --git a/postcss.config.json b/postcss.config.json
new file mode 100644
index 00000000..be3585cf
--- /dev/null
+++ b/postcss.config.json
@@ -0,0 +1,18 @@
+{
+    "use": [
+        "autoprefixer",
+        "postcss-import",
+        "postcss-simple-vars",
+        "postcss-extend",
+        "postcss-nested",
+        "postcss-mixins",
+        "postcss-strip-inline-comments"
+    ],
+    "parser": "postcss-scss",
+    "input": "src/skins/vector/css/themes/[^_]*.scss",
+    "dir": "build",
+    "local-plugins": true,
+    "autoprefixer": {
+        "browsers": "> 5%"
+    }
+}
\ No newline at end of file
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
new file mode 100644
index 00000000..e2c33e3e
--- /dev/null
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -0,0 +1,69 @@
+
+// typical text (dark-on-white in light skin)
+$primary-fg-color: #dddddd;
+$primary-bg-color: #2d2d2d;
+
+// used for focusing form controls
+$focus-bg-color: #101010;
+
+// used for dialog box text
+$light-fg-color: #747474;
+
+// button UI (white-on-green in light skin)
+$accent-fg-color: $primary-bg-color;
+$accent-color: #76CFA6;
+
+// red warning colour
+$warning-color: #ff0064;
+
+// left-panel style muted accent color
+$secondary-accent-color: $primary-bg-color;
+
+// used by AddressSelector
+$selected-color: #eaf5f0;
+
+// selected for hoverover & selected event tiles
+$event-selected-color: #353535;
+
+// used for the hairline dividers in RoomView
+$primary-hairline-color: #474747;
+
+// used for the border of input text fields
+$input-border-color: #3a3a3a;
+
+// apart from login forms, which have stronger border
+$strong-input-border-color: #656565;
+
+// context menus
+$menu-border-color: rgba(187, 187, 187, 0.5);
+$menu-bg-color: #373737;
+
+$avatar-initial-color: #2d2d2d;
+
+// ********************
+
+$roomtile-name-color: rgba(186, 186, 186, 0.8);
+$roomtile-selected-bg-color: rgba(0, 0, 0, 0.8);
+
+$roomsublist-label-fg-color: $primary-fg-color;
+$roomsublist-label-bg-color: #454545;
+
+// ********************
+
+// event tile lifecycle
+$event-encrypting-color: #abddbc;
+$event-sending-color: #ddd;
+$event-notsent-color: #f44;
+
+// event timestamp
+$event-timestamp-color: #acacac;
+
+// e2e
+$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
+$e2e-unverified-color: #e8bf37;
+$e2e-warning-color: #ba6363;
+
+/*** ImageView ***/
+$lightbox-bg-color: #454545;
+$lightbox-fg-color: #ffffff;
+$lightbox-border-color: #ffffff;

From c5459a2f19607a5d87a783b75cabcdfa4c0abd1d Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 10 Jan 2017 18:39:21 +0000
Subject: [PATCH 121/243] Enable screen sharing easter-egg in desktop app

---
 electron/src/electron-main.js           | 2 ++
 src/vector/platform/ElectronPlatform.js | 4 ++++
 src/vector/platform/WebPlatform.js      | 8 ++++++++
 3 files changed, 14 insertions(+)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 2b135a03..675640a5 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -148,6 +148,8 @@ process.on('uncaughtException', function (error) {
 
 electron.ipcMain.on('install_update', installUpdate);
 
+electron.app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
+
 electron.app.on('ready', () => {
     if (vectorConfig.update_base_url) {
         console.log("Starting auto update with base URL: " + vectorConfig.update_base_url);
diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index 3b41822b..68df88b0 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -127,4 +127,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
     getDefaultDeviceDisplayName() {
         return "Riot Desktop on " + platformFriendlyName();
     }
+
+    screenCaptureErrorString() {
+        return null;
+    }
 }
diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index c4ed4d55..2029822b 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -196,4 +196,12 @@ export default class WebPlatform extends VectorBasePlatform {
         return app_name + " via " + ua.getBrowser().name +
             " on " + ua.getOS().name;
     }
+
+    screenCaptureErrorString() {
+        // it won't work at all if you're not on HTTPS so whine whine whine
+        if (!global.window || global.window.location.protocol !== "https:") {
+            return "You need to be using HTTPS to place a screen-sharing call.";
+        }
+        return null;
+    }
 }

From b71f96e4e5de520f1bbc7166b2bbd0ba1ffae4af Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 10:28:04 +0000
Subject: [PATCH 122/243] Use the role for 'toggle dev tools'

Let electron handle it rather than doing it ourselves
---
 electron/src/vectormenu.js | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/electron/src/vectormenu.js b/electron/src/vectormenu.js
index f4d55c15..70ed3ac3 100644
--- a/electron/src/vectormenu.js
+++ b/electron/src/vectormenu.js
@@ -72,11 +72,7 @@ const template = [
                 role: 'togglefullscreen'
             },
             {
-                label: 'Toggle Developer Tools',
-                accelerator: process.platform == 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I',
-                click: function(item, focusedWindow) {
-                    if (focusedWindow) focusedWindow.toggleDevTools();
-                }
+                role: 'toggledevtools'
             }
         ]
     },

From 06718c580e49e4f506f01a1cf938889aaa6b371d Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 16:27:40 +0000
Subject: [PATCH 123/243] Hopefully fix Windows shortcuts

 * Revert https://github.com/vector-im/riot-web/commit/79d164309f7926cb1c24008e464a516d7a872325
   as it seems to break shortcuts altogether
 * Update electron-builder (and add the squirrel windows package
   that the newer version now requires: it's been split out). This
   uses a newer version of squirrel which has some fixes for
   shortcuts.

I'm unsure exactly what was going wrong originally in
https://github.com/vector-im/riot-web/issues/2775 but #79d1643
seems to break shortcut creation as far as I can see.
---
 electron/src/squirrelhooks.js | 7 ++++++-
 package.json                  | 3 ++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/electron/src/squirrelhooks.js b/electron/src/squirrelhooks.js
index 295ef5cf..ca0983b6 100644
--- a/electron/src/squirrelhooks.js
+++ b/electron/src/squirrelhooks.js
@@ -3,7 +3,12 @@ const spawn = require('child_process').spawn;
 const app = require('electron').app;
 
 function run_update_exe(args, done) {
-    const updateExe = path.resolve(path.dirname(process.execPath), 'Update.exe');
+    // Invokes Squirrel's Update.exe which will do things for us like create shortcuts
+    // Note that there's an Update.exe in the app-x.x.x directory and one in the parent
+    // directory: we need to run the one in the parent directory, because it discovers
+    // information about the app by inspecting the directory it's run from.
+    const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
+    console.log('Spawning `%s` with args `%s`', updateExe, args);
     spawn(updateExe, args, {
       detached: true
     }).on('close', done);
diff --git a/package.json b/package.json
index 52cc41be..b110b2af 100644
--- a/package.json
+++ b/package.json
@@ -94,7 +94,8 @@
     "chokidar": "^1.6.1",
     "cpx": "^1.3.2",
     "css-raw-loader": "^0.1.1",
-    "electron-builder": "^10.4.1",
+    "electron-builder": "^11.2.4",
+    "electron-builder-squirrel-windows": "^11.2.1",
     "emojione": "^2.2.3",
     "expect": "^1.16.0",
     "fs-extra": "^0.30.0",

From 97fc92b1bb01758294f304bc5ef687b307eec2ca Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 16:50:09 +0000
Subject: [PATCH 124/243] Update to electron 1.4.14

This pulls in the chrome change that broke geotrust ssl when the
build hit 10 weeks old, so let's get this one out before we hit
more disasters.
---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 52cc41be..59dfe1e8 100644
--- a/package.json
+++ b/package.json
@@ -126,7 +126,7 @@
   "build": {
     "appId": "im.riot.app",
     "category": "Network",
-    "electronVersion": "1.4.11",
+    "electronVersion": "1.4.14",
     "//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
     "asar": false,
     "dereference": true,

From 10f0631487589f7c0841cf049be719024150b43e Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 17:20:27 +0000
Subject: [PATCH 125/243] Build the js-sdk in the CI script

now it's transpiled
---
 scripts/jenkins.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh
index be8d8dee..bd27d6e3 100755
--- a/scripts/jenkins.sh
+++ b/scripts/jenkins.sh
@@ -19,7 +19,8 @@ tar -C olm -xz < olm/olm-*.tgz
 rm -r node_modules/olm
 cp -r olm/package node_modules/olm
 
-# we may be using a dev branch of react-sdk, in which case we need to build it
+# we may be using dev branches of js-sdk and react-sdk, in which case we need to build them
+(cd node_modules/matrix-js-sdk && npm run build)
 (cd node_modules/matrix-react-sdk && npm run build)
 
 # run the mocha tests

From 5258bf9c8455e97ce59e82150c51e31c0c681a44 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 17:25:58 +0000
Subject: [PATCH 126/243] Update README now the js-sdk has a transpile step

---
 README.md | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index f7754348..57cfd5cb 100644
--- a/README.md
+++ b/README.md
@@ -58,8 +58,11 @@ to build.
 1. Install the prerequisites: `npm install`
 1. If you are using the `develop` branch of vector-web, you will probably need
    to rebuild one of the dependencies, due to
-   https://github.com/npm/npm/issues/3055: `(cd node_modules/matrix-react-sdk
-   && npm install)`
+   https://github.com/npm/npm/issues/3055:
+   ```
+   (cd node_modules/matrix-js-sdk && npm install)
+   (cd node_modules/matrix-react-sdk && npm install)
+   ```
 1. Configure the app by copying `config.sample.json` to `config.json` and
    modifying it (see below for details)
 1. `npm run dist` to build a tarball to deploy. Untaring this file will give
@@ -241,10 +244,10 @@ Finally, build and start Riot itself:
    disables caching, so do NOT use it in production.
 1. Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
 
-When you make changes to `matrix-react-sdk`, you will need to run `npm run
-build` in the relevant directory. You can do this automatically by instead
-running `npm start` in the directory, to start a development builder which
-will watch for changes to the files and rebuild automatically.
+When you make changes to `matrix-react-sdk` or `matrix-js-sdk`, you will need
+to run `npm run build` in the relevant directory. You can do this automatically
+by instead running `npm start` in the directory, to start a development builder
+which will watch for changes to the files and rebuild automatically.
 
 If you add or remove any components from the Riot skin, you will need to rebuild
 the skin's index by running, `npm run reskindex`.

From 27e311f7e8dccb0f8e3774d77b612df3beb80529 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 18:15:06 +0000
Subject: [PATCH 127/243] Address PR comments

---
 README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 57cfd5cb..ba59ea26 100644
--- a/README.md
+++ b/README.md
@@ -57,8 +57,9 @@ to build.
 1. Switch to the vector-web directory: `cd vector-web`
 1. Install the prerequisites: `npm install`
 1. If you are using the `develop` branch of vector-web, you will probably need
-   to rebuild one of the dependencies, due to
+   to rebuild some of the dependencies, due to
    https://github.com/npm/npm/issues/3055:
+
    ```
    (cd node_modules/matrix-js-sdk && npm install)
    (cd node_modules/matrix-react-sdk && npm install)

From f17f103d1287ce4390505a31abc13fd1484abf42 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 18:19:44 +0000
Subject: [PATCH 128/243] s/build/compile/ for js sdk

---
 scripts/jenkins.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh
index bd27d6e3..6ba384e1 100755
--- a/scripts/jenkins.sh
+++ b/scripts/jenkins.sh
@@ -20,7 +20,7 @@ rm -r node_modules/olm
 cp -r olm/package node_modules/olm
 
 # we may be using dev branches of js-sdk and react-sdk, in which case we need to build them
-(cd node_modules/matrix-js-sdk && npm run build)
+(cd node_modules/matrix-js-sdk && npm run compile)
 (cd node_modules/matrix-react-sdk && npm run build)
 
 # run the mocha tests

From 70f48343ee905f09be867207f5d8eed53f3d896d Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 11 Jan 2017 19:03:52 +0000
Subject: [PATCH 129/243] It's now just build

---
 scripts/jenkins.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh
index 6ba384e1..bd27d6e3 100755
--- a/scripts/jenkins.sh
+++ b/scripts/jenkins.sh
@@ -20,7 +20,7 @@ rm -r node_modules/olm
 cp -r olm/package node_modules/olm
 
 # we may be using dev branches of js-sdk and react-sdk, in which case we need to build them
-(cd node_modules/matrix-js-sdk && npm run compile)
+(cd node_modules/matrix-js-sdk && npm run build)
 (cd node_modules/matrix-react-sdk && npm run build)
 
 # run the mocha tests

From 0d05e607f067ccc0d6d6a6740bb004262a1ff727 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 12 Jan 2017 17:24:28 +0000
Subject: [PATCH 130/243] install js-sdk in travis too

---
 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.travis.yml b/.travis.yml
index 1fbc4dcc..af738bb4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,4 +3,5 @@ node_js:
     - 6   # node v6, to match jenkins
 install:
     - npm install
+    - (cd node_modules/matrix-js-sdk && npm install)
     - (cd node_modules/matrix-react-sdk && npm run build)

From 40545bd48e45fa8f0b40841b89e6f20c1afa9599 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 13 Jan 2017 11:15:55 +0000
Subject: [PATCH 131/243] Released react-sdk & js-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index fd7c3b12..823dd04d 100644
--- a/package.json
+++ b/package.json
@@ -62,8 +62,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
-    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
+    "matrix-js-sdk": "0.7.4-rc.1",
+    "matrix-react-sdk": "0.8.5-rc.1",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 9471c30f89ded93656ac5bd3f29a296b77a8d894 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 13 Jan 2017 11:21:08 +0000
Subject: [PATCH 132/243] Prepare changelog for v0.9.6-rc.1

---
 CHANGELOG.md | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 265cbe80..00772055 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,26 @@
+Changes in [0.9.6-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.6-rc.1) (2017-01-13)
+====================================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.5...v0.9.6-rc.1)
+
+ * Build the js-sdk in the CI script
+   [\#2920](https://github.com/vector-im/riot-web/pull/2920)
+ * Hopefully fix Windows shortcuts
+   [\#2917](https://github.com/vector-im/riot-web/pull/2917)
+ * Update README now the js-sdk has a transpile step
+   [\#2921](https://github.com/vector-im/riot-web/pull/2921)
+ * Use the role for 'toggle dev tools'
+   [\#2915](https://github.com/vector-im/riot-web/pull/2915)
+ * Enable screen sharing easter-egg in desktop app
+   [\#2909](https://github.com/vector-im/riot-web/pull/2909)
+ * make electron send email validation URLs with a nextlink of riot.im
+   [\#2808](https://github.com/vector-im/riot-web/pull/2808)
+ * add Debian Stretch install steps to readme
+   [\#2809](https://github.com/vector-im/riot-web/pull/2809)
+ * Update desktop build instructions fixes #2792
+   [\#2793](https://github.com/vector-im/riot-web/pull/2793)
+ * CSS for the delete threepid button
+   [\#2784](https://github.com/vector-im/riot-web/pull/2784)
+
 Changes in [0.9.5](https://github.com/vector-im/riot-web/releases/tag/v0.9.5) (2016-12-24)
 ==========================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.4...v0.9.5)

From e1c1937855967e0a1da57d00728b091d9dbfdec0 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Fri, 13 Jan 2017 11:21:08 +0000
Subject: [PATCH 133/243] v0.9.6-rc.1

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 823dd04d..ab9e36c5 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.5",
+  "version": "0.9.6-rc.1",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From ccf7db7cc227b4d5a8996d485493b0b8f0c06cc2 Mon Sep 17 00:00:00 2001
From: Hubert Chathi <hubert@uhoreg.ca>
Date: Fri, 13 Jan 2017 15:06:29 -0500
Subject: [PATCH 134/243] Fix a couple more references to vector-web in
 README.md

---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index f82572fb..1368589e 100644
--- a/README.md
+++ b/README.md
@@ -46,9 +46,9 @@ to build.
 
 1. Install or update `node.js` so that your `npm` is at least at version `2.0.0`
 1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`
-1. Switch to the vector-web directory: `cd vector-web`
+1. Switch to the riot-web directory: `cd riot-web`
 1. Install the prerequisites: `npm install`
-1. If you are using the `develop` branch of vector-web, you will probably need
+1. If you are using the `develop` branch of riot-web, you will probably need
    to rebuild one of the dependencies, due to
    https://github.com/npm/npm/issues/3055: `(cd node_modules/matrix-react-sdk
    && npm install)`

From 002339fb86ffcd128ba90a0508d85e22a94255fa Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 16 Jan 2017 02:10:45 +0000
Subject: [PATCH 135/243] factor out some more colours

---
 src/skins/vector/css/_common.scss             |  4 +--
 .../structures/_UserSettings.scss             |  6 ++---
 .../structures/login/_Login.scss              |  2 +-
 .../views/elements/_DirectorySearchBox.scss   |  2 +-
 .../views/elements/_ProgressBar.scss          |  4 +--
 .../views/rooms/_MemberInfo.scss              |  2 +-
 .../views/rooms/_MemberList.scss              |  2 +-
 .../views/rooms/_RoomSettings.scss            |  2 +-
 src/skins/vector/css/themes/_base.scss        | 26 +++++++++++++++----
 src/skins/vector/css/themes/_dark.scss        | 20 +++++++++++++-
 .../vector-web/structures/_RoomDirectory.scss |  2 +-
 .../views/rooms/_RoomDropTarget.scss          |  2 +-
 12 files changed, 54 insertions(+), 20 deletions(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index ed96b48c..9e2ac1f4 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -174,13 +174,13 @@ textarea {
     left: 0;
     width: 100%;
     height: 100%;
-    background-color: #e9e9e9;
+    background-color: $dialog-background-bg-color;
     opacity: 0.8;
 }
 
 .mx_Dialog_lightbox .mx_Dialog_background {
     opacity: 0.85;
-    background-color: #000;
+    background-color: $lightbox-background-bg-color;
 }
 
 .mx_Dialog_lightbox .mx_Dialog {
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
index 6ba1002b..1379063d 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
@@ -58,7 +58,7 @@ limitations under the License.
     clear: both;
     margin-left: 63px;
     text-transform: uppercase;
-    color: #3d3b39;
+    color: $h3-color;
     font-weight: 600;
     font-size: 13px;
     margin-top: 26px;
@@ -166,10 +166,10 @@ limitations under the License.
 {
     display: inline-block;
     border: 0px;
-    border-bottom: 1px solid rgba(151, 151, 151, 0.5);
+    border-bottom: 1px solid $input-underline-color;
     padding: 0px;
     width: 240px;
-    color: rgba(74, 74, 74, 0.9);
+    color: $input-fg-color;
     font-family: 'Open Sans', Helvetica, Arial, Sans-Serif;
     font-size: 16px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 5f4164e8..75dc7180 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -147,7 +147,7 @@ limitations under the License.
 }
 
 .mx_Login_error {
-    color: #ff2020;
+    color: $warning-color;
     font-weight: bold;
     text-align: center;
 /*
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
index dd953ab9..66063733 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
@@ -44,7 +44,7 @@ input[type=text].mx_DirectorySearchBox_input:focus {
     padding: 3px;
     padding-left: 10px;
     padding-right: 10px;
-    background-color: #efefef;
+    background-color: $plinth-bg-color;
     border-radius: 3px;
     background-image: url('img/icon-return.svg');
     background-position: 8px 70%;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_ProgressBar.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_ProgressBar.scss
index 7b5e0c74..a3fee232 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_ProgressBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_ProgressBar.scss
@@ -16,10 +16,10 @@ limitations under the License.
 
 .mx_ProgressBar {
     height: 5px;
-    border: 1px solid black;
+    border: 1px solid $progressbar-color;
 }
 
 .mx_ProgressBar_fill {
     height: 100%;
-    background-color: #000;
+    background-color: $progressbar-color;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
index 3b4b653e..970c2496 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
@@ -61,7 +61,7 @@ limitations under the License.
 
 .mx_MemberInfo h3 {
     text-transform: uppercase;
-    color: #3d3b39;
+    color: $h3-color;
     font-weight: 600;
     font-size: 13px;
     margin-top: 16px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
index 3c7e3ec5..8a6f1172 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
@@ -96,7 +96,7 @@ limitations under the License.
 
 .mx_MemberList_invited h2 {
     text-transform: uppercase;
-    color: #3d3b39;
+    color: $h3-color;
     font-weight: 600;
     font-size: 13px;
     padding-left: 3px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
index 132c9792..d9de0e8a 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
@@ -81,7 +81,7 @@ limitations under the License.
 
 .mx_RoomSettings h3 {
     text-transform: uppercase;
-    color: #3d3b39;
+    color: $h3-color;
     font-weight: 600;
     font-size: 13px;
     margin-top: 36px;
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index b9fd2d12..e623372a 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -1,5 +1,4 @@
 
-
 // typical text (dark-on-white in light skin)
 $primary-fg-color: #454545;
 $primary-bg-color: #ffffff;
@@ -20,6 +19,12 @@ $warning-color: #ff0064;
 // left-panel style muted accent color
 $secondary-accent-color: #eaf5f0;
 
+// used by RoomDirectory permissions
+$plinth-bg-color: $secondary-accent-color;
+
+// used by RoomDropTarget
+$droptarget-bg-color: rgba(255,255,255,0.5);
+
 // used by AddressSelector
 $selected-color: #eaf5f0;
 
@@ -35,18 +40,27 @@ $input-border-color: #f0f0f0;
 // apart from login forms, which have stronger border
 $strong-input-border-color: #c7c7c7;
 
+// used for UserSettings EditableText
+$input-underline-color: rgba(151, 151, 151, 0.5);
+$input-fg-color: rgba(74, 74, 74, 0.9);
+
 // context menus
 $menu-border-color: rgba(187, 187, 187, 0.5);
 $menu-bg-color: #f6f6f6;
 
 $avatar-initial-color: #ffffff;
 
+$h3-color: #3d3b39;
+
+$dialog-background-bg-color: #e9e9e9;
+$lightbox-background-bg-color: #000;
+
 // ********************
 
 $roomtile-name-color: rgba(69, 69, 69, 0.8);
 $roomtile-selected-bg-color: rgba(255, 255, 255, 0.8);
 
-$roomsublist-label-fg-color: #3d3b39;
+$roomsublist-label-fg-color: $h3-color;
 $roomsublist-label-bg-color: #d3efe1;
 
 // ********************
@@ -64,8 +78,10 @@ $e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
 $e2e-unverified-color: #e8bf37;
 $e2e-warning-color: #ba6363;
 
-// ********************
-
+/*** ImageView ***/
 $lightbox-bg-color: #454545;
 $lightbox-fg-color: #ffffff;
-$lightbox-border-color: #ffffff;
\ No newline at end of file
+$lightbox-border-color: #ffffff;
+
+// unused?
+$progressbar-color: #000;
\ No newline at end of file
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index e2c33e3e..1d93c1a4 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -19,6 +19,12 @@ $warning-color: #ff0064;
 // left-panel style muted accent color
 $secondary-accent-color: $primary-bg-color;
 
+// used by RoomDirectory permissions
+$plinth-bg-color: #474747;
+
+// used by RoomDropTarget
+$droptarget-bg-color: rgba(45,45,45,0.5);
+
 // used by AddressSelector
 $selected-color: #eaf5f0;
 
@@ -34,18 +40,27 @@ $input-border-color: #3a3a3a;
 // apart from login forms, which have stronger border
 $strong-input-border-color: #656565;
 
+// used for UserSettings EditableText
+$input-underline-color: $primary-fg-color;
+$input-fg-color: $primary-fg-color;
+
 // context menus
 $menu-border-color: rgba(187, 187, 187, 0.5);
 $menu-bg-color: #373737;
 
 $avatar-initial-color: #2d2d2d;
 
+$h3-color: $primary-fg-color;
+
+$dialog-background-bg-color: #000;
+$lightbox-background-bg-color: #000;
+
 // ********************
 
 $roomtile-name-color: rgba(186, 186, 186, 0.8);
 $roomtile-selected-bg-color: rgba(0, 0, 0, 0.8);
 
-$roomsublist-label-fg-color: $primary-fg-color;
+$roomsublist-label-fg-color: $h3-color;
 $roomsublist-label-bg-color: #454545;
 
 // ********************
@@ -67,3 +82,6 @@ $e2e-warning-color: #ba6363;
 $lightbox-bg-color: #454545;
 $lightbox-fg-color: #ffffff;
 $lightbox-border-color: #ffffff;
+
+// unused?
+$progressbar-color: #000;
\ No newline at end of file
diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
index e5df8741..3dd885ba 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
@@ -110,7 +110,7 @@ limitations under the License.
     padding-right: 5px;
     height: 15px;
     border-radius: 11px;
-    background-color: $secondary-accent-color;
+    background-color: $plinth-bg-color;
     text-transform: uppercase;
     font-weight: 600;
     font-size: 11px;
diff --git a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
index 2fe16ca9..e91658e8 100644
--- a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
+++ b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss
@@ -24,7 +24,7 @@ limitations under the License.
     padding-bottom: 5px;
     border: 1px dashed $accent-color;
     color: $primary-fg-color;
-    background-color: rgba(255,255,255,0.5);
+    background-color: $droptarget-bg-color;
     border-radius: 4px;
 }
 

From 231306ea7ce629fe0e58cab62f038d2b6e271dc7 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 16 Jan 2017 13:24:44 +0000
Subject: [PATCH 136/243] Update js-sdk & react-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index ab9e36c5..7b2916e0 100644
--- a/package.json
+++ b/package.json
@@ -62,8 +62,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "0.7.4-rc.1",
-    "matrix-react-sdk": "0.8.5-rc.1",
+    "matrix-js-sdk": "0.7.4",
+    "matrix-react-sdk": "0.8.5",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 3f3a31e475598237d0a44bd53746a06a48965bda Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 16 Jan 2017 13:26:21 +0000
Subject: [PATCH 137/243] Prepare changelog for v0.9.6

---
 CHANGELOG.md | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 00772055..ee745baa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+Changes in [0.9.6](https://github.com/vector-im/riot-web/releases/tag/v0.9.6) (2017-01-16)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.6-rc.1...v0.9.6)
+
+ * Update to matrix-js-sdk 0.9.6 for video calling fix
+
 Changes in [0.9.6-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.6-rc.1) (2017-01-13)
 ====================================================================================================
 [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.5...v0.9.6-rc.1)

From 22060ac5a44b9d4fa66b8ffd74690588ca252297 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 16 Jan 2017 13:26:22 +0000
Subject: [PATCH 138/243] v0.9.6

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 7b2916e0..f169cf9b 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "riot-web",
   "productName": "Riot",
   "main": "electron/src/electron-main.js",
-  "version": "0.9.6-rc.1",
+  "version": "0.9.6",
   "description": "A feature-rich client for Matrix.org",
   "author": "Vector Creations Ltd.",
   "repository": {

From ae7820e8f28552ca1a19fe7612a6d1c02c5b633f Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 16 Jan 2017 13:37:18 +0000
Subject: [PATCH 139/243] Fix merge

---
 package.json | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/package.json b/package.json
index 054dedf9..f169cf9b 100644
--- a/package.json
+++ b/package.json
@@ -62,13 +62,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-<<<<<<< HEAD
-    "matrix-js-sdk": "0.7.2",
-    "matrix-react-sdk": "0.8.4",
-=======
     "matrix-js-sdk": "0.7.4",
     "matrix-react-sdk": "0.8.5",
->>>>>>> release-v0.9.6
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From b3bff92cc2cbe0f8818f2ae1563335671d0a2733 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Mon, 16 Jan 2017 18:01:25 +0000
Subject: [PATCH 140/243] Put parent build hash in webpack output filenames

In order to better support a world where old build artifacts are available
(which is necessary to support bundle.js splitting), collect all the webpack
artifacts for the build into a single directory. Then we'll be able to clear
out old builds after a few weeks, knowing they won't be in use any more.
---
 webpack.config.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/webpack.config.js b/webpack.config.js
index 3500fedc..9c0c6bbb 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -40,7 +40,8 @@ module.exports = {
     },
     output: {
         path: path.join(__dirname, "webapp"),
-        filename: "[name].[chunkhash].js",
+        filename: "[hash]/[name].js",
+        chunkFilename: "[hash]/[name].js",
         devtoolModuleFilenameTemplate: function(info) {
             // Reading input source maps gives only relative paths here for
             // everything. Until I figure out how to fix this, this is a
@@ -79,7 +80,7 @@ module.exports = {
         }),
 
         new ExtractTextPlugin(
-            "[name].[contenthash].css",
+            "[hash]/[name].css",
             {
                 allChunks: true
             }

From 906d42688eb153a10e0e8f96701af1ebf4897ee0 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 16 Jan 2017 18:40:29 +0000
Subject: [PATCH 141/243] make autoprefixer work by reordering it

---
 postcss.config.json | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/postcss.config.json b/postcss.config.json
index be3585cf..7ed32cda 100644
--- a/postcss.config.json
+++ b/postcss.config.json
@@ -1,7 +1,7 @@
 {
     "use": [
-        "autoprefixer",
         "postcss-import",
+        "autoprefixer",
         "postcss-simple-vars",
         "postcss-extend",
         "postcss-nested",
@@ -11,8 +11,5 @@
     "parser": "postcss-scss",
     "input": "src/skins/vector/css/themes/[^_]*.scss",
     "dir": "build",
-    "local-plugins": true,
-    "autoprefixer": {
-        "browsers": "> 5%"
-    }
-}
\ No newline at end of file
+    "local-plugins": true
+}

From dc1563d916900a1ad66af358edc26f02d25a1c8f Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 16 Jan 2017 18:55:29 +0000
Subject: [PATCH 142/243] strip out unneeded webkit prefixes now we're using
 autoprefixer

---
 src/skins/vector/css/_common.scss             |  5 ----
 .../structures/_FilePanel.scss                |  3 --
 .../structures/_MatrixChat.scss               | 25 ----------------
 .../structures/_NotificationPanel.scss        |  3 --
 .../structures/_RoomStatusBar.scss            |  3 --
 .../structures/_RoomView.scss                 | 29 -------------------
 .../structures/_SearchBox.scss                |  2 --
 .../structures/_UserSettings.scss             |  9 ------
 .../structures/login/_Login.scss              |  4 ---
 .../views/elements/_DirectorySearchBox.scss   |  2 --
 .../views/rooms/_LinkPreviewWidget.scss       |  4 ---
 .../views/rooms/_MemberList.scss              |  8 -----
 .../views/rooms/_MessageComposer.scss         |  1 -
 .../views/rooms/_RoomHeader.scss              | 15 ----------
 .../views/rooms/_RoomPreviewBar.scss          |  7 -----
 .../views/rooms/_SearchableEntityList.scss    |  4 ---
 .../views/voip/_IncomingCallbox.scss          |  2 --
 .../css/vector-web/structures/_LeftPanel.scss |  9 ------
 .../vector-web/structures/_RightPanel.scss    | 12 --------
 .../vector-web/structures/_RoomDirectory.scss |  9 ------
 .../vector-web/views/elements/_ImageView.scss | 14 ---------
 .../vector-web/views/elements/_Spinner.scss   |  4 ---
 .../views/globals/_GuestWarningBar.scss       |  3 --
 .../views/globals/_MatrixToolbar.scss         |  4 ---
 .../vector-web/views/rooms/_SearchBar.scss    |  3 --
 25 files changed, 184 deletions(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index 9e2ac1f4..6a623855 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -83,7 +83,6 @@ textarea {
 /* applied to side-panels and messagepanel when in RoomSettings */
 .mx_fadable {
     opacity: 1;
-    -webkit-transition: opacity 0.2s ease-in-out;
     -moz-transition: opacity 0.2s ease-in-out;
     -ms-transition: opacity 0.2s ease-in-out;
     -o-transition: opacity 0.2s ease-in-out;
@@ -128,14 +127,10 @@ textarea {
     width: 100%;
     height: 100%;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
     align-items: center;
-    -webkit-justify-content: center;
     justify-content: center;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
index 2f4a00ad..6c769a3b 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
@@ -15,13 +15,10 @@ limitations under the License.
 */
 
 .mx_FilePanel {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
-    -webkit-flex: 1 1 0;
     flex: 1 1 0;
 
     width: 100%;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
index 5587a609..61eb0170 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
@@ -27,34 +27,27 @@ limitations under the License.
 }
 
 .mx_MatrixChat_wrapper {
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 
     width: 100%;
     height: 100%;
 }
 
 .mx_MatrixToolbar {
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
     height: 40px;
 }
 
 .mx_GuestWarningBar {
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
     height: 40px;
@@ -68,52 +61,40 @@ limitations under the License.
     width: 100%;
     height: 100%;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
-    -webkit-flex: 1;
     flex: 1;
 }
 
 .mx_MatrixChat .mx_LeftPanel {
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
     background-color: $secondary-accent-color;
 
-    -webkit-flex: 0 0 235px;
     flex: 0 0 235px;
 }
 
 .mx_MatrixChat .mx_LeftPanel.collapsed {
-    -webkit-flex: 0 0 60px;
     flex: 0 0 60px;
 }
 
 .mx_MatrixChat .mx_MatrixChat_middlePanel {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
     padding-left: 20px;
     padding-right: 22px;
     background-color: $primary-bg-color;
 
-    -webkit-flex: 1;
     flex: 1;
 
     /* Experimental fix for https://github.com/vector-im/vector-web/issues/947
@@ -132,25 +113,19 @@ limitations under the License.
      * point, but instead we fudge it and make the middlePanel
      * flex itself.
      */
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 }
 
 .mx_MatrixChat .mx_RightPanel {
-    -webkit-box-ordinal-group: 3;
     -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
-    -webkit-order: 3;
     order: 3;
 
-    -webkit-flex: 0 0 235px;
     flex: 0 0 235px;
 }
 
 .mx_MatrixChat .mx_RightPanel.collapsed {
-    -webkit-flex: 0 0 122px;
     flex: 0 0 122px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
index 06dd92f3..ed818497 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
@@ -15,13 +15,10 @@ limitations under the License.
 */
 
 .mx_NotificationPanel {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
-    -webkit-flex: 1 1 0;
     flex: 1 1 0;
 
     width: 100%;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
index d0ac5a60..5daac88f 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
@@ -123,18 +123,15 @@ limitations under the License.
 
 .mx_RoomStatusBar_tabCompleteWrapper {
     display: flex;
-    display: -webkit-flex;
     height: 26px;
 }
 
 .mx_RoomStatusBar_tabCompleteWrapper .mx_TabCompleteBar {
     flex: 1 1 auto;
-    -webkit-flex: 1 1 auto;
 }
 
 .mx_RoomStatusBar_tabCompleteEol {
     flex: 0 0 auto;
-    -webkit-flex: 0 0 auto;
     color: $accent-color;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
index 182d690c..dc668236 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
@@ -18,25 +18,19 @@ limitations under the License.
     word-wrap: break-word;
     position: relative;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
     width: 100%;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_RoomView .mx_RoomHeader {
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
-    -webkit-flex: 0 0 70px;
     flex: 0 0 70px;
 }
 
@@ -53,8 +47,6 @@ limitations under the License.
     padding-right: 12px;
     margin-left: -12px;
 
-    -webkit-border-top-left-radius: 10px;
-    -webkit-border-top-right-radius: 10px;
     -moz-border-radius-topleft: 10px;
     -moz-border-radius-topright: 10px;
     border-top-left-radius: 10px;
@@ -77,10 +69,8 @@ limitations under the License.
 }
 
 .mx_RoomView_auxPanel {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
     min-width: 0px;
@@ -91,26 +81,20 @@ limitations under the License.
     overflow: auto;
     border-bottom: 1px solid $primary-hairline-color;
 
-    -webkit-flex: 0 0 auto;
     flex: 0 0 auto;
 }
 
 .mx_RoomView_topUnreadMessagesBar {
-    -webkit-box-ordinal-group: 3;
     -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
-    -webkit-order: 3;
     order: 3;
 }
 
 .mx_RoomView_messagePanel {
-    -webkit-box-ordinal-group: 4;
     -moz-box-ordinal-group: 4;
     -ms-flex-order: 4;
-    -webkit-order: 4;
     order: 4;
 
-    -webkit-flex: 1 1 0;
     flex: 1 1 0;
 
     width: 100%;
@@ -124,22 +108,17 @@ limitations under the License.
 
     min-height: 100%;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 
     justify-content: flex-end;
-    -webkit-justify-content: flex-end;
 }
 
 .mx_RoomView_searchResultsPanel .mx_RoomView_messageListWrapper {
     justify-content: flex-start;
-    -webkit-justify-content: flex-start;
 }
 
 .mx_RoomView_MessageList {
@@ -162,10 +141,8 @@ limitations under the License.
 }
 
 .mx_RoomView_invitePrompt {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
     min-width: 0px;
@@ -193,14 +170,11 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView_statusArea {
-    -webkit-box-ordinal-group: 5;
     -moz-box-ordinal-group: 5;
     -ms-flex-order: 5;
-    -webkit-order: 5;
     order: 5;
 
     width: 100%;
-    -webkit-flex: 0 0 auto;
     flex: 0 0 auto;
 }
 
@@ -257,14 +231,11 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView .mx_MessageComposer {
-    -webkit-box-ordinal-group: 6;
     -moz-box-ordinal-group: 6;
     -ms-flex-order: 6;
-    -webkit-order: 6;
     order: 6;
 
     width: 100%;
-    -webkit-flex: 0 0 auto;
     flex: 0 0 auto;
     margin-right: 2px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
index 0b536259..bd335f60 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
@@ -22,7 +22,6 @@ limitations under the License.
     padding-bottom: 22px;
 
     display: flex;
-    display: -webkit-flex;
 }
 
 .mx_SearchBox_searchButton {
@@ -38,7 +37,6 @@ limitations under the License.
 
 .mx_SearchBox_search {
     flex: 1 1 auto;
-    -webkit-flex: 1 1 auto;
     width: 0px;
     font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
     font-size: 12px;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
index 1379063d..2c62a4ec 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
@@ -20,34 +20,25 @@ limitations under the License.
     margin-left: auto;
     margin-right: auto;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_UserSettings .mx_RoomHeader {
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
-    -webkit-flex: 0 0 70px;
     flex: 0 0 70px;
 }
 
 .mx_UserSettings_body {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
-    -webkit-flex: 1 1 0;
     flex: 1 1 0;
 
     margin-top: -20px;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 75dc7180..332f313f 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -18,14 +18,10 @@ limitations under the License.
     width: 100%;
     height: 100%;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
     align-items: center;
-    -webkit-justify-content: center;
     justify-content: center;
 
     overflow: auto;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
index 66063733..8824c659 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_DirectorySearchBox.scss
@@ -22,14 +22,12 @@ limitations under the License.
 
 .mx_DirectorySearchBox_container {
     display: flex;
-    display: -webkit-flex;
     padding-left: 9px;
     padding-right: 9px;
 }
 
 .mx_DirectorySearchBox_input {
     flex-grow: 1;
-    -webkit-flex-grow: 1;
     border: 0;
     padding: 0;
     font-weight: 300;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
index 2e2d9f80..0e911541 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
@@ -18,14 +18,12 @@ limitations under the License.
     margin-top: 15px;
     margin-right: 15px;
     margin-bottom: 15px;
-    display: -webkit-flex;
     display: flex;
     border-left: 4px solid #ddd;
     color: #888;
 }
 
 .mx_LinkPreviewWidget_image {
-    -webkit-flex: 0 0 100px;
     flex: 0 0 100px;
     margin-left: 15px;
     text-align: center;
@@ -34,7 +32,6 @@ limitations under the License.
 
 .mx_LinkPreviewWidget_caption {
     margin-left: 15px;
-    -webkit-flex: 1 1 auto;
     flex: 1 1 auto;
 }
 
@@ -56,7 +53,6 @@ limitations under the License.
 .mx_LinkPreviewWidget_cancel {
     visibility: hidden;
     cursor: pointer;
-    -webkit-flex: 0 0 40px;
     flex: 0 0 40px;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
index 8a6f1172..403de7f9 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
@@ -20,22 +20,17 @@ limitations under the License.
     margin-top: 12px;
     margin-right: 20px;
 
-    -webkit-flex: 1;
     flex: 1;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_MemberList .mx_Spinner {
     flex: 0;
-    -webkit-flex: 0;
 }
 
 .mx_MemberList_chevron {
@@ -48,7 +43,6 @@ limitations under the License.
     overflow-y: auto;
 
     order: 1;
-    -webkit-flex: 1 1 0;
     flex: 1 1 0px;
 }
 
@@ -80,7 +74,6 @@ limitations under the License.
 .mx_MemberList_joined {
     order: 2;
     flex: 1 0 0;
-    -webkit-flex: 1 0 0;
 
     overflow-y: auto;
 }
@@ -89,7 +82,6 @@ limitations under the License.
 .mx_MemberList_invited {
     order: 3;
     flex: 0 0 100px;
-    -webkit-flex: 0 0 100px;
     overflow-y: auto;
 }
 */
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
index e5ffd220..a4549c0f 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
@@ -105,7 +105,6 @@ limitations under the License.
     border: 0px;
     resize: none;
     outline: none;
-    -webkit-box-shadow: none;
     -moz-box-shadow: none;
     box-shadow: none;
     color: $primary-fg-color;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
index a26f12ee..73327ea6 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
@@ -25,36 +25,28 @@ limitations under the License.
     margin: auto;
     height: 70px;
 
-    -webkit-align-items: center;
     align-items: center;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 }
 
 .mx_RoomHeader_leftRow {
     margin-left: -2px;
 
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
-    -webkit-flex: 1;
     flex: 1;
 }
 
 .mx_RoomHeader_spinner {
     height: 36px;
 
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
     padding-left: 12px;
@@ -71,16 +63,13 @@ limitations under the License.
     margin-top: -2px;
     text-align: center;
 
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
     cursor: pointer;
 
 /*
-    -webkit-flex: 0 0 90px;
     flex: 0 0 90px;
 */
     padding-left: 12px;
@@ -88,10 +77,8 @@ limitations under the License.
 }
 
 .mx_RoomHeader_cancelButton {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
 
     cursor: pointer;
@@ -105,10 +92,8 @@ limitations under the License.
     background-color: $primary-bg-color;
     display: flex;
     align-items: center;
-    -webkit-box-ordinal-group: 3;
     -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
-    -webkit-order: 3;
     order: 3;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
index 6b71f96d..0d030ad7 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
@@ -18,19 +18,14 @@ limitations under the License.
     text-align: center;
     height: 176px;
 
-    -webkit-align-items: center;
     align-items: center;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 
     justify-content: center;
-    -webkit-justify-content: center;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 }
 
@@ -56,9 +51,7 @@ limitations under the License.
 }
 
 .mx_RoomPreviewBar_warning {
-    display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
     align-items: center;
     padding: 8px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
index 9a24868d..b404da02 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
@@ -16,10 +16,8 @@ limitations under the License.
 
 .mx_SearchableEntityList {
     display: flex;
-    display: -webkit-flex;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_SearchableEntityList_query {
@@ -49,7 +47,6 @@ limitations under the License.
 
 .mx_SearchableEntityList_listWrapper {
     flex: 1;
-    -webkit-flex: 1;
 
     overflow-y: auto;
 }
@@ -67,7 +64,6 @@ limitations under the License.
 .mx_SearchableEntityList_hrWrapper {
     width: 100%;
     flex: 0 0 auto;
-    -webkit-flex: 0 0 auto;
 }
 
 .mx_SearchableEntityList hr {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss b/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
index 97a82a03..d45c4a58 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
@@ -41,14 +41,12 @@ limitations under the License.
 
 .mx_IncomingCallBox_buttons {
     display: flex;
-    display: -webkit-flex;
 }
 
 .mx_IncomingCallBox_buttons_cell {
     vertical-align: middle;
     padding: 6px;
     flex: 1;
-    -webkit-flex: 1;
 }
 
 .mx_IncomingCallBox_buttons_decline,
diff --git a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
index 4e328171..36a1e298 100644
--- a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
@@ -17,13 +17,10 @@ limitations under the License.
 .mx_LeftPanel {
     position: relative;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_LeftPanel_hideButton {
@@ -39,13 +36,10 @@ limitations under the License.
 }
 
 .mx_LeftPanel .mx_RoomList_scrollbar {
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
-    -webkit-flex: 1 1 0;
     flex: 1 1 0;
 
     overflow-y: auto;
@@ -57,16 +51,13 @@ limitations under the License.
 }
 
 .mx_LeftPanel .mx_BottomLeftMenu {
-    -webkit-box-ordinal-group: 3;
     -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
-    -webkit-order: 3;
     order: 3;
 
     border-top: 1px solid rgba(118, 207, 166, 0.2);
     margin-left: 16px; /* gutter */
     margin-right: 16px; /* gutter */
-    -webkit-flex: 0 0 60px;
     flex: 0 0 60px;
     z-index: 1;
 }
diff --git a/src/skins/vector/css/vector-web/structures/_RightPanel.scss b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
index b9dbf1cd..000d36b3 100644
--- a/src/skins/vector/css/vector-web/structures/_RightPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
@@ -17,26 +17,20 @@ limitations under the License.
 .mx_RightPanel {
     position: relative;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_RightPanel_header {
-    -webkit-box-ordinal-group: 1;
     -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
-    -webkit-order: 1;
     order: 1;
 
     border-bottom: 1px solid $primary-hairline-color;
     margin-right: 20px;
 
-    -webkit-flex: 0 0 70px;
     flex: 0 0 70px;
 }
 
@@ -81,26 +75,20 @@ limitations under the License.
 .mx_RightPanel .mx_MemberList,
 .mx_RightPanel .mx_MemberInfo,
 .mx_RightPanel_blank {
-    -webkit-box-ordinal-group: 2;
     -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
-    -webkit-order: 2;
     order: 2;
     flex: 1 1 0;
-    -webkit-flex: 1 1 0;
 }
 
 .mx_RightPanel_footer {
-    -webkit-box-ordinal-group: 3;
     -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
-    -webkit-order: 3;
     order: 3;
 
     border-top: 1px solid $primary-hairline-color;
     margin-right: 20px;
 
-    -webkit-flex: 0 0 60px;
     flex: 0 0 60px;
 }
 
diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
index 3dd885ba..c80a8d8f 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
@@ -22,33 +22,25 @@ limitations under the License.
     margin-bottom: 12px;
     color: $primary-fg-color;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_RoomDirectory_list {
-    -webkit-flex: 1;
     flex: 1;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
 
     flex-direction: column;
-    -webkit-flex-direction: column;
 }
 
 .mx_RoomDirectory_list .mx_RoomView_messageListWrapper {
     justify-content: flex-start;
-    -webkit-justify-content: flex-start;
 }
 
 .mx_RoomDirectory_listheader {
@@ -72,7 +64,6 @@ limitations under the License.
 
 .mx_RoomDirectory_tableWrapper {
     overflow-y: auto;
-    -webkit-flex: 1 1 0;
     flex: 1 1 0;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/elements/_ImageView.scss b/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
index d66d9c7d..d31a9d27 100644
--- a/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
+++ b/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
@@ -19,18 +19,14 @@ limitations under the License.
  */
 
 .mx_ImageView {
-    display: -webkit-flex;
     display: flex;
     width: 100%;
     height: 100%;
-    -webkit-align-items: center;
     align-items: center;
 }
 
 .mx_ImageView_lhs {
-    -webkit-box-ordinal-group: 1;
     order: 1;
-    -webkit-flex: 1;
     flex: 1 1 10%;
     min-width: 60px;
     /*
@@ -40,18 +36,13 @@ limitations under the License.
 }
 
 .mx_ImageView_content {
-    -webkit-box-ordinal-group: 2;
     order: 2;
     /* min-width hack needed for FF */
     min-width: 0px;
     height: 90%;
-    -webkit-flex: 15;
     flex: 15 15 0;
 
-    display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
-    -webkit-justify-content: center;
     align-items: center;
     justify-content: center;
 }
@@ -78,11 +69,8 @@ limitations under the License.
 .mx_ImageView_label {
     text-align: left;
     display: flex;
-    display: -webkit-flex;
     justify-content: center;
-    -webkit-justify-content: center;
     flex-direction: column;
-    -webkit-flex-direction: column;
     padding-left: 30px;
     padding-right: 30px;
     min-height: 100%;
@@ -141,9 +129,7 @@ limitations under the License.
 }
 
 .mx_ImageView_rhs {
-    -webkit-box-ordinal-group: 3;
     order: 3;
-    -webkit-flex: 1;
     flex: 1 1 10%;
     min-width: 300px;
     /*
diff --git a/src/skins/vector/css/vector-web/views/elements/_Spinner.scss b/src/skins/vector/css/vector-web/views/elements/_Spinner.scss
index 3831cc4c..aea57379 100644
--- a/src/skins/vector/css/vector-web/views/elements/_Spinner.scss
+++ b/src/skins/vector/css/vector-web/views/elements/_Spinner.scss
@@ -15,16 +15,12 @@ limitations under the License.
 */
 
 .mx_Spinner {
-    display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
-    -webkit-justify-content: center;
     align-items: center;
     justify-content: center;
     width: 100%;
     height: 100%;
     flex: 1;
-    -webkit-flex: 1;
 }
 
 .mx_MatrixChat_middlePanel .mx_Spinner {
diff --git a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
index e8b5aebb..2141f3a8 100644
--- a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
@@ -18,12 +18,9 @@ limitations under the License.
     background-color: $accent-color;
     color: $accent-fg-color;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
     align-items: center;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
index 9bd70bb9..9e21bcb1 100644
--- a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
@@ -18,12 +18,9 @@ limitations under the License.
     background-color: $accent-color;
     color: $accent-fg-color;
 
-    display: -webkit-box;
     display: -moz-box;
     display: -ms-flexbox;
-    display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
     align-items: center;
 }
 
@@ -34,7 +31,6 @@ limitations under the License.
 }
 
 .mx_MatrixToolbar_content {
-    -webkit-flex: 1;
     flex: 1;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss b/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
index 5d195322..079ea16c 100644
--- a/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
+++ b/src/skins/vector/css/vector-web/views/rooms/_SearchBar.scss
@@ -18,9 +18,7 @@ limitations under the License.
     padding-top: 5px;
     padding-bottom: 5px;
     display: flex;
-    display: -webkit-flex;
     align-items: center;
-    -webkit-align-items: center;
 }
 
 .mx_SearchBar_input {
@@ -32,7 +30,6 @@ limitations under the License.
     padding-left: 11px;
     width: auto;
     flex: 1 1 0;
-    -webkit-flex: 1 1 0;
 }
 
 .mx_SearchBar_searchButton {

From c305b72b918c08661d0b068121011e4ab7f5ae8f Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 16 Jan 2017 18:58:02 +0000
Subject: [PATCH 143/243] strip out unneeded -moz- prefixes

---
 src/skins/vector/css/_common.scss                     |  2 --
 .../css/matrix-react-sdk/structures/_FilePanel.scss   |  1 -
 .../css/matrix-react-sdk/structures/_MatrixChat.scss  |  9 ---------
 .../structures/_NotificationPanel.scss                |  1 -
 .../css/matrix-react-sdk/structures/_RoomView.scss    | 11 -----------
 .../matrix-react-sdk/structures/_UserSettings.scss    |  3 ---
 .../css/matrix-react-sdk/structures/login/_Login.scss |  1 -
 .../css/matrix-react-sdk/views/rooms/_MemberList.scss |  1 -
 .../views/rooms/_MessageComposer.scss                 |  1 -
 .../css/matrix-react-sdk/views/rooms/_RoomHeader.scss |  6 ------
 .../matrix-react-sdk/views/rooms/_RoomPreviewBar.scss |  1 -
 .../vector/css/vector-web/structures/_LeftPanel.scss  |  3 ---
 .../vector/css/vector-web/structures/_RightPanel.scss |  4 ----
 .../css/vector-web/structures/_RoomDirectory.scss     |  2 --
 .../vector-web/views/globals/_GuestWarningBar.scss    |  1 -
 .../css/vector-web/views/globals/_MatrixToolbar.scss  |  1 -
 16 files changed, 48 deletions(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index 6a623855..5e0b902a 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -83,7 +83,6 @@ textarea {
 /* applied to side-panels and messagepanel when in RoomSettings */
 .mx_fadable {
     opacity: 1;
-    -moz-transition: opacity 0.2s ease-in-out;
     -ms-transition: opacity 0.2s ease-in-out;
     -o-transition: opacity 0.2s ease-in-out;
 }
@@ -127,7 +126,6 @@ textarea {
     width: 100%;
     height: 100%;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     align-items: center;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
index 6c769a3b..2fb1131d 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
@@ -15,7 +15,6 @@ limitations under the License.
 */
 
 .mx_FilePanel {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
index 61eb0170..72f1feff 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
@@ -27,7 +27,6 @@ limitations under the License.
 }
 
 .mx_MatrixChat_wrapper {
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 
@@ -38,7 +37,6 @@ limitations under the License.
 }
 
 .mx_MatrixToolbar {
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -46,7 +44,6 @@ limitations under the License.
 }
 
 .mx_GuestWarningBar {
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -61,11 +58,9 @@ limitations under the License.
     width: 100%;
     height: 100%;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
@@ -73,7 +68,6 @@ limitations under the License.
 }
 
 .mx_MatrixChat .mx_LeftPanel {
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -87,7 +81,6 @@ limitations under the License.
 }
 
 .mx_MatrixChat .mx_MatrixChat_middlePanel {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
@@ -113,13 +106,11 @@ limitations under the License.
      * point, but instead we fudge it and make the middlePanel
      * flex itself.
      */
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 }
 
 .mx_MatrixChat .mx_RightPanel {
-    -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
     order: 3;
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
index ed818497..b3f724d8 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
@@ -15,7 +15,6 @@ limitations under the License.
 */
 
 .mx_NotificationPanel {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
index dc668236..6a5db95a 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
@@ -18,7 +18,6 @@ limitations under the License.
     word-wrap: break-word;
     position: relative;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     width: 100%;
@@ -27,7 +26,6 @@ limitations under the License.
 }
 
 .mx_RoomView .mx_RoomHeader {
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -47,8 +45,6 @@ limitations under the License.
     padding-right: 12px;
     margin-left: -12px;
 
-    -moz-border-radius-topleft: 10px;
-    -moz-border-radius-topright: 10px;
     border-top-left-radius: 10px;
     border-top-right-radius: 10px;
 
@@ -69,7 +65,6 @@ limitations under the License.
 }
 
 .mx_RoomView_auxPanel {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
@@ -85,13 +80,11 @@ limitations under the License.
 }
 
 .mx_RoomView_topUnreadMessagesBar {
-    -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
     order: 3;
 }
 
 .mx_RoomView_messagePanel {
-    -moz-box-ordinal-group: 4;
     -ms-flex-order: 4;
     order: 4;
 
@@ -108,7 +101,6 @@ limitations under the License.
 
     min-height: 100%;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 
@@ -141,7 +133,6 @@ limitations under the License.
 }
 
 .mx_RoomView_invitePrompt {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
@@ -170,7 +161,6 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView_statusArea {
-    -moz-box-ordinal-group: 5;
     -ms-flex-order: 5;
     order: 5;
 
@@ -231,7 +221,6 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView .mx_MessageComposer {
-    -moz-box-ordinal-group: 6;
     -ms-flex-order: 6;
     order: 6;
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
index 2c62a4ec..d190e32c 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
@@ -20,14 +20,12 @@ limitations under the License.
     margin-left: auto;
     margin-right: auto;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     flex-direction: column;
 }
 
 .mx_UserSettings .mx_RoomHeader {
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -35,7 +33,6 @@ limitations under the License.
 }
 
 .mx_UserSettings_body {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 332f313f..90dd2c1e 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -18,7 +18,6 @@ limitations under the License.
     width: 100%;
     height: 100%;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     align-items: center;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
index 403de7f9..9c1daa95 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
@@ -22,7 +22,6 @@ limitations under the License.
 
     flex: 1;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
index a4549c0f..5ecb3441 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
@@ -105,7 +105,6 @@ limitations under the License.
     border: 0px;
     resize: none;
     outline: none;
-    -moz-box-shadow: none;
     box-shadow: none;
     color: $primary-fg-color;
     background-color: $primary-bg-color;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
index 73327ea6..297a3f16 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
@@ -27,7 +27,6 @@ limitations under the License.
 
     align-items: center;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 }
@@ -35,7 +34,6 @@ limitations under the License.
 .mx_RoomHeader_leftRow {
     margin-left: -2px;
 
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -45,7 +43,6 @@ limitations under the License.
 .mx_RoomHeader_spinner {
     height: 36px;
 
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
@@ -63,7 +60,6 @@ limitations under the License.
     margin-top: -2px;
     text-align: center;
 
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
@@ -77,7 +73,6 @@ limitations under the License.
 }
 
 .mx_RoomHeader_cancelButton {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
 
@@ -92,7 +87,6 @@ limitations under the License.
     background-color: $primary-bg-color;
     display: flex;
     align-items: center;
-    -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
     order: 3;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
index 0d030ad7..2114e01a 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
@@ -24,7 +24,6 @@ limitations under the License.
 
     justify-content: center;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 }
diff --git a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
index 36a1e298..030c5367 100644
--- a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
@@ -17,7 +17,6 @@ limitations under the License.
 .mx_LeftPanel {
     position: relative;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     flex-direction: column;
@@ -36,7 +35,6 @@ limitations under the License.
 }
 
 .mx_LeftPanel .mx_RoomList_scrollbar {
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -51,7 +49,6 @@ limitations under the License.
 }
 
 .mx_LeftPanel .mx_BottomLeftMenu {
-    -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
     order: 3;
 
diff --git a/src/skins/vector/css/vector-web/structures/_RightPanel.scss b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
index 000d36b3..a76e5020 100644
--- a/src/skins/vector/css/vector-web/structures/_RightPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
@@ -17,14 +17,12 @@ limitations under the License.
 .mx_RightPanel {
     position: relative;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     flex-direction: column;
 }
 
 .mx_RightPanel_header {
-    -moz-box-ordinal-group: 1;
     -ms-flex-order: 1;
     order: 1;
 
@@ -75,14 +73,12 @@ limitations under the License.
 .mx_RightPanel .mx_MemberList,
 .mx_RightPanel .mx_MemberInfo,
 .mx_RightPanel_blank {
-    -moz-box-ordinal-group: 2;
     -ms-flex-order: 2;
     order: 2;
     flex: 1 1 0;
 }
 
 .mx_RightPanel_footer {
-    -moz-box-ordinal-group: 3;
     -ms-flex-order: 3;
     order: 3;
 
diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
index c80a8d8f..e2b65e68 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
@@ -22,7 +22,6 @@ limitations under the License.
     margin-bottom: 12px;
     color: $primary-fg-color;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 
@@ -32,7 +31,6 @@ limitations under the License.
 .mx_RoomDirectory_list {
     flex: 1;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
 
diff --git a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
index 2141f3a8..d9d3cb19 100644
--- a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
@@ -18,7 +18,6 @@ limitations under the License.
     background-color: $accent-color;
     color: $accent-fg-color;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     align-items: center;
diff --git a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
index 9e21bcb1..a425d8cd 100644
--- a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
@@ -18,7 +18,6 @@ limitations under the License.
     background-color: $accent-color;
     color: $accent-fg-color;
 
-    display: -moz-box;
     display: -ms-flexbox;
     display: flex;
     align-items: center;

From d74dfc9ee7c0affc4bc3ca7e7bf8c6befc7a46e6 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 16 Jan 2017 18:58:37 +0000
Subject: [PATCH 144/243] strip out unneeded -ms- prefixes

---
 src/skins/vector/css/_common.scss                        | 2 --
 .../css/matrix-react-sdk/structures/_FilePanel.scss      | 1 -
 .../css/matrix-react-sdk/structures/_MatrixChat.scss     | 9 ---------
 .../matrix-react-sdk/structures/_NotificationPanel.scss  | 1 -
 .../css/matrix-react-sdk/structures/_RoomView.scss       | 9 ---------
 .../css/matrix-react-sdk/structures/_UserSettings.scss   | 3 ---
 .../css/matrix-react-sdk/structures/login/_Login.scss    | 1 -
 .../css/matrix-react-sdk/views/rooms/_MemberList.scss    | 1 -
 .../css/matrix-react-sdk/views/rooms/_RoomHeader.scss    | 6 ------
 .../matrix-react-sdk/views/rooms/_RoomPreviewBar.scss    | 1 -
 .../vector/css/vector-web/structures/_LeftPanel.scss     | 3 ---
 .../vector/css/vector-web/structures/_RightPanel.scss    | 4 ----
 .../vector/css/vector-web/structures/_RoomDirectory.scss | 2 --
 .../css/vector-web/views/globals/_GuestWarningBar.scss   | 1 -
 .../css/vector-web/views/globals/_MatrixToolbar.scss     | 1 -
 15 files changed, 45 deletions(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index 5e0b902a..a2b7399e 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -83,7 +83,6 @@ textarea {
 /* applied to side-panels and messagepanel when in RoomSettings */
 .mx_fadable {
     opacity: 1;
-    -ms-transition: opacity 0.2s ease-in-out;
     -o-transition: opacity 0.2s ease-in-out;
 }
 
@@ -126,7 +125,6 @@ textarea {
     width: 100%;
     height: 100%;
 
-    display: -ms-flexbox;
     display: flex;
     align-items: center;
     justify-content: center;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
index 2fb1131d..872085b6 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_FilePanel.scss
@@ -15,7 +15,6 @@ limitations under the License.
 */
 
 .mx_FilePanel {
-    -ms-flex-order: 2;
     order: 2;
 
     flex: 1 1 0;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
index 72f1feff..05a39ea7 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
@@ -27,7 +27,6 @@ limitations under the License.
 }
 
 .mx_MatrixChat_wrapper {
-    display: -ms-flexbox;
     display: flex;
 
     flex-direction: column;
@@ -37,14 +36,12 @@ limitations under the License.
 }
 
 .mx_MatrixToolbar {
-    -ms-flex-order: 1;
     order: 1;
 
     height: 40px;
 }
 
 .mx_GuestWarningBar {
-    -ms-flex-order: 1;
     order: 1;
 
     height: 40px;
@@ -58,17 +55,14 @@ limitations under the License.
     width: 100%;
     height: 100%;
 
-    display: -ms-flexbox;
     display: flex;
 
-    -ms-flex-order: 2;
     order: 2;
 
     flex: 1;
 }
 
 .mx_MatrixChat .mx_LeftPanel {
-    -ms-flex-order: 1;
     order: 1;
 
     background-color: $secondary-accent-color;
@@ -81,7 +75,6 @@ limitations under the License.
 }
 
 .mx_MatrixChat .mx_MatrixChat_middlePanel {
-    -ms-flex-order: 2;
     order: 2;
 
     padding-left: 20px;
@@ -106,12 +99,10 @@ limitations under the License.
      * point, but instead we fudge it and make the middlePanel
      * flex itself.
      */
-    display: -ms-flexbox;
     display: flex;
 }
 
 .mx_MatrixChat .mx_RightPanel {
-    -ms-flex-order: 3;
     order: 3;
 
     flex: 0 0 235px;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
index b3f724d8..ef75678d 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_NotificationPanel.scss
@@ -15,7 +15,6 @@ limitations under the License.
 */
 
 .mx_NotificationPanel {
-    -ms-flex-order: 2;
     order: 2;
 
     flex: 1 1 0;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
index 6a5db95a..919b9f9b 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
@@ -18,7 +18,6 @@ limitations under the License.
     word-wrap: break-word;
     position: relative;
 
-    display: -ms-flexbox;
     display: flex;
     width: 100%;
 
@@ -26,7 +25,6 @@ limitations under the License.
 }
 
 .mx_RoomView .mx_RoomHeader {
-    -ms-flex-order: 1;
     order: 1;
 
     flex: 0 0 70px;
@@ -65,7 +63,6 @@ limitations under the License.
 }
 
 .mx_RoomView_auxPanel {
-    -ms-flex-order: 2;
     order: 2;
 
     min-width: 0px;
@@ -80,12 +77,10 @@ limitations under the License.
 }
 
 .mx_RoomView_topUnreadMessagesBar {
-    -ms-flex-order: 3;
     order: 3;
 }
 
 .mx_RoomView_messagePanel {
-    -ms-flex-order: 4;
     order: 4;
 
     flex: 1 1 0;
@@ -101,7 +96,6 @@ limitations under the License.
 
     min-height: 100%;
 
-    display: -ms-flexbox;
     display: flex;
 
     flex-direction: column;
@@ -133,7 +127,6 @@ limitations under the License.
 }
 
 .mx_RoomView_invitePrompt {
-    -ms-flex-order: 2;
     order: 2;
 
     min-width: 0px;
@@ -161,7 +154,6 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView_statusArea {
-    -ms-flex-order: 5;
     order: 5;
 
     width: 100%;
@@ -221,7 +213,6 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView .mx_MessageComposer {
-    -ms-flex-order: 6;
     order: 6;
 
     width: 100%;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
index d190e32c..5c1b4c5c 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
@@ -20,20 +20,17 @@ limitations under the License.
     margin-left: auto;
     margin-right: auto;
 
-    display: -ms-flexbox;
     display: flex;
     flex-direction: column;
 }
 
 .mx_UserSettings .mx_RoomHeader {
-    -ms-flex-order: 1;
     order: 1;
 
     flex: 0 0 70px;
 }
 
 .mx_UserSettings_body {
-    -ms-flex-order: 2;
     order: 2;
 
     flex: 1 1 0;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 90dd2c1e..30231b43 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -18,7 +18,6 @@ limitations under the License.
     width: 100%;
     height: 100%;
 
-    display: -ms-flexbox;
     display: flex;
     align-items: center;
     justify-content: center;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
index 9c1daa95..d87bced4 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
@@ -22,7 +22,6 @@ limitations under the License.
 
     flex: 1;
 
-    display: -ms-flexbox;
     display: flex;
 
     flex-direction: column;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
index 297a3f16..688b8a84 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
@@ -27,14 +27,12 @@ limitations under the License.
 
     align-items: center;
 
-    display: -ms-flexbox;
     display: flex;
 }
 
 .mx_RoomHeader_leftRow {
     margin-left: -2px;
 
-    -ms-flex-order: 1;
     order: 1;
 
     flex: 1;
@@ -43,7 +41,6 @@ limitations under the License.
 .mx_RoomHeader_spinner {
     height: 36px;
 
-    -ms-flex-order: 2;
     order: 2;
 
     padding-left: 12px;
@@ -60,7 +57,6 @@ limitations under the License.
     margin-top: -2px;
     text-align: center;
 
-    -ms-flex-order: 2;
     order: 2;
 
     cursor: pointer;
@@ -73,7 +69,6 @@ limitations under the License.
 }
 
 .mx_RoomHeader_cancelButton {
-    -ms-flex-order: 2;
     order: 2;
 
     cursor: pointer;
@@ -87,7 +82,6 @@ limitations under the License.
     background-color: $primary-bg-color;
     display: flex;
     align-items: center;
-    -ms-flex-order: 3;
     order: 3;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
index 2114e01a..3814f9c0 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
@@ -24,7 +24,6 @@ limitations under the License.
 
     justify-content: center;
 
-    display: -ms-flexbox;
     display: flex;
 }
 
diff --git a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
index 030c5367..1ce10e51 100644
--- a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
@@ -17,7 +17,6 @@ limitations under the License.
 .mx_LeftPanel {
     position: relative;
 
-    display: -ms-flexbox;
     display: flex;
     flex-direction: column;
 }
@@ -35,7 +34,6 @@ limitations under the License.
 }
 
 .mx_LeftPanel .mx_RoomList_scrollbar {
-    -ms-flex-order: 1;
     order: 1;
 
     flex: 1 1 0;
@@ -49,7 +47,6 @@ limitations under the License.
 }
 
 .mx_LeftPanel .mx_BottomLeftMenu {
-    -ms-flex-order: 3;
     order: 3;
 
     border-top: 1px solid rgba(118, 207, 166, 0.2);
diff --git a/src/skins/vector/css/vector-web/structures/_RightPanel.scss b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
index a76e5020..96e8698b 100644
--- a/src/skins/vector/css/vector-web/structures/_RightPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
@@ -17,13 +17,11 @@ limitations under the License.
 .mx_RightPanel {
     position: relative;
 
-    display: -ms-flexbox;
     display: flex;
     flex-direction: column;
 }
 
 .mx_RightPanel_header {
-    -ms-flex-order: 1;
     order: 1;
 
     border-bottom: 1px solid $primary-hairline-color;
@@ -73,13 +71,11 @@ limitations under the License.
 .mx_RightPanel .mx_MemberList,
 .mx_RightPanel .mx_MemberInfo,
 .mx_RightPanel_blank {
-    -ms-flex-order: 2;
     order: 2;
     flex: 1 1 0;
 }
 
 .mx_RightPanel_footer {
-    -ms-flex-order: 3;
     order: 3;
 
     border-top: 1px solid $primary-hairline-color;
diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
index e2b65e68..f0d4c860 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
@@ -22,7 +22,6 @@ limitations under the License.
     margin-bottom: 12px;
     color: $primary-fg-color;
 
-    display: -ms-flexbox;
     display: flex;
 
     flex-direction: column;
@@ -31,7 +30,6 @@ limitations under the License.
 .mx_RoomDirectory_list {
     flex: 1;
 
-    display: -ms-flexbox;
     display: flex;
 
     flex-direction: column;
diff --git a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
index d9d3cb19..f5bdbaf9 100644
--- a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
@@ -18,7 +18,6 @@ limitations under the License.
     background-color: $accent-color;
     color: $accent-fg-color;
 
-    display: -ms-flexbox;
     display: flex;
     align-items: center;
 }
diff --git a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
index a425d8cd..5a0b23ae 100644
--- a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
@@ -18,7 +18,6 @@ limitations under the License.
     background-color: $accent-color;
     color: $accent-fg-color;
 
-    display: -ms-flexbox;
     display: flex;
     align-items: center;
 }

From cab5bf8849395dab0afad1439ca3ae2a1a22b25b Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 16 Jan 2017 19:00:44 +0000
Subject: [PATCH 145/243] fix a lone lost opera vendor prefix

---
 src/skins/vector/css/_common.scss | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index a2b7399e..09f3fcfb 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -83,7 +83,7 @@ textarea {
 /* applied to side-panels and messagepanel when in RoomSettings */
 .mx_fadable {
     opacity: 1;
-    -o-transition: opacity 0.2s ease-in-out;
+    transition: opacity 0.2s ease-in-out;
 }
 
 /* XXX: critical hack to GeminiScrollbar to allow them to work in FF 42 and Chrome 48.

From 87fd136e218000c64ed9b7369ce176dc18d1fdc0 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 16 Jan 2017 23:13:47 +0000
Subject: [PATCH 146/243] factor out remaining # colours

---
 .../views/rooms/_EntityTile.scss                |  4 ++--
 .../views/rooms/_LinkPreviewWidget.scss         |  4 ++--
 .../views/rooms/_MemberInfo.scss                |  1 -
 .../views/rooms/_MessageComposer.scss           | 10 +++++-----
 .../views/rooms/_RoomHeader.scss                | 17 +++--------------
 .../views/rooms/_RoomPreviewBar.scss            |  6 +-----
 .../views/rooms/_RoomSettings.scss              |  2 +-
 .../views/rooms/_SearchableEntityList.scss      |  4 ++--
 .../views/voip/_IncomingCallbox.scss            |  4 ++--
 src/skins/vector/css/themes/_base.scss          | 13 +++++++++++++
 src/skins/vector/css/themes/_dark.scss          | 13 +++++++++++++
 .../vector-web/structures/_RoomDirectory.scss   |  4 ++--
 .../context_menus/_RoomTagContextMenu.scss      |  3 +--
 .../vector-web/views/elements/_ImageView.scss   | 13 ++++---------
 14 files changed, 51 insertions(+), 47 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss
index 2511f07d..3f360e79 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EntityTile.scss
@@ -77,12 +77,12 @@ limitations under the License.
 
 .mx_EntityTile_ellipsis .mx_EntityTile_name {
     font-style: italic;
-    font-color: $primary-fg-color;
+    color: $primary-fg-color;
 }
 
 .mx_EntityTile_invitePlaceholder .mx_EntityTile_name {
     font-style: italic;
-    font-color: $primary-fg-color;
+    color: $primary-fg-color;
 }
 
 .mx_EntityTile_unavailable .mx_EntityTile_avatar,
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
index 0e911541..33f283e0 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss
@@ -19,8 +19,8 @@ limitations under the License.
     margin-right: 15px;
     margin-bottom: 15px;
     display: flex;
-    border-left: 4px solid #ddd;
-    color: #888;
+    border-left: 4px solid $preview-widget-bar-color;
+    color: $preview-widget-fg-color;
 }
 
 .mx_LinkPreviewWidget_image {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
index 970c2496..d6fb5a19 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberInfo.scss
@@ -69,7 +69,6 @@ limitations under the License.
 }
 
 .mx_MemberInfo_profileField {
-    font-color: #999999;
     font-size: 13px;
     position: relative;
     background-color: $primary-bg-color;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
index 5ecb3441..525cc1f6 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
@@ -57,7 +57,7 @@ limitations under the License.
     height: 60px;
     text-align: center;
     font-style: italic;
-    color: #888;
+    color: $greyed-fg-color;
 }
 
 .mx_MessageComposer_input_wrapper {
@@ -90,10 +90,10 @@ limitations under the License.
 }
 
 .mx_MessageComposer_input blockquote {
-    color: rgb(119, 119, 119);
+    color: $blockquote-fg-color;
     margin: 0 0 16px;
     padding: 0 15px;
-    border-left: 4px solid rgb(221, 221, 221);
+    border-left: 4px solid $blockquote-bar-color;
 }
 
 .mx_MessageComposer_input textarea {
@@ -151,7 +151,7 @@ limitations under the License.
 
 .mx_MessageComposer_formatbar_wrapper {
     width: 100%;
-    background-color: #f7f7f7;
+    background-color: $menu-bg-color;
     box-shadow: inset 0 1px 0 0 rgba(0, 0, 0, 0.08);
 }
 
@@ -168,7 +168,7 @@ limitations under the License.
     flex-direction: row;
     align-items: center;
     font-size: 10px;
-    color: #888;
+    color: $greyed-fg-color;
 }
 
 .mx_MessageComposer_formatbar * {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
index 688b8a84..4affc994 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
@@ -16,7 +16,6 @@ limitations under the License.
 
 /* add 20px to the height of the header when editing */
 .mx_RoomHeader_editing {
-    -webit-flex: 0 0 93px ! important;
     flex: 0 0 93px ! important;
 }
 
@@ -24,25 +23,19 @@ limitations under the License.
     max-width: 960px;
     margin: auto;
     height: 70px;
-
     align-items: center;
-
     display: flex;
 }
 
 .mx_RoomHeader_leftRow {
     margin-left: -2px;
-
     order: 1;
-
     flex: 1;
 }
 
 .mx_RoomHeader_spinner {
     height: 36px;
-
     order: 2;
-
     padding-left: 12px;
     padding-right: 12px;
 }
@@ -56,9 +49,7 @@ limitations under the License.
     line-height: 34px;
     margin-top: -2px;
     text-align: center;
-
     order: 2;
-
     cursor: pointer;
 
 /*
@@ -70,9 +61,7 @@ limitations under the License.
 
 .mx_RoomHeader_cancelButton {
     order: 2;
-
     cursor: pointer;
-
     padding-left: 12px;
     padding-right: 12px;
 }
@@ -126,7 +115,7 @@ limitations under the License.
 }
 
 .mx_RoomHeader_settingsHint {
-    color: #a2a2a2 ! important;
+    color: $settings-grey-fg-color ! important;
 }
 
 .mx_RoomHeader_searchStatus {
@@ -151,7 +140,7 @@ limitations under the License.
 }
 
 .mx_RoomHeader_placeholder {
-    color: #a2a2a2 ! important;
+    color: $settings-grey-fg-color ! important;
 }
 
 .mx_RoomHeader_editable {
@@ -170,7 +159,7 @@ limitations under the License.
     vertical-align: bottom;
     float: left;
     max-height: 42px;
-    color: #A2A2A2;
+    color: $settings-grey-fg-color;
     font-weight: 300;
     font-size: 13px;
     margin-left: 19px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
index 3814f9c0..34ff3a86 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
@@ -17,13 +17,9 @@ limitations under the License.
 .mx_RoomPreviewBar {
     text-align: center;
     height: 176px;
-
     align-items: center;
-
     flex-direction: column;
-
     justify-content: center;
-
     display: flex;
 }
 
@@ -40,7 +36,7 @@ limitations under the License.
 
 .mx_RoomPreviewBar_preview_text {
     margin-top: 25px;
-    color: #a4a4a4;
+    color: $settings-grey-fg-color;
 }
 
 .mx_RoomPreviewBar_join_text a {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
index d9de0e8a..ef115f6e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
@@ -205,7 +205,7 @@ limitations under the License.
 }
 
 .mx_RoomSettings_aliasPlaceholder {
-    color: #a2a2a2;
+    color: $settings-grey-fg-color;
 }
 
 .mx_RoomSettings_buttons {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
index b404da02..6116dd92 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
@@ -69,8 +69,8 @@ limitations under the License.
 .mx_SearchableEntityList hr {
     height: 1px;
     border: 0px;
-    color: #e1dddd;
-    background-color: #e1dddd;
+    color: $primary-fg-color;
+    background-color: $primary-fg-color;
     margin-right: 15px;
     margin-top: 11px;
     margin-bottom: 11px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss b/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
index d45c4a58..64eac25d 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/voip/_IncomingCallbox.scss
@@ -61,9 +61,9 @@ limitations under the License.
 }
 
 .mx_IncomingCallBox_buttons_decline {
-    background-color: #f48080;
+    background-color: $voip-decline-color;
 }
 
 .mx_IncomingCallBox_buttons_accept {
-    background-color: #80f480;
+    background-color: $voip-accept-color;
 }
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index e623372a..4f47df64 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -55,6 +55,19 @@ $h3-color: #3d3b39;
 $dialog-background-bg-color: #e9e9e9;
 $lightbox-background-bg-color: #000;
 
+$greyed-fg-color: #888;
+
+$preview-widget-bar-color: #ddd;
+$preview-widget-fg-color: $greyed-fg-color;
+
+$blockquote-bar-color: #ddd;
+$blockquote-fg-color: #777;
+
+$settings-grey-fg-color: #a2a2a2;
+
+$voip-decline-color: #f48080;
+$voip-accept-color: #80f480;
+
 // ********************
 
 $roomtile-name-color: rgba(69, 69, 69, 0.8);
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 1d93c1a4..28b80a20 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -55,6 +55,19 @@ $h3-color: $primary-fg-color;
 $dialog-background-bg-color: #000;
 $lightbox-background-bg-color: #000;
 
+$greyed-fg-color: #888;
+
+$preview-widget-bar-color: $menu-bg-color;
+$preview-widget-fg-color: $greyed-fg-color;
+
+$blockquote-bar-color: #ddd;
+$blockquote-fg-color: #777;
+
+$settings-grey-fg-color: #a2a2a2;
+
+$voip-decline-color: #f48080;
+$voip-accept-color: #80f480;
+
 // ********************
 
 $roomtile-name-color: rgba(186, 186, 186, 0.8);
diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
index f0d4c860..8c8ceeaf 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
@@ -101,7 +101,7 @@ limitations under the License.
     text-transform: uppercase;
     font-weight: 600;
     font-size: 11px;
-    color: #61c295;
+    color: $accent-fg-color;
 }
 
 .mx_RoomDirectory_topic {
@@ -110,7 +110,7 @@ limitations under the License.
 
 .mx_RoomDirectory_alias {
     font-size: 12px;
-    color: #b3b3b3;
+    color: $settings-grey-fg-color;
 }
 
 .mx_RoomDirectory_roomMemberCount {
diff --git a/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss b/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
index 0a2e7605..16a3ab79 100644
--- a/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
+++ b/src/skins/vector/css/vector-web/views/context_menus/_RoomTagContextMenu.scss
@@ -70,8 +70,7 @@ limitations under the License.
     border-right-style: none;
     border-top-style: solid;
     border-top-width: 1px;
-    border-color: #bbbbbb;
-    opacity: 0.4;
+    border-color: $menu-border-color;
 }
 
 .mx_RoomTagContextMenu_fieldSet .mx_RoomTagContextMenu_icon {
diff --git a/src/skins/vector/css/vector-web/views/elements/_ImageView.scss b/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
index d31a9d27..66c26e12 100644
--- a/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
+++ b/src/skins/vector/css/vector-web/views/elements/_ImageView.scss
@@ -29,10 +29,8 @@ limitations under the License.
     order: 1;
     flex: 1 1 10%;
     min-width: 60px;
-    /*
-    background-color: #080;
-    height: 20px;
-    */
+    // background-color: #080;
+    // height: 20px;
 }
 
 .mx_ImageView_content {
@@ -41,7 +39,6 @@ limitations under the License.
     min-width: 0px;
     height: 90%;
     flex: 15 15 0;
-
     display: flex;
     align-items: center;
     justify-content: center;
@@ -132,8 +129,6 @@ limitations under the License.
     order: 3;
     flex: 1 1 10%;
     min-width: 300px;
-    /*
-    background-color: #800;
-    height: 20px;
-    */
+    // background-color: #800;
+    // height: 20px;
 }

From 4f8d3b0e2b02e3c41344e86abd57aff555d7c1e0 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 17 Jan 2017 02:00:34 +0000
Subject: [PATCH 147/243] more factoring

---
 src/skins/vector/css/_common.scss                             | 4 ++--
 .../vector/css/matrix-react-sdk/structures/_RoomView.scss     | 2 +-
 src/skins/vector/css/themes/_base.scss                        | 2 ++
 src/skins/vector/css/themes/_dark.scss                        | 2 ++
 src/skins/vector/css/vector-web/structures/_RightPanel.scss   | 3 ++-
 .../vector/css/vector-web/structures/_RoomDirectory.scss      | 2 +-
 6 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index 09f3fcfb..01ba81d8 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -266,12 +266,12 @@ textarea {
 
 ::-moz-selection {
     background-color: $accent-color;
-    color: white;
+    color: $selection-fg-color;
 }
 
 ::selection {
     background-color: $accent-color;
-    color: white;
+    color: $selection-fg-color;
 }
 
 /** green button with rounded corners */
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
index 919b9f9b..d1aeddec 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
@@ -46,7 +46,7 @@ limitations under the License.
     border-top-left-radius: 10px;
     border-top-right-radius: 10px;
 
-    background-color: rgba(255, 255, 255, 0.9);
+    background-color: $droptarget-bg-color;
     border: 2px #e1dddd solid;
     border-bottom: none;
     position: absolute;
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index 4f47df64..6488794d 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -13,6 +13,8 @@ $focus-bg-color: #dddddd;
 $accent-fg-color: #ffffff;
 $accent-color: #76CFA6;
 
+$selection-fg-color: $primary-bg-color;
+
 // red warning colour
 $warning-color: #ff0064;
 
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 28b80a20..62e89a7b 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -13,6 +13,8 @@ $light-fg-color: #747474;
 $accent-fg-color: $primary-bg-color;
 $accent-color: #76CFA6;
 
+$selection-fg-color: $primary-bg-color;
+
 // red warning colour
 $warning-color: #ff0064;
 
diff --git a/src/skins/vector/css/vector-web/structures/_RightPanel.scss b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
index 96e8698b..91034e63 100644
--- a/src/skins/vector/css/vector-web/structures/_RightPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_RightPanel.scss
@@ -58,7 +58,8 @@ limitations under the License.
     width: 25px;
     height: 5px;
     border-radius: 5px;
-    background-color: rgba(118, 207, 166, 0.2);
+    background-color: $accent-color;
+    opacity: 0.2;
 }
 
 .mx_RightPanel_headerButton_badge {
diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
index 8c8ceeaf..6e508ec7 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss
@@ -101,7 +101,7 @@ limitations under the License.
     text-transform: uppercase;
     font-weight: 600;
     font-size: 11px;
-    color: $accent-fg-color;
+    color: $accent-color;
 }
 
 .mx_RoomDirectory_topic {

From 3bdb330f5bb6682764acf781cc2b25aeb834e03d Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 17 Jan 2017 09:57:01 +0000
Subject: [PATCH 148/243] cheeky hack to get the ctxt menu colors right

---
 src/skins/vector/img/icon_context_message.svg | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/skins/vector/img/icon_context_message.svg b/src/skins/vector/img/icon_context_message.svg
index f2ceccfa..c3d39b1e 100644
--- a/src/skins/vector/img/icon_context_message.svg
+++ b/src/skins/vector/img/icon_context_message.svg
@@ -4,11 +4,18 @@
     <title>ED5D3E59-2561-4AC1-9B43-82FBC51767FC</title>
     <desc>Created with sketchtool.</desc>
     <defs></defs>
+    <!-- use a filter so that the tinter doesn't have to flip black to white as well as white to black -->
+    <filter id="invert">
+        <feColorMatrix in="SourceGraphic" type="matrix" values="-1 0 0 0 1
+                                                                0 -1 0 0 1
+                                                                0 0 -1 0 1
+                                                                0 0 0  1 0"/>
+    </filter>
     <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="icon_context">
-            <g>
-                <path d="M9.5,19 C14.7467051,19 19,14.7467051 19,9.5 C19,4.25329488 14.7467051,0 9.5,0 C4.25329488,0 0,4.25329488 0,9.5 C0,14.7467051 4.25329488,19 9.5,19 Z" id="Oval-69" fill="#ECECEC"></path>
-                <path d="M4.5,9.50063771 C4.5,9.13148623 4.59887838,8.85242947 4.7966381,8.66345907 C4.99439782,8.47448867 5.28224377,8.38000488 5.66018457,8.38000488 C6.0249414,8.38000488 6.3072941,8.47668596 6.50725115,8.67005103 C6.70720821,8.86341609 6.80718523,9.14027555 6.80718523,9.50063771 C6.80718523,9.84781589 6.70610956,10.1213794 6.50395517,10.3213365 C6.30180079,10.5212935 6.02054674,10.6212705 5.66018457,10.6212705 C5.29103309,10.6212705 5.00538444,10.5234908 4.80323006,10.3279284 C4.60107568,10.132366 4.5,9.85660521 4.5,9.50063771 L4.5,9.50063771 Z M8.3431114,9.50063771 C8.3431114,9.13148623 8.44198978,8.85242947 8.63974951,8.66345907 C8.83750923,8.47448867 9.12755247,8.38000488 9.50988794,8.38000488 C9.87464476,8.38000488 10.1569975,8.47668596 10.3569545,8.67005103 C10.5569116,8.86341609 10.6568886,9.14027555 10.6568886,9.50063771 C10.6568886,9.84781589 10.5558129,10.1213794 10.3536585,10.3213365 C10.1515042,10.5212935 9.8702501,10.6212705 9.50988794,10.6212705 C9.13634179,10.6212705 8.84849585,10.5234908 8.64634146,10.3279284 C8.44418708,10.132366 8.3431114,9.85660521 8.3431114,9.50063771 L8.3431114,9.50063771 Z M12.1928148,9.50063771 C12.1928148,9.13148623 12.2916931,8.85242947 12.4894529,8.66345907 C12.6872126,8.47448867 12.9750585,8.38000488 13.3529993,8.38000488 C13.7177562,8.38000488 14.0001089,8.47668596 14.2000659,8.67005103 C14.400023,8.86341609 14.5,9.14027555 14.5,9.50063771 C14.5,9.84781589 14.3989243,10.1213794 14.1967699,10.3213365 C13.9946156,10.5212935 13.7133615,10.6212705 13.3529993,10.6212705 C12.9838479,10.6212705 12.6981992,10.5234908 12.4960448,10.3279284 C12.2938904,10.132366 12.1928148,9.85660521 12.1928148,9.50063771 L12.1928148,9.50063771 Z" id="…" fill="#9B9B9B"></path>
+            <g filter="url(#invert)">
+                <path d="M9.5,19 C14.7467051,19 19,14.7467051 19,9.5 C19,4.25329488 14.7467051,0 9.5,0 C4.25329488,0 0,4.25329488 0,9.5 C0,14.7467051 4.25329488,19 9.5,19 Z" id="Oval-69" fill="#000" opacity="0.2"></path>
+                <path d="M4.5,9.50063771 C4.5,9.13148623 4.59887838,8.85242947 4.7966381,8.66345907 C4.99439782,8.47448867 5.28224377,8.38000488 5.66018457,8.38000488 C6.0249414,8.38000488 6.3072941,8.47668596 6.50725115,8.67005103 C6.70720821,8.86341609 6.80718523,9.14027555 6.80718523,9.50063771 C6.80718523,9.84781589 6.70610956,10.1213794 6.50395517,10.3213365 C6.30180079,10.5212935 6.02054674,10.6212705 5.66018457,10.6212705 C5.29103309,10.6212705 5.00538444,10.5234908 4.80323006,10.3279284 C4.60107568,10.132366 4.5,9.85660521 4.5,9.50063771 L4.5,9.50063771 Z M8.3431114,9.50063771 C8.3431114,9.13148623 8.44198978,8.85242947 8.63974951,8.66345907 C8.83750923,8.47448867 9.12755247,8.38000488 9.50988794,8.38000488 C9.87464476,8.38000488 10.1569975,8.47668596 10.3569545,8.67005103 C10.5569116,8.86341609 10.6568886,9.14027555 10.6568886,9.50063771 C10.6568886,9.84781589 10.5558129,10.1213794 10.3536585,10.3213365 C10.1515042,10.5212935 9.8702501,10.6212705 9.50988794,10.6212705 C9.13634179,10.6212705 8.84849585,10.5234908 8.64634146,10.3279284 C8.44418708,10.132366 8.3431114,9.85660521 8.3431114,9.50063771 L8.3431114,9.50063771 Z M12.1928148,9.50063771 C12.1928148,9.13148623 12.2916931,8.85242947 12.4894529,8.66345907 C12.6872126,8.47448867 12.9750585,8.38000488 13.3529993,8.38000488 C13.7177562,8.38000488 14.0001089,8.47668596 14.2000659,8.67005103 C14.400023,8.86341609 14.5,9.14027555 14.5,9.50063771 C14.5,9.84781589 14.3989243,10.1213794 14.1967699,10.3213365 C13.9946156,10.5212935 13.7133615,10.6212705 13.3529993,10.6212705 C12.9838479,10.6212705 12.6981992,10.5234908 12.4960448,10.3279284 C12.2938904,10.132366 12.1928148,9.85660521 12.1928148,9.50063771 L12.1928148,9.50063771 Z" id="…" fill="#000" opacity="0.6"></path>
             </g>
         </g>
     </g>

From ef07a6035ed58184f94464abcee035592e666078 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 17 Jan 2017 10:48:38 +0000
Subject: [PATCH 149/243] Fix links to fonts and images from CSS

https://github.com/vector-im/riot-web/pull/2961 put the CSS in a subdirectory,
which meant that links from CSS to images and fonts were broken. Fix them up.
---
 .../views/elements/DirectorySearchBox.css      |  4 ++--
 .../matrix-react-sdk/views/rooms/RoomTile.css  |  2 +-
 src/skins/vector/css/vector-web/fonts.css      | 18 ++++++++++--------
 .../vector-web/views/elements/ImageView.css    |  2 +-
 4 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css b/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css
index 3a0922bc..5686ecd0 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css
@@ -46,7 +46,7 @@ input[type=text].mx_DirectorySearchBox_input:focus {
     padding-right: 10px;
     background-color: #efefef;
     border-radius: 3px;
-    background-image: url('img/icon-return.svg');
+    background-image: url('../img/icon-return.svg');
     background-position: 8px 70%;
     background-repeat: no-repeat;
     text-indent: 18px;
@@ -63,7 +63,7 @@ input[type=text].mx_DirectorySearchBox_input:focus {
 .mx_DirectorySearchBox_clear {
     display: inline-block;
     vertical-align: middle;
-    background: url('img/icon_context_delete.svg');
+    background: url('../img/icon_context_delete.svg');
     background-position: 0 50%;
     background-repeat: no-repeat;
     width: 15px;
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 2822d82e..2411d613 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
@@ -65,7 +65,7 @@ limitations under the License.
     position: absolute;
     content: "";
     border-radius: 40px;
-    background-image: url("img/icons_ellipsis.svg");
+    background-image: url("../img/icons_ellipsis.svg");
     background-size: 25px;
     width: 24px;
     height: 24px;
diff --git a/src/skins/vector/css/vector-web/fonts.css b/src/skins/vector/css/vector-web/fonts.css
index 719eeebc..a57d9952 100644
--- a/src/skins/vector/css/vector-web/fonts.css
+++ b/src/skins/vector/css/vector-web/fonts.css
@@ -3,44 +3,46 @@
  * Includes extended Latin, Greek, Cyrillic and Vietnamese character sets
  */
 
+/* the 'src' links are relative to the bundle.css, which is in a subdirectory.
+ */
 @font-face {
     font-family: 'Open Sans';
-    src: url('fonts/Open_Sans/OpenSans-Regular.ttf') format('truetype');
+    src: url('../fonts/Open_Sans/OpenSans-Regular.ttf') format('truetype');
     font-weight: 400;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('fonts/Open_Sans/OpenSans-Italic.ttf') format('truetype');
+    src: url('../fonts/Open_Sans/OpenSans-Italic.ttf') format('truetype');
     font-weight: 400;
     font-style: italic;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('fonts/Open_Sans/OpenSans-Semibold.ttf') format('truetype');
+    src: url('../fonts/Open_Sans/OpenSans-Semibold.ttf') format('truetype');
     font-weight: 600;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('fonts/Open_Sans/OpenSans-SemiboldItalic.ttf') format('truetype');
+    src: url('../fonts/Open_Sans/OpenSans-SemiboldItalic.ttf') format('truetype');
     font-weight: 600;
     font-style: italic;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('fonts/Open_Sans/OpenSans-Bold.ttf') format('truetype');
+    src: url('../fonts/Open_Sans/OpenSans-Bold.ttf') format('truetype');
     font-weight: 700;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('fonts/Open_Sans/OpenSans-BoldItalic.ttf') format('truetype');
+    src: url('../fonts/Open_Sans/OpenSans-BoldItalic.ttf') format('truetype');
     font-weight: 700;
     font-style: italic;
 }
@@ -52,14 +54,14 @@
 
 @font-face {
     font-family: 'Fira Mono';
-    src: url('fonts/Fira_Mono/FiraMono-Regular.ttf') format('truetype');
+    src: url('../fonts/Fira_Mono/FiraMono-Regular.ttf') format('truetype');
     font-weight: 400;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Fira Mono';
-    src: url('fonts/Fira_Mono/FiraMono-Bold.ttf') format('truetype');
+    src: url('../fonts/Fira_Mono/FiraMono-Bold.ttf') format('truetype');
     font-weight: 700;
     font-style: normal;
 }
diff --git a/src/skins/vector/css/vector-web/views/elements/ImageView.css b/src/skins/vector/css/vector-web/views/elements/ImageView.css
index 03223f25..0942b593 100644
--- a/src/skins/vector/css/vector-web/views/elements/ImageView.css
+++ b/src/skins/vector/css/vector-web/views/elements/ImageView.css
@@ -62,7 +62,7 @@ limitations under the License.
     max-height: 100%;
     /* object-fit hack needed for Chrome due to Chrome not re-laying-out until you refresh */
     object-fit: contain;
-    /* background-image: url('img/trans.png'); */
+    /* background-image: url('../img/trans.png'); */
     pointer-events: all;
 }
 

From 205676a97da4a756d63eb4b050caf350668b11d4 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 17 Jan 2017 11:30:59 +0000
Subject: [PATCH 150/243] Back to develop js-sdk & react-sdk

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index f169cf9b..b79db54a 100644
--- a/package.json
+++ b/package.json
@@ -62,8 +62,8 @@
     "gfm.css": "^1.1.1",
     "highlight.js": "^9.0.0",
     "linkifyjs": "^2.1.3",
-    "matrix-js-sdk": "0.7.4",
-    "matrix-react-sdk": "0.8.5",
+    "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
+    "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
     "modernizr": "^3.1.0",
     "q": "^1.4.1",
     "react": "^15.4.0",

From 4a1b04e57be363f3c45f356c1862cf5853769e10 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 17 Jan 2017 11:58:30 +0000
Subject: [PATCH 151/243] Add another layer of directory to webpack chunks

---
 .../views/elements/DirectorySearchBox.css        |  4 ++--
 .../matrix-react-sdk/views/rooms/RoomTile.css    |  2 +-
 src/skins/vector/css/vector-web/fonts.css        | 16 ++++++++--------
 .../css/vector-web/views/elements/ImageView.css  |  2 +-
 webpack.config.js                                | 15 ++++++++++++---
 5 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css b/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css
index 5686ecd0..c81974eb 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/DirectorySearchBox.css
@@ -46,7 +46,7 @@ input[type=text].mx_DirectorySearchBox_input:focus {
     padding-right: 10px;
     background-color: #efefef;
     border-radius: 3px;
-    background-image: url('../img/icon-return.svg');
+    background-image: url('../../img/icon-return.svg');
     background-position: 8px 70%;
     background-repeat: no-repeat;
     text-indent: 18px;
@@ -63,7 +63,7 @@ input[type=text].mx_DirectorySearchBox_input:focus {
 .mx_DirectorySearchBox_clear {
     display: inline-block;
     vertical-align: middle;
-    background: url('../img/icon_context_delete.svg');
+    background: url('../../img/icon_context_delete.svg');
     background-position: 0 50%;
     background-repeat: no-repeat;
     width: 15px;
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 2411d613..b752d105 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
@@ -65,7 +65,7 @@ limitations under the License.
     position: absolute;
     content: "";
     border-radius: 40px;
-    background-image: url("../img/icons_ellipsis.svg");
+    background-image: url("../../img/icons_ellipsis.svg");
     background-size: 25px;
     width: 24px;
     height: 24px;
diff --git a/src/skins/vector/css/vector-web/fonts.css b/src/skins/vector/css/vector-web/fonts.css
index a57d9952..52ac95b5 100644
--- a/src/skins/vector/css/vector-web/fonts.css
+++ b/src/skins/vector/css/vector-web/fonts.css
@@ -7,42 +7,42 @@
  */
 @font-face {
     font-family: 'Open Sans';
-    src: url('../fonts/Open_Sans/OpenSans-Regular.ttf') format('truetype');
+    src: url('../../fonts/Open_Sans/OpenSans-Regular.ttf') format('truetype');
     font-weight: 400;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('../fonts/Open_Sans/OpenSans-Italic.ttf') format('truetype');
+    src: url('../../fonts/Open_Sans/OpenSans-Italic.ttf') format('truetype');
     font-weight: 400;
     font-style: italic;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('../fonts/Open_Sans/OpenSans-Semibold.ttf') format('truetype');
+    src: url('../../fonts/Open_Sans/OpenSans-Semibold.ttf') format('truetype');
     font-weight: 600;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('../fonts/Open_Sans/OpenSans-SemiboldItalic.ttf') format('truetype');
+    src: url('../../fonts/Open_Sans/OpenSans-SemiboldItalic.ttf') format('truetype');
     font-weight: 600;
     font-style: italic;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('../fonts/Open_Sans/OpenSans-Bold.ttf') format('truetype');
+    src: url('../../fonts/Open_Sans/OpenSans-Bold.ttf') format('truetype');
     font-weight: 700;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Open Sans';
-    src: url('../fonts/Open_Sans/OpenSans-BoldItalic.ttf') format('truetype');
+    src: url('../../fonts/Open_Sans/OpenSans-BoldItalic.ttf') format('truetype');
     font-weight: 700;
     font-style: italic;
 }
@@ -54,14 +54,14 @@
 
 @font-face {
     font-family: 'Fira Mono';
-    src: url('../fonts/Fira_Mono/FiraMono-Regular.ttf') format('truetype');
+    src: url('../../fonts/Fira_Mono/FiraMono-Regular.ttf') format('truetype');
     font-weight: 400;
     font-style: normal;
 }
 
 @font-face {
     font-family: 'Fira Mono';
-    src: url('../fonts/Fira_Mono/FiraMono-Bold.ttf') format('truetype');
+    src: url('../../fonts/Fira_Mono/FiraMono-Bold.ttf') format('truetype');
     font-weight: 700;
     font-style: normal;
 }
diff --git a/src/skins/vector/css/vector-web/views/elements/ImageView.css b/src/skins/vector/css/vector-web/views/elements/ImageView.css
index 0942b593..73aaaa86 100644
--- a/src/skins/vector/css/vector-web/views/elements/ImageView.css
+++ b/src/skins/vector/css/vector-web/views/elements/ImageView.css
@@ -62,7 +62,7 @@ limitations under the License.
     max-height: 100%;
     /* object-fit hack needed for Chrome due to Chrome not re-laying-out until you refresh */
     object-fit: contain;
-    /* background-image: url('../img/trans.png'); */
+    /* background-image: url('../../img/trans.png'); */
     pointer-events: all;
 }
 
diff --git a/webpack.config.js b/webpack.config.js
index 9c0c6bbb..2a38d139 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -40,8 +40,17 @@ module.exports = {
     },
     output: {
         path: path.join(__dirname, "webapp"),
-        filename: "[hash]/[name].js",
-        chunkFilename: "[hash]/[name].js",
+
+        // the generated js (and CSS, from the ExtractTextPlugin) are put in a
+        // unique subdirectory for the build. There will only be one such
+        // 'bundle' directory in the generated tarball; however, hosting
+        // servers can collect 'bundles' from multiple versions into one
+        // directory and symlink it into place - this allows users who loaded
+        // an older version of the application to continue to access webpack
+        // chunks even after the app is redeployed.
+        //
+        filename: "bundles/[hash]/[name].js",
+        chunkFilename: "bundles/[hash]/[name].js",
         devtoolModuleFilenameTemplate: function(info) {
             // Reading input source maps gives only relative paths here for
             // everything. Until I figure out how to fix this, this is a
@@ -80,7 +89,7 @@ module.exports = {
         }),
 
         new ExtractTextPlugin(
-            "[hash]/[name].css",
+            "bundles/[hash]/[name].css",
             {
                 allChunks: true
             }

From 3b109f761283d1aac5f4ff26462bd4f77ff83155 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 17 Jan 2017 13:16:08 +0000
Subject: [PATCH 152/243] Include current version in update check explicitly

Hopefully fix https://github.com/vector-im/riot-web/issues/2847
---
 electron/src/electron-main.js | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 675640a5..3f7c0f07 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -112,7 +112,15 @@ function startAutoUpdate(update_base_url) {
         // 204 No Content. On windows it takes a base path and looks for
         // files under that path.
         if (process.platform == 'darwin') {
-            electron.autoUpdater.setFeedURL(update_base_url + 'macos/');
+            // include the current version in the URL we hit. Electron doesn't add
+            // it anywhere (apart from the User-Agent) so it's up to us. We could
+            // (and previously did) just use the User-Agent, but this doesn't
+            // rely on NSURLConnection setting the User-Agent to what we expect,
+            // and also acts as a convenient cache-buster between versions.
+            electron.autoUpdater.setFeedURL(
+                update_base_url +
+                'macos/?localVersion=' + encodeURIComponent(electron.app.getVersion())
+            );
         } else if (process.platform == 'win32') {
             electron.autoUpdater.setFeedURL(update_base_url + 'win32/' + process.arch + '/');
         } else {

From 8371006d90e37d554cc1d05e94f10f6d0f4134b7 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 17 Jan 2017 13:55:33 +0000
Subject: [PATCH 153/243] Update redeploy script to keep old bundles

... so that people using old versions of the master chunk can still load other
webpack chunks.
---
 scripts/redeploy.py | 142 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 118 insertions(+), 24 deletions(-)

diff --git a/scripts/redeploy.py b/scripts/redeploy.py
index 36585f53..4394f292 100755
--- a/scripts/redeploy.py
+++ b/scripts/redeploy.py
@@ -1,13 +1,32 @@
 #!/usr/bin/env python
+#
+# auto-deploy script for https://riot.im/develop
+#
+# Listens for HTTP hits. When it gets one, downloads the artifact from jenkins
+# and deploys it as the new version.
+#
+# Requires the following python packages:
+#
+#   - requests
+#   - flask
+#
 from __future__ import print_function
 import json, requests, tarfile, argparse, os, errno
+import time
 from urlparse import urljoin
 from flask import Flask, jsonify, request, abort
+
 app = Flask(__name__)
 
-arg_jenkins_url, arg_extract_path, arg_should_clean, arg_symlink, arg_config_location = (
-    None, None, None, None, None
-)
+arg_jenkins_url = None
+arg_extract_path = None
+arg_bundles_path = None
+arg_should_clean = None
+arg_symlink = None
+arg_config_location = None
+
+class DeployException(Exception):
+    pass
 
 def download_file(url):
     local_filename = url.split('/')[-1]
@@ -57,6 +76,9 @@ def on_receive_jenkins_poke():
         abort(400, "Missing or bad build number")
         return
 
+    return fetch_jenkins_build(job_name, build_num)
+
+def fetch_jenkins_build(job_name, build_num):
     artifact_url = urljoin(
         arg_jenkins_url, "job/%s/%s/api/json" % (job_name, build_num)
     )
@@ -106,7 +128,31 @@ def on_receive_jenkins_poke():
         arg_jenkins_url, "job/%s/%s/artifact/%s" % (job_name, build_num, tar_gz_path)
     )
 
-    print("Retrieving .tar.gz file: %s" % tar_gz_url)
+    # we extract into a directory based on the build number. This avoids the
+    # problem of multiple builds building the same git version and thus having
+    # the same tarball name. That would lead to two potential problems:
+    #   (a) sometimes jenkins serves corrupted artifacts; we would replace
+    #       a good deploy with a bad one
+    #   (b) we'll be overwriting the live deployment, which means people might
+    #       see half-written files.
+    build_dir = os.path.join(arg_extract_path, "%s-#%s" % (job_name, build_num))
+    try:
+        deploy_tarball(tar_gz_url, build_dir)
+    except DeployException as e:
+        abort(400, e.message)
+
+    return jsonify({})
+
+def deploy_tarball(tar_gz_url, build_dir):
+    """Download a tarball from jenkins and deploy it as the new version
+    """
+    print("Deploying %s to %s" % (tar_gz_url, build_dir))
+
+    if os.path.exists(build_dir):
+        raise DeployException(
+            "Not deploying. We have previously deployed this build."
+        )
+    os.mkdir(build_dir)
 
     # we rely on the fact that flask only serves one request at a time to
     # ensure that we do not overwrite a tarball from a concurrent request.
@@ -114,19 +160,6 @@ def on_receive_jenkins_poke():
     print("Downloaded file: %s" % filename)
 
     try:
-        # we extract into a directory based on the build number. This avoids the
-        # problem of multiple builds building the same git version and thus having
-        # the same tarball name. That would lead to two potential problems:
-        #   (a) sometimes jenkins serves corrupted artifacts; we would replace
-        #       a good deploy with a bad one
-        #   (b) we'll be overwriting the live deployment, which means people might
-        #       see half-written files.
-        build_dir = os.path.join(arg_extract_path, "%s-#%s" % (job_name, build_num))
-        if os.path.exists(build_dir):
-            abort(400, "Not deploying. We have previously deployed this build.")
-            return
-        os.mkdir(build_dir)
-
         untar_to(filename, build_dir)
         print("Extracted to: %s" % build_dir)
     finally:
@@ -139,9 +172,47 @@ def on_receive_jenkins_poke():
     if arg_config_location:
         create_symlink(source=arg_config_location, linkname=os.path.join(extracted_dir, 'config.json'))
 
+    if arg_bundles_path:
+        extracted_bundles = os.path.join(extracted_dir, 'bundles')
+        move_bundles(source=extracted_bundles, dest=arg_bundles_path)
+
+        # replace the (hopefully now empty) extracted_bundles dir with a
+        # symlink to the common dir.
+        relpath = os.path.relpath(arg_bundles_path, extracted_dir)
+        os.rmdir(extracted_bundles)
+        print ("Symlink %s -> %s" % (extracted_bundles, relpath))
+        os.symlink(relpath, extracted_bundles)
+
     create_symlink(source=extracted_dir, linkname=arg_symlink)
 
-    return jsonify({})
+def move_bundles(source, dest):
+    """Move the contents of the 'bundles' directory to a common dir
+
+    We check that we will not be overwriting anything before we proceed.
+
+    Args:
+        source (str): path to 'bundles' within the extracted tarball
+        dest (str): target common directory
+    """
+
+    if not os.path.isdir(dest):
+        os.mkdir(dest)
+
+    # build a map from source to destination, checking for non-existence as we go.
+    renames = {}
+    for f in os.listdir(source):
+        dst = os.path.join(dest, f)
+        if os.path.exists(dst):
+            raise DeployException(
+                "Not deploying. The bundle includes '%s' which we have previously deployed."
+                % f
+            )
+        renames[os.path.join(source, f)] = dst
+
+    for (src, dst) in renames.iteritems():
+        print ("Move %s -> %s" % (src, dst))
+        os.rename(src, dst)
+
 
 if __name__ == "__main__":
     parser = argparse.ArgumentParser("Runs a Vector redeployment server.")
@@ -161,6 +232,13 @@ if __name__ == "__main__":
             "The location to extract .tar.gz files to."
         )
     )
+    parser.add_argument(
+        "-b", "--bundles-dir", dest="bundles_dir", help=(
+            "A directory to move the contents of the 'bundles' directory to. A \
+            symlink to the bundles directory will also be written inside the \
+            extracted tarball. Example: './bundles'."
+        )
+    )
     parser.add_argument(
         "-c", "--clean", dest="clean", action="store_true", default=False, help=(
             "Remove .tar.gz files after they have been downloaded and extracted."
@@ -179,18 +257,34 @@ if __name__ == "__main__":
             To this location."
         )
     )
+    parser.add_argument(
+        "--test", dest="tarball_uri", help=(
+            "Don't start an HTTP listener. Instead download a build from Jenkins \
+            immediately."
+        ),
+    )
+
     args = parser.parse_args()
     if args.jenkins.endswith("/"): # important for urljoin
         arg_jenkins_url = args.jenkins
     else:
         arg_jenkins_url = args.jenkins + "/"
     arg_extract_path = args.extract
+    arg_bundles_path = args.bundles_dir
     arg_should_clean = args.clean
     arg_symlink = args.symlink
     arg_config_location = args.config
-    print(
-        "Listening on port %s. Extracting to %s%s. Symlinking to %s. Jenkins URL: %s. Config location: %s" %
-        (args.port, arg_extract_path,
-            " (clean after)" if arg_should_clean else "", arg_symlink, arg_jenkins_url, arg_config_location)
-    )
-    app.run(host="0.0.0.0", port=args.port, debug=True)
+
+    if not os.path.isdir(arg_extract_path):
+        os.mkdir(arg_extract_path)
+
+    if args.tarball_uri is not None:
+        build_dir = os.path.join(arg_extract_path, "test-%i" % (time.time()))
+        deploy_tarball(args.tarball_uri, build_dir)
+    else:
+        print(
+            "Listening on port %s. Extracting to %s%s. Symlinking to %s. Jenkins URL: %s. Config location: %s" %
+            (args.port, arg_extract_path,
+             " (clean after)" if arg_should_clean else "", arg_symlink, arg_jenkins_url, arg_config_location)
+        )
+        app.run(host="0.0.0.0", port=args.port, debug=True)

From cf92e7f64bfc480dd860ce52d8c986c9d8c708df Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 17 Jan 2017 14:04:42 +0000
Subject: [PATCH 154/243] Clarify comment

---
 electron/src/electron-main.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 3f7c0f07..a03a8755 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -116,7 +116,8 @@ function startAutoUpdate(update_base_url) {
             // it anywhere (apart from the User-Agent) so it's up to us. We could
             // (and previously did) just use the User-Agent, but this doesn't
             // rely on NSURLConnection setting the User-Agent to what we expect,
-            // and also acts as a convenient cache-buster between versions.
+            // and also acts as a convenient cache-buster to ensure that when the
+            // app updates it always gets a fresh value to avoid update-looping.
             electron.autoUpdater.setFeedURL(
                 update_base_url +
                 'macos/?localVersion=' + encodeURIComponent(electron.app.getVersion())

From c9c58ab0ecb966aca6d3d710db149b83bb4fa5ba Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 17 Jan 2017 14:10:09 +0000
Subject: [PATCH 155/243] fix up the contextual menu button

---
 .../matrix-react-sdk/views/rooms/_EventTile.scss  | 10 +++++++++-
 src/skins/vector/css/themes/_base.scss            |  2 ++
 src/skins/vector/css/themes/_dark.scss            |  2 ++
 src/skins/vector/img/icon_context_message.svg     | 13 +++----------
 .../vector/img/icon_context_message_dark.svg      | 15 +++++++++++++++
 5 files changed, 31 insertions(+), 11 deletions(-)
 create mode 100644 src/skins/vector/img/icon_context_message_dark.svg

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
index a6b10e24..b79db919 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
@@ -146,7 +146,12 @@ limitations under the License.
     z-index: 1;
     position: relative;
     width: 90px;
-    height: 1px; /* Hack to stop the height of this pushing the messages apart. Replaces marigin-top: -6px. This interacts better with a read marker being in between. Content overflows. */
+
+    /* Hack to stop the height of this pushing the messages apart.
+       Replaces margin-top: -6px. This interacts better with a read
+       marker being in between. Content overflows. */
+    height: 1px;
+
     margin-right: 10px;
 }
 
@@ -172,6 +177,9 @@ limitations under the License.
     cursor: pointer;
     top: 6px;
     right: 6px;
+    width: 19px;
+    height: 19px;
+    background-image: url($edit-button-url);
 }
 
 .mx_EventTile:hover .mx_EventTile_editButton,
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index 6488794d..ad18eb49 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -88,6 +88,8 @@ $event-notsent-color: #f44;
 // event timestamp
 $event-timestamp-color: #acacac;
 
+$edit-button-url: "/img/icon_context_message.svg";
+
 // e2e
 $e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
 $e2e-unverified-color: #e8bf37;
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 62e89a7b..e3e32e84 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -88,6 +88,8 @@ $event-notsent-color: #f44;
 // event timestamp
 $event-timestamp-color: #acacac;
 
+$edit-button-url: "/img/icon_context_message_dark.svg";
+
 // e2e
 $e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
 $e2e-unverified-color: #e8bf37;
diff --git a/src/skins/vector/img/icon_context_message.svg b/src/skins/vector/img/icon_context_message.svg
index c3d39b1e..f2ceccfa 100644
--- a/src/skins/vector/img/icon_context_message.svg
+++ b/src/skins/vector/img/icon_context_message.svg
@@ -4,18 +4,11 @@
     <title>ED5D3E59-2561-4AC1-9B43-82FBC51767FC</title>
     <desc>Created with sketchtool.</desc>
     <defs></defs>
-    <!-- use a filter so that the tinter doesn't have to flip black to white as well as white to black -->
-    <filter id="invert">
-        <feColorMatrix in="SourceGraphic" type="matrix" values="-1 0 0 0 1
-                                                                0 -1 0 0 1
-                                                                0 0 -1 0 1
-                                                                0 0 0  1 0"/>
-    </filter>
     <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="icon_context">
-            <g filter="url(#invert)">
-                <path d="M9.5,19 C14.7467051,19 19,14.7467051 19,9.5 C19,4.25329488 14.7467051,0 9.5,0 C4.25329488,0 0,4.25329488 0,9.5 C0,14.7467051 4.25329488,19 9.5,19 Z" id="Oval-69" fill="#000" opacity="0.2"></path>
-                <path d="M4.5,9.50063771 C4.5,9.13148623 4.59887838,8.85242947 4.7966381,8.66345907 C4.99439782,8.47448867 5.28224377,8.38000488 5.66018457,8.38000488 C6.0249414,8.38000488 6.3072941,8.47668596 6.50725115,8.67005103 C6.70720821,8.86341609 6.80718523,9.14027555 6.80718523,9.50063771 C6.80718523,9.84781589 6.70610956,10.1213794 6.50395517,10.3213365 C6.30180079,10.5212935 6.02054674,10.6212705 5.66018457,10.6212705 C5.29103309,10.6212705 5.00538444,10.5234908 4.80323006,10.3279284 C4.60107568,10.132366 4.5,9.85660521 4.5,9.50063771 L4.5,9.50063771 Z M8.3431114,9.50063771 C8.3431114,9.13148623 8.44198978,8.85242947 8.63974951,8.66345907 C8.83750923,8.47448867 9.12755247,8.38000488 9.50988794,8.38000488 C9.87464476,8.38000488 10.1569975,8.47668596 10.3569545,8.67005103 C10.5569116,8.86341609 10.6568886,9.14027555 10.6568886,9.50063771 C10.6568886,9.84781589 10.5558129,10.1213794 10.3536585,10.3213365 C10.1515042,10.5212935 9.8702501,10.6212705 9.50988794,10.6212705 C9.13634179,10.6212705 8.84849585,10.5234908 8.64634146,10.3279284 C8.44418708,10.132366 8.3431114,9.85660521 8.3431114,9.50063771 L8.3431114,9.50063771 Z M12.1928148,9.50063771 C12.1928148,9.13148623 12.2916931,8.85242947 12.4894529,8.66345907 C12.6872126,8.47448867 12.9750585,8.38000488 13.3529993,8.38000488 C13.7177562,8.38000488 14.0001089,8.47668596 14.2000659,8.67005103 C14.400023,8.86341609 14.5,9.14027555 14.5,9.50063771 C14.5,9.84781589 14.3989243,10.1213794 14.1967699,10.3213365 C13.9946156,10.5212935 13.7133615,10.6212705 13.3529993,10.6212705 C12.9838479,10.6212705 12.6981992,10.5234908 12.4960448,10.3279284 C12.2938904,10.132366 12.1928148,9.85660521 12.1928148,9.50063771 L12.1928148,9.50063771 Z" id="…" fill="#000" opacity="0.6"></path>
+            <g>
+                <path d="M9.5,19 C14.7467051,19 19,14.7467051 19,9.5 C19,4.25329488 14.7467051,0 9.5,0 C4.25329488,0 0,4.25329488 0,9.5 C0,14.7467051 4.25329488,19 9.5,19 Z" id="Oval-69" fill="#ECECEC"></path>
+                <path d="M4.5,9.50063771 C4.5,9.13148623 4.59887838,8.85242947 4.7966381,8.66345907 C4.99439782,8.47448867 5.28224377,8.38000488 5.66018457,8.38000488 C6.0249414,8.38000488 6.3072941,8.47668596 6.50725115,8.67005103 C6.70720821,8.86341609 6.80718523,9.14027555 6.80718523,9.50063771 C6.80718523,9.84781589 6.70610956,10.1213794 6.50395517,10.3213365 C6.30180079,10.5212935 6.02054674,10.6212705 5.66018457,10.6212705 C5.29103309,10.6212705 5.00538444,10.5234908 4.80323006,10.3279284 C4.60107568,10.132366 4.5,9.85660521 4.5,9.50063771 L4.5,9.50063771 Z M8.3431114,9.50063771 C8.3431114,9.13148623 8.44198978,8.85242947 8.63974951,8.66345907 C8.83750923,8.47448867 9.12755247,8.38000488 9.50988794,8.38000488 C9.87464476,8.38000488 10.1569975,8.47668596 10.3569545,8.67005103 C10.5569116,8.86341609 10.6568886,9.14027555 10.6568886,9.50063771 C10.6568886,9.84781589 10.5558129,10.1213794 10.3536585,10.3213365 C10.1515042,10.5212935 9.8702501,10.6212705 9.50988794,10.6212705 C9.13634179,10.6212705 8.84849585,10.5234908 8.64634146,10.3279284 C8.44418708,10.132366 8.3431114,9.85660521 8.3431114,9.50063771 L8.3431114,9.50063771 Z M12.1928148,9.50063771 C12.1928148,9.13148623 12.2916931,8.85242947 12.4894529,8.66345907 C12.6872126,8.47448867 12.9750585,8.38000488 13.3529993,8.38000488 C13.7177562,8.38000488 14.0001089,8.47668596 14.2000659,8.67005103 C14.400023,8.86341609 14.5,9.14027555 14.5,9.50063771 C14.5,9.84781589 14.3989243,10.1213794 14.1967699,10.3213365 C13.9946156,10.5212935 13.7133615,10.6212705 13.3529993,10.6212705 C12.9838479,10.6212705 12.6981992,10.5234908 12.4960448,10.3279284 C12.2938904,10.132366 12.1928148,9.85660521 12.1928148,9.50063771 L12.1928148,9.50063771 Z" id="…" fill="#9B9B9B"></path>
             </g>
         </g>
     </g>
diff --git a/src/skins/vector/img/icon_context_message_dark.svg b/src/skins/vector/img/icon_context_message_dark.svg
new file mode 100644
index 00000000..b4336cc3
--- /dev/null
+++ b/src/skins/vector/img/icon_context_message_dark.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: sketchtool 39.1 (31720) - http://www.bohemiancoding.com/sketch -->
+    <title>ED5D3E59-2561-4AC1-9B43-82FBC51767FC</title>
+    <desc>Created with sketchtool.</desc>
+    <defs></defs>
+    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="icon_context">
+            <g>
+                <path d="M9.5,19 C14.7467051,19 19,14.7467051 19,9.5 C19,4.25329488 14.7467051,0 9.5,0 C4.25329488,0 0,4.25329488 0,9.5 C0,14.7467051 4.25329488,19 9.5,19 Z" id="Oval-69" fill="#000" opacity="0.2"></path>
+                <path d="M4.5,9.50063771 C4.5,9.13148623 4.59887838,8.85242947 4.7966381,8.66345907 C4.99439782,8.47448867 5.28224377,8.38000488 5.66018457,8.38000488 C6.0249414,8.38000488 6.3072941,8.47668596 6.50725115,8.67005103 C6.70720821,8.86341609 6.80718523,9.14027555 6.80718523,9.50063771 C6.80718523,9.84781589 6.70610956,10.1213794 6.50395517,10.3213365 C6.30180079,10.5212935 6.02054674,10.6212705 5.66018457,10.6212705 C5.29103309,10.6212705 5.00538444,10.5234908 4.80323006,10.3279284 C4.60107568,10.132366 4.5,9.85660521 4.5,9.50063771 L4.5,9.50063771 Z M8.3431114,9.50063771 C8.3431114,9.13148623 8.44198978,8.85242947 8.63974951,8.66345907 C8.83750923,8.47448867 9.12755247,8.38000488 9.50988794,8.38000488 C9.87464476,8.38000488 10.1569975,8.47668596 10.3569545,8.67005103 C10.5569116,8.86341609 10.6568886,9.14027555 10.6568886,9.50063771 C10.6568886,9.84781589 10.5558129,10.1213794 10.3536585,10.3213365 C10.1515042,10.5212935 9.8702501,10.6212705 9.50988794,10.6212705 C9.13634179,10.6212705 8.84849585,10.5234908 8.64634146,10.3279284 C8.44418708,10.132366 8.3431114,9.85660521 8.3431114,9.50063771 L8.3431114,9.50063771 Z M12.1928148,9.50063771 C12.1928148,9.13148623 12.2916931,8.85242947 12.4894529,8.66345907 C12.6872126,8.47448867 12.9750585,8.38000488 13.3529993,8.38000488 C13.7177562,8.38000488 14.0001089,8.47668596 14.2000659,8.67005103 C14.400023,8.86341609 14.5,9.14027555 14.5,9.50063771 C14.5,9.84781589 14.3989243,10.1213794 14.1967699,10.3213365 C13.9946156,10.5212935 13.7133615,10.6212705 13.3529993,10.6212705 C12.9838479,10.6212705 12.6981992,10.5234908 12.4960448,10.3279284 C12.2938904,10.132366 12.1928148,9.85660521 12.1928148,9.50063771 L12.1928148,9.50063771 Z" id="…" fill="#FFF" opacity="0.6"></path>
+            </g>
+        </g>
+    </g>
+</svg>

From 323c5d073289998ef4245a36032644927eaab351 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 17 Jan 2017 14:54:55 +0000
Subject: [PATCH 156/243] CSS for 'searching known users'

---
 .../css/matrix-react-sdk/views/dialogs/ChatInviteDialog.css | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/ChatInviteDialog.css b/src/skins/vector/css/matrix-react-sdk/views/dialogs/ChatInviteDialog.css
index aa1dced8..fe72d57d 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/ChatInviteDialog.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/ChatInviteDialog.css
@@ -63,3 +63,9 @@ limitations under the License.
 .mx_ChatInviteDialog_cancel object {
     pointer-events: none;
 }
+
+.mx_ChatInviteDialog_addressSelectHeader {
+    font-weight: bold;
+    line-height: 150%;
+    text-indent: 4px;
+}

From 6c88201e23b7c16a7732dea65a4009ad02efc18f Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 17 Jan 2017 19:14:16 +0000
Subject: [PATCH 158/243] use ye olde rel='alternate stylesheets' for theming

---
 src/vector/index.html | 14 ++++++++++----
 src/vector/index.js   |  1 -
 webpack.config.js     |  4 ++++
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/vector/index.html b/src/vector/index.html
index 73cdd2df..1895cc6b 100644
--- a/src/vector/index.html
+++ b/src/vector/index.html
@@ -20,14 +20,20 @@
     <meta name="msapplication-TileImage" content="vector-icons/mstile-144x144.png">
     <meta name="msapplication-config" content="vector-icons/browserconfig.xml">
     <meta name="theme-color" content="#ffffff">
-    <% for(var i=0; i<htmlWebpackPlugin.files.css.length; i++) {%>
-       <link href="<%= htmlWebpackPlugin.files.css[i] %>" rel="stylesheet">
-    <% } %>
+    <% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
+        var file = htmlWebpackPlugin.files.css[i];
+        if (file.match(/^theme-(?!light\.)/)) {
+        %>
+           <link rel="alternate stylesheet" title="<%= file %>" href="<%= file %>">
+        <% } else { %>
+           <link rel="stylesheet" href="<%= file %>">
+        <% }
+    } %>
   </head>
   <body style="height: 100%;">
     <section id="matrixchat" style="height: 100%;"></section>
     <noscript>Sorry, Riot requires JavaScript to be enabled.</noscript>
-    <% for(var i=0; i<htmlWebpackPlugin.files.js.length; i++) {%>
+    <% for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) {%>
        <script src="<%= htmlWebpackPlugin.files.js[i] %>"></script>
     <% } %>
     <img src="img/warning.svg" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
diff --git a/src/vector/index.js b/src/vector/index.js
index 64b87698..0d254202 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -30,7 +30,6 @@ require('babel-polyfill');
 
 // CSS requires: just putting them here for now as CSS is going to be
 // refactored "soon" anyway
-require('../../build/dark.scss');
 require('gemini-scrollbar/gemini-scrollbar.css');
 require('gfm.css/gfm.css');
 require('highlight.js/styles/github.css');
diff --git a/webpack.config.js b/webpack.config.js
index 1f2a8a60..e05f877a 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -15,6 +15,10 @@ module.exports = {
         // point, so that it doesn't block the pageload, but that is a separate
         // problem)
         "olm": "./src/vector/olm-loader.js",
+
+        // CSS themes
+        "theme-light": "./build/light.scss",
+        "theme-dark": "./build/dark.scss",
     },
     module: {
         preLoaders: [

From 0cd895b417bdc1163511d993c6b24ba1fe0910f3 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Tue, 17 Jan 2017 19:19:30 +0000
Subject: [PATCH 159/243] kill the moofle

---
 src/skins/vector/css/themes/dark.scss | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/skins/vector/css/themes/dark.scss b/src/skins/vector/css/themes/dark.scss
index 0c51486b..5a37d036 100644
--- a/src/skins/vector/css/themes/dark.scss
+++ b/src/skins/vector/css/themes/dark.scss
@@ -1,4 +1,3 @@
 @import "_base.scss";
 @import "_dark.scss";
 @import "../_components.scss";
-// moofleasdadsasdadsa
\ No newline at end of file

From 5206410f2126b6b987ecb654bf13829f8a58016c Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 17 Jan 2017 22:25:02 +0000
Subject: [PATCH 160/243] Deployment script

Factor some bits out of redeploy.py, so that they can be used in a deployment
script suitable for riot.im/app.
---
 scripts/deploy.py   | 158 ++++++++++++++++++++++++++++++++++++++++++++
 scripts/redeploy.py | 107 +++++++-----------------------
 2 files changed, 182 insertions(+), 83 deletions(-)
 create mode 100755 scripts/deploy.py

diff --git a/scripts/deploy.py b/scripts/deploy.py
new file mode 100755
index 00000000..dde13c54
--- /dev/null
+++ b/scripts/deploy.py
@@ -0,0 +1,158 @@
+#!/usr/bin/env python
+#
+# download and unpack a riot-web tarball.
+#
+# Allows `bundles` to be extracted to a common directory, and a link to
+# config.json to be added.
+
+from __future__ import print_function
+
+import argparse
+import os
+import os.path
+import tarfile
+import urllib
+
+class DeployException(Exception):
+    pass
+
+def create_relative_symlink(linkname, target):
+    relpath = os.path.relpath(target, os.path.dirname(linkname))
+    print ("Symlink %s -> %s" % (linkname, relpath))
+    os.symlink(relpath, linkname)
+
+
+def move_bundles(source, dest):
+    """Move the contents of the 'bundles' directory to a common dir
+
+    We check that we will not be overwriting anything before we proceed.
+
+    Args:
+        source (str): path to 'bundles' within the extracted tarball
+        dest (str): target common directory
+    """
+
+    if not os.path.isdir(dest):
+        os.mkdir(dest)
+
+    # build a map from source to destination, checking for non-existence as we go.
+    renames = {}
+    for f in os.listdir(source):
+        dst = os.path.join(dest, f)
+        if os.path.exists(dst):
+            raise DeployException(
+                "Not deploying. The bundle includes '%s' which we have previously deployed."
+                % f
+            )
+        renames[os.path.join(source, f)] = dst
+
+    for (src, dst) in renames.iteritems():
+        print ("Move %s -> %s" % (src, dst))
+        os.rename(src, dst)
+
+class Deployer:
+    def __init__(self):
+        self.packages_path = "."
+        self.bundles_path = None
+        self.should_clean = False
+        self.config_location = None
+
+    def deploy(self, tarball, extract_path):
+        """Download a tarball if necessary, and unpack it
+
+        Returns:
+            (str) the path to the unpacked deployment
+        """
+        print("Deploying %s to %s" % (tarball, extract_path))
+
+        downloaded = False
+        if tarball.startswith("http://") or tarball.startswith("https://"):
+            tarball = self.download_file(tarball)
+            print("Downloaded file: %s" % tarball)
+            downloaded = True
+
+        try:
+            with tarfile.open(tarball) as tar:
+                tar.extractall(extract_path)
+        finally:
+            if self.should_clean and downloaded:
+                os.remove(tarball)
+
+        name_str = os.path.basename(tarball).replace(".tar.gz", "")
+        extracted_dir = os.path.join(extract_path, name_str)
+        print ("Extracted into: %s" % extracted_dir)
+
+        if self.config_location:
+            create_relative_symlink(
+                target=self.config_location,
+                linkname=os.path.join(extracted_dir, 'config.json')
+            )
+
+        if self.bundles_path:
+            extracted_bundles = os.path.join(extracted_dir, 'bundles')
+            move_bundles(source=extracted_bundles, dest=self.bundles_path)
+
+            # replace the (hopefully now empty) extracted_bundles dir with a
+            # symlink to the common dir.
+            os.rmdir(extracted_bundles)
+            create_relative_symlink(
+                target=self.bundles_path,
+                linkname=extracted_bundles,
+            )
+        return extracted_dir
+
+    def download_file(self, url):
+        if not os.path.isdir(self.packages_path):
+            os.mkdir(self.packages_path)
+        local_filename = os.path.join(self.packages_path,
+                                      url.split('/')[-1])
+        urllib.urlretrieve(url, local_filename)
+        return local_filename
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser("Deploy a Riot build on a web server.")
+    parser.add_argument(
+        "-p", "--packages-dir", default="./packages", help=(
+            "The directory to download the tarball into. (Default: '%(default)s')"
+        )
+    )
+    parser.add_argument(
+        "-e", "--extract-path", default="./deploys", help=(
+            "The location to extract .tar.gz files to. (Default: '%(default)s')"
+        )
+    )
+    parser.add_argument(
+        "-b", "--bundles-dir", nargs='?', default="./bundles", help=(
+            "A directory to move the contents of the 'bundles' directory to. A \
+            symlink to the bundles directory will also be written inside the \
+            extracted tarball. Example: './bundles'. \
+            (Default: '%(default)s')"
+        )
+    )
+    parser.add_argument(
+        "-c", "--clean", action="store_true", default=False, help=(
+            "Remove .tar.gz files after they have been downloaded and extracted. \
+            (Default: %(default)s)"
+        )
+    )
+    parser.add_argument(
+        "--config", nargs='?', default='./config.json', help=(
+            "Write a symlink at config.json in the extracted tarball to this \
+            location. (Default: '%(default)s')"
+        )
+    )
+    parser.add_argument(
+        "tarball", help=(
+            "filename of tarball, or URL to download."
+        ),
+    )
+
+    args = parser.parse_args()
+
+    deployer = Deployer()
+    deployer.packages_path = args.packages_dir
+    deployer.bundles_path = args.bundles_dir
+    deployer.should_clean = args.clean
+    deployer.config_location = args.config
+
+    deployer.deploy(args.tarball, args.extract_path)
diff --git a/scripts/redeploy.py b/scripts/redeploy.py
index 4394f292..0796b963 100755
--- a/scripts/redeploy.py
+++ b/scripts/redeploy.py
@@ -14,32 +14,17 @@ from __future__ import print_function
 import json, requests, tarfile, argparse, os, errno
 import time
 from urlparse import urljoin
+
 from flask import Flask, jsonify, request, abort
 
+from deploy import Deployer, DeployException
+
 app = Flask(__name__)
 
 arg_jenkins_url = None
+deployer = None
 arg_extract_path = None
-arg_bundles_path = None
-arg_should_clean = None
 arg_symlink = None
-arg_config_location = None
-
-class DeployException(Exception):
-    pass
-
-def download_file(url):
-    local_filename = url.split('/')[-1]
-    r = requests.get(url, stream=True)
-    with open(local_filename, 'wb') as f:
-        for chunk in r.iter_content(chunk_size=1024):
-            if chunk: # filter out keep-alive new chunks
-                f.write(chunk)
-    return local_filename
-
-def untar_to(tarball, dest):
-    with tarfile.open(tarball) as tar:
-        tar.extractall(dest)
 
 def create_symlink(source, linkname):
     try:
@@ -137,17 +122,20 @@ def fetch_jenkins_build(job_name, build_num):
     #       see half-written files.
     build_dir = os.path.join(arg_extract_path, "%s-#%s" % (job_name, build_num))
     try:
-        deploy_tarball(tar_gz_url, build_dir)
+        extracted_dir = deploy_tarball(tar_gz_url, build_dir)
     except DeployException as e:
         abort(400, e.message)
 
+    create_symlink(source=extracted_dir, linkname=arg_symlink)
+
     return jsonify({})
 
 def deploy_tarball(tar_gz_url, build_dir):
-    """Download a tarball from jenkins and deploy it as the new version
-    """
-    print("Deploying %s to %s" % (tar_gz_url, build_dir))
+    """Download a tarball from jenkins and unpack it
 
+    Returns:
+        (str) the path to the unpacked deployment
+    """
     if os.path.exists(build_dir):
         raise DeployException(
             "Not deploying. We have previously deployed this build."
@@ -156,62 +144,8 @@ def deploy_tarball(tar_gz_url, build_dir):
 
     # we rely on the fact that flask only serves one request at a time to
     # ensure that we do not overwrite a tarball from a concurrent request.
-    filename = download_file(tar_gz_url)
-    print("Downloaded file: %s" % filename)
 
-    try:
-        untar_to(filename, build_dir)
-        print("Extracted to: %s" % build_dir)
-    finally:
-        if arg_should_clean:
-            os.remove(filename)
-
-    name_str = filename.replace(".tar.gz", "")
-    extracted_dir = os.path.join(build_dir, name_str)
-
-    if arg_config_location:
-        create_symlink(source=arg_config_location, linkname=os.path.join(extracted_dir, 'config.json'))
-
-    if arg_bundles_path:
-        extracted_bundles = os.path.join(extracted_dir, 'bundles')
-        move_bundles(source=extracted_bundles, dest=arg_bundles_path)
-
-        # replace the (hopefully now empty) extracted_bundles dir with a
-        # symlink to the common dir.
-        relpath = os.path.relpath(arg_bundles_path, extracted_dir)
-        os.rmdir(extracted_bundles)
-        print ("Symlink %s -> %s" % (extracted_bundles, relpath))
-        os.symlink(relpath, extracted_bundles)
-
-    create_symlink(source=extracted_dir, linkname=arg_symlink)
-
-def move_bundles(source, dest):
-    """Move the contents of the 'bundles' directory to a common dir
-
-    We check that we will not be overwriting anything before we proceed.
-
-    Args:
-        source (str): path to 'bundles' within the extracted tarball
-        dest (str): target common directory
-    """
-
-    if not os.path.isdir(dest):
-        os.mkdir(dest)
-
-    # build a map from source to destination, checking for non-existence as we go.
-    renames = {}
-    for f in os.listdir(source):
-        dst = os.path.join(dest, f)
-        if os.path.exists(dst):
-            raise DeployException(
-                "Not deploying. The bundle includes '%s' which we have previously deployed."
-                % f
-            )
-        renames[os.path.join(source, f)] = dst
-
-    for (src, dst) in renames.iteritems():
-        print ("Move %s -> %s" % (src, dst))
-        os.rename(src, dst)
+    return deployer.deploy(tar_gz_url, build_dir)
 
 
 if __name__ == "__main__":
@@ -270,21 +204,28 @@ if __name__ == "__main__":
     else:
         arg_jenkins_url = args.jenkins + "/"
     arg_extract_path = args.extract
-    arg_bundles_path = args.bundles_dir
-    arg_should_clean = args.clean
     arg_symlink = args.symlink
-    arg_config_location = args.config
 
     if not os.path.isdir(arg_extract_path):
         os.mkdir(arg_extract_path)
 
+    deployer = Deployer()
+    deployer.bundles_path = args.bundles_dir
+    deployer.should_clean = args.clean
+    deployer.config_location = args.config
+
     if args.tarball_uri is not None:
         build_dir = os.path.join(arg_extract_path, "test-%i" % (time.time()))
         deploy_tarball(args.tarball_uri, build_dir)
     else:
         print(
             "Listening on port %s. Extracting to %s%s. Symlinking to %s. Jenkins URL: %s. Config location: %s" %
-            (args.port, arg_extract_path,
-             " (clean after)" if arg_should_clean else "", arg_symlink, arg_jenkins_url, arg_config_location)
+            (args.port,
+             arg_extract_path,
+             " (clean after)" if deployer.should_clean else "",
+             arg_symlink,
+             arg_jenkins_url,
+             deployer.config_location,
+            )
         )
         app.run(host="0.0.0.0", port=args.port, debug=True)

From 83145e80e5c17339f14dd4ec053843f5b40bbf1a Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 18 Jan 2017 10:39:59 +0000
Subject: [PATCH 161/243] Auto-hide the electron menu bar

From https://github.com/vector-im/riot-web/issues/2962

This allows all the shortcuts to still work, and the menu bar can
be un-hidden with the alt key.
---
 electron/src/electron-main.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index a03a8755..929b7892 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -175,6 +175,7 @@ electron.app.on('ready', () => {
         icon: icon_path,
         width: 1024, height: 768,
         show: false,
+        autoHideMenuBar: true,
     });
     mainWindow.loadURL(`file://${__dirname}/../../webapp/index.html`);
     electron.Menu.setApplicationMenu(VectorMenu);

From 69bedf0d37384f3039a145180c4ba7834bfa45c7 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 18 Jan 2017 12:42:48 +0000
Subject: [PATCH 162/243] review feedback

---
 package.json                        | 2 --
 src/skins/vector/css/rethemendex.sh | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/package.json b/package.json
index 1e273dfe..b8fd1574 100644
--- a/package.json
+++ b/package.json
@@ -91,7 +91,6 @@
     "babel-preset-es2017": "^6.16.0",
     "babel-preset-react": "^6.16.0",
     "babel-preset-stage-2": "^6.17.0",
-    "catw": "^1.0.1",
     "chokidar": "^1.6.1",
     "cpx": "^1.3.2",
     "css-raw-loader": "^0.1.1",
@@ -113,7 +112,6 @@
     "minimist": "^1.2.0",
     "mkdirp": "^0.5.1",
     "mocha": "^2.4.5",
-    "node-sass": "^4.1.1",
     "parallelshell": "^1.2.0",
     "phantomjs-prebuilt": "^2.1.7",
     "postcss-cli": "^2.6.0",
diff --git a/src/skins/vector/css/rethemendex.sh b/src/skins/vector/css/rethemendex.sh
index 915b235d..9381c5cd 100755
--- a/src/skins/vector/css/rethemendex.sh
+++ b/src/skins/vector/css/rethemendex.sh
@@ -2,7 +2,7 @@
 
 echo "// autogenerated by rethemendex.sh" > _components.scss
 
-for i in `find . -iname _\*.scss | fgrep -v _components.scss`;
+for i in `find . -iname _\*.scss | fgrep -v _components.scss | sort`;
 do
     echo "@import \"$i\";" >> _components.scss
 done

From 708fd640f7af9a641a5b3a66dacbb17392e8410c Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 18 Jan 2017 14:06:20 +0000
Subject: [PATCH 163/243] unbreak switching after vdh's webpack changes

---
 src/vector/index.html | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/vector/index.html b/src/vector/index.html
index 1895cc6b..a6c3092d 100644
--- a/src/vector/index.html
+++ b/src/vector/index.html
@@ -22,9 +22,11 @@
     <meta name="theme-color" content="#ffffff">
     <% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
         var file = htmlWebpackPlugin.files.css[i];
-        if (file.match(/^theme-(?!light\.)/)) {
+        var match = file.match(/^bundles\/.*?\/theme-((?!light\.).*)\.css$/);
+        if (match) {
+            var title = match[1].charAt(0).toUpperCase() + match[1].slice(1);
         %>
-           <link rel="alternate stylesheet" title="<%= file %>" href="<%= file %>">
+           <link rel="alternate stylesheet" title="<%= title  %>" href="<%= file %>">
         <% } else { %>
            <link rel="stylesheet" href="<%= file %>">
         <% }

From f10bc8eef17a56b50ba4901184ad325fa181e04c Mon Sep 17 00:00:00 2001
From: lukebarnard <luke.barnard99@gmail.com>
Date: Wed, 18 Jan 2017 16:49:20 +0100
Subject: [PATCH 164/243] Animate status bar max-height and margin-top

When collapsed, the max-height is set to 0px. When expanded, max-height is set to 50px, margin-top is set to 0px. When expanded and when the timeline is not scrolled down to the bottom, margin-top is set to -50px to offset the change in height, keeping it at the same scroll position.

Without the animation, there would be a jump when the user starts scrolling up from the bottom whilst the StatusBar is expanded.
---
 .../matrix-react-sdk/structures/RoomView.css  | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

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 c3f7ceed..3b3c396f 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
@@ -202,6 +202,25 @@ hr.mx_RoomView_myReadMarker {
     width: 100%;
     -webkit-flex: 0 0 auto;
     flex: 0 0 auto;
+
+    max-height: 0px;
+    background-color: #fff;
+    z-index: 1000;
+    overflow: hidden;
+
+    -webkit-transition: all .5s ease-in-out;
+    -moz-transition: all .5s ease-in-out;
+    -ms-transition: all .5s ease-in-out;
+    -o-transition: all .5s ease-in-out;
+}
+
+.mx_RoomView_statusArea_expanded {
+    max-height: 50px;
+    margin-top: 0px;
+}
+
+.mx_RoomView_statusArea_expanded.mx_RoomView_statusArea_mid_timeline {
+    margin-top: -50px;
 }
 
 .mx_RoomView_statusAreaBox {

From e9884768f6fa770d6f33e9ab456688928ba50f39 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Wed, 18 Jan 2017 16:00:13 +0000
Subject: [PATCH 165/243] Persist console logs to an IndexedDB instance

---
 src/vector/index.js     |   7 ++
 src/vector/rageshake.js | 180 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 187 insertions(+)
 create mode 100644 src/vector/rageshake.js

diff --git a/src/vector/index.js b/src/vector/index.js
index 8231950b..b965f01d 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -36,6 +36,13 @@ require('gfm.css/gfm.css');
 require('highlight.js/styles/github.css');
 require('draft-js/dist/Draft.css');
 
+const rageshake = require("./rageshake");
+rageshake.init().then(() => {
+    console.log("Initialised rageshake");
+}, (err) => {
+    console.error("Failed to initialise rageshake: " + err);
+});
+
 
  // add React and ReactPerf to the global namespace, to make them easier to
  // access via the console
diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
new file mode 100644
index 00000000..fe768630
--- /dev/null
+++ b/src/vector/rageshake.js
@@ -0,0 +1,180 @@
+/*
+Copyright 2017 OpenMarket Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// This module contains all the code needed to log the console, persist it to disk and submit bug reports. Rationale is as follows:
+//  - Monkey-patching the console is preferable to having a log library because we can catch logs by other libraries more easily,
+//    without having to all depend on the same log framework / pass the logger around.
+//  - We use IndexedDB to persists logs because it has generous disk space limits compared to local storage. IndexedDB does not work
+//    in incognito mode, in which case this module will not be able to write logs to disk. However, the logs will still be stored
+//    in-memory, so can still be submitted in a bug report should the user wish to: we can also store more logs in-memory than in
+//    local storage, which does work in incognito mode.
+//  - Bug reports are sent as a POST over HTTPS: it purposefully does not use Matrix as bug reports may be made when Matrix is
+//    not responsive (which may be the cause of the bug).
+
+const FLUSH_RATE_MS = 30 * 1000;
+
+// A class which monkey-patches the global console and stores log lines.
+class ConsoleLogger {
+    constructor() {
+        this.logs = "";
+
+        // Monkey-patch console logging
+        const consoleFunctionsToLevels = {
+            log: "I",
+            info: "I",
+            error: "E",
+        };
+        Object.keys(consoleFunctionsToLevels).forEach((fnName) => {
+            const level = consoleFunctionsToLevels[fnName];
+            let originalFn = window.console[fnName].bind(window.console);
+            window.console[fnName] = (...args) => {
+                this.log(level, ...args);
+                originalFn(...args);
+            }
+        });
+    }
+
+    log(level, ...args) {
+        // We don't know what locale the user may be running so use ISO strings
+        const ts = new Date().toISOString();
+        // Some browsers support string formatting which we're not doing here
+        // so the lines are a little more ugly but easy to implement / quick to run.
+        // Example line:
+        // 2017-01-18T11:23:53.214Z W Failed to set badge count: Error setting badge. Message: Too many badges requests in queue.
+        const line = `${ts} ${level} ${args.join(' ')}\n`;
+        // Using + really is the quickest way in JS
+        // http://jsperf.com/concat-vs-plus-vs-join
+        this.logs += line;
+    }
+
+    /**
+     * Retrieve log lines to flush to disk.
+     * @return {string} \n delimited log lines to flush.
+     */
+    flush() {
+        // The ConsoleLogger doesn't care how these end up on disk, it just flushes them to the caller.
+        const logsToFlush = this.logs;
+        this.logs = "";
+        return logsToFlush;
+    }
+}
+
+// A class which stores log lines in an IndexedDB instance.
+class IndexedDBLogStore {
+    constructor(indexedDB, logger) {
+        this.indexedDB = indexedDB;
+        this.logger = logger;
+        this.db = null;
+    }
+
+    /**
+     * @return {Promise} Resolves when the store is ready.
+     */
+    connect() {
+        let req = this.indexedDB.open("logs");
+        return new Promise((resolve, reject) => {
+            req.onsuccess = (event) => {
+                this.db = event.target.result;
+                // Periodically flush logs to local storage / indexeddb
+                setInterval(this.flush.bind(this), FLUSH_RATE_MS);
+                resolve();
+            };
+
+            req.onerror = (event) => {
+                const err = "Failed to open log database: " + event.target.errorCode;
+                console.error(err);
+                reject(new Error(err));
+            };
+
+            // First time: Setup the object store
+            req.onupgradeneeded = (event) => {
+                const db = event.target.result;
+                const objectStore = db.createObjectStore("logs", {
+                    autoIncrement: true
+                })
+                objectStore.transaction.oncomplete = function(event) {
+                    objectStore.add(
+                        new Date() + " ::: Log database was created."
+                    );
+                };
+            }
+        });
+    }
+
+    /**
+     * @return {Promise} Resolved when the logs have been flushed.
+     */
+    flush() {
+        if (!this.db) {
+            // not connected yet or user rejected access for us to r/w to the db
+            return Promise.reject(new Error("No connected database"));
+        }
+        const lines = this.logger.flush();
+        if (lines.length === 0) {
+            return Promise.resolve();
+        }
+        return new Promise((resolve, reject) => {
+            let txn = this.db.transaction("logs", "readwrite");
+            let objStore = txn.objectStore("logs");
+            objStore.add(lines);
+            txn.oncomplete = (event) => {
+                resolve();
+            };
+            txn.onerror = (event) => {
+                console.error("Failed to flush logs : " + event.target.errorCode);
+                reject(new Error("Failed to write logs: " + event.target.errorCode));
+            }
+        });
+    }
+}
+
+
+let store = null;
+let inited = false;
+module.exports = {
+
+    /**
+     * Configure rage shaking support for sending bug reports.
+     * Modifies globals.
+     */
+    init: function() {
+        if (inited || !window.indexedDB) {
+            return;
+        }
+        store = new IndexedDBLogStore(window.indexedDB, new ConsoleLogger());
+        inited = true;
+        return store.connect();
+    },
+
+    /**
+     * Force-flush the logs to storage.
+     * @return {Promise} Resolved when the logs have been flushed.
+     */
+    flush: function() {
+        if (!store) {
+            return;
+        }
+        return store.flush();
+    },
+
+    /**
+     * Send a bug report.
+     * @param {string} userText Any additional user input.
+     * @return {Promise} Resolved when the bug report is sent.
+     */
+    sendBugReport: function(userText) {
+    }
+};

From acb85b7b7227e107e4f91e8e473b2e8097eb9559 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 18 Jan 2017 16:06:02 +0000
Subject: [PATCH 166/243] f1x0r CSS comment

---
 src/vector/index.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index 0d254202..a3892248 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -28,8 +28,9 @@ limitations under the License.
 // https://babeljs.io/docs/plugins/transform-runtime/
 require('babel-polyfill');
 
-// CSS requires: just putting them here for now as CSS is going to be
-// refactored "soon" anyway
+// Require common CSS here; this will make webpack process it into bundle.css.
+// Our own CSS (which is themed) is imported via separate webpack entry points
+// in webpack.config.js
 require('gemini-scrollbar/gemini-scrollbar.css');
 require('gfm.css/gfm.css');
 require('highlight.js/styles/github.css');

From 5828ab107707752c76934484bad96ad8b1ff35f5 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Wed, 18 Jan 2017 16:27:11 +0000
Subject: [PATCH 167/243] Generate unique IDs for each JS runtime to accomodate
 multiple tabs

---
 src/vector/rageshake.js | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index fe768630..5739a934 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -20,7 +20,8 @@ limitations under the License.
 //  - We use IndexedDB to persists logs because it has generous disk space limits compared to local storage. IndexedDB does not work
 //    in incognito mode, in which case this module will not be able to write logs to disk. However, the logs will still be stored
 //    in-memory, so can still be submitted in a bug report should the user wish to: we can also store more logs in-memory than in
-//    local storage, which does work in incognito mode.
+//    local storage, which does work in incognito mode. We also need to handle the case where there are 2+ tabs. Each JS runtime
+//    generates a random string which serves as the "ID" for that tab/session. These IDs are stored along with the log lines.
 //  - Bug reports are sent as a POST over HTTPS: it purposefully does not use Matrix as bug reports may be made when Matrix is
 //    not responsive (which may be the cause of the bug).
 
@@ -77,6 +78,8 @@ class IndexedDBLogStore {
     constructor(indexedDB, logger) {
         this.indexedDB = indexedDB;
         this.logger = logger;
+        this.id = "instance-" + Date.now();
+        this.index = 0;
         this.db = null;
     }
 
@@ -103,13 +106,13 @@ class IndexedDBLogStore {
             req.onupgradeneeded = (event) => {
                 const db = event.target.result;
                 const objectStore = db.createObjectStore("logs", {
-                    autoIncrement: true
-                })
-                objectStore.transaction.oncomplete = function(event) {
-                    objectStore.add(
+                    keyPath: ["id", "index"]
+                });
+                objectStore.add(
+                    this._generateLogEntry(
                         new Date() + " ::: Log database was created."
-                    );
-                };
+                    )
+                );
             }
         });
     }
@@ -129,7 +132,7 @@ class IndexedDBLogStore {
         return new Promise((resolve, reject) => {
             let txn = this.db.transaction("logs", "readwrite");
             let objStore = txn.objectStore("logs");
-            objStore.add(lines);
+            objStore.add(this._generateLogEntry(lines));
             txn.oncomplete = (event) => {
                 resolve();
             };
@@ -139,6 +142,14 @@ class IndexedDBLogStore {
             }
         });
     }
+
+    _generateLogEntry(lines) {
+        return {
+            id: this.id,
+            lines: lines,
+            index: this.index++
+        };
+    }
 }
 
 
@@ -176,5 +187,9 @@ module.exports = {
      * @return {Promise} Resolved when the bug report is sent.
      */
     sendBugReport: function(userText) {
+        // To gather all the logs, we first query for every log entry with index "0", this will let us
+        // know all the IDs from different tabs/sessions.
+
+        // Send logs grouped by ID
     }
 };

From f20efc57f3beb4e8f0bea05c04980bc4b35b7606 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 18 Jan 2017 17:05:13 +0000
Subject: [PATCH 168/243] simple doc about theming

---
 docs/theming.md | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 docs/theming.md

diff --git a/docs/theming.md b/docs/theming.md
new file mode 100644
index 00000000..defb18bc
--- /dev/null
+++ b/docs/theming.md
@@ -0,0 +1,25 @@
+Theming Riot
+============
+
+Themes are a very basic way of providing simple alternative look & feels to the
+riot-web app via CSS & custom imagery.
+
+They are *NOT* co be confused with 'skins', which describe apps which sit on top
+of matrix-react-sdk - e.g. in theory Riot itself is a react-sdk skin.
+As of Jan 2017, skins are not fully supported; riot is the only available skin.
+
+To define a theme for Riot:
+
+ 1. Pick a name, e.g. `teal`. at time of writing we have `light` and `dark`.
+ 2. Fork `src/skins/vector/css/themes/dark.scss` to be teal.scss
+ 3. Fork `src/skins/vector/css/themes/_base.scss` to be _teal.scss
+ 4. Override variables in _teal.css as desired. You may wish to delete ones
+    which don't differ from _base.scss, to make it clear which are being
+    overridden. If every single colour is being changed (as per _dark.scss)
+    then you might as well keep them all.
+ 5. Add the theme to the list of entrypoints in webpack.config.js
+ 6. Add the theme to the list of themes in matrix-react-sdk's UserSettings.js
+ 7. Sit back and admire your handywork.
+
+In future, the assets for a theme will probably be gathered together into a
+single directory tree.
\ No newline at end of file

From 811086ac8ec1ea1b7cd5d5b475712d5277ce9af3 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Wed, 18 Jan 2017 17:18:02 +0000
Subject: [PATCH 169/243] Comment how we should consume logs

---
 src/vector/rageshake.js | 44 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 39 insertions(+), 5 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 5739a934..9b6106ed 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -23,7 +23,9 @@ limitations under the License.
 //    local storage, which does work in incognito mode. We also need to handle the case where there are 2+ tabs. Each JS runtime
 //    generates a random string which serves as the "ID" for that tab/session. These IDs are stored along with the log lines.
 //  - Bug reports are sent as a POST over HTTPS: it purposefully does not use Matrix as bug reports may be made when Matrix is
-//    not responsive (which may be the cause of the bug).
+//    not responsive (which may be the cause of the bug). We send the most recent N MB of UTF-8 log data, starting with the most
+//    recent, which we know because the "ID"s are actually timestamps. We then purge the remaining logs. We also do this check
+//    on startup to prevent logs from accumulating.
 
 const FLUSH_RATE_MS = 30 * 1000;
 
@@ -143,6 +145,39 @@ class IndexedDBLogStore {
         });
     }
 
+    /**
+     * Consume the most recent logs and return them. Older logs which are not returned are deleted at the same time,
+     * so this can be called at startup to do house-keeping to keep the logs from growing too large.
+     *
+     * @param {boolean} clearAll True to clear the most recent logs returned in addition to the
+     * older logs. This is desirable when sending bug reports as we do not want to submit the
+     * same logs twice. This is not desirable when doing house-keeping at startup in case they
+     * want to submit a bug report later.
+     * @return {Promise<Object[]>} Resolves to an array of objects. The array is sorted in time (oldest first) based on
+     * when the log file was created (the log ID). The objects have said log ID in an "id" field and "lines" which is a
+     * big string with all the new-line delimited logs.
+     */
+    consume(clearAll) {
+        const MAX_LOG_SIZE = 1024 * 1024 * 50; // 50 MB
+        // To gather all the logs, we first query for every log entry with index "0", this will let us
+        // know all the IDs from different tabs/sessions.
+        return new Promise((resolve, reject) => {
+            // let txn = this.db.transaction("logs", "readonly");
+            // let objectStore = txn.objectStore("logs");
+
+            // we know each entry has a unique ID, and we know IDs are timestamps, so accumulate all the IDs,
+            // ignoring the logs for now, and sort them to work out the correct log ID ordering.
+
+            // Starting with the most recent ID, fetch the logs (all indices) for said ID and accumulate them
+            // in order. After fetching ALL the logs for an ID, recheck the total length of the logs to work out
+            // if we have exceeded the max size cutoff for "recent" logs.
+
+            // Remove all logs that are older than the cutoff (or the entire logs if clearAll is set).
+
+            // Return the logs that are within the cutoff.
+        });
+    }
+
     _generateLogEntry(lines) {
         return {
             id: this.id,
@@ -187,9 +222,8 @@ module.exports = {
      * @return {Promise} Resolved when the bug report is sent.
      */
     sendBugReport: function(userText) {
-        // To gather all the logs, we first query for every log entry with index "0", this will let us
-        // know all the IDs from different tabs/sessions.
-
-        // Send logs grouped by ID
+        return store.consume(true).then((data) => {
+            // Send logs grouped by ID
+        });
     }
 };

From ec1a2f6abfd73d8b181401eb37285aaf8a9cb55e Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 18 Jan 2017 19:29:53 +0000
Subject: [PATCH 170/243] fix CSS regression in searchbox

---
 .../vector/css/matrix-react-sdk/structures/_SearchBox.scss      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
index bd335f60..382a07f9 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
@@ -44,7 +44,7 @@ limitations under the License.
     height: 24px;
     border: 0px ! important;
     /* border-bottom: 1px solid rgba(0, 0, 0, 0.1) ! important; */
-    background-color: transparent;
+    background-color: transparent ! important;
     border: 0px;
 }
 

From 5b95986705d9958545ad5ed4f94ed169da4eefa1 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Wed, 18 Jan 2017 20:05:18 +0000
Subject: [PATCH 171/243] fix various SCSS snafus

---
 src/skins/vector/css/_common.scss                             | 4 ++--
 .../vector/css/matrix-react-sdk/structures/_SearchBox.scss    | 1 -
 src/skins/vector/img/icon-call.svg                            | 2 +-
 src/skins/vector/img/icons-close-button.svg                   | 2 +-
 src/skins/vector/img/icons-search.svg                         | 2 +-
 src/skins/vector/img/icons-upload.svg                         | 2 +-
 src/skins/vector/img/icons-video.svg                          | 2 +-
 7 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index 01ba81d8..94362a2f 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -55,8 +55,8 @@ a:visited {
     color: $accent-color;
 }
 
-input[type=text] {
-    background-color: $primary-bg-color;
+input[type=text], input[type=password] {
+    background-color: transparent;
     color: $primary-fg-color;
 }
 
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
index 382a07f9..0f34f056 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
@@ -44,7 +44,6 @@ limitations under the License.
     height: 24px;
     border: 0px ! important;
     /* border-bottom: 1px solid rgba(0, 0, 0, 0.1) ! important; */
-    background-color: transparent ! important;
     border: 0px;
 }
 
diff --git a/src/skins/vector/img/icon-call.svg b/src/skins/vector/img/icon-call.svg
index 2d96b145..0ca5c29e 100644
--- a/src/skins/vector/img/icon-call.svg
+++ b/src/skins/vector/img/icon-call.svg
@@ -2,7 +2,7 @@
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="35" height="35" viewBox="0, 0, 35, 35">
   <g id="Symbols">
-    <path d="M17.5,35 C27.165,35 35,27.165 35,17.5 C35,7.835 27.165,0 17.5,0 C7.835,0 0,7.835 0,17.5 C0,27.165 7.835,35 17.5,35 z" fill="#EAF5F0" id="Oval-109"/>
+    <path d="M17.5,35 C27.165,35 35,27.165 35,17.5 C35,7.835 27.165,0 17.5,0 C7.835,0 0,7.835 0,17.5 C0,27.165 7.835,35 17.5,35 z" fill="#76CFA6" opacity="0.15" id="Oval-109"/>
     <path d="M23,28 C21.195,28 16.807,25.624 13.122,20.524 C9.675,15.755 8,12.309 8,9.99 C8,8.164 9.225,7.293 9.883,6.825 L10.045,6.708 C10.773,6.173 11.903,6 12.337,6 C13.097,6 13.417,6.458 13.611,6.857 C13.776,7.195 15.141,10.212 15.28,10.587 C15.492,11.164 15.422,12.005 14.766,12.488 L14.65,12.571 C14.324,12.804 13.718,13.236 13.634,13.761 C13.594,14.016 13.677,14.283 13.889,14.577 C14.946,16.043 18.32,20.346 18.928,20.931 C19.405,21.389 20.009,21.455 20.42,21.098 C20.846,20.729 21.035,20.511 21.037,20.508 L21.081,20.465 C21.116,20.434 21.449,20.162 21.992,20.162 C22.385,20.162 22.783,20.302 23.178,20.576 C24.201,21.287 26.51,22.876 26.51,22.876 L26.547,22.906 C26.842,23.166 27.269,23.917 26.772,24.893 C26.256,25.907 24.655,28 23,28 L23,28 z" fill-opacity="0" stroke="#76CFA6" stroke-width="1" id="path-1"/>
   </g>
 </svg>
diff --git a/src/skins/vector/img/icons-close-button.svg b/src/skins/vector/img/icons-close-button.svg
index f17940f5..f960d73a 100644
--- a/src/skins/vector/img/icons-close-button.svg
+++ b/src/skins/vector/img/icons-close-button.svg
@@ -7,7 +7,7 @@
     <g id="1:1-chat" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="Chat-People-2-Invite-modal-(similar-to-chat-group-5)" transform="translate(-909.000000, -263.000000)">
             <g id="icons_close" transform="translate(909.000000, 263.000000)">
-                <path d="M17.5,35 C27.1649831,35 35,27.1649831 35,17.5 C35,7.83501688 27.1649831,0 17.5,0 C7.83501688,0 0,7.83501688 0,17.5 C0,27.1649831 7.83501688,35 17.5,35 Z" id="Oval-1-Copy-7" fill="#EAF5F0"></path>
+                <path d="M17.5,35 C27.1649831,35 35,27.1649831 35,17.5 C35,7.83501688 27.1649831,0 17.5,0 C7.83501688,0 0,7.83501688 0,17.5 C0,27.1649831 7.83501688,35 17.5,35 Z" id="Oval-1-Copy-7" fill="#76CFA6" opacity="0.15"></path>
                 <polyline id="icon_close" fill="#76CFA6" opacity="0.9" transform="translate(17.468897, 17.470577) rotate(-315.000000) translate(-17.468897, -17.470577) " points="18.2115394 5.97057742 16.674774 5.97057742 16.674774 16.7275762 5.9688975 16.7275762 5.9688975 18.2642903 16.674774 18.2642903 16.674774 28.9705774 18.2115394 28.9705774 18.2115394 18.2642903 28.9688975 18.2642903 28.9688975 16.7275762 18.2115394 16.7275762 18.2115394 5.97057742"></polyline>
             </g>
         </g>
diff --git a/src/skins/vector/img/icons-search.svg b/src/skins/vector/img/icons-search.svg
index 4f5002ab..d85709e6 100644
--- a/src/skins/vector/img/icons-search.svg
+++ b/src/skins/vector/img/icons-search.svg
@@ -2,7 +2,7 @@
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="35" height="35" viewBox="0, 0, 35, 35">
   <g id="Symbols">
-    <path d="M17.5,35 C27.165,35 35,27.165 35,17.5 C35,7.835 27.165,0 17.5,0 C7.835,0 0,7.835 0,17.5 C0,27.165 7.835,35 17.5,35 z" fill="#EAF5F0" id="Oval-1-Copy-7"/>
+    <path d="M17.5,35 C27.165,35 35,27.165 35,17.5 C35,7.835 27.165,0 17.5,0 C7.835,0 0,7.835 0,17.5 C0,27.165 7.835,35 17.5,35 z" fill="#76CFA6" opacity="0.15" id="Oval-1-Copy-7"/>
     <path d="M22.4,15.4 C22.4,19.266 19.266,22.4 15.4,22.4 C11.534,22.4 8.4,19.266 8.4,15.4 C8.4,11.534 11.534,8.4 15.4,8.4 C19.266,8.4 22.4,11.534 22.4,15.4 z" fill-opacity="0" stroke="#76CFA6" stroke-width="1" stroke-linecap="round" id="path-1" opacity="0.7"/>
     <path d="M20.3,20.3 L25.25,25.25" fill-opacity="0" stroke="#76CFA6" stroke-width="1" stroke-linecap="round" id="Line" opacity="0.7"/>
   </g>
diff --git a/src/skins/vector/img/icons-upload.svg b/src/skins/vector/img/icons-upload.svg
index 9074fcf9..b0101e87 100644
--- a/src/skins/vector/img/icons-upload.svg
+++ b/src/skins/vector/img/icons-upload.svg
@@ -2,7 +2,7 @@
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="35" height="35" viewBox="0, 0, 35, 35">
   <g id="Symbols">
-    <path d="M17.5,35 C27.165,35 35,27.165 35,17.5 C35,7.835 27.165,0 17.5,0 C7.835,0 0,7.835 0,17.5 C0,27.165 7.835,35 17.5,35 z" fill="#EAF5F0" id="Oval-109-Copy"/>
+    <path d="M17.5,35 C27.165,35 35,27.165 35,17.5 C35,7.835 27.165,0 17.5,0 C7.835,0 0,7.835 0,17.5 C0,27.165 7.835,35 17.5,35 z" fill="#76CFA6" opacity="0.15" id="Oval-109-Copy"/>
     <g id="file">
       <path d="M10,10.01 C10,7.795 11.782,6 14.004,6 L18.402,6 C18.402,6 25,12.492 25,12.492 L25,24.006 C25,26.212 23.206,28 21,28 L14,28 C11.791,28 10,26.2 10,23.99 L10,10.01 z" fill-opacity="0" stroke="#76CFA6" stroke-width="1" id="path-1"/>
       <path d="M25,13 L20.157,13 C18.966,13 18,12.034 18,10.843 L18,6" fill-opacity="0" stroke="#76CFA6" stroke-width="1" id="path-3"/>
diff --git a/src/skins/vector/img/icons-video.svg b/src/skins/vector/img/icons-video.svg
index a35df49b..d367f496 100644
--- a/src/skins/vector/img/icons-video.svg
+++ b/src/skins/vector/img/icons-video.svg
@@ -7,7 +7,7 @@
     <g id="Extra-icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="Extra-icons-sheet" transform="translate(-542.000000, -366.000000)">
             <g id="icons_video" transform="translate(542.000000, 366.000000)">
-                <path d="M17.5,35 C27.1649831,35 35,27.1649831 35,17.5 C35,7.83501688 27.1649831,0 17.5,0 C7.83501688,0 0,7.83501688 0,17.5 C0,27.1649831 7.83501688,35 17.5,35 Z" id="Oval-109-Copy-2" fill="#EAF5F0"></path>
+                <path d="M17.5,35 C27.1649831,35 35,27.1649831 35,17.5 C35,7.83501688 27.1649831,0 17.5,0 C7.83501688,0 0,7.83501688 0,17.5 C0,27.1649831 7.83501688,35 17.5,35 Z" id="Oval-109-Copy-2" fill="#76CFA6" opacity="0.15"></path>
                 <g transform="translate(9.000000, 11.500000)" id="Rectangle-20-+-Path-16" stroke="#76CFA6">
                     <g transform="scale(1.0, 0.8)">
                         <rect id="Rectangle-20" x="0" y="0" width="13" height="17" rx="4"></rect>

From 237f4df08eeb0333c451928d5af4adacd1000aca Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Wed, 18 Jan 2017 21:30:53 +0000
Subject: [PATCH 172/243] A couple of tweaks to the karma config

* allow the imgs to be served from the karma server to avoid 404s
* Use the source-map-loader for js
---
 karma.conf.js | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/karma.conf.js b/karma.conf.js
index 24742169..901832c7 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -29,12 +29,22 @@ module.exports = function (config) {
         files: [
             'node_modules/babel-polyfill/browser.js',
             testFile,
-            {pattern: 'vector/img/*', watched: false, included: false, served: true, nocache: false},
+
+            // make the images available via our httpd. They will be avaliable
+            // below http://localhost:[PORT]/base/. See also `proxies` which
+            // defines alternative URLs for them.
+            //
+            // This isn't required by any of the tests, but it stops karma
+            // logging warnings when it serves a 404 for them.
+            {
+                pattern: 'src/skins/vector/img/*',
+                watched: false, included: false, served: true, nocache: false,
+            },
         ],
 
-        // redirect img links to the karma server
         proxies: {
-            "/img/": "/base/vector/img/",
+            // redirect img links to the karma server. See above.
+            "/img/": "/base/src/skins/vector/img/",
         },
 
         // preprocess matching files before serving them to the browser
@@ -86,6 +96,12 @@ module.exports = function (config) {
 
         webpack: {
             module: {
+                preLoaders: [
+                    // use the source-map-loader for javascript. This means
+                    // that we have a better chance of seeing line numbers from
+                    // the pre-babeled source.
+                    { test: /\.js$/, loader: "source-map-loader" },
+                ],
                 loaders: [
                     { test: /\.json$/, loader: "json" },
                     {

From c5032ba1bc4a7cde6ccd69c370ab336b7d2deac8 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@arasphere.net>
Date: Wed, 18 Jan 2017 22:46:12 +0000
Subject: [PATCH 173/243] Update theming.md

---
 docs/theming.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/theming.md b/docs/theming.md
index defb18bc..c6373e52 100644
--- a/docs/theming.md
+++ b/docs/theming.md
@@ -13,7 +13,7 @@ To define a theme for Riot:
  1. Pick a name, e.g. `teal`. at time of writing we have `light` and `dark`.
  2. Fork `src/skins/vector/css/themes/dark.scss` to be teal.scss
  3. Fork `src/skins/vector/css/themes/_base.scss` to be _teal.scss
- 4. Override variables in _teal.css as desired. You may wish to delete ones
+ 4. Override variables in _teal.scss as desired. You may wish to delete ones
     which don't differ from _base.scss, to make it clear which are being
     overridden. If every single colour is being changed (as per _dark.scss)
     then you might as well keep them all.
@@ -22,4 +22,4 @@ To define a theme for Riot:
  7. Sit back and admire your handywork.
 
 In future, the assets for a theme will probably be gathered together into a
-single directory tree.
\ No newline at end of file
+single directory tree.

From d1fbbf90c088f5d97a2b82882f8755dab5b03d5f Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Wed, 18 Jan 2017 21:51:49 +0000
Subject: [PATCH 174/243] Verify PGP signatures on tarballs when deploying

---
 scripts/deploy.py   | 35 ++++++++++++++++++++++++++++++-----
 scripts/redeploy.py |  6 ++++++
 2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/scripts/deploy.py b/scripts/deploy.py
index dde13c54..c96b46e8 100755
--- a/scripts/deploy.py
+++ b/scripts/deploy.py
@@ -10,8 +10,16 @@ from __future__ import print_function
 import argparse
 import os
 import os.path
+import subprocess
+import sys
 import tarfile
-import urllib
+
+try:
+    # python3
+    from urllib.request import urlretrieve
+except ImportError:
+    # python2
+    from urllib import urlretrieve
 
 class DeployException(Exception):
     pass
@@ -56,6 +64,7 @@ class Deployer:
         self.bundles_path = None
         self.should_clean = False
         self.config_location = None
+        self.verify_signature = True
 
     def deploy(self, tarball, extract_path):
         """Download a tarball if necessary, and unpack it
@@ -65,9 +74,15 @@ class Deployer:
         """
         print("Deploying %s to %s" % (tarball, extract_path))
 
+        name_str = os.path.basename(tarball).replace(".tar.gz", "")
+        extracted_dir = os.path.join(extract_path, name_str)
+        if os.path.exists(extracted_dir):
+            raise DeployException('Cannot unpack %s: %s already exists' % (
+                tarball, extracted_dir))
+
         downloaded = False
         if tarball.startswith("http://") or tarball.startswith("https://"):
-            tarball = self.download_file(tarball)
+            tarball = self.download_and_verify(tarball)
             print("Downloaded file: %s" % tarball)
             downloaded = True
 
@@ -78,8 +93,6 @@ class Deployer:
             if self.should_clean and downloaded:
                 os.remove(tarball)
 
-        name_str = os.path.basename(tarball).replace(".tar.gz", "")
-        extracted_dir = os.path.join(extract_path, name_str)
         print ("Extracted into: %s" % extracted_dir)
 
         if self.config_location:
@@ -101,12 +114,24 @@ class Deployer:
             )
         return extracted_dir
 
+    def download_and_verify(self, url):
+        tarball = self.download_file(url)
+
+        if self.verify_signature:
+            sigfile = self.download_file(url + ".asc")
+            subprocess.check_call(["gpg", "--verify", sigfile, tarball])
+
+        return tarball
+
     def download_file(self, url):
         if not os.path.isdir(self.packages_path):
             os.mkdir(self.packages_path)
         local_filename = os.path.join(self.packages_path,
                                       url.split('/')[-1])
-        urllib.urlretrieve(url, local_filename)
+        sys.stdout.write("Downloading %s -> %s..." % (url, local_filename))
+        sys.stdout.flush()
+        urlretrieve(url, local_filename)
+        print ("Done")
         return local_filename
 
 if __name__ == "__main__":
diff --git a/scripts/redeploy.py b/scripts/redeploy.py
index 0796b963..598f6c52 100755
--- a/scripts/redeploy.py
+++ b/scripts/redeploy.py
@@ -214,6 +214,12 @@ if __name__ == "__main__":
     deployer.should_clean = args.clean
     deployer.config_location = args.config
 
+    # we don't pgp-sign jenkins artifacts; instead we rely on HTTPS access to
+    # the jenkins server (and the jenkins server not being compromised and/or
+    # github not serving it compromised source). If that's not good enough for
+    # you, don't use riot.im/develop.
+    deployer.verify_signature = False
+
     if args.tarball_uri is not None:
         build_dir = os.path.join(arg_extract_path, "test-%i" % (time.time()))
         deploy_tarball(args.tarball_uri, build_dir)

From c3fa6ff8053f047d6d8dd8270dbb243abed5d587 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 19 Jan 2017 02:48:17 +0000
Subject: [PATCH 175/243] Use the postcss-webpack-loader

Use postcss-webpack-loader instead of webpack-cli to process the scss. Doing so
mostly means that we avoid the problem that webpack-dev-server fails to start
if we haven't already built the CSS. (It also simplifies package.json somewhat,
which is no bad thing)
---
 package.json        | 14 ++++++--------
 postcss.config.js   | 13 +++++++++++++
 postcss.config.json | 15 ---------------
 webpack.config.js   | 26 +++++++++++++++++++++-----
 4 files changed, 40 insertions(+), 28 deletions(-)
 create mode 100644 postcss.config.js
 delete mode 100644 postcss.config.json

diff --git a/package.json b/package.json
index 722e0cf0..84e05478 100644
--- a/package.json
+++ b/package.json
@@ -29,21 +29,19 @@
     "reskindex": "reskindex -h src/header",
     "build:res": "node scripts/copy-res.js",
     "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
-    "build:css": "mkdirp build && postcss -c postcss.config.json",
     "build:compile": "babel --source-maps -d lib src",
     "build:bundle": "NODE_ENV=production webpack -p --progress",
     "build:bundle:dev": "webpack --optimize-occurence-order --progress",
     "build:electron": "npm run clean && npm run build && build -wml --ia32 --x64",
-    "build": "node scripts/babelcheck.js && npm run build:res && npm run build:css && npm run build:bundle",
-    "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:css && npm run build:bundle:dev",
+    "build": "node scripts/babelcheck.js && npm run build:res && npm run build:bundle",
+    "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:bundle:dev",
     "dist": "scripts/package.sh",
     "start:res": "node scripts/copy-res.js -w",
     "start:js": "webpack-dev-server -w --progress",
     "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
-    "start:css": "mkdirp build && postcss -c postcss.config.json -w",
-    "start": "node scripts/babelcheck.js && parallelshell \"npm run start:res\" \"npm run start:js\" \"npm run start:css\"",
-    "start:prod": "parallelshell \"npm run start:res\" \"npm run start:js:prod\" \"npm run start:css\"",
-    "clean": "rimraf build lib webapp electron/dist",
+    "start": "node scripts/babelcheck.js && parallelshell \"npm run start:res\" \"npm run start:js\"",
+    "start:prod": "parallelshell \"npm run start:res\" \"npm run start:js:prod\"",
+    "clean": "rimraf lib webapp electron/dist",
     "prepublish": "npm run build:compile",
     "test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
     "test:multi": "karma start"
@@ -114,9 +112,9 @@
     "mocha": "^2.4.5",
     "parallelshell": "^1.2.0",
     "phantomjs-prebuilt": "^2.1.7",
-    "postcss-cli": "^2.6.0",
     "postcss-extend": "^1.0.5",
     "postcss-import": "^9.0.0",
+    "postcss-loader": "^1.2.2",
     "postcss-mixins": "^5.4.1",
     "postcss-nested": "^1.0.0",
     "postcss-scss": "^0.4.0",
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 00000000..5305d9ed
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,13 @@
+module.exports = {
+    plugins: [
+        require("postcss-import")(),
+        require("autoprefixer")(),
+        require("postcss-simple-vars")(),
+        require("postcss-extend")(),
+        require("postcss-nested")(),
+        require("postcss-mixins")(),
+        require("postcss-strip-inline-comments")(),
+    ],
+    "parser": "postcss-scss",
+    "local-plugins": true,
+};
diff --git a/postcss.config.json b/postcss.config.json
deleted file mode 100644
index 7ed32cda..00000000
--- a/postcss.config.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-    "use": [
-        "postcss-import",
-        "autoprefixer",
-        "postcss-simple-vars",
-        "postcss-extend",
-        "postcss-nested",
-        "postcss-mixins",
-        "postcss-strip-inline-comments"
-    ],
-    "parser": "postcss-scss",
-    "input": "src/skins/vector/css/themes/[^_]*.scss",
-    "dir": "build",
-    "local-plugins": true
-}
diff --git a/webpack.config.js b/webpack.config.js
index 3a701965..136e0af7 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -17,8 +17,8 @@ module.exports = {
         "olm": "./src/vector/olm-loader.js",
 
         // CSS themes
-        "theme-light": "./build/light.scss",
-        "theme-dark": "./build/dark.scss",
+        "theme-light": "./src/skins/vector/css/themes/light.scss",
+        "theme-dark": "./src/skins/vector/css/themes/dark.scss"
     },
     module: {
         preLoaders: [
@@ -27,9 +27,25 @@ module.exports = {
         loaders: [
             { test: /\.json$/, loader: "json" },
             { test: /\.js$/, loader: "babel", include: path.resolve('./src') },
-            // css-raw-loader loads CSS but doesn't try to treat url()s as require()s
-            // we're assuming that postcss has already preprocessed SCSS by this point
-            { test: /\.s?css$/, loader: ExtractTextPlugin.extract("css-raw-loader") },
+            {
+                test: /\.scss$/,
+
+                // 1. postcss-loader turns the SCSS into normal CSS.
+                // 2. css-raw-loader turns the CSS into a javascript module
+                //    whose default export is a string containing the CSS.
+                //    (css-raw-loader is similar to css-loader, but the latter
+                //    would also drag in the imgs and fonts that our CSS refers to
+                //    as webpack inputs.)
+                // 3. ExtractTextPlugin turns that string into a separate asset.
+                loader: ExtractTextPlugin.extract(
+                    "css-raw-loader!postcss-loader?config=postcss.config.js"
+                ),
+            },
+            {
+                // this works similarly to the scss case, without postcss.
+                test: /\.css$/,
+                loader: ExtractTextPlugin.extract("css-raw-loader"),
+            },
         ],
         noParse: [
             // don't parse the languages within highlight.js. They cause stack

From e08f97a549925ee6bada12963dac1afdae0de714 Mon Sep 17 00:00:00 2001
From: lukebarnard <luke.barnard99@gmail.com>
Date: Thu, 19 Jan 2017 11:52:15 +0100
Subject: [PATCH 176/243] Reduce animation time to 200ms

---
 .../vector/css/matrix-react-sdk/structures/RoomView.css   | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

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 3b3c396f..b7fe0441 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
@@ -208,10 +208,10 @@ hr.mx_RoomView_myReadMarker {
     z-index: 1000;
     overflow: hidden;
 
-    -webkit-transition: all .5s ease-in-out;
-    -moz-transition: all .5s ease-in-out;
-    -ms-transition: all .5s ease-in-out;
-    -o-transition: all .5s ease-in-out;
+    -webkit-transition: all .2s ease-in-out;
+    -moz-transition: all .2s ease-in-out;
+    -ms-transition: all .2s ease-in-out;
+    -o-transition: all .2s ease-in-out;
 }
 
 .mx_RoomView_statusArea_expanded {

From 6b1d1389187c3a0904ae2c04097033cd7631a12d Mon Sep 17 00:00:00 2001
From: lukebarnard <luke.barnard99@gmail.com>
Date: Thu, 19 Jan 2017 12:45:26 +0100
Subject: [PATCH 177/243] Make scrolling to bottom whilst expanded seem less
 weird inertially

---
 .../css/matrix-react-sdk/structures/RoomView.css    | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

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 b7fe0441..6dc22e2f 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
@@ -208,10 +208,10 @@ hr.mx_RoomView_myReadMarker {
     z-index: 1000;
     overflow: hidden;
 
-    -webkit-transition: all .2s ease-in-out;
-    -moz-transition: all .2s ease-in-out;
-    -ms-transition: all .2s ease-in-out;
-    -o-transition: all .2s ease-in-out;
+    -webkit-transition: all .2s ease-out;
+    -moz-transition: all .2s ease-out;
+    -ms-transition: all .2s ease-out;
+    -o-transition: all .2s ease-out;
 }
 
 .mx_RoomView_statusArea_expanded {
@@ -221,6 +221,11 @@ hr.mx_RoomView_myReadMarker {
 
 .mx_RoomView_statusArea_expanded.mx_RoomView_statusArea_mid_timeline {
     margin-top: -50px;
+
+    -webkit-transition: all .2s ease-in;
+    -moz-transition: all .2s ease-in;
+    -ms-transition: all .2s ease-in;
+    -o-transition: all .2s ease-in;
 }
 
 .mx_RoomView_statusAreaBox {

From 89d514a532827f5eb576a43138228a96a1606c02 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 19 Jan 2017 12:02:19 +0000
Subject: [PATCH 178/243] Query IndexedDB for all results with index=0

---
 src/vector/rageshake.js | 46 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 41 insertions(+), 5 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 9b6106ed..65462d15 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -24,7 +24,7 @@ limitations under the License.
 //    generates a random string which serves as the "ID" for that tab/session. These IDs are stored along with the log lines.
 //  - Bug reports are sent as a POST over HTTPS: it purposefully does not use Matrix as bug reports may be made when Matrix is
 //    not responsive (which may be the cause of the bug). We send the most recent N MB of UTF-8 log data, starting with the most
-//    recent, which we know because the "ID"s are actually timestamps. We then purge the remaining logs. We also do this check
+//    recent, which we know because the "ID"s are actually timestamps. We then purge the remaining logs. We also do this purge
 //    on startup to prevent logs from accumulating.
 
 const FLUSH_RATE_MS = 30 * 1000;
@@ -38,6 +38,7 @@ class ConsoleLogger {
         const consoleFunctionsToLevels = {
             log: "I",
             info: "I",
+            warn: "W",
             error: "E",
         };
         Object.keys(consoleFunctionsToLevels).forEach((fnName) => {
@@ -110,6 +111,12 @@ class IndexedDBLogStore {
                 const objectStore = db.createObjectStore("logs", {
                     keyPath: ["id", "index"]
                 });
+                // Keys in the database look like: [ "instance-148938490", 0 ]
+                // Later on we need to query for everything with index=0, and query everything for an instance id.
+                // In order to do this, we need to set up indexes on both "id" and "index".
+                objectStore.createIndex("index", "index", { unique: false });
+                objectStore.createIndex("id", "id", { unique: false });
+
                 objectStore.add(
                     this._generateLogEntry(
                         new Date() + " ::: Log database was created."
@@ -161,9 +168,11 @@ class IndexedDBLogStore {
         const MAX_LOG_SIZE = 1024 * 1024 * 50; // 50 MB
         // To gather all the logs, we first query for every log entry with index "0", this will let us
         // know all the IDs from different tabs/sessions.
-        return new Promise((resolve, reject) => {
-            // let txn = this.db.transaction("logs", "readonly");
-            // let objectStore = txn.objectStore("logs");
+        const txn = this.db.transaction("logs", "readonly");
+        const objectStore = txn.objectStore("logs");
+        return selectQuery(objectStore.index("index"), IDBKeyRange.only(0), (cursor) => cursor.value.id).then((res) => {
+            console.log("Instances: ", res);
+        });
 
             // we know each entry has a unique ID, and we know IDs are timestamps, so accumulate all the IDs,
             // ignoring the logs for now, and sort them to work out the correct log ID ordering.
@@ -175,7 +184,6 @@ class IndexedDBLogStore {
             // Remove all logs that are older than the cutoff (or the entire logs if clearAll is set).
 
             // Return the logs that are within the cutoff.
-        });
     }
 
     _generateLogEntry(lines) {
@@ -187,6 +195,34 @@ class IndexedDBLogStore {
     }
 }
 
+/**
+ * Helper method to collect results from a Cursor and promiseify it.
+ * @param {ObjectStore|Index} store The store to perform openCursor on.
+ * @param {IDBKeyRange=} keyRange Optional key range to apply on the cursor.
+ * @param {Function} resultMapper A function which is repeatedly called with a Cursor.
+ * Return the data you want to keep.
+ * @return {Promise<T[]>} Resolves to an array of whatever you returned from resultMapper.
+ */
+function selectQuery(store, keyRange, resultMapper) {
+    const query = store.openCursor(keyRange);
+    return new Promise((resolve, reject) => {
+        let results = [];
+        query.onerror = (event) => {
+            reject(new Error("Query failed: " + event.target.errorCode));
+        };
+        // collect results
+        query.onsuccess = (event) => {
+            const cursor = event.target.result;
+            if (!cursor) {
+                resolve(results);
+                return; // end of results
+            }
+            results.push(resultMapper(cursor));
+            cursor.continue();
+        }
+    });
+}
+
 
 let store = null;
 let inited = false;

From 231adbcd311359b858dbb7dd7911d4dab9b21891 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 19 Jan 2017 13:02:08 +0000
Subject: [PATCH 179/243] Add copyright header

---
 electron/src/squirrelhooks.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/electron/src/squirrelhooks.js b/electron/src/squirrelhooks.js
index ca0983b6..15ed670f 100644
--- a/electron/src/squirrelhooks.js
+++ b/electron/src/squirrelhooks.js
@@ -1,3 +1,19 @@
+/*
+Copyright 2017 OpenMarket Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
 const path = require('path');
 const spawn = require('child_process').spawn;
 const app = require('electron').app;

From bee4ca2b28babf3cf43ec3c744a6b4e10bf3e624 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 19 Jan 2017 13:25:56 +0000
Subject: [PATCH 180/243] Fixes to electron desktop notifs

Merge the notification part of https://github.com/vector-im/riot-web/pull/2960

 * Show and focus the window when the notification is clicked,
   rather than just restoring it.
 * Implement requestNotificationPermission and return a resolved
   promise (although in practice it should never be called)
---
 src/vector/platform/ElectronPlatform.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index 68df88b0..47bfd990 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -97,7 +97,10 @@ export default class ElectronPlatform extends VectorBasePlatform {
                 room_id: room.roomId
             });
             global.focus();
-            electron.remote.getCurrentWindow().restore();
+            const currentWin = electron.remote.getCurrentWindow();
+            currentWin.show();
+            currentWin.restore();
+            currentWin.focus();
         };
 
         return notification;
@@ -131,4 +134,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
     screenCaptureErrorString() {
         return null;
     }
+
+    requestNotificationPermission() : Promise {
+        return q('granted');
+    }
 }

From d11bcdad5fdd80c9eed34328a566fb707111b6b6 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 19 Jan 2017 14:29:07 +0000
Subject: [PATCH 181/243] Add electron tray icon

From https://github.com/vector-im/riot-web/pull/2960

Makes riot minimise to the tray on windows / linux.
---
 electron/src/electron-main.js | 10 +++++-
 electron/src/tray.js          | 67 +++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100644 electron/src/tray.js

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 929b7892..653dfd46 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -26,6 +26,8 @@ if (check_squirrel_hooks()) return;
 const electron = require('electron');
 const url = require('url');
 
+const tray = require('./tray');
+
 const VectorMenu = require('./vectormenu');
 
 let vectorConfig = {};
@@ -180,6 +182,12 @@ electron.app.on('ready', () => {
     mainWindow.loadURL(`file://${__dirname}/../../webapp/index.html`);
     electron.Menu.setApplicationMenu(VectorMenu);
 
+    // Create trayIcon icon
+    tray.create(mainWindow, {
+        icon_path: icon_path,
+        brand: vectorConfig.brand || 'Riot'
+    });
+
     mainWindow.once('ready-to-show', () => {
         mainWindow.show();
     });
@@ -187,7 +195,7 @@ electron.app.on('ready', () => {
         mainWindow = null;
     });
     mainWindow.on('close', (e) => {
-        if (process.platform == 'darwin' && !appQuitting) {
+        if (!appQuitting && (tray.hasTray() || process.platform == 'darwin')) {
             // On Mac, closing the window just hides it
             // (this is generally how single-window Mac apps
             // behave, eg. Mail.app)
diff --git a/electron/src/tray.js b/electron/src/tray.js
new file mode 100644
index 00000000..2ccdf40c
--- /dev/null
+++ b/electron/src/tray.js
@@ -0,0 +1,67 @@
+/*
+Copyright 2017 Karl Glatz <karl@glatz.biz>
+Copyright 2017 OpenMarket Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+const path = require('path');
+const electron = require('electron');
+
+const app = electron.app;
+const Tray = electron.Tray;
+const MenuItem = electron.MenuItem;
+
+let trayIcon = null;
+
+exports.hasTray = function hasTray() {
+    return (trayIcon !== null);
+}
+
+exports.create = function (win, config) {
+    // no trays on darwin
+    if (process.platform === 'darwin' || trayIcon) {
+        return;
+    }
+
+    const toggleWin = function () {
+        if (win.isVisible() && !win.isMinimized()) {
+            win.hide();
+        } else {
+            if (win.isMinimized()) win.restore();
+            if (!win.isVisible()) win.show();
+            win.focus();
+        }
+    };
+
+    const contextMenu = electron.Menu.buildFromTemplate([
+        {
+            label: 'Show/Hide ' + config.brand,
+            click: toggleWin
+        },
+        {
+            type: 'separator'
+        },
+        {
+            label: 'Quit',
+            click: function () {
+                app.quit();
+            }
+        }
+    ]);
+
+    trayIcon = new Tray(config.icon_path);
+    trayIcon.setToolTip(config.brand);
+    trayIcon.setContextMenu(contextMenu);
+    trayIcon.on('click', toggleWin);
+};

From 608c1b02081a75617a9d9a9ed483a962c7f0940a Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 19 Jan 2017 15:03:47 +0000
Subject: [PATCH 182/243] Finish implementing consume()

- Fetches all logs in order and concatenates correctly.
- Purges old logs correctly.
---
 src/vector/index.js     |   1 +
 src/vector/rageshake.js | 133 ++++++++++++++++++++++++++++++++++------
 2 files changed, 116 insertions(+), 18 deletions(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index b965f01d..d773db85 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -39,6 +39,7 @@ require('draft-js/dist/Draft.css');
 const rageshake = require("./rageshake");
 rageshake.init().then(() => {
     console.log("Initialised rageshake");
+    rageshake.sendBugReport();
 }, (err) => {
     console.error("Failed to initialise rageshake: " + err);
 });
diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 65462d15..6093515d 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -166,24 +166,120 @@ class IndexedDBLogStore {
      */
     consume(clearAll) {
         const MAX_LOG_SIZE = 1024 * 1024 * 50; // 50 MB
-        // To gather all the logs, we first query for every log entry with index "0", this will let us
-        // know all the IDs from different tabs/sessions.
-        const txn = this.db.transaction("logs", "readonly");
-        const objectStore = txn.objectStore("logs");
-        return selectQuery(objectStore.index("index"), IDBKeyRange.only(0), (cursor) => cursor.value.id).then((res) => {
-            console.log("Instances: ", res);
+        const db = this.db;
+
+        // Returns: a string representing the concatenated logs for this ID.
+        function fetchLogs(id) {
+            const o = db.transaction("logs", "readonly").objectStore("logs");
+            return selectQuery(o.index("id"), IDBKeyRange.only(id), (cursor) => {
+                return {
+                    lines: cursor.value.lines,
+                    index: cursor.value.index,
+                }
+            }).then((linesArray) => {
+                // We have been storing logs periodically, so string them all together *in order of index* now
+                linesArray.sort((a, b) => {
+                    return a.index - b.index;
+                })
+                return linesArray.map((l) => l.lines).join("");
+            });
+        }
+
+        // Returns: A sorted array of log IDs. (newest first)
+        function fetchLogIds() {
+            // To gather all the log IDs, query for every log entry with index "0", this will let us
+            // know all the IDs from different tabs/sessions.
+            const o = db.transaction("logs", "readonly").objectStore("logs");
+            return selectQuery(o.index("index"), IDBKeyRange.only(0), (cursor) => cursor.value.id).then((res) => {
+                // we know each entry has a unique ID, and we know IDs are timestamps, so accumulate all the IDs,
+                // ignoring the logs for now, and sort them to work out the correct log ID ordering, newest first.
+                // E.g. [ "instance-1484827160051", "instance-1374827160051", "instance-1000007160051"]
+                return res.sort().reverse();
+            });
+        }
+
+        function deleteLogs(id) {
+            return new Promise((resolve, reject) => {
+                const txn = db.transaction("logs", "readwrite");
+                const o = txn.objectStore("logs");
+                // only load the key path, not the data which may be huge
+                const query = o.index("id").openKeyCursor(IDBKeyRange.only(id));
+                query.onsuccess = (event) => {
+                    const cursor = event.target.result;
+                    if (!cursor) {
+                        return;
+                    }
+                    o.delete(cursor.primaryKey);
+                    cursor.continue();
+                }
+                txn.oncomplete = () => {
+                    resolve();
+                };
+                txn.onerror = (event) => {
+                    reject(new Error(`Failed to delete logs for '${id}' : ${event.target.errorCode}`));
+                }
+            });
+        }
+
+        // Ideally we'd just use coroutines and a for loop but riot-web doesn't support async/await so instead
+        // recursively fetch logs up to the given threshold. We can't cheat and fetch all the logs
+        // from all time, but we may OOM if we do so.
+        // Returns: Promise<Object[]> : Each object having 'id' and 'lines'. Same ordering as logIds.
+        function fetchLogsToThreshold(logIds, threshold, logs) {
+            // Base case: check log size and return if bigger than threshold
+            let size = 0;
+            logs.forEach((l) => {
+                size += l.lines.length;
+            });
+            if (size > threshold) {
+                return Promise.resolve(logs);
+            }
+
+            // fetch logs for the first element
+            let logId = logIds.shift();
+            if (!logId) {
+                // no more entries
+                return Promise.resolve(logs);
+            }
+            return fetchLogs(logId).then((lines) => {
+                // add result to logs
+                logs.push({
+                    lines: lines,
+                    id: logId,
+                });
+                // recurse with the next log ID. TODO: Stack overflow risk?
+                return fetchLogsToThreshold(logIds, threshold, logs);
+            })
+        }
+
+        let allLogIds = [];
+        return fetchLogIds().then((logIds) => {
+            allLogIds = logIds.map((id) => id); // deep copy array as we'll modify it when fetching logs
+            return fetchLogsToThreshold(logIds, MAX_LOG_SIZE, []);
+        }).then((logs) => {
+            // Remove all logs that are beyond the threshold (not in logs), or the entire logs if clearAll was set.
+            let removeLogIds = allLogIds;
+            if (!clearAll) {
+                removeLogIds = removeLogIds.filter((id) => {
+                    for (let i = 0; i < logs.length; i++) {
+                        if (logs[i].id === id) {
+                            return false; // do not remove logs that we're about to return to the caller.
+                        }
+                    }
+                    return true;
+                });
+            }
+            if (removeLogIds.length > 0) {
+                console.log("Removing logs: ", removeLogIds);
+                // Don't promise chain this because it's non-fatal if we can't clean up logs.
+                Promise.all(removeLogIds.map((id) => deleteLogs(id))).then(() => {
+                    console.log(`Removed ${removeLogIds.length} old logs.`);
+                }, (err) => {
+                    console.error(err);
+                })
+            }
+            return logs;
         });
-
-            // we know each entry has a unique ID, and we know IDs are timestamps, so accumulate all the IDs,
-            // ignoring the logs for now, and sort them to work out the correct log ID ordering.
-
-            // Starting with the most recent ID, fetch the logs (all indices) for said ID and accumulate them
-            // in order. After fetching ALL the logs for an ID, recheck the total length of the logs to work out
-            // if we have exceeded the max size cutoff for "recent" logs.
-
-            // Remove all logs that are older than the cutoff (or the entire logs if clearAll is set).
-
-            // Return the logs that are within the cutoff.
     }
 
     _generateLogEntry(lines) {
@@ -258,8 +354,9 @@ module.exports = {
      * @return {Promise} Resolved when the bug report is sent.
      */
     sendBugReport: function(userText) {
-        return store.consume(true).then((data) => {
+        return store.consume(false).then((logs) => {
             // Send logs grouped by ID
+            console.log(logs);
         });
     }
 };

From 61c5253dbf41fed7deec32d445bfa3c222833a7a Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 19 Jan 2017 15:40:54 +0000
Subject: [PATCH 183/243] Give the 'Light' theme link a title too

... mostly to make it appear on the Firefox style menu.
---
 src/vector/index.html | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/vector/index.html b/src/vector/index.html
index a6c3092d..3ab667cc 100644
--- a/src/vector/index.html
+++ b/src/vector/index.html
@@ -22,11 +22,13 @@
     <meta name="theme-color" content="#ffffff">
     <% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
         var file = htmlWebpackPlugin.files.css[i];
-        var match = file.match(/^bundles\/.*?\/theme-((?!light\.).*)\.css$/);
+        var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/);
         if (match) {
             var title = match[1].charAt(0).toUpperCase() + match[1].slice(1);
+            var light = match[1] == 'light';
         %>
-           <link rel="alternate stylesheet" title="<%= title  %>" href="<%= file %>">
+           <link rel="<%= light ? '' : 'alternate ' %>stylesheet" title="<%= title %>"
+               href="<%= file %>">
         <% } else { %>
            <link rel="stylesheet" href="<%= file %>">
         <% }

From 81d437ac1e16104f32fef3c0d694a215fb7129a5 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 19 Jan 2017 15:47:55 +0000
Subject: [PATCH 184/243] POST reports to localhost for now. Also send live
 console logs

---
 src/vector/index.js     |  2 +-
 src/vector/rageshake.js | 75 +++++++++++++++++++++++++++++++++++------
 2 files changed, 66 insertions(+), 11 deletions(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index d773db85..d1d457e9 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -39,7 +39,7 @@ require('draft-js/dist/Draft.css');
 const rageshake = require("./rageshake");
 rageshake.init().then(() => {
     console.log("Initialised rageshake");
-    rageshake.sendBugReport();
+    rageshake.cleanup();
 }, (err) => {
     console.error("Failed to initialise rageshake: " + err);
 });
diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 6093515d..1f3dbc7d 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -14,6 +14,8 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
+import request from "browser-request";
+
 // This module contains all the code needed to log the console, persist it to disk and submit bug reports. Rationale is as follows:
 //  - Monkey-patching the console is preferable to having a log library because we can catch logs by other libraries more easily,
 //    without having to all depend on the same log framework / pass the logger around.
@@ -321,20 +323,27 @@ function selectQuery(store, keyRange, resultMapper) {
 
 
 let store = null;
-let inited = false;
+let logger = null;
+let initPromise = null;
 module.exports = {
 
     /**
      * Configure rage shaking support for sending bug reports.
      * Modifies globals.
+     * @return {Promise} Resolves when set up.
      */
     init: function() {
-        if (inited || !window.indexedDB) {
-            return;
+        if (initPromise) {
+            return initPromise;
         }
-        store = new IndexedDBLogStore(window.indexedDB, new ConsoleLogger());
-        inited = true;
-        return store.connect();
+        logger = new ConsoleLogger();
+        if (window.indexedDB) {
+            store = new IndexedDBLogStore(window.indexedDB, logger);
+            initPromise = store.connect();
+            return initPromise;
+        }
+        initPromise = Promise.resolve();
+        return initPromise;
     },
 
     /**
@@ -343,20 +352,66 @@ module.exports = {
      */
     flush: function() {
         if (!store) {
-            return;
+            return Promise.resolve();
         }
         return store.flush();
     },
 
+    /**
+     * Clean up old logs.
+     * @return Promise Resolves if cleaned logs.
+     */
+    cleanup: function() {
+        if (!store) {
+            return Promise.resolve();
+        }
+        return store.consume(false);
+    },
+
     /**
      * Send a bug report.
      * @param {string} userText Any additional user input.
      * @return {Promise} Resolved when the bug report is sent.
      */
     sendBugReport: function(userText) {
-        return store.consume(false).then((logs) => {
-            // Send logs grouped by ID
-            console.log(logs);
+        if (!logger) {
+            return Promise.reject(new Error("No console logger, did you forget to call init()?"));
+        }
+        // If in incognito mode, store is null, but we still want bug report sending to work going off
+        // the in-memory console logs.
+        let promise = Promise.resolve([]);
+        if (store) {
+            promise = store.consume(false); //  TODO Swap to true to remove all logs
+        }
+        return promise.then((logs) => {
+            // and add the most recent console logs which won't be in the store yet.
+            const consoleLogs = logger.flush(); // remove logs from console
+            const currentId = store ? store.id : "-";
+            logs.unshift({
+                lines: consoleLogs,
+                id: currentId,
+            });
+            return new Promise((resolve, reject) => {
+                request({
+                    method: "POST",
+                    url: "http://localhost:1337",
+                    body: {
+                        logs: logs,
+                        text: userText || "User did not supply any additional text.",
+                    },
+                    json: true,
+                }, (err, res) => {
+                    if (err) {
+                        reject(err);
+                        return;
+                    }
+                    if (res.status < 200 || res.status >= 400) {
+                        reject(new Error(`HTTP ${res.status}`));
+                        return;
+                    }
+                    resolve();
+                })
+            });
         });
     }
 };

From 789c7b60cc238d4b264d444e8e911a60d82c7b50 Mon Sep 17 00:00:00 2001
From: lukebarnard <luke.barnard99@gmail.com>
Date: Thu, 19 Jan 2017 16:51:41 +0100
Subject: [PATCH 185/243] CSS for avatars that appear when users are typing

---
 .../structures/_RoomStatusBar.scss            | 27 +++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
index 5daac88f..12cecffe 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
@@ -40,12 +40,12 @@ limitations under the License.
     opacity: 0.5;
     position: relative;
     top: -4px;
-/*    
+/*
     animation-duration: 1s;
     animation-name: bounce;
     animation-direction: alternate;
     animation-iteration-count: infinite;
-*/    
+*/
 }
 
 .mx_RoomStatusBar_placeholderIndicator span:nth-child(1) {
@@ -70,6 +70,29 @@ limitations under the License.
     }
 }
 
+.mx_RoomStatusBar_typingIndicatorAvatars {
+    width: 24px;
+    text-align: left;
+}
+
+.mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar {
+    margin-right: -12px;
+}
+
+.mx_RoomStatusBar_typingIndicatorRemaining {
+    display: inline-block;
+    color: #acacac;
+    background-color: #ddd;
+    border-radius: 40px;
+    width: 24px;
+    height: 24px;
+    line-height: 24px;
+    font-size: 0.8em;
+    vertical-align: top;
+    text-align: center;
+    position: absolute;
+}
+
 .mx_RoomStatusBar_scrollDownIndicator {
     cursor: pointer;
 }

From 537194608e34676450fa916a98d8a099a89af161 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 19 Jan 2017 16:01:37 +0000
Subject: [PATCH 186/243] Make riot desktop single instance

So launching a new instance will focus the old one, meaning that
if you have Riot minimised to the tray and launch it via the
desktop shortcut / start menu, you don't end up with more & more
copies of the app.

This doesn't really prevent you from running multiple copies of
the app to fake multi account support since they share a data
directory anyway.
---
 electron/src/electron-main.js | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js
index 929b7892..1a6ea692 100644
--- a/electron/src/electron-main.js
+++ b/electron/src/electron-main.js
@@ -159,6 +159,19 @@ electron.ipcMain.on('install_update', installUpdate);
 
 electron.app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
 
+const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirectory) => {
+    // Someone tried to run a second instance, we should focus our window.
+    if (mainWindow) {
+        if (!mainWindow.isVisible()) mainWindow.show();
+        if (mainWindow.isMinimized()) mainWindow.restore();
+        mainWindow.focus();
+    }
+});
+
+if (shouldQuit) {
+    electron.app.quit()
+}
+
 electron.app.on('ready', () => {
     if (vectorConfig.update_base_url) {
         console.log("Starting auto update with base URL: " + vectorConfig.update_base_url);

From f5d7f3ca9f77f491f93a5573e916463bfb2d5634 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 19 Jan 2017 16:21:43 +0000
Subject: [PATCH 187/243] Add StartupWMClass

so GNOME doesn't get confused by the hidden windows
---
 package.json | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 84e05478..b7b69d0c 100644
--- a/package.json
+++ b/package.json
@@ -146,7 +146,10 @@
     ],
     "linux": {
       "target": "deb",
-      "maintainer": "support@riot.im"
+      "maintainer": "support@riot.im",
+      "desktop": {
+          "StartupWMClass": "riot-web"
+      }
     },
     "win": {
       "target": "squirrel"

From bf887e82fec360a237bb1262ed4426311b5f7b18 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 19 Jan 2017 16:40:54 +0000
Subject: [PATCH 188/243] Swap to async/await rather than promise chains

Since we do in fact support coroutines!
---
 src/vector/rageshake.js | 161 ++++++++++++++++------------------------
 1 file changed, 65 insertions(+), 96 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 1f3dbc7d..299a8497 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -166,7 +166,7 @@ class IndexedDBLogStore {
      * when the log file was created (the log ID). The objects have said log ID in an "id" field and "lines" which is a
      * big string with all the new-line delimited logs.
      */
-    consume(clearAll) {
+    async consume(clearAll) {
         const MAX_LOG_SIZE = 1024 * 1024 * 50; // 50 MB
         const db = this.db;
 
@@ -223,65 +223,36 @@ class IndexedDBLogStore {
             });
         }
 
-        // Ideally we'd just use coroutines and a for loop but riot-web doesn't support async/await so instead
-        // recursively fetch logs up to the given threshold. We can't cheat and fetch all the logs
-        // from all time, but we may OOM if we do so.
-        // Returns: Promise<Object[]> : Each object having 'id' and 'lines'. Same ordering as logIds.
-        function fetchLogsToThreshold(logIds, threshold, logs) {
-            // Base case: check log size and return if bigger than threshold
-            let size = 0;
-            logs.forEach((l) => {
-                size += l.lines.length;
+        let allLogIds = await fetchLogIds();
+        let removeLogIds = [];
+        let logs = [];
+        let size = 0;
+        for (let i = 0; i < allLogIds.length; i++) {
+            let lines = await fetchLogs(allLogIds[i]);
+            logs.push({
+                lines: lines,
+                id: allLogIds[i],
             });
-            if (size > threshold) {
-                return Promise.resolve(logs);
+            size += lines.length;
+            if (size > MAX_LOG_SIZE) {
+                // the remaining log IDs should be removed. If we go out of bounds this is just []
+                removeLogIds = allLogIds.slice(i + 1);
+                break;
             }
-
-            // fetch logs for the first element
-            let logId = logIds.shift();
-            if (!logId) {
-                // no more entries
-                return Promise.resolve(logs);
-            }
-            return fetchLogs(logId).then((lines) => {
-                // add result to logs
-                logs.push({
-                    lines: lines,
-                    id: logId,
-                });
-                // recurse with the next log ID. TODO: Stack overflow risk?
-                return fetchLogsToThreshold(logIds, threshold, logs);
-            })
         }
-
-        let allLogIds = [];
-        return fetchLogIds().then((logIds) => {
-            allLogIds = logIds.map((id) => id); // deep copy array as we'll modify it when fetching logs
-            return fetchLogsToThreshold(logIds, MAX_LOG_SIZE, []);
-        }).then((logs) => {
-            // Remove all logs that are beyond the threshold (not in logs), or the entire logs if clearAll was set.
-            let removeLogIds = allLogIds;
-            if (!clearAll) {
-                removeLogIds = removeLogIds.filter((id) => {
-                    for (let i = 0; i < logs.length; i++) {
-                        if (logs[i].id === id) {
-                            return false; // do not remove logs that we're about to return to the caller.
-                        }
-                    }
-                    return true;
-                });
-            }
-            if (removeLogIds.length > 0) {
-                console.log("Removing logs: ", removeLogIds);
-                // Don't promise chain this because it's non-fatal if we can't clean up logs.
-                Promise.all(removeLogIds.map((id) => deleteLogs(id))).then(() => {
-                    console.log(`Removed ${removeLogIds.length} old logs.`);
-                }, (err) => {
-                    console.error(err);
-                })
-            }
-            return logs;
-        });
+        if (clearAll) {
+            removeLogIds = allLogIds;
+        }
+        if (removeLogIds.length > 0) {
+            console.log("Removing logs: ", removeLogIds);
+            // Don't await this because it's non-fatal if we can't clean up logs.
+            Promise.all(removeLogIds.map((id) => deleteLogs(id))).then(() => {
+                console.log(`Removed ${removeLogIds.length} old logs.`);
+            }, (err) => {
+                console.error(err);
+            })
+        }console.log("async consumeeeee");
+        return logs;
     }
 
     _generateLogEntry(lines) {
@@ -350,22 +321,22 @@ module.exports = {
      * Force-flush the logs to storage.
      * @return {Promise} Resolved when the logs have been flushed.
      */
-    flush: function() {
+    flush: async function() {
         if (!store) {
-            return Promise.resolve();
+            return;
         }
-        return store.flush();
+        await store.flush();
     },
 
     /**
      * Clean up old logs.
      * @return Promise Resolves if cleaned logs.
      */
-    cleanup: function() {
+    cleanup: async function() {
         if (!store) {
-            return Promise.resolve();
+            return;
         }
-        return store.consume(false);
+        await store.consume(false);
     },
 
     /**
@@ -373,45 +344,43 @@ module.exports = {
      * @param {string} userText Any additional user input.
      * @return {Promise} Resolved when the bug report is sent.
      */
-    sendBugReport: function(userText) {
+    sendBugReport: async function(userText) {
         if (!logger) {
-            return Promise.reject(new Error("No console logger, did you forget to call init()?"));
+            throw new Error("No console logger, did you forget to call init()?");
         }
         // If in incognito mode, store is null, but we still want bug report sending to work going off
         // the in-memory console logs.
-        let promise = Promise.resolve([]);
+        let logs = [];
         if (store) {
-            promise = store.consume(false); //  TODO Swap to true to remove all logs
+            logs = await store.consume(false);
         }
-        return promise.then((logs) => {
-            // and add the most recent console logs which won't be in the store yet.
-            const consoleLogs = logger.flush(); // remove logs from console
-            const currentId = store ? store.id : "-";
-            logs.unshift({
-                lines: consoleLogs,
-                id: currentId,
-            });
-            return new Promise((resolve, reject) => {
-                request({
-                    method: "POST",
-                    url: "http://localhost:1337",
-                    body: {
-                        logs: logs,
-                        text: userText || "User did not supply any additional text.",
-                    },
-                    json: true,
-                }, (err, res) => {
-                    if (err) {
-                        reject(err);
-                        return;
-                    }
-                    if (res.status < 200 || res.status >= 400) {
-                        reject(new Error(`HTTP ${res.status}`));
-                        return;
-                    }
-                    resolve();
-                })
-            });
+        // and add the most recent console logs which won't be in the store yet.
+        const consoleLogs = logger.flush(); // remove logs from console
+        const currentId = store ? store.id : "-";
+        logs.unshift({
+            lines: consoleLogs,
+            id: currentId,
+        });
+        await new Promise((resolve, reject) => {
+            request({
+                method: "POST",
+                url: "http://localhost:1337",
+                body: {
+                    logs: logs,
+                    text: userText || "User did not supply any additional text.",
+                },
+                json: true,
+            }, (err, res) => {
+                if (err) {
+                    reject(err);
+                    return;
+                }
+                if (res.status < 200 || res.status >= 400) {
+                    reject(new Error(`HTTP ${res.status}`));
+                    return;
+                }
+                resolve();
+            })
         });
     }
 };

From 3996d23b1996434723335ed0c3be423ba7298561 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 19 Jan 2017 16:49:25 +0000
Subject: [PATCH 189/243] Inject bug report endpoint URL from config.json

---
 config.sample.json      |  1 +
 src/vector/index.js     |  1 +
 src/vector/rageshake.js | 12 ++++++++++--
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/config.sample.json b/config.sample.json
index e6384221..a65646ac 100644
--- a/config.sample.json
+++ b/config.sample.json
@@ -4,6 +4,7 @@
     "brand": "Riot",
     "integrations_ui_url": "https://scalar.vector.im/",
     "integrations_rest_url": "https://scalar.vector.im/api",
+    "bug_report_endpoint_url": "https://vector.im/bugs",
     "enableLabs": true,
     "roomDirectory": {
         "servers": [
diff --git a/src/vector/index.js b/src/vector/index.js
index d1d457e9..d1d85e06 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -241,6 +241,7 @@ async function loadApp() {
     let configError;
     try {
         configJson = await getConfig();
+        rageshake.setBugReportEndpoint(configJson.bug_report_endpoint_url);
     } catch (e) {
         configError = e;
     }
diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 299a8497..3fb9efdc 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -251,7 +251,7 @@ class IndexedDBLogStore {
             }, (err) => {
                 console.error(err);
             })
-        }console.log("async consumeeeee");
+        }
         return logs;
     }
 
@@ -296,6 +296,7 @@ function selectQuery(store, keyRange, resultMapper) {
 let store = null;
 let logger = null;
 let initPromise = null;
+let bugReportEndpoint = null;
 module.exports = {
 
     /**
@@ -339,6 +340,10 @@ module.exports = {
         await store.consume(false);
     },
 
+    setBugReportEndpoint: function(url) {
+        bugReportEndpoint = url;
+    },
+
     /**
      * Send a bug report.
      * @param {string} userText Any additional user input.
@@ -348,6 +353,9 @@ module.exports = {
         if (!logger) {
             throw new Error("No console logger, did you forget to call init()?");
         }
+        if (!bugReportEndpoint) {
+            throw new Error("No bug report endpoint has been set.");
+        }
         // If in incognito mode, store is null, but we still want bug report sending to work going off
         // the in-memory console logs.
         let logs = [];
@@ -364,7 +372,7 @@ module.exports = {
         await new Promise((resolve, reject) => {
             request({
                 method: "POST",
-                url: "http://localhost:1337",
+                url: bugReportEndpoint,
                 body: {
                     logs: logs,
                     text: userText || "User did not supply any additional text.",

From 36450764f3a341e3b07843af6e6975d494a9a374 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 19 Jan 2017 16:58:55 +0000
Subject: [PATCH 190/243] rethemendex fixes

- set cwd before doing cwd-specific operations
- don't include 'themes' directory, otherwise it's a bit circular.
---
 src/skins/vector/css/_components.scss |  1 -
 src/skins/vector/css/rethemendex.sh   | 15 ++++++++++-----
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss
index 88435236..880c1054 100644
--- a/src/skins/vector/css/_components.scss
+++ b/src/skins/vector/css/_components.scss
@@ -49,7 +49,6 @@
 @import "./matrix-react-sdk/views/voip/_CallView.scss";
 @import "./matrix-react-sdk/views/voip/_IncomingCallbox.scss";
 @import "./matrix-react-sdk/views/voip/_VideoView.scss";
-@import "./themes/_base.scss";
 @import "./vector-web/_fonts.scss";
 @import "./vector-web/structures/_CompatibilityPage.scss";
 @import "./vector-web/structures/_LeftPanel.scss";
diff --git a/src/skins/vector/css/rethemendex.sh b/src/skins/vector/css/rethemendex.sh
index 9381c5cd..a7d9a657 100755
--- a/src/skins/vector/css/rethemendex.sh
+++ b/src/skins/vector/css/rethemendex.sh
@@ -1,8 +1,13 @@
 #!/bin/bash
 
-echo "// autogenerated by rethemendex.sh" > _components.scss
+cd `dirname $0`
 
-for i in `find . -iname _\*.scss | fgrep -v _components.scss | sort`;
-do
-    echo "@import \"$i\";" >> _components.scss
-done
+{
+    echo "// autogenerated by rethemendex.sh"
+
+    find . \! \( -path ./themes -prune \) -iname _\*.scss |
+        fgrep -v _components.scss | LC_ALL=C sort |
+        while read i; do
+            echo "@import \"$i\";"
+        done
+} > _components.scss

From beba4d2ae36c4499e99a27258fb58b9a8e6e12b7 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 19 Jan 2017 17:40:21 +0000
Subject: [PATCH 191/243] Add version and user agent to bug report

---
 src/vector/rageshake.js | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 3fb9efdc..e3cc6661 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
+import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
 import request from "browser-request";
 
 // This module contains all the code needed to log the console, persist it to disk and submit bug reports. Rationale is as follows:
@@ -356,6 +357,18 @@ module.exports = {
         if (!bugReportEndpoint) {
             throw new Error("No bug report endpoint has been set.");
         }
+
+        let version = "UNKNOWN";
+        try {
+            version = await PlatformPeg.get().getAppVersion();
+        }
+        catch (err) {} // PlatformPeg already logs this.
+
+        let userAgent = "UNKNOWN";
+        if (window.navigator && window.navigator.userAgent) {
+            userAgent = window.navigator.userAgent;
+        }
+
         // If in incognito mode, store is null, but we still want bug report sending to work going off
         // the in-memory console logs.
         let logs = [];
@@ -376,6 +389,8 @@ module.exports = {
                 body: {
                     logs: logs,
                     text: userText || "User did not supply any additional text.",
+                    version: version,
+                    user_agent: userAgent,
                 },
                 json: true,
             }, (err, res) => {

From 53a16158c75ff0b938b2383ad91829c9d23c891a Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 19 Jan 2017 17:41:08 +0000
Subject: [PATCH 192/243] Remove logs when submitting bug reports

---
 src/vector/rageshake.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index e3cc6661..2b4d0b7d 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -373,7 +373,7 @@ module.exports = {
         // the in-memory console logs.
         let logs = [];
         if (store) {
-            logs = await store.consume(false);
+            logs = await store.consume(true);
         }
         // and add the most recent console logs which won't be in the store yet.
         const consoleLogs = logger.flush(); // remove logs from console

From 8ad0ff24f8f5422a6c15f7744227a241d789aee8 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 19 Jan 2017 18:35:43 +0000
Subject: [PATCH 193/243] Fix link to image for event options menu

This has to be relative, because we don't know if riot is going to be mounted
at the top-level of the domain or not (it's not, on riot.im).

Links are relative to the final location of the CSS, which is under
bundles/<hash>, so need ../..
---
 src/skins/vector/css/themes/_base.scss | 2 +-
 src/skins/vector/css/themes/_dark.scss | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index ad18eb49..476cf7e0 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -88,7 +88,7 @@ $event-notsent-color: #f44;
 // event timestamp
 $event-timestamp-color: #acacac;
 
-$edit-button-url: "/img/icon_context_message.svg";
+$edit-button-url: "../../img/icon_context_message.svg";
 
 // e2e
 $e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index e3e32e84..0f3b77f5 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -88,7 +88,7 @@ $event-notsent-color: #f44;
 // event timestamp
 $event-timestamp-color: #acacac;
 
-$edit-button-url: "/img/icon_context_message_dark.svg";
+$edit-button-url: "../../img/icon_context_message_dark.svg";
 
 // e2e
 $e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color

From fa535996ae6c979522252f2540c656f09576ebc9 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 20 Jan 2017 02:22:11 +0000
Subject: [PATCH 194/243] fix textarea bg

---
 src/skins/vector/css/_common.scss | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index 94362a2f..bf31bea6 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -55,7 +55,7 @@ a:visited {
     color: $accent-color;
 }
 
-input[type=text], input[type=password] {
+input[type=text], input[type=password], textarea {
     background-color: transparent;
     color: $primary-fg-color;
 }

From 4d8f5d4df1c3bb0ef27b53842f3ed1755e9039d8 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 20 Jan 2017 02:29:56 +0000
Subject: [PATCH 195/243] change selection color & fix MD bg

---
 .../vector/css/matrix-react-sdk/views/rooms/_EventTile.scss   | 4 ++++
 src/skins/vector/css/themes/_dark.scss                        | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
index b79db919..29170a83 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
@@ -294,6 +294,10 @@ limitations under the License.
     overflow-y: visible;
 }
 
+.mx_EventTile_content .markdown-body code {
+    background-color: #f8f8f8;
+}
+
 .mx_EventTile_content .markdown-body h1,
 .mx_EventTile_content .markdown-body h2,
 .mx_EventTile_content .markdown-body h3,
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 0f3b77f5..03913ca2 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -73,7 +73,7 @@ $voip-accept-color: #80f480;
 // ********************
 
 $roomtile-name-color: rgba(186, 186, 186, 0.8);
-$roomtile-selected-bg-color: rgba(0, 0, 0, 0.8);
+$roomtile-selected-bg-color: rgba(255, 255, 255, 0.05);
 
 $roomsublist-label-fg-color: $h3-color;
 $roomsublist-label-bg-color: #454545;

From 9b70e2e25f3442374a1fbaeaedf25b29b2ce0539 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 20 Jan 2017 02:34:45 +0000
Subject: [PATCH 196/243] fix RTE bg color

---
 .../vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
index 9265d4dc..062dd0ba 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss
@@ -4,7 +4,7 @@
     z-index: 1000;
     width: 100%;
     border: 1px solid $primary-hairline-color;
-    background: white;
+    background: $primary-bg-color;
     border-bottom: none;
     border-radius: 4px 4px 0 0;
     max-height: 50vh;

From ea860807c4fef075767e06aa19c33fd97f702846 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Fri, 20 Jan 2017 11:56:11 +0000
Subject: [PATCH 197/243] Add a monkeyPatch function rather than
 monkey-patching in the constructor

---
 src/vector/rageshake.js | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 2b4d0b7d..e12ee329 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -36,7 +36,9 @@ const FLUSH_RATE_MS = 30 * 1000;
 class ConsoleLogger {
     constructor() {
         this.logs = "";
+    }
 
+    monkeyPatch(consoleObj) {
         // Monkey-patch console logging
         const consoleFunctionsToLevels = {
             log: "I",
@@ -46,8 +48,8 @@ class ConsoleLogger {
         };
         Object.keys(consoleFunctionsToLevels).forEach((fnName) => {
             const level = consoleFunctionsToLevels[fnName];
-            let originalFn = window.console[fnName].bind(window.console);
-            window.console[fnName] = (...args) => {
+            let originalFn = consoleObj[fnName].bind(consoleObj);
+            consoleObj[fnName] = (...args) => {
                 this.log(level, ...args);
                 originalFn(...args);
             }
@@ -310,6 +312,7 @@ module.exports = {
             return initPromise;
         }
         logger = new ConsoleLogger();
+        logger.monkeyPatch(window.console);
         if (window.indexedDB) {
             store = new IndexedDBLogStore(window.indexedDB, logger);
             initPromise = store.connect();

From ba1e166ac83ae0f6477d617705a3f333f8d4f74e Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Fri, 20 Jan 2017 12:02:48 +0000
Subject: [PATCH 198/243] Line length 80 like we're still in the 80s

---
 src/vector/rageshake.js | 133 ++++++++++++++++++++++++++--------------
 1 file changed, 87 insertions(+), 46 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index e12ee329..a3d39635 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -17,18 +17,26 @@ limitations under the License.
 import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
 import request from "browser-request";
 
-// This module contains all the code needed to log the console, persist it to disk and submit bug reports. Rationale is as follows:
-//  - Monkey-patching the console is preferable to having a log library because we can catch logs by other libraries more easily,
-//    without having to all depend on the same log framework / pass the logger around.
-//  - We use IndexedDB to persists logs because it has generous disk space limits compared to local storage. IndexedDB does not work
-//    in incognito mode, in which case this module will not be able to write logs to disk. However, the logs will still be stored
-//    in-memory, so can still be submitted in a bug report should the user wish to: we can also store more logs in-memory than in
-//    local storage, which does work in incognito mode. We also need to handle the case where there are 2+ tabs. Each JS runtime
-//    generates a random string which serves as the "ID" for that tab/session. These IDs are stored along with the log lines.
-//  - Bug reports are sent as a POST over HTTPS: it purposefully does not use Matrix as bug reports may be made when Matrix is
-//    not responsive (which may be the cause of the bug). We send the most recent N MB of UTF-8 log data, starting with the most
-//    recent, which we know because the "ID"s are actually timestamps. We then purge the remaining logs. We also do this purge
-//    on startup to prevent logs from accumulating.
+// This module contains all the code needed to log the console, persist it to
+// disk and submit bug reports. Rationale is as follows:
+//  - Monkey-patching the console is preferable to having a log library because
+//    we can catch logs by other libraries more easily, without having to all
+//    depend on the same log framework / pass the logger around.
+//  - We use IndexedDB to persists logs because it has generous disk space
+//    limits compared to local storage. IndexedDB does not work in incognito
+//    mode, in which case this module will not be able to write logs to disk.
+//    However, the logs will still be stored in-memory, so can still be
+//    submitted in a bug report should the user wish to: we can also store more
+//    logs in-memory than in local storage, which does work in incognito mode.
+//    We also need to handle the case where there are 2+ tabs. Each JS runtime
+//    generates a random string which serves as the "ID" for that tab/session.
+//    These IDs are stored along with the log lines.
+//  - Bug reports are sent as a POST over HTTPS: it purposefully does not use
+//    Matrix as bug reports may be made when Matrix is not responsive (which may
+//    be the cause of the bug). We send the most recent N MB of UTF-8 log data,
+//    starting with the most recent, which we know because the "ID"s are
+//    actually timestamps. We then purge the remaining logs. We also do this
+//    purge on startup to prevent logs from accumulating.
 
 const FLUSH_RATE_MS = 30 * 1000;
 
@@ -60,9 +68,10 @@ class ConsoleLogger {
         // We don't know what locale the user may be running so use ISO strings
         const ts = new Date().toISOString();
         // Some browsers support string formatting which we're not doing here
-        // so the lines are a little more ugly but easy to implement / quick to run.
+        // so the lines are a little more ugly but easy to implement / quick to
+        // run.
         // Example line:
-        // 2017-01-18T11:23:53.214Z W Failed to set badge count: Error setting badge. Message: Too many badges requests in queue.
+        // 2017-01-18T11:23:53.214Z W Failed to set badge count
         const line = `${ts} ${level} ${args.join(' ')}\n`;
         // Using + really is the quickest way in JS
         // http://jsperf.com/concat-vs-plus-vs-join
@@ -74,7 +83,8 @@ class ConsoleLogger {
      * @return {string} \n delimited log lines to flush.
      */
     flush() {
-        // The ConsoleLogger doesn't care how these end up on disk, it just flushes them to the caller.
+        // The ConsoleLogger doesn't care how these end up on disk, it just
+        // flushes them to the caller.
         const logsToFlush = this.logs;
         this.logs = "";
         return logsToFlush;
@@ -105,7 +115,9 @@ class IndexedDBLogStore {
             };
 
             req.onerror = (event) => {
-                const err = "Failed to open log database: " + event.target.errorCode;
+                const err = (
+                    "Failed to open log database: " + event.target.errorCode
+                );
                 console.error(err);
                 reject(new Error(err));
             };
@@ -117,8 +129,10 @@ class IndexedDBLogStore {
                     keyPath: ["id", "index"]
                 });
                 // Keys in the database look like: [ "instance-148938490", 0 ]
-                // Later on we need to query for everything with index=0, and query everything for an instance id.
-                // In order to do this, we need to set up indexes on both "id" and "index".
+                // Later on we need to query for everything with index=0, and
+                // query everything for an instance id.
+                // In order to do this, we need to set up indexes on both "id"
+                // and "index".
                 objectStore.createIndex("index", "index", { unique: false });
                 objectStore.createIndex("id", "id", { unique: false });
 
@@ -151,23 +165,30 @@ class IndexedDBLogStore {
                 resolve();
             };
             txn.onerror = (event) => {
-                console.error("Failed to flush logs : " + event.target.errorCode);
-                reject(new Error("Failed to write logs: " + event.target.errorCode));
+                console.error(
+                    "Failed to flush logs : " + event.target.errorCode
+                );
+                reject(
+                    new Error("Failed to write logs: " + event.target.errorCode)
+                );
             }
         });
     }
 
     /**
-     * Consume the most recent logs and return them. Older logs which are not returned are deleted at the same time,
-     * so this can be called at startup to do house-keeping to keep the logs from growing too large.
+     * Consume the most recent logs and return them. Older logs which are not
+     * returned are deleted at the same time, so this can be called at startup
+     * to do house-keeping to keep the logs from growing too large.
      *
-     * @param {boolean} clearAll True to clear the most recent logs returned in addition to the
-     * older logs. This is desirable when sending bug reports as we do not want to submit the
-     * same logs twice. This is not desirable when doing house-keeping at startup in case they
-     * want to submit a bug report later.
-     * @return {Promise<Object[]>} Resolves to an array of objects. The array is sorted in time (oldest first) based on
-     * when the log file was created (the log ID). The objects have said log ID in an "id" field and "lines" which is a
-     * big string with all the new-line delimited logs.
+     * @param {boolean} clearAll True to clear the most recent logs returned in
+     * addition to the older logs. This is desirable when sending bug reports as
+     * we do not want to submit the same logs twice. This is not desirable when
+     * doing house-keeping at startup in case they want to submit a bug report
+     * later.
+     * @return {Promise<Object[]>} Resolves to an array of objects. The array is
+     * sorted in time (oldest first) based on when the log file was created (the
+     * log ID). The objects have said log ID in an "id" field and "lines" which
+     * is a big string with all the new-line delimited logs.
      */
     async consume(clearAll) {
         const MAX_LOG_SIZE = 1024 * 1024 * 50; // 50 MB
@@ -176,13 +197,15 @@ class IndexedDBLogStore {
         // Returns: a string representing the concatenated logs for this ID.
         function fetchLogs(id) {
             const o = db.transaction("logs", "readonly").objectStore("logs");
-            return selectQuery(o.index("id"), IDBKeyRange.only(id), (cursor) => {
+            return selectQuery(o.index("id"), IDBKeyRange.only(id),
+            (cursor) => {
                 return {
                     lines: cursor.value.lines,
                     index: cursor.value.index,
                 }
             }).then((linesArray) => {
-                // We have been storing logs periodically, so string them all together *in order of index* now
+                // We have been storing logs periodically, so string them all
+                // together *in order of index* now
                 linesArray.sort((a, b) => {
                     return a.index - b.index;
                 })
@@ -192,13 +215,18 @@ class IndexedDBLogStore {
 
         // Returns: A sorted array of log IDs. (newest first)
         function fetchLogIds() {
-            // To gather all the log IDs, query for every log entry with index "0", this will let us
-            // know all the IDs from different tabs/sessions.
+            // To gather all the log IDs, query for every log entry with index
+            // "0", this will let us know all the IDs from different
+            // tabs/sessions.
             const o = db.transaction("logs", "readonly").objectStore("logs");
-            return selectQuery(o.index("index"), IDBKeyRange.only(0), (cursor) => cursor.value.id).then((res) => {
-                // we know each entry has a unique ID, and we know IDs are timestamps, so accumulate all the IDs,
-                // ignoring the logs for now, and sort them to work out the correct log ID ordering, newest first.
-                // E.g. [ "instance-1484827160051", "instance-1374827160051", "instance-1000007160051"]
+            return selectQuery(o.index("index"), IDBKeyRange.only(0),
+            (cursor) => cursor.value.id).then((res) => {
+                // we know each entry has a unique ID, and we know IDs are
+                // timestamps, so accumulate all the IDs, ignoring the logs for
+                // now, and sort them to work out the correct log ID ordering,
+                // newest first.
+                // E.g. [ "instance-1484827160051", "instance-1374827160051",
+                //        "instance-1000007160051"]
                 return res.sort().reverse();
             });
         }
@@ -221,7 +249,12 @@ class IndexedDBLogStore {
                     resolve();
                 };
                 txn.onerror = (event) => {
-                    reject(new Error(`Failed to delete logs for '${id}' : ${event.target.errorCode}`));
+                    reject(
+                        new Error(
+                            "Failed to delete logs for " +
+                            `'${id}' : ${event.target.errorCode}`
+                        )
+                    );
                 }
             });
         }
@@ -238,7 +271,8 @@ class IndexedDBLogStore {
             });
             size += lines.length;
             if (size > MAX_LOG_SIZE) {
-                // the remaining log IDs should be removed. If we go out of bounds this is just []
+                // the remaining log IDs should be removed. If we go out of
+                // bounds this is just []
                 removeLogIds = allLogIds.slice(i + 1);
                 break;
             }
@@ -248,7 +282,8 @@ class IndexedDBLogStore {
         }
         if (removeLogIds.length > 0) {
             console.log("Removing logs: ", removeLogIds);
-            // Don't await this because it's non-fatal if we can't clean up logs.
+            // Don't await this because it's non-fatal if we can't clean up
+            // logs.
             Promise.all(removeLogIds.map((id) => deleteLogs(id))).then(() => {
                 console.log(`Removed ${removeLogIds.length} old logs.`);
             }, (err) => {
@@ -271,9 +306,11 @@ class IndexedDBLogStore {
  * Helper method to collect results from a Cursor and promiseify it.
  * @param {ObjectStore|Index} store The store to perform openCursor on.
  * @param {IDBKeyRange=} keyRange Optional key range to apply on the cursor.
- * @param {Function} resultMapper A function which is repeatedly called with a Cursor.
+ * @param {Function} resultMapper A function which is repeatedly called with a
+ * Cursor.
  * Return the data you want to keep.
- * @return {Promise<T[]>} Resolves to an array of whatever you returned from resultMapper.
+ * @return {Promise<T[]>} Resolves to an array of whatever you returned from
+ * resultMapper.
  */
 function selectQuery(store, keyRange, resultMapper) {
     const query = store.openCursor(keyRange);
@@ -355,7 +392,9 @@ module.exports = {
      */
     sendBugReport: async function(userText) {
         if (!logger) {
-            throw new Error("No console logger, did you forget to call init()?");
+            throw new Error(
+                "No console logger, did you forget to call init()?"
+            );
         }
         if (!bugReportEndpoint) {
             throw new Error("No bug report endpoint has been set.");
@@ -372,8 +411,8 @@ module.exports = {
             userAgent = window.navigator.userAgent;
         }
 
-        // If in incognito mode, store is null, but we still want bug report sending to work going off
-        // the in-memory console logs.
+        // If in incognito mode, store is null, but we still want bug report
+        // sending to work going off the in-memory console logs.
         let logs = [];
         if (store) {
             logs = await store.consume(true);
@@ -391,7 +430,9 @@ module.exports = {
                 url: bugReportEndpoint,
                 body: {
                     logs: logs,
-                    text: userText || "User did not supply any additional text.",
+                    text: (
+                        userText || "User did not supply any additional text."
+                    ),
                     version: version,
                     user_agent: userAgent,
                 },

From 41c6294be2e3a6b23fad65771173819c74e35f6e Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Fri, 20 Jan 2017 13:02:57 +0000
Subject: [PATCH 199/243] Remove clearAll from consume(): we want duplicate
 logs on multiple reports

---
 src/vector/rageshake.js | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index a3d39635..a96b1f28 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -180,17 +180,12 @@ class IndexedDBLogStore {
      * returned are deleted at the same time, so this can be called at startup
      * to do house-keeping to keep the logs from growing too large.
      *
-     * @param {boolean} clearAll True to clear the most recent logs returned in
-     * addition to the older logs. This is desirable when sending bug reports as
-     * we do not want to submit the same logs twice. This is not desirable when
-     * doing house-keeping at startup in case they want to submit a bug report
-     * later.
      * @return {Promise<Object[]>} Resolves to an array of objects. The array is
      * sorted in time (oldest first) based on when the log file was created (the
      * log ID). The objects have said log ID in an "id" field and "lines" which
      * is a big string with all the new-line delimited logs.
      */
-    async consume(clearAll) {
+    async consume() {
         const MAX_LOG_SIZE = 1024 * 1024 * 50; // 50 MB
         const db = this.db;
 
@@ -277,9 +272,6 @@ class IndexedDBLogStore {
                 break;
             }
         }
-        if (clearAll) {
-            removeLogIds = allLogIds;
-        }
         if (removeLogIds.length > 0) {
             console.log("Removing logs: ", removeLogIds);
             // Don't await this because it's non-fatal if we can't clean up
@@ -378,7 +370,7 @@ module.exports = {
         if (!store) {
             return;
         }
-        await store.consume(false);
+        await store.consume();
     },
 
     setBugReportEndpoint: function(url) {
@@ -415,7 +407,7 @@ module.exports = {
         // sending to work going off the in-memory console logs.
         let logs = [];
         if (store) {
-            logs = await store.consume(true);
+            logs = await store.consume();
         }
         // and add the most recent console logs which won't be in the store yet.
         const consoleLogs = logger.flush(); // remove logs from console

From 378126e746bd78088996a82024ea5c4204955b7c Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Fri, 20 Jan 2017 14:00:30 +0000
Subject: [PATCH 200/243] Add another store to keep last modified times

This makes it easier to get a list of all the log IDs. It also makes it possible
to order the logs by the *LAST* log line and not the first as was the case
previously, which is important in the case of long-running tabs.
---
 src/vector/rageshake.js | 69 +++++++++++++++++++++++++----------------
 1 file changed, 43 insertions(+), 26 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index a96b1f28..f4fe4396 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -96,7 +96,7 @@ class IndexedDBLogStore {
     constructor(indexedDB, logger) {
         this.indexedDB = indexedDB;
         this.logger = logger;
-        this.id = "instance-" + Date.now();
+        this.id = "instance-" + Math.random() + Date.now();
         this.index = 0;
         this.db = null;
     }
@@ -125,22 +125,24 @@ class IndexedDBLogStore {
             // First time: Setup the object store
             req.onupgradeneeded = (event) => {
                 const db = event.target.result;
-                const objectStore = db.createObjectStore("logs", {
+                const logObjStore = db.createObjectStore("logs", {
                     keyPath: ["id", "index"]
                 });
                 // Keys in the database look like: [ "instance-148938490", 0 ]
-                // Later on we need to query for everything with index=0, and
-                // query everything for an instance id.
-                // In order to do this, we need to set up indexes on both "id"
-                // and "index".
-                objectStore.createIndex("index", "index", { unique: false });
-                objectStore.createIndex("id", "id", { unique: false });
+                // Later on we need to query everything based on an instance id.
+                // In order to do this, we need to set up indexes "id".
+                logObjStore.createIndex("id", "id", { unique: false });
 
-                objectStore.add(
+                logObjStore.add(
                     this._generateLogEntry(
                         new Date() + " ::: Log database was created."
                     )
                 );
+
+                const lastModifiedStore = db.createObjectStore("logslastmod", {
+                    keyPath: "id",
+                });
+                lastModifiedStore.add(this._generateLastModifiedTime());
             }
         });
     }
@@ -158,15 +160,17 @@ class IndexedDBLogStore {
             return Promise.resolve();
         }
         return new Promise((resolve, reject) => {
-            let txn = this.db.transaction("logs", "readwrite");
+            let txn = this.db.transaction(["logs", "logslastmod"], "readwrite");
             let objStore = txn.objectStore("logs");
             objStore.add(this._generateLogEntry(lines));
+            let lastModStore = txn.objectStore("logslastmod");
+            lastModStore.put(this._generateLastModifiedTime());
             txn.oncomplete = (event) => {
                 resolve();
             };
             txn.onerror = (event) => {
                 console.error(
-                    "Failed to flush logs : " + event.target.errorCode
+                    "Failed to flush logs : ", event
                 );
                 reject(
                     new Error("Failed to write logs: " + event.target.errorCode)
@@ -210,25 +214,28 @@ class IndexedDBLogStore {
 
         // Returns: A sorted array of log IDs. (newest first)
         function fetchLogIds() {
-            // To gather all the log IDs, query for every log entry with index
-            // "0", this will let us know all the IDs from different
-            // tabs/sessions.
-            const o = db.transaction("logs", "readonly").objectStore("logs");
-            return selectQuery(o.index("index"), IDBKeyRange.only(0),
-            (cursor) => cursor.value.id).then((res) => {
-                // we know each entry has a unique ID, and we know IDs are
-                // timestamps, so accumulate all the IDs, ignoring the logs for
-                // now, and sort them to work out the correct log ID ordering,
-                // newest first.
-                // E.g. [ "instance-1484827160051", "instance-1374827160051",
-                //        "instance-1000007160051"]
-                return res.sort().reverse();
+            // To gather all the log IDs, query for all records in logslastmod.
+            const o = db.transaction("logslastmod", "readonly").objectStore(
+                "logslastmod"
+            );
+            return selectQuery(o, undefined, (cursor) => {
+                return {
+                    id: cursor.value.id,
+                    ts: cursor.value.ts,
+                };
+            }).then((res) => {
+                // Sort IDs by timestamp (newest first)
+                return res.sort((a, b) => {
+                    return b.ts - a.ts;
+                }).map((a) => a.id);
             });
         }
 
         function deleteLogs(id) {
             return new Promise((resolve, reject) => {
-                const txn = db.transaction("logs", "readwrite");
+                const txn = db.transaction(
+                    ["logs", "logslastmod"], "readwrite"
+                );
                 const o = txn.objectStore("logs");
                 // only load the key path, not the data which may be huge
                 const query = o.index("id").openKeyCursor(IDBKeyRange.only(id));
@@ -250,7 +257,10 @@ class IndexedDBLogStore {
                             `'${id}' : ${event.target.errorCode}`
                         )
                     );
-                }
+                };
+                // delete last modified entries
+                const lastModStore = txn.objectStore("logslastmod");
+                lastModStore.delete(id);
             });
         }
 
@@ -292,6 +302,13 @@ class IndexedDBLogStore {
             index: this.index++
         };
     }
+
+    _generateLastModifiedTime() {
+        return {
+            id: this.id,
+            ts: Date.now(),
+        };
+    }
 }
 
 /**

From ea063ab8b0b2ce6b2f1a5d36132757e0cb52f8ff Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Fri, 20 Jan 2017 14:46:19 +0000
Subject: [PATCH 201/243] Address race conditions when flushing logs

---
 src/vector/rageshake.js | 94 +++++++++++++++++++++++++++++------------
 1 file changed, 68 insertions(+), 26 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index f4fe4396..7d1a93ef 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -99,6 +99,11 @@ class IndexedDBLogStore {
         this.id = "instance-" + Math.random() + Date.now();
         this.index = 0;
         this.db = null;
+        // Promise is not null when a flush is IN PROGRESS
+        this.flushPromise = null;
+        // Promise is not null when flush() is called when one is already in
+        // progress.
+        this.flushAgainPromise = null;
     }
 
     /**
@@ -148,35 +153,80 @@ class IndexedDBLogStore {
     }
 
     /**
+     * Flush logs to disk.
+     *
+     * There are guards to protect against race conditions in order to ensure
+     * that all previous flushes have completed before the most recent flush.
+     * Consider without guards:
+     *  - A calls flush() periodically.
+     *  - B calls flush() and wants to send logs immediately afterwards.
+     *  - If B doesn't wait for A's flush to complete, B will be missing the
+     *    contents of A's flush.
+     * To protect against this, we set 'flushPromise' when a flush is ongoing.
+     * Subsequent calls to flush() during this period return a new promise
+     * 'flushAgainPromise' which is chained off the current 'flushPromise'.
+     * Subsequent calls to flush() when the first flush hasn't completed will
+     * return the same 'flushAgainPromise' as we can guarantee that we WILL
+     * do a brand new flush at some point in the future. Once the first flush
+     * has completed, 'flushAgainPromise' becomes 'flushPromise' and can be
+     * chained again.
+     *
+     * This guarantees that we will always eventually do a flush when flush() is
+     * called.
+     *
      * @return {Promise} Resolved when the logs have been flushed.
      */
     flush() {
-        if (!this.db) {
-            // not connected yet or user rejected access for us to r/w to the db
-            return Promise.reject(new Error("No connected database"));
+        if (this.flushPromise) { // a flush is ongoing
+            if (this.flushAgainPromise) { // a flush is queued up, return that.
+                return this.flushAgainPromise;
+            }
+            // queue up a new flush
+            this.flushAgainPromise = this.flushPromise.then(() => {
+                // the current flush has completed, so shuffle the promises
+                // around:
+                // flushAgainPromise => flushPromise and null flushAgainPromise.
+                // flushPromise has already nulled itself.
+                this.flushAgainPromise = null;
+                return this.flush();
+            });
+            return this.flushAgainPromise;
         }
-        const lines = this.logger.flush();
-        if (lines.length === 0) {
-            return Promise.resolve();
-        }
-        return new Promise((resolve, reject) => {
+
+        this.flushPromise = new Promise((resolve, reject) => {
+            if (!this.db) {
+                // not connected yet or user rejected access for us to r/w to
+                // the db.
+                this.flushPromise = null;
+                reject(new Error("No connected database"));
+                return;
+            }
+            const lines = this.logger.flush();
+            if (lines.length === 0) {
+                this.flushPromise = null;
+                resolve();
+                return;
+            }
             let txn = this.db.transaction(["logs", "logslastmod"], "readwrite");
             let objStore = txn.objectStore("logs");
             objStore.add(this._generateLogEntry(lines));
             let lastModStore = txn.objectStore("logslastmod");
             lastModStore.put(this._generateLastModifiedTime());
             txn.oncomplete = (event) => {
+                this.flushPromise = null;
                 resolve();
             };
             txn.onerror = (event) => {
                 console.error(
                     "Failed to flush logs : ", event
                 );
+                this.flushPromise = null;
                 reject(
                     new Error("Failed to write logs: " + event.target.errorCode)
                 );
             }
         });
+        return this.flushPromise;
     }
 
     /**
@@ -368,17 +418,6 @@ module.exports = {
         return initPromise;
     },
 
-    /**
-     * Force-flush the logs to storage.
-     * @return {Promise} Resolved when the logs have been flushed.
-     */
-    flush: async function() {
-        if (!store) {
-            return;
-        }
-        await store.flush();
-    },
-
     /**
      * Clean up old logs.
      * @return Promise Resolves if cleaned logs.
@@ -422,17 +461,20 @@ module.exports = {
 
         // If in incognito mode, store is null, but we still want bug report
         // sending to work going off the in-memory console logs.
+        console.log("Sending bug report.");
         let logs = [];
         if (store) {
+            // flush most recent logs
+            await store.flush();
             logs = await store.consume();
         }
-        // and add the most recent console logs which won't be in the store yet.
-        const consoleLogs = logger.flush(); // remove logs from console
-        const currentId = store ? store.id : "-";
-        logs.unshift({
-            lines: consoleLogs,
-            id: currentId,
-        });
+        else {
+            logs.push({
+                lines: logger.flush(),
+                id: "-",
+            });
+        }
+
         await new Promise((resolve, reject) => {
             request({
                 method: "POST",

From 956deca844505c75f03a1406a5ffd4532804cbde Mon Sep 17 00:00:00 2001
From: lukebarnard <luke.barnard99@gmail.com>
Date: Fri, 20 Jan 2017 16:59:41 +0100
Subject: [PATCH 202/243] Add bg-color border to typing avatars

---
 .../css/matrix-react-sdk/structures/_RoomStatusBar.scss       | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
index 12cecffe..b7bdeaa0 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
@@ -71,18 +71,20 @@ limitations under the License.
 }
 
 .mx_RoomStatusBar_typingIndicatorAvatars {
-    width: 24px;
+    width: 52px;
     text-align: left;
 }
 
 .mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar {
     margin-right: -12px;
+    border:1px solid $primary-bg-color;
 }
 
 .mx_RoomStatusBar_typingIndicatorRemaining {
     display: inline-block;
     color: #acacac;
     background-color: #ddd;
+    border:1px solid $primary-bg-color;
     border-radius: 40px;
     width: 24px;
     height: 24px;

From 9ffedf5e7d8b0962c1b39038ecc8e59b5fc1459c Mon Sep 17 00:00:00 2001
From: lukebarnard <luke.barnard99@gmail.com>
Date: Fri, 20 Jan 2017 17:00:59 +0100
Subject: [PATCH 203/243] space after colons

---
 .../css/matrix-react-sdk/structures/_RoomStatusBar.scss       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
index b7bdeaa0..44e9d983 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
@@ -77,14 +77,14 @@ limitations under the License.
 
 .mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar {
     margin-right: -12px;
-    border:1px solid $primary-bg-color;
+    border: 1px solid $primary-bg-color;
 }
 
 .mx_RoomStatusBar_typingIndicatorRemaining {
     display: inline-block;
     color: #acacac;
     background-color: #ddd;
-    border:1px solid $primary-bg-color;
+    border: 1px solid $primary-bg-color;
     border-radius: 40px;
     width: 24px;
     height: 24px;

From afcf9de8d47f463b83e9b40dcfb37c6f5de47215 Mon Sep 17 00:00:00 2001
From: lukebarnard <luke.barnard99@gmail.com>
Date: Fri, 20 Jan 2017 17:35:01 +0100
Subject: [PATCH 204/243] Handle avatars with initials

---
 .../css/matrix-react-sdk/structures/_RoomStatusBar.scss    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
index 44e9d983..d3f1439d 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
@@ -75,11 +75,16 @@ limitations under the License.
     text-align: left;
 }
 
-.mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar {
+.mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar_image {
     margin-right: -12px;
     border: 1px solid $primary-bg-color;
 }
 
+.mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar_initial {
+    padding-left: 1px;
+    padding-top: 1px;
+}
+
 .mx_RoomStatusBar_typingIndicatorRemaining {
     display: inline-block;
     color: #acacac;

From a9c575b4d095872687969707878f215e23a7a261 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 20 Jan 2017 21:00:33 +0000
Subject: [PATCH 205/243] fix a bunch of dark-theme buttons

---
 src/skins/vector/css/themes/_dark.scss | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 03913ca2..776da282 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -101,4 +101,15 @@ $lightbox-fg-color: #ffffff;
 $lightbox-border-color: #ffffff;
 
 // unused?
-$progressbar-color: #000;
\ No newline at end of file
+$progressbar-color: #000;
+
+// Nasty hacks to apply a filter to arbitrary monochrome artwork to make it
+// better match the theme.  Typically applied to dark grey 'off' buttons or
+// light grey 'on' buttons.
+.mx_filterFlipColor {
+    filter: invert();
+}
+
+.gm-scrollbar .thumb {
+    filter: invert();
+}
\ No newline at end of file

From 5b1fea46cb6a0c9ec45e01a41c7222069a390507 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 20 Jan 2017 21:09:49 +0000
Subject: [PATCH 206/243] fix badge color

---
 .../vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
index 286a709d..84f8ddde 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
@@ -171,7 +171,7 @@ limitations under the License.
 
 .mx_RoomTile.mx_RoomTile_noBadges .mx_RoomTile_badge.mx_RoomTile_badgeButton,
 .mx_RoomTile.mx_RoomTile_notificationStateMenu.mx_RoomTile_noBadges .mx_RoomTile_badge {
-    background-color: rgb(214, 214, 214);
+    background-color: $preview-widget-bar-color;
 }
 
 .mx_RoomTile_unreadNotify .mx_RoomTile_badge {

From 83272f5cc58fa4a3efc5a8423642d1f4cb6886a1 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 20 Jan 2017 21:11:28 +0000
Subject: [PATCH 207/243] fix badge color again

---
 .../vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss      | 2 +-
 src/skins/vector/css/themes/_base.scss                          | 2 ++
 src/skins/vector/css/themes/_dark.scss                          | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
index 84f8ddde..5ca4ac17 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss
@@ -171,7 +171,7 @@ limitations under the License.
 
 .mx_RoomTile.mx_RoomTile_noBadges .mx_RoomTile_badge.mx_RoomTile_badgeButton,
 .mx_RoomTile.mx_RoomTile_notificationStateMenu.mx_RoomTile_noBadges .mx_RoomTile_badge {
-    background-color: $preview-widget-bar-color;
+    background-color: $neutral-badge-color;
 }
 
 .mx_RoomTile_unreadNotify .mx_RoomTile_badge {
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index 476cf7e0..db921034 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -59,6 +59,8 @@ $lightbox-background-bg-color: #000;
 
 $greyed-fg-color: #888;
 
+$neutral-badge-color: #dbdbdb;
+
 $preview-widget-bar-color: #ddd;
 $preview-widget-fg-color: $greyed-fg-color;
 
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 776da282..4902724f 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -59,6 +59,8 @@ $lightbox-background-bg-color: #000;
 
 $greyed-fg-color: #888;
 
+$neutral-badge-color: #888;
+
 $preview-widget-bar-color: $menu-bg-color;
 $preview-widget-fg-color: $greyed-fg-color;
 

From ef519231d63f1aa765e0f1cd9ea78bb4591253b0 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 20 Jan 2017 21:16:58 +0000
Subject: [PATCH 208/243] fix mute button colors

---
 .../views/context_menus/NotificationStateContextMenu.js   | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/components/views/context_menus/NotificationStateContextMenu.js b/src/components/views/context_menus/NotificationStateContextMenu.js
index 243275db..d4b40d17 100644
--- a/src/components/views/context_menus/NotificationStateContextMenu.js
+++ b/src/components/views/context_menus/NotificationStateContextMenu.js
@@ -120,22 +120,22 @@ module.exports = React.createClass({
                 </div>
                 <div className={ alertMeClasses } onClick={this._onClickAlertMe} >
                     <img className="mx_NotificationStateContextMenu_activeIcon" src="img/notif-active.svg" width="12" height="12" />
-                    <img className="mx_NotificationStateContextMenu_icon" src="img/icon-context-mute-off-copy.svg" width="16" height="12" />
+                    <img className="mx_NotificationStateContextMenu_icon mx_filterFlipColor" src="img/icon-context-mute-off-copy.svg" width="16" height="12" />
                     All messages (loud)
                 </div>
                 <div className={ allNotifsClasses } onClick={this._onClickAllNotifs} >
                     <img className="mx_NotificationStateContextMenu_activeIcon" src="img/notif-active.svg" width="12" height="12" />
-                    <img className="mx_NotificationStateContextMenu_icon" src="img/icon-context-mute-off.svg" width="16" height="12" />
+                    <img className="mx_NotificationStateContextMenu_icon mx_filterFlipColor" src="img/icon-context-mute-off.svg" width="16" height="12" />
                     All messages
                 </div>
                 <div className={ mentionsClasses } onClick={this._onClickMentions} >
                     <img className="mx_NotificationStateContextMenu_activeIcon" src="img/notif-active.svg" width="12" height="12" />
-                    <img className="mx_NotificationStateContextMenu_icon" src="img/icon-context-mute-mentions.svg" width="16" height="12" />
+                    <img className="mx_NotificationStateContextMenu_icon mx_filterFlipColor" src="img/icon-context-mute-mentions.svg" width="16" height="12" />
                     Mentions only
                 </div>
                 <div className={ muteNotifsClasses } onClick={this._onClickMute} >
                     <img className="mx_NotificationStateContextMenu_activeIcon" src="img/notif-active.svg" width="12" height="12" />
-                    <img className="mx_NotificationStateContextMenu_icon" src="img/icon-context-mute.svg" width="16" height="12" />
+                    <img className="mx_NotificationStateContextMenu_icon mx_filterFlipColor" src="img/icon-context-mute.svg" width="16" height="12" />
                     Mute
                 </div>
             </div>

From d907421ad46b64144a8690996ad51ffc716c4e8a Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Sun, 22 Jan 2017 01:25:32 +0100
Subject: [PATCH 209/243] crappy CSS for UnknownDeviceDialog

---
 src/skins/vector/css/_components.scss         |  1 +
 .../views/dialogs/_UnknownDeviceDialog.scss   | 46 +++++++++++++++++++
 src/skins/vector/css/themes/_dark.scss        |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100644 src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss

diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss
index 880c1054..51dd0ada 100644
--- a/src/skins/vector/css/_components.scss
+++ b/src/skins/vector/css/_components.scss
@@ -15,6 +15,7 @@
 @import "./matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss";
 @import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss";
 @import "./matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss";
+@import "./matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss";
 @import "./matrix-react-sdk/views/elements/_AddressSelector.scss";
 @import "./matrix-react-sdk/views/elements/_AddressTile.scss";
 @import "./matrix-react-sdk/views/elements/_DirectorySearchBox.scss";
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss
new file mode 100644
index 00000000..3a9b64d1
--- /dev/null
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss
@@ -0,0 +1,46 @@
+/*
+Copyright 2016 OpenMarket Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+.mx_UnknownDeviceDialog .mx_MemberDeviceInfo {
+    float: right;
+    clear: both;
+    padding: 0px;
+    padding-top: 8px;
+}
+
+.mx_UnknownDeviceDialog .mx_MemberDeviceInfo_textButton {
+    border: 0px;
+    height: 24px;
+    border-radius: 40px;
+    border: solid 1px $accent-color;
+    font-weight: 600;
+    font-size: 13px;
+    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    margin-left: 0px;
+    margin-right: 8px;
+    padding-left: 0.5em;
+    padding-right: 0.5em;
+    width: 70px;
+    outline: none;
+    cursor: pointer;
+    color: $accent-color;
+    background-color: $primary-bg-color;
+}
+
+.mx_UnknownDeviceDialog .mx_UnknownDeviceDialog_deviceList li {
+    height: 40px;
+    border-bottom: 1px solid $primary-hairline-color;
+}
\ No newline at end of file
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 4902724f..51930433 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -114,4 +114,4 @@ $progressbar-color: #000;
 
 .gm-scrollbar .thumb {
     filter: invert();
-}
\ No newline at end of file
+}

From 2ecf65f05702075175b211161f05b5e2c57d9182 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Mon, 23 Jan 2017 09:28:48 +0000
Subject: [PATCH 210/243] Keep the logs if no store exists

---
 src/vector/rageshake.js | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 7d1a93ef..3cc15886 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -80,11 +80,15 @@ class ConsoleLogger {
 
     /**
      * Retrieve log lines to flush to disk.
+     * @param {boolean} keepLogs True to not delete logs after flushing.
      * @return {string} \n delimited log lines to flush.
      */
-    flush() {
+    flush(keepLogs) {
         // The ConsoleLogger doesn't care how these end up on disk, it just
         // flushes them to the caller.
+        if (keepLogs) {
+            return this.logs;
+        }
         const logsToFlush = this.logs;
         this.logs = "";
         return logsToFlush;
@@ -470,7 +474,7 @@ module.exports = {
         }
         else {
             logs.push({
-                lines: logger.flush(),
+                lines: logger.flush(true),
                 id: "-",
             });
         }

From 57126efe86db96396d921651e4d66aea4e3f4c76 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Mon, 23 Jan 2017 10:24:23 +0000
Subject: [PATCH 211/243] Reposition typing avatars relative to "is typing"

---
 .../css/matrix-react-sdk/structures/_RoomStatusBar.scss       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
index d3f1439d..d124f9c6 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomStatusBar.scss
@@ -21,10 +21,10 @@ limitations under the License.
 
 /* position the indicator in the same place horizontally as .mx_EventTile_avatar. */
 .mx_RoomStatusBar_indicator {
-    padding-left: 18px;
+    padding-left: 17px;
     padding-right: 12px;
     margin-left: -73px;
-    margin-top: 13px;
+    margin-top: 8px;
     float: left;
     width: 24px;
     text-align: center;

From b582cf0a5f24155f4de25320030f34b1b581dbe8 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Mon, 23 Jan 2017 13:30:39 +0000
Subject: [PATCH 212/243] Remove CSS for StatusBar mid-timeline

---
 .../css/matrix-react-sdk/structures/RoomView.css       | 10 ----------
 1 file changed, 10 deletions(-)

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 6dc22e2f..43434d3f 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css
@@ -216,16 +216,6 @@ hr.mx_RoomView_myReadMarker {
 
 .mx_RoomView_statusArea_expanded {
     max-height: 50px;
-    margin-top: 0px;
-}
-
-.mx_RoomView_statusArea_expanded.mx_RoomView_statusArea_mid_timeline {
-    margin-top: -50px;
-
-    -webkit-transition: all .2s ease-in;
-    -moz-transition: all .2s ease-in;
-    -ms-transition: all .2s ease-in;
-    -o-transition: all .2s ease-in;
 }
 
 .mx_RoomView_statusAreaBox {

From b7204bf868cdf93040afb581465b5b04712081a7 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Mon, 23 Jan 2017 13:33:39 +0000
Subject: [PATCH 213/243] Use primary bg color on statusArea

---
 src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
index 9e30b9f2..8623e032 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
@@ -160,7 +160,7 @@ hr.mx_RoomView_myReadMarker {
     flex: 0 0 auto;
 
     max-height: 0px;
-    background-color: #fff;
+    background-color: $primary-bg-color;
     z-index: 1000;
     overflow: hidden;
 

From bc714ba3a051ec64d3726e6933c7e766ecbd92b4 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 23 Jan 2017 14:22:54 +0000
Subject: [PATCH 214/243] Add eslint config

An early start that gets some linting in place.
---
 .eslintignore     | 1 +
 .eslintrc.js      | 3 +++
 package.json      | 7 ++++++-
 test/.eslintrc.js | 5 +++++
 4 files changed, 15 insertions(+), 1 deletion(-)
 create mode 100644 .eslintignore
 create mode 100644 .eslintrc.js
 create mode 100644 test/.eslintrc.js

diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 00000000..ea40ba29
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+src/vector/modernizr.js
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 00000000..c181384f
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,3 @@
+module.exports = {
+    extends: ["./node_modules/matrix-react-sdk/.eslintrc.js"],
+}
diff --git a/package.json b/package.json
index b7b69d0c..f14fe8e7 100644
--- a/package.json
+++ b/package.json
@@ -41,6 +41,8 @@
     "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
     "start": "node scripts/babelcheck.js && parallelshell \"npm run start:res\" \"npm run start:js\"",
     "start:prod": "parallelshell \"npm run start:res\" \"npm run start:js:prod\"",
+    "lint": "eslint src/",
+    "lintall": "eslint src/ test/",
     "clean": "rimraf lib webapp electron/dist",
     "prepublish": "npm run build:compile",
     "test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
@@ -95,6 +97,9 @@
     "electron-builder": "^11.2.4",
     "electron-builder-squirrel-windows": "^11.2.1",
     "emojione": "^2.2.3",
+    "eslint": "^3.14.0",
+    "eslint-plugin-flowtype": "^2.30.0",
+    "eslint-plugin-react": "^6.9.0",
     "expect": "^1.16.0",
     "fs-extra": "^0.30.0",
     "html-webpack-plugin": "^2.24.0",
@@ -148,7 +153,7 @@
       "target": "deb",
       "maintainer": "support@riot.im",
       "desktop": {
-          "StartupWMClass": "riot-web"
+        "StartupWMClass": "riot-web"
       }
     },
     "win": {
diff --git a/test/.eslintrc.js b/test/.eslintrc.js
new file mode 100644
index 00000000..4cc4659d
--- /dev/null
+++ b/test/.eslintrc.js
@@ -0,0 +1,5 @@
+module.exports = {
+    env: {
+        mocha: true,
+    },
+}

From 4c3ea1341370a0722c34be6551ca791480c74db6 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Mon, 23 Jan 2017 15:42:50 +0000
Subject: [PATCH 215/243] Make jenkins run the linter

---
 scripts/jenkins.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh
index bd27d6e3..5ccc1991 100755
--- a/scripts/jenkins.sh
+++ b/scripts/jenkins.sh
@@ -26,6 +26,9 @@ cp -r olm/package node_modules/olm
 # run the mocha tests
 npm run test
 
+# run eslint
+npm run lintall -- -f checkstyle -o eslint.xml || true
+
 rm dist/vector-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist
 
  # node_modules deps from 'npm install' don't have a .git dir so can't

From f3df86872b4e4bc7b4e7a489993cf3e73c6a3637 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Mon, 23 Jan 2017 17:37:57 +0000
Subject: [PATCH 216/243] Fix tightlooping when flush()ing without any logs

The promise would resolve immediately, nulling out `flushPromise`. This would
then immediately be set from `new Promise((resolve, reject) => {...})` turning
it back into non-null `flushPromise`. The resolve handler was called so the
next `flush()` would see "oh yes, there is a non-null `flushPromise`" then
promptly try to set `flushAgainPromise` which chains off the resolved
`flushPromise` which relied on `flushPromise` being `null`ed out after
`resolve()`, causing the chained `flush()` to see "oh yes, there is a non-null
`flushPromise`" which... ad infinitum.

This PR fixes it by making the nulling out asynchronous but the fact it took
me this long to debug this issue indicates to me that this is a terrible piece
of code. Will re-write.
---
 src/vector/rageshake.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 3cc15886..a17c829a 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -201,13 +201,11 @@ class IndexedDBLogStore {
             if (!this.db) {
                 // not connected yet or user rejected access for us to r/w to
                 // the db.
-                this.flushPromise = null;
                 reject(new Error("No connected database"));
                 return;
             }
             const lines = this.logger.flush();
             if (lines.length === 0) {
-                this.flushPromise = null;
                 resolve();
                 return;
             }
@@ -217,18 +215,20 @@ class IndexedDBLogStore {
             let lastModStore = txn.objectStore("logslastmod");
             lastModStore.put(this._generateLastModifiedTime());
             txn.oncomplete = (event) => {
-                this.flushPromise = null;
                 resolve();
             };
             txn.onerror = (event) => {
                 console.error(
                     "Failed to flush logs : ", event
                 );
-                this.flushPromise = null;
                 reject(
                     new Error("Failed to write logs: " + event.target.errorCode)
                 );
             }
+        }).then(() => {
+            this.flushPromise = null;
+        }, (err) => {
+            this.flushPromise = null;
         });
         return this.flushPromise;
     }

From 706ffbec3c2eb41d67587ace8e01dd3c7df0e03b Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Mon, 23 Jan 2017 19:01:22 +0100
Subject: [PATCH 217/243] add riot logos

---
 src/skins/vector/img/logos/riot-logo-1.svg  |  1 +
 src/skins/vector/img/logos/riot-logo-2.svg  |  1 +
 src/skins/vector/img/logos/riot-logo-3.svg  |  1 +
 src/skins/vector/img/logos/riot-logo-4.svg  |  1 +
 src/skins/vector/img/logos/riot-logo-5.svg  |  1 +
 src/skins/vector/img/logos/riot-logo-bw.svg |  1 +
 src/skins/vector/img/logos/riot-logo.svg    | 32 +++++++++++++++++++++
 7 files changed, 38 insertions(+)
 create mode 100644 src/skins/vector/img/logos/riot-logo-1.svg
 create mode 100644 src/skins/vector/img/logos/riot-logo-2.svg
 create mode 100644 src/skins/vector/img/logos/riot-logo-3.svg
 create mode 100644 src/skins/vector/img/logos/riot-logo-4.svg
 create mode 100644 src/skins/vector/img/logos/riot-logo-5.svg
 create mode 100644 src/skins/vector/img/logos/riot-logo-bw.svg
 create mode 100644 src/skins/vector/img/logos/riot-logo.svg

diff --git a/src/skins/vector/img/logos/riot-logo-1.svg b/src/skins/vector/img/logos/riot-logo-1.svg
new file mode 100644
index 00000000..6b79dd9e
--- /dev/null
+++ b/src/skins/vector/img/logos/riot-logo-1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style>.cls-1{fill:#764d80;}.cls-2{fill:#7dc8a2;}.cls-3{fill:#afdbc5;}</style></defs><title>Asset 4</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-1" d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-1" d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path class="cls-1" d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/><path class="cls-2" d="M62.33,0H21.22A20.56,20.56,0,0,0,.66,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H62.33A51.38,51.38,0,0,0,62.33,0Z"/><path class="cls-3" d="M21.22,138.81A15.45,15.45,0,0,1,5.79,123.37V20.57A15.45,15.45,0,0,1,21.09,5.14H62.33a46.26,46.26,0,0,1,0,92.51H36.65v25.71A15.45,15.45,0,0,1,21.22,138.81Z"/><path class="cls-2" d="M21.22,133.68a10.32,10.32,0,0,1-10.3-10.3V20.57A10.33,10.33,0,0,1,21,10.27H62.33a41.13,41.13,0,0,1,0,82.26H31.52v30.84A10.32,10.32,0,0,1,21.22,133.68Z"/><path class="cls-3" d="M21.22,128.55A5.18,5.18,0,0,1,16,123.37V20.57a5.2,5.2,0,0,1,5-5.17H62.33a36,36,0,0,1,0,72H26.39v36A5.18,5.18,0,0,1,21.22,128.55Z"/><path class="cls-2" d="M21.27,82.28H62.33a30.87,30.87,0,0,0,0-61.75H21.22Z"/><path class="cls-3" d="M26.39,77.15l0-51.49h36a25.75,25.75,0,0,1,0,51.49Z"/><path class="cls-2" d="M31.51,72l0-41.23H62.33a20.62,20.62,0,0,1,0,41.23Z"/><path class="cls-3" d="M36.64,66.9l0-31H62.33a15.49,15.49,0,0,1,0,31Z"/><path class="cls-2" d="M41.76,61.77l0-20.72H62.33a10.36,10.36,0,0,1,0,20.72Z"/><path class="cls-3" d="M46.89,56.64V46.18H62.33a5.23,5.23,0,0,1,0,10.47Z"/><circle class="cls-1" cx="20.56" cy="20.57" r="20.56" transform="translate(-8.08 15.51) rotate(-35)"/><path class="cls-1" d="M109.34,111.57a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.55,67.58Z"/></g></g></svg>
\ No newline at end of file
diff --git a/src/skins/vector/img/logos/riot-logo-2.svg b/src/skins/vector/img/logos/riot-logo-2.svg
new file mode 100644
index 00000000..96e0bbb1
--- /dev/null
+++ b/src/skins/vector/img/logos/riot-logo-2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.36 143.93"><defs><style>.cls-1{fill:#764d80;}.cls-2{fill:#f69e98;}</style></defs><title>Asset 2</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><path class="cls-2" d="M20.56,139.54A16.19,16.19,0,0,1,4.39,123.37V20.57a16.21,16.21,0,0,1,16-16.17H61.67a47,47,0,0,1,0,94H36.73v25A16.19,16.19,0,0,1,20.56,139.54ZM20.39,5.9A14.7,14.7,0,0,0,5.89,20.57v102.8a14.67,14.67,0,0,0,29.34,0V96.9H61.67a45.49,45.49,0,0,0,0-91H20.39Z"/><path class="cls-2" d="M20.56,134.4a11,11,0,0,1-11-11V20.57a11.09,11.09,0,0,1,10.79-11H61.67a41.85,41.85,0,0,1,0,83.7H31.59v30.11A11,11,0,0,1,20.56,134.4ZM20.3,11A9.57,9.57,0,0,0,11,20.57v102.8a9.53,9.53,0,1,0,19.05,0V91.75H61.67a40.35,40.35,0,0,0,0-80.7H20.3Z"/><path class="cls-2" d="M20.56,129.25a5.89,5.89,0,0,1-5.88-5.88V20.57a5.94,5.94,0,0,1,5.61-5.88H61.67a36.71,36.71,0,0,1,0,73.42H26.44v35.25A5.89,5.89,0,0,1,20.56,129.25ZM20.31,16.19a4.42,4.42,0,0,0-4.13,4.38v102.8a4.38,4.38,0,0,0,8.77,0V86.61H61.67a35.21,35.21,0,0,0,0-70.42Z"/><path class="cls-2" d="M61.67,83H19.81V19.83H61.67a31.57,31.57,0,0,1,0,63.14Zm-40.36-1.5H61.67a30.07,30.07,0,0,0,0-60.14H21.32Z"/><path class="cls-2" d="M61.67,77.83H25V25H61.67a26.43,26.43,0,0,1,0,52.85Zm-35.22-1.5H61.67a24.93,24.93,0,0,0,0-49.85H26.46Z"/><path class="cls-2" d="M61.67,72.69H30.1V30.12H61.67a21.29,21.29,0,0,1,0,42.57ZM31.6,71.19H61.67a19.79,19.79,0,0,0,0-39.57H31.6Z"/><path class="cls-2" d="M61.67,67.55H35.24V35.26H61.67a16.14,16.14,0,0,1,0,32.29ZM36.74,66H61.67a14.64,14.64,0,0,0,0-29.29H36.74Z"/><path class="cls-2" d="M61.67,62.41H40.38v-22H61.67a11,11,0,0,1,0,22Zm-19.79-1.5H61.67a9.5,9.5,0,0,0,0-19H41.88Z"/><path class="cls-2" d="M61.67,57.26H45.52V45.54H61.67a5.86,5.86,0,0,1,0,11.72ZM47,55.76H61.67a4.36,4.36,0,0,0,0-8.72H47Z"/><path class="cls-2" d="M61.18,52.16H51.89a.75.75,0,1,1,0-1.5h9.29a.75.75,0,0,1,0,1.5Z"/><path class="cls-2" d="M20.56,124.12a.75.75,0,0,1-.75-.75v-36a.75.75,0,0,1,1.5,0v36A.75.75,0,0,1,20.56,124.12Z"/><circle class="cls-2" cx="20.59" cy="20.57" r="20.56" transform="translate(-8.07 15.53) rotate(-35)"/><path class="cls-2" d="M109.36,111.56a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/><path class="cls-2" d="M145.91,51.12h25.61a2.57,2.57,0,0,0,0-5.14H145.91a2.57,2.57,0,1,0,0,5.14Z"/><path class="cls-2" d="M145.91,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,171.51,0H145.91a2.57,2.57,0,1,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-2" d="M171.51,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23a2.57,2.57,0,0,0-2.57,2.57h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,171.51,118.28Z"/><path class="cls-2" d="M158.71,72.63a15.65,15.65,0,1,0,15.65,15.65A15.67,15.67,0,0,0,158.71,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,158.71,98.79Z"/></g></g></svg>
\ No newline at end of file
diff --git a/src/skins/vector/img/logos/riot-logo-3.svg b/src/skins/vector/img/logos/riot-logo-3.svg
new file mode 100644
index 00000000..985b9c9f
--- /dev/null
+++ b/src/skins/vector/img/logos/riot-logo-3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style>.cls-1{fill:#fac79e;}.cls-2{fill:#e45e5d;}.cls-3{fill:#f8a05f;}</style></defs><title>Asset 5</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-1" d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-1" d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path class="cls-1" d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/><path class="cls-2" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><polygon class="cls-3" points="47.03 0.01 40.32 0.01 0 48.06 0 56.05 47.03 0.01"/><polygon class="cls-3" points="60.45 0.01 53.74 0.01 0 64.05 0 72.04 60.45 0.01"/><path class="cls-3" d="M72.83,1.24a51,51,0,0,0-5.9-1L0,80v8Z"/><polygon class="cls-3" points="33.61 0.01 26.9 0.01 0 32.06 0 40.06 33.61 0.01"/><path class="cls-3" d="M83.27,4.78a51,51,0,0,0-5-2L0,96v8Z"/><path class="cls-3" d="M41.12,102.78h.18l64.78-77.2a51.55,51.55,0,0,0-2.94-4.49L5.55,137.38a20.62,20.62,0,0,0,3.95,3.29L41.12,103Z"/><path class="cls-3" d="M112.22,42.23l-50.8,60.54h.25a51.55,51.55,0,0,0,6.85-.47L113,49.3A51.32,51.32,0,0,0,112.22,42.23Z"/><path class="cls-3" d="M40.71,127.46l-12.59,15A20.58,20.58,0,0,0,40.71,127.46Z"/><path class="cls-3" d="M110,68.88a51,51,0,0,0,2.67-11.18L76.73,100.52a51.1,51.1,0,0,0,10.6-4.64Z"/><path class="cls-3" d="M92.22,10.1a51.58,51.58,0,0,0-4.3-2.87L0,112v8Z"/><path class="cls-3" d="M99.83,17q-1.73-1.92-3.64-3.66L.42,127.5a20.41,20.41,0,0,0,2,5.58Z"/><path class="cls-3" d="M41.12,119v-8l-26.82,32a20.53,20.53,0,0,0,5.9,1Z"/><path class="cls-3" d="M110.71,36a51,51,0,0,0-2.09-5.5L48,102.78h6.71Z"/><circle class="cls-1" cx="20.59" cy="20.57" r="20.56" transform="translate(-8.07 15.53) rotate(-35)"/><path class="cls-1" d="M109.36,111.56a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/></g></g></svg>
\ No newline at end of file
diff --git a/src/skins/vector/img/logos/riot-logo-4.svg b/src/skins/vector/img/logos/riot-logo-4.svg
new file mode 100644
index 00000000..24a7ddab
--- /dev/null
+++ b/src/skins/vector/img/logos/riot-logo-4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 175.64 143.93"><defs><style>.cls-1{fill:#e45e5d;}.cls-2{fill:#c7bdcd;}.cls-3{fill:#f69e98;}</style></defs><title>Asset 3</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><path class="cls-2" d="M147.19,51.12h25.61a2.57,2.57,0,1,0,0-5.14H147.19a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-2" d="M147.19,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.79,0H147.19a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-2" d="M172.79,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23a2.57,2.57,0,0,0-2.57,2.57h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.79,118.28Z"/><path class="cls-2" d="M160,72.63a15.65,15.65,0,1,0,15.65,15.65A15.67,15.67,0,0,0,160,72.63Zm0,26.16A10.51,10.51,0,1,1,170.5,88.28,10.52,10.52,0,0,1,160,98.79Z"/><path class="cls-3" d="M2.77,133.64A20.62,20.62,0,0,0,7,138.77H34.14a20.62,20.62,0,0,0,4.21-5.13Z"/><path class="cls-3" d="M0,92.52v5.14H84a51.48,51.48,0,0,0,8.41-5.14Z"/><rect class="cls-3" y="102.8" width="41.12" height="5.13"/><rect class="cls-3" y="113.08" width="41.12" height="5.14"/><path class="cls-3" d="M.68,15.41H98.3a51.8,51.8,0,0,0-5.86-5.14H2.78A20.41,20.41,0,0,0,.68,15.41Z"/><path class="cls-3" d="M0,123.36H0a20.53,20.53,0,0,0,.67,5.12H40.45a20.53,20.53,0,0,0,.67-5.12H0Z"/><path class="cls-3" d="M0,56.53H112.8c.17-1.69.26-3.4.26-5.13H0Z"/><path class="cls-3" d="M0,82.24v5.14H98.32a51.79,51.79,0,0,0,4.43-5.14Z"/><path class="cls-3" d="M0,20.57V25.7H106.14a51.58,51.58,0,0,0-3.39-5.14Z"/><path class="cls-3" d="M20.81,0h-.25A20.46,20.46,0,0,0,7,5.14H84A51.07,51.07,0,0,0,61.67,0Z"/><path class="cls-3" d="M0,30.85V36H110.69a51,51,0,0,0-1.94-5.14Z"/><path class="cls-3" d="M0,72v5.13H106.14A51.24,51.24,0,0,0,108.75,72Z"/><path class="cls-3" d="M0,61.68v5.14H110.69A50.92,50.92,0,0,0,112,61.68Z"/><path class="cls-3" d="M0,41.22v5.14H112.8a51.15,51.15,0,0,0-.77-5.14Z"/><circle class="cls-2" cx="20.59" cy="20.57" r="20.56" transform="translate(-8.07 15.53) rotate(-35)"/><path class="cls-2" d="M109.36,111.56a20.56,20.56,0,0,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/></g></g></svg>
\ No newline at end of file
diff --git a/src/skins/vector/img/logos/riot-logo-5.svg b/src/skins/vector/img/logos/riot-logo-5.svg
new file mode 100644
index 00000000..6a2c61df
--- /dev/null
+++ b/src/skins/vector/img/logos/riot-logo-5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style>.cls-1{fill:#764d80;}.cls-2{fill:#afdbc5;}</style></defs><title>Asset 1</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><circle class="cls-2" cx="20.59" cy="20.57" r="20.56" transform="matrix(0.82, -0.57, 0.57, 0.82, -8.07, 15.53)"/><path class="cls-2" d="M109.36,111.56a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/><path class="cls-2" d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-2" d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,1,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-2" d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path class="cls-2" d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/></g></g></svg>
\ No newline at end of file
diff --git a/src/skins/vector/img/logos/riot-logo-bw.svg b/src/skins/vector/img/logos/riot-logo-bw.svg
new file mode 100644
index 00000000..cb6d77d6
--- /dev/null
+++ b/src/skins/vector/img/logos/riot-logo-bw.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style>.cls-1{fill:#fff;}</style></defs><title>Asset 6</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/><path d="M62.33,0H21.22A20.56,20.56,0,0,0,.66,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H62.33A51.38,51.38,0,0,0,62.33,0Z"/><path class="cls-1" d="M21.22,138.81A15.45,15.45,0,0,1,5.79,123.37V20.57A15.45,15.45,0,0,1,21.09,5.14H62.33a46.26,46.26,0,0,1,0,92.51H36.65v25.71A15.45,15.45,0,0,1,21.22,138.81Z"/><path d="M21.22,133.68a10.32,10.32,0,0,1-10.3-10.3V20.57A10.33,10.33,0,0,1,21,10.27H62.33a41.13,41.13,0,0,1,0,82.26H31.52v30.84A10.32,10.32,0,0,1,21.22,133.68Z"/><path class="cls-1" d="M21.22,128.55A5.18,5.18,0,0,1,16,123.37V20.57a5.2,5.2,0,0,1,5-5.17H62.33a36,36,0,0,1,0,72H26.39v36A5.18,5.18,0,0,1,21.22,128.55Z"/><path d="M21.27,82.28H62.33a30.87,30.87,0,0,0,0-61.75H21.22Z"/><path class="cls-1" d="M26.39,77.15l0-51.49h36a25.75,25.75,0,0,1,0,51.49Z"/><path d="M31.51,72l0-41.23H62.33a20.62,20.62,0,0,1,0,41.23Z"/><path class="cls-1" d="M36.64,66.9l0-31H62.33a15.49,15.49,0,0,1,0,31Z"/><path d="M41.76,61.77l0-20.72H62.33a10.36,10.36,0,0,1,0,20.72Z"/><path class="cls-1" d="M46.89,56.64V46.18H62.33a5.23,5.23,0,0,1,0,10.47Z"/><circle cx="20.56" cy="20.57" r="20.56" transform="translate(-8.08 15.51) rotate(-35)"/><path d="M109.34,111.57a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.55,67.58Z"/></g></g></svg>
\ No newline at end of file
diff --git a/src/skins/vector/img/logos/riot-logo.svg b/src/skins/vector/img/logos/riot-logo.svg
new file mode 100644
index 00000000..cbfaa625
--- /dev/null
+++ b/src/skins/vector/img/logos/riot-logo.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 400 400" style="enable-background:new 0 0 400 400;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#7DC8A2;}
+	.st1{fill:#AFDBC5;}
+	.st2{fill:#764D80;}
+</style>
+<g>
+	<path class="st0" d="M212.8,38.8h-91.2c-0.2,0-0.4,0-0.6,0c-25.3,0-45.9,20.5-45.9,45.9v229.5c0,25.3,20.5,45.9,45.9,45.9
+		s45.9-20.5,45.9-45.9v-45.9h45.9c63.2,0,114.7-51.5,114.7-114.7S276,38.8,212.8,38.8z"/>
+	<path class="st1" d="M121,348.6c-19,0-34.4-15.5-34.4-34.4V84.7c0-18.9,15.3-34.3,34.2-34.4c0.2,0,0.5,0,0.7,0h91.3
+		c56.9,0,103.3,46.3,103.3,103.3s-46.3,103.3-103.3,103.3h-57.3v57.4C155.4,333.2,140,348.6,121,348.6z"/>
+	<path class="st0" d="M121,337.2c-12.7,0-23-10.3-23-23V84.7c0-12.5,10.1-22.7,22.5-23c0.2,0,0.5,0,0.7,0l91.5,0
+		c50.6,0,91.8,41.2,91.8,91.8s-41.2,91.8-91.8,91.8H144v68.8C144,326.9,133.7,337.2,121,337.2z"/>
+	<path class="st1" d="M121,325.7c-6.4,0-11.6-5.2-11.6-11.6V84.7c0-6.2,5-11.3,11.1-11.5l0.5,0l91.8,0c44.3,0,80.4,36.1,80.4,80.4
+		s-36,80.4-80.4,80.4h-80.2v80.3C132.6,320.5,127.4,325.7,121,325.7z"/>
+	<path class="st0" d="M121.1,222.4h91.7c38,0,68.9-30.9,68.9-68.9s-30.9-68.9-68.9-68.9H121L121.1,222.4z"/>
+	<path class="st1" d="M132.5,211l-0.1-114.9h80.3c31.7,0,57.5,25.8,57.5,57.5S244.5,211,212.8,211H132.5z"/>
+	<path class="st0" d="M144,199.6l-0.1-92h68.9c25.4,0,46,20.6,46,46s-20.6,46-46,46H144z"/>
+	<path class="st1" d="M155.4,188.1l-0.1-69.1h57.4c19.1,0,34.6,15.5,34.6,34.6s-15.5,34.6-34.6,34.6H155.4z"/>
+	<path class="st0" d="M166.9,176.7l0-46.3h45.9c12.8,0,23.1,10.4,23.1,23.1s-10.4,23.1-23.1,23.1H166.9z"/>
+	<path class="st1" d="M178.3,165.2l0-23.4h34.5c6.4,0,11.7,5.2,11.7,11.7s-5.2,11.7-11.7,11.7H178.3z"/>
+	<g>
+		
+			<ellipse transform="matrix(0.8192 -0.5736 0.5736 0.8192 -26.9642 83.8822)" class="st2" cx="119.5" cy="84.7" rx="45.9" ry="45.9"/>
+		<path class="st2" d="M317.7,287.8c14.5,20.8,9.5,49.4-11.3,63.9c-20.8,14.5-49.4,9.5-63.9-11.3l-68.7-98.2
+			c-14.5-20.8-9.5-49.4,11.3-63.9c20.8-14.5,49.4-9.5,63.9,11.3L317.7,287.8z"/>
+	</g>
+</g>
+</svg>

From 597705716b30e0efa9cca8e5ac744bda36bf503e Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 24 Jan 2017 11:26:09 +0000
Subject: [PATCH 218/243] Hopefully, fix intermittent test failure

This seeks to fix the intermittent failure of the "MatrixClient rehydrated from
stored credentials" tests.

The problem appears to be that the 'load_completed' is sometimes taking a while
to come through from the dispatcher - or rather, it is taking a long time to
get *sent* to the dispatcher: the chain of `q().then().catch().done()` in
componentDidMount can take a while to happen.

As a workaround, give the test a few goes when waiting for us to start
syncing. It's not ideal to be poking into the internal state of MatrixChat like
this, but it'll do for now.
---
 test/app-tests/loading.js | 69 +++++++++++++++++++++++----------------
 1 file changed, 40 insertions(+), 29 deletions(-)

diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js
index 03a4d11e..2fe82e51 100644
--- a/test/app-tests/loading.js
+++ b/test/app-tests/loading.js
@@ -94,13 +94,13 @@ describe('loading:', function () {
         loadCompletePromise = loadCompleteDefer.promise;
 
         function onNewScreen(screen) {
-            console.log("newscreen "+screen);
+            console.log(Date.now() + " newscreen "+screen);
             if (!appLoaded) {
                 lastLoadedScreen = screen;
             } else {
                 var hash = '#/' + screen;
                 windowLocation.hash = hash;
-                console.log("browser URI now "+ windowLocation);
+                console.log(Date.now() + " browser URI now "+ windowLocation);
             }
         }
 
@@ -122,22 +122,22 @@ describe('loading:', function () {
         );
 
         function routeUrl(location, matrixChat) {
-            console.log("Routing URL "+location);
+            console.log(Date.now() + " Routing URL "+location);
             var fragparts = parseQsFromFragment(location);
             matrixChat.showScreen(fragparts.location.substring(1),
                                   fragparts.params);
         }
 
         // pause for a cycle, then simulate the window.onload handler
-        q.delay(0).then(() => {
-            console.log("simulating window.onload");
+        window.setTimeout(() => {
+            console.log(Date.now() + " simulating window.onload");
             routeUrl(windowLocation, matrixChat);
             appLoaded = true;
             if (lastLoadedScreen) {
                 onNewScreen(lastLoadedScreen);
                 lastLoadedScreen = null;
             }
-        }).done();
+        }, 0);
     }
 
     describe("Clean load with no stored credentials:", function() {
@@ -243,10 +243,8 @@ describe('loading:', function () {
 
             loadApp();
 
-            q.delay(1).then(() => {
-                // we expect a spinner
-                assertAtSyncingSpinner(matrixChat);
-
+            return awaitSyncingSpinner(matrixChat).then(() => {
+                // we got a sync spinner - let the sync complete
                 return httpBackend.flush();
             }).then(() => {
                 // once the sync completes, we should have a directory
@@ -266,10 +264,8 @@ describe('loading:', function () {
                 uriFragment: "#/room/!room:id",
             });
 
-            q.delay(1).then(() => {
-                // we expect a spinner
-                assertAtSyncingSpinner(matrixChat);
-
+            return awaitSyncingSpinner(matrixChat).then(() => {
+                // we got a sync spinner - let the sync complete
                 return httpBackend.flush();
             }).then(() => {
                 // once the sync completes, we should have a room view
@@ -300,12 +296,9 @@ describe('loading:', function () {
 
                 return httpBackend.flush();
             }).then(() => {
-                // Wait for another trip around the event loop for the UI to update
-                return q.delay(1);
+                return awaitSyncingSpinner(matrixChat);
             }).then(() => {
-                // now we should have a spinner with a logout link
-                assertAtSyncingSpinner(matrixChat);
-
+                // we got a sync spinner - let the sync complete
                 httpBackend.when('GET', '/sync').respond(200, {});
                 return httpBackend.flush();
             }).then(() => {
@@ -338,12 +331,8 @@ describe('loading:', function () {
 
                 return httpBackend.flush();
             }).then(() => {
-                // Wait for another trip around the event loop for the UI to update
-                return q.delay(1);
+                return awaitSyncingSpinner(matrixChat);
             }).then(() => {
-                // now we should have a spinner with a logout link
-                assertAtSyncingSpinner(matrixChat);
-
                 httpBackend.when('GET', '/sync').check(function(req) {
                     expect(req.path).toMatch(new RegExp("^https://homeserver/"));
                 }).respond(200, {});
@@ -377,12 +366,8 @@ describe('loading:', function () {
 
                 return httpBackend.flush();
             }).then(() => {
-                // Wait for another trip around the event loop for the UI to update
-                return q.delay(1);
+                return awaitSyncingSpinner(matrixChat);
             }).then(() => {
-                // now we should have a spinner with a logout link
-                assertAtSyncingSpinner(matrixChat);
-
                 httpBackend.when('GET', '/sync').respond(200, {});
                 return httpBackend.flush();
             }).then(() => {
@@ -448,6 +433,32 @@ function assertAtLoadingSpinner(matrixChat) {
 
 // we've got login creds, and are waiting for the sync to finish.
 // the page includes a logout link.
+function awaitSyncingSpinner(matrixChat, retryLimit, retryCount) {
+    if (retryLimit === undefined) {
+        retryLimit = 5;
+    }
+    if (retryCount === undefined) {
+        retryCount = 0;
+    }
+
+    if (matrixChat.state.loading) {
+        console.log(Date.now() + " Awaiting sync spinner: still loading.");
+        if (retryCount >= retryLimit) {
+            throw new Error("MatrixChat still not loaded after " +
+                            retryCount + " tries");
+        }
+        return q.delay(0).then(() => {
+            return awaitSyncingSpinner(matrixChat, retryLimit, retryCount + 1);
+        });
+    }
+
+    console.log(Date.now() + " Awaiting sync spinner: load complete.");
+
+    // state looks good, check the rendered output
+    assertAtSyncingSpinner(matrixChat);
+    return q();
+}
+
 function assertAtSyncingSpinner(matrixChat) {
     var domComponent = ReactDOM.findDOMNode(matrixChat);
     expect(domComponent.className).toEqual("mx_MatrixChat_splash");

From 6f3b70dbb02bb6edb614209592546fb3ba28854b Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Tue, 24 Jan 2017 12:43:18 +0000
Subject: [PATCH 219/243] Use Q promises and isPending to make logic simpler

---
 src/vector/rageshake.js | 52 ++++++++++++++++-------------------------
 1 file changed, 20 insertions(+), 32 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index a17c829a..28f901a3 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -16,6 +16,7 @@ limitations under the License.
 
 import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
 import request from "browser-request";
+import q from "q";
 
 // This module contains all the code needed to log the console, persist it to
 // disk and submit bug reports. Rationale is as follows:
@@ -105,9 +106,6 @@ class IndexedDBLogStore {
         this.db = null;
         // Promise is not null when a flush is IN PROGRESS
         this.flushPromise = null;
-        // Promise is not null when flush() is called when one is already in
-        // progress.
-        this.flushAgainPromise = null;
     }
 
     /**
@@ -115,7 +113,7 @@ class IndexedDBLogStore {
      */
     connect() {
         let req = this.indexedDB.open("logs");
-        return new Promise((resolve, reject) => {
+        return q.Promise((resolve, reject) => {
             req.onsuccess = (event) => {
                 this.db = event.target.result;
                 // Periodically flush logs to local storage / indexeddb
@@ -167,13 +165,10 @@ class IndexedDBLogStore {
      *  - If B doesn't wait for A's flush to complete, B will be missing the
      *    contents of A's flush.
      * To protect against this, we set 'flushPromise' when a flush is ongoing.
-     * Subsequent calls to flush() during this period return a new promise
-     * 'flushAgainPromise' which is chained off the current 'flushPromise'.
-     * Subsequent calls to flush() when the first flush hasn't completed will
-     * return the same 'flushAgainPromise' as we can guarantee that we WILL
-     * do a brand new flush at some point in the future. Once the first flush
-     * has completed, 'flushAgainPromise' becomes 'flushPromise' and can be
-     * chained again.
+     * Subsequent calls to flush() during this period will chain another flush.
+     * This guarantees that we WILL do a brand new flush at some point in the
+     * future. Once the flushes have finished, it's  safe to clobber the promise
+     * with a new one to prevent very deep promise chains from building up.
      *
      * This guarantees that we will always eventually do a flush when flush() is
      * called.
@@ -181,23 +176,20 @@ class IndexedDBLogStore {
      * @return {Promise} Resolved when the logs have been flushed.
      */
     flush() {
-        if (this.flushPromise) { // a flush is ongoing
-            if (this.flushAgainPromise) { // a flush is queued up, return that.
-                return this.flushAgainPromise;
-            }
-            // queue up a new flush
-            this.flushAgainPromise = this.flushPromise.then(() => {
-                // the current flush has completed, so shuffle the promises
-                // around:
-                // flushAgainPromise => flushPromise and null flushAgainPromise.
-                // flushPromise has already nulled itself.
-                this.flushAgainPromise = null;
+        // check if a flush() operation is ongoing
+        if (this.flushPromise && this.flushPromise.isPending()) {
+            // chain a flush operation after this one has completed to guarantee
+            // that a complete flush() is done. This does mean that if there are
+            // 3 calls to flush() in one go, the 2nd and 3rd promises will run
+            // concurrently, but this is fine since they can safely race when
+            // collecting logs.
+            return this.flushPromise.then(() => {
                 return this.flush();
             });
-            return this.flushAgainPromise;
         }
-
-        this.flushPromise = new Promise((resolve, reject) => {
+        // there is no flush promise or there was but it has finished, so do
+        // a brand new one, destroying the chain which may have been built up.
+        this.flushPromise = q.Promise((resolve, reject) => {
             if (!this.db) {
                 // not connected yet or user rejected access for us to r/w to
                 // the db.
@@ -225,10 +217,6 @@ class IndexedDBLogStore {
                     new Error("Failed to write logs: " + event.target.errorCode)
                 );
             }
-        }).then(() => {
-            this.flushPromise = null;
-        }, (err) => {
-            this.flushPromise = null;
         });
         return this.flushPromise;
     }
@@ -286,7 +274,7 @@ class IndexedDBLogStore {
         }
 
         function deleteLogs(id) {
-            return new Promise((resolve, reject) => {
+            return q.Promise((resolve, reject) => {
                 const txn = db.transaction(
                     ["logs", "logslastmod"], "readwrite"
                 );
@@ -377,7 +365,7 @@ class IndexedDBLogStore {
  */
 function selectQuery(store, keyRange, resultMapper) {
     const query = store.openCursor(keyRange);
-    return new Promise((resolve, reject) => {
+    return q.Promise((resolve, reject) => {
         let results = [];
         query.onerror = (event) => {
             reject(new Error("Query failed: " + event.target.errorCode));
@@ -479,7 +467,7 @@ module.exports = {
             });
         }
 
-        await new Promise((resolve, reject) => {
+        await q.Promise((resolve, reject) => {
             request({
                 method: "POST",
                 url: bugReportEndpoint,

From 31878d8a448ddab39c17306a648bded4176b22c3 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 24 Jan 2017 13:07:34 +0000
Subject: [PATCH 220/243] Also need eslint-config-google

---
 package.json | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package.json b/package.json
index f14fe8e7..2aff1859 100644
--- a/package.json
+++ b/package.json
@@ -98,6 +98,7 @@
     "electron-builder-squirrel-windows": "^11.2.1",
     "emojione": "^2.2.3",
     "eslint": "^3.14.0",
+    "eslint-config-google": "^0.7.1",
     "eslint-plugin-flowtype": "^2.30.0",
     "eslint-plugin-react": "^6.9.0",
     "expect": "^1.16.0",

From fe64b043390cbbe135f795d2337ae44093c84474 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 24 Jan 2017 13:35:41 +0000
Subject: [PATCH 221/243] More test resilience

Give the tests more than one chance for the roomview to load.
---
 test/app-tests/loading.js | 45 ++++++++++++++++++++++++++++-----------
 1 file changed, 33 insertions(+), 12 deletions(-)

diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js
index 2fe82e51..4504d00b 100644
--- a/test/app-tests/loading.js
+++ b/test/app-tests/loading.js
@@ -209,14 +209,11 @@ describe('loading:', function () {
                 httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
                 httpBackend.when('GET', '/sync').respond(200, {});
                 return httpBackend.flush();
-            }).then(() => {
-                // Wait for another trip around the event loop for the UI to update
-                return q.delay(1);
             }).then(() => {
                 // once the sync completes, we should have a room view
+                return awaitRoomView(matrixChat);
+            }).then(() => {
                 httpBackend.verifyNoOutstandingExpectation();
-                ReactTestUtils.findRenderedComponentWithType(
-                    matrixChat, sdk.getComponent('structures.RoomView'));
                 expect(windowLocation.hash).toEqual("#/room/!room:id");
 
                 // and the localstorage should have been updated
@@ -269,9 +266,9 @@ describe('loading:', function () {
                 return httpBackend.flush();
             }).then(() => {
                 // once the sync completes, we should have a room view
+                return awaitRoomView(matrixChat);
+            }).then(() => {
                 httpBackend.verifyNoOutstandingExpectation();
-                ReactTestUtils.findRenderedComponentWithType(
-                    matrixChat, sdk.getComponent('structures.RoomView'));
                 expect(windowLocation.hash).toEqual("#/room/!room:id");
             }).done(done, done);
 
@@ -370,14 +367,11 @@ describe('loading:', function () {
             }).then(() => {
                 httpBackend.when('GET', '/sync').respond(200, {});
                 return httpBackend.flush();
-            }).then(() => {
-                // Wait for another trip around the event loop for the UI to update
-                return q.delay(1);
             }).then(() => {
                 // once the sync completes, we should have a room view
+                return awaitRoomView(matrixChat);
+            }).then(() => {
                 httpBackend.verifyNoOutstandingExpectation();
-                ReactTestUtils.findRenderedComponentWithType(
-                    matrixChat, sdk.getComponent('structures.RoomView'));
                 expect(windowLocation.hash).toEqual("#/room/!room:id");
             }).done(done, done);
         });
@@ -469,3 +463,30 @@ function assertAtSyncingSpinner(matrixChat) {
         matrixChat, 'a');
     expect(logoutLink.text).toEqual("Logout");
 }
+
+function awaitRoomView(matrixChat, retryLimit, retryCount) {
+    if (retryLimit === undefined) {
+        retryLimit = 5;
+    }
+    if (retryCount === undefined) {
+        retryCount = 0;
+    }
+
+    if (!matrixChat.state.ready) {
+        console.log(Date.now() + " Awaiting room view: not ready yet.");
+        if (retryCount >= retryLimit) {
+            throw new Error("MatrixChat still not ready after " +
+                            retryCount + " tries");
+        }
+        return q.delay(0).then(() => {
+            return awaitRoomView(matrixChat, retryLimit, retryCount + 1);
+        });
+    }
+
+    console.log(Date.now() + " Awaiting room view: now ready.");
+
+    // state looks good, check the rendered output
+    ReactTestUtils.findRenderedComponentWithType(
+        matrixChat, sdk.getComponent('structures.RoomView'));
+    return q();
+}

From 307c4f3dd152c47ecc9aca9164db403ba0df623e Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Tue, 24 Jan 2017 14:02:44 +0000
Subject: [PATCH 222/243] Increase the max-height of the expanded status bar

This will ensure that errors, unsent messages, etc. will be allowed enough height to display their contents from within the status bar without being chopped.

Fixes #3041
---
 src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
index 8623e032..55771f79 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss
@@ -171,7 +171,7 @@ hr.mx_RoomView_myReadMarker {
 }
 
 .mx_RoomView_statusArea_expanded {
-    max-height: 50px;
+    max-height: 100px;
 }
 
 .mx_RoomView_statusAreaBox {

From efbea0e942a40ab38389740fb42dd8cba1e441de Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Tue, 24 Jan 2017 14:45:16 +0000
Subject: [PATCH 223/243] Add css for bug report dialog

---
 src/skins/vector/css/_components.scss         |  1 +
 .../views/dialogs/_BugReportDialog.scss       | 20 +++++++++++++++++++
 2 files changed, 21 insertions(+)
 create mode 100644 src/skins/vector/css/matrix-react-sdk/views/dialogs/_BugReportDialog.scss

diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss
index 51dd0ada..323c22e0 100644
--- a/src/skins/vector/css/_components.scss
+++ b/src/skins/vector/css/_components.scss
@@ -12,6 +12,7 @@
 @import "./matrix-react-sdk/structures/_UserSettings.scss";
 @import "./matrix-react-sdk/structures/login/_Login.scss";
 @import "./matrix-react-sdk/views/avatars/_BaseAvatar.scss";
+@import "./matrix-react-sdk/views/dialogs/_BugReportDialog.scss";
 @import "./matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss";
 @import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss";
 @import "./matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss";
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_BugReportDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_BugReportDialog.scss
new file mode 100644
index 00000000..0f47e974
--- /dev/null
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_BugReportDialog.scss
@@ -0,0 +1,20 @@
+/*
+Copyright 2017 OpenMarket Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+.mx_BugReportDialog_input {
+    width: 100%;
+    box-sizing: border-box;
+}

From e225d3e3708bccf6cd458453206d076841011630 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Tue, 24 Jan 2017 17:05:01 +0000
Subject: [PATCH 224/243] Preserve ordering of flush()es by not letting
 subsequent flush()es race

---
 src/vector/rageshake.js | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 28f901a3..086ab155 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -104,8 +104,9 @@ class IndexedDBLogStore {
         this.id = "instance-" + Math.random() + Date.now();
         this.index = 0;
         this.db = null;
-        // Promise is not null when a flush is IN PROGRESS
         this.flushPromise = null;
+        // set if flush() is called whilst one is ongoing
+        this.flushAgainPromise = null;
     }
 
     /**
@@ -165,10 +166,8 @@ class IndexedDBLogStore {
      *  - If B doesn't wait for A's flush to complete, B will be missing the
      *    contents of A's flush.
      * To protect against this, we set 'flushPromise' when a flush is ongoing.
-     * Subsequent calls to flush() during this period will chain another flush.
-     * This guarantees that we WILL do a brand new flush at some point in the
-     * future. Once the flushes have finished, it's  safe to clobber the promise
-     * with a new one to prevent very deep promise chains from building up.
+     * Subsequent calls to flush() during this period will chain another flush,
+     * then keep returning that same chained flush.
      *
      * This guarantees that we will always eventually do a flush when flush() is
      * called.
@@ -178,14 +177,17 @@ class IndexedDBLogStore {
     flush() {
         // check if a flush() operation is ongoing
         if (this.flushPromise && this.flushPromise.isPending()) {
-            // chain a flush operation after this one has completed to guarantee
-            // that a complete flush() is done. This does mean that if there are
-            // 3 calls to flush() in one go, the 2nd and 3rd promises will run
-            // concurrently, but this is fine since they can safely race when
-            // collecting logs.
-            return this.flushPromise.then(() => {
+            if (this.flushAgainPromise && this.flushAgainPromise.isPending()) {
+                // this is the 3rd+ time we've called flush() : return the same
+                // promise.
+                return this.flushAgainPromise;
+            }
+            // queue up a flush to occur immediately after the pending one
+            // completes.
+            this.flushAgainPromise = this.flushPromise.then(() => {
                 return this.flush();
             });
+            return this.flushAgainPromise;
         }
         // there is no flush promise or there was but it has finished, so do
         // a brand new one, destroying the chain which may have been built up.

From 2ca871a0286358cb6f7708b4e849cbd4ea19832e Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 24 Jan 2017 18:18:56 +0000
Subject: [PATCH 225/243] Don't use hash-named directory for dev server

Otherwise Chrome thinks you're working on a new file every time
you refresh and therefore closes source tabs and removes
breakpoints which is very annoying. It also allegedly makes
webpack-dev-server run out of memory because it has to remember
all the different files.
---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 2aff1859..5528c7c7 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
     "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:bundle:dev",
     "dist": "scripts/package.sh",
     "start:res": "node scripts/copy-res.js -w",
-    "start:js": "webpack-dev-server -w --progress",
+    "start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js -w --progress",
     "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
     "start": "node scripts/babelcheck.js && parallelshell \"npm run start:res\" \"npm run start:js\"",
     "start:prod": "parallelshell \"npm run start:res\" \"npm run start:js:prod\"",

From eaff0abfb07fddc1f657a1c942c72968e7b47619 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Wed, 25 Jan 2017 10:28:04 +0000
Subject: [PATCH 226/243] Add link to Chrome issue status for fixing line
 numbers

---
 src/vector/index.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/vector/index.js b/src/vector/index.js
index d1d85e06..c40edd7e 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -38,7 +38,7 @@ require('draft-js/dist/Draft.css');
 
 const rageshake = require("./rageshake");
 rageshake.init().then(() => {
-    console.log("Initialised rageshake");
+    console.log("Initialised rageshake: See https://bugs.chromium.org/p/chromium/issues/detail?id=583193 to fix line numbers on Chrome.");
     rageshake.cleanup();
 }, (err) => {
     console.error("Failed to initialise rageshake: " + err);

From 1c926941d34ea328d4505122fe7e72b1a87f2e4c Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 25 Jan 2017 11:28:59 +0000
Subject: [PATCH 227/243] Add --output-chunk-file too

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 5528c7c7..915056e6 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
     "build:dev": "node scripts/babelcheck.js && npm run build:res && npm run build:bundle:dev",
     "dist": "scripts/package.sh",
     "start:res": "node scripts/copy-res.js -w",
-    "start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js -w --progress",
+    "start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js --output-chunk-file=bundles/_dev_/[name].js -w --progress",
     "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
     "start": "node scripts/babelcheck.js && parallelshell \"npm run start:res\" \"npm run start:js\"",
     "start:prod": "parallelshell \"npm run start:res\" \"npm run start:js:prod\"",

From 0021fb37f3c26692a7906a6503cc26a0409a1a0b Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Wed, 25 Jan 2017 14:27:25 +0000
Subject: [PATCH 228/243] Set BaseAvatar_image bg colour = #fff

---
 .../vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss   | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
index d481e5c1..f23b929b 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
@@ -31,4 +31,5 @@ limitations under the License.
 .mx_BaseAvatar_image {
     border-radius: 40px;
     vertical-align: top;
+    background-color: #fff;
 }

From 0a9f02abcc527d64f2f7bbdd1d296008d4e94ca6 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Wed, 25 Jan 2017 16:51:26 +0000
Subject: [PATCH 229/243] Glue the dialog to rageshake: honour sendLogs flag.

---
 src/component-index.js                        |  60 +++++----
 .../views/dialogs/BugReportDialog.js          | 126 ++++++++++++++++++
 src/vector/rageshake.js                       |  25 ++--
 3 files changed, 171 insertions(+), 40 deletions(-)
 create mode 100644 src/components/views/dialogs/BugReportDialog.js

diff --git a/src/component-index.js b/src/component-index.js
index 3141087c..456f8176 100644
--- a/src/component-index.js
+++ b/src/component-index.js
@@ -27,60 +27,62 @@ limitations under the License.
 module.exports.components = require('matrix-react-sdk/lib/component-index').components;
 
 import structures$BottomLeftMenu from './components/structures/BottomLeftMenu';
-module.exports.components['structures.BottomLeftMenu'] = structures$BottomLeftMenu;
+structures$BottomLeftMenu && (module.exports.components['structures.BottomLeftMenu'] = structures$BottomLeftMenu);
 import structures$CompatibilityPage from './components/structures/CompatibilityPage';
-module.exports.components['structures.CompatibilityPage'] = structures$CompatibilityPage;
+structures$CompatibilityPage && (module.exports.components['structures.CompatibilityPage'] = structures$CompatibilityPage);
 import structures$LeftPanel from './components/structures/LeftPanel';
-module.exports.components['structures.LeftPanel'] = structures$LeftPanel;
+structures$LeftPanel && (module.exports.components['structures.LeftPanel'] = structures$LeftPanel);
 import structures$RightPanel from './components/structures/RightPanel';
-module.exports.components['structures.RightPanel'] = structures$RightPanel;
+structures$RightPanel && (module.exports.components['structures.RightPanel'] = structures$RightPanel);
 import structures$RoomDirectory from './components/structures/RoomDirectory';
-module.exports.components['structures.RoomDirectory'] = structures$RoomDirectory;
+structures$RoomDirectory && (module.exports.components['structures.RoomDirectory'] = structures$RoomDirectory);
 import structures$RoomSubList from './components/structures/RoomSubList';
-module.exports.components['structures.RoomSubList'] = structures$RoomSubList;
+structures$RoomSubList && (module.exports.components['structures.RoomSubList'] = structures$RoomSubList);
 import structures$SearchBox from './components/structures/SearchBox';
-module.exports.components['structures.SearchBox'] = structures$SearchBox;
+structures$SearchBox && (module.exports.components['structures.SearchBox'] = structures$SearchBox);
 import structures$ViewSource from './components/structures/ViewSource';
-module.exports.components['structures.ViewSource'] = structures$ViewSource;
+structures$ViewSource && (module.exports.components['structures.ViewSource'] = structures$ViewSource);
 import views$context_menus$MessageContextMenu from './components/views/context_menus/MessageContextMenu';
-module.exports.components['views.context_menus.MessageContextMenu'] = views$context_menus$MessageContextMenu;
+views$context_menus$MessageContextMenu && (module.exports.components['views.context_menus.MessageContextMenu'] = views$context_menus$MessageContextMenu);
 import views$context_menus$NotificationStateContextMenu from './components/views/context_menus/NotificationStateContextMenu';
-module.exports.components['views.context_menus.NotificationStateContextMenu'] = views$context_menus$NotificationStateContextMenu;
+views$context_menus$NotificationStateContextMenu && (module.exports.components['views.context_menus.NotificationStateContextMenu'] = views$context_menus$NotificationStateContextMenu);
 import views$context_menus$RoomTagContextMenu from './components/views/context_menus/RoomTagContextMenu';
-module.exports.components['views.context_menus.RoomTagContextMenu'] = views$context_menus$RoomTagContextMenu;
+views$context_menus$RoomTagContextMenu && (module.exports.components['views.context_menus.RoomTagContextMenu'] = views$context_menus$RoomTagContextMenu);
+import views$dialogs$BugReportDialog from './components/views/dialogs/BugReportDialog';
+views$dialogs$BugReportDialog && (module.exports.components['views.dialogs.BugReportDialog'] = views$dialogs$BugReportDialog);
 import views$dialogs$ChangelogDialog from './components/views/dialogs/ChangelogDialog';
-module.exports.components['views.dialogs.ChangelogDialog'] = views$dialogs$ChangelogDialog;
+views$dialogs$ChangelogDialog && (module.exports.components['views.dialogs.ChangelogDialog'] = views$dialogs$ChangelogDialog);
 import views$directory$NetworkDropdown from './components/views/directory/NetworkDropdown';
-module.exports.components['views.directory.NetworkDropdown'] = views$directory$NetworkDropdown;
+views$directory$NetworkDropdown && (module.exports.components['views.directory.NetworkDropdown'] = views$directory$NetworkDropdown);
 import views$elements$ImageView from './components/views/elements/ImageView';
-module.exports.components['views.elements.ImageView'] = views$elements$ImageView;
+views$elements$ImageView && (module.exports.components['views.elements.ImageView'] = views$elements$ImageView);
 import views$elements$Spinner from './components/views/elements/Spinner';
-module.exports.components['views.elements.Spinner'] = views$elements$Spinner;
+views$elements$Spinner && (module.exports.components['views.elements.Spinner'] = views$elements$Spinner);
 import views$globals$GuestWarningBar from './components/views/globals/GuestWarningBar';
-module.exports.components['views.globals.GuestWarningBar'] = views$globals$GuestWarningBar;
+views$globals$GuestWarningBar && (module.exports.components['views.globals.GuestWarningBar'] = views$globals$GuestWarningBar);
 import views$globals$MatrixToolbar from './components/views/globals/MatrixToolbar';
-module.exports.components['views.globals.MatrixToolbar'] = views$globals$MatrixToolbar;
+views$globals$MatrixToolbar && (module.exports.components['views.globals.MatrixToolbar'] = views$globals$MatrixToolbar);
 import views$globals$NewVersionBar from './components/views/globals/NewVersionBar';
-module.exports.components['views.globals.NewVersionBar'] = views$globals$NewVersionBar;
+views$globals$NewVersionBar && (module.exports.components['views.globals.NewVersionBar'] = views$globals$NewVersionBar);
 import views$login$VectorCustomServerDialog from './components/views/login/VectorCustomServerDialog';
-module.exports.components['views.login.VectorCustomServerDialog'] = views$login$VectorCustomServerDialog;
+views$login$VectorCustomServerDialog && (module.exports.components['views.login.VectorCustomServerDialog'] = views$login$VectorCustomServerDialog);
 import views$login$VectorLoginFooter from './components/views/login/VectorLoginFooter';
-module.exports.components['views.login.VectorLoginFooter'] = views$login$VectorLoginFooter;
+views$login$VectorLoginFooter && (module.exports.components['views.login.VectorLoginFooter'] = views$login$VectorLoginFooter);
 import views$login$VectorLoginHeader from './components/views/login/VectorLoginHeader';
-module.exports.components['views.login.VectorLoginHeader'] = views$login$VectorLoginHeader;
+views$login$VectorLoginHeader && (module.exports.components['views.login.VectorLoginHeader'] = views$login$VectorLoginHeader);
 import views$messages$DateSeparator from './components/views/messages/DateSeparator';
-module.exports.components['views.messages.DateSeparator'] = views$messages$DateSeparator;
+views$messages$DateSeparator && (module.exports.components['views.messages.DateSeparator'] = views$messages$DateSeparator);
 import views$messages$MessageTimestamp from './components/views/messages/MessageTimestamp';
-module.exports.components['views.messages.MessageTimestamp'] = views$messages$MessageTimestamp;
+views$messages$MessageTimestamp && (module.exports.components['views.messages.MessageTimestamp'] = views$messages$MessageTimestamp);
 import views$rooms$DNDRoomTile from './components/views/rooms/DNDRoomTile';
-module.exports.components['views.rooms.DNDRoomTile'] = views$rooms$DNDRoomTile;
+views$rooms$DNDRoomTile && (module.exports.components['views.rooms.DNDRoomTile'] = views$rooms$DNDRoomTile);
 import views$rooms$RoomDropTarget from './components/views/rooms/RoomDropTarget';
-module.exports.components['views.rooms.RoomDropTarget'] = views$rooms$RoomDropTarget;
+views$rooms$RoomDropTarget && (module.exports.components['views.rooms.RoomDropTarget'] = views$rooms$RoomDropTarget);
 import views$rooms$RoomTooltip from './components/views/rooms/RoomTooltip';
-module.exports.components['views.rooms.RoomTooltip'] = views$rooms$RoomTooltip;
+views$rooms$RoomTooltip && (module.exports.components['views.rooms.RoomTooltip'] = views$rooms$RoomTooltip);
 import views$rooms$SearchBar from './components/views/rooms/SearchBar';
-module.exports.components['views.rooms.SearchBar'] = views$rooms$SearchBar;
+views$rooms$SearchBar && (module.exports.components['views.rooms.SearchBar'] = views$rooms$SearchBar);
 import views$settings$IntegrationsManager from './components/views/settings/IntegrationsManager';
-module.exports.components['views.settings.IntegrationsManager'] = views$settings$IntegrationsManager;
+views$settings$IntegrationsManager && (module.exports.components['views.settings.IntegrationsManager'] = views$settings$IntegrationsManager);
 import views$settings$Notifications from './components/views/settings/Notifications';
-module.exports.components['views.settings.Notifications'] = views$settings$Notifications;
+views$settings$Notifications && (module.exports.components['views.settings.Notifications'] = views$settings$Notifications);
diff --git a/src/components/views/dialogs/BugReportDialog.js b/src/components/views/dialogs/BugReportDialog.js
new file mode 100644
index 00000000..e3c8945a
--- /dev/null
+++ b/src/components/views/dialogs/BugReportDialog.js
@@ -0,0 +1,126 @@
+/*
+Copyright 2017 OpenMarket Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import React from 'react';
+import sdk from 'matrix-react-sdk';
+import rageshake from '../../../vector/rageshake';
+
+export default class BugReportDialog extends React.Component {
+    constructor(props, context) {
+        super(props, context);
+        this.state = {
+            sendLogs: true,
+            busy: false,
+            err: null,
+            text: "",
+        };
+        this._onSubmit = this._onSubmit.bind(this);
+        this._onCancel = this._onCancel.bind(this);
+        this._onTextChange = this._onTextChange.bind(this);
+        this._onSendLogsChange = this._onSendLogsChange.bind(this);
+    }
+
+    _onCancel(ev) {
+        this.props.onFinished(false);
+    }
+
+    _onSubmit(ev) {
+        const sendLogs = this.state.sendLogs;
+        const userText = this.state.text;
+        if (!sendLogs && userText.trim().length === 0) {
+            this.setState({
+                err: "Please describe the bug and/or send logs.",
+            });
+            return;
+        }
+        this.setState({ busy: true, err: null });
+        rageshake.sendBugReport(userText, sendLogs).then(() => {
+            this.setState({ busy: false });
+        }, (err) => {
+            this.setState({ busy: false, err: `Failed: ${err.message}` });
+        });
+    }
+
+    _onTextChange(ev) {
+        this.setState({ text: ev.target.value });
+    }
+
+    _onSendLogsChange(ev) {
+        this.setState({ sendLogs: ev.target.checked });
+    }
+
+    render() {
+        const Loader = sdk.getComponent("elements.Spinner");
+
+        let error = null;
+        if (this.state.err) {
+            error = <div className="error">
+                {this.state.err}
+            </div>;
+        }
+
+        const okLabel = this.state.busy ? <Loader /> : 'Send';
+
+        let cancelButton = null;
+        if (!this.state.busy) {
+            cancelButton = <button onClick={this._onCancel}>
+                Cancel
+            </button>;
+        }
+
+        return (
+            <div className="mx_BugReportDialog">
+                <div className="mx_Dialog_title">
+                    Report a bug
+                </div>
+                <div className="mx_Dialog_content">
+                    <p>Please describe the bug. What did you do?
+                    What did you expect to happen?
+                    What actually happened?</p>
+                    <textarea
+                        className="mx_BugReportDialog_input"
+                        rows={5}
+                        onChange={this._onTextChange}
+                        value={this.state.text}
+                        placeholder="Describe your problem here."
+                    />
+                    <p>In order to diagnose problems, logs from this client will be sent with
+                    this bug report.
+                    If you would prefer to only send the text above, please untick:</p>
+                    <input type="checkbox" checked={this.state.sendLogs}
+                        onChange={this._onSendLogsChange} id="mx_BugReportDialog_logs"/>
+                    <label htmlFor="mx_BugReportDialog_logs">Send logs</label>
+                    {error}
+                </div>
+                <div className="mx_Dialog_buttons">
+                    <button
+                        className="mx_Dialog_primary danger"
+                        onClick={this._onSubmit}
+                        autoFocus={true}
+                    >
+                        {okLabel}
+                    </button>
+
+                    {cancelButton}
+                </div>
+            </div>
+        );
+    }
+}
+
+BugReportDialog.propTypes = {
+    onFinished: React.PropTypes.func.isRequired,
+};
diff --git a/src/vector/rageshake.js b/src/vector/rageshake.js
index 086ab155..61e29a31 100644
--- a/src/vector/rageshake.js
+++ b/src/vector/rageshake.js
@@ -430,9 +430,10 @@ module.exports = {
     /**
      * Send a bug report.
      * @param {string} userText Any additional user input.
+     * @param {boolean} sendLogs True to send logs
      * @return {Promise} Resolved when the bug report is sent.
      */
-    sendBugReport: async function(userText) {
+    sendBugReport: async function(userText, sendLogs) {
         if (!logger) {
             throw new Error(
                 "No console logger, did you forget to call init()?"
@@ -457,16 +458,18 @@ module.exports = {
         // sending to work going off the in-memory console logs.
         console.log("Sending bug report.");
         let logs = [];
-        if (store) {
-            // flush most recent logs
-            await store.flush();
-            logs = await store.consume();
-        }
-        else {
-            logs.push({
-                lines: logger.flush(true),
-                id: "-",
-            });
+        if (sendLogs) {
+            if (store) {
+                // flush most recent logs
+                await store.flush();
+                logs = await store.consume();
+            }
+            else {
+                logs.push({
+                    lines: logger.flush(true),
+                    id: "-",
+                });
+            }
         }
 
         await q.Promise((resolve, reject) => {

From 4e41accc563d4283e4d6375e797a82e66078c630 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Wed, 25 Jan 2017 18:52:21 +0000
Subject: [PATCH 230/243] CSS tweak for email address lookup

CSS tweak for https://github.com/matrix-org/matrix-react-sdk/pull/653
---
 .../css/matrix-react-sdk/views/elements/_AddressTile.scss       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
index 59c0b68d..0ecfb17c 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_AddressTile.scss
@@ -106,7 +106,7 @@ limitations under the License.
 }
 
 .mx_AddressTile_email.mx_AddressTile_justified {
-    width: 380px; /* name + id width */
+    width: 200px; /* same as id width */
     overflow: hidden;
     white-space: nowrap;
     text-overflow: ellipsis;

From 972a3912968752180d72bcbece3c18b8f433a476 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Thu, 26 Jan 2017 00:28:22 +0100
Subject: [PATCH 231/243] only recalculate favicon if it changes

---
 src/vector/platform/WebPlatform.js | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index 2029822b..dda22f3c 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -60,11 +60,13 @@ export default class WebPlatform extends VectorBasePlatform {
     }
 
     setNotificationCount(count: number) {
+        if (this.notificationCount === number) return;
         super.setNotificationCount(count);
         this._updateFavicon();
     }
 
     setErrorStatus(errorDidOccur: boolean) {
+        if (this.errorDidOccur === errorDidOccur) return;
         super.setErrorStatus(errorDidOccur);
         this._updateFavicon();
     }

From 9797c2fb4b8807c31847216ea04fa16341f93feb Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Thu, 26 Jan 2017 00:31:52 +0100
Subject: [PATCH 232/243] fix electron too

---
 src/vector/platform/ElectronPlatform.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index 47bfd990..18ad4a5d 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -58,6 +58,7 @@ function platformFriendlyName() {
 
 export default class ElectronPlatform extends VectorBasePlatform {
     setNotificationCount(count: number) {
+        if (this.notificationCount === number) return;
         super.setNotificationCount(count);
         // this sometimes throws because electron is made of fail:
         // https://github.com/electron/electron/issues/7351

From ba5e7d40138905d4a741a4dc9d8189dc107f2838 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Thu, 26 Jan 2017 00:54:00 +0100
Subject: [PATCH 233/243] fix event-encrypting-color in dark theme

---
 src/skins/vector/css/themes/_dark.scss | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 51930433..f00578cd 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -83,7 +83,7 @@ $roomsublist-label-bg-color: #454545;
 // ********************
 
 // event tile lifecycle
-$event-encrypting-color: #abddbc;
+$event-encrypting-color: rgba(171, 221, 188, 0.4);
 $event-sending-color: #ddd;
 $event-notsent-color: #f44;
 

From 3c91f90dc9d325bcf2c8e80fb40067f257ed90d3 Mon Sep 17 00:00:00 2001
From: David Baker <dbkr@users.noreply.github.com>
Date: Thu, 26 Jan 2017 09:47:01 +0000
Subject: [PATCH 234/243] Tweak desktop instructions (#3069)

to make it clear you need to do all the things in 'building from
source', including the build-react-sdk dance if you're building
develop.
---
 README.md | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/README.md b/README.md
index e4f04339..fd6acfd7 100644
--- a/README.md
+++ b/README.md
@@ -113,12 +113,14 @@ pre-built version from https://riot.im/desktop.html or, if you prefer,
 built it yourself.
 
 To run as a desktop app:
-```
-npm install
-npm install electron
-npm run build
-node_modules/.bin/electron .
-```
+
+1. Follow the instructions in 'Building From Source' above
+2. Install electron and run it:
+
+   ```
+   npm install electron
+   node_modules/.bin/electron .
+   ```
 
 To build packages, use electron-builder. This is configured to output:
  * dmg + zip for macOS
@@ -141,11 +143,9 @@ npm run build:electron
 
 For other packages, use electron-builder manually. For example, to build a package
 for 64 bit Linux:
-```
-npm install
-npm run build
-node_modules/.bin/build -l --x64
-```
+
+ 1. Follow the instructions in 'Building From Source' above
+ 2. `node_modules/.bin/build -l --x64`
 
 All electron packages go into `electron/dist/`
 

From baed5bec466f8a8a80ed440a8130613c7714033d Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Thu, 26 Jan 2017 10:18:24 +0000
Subject: [PATCH 235/243] Don't lint the autogenned file

---
 .eslintignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.eslintignore b/.eslintignore
index ea40ba29..fabbe104 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1 +1,2 @@
 src/vector/modernizr.js
+src/component-index.js

From f29e0bfe6d526af6643f3410fa569b8daa3c1f8e Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Thu, 26 Jan 2017 12:16:44 +0000
Subject: [PATCH 236/243] Revert "Merge pull request #3067 from
 vector-im/matthew/fix-badge-spam"

This reverts commit f9db7f017d64e6bb4021fd04bfb99162b008bd79, reversing
changes made to 71b149de760724d8329b260de222aea507b70fe8.

This caused `number is not defined`
---
 src/vector/platform/ElectronPlatform.js | 1 -
 src/vector/platform/WebPlatform.js      | 2 --
 2 files changed, 3 deletions(-)

diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index 18ad4a5d..47bfd990 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -58,7 +58,6 @@ function platformFriendlyName() {
 
 export default class ElectronPlatform extends VectorBasePlatform {
     setNotificationCount(count: number) {
-        if (this.notificationCount === number) return;
         super.setNotificationCount(count);
         // this sometimes throws because electron is made of fail:
         // https://github.com/electron/electron/issues/7351
diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index dda22f3c..2029822b 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -60,13 +60,11 @@ export default class WebPlatform extends VectorBasePlatform {
     }
 
     setNotificationCount(count: number) {
-        if (this.notificationCount === number) return;
         super.setNotificationCount(count);
         this._updateFavicon();
     }
 
     setErrorStatus(errorDidOccur: boolean) {
-        if (this.errorDidOccur === errorDidOccur) return;
         super.setErrorStatus(errorDidOccur);
         this._updateFavicon();
     }

From 7850f7e505d450fce42c13d3673d719ad93e6692 Mon Sep 17 00:00:00 2001
From: David Baker <dbkr@users.noreply.github.com>
Date: Thu, 26 Jan 2017 12:58:29 +0000
Subject: [PATCH 237/243] Fix badge spam: attempt 2 (#3073)

---
 src/vector/platform/ElectronPlatform.js | 1 +
 src/vector/platform/WebPlatform.js      | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js
index 47bfd990..c10f2f83 100644
--- a/src/vector/platform/ElectronPlatform.js
+++ b/src/vector/platform/ElectronPlatform.js
@@ -58,6 +58,7 @@ function platformFriendlyName() {
 
 export default class ElectronPlatform extends VectorBasePlatform {
     setNotificationCount(count: number) {
+        if (this.notificationCount === count) return;
         super.setNotificationCount(count);
         // this sometimes throws because electron is made of fail:
         // https://github.com/electron/electron/issues/7351
diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index 2029822b..bf417513 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -60,11 +60,13 @@ export default class WebPlatform extends VectorBasePlatform {
     }
 
     setNotificationCount(count: number) {
+        if (this.notificationCount === count) return;
         super.setNotificationCount(count);
         this._updateFavicon();
     }
 
     setErrorStatus(errorDidOccur: boolean) {
+        if (this.errorDidOccur === errorDidOccur) return;
         super.setErrorStatus(errorDidOccur);
         this._updateFavicon();
     }

From b16fa4171acd7ae61f861e94bd634fc723d60f79 Mon Sep 17 00:00:00 2001
From: Kegan Dougal <kegan@matrix.org>
Date: Thu, 26 Jan 2017 13:42:26 +0000
Subject: [PATCH 238/243] Close the dialog box after sending bugs

---
 src/components/views/dialogs/BugReportDialog.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/components/views/dialogs/BugReportDialog.js b/src/components/views/dialogs/BugReportDialog.js
index e3c8945a..dcc0850e 100644
--- a/src/components/views/dialogs/BugReportDialog.js
+++ b/src/components/views/dialogs/BugReportDialog.js
@@ -49,6 +49,7 @@ export default class BugReportDialog extends React.Component {
         this.setState({ busy: true, err: null });
         rageshake.sendBugReport(userText, sendLogs).then(() => {
             this.setState({ busy: false });
+            this.props.onFinished(false);
         }, (err) => {
             this.setState({ busy: false, err: `Failed: ${err.message}` });
         });

From 5aa9592c71aef071bfbc2025a3fd113710edebc7 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Fri, 27 Jan 2017 16:02:33 +0000
Subject: [PATCH 239/243] Add CSS for a support box in login

This box can be used to provide useful hints during registration/login.
---
 .../css/matrix-react-sdk/structures/login/_Login.scss      | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 30231b43..0b73d7e5 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -44,6 +44,13 @@ limitations under the License.
     text-align: center;
 }
 
+.mx_Login_support {
+    text-align: center;
+    font-size: 13px;
+    margin-top: 0px;
+    opacity: 0.7;
+}
+
 .mx_Login_field {
     width: 100%;
     border-radius: 3px;

From 029602fc738085d1772607e702f06abd3b21c69a Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Fri, 27 Jan 2017 16:04:24 +0000
Subject: [PATCH 240/243] Fix the width of input fields within login/reg box

This is so they do not expand outside of the login area. (280px = 300px - 2px - 18px, 2px for borders, 18px for padding)
---
 .../vector/css/matrix-react-sdk/structures/login/_Login.scss    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 30231b43..888f979d 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -45,7 +45,7 @@ limitations under the License.
 }
 
 .mx_Login_field {
-    width: 100%;
+    width: 280px;
     border-radius: 3px;
     border: 1px solid $strong-input-border-color;
     font-weight: 300;

From 02d6a10f67818be7919a4237fb48f0d1d771a269 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Fri, 27 Jan 2017 16:08:14 +0000
Subject: [PATCH 241/243] Allow a custom login logo to be displayed on login

This is to allow team logos to be shown when a user registers with a team email.
---
 src/components/views/login/VectorLoginHeader.js | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/components/views/login/VectorLoginHeader.js b/src/components/views/login/VectorLoginHeader.js
index 32867230..b08c4fa6 100644
--- a/src/components/views/login/VectorLoginHeader.js
+++ b/src/components/views/login/VectorLoginHeader.js
@@ -23,11 +23,14 @@ module.exports = React.createClass({
     statics: {
         replaces: 'LoginHeader',
     },
+    propTypes: {
+        icon: React.PropTypes.string,
+    },
 
     render: function() {
         return (
             <div className="mx_Login_logo">
-                <img src="img/logo.png" width="195" height="195" alt="Riot"/>
+                <img src={this.props.icon || "img/logo.png"} width="195" height="195" alt="Riot"/>
             </div>
         );
     }

From 87db89b67a21a77c2535dc971022d77645cd4581 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Fri, 27 Jan 2017 16:30:44 +0000
Subject: [PATCH 242/243] Replace inline styles for logos with css

Also, give .mx_Login_logo a height so that if the image has not loaded yet, it will not change height (thanks @dbkr)
---
 src/components/views/login/VectorLoginHeader.js              | 2 +-
 .../vector/css/matrix-react-sdk/structures/login/_Login.scss | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/components/views/login/VectorLoginHeader.js b/src/components/views/login/VectorLoginHeader.js
index b08c4fa6..daa2b09c 100644
--- a/src/components/views/login/VectorLoginHeader.js
+++ b/src/components/views/login/VectorLoginHeader.js
@@ -30,7 +30,7 @@ module.exports = React.createClass({
     render: function() {
         return (
             <div className="mx_Login_logo">
-                <img src={this.props.icon || "img/logo.png"} width="195" height="195" alt="Riot"/>
+                <img src={this.props.icon || "img/logo.png"} alt="Riot"/>
             </div>
         );
     }
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 30231b43..ca861c07 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -42,6 +42,11 @@ limitations under the License.
 
 .mx_Login_logo {
     text-align: center;
+    height: 195px;
+}
+
+.mx_Login_logo img {
+    height: 100%
 }
 
 .mx_Login_field {

From 6369d76a748fa919c9d26b30aa7d08e5e2519867 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Fri, 27 Jan 2017 18:18:14 +0100
Subject: [PATCH 243/243] poor man's dark theme for MD codeblocks

---
 src/skins/vector/css/themes/_dark.scss | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index f00578cd..cf6d6eff 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -115,3 +115,12 @@ $progressbar-color: #000;
 .gm-scrollbar .thumb {
     filter: invert();
 }
+
+.mx_EventTile_content .markdown-body pre,
+.mx_EventTile_content .markdown-body code {
+    filter: invert();
+}
+
+.mx_EventTile_content .markdown-body pre code {
+    filter: none;
+}
\ No newline at end of file