Merge pull request #3 from AliasIO/master

Update #3
main
Daniel Zdziebko 8 years ago committed by GitHub
commit f7266b00df

16
.gitignore vendored

@ -1,16 +1,14 @@
.vagrant /build/*
/src/icons/converted/*
build/* /node_modules
src/icons/converted/* /npm-debug.log
node_modules
npm-debug.log
tags
!.gitkeep !.gitkeep
# Junk files
Thumbs.db Thumbs.db
Desktop.ini Desktop.ini
*.DS_Store *.DS_Store
._* ._*
tags
tags.*

@ -1,17 +1,15 @@
language: node_js sudo: required
node_js:
- "node" services:
sudo: false - docker
dist: trusty
before_install:
- export WAPPALYZER_ROOT=$TRAVIS_BUILD_DIR
- export WAPPALYZER_NODE_PATH=$TRAVIS_BUILD_DIR
- export PATH=$PATH:$TRAVIS_BUILD_DIR/bin
- ln -s docker/node/package.json package.json
before_script: npm i -g manifoldjs
after_success: after_success:
- sha256sum build/* > build/SHA256SUMS - sha256sum build/* > build/SHA256SUMS
- cat build/SHA256SUMS - cat build/SHA256SUMS
script:
- ./run build
deploy: deploy:
provider: releases provider: releases
api_key: api_key:
@ -22,9 +20,6 @@ deploy:
on: on:
repo: AliasIO/Wappalyzer repo: AliasIO/Wappalyzer
tags: true tags: true
after_script: ls -l --block-size=kB build
cache:
directories:
- node_modules
env: env:
- CXX=g++-4.8 - CXX=g++-4.8

@ -1,3 +0,0 @@
# Contributing
You can find our contribution guide [in our wiki](https://github.com/AliasIO/Wappalyzer/wiki/Contributing).

@ -0,0 +1,32 @@
FROM alpine
MAINTAINER Elbert Alias <elbert@alias.io>
ENV WAPPALYZER_DIR=/opt/wappalyzer
RUN apk add --no-cache \
bash \
curl \
fontconfig \
nodejs \
optipng \
zip
RUN mkdir -p /usr/share && \
cd /usr/share \
&& curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 | tar xj \
&& ln -s /usr/share/phantomjs/phantomjs /usr/bin/phantomjs
RUN apk del \
curl
RUN npm i -g \
jsonlint-cli \
manifoldjs \
svg2png-many
RUN mkdir -p $WAPPALYZER_DIR
WORKDIR $WAPPALYZER_DIR
CMD [ "./bin/run" ]

@ -20,28 +20,16 @@ Refer to the [wiki](https://github.com/AliasIO/Wappalyzer/wiki) for
## Getting Started ## Getting Started
This section describes how to set up a development environment. Everything you Install [Docker](https://www.docker.com/) on your system first.
need is contained in a [Docker image](https://registry.hub.docker.com/u/wappalyzer/dev/)
which is managed by Vagrant.
Running this environment is optional but recommended as it provides some helpful tools.
First, install [Docker](https://www.docker.com/) and [Vagrant](https://www.vagrantup.com/)
on your system.
Clone the Wappalyzer repository and open the newly created directory in a
terminal. Run `vagrant up` to start the environment.
Run `vagrant ssh` to access the environment and read usage instructions.
```shell ```shell
$ git clone https://github.com/AliasIO/Wappalyzer.git wappalyzer $ git clone https://github.com/AliasIO/Wappalyzer.git
$ cd wappalyzer $ cd Wappalyzer
$ vagrant up $ ./run links
$ vagrant ssh
``` ```
To stop the environment, run `vagrant halt`. The `links` command creates symlinks for files that shared between the various
drivers (i.e. different platforms). If your file system does not support
symlinks, you need to manually copy these files (see [`bin/links`](https://github.com/AliasIO/Wappalyzer/blob/master/bin/links)).
If a new Docker image becomes available, rebuild the environment with Please run `./run validate` before submitting a pull request.
`vagrant destroy -y && vagrant up`.

20
Vagrantfile vendored

@ -1,20 +0,0 @@
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'docker'
SYNCED_FOLDER = "/home/wappalyzer/synced"
Vagrant.configure("2") do |config|
config.vm.synced_folder ".", SYNCED_FOLDER
config.vm.provider "docker" do |d|
d.image = "wappalyzer/dev"
d.has_ssh = true
d.remains_running = true
end
config.ssh.port = "22"
config.ssh.username = "wappalyzer"
config.ssh.private_key_path = "docker/ssh/insecure.key"
config.vm.provision "shell", inline: "su - wappalyzer -c 'wappalyzer links'"
config.vm.provision "shell", inline: "echo Finished. Run \\`vagrant ssh\\` to access the environment."
end

@ -0,0 +1,77 @@
#!/bin/bash
cd "$(dirname $0)/.."
set -eu
./bin/validate
echo "Prettifying apps.json..."
jsonlint-cli -ist $'\t' src/apps.json
echo "Converting SVG icons to PNG..."
#svg2png-many -i src/icons/ -o src/icons/converted/ --width=32 --height=32
echo "Compressing PNG icons..."
set +e
optipng -quiet "src/icons/*.png"
optipng -quiet "src/icons/converted/*.png"
set -e
# WebExtension
echo "Building WebExtension..."
webextension_dir=src/drivers/webextension
pushd $webextension_dir > /dev/null
zip -qr ../../../build/wappalyzer_webextension.zip .
popd > /dev/null
# Edge
echo "Building Edge application..."
pushd build > /dev/null
webextension_dir="../$webextension_dir"
manifest_dir="Wappalyzer/edgeextension/manifest"
mv $webextension_dir/manifest.json $webextension_dir/manifest.webextension.json
mv $webextension_dir/manifest.edge.json $webextension_dir/manifest.json
manifoldjs -l debug -p edgeextension -f edgeextension -m $webextension_dir/manifest.json
# Replace symlinks with actual files
rm $manifest_dir/Extension/images/icons
cp ../src/apps.json $manifest_dir/Extension
cp ../src/wappalyzer.js $manifest_dir/Extension/js
cp -r ../src/icons $manifest_dir/Extension/images
mv $webextension_dir/manifest.json $webextension_dir/manifest.edge.json
mv $webextension_dir/manifest.webextension.json $webextension_dir/manifest.json
sed -i 's/INSERT-YOUR-PACKAGE-IDENTITY-NAME-HERE/1591Wappalyzer.Wappalyzer/' $manifest_dir/appxmanifest.xml
sed -i 's/INSERT-YOUR-PACKAGE-IDENTITY-PUBLISHER-HERE/D240C22F-A6C1-45DF-BF7B-4C835064DF51/' $manifest_dir/appxmanifest.xml
sed -i 's/INSERT-YOUR-PACKAGE-PROPERTIES-PUBLISHERDISPLAYNAME-HERE/Wappalyzer/' $manifest_dir/appxmanifest.xml
sed -i 's/Version="0.\([^"]\+\)/Version="\1.0/' $manifest_dir/appxmanifest.xml
cp $webextension_dir/images/icon_44.png $manifest_dir/Assets/Square44x44Logo.png
cp $webextension_dir/images/icon_150.png $manifest_dir/Assets/Square150x150Logo.png
cp $webextension_dir/images/icon_50.png $manifest_dir/Assets/StoreLogo.png
manifoldjs -l debug -p edgeextension package $manifest_dir
mv Wappalyzer/edgeextension/package/edgeExtension.appx wappalyzer_edge.appx
rm -rf Wappalyzer
popd > /dev/null
echo "Done."

@ -1,11 +1,11 @@
#!/bin/bash #!/bin/bash
cat << 'EOF' cat << 'EOF'
usage: wappalyzer <command> [<args>] usage: ./run <command> [<args>]
The following commands are available: The following commands are available:
build Package drivers build Package drivers
help This help text help This help text
links Create hard links to shared files in each driver links Create symlinks to shared files in each driver
validate Validate apps.json validate Validate apps.json
EOF EOF

@ -0,0 +1,14 @@
#!/bin/bash
cd "$(dirname $0)/../src"
echo "Creating links..."
ln -nsf ../../apps.json drivers/npm
ln -nsf ../../wappalyzer.js drivers/npm
ln -nsf ../../apps.json drivers/webextension
ln -nsf ../../../wappalyzer.js drivers/webextension/js
ln -nsf ../../../icons/ drivers/webextension/images/icons
echo "Done."

@ -0,0 +1,11 @@
#!/bin/bash
cd "$(dirname $0)"
if [[ -f "$1" ]]; then
./$1 $@
else
./help
exit 1
fi

@ -0,0 +1,17 @@
#!/bin/bash
cd "$(dirname $0)/.."
set -eu
echo "Validating apps.json..."
jsonlint-cli -s schema.json src/apps.json
echo "Validating regular expressions..."
./bin/validate-regex
echo "Validating icons..."
./bin/validate-icons

@ -0,0 +1,43 @@
#!/usr/bin/env node
var
app,
fs = require('fs'),
fileType = require('../node_modules/file-type'),
readChunk = require('../node_modules/read-chunk')
isSvg = require('../node_modules/is-svg')
json = require('../src/apps.json');
for (app in json.apps) {
(function(app) {
var
basePath = 'src/icons/';
iconPath = json.apps[app].icon || 'default.svg';
path = basePath + iconPath,
ext = iconPath.substr(iconPath.length - 4);
if ( ext !== '.png' && ext !== '.svg' ) {
throw err = new Error('Icon file extension specified for app "' + app + '" is not ".png" or ".svg": src/icons/' + iconPath);
}
fs.exists(path, function(exists) {
if ( exists ) {
if ( ext === '.png' ) {
var buffer = fileType(readChunk.sync(path, 0, 262));
if ( buffer === null ) {
throw new Error('Unknown mimetype or bad file for "' + app + '": src/icons/' + iconPath);
} else if ( buffer.mime !== 'image/png' ) {
throw new Error('Incorrect mimetype "' + buffer.mime + '" when expected PNG for app "' + app + '": src/icons/' + iconPath);
}
} else if ( type === 'svg' ) {
if ( !isSvg(fs.readFileSync(path)) ) {
throw new Error('Incorrect mimetype when expected SVG for app "' + app + '": src/icons/' + iconPath);
}
}
} else {
throw Error('Missing file for app "' + app + '": src/icons/' + iconPath);
}
});
}(app));
}

@ -2,8 +2,7 @@
var var
app, app,
modulesPath = process.env.WAPPALYZER_NODE_PATH !== undefined ? process.env.WAPPALYZER_NODE_PATH + '/node_modules/' : '', json = require('../src/apps.json');
json = require(process.env.WAPPALYZER_ROOT + '/src/apps.json');
for ( app in json.apps ) { for ( app in json.apps ) {
['headers', 'html', 'env', 'meta', 'script'].forEach(function(type) { ['headers', 'html', 'env', 'meta', 'script'].forEach(function(type) {

@ -1,12 +0,0 @@
#!/bin/bash
if [ -f "$0-$1" ]
then
$0-$1 ${*:2}
else
$0-help
exit 1
fi
exit

@ -1,97 +0,0 @@
#!/bin/bash
if [ -z $WAPPALYZER_ROOT ]
then
echo "\$WAPPALYZER_ROOT not set"
exit 1
fi
if [ -z $WAPPALYZER_NODE_PATH ]
then
echo "\$WAPPALYZER_NODE_PATH not set"
exit 1
fi
set -eu
wappalyzer validate
echo "Prettifying apps.json..."
node $WAPPALYZER_NODE_PATH/node_modules/jsonlint/lib/cli.js -ist $'\t' $WAPPALYZER_ROOT/src/apps.json
echo "Compressing PNG and SVG icons..."
node $WAPPALYZER_NODE_PATH/node_modules/imagemin-cli/cli.js $WAPPALYZER_ROOT/src/icons/* --out-dir $WAPPALYZER_ROOT/src/icons 2>&1 > /dev/null
echo "Converting SVG icons to PNG..."
OIFS="$IFS"
IFS=$'\n'
for svg in $(find $WAPPALYZER_ROOT/src/icons -type f -name "*.svg")
do
echo " Converting $(basename "$svg")..."
dest="$WAPPALYZER_ROOT/src/icons/converted/$(basename "$svg").png"
if [[ -f "$dest" ]]; then
rm "$dest"
fi
node $WAPPALYZER_NODE_PATH/node_modules/svg2png/bin/svg2png-cli "$svg" --width=32 --height=32 --output "$dest" || true
done
IFS="$OIFS"
echo "Compressing converted PNG icons..."
node $WAPPALYZER_NODE_PATH/node_modules/imagemin-cli/cli.js $WAPPALYZER_ROOT/src/icons/converted/* $WAPPALYZER_ROOT/src/icons/converted
wappalyzer links
# WebExtension
echo "Building WebExtension driver..."
webextension_dir=$WAPPALYZER_ROOT/src/drivers/webextension
pushd $webextension_dir > /dev/null
zip -qr $WAPPALYZER_ROOT/build/wappalyzer_webextension.zip .
popd > /dev/null
# Edge
pushd $WAPPALYZER_ROOT/build > /dev/null
mv $webextension_dir/manifest.json $webextension_dir/manifest.webextension.json
mv $webextension_dir/manifest.edge.json $webextension_dir/manifest.json
manifoldjs -l debug -p edgeextension -f edgeextension -m $webextension_dir/manifest.json
mv $webextension_dir/manifest.json $webextension_dir/manifest.edge.json
mv $webextension_dir/manifest.webextension.json $webextension_dir/manifest.json
manifest_dir="Wappalyzer/edgeextension/manifest"
sed -i 's/INSERT-YOUR-PACKAGE-IDENTITY-NAME-HERE/Wappalyzer/' $manifest_dir/appxmanifest.xml
sed -i 's/INSERT-YOUR-PACKAGE-IDENTITY-PUBLISHER-HERE/Wappalyzer/' $manifest_dir/appxmanifest.xml
sed -i 's/INSERT-YOUR-PACKAGE-PROPERTIES-PUBLISHERDISPLAYNAME-HERE/Wappalyzer/' $manifest_dir/appxmanifest.xml
sed -i 's/Version="0.\([^"]\+\)/Version="\1.0/' $manifest_dir/appxmanifest.xml
cp $webextension_dir/images/icon_44.png $manifest_dir/Assets/Square44x44Logo.png
cp $webextension_dir/images/icon_150.png $manifest_dir/Assets/Square150x150Logo.png
cp $webextension_dir/images/icon_50.png $manifest_dir/Assets/StoreLogo.png
manifoldjs -l debug -p edgeextension package $manifest_dir
mv Wappalyzer/edgeextension/package/edgeExtension.appx wappalyzer_edge.appx
rm -rf Wappalyzer
popd > /dev/null
echo "Done. Builds have been created in $WAPPALYZER_ROOT/build."

@ -1,45 +0,0 @@
#!/bin/bash
path=$1
if [ -z $path ]
then
if [ -z $WAPPALYZER_ROOT ]
then
echo "-$(basename $0): No path specified"
exit 1
fi
path=$WAPPALYZER_ROOT
fi
set -eu
if [ ! -d $path/src ]
then
echo "-$(basename $0): Incorrect path"
exit 1
fi
path="$path/src"
echo "Creating hard links..."
ln -f $path/wappalyzer.js $path/drivers/phantomjs
ln -f $path/apps.json $path/drivers/phantomjs
ln -f $path/wappalyzer.js $path/drivers/webextension/js
ln -f $path/apps.json $path/drivers/webextension
ln -f $path/icons/*.png $path/drivers/webextension/images/icons
ln -f $path/icons/*.svg $path/drivers/webextension/images/icons
ln -f $path/utils/*.js $path/drivers/webextension/js
if [ "$(compgen -G "$path/icons/converted/*.png" | head -n1)" ]; then
ln -f $path/icons/converted/*.png $path/drivers/webextension/images/icons/converted
fi
echo "OK"
exit 0

@ -1,35 +0,0 @@
#!/bin/bash
path="$1"
if [ -z "$path" ]; then
if [ -z "$WAPPALYZER_ROOT" ]; then
echo "-$(basename $0): No path specified"
exit 1
fi
path="$WAPPALYZER_ROOT"
fi
set -eu
if [ ! -d "$path/src" ]; then
echo "-$(basename $0): Incorrect path"
exit 1
fi
path="$path/src"
echo "Validating apps.json..."
node "$WAPPALYZER_NODE_PATH/node_modules/jsonlint/lib/cli.js" --quiet -V "$WAPPALYZER_ROOT/schema.json" "$path/apps.json"
echo "Validating regular expressions..."
wappalyzer validate-regex
echo "Validating icons..."
wappalyzer validate-icons

@ -1,55 +0,0 @@
#!/usr/bin/env node
var
app,
modulesPath = process.env.WAPPALYZER_NODE_PATH !== undefined ? process.env.WAPPALYZER_NODE_PATH + '/node_modules/' : '',
fs = require('fs'),
fileType = require(modulesPath + 'file-type'),
readChunk = require(modulesPath + 'read-chunk')
isSvg = require(modulesPath + 'is-svg')
json = require(process.env.WAPPALYZER_ROOT + '/src/apps.json');
for (app in json.apps) {
(function(app) {
var basePath = process.env.WAPPALYZER_ROOT + '/src/icons/';
var iconPath = json.apps[app].icon || 'default.svg';
var path = basePath + iconPath;
var type;
if (path.substr(path.length - 4) === '.png') {
type = "PNG";
}
else if (path.substr(path.length - 4) === '.svg') {
type = "SVG";
}
else {
var err = new Error('Icon file extension specified for app "' + app + '" is not ".png" or ".svg": src/icons/' + iconPath);
throw err;
}
fs.exists(path, function(exists) {
if (exists) {
if (type === "PNG") {
var buffer = fileType(readChunk.sync(path, 0, 262));
if (buffer === null) {
var err = new Error('Unknown mimetype or bad file for "' + app + '": src/icons/' + iconPath);
throw err;
}
else if (buffer.mime !== 'image/png') {
var err = new Error('Incorrect mimetype "' + buffer.mime + '" when expected PNG for app "' + app + '": src/icons/' + iconPath);
throw err;
}
}
else if (type === "SVG") {
if (!isSvg(fs.readFileSync(path))) {
var err = new Error('Incorrect mimetype when expected SVG for app "' + app + '": src/icons/' + iconPath);
throw err;
}
}
} else {
var err = new Error('Missing file for app "' + app + '": src/icons/' + iconPath);
throw err;
}
});
}(app));
};

@ -1,72 +0,0 @@
FROM phusion/baseimage
MAINTAINER Elbert Alias <elbert@alias.io>
ENV DEBIAN_FRONTEND noninteractive
ENV WAPPALYZER_ROOT /home/wappalyzer/synced
ENV WAPPALYZER_NODE_PATH /home/wappalyzer/node
# Install packages
RUN sed -i 's/^deb-src\ /\#deb-src\ /g' /etc/apt/sources.list
RUN sed -i 's/archive\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list
RUN sed -i 's/security\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && \
apt-get install -y \
nodejs \
bzip2 \
zip \
libfreetype6 \
libfontconfig \
rsync && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Add user
RUN useradd -ms /bin/bash wappalyzer && usermod -a -G docker_env wappalyzer && echo "wappalyzer:wappalyzer" | chpasswd
RUN echo 'wappalyzer ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
WORKDIR /home/wappalyzer
RUN su wappalyzer -c "mkdir bin synced"
RUN su wappalyzer -c "echo \"export PATH=\$PATH:/home/wappalyzer/bin:\\$WAPPALYZER_ROOT/bin\" | cat - .profile > /tmp/profile && mv /tmp/profile .profile"
RUN echo "cd \$WAPPALYZER_ROOT" >> .bashrc
RUN echo "wappalyzer" >> .bashrc
# PhantomJS
# RUN su wappalyzer -c "\
# mkdir phantomjs && \
# curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 | tar xvjC phantomjs && \
# ln -s /home/wappalyzer/phantomjs/phantomjs-*-linux-x86_64/bin/phantomjs /usr/bin/phantomjs"
# Node JS
RUN su wappalyzer -c "mkdir $WAPPALYZER_NODE_PATH"
ADD node/package.json $WAPPALYZER_NODE_PATH/package.json
RUN su wappalyzer -c "cd $WAPPALYZER_NODE_PATH && npm i"
RUN npm i -g manifoldjs
# SSH
RUN rm -f /etc/service/sshd/down
RUN su wappalyzer -c "mkdir .ssh && chmod 700 .ssh"
ADD ssh/insecure.key.pub /tmp/insecure.key.pub
RUN su wappalyzer -c "cat /tmp/insecure.key.pub >> .ssh/authorized_keys && chmod 600 .ssh/authorized_keys" && rm -f /tmp/insecure.key.pub
# Fix the `stdin: is not a tty` error in Vagrant
RUN sed -i 's/^mesg n$/tty -s \&\& mesg n/g' /root/.profile
EXPOSE 22
RUN echo "/usr/sbin/sshd -D" > /etc/my_init.d/sshd.sh
CMD ["/sbin/my_init"]

@ -1,27 +0,0 @@
{
"name": "wappalyzer-test",
"private": true,
"license": "GPLv3",
"bugs": {
"url": "https://github.com/AliasIO/Wappalyzer/issues"
},
"homepage": "https://github.com/AliasIO/Wappalyzer",
"description": "Build test for Wappalyzer",
"repository": "AliasIO/Wappalyzer",
"scripts": {
"test": "./bin/wappalyzer build"
},
"devDependencies": {
"file-type": "3.8.*",
"is-svg": "2.0.*",
"read-chunk": "2.0.*",
"jsonlint": "*",
"jpm": "*",
"imagemin-cli": "2.*.*",
"phantomjs-prebuilt": "*",
"svg2png": "3.*.*"
},
"engines": {
"node": ">= 4"
}
}

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAqVo54bv3J4K62IDCUIVY7gF2iBOR8fub5c9t6j4MbsRQDmU0
yxhN1+7fMCERcoMSelAb/SYSzKE8azLugP7hsq4t+/xJijCB22uriFhKMpu4ySoA
6PVNbfbIptaVo6holVIMRKPXTg1hU6lr2DWMKB5AlGmz7ZHmQgX9iBoV8PmMYOF5
UpiwfokcNnIwDiCCpd19G/lT6FlCVZHZdeZh41FWke8oQgWevM8fdGJkZ+a7Lgdm
6A3WlvI0AIz9KWfXlXAOvthi4QlB4SvSCwRQbKdHbW5UBRShucjlce3hZO9Q6ROC
Ta1zgvscleKd63yHSQ18Z2+j1t5T3HJzhOn1ywIDAQABAoIBAFdbcWwd15oL93Hi
yVlbz8nF+2yqG6ilT3+2Bk7EfwlMPreOQTNacB0o3PwosqVNM2Tgme91ilEAAviR
JzJnR+kxrArF0vFzoCidW7hTQsLkTOeHwTxp/OzyVgKpwjrPjlMoJafqlA9xG3la
dYTr6kZvhISKGgQ8NHhuOp/QRO0uFaQD8l0kVCEufgqbs6gBY7aAkNf2iogSms9w
139zwsXeSg2Vm7Img1PVrRsRM5qbTNBMIim+9q4fSrqP+rYF9lU1p68IzmG/wY2o
0ElwRoatVVV9Rvk00a1qBGNaT39oVEtryIiAlXPno+KW5dyVx53o9vjWHDz44yBN
G8/EgEECgYEA3UJtj5ikEdhquzy1WfbZwZVmTCJLMefiVui00RLV4Q/r/4Uojdsb
L/QCAplpbHUrj7O8Lp9CuXSnUNa4CkrTidj2wkDWDFl1EBLJNz1zhJjs6Aaw2u1t
SV6ULgx9Y25oiStygkJhon+wlNF9HRSCFeNkBNNjpkD2gEifxnHIDLsCgYEAw/Fi
OHFvVPx0/DS3FD/MEJAAZaGdg8Zb2TCmCIVjoj0tZOTDvwKIEYCQ41vADDLlCSGg
XOgNXvosSZtezmJxnkzO3NYXE4XZ7bPVMamuqbKXXzaee3tPmiFaeZfiB4tj7uxh
tWQdUicSMQ8WPqyTB5wmcF7k3L4TzrjSLOi5MjECgYEAnsLYfI3pREjGpN01v3zp
2QbLZVvCGugpN3U4sUBTqW9URn+Ujt0mD+2FN7o+tC0K+czc/ZMXPJ1gpRe87N2u
Fh5RSSder3PNFKB2MyXr6rwUWZTbd+ufXGL57mTV3+/MIIjFXIQnLIN1AAOlQ6WA
hhYooXHQ8e1xMrFpu+nOwpsCgYAanYEf9ZiPzLL/RxHPOFM5tLW5GFjS+3Cicc87
vRKpiPHPkJteKLPe3L3RhDbz8T3XHbAwrnySeBzn6qjYE9snC3vV12bPChFuDk1Z
L5lAB7g0ALFKSJepcfpeJdlX+QEcBRPIlc69x/zamRgGb16RXA6EmP8xVMhP/h7e
ZsYxIQKBgBqOaZNHwaG6PqP2HCjc1keH4wQVx9eTV5y4/B5FJbMeK05vV2rBHoxA
P/dXE85olj8D/9E88xJ1V716kBeONcKFdbd3VfY5bo2VBz+piOaG3EBQOLIbd4/C
KVtgOWqI7WTLPIgpXlG5MA801RwhVyk1phmwhvW/Kb3lWsK1vkOe
-----END RSA PRIVATE KEY-----

@ -1 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpWjnhu/cngrrYgMJQhVjuAXaIE5Hx+5vlz23qPgxuxFAOZTTLGE3X7t8wIRFygxJ6UBv9JhLMoTxrMu6A/uGyri37/EmKMIHba6uIWEoym7jJKgDo9U1t9sim1pWjqGiVUgxEo9dODWFTqWvYNYwoHkCUabPtkeZCBf2IGhXw+Yxg4XlSmLB+iRw2cjAOIIKl3X0b+VPoWUJVkdl15mHjUVaR7yhCBZ68zx90YmRn5rsuB2boDdaW8jQAjP0pZ9eVcA6+2GLhCUHhK9ILBFBsp0dtblQFFKG5yOVx7eFk71DpE4JNrXOC+xyV4p3rfIdJDXxnb6PW3lPccnOE6fXL elbert@home

@ -0,0 +1,9 @@
{
"dependencies": {
"file-type": "3.8.*",
"is-svg": "2.0.*",
"read-chunk": "2.0.*",
"svg2png-many": "*"
}
}

19
run

@ -0,0 +1,19 @@
#!/bin/bash
cd "$(dirname $0)"
if [[ -z "$(which docker)" ]]; then
echo "Please install Docker from https://www.docker.com"
exit 1
fi
docker="docker run --rm -v "$(pwd):/opt/wappalyzer" -it wappalyzer/dev"
if [[ ! -d "node_modules" ]]; then
$docker ./bin/run links
$docker npm i
fi
$docker ./bin/run $@

@ -161,6 +161,21 @@
"icon": "ActOn.png", "icon": "ActOn.png",
"website": "http://act-on.com" "website": "http://act-on.com"
}, },
"Prebid": {
"cats": [
"36"
],
"icon": "Prebid.png",
"env": [
"pbjs",
"PREBID_TIMEOUT"
],
"script": [
"/prebid\\.js",
"adnxs\\.com/[^\"]*(?:prebid|/pb\\.js)"
],
"website": "http://prebid.org"
},
"AdInfinity": { "AdInfinity": {
"cats": [ "cats": [
"36" "36"
@ -813,6 +828,14 @@
}, },
"website": "http://bigace.de" "website": "http://bigace.de"
}, },
"Bablic": {
"cats": [
"3","9"
],
"website":"https://www.bablic.com/",
"env":"^bablic$",
"icon":"bablic.png"
},
"Backbone.js": { "Backbone.js": {
"cats": [ "cats": [
"12" "12"
@ -927,7 +950,7 @@
], ],
"icon": "Blogger.png", "icon": "Blogger.png",
"meta": { "meta": {
"generator": "blogger" "generator": "^Blogger$"
}, },
"url": "\\.blogspot\\.com", "url": "\\.blogspot\\.com",
"website": "http://www.blogger.com" "website": "http://www.blogger.com"
@ -1401,8 +1424,11 @@
"Python", "Python",
"Solr", "Solr",
"Java", "Java",
"PostgreSQL\\;confidence:80" "PostgreSQL"
], ],
"meta": {
"generator": ".*ckan.*"
},
"website": "http://ckan.org/" "website": "http://ckan.org/"
}, },
"ClickHeat": { "ClickHeat": {
@ -1686,7 +1712,7 @@
}, },
"icon": "Craft CMS.png", "icon": "Craft CMS.png",
"implies": "Yii", "implies": "Yii",
"website": "http://buildwithcraft.com" "website": "https://craftcms.com"
}, },
"Crazy Egg": { "Crazy Egg": {
"cats": [ "cats": [
@ -1910,18 +1936,6 @@
"icon": "Dell.png", "icon": "Dell.png",
"website": "http://dell.com" "website": "http://dell.com"
}, },
"Salesforce Commerce Cloud": {
"cats": [
"6"
],
"env": "^dwAnalytics$",
"headers": {
"Server": "Demandware eCommerce Server"
},
"html": "<[^>]+demandware\\.edgesuite",
"icon": "Salesforce.svg",
"website": "http://demandware.com"
},
"Deployd": { "Deployd": {
"cats": [ "cats": [
"12" "12"
@ -3142,19 +3156,6 @@
}, },
"website": "http://developers.google.com/web-toolkit" "website": "http://developers.google.com/web-toolkit"
}, },
"govCMS": {
"cats": [
"1"
],
"meta": {
"generator": "Drupal ([\\d]+) \\(http:\\/\\/drupal\\.org\\) \\+ govCMS\\;version:\\1"
},
"icon": "govCMS.svg",
"implies": [
"Drupal"
],
"website": "https://www.govcms.gov.au"
},
"Graffiti CMS": { "Graffiti CMS": {
"cats": [ "cats": [
"1" "1"
@ -3377,6 +3378,15 @@
"implies": "OmniTouch 8660 My Teamwork", "implies": "OmniTouch 8660 My Teamwork",
"website": "http://example.com" "website": "http://example.com"
}, },
"Haravan": {
"cats": [
"6"
],
"env": "^Haravan$",
"icon": "Haravan.png",
"script": "haravan.*\\.js",
"website": "https://www.haravan.com"
},
"Haskell": { "Haskell": {
"cats": [ "cats": [
"27" "27"
@ -4322,16 +4332,6 @@
"icon": "LabVIEW.png", "icon": "LabVIEW.png",
"website": "http://ni.com/labview" "website": "http://ni.com/labview"
}, },
"Shapecss": {
"cats":[
"18"
],
"env": "^Shapecss$",
"html":"<link[^>]* href=\"[^\"]*shapecss(?:\\.min)?\\.css",
"script":"shapecss(?:\\.min)?\\.js",
"icon":"Shapecss.svg",
"website":"https://shapecss.com"
},
"Laravel": { "Laravel": {
"cats": [ "cats": [
"18" "18"
@ -4388,17 +4388,6 @@
"implies": "Scala", "implies": "Scala",
"website": "http://liftweb.net" "website": "http://liftweb.net"
}, },
"Play": {
"cats": [
"18"
],
"headers": {
"Set-Cookie": "PLAY_SESSION"
},
"icon": "Play.svg",
"implies": "Scala",
"website": "https://www.playframework.com"
},
"LightMon Engine": { "LightMon Engine": {
"cats": [ "cats": [
"1" "1"
@ -4636,6 +4625,15 @@
"implies": "Java", "implies": "Java",
"website": "http://lucene.apache.org/core/" "website": "http://lucene.apache.org/core/"
}, },
"Luigis Box": {
"cats": [
"10",
"29"
],
"env": "^Luigis$",
"icon": "Luigisbox.svg",
"website": "https://www.luigisbox.com"
},
"M.R. Inc BoxyOS": { "M.R. Inc BoxyOS": {
"cats": [ "cats": [
"28" "28"
@ -4907,7 +4905,7 @@
"icon": "MediaWiki.png", "icon": "MediaWiki.png",
"implies": "PHP", "implies": "PHP",
"meta": { "meta": {
"generator": "MediaWiki" "generator": "^MediaWiki ?([\\d.]+)$\\;version:\\1"
}, },
"website": "http://www.mediawiki.org" "website": "http://www.mediawiki.org"
}, },
@ -4955,8 +4953,7 @@
"icon": "Meteor.png", "icon": "Meteor.png",
"implies": [ "implies": [
"MongoDB", "MongoDB",
"Node.js", "Node.js"
"jQuery"
], ],
"website": "http://meteor.com" "website": "http://meteor.com"
}, },
@ -5261,6 +5258,14 @@
}, },
"website": "http://moodle.org" "website": "http://moodle.org"
}, },
"Moon": {
"cats": [
"12"
],
"icon": "moon.png",
"script": "/moon(?:\\.min)?\\.js$",
"website": "http://moonjs.ga/"
},
"Motion-httpd": { "Motion-httpd": {
"cats": [ "cats": [
"22" "22"
@ -5394,6 +5399,15 @@
"script": "nv\\.d3(?:\\.min)?\\.js", "script": "nv\\.d3(?:\\.min)?\\.js",
"website": "http://nvd3.org" "website": "http://nvd3.org"
}, },
"Navegg": {
"cats": [
"10"
],
"env": "^nvg[0-9]$",
"icon": "Navegg.png",
"script": "tag.navdmp.com",
"website": "https://www.navegg.com/"
},
"Nedstat": { "Nedstat": {
"cats": [ "cats": [
"10" "10"
@ -6071,7 +6085,6 @@
"Server": "\bPerl\b(?: ?/?v?([\\d.]+))?\\;version:\\1" "Server": "\bPerl\b(?: ?/?v?([\\d.]+))?\\;version:\\1"
}, },
"icon": "Perl.png", "icon": "Perl.png",
"url": "\\.pl(?:$|\\?)",
"website": "http://perl.org" "website": "http://perl.org"
}, },
"Petrojs": { "Petrojs": {
@ -6182,6 +6195,17 @@
}, },
"website": "http://planetplanet.org" "website": "http://planetplanet.org"
}, },
"Play": {
"cats": [
"18"
],
"headers": {
"Set-Cookie": "PLAY_SESSION"
},
"icon": "Play.svg",
"implies": "Scala",
"website": "https://www.playframework.com"
},
"Plentymarkets": { "Plentymarkets": {
"cats": [ "cats": [
"6" "6"
@ -6615,6 +6639,12 @@
"icon": "Raspbian.svg", "icon": "Raspbian.svg",
"website": "https://www.raspbian.org/" "website": "https://www.raspbian.org/"
}, },
"Rdf": {
"cats": [
"27"
],
"website": "https://www.w3.org/RDF/"
},
"React": { "React": {
"cats": [ "cats": [
"12" "12"
@ -7013,6 +7043,18 @@
"icon": "Salesforce.svg", "icon": "Salesforce.svg",
"website": "https://www.salesforce.com" "website": "https://www.salesforce.com"
}, },
"Salesforce Commerce Cloud": {
"cats": [
"6"
],
"env": "^dwAnalytics$",
"headers": {
"Server": "Demandware eCommerce Server"
},
"html": "<[^>]+demandware\\.edgesuite",
"icon": "Salesforce.svg",
"website": "http://demandware.com"
},
"Sarka-SPIP": { "Sarka-SPIP": {
"cats": [ "cats": [
"1" "1"
@ -7086,9 +7128,9 @@
"cats": [ "cats": [
"12" "12"
], ],
"icon": "Select2.png",
"implies": "jQuery", "implies": "jQuery",
"script": "select2.*\\.js", "script": "select2.*\\.js",
"icon": "Select2.png",
"website": "http://select2.github.io" "website": "http://select2.github.io"
}, },
"Semantic-ui": { "Semantic-ui": {
@ -7164,6 +7206,20 @@
"implies": "PHP", "implies": "PHP",
"website": "http://shadow-technologies.co.uk" "website": "http://shadow-technologies.co.uk"
}, },
"Shapecss": {
"cats": [
"18"
],
"env": "^Shapecss$",
"html": "<link[^>]* href=\"[^\"]*shapecss(?:\\.min)?\\.css",
"icon": "Shapecss.svg",
"script": [
"shapecss[-.]([\\d.]*\\d)[^/]*\\.js\\;version:\\1",
"/([\\d.]+)/shapecss(?:\\.min)?\\.js\\;version:\\1",
"shapecss.*\\.js"
],
"website": "https://shapecss.com"
},
"ShareThis": { "ShareThis": {
"cats": [ "cats": [
"5" "5"
@ -7511,12 +7567,12 @@
"<link href=\"/css/sonar\\.css?v=([\\d.]+)\\;version:\\1", "<link href=\"/css/sonar\\.css?v=([\\d.]+)\\;version:\\1",
"<title>SonarQube</title>" "<title>SonarQube</title>"
], ],
"script": "^/js/bundles/sonar\\.js?v=([\\d.]+)$\\;version:\\1",
"icon": "sonar.png", "icon": "sonar.png",
"implies": "Java", "implies": "Java",
"meta": { "meta": {
"application-name": "^SonarQubes$" "application-name": "^SonarQubes$"
}, },
"script": "^/js/bundles/sonar\\.js?v=([\\d.]+)$\\;version:\\1",
"website": "https://www.sonarqube.org/" "website": "https://www.sonarqube.org/"
}, },
"SoundManager": { "SoundManager": {
@ -7527,6 +7583,12 @@
"icon": "SoundManager.png", "icon": "SoundManager.png",
"website": "http://www.schillmania.com/projects/soundmanager2" "website": "http://www.schillmania.com/projects/soundmanager2"
}, },
"Sparql": {
"cats": [
"27"
],
"website": "https://www.w3.org/TR/sparql11-overview/"
},
"Sphinx": { "Sphinx": {
"cats": [ "cats": [
"4" "4"
@ -7680,7 +7742,7 @@
"icon": "Store Systems.png", "icon": "Store Systems.png",
"website": "http://store-systems.de" "website": "http://store-systems.de"
}, },
"Storyblok": { "Storyblok": {
"cats": [ "cats": [
"1" "1"
], ],
@ -7796,6 +7858,7 @@
"cats": [ "cats": [
"12" "12"
], ],
"excludes": "SweetAlert",
"html": "<link[^>]+?href=\"[^\"]+sweetalert2(?:\\.min)?\\.css", "html": "<link[^>]+?href=\"[^\"]+sweetalert2(?:\\.min)?\\.css",
"icon": "SweetAlert2.png", "icon": "SweetAlert2.png",
"script": "sweetalert2(?:\\.min)?\\.js", "script": "sweetalert2(?:\\.min)?\\.js",
@ -8111,7 +8174,7 @@
"PHP", "PHP",
"jQuery" "jQuery"
], ],
"script": "lucide\\.init\\.js", "script": "lucide\\.init(?:\\.min)?\\.js",
"website": "http://www.translucide.net" "website": "http://www.translucide.net"
}, },
"Tumblr": { "Tumblr": {
@ -8182,7 +8245,7 @@
"html": [ "html": [
"<style>/\\*!\\* Bootstrap v(\\d\\.\\d\\.\\d)\\;version:\\1", "<style>/\\*!\\* Bootstrap v(\\d\\.\\d\\.\\d)\\;version:\\1",
"<link[^>]+?href=\"[^\"]+bootstrap(?:\\.min)?\\.css", "<link[^>]+?href=\"[^\"]+bootstrap(?:\\.min)?\\.css",
"<div[^>]+class=\"[^\"]*col-(?:xs|sm|md|lg)-\\d{1,2}" "<div[^>]+class=\"[^\"]*glyphicon glyphicon-"
], ],
"icon": "Twitter Bootstrap.png", "icon": "Twitter Bootstrap.png",
"script": "(?:twitter\\.github\\.com/bootstrap|bootstrap(?:\\.js|\\.min\\.js))", "script": "(?:twitter\\.github\\.com/bootstrap|bootstrap(?:\\.js|\\.min\\.js))",
@ -8537,6 +8600,20 @@
"implies": "Joomla", "implies": "Joomla",
"website": "http://virtuemart.net" "website": "http://virtuemart.net"
}, },
"Virtuoso": {
"cats": [
"34"
],
"website": "https://virtuoso.openlinksw.com/",
"meta": {
"Keywords": "^OpenLink Virtuoso Sparql",
"Copyright": "^Copyright &copy; \\d{4} OpenLink Software"
},
"url": ".*/sparql\\.*",
"headers": {
"Server": "Virtuoso\\/?(\\d{2}\\.\\d{2}\\.\\d{4})?\\;version:\\1"
}
},
"Visual WebGUI": { "Visual WebGUI": {
"cats": [ "cats": [
"18" "18"
@ -8610,6 +8687,15 @@
"script": "w3counter\\.com/tracker\\.js", "script": "w3counter\\.com/tracker\\.js",
"website": "http://www.w3counter.com" "website": "http://www.w3counter.com"
}, },
"WEBXPAY": {
"cats": [
"6"
],
"env": "^WEBXPAY$",
"html": "Powered by <a href=\"https://www.webxpay.com\">WEBXPAY<",
"icon": "WEBXPAY.png",
"website": "https://webxpay.com"
},
"WHMCS": { "WHMCS": {
"cats": [ "cats": [
"6" "6"
@ -9531,6 +9617,19 @@
"script": "static/gitweb.js$", "script": "static/gitweb.js$",
"website": "http://git-scm.com" "website": "http://git-scm.com"
}, },
"govCMS": {
"cats": [
"1"
],
"icon": "govCMS.svg",
"implies": [
"Drupal"
],
"meta": {
"generator": "Drupal ([\\d]+) \\(http:\\/\\/drupal\\.org\\) \\+ govCMS\\;version:\\1"
},
"website": "https://www.govcms.gov.au"
},
"gunicorn": { "gunicorn": {
"cats": [ "cats": [
"22" "22"
@ -9608,6 +9707,15 @@
}, },
"website": "http://notenbomer.nl/Producten/Content_management/io4_|_cms" "website": "http://notenbomer.nl/Producten/Content_management/io4_|_cms"
}, },
"Jetshop": {
"cats": [
"6"
],
"env": "^JetshopData$",
"html": "<(?:div|aside) id=\"jetshop-branding\">",
"icon": "Jetshop.png",
"website": "http://jetshop.se"
},
"jQTouch": { "jQTouch": {
"cats": [ "cats": [
"26" "26"
@ -10053,7 +10161,7 @@
"html": "(?:<div[^>]+id=\"recaptcha_image|<link[^>]+recaptcha|document\\.getElementById\\('recaptcha')", "html": "(?:<div[^>]+id=\"recaptcha_image|<link[^>]+recaptcha|document\\.getElementById\\('recaptcha')",
"icon": "reCAPTCHA.png", "icon": "reCAPTCHA.png",
"script": "(?:api-secure\\.recaptcha\\.net|recaptcha_ajax\\.js)", "script": "(?:api-secure\\.recaptcha\\.net|recaptcha_ajax\\.js)",
"website": "http://recaptcha.net" "website": "https://www.google.com/recaptcha/"
}, },
"sIFR": { "sIFR": {
"cats": [ "cats": [
@ -10100,15 +10208,6 @@
"icon": "swift.engine.png", "icon": "swift.engine.png",
"website": "http://mittec.ru/default" "website": "http://mittec.ru/default"
}, },
"WEBXPAY": {
"cats": [
"6"
],
"env": "^WEBXPAY$",
"html": "Powered by <a href=\"https://www.webxpay.com\">WEBXPAY<",
"icon": "WEBXPAY.png",
"website": "https://webxpay.com"
},
"three.js": { "three.js": {
"cats": [ "cats": [
"25" "25"
@ -10270,14 +10369,6 @@
"icon": "xui.png", "icon": "xui.png",
"script": "[^a-z]xui.*\\.js", "script": "[^a-z]xui.*\\.js",
"website": "http://xuijs.com" "website": "http://xuijs.com"
},
"Moon": {
"cats": [
"12"
],
"icon": "moon.png",
"script": "/moon(?:\\.min)?\\.js$",
"website": "http://moonjs.ga/"
} }
}, },
"categories": { "categories": {

@ -1,8 +1,8 @@
{ {
"name": "wappalyzer", "name": "Wappalyzer",
"description": "Uncovers the technologies used on websites", "description": "Uncovers the technologies used on websites",
"homepage": "https://github.com/AliasIO/Wappalyzer", "homepage": "https://github.com/AliasIO/Wappalyzer",
"version": "3.0.10", "version": "4.1.4",
"author": "Elbert Alias", "author": "Elbert Alias",
"license": "GPL-3.0", "license": "GPL-3.0",
"repository": { "repository": {

@ -1,7 +1,4 @@
apps.json /apps.json
images/icons/converted/*.png /images/icons/converted/*
images/icons/*.png /images/icons/*
images/icons/*.svg /js/wappalyzer.js
js/wappalyzer.js
js/iframe.js
js/network.js

@ -18,7 +18,7 @@
"categoryName6": { "message": "Ecommerce" }, "categoryName6": { "message": "Ecommerce" },
"categoryName7": { "message": "Photo Galleries" }, "categoryName7": { "message": "Photo Galleries" },
"categoryName8": { "message": "Wikis" }, "categoryName8": { "message": "Wikis" },
"categoryName9": { "message": "Hostin Panels" }, "categoryName9": { "message": "Hosting Panels" },
"categoryName10": { "message": "Analytics" }, "categoryName10": { "message": "Analytics" },
"categoryName11": { "message": "Blog" }, "categoryName11": { "message": "Blog" },
"categoryName12": { "message": "JavaScript Framework" }, "categoryName12": { "message": "JavaScript Framework" },

@ -6,6 +6,7 @@ body {
line-height: 16px; line-height: 16px;
margin: 0; margin: 0;
min-width: 200px; min-width: 200px;
overflow-x: hidden;
padding: 15px; padding: 15px;
} }

@ -11,13 +11,21 @@
html = html.substring(0, 25000) + html.substring(html.length - 25000, html.length); html = html.substring(0, 25000) + html.substring(html.length - 25000, html.length);
} }
browser.runtime.sendMessage({ id: 'analyze', subject: { html: html }, source: 'content.js' }); browser.runtime.sendMessage({
id: 'analyze',
subject: { html: html },
source: 'content.js'
});
c.getEnvironmentVars(); c.getEnvironmentVars();
}, },
log: function(message) { log: function(message) {
browser.runtime.sendMessage({ id: 'log', message: message, source: 'content.js' }); browser.runtime.sendMessage({
id: 'log',
message: message,
source: 'content.js'
});
}, },
getEnvironmentVars: function() { getEnvironmentVars: function() {
@ -25,7 +33,7 @@
c.log('Function call: getEnvironmentVars()'); c.log('Function call: getEnvironmentVars()');
if ( typeof document.documentElement.innerHTML === 'undefined' ) { if ( typeof document.body === 'undefined' ) {
return; return;
} }
@ -48,7 +56,11 @@
environmentVars = environmentVars.split(' ').slice(0, 500); environmentVars = environmentVars.split(' ').slice(0, 500);
browser.runtime.sendMessage({ id: 'analyze', subject: { env: environmentVars }, source: 'content.js' }); browser.runtime.sendMessage({
id: 'analyze',
subject: { env: environmentVars },
source: 'content.js'
});
}), true); }), true);
document.documentElement.appendChild(container); document.documentElement.appendChild(container);

@ -33,9 +33,17 @@
* Get a value from localStorage * Get a value from localStorage
*/ */
getOption: function(name, defaultValue, callback) { getOption: function(name, defaultValue, callback) {
browser.storage.local.get(name).then(function(item) { var func = function(item) {
callback(item.hasOwnProperty(name) ? item[name] : defaultValue); callback(item.hasOwnProperty(name) ? item[name] : defaultValue);
}); };
try {
// Chrome, Firefox
browser.storage.local.get(name).then(func);
} catch ( e ) {
// Edge
browser.storage.local.get(name, func);
}
}, },
/** /**
@ -101,11 +109,7 @@
// Do nothing // Do nothing
} }
if ( typeof chrome === 'undefined' ) { ( chrome || browser ).runtime.onMessage.addListener(w.driver.onMessage);
browser.runtime.onMessage.addListener(w.driver.onMessage);
} else {
chrome.runtime.onMessage.addListener(w.driver.onMessage);
}
var callback = function(tabs) { var callback = function(tabs) {
tabs.forEach(function(tab) { tabs.forEach(function(tab) {
@ -261,7 +265,7 @@
if ( cat === match && !found ) { if ( cat === match && !found ) {
if ( /\.svg$/i.test(icon) ) { if ( /\.svg$/i.test(icon) ) {
icon = 'converted/' + icon + '.png'; icon = 'converted/' + icon.replace(/\.svg$/, '.png');
} }
browser.pageAction.setIcon({ browser.pageAction.setIcon({

@ -1,13 +1,9 @@
/** global: browser */ /** global: browser */
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
var var nodes = document.querySelectorAll('[data-i18n]');
i, value,
nodes = document.querySelector('*');
for ( i = 0; i < nodes.length; i ++ ) { Array.prototype.forEach.call(nodes, function (node) {
if ( value = nodes[i].dataset.i18n ) { node.childNodes[0].nodeValue = browser.i18n.getMessage(node.dataset.i18n);
nodes[i].innerHTML = browser.i18n.getMessage(value); });
}
}
}); });

@ -0,0 +1,63 @@
jsonToDOM.namespaces = {
html: "http://www.w3.org/1999/xhtml",
xul: "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
};
jsonToDOM.defaultNamespace = jsonToDOM.namespaces.html;
function jsonToDOM(jsonTemplate, doc, nodes) {
function namespace(name) {
var reElemNameParts = /^(?:(.*):)?(.*)$/.exec(name);
return { namespace: jsonToDOM.namespaces[reElemNameParts[1]], shortName: reElemNameParts[2] };
}
// Note that 'elemNameOrArray' is: either the full element name (eg. [html:]div) or an array of elements in JSON notation
function tag(elemNameOrArray, elemAttr) {
// Array of elements? Parse each one...
if (Array.isArray(elemNameOrArray)) {
var frag = doc.createDocumentFragment();
Array.prototype.forEach.call(arguments, function(thisElem) {
frag.appendChild(tag.apply(null, thisElem));
});
return frag;
}
// Single element? Parse element namespace prefix (if none exists, default to defaultNamespace), and create element
var elemNs = namespace(elemNameOrArray);
var elem = doc.createElementNS(elemNs.namespace || jsonToDOM.defaultNamespace, elemNs.shortName);
// Set element's attributes and/or callback functions (eg. onclick)
for (var key in elemAttr) {
var val = elemAttr[key];
if (nodes && key == "key") {
nodes[val] = elem;
continue;
}
var attrNs = namespace(key);
if (typeof val == "function") {
// Special case for function attributes; don't just add them as 'on...' attributes, but as events, using addEventListener
elem.addEventListener(key.replace(/^on/, ""), val, false);
}
else {
// Note that the default namespace for XML attributes is, and should be, blank (ie. they're not in any namespace)
elem.setAttributeNS(attrNs.namespace || "", attrNs.shortName, val);
}
}
// Create and append this element's children
var childElems = Array.prototype.slice.call(arguments, 2);
childElems.forEach(function(childElem) {
if (childElem != null) {
elem.appendChild(
childElem instanceof doc.defaultView.Node ? childElem :
Array.isArray(childElem) ? tag.apply(null, childElem) :
doc.createTextNode(childElem));
}
});
return elem;
}
return tag.apply(null, jsonTemplate);
}

@ -4,67 +4,113 @@
(function() { (function() {
var popup = { var popup = {
init: function() { init: function() {
var callback = function(tabs) { popup.update([ 'p', {}, ' ' ], document, {});
var func = function(tabs) {
( chrome || browser ).runtime.sendMessage({ id: 'get_apps', tab: tabs[0], source: 'popup.js' }, function(response) { ( chrome || browser ).runtime.sendMessage({ id: 'get_apps', tab: tabs[0], source: 'popup.js' }, function(response) {
if ( /complete|interacrive|loaded/.test(document.readyState) ) { popup.update(popup.appsToDomTemplate(response));
popup.displayApps(response)
} else {
document.addEventListener('DOMContentLoaded', function() { popup.displayApps(response) });
}
}); });
}; };
try { try {
// Chrome, Firefox // Chrome, Firefox
browser.tabs.query({ active: true, currentWindow: true }).then(callback); browser.tabs.query({ active: true, currentWindow: true }).then(func);
} catch ( e ) { } catch ( e ) {
// Edge // Edge
browser.tabs.query({ active: true, currentWindow: true }, callback); browser.tabs.query({ active: true, currentWindow: true }, func);
} }
}, },
displayApps: function(response) { update: function(dom) {
if ( /complete|interactive|loaded/.test(document.readyState) ) {
popup.replaceDom(dom);
} else {
document.addEventListener('DOMContentLoaded', function() {
popup.replaceDom(dom);
});
}
},
replaceDom: function(domTemplate) {
var body = document.body;
while ( body.firstChild ) {
body.removeChild(body.firstChild);
}
body.appendChild(jsonToDOM(domTemplate, document, {}));
},
appsToDomTemplate: function(response) {
var var
appName, confidence, version, appName, confidence, version,
detectedApps = document.querySelector('#detected-apps'); categories = [],
html = ''; template = [];
if ( response.tabCache && response.tabCache.count > 0 ) { if ( response.tabCache && response.tabCache.count > 0 ) {
for ( appName in response.tabCache.appsDetected ) { for ( appName in response.tabCache.appsDetected ) {
confidence = response.tabCache.appsDetected[appName].confidenceTotal; confidence = response.tabCache.appsDetected[appName].confidenceTotal;
version = response.tabCache.appsDetected[appName].version; version = response.tabCache.appsDetected[appName].version;
categories = [];
html +=
'<div class="detected-app">' +
'<a target="_blank" href="https://wappalyzer.com/applications/' + popup.slugify(appName) + '">' +
'<img src="images/icons/' + ( response.apps[appName].icon || 'default.svg' ) + '"/>' +
'<span class="label">' +
'<span class="name">' + appName + '</span>' +
( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : '' ) +
'</span>' +
'</a>';
response.apps[appName].cats.forEach(function(cat) { response.apps[appName].cats.forEach(function(cat) {
html += categories.push(
'<a target="_blank" href="https://wappalyzer.com/categories/' + popup.slugify(response.categories[cat].name) + '">' + [
'<span class="category"><span class="name">' + browser.i18n.getMessage('categoryName' + cat) + '</span></span>' + 'a', {
'</a>'; target: '_blank',
href: 'https://wappalyzer.com/categories/' + popup.slugify(response.categories[cat].name)
}, [
'span', {
class: 'category'
}, [
'span', {
class: 'name'
},
browser.i18n.getMessage('categoryName' + cat)
]
]
]
);
}); });
html += template.push(
'</a>' + [
'</div>'; 'div', {
class: 'detected-app'
}, [
'a', {
target: '_blank',
href: 'https://wappalyzer.com/applications/' + popup.slugify(appName)
}, [
'img', {
src: 'images/icons/' + ( response.apps[appName].icon || 'default.svg' )
}
], [
'span', {
class: 'label'
}, [
'span', {
class: 'name'
},
appName
],
( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : '' )
]
],
categories
]
);
} }
} else { } else {
html = '<div class="empty">' + browser.i18n.getMessage('noAppsDetected') + '</div>'; template = [
'div', {
class: 'empty'
},
browser.i18n.getMessage('noAppsDetected')
];
} }
detectedApps.innerHTML = html; return template;
// Force redraw after popup animation on Mac OS
setTimeout(function() {
document.body.innerHTML += '<span style="line-height: 1px;"> </span>';
}, 600);
}, },
slugify: function(string) { slugify: function(string) {

@ -4,7 +4,7 @@
"author": "Elbert Alias", "author": "Elbert Alias",
"homepage_url": "https://wappalyzer.com/", "homepage_url": "https://wappalyzer.com/",
"description": "Identify web technologies", "description": "Identify web technologies",
"version": "4.0.1", "version": "4.1.4",
"default_locale": "en", "default_locale": "en",
"manifest_version": 2, "manifest_version": 2,
"icons": { "icons": {
@ -59,6 +59,7 @@
], ],
"options_page": "options.html", "options_page": "options.html",
"permissions": [ "permissions": [
"storage",
"tabs", "tabs",
"webRequest", "webRequest",
"webNavigation", "webNavigation",
@ -71,3 +72,4 @@
"contentScript": "js/ms_content_scripts_api_bridge.js" "contentScript": "js/ms_content_scripts_api_bridge.js"
} }
} }

@ -4,7 +4,7 @@
"author": "Elbert Alias", "author": "Elbert Alias",
"homepage_url": "https://wappalyzer.com/", "homepage_url": "https://wappalyzer.com/",
"description": "Identify web technologies", "description": "Identify web technologies",
"version": "4.0.1", "version": "4.1.4",
"default_locale": "en", "default_locale": "en",
"manifest_version": 2, "manifest_version": 2,
"icons": { "icons": {
@ -73,3 +73,4 @@
"content_security_policy": "script-src 'self'; object-src 'self'" "content_security_policy": "script-src 'self'; object-src 'self'"
} }

@ -12,7 +12,6 @@
<script src="js/browser-polyfill.js"></script> <script src="js/browser-polyfill.js"></script>
<script src="js/wappalyzer.js"></script> <script src="js/wappalyzer.js"></script>
<script src="js/defaults.js"></script>
<script src="js/options.js"></script> <script src="js/options.js"></script>
<script src="js/i18n.js"></script> <script src="js/i18n.js"></script>
</head> </head>

@ -7,10 +7,10 @@
<link rel="stylesheet" href="css/popup.css"> <link rel="stylesheet" href="css/popup.css">
<script src="js/browser-polyfill.js"></script> <script src="js/browser-polyfill.js"></script>
<script src="js/jsontodom.js"></script>
<script src="js/popup.js"></script> <script src="js/popup.js"></script>
<script src="js/i18n.js"></script> <script src="js/i18n.js"></script>
</head> </head>
<body> <body>
<div id="detected-apps"></div>
</body> </body>
</html> </html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 B

After

Width:  |  Height:  |  Size: 608 B

@ -1,23 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"> <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><title>NetworkingContentDelivery</title><path fill="#fbbf93" d="M39.74 56.97L24.12 77.94l-8.18-20.93 14.92-.91 8.88.87zm20.36 0l15.78 21.09 8.02-21.03-14.76-.93-9.04.87z"/><path fill="#6b3a19" d="M39.74 42.97L24.12 21.94l-8.18 21.05 15.05.9 8.75-.92zm20.36 0l15.78-21.03 8.18 21.05-14.92.91-9.04-.93z"/><path fill="#9d5025" d="M60.1 42.97l15.78-1.17V21.94L60.1 26.02v16.95z"/><path fill="#f58536" d="M84.06 42.99l-8.18-1.19V21.94l8.18 4.09v16.96z"/><path fill="#9d5025" d="M60.1 56.97l15.78 1.23v19.86L60.1 73.92V56.97z"/><path fill="#f58536" d="M83.9 57.03l-8.02 1.17v19.86l8.02-4.01V57.03zM39.74 42.97L24.12 41.8V21.94l15.62 4.08v16.95z"/><path fill="#9d5025" d="M15.94 42.99l8.18-1.19V21.94l-8.18 4.09v16.96z"/><path fill="#f58536" d="M39.74 56.97L24.12 58.2v19.86l15.62-4.14V56.97z"/><path fill="#9d5025" d="M15.94 57.01l8.18 1.19v19.86l-8.18-4.09V57.01z"/><path fill="#fbbf93" d="M66.26 59.59L50 57.98l-16.42 1.59L50 91l16.26-31.41z"/><path fill="#6b3a19" d="M66.26 40.41L50 42.02l-16.42-1.59L50 9l16.26 31.41z"/><path fill="#f58536" d="M66.26 40.41L50 38.05V9l16.26 8.13v23.28z"/><path fill="#9d5025" d="M33.58 40.43L50 38.05V9l-16.42 8.21v23.22z"/><path fill="#f58536" d="M66.26 59.59L50 61.95V91l16.26-8.13V59.59z"/><path fill="#9d5025" d="M33.58 59.57L50 61.95V91l-16.42-8.21V59.57z"/></svg>
<title>NetworkingContentDelivery</title>
<g>
<polygon points="39.74 56.97 24.12 77.94 15.94 57.01 30.86 56.1 39.74 56.97" fill="#fbbf93"/>
<polygon points="60.1 56.97 75.88 78.06 83.9 57.03 69.14 56.1 60.1 56.97" fill="#fbbf93"/>
<polygon points="39.74 42.97 24.12 21.94 15.94 42.99 30.99 43.89 39.74 42.97" fill="#6b3a19"/>
<polygon points="60.1 42.97 75.88 21.94 84.06 42.99 69.14 43.9 60.1 42.97" fill="#6b3a19"/>
<polygon points="60.1 42.97 75.88 41.8 75.88 21.94 60.1 26.02 60.1 42.97" fill="#9d5025"/>
<polygon points="84.06 42.99 75.88 41.8 75.88 21.94 84.06 26.03 84.06 42.99" fill="#f58536"/>
<polygon points="60.1 56.97 75.88 58.2 75.88 78.06 60.1 73.92 60.1 56.97" fill="#9d5025"/>
<polygon points="83.9 57.03 75.88 58.2 75.88 78.06 83.9 74.05 83.9 57.03" fill="#f58536"/>
<polygon points="39.74 42.97 24.12 41.8 24.12 21.94 39.74 26.02 39.74 42.97" fill="#f58536"/>
<polygon points="15.94 42.99 24.12 41.8 24.12 21.94 15.94 26.03 15.94 42.99" fill="#9d5025"/>
<polygon points="39.74 56.97 24.12 58.2 24.12 78.06 39.74 73.92 39.74 56.97" fill="#f58536"/>
<polygon points="15.94 57.01 24.12 58.2 24.12 78.06 15.94 73.97 15.94 57.01" fill="#9d5025"/>
<polygon points="66.26 59.59 50 57.98 33.58 59.57 50 91 66.26 59.59" fill="#fbbf93"/>
<polygon points="66.26 40.41 50 42.02 33.58 40.43 50 9 66.26 40.41" fill="#6b3a19"/>
<polygon points="66.26 40.41 50 38.05 50 9 66.26 17.13 66.26 40.41" fill="#f58536"/>
<polygon points="33.58 40.43 50 38.05 50 9 33.58 17.21 33.58 40.43" fill="#9d5025"/>
<polygon points="66.26 59.59 50 61.95 50 91 66.26 82.87 66.26 59.59" fill="#f58536"/>
<polygon points="33.58 59.57 50 61.95 50 91 33.58 82.79 33.58 59.57" fill="#9d5025"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,74 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns="http://www.w3.org/2000/svg" width="355.809" height="355.809"><path d="M177.367 0L9.964 58.913 36.416 278.24l141.129 77.568 141.856-78.619 26.444-219.32L177.367 0z" fill="#b3b3b3"/><path d="M329.149 70.545L176.976 18.654v318.622L304.504 266.7l24.645-196.154z" fill="#af2b2d"/><path d="M28.749 71.482l22.667 196.153 125.559 69.641V18.647L28.749 71.482z" fill="#df2e31"/><path d="M212.249 177.131l-34.995-73.08-30.808 73.08h65.803zm13.342 30.729h-92.764l-20.752 51.907-38.603.714L176.977 30.224 284.09 260.48h-35.779l-22.72-52.621z" fill="#f2f2f2"/><path d="M176.976 30.224l.276 73.827 34.96 73.136h-35.157l-.079 30.625 48.613.048 22.721 52.63 36.936.685-108.27-230.951z" fill="#b3b3b3"/></svg>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
width="355.80875"
height="355.80875"
xml:space="preserve"
sodipodi:docname="AngularJS-Shield.svg"
inkscape:export-filename="/usr/local/google/home/stephenfluin/AngularJS-Shield.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1393"
inkscape:window-height="697"
id="namedview4"
showgrid="false"
inkscape:zoom="0.25757162"
inkscape:cx="171.15375"
inkscape:cy="177.21499"
inkscape:window-x="2290"
inkscape:window-y="312"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
transform="translate(9.963744999999989) matrix(1.25,0,0,-1.25,-188.84625,636.71875) "><g
id="g12"
transform="scale(0.1,0.1)"><path
d="M 2850,5093.75 1510.77,4622.45 1722.39,2867.82 2851.42,2247.28 3986.27,2876.23 4197.82,4630.79 2850,5093.75 z"
style="fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path14"
inkscape:connector-curvature="0" /><path
d="m 4064.25,4529.39 -1217.38,415.13 0,-2548.98 1020.22,564.62 197.16,1569.23 z"
style="fill:#af2b2d;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path16"
inkscape:connector-curvature="0" /><path
d="m 1661.05,4521.89 181.34,-1569.22 1004.47,-557.13 0,2549.03 -1185.81,-422.68 z"
style="fill:#df2e31;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path18"
inkscape:connector-curvature="0" /><path
d="m 3129.05,3676.7 -279.96,584.64 -246.46,-584.64 526.42,0 z m 106.74,-245.83 -742.11,0 -166.02,-415.26 -308.82,-5.71 828.04,1842.06 856.9,-1842.06 -286.23,0 -181.76,420.97 z"
style="fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path20"
inkscape:connector-curvature="0" /><path
d="m 2846.87,4851.96 2.21,-590.62 279.67,-585.09 -281.25,0 -0.63,-245 388.9,-0.38 181.77,-421.04 295.49,-5.48 -866.16,1847.61 z"
style="fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path22"
inkscape:connector-curvature="0" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

@ -1,64 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="256" height="249" viewBox="0 0 256 249" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><defs><linearGradient x1="-388.148%" y1="-113.678%" x2="237.684%" y2="370.655%" id="a"><stop stop-color="#C06FBB" offset="0%"/><stop stop-color="#6E4D9B" offset="100%"/></linearGradient><linearGradient x1="72.945%" y1="79.515%" x2="-97.052%" y2="-119.502%" id="b"><stop stop-color="#6E4D9B" offset="0%"/><stop stop-color="#77327A" offset="14%"/><stop stop-color="#B31777" offset="29%"/><stop stop-color="#CD0F7E" offset="84%"/><stop stop-color="#ED2C89" offset="100%"/></linearGradient><linearGradient x1="-232.212%" y1="-693.6%" x2="250.776%" y2="101.71%" id="c"><stop stop-color="#C06FBB" offset="0%"/><stop stop-color="#6E4D9B" offset="100%"/></linearGradient><linearGradient x1="-821.186%" y1="-466.93%" x2="101.985%" y2="287.264%" id="d"><stop stop-color="#C06FBB" offset="0%"/><stop stop-color="#6E4D9B" offset="100%"/></linearGradient><linearGradient x1="-140.095%" y1="-230.926%" x2="418.499%" y2="261.977%" id="e"><stop stop-color="#C06FBB" offset="0%"/><stop stop-color="#6E4D9B" offset="100%"/></linearGradient><linearGradient x1="191.084%" y1="225.067%" x2="20.358%" y2="24.595%" id="f"><stop stop-color="#6E4D9B" offset="0%"/><stop stop-color="#77327A" offset="14%"/><stop stop-color="#B31777" offset="29%"/><stop stop-color="#CD0F7E" offset="84%"/><stop stop-color="#ED2C89" offset="100%"/></linearGradient><linearGradient x1="-388.094%" y1="-138.728%" x2="237.675%" y2="445.405%" id="g"><stop stop-color="#C06FBB" offset="0%"/><stop stop-color="#6E4D9B" offset="100%"/></linearGradient><linearGradient x1="11.503%" y1="89.653%" x2="89.819%" y2="11.577%" id="h"><stop stop-color="#6E4D9B" offset="0%"/><stop stop-color="#77327A" offset="14%"/><stop stop-color="#B31777" offset="53%"/><stop stop-color="#CD0F7E" offset="79%"/><stop stop-color="#ED2C89" offset="100%"/></linearGradient></defs><path d="M167.876 46.369l-23.68 15.804L119.8 25.615 143.48 9.81l24.395 36.559z" fill="url(#a)"/><path d="M187.129 156.2l40.46 60.63-48.198 32.165-40.46-60.632-7.06-10.576 48.2-32.165 7.058 10.577z" fill="url(#b)"/><path d="M126.422 196.71l8.908 13.349-36.686 24.482-15.967-23.926 8.015-5.348 28.672-19.134 7.058 10.577z" fill="url(#c)"/><path d="M207.172 127.537l10.29-6.867 15.966 23.926-23.683 15.805-8.908-13.35 13.393-8.937-7.058-10.577zm-6.335 19.515l-7.058-10.577 13.393-8.938 7.058 10.577-13.393 8.938z" fill="url(#d)"/><path d="M41.11 130.967l-8.015 5.348L8.698 99.756l36.687-24.482 17.1 25.627-28.671 19.134L62.486 100.9l7.296 10.933-28.673 19.133z" fill="url(#e)"/><path d="M130.489 71.322l-48.2 32.165-7.295-10.933L34.912 32.49 83.112.326l40.081 60.063 7.296 10.933z" fill="url(#f)"/><path d="M157.59 53.238l-13.393 8.937-7.297-10.933-17.1-25.626L143.483 9.81l24.397 36.56-10.29 6.868z" fill="url(#g)"/><path d="M97.75 215.844l-7.058-10.577 28.672-19.134 7.058 10.577-28.672 19.134z" fill="#714896"/><path d="M200.837 147.052l-7.058-10.577 13.393-8.938 7.058 10.577-13.393 8.938z" fill="#6F4795"/><path d="M41.11 130.967l-7.296-10.932L62.485 100.9l7.297 10.933-28.673 19.133z" fill="#88519F"/><path d="M144.197 62.175L136.9 51.242l13.395-8.938 7.295 10.934-13.393 8.937z" fill="#85509E"/><path d="M187.129 156.2l-48.199 32.163-7.058-10.576 48.199-32.165 7.058 10.577z" fill="#8D166A"/><path d="M123.193 60.39l7.296 10.932-48.2 32.165-7.295-10.933 48.2-32.165z" fill="#A70D6F"/><path d="M27.439 51.653l9.097 13.633-13.633 9.097-9.097-13.633 13.633-9.097z" fill="#9E61AD"/><path d="M76.568 215.084l9.097 13.633-13.632 9.097-9.098-13.632 13.633-9.098z" fill="#8053A3"/><path d="M40.704 228.814L.792 168.518 214.089 25.856l41.852 59.333L40.704 228.814z" fill="url(#h)"/></svg>
<svg width="256px" height="249px" viewBox="0 0 256 249" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<defs>
<linearGradient x1="-388.147851%" y1="-113.677693%" x2="237.683809%" y2="370.654866%" id="linearGradient-1">
<stop stop-color="#C06FBB" offset="0%"></stop>
<stop stop-color="#6E4D9B" offset="100%"></stop>
</linearGradient>
<linearGradient x1="72.9454854%" y1="79.5146865%" x2="-97.0517904%" y2="-119.502084%" id="linearGradient-2">
<stop stop-color="#6E4D9B" offset="0%"></stop>
<stop stop-color="#77327A" offset="14%"></stop>
<stop stop-color="#B31777" offset="29%"></stop>
<stop stop-color="#CD0F7E" offset="84%"></stop>
<stop stop-color="#ED2C89" offset="100%"></stop>
</linearGradient>
<linearGradient x1="-232.211989%" y1="-693.599872%" x2="250.775991%" y2="101.70976%" id="linearGradient-3">
<stop stop-color="#C06FBB" offset="0%"></stop>
<stop stop-color="#6E4D9B" offset="100%"></stop>
</linearGradient>
<linearGradient x1="-821.186214%" y1="-466.930382%" x2="101.985142%" y2="287.264085%" id="linearGradient-4">
<stop stop-color="#C06FBB" offset="0%"></stop>
<stop stop-color="#6E4D9B" offset="100%"></stop>
</linearGradient>
<linearGradient x1="-140.094614%" y1="-230.925718%" x2="418.49908%" y2="261.976742%" id="linearGradient-5">
<stop stop-color="#C06FBB" offset="0%"></stop>
<stop stop-color="#6E4D9B" offset="100%"></stop>
</linearGradient>
<linearGradient x1="191.083716%" y1="225.066658%" x2="20.3577022%" y2="24.5947708%" id="linearGradient-6">
<stop stop-color="#6E4D9B" offset="0%"></stop>
<stop stop-color="#77327A" offset="14%"></stop>
<stop stop-color="#B31777" offset="29%"></stop>
<stop stop-color="#CD0F7E" offset="84%"></stop>
<stop stop-color="#ED2C89" offset="100%"></stop>
</linearGradient>
<linearGradient x1="-388.094004%" y1="-138.727507%" x2="237.674802%" y2="445.404664%" id="linearGradient-7">
<stop stop-color="#C06FBB" offset="0%"></stop>
<stop stop-color="#6E4D9B" offset="100%"></stop>
</linearGradient>
<linearGradient x1="11.503492%" y1="89.6525993%" x2="89.8192643%" y2="11.5773982%" id="linearGradient-8">
<stop stop-color="#6E4D9B" offset="0%"></stop>
<stop stop-color="#77327A" offset="14%"></stop>
<stop stop-color="#B31777" offset="53%"></stop>
<stop stop-color="#CD0F7E" offset="79%"></stop>
<stop stop-color="#ED2C89" offset="100%"></stop>
</linearGradient>
</defs>
<g>
<path d="M167.876207,46.3687469 L144.195715,62.173447 L119.80056,25.6145151 L143.481051,9.80981504 L167.876207,46.3687469 L167.876207,46.3687469 L167.876207,46.3687469 Z" fill="url(#linearGradient-1)"></path>
<path d="M187.128711,156.199437 L227.589323,216.829994 L179.391024,248.994707 L138.930412,188.363184 L131.871655,177.787122 L180.07092,145.622408 L187.128711,156.199437 L187.128711,156.199437 L187.128711,156.199437 Z" fill="url(#linearGradient-2)"></path>
<path d="M126.421861,196.710267 L135.330053,210.059034 L98.6436403,234.541108 L82.6766922,210.615313 L90.6915535,205.266921 L119.36407,186.133238 L126.421861,196.710267 L126.421861,196.710267 L126.421861,196.710267 Z" fill="url(#linearGradient-3)"></path>
<path d="M207.172143,127.536576 L217.46234,120.670006 L233.428323,144.595801 L209.744934,160.400501 L200.836742,147.051735 L214.229934,138.113604 L207.172143,127.536576 L207.172143,127.536576 L207.172143,127.536576 L207.172143,127.536576 Z M200.836742,147.051735 L193.778952,136.474706 L207.172143,127.536576 L214.229934,138.113604 L200.836742,147.051735 L200.836742,147.051735 L200.836742,147.051735 L200.836742,147.051735 Z" fill="url(#linearGradient-4)"></path>
<path d="M41.1093181,130.966968 L33.0954225,136.315359 L8.69833531,99.7564274 L45.3847478,75.2743531 L62.4855008,100.900856 L33.8139497,120.034538 L62.4855008,100.900856 L69.781835,111.834251 L41.1093181,130.966968 L41.1093181,130.966968 L41.1093181,130.966968 Z" fill="url(#linearGradient-5)"></path>
<path d="M130.488688,71.3224496 L82.2894234,103.487163 L74.994055,92.5537678 L34.9120223,32.4910791 L83.1112871,0.3263657 L123.19332,60.3890547 L130.488688,71.3224496 Z" fill="url(#linearGradient-6)"></path>
<path d="M157.589904,53.2375841 L144.196713,62.1747484 L136.900379,51.2423191 L119.799626,25.6158165 L143.483014,9.81111647 L167.880102,46.3700483 L157.589904,53.2375841 L157.589904,53.2375841 L157.589904,53.2375841 Z" fill="url(#linearGradient-7)"></path>
<path d="M97.7503053,215.84395 L90.6915487,205.266921 L119.364066,186.133238 L126.421857,196.710267 L97.7503053,215.84395 L97.7503053,215.84395 L97.7503053,215.84395 Z" fill="#714896"></path>
<path d="M200.836744,147.051736 L193.778953,136.474708 L207.172145,127.536577 L214.229936,138.113606 L200.836744,147.051736 L200.836744,147.051736 L200.836744,147.051736 Z" fill="#6F4795"></path>
<path d="M41.1093172,130.966965 L33.8139488,120.034536 L62.4854999,100.900853 L69.7818341,111.834248 L41.1093172,130.966965 L41.1093172,130.966965 L41.1093172,130.966965 Z" fill="#88519F"></path>
<path d="M144.196718,62.1747499 L136.900384,51.2423206 L150.294542,42.3041905 L157.58991,53.2375855 L144.196718,62.1747499 L144.196718,62.1747499 L144.196718,62.1747499 Z" fill="#85509E"></path>
<path d="M187.128711,156.199434 L138.930412,188.363182 L131.871655,177.787119 L180.07092,145.622405 L187.128711,156.199434 L187.128711,156.199434 L187.128711,156.199434 Z" fill="#8D166A"></path>
<path d="M123.19332,60.3890532 L130.488688,71.3224482 L82.2894233,103.487162 L74.9940548,92.5537666 L123.19332,60.3890532 L123.19332,60.3890532 L123.19332,60.3890532 Z" fill="#A70D6F"></path>
<path d="M27.4386316,51.6530056 L36.5361217,65.2857977 L22.9033297,74.3832878 L13.8058395,60.7504958 L27.4386316,51.6530056 L27.4386316,51.6530056 Z" fill="#9E61AD"></path>
<path d="M76.5679915,215.084186 L85.6654817,228.716978 L72.0326896,237.814468 L62.9351995,224.181676 L76.5679915,215.084186 L76.5679915,215.084186 Z" fill="#8053A3"></path>
<path d="M40.7042434,228.813811 L0.791684264,168.517994 L214.08857,25.8555586 L255.941111,85.1892808 L40.7042434,228.813811 L40.7042434,228.813811 L40.7042434,228.813811 L40.7042434,228.813811 Z" fill="url(#linearGradient-8)"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

@ -1,4 +1 @@
<svg width="250" height="250" xmlns="http://www.w3.org/2000/svg"> <svg width="250" height="250" xmlns="http://www.w3.org/2000/svg"><rect rx="30" height="250" width="250" stroke-width="3" stroke="#fff" fill="#6f5499"/><text transform="scale(3.1 3.5)" font-family="Helvetica, Arial, sans-serif" font-size="60" y="56.5" x=".5" fill="#fff">BT</text></svg>
<rect rx="30" height="250" width="250" y="0" x="0" stroke-width="3" stroke="#ffffff" fill="#6f5499"/>
<text transform="matrix(3.1,0,0,3.5,0,0)" font-family="Helvetica, Arial, sans-serif" font-size="60" y="56.5" x="0.5" fill="#ffffff">BT</text>
</svg>

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 285 B

@ -1,3 +1 @@
<svg height="1024" width="896" fill="#00C2A1" xmlns="http://www.w3.org/2000/svg"> <svg height="1024" width="896" fill="#00C2A1" xmlns="http://www.w3.org/2000/svg"><path d="M128 768h256v64H128v-64zm320-384H128v64h320v-64zm128 192V448L384 640l192 192V704h320V576H576zm-288-64H128v64h160v-64zM128 704h160v-64H128v64zm576 64h64v128c-1 18-7 33-19 45s-27 18-45 19H64c-35 0-64-29-64-64V192c0-35 29-64 64-64h192C256 57 313 0 384 0s128 57 128 128h192c35 0 64 29 64 64v320h-64V320H64v576h640V768zM128 256h512c0-35-29-64-64-64h-64c-35 0-64-29-64-64s-29-64-64-64-64 29-64 64-29 64-64 64h-64c-35 0-64 29-64 64z"/></svg>
<path d="M128 768h256v64H128v-64z m320-384H128v64h320v-64z m128 192V448L384 640l192 192V704h320V576H576z m-288-64H128v64h160v-64zM128 704h160v-64H128v64z m576 64h64v128c-1 18-7 33-19 45s-27 18-45 19H64c-35 0-64-29-64-64V192c0-35 29-64 64-64h192C256 57 313 0 384 0s128 57 128 128h192c35 0 64 29 64 64v320h-64V320H64v576h640V768zM128 256h512c0-35-29-64-64-64h-64c-35 0-64-29-64-64s-29-64-64-64-64 29-64 64-29 64-64 64h-64c-35 0-64 29-64 64z" />
</svg>

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 524 B

@ -1,9 +1 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg version="1" xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 720 720"><g fill="#0f457b"><path d="M420 450l83-91-34-37c-18-20-56-61-84-90l-50-53 69 3 69 3 80 88 80 87-80 88-80 87-68 3-68 3 83-91z"/><path d="M200 503c0-4 30-38 67-75l67-68-45-47c-24-27-55-60-68-75l-24-28h108l69 76 69 76-74 74c-71 71-75 74-121 74-27 0-48-3-48-7z"/><path d="M116 438c74-82 73-71 20-133l-48-55h40c36 0 45 6 86 52 25 29 46 56 46 59 0 4-21 30-46 58-41 46-50 51-87 51H86l30-32z"/></g></svg>
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="72px" height="72px" viewBox="0 0 720 720" preserveAspectRatio="xMidYMid meet">
<g id="layer1" fill="#0f457b" stroke="none">
<path d="M420 450 l83 -91 -34 -37 c-18 -20 -56 -61 -84 -90 l-50 -53 69 3 69 3 80 88 80 87 -80 88 -80 87 -68 3 -68 3 83 -91z"/>
<path d="M200 503 c0 -4 30 -38 67 -75 l67 -68 -45 -47 c-24 -27 -55 -60 -68 -75 l-24 -28 54 0 54 0 69 76 69 76 -74 74 c-71 71 -75 74 -121 74 -27 0 -48 -3 -48 -7z"/>
<path d="M116 438 c74 -82 73 -71 20 -133 l-48 -55 40 0 c36 0 45 6 86 52 25 29 46 56 46 59 0 4 -21 30 -46 58 -41 46 -50 51 -87 51 l-41 0 30 -32z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -1,31 +1 @@
<?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1709 768"><g fill="#E82C2A"><path d="M1154.2 134.3v421.1h126.4v-64.3h-41.8V70.2h-84.7zM55.9 491.1h43V287.9h-43V232l43-7.1v-56.6c0-68.5 14.9-98.2 102.3-98.2 18.9 0 41.2 2.8 60.8 6.3l-11.6 68.9c-13.3-2.1-19.8-2.5-28.2-2.5-30.8 0-38.6 3.1-38.6 33.1V225h63.9v62.9h-63.9V491h42.5v64.3H55.9v-64.2zm1055.2-20.4c-13.2 2.8-24.8 2.5-33.2 2.7-34.8.9-31.8-10.6-31.8-43.5v-142h66.3V225H1046V70.2h-84.7v377.3c0 74.1 18.3 107.9 98 107.9 18.9 0 44.8-4.9 64.4-9l-12.6-75.7zm526.1 20.7c17.8 0 32.2 14.1 32.2 32 0 17.8-14.4 31.9-32.2 31.9-17.8 0-32.1-14.1-32.1-31.9 0-17.8 14.3-32 32.1-32m0 58.9c14.8 0 26.8-12.1 26.8-26.9 0-14.8-12-26.6-26.8-26.6s-26.7 11.8-26.7 26.6 11.9 26.9 26.7 26.9m5.9-11.2l-6.5-9.5h-4.5v9.5h-7.2v-31.4h13.1c7.8 0 12.6 3.9 12.6 10.9 0 5.1-2.6 8.6-6.6 9.8l7.8 10.8h-8.7zm-10.9-15.8h5.7c3.3 0 5.5-1.3 5.5-4.7 0-3.3-2.2-4.6-5.3-4.6h-5.9v9.3zM855.6 287.8v-11.3c-25.6-4.7-51.1-4.7-64.9-4.7-39.4 0-44.2 20.9-44.2 32.2 0 16 5.5 24.7 48.2 34 62.4 14 125.1 28.6 125.1 106 0 73.4-37.8 111.3-117.3 111.3-53.2 0-104.8-11.4-144.2-21.4v-63.2h64.1v11.2c27.6 5.3 56.5 4.8 71.6 4.8 42 0 48.8-22.6 48.8-34.6 0-16.7-12.1-24.7-51.5-32.7-74.2-12.7-133.2-38-133.2-113.5 0-71.4 47.7-99.4 127.3-99.4 53.9 0 94.8 8.4 134.2 18.4v62.8h-64zm-389.7 55.6l-6.4-6.4-32.7 28.5c-1.7-.6-3.4-.9-5.3-.9-8.8 0-16 7.4-16 16.4 0 9.1 7.2 16.4 16 16.4s16-7.4 16-16.4c0-1.7-.3-3.4-.7-4.9l29.1-32.7z"/><path d="M595.6 470.7l-.1-263.6h-84.7v24.7c-17.4-10.5-36.9-17.9-57.6-21.8h.5v-29.2H464v-21.5h-85.3v21.5H389V210h.6c-81 14.9-142.4 85.8-142.4 171.2 0 96.2 77.9 174.1 174.1 174.1 32.8 0 63.5-9.1 89.7-24.9l15.3 24.9h89.5v-84.7h-20.2zm-169.1-.1v-10h-10.1v9.9c-45.5-2.6-81.8-39.2-84.2-84.7h10.1v-10.1h-10c2.7-45.2 38.9-81.4 84.1-84v10h10.1v-10c44.6 2.4 80.5 37.4 84.4 81.5v2.9h-10.2v10.1h10.2v2.8c-3.8 44.2-39.8 79.2-84.4 81.6zM1495 225h174.7v62.9h-41.8l-107.1 263.6c-30.7 74-81.1 143.7-157.9 143.7-18.9 0-44-2.1-61.5-6.3l7.7-76.9c11.2 2.1 25.8 3.5 33.5 3.5 35.6 0 75.8-22.1 88.4-60.5l-108.6-267.1h-41.8V225h174.8v62.9h-41.7l61.5 151.3 61.5-151.3H1495V225z"/></g></svg>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<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 1709 768" enable-background="new 0 0 1709 768" xml:space="preserve">
<g>
<polygon fill="#E82C2A" points="1154.2,134.3 1154.2,555.4 1280.6,555.4 1280.6,491.1 1238.8,491.1 1238.8,70.2 1154.1,70.2 "/>
<path fill="#E82C2A" d="M55.9,491.1h43V287.9h-43v-55.9l43-7.1v-56.6c0-68.5,14.9-98.2,102.3-98.2c18.9,0,41.2,2.8,60.8,6.3
l-11.6,68.9c-13.3-2.1-19.8-2.5-28.2-2.5c-30.8,0-38.6,3.1-38.6,33.1V225h63.9v62.9h-63.9v203.1h42.5v64.3l-170.2,0V491.1z"/>
<path fill="#E82C2A" d="M1111.1,470.7c-13.2,2.8-24.8,2.5-33.2,2.7c-34.8,0.9-31.8-10.6-31.8-43.5v-142h66.3V225H1046V70.2h-84.7
v377.3c0,74.1,18.3,107.9,98,107.9c18.9,0,44.8-4.9,64.4-9L1111.1,470.7z"/>
<path fill="#E82C2A" d="M1637.2,491.4c17.8,0,32.2,14.1,32.2,32c0,17.8-14.4,31.9-32.2,31.9c-17.8,0-32.1-14.1-32.1-31.9
C1605.1,505.6,1619.4,491.4,1637.2,491.4 M1637.2,550.3c14.8,0,26.8-12.1,26.8-26.9c0-14.8-12-26.6-26.8-26.6
c-14.8,0-26.7,11.8-26.7,26.6C1610.5,538.2,1622.4,550.3,1637.2,550.3 M1643.1,539.1l-6.5-9.5h-4.5v9.5h-7.2v-31.4h13.1
c7.8,0,12.6,3.9,12.6,10.9c0,5.1-2.6,8.6-6.6,9.8l7.8,10.8H1643.1z M1632.2,523.3h5.7c3.3,0,5.5-1.3,5.5-4.7c0-3.3-2.2-4.6-5.3-4.6
h-5.9V523.3z"/>
<path fill="#E82C2A" d="M855.6,287.8v-11.3c-25.6-4.7-51.1-4.7-64.9-4.7c-39.4,0-44.2,20.9-44.2,32.2c0,16,5.5,24.7,48.2,34
c62.4,14,125.1,28.6,125.1,106c0,73.4-37.8,111.3-117.3,111.3c-53.2,0-104.8-11.4-144.2-21.4v-63.2h64.1l0,11.2
c27.6,5.3,56.5,4.8,71.6,4.8c42,0,48.8-22.6,48.8-34.6c0-16.7-12.1-24.7-51.5-32.7c-74.2-12.7-133.2-38-133.2-113.5
c0-71.4,47.7-99.4,127.3-99.4c53.9,0,94.8,8.4,134.2,18.4v62.8H855.6z"/>
<path fill="#E82C2A" d="M465.9,343.4l-6.4-6.4l-32.7,28.5c-1.7-0.6-3.4-0.9-5.3-0.9c-8.8,0-16,7.4-16,16.4c0,9.1,7.2,16.4,16,16.4
c8.8,0,16-7.4,16-16.4c0-1.7-0.3-3.4-0.7-4.9L465.9,343.4z"/>
<path fill="#E82C2A" d="M595.6,470.7l-0.1-263.6h-84.7v24.7c-17.4-10.5-36.9-17.9-57.6-21.8h0.5v-29.2h10.3v-21.5h-85.3v21.5h10.3
v29.2h0.6c-81,14.9-142.4,85.8-142.4,171.2c0,96.2,77.9,174.1,174.1,174.1c32.8,0,63.5-9.1,89.7-24.9l15.3,24.9h89.5v-84.7H595.6z
M426.5,470.6v-10h-10.1v9.9c-45.5-2.6-81.8-39.2-84.2-84.7h10.1v-10.1h-10c2.7-45.2,38.9-81.4,84.1-84v10h10.1v-10
c44.6,2.4,80.5,37.4,84.4,81.5v2.9h-10.2v10.1h10.2l0,2.8C507.1,433.2,471.1,468.2,426.5,470.6z"/>
<path fill="#E82C2A" d="M1495,225h174.7v62.9h-41.8l-107.1,263.6c-30.7,74-81.1,143.7-157.9,143.7c-18.9,0-44-2.1-61.5-6.3
l7.7-76.9c11.2,2.1,25.8,3.5,33.5,3.5c35.6,0,75.8-22.1,88.4-60.5l-108.6-267.1h-41.8V225h174.8v62.9h-41.7l61.5,151.3l0,0
l61.5-151.3H1495V225z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -1 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 822.8 225.8"><defs><style>.cls-1,.cls-2{fill:#0098f7;}.cls-2{stroke:#231f20;stroke-miterlimit:10;stroke-width:5px;}</style></defs><title>Froala</title><path class="cls-1" d="M171.85,89.65A16.16,16.16,0,0,0,159.39,84H64.87c-9,0-16.6,7.74-16.6,16.9V139.3a16.45,16.45,0,0,0,32.9,0V115.14h78.5a15.63,15.63,0,0,0,15.46-12.94A15.14,15.14,0,0,0,171.85,89.65Z" transform="translate(-48.27 -72.94)"/><path class="cls-1" d="M151.81,181a16.05,16.05,0,0,0-11.44-4.85H64.06a15.81,15.81,0,0,0-15.79,15.79v88.69a16.88,16.88,0,0,0,5,11.92,16,16,0,0,0,11.35,4.7h0.17a16.45,16.45,0,0,0,16.41-16.6v-73.4h59.3A15.61,15.61,0,0,0,156.16,192,15.1,15.1,0,0,0,151.81,181Z" transform="translate(-48.27 -72.94)"/><path class="cls-2" d="M78.67,178.64" transform="translate(-48.27 -72.94)"/><path class="cls-1" d="M281.31,155.17c-5.29-6.22-16-7.52-24.14-7.52-16.68,0-28.72,7.71-36.5,23.47v-5.67a16.15,16.15,0,1,0-32.3,0v115.5a16.15,16.15,0,1,0,32.3,0v-38.7c0-19.09,3.5-63.5,35.9-63.5a44.73,44.73,0,0,1,5.95.27h0.12c12.79,1.2,20.06-2.73,21.6-11.69C285,162.48,284,158.39,281.31,155.17Z" transform="translate(-48.27 -72.94)"/><path class="cls-1" d="M420.1,168c-13.93-13.11-32.9-20.33-53.43-20.33s-39.43,7.22-53.28,20.33C298.72,181.86,291,200.8,291,222.74c0,21.68,8,41.28,22.4,55.2,13.92,13.41,32.85,20.8,53.3,20.8s39.44-7.38,53.44-20.79c14.55-13.94,22.56-33.54,22.56-55.21S434.65,181.67,420.1,168Zm-9.73,54.77c0,25.84-18.38,44.6-43.7,44.6S323,248.59,323,222.74c0-25.15,18.38-43.4,43.7-43.4S410.37,197.59,410.37,222.74Z" transform="translate(-48.27 -72.94)"/><path class="cls-1" d="M601,149.14a16.17,16.17,0,0,0-16,16.3v1c-10.29-11.63-27.74-18.84-46.7-18.84-19.83,0-38.19,7.24-51.69,20.4-14.33,14-21.91,33-21.91,55,0,21.61,7.78,41.16,21.9,55,13.56,13.33,31.92,20.67,51.7,20.67,18.83,0,36.29-7.41,46.7-19.37v1.57a16.15,16.15,0,1,0,32.3,0V165.44A16.32,16.32,0,0,0,601,149.14Zm-16.3,73.6c0,30.44-22.81,44.3-44,44.3-24.57,0-43.1-19-43.1-44.3s18.13-43.4,43.1-43.4C562,179.34,584.67,194.55,584.67,222.74Z" transform="translate(-48.27 -72.94)"/><path class="cls-1" d="M671.77,72.94a16.17,16.17,0,0,0-16,16.3v191.7a16.15,16.15,0,1,0,32.3,0V89.24A16.32,16.32,0,0,0,671.77,72.94Z" transform="translate(-48.27 -72.94)"/><path class="cls-1" d="M854.77,149.14a16.17,16.17,0,0,0-16,16.3v1c-10.29-11.63-27.74-18.84-46.7-18.84-19.83,0-38.19,7.24-51.69,20.4-14.33,14-21.91,33-21.91,55,0,21.61,7.78,41.16,21.9,55,13.56,13.33,31.92,20.67,51.7,20.67,18.83,0,36.29-7.41,46.7-19.37v1.57a16.15,16.15,0,1,0,32.3,0V165.44A16.32,16.32,0,0,0,854.77,149.14Zm-16.3,73.6c0,30.44-22.81,44.3-44,44.3-24.57,0-43.1-19-43.1-44.3s18.13-43.4,43.1-43.4C815.8,179.34,838.47,194.55,838.47,222.74Z" transform="translate(-48.27 -72.94)"/></svg> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 822.8 225.8"><defs><style>.cls-1,.cls-2{fill:#0098f7}.cls-2{stroke:#231f20;stroke-miterlimit:10;stroke-width:5px}</style></defs><title>Froala</title><path class="cls-1" d="M171.85 89.65A16.16 16.16 0 0 0 159.39 84H64.87c-9 0-16.6 7.74-16.6 16.9v38.4a16.45 16.45 0 0 0 32.9 0v-24.16h78.5a15.63 15.63 0 0 0 15.46-12.94 15.14 15.14 0 0 0-3.28-12.55zM151.81 181a16.05 16.05 0 0 0-11.44-4.85H64.06a15.81 15.81 0 0 0-15.79 15.79v88.69a16.88 16.88 0 0 0 5 11.92 16 16 0 0 0 11.35 4.7h.17a16.45 16.45 0 0 0 16.41-16.6v-73.4h59.3A15.61 15.61 0 0 0 156.16 192a15.1 15.1 0 0 0-4.35-11zm129.5-25.83c-5.29-6.22-16-7.52-24.14-7.52-16.68 0-28.72 7.71-36.5 23.47v-5.67a16.15 16.15 0 1 0-32.3 0v115.5a16.15 16.15 0 1 0 32.3 0v-38.7c0-19.09 3.5-63.5 35.9-63.5a44.73 44.73 0 0 1 5.95.27h.12c12.79 1.2 20.06-2.73 21.6-11.69.76-4.85-.24-8.94-2.93-12.16zM420.1 168c-13.93-13.11-32.9-20.33-53.43-20.33s-39.43 7.22-53.28 20.33C298.72 181.86 291 200.8 291 222.74c0 21.68 8 41.28 22.4 55.2 13.92 13.41 32.85 20.8 53.3 20.8s39.44-7.38 53.44-20.79c14.55-13.94 22.56-33.54 22.56-55.21s-8.05-41.07-22.6-54.74zm-9.73 54.77c0 25.84-18.38 44.6-43.7 44.6S323 248.59 323 222.74c0-25.15 18.38-43.4 43.7-43.4s43.67 18.25 43.67 43.4zM601 149.14a16.17 16.17 0 0 0-16 16.3v1c-10.29-11.63-27.74-18.84-46.7-18.84-19.83 0-38.19 7.24-51.69 20.4-14.33 14-21.91 33-21.91 55 0 21.61 7.78 41.16 21.9 55 13.56 13.33 31.92 20.67 51.7 20.67 18.83 0 36.29-7.41 46.7-19.37v1.57a16.15 16.15 0 1 0 32.3 0V165.44a16.32 16.32 0 0 0-16.3-16.3zm-16.3 73.6c0 30.44-22.81 44.3-44 44.3-24.57 0-43.1-19-43.1-44.3s18.13-43.4 43.1-43.4c21.3 0 43.97 15.21 43.97 43.4zm87.07-149.8a16.17 16.17 0 0 0-16 16.3v191.7a16.15 16.15 0 1 0 32.3 0V89.24a16.32 16.32 0 0 0-16.3-16.3zm183 76.2a16.17 16.17 0 0 0-16 16.3v1c-10.29-11.63-27.74-18.84-46.7-18.84-19.83 0-38.19 7.24-51.69 20.4-14.33 14-21.91 33-21.91 55 0 21.61 7.78 41.16 21.9 55 13.56 13.33 31.92 20.67 51.7 20.67 18.83 0 36.29-7.41 46.7-19.37v1.57a16.15 16.15 0 1 0 32.3 0V165.44a16.32 16.32 0 0 0-16.3-16.3zm-16.3 73.6c0 30.44-22.81 44.3-44 44.3-24.57 0-43.1-19-43.1-44.3s18.13-43.4 43.1-43.4c21.33 0 44 15.21 44 43.4z" transform="translate(-48.27 -72.94)"/></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 979 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

@ -1,12 +1 @@
<?xml version="1.0" encoding="UTF-8"?> <svg width="128" height="128" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><title>klarna</title><path d="M50.487 67.747c.197 21.498 12.425 41.418 31.753 52.167 9.467 5.226 20.117 7.987 31.064 8.086-.198-10.453-3.057-20.709-8.481-29.683-11.242-18.637-32.05-30.274-54.336-30.57zm0-7.494c22.286-.296 43.094-11.933 54.336-30.57 5.424-8.974 8.283-19.23 8.48-29.683-10.946.099-21.596 2.958-31.063 8.185-19.328 10.749-31.556 30.669-31.753 52.068zM39.639 0H21.89C17.55 0 14 3.353 14 7.495v117.448c0 1.38 1.282 2.761 3.156 2.761h17.849c4.339 0 7.79-3.353 7.79-7.494V2.564C42.795 1.084 41.513 0 39.64 0z" fill="#0072CC" fill-rule="evenodd"/></svg>
<svg width="128px" height="128px" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>klarna</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="klarna" fill="#0072CC">
<path d="M50.4869029,67.7473035 C50.6841294,89.2449923 62.9121726,109.164869 82.2403698,119.913713 C91.7072419,125.140216 102.357473,127.901387 113.303544,128 C113.106317,117.546995 110.246533,107.291217 104.822804,98.3174114 C93.5808937,79.6795069 72.7734977,68.0431433 50.4869029,67.7473035 L50.4869029,67.7473035 Z M50.4869029,60.2526965 C72.7734977,59.9568567 93.5808937,48.3204931 104.822804,29.6825886 C110.246533,20.7087827 113.106317,10.4530046 113.303544,0 C102.357473,0.0986132512 91.7072419,2.95839753 82.2403698,8.18489985 C62.9121726,18.9337442 50.6841294,38.853621 50.4869029,60.2526965 Z M39.6394453,0 L21.8890601,0 C17.550077,0 14,3.35285054 14,7.49460709 L14,124.942989 C14,126.323575 15.2819723,127.70416 17.155624,127.70416 L35.0046225,127.70416 C39.3436055,127.70416 42.7950693,124.35131 42.7950693,120.209553 L42.7950693,2.56394453 C42.7950693,1.08474576 41.5130971,0 39.6394453,0 L39.6394453,0 Z" id="Shape"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 649 B

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xml:space="preserve"
enable-background="new 0 0 1000 1000"
viewBox="0 0 64 64"
height="64"
width="64"
y="0px"
x="0px"
id="Layer_1"
version="1.1"><metadata
id="metadata11"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs9" /><g
transform="matrix(0.06400115,0,0,0.06400115,0,-0.00958)"
id="g3"><path
style="fill:#1bb9d7"
id="path5"
d="m 984.809,0.009 -969.616,0 C 6.822,0.009 0,6.831 0,15.237 l 0,969.596 c 0,8.338 6.822,15.158 15.193,15.158 l 969.615,0 c 8.371,0 15.191,-6.82 15.191,-15.158 l 0,-969.596 C 1000,6.831 993.18,0.009 984.809,0.009 Z M 794.014,450.157 537.381,706.737 c -3.203,3.238 -7.477,3.238 -10.68,0 L 173.088,353.21 c -3.205,-3.238 -3.205,-7.512 0,-10.75 L 274.893,240.69 c 3.203,-3.24 7.51,-3.24 10.715,0 l 256.08,256.08 c 2.137,2.137 4.271,2.137 6.443,0 L 694.379,350.522 c 3.203,-3.238 7.475,-3.238 10.715,0 l 88.92,88.92 c 3.203,3.204 3.203,7.477 0,10.715 z" /></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,9 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="256" height="208" viewBox="0 0 256 208" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M177.735 1.676c-3.897-1.858-7.084.017-7.084 4.178v165.507l71.143 33.961c7.828 3.799 14.178 1.156 14.178-5.78V40.18c0-.66-.413-1.238-1.024-1.569L177.743 1.784V1.7l-.008-.025z" fill="#32FC8D"/><path d="M85.321 130.636L166.49 4.74c2.295-3.551 7.349-4.955 11.23-3.138l77.32 36.91c.495.247.677.825.388 1.238l-84.785 131.627-85.32-40.724v-.017z" fill="#0BE370"/><path d="M11.808 3.922C5.318.826 3.113 3.13 6.919 9.042l78.402 121.594 85.321 40.725-85.13-132.057a1.285 1.285 0 0 0-.496-.446L11.808 3.93v-.008z" fill="#14C767"/><path d="M85.321 199.476c0 6.936-5.31 10.074-11.808 6.97L7.085 174.737C3.187 172.888 0 167.967 0 163.798V8.38C0 2.832 4.252.322 9.454 2.807L84.867 38.81c.28.123.454.396.454.693v159.974z" fill="#00AB6C"/></svg>
<svg width="256px" height="208px" viewBox="0 0 256 208" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M177.735242,1.67620228 C173.837865,-0.18165739 170.650604,1.69271659 170.650604,5.85432226 L170.650604,171.360719 L241.794244,205.322394 C249.622026,209.120685 255.971777,206.478396 255.971777,199.542386 L255.971777,40.1793119 C255.971777,39.5187396 255.55892,38.9407388 254.94789,38.6104526 L177.743499,1.78354529 L177.743499,1.70097375 L177.735242,1.67620228 L177.735242,1.67620228 Z" fill="#32FC8D"></path>
<path d="M85.3211734,130.636435 L166.488998,4.73960646 C168.784487,1.18903019 173.837865,-0.214686007 177.718728,1.6018879 L255.038719,38.5113668 C255.534148,38.7590814 255.715806,39.3370822 255.426805,39.7499399 L170.642347,171.377233 L85.3211734,130.652949 L85.3211734,130.636435 L85.3211734,130.636435 Z" fill="#0BE370"></path>
<path d="M11.8077304,3.9221482 C5.31760724,0.825715411 3.1129471,3.12946141 6.91949514,9.04158375 L85.3211734,130.636435 L170.642347,171.360719 L85.5110879,39.3040535 C85.3872306,39.114139 85.2138304,38.9572531 85.0156587,38.8581672 L11.8077304,3.93040535 L11.8077304,3.9221482 L11.8077304,3.9221482 Z" fill="#14C767"></path>
<path d="M85.3211734,199.476329 C85.3211734,206.412338 80.0118233,209.550057 73.513443,206.445367 L7.08463822,174.737895 C3.18726149,172.888293 0,167.967029 0,163.797166 L0,8.38101142 C0,2.83220386 4.25243436,0.32202901 9.45444145,2.8074324 L84.8670299,38.8086243 C85.1477731,38.9324816 85.3211734,39.2049677 85.3211734,39.5022252 L85.3211734,199.4433 L85.3211734,199.476329 L85.3211734,199.476329 Z" fill="#00AB6C"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

@ -1,36 +1 @@
<?xml version="1.0" encoding="utf-8"?> <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 505 194"><style>.st0{fill:#45c0ef}</style><path class="st0" d="M71 46.4c-7.8 0-15.5 1.4-22.6 4.6-4.1 1.9-7.9 4.4-11.3 7.3v-4.5c0-8.3-6-6.7-15.9-6.7-9.8 0-15.4-1.4-15.4 6.8v129.3c0 7.9 5.6 6.5 15.1 6.5S38 191 38 183.3v-56.8c0-11.5 1-28.5 7.6-38.3 5.4-7.9 13.7-10.5 23-10.5 8.3 0 16.4 2 21.7 8.9 6 7.8 7.2 20.1 7.2 29.6V183c0 7.6 6 6.6 15.7 6.6 10.2 0 16.7 1.2 16.7-6.9v-71.9c0-17-3.5-34.5-15.2-47.5C103.3 50.8 87.6 46.4 71 46.4m278.7.3h-15.3V12.8c0-6.9-4.1-8.6-16.1-8.6-11.9 0-16.1 1.9-16.1 8.6v33.9h-18.8c-5.4 0-5.2 5.9-5.2 13.8 0 8.3-.7 16.6 5.4 16.6h18.6v106.7c0 7 7.7 5.9 16.6 5.9 9.6 0 15.6 1.5 15.6-6.1V77.1h16c6.9 0 7.1-4.8 7.1-14.9 0-11 .1-15.5-7.8-15.5M268.4 122c-3.5-1.1-7.1-.7-10.4 1.1-3.3 1.8-5.5 4.5-6.6 8-1.3 4.2-3.2 8.1-5.7 11.7 0 0-1.5 2.2-2.3 3.2-3.7 4.6-8.3 8.2-13.4 11-4.7 2.5-9.7 4.2-15 4.9-5.1.7-10.3.5-15.4-.6-5-1.1-9.8-3-14.2-5.7-12.2-7.5-21.1-25.1-20.7-39.3.6-21 17.1-39.7 38-42.3 2-.2 4-.4 5.9-.3h-.1c-.3 0-.5-.1-.8-.1h.2c.2 0 .4.1.6.1h.1c10.7.1 21.4 3.8 29.6 10.8l1.2 1-1.3.7c-16.6 9.1-33.2 18.2-49.8 27.4-3.6 2-6.6 5.1-7.8 9.1-.7 2.4-.7 5 0 7.4.3 1 .7 1.9 1.2 2.8 1.8 3.1 4.7 5.4 8.2 6.3 4.2 1.1 8.6 0 12.4-2.1l64.2-35.2c3.2-1.7 5.3-4.5 6.6-7.8 4.4-11.5-14-28-20.3-32.8-7-5.3-14.8-9.2-22.9-11.6-27.3-8.2-58.3.1-76.8 23.8-11.4 14.7-17.1 32.8-15.3 51.4.9 9.5 3.8 18.6 8.3 27 4.7 8.6 10.8 16.3 18.5 22.4 7.3 5.7 15.4 10 24.3 12.5 8.8 2.5 17.9 3.2 27 2.3 9.5-1 18.5-3.9 26.9-8.5 8.4-4.5 16.3-10.2 22.5-17.4 6.2-7 10.1-15.5 12.3-24.5 1-3.5.6-7.1-1.1-10.2-1.7-3.1-4.5-5.4-8.1-6.5m226-31.7c-3.8-8.5-9-16.2-15.5-22.8-6.5-6.5-14.2-11.7-22.6-15.5-5.9-2.6-12.1-4.4-18.5-5.2.8.3-.1 0 0 0-.1 0-.2-.1-.2-.1-2.9-.4-5.7-.6-8.7-.6h-.2c-9.8.4-19.4 2.4-28.5 6.4-8.5 3.7-16.3 8.8-22.8 15.4-6.5 6.5-11.5 14.1-15.1 22.6-3.8 8.8-5.5 18.2-5.5 27.8 0 9.8 1.7 19.5 5.7 28.5 3.6 8.5 8.8 16.2 15.5 22.6 6.6 6.4 14.2 11.4 22.7 14.8 7.7 3.2 15.8 4.9 24.1 5.3h3.7c9.7 0 19.3-1.8 28.2-5.7 8.5-3.7 16.2-8.8 22.7-15.4 6.4-6.6 11.5-14.2 15.2-22.6 3.8-8.7 5.7-18 5.7-27.5-.1-9.7-2-19.2-5.9-28m-29.9 53.8c-1.4 1.9-2.9 3.7-4.6 5.4-4.1 4.1-8.9 7.3-14.3 9.5-5.5 2.3-11.3 3.5-17.3 3.5-5.9 0-11.7-1.1-17.2-3.4-5.3-2.3-10.1-5.5-14.2-9.5-4.1-4.1-7.3-8.9-9.5-14.1-2.4-5.4-3.5-11.2-3.5-17.2s1.2-11.8 3.5-17.3c2.3-5.3 5.4-10.2 9.5-14.3 4.1-4.1 8.9-7.3 14.2-9.5 4.4-1.9 9.1-3 13.8-3.3-1.3-.1-1.3-.1.1 0h-.1s2.3-.1 3.3-.1c6 0 11.8 1.1 17.3 3.5 5.3 2.3 10.1 5.4 14.3 9.5 4.1 4.1 7.3 8.9 9.5 14.3 2.3 5.5 3.4 11.3 3.4 17.3 0 5.9-1.1 11.7-3.4 17.2-1.2 2.9-2.8 5.8-4.8 8.5.1 0 .1 0 0 0 .1 0 .1 0 0 0z" id="Vector_Smart_Object"/></svg>
<!-- Generator: Adobe Illustrator 19.2.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 505 194" style="enable-background:new 0 0 505 194;" xml:space="preserve">
<style type="text/css">
.st0{fill:#45C0EF;}
</style>
<g id="Vector_Smart_Object">
<path class="st0" d="M71,46.4c-7.8,0-15.5,1.4-22.6,4.6c-4.1,1.9-7.9,4.4-11.3,7.3v-4.5c0-8.3-6-6.7-15.9-6.7
c-9.8,0-15.4-1.4-15.4,6.8v129.3c0,7.9,5.6,6.5,15.1,6.5S38,191,38,183.3v-56.8c0-11.5,1-28.5,7.6-38.3c5.4-7.9,13.7-10.5,23-10.5
c8.3,0,16.4,2,21.7,8.9c6,7.8,7.2,20.1,7.2,29.6V183c0,7.6,6,6.6,15.7,6.6c10.2,0,16.7,1.2,16.7-6.9v-71.9c0-17-3.5-34.5-15.2-47.5
C103.3,50.8,87.6,46.4,71,46.4"/>
<path class="st0" d="M349.7,46.7h-15.3V12.8c0-6.9-4.1-8.6-16.1-8.6c-11.9,0-16.1,1.9-16.1,8.6v33.9h-18.8c-5.4,0-5.2,5.9-5.2,13.8
c0,8.3-0.7,16.6,5.4,16.6h18.6l0,0v106.7c0,7,7.7,5.9,16.6,5.9c9.6,0,15.6,1.5,15.6-6.1V77.1h16c6.9,0,7.1-4.8,7.1-14.9
C357.5,51.2,357.6,46.7,349.7,46.7"/>
<path class="st0" d="M268.4,122c-3.5-1.1-7.1-0.7-10.4,1.1c-3.3,1.8-5.5,4.5-6.6,8c-1.3,4.2-3.2,8.1-5.7,11.7l0,0
c0,0-1.5,2.2-2.3,3.2c-3.7,4.6-8.3,8.2-13.4,11c-4.7,2.5-9.7,4.2-15,4.9c-5.1,0.7-10.3,0.5-15.4-0.6c-5-1.1-9.8-3-14.2-5.7
c-12.2-7.5-21.1-25.1-20.7-39.3c0.6-21,17.1-39.7,38-42.3c2-0.2,4-0.4,5.9-0.3h-0.1c-0.3,0-0.5-0.1-0.8-0.1c0.1,0,0.1,0,0.2,0
c0.2,0,0.4,0.1,0.6,0.1h0.1l0,0c10.7,0.1,21.4,3.8,29.6,10.8l1.2,1l-1.3,0.7c-16.6,9.1-33.2,18.2-49.8,27.4c-3.6,2-6.6,5.1-7.8,9.1
c-0.7,2.4-0.7,5,0,7.4l0,0c0.3,1,0.7,1.9,1.2,2.8c1.8,3.1,4.7,5.4,8.2,6.3c4.2,1.1,8.6,0,12.4-2.1l64.2-35.2
c3.2-1.7,5.3-4.5,6.6-7.8c4.4-11.5-14-28-20.3-32.8c-7-5.3-14.8-9.2-22.9-11.6l0,0c-27.3-8.2-58.3,0.1-76.8,23.8
c-11.4,14.7-17.1,32.8-15.3,51.4c0.9,9.5,3.8,18.6,8.3,27c4.7,8.6,10.8,16.3,18.5,22.4c7.3,5.7,15.4,10,24.3,12.5
c8.8,2.5,17.9,3.2,27,2.3c9.5-1,18.5-3.9,26.9-8.5c8.4-4.5,16.3-10.2,22.5-17.4c6.2-7,10.1-15.5,12.3-24.5c1-3.5,0.6-7.1-1.1-10.2
C274.8,125.4,272,123.1,268.4,122"/>
<path class="st0" d="M494.4,90.3c-3.8-8.5-9-16.2-15.5-22.8c-6.5-6.5-14.2-11.7-22.6-15.5c-5.9-2.6-12.1-4.4-18.5-5.2
c0.8,0.3-0.1,0,0,0c-0.1,0-0.2-0.1-0.2-0.1c-2.9-0.4-5.7-0.6-8.7-0.6h-0.1h-0.1c-9.8,0.4-19.4,2.4-28.5,6.4
c-8.5,3.7-16.3,8.8-22.8,15.4c-6.5,6.5-11.5,14.1-15.1,22.6c-3.8,8.8-5.5,18.2-5.5,27.8c0,9.8,1.7,19.5,5.7,28.5
c3.6,8.5,8.8,16.2,15.5,22.6c6.6,6.4,14.2,11.4,22.7,14.8c7.7,3.2,15.8,4.9,24.1,5.3c0.1,0,2.6,0,3.7,0c9.7,0,19.3-1.8,28.2-5.7
c8.5-3.7,16.2-8.8,22.7-15.4c6.4-6.6,11.5-14.2,15.2-22.6c3.8-8.7,5.7-18,5.7-27.5C500.2,108.6,498.3,99.1,494.4,90.3 M464.5,144.1
c-1.4,1.9-2.9,3.7-4.6,5.4c-4.1,4.1-8.9,7.3-14.3,9.5c-5.5,2.3-11.3,3.5-17.3,3.5c-5.9,0-11.7-1.1-17.2-3.4
c-5.3-2.3-10.1-5.5-14.2-9.5c-4.1-4.1-7.3-8.9-9.5-14.1c-2.4-5.4-3.5-11.2-3.5-17.2s1.2-11.8,3.5-17.3c2.3-5.3,5.4-10.2,9.5-14.3
c4.1-4.1,8.9-7.3,14.2-9.5c4.4-1.9,9.1-3,13.8-3.3c-1.3-0.1-1.3-0.1,0.1,0h-0.1c0,0,2.3-0.1,3.3-0.1c6,0,11.8,1.1,17.3,3.5
c5.3,2.3,10.1,5.4,14.3,9.5c4.1,4.1,7.3,8.9,9.5,14.3c2.3,5.5,3.4,11.3,3.4,17.3c0,5.9-1.1,11.7-3.4,17.2
C468.1,138.5,466.5,141.4,464.5,144.1C464.6,144.1,464.6,144.1,464.5,144.1C464.6,144.1,464.6,144.1,464.5,144.1L464.5,144.1z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 400 400"><path fill="#465283" d="M32.8052237 143.08916093h58.99287786c17.31589437.14618444 29.8633917 5.11148297 37.64000586 14.89490113 7.77810583 9.7839154 10.34627796 23.14586886 7.70501362 40.08486595-1.02726886 7.73981947-3.30158044 15.33295724-6.8239292 22.7804078-3.37516988 7.44745057-8.07146916 14.1649734-14.08740616 20.15256853-7.33756362 7.59264056-15.18876168 12.41175465-23.55359415 14.45634783-8.36433526 2.0445932-17.02253105 3.06639256-25.97409018 3.06639256H40.2899662l-8.36483248 41.61831083h-30.5968l31.47688997-157.0537946m25.7548135 24.97068818L45.352721 233.7732332c.88008997.1456872 1.76017994.21877943 2.64126435.21877943h3.08180656c14.08740618.1456872 25.8274085-1.241076 35.21950986-4.16178135 9.3916041-3.06639255 15.70140165-13.7264201 18.9303871-31.98057988 2.6402699-15.3329572-.00099446-24.167171-7.92578195-26.50413306-7.77661414-2.33696204-17.53566823-3.43085917-29.27517336-3.2856692-1.76117438.14618444-3.44875932.21877944-5.06275482.21877944h-4.6222126l.2202711-.21877943m113.4450882-66.795845h30.37702614l-8.58510358 41.8375875h27.29521957c14.96849058.29187164 26.12077184 3.3587614 33.45833546 9.19967487 7.4842453 5.8414107 9.68596188 16.93949432 6.60316087 33.2942509l-14.74772224 72.94155797h-30.81657388l14.08740616-69.65539156c1.4668166-7.30126614 1.02726886-12.4853441-1.32063216-15.55223387-2.34790102-3.06639255-7.41115306-4.5993402-15.18826445-4.5993402l-24.43368413-.2197739-18.04930267 90.0267395h-30.37702614l31.69716108-157.272574m121.77262873 41.8246596h58.99238065c17.3163916.14618445 29.8633917 5.11148298 37.6410003 14.89490114 7.77661417 9.7839154 10.34578075 23.14586887 7.70401918 40.08486596-1.02726886 7.73981945-3.30158044 15.33295722-6.82343198 22.78040778-3.37616433 7.44745057-8.07146915 14.1649734-14.08790338 20.15256853-7.33756363 7.59264056-15.18826445 12.41175465-23.55359415 14.45634783-8.3633408 2.0445932-17.02203385 3.06639256-25.97359297 3.06639256H301.2624967l-8.3648325 41.6178136h-30.5977945l31.47788443-157.0537946m25.7543163 24.97068817L306.324257 233.7732332c.88108444.1456872 1.76167163.21877942 2.6422588.21877942h3.08130935c14.0884006.1456872 25.82790574-1.24107602 35.22000707-4.16178136 9.3916041-3.06639255 15.7023961-13.7264201 18.9303871-31.98057988 2.64126435-15.3329572 0-24.167171-7.92429027-26.50413306-7.7776086-2.33696205-17.53715993-3.43085918-29.27666506-3.2856692-1.76017995.14618443-3.4482621.21877943-5.06176038.21877943h-4.62320705l.2202711-.21877943"/></svg> <svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 400 400"><path fill="#465283" d="M32.805 143.09h58.993c17.316.145 29.863 5.11 37.64 14.894 7.778 9.784 10.346 23.146 7.705 40.085-1.027 7.74-3.301 15.333-6.824 22.78-3.375 7.448-8.071 14.165-14.087 20.153-7.338 7.593-15.189 12.412-23.554 14.456-8.364 2.045-17.022 3.067-25.974 3.067H40.29l-8.365 41.618H1.328l31.477-157.054m25.755 24.97l-13.207 65.714c.88.146 1.76.219 2.641.219h3.082c14.087.146 25.827-1.241 35.22-4.162 9.39-3.066 15.7-13.726 18.93-31.98 2.64-15.333-.001-24.168-7.926-26.504-7.777-2.337-17.536-3.431-29.275-3.286a61.27 61.27 0 0 1-5.063.219H58.34l.22-.22m113.445-66.795h30.377l-8.585 41.838h27.295c14.969.291 26.121 3.358 33.459 9.2 7.484 5.84 9.686 16.939 6.603 33.294l-14.748 72.941h-30.817l14.088-69.655c1.467-7.302 1.027-12.486-1.32-15.553-2.349-3.066-7.412-4.599-15.189-4.599l-24.434-.22-18.049 90.027h-30.377l31.697-157.272m121.773 41.824h58.992c17.317.146 29.864 5.112 37.641 14.895 7.777 9.784 10.346 23.146 7.704 40.085-1.027 7.74-3.301 15.333-6.823 22.78-3.376 7.448-8.072 14.165-14.088 20.153-7.338 7.593-15.188 12.412-23.554 14.456-8.363 2.045-17.022 3.067-25.973 3.067h-26.415l-8.364 41.617H262.3l31.478-157.053m25.754 24.97l-13.208 65.714a16.17 16.17 0 0 0 2.643.219h3.08c14.09.146 25.829-1.241 35.22-4.162 9.392-3.066 15.703-13.726 18.931-31.98 2.641-15.333 0-24.168-7.924-26.504-7.778-2.337-17.537-3.431-29.277-3.286a61.31 61.31 0 0 1-5.061.219h-4.624l.22-.22"/></svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 265" enable-background="new 0 0 160 265"><g><path fill="#92D13D" d="M17.8 23.9l6.2-6.2c9.5-9.4 25-8.8 33.7 1.3l85.8 100c7.5 8.7 7.4 21.6-.2 30.2l-85.5 96.9c-8.8 9.9-24.1 10.4-33.5 1l-6.3-6.1c-8.4-8.4-9-21.8-1.4-31l51.2-61.4c7-8.4 7.1-20.5.3-29.1l-52-65c-7.4-9.1-6.6-22.3 1.7-30.6z"/><path fill="#49691F" d="M67.8 148.6l-51.2 61.4c-7.6 9.1-7 22.6 1.4 31l6.2 6.2c9.4 9.4 24.7 8.9 33.5-1l18.5-21c7-13.8 10.9-29.4 10.9-45.9 0-20.4-6-39.3-16.2-55.2 3.8 7.8 2.7 17.5-3.1 24.5z"/></g></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 265"><path fill="#92D13D" d="M17.8 23.9l6.2-6.2c9.5-9.4 25-8.8 33.7 1.3l85.8 100c7.5 8.7 7.4 21.6-.2 30.2l-85.5 96.9c-8.8 9.9-24.1 10.4-33.5 1L18 241c-8.4-8.4-9-21.8-1.4-31l51.2-61.4c7-8.4 7.1-20.5.3-29.1l-52-65c-7.4-9.1-6.6-22.3 1.7-30.6z"/><path fill="#49691F" d="M67.8 148.6L16.6 210c-7.6 9.1-7 22.6 1.4 31l6.2 6.2c9.4 9.4 24.7 8.9 33.5-1l18.5-21c7-13.8 10.9-29.4 10.9-45.9 0-20.4-6-39.3-16.2-55.2 3.8 7.8 2.7 17.5-3.1 24.5z"/></svg>

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -1,12 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="59" height="61" viewBox="0 0 59 61" xmlns="http://www.w3.org/2000/svg"><title>rock-logo</title><path d="M57.705 60.063L41.387 40.936s11.83-.026 11.928-.028a5.456 5.456 0 0 0 3.736-1.259 5.504 5.504 0 0 0 .693-7.752L32.396 2.151a5.562 5.562 0 0 0-.836-.891c-.039-.029-.084-.051-.121-.082-.012-.01-.027-.018-.039-.025a5.887 5.887 0 0 0-.867-.563c-.018-.009-.039-.014-.059-.021a5.377 5.377 0 0 0-.922-.366c-.057-.013-.119-.025-.178-.039-.277-.063-.557-.129-.84-.15-.172-.021-.346-.008-.516-.008-.172 0-.34-.014-.514.008-.281.021-.559.087-.84.15l-.174.039a5.18 5.18 0 0 0-.924.366c-.021.009-.039.014-.057.021a5.204 5.204 0 0 0-.869.563c-.018.009-.025.017-.037.025-.039.031-.084.053-.123.082-.32.271-.594.57-.84.885L0 29.86h14.461l13.557-15.891 13.604 15.967-12.104.008c-.045 0-.088.013-.133.017-.287 0-.578.026-.865.071a7.39 7.39 0 0 0-.244.054 5 5 0 0 0-.775.229 2 2 0 0 0-.266.117 4.44 4.44 0 0 0-.957.549c-.117.081-.238.143-.346.229-.076.067-.137.147-.211.221a4.613 4.613 0 0 0-.258.264 5.523 5.523 0 0 0-.453.531c-.068.105-.131.205-.195.308a5.154 5.154 0 0 0-.332.601c-.059.126-.107.255-.156.384-.072.199-.145.398-.191.605a4.218 4.218 0 0 0-.084.451 5.182 5.182 0 0 0-.07.606c-.006.074-.023.137-.023.209 0 .101.023.189.027.294.012.188.023.368.051.557a5.735 5.735 0 0 0 .246 1.012c.072.199.154.397.248.588.061.119.119.234.188.35.123.215.26.414.408.605.045.057.068.115.115.168l18.004 21.104h14.459v-.005z" fill="#EE7624" fill-rule="evenodd"/></svg>
<svg width="59px" height="61px" viewBox="0 0 59 61" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 40.2 (33826) - http://www.bohemiancoding.com/sketch -->
<title>rock-logo</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="rock-logo" fill="#EE7624">
<path d="M57.705,60.063 L41.387,40.936 C41.387,40.936 53.217,40.91 53.315,40.908 C54.628,40.959 55.969,40.557 57.051,39.649 C59.381,37.701 59.694,34.235 57.744,31.897 L32.396,2.151 C32.154,1.832 31.88,1.531 31.56,1.26 C31.521,1.231 31.476,1.209 31.439,1.178 C31.427,1.168 31.412,1.16 31.4,1.153 C31.121,0.937 30.834,0.748 30.533,0.59 C30.515,0.581 30.494,0.576 30.474,0.569 C30.173,0.418 29.865,0.293 29.552,0.203 C29.495,0.19 29.433,0.178 29.374,0.164 C29.097,0.101 28.817,0.035 28.534,0.014 C28.362,-0.007 28.188,0.006 28.018,0.006 C27.846,0.006 27.678,-0.008 27.504,0.014 C27.223,0.035 26.945,0.101 26.664,0.164 C26.605,0.178 26.549,0.19 26.49,0.203 C26.172,0.293 25.865,0.418 25.566,0.569 C25.545,0.578 25.527,0.583 25.509,0.59 C25.204,0.746 24.911,0.937 24.64,1.153 C24.622,1.162 24.615,1.17 24.603,1.178 C24.564,1.209 24.519,1.231 24.48,1.26 C24.16,1.531 23.886,1.83 23.64,2.145 L0,29.86 L14.461,29.86 L28.018,13.969 L41.622,29.936 L29.518,29.944 C29.473,29.944 29.43,29.957 29.385,29.961 C29.098,29.961 28.807,29.987 28.52,30.032 C28.438,30.049 28.354,30.067 28.276,30.086 C28.016,30.139 27.756,30.218 27.501,30.315 C27.407,30.349 27.319,30.387 27.235,30.432 C27.003,30.53 26.78,30.645 26.563,30.784 C26.467,30.846 26.37,30.915 26.278,30.981 C26.161,31.062 26.04,31.124 25.932,31.21 C25.856,31.277 25.795,31.357 25.721,31.431 C25.633,31.513 25.547,31.603 25.463,31.695 C25.297,31.866 25.145,32.046 25.01,32.226 C24.942,32.331 24.879,32.431 24.815,32.534 C24.688,32.732 24.579,32.93 24.483,33.135 C24.424,33.261 24.376,33.39 24.327,33.519 C24.255,33.718 24.182,33.917 24.136,34.124 C24.099,34.269 24.073,34.425 24.052,34.575 C24.017,34.777 23.993,34.978 23.982,35.181 C23.976,35.255 23.959,35.318 23.959,35.39 C23.959,35.491 23.982,35.579 23.986,35.684 C23.998,35.872 24.009,36.052 24.037,36.241 C24.062,36.429 24.105,36.613 24.148,36.796 C24.187,36.95 24.23,37.097 24.283,37.253 C24.355,37.452 24.437,37.65 24.531,37.841 C24.592,37.96 24.65,38.075 24.719,38.191 C24.842,38.406 24.979,38.605 25.127,38.796 C25.172,38.853 25.195,38.911 25.242,38.964 L43.246,60.068 L57.705,60.068 L57.705,60.063 L57.705,60.063 Z" id="Shape"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

@ -1,24 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="170" height="139" viewBox="0 0 170 139" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>logo-green-icon</title><defs><path d="M95.447 69.363h.012l-.006.015v.001c-.414 1.055-20.237 51.304-44.586 51.304-24.603 0-29.696-18.224-30.903-51.304C21.168 36.29 26.26 18.06 50.867 18.06c24.35 0 44.166 50.248 44.58 51.303zm22.645.009L139 113.037l5.17-10.49h25.36l-19.608 33.02h-25.65s-16.229-34.099-19.3-44.036c0 0-14.019 31.111-30.552 41.427-16.533 10.317-40.271 3.69-40.271 3.69s-24.9-6.606-31.633-39.35C.636 88.151-.143 78.654.02 69.372c-.164-9.283.614-18.78 2.495-27.927C9.248 8.701 34.149 2.095 34.149 2.095s23.738-6.627 40.271 3.69c16.533 10.316 30.553 41.428 30.553 41.428 3.07-9.938 19.3-44.038 19.3-44.038h25.65l19.606 33.022H144.17L139 25.707l-20.908 43.665z" id="a"/><linearGradient x1="90.535%" y1="23.093%" x2="50%" y2="68.905%" id="b"><stop stop-opacity=".199" offset="0%"/><stop stop-opacity="0" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><mask id="c" fill="#fff"><use xlink:href="#a"/></mask><use fill="#4DC997" xlink:href="#a"/><path d="M95.661 69.299l9.262 22.18-7.743 21.238L76.9 87.519l18.761-18.22z" fill="url(#b)" opacity=".2" mask="url(#c)"/></g></svg>
<svg width="170px" height="139px" viewBox="0 0 170 139" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 3.6.1 (26313) - http://www.bohemiancoding.com/sketch -->
<title>logo-green-icon</title>
<desc>Created with Sketch.</desc>
<defs>
<path d="M95.4468436,69.3626204 L95.4592285,69.3626204 C95.4592285,69.3626204 95.457159,69.3679348 95.4530363,69.3784554 C95.4532988,69.3791286 95.4534302,69.3794661 95.4534302,69.3794661 C95.0391633,70.4343838 75.2163095,120.683062 50.8674558,120.683062 C26.2644774,120.683062 21.1714061,102.459391 19.9642374,69.3794661 C21.1682129,36.2888823 26.2603015,18.0602652 50.8674558,18.0602652 C75.2163064,18.0602652 95.0334809,68.3077156 95.4468436,69.3626204 Z M118.092311,69.3716637 L139.000268,113.03658 L144.17019,102.546345 L169.529456,102.546345 L149.922143,135.56783 L124.272418,135.56783 C124.272418,135.56783 108.042969,101.468151 104.972924,91.5307203 C104.972924,91.5307203 90.9533928,122.642048 74.4201896,132.958455 C57.8869865,143.274861 34.1487053,136.647908 34.1487053,136.647908 C34.1487053,136.647908 9.24831463,130.042439 2.51589276,97.2982984 C0.635071049,88.1506408 -0.142736189,78.6540611 0.0213285458,69.3716637 C-0.142736189,60.0892664 0.635071049,50.5926866 2.51589276,41.445029 C9.24831463,8.70088837 34.1487053,2.09541962 34.1487053,2.09541962 C34.1487053,2.09541962 57.8869865,-4.5315335 74.4201896,5.78487275 C90.9533928,16.101279 104.972924,47.2126071 104.972924,47.2126071 C108.042969,37.2751764 124.272418,3.17549775 124.272418,3.17549775 L149.922143,3.17549775 L169.529456,36.1969821 L144.17019,36.1969821 L139.000268,25.7067477 L118.092311,69.3716637 Z" id="path-1"></path>
<linearGradient x1="90.5349364%" y1="23.0926676%" x2="50%" y2="68.9046334%" id="linearGradient-3">
<stop stop-color="#000000" stop-opacity="0.199190444" offset="0%"></stop>
<stop stop-color="#000000" stop-opacity="0" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Logo" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Exports" transform="translate(-1407.000000, -158.000000)">
<g id="logo-green-icon" transform="translate(1407.000000, 158.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="Mask" fill="#4DC997" xlink:href="#path-1"></use>
<path d="M95.6611328,69.2988281 L104.922852,91.4794922 L97.1796875,112.716797 L76.9003906,87.5185547 L95.6611328,69.2988281 Z" id="Path-17" fill="url(#linearGradient-3)" opacity="0.2" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -1,27 +1 @@
<?xml version="1.0" encoding="utf-8"?> <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58 58.7"><style>.st0{fill:#337ab7;stroke:#fff;stroke-miterlimit:10}.st1,.st2{fill:#5bc0de}.st2{stroke:#fff;stroke-miterlimit:10}.st3{fill:#337ab7}</style><path class="st0" d="M57.3 1.1L.7 57.6.6 1.2z"/><path class="st1" d="M21.9 32.3c-4.4-4.4-4.4-11.5.1-15.9s11.7-4.4 16.2.1l.5.5 7.2-7c-.3-.4-.7-.8-1.1-1.1-8.4-8.3-22-8.4-30.5-.1s-8.5 21.7-.1 30c.4.4.8.7 1.2 1.1l7.2-7c-.3-.3-.5-.4-.7-.6z"/><path class="st1" d="M23.2 30.5c-3.6-3.6-3.6-9.4.1-13s9.6-3.5 13.2.1l.4.4-13.2 12.9c-.2-.2-.3-.3-.5-.4z"/><path class="st2" d="M57.5 1.4L1 57.9h56.5z"/><path class="st3" d="M35.6 26.8c4.5 4.4 4.4 11.5 0 15.9-4.5 4.4-11.7 4.4-16.2 0l-.5-.5-7.2 7c.3.4.7.8 1.1 1.1 8.4 8.3 22.1 8.3 30.5.1 8.4-8.3 8.5-21.7.1-30-.4-.4-.8-.7-1.2-1.1l-7.2 7c.3.2.4.3.6.5z"/><path class="st3" d="M34.3 28.6c3.6 3.6 3.6 9.4 0 13-3.7 3.6-9.6 3.6-13.2 0l-.4-.4 13.2-12.9c.1.1.2.2.4.3z"/></svg>
<!-- Generator: Adobe Illustrator 19.1.1, 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 58 58.7" style="enable-background:new 0 0 58 58.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#337AB7;stroke:#FFFFFF;stroke-miterlimit:10;}
.st1{fill:#5BC0DE;}
.st2{fill:#5BC0DE;stroke:#FFFFFF;stroke-miterlimit:10;}
.st3{fill:#337AB7;}
</style>
<polygon class="st0" points="57.3,1.1 0.7,57.6 0.6,1.2 "/>
<g>
<path class="st1" d="M21.9,32.3c-4.4-4.4-4.4-11.5,0.1-15.9c4.5-4.4,11.7-4.4,16.2,0.1c0.2,0.2,0.3,0.3,0.5,0.5l7.2-7
c-0.3-0.4-0.7-0.8-1.1-1.1c-8.4-8.3-22-8.4-30.5-0.1s-8.5,21.7-0.1,30c0.4,0.4,0.8,0.7,1.2,1.1l7.2-7
C22.3,32.6,22.1,32.5,21.9,32.3z"/>
<path class="st1" d="M23.2,30.5c-3.6-3.6-3.6-9.4,0.1-13s9.6-3.5,13.2,0.1c0.1,0.1,0.3,0.3,0.4,0.4L23.7,30.9
C23.5,30.7,23.4,30.6,23.2,30.5z"/>
</g>
<polygon class="st2" points="57.5,1.4 1,57.9 57.5,57.9 "/>
<g>
<path class="st3" d="M35.6,26.8c4.5,4.4,4.4,11.5,0,15.9c-4.5,4.4-11.7,4.4-16.2,0c-0.2-0.2-0.3-0.3-0.5-0.5l-7.2,7
c0.3,0.4,0.7,0.8,1.1,1.1c8.4,8.3,22.1,8.3,30.5,0.1c8.4-8.3,8.5-21.7,0.1-30c-0.4-0.4-0.8-0.7-1.2-1.1l-7.2,7
C35.3,26.5,35.4,26.6,35.6,26.8z"/>
<path class="st3" d="M34.3,28.6c3.6,3.6,3.6,9.4,0,13c-3.7,3.6-9.6,3.6-13.2,0c-0.1-0.1-0.3-0.3-0.4-0.4l13.2-12.9
C34,28.4,34.1,28.5,34.3,28.6z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 742 B

@ -1,12 +1 @@
<?xml version="1.0" encoding="UTF-8"?> <svg width="256" height="256" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg"><title>256</title><path d="M140.193 69.104a5.298 5.298 0 0 0-5.954 2.825l-22.549 45.823a5.315 5.315 0 0 0 .26 5.134 5.315 5.315 0 0 0 4.499 2.494h22.545a5.346 5.346 0 0 0 3.748-1.547 5.347 5.347 0 0 0 1.556-3.74V74.26c0-2.463-1.7-4.599-4.105-5.156zM181.388 15.3v104.793a5.33 5.33 0 0 0 1.55 3.74 5.353 5.353 0 0 0 3.747 1.547h65.776c-.908-48.596-29.697-90.382-71.073-110.08zm66.198 147.116h-60.901a5.33 5.33 0 0 0-3.747 1.543 5.327 5.327 0 0 0-1.55 3.745v72.483c31.845-15.159 56.236-43.406 66.198-77.77zm-108.592 0H93.026a5.29 5.29 0 0 0-4.762 2.948l-31.757 64.554c20.204 14.074 44.77 22.332 71.274 22.332 5.601 0 11.114-.374 16.517-1.087v-83.459c0-1.39-.57-2.76-1.556-3.745a5.323 5.323 0 0 0-3.748-1.543zm-99.105 0H7.975c4.308 14.862 11.316 28.575 20.456 40.585l16.22-32.965a5.313 5.313 0 0 0-.261-5.13 5.314 5.314 0 0 0-4.5-2.49zM3.1 125.38h60.216a5.287 5.287 0 0 0 4.756-2.96L126.7 3.25C59.112 3.825 4.357 58.068 3.1 125.38z" fill="#00BF9A" fill-rule="evenodd"/></svg>
<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>256</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="256" fill="#00BF9A">
<path d="M140.193354,69.1040859 C137.79248,68.5490638 135.323592,69.7160334 134.239024,71.9292095 L111.690359,117.752486 C110.888845,119.393156 110.986998,121.33919 111.950199,122.885933 C112.911363,124.432675 114.627204,125.380482 116.448528,125.380482 L138.994343,125.380482 C140.391289,125.380482 141.757689,124.814889 142.742068,123.833333 C143.727261,122.844865 144.297851,121.47947 144.297851,120.093338 L144.297851,74.2598958 C144.297851,71.797468 142.598708,69.6611411 140.193354,69.1040859 Z M181.388195,15.2998758 L181.388195,120.093338 C181.388195,121.47947 181.949825,122.844865 182.938276,123.833333 C183.924284,124.814889 185.291499,125.380482 186.68478,125.380482 L252.460579,125.380482 C251.553174,76.7841283 222.763866,34.9976718 181.388195,15.2998758 Z M247.585929,162.416112 L186.68478,162.416112 C185.291499,162.416112 183.924284,162.973167 182.938276,163.959196 C181.949825,164.943598 181.388195,166.314685 181.388195,167.704477 L181.388195,240.186706 C213.233273,225.0283 237.623626,196.78113 247.585929,162.416112 Z M138.994343,162.416112 L93.0262624,162.416112 C90.9968215,162.416112 89.1600206,163.55096 88.2644274,165.364439 L56.5073214,229.91778 C76.7113165,243.991759 101.277612,252.25 127.780897,252.25 C133.382122,252.25 138.895375,251.876326 144.297851,251.162726 L144.297851,167.704477 C144.297851,166.314685 143.727261,164.943598 142.742068,163.959196 C141.757689,162.973167 140.391289,162.416112 138.994343,162.416112 Z M39.8893643,162.416112 L7.97464365,162.416112 C12.2827766,177.277694 19.2911291,190.991009 28.4307407,203.001037 L44.6503848,170.035976 C45.449047,168.39612 45.3537451,166.451713 44.3897301,164.90619 C43.4273442,163.360666 41.713947,162.416112 39.8893643,162.416112 Z M3.09958678,125.380482 L63.3148882,125.380482 C65.3418856,125.380482 67.1778719,124.23669 68.0710214,122.420365 L126.699588,3.25 C59.1118317,3.8253526 4.35724556,58.0682945 3.09958678,125.380482 Z" id="Logo"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -1,13 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="256" height="310" viewBox="0 0 256 310" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M42.754 244.495l-29.918 6.826V57.565l29.918 6.839v180.091" fill="#F68536"/><path d="M80.082 255.931l-37.328 10.608V42.612l37.328 10.595v202.724m47.884 11.75l-47.884 17.524V23.946l47.884 17.516v226.219M256 245.079l-128.034 64.017V0L256 64.017v181.062" fill="#F68536"/><path d="M102.444 12.763L127.966 0v309.096l-25.522-12.759V12.763M60.325 33.82l19.757-9.878v261.212l-19.757-9.878V33.82M27.016 50.477l15.738-7.869v223.88l-15.738-7.874V50.477m-14.18 7.088L0 63.983v181.134l12.836 6.414V57.565" fill="#9D5025"/></svg>
<svg width="256px" height="310px" viewBox="0 0 256 310" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M42.754,244.495 L12.836,251.321 L12.836,57.565 L42.754,64.404 L42.754,244.495" fill="#F68536"></path>
<path d="M80.082,255.931 L42.754,266.539 L42.754,42.612 L80.082,53.207 L80.082,255.931" fill="#F68536"></path>
<path d="M127.966,267.681 L80.082,285.205 L80.082,23.946 L127.966,41.462 L127.966,267.681" fill="#F68536"></path>
<path d="M256,245.079 L127.966,309.096 L127.966,0 L256,64.017 L256,245.079" fill="#F68536"></path>
<path d="M102.444,12.763 L127.966,0 L127.966,309.096 L102.444,296.337 L102.444,12.763" fill="#9D5025"></path>
<path d="M60.325,33.82 L80.082,23.942 L80.082,285.154 L60.325,275.276 L60.325,33.82" fill="#9D5025"></path>
<path d="M27.016,50.477 L42.754,42.608 L42.754,266.488 L27.016,258.614 L27.016,50.477" fill="#9D5025"></path>
<path d="M12.836,57.565 L0,63.983 L0,245.117 L12.836,251.531 L12.836,57.565" fill="#9D5025"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 641 B

@ -1,17 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="256" height="310" viewBox="0 0 256 310" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M20.624 53.686L0 64v181.02l20.624 10.254.124-.149V53.828l-.124-.142" fill="#8C3123"/><path d="M131 229L20.624 255.274V53.686L131 79.387V229" fill="#E05243"/><path d="M81.178 187.866l46.818 5.96.294-.678.263-76.77-.557-.6-46.818 5.874v66.214" fill="#8C3123"/><path d="M127.996 229.295l107.371 26.035.169-.269-.003-201.195-.17-.18-107.367 25.996v149.613" fill="#8C3123"/><path d="M174.827 187.866l-46.831 5.96v-78.048l46.831 5.874v66.214" fill="#E05243"/><path d="M174.827 89.631l-46.831 8.535-46.818-8.535 46.759-12.256 46.89 12.256" fill="#5E1F18"/><path d="M174.827 219.801l-46.831-8.591-46.818 8.591 46.761 13.053 46.888-13.053" fill="#F2B0A9"/><path d="M81.178 89.631l46.818-11.586.379-.117V.313L127.996 0 81.178 23.413v66.218" fill="#8C3123"/><path d="M174.827 89.631l-46.831-11.586V0l46.831 23.413v66.218" fill="#E05243"/><path d="M127.996 309.428l-46.823-23.405v-66.217l46.823 11.582.689.783-.187 75.906-.502 1.351" fill="#8C3123"/><path d="M127.996 309.428l46.827-23.405v-66.217l-46.827 11.582v78.04M235.367 53.686L256 64v181.02l-20.633 10.31V53.686" fill="#E05243"/></svg>
<svg width="256px" height="310px" viewBox="0 0 256 310" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M20.624,53.686 L0,64 L0,245.02 L20.624,255.274 L20.748,255.125 L20.748,53.828 L20.624,53.686" fill="#8C3123"></path>
<path d="M131,229 L20.624,255.274 L20.624,53.686 L131,79.387 L131,229" fill="#E05243"></path>
<path d="M81.178,187.866 L127.996,193.826 L128.29,193.148 L128.553,116.378 L127.996,115.778 L81.178,121.652 L81.178,187.866" fill="#8C3123"></path>
<path d="M127.996,229.295 L235.367,255.33 L235.536,255.061 L235.533,53.866 L235.363,53.686 L127.996,79.682 L127.996,229.295" fill="#8C3123"></path>
<path d="M174.827,187.866 L127.996,193.826 L127.996,115.778 L174.827,121.652 L174.827,187.866" fill="#E05243"></path>
<path d="M174.827,89.631 L127.996,98.166 L81.178,89.631 L127.937,77.375 L174.827,89.631" fill="#5E1F18"></path>
<path d="M174.827,219.801 L127.996,211.21 L81.178,219.801 L127.939,232.854 L174.827,219.801" fill="#F2B0A9"></path>
<path d="M81.178,89.631 L127.996,78.045 L128.375,77.928 L128.375,0.313 L127.996,0 L81.178,23.413 L81.178,89.631" fill="#8C3123"></path>
<path d="M174.827,89.631 L127.996,78.045 L127.996,0 L174.827,23.413 L174.827,89.631" fill="#E05243"></path>
<path d="M127.996,309.428 L81.173,286.023 L81.173,219.806 L127.996,231.388 L128.685,232.171 L128.498,308.077 L127.996,309.428" fill="#8C3123"></path>
<path d="M127.996,309.428 L174.823,286.023 L174.823,219.806 L127.996,231.388 L127.996,309.428" fill="#E05243"></path>
<path d="M235.367,53.686 L256,64 L256,245.02 L235.367,255.33 L235.367,53.686" fill="#E05243"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -1,24 +1 @@
<?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 500 500"><path fill="#2C4052" d="M500 470.837C500 486.949 486.94 500 470.837 500H29.164C13.056 500 0 486.949 0 470.837V29.164C0 13.06 13.056 0 29.164 0h441.673C486.94 0 500 13.06 500 29.164v441.673z"/><path fill="#5FAADA" d="M304.107 170.151c-.336.335-.66.679-.99 1.018l-.021-.02-116.997 116.997c-9.981 9.691-23.093 15.031-37.03 15.031-14.204 0-27.562-5.531-37.601-15.58-20.734-20.729-20.734-54.467 0-75.202 10.039-10.043 23.392-15.575 37.601-15.575 14.2 0 27.553 5.532 37.601 15.575l42.246-42.25c-21.329-21.325-49.686-33.072-79.847-33.072-30.162 0-58.522 11.747-79.847 33.076-44.033 44.029-44.033 115.706 0 159.735C90.546 351.215 118.907 363 149.064 363h.004c30.161 0 58.521-11.785 79.847-33.113l-.011-.02L300.766 258h.006l44.802-44.812.021.017c.258-.267.497-.544.765-.806 20.729-20.729 54.462-20.736 75.196-.001l42.25-42.25c-44.03-44.029-115.673-44.03-159.699.003z"/><path fill="#FFF" d="M383.954 303.18c-14.204 0-27.558-5.533-37.596-15.58a52.827 52.827 0 0 1-14.473-26.938l-45.745 45.746a112.571 112.571 0 0 0 17.963 23.439c21.328 21.329 49.688 33.076 79.851 33.076s58.521-11.747 79.852-33.076l-42.25-42.244c-10.044 10.043-23.397 15.577-37.602 15.577z"/></svg>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<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"
width="32px" height="32px" viewBox="0 0 500 500">
<g>
<g>
<path fill="#2C4052" d="M500,470.837C500,486.949,486.94,500,470.837,500H29.164C13.056,500,0,486.949,0,470.837V29.164
C0,13.06,13.056,0,29.164,0h441.673C486.94,0,500,13.06,500,29.164V470.837z"/>
</g>
<path fill="#5FAADA" d="M304.107,170.151c-0.336,0.335-0.66,0.679-0.99,1.018l-0.021-0.02L186.099,288.146
c-9.981,9.691-23.093,15.031-37.03,15.031c-14.204,0-27.562-5.531-37.601-15.58c-20.734-20.729-20.734-54.467,0-75.202
c10.039-10.043,23.392-15.575,37.601-15.575c14.2,0,27.553,5.532,37.601,15.575l42.246-42.25
c-21.329-21.325-49.686-33.072-79.847-33.072c-30.162,0-58.522,11.747-79.847,33.076c-44.033,44.029-44.033,115.706,0,159.735
C90.546,351.215,118.907,363,149.064,363c0.004,0,0,0,0.004,0c30.161,0,58.521-11.785,79.847-33.113l-0.011-0.02L300.766,258h0.006
l44.802-44.812l0.021,0.017c0.258-0.267,0.497-0.544,0.765-0.806c20.729-20.729,54.462-20.736,75.196-0.001l42.25-42.25
C419.776,126.119,348.133,126.118,304.107,170.151z"/>
<g>
<path fill="#FFFFFF" d="M383.954,303.18c-14.204,0-27.558-5.533-37.596-15.58c-7.648-7.645-12.467-17.058-14.473-26.938
l-45.745,45.746c4.826,8.384,10.808,16.279,17.963,23.439c21.328,21.329,49.688,33.076,79.851,33.076s58.521-11.747,79.852-33.076
l-42.25-42.244C411.512,297.646,398.159,303.18,383.954,303.18z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -1,19 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="14" height="14" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg"><title>Favicon</title><g fill="none" fill-rule="evenodd"><path fill="#1C0172" d="M2.43 6.969L.095 8.574v.355l6.942 5.06 6.942-5.06.001-.355-2.144-1.637z"/><path fill="#4608AD" d="M7.037 0L.095 5.06v.354l6.942 5.06 6.942-5.06V5.06z"/></g></svg>
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
<title>Favicon</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Styleguide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Favicons" transform="translate(-164.000000, -377.000000)">
<g id="Group-Copy-2" transform="translate(75.000000, 359.000000)">
<g id="Favicon" transform="translate(89.000000, 18.000000)">
<g id="Logo-Mark">
<polygon id="Fill-1-Copy" fill="#1C0172" points="2.43005371 6.96862793 0.0947772033 8.57397113 0.094533725 8.92865155 7.03719459 13.9881979 13.9794902 8.92889897 13.9799772 8.57434227 11.8363037 6.93737793"></polygon>
<polygon id="Fill-2-Copy" fill="#4608AD" points="7.03719459 3.71134021e-05 0.0948989424 5.05933608 0.094533725 5.41401649 7.03719459 10.4736866 13.9794902 5.41426392 13.9798555 5.05958351"></polygon>
</g>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Some files were not shown because too many files have changed in this diff Show More